Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 300 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Auction Surplus | 17424441 | 295 days ago | IN | 0 ETH | 0.00351625 | ||||
Settle Debt | 16412201 | 437 days ago | IN | 0 ETH | 0.00099161 | ||||
Pop Debt From Qu... | 16412201 | 437 days ago | IN | 0 ETH | 0.00094201 | ||||
Auction Surplus | 15678486 | 540 days ago | IN | 0 ETH | 0.00157201 | ||||
Settle Debt | 15398241 | 582 days ago | IN | 0 ETH | 0.00077697 | ||||
Pop Debt From Qu... | 15398241 | 582 days ago | IN | 0 ETH | 0.00073811 | ||||
Settle Debt | 15373908 | 586 days ago | IN | 0 ETH | 0.00118455 | ||||
Pop Debt From Qu... | 15373908 | 586 days ago | IN | 0 ETH | 0.00104123 | ||||
Settle Debt | 15043931 | 638 days ago | IN | 0 ETH | 0.0017056 | ||||
Pop Debt From Qu... | 15043930 | 638 days ago | IN | 0 ETH | 0.00145393 | ||||
Pop Debt From Qu... | 15043930 | 638 days ago | IN | 0 ETH | 0.00159723 | ||||
Pop Debt From Qu... | 15043930 | 638 days ago | IN | 0 ETH | 0.00159723 | ||||
Pop Debt From Qu... | 15043930 | 638 days ago | IN | 0 ETH | 0.00159723 | ||||
Pop Debt From Qu... | 15043930 | 638 days ago | IN | 0 ETH | 0.00159723 | ||||
Pop Debt From Qu... | 15043930 | 638 days ago | IN | 0 ETH | 0.00159723 | ||||
Pop Debt From Qu... | 15043930 | 638 days ago | IN | 0 ETH | 0.00159723 | ||||
Pop Debt From Qu... | 15043930 | 638 days ago | IN | 0 ETH | 0.00159723 | ||||
Settle Debt | 15010423 | 644 days ago | IN | 0 ETH | 0.00228156 | ||||
Pop Debt From Qu... | 15010423 | 644 days ago | IN | 0 ETH | 0.00200591 | ||||
Settle Debt | 14990899 | 647 days ago | IN | 0 ETH | 0.00143721 | ||||
Pop Debt From Qu... | 14990899 | 647 days ago | IN | 0 ETH | 0.00126358 | ||||
Pop Debt From Qu... | 14990899 | 647 days ago | IN | 0 ETH | 0.00126358 | ||||
Settle Debt | 14985346 | 648 days ago | IN | 0 ETH | 0.00121829 | ||||
Pop Debt From Qu... | 14985346 | 648 days ago | IN | 0 ETH | 0.00107111 | ||||
Settle Debt | 14984586 | 649 days ago | IN | 0 ETH | 0.00136401 |
Latest 1 internal transaction
Advanced mode:
Parent Txn Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
11848437 | 1138 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
AccountingEngine
Compiler Version
v0.6.7+commit.b8d736ae
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-02-14 */ /** *Submitted for verification at Etherscan.io on 2021-02-02 */ /// AccountingEngine.sol // Copyright (C) 2018 Rain <[email protected]> // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see <https://www.gnu.org/licenses/>. pragma solidity 0.6.7; abstract contract DebtAuctionHouseLike { function startAuction(address incomeReceiver, uint256 amountToSell, uint256 initialBid) virtual public returns (uint256); function protocolToken() virtual public view returns (address); function disableContract() virtual external; function contractEnabled() virtual public view returns (uint256); } abstract contract SurplusAuctionHouseLike { function startAuction(uint256, uint256) virtual public returns (uint256); function protocolToken() virtual public view returns (address); function disableContract() virtual external; function contractEnabled() virtual public view returns (uint256); } abstract contract SAFEEngineLike { function coinBalance(address) virtual public view returns (uint256); function debtBalance(address) virtual public view returns (uint256); function settleDebt(uint256) virtual external; function transferInternalCoins(address,address,uint256) virtual external; function approveSAFEModification(address) virtual external; function denySAFEModification(address) virtual external; } abstract contract SystemStakingPoolLike { function canPrintProtocolTokens() virtual public view returns (bool); } abstract contract ProtocolTokenAuthorityLike { function authorizedAccounts(address) virtual public view returns (uint256); } contract AccountingEngine { // --- Auth --- mapping (address => uint256) public authorizedAccounts; /** * @notice Add auth to an account * @param account Account to add auth to */ function addAuthorization(address account) external isAuthorized { require(contractEnabled == 1, "AccountingEngine/contract-not-enabled"); authorizedAccounts[account] = 1; emit AddAuthorization(account); } /** * @notice Remove auth from an account * @param account Account to remove auth from */ function removeAuthorization(address account) external isAuthorized { authorizedAccounts[account] = 0; emit RemoveAuthorization(account); } /** * @notice Checks whether msg.sender can call an authed function **/ modifier isAuthorized { require(authorizedAccounts[msg.sender] == 1, "AccountingEngine/account-not-authorized"); _; } // --- Data --- // SAFE database SAFEEngineLike public safeEngine; // Contract that handles auctions for surplus stability fees (sell coins for protocol tokens that are then burned) SurplusAuctionHouseLike public surplusAuctionHouse; /** Contract that handles auctions for debt that couldn't be covered by collateral auctions (it prints protocol tokens in exchange for coins that will settle the debt) **/ DebtAuctionHouseLike public debtAuctionHouse; // Permissions registry for who can burn and mint protocol tokens ProtocolTokenAuthorityLike public protocolTokenAuthority; // Staking pool for protocol tokens SystemStakingPoolLike public systemStakingPool; // Contract that auctions extra surplus after settlement is triggered address public postSettlementSurplusDrain; // Address that receives extra surplus transfers address public extraSurplusReceiver; /** Debt blocks that need to be covered by auctions. There is a delay to pop debt from this queue and either settle it with surplus that came from collateral auctions or with debt auctions that print protocol tokens **/ mapping (uint256 => uint256) public debtQueue; // [unix timestamp => rad] // Addresses that popped debt out of the queue mapping (uint256 => address) public debtPoppers; // [unix timestamp => address] // Total debt in the queue (that the system tries to cover with collateral auctions) uint256 public totalQueuedDebt; // [rad] // Total debt being auctioned in DebtAuctionHouse (printing protocol tokens for coins that will settle the debt) uint256 public totalOnAuctionDebt; // [rad] // When the last surplus auction was triggered uint256 public lastSurplusAuctionTime; // [unix timestamp] // When the last surplus transfer was triggered uint256 public lastSurplusTransferTime; // [unix timestamp] // Delay between surplus auctions uint256 public surplusAuctionDelay; // [seconds] // Delay between extra surplus transfers uint256 public surplusTransferDelay; // [seconds] // Delay after which debt can be popped from debtQueue uint256 public popDebtDelay; // [seconds] // Amount of protocol tokens to be minted post-auction uint256 public initialDebtAuctionMintedTokens; // [wad] // Amount of debt sold in one debt auction (initial coin bid for initialDebtAuctionMintedTokens protocol tokens) uint256 public debtAuctionBidSize; // [rad] // Whether the system transfers surplus instead of auctioning it uint256 public extraSurplusIsTransferred; // Amount of surplus stability fees sold in one surplus auction uint256 public surplusAuctionAmountToSell; // [rad] // Amount of extra surplus to transfer uint256 public surplusTransferAmount; // [rad] // Amount of stability fees that need to accrue in this contract before any surplus auction can start uint256 public surplusBuffer; // [rad] // Time to wait (post settlement) until any remaining surplus can be transferred to the settlement auctioneer uint256 public disableCooldown; // [seconds] // When the contract was disabled uint256 public disableTimestamp; // [unix timestamp] // Whether this contract is enabled or not uint256 public contractEnabled; // --- Events --- event AddAuthorization(address account); event RemoveAuthorization(address account); event ModifyParameters(bytes32 indexed parameter, uint256 data); event ModifyParameters(bytes32 indexed parameter, address data); event PushDebtToQueue(uint256 indexed timestamp, uint256 debtQueueBlock, uint256 totalQueuedDebt); event PopDebtFromQueue(uint256 indexed timestamp, uint256 debtQueueBlock, uint256 totalQueuedDebt); event SettleDebt(uint256 rad, uint256 coinBalance, uint256 debtBalance); event CancelAuctionedDebtWithSurplus(uint rad, uint256 totalOnAuctionDebt, uint256 coinBalance, uint256 debtBalance); event AuctionDebt(uint256 indexed id, uint256 totalOnAuctionDebt, uint256 debtBalance); event AuctionSurplus(uint256 indexed id, uint256 lastSurplusAuctionTime, uint256 coinBalance); event DisableContract(uint256 disableTimestamp, uint256 disableCooldown, uint256 coinBalance, uint256 debtBalance); event TransferPostSettlementSurplus(address postSettlementSurplusDrain, uint256 coinBalance, uint256 debtBalance); event TransferExtraSurplus(address indexed extraSurplusReceiver, uint256 lastSurplusAuctionTime, uint256 coinBalance); // --- Init --- constructor( address safeEngine_, address surplusAuctionHouse_, address debtAuctionHouse_ ) public { authorizedAccounts[msg.sender] = 1; safeEngine = SAFEEngineLike(safeEngine_); surplusAuctionHouse = SurplusAuctionHouseLike(surplusAuctionHouse_); debtAuctionHouse = DebtAuctionHouseLike(debtAuctionHouse_); safeEngine.approveSAFEModification(surplusAuctionHouse_); lastSurplusAuctionTime = now; lastSurplusTransferTime = now; contractEnabled = 1; emit AddAuthorization(msg.sender); } // --- Math --- function addition(uint256 x, uint256 y) internal pure returns (uint256 z) { require((z = x + y) >= x, "AccountingEngine/add-overflow"); } function subtract(uint256 x, uint256 y) internal pure returns (uint256 z) { require((z = x - y) <= x, "AccountingEngine/sub-underflow"); } function minimum(uint256 x, uint256 y) internal pure returns (uint256 z) { return x <= y ? x : y; } // --- Administration --- /** * @notice Modify general uint256 params for auctions * @param parameter The name of the parameter modified * @param data New value for the parameter */ function modifyParameters(bytes32 parameter, uint256 data) external isAuthorized { if (parameter == "surplusAuctionDelay") surplusAuctionDelay = data; else if (parameter == "surplusTransferDelay") surplusTransferDelay = data; else if (parameter == "popDebtDelay") popDebtDelay = data; else if (parameter == "surplusAuctionAmountToSell") surplusAuctionAmountToSell = data; else if (parameter == "surplusTransferAmount") surplusTransferAmount = data; else if (parameter == "extraSurplusIsTransferred") extraSurplusIsTransferred = data; else if (parameter == "debtAuctionBidSize") debtAuctionBidSize = data; else if (parameter == "initialDebtAuctionMintedTokens") initialDebtAuctionMintedTokens = data; else if (parameter == "surplusBuffer") surplusBuffer = data; else if (parameter == "lastSurplusTransferTime") { require(data > now, "AccountingEngine/invalid-lastSurplusTransferTime"); lastSurplusTransferTime = data; } else if (parameter == "lastSurplusAuctionTime") { require(data > now, "AccountingEngine/invalid-lastSurplusAuctionTime"); lastSurplusAuctionTime = data; } else if (parameter == "disableCooldown") disableCooldown = data; else revert("AccountingEngine/modify-unrecognized-param"); emit ModifyParameters(parameter, data); } /** * @notice Modify dependency addresses * @param parameter The name of the auction type we want to change the address for * @param data New address for the auction */ function modifyParameters(bytes32 parameter, address data) external isAuthorized { if (parameter == "surplusAuctionHouse") { safeEngine.denySAFEModification(address(surplusAuctionHouse)); surplusAuctionHouse = SurplusAuctionHouseLike(data); safeEngine.approveSAFEModification(data); } else if (parameter == "systemStakingPool") { systemStakingPool = SystemStakingPoolLike(data); systemStakingPool.canPrintProtocolTokens(); } else if (parameter == "debtAuctionHouse") debtAuctionHouse = DebtAuctionHouseLike(data); else if (parameter == "postSettlementSurplusDrain") postSettlementSurplusDrain = data; else if (parameter == "protocolTokenAuthority") protocolTokenAuthority = ProtocolTokenAuthorityLike(data); else if (parameter == "extraSurplusReceiver") extraSurplusReceiver = data; else revert("AccountingEngine/modify-unrecognized-param"); emit ModifyParameters(parameter, data); } // --- Getters --- function unqueuedUnauctionedDebt() public view returns (uint256) { return subtract(subtract(safeEngine.debtBalance(address(this)), totalQueuedDebt), totalOnAuctionDebt); } function canPrintProtocolTokens() public view returns (bool) { if (address(systemStakingPool) == address(0)) return true; try systemStakingPool.canPrintProtocolTokens() returns (bool ok) { return ok; } catch(bytes memory) { return true; } } // --- Debt Queueing --- /** * @notice Push debt (that the system tries to cover with collateral auctions) to a queue * @dev Debt is locked in a queue to give the system enough time to auction collateral * and gather surplus * @param debtBlock Amount of debt to push */ function pushDebtToQueue(uint256 debtBlock) external isAuthorized { debtQueue[now] = addition(debtQueue[now], debtBlock); totalQueuedDebt = addition(totalQueuedDebt, debtBlock); emit PushDebtToQueue(now, debtQueue[now], totalQueuedDebt); } /** * @notice A block of debt can be popped from the queue after popDebtDelay seconds passed since it was * added there * @param debtBlockTimestamp Timestamp of the block of debt that should be popped out */ function popDebtFromQueue(uint256 debtBlockTimestamp) external { require(addition(debtBlockTimestamp, popDebtDelay) <= now, "AccountingEngine/pop-debt-delay-not-passed"); require(debtQueue[debtBlockTimestamp] > 0, "AccountingEngine/null-debt-block"); totalQueuedDebt = subtract(totalQueuedDebt, debtQueue[debtBlockTimestamp]); debtPoppers[debtBlockTimestamp] = msg.sender; emit PopDebtFromQueue(now, debtQueue[debtBlockTimestamp], totalQueuedDebt); debtQueue[debtBlockTimestamp] = 0; } // Debt settlement /** * @notice Destroy an equal amount of coins and debt * @dev We can only destroy debt that is not locked in the queue and also not in a debt auction * @param rad Amount of coins/debt to destroy (number with 45 decimals) **/ function settleDebt(uint256 rad) public { require(rad <= safeEngine.coinBalance(address(this)), "AccountingEngine/insufficient-surplus"); require(rad <= unqueuedUnauctionedDebt(), "AccountingEngine/insufficient-debt"); safeEngine.settleDebt(rad); emit SettleDebt(rad, safeEngine.coinBalance(address(this)), safeEngine.debtBalance(address(this))); } /** * @notice Use surplus coins to destroy debt that is/was in a debt auction * @param rad Amount of coins/debt to destroy (number with 45 decimals) **/ function cancelAuctionedDebtWithSurplus(uint256 rad) external { require(rad <= totalOnAuctionDebt, "AccountingEngine/not-enough-debt-being-auctioned"); require(rad <= safeEngine.coinBalance(address(this)), "AccountingEngine/insufficient-surplus"); totalOnAuctionDebt = subtract(totalOnAuctionDebt, rad); safeEngine.settleDebt(rad); emit CancelAuctionedDebtWithSurplus(rad, totalOnAuctionDebt, safeEngine.coinBalance(address(this)), safeEngine.debtBalance(address(this))); } // Debt auction /** * @notice Start a debt auction (print protocol tokens in exchange for coins so that the * system can accumulate surplus) * @dev We can only auction debt that is not already being auctioned and is not locked in the debt queue **/ function auctionDebt() external returns (uint256 id) { require(debtAuctionBidSize <= unqueuedUnauctionedDebt(), "AccountingEngine/insufficient-debt"); settleDebt(safeEngine.coinBalance(address(this))); require(safeEngine.coinBalance(address(this)) == 0, "AccountingEngine/surplus-not-zero"); require(debtAuctionHouse.protocolToken() != address(0), "AccountingEngine/debt-auction-house-null-prot"); require(protocolTokenAuthority.authorizedAccounts(address(debtAuctionHouse)) == 1, "AccountingEngine/debt-auction-house-cannot-print-prot"); require(canPrintProtocolTokens(), "AccountingEngine/staking-pool-denies-printing"); totalOnAuctionDebt = addition(totalOnAuctionDebt, debtAuctionBidSize); id = debtAuctionHouse.startAuction(address(this), initialDebtAuctionMintedTokens, debtAuctionBidSize); emit AuctionDebt(id, totalOnAuctionDebt, safeEngine.debtBalance(address(this))); } // Surplus auction /** * @notice Start a surplus auction * @dev We can only auction surplus if we wait at least 'surplusAuctionDelay' seconds since the last * auction trigger, if we keep enough surplus in the buffer and if there is no bad debt left to settle **/ function auctionSurplus() external returns (uint256 id) { require(extraSurplusIsTransferred != 1, "AccountingEngine/surplus-transfer-no-auction"); require(surplusAuctionAmountToSell > 0, "AccountingEngine/null-amount-to-auction"); settleDebt(unqueuedUnauctionedDebt()); require( now >= addition(lastSurplusAuctionTime, surplusAuctionDelay), "AccountingEngine/surplus-auction-delay-not-passed" ); require( safeEngine.coinBalance(address(this)) >= addition(addition(safeEngine.debtBalance(address(this)), surplusAuctionAmountToSell), surplusBuffer), "AccountingEngine/insufficient-surplus" ); require( unqueuedUnauctionedDebt() == 0, "AccountingEngine/debt-not-zero" ); require(surplusAuctionHouse.protocolToken() != address(0), "AccountingEngine/surplus-auction-house-null-prot"); lastSurplusAuctionTime = now; lastSurplusTransferTime = now; id = surplusAuctionHouse.startAuction(surplusAuctionAmountToSell, 0); emit AuctionSurplus(id, lastSurplusAuctionTime, safeEngine.coinBalance(address(this))); } // Extra surplus transfers/surplus auction alternative /** * @notice Send surplus to an address as an alternative to auctions * @dev We can only transfer surplus if we wait at least 'surplusTransferDelay' seconds since the last * transfer, if we keep enough surplus in the buffer and if there is no bad debt left to settle **/ function transferExtraSurplus() external { require(extraSurplusIsTransferred == 1, "AccountingEngine/surplus-auction-not-transfer"); require(extraSurplusReceiver != address(0), "AccountingEngine/null-surplus-receiver"); require(surplusTransferAmount > 0, "AccountingEngine/null-amount-to-transfer"); settleDebt(unqueuedUnauctionedDebt()); require( now >= addition(lastSurplusTransferTime, surplusTransferDelay), "AccountingEngine/surplus-transfer-delay-not-passed" ); require( safeEngine.coinBalance(address(this)) >= addition(addition(safeEngine.debtBalance(address(this)), surplusTransferAmount), surplusBuffer), "AccountingEngine/insufficient-surplus" ); require( unqueuedUnauctionedDebt() == 0, "AccountingEngine/debt-not-zero" ); lastSurplusTransferTime = now; lastSurplusAuctionTime = now; safeEngine.transferInternalCoins(address(this), extraSurplusReceiver, surplusTransferAmount); emit TransferExtraSurplus(extraSurplusReceiver, lastSurplusTransferTime, safeEngine.coinBalance(address(this))); } /** * @notice Disable this contract (normally called by Global Settlement) * @dev When it's disabled, the contract will record the current timestamp. Afterwards, * the contract tries to settle as much debt as possible (if there's any) with any surplus that's * left in the system **/ function disableContract() external isAuthorized { require(contractEnabled == 1, "AccountingEngine/contract-not-enabled"); contractEnabled = 0; totalQueuedDebt = 0; totalOnAuctionDebt = 0; disableTimestamp = now; surplusAuctionHouse.disableContract(); debtAuctionHouse.disableContract(); safeEngine.settleDebt(minimum(safeEngine.coinBalance(address(this)), safeEngine.debtBalance(address(this)))); emit DisableContract(disableTimestamp, disableCooldown, safeEngine.coinBalance(address(this)), safeEngine.debtBalance(address(this))); } /** * @notice Transfer any remaining surplus after the disable cooldown has passed. Meant to be a backup in case GlobalSettlement.processSAFE has a bug, governance doesn't have power over the system and there's still surplus left in the AccountingEngine which then blocks GlobalSettlement.setOutstandingCoinSupply. * @dev Transfer any remaining surplus after disableCooldown seconds have passed since disabling the contract **/ function transferPostSettlementSurplus() external { require(contractEnabled == 0, "AccountingEngine/still-enabled"); require(addition(disableTimestamp, disableCooldown) <= now, "AccountingEngine/cooldown-not-passed"); safeEngine.settleDebt(minimum(safeEngine.coinBalance(address(this)), safeEngine.debtBalance(address(this)))); safeEngine.transferInternalCoins(address(this), postSettlementSurplusDrain, safeEngine.coinBalance(address(this))); emit TransferPostSettlementSurplus( postSettlementSurplusDrain, safeEngine.coinBalance(address(this)), safeEngine.debtBalance(address(this)) ); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"safeEngine_","type":"address"},{"internalType":"address","name":"surplusAuctionHouse_","type":"address"},{"internalType":"address","name":"debtAuctionHouse_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"AddAuthorization","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalOnAuctionDebt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"debtBalance","type":"uint256"}],"name":"AuctionDebt","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lastSurplusAuctionTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"coinBalance","type":"uint256"}],"name":"AuctionSurplus","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"rad","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalOnAuctionDebt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"coinBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"debtBalance","type":"uint256"}],"name":"CancelAuctionedDebtWithSurplus","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"disableTimestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"disableCooldown","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"coinBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"debtBalance","type":"uint256"}],"name":"DisableContract","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"parameter","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"data","type":"uint256"}],"name":"ModifyParameters","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"parameter","type":"bytes32"},{"indexed":false,"internalType":"address","name":"data","type":"address"}],"name":"ModifyParameters","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"debtQueueBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalQueuedDebt","type":"uint256"}],"name":"PopDebtFromQueue","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"debtQueueBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalQueuedDebt","type":"uint256"}],"name":"PushDebtToQueue","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"RemoveAuthorization","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"rad","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"coinBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"debtBalance","type":"uint256"}],"name":"SettleDebt","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"extraSurplusReceiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"lastSurplusAuctionTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"coinBalance","type":"uint256"}],"name":"TransferExtraSurplus","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"postSettlementSurplusDrain","type":"address"},{"indexed":false,"internalType":"uint256","name":"coinBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"debtBalance","type":"uint256"}],"name":"TransferPostSettlementSurplus","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addAuthorization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"auctionDebt","outputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"auctionSurplus","outputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"authorizedAccounts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"canPrintProtocolTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rad","type":"uint256"}],"name":"cancelAuctionedDebtWithSurplus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractEnabled","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"debtAuctionBidSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"debtAuctionHouse","outputs":[{"internalType":"contract DebtAuctionHouseLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"debtPoppers","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"debtQueue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableCooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"extraSurplusIsTransferred","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"extraSurplusReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialDebtAuctionMintedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastSurplusAuctionTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastSurplusTransferTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"parameter","type":"bytes32"},{"internalType":"address","name":"data","type":"address"}],"name":"modifyParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"parameter","type":"bytes32"},{"internalType":"uint256","name":"data","type":"uint256"}],"name":"modifyParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"popDebtDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"debtBlockTimestamp","type":"uint256"}],"name":"popDebtFromQueue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"postSettlementSurplusDrain","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolTokenAuthority","outputs":[{"internalType":"contract ProtocolTokenAuthorityLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"debtBlock","type":"uint256"}],"name":"pushDebtToQueue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeAuthorization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"safeEngine","outputs":[{"internalType":"contract SAFEEngineLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rad","type":"uint256"}],"name":"settleDebt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"surplusAuctionAmountToSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"surplusAuctionDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"surplusAuctionHouse","outputs":[{"internalType":"contract SurplusAuctionHouseLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"surplusBuffer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"surplusTransferAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"surplusTransferDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"systemStakingPool","outputs":[{"internalType":"contract SystemStakingPoolLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalOnAuctionDebt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalQueuedDebt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transferExtraSurplus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferPostSettlementSurplus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unqueuedUnauctionedDebt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051620030c6380380620030c68339818101604052606081101561003557600080fd5b5080516020808301516040938401513360009081529283905284832060019081905580546001600160a01b038087166001600160a01b03199283161792839055600280548287169084168117909155600380548387169416939093179092558751631b29a84160e31b815260048101929092529651959693959294919093169263d94d4208926024808301939282900301818387803b1580156100d757600080fd5b505af11580156100eb573d6000803e3d6000fd5b505042600c819055600d55505060016019556040805133815290517f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f70001029181900360200190a1505050612f8380620001436000396000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c8063793d914911610146578063cc54f5e8116100c3578063d8872aeb11610087578063d8872aeb146104b0578063f27c3562146104b8578063fa8838af146104c0578063fc7966de146104c8578063fe4f5890146104d0578063ff713a9f146104f357610253565b8063cc54f5e814610474578063cdacaaca1461047c578063d405665514610484578063d6881367146104a0578063d72f0e43146104a857610253565b8063a4ea79441161010a578063a4ea794414610422578063a71036871461042a578063a8b30a9f14610447578063b39f841c14610464578063c41f55a01461046c57610253565b8063793d9149146103c7578063894ba833146103cf5780638b24dc3e146103d757806394f3f81d146103f4578063a34231de1461041a57610253565b80633dc4ab1d116101d45780635221e882116101985780635221e8821461037b5780635dabda40146103835780635fb9340c1461038b5780636614f0101461039357806367aea313146103bf57610253565b80633dc4ab1d1461032257806341b3a0d91461033f57806344e330c414610347578063492f9b3a1461034f5780634e6afb9e1461035757610253565b80632d09f11d1161021b5780632d09f11d146102c757806335b28153146102cf57806337b7eca1146102f55780633977a319146102fd5780633d2fa89b1461031a57610253565b80630502cddc146102585780630f44d6bd1461027257806324ba58841461027a57806327a0bb33146102a05780632a608d5b146102bf575b600080fd5b6102606104fb565b60408051918252519081900360200190f35b610260610501565b6102606004803603602081101561029057600080fd5b50356001600160a01b0316610507565b6102bd600480360360208110156102b657600080fd5b5035610519565b005b6102606107ab565b6102606107b1565b6102bd600480360360208110156102e557600080fd5b50356001600160a01b03166107b7565b610260610898565b6102606004803603602081101561031357600080fd5b503561089e565b6102606108b0565b6102bd6004803603602081101561033857600080fd5b5035610d37565b610260610fde565b6102bd610fe4565b6102606113e7565b61035f6113ed565b604080516001600160a01b039092168252519081900360200190f35b6102606113fc565b610260611402565b610260611408565b6102bd600480360360408110156103a957600080fd5b50803590602001356001600160a01b031661140e565b61035f61178a565b610260611799565b6102bd61179f565b6102bd600480360360208110156103ed57600080fd5b5035611b8f565b6102bd6004803603602081101561040a57600080fd5b50356001600160a01b0316611ccd565b61035f611d6c565b610260611d7b565b61035f6004803603602081101561044057600080fd5b5035611d81565b6102bd6004803603602081101561045d57600080fd5b5035611d9c565b61035f611e78565b610260611e87565b61035f611e8d565b61035f611e9c565b61048c611eab565b604080519115158252519081900360200190f35b61035f611f7d565b610260611f8c565b610260611f92565b610260612024565b6102bd61202a565b6102606123a6565b6102bd600480360360408110156104e657600080fd5b50803590602001356123ac565b6102606126a8565b60125481565b600b5481565b60006020819052908152604090205481565b60015460408051633eaf7a0360e21b815230600482015290516001600160a01b039092169163fabde80c91602480820192602092909190829003018186803b15801561056457600080fd5b505afa158015610578573d6000803e3d6000fd5b505050506040513d602081101561058e57600080fd5b50518111156105ce5760405162461bcd60e51b8152600401808060200182810382526025815260200180612c606025913960400191505060405180910390fd5b6105d6611f92565b8111156106145760405162461bcd60e51b8152600401808060200182810382526022815260200180612d4e6022913960400191505060405180910390fd5b600154604080516327a0bb3360e01b81526004810184905290516001600160a01b03909216916327a0bb339160248082019260009290919082900301818387803b15801561066157600080fd5b505af1158015610675573d6000803e3d6000fd5b505060015460408051633eaf7a0360e21b815230600482015290517faa3cda6ae2bb6ad9e5234a74ba9fede531dec740965eafd0b7ac9d3b90443f8694508593506001600160a01b039092169163fabde80c91602480820192602092909190829003018186803b1580156106e857600080fd5b505afa1580156106fc573d6000803e3d6000fd5b505050506040513d602081101561071257600080fd5b5051600154604080516311005b0760e01b815230600482015290516001600160a01b03909216916311005b0791602480820192602092909190829003018186803b15801561075f57600080fd5b505afa158015610773573d6000803e3d6000fd5b505050506040513d602081101561078957600080fd5b505160408051938452602084019290925282820152519081900360600190a150565b60165481565b600a5481565b336000908152602081905260409020546001146108055760405162461bcd60e51b8152600401808060200182810382526027815260200180612cff6027913960400191505060405180910390fd5b6019546001146108465760405162461bcd60e51b8152600401808060200182810382526025815260200180612dfc6025913960400191505060405180910390fd5b6001600160a01b0381166000818152602081815260409182902060019055815192835290517f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f70001029281900390910190a150565b600f5481565b60086020526000908152604090205481565b60006108ba611f92565b60125411156108fa5760405162461bcd60e51b8152600401808060200182810382526022815260200180612d4e6022913960400191505060405180910390fd5b60015460408051633eaf7a0360e21b81523060048201529051610977926001600160a01b03169163fabde80c916024808301926020929190829003018186803b15801561094657600080fd5b505afa15801561095a573d6000803e3d6000fd5b505050506040513d602081101561097057600080fd5b5051610519565b60015460408051633eaf7a0360e21b815230600482015290516001600160a01b039092169163fabde80c91602480820192602092909190829003018186803b1580156109c257600080fd5b505afa1580156109d6573d6000803e3d6000fd5b505050506040513d60208110156109ec57600080fd5b505115610a2a5760405162461bcd60e51b8152600401808060200182810382526021815260200180612cb46021913960400191505060405180910390fd5b60035460408051631a465fe160e01b815290516000926001600160a01b031691631a465fe1916004808301926020929190829003018186803b158015610a6f57600080fd5b505afa158015610a83573d6000803e3d6000fd5b505050506040513d6020811015610a9957600080fd5b50516001600160a01b03161415610ae15760405162461bcd60e51b815260040180806020018281038252602d815260200180612d70602d913960400191505060405180910390fd5b600480546003546040805163092e962160e21b81526001600160a01b0392831694810194909452519116916324ba5884916024808301926020929190829003018186803b158015610b3157600080fd5b505afa158015610b45573d6000803e3d6000fd5b505050506040513d6020811015610b5b57600080fd5b5051600114610b9b5760405162461bcd60e51b8152600401808060200182810382526035815260200180612f196035913960400191505060405180910390fd5b610ba3611eab565b610bde5760405162461bcd60e51b815260040180806020018281038252602d815260200180612dcf602d913960400191505060405180910390fd5b610bec600b54601254612ad3565b600b55600354601154601254604080516356dd475560e01b815230600482015260248101939093526044830191909152516001600160a01b03909216916356dd4755916064808201926020929091908290030181600087803b158015610c5157600080fd5b505af1158015610c65573d6000803e3d6000fd5b505050506040513d6020811015610c7b57600080fd5b5051600b54600154604080516311005b0760e01b8152306004820152905193945084937fa92a5e554d2e8bfa74170e5591680f0c7eb5e56c545c5f53e253500e50d6d52d93926001600160a01b0316916311005b07916024808301926020929190829003018186803b158015610cf057600080fd5b505afa158015610d04573d6000803e3d6000fd5b505050506040513d6020811015610d1a57600080fd5b50516040805192835260208301919091528051918290030190a290565b600b54811115610d785760405162461bcd60e51b8152600401808060200182810382526030815260200180612bd36030913960400191505060405180910390fd5b60015460408051633eaf7a0360e21b815230600482015290516001600160a01b039092169163fabde80c91602480820192602092909190829003018186803b158015610dc357600080fd5b505afa158015610dd7573d6000803e3d6000fd5b505050506040513d6020811015610ded57600080fd5b5051811115610e2d5760405162461bcd60e51b8152600401808060200182810382526025815260200180612c606025913960400191505060405180910390fd5b610e39600b5482612b31565b600b55600154604080516327a0bb3360e01b81526004810184905290516001600160a01b03909216916327a0bb339160248082019260009290919082900301818387803b158015610e8957600080fd5b505af1158015610e9d573d6000803e3d6000fd5b5050600b5460015460408051633eaf7a0360e21b815230600482015290517f5849130fd802a9386171d8d3f31c08fc5cf9b28821d86508afd88cb065a2af6f95508694506001600160a01b039092169163fabde80c91602480820192602092909190829003018186803b158015610f1357600080fd5b505afa158015610f27573d6000803e3d6000fd5b505050506040513d6020811015610f3d57600080fd5b5051600154604080516311005b0760e01b815230600482015290516001600160a01b03909216916311005b0791602480820192602092909190829003018186803b158015610f8a57600080fd5b505afa158015610f9e573d6000803e3d6000fd5b505050506040513d6020811015610fb457600080fd5b5051604080519485526020850193909352838301919091526060830152519081900360800190a150565b60195481565b6013546001146110255760405162461bcd60e51b815260040180806020018281038252602d815260200180612ebc602d913960400191505060405180910390fd5b6007546001600160a01b031661106c5760405162461bcd60e51b8152600401808060200182810382526026815260200180612e216026913960400191505060405180910390fd5b6000601554116110ad5760405162461bcd60e51b8152600401808060200182810382526028815260200180612d266028913960400191505060405180910390fd5b6110bd6110b8611f92565b610519565b6110cb600d54600f54612ad3565b4210156111095760405162461bcd60e51b8152600401808060200182810382526032815260200180612d9d6032913960400191505060405180910390fd5b600154604080516311005b0760e01b8152306004820152905161119892611190926001600160a01b03909116916311005b0791602480820192602092909190829003018186803b15801561115c57600080fd5b505afa158015611170573d6000803e3d6000fd5b505050506040513d602081101561118657600080fd5b5051601554612ad3565b601654612ad3565b60015460408051633eaf7a0360e21b815230600482015290516001600160a01b039092169163fabde80c91602480820192602092909190829003018186803b1580156111e357600080fd5b505afa1580156111f7573d6000803e3d6000fd5b505050506040513d602081101561120d57600080fd5b5051101561124c5760405162461bcd60e51b8152600401808060200182810382526025815260200180612c606025913960400191505060405180910390fd5b611254611f92565b156112a6576040805162461bcd60e51b815260206004820152601e60248201527f4163636f756e74696e67456e67696e652f646562742d6e6f742d7a65726f0000604482015290519081900360640190fd5b42600d819055600c5560015460075460155460408051633beaf2b760e21b81523060048201526001600160a01b039384166024820152604481019290925251919092169163efabcadc91606480830192600092919082900301818387803b15801561131057600080fd5b505af1158015611324573d6000803e3d6000fd5b5050600754600d5460015460408051633eaf7a0360e21b815230600482015290516001600160a01b0394851696507f09744986d27c373d65dbb8bf13661e8b68577739e9c4a77c5cd6f1682c009607955092939091169163fabde80c91602480820192602092909190829003018186803b1580156113a157600080fd5b505afa1580156113b5573d6000803e3d6000fd5b505050506040513d60208110156113cb57600080fd5b50516040805192835260208301919091528051918290030190a2565b60185481565b6007546001600160a01b031681565b60105481565b60135481565b60175481565b3360009081526020819052604090205460011461145c5760405162461bcd60e51b8152600401808060200182810382526027815260200180612cff6027913960400191505060405180910390fd5b8172737572706c757341756374696f6e486f75736560681b1415611563576001546002546040805163d49d786760e01b81526001600160a01b0392831660048201529051919092169163d49d786791602480830192600092919082900301818387803b1580156114cb57600080fd5b505af11580156114df573d6000803e3d6000fd5b5050600280546001600160a01b0319166001600160a01b0385811691821790925560015460408051631b29a84160e31b81526004810193909352519216935063d94d4208925060248082019260009290919082900301818387803b15801561154657600080fd5b505af115801561155a573d6000803e3d6000fd5b50505050611747565b81701cde5cdd195b54dd185ada5b99d41bdbdb607a1b141561160d57600580546001600160a01b0319166001600160a01b0383811691909117918290556040805163d405665560e01b81529051929091169163d405665591600480820192602092909190829003018186803b1580156115db57600080fd5b505afa1580156115ef573d6000803e3d6000fd5b505050506040513d602081101561160557600080fd5b506117479050565b816f6465627441756374696f6e486f75736560801b141561164857600380546001600160a01b0319166001600160a01b038316179055611747565b817f706f7374536574746c656d656e74537572706c7573447261696e000000000000141561169057600680546001600160a01b0319166001600160a01b038316179055611747565b817570726f746f636f6c546f6b656e417574686f7269747960501b14156116d157600480546001600160a01b0319166001600160a01b038316179055611747565b817332bc3a3930a9bab938363ab9a932b1b2b4bb32b960611b141561171057600780546001600160a01b0319166001600160a01b038316179055611747565b60405162461bcd60e51b815260040180806020018281038252602a815260200180612e6e602a913960400191505060405180910390fd5b604080516001600160a01b0383168152905183917fd91f38cf03346b5dc15fb60f9076f866295231ad3c3841a1051f8443f25170d1919081900360200190a25050565b6001546001600160a01b031681565b600e5481565b336000908152602081905260409020546001146117ed5760405162461bcd60e51b8152600401808060200182810382526027815260200180612cff6027913960400191505060405180910390fd5b60195460011461182e5760405162461bcd60e51b8152600401808060200182810382526025815260200180612dfc6025913960400191505060405180910390fd5b60006019819055600a819055600b819055426018556002546040805163894ba83360e01b815290516001600160a01b039092169263894ba8339260048084019382900301818387803b15801561188357600080fd5b505af1158015611897573d6000803e3d6000fd5b50505050600360009054906101000a90046001600160a01b03166001600160a01b031663894ba8336040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156118eb57600080fd5b505af11580156118ff573d6000803e3d6000fd5b505060015460408051633eaf7a0360e21b815230600482015290516001600160a01b0390921693506327a0bb339250611a0191849163fabde80c916024808301926020929190829003018186803b15801561195957600080fd5b505afa15801561196d573d6000803e3d6000fd5b505050506040513d602081101561198357600080fd5b5051600154604080516311005b0760e01b815230600482015290516001600160a01b03909216916311005b0791602480820192602092909190829003018186803b1580156119d057600080fd5b505afa1580156119e4573d6000803e3d6000fd5b505050506040513d60208110156119fa57600080fd5b5051612b89565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611a3757600080fd5b505af1158015611a4b573d6000803e3d6000fd5b505060185460175460015460408051633eaf7a0360e21b815230600482015290517ff444c796746af83b62874bc1bcf111eee758f29e8abd5b66019e455649487b7e965093945091926001600160a01b039091169163fabde80c916024808301926020929190829003018186803b158015611ac557600080fd5b505afa158015611ad9573d6000803e3d6000fd5b505050506040513d6020811015611aef57600080fd5b5051600154604080516311005b0760e01b815230600482015290516001600160a01b03909216916311005b0791602480820192602092909190829003018186803b158015611b3c57600080fd5b505afa158015611b50573d6000803e3d6000fd5b505050506040513d6020811015611b6657600080fd5b5051604080519485526020850193909352838301919091526060830152519081900360800190a1565b42611b9c82601054612ad3565b1115611bd95760405162461bcd60e51b815260040180806020018281038252602a815260200180612cd5602a913960400191505060405180910390fd5b600081815260086020526040902054611c39576040805162461bcd60e51b815260206004820181905260248201527f4163636f756e74696e67456e67696e652f6e756c6c2d646562742d626c6f636b604482015290519081900360640190fd5b600a54600082815260086020526040902054611c559190612b31565b600a908155600082815260096020908152604080832080546001600160a01b031916331790556008825291829020549254825193845290830152805142927f2a88971df34f4b7d590e86d77e5db54859c030b27c51e944a3d9e1d2bc6dbb4192908290030190a2600090815260086020526040812055565b33600090815260208190526040902054600114611d1b5760405162461bcd60e51b8152600401808060200182810382526027815260200180612cff6027913960400191505060405180910390fd5b6001600160a01b03811660008181526020818152604080832092909255815192835290517f8834a87e641e9716be4f34527af5d23e11624f1ddeefede6ad75a9acfc31b9039281900390910190a150565b6005546001600160a01b031681565b60155481565b6009602052600090815260409020546001600160a01b031681565b33600090815260208190526040902054600114611dea5760405162461bcd60e51b8152600401808060200182810382526027815260200180612cff6027913960400191505060405180910390fd5b42600090815260086020526040902054611e049082612ad3565b42600090815260086020526040902055600a54611e219082612ad3565b600a8190554260008181526008602090815260409182902054825190815290810193909352805191927f1833b2803878de6a92dfb6a19b452e31ec63baad0fd2e1e341e0dce55e4ed207929081900390910190a250565b6003546001600160a01b031681565b600d5481565b6004546001600160a01b031681565b6002546001600160a01b031681565b6005546000906001600160a01b0316611ec657506001611f7a565b600560009054906101000a90046001600160a01b03166001600160a01b031663d40566556040518163ffffffff1660e01b815260040160206040518083038186803b158015611f1457600080fd5b505afa925050508015611f3957506040513d6020811015611f3457600080fd5b505160015b611f77573d808015611f67576040519150601f19603f3d011682016040523d82523d6000602084013e611f6c565b606091505b506001915050611f7a565b90505b90565b6006546001600160a01b031681565b600c5481565b600154604080516311005b0760e01b81523060048201529051600092611f779261201c926001600160a01b03909216916311005b0791602480820192602092909190829003018186803b158015611fe857600080fd5b505afa158015611ffc573d6000803e3d6000fd5b505050506040513d602081101561201257600080fd5b5051600a54612b31565b600b54612b31565b60145481565b6019541561207f576040805162461bcd60e51b815260206004820152601e60248201527f4163636f756e74696e67456e67696e652f7374696c6c2d656e61626c65640000604482015290519081900360640190fd5b4261208e601854601754612ad3565b11156120cb5760405162461bcd60e51b8152600401808060200182810382526024815260200180612e986024913960400191505060405180910390fd5b60015460408051633eaf7a0360e21b815230600482015290516001600160a01b03909216916327a0bb339161212191849163fabde80c916024808301926020929190829003018186803b15801561195957600080fd5b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561215757600080fd5b505af115801561216b573d6000803e3d6000fd5b505060015460065460408051633eaf7a0360e21b8152306004820181905291516001600160a01b03948516965063efabcadc9550919390921691859163fabde80c91602480820192602092909190829003018186803b1580156121cd57600080fd5b505afa1580156121e1573d6000803e3d6000fd5b505050506040513d60208110156121f757600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b03948516600482015292909316602483015260448201529051606480830192600092919082900301818387803b15801561224e57600080fd5b505af1158015612262573d6000803e3d6000fd5b505060065460015460408051633eaf7a0360e21b815230600482015290517f618b53208bc1d7a537afbb52ff1788ab48eaa72099e2cc87ed9a251a4029d17995506001600160a01b039384169450919092169163fabde80c916024808301926020929190829003018186803b1580156122da57600080fd5b505afa1580156122ee573d6000803e3d6000fd5b505050506040513d602081101561230457600080fd5b5051600154604080516311005b0760e01b815230600482015290516001600160a01b03909216916311005b0791602480820192602092909190829003018186803b15801561235157600080fd5b505afa158015612365573d6000803e3d6000fd5b505050506040513d602081101561237b57600080fd5b5051604080516001600160a01b039094168452602084019290925282820152519081900360600190a1565b60115481565b336000908152602081905260409020546001146123fa5760405162461bcd60e51b8152600401808060200182810382526027815260200180612cff6027913960400191505060405180910390fd5b8172737572706c757341756374696f6e44656c617960681b141561242257600e81905561266e565b8173737572706c75735472616e7366657244656c617960601b141561244b57600f81905561266e565b816b706f704465627444656c617960a01b141561246c57601081905561266e565b817f737572706c757341756374696f6e416d6f756e74546f53656c6c000000000000141561249e57601481905561266e565b81741cdd5c9c1b1d5cd51c985b9cd9995c905b5bdd5b9d605a1b14156124c857601581905561266e565b817f6578747261537572706c757349735472616e736665727265640000000000000014156124fa57601381905561266e565b81716465627441756374696f6e42696453697a6560701b141561252157601281905561266e565b817f696e697469616c4465627441756374696f6e4d696e746564546f6b656e730000141561255357601181905561266e565b816c39bab938363ab9a13ab33332b960991b141561257557601681905561266e565b817f6c617374537572706c75735472616e7366657254696d6500000000000000000014156125e5574281116125db5760405162461bcd60e51b8152600401808060200182810382526030815260200180612ba36030913960400191505060405180910390fd5b600d81905561266e565b81756c617374537572706c757341756374696f6e54696d6560501b141561264e574281116126445760405162461bcd60e51b815260040180806020018281038252602f815260200180612c85602f913960400191505060405180910390fd5b600c81905561266e565b816e3234b9b0b13632a1b7b7b63237bbb760891b14156117105760178190555b60408051828152905183917fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a919081900360200190a25050565b6000601354600114156126ec5760405162461bcd60e51b815260040180806020018281038252602c815260200180612c34602c913960400191505060405180910390fd5b60006014541161272d5760405162461bcd60e51b8152600401808060200182810382526027815260200180612e476027913960400191505060405180910390fd5b6127386110b8611f92565b612746600c54600e54612ad3565b4210156127845760405162461bcd60e51b8152600401808060200182810382526031815260200180612c036031913960400191505060405180910390fd5b600154604080516311005b0760e01b8152306004820152905161280b92611190926001600160a01b03909116916311005b0791602480820192602092909190829003018186803b1580156127d757600080fd5b505afa1580156127eb573d6000803e3d6000fd5b505050506040513d602081101561280157600080fd5b5051601454612ad3565b60015460408051633eaf7a0360e21b815230600482015290516001600160a01b039092169163fabde80c91602480820192602092909190829003018186803b15801561285657600080fd5b505afa15801561286a573d6000803e3d6000fd5b505050506040513d602081101561288057600080fd5b505110156128bf5760405162461bcd60e51b8152600401808060200182810382526025815260200180612c606025913960400191505060405180910390fd5b6128c7611f92565b15612919576040805162461bcd60e51b815260206004820152601e60248201527f4163636f756e74696e67456e67696e652f646562742d6e6f742d7a65726f0000604482015290519081900360640190fd5b60025460408051631a465fe160e01b815290516000926001600160a01b031691631a465fe1916004808301926020929190829003018186803b15801561295e57600080fd5b505afa158015612972573d6000803e3d6000fd5b505050506040513d602081101561298857600080fd5b50516001600160a01b031614156129d05760405162461bcd60e51b8152600401808060200182810382526030815260200180612ee96030913960400191505060405180910390fd5b42600c819055600d55600254601454604080516313fb84ff60e21b8152600481019290925260006024830181905290516001600160a01b0390931692634fee13fc926044808201936020939283900390910190829087803b158015612a3457600080fd5b505af1158015612a48573d6000803e3d6000fd5b505050506040513d6020811015612a5e57600080fd5b5051600c5460015460408051633eaf7a0360e21b8152306004820152905193945084937f7d0821ff1f59d07fef9cd0f28753cd787fc228208807379c23b9eecddccd6b0793926001600160a01b03169163fabde80c916024808301926020929190829003018186803b158015610cf057600080fd5b80820182811015612b2b576040805162461bcd60e51b815260206004820152601d60248201527f4163636f756e74696e67456e67696e652f6164642d6f766572666c6f77000000604482015290519081900360640190fd5b92915050565b80820382811115612b2b576040805162461bcd60e51b815260206004820152601e60248201527f4163636f756e74696e67456e67696e652f7375622d756e646572666c6f770000604482015290519081900360640190fd5b600081831115612b995781612b9b565b825b939250505056fe4163636f756e74696e67456e67696e652f696e76616c69642d6c617374537572706c75735472616e7366657254696d654163636f756e74696e67456e67696e652f6e6f742d656e6f7567682d646562742d6265696e672d61756374696f6e65644163636f756e74696e67456e67696e652f737572706c75732d61756374696f6e2d64656c61792d6e6f742d7061737365644163636f756e74696e67456e67696e652f737572706c75732d7472616e736665722d6e6f2d61756374696f6e4163636f756e74696e67456e67696e652f696e73756666696369656e742d737572706c75734163636f756e74696e67456e67696e652f696e76616c69642d6c617374537572706c757341756374696f6e54696d654163636f756e74696e67456e67696e652f737572706c75732d6e6f742d7a65726f4163636f756e74696e67456e67696e652f706f702d646562742d64656c61792d6e6f742d7061737365644163636f756e74696e67456e67696e652f6163636f756e742d6e6f742d617574686f72697a65644163636f756e74696e67456e67696e652f6e756c6c2d616d6f756e742d746f2d7472616e736665724163636f756e74696e67456e67696e652f696e73756666696369656e742d646562744163636f756e74696e67456e67696e652f646562742d61756374696f6e2d686f7573652d6e756c6c2d70726f744163636f756e74696e67456e67696e652f737572706c75732d7472616e736665722d64656c61792d6e6f742d7061737365644163636f756e74696e67456e67696e652f7374616b696e672d706f6f6c2d64656e6965732d7072696e74696e674163636f756e74696e67456e67696e652f636f6e74726163742d6e6f742d656e61626c65644163636f756e74696e67456e67696e652f6e756c6c2d737572706c75732d72656365697665724163636f756e74696e67456e67696e652f6e756c6c2d616d6f756e742d746f2d61756374696f6e4163636f756e74696e67456e67696e652f6d6f646966792d756e7265636f676e697a65642d706172616d4163636f756e74696e67456e67696e652f636f6f6c646f776e2d6e6f742d7061737365644163636f756e74696e67456e67696e652f737572706c75732d61756374696f6e2d6e6f742d7472616e736665724163636f756e74696e67456e67696e652f737572706c75732d61756374696f6e2d686f7573652d6e756c6c2d70726f744163636f756e74696e67456e67696e652f646562742d61756374696f6e2d686f7573652d63616e6e6f742d7072696e742d70726f74a26469706673582212209e5ee131cf804ed7b9ec51496c3b7b7081bd9a7e21a81ab0caa53d2bc2c7bbaf64736f6c63430006070033000000000000000000000000cc88a9d330da1133df3a7bd823b95e52511a6962000000000000000000000000eef4ea1a548417df1e7f0f6ab89494eed9e06b700000000000000000000000001896adbe708bf91158748b3f33738ba497a69e8f
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102535760003560e01c8063793d914911610146578063cc54f5e8116100c3578063d8872aeb11610087578063d8872aeb146104b0578063f27c3562146104b8578063fa8838af146104c0578063fc7966de146104c8578063fe4f5890146104d0578063ff713a9f146104f357610253565b8063cc54f5e814610474578063cdacaaca1461047c578063d405665514610484578063d6881367146104a0578063d72f0e43146104a857610253565b8063a4ea79441161010a578063a4ea794414610422578063a71036871461042a578063a8b30a9f14610447578063b39f841c14610464578063c41f55a01461046c57610253565b8063793d9149146103c7578063894ba833146103cf5780638b24dc3e146103d757806394f3f81d146103f4578063a34231de1461041a57610253565b80633dc4ab1d116101d45780635221e882116101985780635221e8821461037b5780635dabda40146103835780635fb9340c1461038b5780636614f0101461039357806367aea313146103bf57610253565b80633dc4ab1d1461032257806341b3a0d91461033f57806344e330c414610347578063492f9b3a1461034f5780634e6afb9e1461035757610253565b80632d09f11d1161021b5780632d09f11d146102c757806335b28153146102cf57806337b7eca1146102f55780633977a319146102fd5780633d2fa89b1461031a57610253565b80630502cddc146102585780630f44d6bd1461027257806324ba58841461027a57806327a0bb33146102a05780632a608d5b146102bf575b600080fd5b6102606104fb565b60408051918252519081900360200190f35b610260610501565b6102606004803603602081101561029057600080fd5b50356001600160a01b0316610507565b6102bd600480360360208110156102b657600080fd5b5035610519565b005b6102606107ab565b6102606107b1565b6102bd600480360360208110156102e557600080fd5b50356001600160a01b03166107b7565b610260610898565b6102606004803603602081101561031357600080fd5b503561089e565b6102606108b0565b6102bd6004803603602081101561033857600080fd5b5035610d37565b610260610fde565b6102bd610fe4565b6102606113e7565b61035f6113ed565b604080516001600160a01b039092168252519081900360200190f35b6102606113fc565b610260611402565b610260611408565b6102bd600480360360408110156103a957600080fd5b50803590602001356001600160a01b031661140e565b61035f61178a565b610260611799565b6102bd61179f565b6102bd600480360360208110156103ed57600080fd5b5035611b8f565b6102bd6004803603602081101561040a57600080fd5b50356001600160a01b0316611ccd565b61035f611d6c565b610260611d7b565b61035f6004803603602081101561044057600080fd5b5035611d81565b6102bd6004803603602081101561045d57600080fd5b5035611d9c565b61035f611e78565b610260611e87565b61035f611e8d565b61035f611e9c565b61048c611eab565b604080519115158252519081900360200190f35b61035f611f7d565b610260611f8c565b610260611f92565b610260612024565b6102bd61202a565b6102606123a6565b6102bd600480360360408110156104e657600080fd5b50803590602001356123ac565b6102606126a8565b60125481565b600b5481565b60006020819052908152604090205481565b60015460408051633eaf7a0360e21b815230600482015290516001600160a01b039092169163fabde80c91602480820192602092909190829003018186803b15801561056457600080fd5b505afa158015610578573d6000803e3d6000fd5b505050506040513d602081101561058e57600080fd5b50518111156105ce5760405162461bcd60e51b8152600401808060200182810382526025815260200180612c606025913960400191505060405180910390fd5b6105d6611f92565b8111156106145760405162461bcd60e51b8152600401808060200182810382526022815260200180612d4e6022913960400191505060405180910390fd5b600154604080516327a0bb3360e01b81526004810184905290516001600160a01b03909216916327a0bb339160248082019260009290919082900301818387803b15801561066157600080fd5b505af1158015610675573d6000803e3d6000fd5b505060015460408051633eaf7a0360e21b815230600482015290517faa3cda6ae2bb6ad9e5234a74ba9fede531dec740965eafd0b7ac9d3b90443f8694508593506001600160a01b039092169163fabde80c91602480820192602092909190829003018186803b1580156106e857600080fd5b505afa1580156106fc573d6000803e3d6000fd5b505050506040513d602081101561071257600080fd5b5051600154604080516311005b0760e01b815230600482015290516001600160a01b03909216916311005b0791602480820192602092909190829003018186803b15801561075f57600080fd5b505afa158015610773573d6000803e3d6000fd5b505050506040513d602081101561078957600080fd5b505160408051938452602084019290925282820152519081900360600190a150565b60165481565b600a5481565b336000908152602081905260409020546001146108055760405162461bcd60e51b8152600401808060200182810382526027815260200180612cff6027913960400191505060405180910390fd5b6019546001146108465760405162461bcd60e51b8152600401808060200182810382526025815260200180612dfc6025913960400191505060405180910390fd5b6001600160a01b0381166000818152602081815260409182902060019055815192835290517f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f70001029281900390910190a150565b600f5481565b60086020526000908152604090205481565b60006108ba611f92565b60125411156108fa5760405162461bcd60e51b8152600401808060200182810382526022815260200180612d4e6022913960400191505060405180910390fd5b60015460408051633eaf7a0360e21b81523060048201529051610977926001600160a01b03169163fabde80c916024808301926020929190829003018186803b15801561094657600080fd5b505afa15801561095a573d6000803e3d6000fd5b505050506040513d602081101561097057600080fd5b5051610519565b60015460408051633eaf7a0360e21b815230600482015290516001600160a01b039092169163fabde80c91602480820192602092909190829003018186803b1580156109c257600080fd5b505afa1580156109d6573d6000803e3d6000fd5b505050506040513d60208110156109ec57600080fd5b505115610a2a5760405162461bcd60e51b8152600401808060200182810382526021815260200180612cb46021913960400191505060405180910390fd5b60035460408051631a465fe160e01b815290516000926001600160a01b031691631a465fe1916004808301926020929190829003018186803b158015610a6f57600080fd5b505afa158015610a83573d6000803e3d6000fd5b505050506040513d6020811015610a9957600080fd5b50516001600160a01b03161415610ae15760405162461bcd60e51b815260040180806020018281038252602d815260200180612d70602d913960400191505060405180910390fd5b600480546003546040805163092e962160e21b81526001600160a01b0392831694810194909452519116916324ba5884916024808301926020929190829003018186803b158015610b3157600080fd5b505afa158015610b45573d6000803e3d6000fd5b505050506040513d6020811015610b5b57600080fd5b5051600114610b9b5760405162461bcd60e51b8152600401808060200182810382526035815260200180612f196035913960400191505060405180910390fd5b610ba3611eab565b610bde5760405162461bcd60e51b815260040180806020018281038252602d815260200180612dcf602d913960400191505060405180910390fd5b610bec600b54601254612ad3565b600b55600354601154601254604080516356dd475560e01b815230600482015260248101939093526044830191909152516001600160a01b03909216916356dd4755916064808201926020929091908290030181600087803b158015610c5157600080fd5b505af1158015610c65573d6000803e3d6000fd5b505050506040513d6020811015610c7b57600080fd5b5051600b54600154604080516311005b0760e01b8152306004820152905193945084937fa92a5e554d2e8bfa74170e5591680f0c7eb5e56c545c5f53e253500e50d6d52d93926001600160a01b0316916311005b07916024808301926020929190829003018186803b158015610cf057600080fd5b505afa158015610d04573d6000803e3d6000fd5b505050506040513d6020811015610d1a57600080fd5b50516040805192835260208301919091528051918290030190a290565b600b54811115610d785760405162461bcd60e51b8152600401808060200182810382526030815260200180612bd36030913960400191505060405180910390fd5b60015460408051633eaf7a0360e21b815230600482015290516001600160a01b039092169163fabde80c91602480820192602092909190829003018186803b158015610dc357600080fd5b505afa158015610dd7573d6000803e3d6000fd5b505050506040513d6020811015610ded57600080fd5b5051811115610e2d5760405162461bcd60e51b8152600401808060200182810382526025815260200180612c606025913960400191505060405180910390fd5b610e39600b5482612b31565b600b55600154604080516327a0bb3360e01b81526004810184905290516001600160a01b03909216916327a0bb339160248082019260009290919082900301818387803b158015610e8957600080fd5b505af1158015610e9d573d6000803e3d6000fd5b5050600b5460015460408051633eaf7a0360e21b815230600482015290517f5849130fd802a9386171d8d3f31c08fc5cf9b28821d86508afd88cb065a2af6f95508694506001600160a01b039092169163fabde80c91602480820192602092909190829003018186803b158015610f1357600080fd5b505afa158015610f27573d6000803e3d6000fd5b505050506040513d6020811015610f3d57600080fd5b5051600154604080516311005b0760e01b815230600482015290516001600160a01b03909216916311005b0791602480820192602092909190829003018186803b158015610f8a57600080fd5b505afa158015610f9e573d6000803e3d6000fd5b505050506040513d6020811015610fb457600080fd5b5051604080519485526020850193909352838301919091526060830152519081900360800190a150565b60195481565b6013546001146110255760405162461bcd60e51b815260040180806020018281038252602d815260200180612ebc602d913960400191505060405180910390fd5b6007546001600160a01b031661106c5760405162461bcd60e51b8152600401808060200182810382526026815260200180612e216026913960400191505060405180910390fd5b6000601554116110ad5760405162461bcd60e51b8152600401808060200182810382526028815260200180612d266028913960400191505060405180910390fd5b6110bd6110b8611f92565b610519565b6110cb600d54600f54612ad3565b4210156111095760405162461bcd60e51b8152600401808060200182810382526032815260200180612d9d6032913960400191505060405180910390fd5b600154604080516311005b0760e01b8152306004820152905161119892611190926001600160a01b03909116916311005b0791602480820192602092909190829003018186803b15801561115c57600080fd5b505afa158015611170573d6000803e3d6000fd5b505050506040513d602081101561118657600080fd5b5051601554612ad3565b601654612ad3565b60015460408051633eaf7a0360e21b815230600482015290516001600160a01b039092169163fabde80c91602480820192602092909190829003018186803b1580156111e357600080fd5b505afa1580156111f7573d6000803e3d6000fd5b505050506040513d602081101561120d57600080fd5b5051101561124c5760405162461bcd60e51b8152600401808060200182810382526025815260200180612c606025913960400191505060405180910390fd5b611254611f92565b156112a6576040805162461bcd60e51b815260206004820152601e60248201527f4163636f756e74696e67456e67696e652f646562742d6e6f742d7a65726f0000604482015290519081900360640190fd5b42600d819055600c5560015460075460155460408051633beaf2b760e21b81523060048201526001600160a01b039384166024820152604481019290925251919092169163efabcadc91606480830192600092919082900301818387803b15801561131057600080fd5b505af1158015611324573d6000803e3d6000fd5b5050600754600d5460015460408051633eaf7a0360e21b815230600482015290516001600160a01b0394851696507f09744986d27c373d65dbb8bf13661e8b68577739e9c4a77c5cd6f1682c009607955092939091169163fabde80c91602480820192602092909190829003018186803b1580156113a157600080fd5b505afa1580156113b5573d6000803e3d6000fd5b505050506040513d60208110156113cb57600080fd5b50516040805192835260208301919091528051918290030190a2565b60185481565b6007546001600160a01b031681565b60105481565b60135481565b60175481565b3360009081526020819052604090205460011461145c5760405162461bcd60e51b8152600401808060200182810382526027815260200180612cff6027913960400191505060405180910390fd5b8172737572706c757341756374696f6e486f75736560681b1415611563576001546002546040805163d49d786760e01b81526001600160a01b0392831660048201529051919092169163d49d786791602480830192600092919082900301818387803b1580156114cb57600080fd5b505af11580156114df573d6000803e3d6000fd5b5050600280546001600160a01b0319166001600160a01b0385811691821790925560015460408051631b29a84160e31b81526004810193909352519216935063d94d4208925060248082019260009290919082900301818387803b15801561154657600080fd5b505af115801561155a573d6000803e3d6000fd5b50505050611747565b81701cde5cdd195b54dd185ada5b99d41bdbdb607a1b141561160d57600580546001600160a01b0319166001600160a01b0383811691909117918290556040805163d405665560e01b81529051929091169163d405665591600480820192602092909190829003018186803b1580156115db57600080fd5b505afa1580156115ef573d6000803e3d6000fd5b505050506040513d602081101561160557600080fd5b506117479050565b816f6465627441756374696f6e486f75736560801b141561164857600380546001600160a01b0319166001600160a01b038316179055611747565b817f706f7374536574746c656d656e74537572706c7573447261696e000000000000141561169057600680546001600160a01b0319166001600160a01b038316179055611747565b817570726f746f636f6c546f6b656e417574686f7269747960501b14156116d157600480546001600160a01b0319166001600160a01b038316179055611747565b817332bc3a3930a9bab938363ab9a932b1b2b4bb32b960611b141561171057600780546001600160a01b0319166001600160a01b038316179055611747565b60405162461bcd60e51b815260040180806020018281038252602a815260200180612e6e602a913960400191505060405180910390fd5b604080516001600160a01b0383168152905183917fd91f38cf03346b5dc15fb60f9076f866295231ad3c3841a1051f8443f25170d1919081900360200190a25050565b6001546001600160a01b031681565b600e5481565b336000908152602081905260409020546001146117ed5760405162461bcd60e51b8152600401808060200182810382526027815260200180612cff6027913960400191505060405180910390fd5b60195460011461182e5760405162461bcd60e51b8152600401808060200182810382526025815260200180612dfc6025913960400191505060405180910390fd5b60006019819055600a819055600b819055426018556002546040805163894ba83360e01b815290516001600160a01b039092169263894ba8339260048084019382900301818387803b15801561188357600080fd5b505af1158015611897573d6000803e3d6000fd5b50505050600360009054906101000a90046001600160a01b03166001600160a01b031663894ba8336040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156118eb57600080fd5b505af11580156118ff573d6000803e3d6000fd5b505060015460408051633eaf7a0360e21b815230600482015290516001600160a01b0390921693506327a0bb339250611a0191849163fabde80c916024808301926020929190829003018186803b15801561195957600080fd5b505afa15801561196d573d6000803e3d6000fd5b505050506040513d602081101561198357600080fd5b5051600154604080516311005b0760e01b815230600482015290516001600160a01b03909216916311005b0791602480820192602092909190829003018186803b1580156119d057600080fd5b505afa1580156119e4573d6000803e3d6000fd5b505050506040513d60208110156119fa57600080fd5b5051612b89565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611a3757600080fd5b505af1158015611a4b573d6000803e3d6000fd5b505060185460175460015460408051633eaf7a0360e21b815230600482015290517ff444c796746af83b62874bc1bcf111eee758f29e8abd5b66019e455649487b7e965093945091926001600160a01b039091169163fabde80c916024808301926020929190829003018186803b158015611ac557600080fd5b505afa158015611ad9573d6000803e3d6000fd5b505050506040513d6020811015611aef57600080fd5b5051600154604080516311005b0760e01b815230600482015290516001600160a01b03909216916311005b0791602480820192602092909190829003018186803b158015611b3c57600080fd5b505afa158015611b50573d6000803e3d6000fd5b505050506040513d6020811015611b6657600080fd5b5051604080519485526020850193909352838301919091526060830152519081900360800190a1565b42611b9c82601054612ad3565b1115611bd95760405162461bcd60e51b815260040180806020018281038252602a815260200180612cd5602a913960400191505060405180910390fd5b600081815260086020526040902054611c39576040805162461bcd60e51b815260206004820181905260248201527f4163636f756e74696e67456e67696e652f6e756c6c2d646562742d626c6f636b604482015290519081900360640190fd5b600a54600082815260086020526040902054611c559190612b31565b600a908155600082815260096020908152604080832080546001600160a01b031916331790556008825291829020549254825193845290830152805142927f2a88971df34f4b7d590e86d77e5db54859c030b27c51e944a3d9e1d2bc6dbb4192908290030190a2600090815260086020526040812055565b33600090815260208190526040902054600114611d1b5760405162461bcd60e51b8152600401808060200182810382526027815260200180612cff6027913960400191505060405180910390fd5b6001600160a01b03811660008181526020818152604080832092909255815192835290517f8834a87e641e9716be4f34527af5d23e11624f1ddeefede6ad75a9acfc31b9039281900390910190a150565b6005546001600160a01b031681565b60155481565b6009602052600090815260409020546001600160a01b031681565b33600090815260208190526040902054600114611dea5760405162461bcd60e51b8152600401808060200182810382526027815260200180612cff6027913960400191505060405180910390fd5b42600090815260086020526040902054611e049082612ad3565b42600090815260086020526040902055600a54611e219082612ad3565b600a8190554260008181526008602090815260409182902054825190815290810193909352805191927f1833b2803878de6a92dfb6a19b452e31ec63baad0fd2e1e341e0dce55e4ed207929081900390910190a250565b6003546001600160a01b031681565b600d5481565b6004546001600160a01b031681565b6002546001600160a01b031681565b6005546000906001600160a01b0316611ec657506001611f7a565b600560009054906101000a90046001600160a01b03166001600160a01b031663d40566556040518163ffffffff1660e01b815260040160206040518083038186803b158015611f1457600080fd5b505afa925050508015611f3957506040513d6020811015611f3457600080fd5b505160015b611f77573d808015611f67576040519150601f19603f3d011682016040523d82523d6000602084013e611f6c565b606091505b506001915050611f7a565b90505b90565b6006546001600160a01b031681565b600c5481565b600154604080516311005b0760e01b81523060048201529051600092611f779261201c926001600160a01b03909216916311005b0791602480820192602092909190829003018186803b158015611fe857600080fd5b505afa158015611ffc573d6000803e3d6000fd5b505050506040513d602081101561201257600080fd5b5051600a54612b31565b600b54612b31565b60145481565b6019541561207f576040805162461bcd60e51b815260206004820152601e60248201527f4163636f756e74696e67456e67696e652f7374696c6c2d656e61626c65640000604482015290519081900360640190fd5b4261208e601854601754612ad3565b11156120cb5760405162461bcd60e51b8152600401808060200182810382526024815260200180612e986024913960400191505060405180910390fd5b60015460408051633eaf7a0360e21b815230600482015290516001600160a01b03909216916327a0bb339161212191849163fabde80c916024808301926020929190829003018186803b15801561195957600080fd5b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561215757600080fd5b505af115801561216b573d6000803e3d6000fd5b505060015460065460408051633eaf7a0360e21b8152306004820181905291516001600160a01b03948516965063efabcadc9550919390921691859163fabde80c91602480820192602092909190829003018186803b1580156121cd57600080fd5b505afa1580156121e1573d6000803e3d6000fd5b505050506040513d60208110156121f757600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b03948516600482015292909316602483015260448201529051606480830192600092919082900301818387803b15801561224e57600080fd5b505af1158015612262573d6000803e3d6000fd5b505060065460015460408051633eaf7a0360e21b815230600482015290517f618b53208bc1d7a537afbb52ff1788ab48eaa72099e2cc87ed9a251a4029d17995506001600160a01b039384169450919092169163fabde80c916024808301926020929190829003018186803b1580156122da57600080fd5b505afa1580156122ee573d6000803e3d6000fd5b505050506040513d602081101561230457600080fd5b5051600154604080516311005b0760e01b815230600482015290516001600160a01b03909216916311005b0791602480820192602092909190829003018186803b15801561235157600080fd5b505afa158015612365573d6000803e3d6000fd5b505050506040513d602081101561237b57600080fd5b5051604080516001600160a01b039094168452602084019290925282820152519081900360600190a1565b60115481565b336000908152602081905260409020546001146123fa5760405162461bcd60e51b8152600401808060200182810382526027815260200180612cff6027913960400191505060405180910390fd5b8172737572706c757341756374696f6e44656c617960681b141561242257600e81905561266e565b8173737572706c75735472616e7366657244656c617960601b141561244b57600f81905561266e565b816b706f704465627444656c617960a01b141561246c57601081905561266e565b817f737572706c757341756374696f6e416d6f756e74546f53656c6c000000000000141561249e57601481905561266e565b81741cdd5c9c1b1d5cd51c985b9cd9995c905b5bdd5b9d605a1b14156124c857601581905561266e565b817f6578747261537572706c757349735472616e736665727265640000000000000014156124fa57601381905561266e565b81716465627441756374696f6e42696453697a6560701b141561252157601281905561266e565b817f696e697469616c4465627441756374696f6e4d696e746564546f6b656e730000141561255357601181905561266e565b816c39bab938363ab9a13ab33332b960991b141561257557601681905561266e565b817f6c617374537572706c75735472616e7366657254696d6500000000000000000014156125e5574281116125db5760405162461bcd60e51b8152600401808060200182810382526030815260200180612ba36030913960400191505060405180910390fd5b600d81905561266e565b81756c617374537572706c757341756374696f6e54696d6560501b141561264e574281116126445760405162461bcd60e51b815260040180806020018281038252602f815260200180612c85602f913960400191505060405180910390fd5b600c81905561266e565b816e3234b9b0b13632a1b7b7b63237bbb760891b14156117105760178190555b60408051828152905183917fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a919081900360200190a25050565b6000601354600114156126ec5760405162461bcd60e51b815260040180806020018281038252602c815260200180612c34602c913960400191505060405180910390fd5b60006014541161272d5760405162461bcd60e51b8152600401808060200182810382526027815260200180612e476027913960400191505060405180910390fd5b6127386110b8611f92565b612746600c54600e54612ad3565b4210156127845760405162461bcd60e51b8152600401808060200182810382526031815260200180612c036031913960400191505060405180910390fd5b600154604080516311005b0760e01b8152306004820152905161280b92611190926001600160a01b03909116916311005b0791602480820192602092909190829003018186803b1580156127d757600080fd5b505afa1580156127eb573d6000803e3d6000fd5b505050506040513d602081101561280157600080fd5b5051601454612ad3565b60015460408051633eaf7a0360e21b815230600482015290516001600160a01b039092169163fabde80c91602480820192602092909190829003018186803b15801561285657600080fd5b505afa15801561286a573d6000803e3d6000fd5b505050506040513d602081101561288057600080fd5b505110156128bf5760405162461bcd60e51b8152600401808060200182810382526025815260200180612c606025913960400191505060405180910390fd5b6128c7611f92565b15612919576040805162461bcd60e51b815260206004820152601e60248201527f4163636f756e74696e67456e67696e652f646562742d6e6f742d7a65726f0000604482015290519081900360640190fd5b60025460408051631a465fe160e01b815290516000926001600160a01b031691631a465fe1916004808301926020929190829003018186803b15801561295e57600080fd5b505afa158015612972573d6000803e3d6000fd5b505050506040513d602081101561298857600080fd5b50516001600160a01b031614156129d05760405162461bcd60e51b8152600401808060200182810382526030815260200180612ee96030913960400191505060405180910390fd5b42600c819055600d55600254601454604080516313fb84ff60e21b8152600481019290925260006024830181905290516001600160a01b0390931692634fee13fc926044808201936020939283900390910190829087803b158015612a3457600080fd5b505af1158015612a48573d6000803e3d6000fd5b505050506040513d6020811015612a5e57600080fd5b5051600c5460015460408051633eaf7a0360e21b8152306004820152905193945084937f7d0821ff1f59d07fef9cd0f28753cd787fc228208807379c23b9eecddccd6b0793926001600160a01b03169163fabde80c916024808301926020929190829003018186803b158015610cf057600080fd5b80820182811015612b2b576040805162461bcd60e51b815260206004820152601d60248201527f4163636f756e74696e67456e67696e652f6164642d6f766572666c6f77000000604482015290519081900360640190fd5b92915050565b80820382811115612b2b576040805162461bcd60e51b815260206004820152601e60248201527f4163636f756e74696e67456e67696e652f7375622d756e646572666c6f770000604482015290519081900360640190fd5b600081831115612b995781612b9b565b825b939250505056fe4163636f756e74696e67456e67696e652f696e76616c69642d6c617374537572706c75735472616e7366657254696d654163636f756e74696e67456e67696e652f6e6f742d656e6f7567682d646562742d6265696e672d61756374696f6e65644163636f756e74696e67456e67696e652f737572706c75732d61756374696f6e2d64656c61792d6e6f742d7061737365644163636f756e74696e67456e67696e652f737572706c75732d7472616e736665722d6e6f2d61756374696f6e4163636f756e74696e67456e67696e652f696e73756666696369656e742d737572706c75734163636f756e74696e67456e67696e652f696e76616c69642d6c617374537572706c757341756374696f6e54696d654163636f756e74696e67456e67696e652f737572706c75732d6e6f742d7a65726f4163636f756e74696e67456e67696e652f706f702d646562742d64656c61792d6e6f742d7061737365644163636f756e74696e67456e67696e652f6163636f756e742d6e6f742d617574686f72697a65644163636f756e74696e67456e67696e652f6e756c6c2d616d6f756e742d746f2d7472616e736665724163636f756e74696e67456e67696e652f696e73756666696369656e742d646562744163636f756e74696e67456e67696e652f646562742d61756374696f6e2d686f7573652d6e756c6c2d70726f744163636f756e74696e67456e67696e652f737572706c75732d7472616e736665722d64656c61792d6e6f742d7061737365644163636f756e74696e67456e67696e652f7374616b696e672d706f6f6c2d64656e6965732d7072696e74696e674163636f756e74696e67456e67696e652f636f6e74726163742d6e6f742d656e61626c65644163636f756e74696e67456e67696e652f6e756c6c2d737572706c75732d72656365697665724163636f756e74696e67456e67696e652f6e756c6c2d616d6f756e742d746f2d61756374696f6e4163636f756e74696e67456e67696e652f6d6f646966792d756e7265636f676e697a65642d706172616d4163636f756e74696e67456e67696e652f636f6f6c646f776e2d6e6f742d7061737365644163636f756e74696e67456e67696e652f737572706c75732d61756374696f6e2d6e6f742d7472616e736665724163636f756e74696e67456e67696e652f737572706c75732d61756374696f6e2d686f7573652d6e756c6c2d70726f744163636f756e74696e67456e67696e652f646562742d61756374696f6e2d686f7573652d63616e6e6f742d7072696e742d70726f74a26469706673582212209e5ee131cf804ed7b9ec51496c3b7b7081bd9a7e21a81ab0caa53d2bc2c7bbaf64736f6c63430006070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000cc88a9d330da1133df3a7bd823b95e52511a6962000000000000000000000000eef4ea1a548417df1e7f0f6ab89494eed9e06b700000000000000000000000001896adbe708bf91158748b3f33738ba497a69e8f
-----Decoded View---------------
Arg [0] : safeEngine_ (address): 0xCC88a9d330da1133Df3A7bD823B95e52511A6962
Arg [1] : surplusAuctionHouse_ (address): 0xEeF4ea1A548417Df1e7f0f6Ab89494eED9e06B70
Arg [2] : debtAuctionHouse_ (address): 0x1896adBE708bF91158748B3F33738Ba497A69e8f
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000cc88a9d330da1133df3a7bd823b95e52511a6962
Arg [1] : 000000000000000000000000eef4ea1a548417df1e7f0f6ab89494eed9e06b70
Arg [2] : 0000000000000000000000001896adbe708bf91158748b3f33738ba497a69e8f
Deployed Bytecode Sourcemap
2249:19733:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2249:19733:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;5958:33:0;;;:::i;:::-;;;;;;;;;;;;;;;;5006;;;:::i;2303:54::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2303:54:0;-1:-1:-1;;;;;2303:54:0;;:::i;14384:389::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14384:389:0;;:::i;:::-;;6507:28;;;:::i;4818:30::-;;;:::i;2467:237::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2467:237:0;-1:-1:-1;;;;;2467:237:0;;:::i;5502:35::-;;;:::i;4496:45::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;4496:45:0;;:::i;15775:965::-;;;:::i;14954:523::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14954:523:0;;:::i;6938:30::-;;;:::i;18631:1213::-;;;:::i;6807:31::-;;;:::i;4182:54::-;;;:::i;:::-;;;;-1:-1:-1;;;;;4182:54:0;;;;;;;;;;;;;;5636:27;;;:::i;6100:40::-;;;:::i;6694:30::-;;;:::i;11140:1043::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;11140:1043:0;;;;;;-1:-1:-1;;;;;11140:1043:0;;:::i;3269:44::-;;;:::i;5382:34::-;;;:::i;20180:630::-;;;:::i;13554:544::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;13554:544:0;;:::i;2823:162::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2823:162:0;-1:-1:-1;;;;;2823:162:0;;:::i;3928:51::-;;;:::i;6330:36::-;;;:::i;4636:47::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;4636:47:0;;:::i;13032:271::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;13032:271:0;;:::i;3696:50::-;;;:::i;5262:38::-;;;:::i;3824:56::-;;;:::i;3440:53::-;;;:::i;12406:303::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;4061:60;;;:::i;5128:37::-;;;:::i;12215:185::-;;;:::i;6216:41::-;;;:::i;21298:681::-;;;:::i;5770:45::-;;;:::i;9504:1432::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;9504:1432:0;;;;;;;:::i;17049:1209::-;;;:::i;5958:33::-;;;;:::o;5006:::-;;;;:::o;2303:54::-;;;;;;;;;;;;;;:::o;14384:389::-;14450:10;;:37;;;-1:-1:-1;;;14450:37:0;;14481:4;14450:37;;;;;;-1:-1:-1;;;;;14450:10:0;;;;:22;;:37;;;;;;;;;;;;;;;:10;:37;;;2:2:-1;;;;27:1;24;17:12;2:2;14450:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14450:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14450:37:0;14443:44;;;14435:94;;;;-1:-1:-1;;;14435:94:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14555:25;:23;:25::i;:::-;14548:3;:32;;14540:79;;;;-1:-1:-1;;;14540:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14630:10;;:26;;;-1:-1:-1;;;14630:26:0;;;;;;;;;;-1:-1:-1;;;;;14630:10:0;;;;:21;;:26;;;;;:10;;:26;;;;;;;;:10;;:26;;;2:2:-1;;;;27:1;24;17:12;2:2;14630:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;14688:10:0;;:37;;;-1:-1:-1;;;14688:37:0;;14719:4;14688:37;;;;;;14672:93;;-1:-1:-1;14683:3:0;;-1:-1:-1;;;;;;14688:10:0;;;;:22;;:37;;;;;;;;;;;;;;;:10;:37;;;2:2:-1;;;;27:1;24;17:12;2:2;14688:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14688:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14688:37:0;14727:10;;:37;;;-1:-1:-1;;;14727:37:0;;14758:4;14727:37;;;;;;-1:-1:-1;;;;;14727:10:0;;;;:22;;:37;;;;;14688;;14727;;;;;;;;:10;:37;;;2:2:-1;;;;27:1;24;17:12;2:2;14727:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14727:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14727:37:0;14672:93;;;;;;14727:37;14672:93;;;;;;;;;;;;;;;;;;;14384:389;:::o;6507:28::-;;;;:::o;4818:30::-;;;;:::o;2467:237::-;3138:10;3119:18;:30;;;;;;;;;;;3153:1;3119:35;3111:87;;;;-1:-1:-1;;;3111:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2551:15:::1;;2570:1;2551:20;2543:70;;;;-1:-1:-1::0;;;2543:70:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;2624:27:0;::::1;:18;:27:::0;;;::::1;::::0;;;;;;;;2654:1:::1;2624:31:::0;;2671:25;;;;;;;::::1;::::0;;;;;;;;::::1;2467:237:::0;:::o;5502:35::-;;;;:::o;4496:45::-;;;;;;;;;;;;;:::o;15775:965::-;15816:10;15869:25;:23;:25::i;:::-;15847:18;;:47;;15839:94;;;;-1:-1:-1;;;15839:94:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15955:10;;:37;;;-1:-1:-1;;;15955:37:0;;15986:4;15955:37;;;;;;15944:49;;-1:-1:-1;;;;;15955:10:0;;:22;;:37;;;;;;;;;;;;;;:10;:37;;;2:2:-1;;;;27:1;24;17:12;2:2;15955:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15955:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;15955:37:0;15944:10;:49::i;:::-;16012:10;;:37;;;-1:-1:-1;;;16012:37:0;;16043:4;16012:37;;;;;;-1:-1:-1;;;;;16012:10:0;;;;:22;;:37;;;;;;;;;;;;;;;:10;:37;;;2:2:-1;;;;27:1;24;17:12;2:2;16012:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16012:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;16012:37:0;:42;16004:88;;;;-1:-1:-1;;;16004:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16111:16;;:32;;;-1:-1:-1;;;16111:32:0;;;;16155:1;;-1:-1:-1;;;;;16111:16:0;;:30;;:32;;;;;;;;;;;;;;:16;:32;;;2:2:-1;;;;27:1;24;17:12;2:2;16111:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16111:32:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;16111:32:0;-1:-1:-1;;;;;16111:46:0;;;16103:104;;;;-1:-1:-1;;;16103:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16226:22;;;16276:16;;16226:68;;;-1:-1:-1;;;16226:68:0;;-1:-1:-1;;;;;16276:16:0;;;16226:68;;;;;;;;:22;;;:41;;:68;;;;;;;;;;;;;;:22;:68;;;2:2:-1;;;;27:1;24;17:12;2:2;16226:68:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16226:68:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;16226:68:0;16298:1;16226:73;16218:139;;;;-1:-1:-1;;;16218:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16376:24;:22;:24::i;:::-;16368:82;;;;-1:-1:-1;;;16368:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16482:48;16491:18;;16511;;16482:8;:48::i;:::-;16461:18;:69;16546:16;;16591:30;;16623:18;;16546:96;;;-1:-1:-1;;;16546:96:0;;16584:4;16546:96;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16546:16:0;;;;:29;;:96;;;;;;;;;;;;;;;:16;;:96;;;2:2:-1;;;;27:1;24;17:12;2:2;16546:96:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16546:96:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;16546:96:0;16674:18;;16694:10;;:37;;;-1:-1:-1;;;16694:37:0;;16725:4;16694:37;;;;;;16546:96;;-1:-1:-1;16546:96:0;;16658:74;;16674:18;-1:-1:-1;;;;;16694:10:0;;:22;;:37;;;;;16546:96;;16694:37;;;;;;;:10;:37;;;2:2:-1;;;;27:1;24;17:12;2:2;16694:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16694:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;16694:37:0;16658:74;;;;;;16694:37;16658:74;;;;;;;;;;;;;;;15775:965;:::o;14954:523::-;15042:18;;15035:3;:25;;15027:86;;;;-1:-1:-1;;;15027:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15139:10;;:37;;;-1:-1:-1;;;15139:37:0;;15170:4;15139:37;;;;;;-1:-1:-1;;;;;15139:10:0;;;;:22;;:37;;;;;;;;;;;;;;;:10;:37;;;2:2:-1;;;;27:1;24;17:12;2:2;15139:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15139:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;15139:37:0;15132:44;;;15124:94;;;;-1:-1:-1;;;15124:94:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15250:33;15259:18;;15279:3;15250:8;:33::i;:::-;15229:18;:54;15294:10;;:26;;;-1:-1:-1;;;15294:26:0;;;;;;;;;;-1:-1:-1;;;;;15294:10:0;;;;:21;;:26;;;;;:10;;:26;;;;;;;;:10;;:26;;;2:2:-1;;;;27:1;24;17:12;2:2;15294:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;15372:18:0;;15392:10;;:37;;;-1:-1:-1;;;15392:37:0;;15423:4;15392:37;;;;;;15336:133;;-1:-1:-1;15367:3:0;;-1:-1:-1;;;;;;15392:10:0;;;;:22;;:37;;;;;;;;;;;;;;;:10;:37;;;2:2:-1;;;;27:1;24;17:12;2:2;15392:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15392:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;15392:37:0;15431:10;;:37;;;-1:-1:-1;;;15431:37:0;;15462:4;15431:37;;;;;;-1:-1:-1;;;;;15431:10:0;;;;:22;;:37;;;;;15392;;15431;;;;;;;;:10;:37;;;2:2:-1;;;;27:1;24;17:12;2:2;15431:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15431:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;15431:37:0;15336:133;;;;;;15431:37;15336:133;;;;;;;;;;;;;;;;;;;;;;;;;;14954:523;:::o;6938:30::-;;;;:::o;18631:1213::-;18691:25;;18720:1;18691:30;18683:88;;;;-1:-1:-1;;;18683:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18790:20;;-1:-1:-1;;;;;18790:20:0;18782:85;;;;-1:-1:-1;;;18782:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18910:1;18886:21;;:25;18878:78;;;;-1:-1:-1;;;18878:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18967:37;18978:25;:23;:25::i;:::-;18967:10;:37::i;:::-;19042:55;19051:23;;19076:20;;19042:8;:55::i;:::-;19035:3;:62;;19015:158;;;;-1:-1:-1;;;19015:158:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19274:10;;:37;;;-1:-1:-1;;;19274:37:0;;19305:4;19274:37;;;;;;19256:95;;19265:70;;-1:-1:-1;;;;;19274:10:0;;;;:22;;:37;;;;;;;;;;;;;;;:10;:37;;;2:2:-1;;;;27:1;24;17:12;2:2;19274:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19274:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;19274:37:0;19313:21;;19265:8;:70::i;:::-;19337:13;;19256:8;:95::i;:::-;19204:10;;:37;;;-1:-1:-1;;;19204:37:0;;19235:4;19204:37;;;;;;-1:-1:-1;;;;;19204:10:0;;;;:22;;:37;;;;;;;;;;;;;;;:10;:37;;;2:2:-1;;;;27:1;24;17:12;2:2;19204:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19204:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;19204:37:0;:147;;19184:230;;;;-1:-1:-1;;;19184:230:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19445:25;:23;:25::i;:::-;:30;19425:106;;;;;-1:-1:-1;;;19425:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19568:3;19542:23;:29;;;19582:22;:29;-1:-1:-1;19622:10:0;19670:20;;19692:21;;19622:92;;;-1:-1:-1;;;19622:92:0;;19663:4;19622:92;;;;-1:-1:-1;;;;;19670:20:0;;;19622:92;;;;;;;;;;;;:10;;;;;:32;;:92;;;;;-1:-1:-1;;19622:92:0;;;;;;;-1:-1:-1;19622:10:0;:92;;;2:2:-1;;;;27:1;24;17:12;2:2;19622:92:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;19751:20:0;;19773:23;;19751:20;19798:10;:37;;;-1:-1:-1;;;19798:37:0;;19829:4;19798:37;;;;;;-1:-1:-1;;;;;19751:20:0;;;;-1:-1:-1;19730:106:0;;-1:-1:-1;19773:23:0;;19798:10;;;;:22;;:37;;;;;;;;;;;;;;;:10;:37;;;2:2:-1;;;;27:1;24;17:12;2:2;19798:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19798:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;19798:37:0;19730:106;;;;;;19798:37;19730:106;;;;;;;;;;;;;;;18631:1213::o;6807:31::-;;;;:::o;4182:54::-;;;-1:-1:-1;;;;;4182:54:0;;:::o;5636:27::-;;;;:::o;6100:40::-;;;;:::o;6694:30::-;;;;:::o;11140:1043::-;3138:10;3119:18;:30;;;;;;;;;;;3153:1;3119:35;3111:87;;;;-1:-1:-1;;;3111:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11236:9:::1;-1:-1:-1::0;;;11236:34:0::1;11232:894;;;11287:10;::::0;11327:19:::1;::::0;11287:61:::1;::::0;;-1:-1:-1;;;11287:61:0;;-1:-1:-1;;;;;11327:19:0;;::::1;11287:61;::::0;::::1;::::0;;;:10;;;::::1;::::0;:31:::1;::::0;:61;;;;;:10:::1;::::0;:61;;;;;;;:10;;:61;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;11287:61:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;;11363:19:0::1;:51:::0;;-1:-1:-1;;;;;;11363:51:0::1;-1:-1:-1::0;;;;;11363:51:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;11429:10:0;:40:::1;::::0;;-1:-1:-1;;;11429:40:0;;::::1;::::0;::::1;::::0;;;;;:10;::::1;::::0;-1:-1:-1;11429:34:0::1;::::0;-1:-1:-1;11429:40:0;;;;;-1:-1:-1;;11429:40:0;;;;;;;;-1:-1:-1;11429:10:0;:40;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;11429:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;11429:40:0;;;;11232:894;;;11500:9;-1:-1:-1::0;;;11500:32:0::1;11496:630;;;11549:17;:47:::0;;-1:-1:-1;;;;;;11549:47:0::1;-1:-1:-1::0;;;;;11549:47:0;;::::1;::::0;;;::::1;::::0;;;;11611:42:::1;::::0;;-1:-1:-1;;;11611:42:0;;;;:17;;;::::1;::::0;:40:::1;::::0;:42:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;:17;:42;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;11611:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;11611:42:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;11496:630:0::1;::::0;-1:-1:-1;11496:630:0::1;;11684:9;-1:-1:-1::0;;;11684:31:0::1;11680:446;;;11717:16;:45:::0;;-1:-1:-1;;;;;;11717:45:0::1;-1:-1:-1::0;;;;;11717:45:0;::::1;;::::0;;11680:446:::1;;;11782:9;:41;;11778:348;;;11825:26;:33:::0;;-1:-1:-1;;;;;;11825:33:0::1;-1:-1:-1::0;;;;;11825:33:0;::::1;;::::0;;11778:348:::1;;;11878:9;-1:-1:-1::0;;;11878:37:0::1;11874:252;;;11917:22;:57:::0;;-1:-1:-1;;;;;;11917:57:0::1;-1:-1:-1::0;;;;;11917:57:0;::::1;;::::0;;11874:252:::1;;;11994:9;-1:-1:-1::0;;;11994:35:0::1;11990:136;;;12031:20;:27:::0;;-1:-1:-1;;;;;;12031:27:0::1;-1:-1:-1::0;;;;;12031:27:0;::::1;;::::0;;11990:136:::1;;;12074:52;;-1:-1:-1::0;;;12074:52:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11990:136;12142:33;::::0;;-1:-1:-1;;;;;12142:33:0;::::1;::::0;;;;12159:9;;12142:33:::1;::::0;;;;;::::1;::::0;;::::1;11140:1043:::0;;:::o;3269:44::-;;;-1:-1:-1;;;;;3269:44:0;;:::o;5382:34::-;;;;:::o;20180:630::-;3138:10;3119:18;:30;;;;;;;;;;;3153:1;3119:35;3111:87;;;;-1:-1:-1;;;3111:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20248:15:::1;;20267:1;20248:20;20240:70;;;;-1:-1:-1::0;;;20240:70:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20341:1;20323:15;:19:::0;;;20353:15:::1;:19:::0;;;20383:18:::1;:22:::0;;;20437:3:::1;20418:16;:22:::0;20453:19:::1;::::0;:37:::1;::::0;;-1:-1:-1;;;20453:37:0;;;;-1:-1:-1;;;;;20453:19:0;;::::1;::::0;:35:::1;::::0;:37:::1;::::0;;::::1;::::0;;;;;;20341:1;20453:19;:37;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;20453:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;20453:37:0;;;;20501:16;;;;;;;;;-1:-1:-1::0;;;;;20501:16:0::1;-1:-1:-1::0;;;;;20501:32:0::1;;:34;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;20501:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;;20548:10:0::1;::::0;20578:37:::1;::::0;;-1:-1:-1;;;20578:37:0;;20609:4:::1;20578:37;::::0;::::1;::::0;;;-1:-1:-1;;;;;20548:10:0;;::::1;::::0;-1:-1:-1;20548:21:0::1;::::0;-1:-1:-1;20570:85:0::1;::::0;20548:10;;20578:22:::1;::::0;:37;;;;;::::1;::::0;;;;;;;;20548:10;20578:37;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;20578:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;20578:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;20578:37:0;20617:10:::1;::::0;:37:::1;::::0;;-1:-1:-1;;;20617:37:0;;20648:4:::1;20617:37;::::0;::::1;::::0;;;-1:-1:-1;;;;;20617:10:0;;::::1;::::0;:22:::1;::::0;:37;;;;;20578::::1;::::0;20617;;;;;;;;:10;:37;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;20617:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;20617:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;20617:37:0;20570:7:::1;:85::i;:::-;20548:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;20548:108:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;;20690:16:0::1;::::0;20708:15:::1;::::0;20725:10:::1;::::0;:37:::1;::::0;;-1:-1:-1;;;20725:37:0;;20756:4:::1;20725:37;::::0;::::1;::::0;;;20674:128:::1;::::0;-1:-1:-1;20690:16:0;;-1:-1:-1;20708:15:0;;-1:-1:-1;;;;;20725:10:0;;::::1;::::0;:22:::1;::::0;:37;;;;;::::1;::::0;;;;;;;;:10;:37;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;20725:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;20725:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;20725:37:0;20764:10:::1;::::0;:37:::1;::::0;;-1:-1:-1;;;20764:37:0;;20795:4:::1;20764:37;::::0;::::1;::::0;;;-1:-1:-1;;;;;20764:10:0;;::::1;::::0;:22:::1;::::0;:37;;;;;20725::::1;::::0;20764;;;;;;;;:10;:37;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;20764:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;20764:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;20764:37:0;20674:128:::1;::::0;;;;;20764:37:::1;20674:128:::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;::::1;20180:630::o:0;13554:544::-;13682:3;13636:42;13645:18;13665:12;;13636:8;:42::i;:::-;:49;;13628:104;;;;-1:-1:-1;;;13628:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13783:1;13751:29;;;:9;:29;;;;;;13743:78;;;;;-1:-1:-1;;;13743:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13859:15;;13876:29;;;;:9;:29;;;;;;13850:56;;13859:15;13850:8;:56::i;:::-;13832:15;:74;;;13917:31;;;;:11;:31;;;;;;;;:44;;-1:-1:-1;;;;;;13917:44:0;13951:10;13917:44;;;13999:9;:29;;;;;;;14030:15;;13977:69;;;;;;;;;;;13994:3;;13977:69;;;;;;;;;14089:1;14057:29;;;:9;:29;;;;;:33;13554:544::o;2823:162::-;3138:10;3119:18;:30;;;;;;;;;;;3153:1;3119:35;3111:87;;;;-1:-1:-1;;;3111:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2902:27:0;::::1;2932:1;2902:27:::0;;;::::1;::::0;;;;;;;:31;;;;2949:28;;;;;;;::::1;::::0;;;;;;;;::::1;2823:162:::0;:::o;3928:51::-;;;-1:-1:-1;;;;;3928:51:0;;:::o;6330:36::-;;;;:::o;4636:47::-;;;;;;;;;;;;-1:-1:-1;;;;;4636:47:0;;:::o;13032:271::-;3138:10;3119:18;:30;;;;;;;;;;;3153:1;3119:35;3111:87;;;;-1:-1:-1;;;3111:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13145:3:::1;13135:14;::::0;;;:9:::1;:14;::::0;;;;;13126:35:::1;::::0;13151:9;13126:8:::1;:35::i;:::-;13119:3;13109:14;::::0;;;:9:::1;:14;::::0;;;;:52;13199:15:::1;::::0;13190:36:::1;::::0;13216:9;13190:8:::1;:36::i;:::-;13172:15;:54:::0;;;13258:3:::1;13263:14;::::0;;;:9:::1;:14;::::0;;;;;;;;;13242:53;;;;;;;::::1;::::0;;;;;;13258:3;;13242:53:::1;::::0;;;;;;;;;::::1;13032:271:::0;:::o;3696:50::-;;;-1:-1:-1;;;;;3696:50:0;;:::o;5262:38::-;;;;:::o;3824:56::-;;;-1:-1:-1;;;;;3824:56:0;;:::o;3440:53::-;;;-1:-1:-1;;;;;3440:53:0;;:::o;12406:303::-;12490:17;;12461:4;;-1:-1:-1;;;;;12490:17:0;12478:57;;-1:-1:-1;12531:4:0;12524:11;;12478:57;12550:17;;;;;;;;;-1:-1:-1;;;;;12550:17:0;-1:-1:-1;;;;;12550:40:0;;:42;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12550:42:0;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12550:42:0;;;12546:156;;;;14:27:-1;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;12686:4:0;12679:11;;;;;12546:156;12631:2;-1:-1:-1;12546:156:0;12406:303;:::o;4061:60::-;;;-1:-1:-1;;;;;4061:60:0;;:::o;5128:37::-;;;;:::o;12215:185::-;12316:10;;:37;;;-1:-1:-1;;;12316:37:0;;12347:4;12316:37;;;;;;12271:7;;12298:94;;12307:64;;-1:-1:-1;;;;;12316:10:0;;;;:22;;:37;;;;;;;;;;;;;;;:10;:37;;;2:2:-1;;;;27:1;24;17:12;2:2;12316:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12316:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12316:37:0;12355:15;;12307:8;:64::i;:::-;12373:18;;12298:8;:94::i;6216:41::-;;;;:::o;21298:681::-;21367:15;;:20;21359:63;;;;;-1:-1:-1;;;21359:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21488:3;21441:43;21450:16;;21468:15;;21441:8;:43::i;:::-;:50;;21433:99;;;;-1:-1:-1;;;21433:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21543:10;;21573:37;;;-1:-1:-1;;;21573:37:0;;21604:4;21573:37;;;;;;-1:-1:-1;;;;;21543:10:0;;;;:21;;21565:85;;21543:10;;21573:22;;:37;;;;;;;;;;;;;;21543:10;21573:37;;;2:2:-1;;;;27:1;24;17:12;21565:85:0;21543:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;21543:108:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;21662:10:0;;21710:26;;21738:37;;;-1:-1:-1;;;21738:37:0;;21703:4;21738:37;;;;;;;;-1:-1:-1;;;;;21662:10:0;;;;-1:-1:-1;21662:32:0;;-1:-1:-1;21703:4:0;;21710:26;;;;21662:10;;21738:22;;:37;;;;;;;;;;;;;;;21662:10;21738:37;;;2:2:-1;;;;27:1;24;17:12;2:2;21738:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21738:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;21738:37:0;21662:114;;;-1:-1:-1;;;;;;21662:114:0;;;;;;;-1:-1:-1;;;;;21662:114:0;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21662:114:0;;;;;;;-1:-1:-1;21662:114:0;;;;2:2:-1;;;;27:1;24;17:12;2:2;21662:114:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;21834:26:0;;;21873:10;:37;;;-1:-1:-1;;;21873:37:0;;21904:4;21873:37;;;;;;21792:179;;-1:-1:-1;;;;;;21834:26:0;;;;-1:-1:-1;21873:10:0;;;;;:22;;:37;;;;;;;;;;;;;;:10;:37;;;2:2:-1;;;;27:1;24;17:12;2:2;21873:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21873:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;21873:37:0;21923:10;;:37;;;-1:-1:-1;;;21923:37:0;;21954:4;21923:37;;;;;;-1:-1:-1;;;;;21923:10:0;;;;:22;;:37;;;;;21873;;21923;;;;;;;;:10;:37;;;2:2:-1;;;;27:1;24;17:12;2:2;21923:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21923:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;21923:37:0;21792:179;;;-1:-1:-1;;;;;21792:179:0;;;;;21923:37;21792:179;;;;;;;;;;;;;;;;;;;21298:681::o;5770:45::-;;;;:::o;9504:1432::-;3138:10;3119:18;:30;;;;;;;;;;;3153:1;3119:35;3111:87;;;;-1:-1:-1;;;3111:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9600:9:::1;-1:-1:-1::0;;;9600:34:0::1;9596:1283;;;9636:19;:26:::0;;;9596:1283:::1;;;9682:9;-1:-1:-1::0;;;9682:35:0::1;9678:1201;;;9719:20;:27:::0;;;9678:1201:::1;;;9766:9;-1:-1:-1::0;;;9766:27:0::1;9762:1117;;;9795:12;:19:::0;;;9762:1117:::1;;;9834:9;:41;;9830:1049;;;9877:26;:33:::0;;;9830:1049:::1;;;9930:9;-1:-1:-1::0;;;9930:36:0::1;9926:953;;;9968:21;:28:::0;;;9926:953:::1;;;10016:9;:40;;10012:867;;;10058:25;:32:::0;;;10012:867:::1;;;10110:9;-1:-1:-1::0;;;10110:33:0::1;10106:773;;;10145:18;:25:::0;;;10106:773:::1;;;10190:9;:45;;10186:693;;;10237:30;:37:::0;;;10186:693:::1;;;10294:9;-1:-1:-1::0;;;10294:28:0::1;10290:589;;;10324:13;:20:::0;;;10290:589:::1;;;10364:9;:38;;10360:519;;;10432:3;10425:4;:10;10417:71;;;;-1:-1:-1::0;;;10417:71:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10501:23;:30:::0;;;10360:519:::1;;;10562:9;-1:-1:-1::0;;;10562:37:0::1;10558:321;;;10629:3;10622:4;:10;10614:70;;;;-1:-1:-1::0;;;10614:70:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10697:22;:29:::0;;;10558:321:::1;;;10757:9;-1:-1:-1::0;;;10757:30:0::1;10753:126;;;10789:15;:22:::0;;;10753:126:::1;10895:33;::::0;;;;;;;10912:9;;10895:33:::1;::::0;;;;;::::1;::::0;;::::1;9504:1432:::0;;:::o;17049:1209::-;17093:10;17124:25;;17153:1;17124:30;;17116:87;;;;-1:-1:-1;;;17116:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17251:1;17222:26;;:30;17214:82;;;;-1:-1:-1;;;17214:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17307:37;17318:25;:23;:25::i;17307:37::-;17382:53;17391:22;;17415:19;;17382:8;:53::i;:::-;17375:3;:60;;17355:155;;;;-1:-1:-1;;;17355:155:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17611:10;;:37;;;-1:-1:-1;;;17611:37:0;;17642:4;17611:37;;;;;;17593:100;;17602:75;;-1:-1:-1;;;;;17611:10:0;;;;:22;;:37;;;;;;;;;;;;;;;:10;:37;;;2:2:-1;;;;27:1;24;17:12;2:2;17611:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17611:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17611:37:0;17650:26;;17602:8;:75::i;17593:100::-;17541:10;;:37;;;-1:-1:-1;;;17541:37:0;;17572:4;17541:37;;;;;;-1:-1:-1;;;;;17541:10:0;;;;:22;;:37;;;;;;;;;;;;;;;:10;:37;;;2:2:-1;;;;27:1;24;17:12;2:2;17541:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17541:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17541:37:0;:152;;17521:235;;;;-1:-1:-1;;;17521:235:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17787:25;:23;:25::i;:::-;:30;17767:106;;;;;-1:-1:-1;;;17767:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17892:19;;:35;;;-1:-1:-1;;;17892:35:0;;;;17939:1;;-1:-1:-1;;;;;17892:19:0;;:33;;:35;;;;;;;;;;;;;;:19;:35;;;2:2:-1;;;;27:1;24;17:12;2:2;17892:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17892:35:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17892:35:0;-1:-1:-1;;;;;17892:49:0;;;17884:110;;;;-1:-1:-1;;;17884:110:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18031:3;18005:22;:29;;;18045:23;:29;18090:19;;18123:26;;18090:63;;;-1:-1:-1;;;18090:63:0;;;;;;;;;-1:-1:-1;18090:63:0;;;;;;;;-1:-1:-1;;;;;18090:19:0;;;;:32;;:63;;;;;;;;;;;;;;;;;:19;:63;;;2:2:-1;;;;27:1;24;17:12;2:2;18090:63:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18090:63:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;18090:63:0;18188:22;;18212:10;;:37;;;-1:-1:-1;;;18212:37:0;;18243:4;18212:37;;;;;;18090:63;;-1:-1:-1;18090:63:0;;18169:81;;18188:22;-1:-1:-1;;;;;18212:10:0;;:22;;:37;;;;;18090:63;;18212:37;;;;;;;:10;:37;;;2:2:-1;;;;27:1;24;17:12;8852:151:0;8950:5;;;8945:16;;;;8937:58;;;;;-1:-1:-1;;;8937:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8852:151;;;;:::o;9009:152::-;9107:5;;;9102:16;;;;9094:59;;;;;-1:-1:-1;;;9094:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;9167:113;9229:9;9263:1;9258;:6;;:14;;9271:1;9258:14;;;9267:1;9258:14;9251:21;9167:113;-1:-1:-1;;;9167:113:0:o
Swarm Source
ipfs://9e5ee131cf804ed7b9ec51496c3b7b7081bd9a7e21a81ab0caa53d2bc2c7bbaf
Loading...
Loading
Loading...
Loading
OVERVIEW
The AccountingEngine receives both system surplus and system debt. It covers deficits via debt auctions and disposes off surplus via auctions (Burning/RecyclingSurplusAuctionHouse) or transfers (to extraSurplusReceiver).Multichain Portfolio | 24 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.