Contract Overview
Balance:
0 ETH
ETH Value:
$0.00
My Name Tag:
Not Available
[ Download CSV Export ]
Latest 25 internal transaction
[ Download CSV Export ]
Contract Name:
FastPriceFeed
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Arbiscan on 2022-08-19 */ // Sources flattened with hardhat v2.9.3 https://hardhat.org // File contracts/libraries/math/SafeMath.sol // SPDX-License-Identifier: MIT pragma solidity 0.6.12; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } // File contracts/oracle/interfaces/ISecondaryPriceFeed.sol pragma solidity 0.6.12; interface ISecondaryPriceFeed { function getPrice( address _token, uint256 _referencePrice, bool _maximise ) external view returns (uint256); } // File contracts/oracle/interfaces/IFastPriceFeed.sol pragma solidity 0.6.12; interface IFastPriceFeed { function lastUpdatedAt() external view returns (uint256); function lastUpdatedBlock() external view returns (uint256); } // File contracts/oracle/interfaces/IFastPriceEvents.sol pragma solidity 0.6.12; interface IFastPriceEvents { function emitPriceEvent(address _token, uint256 _price) external; } // File contracts/core/interfaces/IPositionRouter.sol pragma solidity 0.6.12; interface IPositionRouter { function executeIncreasePositions(uint256 _count, address payable _executionFeeReceiver) external; function executeDecreasePositions(uint256 _count, address payable _executionFeeReceiver) external; } // File contracts/access/Governable.sol pragma solidity 0.6.12; contract Governable { address public gov; constructor() public { gov = msg.sender; } modifier onlyGov() { require(msg.sender == gov, "Governable: forbidden"); _; } function setGov(address _gov) external onlyGov { gov = _gov; } } // File contracts/oracle/FastPriceFeed.sol pragma solidity 0.6.12; contract FastPriceFeed is ISecondaryPriceFeed, IFastPriceFeed, Governable { using SafeMath for uint256; uint256 public constant PRICE_PRECISION = 10**30; // uint256(~0) is 256 bits of 1s // shift the 1s by (256 - 32) to get (256 - 32) 0s followed by 32 1s uint256 public constant PRICE_BITMASK = uint256(~0) >> (256 - 32); uint256 public constant BASIS_POINTS_DIVISOR = 10000; uint256 public constant MAX_PRICE_DURATION = 30 minutes; bool public isInitialized; bool public isSpreadEnabled = false; address public fastPriceEvents; address public tokenManager; address public positionRouter; uint256 public override lastUpdatedAt; uint256 public override lastUpdatedBlock; uint256 public priceDuration; uint256 public minBlockInterval; uint256 public maxTimeDeviation; // volatility basis points uint256 public volBasisPoints; // max deviation from primary price uint256 public maxDeviationBasisPoints; uint256 public minAuthorizations; uint256 public disableFastPriceVoteCount = 0; mapping(address => bool) public isUpdater; mapping(address => uint256) public prices; mapping(address => bool) public isSigner; mapping(address => bool) public disableFastPriceVotes; // array of tokens used in setCompactedPrices, saves L1 calldata gas costs address[] public tokens; // array of tokenPrecisions used in setCompactedPrices, saves L1 calldata gas costs // if the token price will be sent with 3 decimals, then tokenPrecision for that token // should be 10 ** 3 uint256[] public tokenPrecisions; event DisableFastPrice(address signer); event EnableFastPrice(address signer); modifier onlySigner() { require(isSigner[msg.sender], "FastPriceFeed: forbidden"); _; } modifier onlyUpdater() { require(isUpdater[msg.sender], "FastPriceFeed: forbidden"); _; } modifier onlyTokenManager() { require(msg.sender == tokenManager, "FastPriceFeed: forbidden"); _; } constructor( uint256 _priceDuration, uint256 _minBlockInterval, uint256 _maxDeviationBasisPoints, address _fastPriceEvents, address _tokenManager, address _positionRouter ) public { require(_priceDuration <= MAX_PRICE_DURATION, "FastPriceFeed: invalid _priceDuration"); priceDuration = _priceDuration; minBlockInterval = _minBlockInterval; maxDeviationBasisPoints = _maxDeviationBasisPoints; fastPriceEvents = _fastPriceEvents; tokenManager = _tokenManager; positionRouter = _positionRouter; } function initialize( uint256 _minAuthorizations, address[] memory _signers, address[] memory _updaters ) public onlyGov { require(!isInitialized, "FastPriceFeed: already initialized"); isInitialized = true; minAuthorizations = _minAuthorizations; for (uint256 i = 0; i < _signers.length; i++) { address signer = _signers[i]; isSigner[signer] = true; } for (uint256 i = 0; i < _updaters.length; i++) { address updater = _updaters[i]; isUpdater[updater] = true; } } function setTokenManager(address _tokenManager) external onlyGov { tokenManager = _tokenManager; } function setSigner(address _account, bool _isActive) external onlyGov { isSigner[_account] = _isActive; } function setUpdater(address _account, bool _isActive) external onlyGov { isUpdater[_account] = _isActive; } function setFastPriceEvents(address _fastPriceEvents) external onlyGov { fastPriceEvents = _fastPriceEvents; } function setPriceDuration(uint256 _priceDuration) external onlyGov { require(_priceDuration <= MAX_PRICE_DURATION, "FastPriceFeed: invalid _priceDuration"); priceDuration = _priceDuration; } function setMinBlockInterval(uint256 _minBlockInterval) external onlyGov { minBlockInterval = _minBlockInterval; } function setIsSpreadEnabled(bool _isSpreadEnabled) external onlyUpdater { isSpreadEnabled = _isSpreadEnabled; } function setMaxTimeDeviation(uint256 _maxTimeDeviation) external onlyGov { maxTimeDeviation = _maxTimeDeviation; } function setLastUpdatedAt(uint256 _lastUpdatedAt) external onlyGov { lastUpdatedAt = _lastUpdatedAt; } function setVolBasisPoints(uint256 _volBasisPoints) external onlyGov { volBasisPoints = _volBasisPoints; } function setMaxDeviationBasisPoints(uint256 _maxDeviationBasisPoints) external onlyGov { maxDeviationBasisPoints = _maxDeviationBasisPoints; } function setMinAuthorizations(uint256 _minAuthorizations) external onlyTokenManager { minAuthorizations = _minAuthorizations; } function setTokens(address[] memory _tokens, uint256[] memory _tokenPrecisions) external onlyGov { require(_tokens.length == _tokenPrecisions.length, "FastPriceFeed: invalid lengths"); tokens = _tokens; tokenPrecisions = _tokenPrecisions; } function setPrices( address[] memory _tokens, uint256[] memory _prices, uint256 _timestamp ) external onlyUpdater { bool shouldUpdate = _setLastUpdatedValues(_timestamp); if (shouldUpdate) { address _fastPriceEvents = fastPriceEvents; for (uint256 i = 0; i < _tokens.length; i++) { address token = _tokens[i]; prices[token] = _prices[i]; _emitPriceEvent(_fastPriceEvents, token, _prices[i]); } } } function setCompactedPrices(uint256[] memory _priceBitArray, uint256 _timestamp) external onlyUpdater { bool shouldUpdate = _setLastUpdatedValues(_timestamp); if (shouldUpdate) { address _fastPriceEvents = fastPriceEvents; for (uint256 i = 0; i < _priceBitArray.length; i++) { uint256 priceBits = _priceBitArray[i]; for (uint256 j = 0; j < 8; j++) { uint256 index = i * 8 + j; if (index >= tokens.length) { return; } uint256 startBit = 32 * j; uint256 price = (priceBits >> startBit) & PRICE_BITMASK; address token = tokens[i * 8 + j]; uint256 tokenPrecision = tokenPrecisions[i * 8 + j]; uint256 adjustedPrice = price.mul(PRICE_PRECISION).div(tokenPrecision); prices[token] = adjustedPrice; _emitPriceEvent(_fastPriceEvents, token, adjustedPrice); } } } } function setPricesWithBits(uint256 _priceBits, uint256 _timestamp) external onlyUpdater { _setPricesWithBits(_priceBits, _timestamp); } function setPricesWithBitsAndExecute( uint256 _priceBits, uint256 _timestamp, uint256 _endIndexForIncreasePositions, uint256 _endIndexForDecreasePositions ) external onlyUpdater { _setPricesWithBits(_priceBits, _timestamp); IPositionRouter _positionRouter = IPositionRouter(positionRouter); _positionRouter.executeIncreasePositions(_endIndexForIncreasePositions, payable(msg.sender)); _positionRouter.executeDecreasePositions(_endIndexForDecreasePositions, payable(msg.sender)); } function disableFastPrice() external onlySigner { require(!disableFastPriceVotes[msg.sender], "FastPriceFeed: already voted"); disableFastPriceVotes[msg.sender] = true; disableFastPriceVoteCount = disableFastPriceVoteCount.add(1); emit DisableFastPrice(msg.sender); } function enableFastPrice() external onlySigner { require(disableFastPriceVotes[msg.sender], "FastPriceFeed: already enabled"); disableFastPriceVotes[msg.sender] = false; disableFastPriceVoteCount = disableFastPriceVoteCount.sub(1); emit EnableFastPrice(msg.sender); } function getPrice( address _token, uint256 _refPrice, bool _maximise ) external view override returns (uint256) { // If it has been longer than priceDuration since return parameter given if (block.timestamp > lastUpdatedAt.add(priceDuration)) { return _refPrice; } uint256 fastPrice = prices[_token]; if (fastPrice == 0) { return _refPrice; } uint256 maxPrice = _refPrice.mul(BASIS_POINTS_DIVISOR.add(maxDeviationBasisPoints)).div(BASIS_POINTS_DIVISOR); uint256 minPrice = _refPrice.mul(BASIS_POINTS_DIVISOR.sub(maxDeviationBasisPoints)).div(BASIS_POINTS_DIVISOR); if (favorFastPrice()) { if (fastPrice >= minPrice && fastPrice <= maxPrice) { if (_maximise) { if (_refPrice > fastPrice) { uint256 volPrice = fastPrice.mul(BASIS_POINTS_DIVISOR.add(volBasisPoints)).div( BASIS_POINTS_DIVISOR ); // the volPrice should not be more than _refPrice return volPrice > _refPrice ? _refPrice : volPrice; } return fastPrice; } if (_refPrice < fastPrice) { uint256 volPrice = fastPrice.mul(BASIS_POINTS_DIVISOR.sub(volBasisPoints)).div( BASIS_POINTS_DIVISOR ); // the volPrice should not be less than _refPrice return volPrice < _refPrice ? _refPrice : volPrice; } return fastPrice; } } if (_maximise) { if (_refPrice > fastPrice) { return _refPrice; } return fastPrice > maxPrice ? maxPrice : fastPrice; } if (_refPrice < fastPrice) { return _refPrice; } return fastPrice < minPrice ? minPrice : fastPrice; } function favorFastPrice() public view returns (bool) { if (isSpreadEnabled) { return false; } if (disableFastPriceVoteCount >= minAuthorizations) { return false; } return true; } function _setPricesWithBits(uint256 _priceBits, uint256 _timestamp) private { bool shouldUpdate = _setLastUpdatedValues(_timestamp); if (shouldUpdate) { address _fastPriceEvents = fastPriceEvents; for (uint256 j = 0; j < 8; j++) { uint256 index = j; if (index >= tokens.length) { return; } uint256 startBit = 32 * j; uint256 price = (_priceBits >> startBit) & PRICE_BITMASK; address token = tokens[j]; uint256 tokenPrecision = tokenPrecisions[j]; uint256 adjustedPrice = price.mul(PRICE_PRECISION).div(tokenPrecision); prices[token] = adjustedPrice; _emitPriceEvent(_fastPriceEvents, token, adjustedPrice); } } } function _emitPriceEvent( address _fastPriceEvents, address _token, uint256 _price ) private { if (_fastPriceEvents == address(0)) { return; } IFastPriceEvents(_fastPriceEvents).emitPriceEvent(_token, _price); } function _setLastUpdatedValues(uint256 _timestamp) private returns (bool) { if (minBlockInterval > 0) { require( block.number.sub(lastUpdatedBlock) >= minBlockInterval, "FastPriceFeed: minBlockInterval not yet passed" ); } require(_timestamp > block.timestamp.sub(maxTimeDeviation), "FastPriceFeed: _timestamp below allowed range"); require(_timestamp < block.timestamp.add(maxTimeDeviation), "FastPriceFeed: _timestamp exceeds allowed range"); // do not update prices if _timestamp is before the current lastUpdatedAt value if (_timestamp < lastUpdatedAt) { return false; } lastUpdatedAt = _timestamp; lastUpdatedBlock = block.number; return true; } }
[{"inputs":[{"internalType":"uint256","name":"_priceDuration","type":"uint256"},{"internalType":"uint256","name":"_minBlockInterval","type":"uint256"},{"internalType":"uint256","name":"_maxDeviationBasisPoints","type":"uint256"},{"internalType":"address","name":"_fastPriceEvents","type":"address"},{"internalType":"address","name":"_tokenManager","type":"address"},{"internalType":"address","name":"_positionRouter","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"signer","type":"address"}],"name":"DisableFastPrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"signer","type":"address"}],"name":"EnableFastPrice","type":"event"},{"inputs":[],"name":"BASIS_POINTS_DIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_PRICE_DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRICE_BITMASK","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRICE_PRECISION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableFastPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableFastPriceVoteCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"disableFastPriceVotes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableFastPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fastPriceEvents","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"favorFastPrice","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_refPrice","type":"uint256"},{"internalType":"bool","name":"_maximise","type":"bool"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gov","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minAuthorizations","type":"uint256"},{"internalType":"address[]","name":"_signers","type":"address[]"},{"internalType":"address[]","name":"_updaters","type":"address[]"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isSigner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSpreadEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isUpdater","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUpdatedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUpdatedBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxDeviationBasisPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTimeDeviation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minAuthorizations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minBlockInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"positionRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"prices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_priceBitArray","type":"uint256[]"},{"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"setCompactedPrices","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_fastPriceEvents","type":"address"}],"name":"setFastPriceEvents","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gov","type":"address"}],"name":"setGov","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isSpreadEnabled","type":"bool"}],"name":"setIsSpreadEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lastUpdatedAt","type":"uint256"}],"name":"setLastUpdatedAt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxDeviationBasisPoints","type":"uint256"}],"name":"setMaxDeviationBasisPoints","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTimeDeviation","type":"uint256"}],"name":"setMaxTimeDeviation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minAuthorizations","type":"uint256"}],"name":"setMinAuthorizations","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minBlockInterval","type":"uint256"}],"name":"setMinBlockInterval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_priceDuration","type":"uint256"}],"name":"setPriceDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_tokens","type":"address[]"},{"internalType":"uint256[]","name":"_prices","type":"uint256[]"},{"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"setPrices","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_priceBits","type":"uint256"},{"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"setPricesWithBits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_priceBits","type":"uint256"},{"internalType":"uint256","name":"_timestamp","type":"uint256"},{"internalType":"uint256","name":"_endIndexForIncreasePositions","type":"uint256"},{"internalType":"uint256","name":"_endIndexForDecreasePositions","type":"uint256"}],"name":"setPricesWithBitsAndExecute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"bool","name":"_isActive","type":"bool"}],"name":"setSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenManager","type":"address"}],"name":"setTokenManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_tokens","type":"address[]"},{"internalType":"uint256[]","name":"_tokenPrecisions","type":"uint256[]"}],"name":"setTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"bool","name":"_isActive","type":"bool"}],"name":"setUpdater","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_volBasisPoints","type":"uint256"}],"name":"setVolBasisPoints","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokenManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenPrecisions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokens","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"volBasisPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526000805460ff60a81b19168155600c5534801561002057600080fd5b5060405161235f38038061235f833981810160405260c081101561004357600080fd5b508051602082015160408301516060840151608085015160a090950151600080546001600160a01b0319163317905593949293919290916107088611156100bb5760405162461bcd60e51b815260040180806020018281038252602581526020018061233a6025913960400191505060405180910390fd5b600695909555600793909355600a91909155600180546001600160a01b039283166001600160a01b031991821617909155600280549383169382169390931790925560038054919093169116179055612221806101196000396000f3fe608060405234801561001057600080fd5b50600436106102305760003560e01c806303b049361461023557806303cd25711461026f57806303f4d7dc146102895780630e9272ea1461032e578063114fbeb314610352578063126082cf1461035a57806312d43a51146103625780631389a3cc1461036a57806314dd2dce14610399578063162ac4e0146103b657806317835d1c146103dc5780631a153391146103ff578063287800c91461042d5780632a709b141461043557806331cb61051461043d578063392e53cd1461046b5780633aa08f861461047357806344c231931461047b5780634d11fb4a146104985780634f64b2be146104b55780634fdfb086146104d257806354aea127146104f857806361ef161f14610500578063668d3d6514610508578063695d4184146105105780636ccd47c414610518578063715c753614610520578063776d16c114610528578063782661bc146105455780637cb2b79c1461066a5780637df73e27146106905780637fbc79c6146106b65780637fece368146107e057806382553aad1461081457806395082d25146108315780639e4de0e314610839578063b0a2566614610856578063b3606b561461085e578063c0e4de8e14610866578063c8390a481461086e578063c84a912414610991578063ce98dfa814610999578063cfad57a2146109b8578063cfed246b146109de578063d6a153f114610a04578063d925351a14610a21578063f67e3bf014610a3e578063f90ce5ba14610a46575b600080fd5b61025b6004803603602081101561024b57600080fd5b50356001600160a01b0316610a4e565b604080519115158252519081900360200190f35b610277610a63565b60408051918252519081900360200190f35b61032c6004803603604081101561029f57600080fd5b810190602081018135600160201b8111156102b957600080fd5b8201836020820111156102cb57600080fd5b803590602001918460208302840111600160201b831117156102ec57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505091359250610a69915050565b005b610336610bf1565b604080516001600160a01b039092168252519081900360200190f35b610277610c00565b610277610c06565b610336610c0c565b61032c6004803603608081101561038057600080fd5b5080359060208101359060408101359060600135610c1b565b61032c600480360360208110156103af57600080fd5b5035610d4f565b61032c600480360360208110156103cc57600080fd5b50356001600160a01b0316610da1565b61032c600480360360408110156103f257600080fd5b5080359060200135610e10565b61032c6004803603604081101561041557600080fd5b506001600160a01b0381351690602001351515610e6c565b610277610ee4565b610336610eea565b61032c6004803603604081101561045357600080fd5b506001600160a01b0381351690602001351515610ef9565b61025b610f71565b610277610f81565b61032c6004803603602081101561049157600080fd5b5035610f87565b610277600480360360208110156104ae57600080fd5b503561101a565b610336600480360360208110156104cb57600080fd5b5035611038565b61025b600480360360208110156104e857600080fd5b50356001600160a01b031661105f565b610277611074565b61033661107a565b610277611089565b61025b61108f565b61032c61109f565b6102776111b2565b61032c6004803603602081101561053e57600080fd5b50356111b8565b61032c6004803603606081101561055b57600080fd5b810190602081018135600160201b81111561057557600080fd5b82018360208201111561058757600080fd5b803590602001918460208302840111600160201b831117156105a857600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156105f757600080fd5b82018360208201111561060957600080fd5b803590602001918460208302840111600160201b8311171561062a57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550509135925061120a915050565b61032c6004803603602081101561068057600080fd5b50356001600160a01b031661130c565b61025b600480360360208110156106a657600080fd5b50356001600160a01b031661137b565b61032c600480360360608110156106cc57600080fd5b81359190810190604081016020820135600160201b8111156106ed57600080fd5b8201836020820111156106ff57600080fd5b803590602001918460208302840111600160201b8311171561072057600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561076f57600080fd5b82018360208201111561078157600080fd5b803590602001918460208302840111600160201b831117156107a257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611390945050505050565b610277600480360360608110156107f657600080fd5b506001600160a01b03813516906020810135906040013515156114e9565b61032c6004803603602081101561082a57600080fd5b50356116a7565b6102776116f9565b61032c6004803603602081101561084f57600080fd5b5035611709565b61027761175b565b610277611761565b61025b611767565b61032c6004803603604081101561088457600080fd5b810190602081018135600160201b81111561089e57600080fd5b8201836020820111156108b057600080fd5b803590602001918460208302840111600160201b831117156108d157600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561092057600080fd5b82018360208201111561093257600080fd5b803590602001918460208302840111600160201b8311171561095357600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061179c945050505050565b61032c611866565b61032c600480360360208110156109af57600080fd5b5035151561197d565b61032c600480360360208110156109ce57600080fd5b50356001600160a01b03166119ed565b610277600480360360208110156109f457600080fd5b50356001600160a01b0316611a5c565b61032c60048036036020811015610a1a57600080fd5b5035611a6e565b61032c60048036036020811015610a3757600080fd5b5035611ac0565b610277611b12565b610277611b1a565b60106020526000908152604090205460ff1681565b60065481565b336000908152600d602052604090205460ff16610abb576040805162461bcd60e51b815260206004820152601860248201526000805160206120ff833981519152604482015290519081900360640190fd5b6000610ac682611b20565b90508015610beb576001546001600160a01b031660005b8451811015610be8576000858281518110610af457fe5b6020026020010151905060005b6008811015610bde57601154600884028201908110610b2557505050505050610bed565b60118054602084029185831c63ffffffff169160009190600889028701908110610b4b57fe5b6000918252602082200154601280546001600160a01b0390921693509060088a028801908110610b7757fe5b60009182526020822001549150610ba482610b9e8668327cb2734119d3b7a9601e1b611c33565b90611c95565b6001600160a01b0384166000908152600e602052604090208190559050610bcc8a8483611cd4565b505060019094019350610b0192505050565b5050600101610add565b50505b505b5050565b6001546001600160a01b031681565b60095481565b61271081565b6000546001600160a01b031681565b336000908152600d602052604090205460ff16610c6d576040805162461bcd60e51b815260206004820152601860248201526000805160206120ff833981519152604482015290519081900360640190fd5b610c778484611d5b565b60035460408051629a208160e81b81526004810185905233602482015290516001600160a01b03909216918291639a20810091604480830192600092919082900301818387803b158015610cca57600080fd5b505af1158015610cde573d6000803e3d6000fd5b50506040805163f3883d8b60e01b81526004810186905233602482015290516001600160a01b038516935063f3883d8b9250604480830192600092919082900301818387803b158015610d3057600080fd5b505af1158015610d44573d6000803e3d6000fd5b505050505050505050565b6000546001600160a01b03163314610d9c576040805162461bcd60e51b815260206004820152601560248201526000805160206120df833981519152604482015290519081900360640190fd5b600455565b6000546001600160a01b03163314610dee576040805162461bcd60e51b815260206004820152601560248201526000805160206120df833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b336000908152600d602052604090205460ff16610e62576040805162461bcd60e51b815260206004820152601860248201526000805160206120ff833981519152604482015290519081900360640190fd5b610bed8282611d5b565b6000546001600160a01b03163314610eb9576040805162461bcd60e51b815260206004820152601560248201526000805160206120df833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b600b5481565b6002546001600160a01b031681565b6000546001600160a01b03163314610f46576040805162461bcd60e51b815260206004820152601560248201526000805160206120df833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b600054600160a01b900460ff1681565b60085481565b6000546001600160a01b03163314610fd4576040805162461bcd60e51b815260206004820152601560248201526000805160206120df833981519152604482015290519081900360640190fd5b6107088111156110155760405162461bcd60e51b81526004018080602001828103825260258152602001806120ba6025913960400191505060405180910390fd5b600655565b6012818154811061102757fe5b600091825260209091200154905081565b6011818154811061104557fe5b6000918252602090912001546001600160a01b0316905081565b600d6020526000908152604090205460ff1681565b60045481565b6003546001600160a01b031681565b61070881565b600054600160a81b900460ff1681565b336000908152600f602052604090205460ff166110f1576040805162461bcd60e51b815260206004820152601860248201526000805160206120ff833981519152604482015290519081900360640190fd5b3360009081526010602052604090205460ff16611155576040805162461bcd60e51b815260206004820152601e60248201527f466173745072696365466565643a20616c726561647920656e61626c65640000604482015290519081900360640190fd5b336000908152601060205260409020805460ff19169055600c5461117a906001611e43565b600c556040805133815290517f9fe0c305c33aa92757a537936872a60be0d91549a4303cc99fd8b7fce8a002759181900360200190a1565b600a5481565b6000546001600160a01b03163314611205576040805162461bcd60e51b815260206004820152601560248201526000805160206120df833981519152604482015290519081900360640190fd5b600855565b336000908152600d602052604090205460ff1661125c576040805162461bcd60e51b815260206004820152601860248201526000805160206120ff833981519152604482015290519081900360640190fd5b600061126782611b20565b90508015611306576001546001600160a01b031660005b855181101561130357600086828151811061129557fe5b602002602001015190508582815181106112ab57fe5b6020026020010151600e6000836001600160a01b03166001600160a01b03168152602001908152602001600020819055506112fa83828885815181106112ed57fe5b6020026020010151611cd4565b5060010161127e565b50505b50505050565b6000546001600160a01b03163314611359576040805162461bcd60e51b815260206004820152601560248201526000805160206120df833981519152604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600f6020526000908152604090205460ff1681565b6000546001600160a01b031633146113dd576040805162461bcd60e51b815260206004820152601560248201526000805160206120df833981519152604482015290519081900360640190fd5b600054600160a01b900460ff16156114265760405162461bcd60e51b81526004018080602001828103825260228152602001806121ca6022913960400191505060405180910390fd5b6000805460ff60a01b1916600160a01b178155600b8490555b825181101561149257600083828151811061145657fe5b6020908102919091018101516001600160a01b03166000908152600f90915260409020805460ff1916600190811790915591909101905061143f565b5060005b81518110156113065760008282815181106114ad57fe5b6020908102919091018101516001600160a01b03166000908152600d90915260409020805460ff19166001908117909155919091019050611496565b6000611502600654600454611e8590919063ffffffff16565b4211156115105750816116a0565b6001600160a01b0384166000908152600e60205260409020548061153757839150506116a0565b6000611560612710610b9e611559600a54612710611e8590919063ffffffff16565b8890611c33565b9050600061158b612710610b9e611584600a54612710611e4390919063ffffffff16565b8990611c33565b9050611595611767565b15611646578083101580156115aa5750818311155b1561164657841561160d57828611156116025760006115e6612710610b9e6115df600954612710611e8590919063ffffffff16565b8790611c33565b90508681116115f557806115f7565b865b9450505050506116a0565b8293505050506116a0565b82861015611602576000611637612710610b9e6115df600954612710611e4390919063ffffffff16565b90508681106115f557806115f7565b8415611678578286111561165f578593505050506116a0565b81831161166c578261166e565b815b93505050506116a0565b8286101561168b578593505050506116a0565b808310611698578261169a565b805b93505050505b9392505050565b6000546001600160a01b031633146116f4576040805162461bcd60e51b815260206004820152601560248201526000805160206120df833981519152604482015290519081900360640190fd5b600a55565b68327cb2734119d3b7a9601e1b81565b6000546001600160a01b03163314611756576040805162461bcd60e51b815260206004820152601560248201526000805160206120df833981519152604482015290519081900360640190fd5b600955565b600c5481565b60075481565b60008054600160a81b900460ff161561178257506000611799565b600b54600c541061179557506000611799565b5060015b90565b6000546001600160a01b031633146117e9576040805162461bcd60e51b815260206004820152601560248201526000805160206120df833981519152604482015290519081900360640190fd5b805182511461183f576040805162461bcd60e51b815260206004820152601e60248201527f466173745072696365466565643a20696e76616c6964206c656e677468730000604482015290519081900360640190fd5b8151611852906011906020850190611fd9565b508051610beb90601290602084019061203e565b336000908152600f602052604090205460ff166118b8576040805162461bcd60e51b815260206004820152601860248201526000805160206120ff833981519152604482015290519081900360640190fd5b3360009081526010602052604090205460ff161561191c576040805162461bcd60e51b815260206004820152601c60248201527b11985cdd141c9a58d9519959590e88185b1c9958591e481d9bdd195960221b604482015290519081900360640190fd5b336000908152601060205260409020805460ff19166001908117909155600c5461194591611e85565b600c556040805133815290517f4c0c5fabf50e808e3bc8d19577d305e3a7163eea7e8a74a50caa8896694cd44b9181900360200190a1565b336000908152600d602052604090205460ff166119cf576040805162461bcd60e51b815260206004820152601860248201526000805160206120ff833981519152604482015290519081900360640190fd5b60008054911515600160a81b0260ff60a81b19909216919091179055565b6000546001600160a01b03163314611a3a576040805162461bcd60e51b815260206004820152601560248201526000805160206120df833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600e6020526000908152604090205481565b6000546001600160a01b03163314611abb576040805162461bcd60e51b815260206004820152601560248201526000805160206120df833981519152604482015290519081900360640190fd5b600755565b6002546001600160a01b03163314611b0d576040805162461bcd60e51b815260206004820152601860248201526000805160206120ff833981519152604482015290519081900360640190fd5b600b55565b63ffffffff81565b60055481565b60075460009015611b7957600754600554611b3c904390611e43565b1015611b795760405162461bcd60e51b815260040180806020018281038252602e81526020018061219c602e913960400191505060405180910390fd5b600854611b87904290611e43565b8211611bc45760405162461bcd60e51b815260040180806020018281038252602d81526020018061216f602d913960400191505060405180910390fd5b600854611bd2904290611e85565b8210611c0f5760405162461bcd60e51b815260040180806020018281038252602f81526020018061211f602f913960400191505060405180910390fd5b600454821015611c2157506000611c2e565b5060048190554360055560015b919050565b600082611c4257506000611c8f565b82820282848281611c4f57fe5b0414611c8c5760405162461bcd60e51b815260040180806020018281038252602181526020018061214e6021913960400191505060405180910390fd5b90505b92915050565b6000611c8c83836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250611edd565b6001600160a01b038316611ce757610beb565b826001600160a01b031663e0409c7183836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611d3e57600080fd5b505af1158015611d52573d6000803e3d6000fd5b50505050505050565b6000611d6682611b20565b90508015610beb576001546001600160a01b031660005b6008811015610be85760115481908110611d9a5750505050610bed565b60118054602084029188831c63ffffffff16916000919086908110611dbb57fe5b6000918252602082200154601280546001600160a01b0390921693509087908110611de257fe5b60009182526020822001549150611e0982610b9e8668327cb2734119d3b7a9601e1b611c33565b6001600160a01b0384166000908152600e602052604090208190559050611e31888483611cd4565b505060019094019350611d7d92505050565b6000611c8c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f7f565b600082820183811015611c8c576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b60008183611f695760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f2e578181015183820152602001611f16565b50505050905090810190601f168015611f5b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611f7557fe5b0495945050505050565b60008184841115611fd15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611f2e578181015183820152602001611f16565b505050900390565b82805482825590600052602060002090810192821561202e579160200282015b8281111561202e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611ff9565b5061203a929150612085565b5090565b828054828255906000526020600020908101928215612079579160200282015b8281111561207957825182559160200191906001019061205e565b5061203a9291506120a4565b5b8082111561203a5780546001600160a01b0319168155600101612086565b5b8082111561203a57600081556001016120a556fe466173745072696365466565643a20696e76616c6964205f70726963654475726174696f6e476f7665726e61626c653a20666f7262696464656e0000000000000000000000466173745072696365466565643a20666f7262696464656e0000000000000000466173745072696365466565643a205f74696d657374616d70206578636565647320616c6c6f7765642072616e6765536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77466173745072696365466565643a205f74696d657374616d702062656c6f7720616c6c6f7765642072616e6765466173745072696365466565643a206d696e426c6f636b496e74657276616c206e6f742079657420706173736564466173745072696365466565643a20616c726561647920696e697469616c697a6564a26469706673582212208b7367d1d0a6c6122c60ba9e881c570af6c8dfc65c70ca6725ec4aa5929c91ad64736f6c634300060c0033466173745072696365466565643a20696e76616c6964205f70726963654475726174696f6e000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa0000000000000000000000003934ca8b69d05533769b0d96d1a11c44c1d2fa3b0000000000000000000000008da386b8e9e3c27411ec5972c5d91399ad0b9d02000000000000000000000000e510571cac76279dadf6c4b6eace5370f86e3dc2
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa0000000000000000000000003934ca8b69d05533769b0d96d1a11c44c1d2fa3b0000000000000000000000008da386b8e9e3c27411ec5972c5d91399ad0b9d02000000000000000000000000e510571cac76279dadf6c4b6eace5370f86e3dc2
-----Decoded View---------------
Arg [0] : _priceDuration (uint256): 300
Arg [1] : _minBlockInterval (uint256): 0
Arg [2] : _maxDeviationBasisPoints (uint256): 250
Arg [3] : _fastPriceEvents (address): 0x3934ca8b69d05533769b0d96d1a11c44c1d2fa3b
Arg [4] : _tokenManager (address): 0x8da386b8e9e3c27411ec5972c5d91399ad0b9d02
Arg [5] : _positionRouter (address): 0xe510571cac76279dadf6c4b6eace5370f86e3dc2
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000000000012c
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000fa
Arg [3] : 0000000000000000000000003934ca8b69d05533769b0d96d1a11c44c1d2fa3b
Arg [4] : 0000000000000000000000008da386b8e9e3c27411ec5972c5d91399ad0b9d02
Arg [5] : 000000000000000000000000e510571cac76279dadf6c4b6eace5370f86e3dc2
Deployed ByteCode Sourcemap
7097:12832:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8369:53;;;;;;;;;;;;;;;;-1:-1:-1;8369:53:0;-1:-1:-1;;;;;8369:53:0;;:::i;:::-;;;;;;;;;;;;;;;;;;7861:28;;;:::i;:::-;;;;;;;;;;;;;;;;13047:1125;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;13047:1125:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;13047:1125:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13047:1125:0;;-1:-1:-1;;13047:1125:0;;;-1:-1:-1;13047:1125:0;;-1:-1:-1;;13047:1125:0:i;:::-;;7655:30;;;:::i;:::-;;;;-1:-1:-1;;;;;7655:30:0;;;;;;;;;;;;;;8006:29;;;:::i;7456:52::-;;;:::i;6739:18::-;;;:::i;14337:564::-;;;;;;;;;;;;;;;;-1:-1:-1;14337:564:0;;;;;;;;;;;;;;;;;:::i;11639:116::-;;;;;;;;;;;;;;;;-1:-1:-1;11639:116:0;;:::i;10881:124::-;;;;;;;;;;;;;;;;-1:-1:-1;10881:124:0;-1:-1:-1;;;;;10881:124:0;;:::i;14180:149::-;;;;;;;;;;;;;;;;-1:-1:-1;14180:149:0;;;;;;;:::i;10752:121::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10752:121:0;;;;;;;;;;:::i;8130:32::-;;;:::i;7694:27::-;;;:::i;10625:119::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10625:119:0;;;;;;;;;;:::i;7581:25::-;;;:::i;7934:31::-;;;:::i;11013:213::-;;;;;;;;;;;;;;;;-1:-1:-1;11013:213:0;;:::i;8748:32::-;;;;;;;;;;;;;;;;-1:-1:-1;8748:32:0;;:::i;8511:23::-;;;;;;;;;;;;;;;;-1:-1:-1;8511:23:0;;:::i;8222:41::-;;;;;;;;;;;;;;;;-1:-1:-1;8222:41:0;-1:-1:-1;;;;;8222:41:0;;:::i;7768:37::-;;;:::i;7730:29::-;;;:::i;7517:55::-;;;:::i;7613:35::-;;;:::i;15227:310::-;;;:::i;8083:38::-;;;:::i;11503:128::-;;;;;;;;;;;;;;;;-1:-1:-1;11503:128:0;;:::i;12484:555::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12484:555:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12484:555:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12484:555:0;;;;;;;;-1:-1:-1;12484:555:0;;-1:-1:-1;;;;;12484:555:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12484:555:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12484:555:0;;-1:-1:-1;;12484:555:0;;;-1:-1:-1;12484:555:0;;-1:-1:-1;;12484:555:0:i;10505:112::-;;;;;;;;;;;;;;;;-1:-1:-1;10505:112:0;-1:-1:-1;;;;;10505:112:0;;:::i;8322:40::-;;;;;;;;;;;;;;;;-1:-1:-1;8322:40:0;-1:-1:-1;;;;;8322:40:0;;:::i;9876:621::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9876:621:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9876:621:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9876:621:0;;;;;;;;-1:-1:-1;9876:621:0;;-1:-1:-1;;;;;9876:621:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9876:621:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9876:621:0;;-1:-1:-1;9876:621:0;;-1:-1:-1;;;;;9876:621:0:i;15545:2091::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15545:2091:0;;;;;;;;;;;;;;;:::i;11891:156::-;;;;;;;;;;;;;;;;-1:-1:-1;11891:156:0;;:::i;7213:48::-;;;:::i;11763:120::-;;;;;;;;;;;;;;;;-1:-1:-1;11763:120:0;;:::i;8169:44::-;;;:::i;7896:31::-;;;:::i;17644:258::-;;;:::i;12204:272::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12204:272:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12204:272:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12204:272:0;;;;;;;;-1:-1:-1;12204:272:0;;-1:-1:-1;;;;;12204:272:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12204:272:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12204:272:0;;-1:-1:-1;12204:272:0;;-1:-1:-1;;;;;12204:272:0:i;14909:310::-;;;:::i;11370:125::-;;;;;;;;;;;;;;;;-1:-1:-1;11370:125:0;;;;:::i;6939:76::-;;;;;;;;;;;;;;;;-1:-1:-1;6939:76:0;-1:-1:-1;;;;;6939:76:0;;:::i;8272:41::-;;;;;;;;;;;;;;;;-1:-1:-1;8272:41:0;-1:-1:-1;;;;;8272:41:0;;:::i;11234:128::-;;;;;;;;;;;;;;;;-1:-1:-1;11234:128:0;;:::i;12055:141::-;;;;;;;;;;;;;;;;-1:-1:-1;12055:141:0;;:::i;7382:65::-;;;:::i;7812:40::-;;;:::i;8369:53::-;;;;;;;;;;;;;;;:::o;7861:28::-;;;;:::o;13047:1125::-;9050:10;9040:21;;;;:9;:21;;;;;;;;9032:58;;;;;-1:-1:-1;;;9032:58:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9032:58:0;;;;;;;;;;;;;;;13160:17:::1;13180:33;13202:10;13180:21;:33::i;:::-;13160:53;;13230:12;13226:939;;;13286:15;::::0;-1:-1:-1;;;;;13286:15:0::1;13259:24;13318:836;13342:14;:21;13338:1;:25;13318:836;;;13389:17;13409:14;13424:1;13409:17;;;;;;;;;;;;;;13389:37;;13452:9;13447:692;13471:1;13467;:5;13447:692;;;13563:6;:13:::0;13522:1:::1;13518:5:::0;::::1;:9:::0;::::1;::::0;13554:22;::::1;13550:85;;13605:7;;;;;;;;13550:85;13803:6;:17:::0;;13678:2:::1;:6:::0;::::1;::::0;13724:21;;::::1;7422:25:::0;13723:39:::1;::::0;13659:16:::1;::::0;13803:6;13814:1:::1;13810:5:::0;::::1;:9:::0;::::1;::::0;13803:17;::::1;;;;;;::::0;;;::::1;::::0;;::::1;::::0;13868:15:::1;:26:::0;;-1:-1:-1;;;;;13803:17:0;;::::1;::::0;-1:-1:-1;13868:15:0;13888:1:::1;13884:5:::0;::::1;:9:::0;::::1;::::0;13868:26;::::1;;;;;;::::0;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;13941:46:0::1;13868:26:::0;13941::::1;:5:::0;-1:-1:-1;;;13941:9:0::1;:26::i;:::-;:30:::0;::::1;:46::i;:::-;-1:-1:-1::0;;;;;14010:13:0;::::1;;::::0;;;:6:::1;:13;::::0;;;;:29;;;13917:70;-1:-1:-1;14064:55:0::1;14080:16:::0;14017:5;13917:70;14064:15:::1;:55::i;:::-;-1:-1:-1::0;;13474:3:0::1;::::0;;::::1;::::0;-1:-1:-1;13447:692:0::1;::::0;-1:-1:-1;;;13447:692:0::1;;-1:-1:-1::0;;13365:3:0::1;;13318:836;;;;13226:939;;9101:1;;13047:1125:::0;;:::o;7655:30::-;;;-1:-1:-1;;;;;7655:30:0;;:::o;8006:29::-;;;;:::o;7456:52::-;7503:5;7456:52;:::o;6739:18::-;;;-1:-1:-1;;;;;6739:18:0;;:::o;14337:564::-;9050:10;9040:21;;;;:9;:21;;;;;;;;9032:58;;;;;-1:-1:-1;;;9032:58:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9032:58:0;;;;;;;;;;;;;;;14567:42:::1;14586:10;14598;14567:18;:42::i;:::-;14672:14;::::0;14698:92:::1;::::0;;-1:-1:-1;;;14698:92:0;;::::1;::::0;::::1;::::0;;;14778:10:::1;14698:92:::0;;;;;;-1:-1:-1;;;;;14672:14:0;;::::1;::::0;;;14698:40:::1;::::0;:92;;;;;14622:31:::1;::::0;14698:92;;;;;;;14622:31;14672:14;14698:92;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;14801:92:0::1;::::0;;-1:-1:-1;;;14801:92:0;;::::1;::::0;::::1;::::0;;;14881:10:::1;14801:92:::0;;;;;;-1:-1:-1;;;;;14801:40:0;::::1;::::0;-1:-1:-1;14801:40:0::1;::::0;-1:-1:-1;14801:92:0;;;;;-1:-1:-1;;14801:92:0;;;;;;;-1:-1:-1;14801:40:0;:92;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9101:1;14337:564:::0;;;;:::o;11639:116::-;6882:3;;-1:-1:-1;;;;;6882:3:0;6868:10;:17;6860:51;;;;;-1:-1:-1;;;6860:51:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6860:51:0;;;;;;;;;;;;;;;11717:13:::1;:30:::0;11639:116::o;10881:124::-;6882:3;;-1:-1:-1;;;;;6882:3:0;6868:10;:17;6860:51;;;;;-1:-1:-1;;;6860:51:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6860:51:0;;;;;;;;;;;;;;;10963:15:::1;:34:::0;;-1:-1:-1;;;;;;10963:34:0::1;-1:-1:-1::0;;;;;10963:34:0;;;::::1;::::0;;;::::1;::::0;;10881:124::o;14180:149::-;9050:10;9040:21;;;;:9;:21;;;;;;;;9032:58;;;;;-1:-1:-1;;;9032:58:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9032:58:0;;;;;;;;;;;;;;;14279:42:::1;14298:10;14310;14279:18;:42::i;10752:121::-:0;6882:3;;-1:-1:-1;;;;;6882:3:0;6868:10;:17;6860:51;;;;;-1:-1:-1;;;6860:51:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6860:51:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;10834:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:31;;-1:-1:-1;;10834:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10752:121::o;8130:32::-;;;;:::o;7694:27::-;;;-1:-1:-1;;;;;7694:27:0;;:::o;10625:119::-;6882:3;;-1:-1:-1;;;;;6882:3:0;6868:10;:17;6860:51;;;;;-1:-1:-1;;;6860:51:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6860:51:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;10706:18:0;;;::::1;;::::0;;;:8:::1;:18;::::0;;;;:30;;-1:-1:-1;;10706:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10625:119::o;7581:25::-;;;-1:-1:-1;;;7581:25:0;;;;;:::o;7934:31::-;;;;:::o;11013:213::-;6882:3;;-1:-1:-1;;;;;6882:3:0;6868:10;:17;6860:51;;;;;-1:-1:-1;;;6860:51:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6860:51:0;;;;;;;;;;;;;;;7562:10:::1;11099:14;:36;;11091:86;;;;-1:-1:-1::0;;;11091:86:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11188:13;:30:::0;11013:213::o;8748:32::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8748:32:0;:::o;8511:23::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8511:23:0;;-1:-1:-1;8511:23:0;:::o;8222:41::-;;;;;;;;;;;;;;;:::o;7768:37::-;;;;:::o;7730:29::-;;;-1:-1:-1;;;;;7730:29:0;;:::o;7517:55::-;7562:10;7517:55;:::o;7613:35::-;;;-1:-1:-1;;;7613:35:0;;;;;:::o;15227:310::-;8930:10;8921:20;;;;:8;:20;;;;;;;;8913:57;;;;;-1:-1:-1;;;8913:57:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8913:57:0;;;;;;;;;;;;;;;15315:10:::1;15293:33;::::0;;;:21:::1;:33;::::0;;;;;::::1;;15285:76;;;::::0;;-1:-1:-1;;;15285:76:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;15394:10;15408:5;15372:33:::0;;;:21:::1;:33;::::0;;;;:41;;-1:-1:-1;;15372:41:0::1;::::0;;15452:25:::1;::::0;:32:::1;::::0;15372:41;15452:29:::1;:32::i;:::-;15424:25;:60:::0;15502:27:::1;::::0;;15518:10:::1;15502:27:::0;;;;::::1;::::0;;;;::::1;::::0;;::::1;15227:310::o:0;8083:38::-;;;;:::o;11503:128::-;6882:3;;-1:-1:-1;;;;;6882:3:0;6868:10;:17;6860:51;;;;;-1:-1:-1;;;6860:51:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6860:51:0;;;;;;;;;;;;;;;11587:16:::1;:36:::0;11503:128::o;12484:555::-;9050:10;9040:21;;;;:9;:21;;;;;;;;9032:58;;;;;-1:-1:-1;;;9032:58:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9032:58:0;;;;;;;;;;;;;;;12641:17:::1;12661:33;12683:10;12661:21;:33::i;:::-;12641:53;;12711:12;12707:325;;;12767:15;::::0;-1:-1:-1;;;;;12767:15:0::1;12740:24;12799:222;12823:7;:14;12819:1;:18;12799:222;;;12863:13;12879:7;12887:1;12879:10;;;;;;;;;;;;;;12863:26;;12924:7;12932:1;12924:10;;;;;;;;;;;;;;12908:6;:13;12915:5;-1:-1:-1::0;;;;;12908:13:0::1;-1:-1:-1::0;;;;;12908:13:0::1;;;;;;;;;;;;:26;;;;12953:52;12969:16;12987:5;12994:7;13002:1;12994:10;;;;;;;;;;;;;;12953:15;:52::i;:::-;-1:-1:-1::0;12839:3:0::1;;12799:222;;;;12707:325;;9101:1;12484:555:::0;;;:::o;10505:112::-;6882:3;;-1:-1:-1;;;;;6882:3:0;6868:10;:17;6860:51;;;;;-1:-1:-1;;;6860:51:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6860:51:0;;;;;;;;;;;;;;;10581:12:::1;:28:::0;;-1:-1:-1;;;;;;10581:28:0::1;-1:-1:-1::0;;;;;10581:28:0;;;::::1;::::0;;;::::1;::::0;;10505:112::o;8322:40::-;;;;;;;;;;;;;;;:::o;9876:621::-;6882:3;;-1:-1:-1;;;;;6882:3:0;6868:10;:17;6860:51;;;;;-1:-1:-1;;;6860:51:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6860:51:0;;;;;;;;;;;;;;;10048:13:::1;::::0;-1:-1:-1;;;10048:13:0;::::1;;;10047:14;10039:61;;;;-1:-1:-1::0;;;10039:61:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10111:13;:20:::0;;-1:-1:-1;;;;10111:20:0::1;-1:-1:-1::0;;;10111:20:0::1;::::0;;10144:17:::1;:38:::0;;;10195:139:::1;10219:8;:15;10215:1;:19;10195:139;;;10256:14;10273:8;10282:1;10273:11;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10299:16:0::1;;::::0;;;:8:::1;:16:::0;;;;;;:23;;-1:-1:-1;;10299:23:0::1;10318:4;10299:23:::0;;::::1;::::0;;;10236:3;;;::::1;::::0;-1:-1:-1;10195:139:0::1;;;;10351:9;10346:144;10370:9;:16;10366:1;:20;10346:144;;;10408:15;10426:9;10436:1;10426:12;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10453:18:0::1;;::::0;;;:9:::1;:18:::0;;;;;;:25;;-1:-1:-1;;10453:25:0::1;10474:4;10453:25:::0;;::::1;::::0;;;10388:3;;;::::1;::::0;-1:-1:-1;10346:144:0::1;;15545:2091:::0;15680:7;15804:32;15822:13;;15804;;:17;;:32;;;;:::i;:::-;15786:15;:50;15782:99;;;-1:-1:-1;15860:9:0;15853:16;;15782:99;-1:-1:-1;;;;;15913:14:0;;15893:17;15913:14;;;:6;:14;;;;;;15942;15938:63;;15980:9;15973:16;;;;;15938:63;16013:16;16032:90;7503:5;16032:64;16046:49;16071:23;;7503:5;16046:24;;:49;;;;:::i;:::-;16032:9;;:13;:64::i;:90::-;16013:109;;16133:16;16152:90;7503:5;16152:64;16166:49;16191:23;;7503:5;16166:24;;:49;;;;:::i;:::-;16152:9;;:13;:64::i;:90::-;16133:109;;16259:16;:14;:16::i;:::-;16255:1035;;;16309:8;16296:9;:21;;:46;;;;;16334:8;16321:9;:21;;16296:46;16292:987;;;16367:9;16363:482;;;16417:9;16405;:21;16401:386;;;16455:16;16474:137;7503:5;16474:55;16488:40;16513:14;;7503:5;16488:24;;:40;;;;:::i;:::-;16474:9;;:13;:55::i;:137::-;16455:156;;16731:9;16720:8;:20;:43;;16755:8;16720:43;;;16743:9;16720:43;16713:50;;;;;;;;16401:386;16816:9;16809:16;;;;;;;16363:482;16881:9;16869;:21;16865:362;;;16915:16;16934:129;7503:5;16934:55;16948:40;16973:14;;7503:5;16948:24;;:40;;;;:::i;16934:129::-;16915:148;;17175:9;17164:8;:20;:43;;17199:8;17164:43;;16292:987;17306:9;17302:184;;;17348:9;17336;:21;17332:78;;;17385:9;17378:16;;;;;;;17332:78;17443:8;17431:9;:20;:43;;17465:9;17431:43;;;17454:8;17431:43;17424:50;;;;;;;17302:184;17514:9;17502;:21;17498:70;;;17547:9;17540:16;;;;;;;17498:70;17597:8;17585:9;:20;:43;;17619:9;17585:43;;;17608:8;17585:43;17578:50;;;;;15545:2091;;;;;;:::o;11891:156::-;6882:3;;-1:-1:-1;;;;;6882:3:0;6868:10;:17;6860:51;;;;;-1:-1:-1;;;6860:51:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6860:51:0;;;;;;;;;;;;;;;11989:23:::1;:50:::0;11891:156::o;7213:48::-;-1:-1:-1;;;7213:48:0;:::o;11763:120::-;6882:3;;-1:-1:-1;;;;;6882:3:0;6868:10;:17;6860:51;;;;;-1:-1:-1;;;6860:51:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6860:51:0;;;;;;;;;;;;;;;11843:14:::1;:32:::0;11763:120::o;8169:44::-;;;;:::o;7896:31::-;;;;:::o;17644:258::-;17691:4;17712:15;;-1:-1:-1;;;17712:15:0;;;;17708:60;;;-1:-1:-1;17751:5:0;17744:12;;17708:60;17813:17;;17784:25;;:46;17780:91;;-1:-1:-1;17854:5:0;17847:12;;17780:91;-1:-1:-1;17890:4:0;17644:258;;:::o;12204:272::-;6882:3;;-1:-1:-1;;;;;6882:3:0;6868:10;:17;6860:51;;;;;-1:-1:-1;;;6860:51:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6860:51:0;;;;;;;;;;;;;;;12338:16:::1;:23;12320:7;:14;:41;12312:84;;;::::0;;-1:-1:-1;;;12312:84:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;12407:16:::0;;::::1;::::0;:6:::1;::::0;:16:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;12434:34:0;;::::1;::::0;:15:::1;::::0;:34:::1;::::0;::::1;::::0;::::1;:::i;14909:310::-:0;8930:10;8921:20;;;;:8;:20;;;;;;;;8913:57;;;;;-1:-1:-1;;;8913:57:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8913:57:0;;;;;;;;;;;;;;;14999:10:::1;14977:33;::::0;;;:21:::1;:33;::::0;;;;;::::1;;14976:34;14968:75;;;::::0;;-1:-1:-1;;;14968:75:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;14968:75:0;;;;;;;;;;;;;::::1;;15076:10;15054:33;::::0;;;:21:::1;:33;::::0;;;;:40;;-1:-1:-1;;15054:40:0::1;15090:4;15054:40:::0;;::::1;::::0;;;15133:25:::1;::::0;:32:::1;::::0;:29:::1;:32::i;:::-;15105:25;:60:::0;15183:28:::1;::::0;;15200:10:::1;15183:28:::0;;;;::::1;::::0;;;;::::1;::::0;;::::1;14909:310::o:0;11370:125::-;9050:10;9040:21;;;;:9;:21;;;;;;;;9032:58;;;;;-1:-1:-1;;;9032:58:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9032:58:0;;;;;;;;;;;;;;;11453:15:::1;:34:::0;;;::::1;;-1:-1:-1::0;;;11453:34:0::1;-1:-1:-1::0;;;;11453:34:0;;::::1;::::0;;;::::1;::::0;;11370:125::o;6939:76::-;6882:3;;-1:-1:-1;;;;;6882:3:0;6868:10;:17;6860:51;;;;;-1:-1:-1;;;6860:51:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6860:51:0;;;;;;;;;;;;;;;6997:3:::1;:10:::0;;-1:-1:-1;;;;;;6997:10:0::1;-1:-1:-1::0;;;;;6997:10:0;;;::::1;::::0;;;::::1;::::0;;6939:76::o;8272:41::-;;;;;;;;;;;;;:::o;11234:128::-;6882:3;;-1:-1:-1;;;;;6882:3:0;6868:10;:17;6860:51;;;;;-1:-1:-1;;;6860:51:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6860:51:0;;;;;;;;;;;;;;;11318:16:::1;:36:::0;11234:128::o;12055:141::-;9179:12;;-1:-1:-1;;;;;9179:12:0;9165:10;:26;9157:63;;;;;-1:-1:-1;;;9157:63:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9157:63:0;;;;;;;;;;;;;;;12150:17:::1;:38:::0;12055:141::o;7382:65::-;7422:25;7382:65;:::o;7812:40::-;;;;:::o;19100:826::-;19189:16;;19168:4;;19189:20;19185:215;;19290:16;;19269;;19252:34;;:12;;:16;:34::i;:::-;:54;;19226:162;;;;-1:-1:-1;;;19226:162:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19453:16;;19433:37;;:15;;:19;:37::i;:::-;19420:10;:50;19412:108;;;;-1:-1:-1;;;19412:108:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19572:16;;19552:37;;:15;;:19;:37::i;:::-;19539:10;:50;19531:110;;;;-1:-1:-1;;;19531:110:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19760:13;;19747:10;:26;19743:71;;;-1:-1:-1;19797:5:0;19790:12;;19743:71;-1:-1:-1;19826:13:0;:26;;;19882:12;19863:16;:31;19914:4;19100:826;;;;:::o;2403:471::-;2461:7;2706:6;2702:47;;-1:-1:-1;2736:1:0;2729:8;;2702:47;2773:5;;;2777:1;2773;:5;:1;2797:5;;;;;:10;2789:56;;;;-1:-1:-1;;;2789:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2865:1;-1:-1:-1;2403:471:0;;;;;:::o;3350:132::-;3408:7;3435:39;3439:1;3442;3435:39;;;;;;;;;;;;;-1:-1:-1;;;3435:39:0;;;:3;:39::i;18802:290::-;-1:-1:-1;;;;;18942:30:0;;18938:69;;18989:7;;18938:69;19036:16;-1:-1:-1;;;;;19019:49:0;;19069:6;19077;19019:65;;;;;;;;;;;;;-1:-1:-1;;;;;19019:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18802:290;;;:::o;17910:884::-;17997:17;18017:33;18039:10;18017:21;:33::i;:::-;17997:53;;18067:12;18063:724;;;18123:15;;-1:-1:-1;;;;;18123:15:0;18096:24;18155:621;18179:1;18175;:5;18155:621;;;18255:6;:13;18222:1;;18246:22;;18242:77;;18293:7;;;;;;18242:77;18476:6;:9;;18358:2;:6;;;18400:22;;;7422:25;18399:40;;18339:16;;18476:6;18363:1;;18476:9;;;;;;;;;;;;;;;18529:15;:18;;-1:-1:-1;;;;;18476:9:0;;;;-1:-1:-1;18529:15:0;18545:1;;18529:18;;;;;;;;;;;;;;;;-1:-1:-1;18590:46:0;18529:18;18590:26;:5;-1:-1:-1;;;18590:9:0;:26::i;:46::-;-1:-1:-1;;;;;18655:13:0;;;;;;:6;:13;;;;;:29;;;18566:70;-1:-1:-1;18705:55:0;18721:16;18662:5;18566:70;18705:15;:55::i;:::-;-1:-1:-1;;18182:3:0;;;;;-1:-1:-1;18155:621:0;;-1:-1:-1;;;18155:621:0;1479:136;1537:7;1564:43;1568:1;1571;1564:43;;;;;;;;;;;;;;;;;:3;:43::i;1015:181::-;1073:7;1105:5;;;1129:6;;;;1121:46;;;;;-1:-1:-1;;;1121:46:0;;;;;;;;;;;;-1:-1:-1;;;1121:46:0;;;;;;;;;;;;;;3978:312;4098:7;4133:12;4126:5;4118:28;;;;-1:-1:-1;;;4118:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4157:9;4173:1;4169;:5;;;;;;;3978:312;-1:-1:-1;;;;;3978:312:0:o;1918:226::-;2038:7;2074:12;2066:6;;;;2058:29;;;;-1:-1:-1;;;2058:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2110:5:0;;;1918:226::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Metadata Hash
8b7367d1d0a6c6122c60ba9e881c570af6c8dfc65c70ca6725ec4aa5929c91ad
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.