Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 5 from a total of 5 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer SAFE Ow... | 14030430 | 1067 days ago | IN | 0 ETH | 0.01279915 | ||||
Open SAFE | 12368393 | 1326 days ago | IN | 0 ETH | 0.02018308 | ||||
Transfer Interna... | 11849104 | 1406 days ago | IN | 0 ETH | 0.00739614 | ||||
Modify SAFE Coll... | 11849103 | 1406 days ago | IN | 0 ETH | 0.02482487 | ||||
Open SAFE | 11849084 | 1406 days ago | IN | 0 ETH | 0.0367272 |
Latest 25 internal transactions (View All)
Advanced mode:
Loading...
Loading
Contract Name:
GebSafeManager
Compiler Version
v0.6.7+commit.b8d736ae
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-02-14 */ // Copyright (C) 2018-2020 Maker Ecosystem Growth Holdings, INC. // 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 SAFEEngineLike { function safes(bytes32, address) virtual public view returns (uint, uint); function approveSAFEModification(address) virtual public; function transferCollateral(bytes32, address, address, uint) virtual public; function transferInternalCoins(address, address, uint) virtual public; function modifySAFECollateralization(bytes32, address, address, address, int, int) virtual public; function transferSAFECollateralAndDebt(bytes32, address, address, int, int) virtual public; } abstract contract LiquidationEngineLike { function protectSAFE(bytes32, address, address) virtual external; } contract SAFEHandler { constructor(address safeEngine) public { SAFEEngineLike(safeEngine).approveSAFEModification(msg.sender); } } contract GebSafeManager { address public safeEngine; uint public safei; // Auto incremental mapping (uint => address) public safes; // SAFEId => SAFEHandler mapping (uint => List) public safeList; // SAFEId => Prev & Next SAFEIds (double linked list) mapping (uint => address) public ownsSAFE; // SAFEId => Owner mapping (uint => bytes32) public collateralTypes; // SAFEId => CollateralType mapping (address => uint) public firstSAFEID; // Owner => First SAFEId mapping (address => uint) public lastSAFEID; // Owner => Last SAFEId mapping (address => uint) public safeCount; // Owner => Amount of SAFEs mapping ( address => mapping ( uint => mapping ( address => uint ) ) ) public safeCan; // Owner => SAFEId => Allowed Addr => True/False mapping ( address => mapping ( address => uint ) ) public handlerCan; // SAFE handler => Allowed Addr => True/False struct List { uint prev; uint next; } // --- Events --- event AllowSAFE( address sender, uint safe, address usr, uint ok ); event AllowHandler( address sender, address usr, uint ok ); event TransferSAFEOwnership( address sender, uint safe, address dst ); event OpenSAFE(address indexed sender, address indexed own, uint indexed safe); event ModifySAFECollateralization( address sender, uint safe, int deltaCollateral, int deltaDebt ); event TransferCollateral( address sender, uint safe, address dst, uint wad ); event TransferCollateral( address sender, bytes32 collateralType, uint safe, address dst, uint wad ); event TransferInternalCoins( address sender, uint safe, address dst, uint rad ); event QuitSystem( address sender, uint safe, address dst ); event EnterSystem( address sender, address src, uint safe ); event MoveSAFE( address sender, uint safeSrc, uint safeDst ); event ProtectSAFE( address sender, uint safe, address liquidationEngine, address saviour ); modifier safeAllowed( uint safe ) { require(msg.sender == ownsSAFE[safe] || safeCan[ownsSAFE[safe]][safe][msg.sender] == 1, "safe-not-allowed"); _; } modifier handlerAllowed( address handler ) { require( msg.sender == handler || handlerCan[handler][msg.sender] == 1, "internal-system-safe-not-allowed" ); _; } constructor(address safeEngine_) public { safeEngine = safeEngine_; } // --- Math --- function add(uint x, uint y) internal pure returns (uint z) { require((z = x + y) >= x); } function sub(uint x, uint y) internal pure returns (uint z) { require((z = x - y) <= x); } function toInt(uint x) internal pure returns (int y) { y = int(x); require(y >= 0); } // --- SAFE Manipulation --- // Allow/disallow a usr address to manage the safe function allowSAFE( uint safe, address usr, uint ok ) public safeAllowed(safe) { safeCan[ownsSAFE[safe]][safe][usr] = ok; emit AllowSAFE( msg.sender, safe, usr, ok ); } // Allow/disallow a usr address to quit to the sender handler function allowHandler( address usr, uint ok ) public { handlerCan[msg.sender][usr] = ok; emit AllowHandler( msg.sender, usr, ok ); } // Open a new safe for a given usr address. function openSAFE( bytes32 collateralType, address usr ) public returns (uint) { require(usr != address(0), "usr-address-0"); safei = add(safei, 1); safes[safei] = address(new SAFEHandler(safeEngine)); ownsSAFE[safei] = usr; collateralTypes[safei] = collateralType; // Add new SAFE to double linked list and pointers if (firstSAFEID[usr] == 0) { firstSAFEID[usr] = safei; } if (lastSAFEID[usr] != 0) { safeList[safei].prev = lastSAFEID[usr]; safeList[lastSAFEID[usr]].next = safei; } lastSAFEID[usr] = safei; safeCount[usr] = add(safeCount[usr], 1); emit OpenSAFE(msg.sender, usr, safei); return safei; } // Give the safe ownership to a dst address. function transferSAFEOwnership( uint safe, address dst ) public safeAllowed(safe) { require(dst != address(0), "dst-address-0"); require(dst != ownsSAFE[safe], "dst-already-owner"); // Remove transferred SAFE from double linked list of origin user and pointers if (safeList[safe].prev != 0) { safeList[safeList[safe].prev].next = safeList[safe].next; // Set the next pointer of the prev safe (if exists) to the next of the transferred one } if (safeList[safe].next != 0) { // If wasn't the last one safeList[safeList[safe].next].prev = safeList[safe].prev; // Set the prev pointer of the next safe to the prev of the transferred one } else { // If was the last one lastSAFEID[ownsSAFE[safe]] = safeList[safe].prev; // Update last pointer of the owner } if (firstSAFEID[ownsSAFE[safe]] == safe) { // If was the first one firstSAFEID[ownsSAFE[safe]] = safeList[safe].next; // Update first pointer of the owner } safeCount[ownsSAFE[safe]] = sub(safeCount[ownsSAFE[safe]], 1); // Transfer ownership ownsSAFE[safe] = dst; // Add transferred SAFE to double linked list of destiny user and pointers safeList[safe].prev = lastSAFEID[dst]; safeList[safe].next = 0; if (lastSAFEID[dst] != 0) { safeList[lastSAFEID[dst]].next = safe; } if (firstSAFEID[dst] == 0) { firstSAFEID[dst] = safe; } lastSAFEID[dst] = safe; safeCount[dst] = add(safeCount[dst], 1); emit TransferSAFEOwnership( msg.sender, safe, dst ); } // Modify a SAFE's collateralization ratio while keeping the generated COIN or collateral freed in the SAFE handler address. function modifySAFECollateralization( uint safe, int deltaCollateral, int deltaDebt ) public safeAllowed(safe) { address safeHandler = safes[safe]; SAFEEngineLike(safeEngine).modifySAFECollateralization( collateralTypes[safe], safeHandler, safeHandler, safeHandler, deltaCollateral, deltaDebt ); emit ModifySAFECollateralization( msg.sender, safe, deltaCollateral, deltaDebt ); } // Transfer wad amount of safe collateral from the safe address to a dst address. function transferCollateral( uint safe, address dst, uint wad ) public safeAllowed(safe) { SAFEEngineLike(safeEngine).transferCollateral(collateralTypes[safe], safes[safe], dst, wad); emit TransferCollateral( msg.sender, safe, dst, wad ); } // Transfer wad amount of any type of collateral (collateralType) from the safe address to a dst address. // This function has the purpose to take away collateral from the system that doesn't correspond to the safe but was sent there wrongly. function transferCollateral( bytes32 collateralType, uint safe, address dst, uint wad ) public safeAllowed(safe) { SAFEEngineLike(safeEngine).transferCollateral(collateralType, safes[safe], dst, wad); emit TransferCollateral( msg.sender, collateralType, safe, dst, wad ); } // Transfer rad amount of COIN from the safe address to a dst address. function transferInternalCoins( uint safe, address dst, uint rad ) public safeAllowed(safe) { SAFEEngineLike(safeEngine).transferInternalCoins(safes[safe], dst, rad); emit TransferInternalCoins( msg.sender, safe, dst, rad ); } // Quit the system, migrating the safe (lockedCollateral, generatedDebt) to a different dst handler function quitSystem( uint safe, address dst ) public safeAllowed(safe) handlerAllowed(dst) { (uint lockedCollateral, uint generatedDebt) = SAFEEngineLike(safeEngine).safes(collateralTypes[safe], safes[safe]); int deltaCollateral = toInt(lockedCollateral); int deltaDebt = toInt(generatedDebt); SAFEEngineLike(safeEngine).transferSAFECollateralAndDebt( collateralTypes[safe], safes[safe], dst, deltaCollateral, deltaDebt ); emit QuitSystem( msg.sender, safe, dst ); } // Import a position from src handler to the handler owned by safe function enterSystem( address src, uint safe ) public handlerAllowed(src) safeAllowed(safe) { (uint lockedCollateral, uint generatedDebt) = SAFEEngineLike(safeEngine).safes(collateralTypes[safe], src); int deltaCollateral = toInt(lockedCollateral); int deltaDebt = toInt(generatedDebt); SAFEEngineLike(safeEngine).transferSAFECollateralAndDebt( collateralTypes[safe], src, safes[safe], deltaCollateral, deltaDebt ); emit EnterSystem( msg.sender, src, safe ); } // Move a position from safeSrc handler to the safeDst handler function moveSAFE( uint safeSrc, uint safeDst ) public safeAllowed(safeSrc) safeAllowed(safeDst) { require(collateralTypes[safeSrc] == collateralTypes[safeDst], "non-matching-safes"); (uint lockedCollateral, uint generatedDebt) = SAFEEngineLike(safeEngine).safes(collateralTypes[safeSrc], safes[safeSrc]); int deltaCollateral = toInt(lockedCollateral); int deltaDebt = toInt(generatedDebt); SAFEEngineLike(safeEngine).transferSAFECollateralAndDebt( collateralTypes[safeSrc], safes[safeSrc], safes[safeDst], deltaCollateral, deltaDebt ); emit MoveSAFE( msg.sender, safeSrc, safeDst ); } // Choose a SAFE saviour inside LiquidationEngine for the SAFE with id 'safe' function protectSAFE( uint safe, address liquidationEngine, address saviour ) public safeAllowed(safe) { LiquidationEngineLike(liquidationEngine).protectSAFE( collateralTypes[safe], safes[safe], saviour ); emit ProtectSAFE( msg.sender, safe, liquidationEngine, saviour ); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"safeEngine_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"usr","type":"address"},{"indexed":false,"internalType":"uint256","name":"ok","type":"uint256"}],"name":"AllowHandler","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"safe","type":"uint256"},{"indexed":false,"internalType":"address","name":"usr","type":"address"},{"indexed":false,"internalType":"uint256","name":"ok","type":"uint256"}],"name":"AllowSAFE","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"src","type":"address"},{"indexed":false,"internalType":"uint256","name":"safe","type":"uint256"}],"name":"EnterSystem","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"safe","type":"uint256"},{"indexed":false,"internalType":"int256","name":"deltaCollateral","type":"int256"},{"indexed":false,"internalType":"int256","name":"deltaDebt","type":"int256"}],"name":"ModifySAFECollateralization","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"safeSrc","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"safeDst","type":"uint256"}],"name":"MoveSAFE","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"own","type":"address"},{"indexed":true,"internalType":"uint256","name":"safe","type":"uint256"}],"name":"OpenSAFE","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"safe","type":"uint256"},{"indexed":false,"internalType":"address","name":"liquidationEngine","type":"address"},{"indexed":false,"internalType":"address","name":"saviour","type":"address"}],"name":"ProtectSAFE","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"safe","type":"uint256"},{"indexed":false,"internalType":"address","name":"dst","type":"address"}],"name":"QuitSystem","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"safe","type":"uint256"},{"indexed":false,"internalType":"address","name":"dst","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"TransferCollateral","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"bytes32","name":"collateralType","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"safe","type":"uint256"},{"indexed":false,"internalType":"address","name":"dst","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"TransferCollateral","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"safe","type":"uint256"},{"indexed":false,"internalType":"address","name":"dst","type":"address"},{"indexed":false,"internalType":"uint256","name":"rad","type":"uint256"}],"name":"TransferInternalCoins","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"safe","type":"uint256"},{"indexed":false,"internalType":"address","name":"dst","type":"address"}],"name":"TransferSAFEOwnership","type":"event"},{"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"ok","type":"uint256"}],"name":"allowHandler","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"safe","type":"uint256"},{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"ok","type":"uint256"}],"name":"allowSAFE","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"collateralTypes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"uint256","name":"safe","type":"uint256"}],"name":"enterSystem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"firstSAFEID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"handlerCan","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastSAFEID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"safe","type":"uint256"},{"internalType":"int256","name":"deltaCollateral","type":"int256"},{"internalType":"int256","name":"deltaDebt","type":"int256"}],"name":"modifySAFECollateralization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"safeSrc","type":"uint256"},{"internalType":"uint256","name":"safeDst","type":"uint256"}],"name":"moveSAFE","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"collateralType","type":"bytes32"},{"internalType":"address","name":"usr","type":"address"}],"name":"openSAFE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"ownsSAFE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"safe","type":"uint256"},{"internalType":"address","name":"liquidationEngine","type":"address"},{"internalType":"address","name":"saviour","type":"address"}],"name":"protectSAFE","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"safe","type":"uint256"},{"internalType":"address","name":"dst","type":"address"}],"name":"quitSystem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"safeCan","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"safeCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"safeEngine","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"safeList","outputs":[{"internalType":"uint256","name":"prev","type":"uint256"},{"internalType":"uint256","name":"next","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"safei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"safes","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"safe","type":"uint256"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"transferCollateral","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"collateralType","type":"bytes32"},{"internalType":"uint256","name":"safe","type":"uint256"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"transferCollateral","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"safe","type":"uint256"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rad","type":"uint256"}],"name":"transferInternalCoins","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"safe","type":"uint256"},{"internalType":"address","name":"dst","type":"address"}],"name":"transferSAFEOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405162004468380380620044688339818101604052602081101561003557600080fd5b8101908080519060200190929190505050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506143d180620000976000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80636ffdabbf116100c3578063a2a4d76e1161007c578063a2a4d76e146106cb578063aa1d8d8114610739578063c78101f81461079b578063ce05264d146107dd578063d983ff9514610855578063e0decbcd146108b75761014d565b80636ffdabbf146104fe57806380bdb6b21461054c578063871581a21461059a578063918b7cfe146105f25780639898ac7914610634578063a26292db1461067d5761014d565b8063434efcbd11610115578063434efcbd146102a65780634fa053b114610314578063511c743d14610396578063660e1607146103ee57806367aea313146104465780636f0942a4146104905761014d565b8063018477a51461015257806304e461ef1461018a5780630ae43e4e146101e257806318c254b81461023a578063391735c114610258575b600080fd5b6101886004803603604081101561016857600080fd5b81019080803590602001909291908035906020019092919050505061090f565b005b6101cc600480360360208110156101a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611035565b6040518082815260200191505060405180910390f35b610224600480360360208110156101f857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061104d565b6040518082815260200191505060405180910390f35b610242611065565b6040518082815260200191505060405180910390f35b6102a46004803603604081101561026e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061106b565b005b6102d2600480360360208110156102bc57600080fd5b810190808035906020019092919050505061118f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103806004803603606081101561032a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111c2565b6040518082815260200191505060405180910390f35b6103d8600480360360208110156103ac57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111f4565b6040518082815260200191505060405180910390f35b6104446004803603606081101561040457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061120c565b005b61044e611580565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104fc600480360360608110156104a657600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115a5565b005b61054a6004803603604081101561051457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611937565b005b6105986004803603604081101561056257600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f11565b005b6105f0600480360360608110156105b057600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506128ee565b005b61061e6004803603602081101561060857600080fd5b8101908080359060200190929190505050612c7d565b6040518082815260200191505060405180910390f35b6106606004803603602081101561064a57600080fd5b8101908080359060200190929190505050612c95565b604051808381526020018281526020019250505060405180910390f35b6106c96004803603604081101561069357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cb9565b005b6106f7600480360360208110156106e157600080fd5b81019080803590602001909291905050506132c6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107996004803603608081101561074f57600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506132f9565b005b6107db600480360360608110156107b157600080fd5b8101908080359060200190929190803590602001909291908035906020019092919050505061367e565b005b61083f600480360360408110156107f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613a23565b6040518082815260200191505060405180910390f35b6108a16004803603604081101561086b57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613a48565b6040518082815260200191505060405180910390f35b61090d600480360360608110156108cd57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613f0b565b005b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a3d57506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610aaf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f736166652d6e6f742d616c6c6f7765640000000000000000000000000000000081525060200191505060405180910390fd5b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610bdd57506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610c4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f736166652d6e6f742d616c6c6f7765640000000000000000000000000000000081525060200191505060405180910390fd5b6005600084815260200190815260200160002054600560008681526020019081526020016000205414610cea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f6e6f6e2d6d61746368696e672d7361666573000000000000000000000000000081525060200191505060405180910390fd5b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633d4225046005600089815260200190815260200160002054600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b158015610dd857600080fd5b505afa158015610dec573d6000803e3d6000fd5b505050506040513d6040811015610e0257600080fd5b810190808051906020019092919080519060200190929190505050915091506000610e2c8361421d565b90506000610e398361421d565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663476bb6ef600560008b815260200190815260200160002054600260008c815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008c815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686866040518663ffffffff1660e01b8152600401808681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b158015610fa057600080fd5b505af1158015610fb4573d6000803e3d6000fd5b505050507fa97fba7e365c0128f8b08a83e0818826957948356accc061289463915f4aef69338989604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a15050505050505050565b60066020528060005260406000206000915090505481565b60086020528060005260406000206000915090505481565b60015481565b80600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507faa78deb20213efe10f6ff8128a962635826ed67c51a5f7bf318dd1c37ceabbd0338383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a15050565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b60076020528060005260406000206000915090505481565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061133a57506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6113ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f736166652d6e6f742d616c6c6f7765640000000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663efabcadc6002600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156114bb57600080fd5b505af11580156114cf573d6000803e3d6000fd5b505050507f4bcf3a338d8f80224ef2faba6a44cf6740cc4ba448c950d7c99bbe02da4b710b33858585604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200194505050505060405180910390a150505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806116d357506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b611745576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f736166652d6e6f742d616c6c6f7765640000000000000000000000000000000081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff16633896a38460056000878152602001908152602001600020546002600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b15801561184657600080fd5b505af115801561185a573d6000803e3d6000fd5b505050507f2dd35b03a7c5d91157bc84411fbe9950d393a57972a764a09c74fdc2316ad29d33858585604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390a150505050565b818073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806119ee57506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b611a60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f696e7465726e616c2d73797374656d2d736166652d6e6f742d616c6c6f77656481525060200191505060405180910390fd5b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611b8e57506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b611c00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f736166652d6e6f742d616c6c6f7765640000000000000000000000000000000081525060200191505060405180910390fd5b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633d4225046005600088815260200190815260200160002054886040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b158015611cbb57600080fd5b505afa158015611ccf573d6000803e3d6000fd5b505050506040513d6040811015611ce557600080fd5b810190808051906020019092919080519060200190929190505050915091506000611d0f8361421d565b90506000611d1c8361421d565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663476bb6ef600560008a8152602001908152602001600020548a600260008c815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686866040518663ffffffff1660e01b8152600401808681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b158015611e5057600080fd5b505af1158015611e64573d6000803e3d6000fd5b505050507f218e81d047133e990e0c3fef0ae3fdbc9b1de4b9775baac9b011b45f585cd64a338989604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a15050505050505050565b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061203f57506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6120b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f736166652d6e6f742d616c6c6f7765640000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6473742d616464726573732d300000000000000000000000000000000000000081525060200191505060405180910390fd5b6004600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612229576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f6473742d616c72656164792d6f776e657200000000000000000000000000000081525060200191505060405180910390fd5b600060036000858152602001908152602001600020600001541461228f5760036000848152602001908152602001600020600101546003600060036000878152602001908152602001600020600001548152602001908152602001600020600101819055505b60006003600085815260200190815260200160002060010154146122f9576003600084815260200190815260200160002060000154600360006003600087815260200190815260200160002060010154815260200190815260200160002060000181905550612387565b6003600084815260200190815260200160002060000154600760006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82600660006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561248f576003600084815260200190815260200160002060010154600660006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61250c600860006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546001614235565b600860006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546003600085815260200190815260200160002060000181905550600060036000858152602001908152602001600020600101819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146126ec578260036000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600101819055505b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156127795782600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612807600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600161424f565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f53a4da6d15fe50375abfb512358024b4a99422da4c26736d2ed0f9540ddb2796338484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a1505050565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612a1c57506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b612a8e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f736166652d6e6f742d616c6c6f7765640000000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634e5111a660056000878152602001908152602001600020546002600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686866040518563ffffffff1660e01b8152600401808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001945050505050600060405180830381600087803b158015612bb857600080fd5b505af1158015612bcc573d6000803e3d6000fd5b505050507fc0db7defff3210677ded74d20a6b47a7e48901c4ca7a5978dbed3826f4870d3033858585604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200194505050505060405180910390a150505050565b60056020528060005260406000206000915090505481565b60036020528060005260406000206000915090508060000154908060010154905082565b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612de757506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b612e59576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f736166652d6e6f742d616c6c6f7765640000000000000000000000000000000081525060200191505060405180910390fd5b818073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612f1057506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b612f82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f696e7465726e616c2d73797374656d2d736166652d6e6f742d616c6c6f77656481525060200191505060405180910390fd5b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633d4225046005600089815260200190815260200160002054600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b15801561307057600080fd5b505afa158015613084573d6000803e3d6000fd5b505050506040513d604081101561309a57600080fd5b8101908080519060200190929190805190602001909291905050509150915060006130c48361421d565b905060006130d18361421d565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663476bb6ef600560008b815260200190815260200160002054600260008c815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a86866040518663ffffffff1660e01b8152600401808681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b15801561320557600080fd5b505af1158015613219573d6000803e3d6000fd5b505050507fc819508e420d88636175642d4552e0689efcf0f97db14737c1f4224ed66323cd338989604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a15050505050505050565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061342757506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b613499576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f736166652d6e6f742d616c6c6f7765640000000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634e5111a6866002600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686866040518563ffffffff1660e01b8152600401808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001945050505050600060405180830381600087803b1580156135b057600080fd5b505af11580156135c4573d6000803e3d6000fd5b505050507f0be149ca022ee027e452e448a55a6b15da9081ab45afecbc8715ca1626c9cdf33386868686604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019550505050505060405180910390a15050505050565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806137ac57506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b61381e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f736166652d6e6f742d616c6c6f7765640000000000000000000000000000000081525060200191505060405180910390fd5b60006002600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166399bec315600560008881526020019081526020016000205483848589896040518763ffffffff1660e01b8152600401808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019650505050505050600060405180830381600087803b15801561398957600080fd5b505af115801561399d573d6000803e3d6000fd5b505050507f4a1d86235388d42bee8b26817295ba354feb351780a0005e14a02303ac302df833868686604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200194505050505060405180910390a15050505050565b600a602052816000526040600020602052806000526040600020600091509150505481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613aec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f7573722d616464726573732d300000000000000000000000000000000000000081525060200191505060405180910390fd5b613af9600154600161424f565b6001819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051613b2d90614269565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f080158015613b7f573d6000803e3d6000fd5b5060026000600154815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160046000600154815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600560006001548152602001908152602001600020819055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415613cd057600154600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414613dd057600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546003600060015481526020019081526020016000206000018190555060015460036000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600101819055505b600154600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e60600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600161424f565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001548273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fec2d798cbd6c16b0081feb29a63dd41e115efa1047e86d08fff4b1739865bcf760405160405180910390a4600154905092915050565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061403957506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6140ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f736166652d6e6f742d616c6c6f7765640000000000000000000000000000000081525060200191505060405180910390fd5b81600960006004600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f3795e85c6a36b093c1600285f715dc4692d9f81b9b39778a16dacb483eed249a33858585604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200194505050505060405180910390a150505050565b6000819050600081121561423057600080fd5b919050565b600082828403915081111561424957600080fd5b92915050565b600082828401915081101561426357600080fd5b92915050565b610125806142778339019056fe6080604052348015600f57600080fd5b5060405161012538038061012583398181016040526020811015603157600080fd5b81019080805190602001909291905050508073ffffffffffffffffffffffffffffffffffffffff1663d94d4208336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801560c057600080fd5b505af115801560d3573d6000803e3d6000fd5b5050505050603f806100e66000396000f3fe6080604052600080fdfea2646970667358221220758a53f66e29fbf228ff6fd0aa1b69bcb81d115a67933d27409b0ddf5e3201d064736f6c63430006070033a2646970667358221220f1a6da6f53e5408fc26fc5e0236c6218714b0f8773b942189fa2a8ec17b953cc64736f6c63430006070033000000000000000000000000cc88a9d330da1133df3a7bd823b95e52511a6962
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80636ffdabbf116100c3578063a2a4d76e1161007c578063a2a4d76e146106cb578063aa1d8d8114610739578063c78101f81461079b578063ce05264d146107dd578063d983ff9514610855578063e0decbcd146108b75761014d565b80636ffdabbf146104fe57806380bdb6b21461054c578063871581a21461059a578063918b7cfe146105f25780639898ac7914610634578063a26292db1461067d5761014d565b8063434efcbd11610115578063434efcbd146102a65780634fa053b114610314578063511c743d14610396578063660e1607146103ee57806367aea313146104465780636f0942a4146104905761014d565b8063018477a51461015257806304e461ef1461018a5780630ae43e4e146101e257806318c254b81461023a578063391735c114610258575b600080fd5b6101886004803603604081101561016857600080fd5b81019080803590602001909291908035906020019092919050505061090f565b005b6101cc600480360360208110156101a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611035565b6040518082815260200191505060405180910390f35b610224600480360360208110156101f857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061104d565b6040518082815260200191505060405180910390f35b610242611065565b6040518082815260200191505060405180910390f35b6102a46004803603604081101561026e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061106b565b005b6102d2600480360360208110156102bc57600080fd5b810190808035906020019092919050505061118f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103806004803603606081101561032a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111c2565b6040518082815260200191505060405180910390f35b6103d8600480360360208110156103ac57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111f4565b6040518082815260200191505060405180910390f35b6104446004803603606081101561040457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061120c565b005b61044e611580565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104fc600480360360608110156104a657600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115a5565b005b61054a6004803603604081101561051457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611937565b005b6105986004803603604081101561056257600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f11565b005b6105f0600480360360608110156105b057600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506128ee565b005b61061e6004803603602081101561060857600080fd5b8101908080359060200190929190505050612c7d565b6040518082815260200191505060405180910390f35b6106606004803603602081101561064a57600080fd5b8101908080359060200190929190505050612c95565b604051808381526020018281526020019250505060405180910390f35b6106c96004803603604081101561069357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cb9565b005b6106f7600480360360208110156106e157600080fd5b81019080803590602001909291905050506132c6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107996004803603608081101561074f57600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506132f9565b005b6107db600480360360608110156107b157600080fd5b8101908080359060200190929190803590602001909291908035906020019092919050505061367e565b005b61083f600480360360408110156107f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613a23565b6040518082815260200191505060405180910390f35b6108a16004803603604081101561086b57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613a48565b6040518082815260200191505060405180910390f35b61090d600480360360608110156108cd57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613f0b565b005b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a3d57506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610aaf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f736166652d6e6f742d616c6c6f7765640000000000000000000000000000000081525060200191505060405180910390fd5b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610bdd57506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610c4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f736166652d6e6f742d616c6c6f7765640000000000000000000000000000000081525060200191505060405180910390fd5b6005600084815260200190815260200160002054600560008681526020019081526020016000205414610cea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f6e6f6e2d6d61746368696e672d7361666573000000000000000000000000000081525060200191505060405180910390fd5b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633d4225046005600089815260200190815260200160002054600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b158015610dd857600080fd5b505afa158015610dec573d6000803e3d6000fd5b505050506040513d6040811015610e0257600080fd5b810190808051906020019092919080519060200190929190505050915091506000610e2c8361421d565b90506000610e398361421d565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663476bb6ef600560008b815260200190815260200160002054600260008c815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008c815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686866040518663ffffffff1660e01b8152600401808681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b158015610fa057600080fd5b505af1158015610fb4573d6000803e3d6000fd5b505050507fa97fba7e365c0128f8b08a83e0818826957948356accc061289463915f4aef69338989604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a15050505050505050565b60066020528060005260406000206000915090505481565b60086020528060005260406000206000915090505481565b60015481565b80600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507faa78deb20213efe10f6ff8128a962635826ed67c51a5f7bf318dd1c37ceabbd0338383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a15050565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b60076020528060005260406000206000915090505481565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061133a57506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6113ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f736166652d6e6f742d616c6c6f7765640000000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663efabcadc6002600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156114bb57600080fd5b505af11580156114cf573d6000803e3d6000fd5b505050507f4bcf3a338d8f80224ef2faba6a44cf6740cc4ba448c950d7c99bbe02da4b710b33858585604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200194505050505060405180910390a150505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806116d357506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b611745576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f736166652d6e6f742d616c6c6f7765640000000000000000000000000000000081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff16633896a38460056000878152602001908152602001600020546002600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b15801561184657600080fd5b505af115801561185a573d6000803e3d6000fd5b505050507f2dd35b03a7c5d91157bc84411fbe9950d393a57972a764a09c74fdc2316ad29d33858585604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390a150505050565b818073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806119ee57506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b611a60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f696e7465726e616c2d73797374656d2d736166652d6e6f742d616c6c6f77656481525060200191505060405180910390fd5b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611b8e57506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b611c00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f736166652d6e6f742d616c6c6f7765640000000000000000000000000000000081525060200191505060405180910390fd5b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633d4225046005600088815260200190815260200160002054886040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b158015611cbb57600080fd5b505afa158015611ccf573d6000803e3d6000fd5b505050506040513d6040811015611ce557600080fd5b810190808051906020019092919080519060200190929190505050915091506000611d0f8361421d565b90506000611d1c8361421d565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663476bb6ef600560008a8152602001908152602001600020548a600260008c815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686866040518663ffffffff1660e01b8152600401808681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b158015611e5057600080fd5b505af1158015611e64573d6000803e3d6000fd5b505050507f218e81d047133e990e0c3fef0ae3fdbc9b1de4b9775baac9b011b45f585cd64a338989604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a15050505050505050565b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061203f57506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6120b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f736166652d6e6f742d616c6c6f7765640000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6473742d616464726573732d300000000000000000000000000000000000000081525060200191505060405180910390fd5b6004600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612229576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f6473742d616c72656164792d6f776e657200000000000000000000000000000081525060200191505060405180910390fd5b600060036000858152602001908152602001600020600001541461228f5760036000848152602001908152602001600020600101546003600060036000878152602001908152602001600020600001548152602001908152602001600020600101819055505b60006003600085815260200190815260200160002060010154146122f9576003600084815260200190815260200160002060000154600360006003600087815260200190815260200160002060010154815260200190815260200160002060000181905550612387565b6003600084815260200190815260200160002060000154600760006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82600660006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561248f576003600084815260200190815260200160002060010154600660006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61250c600860006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546001614235565b600860006004600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546003600085815260200190815260200160002060000181905550600060036000858152602001908152602001600020600101819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146126ec578260036000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600101819055505b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156127795782600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612807600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600161424f565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f53a4da6d15fe50375abfb512358024b4a99422da4c26736d2ed0f9540ddb2796338484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a1505050565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612a1c57506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b612a8e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f736166652d6e6f742d616c6c6f7765640000000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634e5111a660056000878152602001908152602001600020546002600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686866040518563ffffffff1660e01b8152600401808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001945050505050600060405180830381600087803b158015612bb857600080fd5b505af1158015612bcc573d6000803e3d6000fd5b505050507fc0db7defff3210677ded74d20a6b47a7e48901c4ca7a5978dbed3826f4870d3033858585604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200194505050505060405180910390a150505050565b60056020528060005260406000206000915090505481565b60036020528060005260406000206000915090508060000154908060010154905082565b816004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612de757506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b612e59576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f736166652d6e6f742d616c6c6f7765640000000000000000000000000000000081525060200191505060405180910390fd5b818073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612f1057506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b612f82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f696e7465726e616c2d73797374656d2d736166652d6e6f742d616c6c6f77656481525060200191505060405180910390fd5b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633d4225046005600089815260200190815260200160002054600260008a815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b15801561307057600080fd5b505afa158015613084573d6000803e3d6000fd5b505050506040513d604081101561309a57600080fd5b8101908080519060200190929190805190602001909291905050509150915060006130c48361421d565b905060006130d18361421d565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663476bb6ef600560008b815260200190815260200160002054600260008c815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a86866040518663ffffffff1660e01b8152600401808681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b15801561320557600080fd5b505af1158015613219573d6000803e3d6000fd5b505050507fc819508e420d88636175642d4552e0689efcf0f97db14737c1f4224ed66323cd338989604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a15050505050505050565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061342757506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b613499576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f736166652d6e6f742d616c6c6f7765640000000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634e5111a6866002600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686866040518563ffffffff1660e01b8152600401808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001945050505050600060405180830381600087803b1580156135b057600080fd5b505af11580156135c4573d6000803e3d6000fd5b505050507f0be149ca022ee027e452e448a55a6b15da9081ab45afecbc8715ca1626c9cdf33386868686604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019550505050505060405180910390a15050505050565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806137ac57506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b61381e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f736166652d6e6f742d616c6c6f7765640000000000000000000000000000000081525060200191505060405180910390fd5b60006002600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166399bec315600560008881526020019081526020016000205483848589896040518763ffffffff1660e01b8152600401808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019650505050505050600060405180830381600087803b15801561398957600080fd5b505af115801561399d573d6000803e3d6000fd5b505050507f4a1d86235388d42bee8b26817295ba354feb351780a0005e14a02303ac302df833868686604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200194505050505060405180910390a15050505050565b600a602052816000526040600020602052806000526040600020600091509150505481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613aec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f7573722d616464726573732d300000000000000000000000000000000000000081525060200191505060405180910390fd5b613af9600154600161424f565b6001819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051613b2d90614269565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f080158015613b7f573d6000803e3d6000fd5b5060026000600154815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160046000600154815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600560006001548152602001908152602001600020819055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415613cd057600154600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414613dd057600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546003600060015481526020019081526020016000206000018190555060015460036000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600101819055505b600154600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e60600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600161424f565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001548273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fec2d798cbd6c16b0081feb29a63dd41e115efa1047e86d08fff4b1739865bcf760405160405180910390a4600154905092915050565b826004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061403957506001600960006004600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6140ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f736166652d6e6f742d616c6c6f7765640000000000000000000000000000000081525060200191505060405180910390fd5b81600960006004600088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f3795e85c6a36b093c1600285f715dc4692d9f81b9b39778a16dacb483eed249a33858585604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200194505050505060405180910390a150505050565b6000819050600081121561423057600080fd5b919050565b600082828403915081111561424957600080fd5b92915050565b600082828401915081101561426357600080fd5b92915050565b610125806142778339019056fe6080604052348015600f57600080fd5b5060405161012538038061012583398181016040526020811015603157600080fd5b81019080805190602001909291905050508073ffffffffffffffffffffffffffffffffffffffff1663d94d4208336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801560c057600080fd5b505af115801560d3573d6000803e3d6000fd5b5050505050603f806100e66000396000f3fe6080604052600080fdfea2646970667358221220758a53f66e29fbf228ff6fd0aa1b69bcb81d115a67933d27409b0ddf5e3201d064736f6c63430006070033a2646970667358221220f1a6da6f53e5408fc26fc5e0236c6218714b0f8773b942189fa2a8ec17b953cc64736f6c63430006070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000cc88a9d330da1133df3a7bd823b95e52511a6962
-----Decoded View---------------
Arg [0] : safeEngine_ (address): 0xCC88a9d330da1133Df3A7bD823B95e52511A6962
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000cc88a9d330da1133df3a7bd823b95e52511a6962
Deployed Bytecode Sourcemap
1593:12249:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1593:12249:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;12522:789:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12522:789:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2117:44;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2117:44:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2284:42;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2284:42:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1674:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5617:226;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;5617:226:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1753:38;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1753:38:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2373:151;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2373:151:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2201:43;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2201:43:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10595:342;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10595:342:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1624:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13402:437;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;13402:437:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11791:655;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;11791:655:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6761:1898;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;6761:1898:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9483:356;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;9483:356:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2028:48;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2028:48:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1837:41;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1837:41:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;11050:661;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;11050:661:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1950:41;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1950:41:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10100:411;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;10100:411:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8797:591;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8797:591:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2609:104;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2609:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5900:803;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;5900:803:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5258:284;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;5258:284:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12522:789;12612:7;4355:8;:14;4364:4;4355:14;;;;;;;;;;;;;;;;;;;;;4341:28;;:10;:28;;;:78;;;;4418:1;4373:7;:23;4381:8;:14;4390:4;4381:14;;;;;;;;;;;;;;;;;;;;;4373:23;;;;;;;;;;;;;;;:29;4397:4;4373:29;;;;;;;;;;;:41;4403:10;4373:41;;;;;;;;;;;;;;;;:46;4341:78;4333:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12633:7:::1;4355:8;:14;4364:4;4355:14;;;;;;;;;;;;;;;;;;;;;4341:28;;:10;:28;;;:78;;;;4418:1;4373:7;:23;4381:8;:14;4390:4;4381:14;;;;;;;;;;;;;;;;;;;;;4373:23;;;;;;;;;;;;;;;:29;4397:4;4373:29;;;;;;;;;;;:41;4403:10;4373:41;;;;;;;;;;;;;;;;:46;4341:78;4333:107;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;12689:15:::2;:24;12705:7;12689:24;;;;;;;;;;;;12661:15;:24;12677:7;12661:24;;;;;;;;;;;;:52;12653:83;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;12748:21;12771:18:::0;12808:10:::2;::::0;::::2;;;;;;;;;12793:32;;;12826:15;:24;12842:7;12826:24;;;;;;;;;;;;12852:5;:14;12858:7;12852:14;;;;;;;;;;;;;;;;;;;;;12793:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::2;2:2;12793:74:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;12793:74:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::2;4:2;12793:74:0;;;;;;;;;;;;;;;;;;;;;;;;;12747:120;;;;12878:19;12900:23;12906:16;12900:5;:23::i;:::-;12878:45;;12934:13;12950:20;12956:13;12950:5;:20::i;:::-;12934:36;;12996:10;::::0;::::2;;;;;;;;;12981:56;;;13052:15;:24;13068:7;13052:24;;;;;;;;;;;;13091:5;:14;13097:7;13091:14;;;;;;;;;;;;;;;;;;;;;13120:5;:14;13126:7;13120:14;;;;;;;;;;;;;;;;;;;;;13149:15;13179:9;12981:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::2;2:2;12981:218:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;12981:218:0;;;;13215:88;13238:10;13263:7;13285;13215:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4451:1;;;;::::1;12522:789:::0;;;:::o;2117:44::-;;;;;;;;;;;;;;;;;:::o;2284:42::-;;;;;;;;;;;;;;;;;:::o;1674:38::-;;;;:::o;5617:226::-;5734:2;5704:10;:22;5715:10;5704:22;;;;;;;;;;;;;;;:27;5727:3;5704:27;;;;;;;;;;;;;;;:32;;;;5752:83;5779:10;5804:3;5822:2;5752:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5617:226;;:::o;1753:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;2373:151::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2201:43::-;;;;;;;;;;;;;;;;;:::o;10595:342::-;10713:4;4355:8;:14;4364:4;4355:14;;;;;;;;;;;;;;;;;;;;;4341:28;;:10;:28;;;:78;;;;4418:1;4373:7;:23;4381:8;:14;4390:4;4381:14;;;;;;;;;;;;;;;;;;;;;4373:23;;;;;;;;;;;;;;;:29;4397:4;4373:29;;;;;;;;;;;:41;4403:10;4373:41;;;;;;;;;;;;;;;;:46;4341:78;4333:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10745:10:::1;::::0;::::1;;;;;;;;;10730:48;;;10779:5;:11;10785:4;10779:11;;;;;;;;;;;;;;;;;;;;;10792:3;10797;10730:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;10730:71:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;10730:71:0;;;;10817:112;10853:10;10878:4;10897:3;10915;10817:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10595:342:::0;;;;:::o;1624:43::-;;;;;;;;;;;;;:::o;13402:437::-;13531:4;4355:8;:14;4364:4;4355:14;;;;;;;;;;;;;;;;;;;;;4341:28;;:10;:28;;;:78;;;;4418:1;4373:7;:23;4381:8;:14;4390:4;4381:14;;;;;;;;;;;;;;;;;;;;;4373:23;;;;;;;;;;;;;;;:29;4397:4;4373:29;;;;;;;;;;;:41;4403:10;4373:41;;;;;;;;;;;;;;;;:46;4341:78;4333:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13570:17:::1;13548:52;;;13615:15;:21;13631:4;13615:21;;;;;;;;;;;;13651:5;:11;13657:4;13651:11;;;;;;;;;;;;;;;;;;;;;13677:7;13548:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;13548:147:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;13548:147:0;;;;13711:120;13737:10;13762:4;13781:17;13813:7;13711:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13402:437:::0;;;;:::o;11791:655::-;11883:3;4570:7;4556:21;;:10;:21;;;:72;;;;4627:1;4592:10;:19;4603:7;4592:19;;;;;;;;;;;;;;;:31;4612:10;4592:31;;;;;;;;;;;;;;;;:36;4556:72;4536:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11900:4:::1;4355:8;:14;4364:4;4355:14;;;;;;;;;;;;;;;;;;;;;4341:28;;:10;:28;;;:78;;;;4418:1;4373:7;:23;4381:8;:14;4390:4;4381:14;;;;;;;;;;;;;;;;;;;;;4373:23;;;;;;;;;;;;;;;:29;4397:4;4373:29;;;;;;;;;;;:41;4403:10;4373:41;;;;;;;;;;;;;;;;:46;4341:78;4333:107;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;11918:21:::2;11941:18:::0;11978:10:::2;::::0;::::2;;;;;;;;;11963:32;;;11996:15;:21;12012:4;11996:21;;;;;;;;;;;;12019:3;11963:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::2;2:2;11963:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;11963:60:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::2;4:2;11963:60:0;;;;;;;;;;;;;;;;;;;;;;;;;11917:106;;;;12034:19;12056:23;12062:16;12056:5;:23::i;:::-;12034:45;;12090:13;12106:20;12112:13;12106:5;:20::i;:::-;12090:36;;12152:10;::::0;::::2;;;;;;;;;12137:56;;;12208:15;:21;12224:4;12208:21;;;;;;;;;;;;12244:3;12262:5;:11;12268:4;12262:11;;;;;;;;;;;;;;;;;;;;;12288:15;12318:9;12137:201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::2;2:2;12137:201:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;12137:201:0;;;;12354:84;12380:10;12405:3;12423:4;12354:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4451:1;;;;4697::::1;11791:655:::0;;;:::o;6761:1898::-;6860:4;4355:8;:14;4364:4;4355:14;;;;;;;;;;;;;;;;;;;;;4341:28;;:10;:28;;;:78;;;;4418:1;4373:7;:23;4381:8;:14;4390:4;4381:14;;;;;;;;;;;;;;;;;;;;;4373:23;;;;;;;;;;;;;;;:29;4397:4;4373:29;;;;;;;;;;;:41;4403:10;4373:41;;;;;;;;;;;;;;;;:46;4341:78;4333:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6900:1:::1;6885:17;;:3;:17;;;;6877:43;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;6946:8;:14;6955:4;6946:14;;;;;;;;;;;;;;;;;;;;;6939:21;;:3;:21;;;;6931:51;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;7110:1;7087:8;:14;7096:4;7087:14;;;;;;;;;;;:19;;;:24;7083:204;;7165:8;:14;7174:4;7165:14;;;;;;;;;;;:19;;;7128:8;:29;7137:8;:14;7146:4;7137:14;;;;;;;;;;;:19;;;7128:29;;;;;;;;;;;:34;;:56;;;;7083:204;7324:1;7301:8;:14;7310:4;7301:14;;;;;;;;;;;:19;;;:24;7297:450;;7435:8;:14;7444:4;7435:14;;;;;;;;;;;:19;;;7398:8;:29;7407:8;:14;7416:4;7407:14;;;;;;;;;;;:19;;;7398:29;;;;;;;;;;;:34;;:56;;;;7297:450;;;7669:8;:14;7678:4;7669:14;;;;;;;;;;;:19;;;7640:10;:26;7651:8;:14;7660:4;7651:14;;;;;;;;;;;;;;;;;;;;;7640:26;;;;;;;;;;;;;;;:48;;;;7297:450;7792:4;7761:11;:27;7773:8;:14;7782:4;7773:14;;;;;;;;;;;;;;;;;;;;;7761:27;;;;;;;;;;;;;;;;:35;7757:209;;;7888:8;:14;7897:4;7888:14;;;;;;;;;;;:19;;;7858:11;:27;7870:8;:14;7879:4;7870:14;;;;;;;;;;;;;;;;;;;;;7858:27;;;;;;;;;;;;;;;:49;;;;7757:209;8004:33;8008:9;:25;8018:8;:14;8027:4;8018:14;;;;;;;;;;;;;;;;;;;;;8008:25;;;;;;;;;;;;;;;;8035:1;8004:3;:33::i;:::-;7976:9;:25;7986:8;:14;7995:4;7986:14;;;;;;;;;;;;;;;;;;;;;7976:25;;;;;;;;;;;;;;;:61;;;;8098:3;8081:8;:14;8090:4;8081:14;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;8220:10;:15;8231:3;8220:15;;;;;;;;;;;;;;;;8198:8;:14;8207:4;8198:14;;;;;;;;;;;:19;;:37;;;;8268:1;8246:8;:14;8255:4;8246:14;;;;;;;;;;;:19;;:23;;;;8303:1;8284:10;:15;8295:3;8284:15;;;;;;;;;;;;;;;;:20;8280:90;;8354:4;8321:8;:25;8330:10;:15;8341:3;8330:15;;;;;;;;;;;;;;;;8321:25;;;;;;;;;;;:30;;:37;;;;8280:90;8404:1;8384:11;:16;8396:3;8384:16;;;;;;;;;;;;;;;;:21;8380:77;;;8441:4;8422:11;:16;8434:3;8422:16;;;;;;;;;;;;;;;:23;;;;8380:77;8485:4;8467:10;:15;8478:3;8467:15;;;;;;;;;;;;;;;:22;;;;8517;8521:9;:14;8531:3;8521:14;;;;;;;;;;;;;;;;8537:1;8517:3;:22::i;:::-;8500:9;:14;8510:3;8500:14;;;;;;;;;;;;;;;:39;;;;8557:94;8593:10;8618:4;8637:3;8557:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6761:1898:::0;;;:::o;9483:356::-;9598:4;4355:8;:14;4364:4;4355:14;;;;;;;;;;;;;;;;;;;;;4341:28;;:10;:28;;;:78;;;;4418:1;4373:7;:23;4381:8;:14;4390:4;4381:14;;;;;;;;;;;;;;;;;;;;;4373:23;;;;;;;;;;;;;;;:29;4397:4;4373:29;;;;;;;;;;;:41;4403:10;4373:41;;;;;;;;;;;;;;;;:46;4341:78;4333:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9630:10:::1;::::0;::::1;;;;;;;;;9615:45;;;9661:15;:21;9677:4;9661:21;;;;;;;;;;;;9684:5;:11;9690:4;9684:11;;;;;;;;;;;;;;;;;;;;;9697:3;9702;9615:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;9615:91:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;9615:91:0;;;;9722:109;9755:10;9780:4;9799:3;9817;9722:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9483:356:::0;;;;:::o;2028:48::-;;;;;;;;;;;;;;;;;:::o;1837:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11050:661::-;11138:4;4355:8;:14;4364:4;4355:14;;;;;;;;;;;;;;;;;;;;;4341:28;;:10;:28;;;:78;;;;4418:1;4373:7;:23;4381:8;:14;4390:4;4381:14;;;;;;;;;;;;;;;;;;;;;4373:23;;;;;;;;;;;;;;;:29;4397:4;4373:29;;;;;;;;;;;:41;4403:10;4373:41;;;;;;;;;;;;;;;;:46;4341:78;4333:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11159:3:::1;4570:7;4556:21;;:10;:21;;;:72;;;;4627:1;4592:10;:19;4603:7;4592:19;;;;;;;;;;;;;;;:31;4612:10;4592:31;;;;;;;;;;;;;;;;:36;4556:72;4536:150;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;11176:21:::2;11199:18:::0;11236:10:::2;::::0;::::2;;;;;;;;;11221:32;;;11254:15;:21;11270:4;11254:21;;;;;;;;;;;;11277:5;:11;11283:4;11277:11;;;;;;;;;;;;;;;;;;;;;11221:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::2;2:2;11221:68:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;11221:68:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::2;4:2;11221:68:0;;;;;;;;;;;;;;;;;;;;;;;;;11175:114;;;;11300:19;11322:23;11328:16;11322:5;:23::i;:::-;11300:45;;11356:13;11372:20;11378:13;11372:5;:20::i;:::-;11356:36;;11418:10;::::0;::::2;;;;;;;;;11403:56;;;11474:15;:21;11490:4;11474:21;;;;;;;;;;;;11510:5;:11;11516:4;11510:11;;;;;;;;;;;;;;;;;;;;;11536:3;11554:15;11584:9;11403:201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::2;2:2;11403:201:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;11403:201:0;;;;11620:83;11645:10;11670:4;11689:3;11620:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4697:1;;;;4451::::1;11050:661:::0;;;:::o;1950:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;10100:411::-;10248:4;4355:8;:14;4364:4;4355:14;;;;;;;;;;;;;;;;;;;;;4341:28;;:10;:28;;;:78;;;;4418:1;4373:7;:23;4381:8;:14;4390:4;4381:14;;;;;;;;;;;;;;;;;;;;;4373:23;;;;;;;;;;;;;;;:29;4397:4;4373:29;;;;;;;;;;;:41;4403:10;4373:41;;;;;;;;;;;;;;;;:46;4341:78;4333:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10280:10:::1;::::0;::::1;;;;;;;;;10265:45;;;10311:14;10327:5;:11;10333:4;10327:11;;;;;;;;;;;;;;;;;;;;;10340:3;10345;10265:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;10265:84:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;10265:84:0;;;;10365:138;10398:10;10423:14;10452:4;10471:3;10489;10365:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10100:411:::0;;;;;:::o;8797:591::-;8934:4;4355:8;:14;4364:4;4355:14;;;;;;;;;;;;;;;;;;;;;4341:28;;:10;:28;;;:78;;;;4418:1;4373:7;:23;4381:8;:14;4390:4;4381:14;;;;;;;;;;;;;;;;;;;;;4373:23;;;;;;;;;;;;;;;:29;4397:4;4373:29;;;;;;;;;;;:41;4403:10;4373:41;;;;;;;;;;;;;;;;:46;4341:78;4333:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8951:19:::1;8973:5;:11;8979:4;8973:11;;;;;;;;;;;;;;;;;;;;;8951:33;;9010:10;::::0;::::1;;;;;;;;;8995:54;;;9064:15;:21;9080:4;9064:21;;;;;;;;;;;;9100:11;9126;9152;9178:15;9208:9;8995:233;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;8995:233:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;8995:233:0;;;;9244:136;9286:10;9311:4;9330:15;9360:9;9244:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4451:1;8797:591:::0;;;;:::o;2609:104::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5900:803::-;5996:4;6036:1;6021:17;;:3;:17;;;;6013:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6077:13;6081:5;;6088:1;6077:3;:13::i;:::-;6069:5;:21;;;;6140:10;;;;;;;;;;;6124:27;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6124:27:0;6101:5;:12;6107:5;;6101:12;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;6181:3;6163:8;:15;6172:5;;6163:15;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;6220:14;6195:15;:22;6211:5;;6195:22;;;;;;;;;;;:39;;;;6331:1;6311:11;:16;6323:3;6311:16;;;;;;;;;;;;;;;;:21;6307:78;;;6368:5;;6349:11;:16;6361:3;6349:16;;;;;;;;;;;;;;;:24;;;;6307:78;6418:1;6399:10;:15;6410:3;6399:15;;;;;;;;;;;;;;;;:20;6395:144;;6459:10;:15;6470:3;6459:15;;;;;;;;;;;;;;;;6436:8;:15;6445:5;;6436:15;;;;;;;;;;;:20;;:38;;;;6522:5;;6489:8;:25;6498:10;:15;6509:3;6498:15;;;;;;;;;;;;;;;;6489:25;;;;;;;;;;;:30;;:38;;;;6395:144;6567:5;;6549:10;:15;6560:3;6549:15;;;;;;;;;;;;;;;:23;;;;6600:22;6604:9;:14;6614:3;6604:14;;;;;;;;;;;;;;;;6620:1;6600:3;:22::i;:::-;6583:9;:14;6593:3;6583:14;;;;;;;;;;;;;;;:39;;;;6666:5;;6661:3;6640:32;;6649:10;6640:32;;;;;;;;;;;;6690:5;;6683:12;;5900:803;;;;:::o;5258:284::-;5363:4;4355:8;:14;4364:4;4355:14;;;;;;;;;;;;;;;;;;;;;4341:28;;:10;:28;;;:78;;;;4418:1;4373:7;:23;4381:8;:14;4390:4;4381:14;;;;;;;;;;;;;;;;;;;;;4373:23;;;;;;;;;;;;;;;:29;4397:4;4373:29;;;;;;;;;;;:41;4403:10;4373:41;;;;;;;;;;;;;;;;:46;4341:78;4333:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5417:2:::1;5380:7;:23;5388:8;:14;5397:4;5388:14;;;;;;;;;;;;;;;;;;;;;5380:23;;;;;;;;;;;;;;;:29;5404:4;5380:29;;;;;;;;;;;:34;5410:3;5380:34;;;;;;;;;;;;;;;:39;;;;5435:99;5459:10;5484:4;5503:3;5521:2;5435:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5258:284:::0;;;;:::o;5050:108::-;5096:5;5122:1;5114:10;;5148:1;5143;:6;;5135:15;;12:1:-1;9;2:12;5135:15:0;5050:108;;;:::o;4938:104::-;4990:6;5032:1;5026;5022;:5;5018:9;;;5017:16;;5009:25;;12:1:-1;9;2:12;5009:25:0;4938:104;;;;:::o;4826:::-;4878:6;4920:1;4914;4910;:5;4906:9;;;4905:16;;4897:25;;12:1:-1;9;2:12;4897:25:0;4826:104;;;;:::o;1593:12249::-;;;;;;;;:::o
Swarm Source
ipfs://f1a6da6f53e5408fc26fc5e0236c6218714b0f8773b942189fa2a8ec17b953cc
Loading...
Loading
Loading...
Loading
OVERVIEW
The SAFE Manager is an abstraction around the SAFEEngine that allows anyone to easily manage their GEB positions.Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.