Polygon Sponsored slots available. Book your slot here!
My Name Tag:
Not Available, login to update
[ Download CSV Export ]
Latest 25 internal transaction
[ Download CSV Export ]
Contract Name:
House
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2022-03-27 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.11; abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== * * [IMPORTANT] * ==== * You shouldn't rely on `isContract` to protect against flash loan attacks! * * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract * constructor. * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize/address.code.length, which returns 0 // for contracts in construction, since the code is only stored at the end // of the constructor execution. return account.code.length > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason using the provided one. * * _Available since v4.3._ */ function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } library SafeERC20 { using Address for address; function safeTransfer( IERC20 token, address to, uint256 value ) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom( IERC20 token, address from, address to, uint256 value ) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } /** * @dev Deprecated. This function has issues similar to the ones found in * {IERC20-approve}, and its usage is discouraged. * * Whenever possible, use {safeIncreaseAllowance} and * {safeDecreaseAllowance} instead. */ function safeApprove( IERC20 token, address spender, uint256 value ) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' require( (value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance( IERC20 token, address spender, uint256 value ) internal { uint256 newAllowance = token.allowance(address(this), spender) + value; _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance( IERC20 token, address spender, uint256 value ) internal { unchecked { uint256 oldAllowance = token.allowance(address(this), spender); require(oldAllowance >= value, "SafeERC20: decreased allowance below zero"); uint256 newAllowance = oldAllowance - value; _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } } /** * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement * on the return value: the return value is optional (but if data is returned, it must not be false). * @param token The token targeted by the call. * @param data The call data (encoded using abi.encode or one of its variants). */ function _callOptionalReturn(IERC20 token, bytes memory data) private { // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that // the target address contains contract code and also asserts for success in the low-level call. bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } interface IHouse { function placeBet(address player, uint amount, bool isBonus, uint nftHolderRewardsAmount, uint winnableAmount) payable external; function settleBet(address player, uint winnableAmount, bool win) external; function refundBet(address player, uint amount, uint winnableAmount) external; } contract House is ReentrancyGuard, Ownable, IHouse { using SafeERC20 for IERC20; bool public houseLive = true; uint public lockedInBets; uint public lockedInRewards; uint public nftHoldersRewardsToDistribute; uint public balanceMaxProfitRatio = 1; address public polyflipAddress = 0x6Fdba1A4f28D7077Cfd3080f70C13020BC5B5865; mapping(address => bool) private addressAdmin; mapping(address => uint) public playerBalance; // Events event Donation(address indexed player, uint amount); event BalanceClaimed(address indexed player, uint amount); event RewardsDistributed(uint nPlayers, uint amount); fallback() external payable { emit Donation(msg.sender, msg.value); } receive() external payable { emit Donation(msg.sender, msg.value); } modifier admin { require(addressAdmin[msg.sender] == true, "You are not an admin"); _; } modifier isHouseLive { require(houseLive == true, "House not live"); _; } // Getter function balance() public view returns (uint) { return address(this).balance; } function polyflipBalance() public view returns (uint) { return IERC20(polyflipAddress).balanceOf(address(this)); } // Setter function toggleHouseLive() external onlyOwner { houseLive = !houseLive; } function setBalanceMaxProfitRatio(uint _balanceMaxProfitRatio) external onlyOwner { balanceMaxProfitRatio = _balanceMaxProfitRatio; } function setPolyflipAddress(address _polyflipAddress) external onlyOwner { polyflipAddress = _polyflipAddress; } // Methods function addAdmin(address _address) external onlyOwner { addressAdmin[_address] = true; } function removeAdmin(address _address) external onlyOwner { addressAdmin[_address] = false; } // Game methods function balanceAvailableForBet() public view returns (uint) { return balance() - lockedInBets - lockedInRewards; } function maxProfit() public view returns (uint) { return balanceAvailableForBet() / balanceMaxProfitRatio; } function placeBet(address player, uint amount, bool isBonus, uint nftHolderRewardsAmount, uint winnableAmount) payable external isHouseLive admin nonReentrant { require(winnableAmount <= maxProfit(), "MaxProfit violation"); uint polyflipRewards = amount * 5; require(polyflipRewards <= polyflipBalance(), "Not enough polyflip tokens"); if (isBonus == true) { require(playerBalance[player] >= amount, "Not enough bonus"); playerBalance[player] -= amount; lockedInRewards -= amount; } else { require(amount == msg.value, "Not right amount sent"); } lockedInBets += winnableAmount; nftHoldersRewardsToDistribute += nftHolderRewardsAmount; lockedInRewards += nftHolderRewardsAmount; IERC20(polyflipAddress).safeTransfer(player, polyflipRewards); } function settleBet(address player, uint winnableAmount, bool win) external isHouseLive admin nonReentrant { lockedInBets -= winnableAmount; if (win == true) { payable(player).transfer(winnableAmount); } } function payPlayer(address player, uint amount) external isHouseLive admin nonReentrant { require(amount <= maxProfit(), "MaxProfit violation"); payable(player).transfer(amount); } function sendPolyflipTokens(address player, uint amount) external isHouseLive admin nonReentrant { require(amount <= polyflipBalance(), "Not enough polyflip tokens"); IERC20(polyflipAddress).safeTransfer(player, amount); } function refundBet(address player, uint amount, uint winnableAmount) external isHouseLive admin nonReentrant { lockedInBets -= winnableAmount; payable(player).transfer(amount); } function claimBalance() external isHouseLive nonReentrant { uint gBalance = playerBalance[msg.sender]; require(gBalance > 0, "No funds to claim"); payable(msg.sender).transfer(gBalance); playerBalance[msg.sender] = 0; lockedInRewards -= gBalance; emit BalanceClaimed(msg.sender, gBalance); } function distributeNftHoldersRewards(address[] memory addresses) external onlyOwner { require(nftHoldersRewardsToDistribute > 0, "No rewards to distribute"); uint nHolders = addresses.length; uint singleReward = nftHoldersRewardsToDistribute / nHolders; for (uint i = 0; i < nHolders; i++) { playerBalance[addresses[i]] += singleReward; } emit RewardsDistributed(nHolders, nftHoldersRewardsToDistribute); nftHoldersRewardsToDistribute = 0; } function withdrawFunds(address payable beneficiary, uint withdrawAmount) external onlyOwner { require(withdrawAmount <= balanceAvailableForBet(), "Withdrawal exceeds limit"); beneficiary.transfer(withdrawAmount); } function withdrawPolyflipFunds(address beneficiary, uint withdrawAmount) external onlyOwner { require(withdrawAmount <= polyflipBalance(), "Polyflip token withdrawal exceeds limit"); IERC20(polyflipAddress).safeTransfer(beneficiary, withdrawAmount); } function withdrawCustomTokenFunds(address beneficiary, uint withdrawAmount, address token) external onlyOwner { require(withdrawAmount <= IERC20(token).balanceOf(address(this)), "Withdrawal exceeds limit"); IERC20(token).safeTransfer(beneficiary, withdrawAmount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BalanceClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Donation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"nPlayers","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardsDistributed","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"addAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"balance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"balanceAvailableForBet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"balanceMaxProfitRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"distributeNftHoldersRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"houseLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockedInBets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockedInRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxProfit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nftHoldersRewardsToDistribute","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"payPlayer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"isBonus","type":"bool"},{"internalType":"uint256","name":"nftHolderRewardsAmount","type":"uint256"},{"internalType":"uint256","name":"winnableAmount","type":"uint256"}],"name":"placeBet","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"playerBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"polyflipAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"polyflipBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"winnableAmount","type":"uint256"}],"name":"refundBet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendPolyflipTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_balanceMaxProfitRatio","type":"uint256"}],"name":"setBalanceMaxProfitRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_polyflipAddress","type":"address"}],"name":"setPolyflipAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"uint256","name":"winnableAmount","type":"uint256"},{"internalType":"bool","name":"win","type":"bool"}],"name":"settleBet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleHouseLive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"uint256","name":"withdrawAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}],"name":"withdrawCustomTokenFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"beneficiary","type":"address"},{"internalType":"uint256","name":"withdrawAmount","type":"uint256"}],"name":"withdrawFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"uint256","name":"withdrawAmount","type":"uint256"}],"name":"withdrawPolyflipFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526001805460ff60a01b1916600160a01b178155600555600680546001600160a01b031916736fdba1a4f28d7077cfd3080f70c13020bc5b586517905534801561004c57600080fd5b50600160005561005b33610060565b6100b2565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61295f806100c16000396000f3fe6080604052600436106101c65760003560e01c80638da5cb5b116100f7578063d5f4cd8211610095578063ec75180b11610064578063ec75180b14610563578063f1b981f014610578578063f2fde38b1461058e578063f7cf8b24146105ae57610203565b8063d5f4cd82146104e0578063df88126f1461050d578063e013ea6214610523578063e43393931461054357610203565b8063b69ef8a8116100d1578063b69ef8a814610482578063c107532914610495578063c28a4262146104b5578063d0e0ae3f146104ca57610203565b80638da5cb5b14610401578063b14c80091461044d578063b539cd551461046d57610203565b8063519168c611610164578063704802751161013e578063704802751461038c578063715018a6146103ac5780637ce4a2bd146103c15780638b121403146103e157610203565b8063519168c6146103175780635d1837b81461032a5780636d4df8611461034a57610203565b806327b54889116101a057806327b548891461029757806330509bca146102c05780633b97e44e146102d55780634e33f83b146102ea57610203565b806314a1ce67146102355780631785f53c146102575780632363f4241461027757610203565b366102035760405134815233907f5d8bc849764969eb1bcc6d0a2f55999d0167c1ccec240a4f39cf664ca9c4148e906020015b60405180910390a2005b60405134815233907f5d8bc849764969eb1bcc6d0a2f55999d0167c1ccec240a4f39cf664ca9c4148e906020016101f9565b34801561024157600080fd5b50610255610250366004612496565b6105ce565b005b34801561026357600080fd5b506102556102723660046124c2565b610713565b34801561028357600080fd5b506102556102923660046124df565b6107e0565b3480156102a357600080fd5b506102ad60055481565b6040519081526020015b60405180910390f35b3480156102cc57600080fd5b506102556109c0565b3480156102e157600080fd5b506102ad610bc4565b3480156102f657600080fd5b506102ad6103053660046124c2565b60086020526000908152604090205481565b610255610325366004612522565b610bec565b34801561033657600080fd5b50610255610345366004612574565b61102b565b34801561035657600080fd5b5060015461037c9074010000000000000000000000000000000000000000900460ff1681565b60405190151581526020016102b7565b34801561039857600080fd5b506102556103a73660046124c2565b6110b1565b3480156103b857600080fd5b50610255611181565b3480156103cd57600080fd5b506102556103dc3660046124c2565b61120e565b3480156103ed57600080fd5b506102556103fc366004612496565b6112d6565b34801561040d57600080fd5b5060015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102b7565b34801561045957600080fd5b5061025561046836600461258d565b6114ec565b34801561047957600080fd5b506102ad61168a565b34801561048e57600080fd5b50476102ad565b3480156104a157600080fd5b506102556104b0366004612496565b6116a1565b3480156104c157600080fd5b506102556117d6565b3480156104d657600080fd5b506102ad60035481565b3480156104ec57600080fd5b506006546104289073ffffffffffffffffffffffffffffffffffffffff1681565b34801561051957600080fd5b506102ad60025481565b34801561052f57600080fd5b5061025561053e3660046125fe565b6118a4565b34801561054f57600080fd5b5061025561055e3660046126e1565b611a79565b34801561056f57600080fd5b506102ad611c63565b34801561058457600080fd5b506102ad60045481565b34801561059a57600080fd5b506102556105a93660046124c2565b611cf6565b3480156105ba57600080fd5b506102556105c9366004612496565b611e26565b60015473ffffffffffffffffffffffffffffffffffffffff163314610654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b61065c611c63565b8111156106eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f506f6c79666c697020746f6b656e207769746864726177616c2065786365656460448201527f73206c696d697400000000000000000000000000000000000000000000000000606482015260840161064b565b60065461070f9073ffffffffffffffffffffffffffffffffffffffff168383612052565b5050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064b565b73ffffffffffffffffffffffffffffffffffffffff16600090815260076020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6001805474010000000000000000000000000000000000000000900460ff16151514610868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f486f757365206e6f74206c697665000000000000000000000000000000000000604482015260640161064b565b3360009081526007602052604090205460ff1615156001146108e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f596f7520617265206e6f7420616e2061646d696e000000000000000000000000604482015260640161064b565b60026000541415610953576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161064b565b6002600081905550806002600082825461096d9190612747565b909155505060405173ffffffffffffffffffffffffffffffffffffffff84169083156108fc029084906000818181858888f193505050501580156109b5573d6000803e3d6000fd5b505060016000555050565b6001805474010000000000000000000000000000000000000000900460ff16151514610a48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f486f757365206e6f74206c697665000000000000000000000000000000000000604482015260640161064b565b60026000541415610ab5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161064b565b600260009081553381526008602052604090205480610b30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f2066756e647320746f20636c61696d000000000000000000000000000000604482015260640161064b565b604051339082156108fc029083906000818181858888f19350505050158015610b5d573d6000803e3d6000fd5b5033600090815260086020526040812081905560038054839290610b82908490612747565b909155505060405181815233907fe64799e036cf6322d0c3b6d11f4e2fc9d1bd9bb5938dd3d6835921a427c89b8f9060200160405180910390a2506001600055565b6000600354600254610bd34790565b610bdd9190612747565b610be79190612747565b905090565b6001805474010000000000000000000000000000000000000000900460ff16151514610c74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f486f757365206e6f74206c697665000000000000000000000000000000000000604482015260640161064b565b3360009081526007602052604090205460ff161515600114610cf2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f596f7520617265206e6f7420616e2061646d696e000000000000000000000000604482015260640161064b565b60026000541415610d5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161064b565b6002600055610d6c61168a565b811115610dd5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4d617850726f6669742076696f6c6174696f6e00000000000000000000000000604482015260640161064b565b6000610de285600561275e565b9050610dec611c63565b811115610e55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4e6f7420656e6f75676820706f6c79666c697020746f6b656e73000000000000604482015260640161064b565b60018415151415610f485773ffffffffffffffffffffffffffffffffffffffff8616600090815260086020526040902054851115610eef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4e6f7420656e6f75676820626f6e757300000000000000000000000000000000604482015260640161064b565b73ffffffffffffffffffffffffffffffffffffffff861660009081526008602052604081208054879290610f24908490612747565b925050819055508460036000828254610f3d9190612747565b90915550610fb19050565b348514610fb1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f7420726967687420616d6f756e742073656e740000000000000000000000604482015260640161064b565b8160026000828254610fc3919061279b565b925050819055508260046000828254610fdc919061279b565b925050819055508260036000828254610ff5919061279b565b909155505060065461101e9073ffffffffffffffffffffffffffffffffffffffff168783612052565b5050600160005550505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146110ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064b565b600555565b60015473ffffffffffffffffffffffffffffffffffffffff163314611132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064b565b73ffffffffffffffffffffffffffffffffffffffff16600090815260076020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60015473ffffffffffffffffffffffffffffffffffffffff163314611202576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064b565b61120c60006120df565b565b60015473ffffffffffffffffffffffffffffffffffffffff16331461128f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064b565b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6001805474010000000000000000000000000000000000000000900460ff1615151461135e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f486f757365206e6f74206c697665000000000000000000000000000000000000604482015260640161064b565b3360009081526007602052604090205460ff1615156001146113dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f596f7520617265206e6f7420616e2061646d696e000000000000000000000000604482015260640161064b565b60026000541415611449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161064b565b6002600055611456611c63565b8111156114bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4e6f7420656e6f75676820706f6c79666c697020746f6b656e73000000000000604482015260640161064b565b6006546114e39073ffffffffffffffffffffffffffffffffffffffff168383612052565b50506001600055565b60015473ffffffffffffffffffffffffffffffffffffffff16331461156d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064b565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8216906370a0823190602401602060405180830381865afa1580156115d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fb91906127b3565b821115611664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f5769746864726177616c2065786365656473206c696d69740000000000000000604482015260640161064b565b61168573ffffffffffffffffffffffffffffffffffffffff82168484612052565b505050565b6000600554611697610bc4565b610be791906127cc565b60015473ffffffffffffffffffffffffffffffffffffffff163314611722576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064b565b61172a610bc4565b811115611793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f5769746864726177616c2065786365656473206c696d69740000000000000000604482015260640161064b565b60405173ffffffffffffffffffffffffffffffffffffffff83169082156108fc029083906000818181858888f19350505050158015611685573d6000803e3d6000fd5b60015473ffffffffffffffffffffffffffffffffffffffff163314611857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064b565b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff8116740100000000000000000000000000000000000000009182900460ff1615909102179055565b60015473ffffffffffffffffffffffffffffffffffffffff163314611925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064b565b600060045411611991576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4e6f207265776172647320746f20646973747269627574650000000000000000604482015260640161064b565b80516004546000906119a49083906127cc565b905060005b82811015611a315781600860008684815181106119c8576119c8612807565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a19919061279b565b90915550819050611a2981612836565b9150506119a9565b506004546040805184815260208101929092527f29e98ba00d07f171959c4ddcd2f3020debc7c52cf537a034d7e664340d098c6c910160405180910390a15050600060045550565b6001805474010000000000000000000000000000000000000000900460ff16151514611b01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f486f757365206e6f74206c697665000000000000000000000000000000000000604482015260640161064b565b3360009081526007602052604090205460ff161515600114611b7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f596f7520617265206e6f7420616e2061646d696e000000000000000000000000604482015260640161064b565b60026000541415611bec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161064b565b60026000819055508160026000828254611c069190612747565b909155505060018115151415611c595760405173ffffffffffffffffffffffffffffffffffffffff84169083156108fc029084906000818181858888f193505050501580156109b5573d6000803e3d6000fd5b5050600160005550565b6006546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015611cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be791906127b3565b60015473ffffffffffffffffffffffffffffffffffffffff163314611d77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064b565b73ffffffffffffffffffffffffffffffffffffffff8116611e1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161064b565b611e23816120df565b50565b6001805474010000000000000000000000000000000000000000900460ff16151514611eae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f486f757365206e6f74206c697665000000000000000000000000000000000000604482015260640161064b565b3360009081526007602052604090205460ff161515600114611f2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f596f7520617265206e6f7420616e2061646d696e000000000000000000000000604482015260640161064b565b60026000541415611f99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161064b565b6002600055611fa661168a565b81111561200f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4d617850726f6669742076696f6c6174696f6e00000000000000000000000000604482015260640161064b565b60405173ffffffffffffffffffffffffffffffffffffffff83169082156108fc029083906000818181858888f19350505050158015611c59573d6000803e3d6000fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052611685908490612156565b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006121b8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166122629092919063ffffffff16565b80519091501561168557808060200190518101906121d6919061286f565b611685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161064b565b6060612271848460008561227b565b90505b9392505050565b60608247101561230d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161064b565b73ffffffffffffffffffffffffffffffffffffffff85163b61238b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161064b565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516123b491906128bc565b60006040518083038185875af1925050503d80600081146123f1576040519150601f19603f3d011682016040523d82523d6000602084013e6123f6565b606091505b5091509150612406828286612411565b979650505050505050565b60608315612420575081612274565b8251156124305782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064b91906128d8565b73ffffffffffffffffffffffffffffffffffffffff81168114611e2357600080fd5b803561249181612464565b919050565b600080604083850312156124a957600080fd5b82356124b481612464565b946020939093013593505050565b6000602082840312156124d457600080fd5b813561227481612464565b6000806000606084860312156124f457600080fd5b83356124ff81612464565b95602085013595506040909401359392505050565b8015158114611e2357600080fd5b600080600080600060a0868803121561253a57600080fd5b853561254581612464565b945060208601359350604086013561255c81612514565b94979396509394606081013594506080013592915050565b60006020828403121561258657600080fd5b5035919050565b6000806000606084860312156125a257600080fd5b83356125ad81612464565b92506020840135915060408401356125c481612464565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602080838503121561261157600080fd5b823567ffffffffffffffff8082111561262957600080fd5b818501915085601f83011261263d57600080fd5b81358181111561264f5761264f6125cf565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108582111715612692576126926125cf565b6040529182528482019250838101850191888311156126b057600080fd5b938501935b828510156126d5576126c685612486565b845293850193928501926126b5565b98975050505050505050565b6000806000606084860312156126f657600080fd5b833561270181612464565b92506020840135915060408401356125c481612514565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561275957612759612718565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561279657612796612718565b500290565b600082198211156127ae576127ae612718565b500190565b6000602082840312156127c557600080fd5b5051919050565b600082612802577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561286857612868612718565b5060010190565b60006020828403121561288157600080fd5b815161227481612514565b60005b838110156128a757818101518382015260200161288f565b838111156128b6576000848401525b50505050565b600082516128ce81846020870161288c565b9190910192915050565b60208152600082518060208401526128f781604085016020870161288c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea264697066735822122069ff10aeedb3b9196d94e5fee2bd209e241cb73dea26c33b06697b36213f6e2f64736f6c634300080b0033
Deployed ByteCode Sourcemap
18616:5781:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19398:31;;19419:9;160:25:1;;19407:10:0;;19398:31;;148:2:1;133:18;19398:31:0;;;;;;;;18616:5781;;19324:31;;19345:9;160:25:1;;19333:10:0;;19324:31;;148:2:1;133:18;19324:31:0;14:177:1;23824:274:0;;;;;;;;;;-1:-1:-1;23824:274:0;;;;;:::i;:::-;;:::i;:::-;;20441:107;;;;;;;;;;-1:-1:-1;20441:107:0;;;;;:::i;:::-;;:::i;22482:201::-;;;;;;;;;;-1:-1:-1;22482:201:0;;;;;:::i;:::-;;:::i;18857:37::-;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;18857:37:0;;;;;;;;22691:350;;;;;;;;;;;;;:::i;20577:129::-;;;;;;;;;;;;;:::i;19037:45::-;;;;;;;;;;-1:-1:-1;19037:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;20844:909;;;;;;:::i;:::-;;:::i;20025:147::-;;;;;;;;;;-1:-1:-1;20025:147:0;;;;;:::i;:::-;;:::i;18709:28::-;;;;;;;;;;-1:-1:-1;18709:28:0;;;;;;;;;;;;;;2520:14:1;;2513:22;2495:41;;2483:2;2468:18;18709:28:0;2355:187:1;20330:103:0;;;;;;;;;;-1:-1:-1;20330:103:0;;;;;:::i;:::-;;:::i;3201:::-;;;;;;;;;;;;;:::i;20180:126::-;;;;;;;;;;-1:-1:-1;20180:126:0;;;;;:::i;:::-;;:::i;22229:245::-;;;;;;;;;;-1:-1:-1;22229:245:0;;;;;:::i;:::-;;:::i;2550:87::-;;;;;;;;;;-1:-1:-1;2623:6:0;;;;2550:87;;;2723:42:1;2711:55;;;2693:74;;2681:2;2666:18;2550:87:0;2547:226:1;24106:288:0;;;;;;;;;;-1:-1:-1;24106:288:0;;;;;:::i;:::-;;:::i;20714:122::-;;;;;;;;;;;;;:::i;19678:93::-;;;;;;;;;;-1:-1:-1;19742:21:0;19678:93;;23579:237;;;;;;;;;;-1:-1:-1;23579:237:0;;;;;:::i;:::-;;:::i;19930:87::-;;;;;;;;;;;;;:::i;18775:27::-;;;;;;;;;;;;;;;;18901:75;;;;;;;;;;-1:-1:-1;18901:75:0;;;;;;;;18744:24;;;;;;;;;;;;;;;;23049:522;;;;;;;;;;-1:-1:-1;23049:522:0;;;;;:::i;:::-;;:::i;21761:249::-;;;;;;;;;;-1:-1:-1;21761:249:0;;;;;:::i;:::-;;:::i;19779:128::-;;;;;;;;;;;;;:::i;18809:41::-;;;;;;;;;;;;;;;;3459:201;;;;;;;;;;-1:-1:-1;3459:201:0;;;;;:::i;:::-;;:::i;22018:203::-;;;;;;;;;;-1:-1:-1;22018:203:0;;;;;:::i;:::-;;:::i;23824:274::-;2623:6;;2770:23;2623:6;2004:10;2770:23;2762:68;;;;;;;5598:2:1;2762:68:0;;;5580:21:1;;;5617:18;;;5610:30;5676:34;5656:18;;;5649:62;5728:18;;2762:68:0;;;;;;;;;23953:17:::1;:15;:17::i;:::-;23935:14;:35;;23927:87;;;::::0;::::1;::::0;;5959:2:1;23927:87:0::1;::::0;::::1;5941:21:1::0;5998:2;5978:18;;;5971:30;6037:34;6017:18;;;6010:62;6108:9;6088:18;;;6081:37;6135:19;;23927:87:0::1;5757:403:1::0;23927:87:0::1;24032:15;::::0;24025:65:::1;::::0;24032:15:::1;;24062:11:::0;24075:14;24025:36:::1;:65::i;:::-;23824:274:::0;;:::o;20441:107::-;2623:6;;2770:23;2623:6;2004:10;2770:23;2762:68;;;;;;;5598:2:1;2762:68:0;;;5580:21:1;;;5617:18;;;5610:30;5676:34;5656:18;;;5649:62;5728:18;;2762:68:0;5396:356:1;2762:68:0;20510:22:::1;;20535:5;20510:22:::0;;;:12:::1;:22;::::0;;;;:30;;;::::1;::::0;;20441:107::o;22482:201::-;19599:9;;;;;;;;:17;;;19591:44;;;;;;;6367:2:1;19591:44:0;;;6349:21:1;6406:2;6386:18;;;6379:30;6445:16;6425:18;;;6418:44;6479:18;;19591:44:0;6165:338:1;19591:44:0;19487:10:::1;19474:24;::::0;;;:12:::1;:24;::::0;;;;;::::1;;:32;;:24:::0;:32:::1;19466:65;;;::::0;::::1;::::0;;6710:2:1;19466:65:0::1;::::0;::::1;6692:21:1::0;6749:2;6729:18;;;6722:30;6788:22;6768:18;;;6761:50;6828:18;;19466:65:0::1;6508:344:1::0;19466:65:0::1;944:1:::2;1542:7;;:19;;1534:63;;;::::0;::::2;::::0;;7059:2:1;1534:63:0::2;::::0;::::2;7041:21:1::0;7098:2;7078:18;;;7071:30;7137:33;7117:18;;;7110:61;7188:18;;1534:63:0::2;6857:355:1::0;1534:63:0::2;944:1;1675:7;:18;;;;22618:14:::3;22602:12;;:30;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;22643:32:0::3;::::0;:24:::3;::::0;::::3;::::0;:32;::::3;;;::::0;22668:6;;22643:32:::3;::::0;;;22668:6;22643:24;:32;::::3;;;;;;;;;;;;;::::0;::::3;;;;;-1:-1:-1::0;;900:1:0::2;1854:7;:22:::0;-1:-1:-1;;22482:201:0:o;22691:350::-;19599:9;;;;;;;;:17;;;19591:44;;;;;;;6367:2:1;19591:44:0;;;6349:21:1;6406:2;6386:18;;;6379:30;6445:16;6425:18;;;6418:44;6479:18;;19591:44:0;6165:338:1;19591:44:0;944:1:::1;1542:7;;:19;;1534:63;;;::::0;::::1;::::0;;7059:2:1;1534:63:0::1;::::0;::::1;7041:21:1::0;7098:2;7078:18;;;7071:30;7137:33;7117:18;;;7110:61;7188:18;;1534:63:0::1;6857:355:1::0;1534:63:0::1;944:1;1675:7;:18:::0;;;22790:10:::2;22776:25:::0;;:13:::2;:25;::::0;;;;;22820:12;22812:42:::2;;;::::0;::::2;::::0;;7738:2:1;22812:42:0::2;::::0;::::2;7720:21:1::0;7777:2;7757:18;;;7750:30;7816:19;7796:18;;;7789:47;7853:18;;22812:42:0::2;7536:341:1::0;22812:42:0::2;22865:38;::::0;22873:10:::2;::::0;22865:38;::::2;;;::::0;22894:8;;22865:38:::2;::::0;;;22894:8;22873:10;22865:38;::::2;;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;22928:10:0::2;22942:1;22914:25:::0;;;:13:::2;:25;::::0;;;;:29;;;22954:15:::2;:27:::0;;22973:8;;22942:1;22954:27:::2;::::0;22973:8;;22954:27:::2;:::i;:::-;::::0;;;-1:-1:-1;;22997:36:0::2;::::0;160:25:1;;;23012:10:0::2;::::0;22997:36:::2;::::0;148:2:1;133:18;22997:36:0::2;;;;;;;-1:-1:-1::0;900:1:0::1;1854:7;:22:::0;22691:350::o;20577:129::-;20632:4;20683:15;;20668:12;;20656:9;19742:21;;19678:93;20656:9;:24;;;;:::i;:::-;:42;;;;:::i;:::-;20649:49;;20577:129;:::o;20844:909::-;19599:9;;;;;;;;:17;;;19591:44;;;;;;;6367:2:1;19591:44:0;;;6349:21:1;6406:2;6386:18;;;6379:30;6445:16;6425:18;;;6418:44;6479:18;;19591:44:0;6165:338:1;19591:44:0;19487:10:::1;19474:24;::::0;;;:12:::1;:24;::::0;;;;;::::1;;:32;;:24:::0;:32:::1;19466:65;;;::::0;::::1;::::0;;6710:2:1;19466:65:0::1;::::0;::::1;6692:21:1::0;6749:2;6729:18;;;6722:30;6788:22;6768:18;;;6761:50;6828:18;;19466:65:0::1;6508:344:1::0;19466:65:0::1;944:1:::2;1542:7;;:19;;1534:63;;;::::0;::::2;::::0;;7059:2:1;1534:63:0::2;::::0;::::2;7041:21:1::0;7098:2;7078:18;;;7071:30;7137:33;7117:18;;;7110:61;7188:18;;1534:63:0::2;6857:355:1::0;1534:63:0::2;944:1;1675:7;:18:::0;21040:11:::3;:9;:11::i;:::-;21022:14;:29;;21014:61;;;::::0;::::3;::::0;;8084:2:1;21014:61:0::3;::::0;::::3;8066:21:1::0;8123:2;8103:18;;;8096:30;8162:21;8142:18;;;8135:49;8201:18;;21014:61:0::3;7882:343:1::0;21014:61:0::3;21086:20;21109:10;:6:::0;21118:1:::3;21109:10;:::i;:::-;21086:33;;21157:17;:15;:17::i;:::-;21138:15;:36;;21130:75;;;::::0;::::3;::::0;;8665:2:1;21130:75:0::3;::::0;::::3;8647:21:1::0;8704:2;8684:18;;;8677:30;8743:28;8723:18;;;8716:56;8789:18;;21130:75:0::3;8463:350:1::0;21130:75:0::3;21231:4;21220:15:::0;::::3;;;21216:289;;;21260:21;::::0;::::3;;::::0;;;:13:::3;:21;::::0;;;;;:31;-1:-1:-1;21260:31:0::3;21252:60;;;::::0;::::3;::::0;;9020:2:1;21252:60:0::3;::::0;::::3;9002:21:1::0;9059:2;9039:18;;;9032:30;9098:18;9078;;;9071:46;9134:18;;21252:60:0::3;8818:340:1::0;21252:60:0::3;21327:21;::::0;::::3;;::::0;;;:13:::3;:21;::::0;;;;:31;;21352:6;;21327:21;:31:::3;::::0;21352:6;;21327:31:::3;:::i;:::-;;;;;;;;21392:6;21373:15;;:25;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;21216:289:0::3;::::0;-1:-1:-1;21216:289:0::3;;21458:9;21448:6;:19;21440:53;;;::::0;::::3;::::0;;9365:2:1;21440:53:0::3;::::0;::::3;9347:21:1::0;9404:2;9384:18;;;9377:30;9443:23;9423:18;;;9416:51;9484:18;;21440:53:0::3;9163:345:1::0;21440:53:0::3;21541:14;21525:12;;:30;;;;;;;:::i;:::-;;;;;;;;21599:22;21566:29;;:55;;;;;;;:::i;:::-;;;;;;;;21651:22;21632:15;;:41;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;21691:15:0::3;::::0;21684:61:::3;::::0;21691:15:::3;;21721:6:::0;21729:15;21684:36:::3;:61::i;:::-;-1:-1:-1::0;;900:1:0::2;1854:7;:22:::0;-1:-1:-1;;;;20844:909:0:o;20025:147::-;2623:6;;2770:23;2623:6;2004:10;2770:23;2762:68;;;;;;;5598:2:1;2762:68:0;;;5580:21:1;;;5617:18;;;5610:30;5676:34;5656:18;;;5649:62;5728:18;;2762:68:0;5396:356:1;2762:68:0;20118:21:::1;:46:::0;20025:147::o;20330:103::-;2623:6;;2770:23;2623:6;2004:10;2770:23;2762:68;;;;;;;5598:2:1;2762:68:0;;;5580:21:1;;;5617:18;;;5610:30;5676:34;5656:18;;;5649:62;5728:18;;2762:68:0;5396:356:1;2762:68:0;20396:22:::1;;;::::0;;;:12:::1;:22;::::0;;;;:29;;;::::1;20421:4;20396:29;::::0;;20330:103::o;3201:::-;2623:6;;2770:23;2623:6;2004:10;2770:23;2762:68;;;;;;;5598:2:1;2762:68:0;;;5580:21:1;;;5617:18;;;5610:30;5676:34;5656:18;;;5649:62;5728:18;;2762:68:0;5396:356:1;2762:68:0;3266:30:::1;3293:1;3266:18;:30::i;:::-;3201:103::o:0;20180:126::-;2623:6;;2770:23;2623:6;2004:10;2770:23;2762:68;;;;;;;5598:2:1;2762:68:0;;;5580:21:1;;;5617:18;;;5610:30;5676:34;5656:18;;;5649:62;5728:18;;2762:68:0;5396:356:1;2762:68:0;20264:15:::1;:34:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;20180:126::o;22229:245::-;19599:9;;;;;;;;:17;;;19591:44;;;;;;;6367:2:1;19591:44:0;;;6349:21:1;6406:2;6386:18;;;6379:30;6445:16;6425:18;;;6418:44;6479:18;;19591:44:0;6165:338:1;19591:44:0;19487:10:::1;19474:24;::::0;;;:12:::1;:24;::::0;;;;;::::1;;:32;;:24:::0;:32:::1;19466:65;;;::::0;::::1;::::0;;6710:2:1;19466:65:0::1;::::0;::::1;6692:21:1::0;6749:2;6729:18;;;6722:30;6788:22;6768:18;;;6761:50;6828:18;;19466:65:0::1;6508:344:1::0;19466:65:0::1;944:1:::2;1542:7;;:19;;1534:63;;;::::0;::::2;::::0;;7059:2:1;1534:63:0::2;::::0;::::2;7041:21:1::0;7098:2;7078:18;;;7071:30;7137:33;7117:18;;;7110:61;7188:18;;1534:63:0::2;6857:355:1::0;1534:63:0::2;944:1;1675:7;:18:::0;22355:17:::3;:15;:17::i;:::-;22345:6;:27;;22337:66;;;::::0;::::3;::::0;;8665:2:1;22337:66:0::3;::::0;::::3;8647:21:1::0;8704:2;8684:18;;;8677:30;8743:28;8723:18;;;8716:56;8789:18;;22337:66:0::3;8463:350:1::0;22337:66:0::3;22421:15;::::0;22414:52:::3;::::0;22421:15:::3;;22451:6:::0;22459;22414:36:::3;:52::i;:::-;-1:-1:-1::0;;900:1:0::2;1854:7;:22:::0;22229:245::o;24106:288::-;2623:6;;2770:23;2623:6;2004:10;2770:23;2762:68;;;;;;;5598:2:1;2762:68:0;;;5580:21:1;;;5617:18;;;5610:30;5676:34;5656:18;;;5649:62;5728:18;;2762:68:0;5396:356:1;2762:68:0;24253:38:::1;::::0;;;;24285:4:::1;24253:38;::::0;::::1;2693:74:1::0;24253:23:0::1;::::0;::::1;::::0;::::1;::::0;2666:18:1;;24253:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24235:14;:56;;24227:93;;;::::0;::::1;::::0;;10037:2:1;24227:93:0::1;::::0;::::1;10019:21:1::0;10076:2;10056:18;;;10049:30;10115:26;10095:18;;;10088:54;10159:18;;24227:93:0::1;9835:348:1::0;24227:93:0::1;24331:55;:26;::::0;::::1;24358:11:::0;24371:14;24331:26:::1;:55::i;:::-;24106:288:::0;;;:::o;20714:122::-;20756:4;20807:21;;20780:24;:22;:24::i;:::-;:48;;;;:::i;23579:237::-;2623:6;;2770:23;2623:6;2004:10;2770:23;2762:68;;;;;;;5598:2:1;2762:68:0;;;5580:21:1;;;5617:18;;;5610:30;5676:34;5656:18;;;5649:62;5728:18;;2762:68:0;5396:356:1;2762:68:0;23708:24:::1;:22;:24::i;:::-;23690:14;:42;;23682:79;;;::::0;::::1;::::0;;10037:2:1;23682:79:0::1;::::0;::::1;10019:21:1::0;10076:2;10056:18;;;10049:30;10115:26;10095:18;;;10088:54;10159:18;;23682:79:0::1;9835:348:1::0;23682:79:0::1;23772:36;::::0;:20:::1;::::0;::::1;::::0;:36;::::1;;;::::0;23793:14;;23772:36:::1;::::0;;;23793:14;23772:20;:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;19930:87:::0;2623:6;;2770:23;2623:6;2004:10;2770:23;2762:68;;;;;;;5598:2:1;2762:68:0;;;5580:21:1;;;5617:18;;;5610:30;5676:34;5656:18;;;5649:62;5728:18;;2762:68:0;5396:356:1;2762:68:0;20000:9:::1;::::0;;19987:22;;::::1;20000:9:::0;;;;::::1;;;19999:10;19987:22:::0;;::::1;;::::0;;19930:87::o;23049:522::-;2623:6;;2770:23;2623:6;2004:10;2770:23;2762:68;;;;;;;5598:2:1;2762:68:0;;;5580:21:1;;;5617:18;;;5610:30;5676:34;5656:18;;;5649:62;5728:18;;2762:68:0;5396:356:1;2762:68:0;23184:1:::1;23152:29;;:33;23144:70;;;::::0;::::1;::::0;;10669:2:1;23144:70:0::1;::::0;::::1;10651:21:1::0;10708:2;10688:18;;;10681:30;10747:26;10727:18;;;10720:54;10791:18;;23144:70:0::1;10467:348:1::0;23144:70:0::1;23241:16:::0;;23288:29:::1;::::0;23225:13:::1;::::0;23288:40:::1;::::0;23241:16;;23288:40:::1;:::i;:::-;23268:60;;23344:6;23339:106;23360:8;23356:1;:12;23339:106;;;23421:12;23390:13;:27;23404:9;23414:1;23404:12;;;;;;;;:::i;:::-;;;;;;;23390:27;;;;;;;;;;;;;;;;:43;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;23370:3:0;;-1:-1:-1;23370:3:0::1;::::0;::::1;:::i;:::-;;;;23339:106;;;-1:-1:-1::0;23489:29:0::1;::::0;23460:59:::1;::::0;;11383:25:1;;;11439:2;11424:18;;11417:34;;;;23460:59:0::1;::::0;11356:18:1;23460:59:0::1;;;;;;;-1:-1:-1::0;;23562:1:0::1;23530:29;:33:::0;-1:-1:-1;23049:522:0:o;21761:249::-;19599:9;;;;;;;;:17;;;19591:44;;;;;;;6367:2:1;19591:44:0;;;6349:21:1;6406:2;6386:18;;;6379:30;6445:16;6425:18;;;6418:44;6479:18;;19591:44:0;6165:338:1;19591:44:0;19487:10:::1;19474:24;::::0;;;:12:::1;:24;::::0;;;;;::::1;;:32;;:24:::0;:32:::1;19466:65;;;::::0;::::1;::::0;;6710:2:1;19466:65:0::1;::::0;::::1;6692:21:1::0;6749:2;6729:18;;;6722:30;6788:22;6768:18;;;6761:50;6828:18;;19466:65:0::1;6508:344:1::0;19466:65:0::1;944:1:::2;1542:7;;:19;;1534:63;;;::::0;::::2;::::0;;7059:2:1;1534:63:0::2;::::0;::::2;7041:21:1::0;7098:2;7078:18;;;7071:30;7137:33;7117:18;;;7110:61;7188:18;;1534:63:0::2;6857:355:1::0;1534:63:0::2;944:1;1675:7;:18;;;;21894:14:::3;21878:12;;:30;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;21930:4:0::3;21923:11:::0;::::3;;;21919:84;;;21951:40;::::0;:24:::3;::::0;::::3;::::0;:40;::::3;;;::::0;21976:14;;21951:40:::3;::::0;;;21976:14;21951:24;:40;::::3;;;;;;;;;;;;;::::0;::::3;;;;21919:84;-1:-1:-1::0;;900:1:0::2;1854:7;:22:::0;-1:-1:-1;21761:249:0:o;19779:128::-;19858:15;;19851:48;;;;;19893:4;19851:48;;;2693:74:1;19827:4:0;;19858:15;;;19851:33;;2666:18:1;;19851:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3459:201::-;2623:6;;2770:23;2623:6;2004:10;2770:23;2762:68;;;;;;;5598:2:1;2762:68:0;;;5580:21:1;;;5617:18;;;5610:30;5676:34;5656:18;;;5649:62;5728:18;;2762:68:0;5396:356:1;2762:68:0;3548:22:::1;::::0;::::1;3540:73;;;::::0;::::1;::::0;;11664:2:1;3540:73:0::1;::::0;::::1;11646:21:1::0;11703:2;11683:18;;;11676:30;11742:34;11722:18;;;11715:62;11813:8;11793:18;;;11786:36;11839:19;;3540:73:0::1;11462:402:1::0;3540:73:0::1;3624:28;3643:8;3624:18;:28::i;:::-;3459:201:::0;:::o;22018:203::-;19599:9;;;;;;;;:17;;;19591:44;;;;;;;6367:2:1;19591:44:0;;;6349:21:1;6406:2;6386:18;;;6379:30;6445:16;6425:18;;;6418:44;6479:18;;19591:44:0;6165:338:1;19591:44:0;19487:10:::1;19474:24;::::0;;;:12:::1;:24;::::0;;;;;::::1;;:32;;:24:::0;:32:::1;19466:65;;;::::0;::::1;::::0;;6710:2:1;19466:65:0::1;::::0;::::1;6692:21:1::0;6749:2;6729:18;;;6722:30;6788:22;6768:18;;;6761:50;6828:18;;19466:65:0::1;6508:344:1::0;19466:65:0::1;944:1:::2;1542:7;;:19;;1534:63;;;::::0;::::2;::::0;;7059:2:1;1534:63:0::2;::::0;::::2;7041:21:1::0;7098:2;7078:18;;;7071:30;7137:33;7117:18;;;7110:61;7188:18;;1534:63:0::2;6857:355:1::0;1534:63:0::2;944:1;1675:7;:18:::0;22135:11:::3;:9;:11::i;:::-;22125:6;:21;;22117:53;;;::::0;::::3;::::0;;8084:2:1;22117:53:0::3;::::0;::::3;8066:21:1::0;8123:2;8103:18;;;8096:30;8162:21;8142:18;;;8135:49;8201:18;;22117:53:0::3;7882:343:1::0;22117:53:0::3;22181:32;::::0;:24:::3;::::0;::::3;::::0;:32;::::3;;;::::0;22206:6;;22181:32:::3;::::0;;;22206:6;22181:24;:32;::::3;;;;;;;;;;;;;::::0;::::3;;;;14996:211:::0;15140:58;;;12073:42:1;12061:55;;15140:58:0;;;12043:74:1;12133:18;;;;12126:34;;;15140:58:0;;;;;;;;;;12016:18:1;;;;15140:58:0;;;;;;;;;;15163:23;15140:58;;;15113:86;;15133:5;;15113:19;:86::i;3820:191::-;3913:6;;;;3930:17;;;;;;;;;;;3963:40;;3913:6;;;3930:17;3913:6;;3963:40;;3894:16;;3963:40;3883:128;3820:191;:::o;17569:716::-;17993:23;18019:69;18047:4;18019:69;;;;;;;;;;;;;;;;;18027:5;18019:27;;;;:69;;;;;:::i;:::-;18103:17;;17993:95;;-1:-1:-1;18103:21:0;18099:179;;18200:10;18189:30;;;;;;;;;;;;:::i;:::-;18181:85;;;;;;;12623:2:1;18181:85:0;;;12605:21:1;12662:2;12642:18;;;12635:30;12701:34;12681:18;;;12674:62;12772:12;12752:18;;;12745:40;12802:19;;18181:85:0;12421:406:1;10412:229:0;10549:12;10581:52;10603:6;10611:4;10617:1;10620:12;10581:21;:52::i;:::-;10574:59;;10412:229;;;;;;:::o;11532:510::-;11702:12;11760:5;11735:21;:30;;11727:81;;;;;;;13034:2:1;11727:81:0;;;13016:21:1;13073:2;13053:18;;;13046:30;13112:34;13092:18;;;13085:62;13183:8;13163:18;;;13156:36;13209:19;;11727:81:0;12832:402:1;11727:81:0;7962:19;;;;11819:60;;;;;;;13441:2:1;11819:60:0;;;13423:21:1;13480:2;13460:18;;;13453:30;13519:31;13499:18;;;13492:59;13568:18;;11819:60:0;13239:353:1;11819:60:0;11893:12;11907:23;11934:6;:11;;11953:5;11960:4;11934:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11892:73;;;;11983:51;12000:7;12009:10;12021:12;11983:16;:51::i;:::-;11976:58;11532:510;-1:-1:-1;;;;;;;11532:510:0:o;14218:712::-;14368:12;14397:7;14393:530;;;-1:-1:-1;14428:10:0;14421:17;;14393:530;14542:17;;:21;14538:374;;14740:10;14734:17;14801:15;14788:10;14784:2;14780:19;14773:44;14538:374;14883:12;14876:20;;;;;;;;;;;:::i;196:154:1:-;282:42;275:5;271:54;264:5;261:65;251:93;;340:1;337;330:12;355:134;423:20;;452:31;423:20;452:31;:::i;:::-;355:134;;;:::o;494:315::-;562:6;570;623:2;611:9;602:7;598:23;594:32;591:52;;;639:1;636;629:12;591:52;678:9;665:23;697:31;722:5;697:31;:::i;:::-;747:5;799:2;784:18;;;;771:32;;-1:-1:-1;;;494:315:1:o;814:247::-;873:6;926:2;914:9;905:7;901:23;897:32;894:52;;;942:1;939;932:12;894:52;981:9;968:23;1000:31;1025:5;1000:31;:::i;1066:383::-;1143:6;1151;1159;1212:2;1200:9;1191:7;1187:23;1183:32;1180:52;;;1228:1;1225;1218:12;1180:52;1267:9;1254:23;1286:31;1311:5;1286:31;:::i;:::-;1336:5;1388:2;1373:18;;1360:32;;-1:-1:-1;1439:2:1;1424:18;;;1411:32;;1066:383;-1:-1:-1;;;1066:383:1:o;1454:118::-;1540:5;1533:13;1526:21;1519:5;1516:32;1506:60;;1562:1;1559;1552:12;1577:588;1669:6;1677;1685;1693;1701;1754:3;1742:9;1733:7;1729:23;1725:33;1722:53;;;1771:1;1768;1761:12;1722:53;1810:9;1797:23;1829:31;1854:5;1829:31;:::i;:::-;1879:5;-1:-1:-1;1931:2:1;1916:18;;1903:32;;-1:-1:-1;1987:2:1;1972:18;;1959:32;2000:30;1959:32;2000:30;:::i;:::-;1577:588;;;;-1:-1:-1;2049:7:1;;2103:2;2088:18;;2075:32;;-1:-1:-1;2154:3:1;2139:19;2126:33;;1577:588;-1:-1:-1;;1577:588:1:o;2170:180::-;2229:6;2282:2;2270:9;2261:7;2257:23;2253:32;2250:52;;;2298:1;2295;2288:12;2250:52;-1:-1:-1;2321:23:1;;2170:180;-1:-1:-1;2170:180:1:o;2778:456::-;2855:6;2863;2871;2924:2;2912:9;2903:7;2899:23;2895:32;2892:52;;;2940:1;2937;2930:12;2892:52;2979:9;2966:23;2998:31;3023:5;2998:31;:::i;:::-;3048:5;-1:-1:-1;3100:2:1;3085:18;;3072:32;;-1:-1:-1;3156:2:1;3141:18;;3128:32;3169:33;3128:32;3169:33;:::i;:::-;3221:7;3211:17;;;2778:456;;;;;:::o;3567:184::-;3619:77;3616:1;3609:88;3716:4;3713:1;3706:15;3740:4;3737:1;3730:15;3756:1180;3840:6;3871:2;3914;3902:9;3893:7;3889:23;3885:32;3882:52;;;3930:1;3927;3920:12;3882:52;3970:9;3957:23;3999:18;4040:2;4032:6;4029:14;4026:34;;;4056:1;4053;4046:12;4026:34;4094:6;4083:9;4079:22;4069:32;;4139:7;4132:4;4128:2;4124:13;4120:27;4110:55;;4161:1;4158;4151:12;4110:55;4197:2;4184:16;4219:2;4215;4212:10;4209:36;;;4225:18;;:::i;:::-;4271:2;4268:1;4264:10;4303:2;4297:9;4362:66;4357:2;4353;4349:11;4345:84;4337:6;4333:97;4480:6;4468:10;4465:22;4460:2;4448:10;4445:18;4442:46;4439:72;;;4491:18;;:::i;:::-;4527:2;4520:22;4577:18;;;4611:15;;;;-1:-1:-1;4653:11:1;;;4649:20;;;4681:19;;;4678:39;;;4713:1;4710;4703:12;4678:39;4737:11;;;;4757:148;4773:6;4768:3;4765:15;4757:148;;;4839:23;4858:3;4839:23;:::i;:::-;4827:36;;4790:12;;;;4883;;;;4757:148;;;4924:6;3756:1180;-1:-1:-1;;;;;;;;3756:1180:1:o;4941:450::-;5015:6;5023;5031;5084:2;5072:9;5063:7;5059:23;5055:32;5052:52;;;5100:1;5097;5090:12;5052:52;5139:9;5126:23;5158:31;5183:5;5158:31;:::i;:::-;5208:5;-1:-1:-1;5260:2:1;5245:18;;5232:32;;-1:-1:-1;5316:2:1;5301:18;;5288:32;5329:30;5288:32;5329:30;:::i;7217:184::-;7269:77;7266:1;7259:88;7366:4;7363:1;7356:15;7390:4;7387:1;7380:15;7406:125;7446:4;7474:1;7471;7468:8;7465:34;;;7479:18;;:::i;:::-;-1:-1:-1;7516:9:1;;7406:125::o;8230:228::-;8270:7;8396:1;8328:66;8324:74;8321:1;8318:81;8313:1;8306:9;8299:17;8295:105;8292:131;;;8403:18;;:::i;:::-;-1:-1:-1;8443:9:1;;8230:228::o;9513:128::-;9553:3;9584:1;9580:6;9577:1;9574:13;9571:39;;;9590:18;;:::i;:::-;-1:-1:-1;9626:9:1;;9513:128::o;9646:184::-;9716:6;9769:2;9757:9;9748:7;9744:23;9740:32;9737:52;;;9785:1;9782;9775:12;9737:52;-1:-1:-1;9808:16:1;;9646:184;-1:-1:-1;9646:184:1:o;10188:274::-;10228:1;10254;10244:189;;10289:77;10286:1;10279:88;10390:4;10387:1;10380:15;10418:4;10415:1;10408:15;10244:189;-1:-1:-1;10447:9:1;;10188:274::o;10820:184::-;10872:77;10869:1;10862:88;10969:4;10966:1;10959:15;10993:4;10990:1;10983:15;11009:195;11048:3;11079:66;11072:5;11069:77;11066:103;;;11149:18;;:::i;:::-;-1:-1:-1;11196:1:1;11185:13;;11009:195::o;12171:245::-;12238:6;12291:2;12279:9;12270:7;12266:23;12262:32;12259:52;;;12307:1;12304;12297:12;12259:52;12339:9;12333:16;12358:28;12380:5;12358:28;:::i;13597:258::-;13669:1;13679:113;13693:6;13690:1;13687:13;13679:113;;;13769:11;;;13763:18;13750:11;;;13743:39;13715:2;13708:10;13679:113;;;13810:6;13807:1;13804:13;13801:48;;;13845:1;13836:6;13831:3;13827:16;13820:27;13801:48;;13597:258;;;:::o;13860:274::-;13989:3;14027:6;14021:13;14043:53;14089:6;14084:3;14077:4;14069:6;14065:17;14043:53;:::i;:::-;14112:16;;;;;13860:274;-1:-1:-1;;13860:274:1:o;14139:442::-;14288:2;14277:9;14270:21;14251:4;14320:6;14314:13;14363:6;14358:2;14347:9;14343:18;14336:34;14379:66;14438:6;14433:2;14422:9;14418:18;14413:2;14405:6;14401:15;14379:66;:::i;:::-;14497:2;14485:15;14502:66;14481:88;14466:104;;;;14572:2;14462:113;;14139:442;-1:-1:-1;;14139:442:1:o
Swarm Source
ipfs://69ff10aeedb3b9196d94e5fee2bd209e241cb73dea26c33b06697b36213f6e2f
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.