More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 239,979 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim All | 53507550 | 149 days ago | IN | 0 AVAX | 0.02222648 | ||||
Update New Tax | 53507550 | 149 days ago | IN | 0 AVAX | 0.00103388 | ||||
Update Base Fee | 53507548 | 149 days ago | IN | 0 AVAX | 0.00103344 | ||||
Update New Tax | 53507531 | 149 days ago | IN | 0 AVAX | 0.00103388 | ||||
Update Base Fee | 53507529 | 149 days ago | IN | 0 AVAX | 0.00114544 | ||||
Create Nodes Wit... | 20102122 | 945 days ago | IN | 0 AVAX | 0.00173577 | ||||
Create Node With... | 20092623 | 945 days ago | IN | 0 AVAX | 0.0040261 | ||||
Create Node With... | 19821065 | 953 days ago | IN | 0 AVAX | 0.00104741 | ||||
Create Node With... | 19821028 | 953 days ago | IN | 0 AVAX | 0.00104803 | ||||
Create Node With... | 19821003 | 953 days ago | IN | 0 AVAX | 0.00104803 | ||||
Create Node With... | 19820230 | 953 days ago | IN | 0 AVAX | 0.00706992 | ||||
Create Node With... | 19820217 | 953 days ago | IN | 0 AVAX | 0.00706992 | ||||
Create Node With... | 19820208 | 953 days ago | IN | 0 AVAX | 0.00706992 | ||||
Create Node With... | 19820198 | 953 days ago | IN | 0 AVAX | 0.00706992 | ||||
Create Node With... | 19820186 | 953 days ago | IN | 0 AVAX | 0.00706992 | ||||
Create Node With... | 19820141 | 953 days ago | IN | 0 AVAX | 0.00706992 | ||||
Create Node With... | 19819985 | 953 days ago | IN | 0 AVAX | 0.00706929 | ||||
Create Node With... | 19819789 | 953 days ago | IN | 0 AVAX | 0.00706929 | ||||
Create Node With... | 19819739 | 953 days ago | IN | 0 AVAX | 0.00706929 | ||||
Create Node With... | 19819686 | 953 days ago | IN | 0 AVAX | 0.00706929 | ||||
Create Node With... | 19819630 | 953 days ago | IN | 0 AVAX | 0.00706929 | ||||
Create Node With... | 19819571 | 953 days ago | IN | 0 AVAX | 0.0070696 | ||||
Create Node With... | 19819524 | 953 days ago | IN | 0 AVAX | 0.00706929 | ||||
Create Node With... | 19819474 | 953 days ago | IN | 0 AVAX | 0.00706898 | ||||
Create Node With... | 19819430 | 953 days ago | IN | 0 AVAX | 0.00713537 |
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
19577236 | 960 days ago | 0.15785266 AVAX | ||||
19577236 | 960 days ago | 0.15785266 AVAX | ||||
19429817 | 964 days ago | 0.36190743 AVAX | ||||
19429817 | 964 days ago | 0.36190743 AVAX | ||||
18767580 | 979 days ago | 0.27114836 AVAX | ||||
18767580 | 979 days ago | 0.27114836 AVAX | ||||
18767192 | 979 days ago | 0.54257379 AVAX | ||||
18767192 | 979 days ago | 0.54257379 AVAX | ||||
18767063 | 980 days ago | 0.67780113 AVAX | ||||
18767063 | 980 days ago | 0.67780113 AVAX | ||||
18767034 | 980 days ago | 0.79029964 AVAX | ||||
18767034 | 980 days ago | 0.79029964 AVAX | ||||
18766605 | 980 days ago | 0.54223622 AVAX | ||||
18766605 | 980 days ago | 0.54223622 AVAX | ||||
18766586 | 980 days ago | 0.2710192 AVAX | ||||
18766586 | 980 days ago | 0.2710192 AVAX | ||||
18766545 | 980 days ago | 0.36154732 AVAX | ||||
18766545 | 980 days ago | 0.36154732 AVAX | ||||
18766221 | 980 days ago | 1.08512099 AVAX | ||||
18766221 | 980 days ago | 1.08512099 AVAX | ||||
18766130 | 980 days ago | 0.65718463 AVAX | ||||
18766130 | 980 days ago | 0.65718463 AVAX | ||||
18765997 | 980 days ago | 0.54408779 AVAX | ||||
18765997 | 980 days ago | 0.54408779 AVAX | ||||
18765912 | 980 days ago | 1.35886953 AVAX |
Loading...
Loading
Contract Name:
MansionHelper
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at snowscan.xyz on 2022-04-06 */ /** *Submitted for verification at snowtrace.io on 2022-04-01 */ /** *Submitted for verification at snowtrace.io on 2022-03-31 */ /** *Submitted for verification at snowtrace.io on 2022-01-30 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is TKNaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouTKNd) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouTKNd) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouTKNd) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouTKNd) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } 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 `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, 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 `sender` to `recipient` 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 sender, address recipient, 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 * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; assembly { size := extcodesize(account) } return size > 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 IRouter01 { function factory() external pure returns (address); function WAVAX() external pure returns (address); function addLiquidityAVAX( address token, uint amountTokenDesired, uint amountTokenMin, uint amountAVAXMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountAVAX, uint liquidity); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IRouter02 is IRouter01 { function swapExactTokensForAVAXSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract Pool is Ownable { IERC20 public PLAYMATES; constructor(address _PLAYMATES) { PLAYMATES = IERC20(_PLAYMATES); } function pay(address _to, uint _amount) external onlyOwner returns (bool) { return PLAYMATES.transfer(_to, _amount); } } interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); } abstract contract ERC165 is IERC165 { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; } interface MansionManager is IERC721 { function price(address) external returns(uint256); function createNode(address account, string memory nodeName) external; function claim(address account, uint256 _id) external returns (uint); function getNameOf(uint256 _id) external view returns (string memory); function getMintOf(uint256 _id) external view returns (uint64); function getClaimOf(uint256 _id) external view returns (uint64); } interface RewardToken is IERC20{ function nodeApprove(address spender, uint256 amount) external returns (bool); } interface DistrictHelper { function claim(address account, uint256 _id) external returns (uint); } abstract contract Manageable is Ownable { mapping(address => bool) private _managers; event ManagerRemoved(address indexed manager_); event ManagerAdded(address indexed manager_); constructor() {} function managers(address manager_) public view virtual returns (bool) { return _managers[manager_]; } modifier onlyManager() { require(_managers[_msgSender()], "Manageable: caller is not the owner"); _; } function removeManager(address manager_) public virtual onlyOwner { _managers[manager_] = false; emit ManagerRemoved(manager_); } function addManager(address manager_) public virtual onlyOwner { require(manager_ != address(0), "Manageable: new owner is the zero address"); _managers[manager_] = true; emit ManagerAdded(manager_); } } contract MansionHelper is Ownable, Manageable { MansionManager public manager; IERC20 public PLAYMATES; DistrictHelper public districtHelper; DistrictHelper public citiesHelper; IRouter02 public dexRouter; using SafeMath for uint; using SafeMath for uint256; Pool public pool; uint256 public baseFee = 15; uint256 public newTax = 0; address public DEAD = 0x000000000000000000000000000000000000dEaD; address private WAVAX; address payable public marketingWallet = payable(0x8C400D07C258e07681587D3DBDc3dF1CE3306DD7); address public currentRouter; address public TREASURY = 0xE63fb42e89cD67d93bcb6DC5E9388B347E3174be; uint256 public claimLiquidityAmount = 0; uint256 public claimLiquidityThreshold = 10; uint public swapThreshold = 10; uint public maxWallet = 200; uint public maxMansionTX = 20; struct NodeRatios { uint16 poolFee; uint16 liquidityFee; uint16 total; } NodeRatios public _nodeRatios = NodeRatios({ poolFee: 80, liquidityFee: 20, total: 100 }); struct ClaimRatios { uint16 poolClaimFee; uint16 marketingFee; uint16 total; } ClaimRatios public _claimRatios = ClaimRatios({ poolClaimFee: 80, marketingFee: 20, total: 100 }); struct NewTaxRatios { uint16 rewards; uint16 liquidity; uint16 marketing; uint16 treasury; uint16 total; } NewTaxRatios public _newTaxRatios = NewTaxRatios({ rewards: 50, liquidity: 30, marketing: 10, treasury: 10, total: 100 }); bool private swapLiquify = true; IERC20 public DISTRICT = IERC20(0xfb47FabEf2e2b4032e4AdA60f7a3729be048e07d); event AutoLiquify(uint256 amountAVAX, uint256 amount); event Transfer(address to, uint256 amount); event Received(address, uint); mapping(address => bool) public blacklist; constructor(address _manager, address _PLAYMATES, address _districtHelper, address _citiesHelper, address _DISTRICT) { manager = MansionManager(_manager); DISTRICT = IERC20(_DISTRICT); districtHelper = DistrictHelper(_districtHelper); citiesHelper = DistrictHelper(_citiesHelper); PLAYMATES = IERC20(_PLAYMATES); pool = new Pool(_PLAYMATES); currentRouter = 0x60aE616a2155Ee3d9A68541Ba4544862310933d4; dexRouter = IRouter02(currentRouter); WAVAX = dexRouter.WAVAX(); } receive() external payable { emit Received(msg.sender, msg.value); } function setBlacklisted(address user, bool _val) external onlyOwner { blacklist[user] = _val; } function setTreasury(address _TREASURY) external onlyOwner { TREASURY = _TREASURY; } function setNewUpgrade(IERC20 _DISTRICT) external onlyOwner { DISTRICT = IERC20(_DISTRICT); } function setNewDistrictHelper(address _district) external onlyOwner { districtHelper = DistrictHelper(_district); } function setNewCitiesHelper(address _cities) external onlyOwner { citiesHelper = DistrictHelper(_cities); } function approveTokenOnRouter() external onlyOwner{ PLAYMATES.approve(currentRouter, type(uint256).max); } function updatePoolAddress(address _pool) external onlyOwner { pool.pay(address(owner()), PLAYMATES.balanceOf(address(pool))); pool = new Pool(_pool); } function updateManager(MansionManager _newManager) external onlyOwner { manager = MansionManager(_newManager); } function updateMaxWallet(uint256 _maxWallet) external onlyOwner { maxWallet = _maxWallet; } function updateBaseFee(uint256 _baseFee) external onlyOwner { baseFee = _baseFee; } function updateNewTax(uint256 _newTax) external onlyOwner { newTax = _newTax; } function updateMaxMansionTX(uint256 _maxMansionTX) external onlyOwner { maxMansionTX = _maxMansionTX; } function updateMarketingWallet(address payable _marketingWallet) external onlyOwner { marketingWallet = _marketingWallet; } function setNodeRatios(uint16 _poolFee, uint16 _liquidityFee) external onlyOwner { _nodeRatios.poolFee = _poolFee; _nodeRatios.liquidityFee = _liquidityFee; _nodeRatios.total = _poolFee + _liquidityFee; } function setClaimRatios(uint16 _poolClaimFee, uint16 _marketingFee) external onlyOwner { _claimRatios.poolClaimFee = _poolClaimFee; _claimRatios.marketingFee = _marketingFee; _claimRatios.total = _poolClaimFee + _marketingFee; } function setNewTaxRatios(uint16 _rewardsFee, uint16 _marketingFee, uint16 _liquidityFee, uint16 _treasuryFee) external onlyOwner { _newTaxRatios.rewards = _rewardsFee; _newTaxRatios.marketing = _marketingFee; _newTaxRatios.liquidity = _liquidityFee; _newTaxRatios.treasury = _treasuryFee; _newTaxRatios.total = _rewardsFee + _marketingFee + _liquidityFee + _treasuryFee; } function setClaimLiquidityThreshold(uint256 _amount) external onlyOwner { claimLiquidityThreshold = _amount; } function tokenApprovals() external onlyOwner { PLAYMATES.approve(address(dexRouter), 2000000 * 10^18); } function setNewRouter(address _dexRouter) external onlyOwner() { dexRouter = IRouter02(_dexRouter); } function contractSwap(uint256 numTokensToSwap) internal { if (_nodeRatios.total == 0) { return; } uint256 amountToLiquify = ((numTokensToSwap * _nodeRatios.liquidityFee) / (_nodeRatios.total)) / 2; uint256 amountToRewardsPool = (numTokensToSwap * _nodeRatios.poolFee) / (_nodeRatios.total); if(amountToRewardsPool > 0) { PLAYMATES.transfer(address(pool), amountToRewardsPool); } address[] memory path = new address[](2); path[0] = address(PLAYMATES); path[1] = WAVAX; dexRouter.swapExactTokensForAVAXSupportingFeeOnTransferTokens( amountToLiquify, 0, path, address(this), block.timestamp ); uint256 amountAVAX = address(this).balance; if (amountToLiquify > 0) { dexRouter.addLiquidityAVAX{value: amountAVAX}( address(PLAYMATES), amountToLiquify, 0, 0, marketingWallet, block.timestamp ); emit AutoLiquify(amountAVAX, amountToLiquify); } } function claimContractSwap(uint256 numTokensToSwap) internal { address[] memory path = new address[](2); path[0] = address(PLAYMATES); path[1] = WAVAX; dexRouter.swapExactTokensForAVAXSupportingFeeOnTransferTokens( numTokensToSwap / 2, 0, path, address(this), block.timestamp ); uint256 amountAVAX = address(this).balance; dexRouter.addLiquidityAVAX{value: amountAVAX}( address(PLAYMATES), numTokensToSwap / 2, 0, 0, marketingWallet, block.timestamp ); emit AutoLiquify(amountAVAX, numTokensToSwap); claimLiquidityAmount = 0; } function createNodeWithTokens(string memory name) public { require(bytes(name).length > 0 && bytes(name).length < 33, "HELPER: name size is invalid"); address sender = _msgSender(); require(sender != address(0), "HELPER: Creation from the zero address"); uint256 nodePrice = manager.price(sender) * 10 ** 18; require(nodePrice > 0, "error"); require(PLAYMATES.balanceOf(sender) >= nodePrice, "HELPER: Balance too low for creation."); require(manager.balanceOf(sender) + 1 <= maxWallet, "HELPER: Exceeds max wallet amount"); PLAYMATES.transferFrom(_msgSender(), address(this), nodePrice); manager.createNode(sender, name); } function createMultipleNodeWithTokens(string memory name, uint amount) public { require(amount <= maxMansionTX, "HELPER: Exceeds max transaction amount"); require(bytes(name).length > 0 && bytes(name).length < 33, "HELPER: name size is invalid"); address sender = _msgSender(); require(sender != address(0), "HELPER: Creation from the zero address"); uint256 nodePrice = manager.price(sender) * 10 ** 18; require(PLAYMATES.balanceOf(sender) >= nodePrice * amount, "HELPER: Balance too low for creation."); require(manager.balanceOf(sender) + amount <= maxWallet, "HELPER: Exceeds max wallet amount"); PLAYMATES.transferFrom(_msgSender(), address(this), nodePrice * amount); for (uint256 i = 0; i < amount; i++) { manager.createNode(sender, name); } if ((PLAYMATES.balanceOf(address(this)) > swapThreshold)) { uint256 contractTokenBalance = PLAYMATES.balanceOf(address(this)); contractSwap(contractTokenBalance); } } function createMultipleNodeWithTokensAndName(string[] memory names, uint amount) public { require(amount <= maxMansionTX, "HELPER: Exceeds max transaction amount"); require(names.length == amount, "HELPER: You need to provide exactly matching names"); address sender = _msgSender(); require(sender != address(0), "HELPER: creation from the zero address"); uint256 nodePrice = manager.price(sender) * 10 ** 18; require(PLAYMATES.balanceOf(sender) >= nodePrice * amount, "HELPER: Balance too low for creation."); require(manager.balanceOf(sender) + amount <= maxWallet, "HELPER: Exceeds max wallet amount"); PLAYMATES.transferFrom(_msgSender(), address(this), nodePrice * amount); for (uint256 i = 0; i < amount; i++) { string memory name = names[i]; require(bytes(name).length > 0 && bytes(name).length < 33, "HELPER: name size is invalid"); manager.createNode(sender, name); } if ((PLAYMATES.balanceOf(address(this)) > swapThreshold)) { uint256 contractTokenBalance = PLAYMATES.balanceOf(address(this)); contractSwap(contractTokenBalance); } } function createNodesWithRewards(string memory name, uint64[] calldata _nodes, uint256 amount, bool useBalance) public { require(amount <= maxMansionTX, "HELPER: Exceeds max transaction amount"); address sender = _msgSender(); require(sender != address(0), "HELPER: creation from the zero address"); require(blacklist[sender] == false, "HELPER: You are blacklisted"); uint256 rewardAmount = 0; for (uint256 i = 0; i < _nodes.length; i++) { rewardAmount = rewardAmount + manager.claim(_msgSender(), _nodes[i]); } uint256 nodePrice = manager.price(sender) * 10 ** 18; if (!useBalance) require(rewardAmount >= nodePrice * amount,"HELPER: You don't have enough reward to cash out"); else require(useBalance && rewardAmount + PLAYMATES.balanceOf(sender) >= nodePrice * amount,"HELPER: You don't have enough reward to cash out"); require(manager.balanceOf(sender) + amount <= maxWallet, "HELPER: Exceeds max wallet amount"); for (uint256 i = 0; i < amount; i++) { require(bytes(name).length > 0 && bytes(name).length < 33, "HELPER: name size is invalid"); manager.createNode(sender, name); } if (rewardAmount > nodePrice * amount) { uint256 remainingRewards = rewardAmount - nodePrice * amount; uint256 feeAmount = remainingRewards.mul(getClaimFee(sender)).div(100); uint256 newFeeAmount = remainingRewards.mul(newTax).div(100); uint256 excessRewards = remainingRewards - feeAmount - newFeeAmount; pool.pay(sender, excessRewards); // MARKETING uint256 amountToMarketingWallet = (feeAmount * _claimRatios.marketingFee) / (_claimRatios.total) + (newFeeAmount * _newTaxRatios.marketing) / _newTaxRatios.total; pool.pay(address(this), amountToMarketingWallet); address[] memory path = new address[](2); path[0] = address(PLAYMATES); path[1] = WAVAX; dexRouter.swapExactTokensForAVAXSupportingFeeOnTransferTokens( amountToMarketingWallet, 0, path, marketingWallet, block.timestamp ); if (newTax > 0) { // REWARDS POOL -> JUST DON'T TRANSFER ANYTHING, ALREADY IN THE POOL // TREASURY uint256 amountToTreasury = (newFeeAmount * _newTaxRatios.treasury) / _newTaxRatios.total; pool.pay(address(this), amountToTreasury); dexRouter.swapExactTokensForAVAXSupportingFeeOnTransferTokens( amountToTreasury, 0, path, TREASURY, block.timestamp ); // LIQUIDITY uint256 amountToLiquidity = (newFeeAmount * _newTaxRatios.liquidity) / _newTaxRatios.total; claimLiquidityAmount += amountToLiquidity; if (claimLiquidityAmount >= claimLiquidityThreshold) { pool.pay(address(this), claimLiquidityAmount); claimContractSwap(claimLiquidityAmount); } } } else if (useBalance && rewardAmount + PLAYMATES.balanceOf(sender) >= nodePrice * amount) { uint256 balanceToTransfer = nodePrice * amount - rewardAmount; PLAYMATES.transferFrom(_msgSender(), address(this), balanceToTransfer); if ((PLAYMATES.balanceOf(address(this)) > swapThreshold)) { uint256 contractTokenBalance = PLAYMATES.balanceOf(address(this)); contractSwap(contractTokenBalance); } } } function getClaimFee (address sender) public view returns (uint256) { uint256 claimFee; if(DISTRICT.balanceOf(sender) >= baseFee) { return 0; } else { claimFee = baseFee.sub(DISTRICT.balanceOf(sender)); return claimFee; } } function claimUtility(uint64[] calldata _nodes, address whereTo, uint256 neededAmount, address excessAmountReceiver, address nodeOwner) onlyManager public { uint256 rewardAmount = 0; for (uint256 i = 0; i < _nodes.length; i++) { rewardAmount = rewardAmount + manager.claim(nodeOwner, _nodes[i]); } require(rewardAmount > 0,"HELPER: You don't have enough reward to cash out"); uint256 remainingRewards = rewardAmount - neededAmount; pool.pay(excessAmountReceiver, remainingRewards); pool.pay(whereTo, neededAmount); } function claimMansionsAndDistricts(uint64[] calldata _mansions, uint64[] calldata _districts) public { claimAll(_mansions); claimDistricts(_districts); } function claimAll(uint64[] calldata _nodes) public { address sender = _msgSender(); require(sender != address(0), "HELPER: creation from the zero address"); require(blacklist[sender] == false, "HELPER: You are blacklisted"); uint256 rewardAmount = 0; for (uint256 i = 0; i < _nodes.length; i++) { rewardAmount = rewardAmount + manager.claim(_msgSender(), _nodes[i]); } require(rewardAmount > 0,"HELPER: You don't have enough reward to cash out"); uint256 feeAmount = rewardAmount.mul(getClaimFee(sender)).div(100); uint256 newFeeAmount = rewardAmount.mul(newTax).div(100); require(feeAmount > 0, "Helper: Error"); if (getClaimFee(sender) > 0) { uint256 realReward = rewardAmount - feeAmount - newFeeAmount; pool.pay(sender, realReward); // MARKETING uint256 amountToMarketingWallet = (feeAmount * _claimRatios.marketingFee) / (_claimRatios.total) + (newFeeAmount * _newTaxRatios.marketing) / _newTaxRatios.total; pool.pay(address(this), amountToMarketingWallet); address[] memory path = new address[](2); path[0] = address(PLAYMATES); path[1] = WAVAX; dexRouter.swapExactTokensForAVAXSupportingFeeOnTransferTokens( amountToMarketingWallet, 0, path, marketingWallet, block.timestamp ); if (newTax > 0) { // REWARDS POOL -> JUST DON'T TRANSFER ANYTHING, ALREADY IN THE POOL // TREASURY uint256 amountToTreasury = (newFeeAmount * _newTaxRatios.treasury) / _newTaxRatios.total; pool.pay(address(this), amountToTreasury); dexRouter.swapExactTokensForAVAXSupportingFeeOnTransferTokens( amountToTreasury, 0, path, TREASURY, block.timestamp ); // LIQUIDITY uint256 amountToLiquidity = (newFeeAmount * _newTaxRatios.liquidity) / _newTaxRatios.total; claimLiquidityAmount += amountToLiquidity; if (claimLiquidityAmount >= claimLiquidityThreshold) { pool.pay(address(this), claimLiquidityAmount); claimContractSwap(claimLiquidityAmount); } } } else { pool.pay(sender, rewardAmount); } } function claimDistricts(uint64[] calldata _nodes) public { address sender = _msgSender(); require(sender != address(0), "HELPER: creation from the zero address"); require(blacklist[sender] == false, "HELPER: You are blacklisted"); uint256 rewardAmount = 0; for (uint256 i = 0; i < _nodes.length; i++) { rewardAmount = rewardAmount + districtHelper.claim(_msgSender(), _nodes[i]); } require(rewardAmount > 0,"HELPER: You don't have enough reward to cash out"); uint256 feeAmount = rewardAmount.mul(getClaimFee(sender)).div(100); require(feeAmount > 0, "Helper: Error"); if (getClaimFee(sender) > 0) { uint256 realReward = rewardAmount - feeAmount; pool.pay(sender, realReward); uint256 amountToMarketingWallet = (feeAmount * _claimRatios.marketingFee) / (_claimRatios.total); pool.pay(address(this), amountToMarketingWallet); address[] memory path = new address[](2); path[0] = address(PLAYMATES); path[1] = WAVAX; dexRouter.swapExactTokensForAVAXSupportingFeeOnTransferTokens( amountToMarketingWallet, 0, path, marketingWallet, block.timestamp ); } else { pool.pay(sender, rewardAmount); } } function claimCities(uint64[] calldata _nodes) public { address sender = _msgSender(); require(sender != address(0), "HELPER: creation from the zero address"); require(blacklist[sender] == false, "HELPER: You are blacklisted"); uint256 rewardAmount = 0; for (uint256 i = 0; i < _nodes.length; i++) { rewardAmount = rewardAmount + citiesHelper.claim(_msgSender(), _nodes[i]); } require(rewardAmount > 0,"HELPER: You don't have enough reward to cash out"); uint256 feeAmount = rewardAmount.mul(getClaimFee(sender)).div(100); require(feeAmount > 0, "Helper: Error"); if (getClaimFee(sender) > 0) { uint256 realReward = rewardAmount - feeAmount; pool.pay(sender, realReward); uint256 amountToMarketingWallet = (feeAmount * _claimRatios.marketingFee) / (_claimRatios.total); pool.pay(address(this), amountToMarketingWallet); address[] memory path = new address[](2); path[0] = address(PLAYMATES); path[1] = WAVAX; dexRouter.swapExactTokensForAVAXSupportingFeeOnTransferTokens( amountToMarketingWallet, 0, path, marketingWallet, block.timestamp ); } else { pool.pay(sender, rewardAmount); } } function claim(uint64 _node) public { address sender = _msgSender(); require(sender != address(0), "HELPER: creation from the zero address"); require(blacklist[sender] == false, "HELPER: You are blacklisted"); uint256 rewardAmount = manager.claim(_msgSender(), _node); require(rewardAmount > 0,"HELPER: You don't have enough reward to cash out"); uint256 feeAmount = rewardAmount.mul(getClaimFee(sender)).div(100); uint256 newFeeAmount = rewardAmount.mul(newTax).div(100); require(feeAmount > 0, "Helper: Error"); if (getClaimFee(sender) > 0) { uint256 realReward = rewardAmount - feeAmount - newFeeAmount; pool.pay(sender, realReward); // MARKETING uint256 amountToMarketingWallet = (feeAmount * _claimRatios.marketingFee) / (_claimRatios.total) + (newFeeAmount * _newTaxRatios.marketing) / _newTaxRatios.total; pool.pay(address(this), amountToMarketingWallet); address[] memory path = new address[](2); path[0] = address(PLAYMATES); path[1] = WAVAX; dexRouter.swapExactTokensForAVAXSupportingFeeOnTransferTokens( amountToMarketingWallet, 0, path, marketingWallet, block.timestamp ); if (newTax > 0) { // REWARDS POOL -> JUST DON'T TRANSFER ANYTHING, ALREADY IN THE POOL // TREASURY uint256 amountToTreasury = (newFeeAmount * _newTaxRatios.treasury) / _newTaxRatios.total; pool.pay(address(this), amountToTreasury); dexRouter.swapExactTokensForAVAXSupportingFeeOnTransferTokens( amountToTreasury, 0, path, TREASURY, block.timestamp ); // LIQUIDITY uint256 amountToLiquidity = (newFeeAmount * _newTaxRatios.liquidity) / _newTaxRatios.total; claimLiquidityAmount += amountToLiquidity; if (claimLiquidityAmount >= claimLiquidityThreshold) { pool.pay(address(this), claimLiquidityAmount); claimContractSwap(claimLiquidityAmount); } } } else { pool.pay(sender, rewardAmount); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_manager","type":"address"},{"internalType":"address","name":"_PLAYMATES","type":"address"},{"internalType":"address","name":"_districtHelper","type":"address"},{"internalType":"address","name":"_citiesHelper","type":"address"},{"internalType":"address","name":"_DISTRICT","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountAVAX","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"manager_","type":"address"}],"name":"ManagerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"manager_","type":"address"}],"name":"ManagerRemoved","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":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"Received","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DISTRICT","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PLAYMATES","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TREASURY","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_claimRatios","outputs":[{"internalType":"uint16","name":"poolClaimFee","type":"uint16"},{"internalType":"uint16","name":"marketingFee","type":"uint16"},{"internalType":"uint16","name":"total","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_newTaxRatios","outputs":[{"internalType":"uint16","name":"rewards","type":"uint16"},{"internalType":"uint16","name":"liquidity","type":"uint16"},{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"treasury","type":"uint16"},{"internalType":"uint16","name":"total","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_nodeRatios","outputs":[{"internalType":"uint16","name":"poolFee","type":"uint16"},{"internalType":"uint16","name":"liquidityFee","type":"uint16"},{"internalType":"uint16","name":"total","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"manager_","type":"address"}],"name":"addManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"approveTokenOnRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"baseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"citiesHelper","outputs":[{"internalType":"contract DistrictHelper","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"_node","type":"uint64"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64[]","name":"_nodes","type":"uint64[]"}],"name":"claimAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64[]","name":"_nodes","type":"uint64[]"}],"name":"claimCities","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64[]","name":"_nodes","type":"uint64[]"}],"name":"claimDistricts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimLiquidityAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimLiquidityThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64[]","name":"_mansions","type":"uint64[]"},{"internalType":"uint64[]","name":"_districts","type":"uint64[]"}],"name":"claimMansionsAndDistricts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64[]","name":"_nodes","type":"uint64[]"},{"internalType":"address","name":"whereTo","type":"address"},{"internalType":"uint256","name":"neededAmount","type":"uint256"},{"internalType":"address","name":"excessAmountReceiver","type":"address"},{"internalType":"address","name":"nodeOwner","type":"address"}],"name":"claimUtility","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"createMultipleNodeWithTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string[]","name":"names","type":"string[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"createMultipleNodeWithTokensAndName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"createNodeWithTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint64[]","name":"_nodes","type":"uint64[]"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"useBalance","type":"bool"}],"name":"createNodesWithRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"districtHelper","outputs":[{"internalType":"contract DistrictHelper","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"getClaimFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manager","outputs":[{"internalType":"contract MansionManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"manager_","type":"address"}],"name":"managers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxMansionTX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool","outputs":[{"internalType":"contract Pool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"manager_","type":"address"}],"name":"removeManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"_val","type":"bool"}],"name":"setBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setClaimLiquidityThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_poolClaimFee","type":"uint16"},{"internalType":"uint16","name":"_marketingFee","type":"uint16"}],"name":"setClaimRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_cities","type":"address"}],"name":"setNewCitiesHelper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_district","type":"address"}],"name":"setNewDistrictHelper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_dexRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_rewardsFee","type":"uint16"},{"internalType":"uint16","name":"_marketingFee","type":"uint16"},{"internalType":"uint16","name":"_liquidityFee","type":"uint16"},{"internalType":"uint16","name":"_treasuryFee","type":"uint16"}],"name":"setNewTaxRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_DISTRICT","type":"address"}],"name":"setNewUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_poolFee","type":"uint16"},{"internalType":"uint16","name":"_liquidityFee","type":"uint16"}],"name":"setNodeRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_TREASURY","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenApprovals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_baseFee","type":"uint256"}],"name":"updateBaseFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract MansionManager","name":"_newManager","type":"address"}],"name":"updateManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_marketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxMansionTX","type":"uint256"}],"name":"updateMaxMansionTX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newTax","type":"uint256"}],"name":"updateNewTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pool","type":"address"}],"name":"updatePoolAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
600f600881905560006009819055600a80546001600160a01b031990811661dead178255600c80548216738c400d07c258e07681587d3dbdc3df1ce3306dd7179055600e805490911673e63fb42e89cd67d93bcb6dc5e9388b347e3174be17905591556010819055601181905560c8601255601460138190556050608081905260a0829052606460c0819052825464640014005065ffffffffffff199182168117855560e09390935261010093909352610120819052601580549093169091179091556101e0604052603261014052601e610160526101808290526101a0919091526101c052601680546864000a000a001e00326001600160501b03199091161790556017805474fb47fabef2e2b4032e4ada60f7a3729be048e07d016001600160a81b03199091161790553480156200013857600080fd5b5060405162006715380380620067158339810160408190526200015b9162000391565b6200016633620002f1565b600280546001600160a01b03199081166001600160a01b038881169190911790925560178054610100600160a81b03191661010085851602179055600480548216868416179055600580548216858416179055600380549091169186169190911790556040518490620001d99062000341565b6001600160a01b039091168152602001604051809103906000f08015801562000206573d6000803e3d6000fd5b50600780546001600160a01b03929092166001600160a01b0319928316179055600d805482167360ae616a2155ee3d9a68541ba4544862310933d4908117909155600680549092168117909155604080516339d94ae160e11b815290516373b295c291600480820192602092909190829003018186803b1580156200028a57600080fd5b505afa1580156200029f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c591906200036c565b600b80546001600160a01b0319166001600160a01b039290921691909117905550620004019350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610499806200627c83390190565b80516001600160a01b03811681146200036757600080fd5b919050565b6000602082840312156200037f57600080fd5b6200038a826200034f565b9392505050565b600080600080600060a08688031215620003aa57600080fd5b620003b5866200034f565b9450620003c5602087016200034f565b9350620003d5604087016200034f565b9250620003e5606087016200034f565b9150620003f5608087016200034f565b90509295509295909350565b615e6b80620004116000396000f3fe608060405260043610620003cf5760003560e01c806388f2193d11620001f7578063d00f9db11162000117578063f2fde38b11620000ad578063f5cc34e51162000078578063f5cc34e51462000c14578063f8b45b051462000c39578063f9f92be41462000c51578063fdff9b4d1462000c9657600080fd5b8063f2fde38b1462000b8d578063f341c5131462000bb2578063f58fad851462000bd7578063f5c709731462000bef57600080fd5b8063df890dea11620000ee578063df890dea1462000af9578063e7694bc61462000b1e578063eafb5a3c1462000b43578063f0f442601462000b6857600080fd5b8063d00f9db11462000a8a578063d01dd6d21462000aaf578063d96f9e201462000ad457600080fd5b8063aacebbe3116200018d578063b96d611c1162000164578063b96d611c1462000a06578063bab3eadc1462000a2b578063ce613ea31462000a50578063cf0cef011462000a7257600080fd5b8063aacebbe31462000997578063ac18de4314620009bc578063b2ecfc1814620009e157600080fd5b80638e69018611620001ce5780638e69018614620009015780638f0ba4ca14620009265780639c69fb53146200094b578063aab8ab0c146200097257600080fd5b806388f2193d14620008a45780638a6458cc14620008c95780638da5cb5b14620008e157600080fd5b806342ce736c11620002ef5780636b5b6ebb11620002855780637c9bf13d11620002505780637c9bf13d14620007c65780637eabbf1f14620007eb57806381582dda14620008105780638270c049146200088c57600080fd5b80636b5b6ebb146200074f5780636ef25c3a1462000774578063715018a6146200078c57806375f0a87414620007a457600080fd5b80635e58bea511620002c65780635e58bea514620006b45780636251be7114620006e6578063644afb7c14620007085780636aa4b0a6146200072d57600080fd5b806342ce736c1462000648578063481c6a75146200066d57806358aba00f146200068f57600080fd5b80631cb8eae111620003655780632d06177a116200033c5780632d06177a14620005b75780632d2c556514620005dc5780632f6d4c8214620005fe57806340b2e479146200062357600080fd5b80631cb8eae114620005225780632205ac25146200057a5780632369fde5146200059f57600080fd5b8063122fea3b11620003a6578063122fea3b146200049f578063168fea0714620004c157806316f0115b14620004db5780631c499ab014620004fd57600080fd5b806303fd2a4514620004175780630445b66714620004565780630758d924146200047d57600080fd5b3662000412577f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874333460405162000408929190620054dd565b60405180910390a1005b600080fd5b3480156200042457600080fd5b50600a5462000439906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200046357600080fd5b506200046e60115481565b6040519081526020016200044d565b3480156200048a57600080fd5b5060065462000439906001600160a01b031681565b348015620004ac57600080fd5b50600d5462000439906001600160a01b031681565b348015620004ce57600080fd5b50620004d962000cd3565b005b348015620004e857600080fd5b5060075462000439906001600160a01b031681565b3480156200050a57600080fd5b50620004d96200051c36600462005394565b62000d9c565b3480156200052f57600080fd5b50601454620005549061ffff80821691620100008104821691600160201b9091041683565b6040805161ffff948516815292841660208401529216918101919091526060016200044d565b3480156200058757600080fd5b50620004d96200059936600462005394565b62000dce565b348015620005ac57600080fd5b50620004d962000e00565b348015620005c457600080fd5b50620004d9620005d636600462004f42565b62000e69565b348015620005e957600080fd5b50600e5462000439906001600160a01b031681565b3480156200060b57600080fd5b50620004d96200061d36600462005225565b62000f4f565b3480156200063057600080fd5b50620004d96200064236600462005394565b62001b8a565b3480156200065557600080fd5b50620004d96200066736600462005394565b62001bbc565b3480156200067a57600080fd5b5060025462000439906001600160a01b031681565b3480156200069c57600080fd5b50620004d9620006ae36600462004f42565b62001bee565b348015620006c157600080fd5b50601554620005549061ffff80821691620100008104821691600160201b9091041683565b348015620006f357600080fd5b5060035462000439906001600160a01b031681565b3480156200071557600080fd5b50620004d962000727366004620052ff565b62001c3d565b3480156200073a57600080fd5b5060045462000439906001600160a01b031681565b3480156200075c57600080fd5b50620004d96200076e36600462004f42565b62001cbb565b3480156200078157600080fd5b506200046e60085481565b3480156200079957600080fd5b50620004d962001d0a565b348015620007b157600080fd5b50600c5462000439906001600160a01b031681565b348015620007d357600080fd5b50620004d9620007e536600462005337565b62001d45565b348015620007f857600080fd5b50620004d96200080a36600462004f42565b62001e15565b3480156200081d57600080fd5b50601654620008569061ffff80821691620100008104821691600160201b8204811691600160301b8104821691600160401b9091041685565b6040805161ffff968716815294861660208601529285169284019290925283166060830152909116608082015260a0016200044d565b3480156200089957600080fd5b506200046e60135481565b348015620008b157600080fd5b50620004d9620008c33660046200507c565b62001e64565b348015620008d657600080fd5b506200046e600f5481565b348015620008ee57600080fd5b506000546001600160a01b031662000439565b3480156200090e57600080fd5b50620004d96200092036600462005394565b62002307565b3480156200093357600080fd5b50620004d962000945366004620051e4565b62002339565b3480156200095857600080fd5b50601754620004399061010090046001600160a01b031681565b3480156200097f57600080fd5b50620004d962000991366004620053f7565b620026ac565b348015620009a457600080fd5b50620004d9620009b636600462004f42565b62002d39565b348015620009c957600080fd5b50620004d9620009db36600462004f42565b62002d88565b348015620009ee57600080fd5b50620004d962000a0036600462004fa0565b62002dfe565b34801562000a1357600080fd5b50620004d962000a25366004620052b6565b6200337a565b34801562000a3857600080fd5b50620004d962000a4a36600462004f42565b6200370b565b34801562000a5d57600080fd5b5060055462000439906001600160a01b031681565b34801562000a7f57600080fd5b506200046e60105481565b34801562000a9757600080fd5b50620004d962000aa936600462004f42565b62003760565b34801562000abc57600080fd5b50620004d962000ace36600462004f62565b6200390a565b34801562000ae157600080fd5b50620004d962000af3366004620050c2565b62003962565b34801562000b0657600080fd5b50620004d962000b183660046200507c565b62003bfa565b34801562000b2b57600080fd5b506200046e62000b3d36600462004f42565b62003d3a565b34801562000b5057600080fd5b50620004d962000b6236600462004f42565b62003e74565b34801562000b7557600080fd5b50620004d962000b8736600462004f42565b62003ec3565b34801562000b9a57600080fd5b50620004d962000bac36600462004f42565b62003f12565b34801562000bbf57600080fd5b50620004d962000bd136600462005151565b62003fb1565b34801562000be457600080fd5b506200046e60095481565b34801562000bfc57600080fd5b50620004d962000c0e3660046200507c565b62003fc9565b34801562000c2157600080fd5b50620004d962000c33366004620052ff565b62004703565b34801562000c4657600080fd5b506200046e60125481565b34801562000c5e57600080fd5b5062000c8562000c7036600462004f42565b60186020526000908152604090205460ff1681565b60405190151581526020016200044d565b34801562000ca357600080fd5b5062000c8562000cb536600462004f42565b6001600160a01b031660009081526001602052604090205460ff1690565b6000546001600160a01b0316331462000d095760405162461bcd60e51b815260040162000d009062005700565b60405180910390fd5b600354600d5460405163095ea7b360e01b81526001600160a01b039283169263095ea7b39262000d439291169060001990600401620054dd565b602060405180830381600087803b15801562000d5e57600080fd5b505af115801562000d73573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d999190620051c4565b50565b6000546001600160a01b0316331462000dc95760405162461bcd60e51b815260040162000d009062005700565b601255565b6000546001600160a01b0316331462000dfb5760405162461bcd60e51b815260040162000d009062005700565b600955565b6000546001600160a01b0316331462000e2d5760405162461bcd60e51b815260040162000d009062005700565b60035460065460405163095ea7b360e01b81526001600160a01b039283169263095ea7b39262000d43929116906301312d1290600401620054dd565b6000546001600160a01b0316331462000e965760405162461bcd60e51b815260040162000d009062005700565b6001600160a01b03811662000f005760405162461bcd60e51b815260206004820152602960248201527f4d616e61676561626c653a206e6577206f776e657220697320746865207a65726044820152686f206164647265737360b81b606482015260840162000d00565b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f3b4a40cccf2058c593542587329dd385be4f0b588db5471fbd9598e56dd7093a9190a250565b60135482111562000f745760405162461bcd60e51b815260040162000d0090620056ba565b338062000f955760405162461bcd60e51b815260040162000d00906200576c565b6001600160a01b03811660009081526018602052604090205460ff161562000fd15760405162461bcd60e51b815260040162000d009062005683565b6000805b85811015620010b4576002546001600160a01b031663aad3ec96338989858181106200100557620010056200594b565b90506020020160208101906200101c9190620053f7565b6040518363ffffffff1660e01b81526004016200103b92919062005557565b602060405180830381600087803b1580156200105657600080fd5b505af11580156200106b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010919190620053ae565b6200109d90836200589d565b915080620010ab8162005917565b91505062000fd5565b506002546040516315d5220f60e31b81526001600160a01b038481166004830152600092169063aea9107890602401602060405180830381600087803b158015620010fe57600080fd5b505af115801562001113573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011399190620053ae565b6200114d90670de0b6b3a7640000620058db565b9050836200118957620011618582620058db565b821015620011835760405162461bcd60e51b815260040162000d0090620057b2565b6200124d565b8380156200122e57506200119e8582620058db565b6003546040516370a0823160e01b81526001600160a01b038681166004830152909116906370a082319060240160206040518083038186803b158015620011e457600080fd5b505afa158015620011f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200121f9190620053ae565b6200122b90846200589d565b10155b6200124d5760405162461bcd60e51b815260040162000d0090620057b2565b6012546002546040516370a0823160e01b81526001600160a01b038681166004830152889216906370a082319060240160206040518083038186803b1580156200129657600080fd5b505afa158015620012ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620012d19190620053ae565b620012dd91906200589d565b1115620012fe5760405162461bcd60e51b815260040162000d009062005642565b60005b85811015620013ba57600089511180156200131d575060218951105b6200133c5760405162461bcd60e51b815260040162000d009062005735565b6002546040516312b8603f60e01b81526001600160a01b03909116906312b8603f90620013709087908d90600401620054f6565b600060405180830381600087803b1580156200138b57600080fd5b505af1158015620013a0573d6000803e3d6000fd5b505050508080620013b19062005917565b91505062001301565b50620013c78582620058db565b82111562001912576000620013dd8683620058db565b620013e99084620058fd565b905060006200141160646200140a620014028862003d3a565b859062004781565b9062004811565b905060006200143260646200140a600954866200478190919063ffffffff16565b9050600081620014438486620058fd565b6200144f9190620058fd565b600754604051636203b43b60e11b81529192506001600160a01b03169063c40768769062001484908a908590600401620054dd565b602060405180830381600087803b1580156200149f57600080fd5b505af1158015620014b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620014da9190620051c4565b5060165460009061ffff600160401b82048116916200150391600160201b9091041685620058db565b6200150f9190620058b8565b60155461ffff600160201b82048116916200153391620100009091041687620058db565b6200153f9190620058b8565b6200154b91906200589d565b600754604051636203b43b60e11b81529192506001600160a01b03169063c407687690620015809030908590600401620054dd565b602060405180830381600087803b1580156200159b57600080fd5b505af1158015620015b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015d69190620051c4565b50604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b0316918391506000906200161b576200161b6200594b565b6001600160a01b039283166020918202929092010152600b548251911690829060019081106200164f576200164f6200594b565b6001600160a01b039283166020918202929092010152600654600c54604051633b158ab160e11b81529183169263762b1562926200169d928792600092889290911690429060040162005802565b600060405180830381600087803b158015620016b857600080fd5b505af1158015620016cd573d6000803e3d6000fd5b5050505060006009541115620019065760165460009061ffff600160401b82048116916200170591600160301b9091041687620058db565b620017119190620058b8565b600754604051636203b43b60e11b81529192506001600160a01b03169063c407687690620017469030908590600401620054dd565b602060405180830381600087803b1580156200176157600080fd5b505af115801562001776573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200179c9190620051c4565b50600654600e54604051633b158ab160e11b81526001600160a01b039283169263762b156292620017dc9286926000928992911690429060040162005802565b600060405180830381600087803b158015620017f757600080fd5b505af11580156200180c573d6000803e3d6000fd5b50506016546000925061ffff600160401b82048116925062001836916201000090041688620058db565b620018429190620058b8565b905080600f60008282546200185891906200589d565b9091555050601054600f54106200190357600754600f54604051636203b43b60e11b81526001600160a01b039092169163c4076876916200189f91309190600401620054dd565b602060405180830381600087803b158015620018ba57600080fd5b505af1158015620018cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018f59190620051c4565b5062001903600f5462004855565b50505b50505050505062001b80565b838015620019b75750620019278582620058db565b6003546040516370a0823160e01b81526001600160a01b038681166004830152909116906370a082319060240160206040518083038186803b1580156200196d57600080fd5b505afa15801562001982573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019a89190620053ae565b620019b490846200589d565b10155b1562001b8057600082620019cc8784620058db565b620019d89190620058fd565b6003546040516323b872dd60e01b81529192506001600160a01b0316906323b872dd9062001a0f90339030908690600401620054b9565b602060405180830381600087803b15801562001a2a57600080fd5b505af115801562001a3f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a659190620051c4565b506011546003546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b15801562001aad57600080fd5b505afa15801562001ac2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ae89190620053ae565b111562001b7e576003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801562001b3457600080fd5b505afa15801562001b49573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b6f9190620053ae565b905062001b7c8162004a52565b505b505b5050505050505050565b6000546001600160a01b0316331462001bb75760405162461bcd60e51b815260040162000d009062005700565b601355565b6000546001600160a01b0316331462001be95760405162461bcd60e51b815260040162000d009062005700565b601055565b6000546001600160a01b0316331462001c1b5760405162461bcd60e51b815260040162000d009062005700565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331462001c6a5760405162461bcd60e51b815260040162000d009062005700565b6015805461ffff838116620100000263ffffffff199092169085161717905562001c95818362005874565b6015805461ffff92909216600160201b0265ffff00000000199092169190911790555050565b6000546001600160a01b0316331462001ce85760405162461bcd60e51b815260040162000d009062005700565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331462001d375760405162461bcd60e51b815260040162000d009062005700565b62001d43600062004d50565b565b6000546001600160a01b0316331462001d725760405162461bcd60e51b815260040162000d009062005700565b6016805461ffff86811665ffff0000ffff1990921691909117600160201b868316021767ffff0000ffff00001916620100008583160267ffff000000000000191617600160301b91841691909102179055808262001dd1858762005874565b62001ddd919062005874565b62001de9919062005874565b6016805461ffff92909216600160401b0269ffff00000000000000001990921691909117905550505050565b6000546001600160a01b0316331462001e425760405162461bcd60e51b815260040162000d009062005700565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b338062001e855760405162461bcd60e51b815260040162000d00906200576c565b6001600160a01b03811660009081526018602052604090205460ff161562001ec15760405162461bcd60e51b815260040162000d009062005683565b6000805b8381101562001fa4576004546001600160a01b031663aad3ec963387878581811062001ef55762001ef56200594b565b905060200201602081019062001f0c9190620053f7565b6040518363ffffffff1660e01b815260040162001f2b92919062005557565b602060405180830381600087803b15801562001f4657600080fd5b505af115801562001f5b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f819190620053ae565b62001f8d90836200589d565b91508062001f9b8162005917565b91505062001ec5565b506000811162001fc85760405162461bcd60e51b815260040162000d0090620057b2565b600062001fdf60646200140a620014028662003d3a565b905060008111620020045760405162461bcd60e51b815260040162000d00906200558f565b6000620020118462003d3a565b111562002274576000620020268284620058fd565b600754604051636203b43b60e11b81529192506001600160a01b03169063c4076876906200205b9087908590600401620054dd565b602060405180830381600087803b1580156200207657600080fd5b505af11580156200208b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620020b19190620051c4565b5060155460009061ffff600160201b8204811691620020d991620100009091041685620058db565b620020e59190620058b8565b600754604051636203b43b60e11b81529192506001600160a01b03169063c4076876906200211a9030908590600401620054dd565b602060405180830381600087803b1580156200213557600080fd5b505af11580156200214a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620021709190620051c4565b50604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b031691839150600090620021b557620021b56200594b565b6001600160a01b039283166020918202929092010152600b54825191169082906001908110620021e957620021e96200594b565b6001600160a01b039283166020918202929092010152600654600c54604051633b158ab160e11b81529183169263762b15629262002237928792600092889290911690429060040162005802565b600060405180830381600087803b1580156200225257600080fd5b505af115801562002267573d6000803e3d6000fd5b5050505050505062002300565b600754604051636203b43b60e11b81526001600160a01b039091169063c407687690620022a89086908690600401620054dd565b602060405180830381600087803b158015620022c357600080fd5b505af1158015620022d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620022fe9190620051c4565b505b5050505050565b6000546001600160a01b03163314620023345760405162461bcd60e51b815260040162000d009062005700565b600855565b600081511180156200234c575060218151105b6200236b5760405162461bcd60e51b815260040162000d009062005735565b33806200238c5760405162461bcd60e51b815260040162000d0090620055b6565b6002546040516315d5220f60e31b81526001600160a01b038381166004830152600092169063aea9107890602401602060405180830381600087803b158015620023d557600080fd5b505af1158015620023ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024109190620053ae565b6200242490670de0b6b3a7640000620058db565b905060008111620024605760405162461bcd60e51b815260206004820152600560248201526432b93937b960d91b604482015260640162000d00565b6003546040516370a0823160e01b81526001600160a01b038481166004830152839216906370a082319060240160206040518083038186803b158015620024a657600080fd5b505afa158015620024bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024e19190620053ae565b1015620025025760405162461bcd60e51b815260040162000d0090620055fd565b6012546002546040516370a0823160e01b81526001600160a01b038581166004830152909116906370a082319060240160206040518083038186803b1580156200254b57600080fd5b505afa15801562002560573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620025869190620053ae565b620025939060016200589d565b1115620025b45760405162461bcd60e51b815260040162000d009062005642565b6003546001600160a01b03166323b872dd3330846040518463ffffffff1660e01b8152600401620025e893929190620054b9565b602060405180830381600087803b1580156200260357600080fd5b505af115801562002618573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200263e9190620051c4565b506002546040516312b8603f60e01b81526001600160a01b03909116906312b8603f90620026739085908790600401620054f6565b600060405180830381600087803b1580156200268e57600080fd5b505af1158015620026a3573d6000803e3d6000fd5b50505050505050565b3380620026cd5760405162461bcd60e51b815260040162000d00906200576c565b6001600160a01b03811660009081526018602052604090205460ff1615620027095760405162461bcd60e51b815260040162000d009062005683565b600254604051635569f64b60e11b81526000916001600160a01b03169063aad3ec96906200273e903390879060040162005557565b602060405180830381600087803b1580156200275957600080fd5b505af11580156200276e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027949190620053ae565b905060008111620027b95760405162461bcd60e51b815260040162000d0090620057b2565b6000620027d060646200140a620014028662003d3a565b90506000620027f160646200140a600954866200478190919063ffffffff16565b905060008211620028165760405162461bcd60e51b815260040162000d00906200558f565b6000620028238562003d3a565b111562002d0557600081620028398486620058fd565b620028459190620058fd565b600754604051636203b43b60e11b81529192506001600160a01b03169063c4076876906200287a9088908590600401620054dd565b602060405180830381600087803b1580156200289557600080fd5b505af1158015620028aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620028d09190620051c4565b5060165460009061ffff600160401b8204811691620028f991600160201b9091041685620058db565b620029059190620058b8565b60155461ffff600160201b82048116916200292991620100009091041687620058db565b620029359190620058b8565b6200294191906200589d565b600754604051636203b43b60e11b81529192506001600160a01b03169063c407687690620029769030908590600401620054dd565b602060405180830381600087803b1580156200299157600080fd5b505af1158015620029a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620029cc9190620051c4565b50604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b03169183915060009062002a115762002a116200594b565b6001600160a01b039283166020918202929092010152600b5482519116908290600190811062002a455762002a456200594b565b6001600160a01b039283166020918202929092010152600654600c54604051633b158ab160e11b81529183169263762b15629262002a93928792600092889290911690429060040162005802565b600060405180830381600087803b15801562002aae57600080fd5b505af115801562002ac3573d6000803e3d6000fd5b505050506000600954111562002cfc5760165460009061ffff600160401b820481169162002afb91600160301b9091041687620058db565b62002b079190620058b8565b600754604051636203b43b60e11b81529192506001600160a01b03169063c40768769062002b3c9030908590600401620054dd565b602060405180830381600087803b15801562002b5757600080fd5b505af115801562002b6c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002b929190620051c4565b50600654600e54604051633b158ab160e11b81526001600160a01b039283169263762b15629262002bd29286926000928992911690429060040162005802565b600060405180830381600087803b15801562002bed57600080fd5b505af115801562002c02573d6000803e3d6000fd5b50506016546000925061ffff600160401b82048116925062002c2c916201000090041688620058db565b62002c389190620058b8565b905080600f600082825462002c4e91906200589d565b9091555050601054600f541062002cf957600754600f54604051636203b43b60e11b81526001600160a01b039092169163c40768769162002c9591309190600401620054dd565b602060405180830381600087803b15801562002cb057600080fd5b505af115801562002cc5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002ceb9190620051c4565b5062002cf9600f5462004855565b50505b50505062002300565b600754604051636203b43b60e11b81526001600160a01b039091169063c407687690620022a89087908790600401620054dd565b6000546001600160a01b0316331462002d665760405162461bcd60e51b815260040162000d009062005700565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331462002db55760405162461bcd60e51b815260040162000d009062005700565b6001600160a01b038116600081815260016020526040808220805460ff19169055517fef69f7d97228658c92417be1b16b19058315de71fecb435d07b7d23728b6bd319190a250565b60135481111562002e235760405162461bcd60e51b815260040162000d0090620056ba565b8082511462002e905760405162461bcd60e51b815260206004820152603260248201527f48454c5045523a20596f75206e65656420746f2070726f766964652065786163604482015271746c79206d61746368696e67206e616d657360701b606482015260840162000d00565b338062002ef05760405162461bcd60e51b815260206004820152602760248201527f48454c5045523a20206372656174696f6e2066726f6d20746865207a65726f206044820152666164647265737360c81b606482015260840162000d00565b6002546040516315d5220f60e31b81526001600160a01b038381166004830152600092169063aea9107890602401602060405180830381600087803b15801562002f3957600080fd5b505af115801562002f4e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002f749190620053ae565b62002f8890670de0b6b3a7640000620058db565b905062002f968382620058db565b6003546040516370a0823160e01b81526001600160a01b038581166004830152909116906370a082319060240160206040518083038186803b15801562002fdc57600080fd5b505afa15801562002ff1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620030179190620053ae565b1015620030385760405162461bcd60e51b815260040162000d0090620055fd565b6012546002546040516370a0823160e01b81526001600160a01b038581166004830152869216906370a082319060240160206040518083038186803b1580156200308157600080fd5b505afa15801562003096573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620030bc9190620053ae565b620030c891906200589d565b1115620030e95760405162461bcd60e51b815260040162000d009062005642565b6003546001600160a01b03166323b872dd3330620031088786620058db565b6040518463ffffffff1660e01b81526004016200312893929190620054b9565b602060405180830381600087803b1580156200314357600080fd5b505af115801562003158573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200317e9190620051c4565b5060005b838110156200325d576000858281518110620031a257620031a26200594b565b6020026020010151905060008151118015620031bf575060218151105b620031de5760405162461bcd60e51b815260040162000d009062005735565b6002546040516312b8603f60e01b81526001600160a01b03909116906312b8603f90620032129087908590600401620054f6565b600060405180830381600087803b1580156200322d57600080fd5b505af115801562003242573d6000803e3d6000fd5b50505050508080620032549062005917565b91505062003182565b506011546003546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b158015620032a557600080fd5b505afa158015620032ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032e09190620053ae565b111562003374576003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b1580156200332c57600080fd5b505afa15801562003341573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620033679190620053ae565b9050620023008162004a52565b50505050565b6013548111156200339f5760405162461bcd60e51b815260040162000d0090620056ba565b60008251118015620033b2575060218251105b620033d15760405162461bcd60e51b815260040162000d009062005735565b3380620033f25760405162461bcd60e51b815260040162000d0090620055b6565b6002546040516315d5220f60e31b81526001600160a01b038381166004830152600092169063aea9107890602401602060405180830381600087803b1580156200343b57600080fd5b505af115801562003450573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620034769190620053ae565b6200348a90670de0b6b3a7640000620058db565b9050620034988382620058db565b6003546040516370a0823160e01b81526001600160a01b038581166004830152909116906370a082319060240160206040518083038186803b158015620034de57600080fd5b505afa158015620034f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620035199190620053ae565b10156200353a5760405162461bcd60e51b815260040162000d0090620055fd565b6012546002546040516370a0823160e01b81526001600160a01b038581166004830152869216906370a082319060240160206040518083038186803b1580156200358357600080fd5b505afa15801562003598573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620035be9190620053ae565b620035ca91906200589d565b1115620035eb5760405162461bcd60e51b815260040162000d009062005642565b6003546001600160a01b03166323b872dd33306200360a8786620058db565b6040518463ffffffff1660e01b81526004016200362a93929190620054b9565b602060405180830381600087803b1580156200364557600080fd5b505af11580156200365a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620036809190620051c4565b5060005b838110156200325d576002546040516312b8603f60e01b81526001600160a01b03909116906312b8603f90620036c19086908990600401620054f6565b600060405180830381600087803b158015620036dc57600080fd5b505af1158015620036f1573d6000803e3d6000fd5b505050508080620037029062005917565b91505062003684565b6000546001600160a01b03163314620037385760405162461bcd60e51b815260040162000d009062005700565b601780546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b031633146200378d5760405162461bcd60e51b815260040162000d009062005700565b6007546001600160a01b031663c4076876620037b16000546001600160a01b031690565b6003546007546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a082319060240160206040518083038186803b158015620037f957600080fd5b505afa1580156200380e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620038349190620053ae565b6040518363ffffffff1660e01b815260040162003853929190620054dd565b602060405180830381600087803b1580156200386e57600080fd5b505af115801562003883573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620038a99190620051c4565b5080604051620038b99062004e56565b6001600160a01b039091168152602001604051809103906000f080158015620038e6573d6000803e3d6000fd5b50600780546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b03163314620039375760405162461bcd60e51b815260040162000d009062005700565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b3360009081526001602052604090205460ff16620039cf5760405162461bcd60e51b815260206004820152602360248201527f4d616e61676561626c653a2063616c6c6572206973206e6f7420746865206f776044820152623732b960e91b606482015260840162000d00565b6000805b8681101562003ab2576002546001600160a01b031663aad3ec96848a8a8581811062003a035762003a036200594b565b905060200201602081019062003a1a9190620053f7565b6040518363ffffffff1660e01b815260040162003a3992919062005557565b602060405180830381600087803b15801562003a5457600080fd5b505af115801562003a69573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003a8f9190620053ae565b62003a9b90836200589d565b91508062003aa98162005917565b915050620039d3565b506000811162003ad65760405162461bcd60e51b815260040162000d0090620057b2565b600062003ae48583620058fd565b600754604051636203b43b60e11b81529192506001600160a01b03169063c40768769062003b199087908590600401620054dd565b602060405180830381600087803b15801562003b3457600080fd5b505af115801562003b49573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003b6f9190620051c4565b50600754604051636203b43b60e11b81526001600160a01b039091169063c40768769062003ba49089908990600401620054dd565b602060405180830381600087803b15801562003bbf57600080fd5b505af115801562003bd4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b7e9190620051c4565b338062003c1b5760405162461bcd60e51b815260040162000d00906200576c565b6001600160a01b03811660009081526018602052604090205460ff161562003c575760405162461bcd60e51b815260040162000d009062005683565b6000805b8381101562001fa4576005546001600160a01b031663aad3ec963387878581811062003c8b5762003c8b6200594b565b905060200201602081019062003ca29190620053f7565b6040518363ffffffff1660e01b815260040162003cc192919062005557565b602060405180830381600087803b15801562003cdc57600080fd5b505af115801562003cf1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003d179190620053ae565b62003d2390836200589d565b91508062003d318162005917565b91505062003c5b565b6008546017546040516370a0823160e01b81526001600160a01b03848116600483015260009384939092610100909104909116906370a082319060240160206040518083038186803b15801562003d9057600080fd5b505afa15801562003da5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003dcb9190620053ae565b1062003dda5750600092915050565b6017546040516370a0823160e01b81526001600160a01b03858116600483015262003e6d92610100900416906370a082319060240160206040518083038186803b15801562003e2857600080fd5b505afa15801562003e3d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003e639190620053ae565b6008549062004da0565b9392505050565b6000546001600160a01b0316331462003ea15760405162461bcd60e51b815260040162000d009062005700565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331462003ef05760405162461bcd60e51b815260040162000d009062005700565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331462003f3f5760405162461bcd60e51b815260040162000d009062005700565b6001600160a01b03811662003fa65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000d00565b62000d998162004d50565b62003fbd848462003fc9565b62003374828262001e64565b338062003fea5760405162461bcd60e51b815260040162000d00906200576c565b6001600160a01b03811660009081526018602052604090205460ff1615620040265760405162461bcd60e51b815260040162000d009062005683565b6000805b8381101562004109576002546001600160a01b031663aad3ec96338787858181106200405a576200405a6200594b565b9050602002016020810190620040719190620053f7565b6040518363ffffffff1660e01b81526004016200409092919062005557565b602060405180830381600087803b158015620040ab57600080fd5b505af1158015620040c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620040e69190620053ae565b620040f290836200589d565b915080620041008162005917565b9150506200402a565b50600081116200412d5760405162461bcd60e51b815260040162000d0090620057b2565b60006200414460646200140a620014028662003d3a565b905060006200416560646200140a600954866200478190919063ffffffff16565b9050600082116200418a5760405162461bcd60e51b815260040162000d00906200558f565b6000620041978562003d3a565b11156200467957600081620041ad8486620058fd565b620041b99190620058fd565b600754604051636203b43b60e11b81529192506001600160a01b03169063c407687690620041ee9088908590600401620054dd565b602060405180830381600087803b1580156200420957600080fd5b505af11580156200421e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620042449190620051c4565b5060165460009061ffff600160401b82048116916200426d91600160201b9091041685620058db565b620042799190620058b8565b60155461ffff600160201b82048116916200429d91620100009091041687620058db565b620042a99190620058b8565b620042b591906200589d565b600754604051636203b43b60e11b81529192506001600160a01b03169063c407687690620042ea9030908590600401620054dd565b602060405180830381600087803b1580156200430557600080fd5b505af11580156200431a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620043409190620051c4565b50604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b0316918391506000906200438557620043856200594b565b6001600160a01b039283166020918202929092010152600b54825191169082906001908110620043b957620043b96200594b565b6001600160a01b039283166020918202929092010152600654600c54604051633b158ab160e11b81529183169263762b15629262004407928792600092889290911690429060040162005802565b600060405180830381600087803b1580156200442257600080fd5b505af115801562004437573d6000803e3d6000fd5b5050505060006009541115620046705760165460009061ffff600160401b82048116916200446f91600160301b9091041687620058db565b6200447b9190620058b8565b600754604051636203b43b60e11b81529192506001600160a01b03169063c407687690620044b09030908590600401620054dd565b602060405180830381600087803b158015620044cb57600080fd5b505af1158015620044e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620045069190620051c4565b50600654600e54604051633b158ab160e11b81526001600160a01b039283169263762b156292620045469286926000928992911690429060040162005802565b600060405180830381600087803b1580156200456157600080fd5b505af115801562004576573d6000803e3d6000fd5b50506016546000925061ffff600160401b820481169250620045a0916201000090041688620058db565b620045ac9190620058b8565b905080600f6000828254620045c291906200589d565b9091555050601054600f54106200466d57600754600f54604051636203b43b60e11b81526001600160a01b039092169163c4076876916200460991309190600401620054dd565b602060405180830381600087803b1580156200462457600080fd5b505af115801562004639573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200465f9190620051c4565b506200466d600f5462004855565b50505b505050620022fe565b600754604051636203b43b60e11b81526001600160a01b039091169063c407687690620046ad9087908790600401620054dd565b602060405180830381600087803b158015620046c857600080fd5b505af1158015620046dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620026a39190620051c4565b6000546001600160a01b03163314620047305760405162461bcd60e51b815260040162000d009062005700565b6014805461ffff838116620100000263ffffffff19909216908516171790556200475b818362005874565b6014805461ffff92909216600160201b0265ffff00000000199092169190911790555050565b60008262004792575060006200480b565b6000620047a08385620058db565b905082620047af8583620058b8565b14620048085760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840162000d00565b90505b92915050565b60006200480883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062004de4565b604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b0316918391506000906200489957620048996200594b565b6001600160a01b039283166020918202929092010152600b54825191169082906001908110620048cd57620048cd6200594b565b6001600160a01b0392831660209182029290920101526006541663762b1562620048f9600285620058b8565b60008430426040518663ffffffff1660e01b81526004016200492095949392919062005802565b600060405180830381600087803b1580156200493b57600080fd5b505af115801562004950573d6000803e3d6000fd5b50506006546003544793506001600160a01b03918216925063f91b3f72918491166200497e600288620058b8565b600c546040516001600160e01b031960e087901b168152620049b693929160009182916001600160a01b03169042906004016200551c565b6060604051808303818588803b158015620049d057600080fd5b505af1158015620049e5573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062004a0c9190620053c8565b505060408051838152602081018690527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a150506000600f5550565b601454600160201b900461ffff1662004a685750565b60145460009060029061ffff600160201b820481169162004a9291620100009091041685620058db565b62004a9e9190620058b8565b62004aaa9190620058b8565b60145490915060009061ffff600160201b820481169162004acd911685620058db565b62004ad99190620058b8565b9050801562004b725760035460075460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb9262004b1a929116908590600401620054dd565b602060405180830381600087803b15801562004b3557600080fd5b505af115801562004b4a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004b709190620051c4565b505b604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b03169183915060009062004bb65762004bb66200594b565b6001600160a01b039283166020918202929092010152600b5482519116908290600190811062004bea5762004bea6200594b565b6001600160a01b039283166020918202929092010152600654604051633b158ab160e11b815291169063762b15629062004c3290869060009086903090429060040162005802565b600060405180830381600087803b15801562004c4d57600080fd5b505af115801562004c62573d6000803e3d6000fd5b5047925050841590506200230057600654600354600c54604051637c8d9fb960e11b81526001600160a01b039384169363f91b3f7293869362004cb793918316928b926000928392169042906004016200551c565b6060604051808303818588803b15801562004cd157600080fd5b505af115801562004ce6573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062004d0d9190620053c8565b505060408051838152602081018790527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006200480883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062004e20565b6000818362004e085760405162461bcd60e51b815260040162000d0091906200557a565b50600062004e178486620058b8565b95945050505050565b6000818484111562004e475760405162461bcd60e51b815260040162000d0091906200557a565b50600062004e178486620058fd565b610499806200599d83390190565b60008083601f84011262004e7757600080fd5b50813567ffffffffffffffff81111562004e9057600080fd5b6020830191508360208260051b850101111562004eac57600080fd5b9250929050565b600082601f83011262004ec557600080fd5b813567ffffffffffffffff81111562004ee25762004ee262005961565b62004ef7601f8201601f191660200162005840565b81815284602083860101111562004f0d57600080fd5b816020850160208301376000918101602001919091529392505050565b803561ffff8116811462004f3d57600080fd5b919050565b60006020828403121562004f5557600080fd5b8135620048088162005977565b6000806040838503121562004f7657600080fd5b823562004f838162005977565b9150602083013562004f95816200598d565b809150509250929050565b6000806040838503121562004fb457600080fd5b823567ffffffffffffffff8082111562004fcd57600080fd5b818501915085601f83011262004fe257600080fd5b813560208282111562004ff95762004ff962005961565b8160051b6200500a82820162005840565b8381528281019086840183880185018c10156200502657600080fd5b60009350835b86811015620050685781358881111562005044578586fd5b620050548e88838d010162004eb3565b85525092850192908501906001016200502c565b50909b999093013599505050505050505050565b600080602083850312156200509057600080fd5b823567ffffffffffffffff811115620050a857600080fd5b620050b68582860162004e64565b90969095509350505050565b60008060008060008060a08789031215620050dc57600080fd5b863567ffffffffffffffff811115620050f457600080fd5b6200510289828a0162004e64565b9097509550506020870135620051188162005977565b9350604087013592506060870135620051318162005977565b91506080870135620051438162005977565b809150509295509295509295565b600080600080604085870312156200516857600080fd5b843567ffffffffffffffff808211156200518157600080fd5b6200518f8883890162004e64565b90965094506020870135915080821115620051a957600080fd5b50620051b88782880162004e64565b95989497509550505050565b600060208284031215620051d757600080fd5b815162004808816200598d565b600060208284031215620051f757600080fd5b813567ffffffffffffffff8111156200520f57600080fd5b6200521d8482850162004eb3565b949350505050565b6000806000806000608086880312156200523e57600080fd5b853567ffffffffffffffff808211156200525757600080fd5b6200526589838a0162004eb3565b965060208801359150808211156200527c57600080fd5b506200528b8882890162004e64565b909550935050604086013591506060860135620052a8816200598d565b809150509295509295909350565b60008060408385031215620052ca57600080fd5b823567ffffffffffffffff811115620052e257600080fd5b620052f08582860162004eb3565b95602094909401359450505050565b600080604083850312156200531357600080fd5b6200531e8362004f2a565b91506200532e6020840162004f2a565b90509250929050565b600080600080608085870312156200534e57600080fd5b620053598562004f2a565b9350620053696020860162004f2a565b9250620053796040860162004f2a565b9150620053896060860162004f2a565b905092959194509250565b600060208284031215620053a757600080fd5b5035919050565b600060208284031215620053c157600080fd5b5051919050565b600080600060608486031215620053de57600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156200540a57600080fd5b813567ffffffffffffffff811681146200480857600080fd5b600081518084526020808501945080840160005b838110156200545e5781516001600160a01b03168752958201959082019060010162005437565b509495945050505050565b6000815180845260005b81811015620054915760208185018101518683018201520162005473565b81811115620054a4576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03831681526040602082018190526000906200521d9083018462005469565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b6001600160a01b0392909216825267ffffffffffffffff16602082015260400190565b60208152600062004808602083018462005469565b6020808252600d908201526c2432b63832b91d1022b93937b960991b604082015260600190565b60208082526027908201527f48454c5045523a20204372656174696f6e2066726f6d20746865207a65726f206040820152666164647265737360c81b606082015260800190565b60208082526025908201527f48454c5045523a2042616c616e636520746f6f206c6f7720666f7220637265616040820152643a34b7b71760d91b606082015260800190565b60208082526021908201527f48454c5045523a2045786365656473206d61782077616c6c657420616d6f756e6040820152601d60fa1b606082015260800190565b6020808252601b908201527f48454c5045523a20596f752061726520626c61636b6c69737465640000000000604082015260600190565b60208082526026908201527f48454c5045523a2045786365656473206d6178207472616e73616374696f6e20604082015265185b5bdd5b9d60d21b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601c908201527f48454c5045523a206e616d652073697a6520697320696e76616c696400000000604082015260600190565b60208082526026908201527f48454c5045523a206372656174696f6e2066726f6d20746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526030908201527f48454c5045523a20596f7520646f6e2774206861766520656e6f75676820726560408201526f1dd85c99081d1bc818d85cda081bdd5d60821b606082015260800190565b85815284602082015260a0604082015260006200582360a083018662005423565b6001600160a01b0394909416606083015250608001529392505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156200586c576200586c62005961565b604052919050565b600061ffff80831681851680830382111562005894576200589462005935565b01949350505050565b60008219821115620058b357620058b362005935565b500190565b600082620058d657634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615620058f857620058f862005935565b500290565b60008282101562005912576200591262005935565b500390565b60006000198214156200592e576200592e62005935565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811462000d9957600080fd5b801515811462000d9957600080fdfe608060405234801561001057600080fd5b5060405161049938038061049983398101604081905261002f916100ad565b6100383361005d565b600180546001600160a01b0319166001600160a01b03929092169190911790556100dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100bf57600080fd5b81516001600160a01b03811681146100d657600080fd5b9392505050565b6103ad806100ec6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80636251be711461005c578063715018a61461008c5780638da5cb5b14610096578063c4076876146100a7578063f2fde38b146100ca575b600080fd5b60015461006f906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100946100dd565b005b6000546001600160a01b031661006f565b6100ba6100b53660046102f6565b61011c565b6040519015158152602001610083565b6100946100d83660046102db565b6101d4565b6000546001600160a01b031633146101105760405162461bcd60e51b815260040161010790610342565b60405180910390fd5b61011a600061026f565b565b600080546001600160a01b031633146101475760405162461bcd60e51b815260040161010790610342565b60015460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529091169063a9059cbb90604401602060405180830381600087803b15801561019557600080fd5b505af11580156101a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101cd9190610320565b9392505050565b6000546001600160a01b031633146101fe5760405162461bcd60e51b815260040161010790610342565b6001600160a01b0381166102635760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610107565b61026c8161026f565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146102d657600080fd5b919050565b6000602082840312156102ed57600080fd5b6101cd826102bf565b6000806040838503121561030957600080fd5b610312836102bf565b946020939093013593505050565b60006020828403121561033257600080fd5b815180151581146101cd57600080fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea26469706673582212201db2baa9210ebc0f89421de961c5be52e4cc6323316145e0b4038af52707d61e64736f6c63430008070033a2646970667358221220d7a6b2877b2a94ef5ba8babb0c761aa8ff31b225669a72860d2744531303394f64736f6c63430008070033608060405234801561001057600080fd5b5060405161049938038061049983398101604081905261002f916100ad565b6100383361005d565b600180546001600160a01b0319166001600160a01b03929092169190911790556100dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100bf57600080fd5b81516001600160a01b03811681146100d657600080fd5b9392505050565b6103ad806100ec6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80636251be711461005c578063715018a61461008c5780638da5cb5b14610096578063c4076876146100a7578063f2fde38b146100ca575b600080fd5b60015461006f906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100946100dd565b005b6000546001600160a01b031661006f565b6100ba6100b53660046102f6565b61011c565b6040519015158152602001610083565b6100946100d83660046102db565b6101d4565b6000546001600160a01b031633146101105760405162461bcd60e51b815260040161010790610342565b60405180910390fd5b61011a600061026f565b565b600080546001600160a01b031633146101475760405162461bcd60e51b815260040161010790610342565b60015460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529091169063a9059cbb90604401602060405180830381600087803b15801561019557600080fd5b505af11580156101a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101cd9190610320565b9392505050565b6000546001600160a01b031633146101fe5760405162461bcd60e51b815260040161010790610342565b6001600160a01b0381166102635760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610107565b61026c8161026f565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146102d657600080fd5b919050565b6000602082840312156102ed57600080fd5b6101cd826102bf565b6000806040838503121561030957600080fd5b610312836102bf565b946020939093013593505050565b60006020828403121561033257600080fd5b815180151581146101cd57600080fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea26469706673582212201db2baa9210ebc0f89421de961c5be52e4cc6323316145e0b4038af52707d61e64736f6c63430008070033000000000000000000000000c4a25f823582d9ccf5cf8c8bf5338073e7a51676000000000000000000000000490bf3abcab1fb5c88533d850f2a8d6d38298465000000000000000000000000e7e4786c1d51d299d7720ead6bd3b3768a9fb0e1000000000000000000000000000000000000000000000000000000000000dead0000000000000000000000009ada04af0b1c989a188f0063358f2d0530327386
Deployed Bytecode
0x608060405260043610620003cf5760003560e01c806388f2193d11620001f7578063d00f9db11162000117578063f2fde38b11620000ad578063f5cc34e51162000078578063f5cc34e51462000c14578063f8b45b051462000c39578063f9f92be41462000c51578063fdff9b4d1462000c9657600080fd5b8063f2fde38b1462000b8d578063f341c5131462000bb2578063f58fad851462000bd7578063f5c709731462000bef57600080fd5b8063df890dea11620000ee578063df890dea1462000af9578063e7694bc61462000b1e578063eafb5a3c1462000b43578063f0f442601462000b6857600080fd5b8063d00f9db11462000a8a578063d01dd6d21462000aaf578063d96f9e201462000ad457600080fd5b8063aacebbe3116200018d578063b96d611c1162000164578063b96d611c1462000a06578063bab3eadc1462000a2b578063ce613ea31462000a50578063cf0cef011462000a7257600080fd5b8063aacebbe31462000997578063ac18de4314620009bc578063b2ecfc1814620009e157600080fd5b80638e69018611620001ce5780638e69018614620009015780638f0ba4ca14620009265780639c69fb53146200094b578063aab8ab0c146200097257600080fd5b806388f2193d14620008a45780638a6458cc14620008c95780638da5cb5b14620008e157600080fd5b806342ce736c11620002ef5780636b5b6ebb11620002855780637c9bf13d11620002505780637c9bf13d14620007c65780637eabbf1f14620007eb57806381582dda14620008105780638270c049146200088c57600080fd5b80636b5b6ebb146200074f5780636ef25c3a1462000774578063715018a6146200078c57806375f0a87414620007a457600080fd5b80635e58bea511620002c65780635e58bea514620006b45780636251be7114620006e6578063644afb7c14620007085780636aa4b0a6146200072d57600080fd5b806342ce736c1462000648578063481c6a75146200066d57806358aba00f146200068f57600080fd5b80631cb8eae111620003655780632d06177a116200033c5780632d06177a14620005b75780632d2c556514620005dc5780632f6d4c8214620005fe57806340b2e479146200062357600080fd5b80631cb8eae114620005225780632205ac25146200057a5780632369fde5146200059f57600080fd5b8063122fea3b11620003a6578063122fea3b146200049f578063168fea0714620004c157806316f0115b14620004db5780631c499ab014620004fd57600080fd5b806303fd2a4514620004175780630445b66714620004565780630758d924146200047d57600080fd5b3662000412577f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874333460405162000408929190620054dd565b60405180910390a1005b600080fd5b3480156200042457600080fd5b50600a5462000439906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200046357600080fd5b506200046e60115481565b6040519081526020016200044d565b3480156200048a57600080fd5b5060065462000439906001600160a01b031681565b348015620004ac57600080fd5b50600d5462000439906001600160a01b031681565b348015620004ce57600080fd5b50620004d962000cd3565b005b348015620004e857600080fd5b5060075462000439906001600160a01b031681565b3480156200050a57600080fd5b50620004d96200051c36600462005394565b62000d9c565b3480156200052f57600080fd5b50601454620005549061ffff80821691620100008104821691600160201b9091041683565b6040805161ffff948516815292841660208401529216918101919091526060016200044d565b3480156200058757600080fd5b50620004d96200059936600462005394565b62000dce565b348015620005ac57600080fd5b50620004d962000e00565b348015620005c457600080fd5b50620004d9620005d636600462004f42565b62000e69565b348015620005e957600080fd5b50600e5462000439906001600160a01b031681565b3480156200060b57600080fd5b50620004d96200061d36600462005225565b62000f4f565b3480156200063057600080fd5b50620004d96200064236600462005394565b62001b8a565b3480156200065557600080fd5b50620004d96200066736600462005394565b62001bbc565b3480156200067a57600080fd5b5060025462000439906001600160a01b031681565b3480156200069c57600080fd5b50620004d9620006ae36600462004f42565b62001bee565b348015620006c157600080fd5b50601554620005549061ffff80821691620100008104821691600160201b9091041683565b348015620006f357600080fd5b5060035462000439906001600160a01b031681565b3480156200071557600080fd5b50620004d962000727366004620052ff565b62001c3d565b3480156200073a57600080fd5b5060045462000439906001600160a01b031681565b3480156200075c57600080fd5b50620004d96200076e36600462004f42565b62001cbb565b3480156200078157600080fd5b506200046e60085481565b3480156200079957600080fd5b50620004d962001d0a565b348015620007b157600080fd5b50600c5462000439906001600160a01b031681565b348015620007d357600080fd5b50620004d9620007e536600462005337565b62001d45565b348015620007f857600080fd5b50620004d96200080a36600462004f42565b62001e15565b3480156200081d57600080fd5b50601654620008569061ffff80821691620100008104821691600160201b8204811691600160301b8104821691600160401b9091041685565b6040805161ffff968716815294861660208601529285169284019290925283166060830152909116608082015260a0016200044d565b3480156200089957600080fd5b506200046e60135481565b348015620008b157600080fd5b50620004d9620008c33660046200507c565b62001e64565b348015620008d657600080fd5b506200046e600f5481565b348015620008ee57600080fd5b506000546001600160a01b031662000439565b3480156200090e57600080fd5b50620004d96200092036600462005394565b62002307565b3480156200093357600080fd5b50620004d962000945366004620051e4565b62002339565b3480156200095857600080fd5b50601754620004399061010090046001600160a01b031681565b3480156200097f57600080fd5b50620004d962000991366004620053f7565b620026ac565b348015620009a457600080fd5b50620004d9620009b636600462004f42565b62002d39565b348015620009c957600080fd5b50620004d9620009db36600462004f42565b62002d88565b348015620009ee57600080fd5b50620004d962000a0036600462004fa0565b62002dfe565b34801562000a1357600080fd5b50620004d962000a25366004620052b6565b6200337a565b34801562000a3857600080fd5b50620004d962000a4a36600462004f42565b6200370b565b34801562000a5d57600080fd5b5060055462000439906001600160a01b031681565b34801562000a7f57600080fd5b506200046e60105481565b34801562000a9757600080fd5b50620004d962000aa936600462004f42565b62003760565b34801562000abc57600080fd5b50620004d962000ace36600462004f62565b6200390a565b34801562000ae157600080fd5b50620004d962000af3366004620050c2565b62003962565b34801562000b0657600080fd5b50620004d962000b183660046200507c565b62003bfa565b34801562000b2b57600080fd5b506200046e62000b3d36600462004f42565b62003d3a565b34801562000b5057600080fd5b50620004d962000b6236600462004f42565b62003e74565b34801562000b7557600080fd5b50620004d962000b8736600462004f42565b62003ec3565b34801562000b9a57600080fd5b50620004d962000bac36600462004f42565b62003f12565b34801562000bbf57600080fd5b50620004d962000bd136600462005151565b62003fb1565b34801562000be457600080fd5b506200046e60095481565b34801562000bfc57600080fd5b50620004d962000c0e3660046200507c565b62003fc9565b34801562000c2157600080fd5b50620004d962000c33366004620052ff565b62004703565b34801562000c4657600080fd5b506200046e60125481565b34801562000c5e57600080fd5b5062000c8562000c7036600462004f42565b60186020526000908152604090205460ff1681565b60405190151581526020016200044d565b34801562000ca357600080fd5b5062000c8562000cb536600462004f42565b6001600160a01b031660009081526001602052604090205460ff1690565b6000546001600160a01b0316331462000d095760405162461bcd60e51b815260040162000d009062005700565b60405180910390fd5b600354600d5460405163095ea7b360e01b81526001600160a01b039283169263095ea7b39262000d439291169060001990600401620054dd565b602060405180830381600087803b15801562000d5e57600080fd5b505af115801562000d73573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d999190620051c4565b50565b6000546001600160a01b0316331462000dc95760405162461bcd60e51b815260040162000d009062005700565b601255565b6000546001600160a01b0316331462000dfb5760405162461bcd60e51b815260040162000d009062005700565b600955565b6000546001600160a01b0316331462000e2d5760405162461bcd60e51b815260040162000d009062005700565b60035460065460405163095ea7b360e01b81526001600160a01b039283169263095ea7b39262000d43929116906301312d1290600401620054dd565b6000546001600160a01b0316331462000e965760405162461bcd60e51b815260040162000d009062005700565b6001600160a01b03811662000f005760405162461bcd60e51b815260206004820152602960248201527f4d616e61676561626c653a206e6577206f776e657220697320746865207a65726044820152686f206164647265737360b81b606482015260840162000d00565b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f3b4a40cccf2058c593542587329dd385be4f0b588db5471fbd9598e56dd7093a9190a250565b60135482111562000f745760405162461bcd60e51b815260040162000d0090620056ba565b338062000f955760405162461bcd60e51b815260040162000d00906200576c565b6001600160a01b03811660009081526018602052604090205460ff161562000fd15760405162461bcd60e51b815260040162000d009062005683565b6000805b85811015620010b4576002546001600160a01b031663aad3ec96338989858181106200100557620010056200594b565b90506020020160208101906200101c9190620053f7565b6040518363ffffffff1660e01b81526004016200103b92919062005557565b602060405180830381600087803b1580156200105657600080fd5b505af11580156200106b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010919190620053ae565b6200109d90836200589d565b915080620010ab8162005917565b91505062000fd5565b506002546040516315d5220f60e31b81526001600160a01b038481166004830152600092169063aea9107890602401602060405180830381600087803b158015620010fe57600080fd5b505af115801562001113573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011399190620053ae565b6200114d90670de0b6b3a7640000620058db565b9050836200118957620011618582620058db565b821015620011835760405162461bcd60e51b815260040162000d0090620057b2565b6200124d565b8380156200122e57506200119e8582620058db565b6003546040516370a0823160e01b81526001600160a01b038681166004830152909116906370a082319060240160206040518083038186803b158015620011e457600080fd5b505afa158015620011f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200121f9190620053ae565b6200122b90846200589d565b10155b6200124d5760405162461bcd60e51b815260040162000d0090620057b2565b6012546002546040516370a0823160e01b81526001600160a01b038681166004830152889216906370a082319060240160206040518083038186803b1580156200129657600080fd5b505afa158015620012ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620012d19190620053ae565b620012dd91906200589d565b1115620012fe5760405162461bcd60e51b815260040162000d009062005642565b60005b85811015620013ba57600089511180156200131d575060218951105b6200133c5760405162461bcd60e51b815260040162000d009062005735565b6002546040516312b8603f60e01b81526001600160a01b03909116906312b8603f90620013709087908d90600401620054f6565b600060405180830381600087803b1580156200138b57600080fd5b505af1158015620013a0573d6000803e3d6000fd5b505050508080620013b19062005917565b91505062001301565b50620013c78582620058db565b82111562001912576000620013dd8683620058db565b620013e99084620058fd565b905060006200141160646200140a620014028862003d3a565b859062004781565b9062004811565b905060006200143260646200140a600954866200478190919063ffffffff16565b9050600081620014438486620058fd565b6200144f9190620058fd565b600754604051636203b43b60e11b81529192506001600160a01b03169063c40768769062001484908a908590600401620054dd565b602060405180830381600087803b1580156200149f57600080fd5b505af1158015620014b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620014da9190620051c4565b5060165460009061ffff600160401b82048116916200150391600160201b9091041685620058db565b6200150f9190620058b8565b60155461ffff600160201b82048116916200153391620100009091041687620058db565b6200153f9190620058b8565b6200154b91906200589d565b600754604051636203b43b60e11b81529192506001600160a01b03169063c407687690620015809030908590600401620054dd565b602060405180830381600087803b1580156200159b57600080fd5b505af1158015620015b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015d69190620051c4565b50604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b0316918391506000906200161b576200161b6200594b565b6001600160a01b039283166020918202929092010152600b548251911690829060019081106200164f576200164f6200594b565b6001600160a01b039283166020918202929092010152600654600c54604051633b158ab160e11b81529183169263762b1562926200169d928792600092889290911690429060040162005802565b600060405180830381600087803b158015620016b857600080fd5b505af1158015620016cd573d6000803e3d6000fd5b5050505060006009541115620019065760165460009061ffff600160401b82048116916200170591600160301b9091041687620058db565b620017119190620058b8565b600754604051636203b43b60e11b81529192506001600160a01b03169063c407687690620017469030908590600401620054dd565b602060405180830381600087803b1580156200176157600080fd5b505af115801562001776573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200179c9190620051c4565b50600654600e54604051633b158ab160e11b81526001600160a01b039283169263762b156292620017dc9286926000928992911690429060040162005802565b600060405180830381600087803b158015620017f757600080fd5b505af11580156200180c573d6000803e3d6000fd5b50506016546000925061ffff600160401b82048116925062001836916201000090041688620058db565b620018429190620058b8565b905080600f60008282546200185891906200589d565b9091555050601054600f54106200190357600754600f54604051636203b43b60e11b81526001600160a01b039092169163c4076876916200189f91309190600401620054dd565b602060405180830381600087803b158015620018ba57600080fd5b505af1158015620018cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018f59190620051c4565b5062001903600f5462004855565b50505b50505050505062001b80565b838015620019b75750620019278582620058db565b6003546040516370a0823160e01b81526001600160a01b038681166004830152909116906370a082319060240160206040518083038186803b1580156200196d57600080fd5b505afa15801562001982573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019a89190620053ae565b620019b490846200589d565b10155b1562001b8057600082620019cc8784620058db565b620019d89190620058fd565b6003546040516323b872dd60e01b81529192506001600160a01b0316906323b872dd9062001a0f90339030908690600401620054b9565b602060405180830381600087803b15801562001a2a57600080fd5b505af115801562001a3f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a659190620051c4565b506011546003546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b15801562001aad57600080fd5b505afa15801562001ac2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ae89190620053ae565b111562001b7e576003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801562001b3457600080fd5b505afa15801562001b49573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b6f9190620053ae565b905062001b7c8162004a52565b505b505b5050505050505050565b6000546001600160a01b0316331462001bb75760405162461bcd60e51b815260040162000d009062005700565b601355565b6000546001600160a01b0316331462001be95760405162461bcd60e51b815260040162000d009062005700565b601055565b6000546001600160a01b0316331462001c1b5760405162461bcd60e51b815260040162000d009062005700565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331462001c6a5760405162461bcd60e51b815260040162000d009062005700565b6015805461ffff838116620100000263ffffffff199092169085161717905562001c95818362005874565b6015805461ffff92909216600160201b0265ffff00000000199092169190911790555050565b6000546001600160a01b0316331462001ce85760405162461bcd60e51b815260040162000d009062005700565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331462001d375760405162461bcd60e51b815260040162000d009062005700565b62001d43600062004d50565b565b6000546001600160a01b0316331462001d725760405162461bcd60e51b815260040162000d009062005700565b6016805461ffff86811665ffff0000ffff1990921691909117600160201b868316021767ffff0000ffff00001916620100008583160267ffff000000000000191617600160301b91841691909102179055808262001dd1858762005874565b62001ddd919062005874565b62001de9919062005874565b6016805461ffff92909216600160401b0269ffff00000000000000001990921691909117905550505050565b6000546001600160a01b0316331462001e425760405162461bcd60e51b815260040162000d009062005700565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b338062001e855760405162461bcd60e51b815260040162000d00906200576c565b6001600160a01b03811660009081526018602052604090205460ff161562001ec15760405162461bcd60e51b815260040162000d009062005683565b6000805b8381101562001fa4576004546001600160a01b031663aad3ec963387878581811062001ef55762001ef56200594b565b905060200201602081019062001f0c9190620053f7565b6040518363ffffffff1660e01b815260040162001f2b92919062005557565b602060405180830381600087803b15801562001f4657600080fd5b505af115801562001f5b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f819190620053ae565b62001f8d90836200589d565b91508062001f9b8162005917565b91505062001ec5565b506000811162001fc85760405162461bcd60e51b815260040162000d0090620057b2565b600062001fdf60646200140a620014028662003d3a565b905060008111620020045760405162461bcd60e51b815260040162000d00906200558f565b6000620020118462003d3a565b111562002274576000620020268284620058fd565b600754604051636203b43b60e11b81529192506001600160a01b03169063c4076876906200205b9087908590600401620054dd565b602060405180830381600087803b1580156200207657600080fd5b505af11580156200208b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620020b19190620051c4565b5060155460009061ffff600160201b8204811691620020d991620100009091041685620058db565b620020e59190620058b8565b600754604051636203b43b60e11b81529192506001600160a01b03169063c4076876906200211a9030908590600401620054dd565b602060405180830381600087803b1580156200213557600080fd5b505af11580156200214a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620021709190620051c4565b50604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b031691839150600090620021b557620021b56200594b565b6001600160a01b039283166020918202929092010152600b54825191169082906001908110620021e957620021e96200594b565b6001600160a01b039283166020918202929092010152600654600c54604051633b158ab160e11b81529183169263762b15629262002237928792600092889290911690429060040162005802565b600060405180830381600087803b1580156200225257600080fd5b505af115801562002267573d6000803e3d6000fd5b5050505050505062002300565b600754604051636203b43b60e11b81526001600160a01b039091169063c407687690620022a89086908690600401620054dd565b602060405180830381600087803b158015620022c357600080fd5b505af1158015620022d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620022fe9190620051c4565b505b5050505050565b6000546001600160a01b03163314620023345760405162461bcd60e51b815260040162000d009062005700565b600855565b600081511180156200234c575060218151105b6200236b5760405162461bcd60e51b815260040162000d009062005735565b33806200238c5760405162461bcd60e51b815260040162000d0090620055b6565b6002546040516315d5220f60e31b81526001600160a01b038381166004830152600092169063aea9107890602401602060405180830381600087803b158015620023d557600080fd5b505af1158015620023ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024109190620053ae565b6200242490670de0b6b3a7640000620058db565b905060008111620024605760405162461bcd60e51b815260206004820152600560248201526432b93937b960d91b604482015260640162000d00565b6003546040516370a0823160e01b81526001600160a01b038481166004830152839216906370a082319060240160206040518083038186803b158015620024a657600080fd5b505afa158015620024bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024e19190620053ae565b1015620025025760405162461bcd60e51b815260040162000d0090620055fd565b6012546002546040516370a0823160e01b81526001600160a01b038581166004830152909116906370a082319060240160206040518083038186803b1580156200254b57600080fd5b505afa15801562002560573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620025869190620053ae565b620025939060016200589d565b1115620025b45760405162461bcd60e51b815260040162000d009062005642565b6003546001600160a01b03166323b872dd3330846040518463ffffffff1660e01b8152600401620025e893929190620054b9565b602060405180830381600087803b1580156200260357600080fd5b505af115801562002618573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200263e9190620051c4565b506002546040516312b8603f60e01b81526001600160a01b03909116906312b8603f90620026739085908790600401620054f6565b600060405180830381600087803b1580156200268e57600080fd5b505af1158015620026a3573d6000803e3d6000fd5b50505050505050565b3380620026cd5760405162461bcd60e51b815260040162000d00906200576c565b6001600160a01b03811660009081526018602052604090205460ff1615620027095760405162461bcd60e51b815260040162000d009062005683565b600254604051635569f64b60e11b81526000916001600160a01b03169063aad3ec96906200273e903390879060040162005557565b602060405180830381600087803b1580156200275957600080fd5b505af11580156200276e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027949190620053ae565b905060008111620027b95760405162461bcd60e51b815260040162000d0090620057b2565b6000620027d060646200140a620014028662003d3a565b90506000620027f160646200140a600954866200478190919063ffffffff16565b905060008211620028165760405162461bcd60e51b815260040162000d00906200558f565b6000620028238562003d3a565b111562002d0557600081620028398486620058fd565b620028459190620058fd565b600754604051636203b43b60e11b81529192506001600160a01b03169063c4076876906200287a9088908590600401620054dd565b602060405180830381600087803b1580156200289557600080fd5b505af1158015620028aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620028d09190620051c4565b5060165460009061ffff600160401b8204811691620028f991600160201b9091041685620058db565b620029059190620058b8565b60155461ffff600160201b82048116916200292991620100009091041687620058db565b620029359190620058b8565b6200294191906200589d565b600754604051636203b43b60e11b81529192506001600160a01b03169063c407687690620029769030908590600401620054dd565b602060405180830381600087803b1580156200299157600080fd5b505af1158015620029a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620029cc9190620051c4565b50604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b03169183915060009062002a115762002a116200594b565b6001600160a01b039283166020918202929092010152600b5482519116908290600190811062002a455762002a456200594b565b6001600160a01b039283166020918202929092010152600654600c54604051633b158ab160e11b81529183169263762b15629262002a93928792600092889290911690429060040162005802565b600060405180830381600087803b15801562002aae57600080fd5b505af115801562002ac3573d6000803e3d6000fd5b505050506000600954111562002cfc5760165460009061ffff600160401b820481169162002afb91600160301b9091041687620058db565b62002b079190620058b8565b600754604051636203b43b60e11b81529192506001600160a01b03169063c40768769062002b3c9030908590600401620054dd565b602060405180830381600087803b15801562002b5757600080fd5b505af115801562002b6c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002b929190620051c4565b50600654600e54604051633b158ab160e11b81526001600160a01b039283169263762b15629262002bd29286926000928992911690429060040162005802565b600060405180830381600087803b15801562002bed57600080fd5b505af115801562002c02573d6000803e3d6000fd5b50506016546000925061ffff600160401b82048116925062002c2c916201000090041688620058db565b62002c389190620058b8565b905080600f600082825462002c4e91906200589d565b9091555050601054600f541062002cf957600754600f54604051636203b43b60e11b81526001600160a01b039092169163c40768769162002c9591309190600401620054dd565b602060405180830381600087803b15801562002cb057600080fd5b505af115801562002cc5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002ceb9190620051c4565b5062002cf9600f5462004855565b50505b50505062002300565b600754604051636203b43b60e11b81526001600160a01b039091169063c407687690620022a89087908790600401620054dd565b6000546001600160a01b0316331462002d665760405162461bcd60e51b815260040162000d009062005700565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331462002db55760405162461bcd60e51b815260040162000d009062005700565b6001600160a01b038116600081815260016020526040808220805460ff19169055517fef69f7d97228658c92417be1b16b19058315de71fecb435d07b7d23728b6bd319190a250565b60135481111562002e235760405162461bcd60e51b815260040162000d0090620056ba565b8082511462002e905760405162461bcd60e51b815260206004820152603260248201527f48454c5045523a20596f75206e65656420746f2070726f766964652065786163604482015271746c79206d61746368696e67206e616d657360701b606482015260840162000d00565b338062002ef05760405162461bcd60e51b815260206004820152602760248201527f48454c5045523a20206372656174696f6e2066726f6d20746865207a65726f206044820152666164647265737360c81b606482015260840162000d00565b6002546040516315d5220f60e31b81526001600160a01b038381166004830152600092169063aea9107890602401602060405180830381600087803b15801562002f3957600080fd5b505af115801562002f4e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002f749190620053ae565b62002f8890670de0b6b3a7640000620058db565b905062002f968382620058db565b6003546040516370a0823160e01b81526001600160a01b038581166004830152909116906370a082319060240160206040518083038186803b15801562002fdc57600080fd5b505afa15801562002ff1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620030179190620053ae565b1015620030385760405162461bcd60e51b815260040162000d0090620055fd565b6012546002546040516370a0823160e01b81526001600160a01b038581166004830152869216906370a082319060240160206040518083038186803b1580156200308157600080fd5b505afa15801562003096573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620030bc9190620053ae565b620030c891906200589d565b1115620030e95760405162461bcd60e51b815260040162000d009062005642565b6003546001600160a01b03166323b872dd3330620031088786620058db565b6040518463ffffffff1660e01b81526004016200312893929190620054b9565b602060405180830381600087803b1580156200314357600080fd5b505af115801562003158573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200317e9190620051c4565b5060005b838110156200325d576000858281518110620031a257620031a26200594b565b6020026020010151905060008151118015620031bf575060218151105b620031de5760405162461bcd60e51b815260040162000d009062005735565b6002546040516312b8603f60e01b81526001600160a01b03909116906312b8603f90620032129087908590600401620054f6565b600060405180830381600087803b1580156200322d57600080fd5b505af115801562003242573d6000803e3d6000fd5b50505050508080620032549062005917565b91505062003182565b506011546003546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b158015620032a557600080fd5b505afa158015620032ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032e09190620053ae565b111562003374576003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b1580156200332c57600080fd5b505afa15801562003341573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620033679190620053ae565b9050620023008162004a52565b50505050565b6013548111156200339f5760405162461bcd60e51b815260040162000d0090620056ba565b60008251118015620033b2575060218251105b620033d15760405162461bcd60e51b815260040162000d009062005735565b3380620033f25760405162461bcd60e51b815260040162000d0090620055b6565b6002546040516315d5220f60e31b81526001600160a01b038381166004830152600092169063aea9107890602401602060405180830381600087803b1580156200343b57600080fd5b505af115801562003450573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620034769190620053ae565b6200348a90670de0b6b3a7640000620058db565b9050620034988382620058db565b6003546040516370a0823160e01b81526001600160a01b038581166004830152909116906370a082319060240160206040518083038186803b158015620034de57600080fd5b505afa158015620034f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620035199190620053ae565b10156200353a5760405162461bcd60e51b815260040162000d0090620055fd565b6012546002546040516370a0823160e01b81526001600160a01b038581166004830152869216906370a082319060240160206040518083038186803b1580156200358357600080fd5b505afa15801562003598573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620035be9190620053ae565b620035ca91906200589d565b1115620035eb5760405162461bcd60e51b815260040162000d009062005642565b6003546001600160a01b03166323b872dd33306200360a8786620058db565b6040518463ffffffff1660e01b81526004016200362a93929190620054b9565b602060405180830381600087803b1580156200364557600080fd5b505af11580156200365a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620036809190620051c4565b5060005b838110156200325d576002546040516312b8603f60e01b81526001600160a01b03909116906312b8603f90620036c19086908990600401620054f6565b600060405180830381600087803b158015620036dc57600080fd5b505af1158015620036f1573d6000803e3d6000fd5b505050508080620037029062005917565b91505062003684565b6000546001600160a01b03163314620037385760405162461bcd60e51b815260040162000d009062005700565b601780546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b031633146200378d5760405162461bcd60e51b815260040162000d009062005700565b6007546001600160a01b031663c4076876620037b16000546001600160a01b031690565b6003546007546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a082319060240160206040518083038186803b158015620037f957600080fd5b505afa1580156200380e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620038349190620053ae565b6040518363ffffffff1660e01b815260040162003853929190620054dd565b602060405180830381600087803b1580156200386e57600080fd5b505af115801562003883573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620038a99190620051c4565b5080604051620038b99062004e56565b6001600160a01b039091168152602001604051809103906000f080158015620038e6573d6000803e3d6000fd5b50600780546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b03163314620039375760405162461bcd60e51b815260040162000d009062005700565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b3360009081526001602052604090205460ff16620039cf5760405162461bcd60e51b815260206004820152602360248201527f4d616e61676561626c653a2063616c6c6572206973206e6f7420746865206f776044820152623732b960e91b606482015260840162000d00565b6000805b8681101562003ab2576002546001600160a01b031663aad3ec96848a8a8581811062003a035762003a036200594b565b905060200201602081019062003a1a9190620053f7565b6040518363ffffffff1660e01b815260040162003a3992919062005557565b602060405180830381600087803b15801562003a5457600080fd5b505af115801562003a69573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003a8f9190620053ae565b62003a9b90836200589d565b91508062003aa98162005917565b915050620039d3565b506000811162003ad65760405162461bcd60e51b815260040162000d0090620057b2565b600062003ae48583620058fd565b600754604051636203b43b60e11b81529192506001600160a01b03169063c40768769062003b199087908590600401620054dd565b602060405180830381600087803b15801562003b3457600080fd5b505af115801562003b49573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003b6f9190620051c4565b50600754604051636203b43b60e11b81526001600160a01b039091169063c40768769062003ba49089908990600401620054dd565b602060405180830381600087803b15801562003bbf57600080fd5b505af115801562003bd4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b7e9190620051c4565b338062003c1b5760405162461bcd60e51b815260040162000d00906200576c565b6001600160a01b03811660009081526018602052604090205460ff161562003c575760405162461bcd60e51b815260040162000d009062005683565b6000805b8381101562001fa4576005546001600160a01b031663aad3ec963387878581811062003c8b5762003c8b6200594b565b905060200201602081019062003ca29190620053f7565b6040518363ffffffff1660e01b815260040162003cc192919062005557565b602060405180830381600087803b15801562003cdc57600080fd5b505af115801562003cf1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003d179190620053ae565b62003d2390836200589d565b91508062003d318162005917565b91505062003c5b565b6008546017546040516370a0823160e01b81526001600160a01b03848116600483015260009384939092610100909104909116906370a082319060240160206040518083038186803b15801562003d9057600080fd5b505afa15801562003da5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003dcb9190620053ae565b1062003dda5750600092915050565b6017546040516370a0823160e01b81526001600160a01b03858116600483015262003e6d92610100900416906370a082319060240160206040518083038186803b15801562003e2857600080fd5b505afa15801562003e3d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003e639190620053ae565b6008549062004da0565b9392505050565b6000546001600160a01b0316331462003ea15760405162461bcd60e51b815260040162000d009062005700565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331462003ef05760405162461bcd60e51b815260040162000d009062005700565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331462003f3f5760405162461bcd60e51b815260040162000d009062005700565b6001600160a01b03811662003fa65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000d00565b62000d998162004d50565b62003fbd848462003fc9565b62003374828262001e64565b338062003fea5760405162461bcd60e51b815260040162000d00906200576c565b6001600160a01b03811660009081526018602052604090205460ff1615620040265760405162461bcd60e51b815260040162000d009062005683565b6000805b8381101562004109576002546001600160a01b031663aad3ec96338787858181106200405a576200405a6200594b565b9050602002016020810190620040719190620053f7565b6040518363ffffffff1660e01b81526004016200409092919062005557565b602060405180830381600087803b158015620040ab57600080fd5b505af1158015620040c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620040e69190620053ae565b620040f290836200589d565b915080620041008162005917565b9150506200402a565b50600081116200412d5760405162461bcd60e51b815260040162000d0090620057b2565b60006200414460646200140a620014028662003d3a565b905060006200416560646200140a600954866200478190919063ffffffff16565b9050600082116200418a5760405162461bcd60e51b815260040162000d00906200558f565b6000620041978562003d3a565b11156200467957600081620041ad8486620058fd565b620041b99190620058fd565b600754604051636203b43b60e11b81529192506001600160a01b03169063c407687690620041ee9088908590600401620054dd565b602060405180830381600087803b1580156200420957600080fd5b505af11580156200421e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620042449190620051c4565b5060165460009061ffff600160401b82048116916200426d91600160201b9091041685620058db565b620042799190620058b8565b60155461ffff600160201b82048116916200429d91620100009091041687620058db565b620042a99190620058b8565b620042b591906200589d565b600754604051636203b43b60e11b81529192506001600160a01b03169063c407687690620042ea9030908590600401620054dd565b602060405180830381600087803b1580156200430557600080fd5b505af11580156200431a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620043409190620051c4565b50604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b0316918391506000906200438557620043856200594b565b6001600160a01b039283166020918202929092010152600b54825191169082906001908110620043b957620043b96200594b565b6001600160a01b039283166020918202929092010152600654600c54604051633b158ab160e11b81529183169263762b15629262004407928792600092889290911690429060040162005802565b600060405180830381600087803b1580156200442257600080fd5b505af115801562004437573d6000803e3d6000fd5b5050505060006009541115620046705760165460009061ffff600160401b82048116916200446f91600160301b9091041687620058db565b6200447b9190620058b8565b600754604051636203b43b60e11b81529192506001600160a01b03169063c407687690620044b09030908590600401620054dd565b602060405180830381600087803b158015620044cb57600080fd5b505af1158015620044e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620045069190620051c4565b50600654600e54604051633b158ab160e11b81526001600160a01b039283169263762b156292620045469286926000928992911690429060040162005802565b600060405180830381600087803b1580156200456157600080fd5b505af115801562004576573d6000803e3d6000fd5b50506016546000925061ffff600160401b820481169250620045a0916201000090041688620058db565b620045ac9190620058b8565b905080600f6000828254620045c291906200589d565b9091555050601054600f54106200466d57600754600f54604051636203b43b60e11b81526001600160a01b039092169163c4076876916200460991309190600401620054dd565b602060405180830381600087803b1580156200462457600080fd5b505af115801562004639573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200465f9190620051c4565b506200466d600f5462004855565b50505b505050620022fe565b600754604051636203b43b60e11b81526001600160a01b039091169063c407687690620046ad9087908790600401620054dd565b602060405180830381600087803b158015620046c857600080fd5b505af1158015620046dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620026a39190620051c4565b6000546001600160a01b03163314620047305760405162461bcd60e51b815260040162000d009062005700565b6014805461ffff838116620100000263ffffffff19909216908516171790556200475b818362005874565b6014805461ffff92909216600160201b0265ffff00000000199092169190911790555050565b60008262004792575060006200480b565b6000620047a08385620058db565b905082620047af8583620058b8565b14620048085760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840162000d00565b90505b92915050565b60006200480883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062004de4565b604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b0316918391506000906200489957620048996200594b565b6001600160a01b039283166020918202929092010152600b54825191169082906001908110620048cd57620048cd6200594b565b6001600160a01b0392831660209182029290920101526006541663762b1562620048f9600285620058b8565b60008430426040518663ffffffff1660e01b81526004016200492095949392919062005802565b600060405180830381600087803b1580156200493b57600080fd5b505af115801562004950573d6000803e3d6000fd5b50506006546003544793506001600160a01b03918216925063f91b3f72918491166200497e600288620058b8565b600c546040516001600160e01b031960e087901b168152620049b693929160009182916001600160a01b03169042906004016200551c565b6060604051808303818588803b158015620049d057600080fd5b505af1158015620049e5573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062004a0c9190620053c8565b505060408051838152602081018690527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a150506000600f5550565b601454600160201b900461ffff1662004a685750565b60145460009060029061ffff600160201b820481169162004a9291620100009091041685620058db565b62004a9e9190620058b8565b62004aaa9190620058b8565b60145490915060009061ffff600160201b820481169162004acd911685620058db565b62004ad99190620058b8565b9050801562004b725760035460075460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb9262004b1a929116908590600401620054dd565b602060405180830381600087803b15801562004b3557600080fd5b505af115801562004b4a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004b709190620051c4565b505b604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b03169183915060009062004bb65762004bb66200594b565b6001600160a01b039283166020918202929092010152600b5482519116908290600190811062004bea5762004bea6200594b565b6001600160a01b039283166020918202929092010152600654604051633b158ab160e11b815291169063762b15629062004c3290869060009086903090429060040162005802565b600060405180830381600087803b15801562004c4d57600080fd5b505af115801562004c62573d6000803e3d6000fd5b5047925050841590506200230057600654600354600c54604051637c8d9fb960e11b81526001600160a01b039384169363f91b3f7293869362004cb793918316928b926000928392169042906004016200551c565b6060604051808303818588803b15801562004cd157600080fd5b505af115801562004ce6573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062004d0d9190620053c8565b505060408051838152602081018790527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006200480883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062004e20565b6000818362004e085760405162461bcd60e51b815260040162000d0091906200557a565b50600062004e178486620058b8565b95945050505050565b6000818484111562004e475760405162461bcd60e51b815260040162000d0091906200557a565b50600062004e178486620058fd565b610499806200599d83390190565b60008083601f84011262004e7757600080fd5b50813567ffffffffffffffff81111562004e9057600080fd5b6020830191508360208260051b850101111562004eac57600080fd5b9250929050565b600082601f83011262004ec557600080fd5b813567ffffffffffffffff81111562004ee25762004ee262005961565b62004ef7601f8201601f191660200162005840565b81815284602083860101111562004f0d57600080fd5b816020850160208301376000918101602001919091529392505050565b803561ffff8116811462004f3d57600080fd5b919050565b60006020828403121562004f5557600080fd5b8135620048088162005977565b6000806040838503121562004f7657600080fd5b823562004f838162005977565b9150602083013562004f95816200598d565b809150509250929050565b6000806040838503121562004fb457600080fd5b823567ffffffffffffffff8082111562004fcd57600080fd5b818501915085601f83011262004fe257600080fd5b813560208282111562004ff95762004ff962005961565b8160051b6200500a82820162005840565b8381528281019086840183880185018c10156200502657600080fd5b60009350835b86811015620050685781358881111562005044578586fd5b620050548e88838d010162004eb3565b85525092850192908501906001016200502c565b50909b999093013599505050505050505050565b600080602083850312156200509057600080fd5b823567ffffffffffffffff811115620050a857600080fd5b620050b68582860162004e64565b90969095509350505050565b60008060008060008060a08789031215620050dc57600080fd5b863567ffffffffffffffff811115620050f457600080fd5b6200510289828a0162004e64565b9097509550506020870135620051188162005977565b9350604087013592506060870135620051318162005977565b91506080870135620051438162005977565b809150509295509295509295565b600080600080604085870312156200516857600080fd5b843567ffffffffffffffff808211156200518157600080fd5b6200518f8883890162004e64565b90965094506020870135915080821115620051a957600080fd5b50620051b88782880162004e64565b95989497509550505050565b600060208284031215620051d757600080fd5b815162004808816200598d565b600060208284031215620051f757600080fd5b813567ffffffffffffffff8111156200520f57600080fd5b6200521d8482850162004eb3565b949350505050565b6000806000806000608086880312156200523e57600080fd5b853567ffffffffffffffff808211156200525757600080fd5b6200526589838a0162004eb3565b965060208801359150808211156200527c57600080fd5b506200528b8882890162004e64565b909550935050604086013591506060860135620052a8816200598d565b809150509295509295909350565b60008060408385031215620052ca57600080fd5b823567ffffffffffffffff811115620052e257600080fd5b620052f08582860162004eb3565b95602094909401359450505050565b600080604083850312156200531357600080fd5b6200531e8362004f2a565b91506200532e6020840162004f2a565b90509250929050565b600080600080608085870312156200534e57600080fd5b620053598562004f2a565b9350620053696020860162004f2a565b9250620053796040860162004f2a565b9150620053896060860162004f2a565b905092959194509250565b600060208284031215620053a757600080fd5b5035919050565b600060208284031215620053c157600080fd5b5051919050565b600080600060608486031215620053de57600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156200540a57600080fd5b813567ffffffffffffffff811681146200480857600080fd5b600081518084526020808501945080840160005b838110156200545e5781516001600160a01b03168752958201959082019060010162005437565b509495945050505050565b6000815180845260005b81811015620054915760208185018101518683018201520162005473565b81811115620054a4576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03831681526040602082018190526000906200521d9083018462005469565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b6001600160a01b0392909216825267ffffffffffffffff16602082015260400190565b60208152600062004808602083018462005469565b6020808252600d908201526c2432b63832b91d1022b93937b960991b604082015260600190565b60208082526027908201527f48454c5045523a20204372656174696f6e2066726f6d20746865207a65726f206040820152666164647265737360c81b606082015260800190565b60208082526025908201527f48454c5045523a2042616c616e636520746f6f206c6f7720666f7220637265616040820152643a34b7b71760d91b606082015260800190565b60208082526021908201527f48454c5045523a2045786365656473206d61782077616c6c657420616d6f756e6040820152601d60fa1b606082015260800190565b6020808252601b908201527f48454c5045523a20596f752061726520626c61636b6c69737465640000000000604082015260600190565b60208082526026908201527f48454c5045523a2045786365656473206d6178207472616e73616374696f6e20604082015265185b5bdd5b9d60d21b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601c908201527f48454c5045523a206e616d652073697a6520697320696e76616c696400000000604082015260600190565b60208082526026908201527f48454c5045523a206372656174696f6e2066726f6d20746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526030908201527f48454c5045523a20596f7520646f6e2774206861766520656e6f75676820726560408201526f1dd85c99081d1bc818d85cda081bdd5d60821b606082015260800190565b85815284602082015260a0604082015260006200582360a083018662005423565b6001600160a01b0394909416606083015250608001529392505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156200586c576200586c62005961565b604052919050565b600061ffff80831681851680830382111562005894576200589462005935565b01949350505050565b60008219821115620058b357620058b362005935565b500190565b600082620058d657634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615620058f857620058f862005935565b500290565b60008282101562005912576200591262005935565b500390565b60006000198214156200592e576200592e62005935565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811462000d9957600080fd5b801515811462000d9957600080fdfe608060405234801561001057600080fd5b5060405161049938038061049983398101604081905261002f916100ad565b6100383361005d565b600180546001600160a01b0319166001600160a01b03929092169190911790556100dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100bf57600080fd5b81516001600160a01b03811681146100d657600080fd5b9392505050565b6103ad806100ec6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80636251be711461005c578063715018a61461008c5780638da5cb5b14610096578063c4076876146100a7578063f2fde38b146100ca575b600080fd5b60015461006f906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100946100dd565b005b6000546001600160a01b031661006f565b6100ba6100b53660046102f6565b61011c565b6040519015158152602001610083565b6100946100d83660046102db565b6101d4565b6000546001600160a01b031633146101105760405162461bcd60e51b815260040161010790610342565b60405180910390fd5b61011a600061026f565b565b600080546001600160a01b031633146101475760405162461bcd60e51b815260040161010790610342565b60015460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529091169063a9059cbb90604401602060405180830381600087803b15801561019557600080fd5b505af11580156101a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101cd9190610320565b9392505050565b6000546001600160a01b031633146101fe5760405162461bcd60e51b815260040161010790610342565b6001600160a01b0381166102635760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610107565b61026c8161026f565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146102d657600080fd5b919050565b6000602082840312156102ed57600080fd5b6101cd826102bf565b6000806040838503121561030957600080fd5b610312836102bf565b946020939093013593505050565b60006020828403121561033257600080fd5b815180151581146101cd57600080fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea26469706673582212201db2baa9210ebc0f89421de961c5be52e4cc6323316145e0b4038af52707d61e64736f6c63430008070033a2646970667358221220d7a6b2877b2a94ef5ba8babb0c761aa8ff31b225669a72860d2744531303394f64736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c4a25f823582d9ccf5cf8c8bf5338073e7a51676000000000000000000000000490bf3abcab1fb5c88533d850f2a8d6d38298465000000000000000000000000e7e4786c1d51d299d7720ead6bd3b3768a9fb0e1000000000000000000000000000000000000000000000000000000000000dead0000000000000000000000009ada04af0b1c989a188f0063358f2d0530327386
-----Decoded View---------------
Arg [0] : _manager (address): 0xc4a25F823582d9ccf5cf8C8BF5338073e7a51676
Arg [1] : _PLAYMATES (address): 0x490bf3ABcAb1fB5c88533d850F2a8d6D38298465
Arg [2] : _districtHelper (address): 0xe7E4786C1d51D299d7720Ead6BD3B3768A9Fb0E1
Arg [3] : _citiesHelper (address): 0x000000000000000000000000000000000000dEaD
Arg [4] : _DISTRICT (address): 0x9aDA04Af0B1c989A188F0063358f2d0530327386
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000c4a25f823582d9ccf5cf8c8bf5338073e7a51676
Arg [1] : 000000000000000000000000490bf3abcab1fb5c88533d850f2a8d6d38298465
Arg [2] : 000000000000000000000000e7e4786c1d51d299d7720ead6bd3b3768a9fb0e1
Arg [3] : 000000000000000000000000000000000000000000000000000000000000dead
Arg [4] : 0000000000000000000000009ada04af0b1c989a188f0063358f2d0530327386
Deployed Bytecode Sourcemap
29616:23686:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32302:31;32311:10;32323:9;32302:31;;;;;;;:::i;:::-;;;;;;;;29616:23686;;;;;30010:64;;;;;;;;;;-1:-1:-1;30010:64:0;;;;-1:-1:-1;;;;;30010:64:0;;;;;;-1:-1:-1;;;;;10455:32:1;;;10437:51;;10425:2;10410:18;30010:64:0;;;;;;;;30416:30;;;;;;;;;;;;;;;;;;;22159:25:1;;;22147:2;22132:18;30416:30:0;22013:177:1;29819:26:0;;;;;;;;;;-1:-1:-1;29819:26:0;;;;-1:-1:-1;;;;;29819:26:0;;;30208:28;;;;;;;;;;-1:-1:-1;30208:28:0;;;;-1:-1:-1;;;;;30208:28:0;;;32951:120;;;;;;;;;;;;;:::i;:::-;;29917:16;;;;;;;;;;-1:-1:-1;29917:16:0;;;;-1:-1:-1;;;;;29917:16:0;;;33396:105;;;;;;;;;;-1:-1:-1;33396:105:0;;;;;:::i;:::-;;:::i;30637:121::-;;;;;;;;;;-1:-1:-1;30637:121:0;;;;;;;;;;;;;;;-1:-1:-1;;;30637:121:0;;;;;;;;;;21321:6:1;21354:15;;;21336:34;;21406:15;;;21401:2;21386:18;;21379:43;21458:15;;21438:18;;;21431:43;;;;21299:2;21284:18;30637:121:0;21115:365:1;33614:93:0;;;;;;;;;;-1:-1:-1;33614:93:0;;;;;:::i;:::-;;:::i;35056:118::-;;;;;;;;;;;;;:::i;29390:219::-;;;;;;;;;;-1:-1:-1;29390:219:0;;;;;:::i;:::-;;:::i;30243:68::-;;;;;;;;;;-1:-1:-1;30243:68:0;;;;-1:-1:-1;;;;;30243:68:0;;;40365:3807;;;;;;;;;;-1:-1:-1;40365:3807:0;;;;;:::i;:::-;;:::i;33715:117::-;;;;;;;;;;-1:-1:-1;33715:117:0;;;;;:::i;:::-;;:::i;34926:122::-;;;;;;;;;;-1:-1:-1;34926:122:0;;;;;:::i;:::-;;:::i;29669:29::-;;;;;;;;;;-1:-1:-1;29669:29:0;;;;-1:-1:-1;;;;;29669:29:0;;;33262:126;;;;;;;;;;-1:-1:-1;33262:126:0;;;;;:::i;:::-;;:::i;30885:129::-;;;;;;;;;;-1:-1:-1;30885:129:0;;;;;;;;;;;;;;;-1:-1:-1;;;30885:129:0;;;;;;29705:23;;;;;;;;;;-1:-1:-1;29705:23:0;;;;-1:-1:-1;;;;;29705:23:0;;;34228:260;;;;;;;;;;-1:-1:-1;34228:260:0;;;;;:::i;:::-;;:::i;29735:36::-;;;;;;;;;;-1:-1:-1;29735:36:0;;;;-1:-1:-1;;;;;29735:36:0;;;32822:121;;;;;;;;;;-1:-1:-1;32822:121:0;;;;;:::i;:::-;;:::i;29942:27::-;;;;;;;;;;;;;;;;6412:103;;;;;;;;;;;;;:::i;30109:92::-;;;;;;;;;;-1:-1:-1;30109:92:0;;;;-1:-1:-1;;;;;30109:92:0;;;34496:422;;;;;;;;;;-1:-1:-1;34496:422:0;;;;;:::i;:::-;;:::i;32685:129::-;;;;;;;;;;-1:-1:-1;32685:129:0;;;;;:::i;:::-;;:::i;31187:171::-;;;;;;;;;;-1:-1:-1;31187:171:0;;;;;;;;;;;;;;;-1:-1:-1;;;31187:171:0;;;;;-1:-1:-1;;;31187:171:0;;;;;-1:-1:-1;;;31187:171:0;;;;;;;;;;21744:6:1;21777:15;;;21759:34;;21829:15;;;21824:2;21809:18;;21802:43;21881:15;;;21861:18;;;21854:43;;;;21933:15;;21928:2;21913:18;;21906:43;21986:15;;;21980:3;21965:19;;21958:44;21721:3;21706:19;31187:171:0;21485:523:1;30487:29:0;;;;;;;;;;;;;;;;47917:1449;;;;;;;;;;-1:-1:-1;47917:1449:0;;;;;:::i;:::-;;:::i;30320:39::-;;;;;;;;;;;;;;;;5761:87;;;;;;;;;;-1:-1:-1;5807:7:0;5834:6;-1:-1:-1;;;;;5834:6:0;5761:87;;33509:97;;;;;;;;;;-1:-1:-1;33509:97:0;;;;;:::i;:::-;;:::i;37319:719::-;;;;;;;;;;-1:-1:-1;37319:719:0;;;;;:::i;:::-;;:::i;31407:75::-;;;;;;;;;;-1:-1:-1;31407:75:0;;;;;;;-1:-1:-1;;;;;31407:75:0;;;50826:2473;;;;;;;;;;-1:-1:-1;50826:2473:0;;;;;:::i;:::-;;:::i;33840:137::-;;;;;;;;;;-1:-1:-1;33840:137:0;;;;;:::i;:::-;;:::i;29242:142::-;;;;;;;;;;-1:-1:-1;29242:142:0;;;;;:::i;:::-;;:::i;39130:1227::-;;;;;;;;;;-1:-1:-1;39130:1227:0;;;;;:::i;:::-;;:::i;38046:1076::-;;;;;;;;;;-1:-1:-1;38046:1076:0;;;;;:::i;:::-;;:::i;32570:107::-;;;;;;;;;;-1:-1:-1;32570:107:0;;;;;:::i;:::-;;:::i;29778:34::-;;;;;;;;;;-1:-1:-1;29778:34:0;;;;-1:-1:-1;;;;;29778:34:0;;;30366:43;;;;;;;;;;;;;;;;33079:175;;;;;;;;;;-1:-1:-1;33079:175:0;;;;;:::i;:::-;;:::i;32349:107::-;;;;;;;;;;-1:-1:-1;32349:107:0;;;;;:::i;:::-;;:::i;44516:597::-;;;;;;;;;;-1:-1:-1;44516:597:0;;;;;:::i;:::-;;:::i;49374:1444::-;;;;;;;;;;-1:-1:-1;49374:1444:0;;;;;:::i;:::-;;:::i;44180:328::-;;;;;;;;;;-1:-1:-1;44180:328:0;;;;;:::i;:::-;;:::i;35182:115::-;;;;;;;;;;-1:-1:-1;35182:115:0;;;;;:::i;:::-;;:::i;32464:98::-;;;;;;;;;;-1:-1:-1;32464:98:0;;;;;:::i;:::-;;:::i;6670:201::-;;;;;;;;;;-1:-1:-1;6670:201:0;;;;;:::i;:::-;;:::i;45121:176::-;;;;;;;;;;-1:-1:-1;45121:176:0;;;;;:::i;:::-;;:::i;29976:25::-;;;;;;;;;;;;;;;;45305:2604;;;;;;;;;;-1:-1:-1;45305:2604:0;;;;;:::i;:::-;;:::i;33984:236::-;;;;;;;;;;-1:-1:-1;33984:236:0;;;;;:::i;:::-;;:::i;30453:27::-;;;;;;;;;;;;;;;;31642:41;;;;;;;;;;-1:-1:-1;31642:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13086:14:1;;13079:22;13061:41;;13049:2;13034:18;31642:41:0;12921:187:1;29005:110:0;;;;;;;;;;-1:-1:-1;29005:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;29090:19:0;29070:4;29090:19;;;:9;:19;;;;;;;;;29005:110;32951:120;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;;;;;;;;;33012:9:::1;::::0;33030:13:::1;::::0;33012:51:::1;::::0;-1:-1:-1;;;33012:51:0;;-1:-1:-1;;;;;33012:9:0;;::::1;::::0;:17:::1;::::0;:51:::1;::::0;33030:13;::::1;::::0;-1:-1:-1;;33045:17:0;33012:51:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;32951:120::o:0;33396:105::-;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;33471:9:::1;:22:::0;33396:105::o;33614:93::-;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;33683:6:::1;:16:::0;33614:93::o;35056:118::-;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;35112:9:::1;::::0;35138::::1;::::0;35112:54:::1;::::0;-1:-1:-1;;;35112:54:0;;-1:-1:-1;;;;;35112:9:0;;::::1;::::0;:17:::1;::::0;:54:::1;::::0;35138:9;::::1;::::0;35150:15:::1;::::0;35112:54:::1;;;:::i;29390:219::-:0;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;29468:22:0;::::1;29460:76;;;::::0;-1:-1:-1;;;29460:76:0;;18152:2:1;29460:76:0::1;::::0;::::1;18134:21:1::0;18191:2;18171:18;;;18164:30;18230:34;18210:18;;;18203:62;-1:-1:-1;;;18281:18:1;;;18274:39;18330:19;;29460:76:0::1;17950:405:1::0;29460:76:0::1;-1:-1:-1::0;;;;;29543:19:0;::::1;;::::0;;;29565:4:::1;29543:19;::::0;;;;;;;:26;;-1:-1:-1;;29543:26:0::1;::::0;;::::1;::::0;;;29581:22;::::1;::::0;29543:19;29581:22:::1;29390:219:::0;:::o;40365:3807::-;40512:12;;40502:6;:22;;40494:73;;;;-1:-1:-1;;;40494:73:0;;;;;;;:::i;:::-;388:10;;40618:71;;;;-1:-1:-1;;;40618:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;40708:17:0;;;;;;:9;:17;;;;;;;;:26;40700:66;;;;-1:-1:-1;;;40700:66:0;;;;;;;:::i;:::-;40779:20;40819:9;40814:139;40834:17;;;40814:139;;;40903:7;;-1:-1:-1;;;;;40903:7:0;:13;388:10;40931:6;;40938:1;40931:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;40903:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;40888:53;;:12;:53;:::i;:::-;40873:68;-1:-1:-1;40853:3:0;;;;:::i;:::-;;;;40814:139;;;-1:-1:-1;40985:7:0;;:21;;-1:-1:-1;;;40985:21:0;;-1:-1:-1;;;;;10455:32:1;;;40985:21:0;;;10437:51:1;40965:17:0;;40985:7;;:13;;10410:18:1;;40985:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;;41009:8;40985:32;:::i;:::-;40965:52;;41033:10;41028:265;;41069:18;41081:6;41069:9;:18;:::i;:::-;41053:12;:34;;41045:94;;;;-1:-1:-1;;;41045:94:0;;;;;;;:::i;:::-;41028:265;;;41163:10;:78;;;;-1:-1:-1;41223:18:0;41235:6;41223:9;:18;:::i;:::-;41192:9;;:27;;-1:-1:-1;;;41192:27:0;;-1:-1:-1;;;;;10455:32:1;;;41192:27:0;;;10437:51:1;41192:9:0;;;;:19;;10410:18:1;;41192:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;41177:42;;:12;:42;:::i;:::-;:64;;41163:78;41155:138;;;;-1:-1:-1;;;41155:138:0;;;;;;;:::i;:::-;41352:9;;41314:7;;:25;;-1:-1:-1;;;41314:25:0;;-1:-1:-1;;;;;10455:32:1;;;41314:25:0;;;10437:51:1;41342:6:0;;41314:7;;:17;;10410:18:1;;41314:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:34;;;;:::i;:::-;:47;;41306:93;;;;-1:-1:-1;;;41306:93:0;;;;;;;:::i;:::-;41415:9;41410:202;41434:6;41430:1;:10;41410:202;;;41491:1;41476:4;41470:18;:22;:49;;;;;41517:2;41502:4;41496:18;:23;41470:49;41462:90;;;;-1:-1:-1;;;41462:90:0;;;;;;;:::i;:::-;41567:7;;:32;;-1:-1:-1;;;41567:32:0;;-1:-1:-1;;;;;41567:7:0;;;;:18;;:32;;41586:6;;41594:4;;41567:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41442:3;;;;;:::i;:::-;;;;41410:202;;;-1:-1:-1;41643:18:0;41655:6;41643:9;:18;:::i;:::-;41628:12;:33;41624:2541;;;41678:24;41720:18;41732:6;41720:9;:18;:::i;:::-;41705:33;;:12;:33;:::i;:::-;41678:60;;41753:17;41773:50;41819:3;41773:41;41794:19;41806:6;41794:11;:19::i;:::-;41773:16;;:20;:41::i;:::-;:45;;:50::i;:::-;41753:70;;41838:20;41861:37;41894:3;41861:28;41882:6;;41861:16;:20;;:28;;;;:::i;:37::-;41838:60;-1:-1:-1;41913:21:0;41838:60;41937:28;41956:9;41937:16;:28;:::i;:::-;:43;;;;:::i;:::-;41995:4;;:31;;-1:-1:-1;;;41995:31:0;;41913:67;;-1:-1:-1;;;;;;41995:4:0;;:8;;:31;;42004:6;;41913:67;;41995:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;42209:13:0;:19;42067:31;;42209:19;-1:-1:-1;;;42209:19:0;;;;;42167:38;;-1:-1:-1;;;42182:23:0;;;;42167:12;:38;:::i;:::-;42166:62;;;;:::i;:::-;42144:12;:18;;-1:-1:-1;;;42144:18:0;;;;;42102:37;;42114:25;;;;;42102:9;:37;:::i;:::-;42101:62;;;;:::i;:::-;:127;;;;:::i;:::-;42243:4;;:48;;-1:-1:-1;;;42243:48:0;;42067:161;;-1:-1:-1;;;;;;42243:4:0;;:8;;:48;;42260:4;;42067:161;;42243:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;42330:16:0;;;42344:1;42330:16;;;;;;;;42306:21;;42330:16;;;;;;;;-1:-1:-1;;42379:9:0;;42361:7;;;;-1:-1:-1;;;;;;42379:9:0;;42361:7;;-1:-1:-1;42379:9:0;;42361:7;;;;:::i;:::-;-1:-1:-1;;;;;42361:28:0;;;:7;;;;;;;;;:28;42414:5;;42404:7;;42414:5;;;42404:4;;42414:5;;42404:7;;;;;;:::i;:::-;-1:-1:-1;;;;;42404:15:0;;;:7;;;;;;;;;:15;42434:9;;42599:15;;42434:229;;-1:-1:-1;;;42434:229:0;;:9;;;;:61;;:229;;42514:23;;42434:9;;42576:4;;42599:15;;;;42633;;42434:229;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;42693:1;42684:6;;:10;42680:985;;;42909:13;:19;42840:24;;42909:19;-1:-1:-1;;;42909:19:0;;;;;42868:37;;-1:-1:-1;;;42883:22:0;;;;42868:12;:37;:::i;:::-;42867:61;;;;:::i;:::-;42945:4;;:41;;-1:-1:-1;;;42945:41:0;;42840:88;;-1:-1:-1;;;;;;42945:4:0;;:8;;:41;;42962:4;;42840:88;;42945:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;43003:9:0;;43169:8;;43003:227;;-1:-1:-1;;;43003:227:0;;-1:-1:-1;;;;;43003:9:0;;;;:61;;:227;;43085:16;;43003:9;;43144:4;;43169:8;;;43198:15;;43003:227;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;43363:13:0;:19;43292:25;;-1:-1:-1;43363:19:0;-1:-1:-1;;;43363:19:0;;;;;-1:-1:-1;43321:38:0;;43336:23;;;;43321:12;:38;:::i;:::-;43320:62;;;;:::i;:::-;43292:90;;43423:17;43399:20;;:41;;;;;;;:::i;:::-;;;;-1:-1:-1;;43485:23:0;;43461:20;;:47;43457:193;;43529:4;;43553:20;;43529:45;;-1:-1:-1;;;43529:45:0;;-1:-1:-1;;;;;43529:4:0;;;;:8;;:45;;43546:4;;43553:20;43529:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;43593:39;43611:20;;43593:17;:39::i;:::-;42696:969;;42680:985;41663:2013;;;;;;41624:2541;;;43686:10;:78;;;;-1:-1:-1;43746:18:0;43758:6;43746:9;:18;:::i;:::-;43715:9;;:27;;-1:-1:-1;;;43715:27:0;;-1:-1:-1;;;;;10455:32:1;;;43715:27:0;;;10437:51:1;43715:9:0;;;;:19;;10410:18:1;;43715:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;43700:42;;:12;:42;:::i;:::-;:64;;43686:78;43682:483;;;43781:25;43830:12;43809:18;43821:6;43809:9;:18;:::i;:::-;:33;;;;:::i;:::-;43857:9;;:71;;-1:-1:-1;;;43857:71:0;;43781:61;;-1:-1:-1;;;;;;43857:9:0;;:22;;:71;;388:10;;43902:4;;43781:61;;43857:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;43985:13:0;;43948:9;;:34;;-1:-1:-1;;;43948:34:0;;43976:4;43948:34;;;10437:51:1;-1:-1:-1;;;;;43948:9:0;;;;:19;;10410:18:1;;43948:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:50;43943:211;;;44051:9;;:34;;-1:-1:-1;;;44051:34:0;;44079:4;44051:34;;;10437:51:1;44020:28:0;;-1:-1:-1;;;;;44051:9:0;;:19;;10410:18:1;;44051:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;44020:65;;44104:34;44117:20;44104:12;:34::i;:::-;44001:153;43943:211;43766:399;43682:483;40483:3689;;;40365:3807;;;;;:::o;33715:117::-;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;33796:12:::1;:28:::0;33715:117::o;34926:122::-;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;35007:23:::1;:33:::0;34926:122::o;33262:126::-;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;33343:7:::1;:37:::0;;-1:-1:-1;;;;;;33343:37:0::1;-1:-1:-1::0;;;;;33343:37:0;;;::::1;::::0;;;::::1;::::0;;33262:126::o;34228:260::-;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;34326:12:::1;:41:::0;;::::1;34378::::0;;::::1;::::0;::::1;-1:-1:-1::0;;34378:41:0;;;34326;;::::1;34378::::0;::::1;::::0;;34451:29:::1;34406:13:::0;34354;34451:29:::1;:::i;:::-;34430:12;:50:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;34430:50:0::1;-1:-1:-1::0;;34430:50:0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;34228:260:0:o;32822:121::-;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;32897:12:::1;:38:::0;;-1:-1:-1;;;;;;32897:38:0::1;-1:-1:-1::0;;;;;32897:38:0;;;::::1;::::0;;;::::1;::::0;;32822:121::o;6412:103::-;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;6477:30:::1;6504:1;6477:18;:30::i;:::-;6412:103::o:0;34496:422::-;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;34636:13:::1;:35:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;34682:39:0;;;;;;;-1:-1:-1;;;34682:39:0;;::::1;;;-1:-1:-1::0;;34782:37:0;34732:39;;;::::1;;-1:-1:-1::0;;34782:37:0;;-1:-1:-1;;;34782:37:0;;::::1;::::0;;;::::1;;::::0;;;34732:39;34852:27:::1;34682:39:::0;34636:35;34852:27:::1;:::i;:::-;:43;;;;:::i;:::-;:58;;;;:::i;:::-;34830:13;:80:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;34830:80:0::1;-1:-1:-1::0;;34830:80:0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;;34496:422:0:o;32685:129::-;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;32764:14:::1;:42:::0;;-1:-1:-1;;;;;;32764:42:0::1;-1:-1:-1::0;;;;;32764:42:0;;;::::1;::::0;;;::::1;::::0;;32685:129::o;47917:1449::-;388:10;;48025:71;;;;-1:-1:-1;;;48025:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;48115:17:0;;;;;;:9;:17;;;;;;;;:26;48107:66;;;;-1:-1:-1;;;48107:66:0;;;;;;;:::i;:::-;48184:20;48224:9;48219:146;48239:17;;;48219:146;;;48308:14;;-1:-1:-1;;;;;48308:14:0;:20;388:10;48343:6;;48350:1;48343:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;48308:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;48293:60;;:12;:60;:::i;:::-;48278:75;-1:-1:-1;48258:3:0;;;;:::i;:::-;;;;48219:146;;;;48398:1;48383:12;:16;48375:76;;;;-1:-1:-1;;;48375:76:0;;;;;;;:::i;:::-;48462:17;48482:46;48524:3;48482:37;48499:19;48511:6;48499:11;:19::i;48482:46::-;48462:66;;48559:1;48547:9;:13;48539:39;;;;-1:-1:-1;;;48539:39:0;;;;;;;:::i;:::-;48615:1;48593:19;48605:6;48593:11;:19::i;:::-;:23;48589:770;;;48633:18;48654:24;48669:9;48654:12;:24;:::i;:::-;48693:4;;:28;;-1:-1:-1;;;48693:28:0;;48633:45;;-1:-1:-1;;;;;;48693:4:0;;:8;;:28;;48702:6;;48633:45;;48693:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;48815:12:0;:18;48738:31;;48815:18;-1:-1:-1;;;48815:18:0;;;;;48773:37;;48785:25;;;;;48773:9;:37;:::i;:::-;48772:62;;;;:::i;:::-;48851:4;;:48;;-1:-1:-1;;;48851:48:0;;48738:96;;-1:-1:-1;;;;;;48851:4:0;;:8;;:48;;48868:4;;48738:96;;48851:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;48940:16:0;;;48954:1;48940:16;;;;;;;;48916:21;;48940:16;;;;;;;;-1:-1:-1;;48989:9:0;;48971:7;;;;-1:-1:-1;;;;;;48989:9:0;;48971:7;;-1:-1:-1;48989:9:0;;48971:7;;;;:::i;:::-;-1:-1:-1;;;;;48971:28:0;;;:7;;;;;;;;;:28;49024:5;;49014:7;;49024:5;;;49014:4;;49024:5;;49014:7;;;;;;:::i;:::-;-1:-1:-1;;;;;49014:15:0;;;:7;;;;;;;;;:15;49046:9;;49211:15;;49046:229;;-1:-1:-1;;;49046:229:0;;:9;;;;:61;;:229;;49126:23;;49046:9;;49188:4;;49211:15;;;;49245;;49046:229;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;48618:669;;;48589:770;;;49317:4;;:30;;-1:-1:-1;;;49317:30:0;;-1:-1:-1;;;;;49317:4:0;;;;:8;;:30;;49326:6;;49334:12;;49317:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;48589:770;47974:1392;;;47917:1449;;:::o;33509:97::-;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;33580:7:::1;:18:::0;33509:97::o;37319:719::-;37416:1;37401:4;37395:18;:22;:49;;;;;37442:2;37427:4;37421:18;:23;37395:49;37387:90;;;;-1:-1:-1;;;37387:90:0;;;;;;;:::i;:::-;388:10;;37528:72;;;;-1:-1:-1;;;37528:72:0;;;;;;;:::i;:::-;37631:7;;:21;;-1:-1:-1;;;37631:21:0;;-1:-1:-1;;;;;10455:32:1;;;37631:21:0;;;10437:51:1;37611:17:0;;37631:7;;:13;;10410:18:1;;37631:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;;37655:8;37631:32;:::i;:::-;37611:52;;37694:1;37682:9;:13;37674:31;;;;-1:-1:-1;;;37674:31:0;;15432:2:1;37674:31:0;;;15414:21:1;15471:1;15451:18;;;15444:29;-1:-1:-1;;;15489:18:1;;;15482:35;15534:18;;37674:31:0;15230:328:1;37674:31:0;37724:9;;:27;;-1:-1:-1;;;37724:27:0;;-1:-1:-1;;;;;10455:32:1;;;37724:27:0;;;10437:51:1;37755:9:0;;37724;;:19;;10410:18:1;;37724:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;;37716:90;;;;-1:-1:-1;;;37716:90:0;;;;;;;:::i;:::-;37858:9;;37825:7;;:25;;-1:-1:-1;;;37825:25:0;;-1:-1:-1;;;;;10455:32:1;;;37825:25:0;;;10437:51:1;37825:7:0;;;;:17;;10410:18:1;;37825:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:29;;37853:1;37825:29;:::i;:::-;:42;;37817:88;;;;-1:-1:-1;;;37817:88:0;;;;;;;:::i;:::-;37916:9;;-1:-1:-1;;;;;37916:9:0;:22;388:10;37961:4;37969:9;37916:63;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;37990:7:0;;:32;;-1:-1:-1;;;37990:32:0;;-1:-1:-1;;;;;37990:7:0;;;;:18;;:32;;38009:6;;38017:4;;37990:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37376:662;;37319:719;:::o;50826:2473::-;388:10;;50913:71;;;;-1:-1:-1;;;50913:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;51003:17:0;;;;;;:9;:17;;;;;;;;:26;50995:66;;;;-1:-1:-1;;;50995:66:0;;;;;;;:::i;:::-;51095:7;;:34;;-1:-1:-1;;;51095:34:0;;51072:20;;-1:-1:-1;;;;;51095:7:0;;:13;;:34;;388:10;;51123:5;;51095:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;51072:57;;51163:1;51148:12;:16;51140:76;;;;-1:-1:-1;;;51140:76:0;;;;;;;:::i;:::-;51227:17;51247:46;51289:3;51247:37;51264:19;51276:6;51264:11;:19::i;51247:46::-;51227:66;;51304:20;51327:33;51356:3;51327:24;51344:6;;51327:12;:16;;:24;;;;:::i;:33::-;51304:56;;51391:1;51379:9;:13;51371:39;;;;-1:-1:-1;;;51371:39:0;;;;;;;:::i;:::-;51447:1;51425:19;51437:6;51425:11;:19::i;:::-;:23;51421:1871;;;51465:18;51513:12;51486:24;51501:9;51486:12;:24;:::i;:::-;:39;;;;:::i;:::-;51540:4;;:28;;-1:-1:-1;;;51540:28:0;;51465:60;;-1:-1:-1;;;;;;51540:4:0;;:8;;:28;;51549:6;;51465:60;;51540:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;51753:13:0;:19;51611:31;;51753:19;-1:-1:-1;;;51753:19:0;;;;;51711:38;;-1:-1:-1;;;51726:23:0;;;;51711:12;:38;:::i;:::-;51710:62;;;;:::i;:::-;51688:12;:18;;-1:-1:-1;;;51688:18:0;;;;;51646:37;;51658:25;;;;;51646:9;:37;:::i;:::-;51645:62;;;;:::i;:::-;:127;;;;:::i;:::-;51787:4;;:48;;-1:-1:-1;;;51787:48:0;;51611:161;;-1:-1:-1;;;;;;51787:4:0;;:8;;:48;;51804:4;;51611:161;;51787:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;51874:16:0;;;51888:1;51874:16;;;;;;;;51850:21;;51874:16;;;;;;;;-1:-1:-1;;51923:9:0;;51905:7;;;;-1:-1:-1;;;;;;51923:9:0;;51905:7;;-1:-1:-1;51923:9:0;;51905:7;;;;:::i;:::-;-1:-1:-1;;;;;51905:28:0;;;:7;;;;;;;;;:28;51958:5;;51948:7;;51958:5;;;51948:4;;51958:5;;51948:7;;;;;;:::i;:::-;-1:-1:-1;;;;;51948:15:0;;;:7;;;;;;;;;:15;51978:9;;52143:15;;51978:229;;-1:-1:-1;;;51978:229:0;;:9;;;;:61;;:229;;52058:23;;51978:9;;52120:4;;52143:15;;;;52177;;51978:229;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;52237:1;52228:6;;:10;52224:985;;;52453:13;:19;52384:24;;52453:19;-1:-1:-1;;;52453:19:0;;;;;52412:37;;-1:-1:-1;;;52427:22:0;;;;52412:12;:37;:::i;:::-;52411:61;;;;:::i;:::-;52489:4;;:41;;-1:-1:-1;;;52489:41:0;;52384:88;;-1:-1:-1;;;;;;52489:4:0;;:8;;:41;;52506:4;;52384:88;;52489:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;52547:9:0;;52713:8;;52547:227;;-1:-1:-1;;;52547:227:0;;-1:-1:-1;;;;;52547:9:0;;;;:61;;:227;;52629:16;;52547:9;;52688:4;;52713:8;;;52742:15;;52547:227;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;52907:13:0;:19;52836:25;;-1:-1:-1;52907:19:0;-1:-1:-1;;;52907:19:0;;;;;-1:-1:-1;52865:38:0;;52880:23;;;;52865:12;:38;:::i;:::-;52864:62;;;;:::i;:::-;52836:90;;52967:17;52943:20;;:41;;;;;;;:::i;:::-;;;;-1:-1:-1;;53029:23:0;;53005:20;;:47;53001:193;;53073:4;;53097:20;;53073:45;;-1:-1:-1;;;53073:45:0;;-1:-1:-1;;;;;53073:4:0;;;;:8;;:45;;53090:4;;53097:20;53073:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;53137:39;53155:20;;53137:17;:39::i;:::-;52240:969;;52224:985;51450:1770;;;51421:1871;;;53250:4;;:30;;-1:-1:-1;;;53250:30:0;;-1:-1:-1;;;;;53250:4:0;;;;:8;;:30;;53259:6;;53267:12;;53250:30;;;:::i;33840:137::-;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;33935:15:::1;:34:::0;;-1:-1:-1;;;;;;33935:34:0::1;-1:-1:-1::0;;;;;33935:34:0;;;::::1;::::0;;;::::1;::::0;;33840:137::o;29242:142::-;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;29315:19:0;::::1;29337:5;29315:19:::0;;;:9:::1;:19;::::0;;;;;:27;;-1:-1:-1;;29315:27:0::1;::::0;;29354:24;::::1;::::0;29337:5;29354:24:::1;29242:142:::0;:::o;39130:1227::-;39247:12;;39237:6;:22;;39229:73;;;;-1:-1:-1;;;39229:73:0;;;;;;;:::i;:::-;39337:6;39321:5;:12;:22;39313:85;;;;-1:-1:-1;;;39313:85:0;;14671:2:1;39313:85:0;;;14653:21:1;14710:2;14690:18;;;14683:30;14749:34;14729:18;;;14722:62;-1:-1:-1;;;14800:18:1;;;14793:48;14858:19;;39313:85:0;14469:414:1;39313:85:0;388:10;;39449:72;;;;-1:-1:-1;;;39449:72:0;;16986:2:1;39449:72:0;;;16968:21:1;17025:2;17005:18;;;16998:30;17064:34;17044:18;;;17037:62;-1:-1:-1;;;17115:18:1;;;17108:37;17162:19;;39449:72:0;16784:403:1;39449:72:0;39552:7;;:21;;-1:-1:-1;;;39552:21:0;;-1:-1:-1;;;;;10455:32:1;;;39552:21:0;;;10437:51:1;39532:17:0;;39552:7;;:13;;10410:18:1;;39552:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;;39576:8;39552:32;:::i;:::-;39532:52;-1:-1:-1;39634:18:0;39646:6;39532:52;39634:18;:::i;:::-;39603:9;;:27;;-1:-1:-1;;;39603:27:0;;-1:-1:-1;;;;;10455:32:1;;;39603:27:0;;;10437:51:1;39603:9:0;;;;:19;;10410:18:1;;39603:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:49;;39595:99;;;;-1:-1:-1;;;39595:99:0;;;;;;;:::i;:::-;39751:9;;39713:7;;:25;;-1:-1:-1;;;39713:25:0;;-1:-1:-1;;;;;10455:32:1;;;39713:25:0;;;10437:51:1;39741:6:0;;39713:7;;:17;;10410:18:1;;39713:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:34;;;;:::i;:::-;:47;;39705:93;;;;-1:-1:-1;;;39705:93:0;;;;;;;:::i;:::-;39809:9;;-1:-1:-1;;;;;39809:9:0;:22;388:10;39854:4;39861:18;39873:6;39861:9;:18;:::i;:::-;39809:71;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;39898:9;39893:246;39917:6;39913:1;:10;39893:246;;;39945:18;39966:5;39972:1;39966:8;;;;;;;;:::i;:::-;;;;;;;39945:29;;40018:1;40003:4;39997:18;:22;:49;;;;;40044:2;40029:4;40023:18;:23;39997:49;39989:90;;;;-1:-1:-1;;;39989:90:0;;;;;;;:::i;:::-;40094:7;;:32;;-1:-1:-1;;;40094:32:0;;-1:-1:-1;;;;;40094:7:0;;;;:18;;:32;;40113:6;;40121:4;;40094:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39930:209;39925:3;;;;;:::i;:::-;;;;39893:246;;;-1:-1:-1;40193:13:0;;40156:9;;:34;;-1:-1:-1;;;40156:34:0;;40184:4;40156:34;;;10437:51:1;-1:-1:-1;;;;;40156:9:0;;;;:19;;10410:18:1;;40156:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:50;40151:199;;;40255:9;;:34;;-1:-1:-1;;;40255:34:0;;40283:4;40255:34;;;10437:51:1;40224:28:0;;-1:-1:-1;;;;;40255:9:0;;:19;;10410:18:1;;40255:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;40224:65;;40304:34;40317:20;40304:12;:34::i;40151:199::-;39218:1139;;39130:1227;;:::o;38046:1076::-;38153:12;;38143:6;:22;;38135:73;;;;-1:-1:-1;;;38135:73:0;;;;;;;:::i;:::-;38248:1;38233:4;38227:18;:22;:49;;;;;38274:2;38259:4;38253:18;:23;38227:49;38219:90;;;;-1:-1:-1;;;38219:90:0;;;;;;;:::i;:::-;388:10;;38360:72;;;;-1:-1:-1;;;38360:72:0;;;;;;;:::i;:::-;38463:7;;:21;;-1:-1:-1;;;38463:21:0;;-1:-1:-1;;;;;10455:32:1;;;38463:21:0;;;10437:51:1;38443:17:0;;38463:7;;:13;;10410:18:1;;38463:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;;38487:8;38463:32;:::i;:::-;38443:52;-1:-1:-1;38545:18:0;38557:6;38443:52;38545:18;:::i;:::-;38514:9;;:27;;-1:-1:-1;;;38514:27:0;;-1:-1:-1;;;;;10455:32:1;;;38514:27:0;;;10437:51:1;38514:9:0;;;;:19;;10410:18:1;;38514:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:49;;38506:99;;;;-1:-1:-1;;;38506:99:0;;;;;;;:::i;:::-;38662:9;;38624:7;;:25;;-1:-1:-1;;;38624:25:0;;-1:-1:-1;;;;;10455:32:1;;;38624:25:0;;;10437:51:1;38652:6:0;;38624:7;;:17;;10410:18:1;;38624:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:34;;;;:::i;:::-;:47;;38616:93;;;;-1:-1:-1;;;38616:93:0;;;;;;;:::i;:::-;38720:9;;-1:-1:-1;;;;;38720:9:0;:22;388:10;38765:4;38773:18;38785:6;38773:9;:18;:::i;:::-;38720:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;38810:9;38805:99;38829:6;38825:1;:10;38805:99;;;38857:7;;:32;;-1:-1:-1;;;38857:32:0;;-1:-1:-1;;;;;38857:7:0;;;;:18;;:32;;38876:6;;38884:4;;38857:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38837:3;;;;;:::i;:::-;;;;38805:99;;32570:107;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;32641:8:::1;:28:::0;;-1:-1:-1;;;;;32641:28:0;;::::1;;;-1:-1:-1::0;;;;;;32641:28:0;;::::1;::::0;;;::::1;::::0;;32570:107::o;33079:175::-;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;33151:4:::1;::::0;-1:-1:-1;;;;;33151:4:0::1;:8;33168:7;5807::::0;5834:6;-1:-1:-1;;;;;5834:6:0;;5761:87;33168:7:::1;33178:9;::::0;33206:4:::1;::::0;33178:34:::1;::::0;-1:-1:-1;;;33178:34:0;;-1:-1:-1;;;;;33206:4:0;;::::1;33178:34;::::0;::::1;10437:51:1::0;33178:9:0;::::1;::::0;:19:::1;::::0;10410:18:1;;33178:34:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;33151:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;33240:5;33231:15;;;;;:::i;:::-;-1:-1:-1::0;;;;;10455:32:1;;;10437:51;;10425:2;10410:18;33231:15:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;33224:4:0::1;:22:::0;;-1:-1:-1;;;;;;33224:22:0::1;-1:-1:-1::0;;;;;33224:22:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;33079:175:0:o;32349:107::-;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;32426:15:0;;;::::1;;::::0;;;:9:::1;:15;::::0;;;;:22;;-1:-1:-1;;32426:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;32349:107::o;44516:597::-;388:10;29159:23;;;;:9;:23;;;;;;;;29151:71;;;;-1:-1:-1;;;29151:71:0;;20089:2:1;29151:71:0;;;20071:21:1;20128:2;20108:18;;;20101:30;20167:34;20147:18;;;20140:62;-1:-1:-1;;;20218:18:1;;;20211:33;20261:19;;29151:71:0;19887:399:1;29151:71:0;44682:20:::1;44722:9:::0;44717:136:::1;44737:17:::0;;::::1;44717:136;;;44806:7;::::0;-1:-1:-1;;;;;44806:7:0::1;:13;44820:9:::0;44831:6;;44838:1;44831:9;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;44806:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;44791:50;::::0;:12;:50:::1;:::i;:::-;44776:65:::0;-1:-1:-1;44756:3:0;::::1;::::0;::::1;:::i;:::-;;;;44717:136;;;;44886:1;44871:12;:16;44863:76;;;;-1:-1:-1::0;;;44863:76:0::1;;;;;;;:::i;:::-;44950:24;44977:27;44992:12:::0;44977;:27:::1;:::i;:::-;45015:4;::::0;:48:::1;::::0;-1:-1:-1;;;45015:48:0;;44950:54;;-1:-1:-1;;;;;;45015:4:0::1;::::0;:8:::1;::::0;:48:::1;::::0;45024:20;;44950:54;;45015:48:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;45074:4:0::1;::::0;:31:::1;::::0;-1:-1:-1;;;45074:31:0;;-1:-1:-1;;;;;45074:4:0;;::::1;::::0;:8:::1;::::0;:31:::1;::::0;45083:7;;45092:12;;45074:31:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;49374:1444::-:0;388:10;;49479:71;;;;-1:-1:-1;;;49479:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;49569:17:0;;;;;;:9;:17;;;;;;;;:26;49561:66;;;;-1:-1:-1;;;49561:66:0;;;;;;;:::i;:::-;49638:20;49678:9;49673:144;49693:17;;;49673:144;;;49762:12;;-1:-1:-1;;;;;49762:12:0;:18;388:10;49795:6;;49802:1;49795:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;49762:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;49747:58;;:12;:58;:::i;:::-;49732:73;-1:-1:-1;49712:3:0;;;;:::i;:::-;;;;49673:144;;44180:328;44319:7;;44289:8;;:26;;-1:-1:-1;;;44289:26:0;;-1:-1:-1;;;;;10455:32:1;;;44289:26:0;;;10437:51:1;-1:-1:-1;;;;44319:7:0;;44289:8;;;;;;;;:18;;10410::1;;44289:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:37;44286:215;;-1:-1:-1;44350:1:0;;44180:328;-1:-1:-1;;44180:328:0:o;44286:215::-;44432:8;;:26;;-1:-1:-1;;;44432:26:0;;-1:-1:-1;;;;;10455:32:1;;;44432:26:0;;;10437:51:1;44420:39:0;;44432:8;;;;;:18;;10410::1;;44432:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;44420:7;;;:11;:39::i;:::-;44409:50;44180:328;-1:-1:-1;;;44180:328:0:o;35182:115::-;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;35256:9:::1;:33:::0;;-1:-1:-1;;;;;;35256:33:0::1;-1:-1:-1::0;;;;;35256:33:0;;;::::1;::::0;;;::::1;::::0;;35182:115::o;32464:98::-;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;32534:8:::1;:20:::0;;-1:-1:-1;;;;;;32534:20:0::1;-1:-1:-1::0;;;;;32534:20:0;;;::::1;::::0;;;::::1;::::0;;32464:98::o;6670:201::-;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6759:22:0;::::1;6751:73;;;::::0;-1:-1:-1;;;6751:73:0;;16173:2:1;6751:73:0::1;::::0;::::1;16155:21:1::0;16212:2;16192:18;;;16185:30;16251:34;16231:18;;;16224:62;-1:-1:-1;;;16302:18:1;;;16295:36;16348:19;;6751:73:0::1;15971:402:1::0;6751:73:0::1;6835:28;6854:8;6835:18;:28::i;45121:176::-:0;45233:19;45242:9;;45233:8;:19::i;:::-;45263:26;45278:10;;45263:14;:26::i;45305:2604::-;388:10;;45407:71;;;;-1:-1:-1;;;45407:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;45497:17:0;;;;;;:9;:17;;;;;;;;:26;45489:66;;;;-1:-1:-1;;;45489:66:0;;;;;;;:::i;:::-;45566:20;45606:9;45601:139;45621:17;;;45601:139;;;45690:7;;-1:-1:-1;;;;;45690:7:0;:13;388:10;45718:6;;45725:1;45718:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;45690:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;45675:53;;:12;:53;:::i;:::-;45660:68;-1:-1:-1;45640:3:0;;;;:::i;:::-;;;;45601:139;;;;45773:1;45758:12;:16;45750:76;;;;-1:-1:-1;;;45750:76:0;;;;;;;:::i;:::-;45837:17;45857:46;45899:3;45857:37;45874:19;45886:6;45874:11;:19::i;45857:46::-;45837:66;;45914:20;45937:33;45966:3;45937:24;45954:6;;45937:12;:16;;:24;;;;:::i;:33::-;45914:56;;46001:1;45989:9;:13;45981:39;;;;-1:-1:-1;;;45981:39:0;;;;;;;:::i;:::-;46057:1;46035:19;46047:6;46035:11;:19::i;:::-;:23;46031:1871;;;46075:18;46123:12;46096:24;46111:9;46096:12;:24;:::i;:::-;:39;;;;:::i;:::-;46150:4;;:28;;-1:-1:-1;;;46150:28:0;;46075:60;;-1:-1:-1;;;;;;46150:4:0;;:8;;:28;;46159:6;;46075:60;;46150:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;46363:13:0;:19;46221:31;;46363:19;-1:-1:-1;;;46363:19:0;;;;;46321:38;;-1:-1:-1;;;46336:23:0;;;;46321:12;:38;:::i;:::-;46320:62;;;;:::i;:::-;46298:12;:18;;-1:-1:-1;;;46298:18:0;;;;;46256:37;;46268:25;;;;;46256:9;:37;:::i;:::-;46255:62;;;;:::i;:::-;:127;;;;:::i;:::-;46397:4;;:48;;-1:-1:-1;;;46397:48:0;;46221:161;;-1:-1:-1;;;;;;46397:4:0;;:8;;:48;;46414:4;;46221:161;;46397:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;46484:16:0;;;46498:1;46484:16;;;;;;;;46460:21;;46484:16;;;;;;;;-1:-1:-1;;46533:9:0;;46515:7;;;;-1:-1:-1;;;;;;46533:9:0;;46515:7;;-1:-1:-1;46533:9:0;;46515:7;;;;:::i;:::-;-1:-1:-1;;;;;46515:28:0;;;:7;;;;;;;;;:28;46568:5;;46558:7;;46568:5;;;46558:4;;46568:5;;46558:7;;;;;;:::i;:::-;-1:-1:-1;;;;;46558:15:0;;;:7;;;;;;;;;:15;46588:9;;46753:15;;46588:229;;-1:-1:-1;;;46588:229:0;;:9;;;;:61;;:229;;46668:23;;46588:9;;46730:4;;46753:15;;;;46787;;46588:229;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46847:1;46838:6;;:10;46834:985;;;47063:13;:19;46994:24;;47063:19;-1:-1:-1;;;47063:19:0;;;;;47022:37;;-1:-1:-1;;;47037:22:0;;;;47022:12;:37;:::i;:::-;47021:61;;;;:::i;:::-;47099:4;;:41;;-1:-1:-1;;;47099:41:0;;46994:88;;-1:-1:-1;;;;;;47099:4:0;;:8;;:41;;47116:4;;46994:88;;47099:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;47157:9:0;;47323:8;;47157:227;;-1:-1:-1;;;47157:227:0;;-1:-1:-1;;;;;47157:9:0;;;;:61;;:227;;47239:16;;47157:9;;47298:4;;47323:8;;;47352:15;;47157:227;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;47517:13:0;:19;47446:25;;-1:-1:-1;47517:19:0;-1:-1:-1;;;47517:19:0;;;;;-1:-1:-1;47475:38:0;;47490:23;;;;47475:12;:38;:::i;:::-;47474:62;;;;:::i;:::-;47446:90;;47577:17;47553:20;;:41;;;;;;;:::i;:::-;;;;-1:-1:-1;;47639:23:0;;47615:20;;:47;47611:193;;47683:4;;47707:20;;47683:45;;-1:-1:-1;;;47683:45:0;;-1:-1:-1;;;;;47683:4:0;;;;:8;;:45;;47700:4;;47707:20;47683:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;47747:39;47765:20;;47747:17;:39::i;:::-;46850:969;;46834:985;46060:1770;;;46031:1871;;;47860:4;;:30;;-1:-1:-1;;;47860:30:0;;-1:-1:-1;;;;;47860:4:0;;;;:8;;:30;;47869:6;;47877:12;;47860:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;33984:236::-;5807:7;5834:6;-1:-1:-1;;;;;5834:6:0;388:10;5981:23;5973:68;;;;-1:-1:-1;;;5973:68:0;;;;;;;:::i;:::-;34076:11:::1;:30:::0;;::::1;34117:40:::0;;::::1;::::0;::::1;-1:-1:-1::0;;34117:40:0;;;34076:30;;::::1;34117:40:::0;::::1;::::0;;34188:24:::1;34144:13:::0;34098:8;34188:24:::1;:::i;:::-;34168:11;:44:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;34168:44:0::1;-1:-1:-1::0;;34168:44:0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;33984:236:0:o;2173:471::-;2231:7;2476:6;2472:47;;-1:-1:-1;2506:1:0;2499:8;;2472:47;2531:9;2543:5;2547:1;2543;:5;:::i;:::-;2531:17;-1:-1:-1;2576:1:0;2567:5;2571:1;2531:17;2567:5;:::i;:::-;:10;2559:56;;;;-1:-1:-1;;;2559:56:0;;18969:2:1;2559:56:0;;;18951:21:1;19008:2;18988:18;;;18981:30;19047:34;19027:18;;;19020:62;-1:-1:-1;;;19098:18:1;;;19091:31;19139:19;;2559:56:0;18767:397:1;2559:56:0;2635:1;-1:-1:-1;2173:471:0;;;;;:::o;3120:132::-;3178:7;3205:39;3209:1;3212;3205:39;;;;;;;;;;;;;;;;;:3;:39::i;36540:771::-;36636:16;;;36650:1;36636:16;;;;;;;;36612:21;;36636:16;;;;;;;;-1:-1:-1;;36681:9:0;;36663:7;;;;-1:-1:-1;;;;;;36681:9:0;;36663:7;;-1:-1:-1;36681:9:0;;36663:7;;;;:::i;:::-;-1:-1:-1;;;;;36663:28:0;;;:7;;;;;;;;;:28;36712:5;;36702:7;;36712:5;;;36702:4;;36712:5;;36702:7;;;;;;:::i;:::-;-1:-1:-1;;;;;36702:15:0;;;:7;;;;;;;;;:15;36730:9;;;:61;36806:19;36824:1;36806:15;:19;:::i;:::-;36840:1;36856:4;36883;36903:15;36730:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;36997:9:0;;37065;;36963:21;;-1:-1:-1;;;;;;36997:9:0;;;;-1:-1:-1;36997:26:0;;36963:21;;37065:9;37090:19;37108:1;37090:15;:19;:::i;:::-;37156:15;;36997:215;;-1:-1:-1;;;;;;36997:215:0;;;;;;;;;;;37124:1;;;;-1:-1:-1;;;;;37156:15:0;;37186;;36997:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;37228:40:0;;;23551:25:1;;;23607:2;23592:18;;23585:34;;;37228:40:0;;-1:-1:-1;23524:18:1;37228:40:0;;;;;;;-1:-1:-1;;37302:1:0;37279:20;:24;-1:-1:-1;36540:771:0:o;35305:1223::-;35376:11;:17;-1:-1:-1;;;35376:17:0;;;;35372:61;;35305:1223;:::o;35372:61::-;35520:11;:17;35445:23;;35542:1;;35520:17;-1:-1:-1;;;35520:17:0;;;;;35473:42;;35491:24;;;;;35473:15;:42;:::i;:::-;35472:66;;;;:::i;:::-;35471:72;;;;:::i;:::-;35627:11;:17;35445:98;;-1:-1:-1;35554:27:0;;35627:17;-1:-1:-1;;;35627:17:0;;;;;35585:37;;35603:19;35585:15;:37;:::i;:::-;35584:61;;;;:::i;:::-;35554:91;-1:-1:-1;35661:23:0;;35658:109;;35701:9;;35728:4;;35701:54;;-1:-1:-1;;;35701:54:0;;-1:-1:-1;;;;;35701:9:0;;;;:18;;:54;;35728:4;;;35735:19;;35701:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;35658:109;35803:16;;;35817:1;35803:16;;;;;;;;35779:21;;35803:16;;;;;;;;-1:-1:-1;;35848:9:0;;35830:7;;;;-1:-1:-1;;;;;;35848:9:0;;35830:7;;-1:-1:-1;35848:9:0;;35830:7;;;;:::i;:::-;-1:-1:-1;;;;;35830:28:0;;;:7;;;;;;;;;:28;35879:5;;35869:7;;35879:5;;;35869:4;;35879:5;;35869:7;;;;;;:::i;:::-;-1:-1:-1;;;;;35869:15:0;;;:7;;;;;;;;;:15;35897:9;;:195;;-1:-1:-1;;;35897:195:0;;:9;;;:61;;:195;;35973:15;;35897:9;;36019:4;;36046;;36066:15;;35897:195;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;36126:21:0;;-1:-1:-1;;36164:19:0;;;-1:-1:-1;36160:351:0;;36200:9;;36272;;36375:15;;36200:239;;-1:-1:-1;;;36200:239:0;;-1:-1:-1;;;;;36200:9:0;;;;:26;;36234:10;;36200:239;;36272:9;;;;36301:15;;36200:9;;;;36375:15;;36409;;36200:239;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;36459:40:0;;;23551:25:1;;;23607:2;23592:18;;23585:34;;;36459:40:0;;-1:-1:-1;23524:18:1;36459:40:0;;;;;;;35361:1167;;;;35305:1223;:::o;7031:191::-;7105:16;7124:6;;-1:-1:-1;;;;;7141:17:0;;;-1:-1:-1;;;;;;7141:17:0;;;;;;7174:40;;7124:6;;;;;;;7174:40;;7105:16;7174:40;7094:128;7031:191;:::o;1249:136::-;1307:7;1334:43;1338:1;1341;1334:43;;;;;;;;;;;;;;;;;:3;:43::i;3748:312::-;3868:7;3903:12;3896:5;3888:28;;;;-1:-1:-1;;;3888:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3927:9:0;3939:5;3943:1;3939;:5;:::i;:::-;3927:17;3748:312;-1:-1:-1;;;;;3748:312:0:o;1688:226::-;1808:7;1844:12;1836:6;;;;1828:29;;;;-1:-1:-1;;;1828:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1868:9:0;1880:5;1884:1;1880;:5;:::i;-1:-1:-1:-;;;;;;;;:::o;14:366:1:-;76:8;86:6;140:3;133:4;125:6;121:17;117:27;107:55;;158:1;155;148:12;107:55;-1:-1:-1;181:20:1;;224:18;213:30;;210:50;;;256:1;253;246:12;210:50;293:4;285:6;281:17;269:29;;353:3;346:4;336:6;333:1;329:14;321:6;317:27;313:38;310:47;307:67;;;370:1;367;360:12;307:67;14:366;;;;;:::o;385:531::-;428:5;481:3;474:4;466:6;462:17;458:27;448:55;;499:1;496;489:12;448:55;535:6;522:20;561:18;557:2;554:26;551:52;;;583:18;;:::i;:::-;627:55;670:2;651:13;;-1:-1:-1;;647:27:1;676:4;643:38;627:55;:::i;:::-;707:2;698:7;691:19;753:3;746:4;741:2;733:6;729:15;725:26;722:35;719:55;;;770:1;767;760:12;719:55;835:2;828:4;820:6;816:17;809:4;800:7;796:18;783:55;883:1;858:16;;;876:4;854:27;847:38;;;;862:7;385:531;-1:-1:-1;;;385:531:1:o;921:159::-;988:20;;1048:6;1037:18;;1027:29;;1017:57;;1070:1;1067;1060:12;1017:57;921:159;;;:::o;1085:247::-;1144:6;1197:2;1185:9;1176:7;1172:23;1168:32;1165:52;;;1213:1;1210;1203:12;1165:52;1252:9;1239:23;1271:31;1296:5;1271:31;:::i;1597:382::-;1662:6;1670;1723:2;1711:9;1702:7;1698:23;1694:32;1691:52;;;1739:1;1736;1729:12;1691:52;1778:9;1765:23;1797:31;1822:5;1797:31;:::i;:::-;1847:5;-1:-1:-1;1904:2:1;1889:18;;1876:32;1917:30;1876:32;1917:30;:::i;:::-;1966:7;1956:17;;;1597:382;;;;;:::o;1984:1205::-;2087:6;2095;2148:2;2136:9;2127:7;2123:23;2119:32;2116:52;;;2164:1;2161;2154:12;2116:52;2204:9;2191:23;2233:18;2274:2;2266:6;2263:14;2260:34;;;2290:1;2287;2280:12;2260:34;2328:6;2317:9;2313:22;2303:32;;2373:7;2366:4;2362:2;2358:13;2354:27;2344:55;;2395:1;2392;2385:12;2344:55;2431:2;2418:16;2453:4;2476:2;2472;2469:10;2466:36;;;2482:18;;:::i;:::-;2528:2;2525:1;2521:10;2551:28;2575:2;2571;2567:11;2551:28;:::i;:::-;2613:15;;;2644:12;;;;2676:11;;;2706;;;2702:20;;2699:33;-1:-1:-1;2696:53:1;;;2745:1;2742;2735:12;2696:53;2767:1;2758:10;;2788:1;2798:310;2814:2;2809:3;2806:11;2798:310;;;2895:3;2882:17;2931:2;2918:11;2915:19;2912:39;;;2947:1;2944;2937:12;2912:39;2976:57;3025:7;3020:2;3006:11;3002:2;2998:20;2994:29;2976:57;:::i;:::-;2964:70;;-1:-1:-1;3054:12:1;;;;3086;;;;2836:1;2827:11;2798:310;;;-1:-1:-1;3127:5:1;;3164:18;;;;3151:32;;-1:-1:-1;;;;;;;;;1984:1205:1:o;3194:435::-;3279:6;3287;3340:2;3328:9;3319:7;3315:23;3311:32;3308:52;;;3356:1;3353;3346:12;3308:52;3396:9;3383:23;3429:18;3421:6;3418:30;3415:50;;;3461:1;3458;3451:12;3415:50;3500:69;3561:7;3552:6;3541:9;3537:22;3500:69;:::i;:::-;3588:8;;3474:95;;-1:-1:-1;3194:435:1;-1:-1:-1;;;;3194:435:1:o;3634:922::-;3755:6;3763;3771;3779;3787;3795;3848:3;3836:9;3827:7;3823:23;3819:33;3816:53;;;3865:1;3862;3855:12;3816:53;3905:9;3892:23;3938:18;3930:6;3927:30;3924:50;;;3970:1;3967;3960:12;3924:50;4009:69;4070:7;4061:6;4050:9;4046:22;4009:69;:::i;:::-;4097:8;;-1:-1:-1;3983:95:1;-1:-1:-1;;4182:2:1;4167:18;;4154:32;4195:31;4154:32;4195:31;:::i;:::-;4245:5;-1:-1:-1;4297:2:1;4282:18;;4269:32;;-1:-1:-1;4353:2:1;4338:18;;4325:32;4366:33;4325:32;4366:33;:::i;:::-;4418:7;-1:-1:-1;4477:3:1;4462:19;;4449:33;4491;4449;4491;:::i;:::-;4543:7;4533:17;;;3634:922;;;;;;;;:::o;4561:769::-;4681:6;4689;4697;4705;4758:2;4746:9;4737:7;4733:23;4729:32;4726:52;;;4774:1;4771;4764:12;4726:52;4814:9;4801:23;4843:18;4884:2;4876:6;4873:14;4870:34;;;4900:1;4897;4890:12;4870:34;4939:69;5000:7;4991:6;4980:9;4976:22;4939:69;:::i;:::-;5027:8;;-1:-1:-1;4913:95:1;-1:-1:-1;5115:2:1;5100:18;;5087:32;;-1:-1:-1;5131:16:1;;;5128:36;;;5160:1;5157;5150:12;5128:36;;5199:71;5262:7;5251:8;5240:9;5236:24;5199:71;:::i;:::-;4561:769;;;;-1:-1:-1;5289:8:1;-1:-1:-1;;;;4561:769:1:o;5335:245::-;5402:6;5455:2;5443:9;5434:7;5430:23;5426:32;5423:52;;;5471:1;5468;5461:12;5423:52;5503:9;5497:16;5522:28;5544:5;5522:28;:::i;6126:322::-;6195:6;6248:2;6236:9;6227:7;6223:23;6219:32;6216:52;;;6264:1;6261;6254:12;6216:52;6304:9;6291:23;6337:18;6329:6;6326:30;6323:50;;;6369:1;6366;6359:12;6323:50;6392;6434:7;6425:6;6414:9;6410:22;6392:50;:::i;:::-;6382:60;6126:322;-1:-1:-1;;;;6126:322:1:o;6453:854::-;6572:6;6580;6588;6596;6604;6657:3;6645:9;6636:7;6632:23;6628:33;6625:53;;;6674:1;6671;6664:12;6625:53;6714:9;6701:23;6743:18;6784:2;6776:6;6773:14;6770:34;;;6800:1;6797;6790:12;6770:34;6823:50;6865:7;6856:6;6845:9;6841:22;6823:50;:::i;:::-;6813:60;;6926:2;6915:9;6911:18;6898:32;6882:48;;6955:2;6945:8;6942:16;6939:36;;;6971:1;6968;6961:12;6939:36;;7010:71;7073:7;7062:8;7051:9;7047:24;7010:71;:::i;:::-;7100:8;;-1:-1:-1;6984:97:1;-1:-1:-1;;7182:2:1;7167:18;;7154:32;;-1:-1:-1;7236:2:1;7221:18;;7208:32;7249:28;7208:32;7249:28;:::i;:::-;7296:5;7286:15;;;6453:854;;;;;;;;:::o;7312:390::-;7390:6;7398;7451:2;7439:9;7430:7;7426:23;7422:32;7419:52;;;7467:1;7464;7457:12;7419:52;7507:9;7494:23;7540:18;7532:6;7529:30;7526:50;;;7572:1;7569;7562:12;7526:50;7595;7637:7;7628:6;7617:9;7613:22;7595:50;:::i;:::-;7585:60;7692:2;7677:18;;;;7664:32;;-1:-1:-1;;;;7312:390:1:o;7707:256::-;7773:6;7781;7834:2;7822:9;7813:7;7809:23;7805:32;7802:52;;;7850:1;7847;7840:12;7802:52;7873:28;7891:9;7873:28;:::i;:::-;7863:38;;7920:37;7953:2;7942:9;7938:18;7920:37;:::i;:::-;7910:47;;7707:256;;;;;:::o;7968:401::-;8050:6;8058;8066;8074;8127:3;8115:9;8106:7;8102:23;8098:33;8095:53;;;8144:1;8141;8134:12;8095:53;8167:28;8185:9;8167:28;:::i;:::-;8157:38;;8214:37;8247:2;8236:9;8232:18;8214:37;:::i;:::-;8204:47;;8270:37;8303:2;8292:9;8288:18;8270:37;:::i;:::-;8260:47;;8326:37;8359:2;8348:9;8344:18;8326:37;:::i;:::-;8316:47;;7968:401;;;;;;;:::o;8374:180::-;8433:6;8486:2;8474:9;8465:7;8461:23;8457:32;8454:52;;;8502:1;8499;8492:12;8454:52;-1:-1:-1;8525:23:1;;8374:180;-1:-1:-1;8374:180:1:o;8559:184::-;8629:6;8682:2;8670:9;8661:7;8657:23;8653:32;8650:52;;;8698:1;8695;8688:12;8650:52;-1:-1:-1;8721:16:1;;8559:184;-1:-1:-1;8559:184:1:o;8748:306::-;8836:6;8844;8852;8905:2;8893:9;8884:7;8880:23;8876:32;8873:52;;;8921:1;8918;8911:12;8873:52;8950:9;8944:16;8934:26;;9000:2;8989:9;8985:18;8979:25;8969:35;;9044:2;9033:9;9029:18;9023:25;9013:35;;8748:306;;;;;:::o;9059:284::-;9117:6;9170:2;9158:9;9149:7;9145:23;9141:32;9138:52;;;9186:1;9183;9176:12;9138:52;9225:9;9212:23;9275:18;9268:5;9264:30;9257:5;9254:41;9244:69;;9309:1;9306;9299:12;9348:461;9401:3;9439:5;9433:12;9466:6;9461:3;9454:19;9492:4;9521:2;9516:3;9512:12;9505:19;;9558:2;9551:5;9547:14;9579:1;9589:195;9603:6;9600:1;9597:13;9589:195;;;9668:13;;-1:-1:-1;;;;;9664:39:1;9652:52;;9724:12;;;;9759:15;;;;9700:1;9618:9;9589:195;;;-1:-1:-1;9800:3:1;;9348:461;-1:-1:-1;;;;;9348:461:1:o;9814:472::-;9856:3;9894:5;9888:12;9921:6;9916:3;9909:19;9946:1;9956:162;9970:6;9967:1;9964:13;9956:162;;;10032:4;10088:13;;;10084:22;;10078:29;10060:11;;;10056:20;;10049:59;9985:12;9956:162;;;10136:6;10133:1;10130:13;10127:87;;;10202:1;10195:4;10186:6;10181:3;10177:16;10173:27;10166:38;10127:87;-1:-1:-1;10268:2:1;10247:15;-1:-1:-1;;10243:29:1;10234:39;;;;10275:4;10230:50;;9814:472;-1:-1:-1;;9814:472:1:o;10723:375::-;-1:-1:-1;;;;;10981:15:1;;;10963:34;;11033:15;;;;11028:2;11013:18;;11006:43;11080:2;11065:18;;11058:34;;;;10913:2;10898:18;;10723:375::o;11103:289::-;-1:-1:-1;;;;;11310:32:1;;;;11292:51;;11374:2;11359:18;;11352:34;11280:2;11265:18;;11103:289::o;11397:317::-;-1:-1:-1;;;;;11574:32:1;;11556:51;;11643:2;11638;11623:18;;11616:30;;;-1:-1:-1;;11663:45:1;;11689:18;;11681:6;11663:45;:::i;11998:615::-;-1:-1:-1;;;;;12365:15:1;;;12347:34;;12412:2;12397:18;;12390:34;;;;12455:2;12440:18;;12433:34;;;;12498:2;12483:18;;12476:34;;;;12547:15;;;12541:3;12526:19;;12519:44;12327:3;12579:19;;12572:35;;;;12296:3;12281:19;;11998:615::o;12618:298::-;-1:-1:-1;;;;;12809:32:1;;;;12791:51;;12890:18;12878:31;12873:2;12858:18;;12851:59;12779:2;12764:18;;12618:298::o;14244:220::-;14393:2;14382:9;14375:21;14356:4;14413:45;14454:2;14443:9;14439:18;14431:6;14413:45;:::i;14888:337::-;15090:2;15072:21;;;15129:2;15109:18;;;15102:30;-1:-1:-1;;;15163:2:1;15148:18;;15141:43;15216:2;15201:18;;14888:337::o;15563:403::-;15765:2;15747:21;;;15804:2;15784:18;;;15777:30;15843:34;15838:2;15823:18;;15816:62;-1:-1:-1;;;15909:2:1;15894:18;;15887:37;15956:3;15941:19;;15563:403::o;16378:401::-;16580:2;16562:21;;;16619:2;16599:18;;;16592:30;16658:34;16653:2;16638:18;;16631:62;-1:-1:-1;;;16724:2:1;16709:18;;16702:35;16769:3;16754:19;;16378:401::o;17192:397::-;17394:2;17376:21;;;17433:2;17413:18;;;17406:30;17472:34;17467:2;17452:18;;17445:62;-1:-1:-1;;;17538:2:1;17523:18;;17516:31;17579:3;17564:19;;17192:397::o;17594:351::-;17796:2;17778:21;;;17835:2;17815:18;;;17808:30;17874:29;17869:2;17854:18;;17847:57;17936:2;17921:18;;17594:351::o;18360:402::-;18562:2;18544:21;;;18601:2;18581:18;;;18574:30;18640:34;18635:2;18620:18;;18613:62;-1:-1:-1;;;18706:2:1;18691:18;;18684:36;18752:3;18737:19;;18360:402::o;19169:356::-;19371:2;19353:21;;;19390:18;;;19383:30;19449:34;19444:2;19429:18;;19422:62;19516:2;19501:18;;19169:356::o;19530:352::-;19732:2;19714:21;;;19771:2;19751:18;;;19744:30;19810;19805:2;19790:18;;19783:58;19873:2;19858:18;;19530:352::o;20291:402::-;20493:2;20475:21;;;20532:2;20512:18;;;20505:30;20571:34;20566:2;20551:18;;20544:62;-1:-1:-1;;;20637:2:1;20622:18;;20615:36;20683:3;20668:19;;20291:402::o;20698:412::-;20900:2;20882:21;;;20939:2;20919:18;;;20912:30;20978:34;20973:2;20958:18;;20951:62;-1:-1:-1;;;21044:2:1;21029:18;;21022:46;21100:3;21085:19;;20698:412::o;22195:590::-;22502:6;22491:9;22484:25;22545:6;22540:2;22529:9;22525:18;22518:34;22588:3;22583:2;22572:9;22568:18;22561:31;22465:4;22609:57;22661:3;22650:9;22646:19;22638:6;22609:57;:::i;:::-;-1:-1:-1;;;;;22702:32:1;;;;22697:2;22682:18;;22675:60;-1:-1:-1;22766:3:1;22751:19;22744:35;22601:65;22195:590;-1:-1:-1;;;22195:590:1:o;23630:275::-;23701:2;23695:9;23766:2;23747:13;;-1:-1:-1;;23743:27:1;23731:40;;23801:18;23786:34;;23822:22;;;23783:62;23780:88;;;23848:18;;:::i;:::-;23884:2;23877:22;23630:275;;-1:-1:-1;23630:275:1:o;23910:224::-;23949:3;23977:6;24010:2;24007:1;24003:10;24040:2;24037:1;24033:10;24071:3;24067:2;24063:12;24058:3;24055:21;24052:47;;;24079:18;;:::i;:::-;24115:13;;23910:224;-1:-1:-1;;;;23910:224:1:o;24139:128::-;24179:3;24210:1;24206:6;24203:1;24200:13;24197:39;;;24216:18;;:::i;:::-;-1:-1:-1;24252:9:1;;24139:128::o;24272:217::-;24312:1;24338;24328:132;;24382:10;24377:3;24373:20;24370:1;24363:31;24417:4;24414:1;24407:15;24445:4;24442:1;24435:15;24328:132;-1:-1:-1;24474:9:1;;24272:217::o;24494:168::-;24534:7;24600:1;24596;24592:6;24588:14;24585:1;24582:21;24577:1;24570:9;24563:17;24559:45;24556:71;;;24607:18;;:::i;:::-;-1:-1:-1;24647:9:1;;24494:168::o;24667:125::-;24707:4;24735:1;24732;24729:8;24726:34;;;24740:18;;:::i;:::-;-1:-1:-1;24777:9:1;;24667:125::o;24797:135::-;24836:3;-1:-1:-1;;24857:17:1;;24854:43;;;24877:18;;:::i;:::-;-1:-1:-1;24924:1:1;24913:13;;24797:135::o;24937:127::-;24998:10;24993:3;24989:20;24986:1;24979:31;25029:4;25026:1;25019:15;25053:4;25050:1;25043:15;25069:127;25130:10;25125:3;25121:20;25118:1;25111:31;25161:4;25158:1;25151:15;25185:4;25182:1;25175:15;25201:127;25262:10;25257:3;25253:20;25250:1;25243:31;25293:4;25290:1;25283:15;25317:4;25314:1;25307:15;25333:131;-1:-1:-1;;;;;25408:31:1;;25398:42;;25388:70;;25454:1;25451;25444:12;25469:118;25555:5;25548:13;25541:21;25534:5;25531:32;25521:60;;25577:1;25574;25567:12
Swarm Source
ipfs://1db2baa9210ebc0f89421de961c5be52e4cc6323316145e0b4038af52707d61e
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
AVAX | 100.00% | $22.26 | 0.47 | $10.46 |
Loading...
Loading
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.