More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 498,461 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Send OFTV2 | 59471097 | 16 hrs ago | IN | 0.00035369 ETH | 0.00001773 | ||||
Send OFT | 59466573 | 18 hrs ago | IN | 0.00007862 ETH | 0.0000121 | ||||
Send OFT | 59463282 | 20 hrs ago | IN | 0.00021999 ETH | 0.00000819 | ||||
Send OFT | 59463202 | 21 hrs ago | IN | 0.00021995 ETH | 0.00001409 | ||||
Send OFT | 59456499 | 25 hrs ago | IN | 0.00001862 ETH | 0.00001013 | ||||
Send OFT | 59456011 | 25 hrs ago | IN | 0.00082127 ETH | 0.00001756 | ||||
Send OFT | 59443157 | 35 hrs ago | IN | 0.00030355 ETH | 0.00001033 | ||||
Send OFT | 59443061 | 36 hrs ago | IN | 0.00001945 ETH | 0.00001292 | ||||
Send OFTV2 | 59442717 | 36 hrs ago | IN | 0.00177238 ETH | 0.00001188 | ||||
Send OFT | 59439723 | 38 hrs ago | IN | 0.00024235 ETH | 0.00000817 | ||||
Send OFT | 59439580 | 38 hrs ago | IN | 0.00027899 ETH | 0.0000193 | ||||
Send OFT | 59428055 | 44 hrs ago | IN | 0.00007942 ETH | 0.00000823 | ||||
Send OFT | 59427804 | 44 hrs ago | IN | 0.00030355 ETH | 0.00001013 | ||||
Send OFT | 59427535 | 44 hrs ago | IN | 0.00001945 ETH | 0.00000833 | ||||
Send OFT | 59427438 | 44 hrs ago | IN | 0.00001945 ETH | 0.00001245 | ||||
Send OFT | 59423687 | 47 hrs ago | IN | 0.00001945 ETH | 0.00001247 | ||||
Send OFT | 59421770 | 2 days ago | IN | 0.00130411 ETH | 0.00001159 | ||||
Send OFTV2 | 59403353 | 2 days ago | IN | 0.00092231 ETH | 0.00001326 | ||||
Send OFT | 59398002 | 2 days ago | IN | 0.00001874 ETH | 0.00001155 | ||||
Send OFT | 59396604 | 2 days ago | IN | 0.00001874 ETH | 0.0000177 | ||||
Send OFT | 59395790 | 2 days ago | IN | 0.00001874 ETH | 0.0000142 | ||||
Send OFT | 59392943 | 2 days ago | IN | 0.00001874 ETH | 0.00001116 | ||||
Send OFT | 59389669 | 2 days ago | IN | 0.00001874 ETH | 0.00001197 | ||||
Send OFT | 59381885 | 3 days ago | IN | 0.00001874 ETH | 0.00001694 | ||||
Send OFT | 59373717 | 3 days ago | IN | 0.00012674 ETH | 0.00001243 |
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
59471097 | 16 hrs ago | 0.00035369 ETH | ||||
59471097 | 16 hrs ago | 0.00035369 ETH | ||||
59466573 | 18 hrs ago | 0.00007862 ETH | ||||
59466573 | 18 hrs ago | 0.00007862 ETH | ||||
59463282 | 20 hrs ago | 0.00021999 ETH | ||||
59463282 | 20 hrs ago | 0.00021999 ETH | ||||
59463202 | 21 hrs ago | 0.00021995 ETH | ||||
59463202 | 21 hrs ago | 0.00021995 ETH | ||||
59456499 | 25 hrs ago | 0.00001862 ETH | ||||
59456499 | 25 hrs ago | 0.00001862 ETH | ||||
59456011 | 25 hrs ago | 0.00082127 ETH | ||||
59456011 | 25 hrs ago | 0.00082127 ETH | ||||
59443157 | 35 hrs ago | 0.00030355 ETH | ||||
59443157 | 35 hrs ago | 0.00030355 ETH | ||||
59443061 | 36 hrs ago | 0.00001945 ETH | ||||
59443061 | 36 hrs ago | 0.00001945 ETH | ||||
59442717 | 36 hrs ago | 0.00177238 ETH | ||||
59442717 | 36 hrs ago | 0.00177238 ETH | ||||
59439723 | 38 hrs ago | 0.00024235 ETH | ||||
59439723 | 38 hrs ago | 0.00024235 ETH | ||||
59439580 | 38 hrs ago | 0.00027899 ETH | ||||
59439580 | 38 hrs ago | 0.00027899 ETH | ||||
59428055 | 44 hrs ago | 0.00007942 ETH | ||||
59428055 | 44 hrs ago | 0.00007942 ETH | ||||
59427804 | 44 hrs ago | 0.00030355 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
OFTWrapper
Compiler Version
v0.8.8+commit.dddeac2f
ZkSolc Version
v1.3.10
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; import "@layerzerolabs/solidity-examples/contracts/token/oft/v2/IOFTV2.sol"; import "@layerzerolabs/solidity-examples/contracts/token/oft/v2/fee/IOFTWithFee.sol"; import "@layerzerolabs/solidity-examples/contracts/token/oft/IOFT.sol"; import "./interfaces/IOFTWrapper.sol"; contract OFTWrapper is IOFTWrapper, Ownable, ReentrancyGuard { using SafeERC20 for IOFT; uint256 public constant BPS_DENOMINATOR = 10000; uint256 public constant MAX_UINT = 2**256 - 1; // indicates a bp fee of 0 that overrides the default bps uint256 public defaultBps; mapping(address => uint256) public oftBps; constructor(uint256 _defaultBps) { require(_defaultBps < BPS_DENOMINATOR, "OFTWrapper: defaultBps >= 100%"); defaultBps = _defaultBps; } function setDefaultBps(uint256 _defaultBps) external onlyOwner { require(_defaultBps < BPS_DENOMINATOR, "OFTWrapper: defaultBps >= 100%"); defaultBps = _defaultBps; } function setOFTBps(address _token, uint256 _bps) external onlyOwner { require(_bps < BPS_DENOMINATOR || _bps == MAX_UINT, "OFTWrapper: oftBps[_oft] >= 100%"); oftBps[_token] = _bps; } function withdrawFees( address _oft, address _to, uint256 _amount ) external onlyOwner { IOFT(_oft).safeTransfer(_to, _amount); emit WrapperFeeWithdrawn(_oft, _to, _amount); } function sendOFT( address _oft, uint16 _dstChainId, bytes calldata _toAddress, uint256 _amount, uint256 _minAmount, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams, FeeObj calldata _feeObj ) external payable nonReentrant { uint256 amountToSwap = _getAmountAndPayFee(_oft, _amount, _minAmount, _feeObj); IOFT(_oft).sendFrom{value: msg.value}(msg.sender, _dstChainId, _toAddress, amountToSwap, _refundAddress, _zroPaymentAddress, _adapterParams); } function sendProxyOFT( address _proxyOft, uint16 _dstChainId, bytes calldata _toAddress, uint256 _amount, uint256 _minAmount, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams, FeeObj calldata _feeObj ) external payable nonReentrant { address token = IOFTV2(_proxyOft).token(); { uint256 amountToSwap = _getAmountAndPayFeeProxy(token, _amount, _minAmount, _feeObj); // approve proxy to spend tokens IOFT(token).safeApprove(_proxyOft, amountToSwap); IOFT(_proxyOft).sendFrom{value: msg.value}(address(this), _dstChainId, _toAddress, amountToSwap, _refundAddress, _zroPaymentAddress, _adapterParams); } // reset allowance if sendFrom() does not consume full amount if (IOFT(token).allowance(address(this), _proxyOft) > 0) IOFT(token).safeApprove(_proxyOft, 0); } function sendOFTV2( address _oft, uint16 _dstChainId, bytes32 _toAddress, uint256 _amount, uint256 _minAmount, IOFTV2.LzCallParams calldata _callParams, FeeObj calldata _feeObj ) external payable nonReentrant { uint256 amountToSwap = _getAmountAndPayFee(_oft, _amount, _minAmount, _feeObj); IOFTV2(_oft).sendFrom{value: msg.value}(msg.sender, _dstChainId, _toAddress, amountToSwap, _callParams); } function sendOFTFeeV2( address _oft, uint16 _dstChainId, bytes32 _toAddress, uint256 _amount, uint256 _minAmount, IOFTV2.LzCallParams calldata _callParams, FeeObj calldata _feeObj ) external payable nonReentrant { uint256 amountToSwap = _getAmountAndPayFee(_oft, _amount, _minAmount, _feeObj); IOFTWithFee(_oft).sendFrom{value: msg.value}(msg.sender, _dstChainId, _toAddress, amountToSwap, _minAmount, _callParams); } function sendProxyOFTV2( address _proxyOft, uint16 _dstChainId, bytes32 _toAddress, uint256 _amount, uint256 _minAmount, IOFTV2.LzCallParams calldata _callParams, FeeObj calldata _feeObj ) external payable nonReentrant { address token = IOFTV2(_proxyOft).token(); uint256 amountToSwap = _getAmountAndPayFeeProxy(token, _amount, _minAmount, _feeObj); // approve proxy to spend tokens IOFT(token).safeApprove(_proxyOft, amountToSwap); IOFTV2(_proxyOft).sendFrom{value: msg.value}(address(this), _dstChainId, _toAddress, amountToSwap, _callParams); // reset allowance if sendFrom() does not consume full amount if (IOFT(token).allowance(address(this), _proxyOft) > 0) IOFT(token).safeApprove(_proxyOft, 0); } function sendProxyOFTFeeV2( address _proxyOft, uint16 _dstChainId, bytes32 _toAddress, uint256 _amount, uint256 _minAmount, IOFTV2.LzCallParams calldata _callParams, FeeObj calldata _feeObj ) external payable nonReentrant { address token = IOFTV2(_proxyOft).token(); uint256 amountToSwap = _getAmountAndPayFeeProxy(token, _amount, _minAmount, _feeObj); // approve proxy to spend tokens IOFT(token).safeApprove(_proxyOft, amountToSwap); IOFTWithFee(_proxyOft).sendFrom{value: msg.value}(address(this), _dstChainId, _toAddress, amountToSwap, _minAmount, _callParams); // reset allowance if sendFrom() does not consume full amount if (IOFT(token).allowance(address(this), _proxyOft) > 0) IOFT(token).safeApprove(_proxyOft, 0); } function _getAmountAndPayFeeProxy( address _token, uint256 _amount, uint256 _minAmount, FeeObj calldata _feeObj ) internal returns (uint256) { (uint256 amountToSwap, uint256 wrapperFee, uint256 callerFee) = getAmountAndFees(_token, _amount, _feeObj.callerBps); require(amountToSwap >= _minAmount && amountToSwap > 0, "OFTWrapper: not enough amountToSwap"); IOFT(_token).safeTransferFrom(msg.sender, address(this), amountToSwap + wrapperFee); // pay wrapper and move proxy tokens to contract if (callerFee > 0) IOFT(_token).safeTransferFrom(msg.sender, _feeObj.caller, callerFee); // pay caller emit WrapperFees(_feeObj.partnerId, _token, wrapperFee, callerFee); return amountToSwap; } function _getAmountAndPayFee( address _token, uint256 _amount, uint256 _minAmount, FeeObj calldata _feeObj ) internal returns (uint256) { (uint256 amountToSwap, uint256 wrapperFee, uint256 callerFee) = getAmountAndFees(_token, _amount, _feeObj.callerBps); require(amountToSwap >= _minAmount && amountToSwap > 0, "OFTWrapper: not enough amountToSwap"); if (wrapperFee > 0) IOFT(_token).safeTransferFrom(msg.sender, address(this), wrapperFee); // pay wrapper if (callerFee > 0) IOFT(_token).safeTransferFrom(msg.sender, _feeObj.caller, callerFee); // pay caller emit WrapperFees(_feeObj.partnerId, _token, wrapperFee, callerFee); return amountToSwap; } function getAmountAndFees( address _token, // will be the token on proxies, and the oft on non-proxy uint256 _amount, uint256 _callerBps ) public view override returns ( uint256 amount, uint256 wrapperFee, uint256 callerFee ) { uint256 wrapperBps; if (oftBps[_token] == MAX_UINT) { wrapperBps = 0; } else if (oftBps[_token] > 0) { wrapperBps = oftBps[_token]; } else { wrapperBps = defaultBps; } require(wrapperBps + _callerBps < BPS_DENOMINATOR, "OFTWrapper: Fee bps >= 100%"); wrapperFee = wrapperBps > 0 ? (_amount * wrapperBps) / BPS_DENOMINATOR : 0; callerFee = _callerBps > 0 ? (_amount * _callerBps) / BPS_DENOMINATOR : 0; amount = wrapperFee > 0 || callerFee > 0 ? _amount - wrapperFee - callerFee : _amount; } function estimateSendFee( address _oft, uint16 _dstChainId, bytes calldata _toAddress, uint256 _amount, bool _useZro, bytes calldata _adapterParams, FeeObj calldata _feeObj ) external view override returns (uint nativeFee, uint zroFee) { (uint256 amount, , ) = getAmountAndFees(_oft, _amount, _feeObj.callerBps); return IOFT(_oft).estimateSendFee(_dstChainId, _toAddress, amount, _useZro, _adapterParams); } function estimateSendFeeV2( address _oft, uint16 _dstChainId, bytes32 _toAddress, uint256 _amount, bool _useZro, bytes calldata _adapterParams, FeeObj calldata _feeObj ) external view override returns (uint nativeFee, uint zroFee) { (uint256 amount, , ) = getAmountAndFees(_oft, _amount, _feeObj.callerBps); return IOFTV2(_oft).estimateSendFee(_dstChainId, _toAddress, amount, _useZro, _adapterParams); } }
// SPDX-License-Identifier: MIT pragma solidity >=0.5.0; import "./IOFTCore.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; /** * @dev Interface of the OFT standard */ interface IOFT is IOFTCore, IERC20 { }
// SPDX-License-Identifier: MIT pragma solidity >=0.5.0; import "@openzeppelin/contracts/utils/introspection/IERC165.sol"; /** * @dev Interface of the IOFT core standard */ interface IOFTCore is IERC165 { /** * @dev estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`) * _dstChainId - L0 defined chain id to send tokens too * _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain * _amount - amount of the tokens to transfer * _useZro - indicates to use zro to pay L0 fees * _adapterParam - flexible bytes array to indicate messaging adapter services in L0 */ function estimateSendFee(uint16 _dstChainId, bytes calldata _toAddress, uint _amount, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee); /** * @dev send `_amount` amount of token to (`_dstChainId`, `_toAddress`) from `_from` * `_from` the owner of token * `_dstChainId` the destination chain identifier * `_toAddress` can be any size depending on the `dstChainId`. * `_amount` the quantity of tokens in wei * `_refundAddress` the address LayerZero refunds if too much message fee is sent * `_zroPaymentAddress` set to address(0x0) if not paying in ZRO (LayerZero Token) * `_adapterParams` is a flexible bytes array to indicate messaging adapter services */ function sendFrom(address _from, uint16 _dstChainId, bytes calldata _toAddress, uint _amount, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable; /** * @dev returns the circulating amount of tokens on current chain */ function circulatingSupply() external view returns (uint); /** * @dev returns the address of the ERC20 token */ function token() external view returns (address); /** * @dev Emitted when `_amount` tokens are moved from the `_sender` to (`_dstChainId`, `_toAddress`) * `_nonce` is the outbound nonce */ event SendToChain(uint16 indexed _dstChainId, address indexed _from, bytes _toAddress, uint _amount); /** * @dev Emitted when `_amount` tokens are received from `_srcChainId` into the `_toAddress` on the local chain. * `_nonce` is the inbound nonce. */ event ReceiveFromChain(uint16 indexed _srcChainId, address indexed _to, uint _amount); event SetUseCustomAdapterParams(bool _useCustomAdapterParams); }
// SPDX-License-Identifier: MIT pragma solidity >=0.5.0; import "@openzeppelin/contracts/utils/introspection/IERC165.sol"; /** * @dev Interface of the IOFT core standard */ interface ICommonOFT is IERC165 { struct LzCallParams { address payable refundAddress; address zroPaymentAddress; bytes adapterParams; } /** * @dev estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`) * _dstChainId - L0 defined chain id to send tokens too * _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain * _amount - amount of the tokens to transfer * _useZro - indicates to use zro to pay L0 fees * _adapterParam - flexible bytes array to indicate messaging adapter services in L0 */ function estimateSendFee(uint16 _dstChainId, bytes32 _toAddress, uint _amount, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee); function estimateSendAndCallFee(uint16 _dstChainId, bytes32 _toAddress, uint _amount, bytes calldata _payload, uint64 _dstGasForCall, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee); /** * @dev returns the circulating amount of tokens on current chain */ function circulatingSupply() external view returns (uint); /** * @dev returns the address of the ERC20 token */ function token() external view returns (address); }
// SPDX-License-Identifier: MIT pragma solidity >=0.5.0; import "./ICommonOFT.sol"; /** * @dev Interface of the IOFT core standard */ interface IOFTV2 is ICommonOFT { /** * @dev send `_amount` amount of token to (`_dstChainId`, `_toAddress`) from `_from` * `_from` the owner of token * `_dstChainId` the destination chain identifier * `_toAddress` can be any size depending on the `dstChainId`. * `_amount` the quantity of tokens in wei * `_refundAddress` the address LayerZero refunds if too much message fee is sent * `_zroPaymentAddress` set to address(0x0) if not paying in ZRO (LayerZero Token) * `_adapterParams` is a flexible bytes array to indicate messaging adapter services */ function sendFrom(address _from, uint16 _dstChainId, bytes32 _toAddress, uint _amount, LzCallParams calldata _callParams) external payable; function sendAndCall(address _from, uint16 _dstChainId, bytes32 _toAddress, uint _amount, bytes calldata _payload, uint64 _dstGasForCall, LzCallParams calldata _callParams) external payable; }
// SPDX-License-Identifier: MIT pragma solidity >=0.5.0; import "../ICommonOFT.sol"; /** * @dev Interface of the IOFT core standard */ interface IOFTWithFee is ICommonOFT { /** * @dev send `_amount` amount of token to (`_dstChainId`, `_toAddress`) from `_from` * `_from` the owner of token * `_dstChainId` the destination chain identifier * `_toAddress` can be any size depending on the `dstChainId`. * `_amount` the quantity of tokens in wei * `_minAmount` the minimum amount of tokens to receive on dstChain * `_refundAddress` the address LayerZero refunds if too much message fee is sent * `_zroPaymentAddress` set to address(0x0) if not paying in ZRO (LayerZero Token) * `_adapterParams` is a flexible bytes array to indicate messaging adapter services */ function sendFrom(address _from, uint16 _dstChainId, bytes32 _toAddress, uint _amount, uint _minAmount, LzCallParams calldata _callParams) external payable; function sendAndCall(address _from, uint16 _dstChainId, bytes32 _toAddress, uint _amount, uint _minAmount, bytes calldata _payload, uint64 _dstGasForCall, LzCallParams calldata _callParams) external payable; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ 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 Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling 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); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol) pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { // On the first call to nonReentrant, _status will be _NOT_ENTERED require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; } function _nonReentrantAfter() private { // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } /** * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a * `nonReentrant` function in the call stack. */ function _reentrancyGuardEntered() internal view returns (bool) { return _status == _ENTERED; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 amount) external returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/IERC20Permit.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. * * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't * need to send a transaction, and thus is not required to hold Ether at all. */ interface IERC20Permit { /** * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens, * given ``owner``'s signed approval. * * IMPORTANT: The same issues {IERC20-approve} has related to transaction * ordering also apply here. * * Emits an {Approval} event. * * Requirements: * * - `spender` cannot be the zero address. * - `deadline` must be a timestamp in the future. * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` * over the EIP712-formatted function arguments. * - the signature must use ``owner``'s current nonce (see {nonces}). * * For more information on the signature format, see the * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP * section]. */ function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; /** * @dev Returns the current nonce for `owner`. This value must be * included whenever a signature is generated for {permit}. * * Every successful call to {permit} increases ``owner``'s nonce by one. This * prevents a signature from being used multiple times. */ function nonces(address owner) external view returns (uint256); /** * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}. */ // solhint-disable-next-line func-name-mixedcase function DOMAIN_SEPARATOR() external view returns (bytes32); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/utils/SafeERC20.sol) pragma solidity ^0.8.0; import "../IERC20.sol"; import "../extensions/IERC20Permit.sol"; import "../../../utils/Address.sol"; /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure (when the token * contract returns false). Tokens that return no value (and instead revert or * throw on failure) are also supported, non-reverting calls are assumed to be * successful. * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { using Address for address; /** * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value, * non-reverting calls are assumed to be successful. */ function safeTransfer(IERC20 token, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } /** * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful. */ 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)); } /** * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value, * non-reverting calls are assumed to be successful. */ function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 oldAllowance = token.allowance(address(this), spender); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance + value)); } /** * @dev Decrease the calling contract's allowance toward `spender` by `value`. If `token` returns no value, * non-reverting calls are assumed to be successful. */ 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"); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance - value)); } } /** * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value, * non-reverting calls are assumed to be successful. Compatible with tokens that require the approval to be set to * 0 before setting it to a non-zero value. */ function forceApprove(IERC20 token, address spender, uint256 value) internal { bytes memory approvalCall = abi.encodeWithSelector(token.approve.selector, spender, value); if (!_callOptionalReturnBool(token, approvalCall)) { _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, 0)); _callOptionalReturn(token, approvalCall); } } /** * @dev Use a ERC-2612 signature to set the `owner` approval toward `spender` on `token`. * Revert on invalid signature. */ function safePermit( IERC20Permit token, address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) internal { uint256 nonceBefore = token.nonces(owner); token.permit(owner, spender, value, deadline, v, r, s); uint256 nonceAfter = token.nonces(owner); require(nonceAfter == nonceBefore + 1, "SafeERC20: permit did not succeed"); } /** * @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"); require(returndata.length == 0 || abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } /** * @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). * * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead. */ function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) { // 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 cannot use {Address-functionCall} here since this should return false // and not revert is the subcall reverts. (bool success, bytes memory returndata) = address(token).call(data); return success && (returndata.length == 0 || abi.decode(returndata, (bool))) && Address.isContract(address(token)); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol) pragma solidity ^0.8.1; /** * @dev Collection of functions related to the address type */ 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 * * Furthermore, `isContract` will also return true if the target contract within * the same transaction is already scheduled for destruction by `SELFDESTRUCT`, * which only has an effect at the end of a transaction. * ==== * * [IMPORTANT] * ==== * You shouldn't rely on `isContract` to protect against flash loan attacks! * * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract * constructor. * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize/address.code.length, which returns 0 // for contracts in construction, since the code is only stored at the end // of the constructor execution. return account.code.length > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://consensys.net/diligence/blog/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.8.0/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 functionCallWithValue(target, data, 0, "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"); (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResultFromTarget(target, 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) { (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResultFromTarget(target, 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) { (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResultFromTarget(target, success, returndata, errorMessage); } /** * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract. * * _Available since v4.8._ */ function verifyCallResultFromTarget( address target, bool success, bytes memory returndata, string memory errorMessage ) internal view returns (bytes memory) { if (success) { if (returndata.length == 0) { // only check isContract if the call was successful and the return data is empty // otherwise we already know that it was a contract require(isContract(target), "Address: call to non-contract"); } return returndata; } else { _revert(returndata, errorMessage); } } /** * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason or 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 { _revert(returndata, errorMessage); } } function _revert(bytes memory returndata, string memory errorMessage) private pure { // 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 /// @solidity memory-safe-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ 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); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@layerzerolabs/solidity-examples/contracts/token/oft/v2/IOFTV2.sol"; interface IOFTWrapper { event WrapperFees(bytes2 indexed partnerId, address token, uint256 wrapperFee, uint256 callerFee); event WrapperFeeWithdrawn(address indexed oft, address to, uint256 amount); struct FeeObj { uint256 callerBps; address caller; bytes2 partnerId; } function sendOFT( address _oft, uint16 _dstChainId, bytes calldata _toAddress, uint _amount, uint256 _minAmount, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams, FeeObj calldata _feeObj ) external payable; function sendOFTV2( address _oft, uint16 _dstChainId, bytes32 _toAddress, uint _amount, uint256 _minAmount, IOFTV2.LzCallParams calldata _callParams, FeeObj calldata _feeObj ) external payable; function sendProxyOFTV2( address _proxyOft, uint16 _dstChainId, bytes32 _toAddress, uint _amount, uint256 _minAmount, IOFTV2.LzCallParams calldata _callParams, FeeObj calldata _feeObj ) external payable; function sendProxyOFTFeeV2( address _proxyOft, uint16 _dstChainId, bytes32 _toAddress, uint _amount, uint256 _minAmount, IOFTV2.LzCallParams calldata _callParams, FeeObj calldata _feeObj ) external payable; function getAmountAndFees( address _oft, uint256 _amount, uint256 _callerBps ) external view returns ( uint256 amount, uint256 wrapperFee, uint256 callerFee ); function estimateSendFee( address _oft, uint16 _dstChainId, bytes calldata _toAddress, uint _amount, bool _useZro, bytes calldata _adapterParams, FeeObj calldata _feeObj ) external view returns (uint nativeFee, uint zroFee); function estimateSendFeeV2( address _oft, uint16 _dstChainId, bytes32 _toAddress, uint _amount, bool _useZro, bytes calldata _adapterParams, FeeObj calldata _feeObj ) external view returns (uint nativeFee, uint zroFee); }
{ "compilerPath": "", "experimental": {}, "optimizer": { "enabled": true, "mode": "3" } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"uint256","name":"_defaultBps","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"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":true,"internalType":"address","name":"oft","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"WrapperFeeWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes2","name":"partnerId","type":"bytes2"},{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"wrapperFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"callerFee","type":"uint256"}],"name":"WrapperFees","type":"event"},{"inputs":[],"name":"BPS_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_UINT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultBps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_oft","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes","name":"_toAddress","type":"bytes"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"},{"components":[{"internalType":"uint256","name":"callerBps","type":"uint256"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes2","name":"partnerId","type":"bytes2"}],"internalType":"struct IOFTWrapper.FeeObj","name":"_feeObj","type":"tuple"}],"name":"estimateSendFee","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_oft","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"},{"components":[{"internalType":"uint256","name":"callerBps","type":"uint256"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes2","name":"partnerId","type":"bytes2"}],"internalType":"struct IOFTWrapper.FeeObj","name":"_feeObj","type":"tuple"}],"name":"estimateSendFeeV2","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_callerBps","type":"uint256"}],"name":"getAmountAndFees","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"wrapperFee","type":"uint256"},{"internalType":"uint256","name":"callerFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"oftBps","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oft","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes","name":"_toAddress","type":"bytes"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_minAmount","type":"uint256"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"},{"components":[{"internalType":"uint256","name":"callerBps","type":"uint256"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes2","name":"partnerId","type":"bytes2"}],"internalType":"struct IOFTWrapper.FeeObj","name":"_feeObj","type":"tuple"}],"name":"sendOFT","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_oft","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_minAmount","type":"uint256"},{"components":[{"internalType":"address payable","name":"refundAddress","type":"address"},{"internalType":"address","name":"zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"adapterParams","type":"bytes"}],"internalType":"struct ICommonOFT.LzCallParams","name":"_callParams","type":"tuple"},{"components":[{"internalType":"uint256","name":"callerBps","type":"uint256"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes2","name":"partnerId","type":"bytes2"}],"internalType":"struct IOFTWrapper.FeeObj","name":"_feeObj","type":"tuple"}],"name":"sendOFTFeeV2","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_oft","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_minAmount","type":"uint256"},{"components":[{"internalType":"address payable","name":"refundAddress","type":"address"},{"internalType":"address","name":"zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"adapterParams","type":"bytes"}],"internalType":"struct ICommonOFT.LzCallParams","name":"_callParams","type":"tuple"},{"components":[{"internalType":"uint256","name":"callerBps","type":"uint256"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes2","name":"partnerId","type":"bytes2"}],"internalType":"struct IOFTWrapper.FeeObj","name":"_feeObj","type":"tuple"}],"name":"sendOFTV2","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_proxyOft","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes","name":"_toAddress","type":"bytes"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_minAmount","type":"uint256"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"},{"components":[{"internalType":"uint256","name":"callerBps","type":"uint256"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes2","name":"partnerId","type":"bytes2"}],"internalType":"struct IOFTWrapper.FeeObj","name":"_feeObj","type":"tuple"}],"name":"sendProxyOFT","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_proxyOft","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_minAmount","type":"uint256"},{"components":[{"internalType":"address payable","name":"refundAddress","type":"address"},{"internalType":"address","name":"zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"adapterParams","type":"bytes"}],"internalType":"struct ICommonOFT.LzCallParams","name":"_callParams","type":"tuple"},{"components":[{"internalType":"uint256","name":"callerBps","type":"uint256"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes2","name":"partnerId","type":"bytes2"}],"internalType":"struct IOFTWrapper.FeeObj","name":"_feeObj","type":"tuple"}],"name":"sendProxyOFTFeeV2","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_proxyOft","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_minAmount","type":"uint256"},{"components":[{"internalType":"address payable","name":"refundAddress","type":"address"},{"internalType":"address","name":"zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"adapterParams","type":"bytes"}],"internalType":"struct ICommonOFT.LzCallParams","name":"_callParams","type":"tuple"},{"components":[{"internalType":"uint256","name":"callerBps","type":"uint256"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes2","name":"partnerId","type":"bytes2"}],"internalType":"struct IOFTWrapper.FeeObj","name":"_feeObj","type":"tuple"}],"name":"sendProxyOFTV2","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_defaultBps","type":"uint256"}],"name":"setDefaultBps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_bps","type":"uint256"}],"name":"setOFTBps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oft","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawFees","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
9c4d535b0000000000000000000000000000000000000000000000000000000000000000010008378a3b86daadf52cbe416948cb8437439dcd3bce3c5847cba465618722000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002
Deployed Bytecode
0x0004000000000002000300000000000200000000030100190000006003300270000007dd0430019700030000004103550002000000010355000007dd0030019d000100000000001f0000008001000039000000400010043f0000000101200190000000270000c13d0000000001000031000000040210008c000001d60000413d0000000202000367000000000202043b000000e002200270000007ea0320009c0000008f0000a13d000007eb0320009c000000b40000213d000007f20320009c000000e00000a13d000007f30320009c0000012f0000613d000007f40320009c000001370000613d000007f50220009c000001d60000c13d1f6d02a30000040f1f6d0d5a0000040f000007dd01000041000000400200043d000007dd0320009c0000000001024019000000400110021000001f6e0001042e0000000001000416000000000110004c000001d60000c13d00000000010000310000009f02100039000000200300008a000000000232016f000007de0320009c000000360000413d000007e80100004100000000001004350000004101000039000000040010043f000007e90100004100001f6f00010430000000400020043f0000001f0210018f00000002030003670000000504100272000000440000613d00000000050000190000000506500210000000000763034f000000000707043b000000800660003900000000007604350000000105500039000000000645004b0000003c0000413d000000000520004c000000530000613d0000000504400210000000000343034f00000003022002100000008004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000240435000007df02000041000000200310008c00000000030000190000000003024019000007df01100197000000000410004c000000000200a019000007df0110009c00000000010300190000000001026019000000000110004c000001d60000c13d000000000100041a000007e0021001970000000006000411000000000262019f000000800300043d000300000003001d000000000020041b000000400500043d000007dd020000410000000003000414000007dd0430009c0000000003028019000007dd0450009c000200000005001d00000000020540190000004004200210000000c002300210000007e105100197000100000004001d000000000142019f000007e2011001c70000800d020000390000000303000039000007e3040000411f6d1f630000040f0000000101200190000001d60000613d000000010400002900000002020000290000000101000039000000000011041b0000000303000029000027100130008c000001280000413d00000000030200190000004401300039000007e502000041000000000021043500000024013000390000001e020000390000000000210435000007e6010000410000000000130435000000040130003900000020020000390000000000210435000007e7014001c700001f6f00010430000007f80320009c000000c80000a13d000007f90320009c000000ec0000a13d000007fa0320009c000001520000613d000007fb0120009c0000015a0000613d000007fc0120009c000001d60000c13d0000000001000416000000000110004c000001d60000c13d000000040100008a0000000001100031000007df02000041000000000310004c00000000030000190000000003024019000007df01100197000000000410004c000000000200a019000007df0110009c00000000010300190000000001026019000000000110004c000001d60000c13d000000000100041a000007e101100197000000400200043d0000000000120435000007dd01000041000007dd0320009c0000000001024019000000400110021000000804011001c700001f6e0001042e000007ec0120009c000000f80000a13d000007ed0120009c0000016a0000613d000007ee0120009c000001760000613d000007ef0120009c000001d60000c13d0000000001000416000000000110004c000001d60000c13d00000000010000311f6d027b0000040f1f6d03ba0000040f000007dd01000041000000400200043d000007dd0320009c0000000001024019000000400110021000001f6e0001042e000007ff0320009c0000010c0000213d000008020120009c000001900000613d000008030120009c000001d60000c13d0000000001000416000000000110004c000001d60000c13d00000000010000311f6d02000000040f1f6d1bea0000040f000000400400043d00000020054000390000000000250435000000400240003900000000003204350000000000140435000007dd01000041000007dd0240009c0000000001044019000000400110021000000806011001c700001f6e0001042e000007f60320009c0000019c0000613d000007f70220009c000001d60000c13d1f6d02a30000040f1f6d0b3a0000040f000007dd01000041000000400200043d000007dd0320009c0000000001024019000000400110021000001f6e0001042e000007fd0320009c000001b70000613d000007fe0220009c000001d60000c13d1f6d02a30000040f1f6d0c480000040f000007dd01000041000000400200043d000007dd0320009c0000000001024019000000400110021000001f6e0001042e000007f00120009c000001c50000613d000007f10120009c000001d60000c13d0000000001000416000000000110004c000001d60000c13d00000000010000311f6d03160000040f1f6d1c770000040f000000400300043d000000200430003900000000002404350000000000130435000007dd01000041000007dd0230009c0000000001034019000000400110021000000805011001c700001f6e0001042e000008000320009c000001d80000613d000008010120009c000001d60000c13d0000000001000416000000000110004c000001d60000c13d000000040100008a0000000001100031000007df02000041000000000310004c00000000030000190000000003024019000007df01100197000000000410004c000000000200a019000007df0110009c00000000010300190000000001026019000000000110004c000001d60000c13d1f6d038d0000040f000007dd01000041000000400200043d000007dd0320009c0000000001024019000000400110021000001f6e0001042e0000000201000039000000000031041b000000200100003900000100001004430000012000000443000007e40100004100001f6e0001042e1f6d02190000040f1f6d06a10000040f000007dd01000041000000400200043d000007dd0320009c0000000001024019000000400110021000001f6e0001042e0000000001000416000000000110004c000001d60000c13d000000040100008a0000000001100031000007df02000041000000000310004c00000000030000190000000003024019000007df01100197000000000410004c000000000200a019000007df0110009c00000000010300190000000001026019000000000110004c000001d60000c13d0000000201000039000000000101041a000000400200043d0000000000120435000007dd01000041000007dd0320009c0000000001024019000000400110021000000804011001c700001f6e0001042e1f6d02a30000040f1f6d12010000040f000007dd01000041000000400200043d000007dd0320009c0000000001024019000000400110021000001f6e0001042e0000000001000416000000000110004c000001d60000c13d00000000010000311f6d02d40000040f1f6d1e000000040f000000400300043d000000200430003900000000002404350000000000130435000007dd01000041000007dd0230009c0000000001034019000000400110021000000805011001c700001f6e0001042e0000000001000416000000000110004c000001d60000c13d00000000010000311f6d03720000040f1f6d046d0000040f000007dd01000041000000400200043d000007dd0320009c0000000001024019000000400110021000001f6e0001042e0000000001000416000000000110004c000001d60000c13d000000040100008a0000000001100031000007df02000041000000000310004c00000000030000190000000003024019000007df01100197000000000410004c000000000200a019000007df0110009c00000000010300190000000001026019000000000110004c000001d60000c13d000000400100043d000000010200008a0000000000210435000007dd02000041000007dd0310009c0000000001028019000000400110021000000804011001c700001f6e0001042e0000000001000416000000000110004c000001d60000c13d00000000010000311f6d01e90000040f1f6d042c0000040f000007dd01000041000000400200043d000007dd0320009c0000000001024019000000400110021000001f6e0001042e0000000001000416000000000110004c000001d60000c13d000000040100008a0000000001100031000007df02000041000000200310008c00000000030000190000000003024019000007df01100197000000000410004c000000000200a019000007df0110009c00000000010300190000000001026019000000000110004c000001d60000c13d00000004010000390000000201100367000000000101043b1f6d03ff0000040f000007dd01000041000000400200043d000007dd0320009c0000000001024019000000400110021000001f6e0001042e0000000001000416000000000110004c000001d60000c13d00000000010000311f6d027b0000040f1f6d02900000040f000000400200043d0000000000120435000007dd01000041000007dd0320009c0000000001024019000000400110021000000804011001c700001f6e0001042e0000000001000416000000000110004c000001d60000c13d000000040100008a0000000001100031000007df02000041000000000310004c00000000030000190000000003024019000007df01100197000000000410004c000000000200a019000007df0110009c00000000010300190000000001026019000000000110004c000001e00000613d000000000100001900001f6f000104301f6d02190000040f1f6d059b0000040f000007dd01000041000000400200043d000007dd0320009c0000000001024019000000400110021000001f6e0001042e000000400100043d00002710020000390000000000210435000007dd02000041000007dd0310009c0000000001028019000000400110021000000804011001c700001f6e0001042e000000040110008a000007df020000410000003f0310008c00000000030000190000000003022019000007df01100197000000000410004c0000000002008019000007df0110009c00000000010300190000000001026019000000000110004c000001fe0000613d00000002020003670000000401200370000000000101043b000007e10310009c000001fe0000213d0000002402200370000000000202043b000000000001042d000000000100001900001f6f00010430000000040110008a000007df020000410000005f0310008c00000000030000190000000003022019000007df01100197000000000410004c0000000002008019000007df0110009c00000000010300190000000001026019000000000110004c000002170000613d00000002030003670000000401300370000000000101043b000007e10210009c000002170000213d0000002402300370000000000202043b0000004403300370000000000303043b000000000001042d000000000100001900001f6f000104300001000000000002000000040210008a000007df030000410000015f0420008c00000000040000190000000004032019000007df02200197000000000520004c0000000003008019000007df0220009c00000000020400190000000002036019000000000220004c000002790000613d00000002090003670000000402900370000000000202043b000100000002001d000007e10220009c000002790000213d0000002402900370000000000202043b0000ffff0320008c000002790000213d0000004403900370000000000303043b000008070430009c000002790000213d0000002304300039000007df05000041000000000614004b00000000060000190000000006058019000007df07100197000007df04400197000000000874004b0000000005008019000000000474013f000007df0440009c00000000040600190000000004056019000000000440004c000002790000c13d0000000404300039000000000449034f000000000404043b000008070540009c000002790000213d00000024033000390000000005340019000000000515004b000002790000213d0000008405900370000000000605043b0000006405900370000000000505043b000000a407900370000000000707043b000007e10870009c000002790000213d000000c408900370000000000808043b000007e10a80009c000002790000213d000000e40a900370000000000b0a043b000008070ab0009c000002790000213d000000230ab00039000007df0d000041000000000e1a004b000000000e000019000000000e0d8019000007df0f100197000007df0aa00197000000000cfa004b000000000c000019000000000c0d4019000000000afa013f000007df0aa0009c000000000a0e0019000000000a0c6019000000000aa0004c000002790000c13d000000040ab000390000000009a9034f000000000a09043b0000080709a0009c000002790000213d0000002409b00039000000000b9a001900000000011b004b000002790000213d000001040b0000390000000101000029000000000001042d000000000100001900001f6f00010430000000040110008a000007df020000410000001f0310008c00000000030000190000000003022019000007df01100197000000000410004c0000000002008019000007df0110009c00000000010300190000000001026019000000000110004c0000028e0000613d00000004010000390000000201100367000000000101043b000007e10210009c0000028e0000213d000000000001042d000000000100001900001f6f00010430000007e10110019700000000001004350000000301000039000000200010043f000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000808011001c700008010020000391f6d1f680000040f0000000102200190000002a10000613d000000000101043b000000000101041a000000000001042d000000000100001900001f6f00010430000000040310008a000007df010000410000011f0230008c00000000020000190000000002012019000007df04300197000000000540004c0000000001008019000007df0440009c000000000102c019000000000110004c000002d20000613d00000002050003670000000401500370000000000101043b000007e10210009c000002d20000213d0000002402500370000000000202043b0000ffff0420008c000002d20000213d000000a404500370000000000404043b000008070640009c000002d20000213d0000000003430049000007df06000041000000600730008c00000000070000190000000007064019000007df03300197000000000830004c000000000600a019000007df0330009c00000000030700190000000003066019000000000330004c000002d20000c13d00000004064000390000004403500370000000000303043b0000006404500370000000000404043b0000008405500370000000000505043b000000c407000039000000000001042d000000000100001900001f6f00010430000000040210008a000007df030000410000011f0420008c00000000040000190000000004032019000007df02200197000000000520004c0000000003008019000007df0220009c00000000020400190000000002036019000000000220004c000003140000613d00000002060003670000000402600370000000000902043b000007e10290009c000003140000213d0000002402600370000000000202043b0000ffff0320008c000003140000213d0000006403600370000000000403043b0000004403600370000000000303043b0000008405600370000000000505043b000000000750004c0000000007000019000000010700c039000000000775004b000003140000c13d000000a407600370000000000807043b000008070780009c000003140000213d0000002307800039000007df0a000041000000000b17004b000000000b000019000000000b0a8019000007df0c100197000007df07700197000000000dc7004b000000000a0080190000000007c7013f000007df0770009c00000000070b001900000000070a6019000000000770004c000003140000c13d0000000407800039000000000676034f000000000706043b000008070670009c000003140000213d00000024068000390000000008670019000000000118004b000003140000213d000000c4080000390000000001090019000000000001042d000000000100001900001f6f00010430000000040210008a000007df030000410000011f0420008c00000000040000190000000004032019000007df02200197000000000520004c0000000003008019000007df0220009c00000000020400190000000002036019000000000220004c000003700000613d00000002070003670000000402700370000000000a02043b000007e102a0009c000003700000213d0000002402700370000000000202043b0000ffff0320008c000003700000213d0000004403700370000000000303043b000008070430009c000003700000213d0000002304300039000007df05000041000000000614004b00000000060000190000000006058019000007df08100197000007df04400197000000000984004b0000000005008019000000000484013f000007df0440009c00000000040600190000000004056019000000000440004c000003700000c13d0000000404300039000000000447034f000000000404043b000008070540009c000003700000213d00000024033000390000000005340019000000000515004b000003700000213d0000006405700370000000000505043b0000008406700370000000000606043b000000000860004c0000000008000019000000010800c039000000000886004b000003700000c13d000000a408700370000000000908043b000008070890009c000003700000213d0000002308900039000007df0b000041000000000c18004b000000000c000019000000000c0b8019000007df0d100197000007df08800197000000000ed8004b000000000b0080190000000008d8013f000007df0880009c00000000080c001900000000080b6019000000000880004c000003700000c13d0000000408900039000000000787034f000000000807043b000008070780009c000003700000213d00000024079000390000000009780019000000000119004b000003700000213d000000c40900003900000000010a0019000000000001042d000000000100001900001f6f00010430000000040110008a000007df020000410000005f0310008c00000000030000190000000003022019000007df01100197000000000410004c0000000002008019000007df0110009c00000000010300190000000001026019000000000110004c0000038b0000613d00000002030003670000000401300370000000000101043b000007e10210009c0000038b0000213d0000002402300370000000000202043b000007e10420009c0000038b0000213d0000004403300370000000000303043b000000000001042d000000000100001900001f6f00010430000000000100041a000007e1051001970000000002000411000000000225004b000003a70000c13d000007e001100197000000000010041b000000400100043d000007dd020000410000000003000414000007dd0430009c0000000003028019000007dd0410009c00000000010280190000004001100210000000c002300210000000000112019f000007e2011001c70000800d020000390000000303000039000007e30400004100000000060000191f6d1f630000040f0000000101200190000003b80000613d000000000001042d000000400100043d000000440210003900000809030000410000000000320435000007e602000041000000000021043500000024021000390000002003000039000000000032043500000004021000390000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000000000100001900001f6f000104300000000006010019000000000100041a000007e1051001970000000002000411000000000225004b000003d70000c13d000007e102600198000003e80000613d000007e001100197000000000121019f000000000010041b000000400100043d000007dd020000410000000003000414000007dd0430009c0000000003028019000007dd0410009c00000000010280190000004001100210000000c002300210000000000112019f000007e2011001c70000800d020000390000000303000039000007e3040000411f6d1f630000040f0000000101200190000003fd0000613d000000000001042d000000400100043d000000440210003900000809030000410000000000320435000007e602000041000000000021043500000024021000390000002003000039000000000032043500000004021000390000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000000400100043d00000064021000390000080a03000041000000000032043500000044021000390000080b030000410000000000320435000000240210003900000026030000390000000000320435000007e6020000410000000000210435000000040210003900000020030000390000000000320435000007dd02000041000007dd0310009c000000000102801900000040011002100000080c011001c700001f6f00010430000000000100001900001f6f00010430000000000200041a000007e1022001970000000003000411000000000232004b000004090000c13d000027100210008c0000041a0000813d0000000202000039000000000012041b000000000001042d000000400100043d000000440210003900000809030000410000000000320435000007e602000041000000000021043500000024021000390000002003000039000000000032043500000004021000390000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000000400100043d0000004402100039000007e503000041000000000032043500000024021000390000001e030000390000000000320435000007e6020000410000000000210435000000040210003900000020030000390000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f000104300001000000000002000000000300041a000007e1043001970000000003000411000000000334004b000004490000c13d000100000002001d000027100220008a000027120300008a000000000232004b0000045a0000a13d000007e10110019700000000001004350000000301000039000000200010043f000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000808011001c700008010020000391f6d1f680000040f00000001022001900000046b0000613d000000000101043b0000000102000029000000000021041b000000000001042d000000400100043d000000440210003900000809030000410000000000320435000007e602000041000000000021043500000024021000390000002003000039000000000032043500000004021000390000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000000400100043d00000044021000390000080d030000410000000000320435000007e602000041000000000021043500000024021000390000002003000039000000000032043500000004021000390000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000000000100001900001f6f000104300006000000000002000000000a0300190000000009010019000000400100043d000000000300041a000007e1033001970000000004000411000000000343004b00000044031000390000002404100039000005350000c13d0000000000a3043500000020031000390000080e05000041000000000053043500000044050000390000000000510435000007e10b2001970000000000b404350000080f0210009c0000052f0000813d000000800c100039000007e10d9001970000004000c0043f0000081002c0009c0000052f0000213d000000c002100039000000400020043f000000200500003900000000005c0435000000a00210003900000811040000410000000000420435000000000201043300000000010004140000000404d0008c000300000005001d000004960000c13d00000001020000390000000101000031000004b30000013d000007dd04000041000007dd0530009c00000000030480190000004003300210000007dd0520009c00000000020480190000006002200210000000000232019f000007dd0310009c0000000001048019000000c001100210000000000112019f00000000020d0019000600000009001d00050000000a001d00040000000b001d00020000000c001d00010000000d001d1f6d1f630000040f000000010d000029000000020c000029000000040b000029000000050a0000290000000609000029000000010220018f00030000000103550000006001100270000107dd0010019d000007dd01100197000000600e000039000000000310004c000004e10000613d0000003f03100039000000200400008a000000000343016f000000400e00043d00000000033e00190000000004e3004b00000000040000190000000104004039000008070530009c0000052f0000213d00000001044001900000052f0000c13d000000400030043f00000000011e0436000000030300036700000001050000310000001f0450018f0000000505500272000004d20000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000004ca0000413d000000000640004c000004e10000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000000510e0434000000000220004c000005430000613d000000000210004c000005030000c13d00010000000e001d000008120100004100000000001004390000000400d00443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c70000800202000039000600000009001d00050000000a001d00040000000b001d000200000005001d1f6d1f680000040f0000000205000029000000040b000029000000050a000029000000060900002900000001022001900000052d0000613d000000000101043b000000000110004c0000000101000029000005890000613d0000000001010433000000000210004c000005170000613d000007df02000041000000200310008c00000000030000190000000003024019000007df01100197000000000410004c000000000200a019000007df0110009c00000000010300190000000001026019000000000110004c0000052d0000c13d0000000001050433000000000210004c0000000002000019000000010200c039000000000221004b0000052d0000c13d000000000110004c0000056a0000613d000000400100043d00000020021000390000000000a204350000000000b10435000007dd020000410000000003000414000007dd0430009c0000000003028019000007dd0410009c00000000010280190000004001100210000000c002300210000000000112019f00000808011001c70000800d020000390000000203000039000008160400004100000000050900191f6d1f630000040f00000001012001900000052d0000613d000000000001042d000000000100001900001f6f00010430000007e80100004100000000001004350000004101000039000000040010043f000007e90100004100001f6f0001043000000809020000410000000000230435000007e60200004100000000002104350000002002000039000000000024043500000004031000390000000000230435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000000000210004c0000057f0000c13d000000400100043d000007e602000041000000000021043500000004021000390000000303000029000000000032043500000000020c043300000024031000390000000000230435000000000320004c0000055d0000613d00000044031000390000000004000019000000000534001900000020044000390000000006c4001900000000060604330000000000650435000000000524004b000005520000413d000000000424004b0000055d0000a13d000000000332001900000000000304350000001f02200039000000200300008a000000000232016f0000004402200039000007dd03000041000007dd0420009c0000000002038019000007dd0410009c000000000103801900000040011002100000006002200210000000000112019f00001f6f00010430000000400100043d00000064021000390000081403000041000000000032043500000044021000390000081503000041000000000032043500000024021000390000002a030000390000000000320435000007e6020000410000000000210435000000040210003900000003030000290000000000320435000007dd02000041000007dd0310009c000000000102801900000040011002100000080c011001c700001f6f00010430000007dd02000041000007dd0350009c00000000030200190000000003054019000007dd0410009c000000000102801900000060011002100000004002300210000000000121019f00001f6f00010430000000400100043d00000044021000390000081703000041000000000032043500000024021000390000001d030000390000000000320435000007e6020000410000000000210435000000040210003900000003030000290000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000a00000000000200090000000a001d000800000009001d000500000008001d000600000007001d000700000004001d000400000003001d000300000002001d0000000102000039000000000302041a000000020330008c000006630000613d0000000203000039000100000002001d000000000032041b0000000002050019000a00000001001d000000000306001900000000040b00191f6d19480000040f000008120200004100000000002004390000000a02000029000007e102200197000a00000002001d0000000400200443000200000001001d000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c700008002020000391f6d1f680000040f0000000102200190000006610000613d000000000101043b000000000110004c000006610000613d000000400900043d0000004401900039000000e002000039000000000021043500000003010000290000ffff0110018f0000002402900039000000000012043500000818010000410000000000190435000000e401900039000000070a0000290000000000a104350000000001000411000007e102100197000000040190003900000000002104350000001f03a0018f0000010402900039000000040400002900000002044003670000000505a00272000005e30000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000005db0000413d000000000630004c0000000908000029000005f30000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000003a2001900000000000304350000000503000029000007e103300197000000a40490003900000000003404350000000603000029000007e103300197000000840490003900000000003404350000006403900039000000020400002900000000004304350000001f03a00039000000200a00008a0000000003a3016f00000000033200190000000001130049000000c40290003900000000001204350000001f0280018f0000000001830436000000080300002900000002033003670000000504800272000006160000613d000000000500001900000005065002100000000007610019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b0000060e0000413d000000000520004c000006250000613d0000000504400210000000000343034f00000000044100190000000302200210000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f000000000024043500000000028100190000000000020435000000000300041600000000020004140000000a04000029000000040540008c0000062e0000c13d0000000104000031000006530000013d0000001f0580003900080000000a001d0000000005a5016f00000000059500490000000001150019000007dd07000041000007dd0590009c000900000009001d000000000507001900000000050940190000004005500210000007dd0610009c00000000010780190000006001100210000000000151019f000007dd0520009c0000000002078019000000c002200210000000000112019f000000000230004c000006480000613d000007e2011001c7000080090200003900000000050000191f6d1f630000040f0000064a0000013d00000000020400191f6d1f630000040f000300000001035500000000030100190000006003300270000107dd0030019d000007dd0430019700000001022001900000000909000029000000080a0000290000067b0000613d0000001f014000390000000002a1016f0000000001920019000000000221004b00000000020000190000000102004039000008070310009c000006750000213d0000000102200190000006750000c13d000000400010043f0000000101000029000000000011041b000000000001042d000000000100001900001f6f00010430000000400100043d00000044021000390000081903000041000000000032043500000024021000390000001f030000390000000000320435000007e6020000410000000000210435000000040210003900000020030000390000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000007e80100004100000000001004350000004101000039000000040010043f000007e90100004100001f6f00010430000000400200043d0000001f0340018f0000000504400272000006880000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000006800000413d000000000530004c000006970000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000007dd010000410000000103000031000007dd0430009c0000000003018019000007dd0420009c000000000102401900000040011002100000006002300210000000000112019f00001f6f000104300011000000000002000e0000000b001d000a0000000a001d000900000009001d000700000008001d000800000007001d000c00000006001d000b00000005001d000d00000004001d000600000003001d000500000002001d0000000103000039000000000203041a000000020220008c00000a080000613d0000000202000039000400000003001d000000000023041b00000812020000410000000000200439000007e101100197001100000001001d0000000400100443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c700008002020000391f6d1f680000040f0000000102200190000009eb0000613d000000000101043b000000000110004c000009eb0000613d000000400900043d0000081a01000041000000000019043500000000010004140000001102000029000000040320008c000006ce0000c13d0000000103000031000007000000013d000007dd04000041000007dd0310009c0000000001048019000007dd0390009c000000000304001900000000030940190000004003300210000000c001100210000000000131019f0000081b011001c7001000000009001d1f6d1f680000040f000000100900002900000000030100190000006003300270000007dd03300197000000200430008c000000200500003900000000050340190000001f0450018f0000000505500272000006ed0000613d000000000600001900000005076002100000000008790019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000006e50000413d000000000640004c000006fc0000613d0000000505500210000000000651034f00000000055900190000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000100000003001f0003000000010355000000010220019000000a8e0000613d0000001f01300039000000200200008a000f00000002001d000000000221016f0000000001920019000000000221004b00000000020000190000000102004039000008070310009c000009ed0000213d0000000102200190000009ed0000c13d000000400010043f000007df010000410000000102000031000000200320008c00000000030000190000000003014019000007df02200197000000000420004c000000000100a019000007df0220009c000000000103c019000000000110004c000009eb0000c13d0000000001090433000007e10210009c000009eb0000213d0000000b020000290000000c030000290000000e04000029001000000001001d1f6d16ab0000040f0000001009000029000e00000001001d000000000110004c0000000001000410000c00000001001d000007470000613d000008120100004100000000001004390000000400900443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c700008002020000391f6d1f680000040f00000001022001900000001009000029000009eb0000613d000000000101043b000000000110004c000009eb0000613d000000400a00043d0000002401a00039000000110200002900000000002104350000081c0100004100000000001a04350000000c01000029000007e1011001970000000402a0003900000000001204350000000001000414000000040290008c000007490000c13d00000001030000310000077c0000013d000000400100043d000007970000013d000007dd02000041000007dd0310009c0000000001028019000007dd03a0009c00000000020a40190000004002200210000000c001100210000000000121019f0000081d011001c70000000002090019000b0000000a001d1f6d1f680000040f0000000b0a00002900000000030100190000006003300270000007dd03300197000000200430008c000000200500003900000000050340190000001f0450018f0000000505500272000007680000613d0000000006000019000000050760021000000000087a0019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000007600000413d000000000640004c000007770000613d0000000505500210000000000651034f00000000055a00190000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000100000003001f00030000000103550000000102200190000000100900002900000b0a0000613d0000001f013000390000000f02000029000000000221016f0000000001a20019000000000221004b00000000020000190000000102004039000008070310009c000009ed0000213d0000000102200190000009ed0000c13d000000400010043f000007df020000410000000103000031000000200430008c00000000040000190000000004024019000007df03300197000000000530004c000000000200a019000007df0330009c000000000204c019000000000220004c000009eb0000c13d00000000020a0433000000000220004c00000a410000c13d00000044021000390000000e0300002900000000003204350000002002100039000008200300004100000000003204350000002403100039000000110400002900000000004304350000004403000039000b00000003001d0000000000310435000008210310009c000009ed0000213d000000800a1000390000004000a0043f0000081003a0009c000009ed0000213d000000c003100039000000400030043f0000002003000039000300000003001d00000000003a0435000000a0031000390000081104000041000000000043043500000000030104330000000001000414000000040490008c000007b80000c13d00000001020000390000000101000031000007ce0000013d000007dd04000041000007dd0520009c00000000020480190000004002200210000007dd0530009c00000000030480190000006003300210000000000223019f000007dd0310009c0000000001048019000000c001100210000000000112019f000000000209001900020000000a001d1f6d1f630000040f000000020a0000290000001009000029000000010220018f00030000000103550000006001100270000107dd0010019d000007dd01100197000000600b000039000000000310004c000007fc0000613d0000003f031000390000000f04000029000000000343016f000000400b00043d00000000033b00190000000004b3004b00000000040000190000000104004039000008070530009c000009ed0000213d0000000104400190000009ed0000c13d000000400030043f00000000011b0436000000030300036700000001050000310000001f0450018f0000000505500272000007ed0000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000007e50000413d000000000640004c000007fc0000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000000510b0434000000000220004c00000a1a0000613d000000000210004c000008180000c13d00010000000b001d000008120100004100000000001004390000000400900443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c70000800202000039000200000005001d1f6d1f680000040f00000002050000290000000102200190000009eb0000613d000000000101043b000000000110004c000000010100002900000a7c0000613d0000000001010433000000000210004c0000082c0000613d000007df02000041000000200310008c00000000030000190000000003024019000007df01100197000000000410004c000000000200a019000007df0110009c00000000010300190000000001026019000000000110004c000009eb0000c13d0000000001050433000000000210004c0000000002000019000000010200c039000000000221004b000009eb0000c13d000000000110004c000009f30000613d0000081201000041000000000010043900000011010000290000000400100443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c700008002020000391f6d1f680000040f00000010090000290000000102200190000009eb0000613d000000000101043b000000000110004c000009eb0000613d000000400b00043d0000004401b00039000000e002000039000000000021043500000005010000290000ffff0110018f0000002402b000390000000000120435000008180100004100000000001b0435000000e401b000390000000d0500002900000000005104350000001f0350018f0000010401b000390000000c02000029000007e1042001970000000402b00039000c00000004001d00000000004204350000000604000029000000020440036700000005055002720000085f0000613d000000000600001900000005076002100000000008710019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000008570000413d000000000630004c0000000a0a0000290000086f0000613d0000000505500210000000000454034f00000000055100190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000d05000029000000000351001900000000000304350000000703000029000007e103300197000000a404b0003900000000003404350000000803000029000007e1033001970000008404b0003900000000003404350000006403b000390000000e0400002900000000004304350000001f035000390000000f04000029000000000343016f00000000013100190000000002210049000000c403b0003900000000002304350000001f02a0018f0000000001a10436000000090300002900000002033003670000000508a002720000001104000029000008940000613d000000000500001900000005065002100000000007610019000000000663034f000000000606043b00000000006704350000000105500039000000000685004b0000088c0000413d000000000520004c000008a30000613d0000000505800210000000000353034f00000000065100190000000302200210000000000506043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f00000000002604350000000002a10019000000000002043500000000030004160000000002000414000000040540008c000008ab0000c13d0000000104000031000008d00000013d0000001f06a000390000000f05000029000000000556016f0000000005b500490000000001150019000007dd07000041000007dd05b0009c000e0000000b001d000000000507001900000000050b40190000004005500210000007dd0610009c00000000010780190000006001100210000000000151019f000007dd0520009c0000000002078019000000c002200210000000000112019f000000000230004c000008c50000613d000007e2011001c7000080090200003900000000050000191f6d1f630000040f000008c70000013d00000000020400191f6d1f630000040f000300000001035500000000030100190000006003300270000107dd0030019d000007dd04300197000000010220019000000010090000290000000e0b00002900000ab40000613d0000001f014000390000000f02000029000000000221016f0000000001b20019000000000221004b00000000020000190000000102004039000008070310009c000009ed0000213d0000000102200190000009ed0000c13d000000400010043f000007df010000410000000102000031000000000320004c00000000030000190000000003014019000007df02200197000000000420004c000000000100a019000007df0220009c000000000103c019000000000110004c000009eb0000c13d000008120100004100000000001004390000000400900443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c700008002020000391f6d1f680000040f00000010080000290000000102200190000009eb0000613d000000000101043b000000000110004c000009eb0000613d000000400900043d0000002401900039000000110200002900000000002104350000081c01000041000000000019043500000004019000390000000c0200002900000000002104350000000001000414000000040280008c000009070000c13d00000001030000310000093a0000013d000007dd02000041000007dd0310009c0000000001028019000007dd0390009c00000000020940190000004002200210000000c001100210000000000121019f0000081d011001c70000000002080019000e00000009001d1f6d1f680000040f0000000e0900002900000000030100190000006003300270000007dd03300197000000200430008c000000200500003900000000050340190000001f0450018f0000000505500272000009260000613d000000000600001900000005076002100000000008790019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000091e0000413d000000000640004c000009350000613d0000000505500210000000000651034f00000000055900190000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000100000003001f00030000000103550000000102200190000000100800002900000ada0000613d0000001f013000390000000f02000029000000000221016f0000000001920019000000000221004b00000000020000190000000102004039000008070310009c000009ed0000213d0000000102200190000009ed0000c13d000000400010043f000007df020000410000000103000031000000200430008c00000000040000190000000004024019000007df03300197000000000530004c000000000200a019000007df0330009c000000000204c019000000000220004c000009eb0000c13d0000000002090433000000000220004c000009e80000613d0000002002100039000008200300004100000000003204350000002403100039000000110400002900000000004304350000000b03000029000000000031043500000044031000390000000000030435000008210310009c000009ed0000213d0000008009100039000000400090043f000008220310009c000009ed0000213d000000c003100039000000400030043f00000003030000290000000000390435000000a0031000390000081104000041000000000043043500000000030104330000000001000414000000040480008c000009720000c13d0000000101000031000009890000013d000007dd04000041000007dd0520009c00000000020480190000004002200210000007dd0530009c00000000030480190000006003300210000000000223019f000007dd0310009c0000000001048019000000c001100210000000000112019f0000000002080019001100000009001d1f6d1f630000040f00000011090000290000001008000029000000010220018f000400000002001d00030000000103550000006001100270000107dd0010019d000007dd01100197000000600a000039000000000210004c000009b70000613d0000003f021000390000000f03000029000000000232016f000000400a00043d00000000022a00190000000003a2004b00000000030000190000000103004039000008070420009c000009ed0000213d0000000103300190000009ed0000c13d000000400020043f00000000011a0436000000030200036700000001040000310000001f0340018f0000000504400272000009a80000613d000000000500001900000005065002100000000007610019000000000662034f000000000606043b00000000006704350000000105500039000000000645004b000009a00000413d000000000530004c000009b70000613d0000000504400210000000000242034f00000000014100190000000303300210000000000401043300000000043401cf000000000434022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000242019f000000000021043500000000510a04340000000402000029000000000220004c00000a550000613d000000000210004c000009d40000c13d000f0000000a001d000008120100004100000000001004390000000400800443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c70000800202000039001100000005001d1f6d1f680000040f00000011050000290000000102200190000009eb0000613d000000000101043b000000000110004c0000000f0100002900000a7c0000613d0000000001010433000000000210004c000009e80000613d000007df02000041000000200310008c00000000030000190000000003024019000007df01100197000000000410004c000000000200a019000007df0110009c00000000010300190000000001026019000000000110004c000009eb0000c13d0000000001050433000000000210004c0000000002000019000000010200c039000000000221004b000009eb0000c13d000000000110004c000009f30000613d0000000101000039000000000011041b000000000001042d000000000100001900001f6f00010430000007e80100004100000000001004350000004101000039000000040010043f000007e90100004100001f6f00010430000000400100043d00000064021000390000081403000041000000000032043500000044021000390000081503000041000000000032043500000024021000390000002a030000390000000000320435000007e6020000410000000000210435000000040210003900000003030000290000000000320435000007dd02000041000007dd0310009c000000000102801900000040011002100000080c011001c700001f6f00010430000000400100043d00000044021000390000081903000041000000000032043500000024021000390000001f030000390000000000320435000007e6020000410000000000210435000000040210003900000020030000390000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000000000210004c00000b000000c13d000000400100043d000007e602000041000000000021043500000004021000390000000303000029000000000032043500000000020a043300000024031000390000000000230435000000000320004c00000a340000613d00000044031000390000000004000019000000000534001900000020044000390000000006a4001900000000060604330000000000650435000000000524004b00000a290000413d000000000424004b00000a340000a13d000000000332001900000000000304350000001f022000390000000f03000029000000000232016f0000004402200039000007dd03000041000007dd0420009c0000000002038019000007dd0410009c000000000103801900000040011002100000006002200210000000000112019f00001f6f0001043000000064021000390000081e03000041000000000032043500000044021000390000081f030000410000000000320435000000240210003900000036030000390000000000320435000007e6020000410000000000210435000000040210003900000020030000390000000000320435000007dd02000041000007dd0310009c000000000102801900000040011002100000080c011001c700001f6f00010430000000000210004c00000b300000c13d000000400100043d000007e6020000410000000000210435000000040210003900000003030000290000000000320435000000000209043300000024031000390000000000230435000000000320004c00000a6f0000613d0000004403100039000000000400001900000000053400190000002004400039000000000694001900000000060604330000000000650435000000000524004b00000a640000413d000000000424004b00000a6f0000a13d000000000332001900000000000304350000001f022000390000000f03000029000000000232016f0000004402200039000007dd03000041000007dd0420009c0000000002038019000007dd0410009c000000000103801900000040011002100000006002200210000000000112019f00001f6f00010430000000400100043d00000044021000390000081703000041000000000032043500000024021000390000001d030000390000000000320435000007e6020000410000000000210435000000040210003900000003030000290000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000000400200043d0000001f0430018f000000050330027200000a9b0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000a930000413d000000000540004c00000aaa0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000007dd010000410000000103000031000007dd0430009c0000000003018019000007dd0420009c000000000102401900000040011002100000006002300210000000000112019f00001f6f00010430000000400200043d0000001f0340018f000000050440027200000ac10000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000ab90000413d000000000530004c00000ad00000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000007dd010000410000000103000031000007dd0430009c0000000003018019000007dd0420009c000000000102401900000040011002100000006002300210000000000112019f00001f6f00010430000000400200043d0000001f0430018f000000050330027200000ae70000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000adf0000413d000000000540004c00000af60000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000007dd010000410000000103000031000007dd0430009c0000000003018019000007dd0420009c000000000102401900000040011002100000006002300210000000000112019f00001f6f00010430000007dd02000041000007dd0350009c00000000030200190000000003054019000007dd0410009c000000000102801900000060011002100000004002300210000000000121019f00001f6f00010430000000400200043d0000001f0430018f000000050330027200000b170000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000b0f0000413d000000000540004c00000b260000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000007dd010000410000000103000031000007dd0430009c0000000003018019000007dd0420009c000000000102401900000040011002100000006002300210000000000112019f00001f6f00010430000007dd02000041000007dd0350009c00000000030200190000000003054019000007dd0410009c000000000102801900000060011002100000004002300210000000000121019f00001f6f000104300006000000000002000600000006001d000300000003001d000400000002001d0000000102000039000000000302041a000000020330008c00000c0a0000613d0000000203000039000100000002001d000000000032041b0000000002040019000500000001001d000000000305001900000000040700191f6d19480000040f000008120200004100000000002004390000000502000029000007e102200197000200000002001d0000000400200443000500000001001d000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c700008002020000391f6d1f680000040f0000000102200190000000060a00002900000c080000613d000000000101043b000000000110004c00000c080000613d000000400900043d0000008401900039000000a002000039000000000021043500000064019000390000000502000029000000000021043500000044019000390000000302000029000000000021043500000004010000290000ffff0110018f00000024029000390000000000120435000008230100004100000000001904350000000001000411000007e101100197000000040290003900000000001204350000000201a00367000000000101043b000007e10210009c00000c080000213d000000a40290003900000000001204350000002001a000390000000201100367000000000101043b000007e10210009c00000c080000213d000000c402900039000000000012043500000000020000310000000001a200490000001f0410008a0000004003a000390000000201000367000000000331034f000000000303043b000007df05000041000000000643004b00000000060000190000000006058019000007df04400197000007df07300197000000000847004b0000000005008019000000000447013f000007df0440009c00000000040600190000000004056019000000000440004c00000c080000c13d0000000004a30019000000000141034f000000000101043b000008070310009c00000c080000213d0000000002120049000007df030000410000000005a2004b00000000050000190000000005034019000007df06a00197000007df02200197000000000762004b000000000300a019000000000262013f000007df0220009c00000000020500190000000002036019000000000220004c00000c080000c13d000000e40290003900000060030000390000000000320435000001040290003900000000001204350000001f0310018f000001240290003900000020044000390000000204400367000000050510027200000bbd0000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b00000bb50000413d000000000630004c00000bcc0000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f000000000035043500000000022100190000000000020435000000000300041600000000020004140000000204000029000000040540008c00000bd50000c13d000000010400003100000bf90000013d0000001f01100039000000200500008a000000000151016f0000082406000041000008240510009c0000000001068019000007dd06000041000007dd0590009c000600000009001d0000000005060019000000000509401900000040055002100000006001100210000000000151019f000007dd0520009c0000000002068019000000c002200210000000000121019f0000082501100041000000000230004c00000bef0000613d000007e2011001c7000080090200003900000000050000191f6d1f630000040f00000bf10000013d00000000020400191f6d1f630000040f000300000001035500000000030100190000006003300270000107dd0030019d000007dd043001970000000102200190000000060900002900000c220000613d0000001f01400039000000200200008a000000000221016f0000000001920019000000000221004b00000000020000190000000102004039000008070310009c00000c1c0000213d000000010220019000000c1c0000c13d000000400010043f0000000101000029000000000011041b000000000001042d000000000100001900001f6f00010430000000400100043d00000044021000390000081903000041000000000032043500000024021000390000001f030000390000000000320435000007e6020000410000000000210435000000040210003900000020030000390000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000007e80100004100000000001004350000004101000039000000040010043f000007e90100004100001f6f00010430000000400200043d0000001f0340018f000000050440027200000c2f0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000c270000413d000000000530004c00000c3e0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000007dd010000410000000103000031000007dd0430009c0000000003018019000007dd0420009c000000000102401900000040011002100000006002300210000000000112019f00001f6f000104300007000000000002000700000006001d000400000003001d000500000002001d0000000102000039000000000302041a000000020330008c00000d1c0000613d0000000203000039000100000002001d000000000032041b0000000002040019000300000005001d000600000001001d000000000305001900000000040700191f6d19480000040f000008120200004100000000002004390000000602000029000007e102200197000200000002001d0000000400200443000600000001001d000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c700008002020000391f6d1f680000040f0000000102200190000000070a00002900000d1a0000613d000000000101043b000000000110004c00000d1a0000613d000000400900043d000000a401900039000000c002000039000000000021043500000084019000390000000302000029000000000021043500000064019000390000000602000029000000000021043500000044019000390000000402000029000000000021043500000005010000290000ffff0110018f00000024029000390000000000120435000008260100004100000000001904350000000001000411000007e101100197000000040290003900000000001204350000000201a00367000000000101043b000007e10210009c00000d1a0000213d000000c40290003900000000001204350000002001a000390000000201100367000000000101043b000007e10210009c00000d1a0000213d000000e402900039000000000012043500000000020000310000000001a200490000001f0410008a0000004003a000390000000201000367000000000331034f000000000303043b000007df05000041000000000643004b00000000060000190000000006058019000007df04400197000007df07300197000000000847004b0000000005008019000000000447013f000007df0440009c00000000040600190000000004056019000000000440004c00000d1a0000c13d0000000004a30019000000000141034f000000000101043b000008070310009c00000d1a0000213d0000000002120049000007df030000410000000005a2004b00000000050000190000000005034019000007df06a00197000007df02200197000000000762004b000000000300a019000000000262013f000007df0220009c00000000020500190000000002036019000000000220004c00000d1a0000c13d000001040290003900000060030000390000000000320435000001240290003900000000001204350000001f0310018f000001440290003900000020044000390000000204400367000000050510027200000ccf0000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b00000cc70000413d000000000630004c00000cde0000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f000000000035043500000000022100190000000000020435000000000300041600000000020004140000000204000029000000040540008c00000ce70000c13d000000010400003100000d0b0000013d0000001f01100039000000200500008a000000000151016f0000082706000041000008270510009c0000000001068019000007dd06000041000007dd0590009c000700000009001d0000000005060019000000000509401900000040055002100000006001100210000000000151019f000007dd0520009c0000000002068019000000c002200210000000000121019f0000082801100041000000000230004c00000d010000613d000007e2011001c7000080090200003900000000050000191f6d1f630000040f00000d030000013d00000000020400191f6d1f630000040f000300000001035500000000030100190000006003300270000107dd0030019d000007dd043001970000000102200190000000070900002900000d340000613d0000001f01400039000000200200008a000000000221016f0000000001920019000000000221004b00000000020000190000000102004039000008070310009c00000d2e0000213d000000010220019000000d2e0000c13d000000400010043f0000000101000029000000000011041b000000000001042d000000000100001900001f6f00010430000000400100043d00000044021000390000081903000041000000000032043500000024021000390000001f030000390000000000320435000007e6020000410000000000210435000000040210003900000020030000390000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000007e80100004100000000001004350000004101000039000000040010043f000007e90100004100001f6f00010430000000400200043d0000001f0340018f000000050440027200000d410000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000d390000413d000000000530004c00000d500000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000007dd010000410000000103000031000007dd0430009c0000000003018019000007dd0420009c000000000102401900000040011002100000006002300210000000000112019f00001f6f00010430000d000000000002000900000007001d000b00000006001d000800000005001d000700000004001d000500000003001d000600000002001d0000000103000039000000000203041a000000020220008c000010cf0000613d0000000202000039000400000003001d000000000023041b00000812020000410000000000200439000007e101100197000d00000001001d0000000400100443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c700008002020000391f6d1f680000040f0000000102200190000010b20000613d000000000101043b000000000110004c000010b20000613d000000400900043d0000081a01000041000000000019043500000000010004140000000d02000029000000040320008c00000d830000c13d000000010300003100000db50000013d000007dd04000041000007dd0310009c0000000001048019000007dd0390009c000000000304001900000000030940190000004003300210000000c001100210000000000131019f0000081b011001c7000c00000009001d1f6d1f680000040f0000000c0900002900000000030100190000006003300270000007dd03300197000000200430008c000000200500003900000000050340190000001f0450018f000000050550027200000da20000613d000000000600001900000005076002100000000008790019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000d9a0000413d000000000640004c00000db10000613d0000000505500210000000000651034f00000000055900190000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000100000003001f00030000000103550000000102200190000011550000613d0000001f01300039000000200200008a000a00000002001d000000000221016f0000000001920019000000000221004b00000000020000190000000102004039000008070310009c000010b40000213d0000000102200190000010b40000c13d000000400010043f000007df010000410000000102000031000000200320008c00000000030000190000000003014019000007df02200197000000000420004c000000000100a019000007df0220009c000000000103c019000000000110004c000010b20000c13d0000000001090433000007e10210009c000010b20000213d000000070200002900000008030000290000000904000029000c00000001001d1f6d16ab0000040f0000000c09000029000900000001001d000000000110004c0000000001000410000800000001001d00000dfc0000613d000008120100004100000000001004390000000400900443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c700008002020000391f6d1f680000040f00000001022001900000000c09000029000010b20000613d000000000101043b000000000110004c000010b20000613d000000400a00043d0000002401a000390000000d0200002900000000002104350000081c0100004100000000001a04350000000801000029000007e1011001970000000402a0003900000000001204350000000001000414000000040290008c00000dfe0000c13d000000010300003100000e310000013d000000400100043d00000e4c0000013d000007dd02000041000007dd0310009c0000000001028019000007dd03a0009c00000000020a40190000004002200210000000c001100210000000000121019f0000081d011001c7000000000209001900070000000a001d1f6d1f680000040f000000070a00002900000000030100190000006003300270000007dd03300197000000200430008c000000200500003900000000050340190000001f0450018f000000050550027200000e1d0000613d0000000006000019000000050760021000000000087a0019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000e150000413d000000000640004c00000e2c0000613d0000000505500210000000000651034f00000000055a00190000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000100000003001f000300000001035500000001022001900000000c09000029000011d10000613d0000001f013000390000000a02000029000000000221016f0000000001a20019000000000221004b00000000020000190000000102004039000008070310009c000010b40000213d0000000102200190000010b40000c13d000000400010043f000007df020000410000000103000031000000200430008c00000000040000190000000004024019000007df03300197000000000530004c000000000200a019000007df0330009c000000000204c019000000000220004c000010b20000c13d00000000020a0433000000000220004c000011080000c13d00000044021000390000000903000029000000000032043500000020021000390000082003000041000000000032043500000024031000390000000d0400002900000000004304350000004403000039000700000003001d0000000000310435000008210310009c000010b40000213d000000800a1000390000004000a0043f0000081003a0009c000010b40000213d000000c003100039000000400030043f0000002003000039000300000003001d00000000003a0435000000a0031000390000081104000041000000000043043500000000030104330000000001000414000000040490008c00000e6d0000c13d0000000102000039000000010100003100000e830000013d000007dd04000041000007dd0520009c00000000020480190000004002200210000007dd0530009c00000000030480190000006003300210000000000223019f000007dd0310009c0000000001048019000000c001100210000000000112019f000000000209001900020000000a001d1f6d1f630000040f000000020a0000290000000c09000029000000010220018f00030000000103550000006001100270000107dd0010019d000007dd01100197000000600b000039000000000310004c00000eb10000613d0000003f031000390000000a04000029000000000343016f000000400b00043d00000000033b00190000000004b3004b00000000040000190000000104004039000008070530009c000010b40000213d0000000104400190000010b40000c13d000000400030043f00000000011b0436000000030300036700000001050000310000001f0450018f000000050550027200000ea20000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b00000e9a0000413d000000000640004c00000eb10000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000000510b0434000000000220004c000010e10000613d000000000210004c00000ecd0000c13d00010000000b001d000008120100004100000000001004390000000400900443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c70000800202000039000200000005001d1f6d1f680000040f00000002050000290000000102200190000010b20000613d000000000101043b000000000110004c0000000101000029000011430000613d0000000001010433000000000210004c00000ee10000613d000007df02000041000000200310008c00000000030000190000000003024019000007df01100197000000000410004c000000000200a019000007df0110009c00000000010300190000000001026019000000000110004c000010b20000c13d0000000001050433000000000210004c0000000002000019000000010200c039000000000221004b000010b20000c13d000000000110004c000010ba0000613d000008120100004100000000001004390000000d010000290000000400100443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c700008002020000391f6d1f680000040f0000000c090000290000000102200190000010b20000613d000000000101043b000000000110004c000010b20000613d000000400a00043d0000008401a00039000000a00200003900000000002104350000006401a00039000000090200002900000000002104350000004401a000390000000502000029000000000021043500000006010000290000ffff0110018f0000002402a000390000000000120435000008230100004100000000001a04350000000801000029000007e1021001970000000401a00039000900000002001d00000000002104350000000b010000290000000201100367000000000101043b000007e10210009c000010b20000213d000000a402a0003900000000001204350000000b0100002900000020011000390000000201100367000000000101043b000007e10210009c000010b20000213d000000c402a00039000000000012043500000000020000310000000b0300002900000000013200490000001f0410008a00000040033000390000000201000367000000000331034f000000000303043b000007df05000041000000000643004b00000000060000190000000006058019000007df04400197000007df07300197000000000847004b0000000005008019000000000447013f000007df0440009c00000000040600190000000004056019000000000440004c000010b20000c13d0000000b040000290000000004430019000000000141034f000000000101043b000008070310009c000010b20000213d0000000002120049000007df030000410000000b06000029000000000562004b00000000050000190000000005034019000007df06600197000007df02200197000000000762004b000000000300a019000000000262013f000007df0220009c00000000020500190000000002036019000000000220004c000010b20000c13d000000e402a000390000006003000039000b00000003001d00000000003204350000010402a0003900000000001204350000001f0310018f0000012402a0003900000020044000390000000204400367000000050510027200000f580000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b00000f500000413d000000000630004c00000f670000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f000000000035043500000000022100190000000000020435000000000300041600000000020004140000000d06000029000000040460008c00000f700000c13d000000010400003100000f960000013d0000001f011000390000000a04000029000000000141016f0000082404000041000008240510009c0000000001048019000007dd04000041000007dd05a0009c00080000000a001d000000000504001900000000050a401900000040055002100000006001100210000000000151019f000007dd0520009c0000000002048019000000c002200210000000000121019f0000082501100041000000000230004c00000f8b0000613d000007e2011001c70000800902000039000000000406001900000000050000191f6d1f630000040f00000f8d0000013d00000000020600191f6d1f630000040f000300000001035500000000030100190000006003300270000107dd0030019d000007dd0430019700000001022001900000000c09000029000000080a0000290000117b0000613d0000001f014000390000000a02000029000000000221016f0000000001a20019000000000221004b00000000020000190000000102004039000008070310009c000010b40000213d0000000102200190000010b40000c13d000000400010043f000007df010000410000000102000031000000000320004c00000000030000190000000003014019000007df02200197000000000420004c000000000100a019000007df0220009c000000000103c019000000000110004c000010b20000c13d000008120100004100000000001004390000000400900443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c700008002020000391f6d1f680000040f0000000c080000290000000102200190000010b20000613d000000000101043b000000000110004c000010b20000613d000000400900043d00000024019000390000000d0200002900000000002104350000081c0100004100000000001904350000000401900039000000090200002900000000002104350000000001000414000000040280008c00000fcd0000c13d0000000103000031000010000000013d000007dd02000041000007dd0310009c0000000001028019000007dd0390009c00000000020940190000004002200210000000c001100210000000000121019f0000081d011001c70000000002080019000900000009001d1f6d1f680000040f000000090900002900000000030100190000006003300270000007dd03300197000000200430008c000000200500003900000000050340190000001f0450018f000000050550027200000fec0000613d000000000600001900000005076002100000000008790019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000fe40000413d000000000640004c00000ffb0000613d0000000505500210000000000651034f00000000055900190000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000100000003001f000300000001035500000001022001900000000c08000029000011a10000613d0000001f013000390000000a02000029000000000221016f0000000001920019000000000221004b00000000020000190000000102004039000008070310009c000010b40000213d0000000102200190000010b40000c13d000000400010043f000007df020000410000000103000031000000200430008c00000000040000190000000004024019000007df03300197000000000530004c000000000200a019000007df0330009c000000000204c019000000000220004c000010b20000c13d0000000002090433000000000220004c000010af0000613d00000020021000390000082003000041000000000032043500000024031000390000000d0400002900000000004304350000000703000029000000000031043500000044031000390000000000030435000008210310009c000010b40000213d0000008009100039000000400090043f000008220310009c000010b40000213d000000c003100039000000400030043f00000003030000290000000000390435000000a0031000390000081104000041000000000043043500000000030104330000000001000414000000040480008c000010380000c13d00000001010000310000104f0000013d000007dd04000041000007dd0520009c00000000020480190000004002200210000007dd0530009c00000000030480190000006003300210000000000223019f000007dd0310009c0000000001048019000000c001100210000000000112019f0000000002080019000d00000009001d1f6d1f630000040f0000000d090000290000000c08000029000000010220018f000400000002001d00030000000103550000006001100270000107dd0010019d000007dd01100197000000000210004c0000107e0000613d0000003f021000390000000a03000029000000000232016f000000400300043d0000000002230019000b00000003001d000000000332004b00000000030000190000000103004039000008070420009c000010b40000213d0000000103300190000010b40000c13d000000400020043f0000000b020000290000000001120436000000030200036700000001040000310000001f0340018f00000005044002720000106f0000613d000000000500001900000005065002100000000007610019000000000662034f000000000606043b00000000006704350000000105500039000000000645004b000010670000413d000000000530004c0000107e0000613d0000000504400210000000000242034f00000000014100190000000303300210000000000401043300000000043401cf000000000434022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000242019f00000000002104350000000b0100002900000000510104340000000402000029000000000220004c0000111c0000613d000000000210004c0000109b0000c13d000008120100004100000000001004390000000400800443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c70000800202000039000d00000005001d1f6d1f680000040f0000000d050000290000000102200190000010b20000613d000000000101043b000000000110004c000011430000613d0000000b010000290000000001010433000000000210004c000010af0000613d000007df02000041000000200310008c00000000030000190000000003024019000007df01100197000000000410004c000000000200a019000007df0110009c00000000010300190000000001026019000000000110004c000010b20000c13d0000000001050433000000000210004c0000000002000019000000010200c039000000000221004b000010b20000c13d000000000110004c000010ba0000613d0000000101000039000000000011041b000000000001042d000000000100001900001f6f00010430000007e80100004100000000001004350000004101000039000000040010043f000007e90100004100001f6f00010430000000400100043d00000064021000390000081403000041000000000032043500000044021000390000081503000041000000000032043500000024021000390000002a030000390000000000320435000007e6020000410000000000210435000000040210003900000003030000290000000000320435000007dd02000041000007dd0310009c000000000102801900000040011002100000080c011001c700001f6f00010430000000400100043d00000044021000390000081903000041000000000032043500000024021000390000001f030000390000000000320435000007e6020000410000000000210435000000040210003900000020030000390000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000000000210004c000011c70000c13d000000400100043d000007e602000041000000000021043500000004021000390000000303000029000000000032043500000000020a043300000024031000390000000000230435000000000320004c000010fb0000613d00000044031000390000000004000019000000000534001900000020044000390000000006a4001900000000060604330000000000650435000000000524004b000010f00000413d000000000424004b000010fb0000a13d000000000332001900000000000304350000001f022000390000000a03000029000000000232016f0000004402200039000007dd03000041000007dd0420009c0000000002038019000007dd0410009c000000000103801900000040011002100000006002200210000000000112019f00001f6f0001043000000064021000390000081e03000041000000000032043500000044021000390000081f030000410000000000320435000000240210003900000036030000390000000000320435000007e6020000410000000000210435000000040210003900000020030000390000000000320435000007dd02000041000007dd0310009c000000000102801900000040011002100000080c011001c700001f6f00010430000000000210004c000011f70000c13d000000400100043d000007e6020000410000000000210435000000040210003900000003030000290000000000320435000000000209043300000024031000390000000000230435000000000320004c000011360000613d0000004403100039000000000400001900000000053400190000002004400039000000000694001900000000060604330000000000650435000000000524004b0000112b0000413d000000000424004b000011360000a13d000000000332001900000000000304350000001f022000390000000a03000029000000000232016f0000004402200039000007dd03000041000007dd0420009c0000000002038019000007dd0410009c000000000103801900000040011002100000006002200210000000000112019f00001f6f00010430000000400100043d00000044021000390000081703000041000000000032043500000024021000390000001d030000390000000000320435000007e6020000410000000000210435000000040210003900000003030000290000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000000400200043d0000001f0430018f0000000503300272000011620000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b0000115a0000413d000000000540004c000011710000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000007dd010000410000000103000031000007dd0430009c0000000003018019000007dd0420009c000000000102401900000040011002100000006002300210000000000112019f00001f6f00010430000000400200043d0000001f0340018f0000000504400272000011880000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000011800000413d000000000530004c000011970000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000007dd010000410000000103000031000007dd0430009c0000000003018019000007dd0420009c000000000102401900000040011002100000006002300210000000000112019f00001f6f00010430000000400200043d0000001f0430018f0000000503300272000011ae0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000011a60000413d000000000540004c000011bd0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000007dd010000410000000103000031000007dd0430009c0000000003018019000007dd0420009c000000000102401900000040011002100000006002300210000000000112019f00001f6f00010430000007dd02000041000007dd0350009c00000000030200190000000003054019000007dd0410009c000000000102801900000060011002100000004002300210000000000121019f00001f6f00010430000000400200043d0000001f0430018f0000000503300272000011de0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000011d60000413d000000000540004c000011ed0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000007dd010000410000000103000031000007dd0430009c0000000003018019000007dd0420009c000000000102401900000040011002100000006002300210000000000112019f00001f6f00010430000007dd02000041000007dd0350009c00000000030200190000000003054019000007dd0410009c000000000102801900000060011002100000004002300210000000000121019f00001f6f00010430000e000000000002000900000007001d000c00000006001d000a00000005001d000800000004001d000600000003001d000700000002001d0000000103000039000000000203041a000000020220008c000015790000613d0000000202000039000500000003001d000000000023041b00000812020000410000000000200439000007e101100197000e00000001001d0000000400100443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c700008002020000391f6d1f680000040f00000001022001900000155c0000613d000000000101043b000000000110004c0000155c0000613d000000400900043d0000081a01000041000000000019043500000000010004140000000e02000029000000040320008c0000122a0000c13d00000001030000310000125c0000013d000007dd04000041000007dd0310009c0000000001048019000007dd0390009c000000000304001900000000030940190000004003300210000000c001100210000000000131019f0000081b011001c7000d00000009001d1f6d1f680000040f0000000d0900002900000000030100190000006003300270000007dd03300197000000200430008c000000200500003900000000050340190000001f0450018f0000000505500272000012490000613d000000000600001900000005076002100000000008790019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000012410000413d000000000640004c000012580000613d0000000505500210000000000651034f00000000055900190000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000100000003001f00030000000103550000000102200190000015ff0000613d0000001f01300039000000200200008a000b00000002001d000000000221016f0000000001920019000000000221004b00000000020000190000000102004039000008070310009c0000155e0000213d00000001022001900000155e0000c13d000000400010043f000007df010000410000000102000031000000200320008c00000000030000190000000003014019000007df02200197000000000420004c000000000100a019000007df0220009c000000000103c019000000000110004c0000155c0000c13d0000000001090433000007e10210009c0000155c0000213d00000008020000290000000a030000290000000904000029000d00000001001d1f6d16ab0000040f0000000d09000029000900000001001d000000000110004c0000000001000410000800000001001d000012a30000613d000008120100004100000000001004390000000400900443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c700008002020000391f6d1f680000040f00000001022001900000000d090000290000155c0000613d000000000101043b000000000110004c0000155c0000613d000000400a00043d0000002401a000390000000e0200002900000000002104350000081c0100004100000000001a04350000000801000029000007e1011001970000000402a0003900000000001204350000000001000414000000040290008c000012a50000c13d0000000103000031000012d80000013d000000400100043d000012f30000013d000007dd02000041000007dd0310009c0000000001028019000007dd03a0009c00000000020a40190000004002200210000000c001100210000000000121019f0000081d011001c7000000000209001900040000000a001d1f6d1f680000040f000000040a00002900000000030100190000006003300270000007dd03300197000000200430008c000000200500003900000000050340190000001f0450018f0000000505500272000012c40000613d0000000006000019000000050760021000000000087a0019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000012bc0000413d000000000640004c000012d30000613d0000000505500210000000000651034f00000000055a00190000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000100000003001f000300000001035500000001022001900000000d090000290000167b0000613d0000001f013000390000000b02000029000000000221016f0000000001a20019000000000221004b00000000020000190000000102004039000008070310009c0000155e0000213d00000001022001900000155e0000c13d000000400010043f000007df020000410000000103000031000000200430008c00000000040000190000000004024019000007df03300197000000000530004c000000000200a019000007df0330009c000000000204c019000000000220004c0000155c0000c13d00000000020a0433000000000220004c000015b20000c13d00000044021000390000000903000029000000000032043500000020021000390000082003000041000000000032043500000024031000390000000e0400002900000000004304350000004403000039000400000003001d0000000000310435000008210310009c0000155e0000213d000000800a1000390000004000a0043f0000081003a0009c0000155e0000213d000000c003100039000000400030043f0000002003000039000300000003001d00000000003a0435000000a0031000390000081104000041000000000043043500000000030104330000000001000414000000040490008c000013140000c13d000000010200003900000001010000310000132a0000013d000007dd04000041000007dd0520009c00000000020480190000004002200210000007dd0530009c00000000030480190000006003300210000000000223019f000007dd0310009c0000000001048019000000c001100210000000000112019f000000000209001900020000000a001d1f6d1f630000040f000000020a0000290000000d09000029000000010220018f00030000000103550000006001100270000107dd0010019d000007dd01100197000000600b000039000000000310004c000013580000613d0000003f031000390000000b04000029000000000343016f000000400b00043d00000000033b00190000000004b3004b00000000040000190000000104004039000008070530009c0000155e0000213d00000001044001900000155e0000c13d000000400030043f00000000011b0436000000030300036700000001050000310000001f0450018f0000000505500272000013490000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000013410000413d000000000640004c000013580000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000000510b0434000000000220004c0000158b0000613d000000000210004c000013740000c13d00010000000b001d000008120100004100000000001004390000000400900443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c70000800202000039000200000005001d1f6d1f680000040f000000020500002900000001022001900000155c0000613d000000000101043b000000000110004c0000000101000029000015ed0000613d0000000001010433000000000210004c000013880000613d000007df02000041000000200310008c00000000030000190000000003024019000007df01100197000000000410004c000000000200a019000007df0110009c00000000010300190000000001026019000000000110004c0000155c0000c13d0000000001050433000000000210004c0000000002000019000000010200c039000000000221004b0000155c0000c13d000000000110004c000015640000613d000008120100004100000000001004390000000e010000290000000400100443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c700008002020000391f6d1f680000040f0000000d0900002900000001022001900000155c0000613d000000000101043b000000000110004c0000155c0000613d000000400a00043d000000a401a00039000000c00200003900000000002104350000008401a000390000000a0200002900000000002104350000006401a00039000000090200002900000000002104350000004401a000390000000602000029000000000021043500000007010000290000ffff0110018f0000002402a000390000000000120435000008260100004100000000001a04350000000801000029000007e1021001970000000401a00039000a00000002001d00000000002104350000000c010000290000000201100367000000000101043b000007e10210009c0000155c0000213d000000c402a0003900000000001204350000000c0100002900000020011000390000000201100367000000000101043b000007e10210009c0000155c0000213d000000e402a00039000000000012043500000000020000310000000c0300002900000000013200490000001f0410008a00000040033000390000000201000367000000000331034f000000000303043b000007df05000041000000000643004b00000000060000190000000006058019000007df04400197000007df07300197000000000847004b0000000005008019000000000447013f000007df0440009c00000000040600190000000004056019000000000440004c0000155c0000c13d0000000c040000290000000004430019000000000141034f000000000101043b000008070310009c0000155c0000213d0000000002120049000007df030000410000000c06000029000000000562004b00000000050000190000000005034019000007df06600197000007df02200197000000000762004b000000000300a019000000000262013f000007df0220009c00000000020500190000000002036019000000000220004c0000155c0000c13d0000010402a000390000006003000039000c00000003001d00000000003204350000012402a0003900000000001204350000001f0310018f0000014402a00039000000200440003900000002044003670000000505100272000014020000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000013fa0000413d000000000630004c000014110000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f000000000035043500000000022100190000000000020435000000000300041600000000020004140000000e06000029000000040460008c0000141a0000c13d0000000104000031000014400000013d0000001f011000390000000b04000029000000000141016f0000082704000041000008270510009c0000000001048019000007dd04000041000007dd05a0009c00090000000a001d000000000504001900000000050a401900000040055002100000006001100210000000000151019f000007dd0520009c0000000002048019000000c002200210000000000121019f0000082801100041000000000230004c000014350000613d000007e2011001c70000800902000039000000000406001900000000050000191f6d1f630000040f000014370000013d00000000020600191f6d1f630000040f000300000001035500000000030100190000006003300270000107dd0030019d000007dd0430019700000001022001900000000d09000029000000090a000029000016250000613d0000001f014000390000000b02000029000000000221016f0000000001a20019000000000221004b00000000020000190000000102004039000008070310009c0000155e0000213d00000001022001900000155e0000c13d000000400010043f000007df010000410000000102000031000000000320004c00000000030000190000000003014019000007df02200197000000000420004c000000000100a019000007df0220009c000000000103c019000000000110004c0000155c0000c13d000008120100004100000000001004390000000400900443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c700008002020000391f6d1f680000040f0000000d0800002900000001022001900000155c0000613d000000000101043b000000000110004c0000155c0000613d000000400900043d00000024019000390000000e0200002900000000002104350000081c01000041000000000019043500000004019000390000000a0200002900000000002104350000000001000414000000040280008c000014770000c13d0000000103000031000014aa0000013d000007dd02000041000007dd0310009c0000000001028019000007dd0390009c00000000020940190000004002200210000000c001100210000000000121019f0000081d011001c70000000002080019000a00000009001d1f6d1f680000040f0000000a0900002900000000030100190000006003300270000007dd03300197000000200430008c000000200500003900000000050340190000001f0450018f0000000505500272000014960000613d000000000600001900000005076002100000000008790019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000148e0000413d000000000640004c000014a50000613d0000000505500210000000000651034f00000000055900190000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000100000003001f000300000001035500000001022001900000000d080000290000164b0000613d0000001f013000390000000b02000029000000000221016f0000000001920019000000000221004b00000000020000190000000102004039000008070310009c0000155e0000213d00000001022001900000155e0000c13d000000400010043f000007df020000410000000103000031000000200430008c00000000040000190000000004024019000007df03300197000000000530004c000000000200a019000007df0330009c000000000204c019000000000220004c0000155c0000c13d0000000002090433000000000220004c000015590000613d00000020021000390000082003000041000000000032043500000024031000390000000e0400002900000000004304350000000403000029000000000031043500000044031000390000000000030435000008210310009c0000155e0000213d0000008009100039000000400090043f000008220310009c0000155e0000213d000000c003100039000000400030043f00000003030000290000000000390435000000a0031000390000081104000041000000000043043500000000030104330000000001000414000000040480008c000014e20000c13d0000000101000031000014f90000013d000007dd04000041000007dd0520009c00000000020480190000004002200210000007dd0530009c00000000030480190000006003300210000000000223019f000007dd0310009c0000000001048019000000c001100210000000000112019f0000000002080019000e00000009001d1f6d1f630000040f0000000e090000290000000d08000029000000010220018f000500000002001d00030000000103550000006001100270000107dd0010019d000007dd01100197000000000210004c000015280000613d0000003f021000390000000b03000029000000000232016f000000400300043d0000000002230019000c00000003001d000000000332004b00000000030000190000000103004039000008070420009c0000155e0000213d00000001033001900000155e0000c13d000000400020043f0000000c020000290000000001120436000000030200036700000001040000310000001f0340018f0000000504400272000015190000613d000000000500001900000005065002100000000007610019000000000662034f000000000606043b00000000006704350000000105500039000000000645004b000015110000413d000000000530004c000015280000613d0000000504400210000000000242034f00000000014100190000000303300210000000000401043300000000043401cf000000000434022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000242019f00000000002104350000000c0100002900000000510104340000000502000029000000000220004c000015c60000613d000000000210004c000015450000c13d000008120100004100000000001004390000000400800443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c70000800202000039000e00000005001d1f6d1f680000040f0000000e0500002900000001022001900000155c0000613d000000000101043b000000000110004c000015ed0000613d0000000c010000290000000001010433000000000210004c000015590000613d000007df02000041000000200310008c00000000030000190000000003024019000007df01100197000000000410004c000000000200a019000007df0110009c00000000010300190000000001026019000000000110004c0000155c0000c13d0000000001050433000000000210004c0000000002000019000000010200c039000000000221004b0000155c0000c13d000000000110004c000015640000613d0000000101000039000000000011041b000000000001042d000000000100001900001f6f00010430000007e80100004100000000001004350000004101000039000000040010043f000007e90100004100001f6f00010430000000400100043d00000064021000390000081403000041000000000032043500000044021000390000081503000041000000000032043500000024021000390000002a030000390000000000320435000007e6020000410000000000210435000000040210003900000003030000290000000000320435000007dd02000041000007dd0310009c000000000102801900000040011002100000080c011001c700001f6f00010430000000400100043d00000044021000390000081903000041000000000032043500000024021000390000001f030000390000000000320435000007e6020000410000000000210435000000040210003900000020030000390000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000000000210004c000016710000c13d000000400100043d000007e602000041000000000021043500000004021000390000000303000029000000000032043500000000020a043300000024031000390000000000230435000000000320004c000015a50000613d00000044031000390000000004000019000000000534001900000020044000390000000006a4001900000000060604330000000000650435000000000524004b0000159a0000413d000000000424004b000015a50000a13d000000000332001900000000000304350000001f022000390000000b03000029000000000232016f0000004402200039000007dd03000041000007dd0420009c0000000002038019000007dd0410009c000000000103801900000040011002100000006002200210000000000112019f00001f6f0001043000000064021000390000081e03000041000000000032043500000044021000390000081f030000410000000000320435000000240210003900000036030000390000000000320435000007e6020000410000000000210435000000040210003900000020030000390000000000320435000007dd02000041000007dd0310009c000000000102801900000040011002100000080c011001c700001f6f00010430000000000210004c000016a10000c13d000000400100043d000007e6020000410000000000210435000000040210003900000003030000290000000000320435000000000209043300000024031000390000000000230435000000000320004c000015e00000613d0000004403100039000000000400001900000000053400190000002004400039000000000694001900000000060604330000000000650435000000000524004b000015d50000413d000000000424004b000015e00000a13d000000000332001900000000000304350000001f022000390000000b03000029000000000232016f0000004402200039000007dd03000041000007dd0420009c0000000002038019000007dd0410009c000000000103801900000040011002100000006002200210000000000112019f00001f6f00010430000000400100043d00000044021000390000081703000041000000000032043500000024021000390000001d030000390000000000320435000007e6020000410000000000210435000000040210003900000003030000290000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000000400200043d0000001f0430018f00000005033002720000160c0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000016040000413d000000000540004c0000161b0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000007dd010000410000000103000031000007dd0430009c0000000003018019000007dd0420009c000000000102401900000040011002100000006002300210000000000112019f00001f6f00010430000000400200043d0000001f0340018f0000000504400272000016320000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b0000162a0000413d000000000530004c000016410000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000007dd010000410000000103000031000007dd0430009c0000000003018019000007dd0420009c000000000102401900000040011002100000006002300210000000000112019f00001f6f00010430000000400200043d0000001f0430018f0000000503300272000016580000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000016500000413d000000000540004c000016670000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000007dd010000410000000103000031000007dd0430009c0000000003018019000007dd0420009c000000000102401900000040011002100000006002300210000000000112019f00001f6f00010430000007dd02000041000007dd0350009c00000000030200190000000003054019000007dd0410009c000000000102801900000060011002100000004002300210000000000121019f00001f6f00010430000000400200043d0000001f0430018f0000000503300272000016880000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000016800000413d000000000540004c000016970000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000007dd010000410000000103000031000007dd0430009c0000000003018019000007dd0420009c000000000102401900000040011002100000006002300210000000000112019f00001f6f00010430000007dd02000041000007dd0350009c00000000030200190000000003054019000007dd0410009c000000000102801900000060011002100000004002300210000000000121019f00001f6f00010430000a000000000002000500000003001d000900000002001d000800000004001d0000000202400367000000000202043b000600000002001d000007e101100197000a00000001001d00000000001004350000000301000039000700000001001d000000200010043f000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000808011001c700008010020000391f6d1f680000040f00000001022001900000188a0000613d000000000101043b000000000101041a000000010600008a000000000161004b000017000000613d000400000006001d0000000a0100002900000000001004350000000701000029000000200010043f000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000808011001c700008010020000391f6d1f680000040f00000001022001900000188a0000613d0000000202000039000000000101043b000000000101041a000000000110004c0000000406000029000016ec0000613d0000000a0100002900000000001004350000000701000029000000200010043f000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000808011001c700008010020000391f6d1f680000040f00000001022001900000188a0000613d000000000201043b00000004060000290000000607000029000000000367013f000000000102041a000000000231004b0000000904000029000018920000213d00000000027100190000270f0220008c000018ad0000213d000000000210004c0000000005000019000017050000613d000000000240004c000016fd0000613d00000000324600d9000000000212004b000018920000413d00000000214100a9000027101510011a000017050000013d0000000607000029000027100170008c00000000050000190000000904000029000018ad0000813d000000000170004c000017140000613d000000000140004c0000170c0000613d00000000214600d9000000000171004b000018920000413d00000000124700a9000027103120011a000000000350004c000017180000c13d0000270f0220008c00000000090000190000171f0000a13d000017180000013d000000000150004c000000000100001900000000090000190000171f0000613d000000000245004b000018920000213d0000000002540049000000000312004b000018920000413d000000000412004900000000090100190000000501000029000000000114004b000018bf0000413d000000000140004c000018bf0000613d000000000165013f000000000114004b000018920000213d000900000004001d000600000005001d0000000001540019000000400200043d000000640320003900000000001304350000000001000410000007e101100197000000440320003900000000001304350000002001200039000008290300004100000000003104350000006403000039000500000003001d00000000003204350000000003000411000007e1043001970000002403200039000400000004001d00000000004304350000082a0320009c0000188c0000813d000000a00a2000390000004000a0043f0000082b0320009c0000188c0000213d000000e003200039000000400030043f0000002003000039000300000003001d00000000003a0435000000c00320003900000811040000410000000000430435000000000302043300000000060004140000000a02000029000000040420008c000700000009001d000017530000c13d00000001020000390000000101000031000017690000013d000007dd04000041000007dd0510009c00000000010480190000004001100210000007dd0530009c00000000030480190000006003300210000000000113019f000007dd0360009c00000000030400190000000003064019000000c003300210000000000131019f00020000000a001d1f6d1f630000040f000000020a0000290000000709000029000000010220018f00030000000103550000006001100270000107dd0010019d000007dd01100197000000600b000039000000000310004c000017970000613d0000003f03100039000000200400008a000000000343016f000000400b00043d00000000033b00190000000004b3004b00000000040000190000000104004039000008070530009c0000188c0000213d00000001044001900000188c0000c13d000000400030043f00000000011b0436000000030300036700000001050000310000001f0450018f0000000505500272000017880000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000017800000413d000000000640004c000017970000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000000510b0434000000000220004c000018d40000613d000000000210004c000017b50000c13d00010000000b001d000008120100004100000000001004390000000a010000290000000400100443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c70000800202000039000200000005001d1f6d1f680000040f0000000205000029000000070900002900000001022001900000188a0000613d000000000101043b000000000110004c0000000101000029000019220000613d0000000001010433000000000210004c000017c90000613d000007df02000041000000200310008c00000000030000190000000003024019000007df01100197000000000410004c000000000200a019000007df0110009c00000000010300190000000001026019000000000110004c0000188a0000c13d0000000001050433000000000210004c0000000002000019000000010200c039000000000221004b0000188a0000c13d000000000110004c000018980000613d000000000190004c000018690000613d000000080100002900000020011000390000000201100367000000000101043b000007e10210009c0000188a0000213d000000400200043d0000006403200039000000000093043500000044032000390000000000130435000000200120003900000829030000410000000000310435000000240320003900000004040000290000000000430435000000050300002900000000003204350000082c0320009c0000188c0000213d000000a00a2000390000004000a0043f0000082b0320009c0000188c0000213d000000e003200039000000400030043f000000030300002900000000003a0435000000c00320003900000811040000410000000000430435000000000302043300000000060004140000000a02000029000000040420008c000017f30000c13d00000001020000390000000101000031000018090000013d000007dd04000041000007dd0510009c00000000010480190000004001100210000007dd0530009c00000000030480190000006003300210000000000113019f000007dd0360009c00000000030400190000000003064019000000c003300210000000000131019f00050000000a001d1f6d1f630000040f000000050a0000290000000709000029000000010220018f00030000000103550000006001100270000107dd0010019d000007dd01100197000000600b000039000000000310004c000018370000613d0000003f03100039000000200400008a000000000343016f000000400b00043d00000000033b00190000000004b3004b00000000040000190000000104004039000008070530009c0000188c0000213d00000001044001900000188c0000c13d000000400030043f00000000011b0436000000030300036700000001050000310000001f0450018f0000000505500272000018280000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000018200000413d000000000640004c000018370000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000000510b0434000000000220004c000018fb0000613d000000000210004c000018550000c13d00040000000b001d000008120100004100000000001004390000000a010000290000000400100443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c70000800202000039000500000005001d1f6d1f680000040f0000000505000029000000070900002900000001022001900000188a0000613d000000000101043b000000000110004c0000000401000029000019220000613d0000000001010433000000000210004c000018690000613d000007df02000041000000200310008c00000000030000190000000003024019000007df01100197000000000410004c000000000200a019000007df0110009c00000000010300190000000001026019000000000110004c0000188a0000c13d0000000001050433000000000210004c0000000002000019000000010200c039000000000221004b0000188a0000c13d000000000110004c000018980000613d000000080100002900000040011000390000000201100367000000000501043b0000082d01500197000000000115004b0000188a0000c13d000000400100043d000000400210003900000000009204350000002002100039000000060300002900000000003204350000000a020000290000000000210435000007dd020000410000000003000414000007dd0430009c0000000003028019000007dd0410009c00000000010280190000004001100210000000c002300210000000000112019f0000082e011001c70000800d0200003900000002030000390000082f040000411f6d1f630000040f00000001012001900000188a0000613d0000000901000029000000000001042d000000000100001900001f6f00010430000007e80100004100000000001004350000004101000039000000040010043f000007e90100004100001f6f00010430000007e80100004100000000001004350000001101000039000000040010043f000007e90100004100001f6f00010430000000400100043d00000064021000390000081403000041000000000032043500000044021000390000081503000041000000000032043500000024021000390000002a030000390000000000320435000007e6020000410000000000210435000000040210003900000003030000290000000000320435000007dd02000041000007dd0310009c000000000102801900000040011002100000080c011001c700001f6f00010430000000400100043d00000044021000390000083203000041000000000032043500000024021000390000001b030000390000000000320435000007e6020000410000000000210435000000040210003900000020030000390000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000000400100043d000000640210003900000830030000410000000000320435000000440210003900000831030000410000000000320435000000240210003900000023030000390000000000320435000007e6020000410000000000210435000000040210003900000020030000390000000000320435000007dd02000041000007dd0310009c000000000102801900000040011002100000080c011001c700001f6f00010430000000000210004c000019340000c13d000000400100043d000007e602000041000000000021043500000004021000390000000303000029000000000032043500000000020a043300000024031000390000000000230435000000000320004c000018ee0000613d00000044031000390000000004000019000000000534001900000020044000390000000006a4001900000000060604330000000000650435000000000524004b000018e30000413d000000000424004b000018ee0000a13d000000000332001900000000000304350000001f02200039000000200300008a000000000232016f0000004402200039000007dd03000041000007dd0420009c0000000002038019000007dd0410009c000000000103801900000040011002100000006002200210000000000112019f00001f6f00010430000000000210004c0000193e0000c13d000000400100043d000007e602000041000000000021043500000004021000390000000303000029000000000032043500000000020a043300000024031000390000000000230435000000000320004c000019150000613d00000044031000390000000004000019000000000534001900000020044000390000000006a4001900000000060604330000000000650435000000000524004b0000190a0000413d000000000424004b000019150000a13d000000000332001900000000000304350000001f02200039000000200300008a000000000232016f0000004402200039000007dd03000041000007dd0420009c0000000002038019000007dd0410009c000000000103801900000040011002100000006002200210000000000112019f00001f6f00010430000000400100043d00000044021000390000081703000041000000000032043500000024021000390000001d030000390000000000320435000007e6020000410000000000210435000000040210003900000003030000290000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000007dd02000041000007dd0350009c00000000030200190000000003054019000007dd0410009c000000000102801900000060011002100000004002300210000000000121019f00001f6f00010430000007dd02000041000007dd0350009c00000000030200190000000003054019000007dd0410009c000000000102801900000060011002100000004002300210000000000121019f00001f6f000104300008000000000002000300000003001d000800000002001d000600000004001d0000000202400367000000000202043b000400000002001d000007e101100197000700000001001d00000000001004350000000301000039000500000001001d000000200010043f000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000808011001c700008010020000391f6d1f680000040f0000000709000029000000010220019000001b2c0000613d000000000101043b000000000101041a000000010600008a000000000161004b0000199f0000613d000200000006001d00000000009004350000000501000029000000200010043f000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000808011001c700008010020000391f6d1f680000040f0000000709000029000000010220019000001b2c0000613d0000000202000039000000000101043b000000000101041a000000000110004c000000080400002900000002060000290000198c0000613d00000000009004350000000501000029000000200010043f000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000808011001c700008010020000391f6d1f680000040f0000000709000029000000010220019000001b2c0000613d000000000201043b000000080400002900000002060000290000000405000029000000000365013f000000000102041a000000000231004b00001b340000213d00000000025100190000270f0220008c00001b4f0000213d000000000210004c000000000a000019000019a40000613d000000000240004c0000199c0000613d00000000324600d9000000000212004b00001b340000413d00000000214100a9000027101a10011a000019a40000013d0000000405000029000027100150008c000000000a000019000000080400002900001b4f0000813d000000000150004c000019b30000613d000000000140004c000019ab0000613d00000000214600d9000000000151004b00001b340000413d00000000124500a9000027103120011a0000000003a0004c000019b70000c13d0000270f0220008c000000000b000019000019be0000a13d000019b70000013d0000000001a0004c0000000001000019000000000b000019000019be0000613d00000000024a004b00001b340000213d0000000002a40049000000000312004b00001b340000413d0000000004120049000000000b0100190000000301000029000000000114004b00001b610000413d000000000140004c00001b610000613d000800000004001d0000000001a0004c000000000c00041100050000000a001d00040000000b001d00001a6a0000613d000000400200043d00000064012000390000000000a104350000000001000410000007e10110019700000044032000390000000000130435000000200120003900000829030000410000000000310435000007e103c0019700000024042000390000000000340435000000640300003900000000003204350000082a0320009c00001b2e0000813d000000a00d2000390000004000d0043f0000082b0320009c00001b2e0000213d000000e003200039000000400030043f0000002003000039000200000003001d00000000003d0435000000c0032000390000081104000041000000000043043500000000030204330000000002000414000000040490008c000019ed0000c13d0000000102000039000000010100003100001a070000013d000007dd04000041000007dd0510009c00000000010480190000004001100210000007dd0530009c00000000030480190000006003300210000000000113019f000007dd0320009c0000000002048019000000c002200210000000000121019f000000000209001900030000000c001d00010000000d001d1f6d1f630000040f000000010d000029000000030c000029000000040b000029000000050a0000290000000709000029000000010220018f00030000000103550000006001100270000107dd0010019d000007dd01100197000000600e000039000000000310004c00001a350000613d0000003f03100039000000200400008a000000000343016f000000400e00043d00000000033e00190000000004e3004b00000000040000190000000104004039000008070530009c00001b2e0000213d000000010440019000001b2e0000c13d000000400030043f00000000011e0436000000030300036700000001050000310000001f0450018f000000050550027200001a260000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b00001a1e0000413d000000000640004c00001a350000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000000510e0434000000000220004c00001b760000613d000000000210004c00001a560000c13d00010000000e001d000008120100004100000000001004390000000400900443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c7000080020200003900030000000c001d000200000005001d1f6d1f680000040f0000000205000029000000030c000029000000040b000029000000050a0000290000000709000029000000010220019000001b2c0000613d000000000101043b000000000110004c000000010100002900001bc40000613d0000000001010433000000000210004c00001a6a0000613d000007df02000041000000200310008c00000000030000190000000003024019000007df01100197000000000410004c000000000200a019000007df0110009c00000000010300190000000001026019000000000110004c00001b2c0000c13d0000000001050433000000000210004c0000000002000019000000010200c039000000000221004b00001b2c0000c13d000000000110004c00001b3a0000613d0000000001b0004c00001b0d0000613d000000060100002900000020011000390000000201100367000000000101043b000007e10210009c00001b2c0000213d000000400200043d00000064032000390000000000b3043500000044032000390000000000130435000000200120003900000829030000410000000000310435000007e103c0019700000024042000390000000000340435000000640300003900000000003204350000082c0320009c00001b2e0000213d000000a00c2000390000004000c0043f0000082b0320009c00001b2e0000213d000000e003200039000000400030043f000000200500003900000000005c0435000000c0032000390000081104000041000000000043043500000000030204330000000002000414000000040490008c000300000005001d00001a940000c13d0000000102000039000000010100003100001aac0000013d000007dd04000041000007dd0510009c00000000010480190000004001100210000007dd0530009c00000000030480190000006003300210000000000113019f000007dd0320009c0000000002048019000000c002200210000000000121019f000000000209001900020000000c001d1f6d1f630000040f000000020c000029000000040b000029000000050a0000290000000709000029000000010220018f00030000000103550000006001100270000107dd0010019d000007dd01100197000000600d000039000000000310004c00001ada0000613d0000003f03100039000000200400008a000000000343016f000000400d00043d00000000033d00190000000004d3004b00000000040000190000000104004039000008070530009c00001b2e0000213d000000010440019000001b2e0000c13d000000400030043f00000000011d0436000000030300036700000001050000310000001f0450018f000000050550027200001acb0000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b00001ac30000413d000000000640004c00001ada0000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000000510d0434000000000220004c00001b9d0000613d000000000210004c00001af90000c13d00020000000d001d000008120100004100000000001004390000000400900443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c70000800202000039000300000005001d1f6d1f680000040f0000000305000029000000040b000029000000050a0000290000000709000029000000010220019000001b2c0000613d000000000101043b000000000110004c000000020100002900001bc40000613d0000000001010433000000000210004c00001b0d0000613d000007df02000041000000200310008c00000000030000190000000003024019000007df01100197000000000410004c000000000200a019000007df0110009c00000000010300190000000001026019000000000110004c00001b2c0000c13d0000000001050433000000000210004c0000000002000019000000010200c039000000000221004b00001b2c0000c13d000000000110004c00001b3a0000613d000000060100002900000040011000390000000201100367000000000501043b0000082d01500197000000000115004b00001b2c0000c13d000000400100043d00000040021000390000000000b2043500000020021000390000000000a204350000000000910435000007dd020000410000000003000414000007dd0430009c0000000003028019000007dd0410009c00000000010280190000004001100210000000c002300210000000000112019f0000082e011001c70000800d0200003900000002030000390000082f040000411f6d1f630000040f000000010120019000001b2c0000613d0000000801000029000000000001042d000000000100001900001f6f00010430000007e80100004100000000001004350000004101000039000000040010043f000007e90100004100001f6f00010430000007e80100004100000000001004350000001101000039000000040010043f000007e90100004100001f6f00010430000000400100043d00000064021000390000081403000041000000000032043500000044021000390000081503000041000000000032043500000024021000390000002a030000390000000000320435000007e6020000410000000000210435000000040210003900000020030000390000000000320435000007dd02000041000007dd0310009c000000000102801900000040011002100000080c011001c700001f6f00010430000000400100043d00000044021000390000083203000041000000000032043500000024021000390000001b030000390000000000320435000007e6020000410000000000210435000000040210003900000020030000390000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000000400100043d000000640210003900000830030000410000000000320435000000440210003900000831030000410000000000320435000000240210003900000023030000390000000000320435000007e6020000410000000000210435000000040210003900000020030000390000000000320435000007dd02000041000007dd0310009c000000000102801900000040011002100000080c011001c700001f6f00010430000000000210004c00001bd60000c13d000000400100043d000007e602000041000000000021043500000004021000390000000203000029000000000032043500000000020d043300000024031000390000000000230435000000000320004c00001b900000613d00000044031000390000000004000019000000000534001900000020044000390000000006d4001900000000060604330000000000650435000000000524004b00001b850000413d000000000424004b00001b900000a13d000000000332001900000000000304350000001f02200039000000200300008a000000000232016f0000004402200039000007dd03000041000007dd0420009c0000000002038019000007dd0410009c000000000103801900000040011002100000006002200210000000000112019f00001f6f00010430000000000210004c00001be00000c13d000000400100043d000007e602000041000000000021043500000004021000390000000303000029000000000032043500000000020c043300000024031000390000000000230435000000000320004c00001bb70000613d00000044031000390000000004000019000000000534001900000020044000390000000006c4001900000000060604330000000000650435000000000524004b00001bac0000413d000000000424004b00001bb70000a13d000000000332001900000000000304350000001f02200039000000200300008a000000000232016f0000004402200039000007dd03000041000007dd0420009c0000000002038019000007dd0410009c000000000103801900000040011002100000006002200210000000000112019f00001f6f00010430000000400100043d00000044021000390000081703000041000000000032043500000024021000390000001d030000390000000000320435000007e6020000410000000000210435000000040210003900000020030000390000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000007dd02000041000007dd0350009c00000000030200190000000003054019000007dd0410009c000000000102801900000060011002100000004002300210000000000121019f00001f6f00010430000007dd02000041000007dd0350009c00000000030200190000000003054019000007dd0410009c000000000102801900000060011002100000004002300210000000000121019f00001f6f000104300005000000000002000200000003001d000300000002001d000007e101100197000500000001001d00000000001004350000000301000039000400000001001d000000200010043f000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000808011001c700008010020000391f6d1f680000040f000000010220019000001c630000613d000000000101043b000000000101041a000000010600008a000000000161004b00001c260000613d000100000006001d000000050100002900000000001004350000000401000029000000200010043f000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000808011001c700008010020000391f6d1f680000040f000000010220019000001c630000613d000000000101043b000000000101041a000000000110004c00001c2c0000613d000000050100002900000000001004350000000401000029000000200010043f000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000808011001c700008010020000391f6d1f680000040f000000010220019000001c630000613d000000000101043b000000000101041a00001c2e0000013d0000000204000029000027100140008c0000000002000019000000030500002900001c410000413d00001c650000013d0000000201000039000000000101041a00000002040000290000000106000029000000000264013f000000000221004b000000030500002900001c5d0000213d00000000024100190000270f0220008c00001c650000213d000000000210004c000000000200001900001c410000613d000000000250004c00001c3f0000613d00000000325600d9000000000212004b00001c5d0000413d00000000215100a9000027101210011a000000000140004c00001c500000613d000000000150004c00001c480000613d00000000315600d9000000000141004b00001c5d0000413d00000000135400a9000027104130011a000000000420004c00001c540000c13d0000270f0330008c000000000300001900001c5b0000a13d00001c540000013d000000000120004c0000000003000019000000000100001900001c5b0000613d000000000352004b00001c5d0000213d0000000003250049000000000413004b00001c5d0000413d000000000513004900000000030100190000000001050019000000000001042d000007e80100004100000000001004350000001101000039000000040010043f000007e90100004100001f6f00010430000000000100001900001f6f00010430000000400100043d00000044021000390000083203000041000000000032043500000024021000390000001b030000390000000000320435000007e6020000410000000000210435000000040210003900000020030000390000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000b000000000002000700000008001d000600000007001d000400000006001d000a00000005001d000500000004001d000300000003001d000200000002001d0000000202900367000000000202043b000800000002001d000007e101100197000b00000001001d00000000001004350000000301000039000900000001001d000000200010043f000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000808011001c700008010020000391f6d1f680000040f000000010220019000001dba0000613d000000000101043b000000000101041a000000010700008a000000000171004b00001cd10000613d000100000007001d0000000b0100002900000000001004350000000901000029000000200010043f000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000808011001c700008010020000391f6d1f680000040f000000010220019000001dba0000613d0000000202000039000000000101043b000000000101041a000000000110004c000000010700002900001cbc0000613d0000000b0100002900000000001004350000000901000029000000200010043f000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000808011001c700008010020000391f6d1f680000040f000000010220019000001dba0000613d000000000201043b00000001070000290000000804000029000000000174013f000000000202041a000000000112004b0000000b050000290000000a0600002900001dbc0000213d00000000014200190000270f0110008c00001dc20000213d000000000120004c000000000100001900001cd70000613d000000000160004c00001cce0000613d00000000316700d9000000000121004b00001dbc0000413d00000000216200a9000027102110011a00001cd70000013d0000000804000029000027100140008c00000000010000190000000b050000290000000a0600002900001dc20000813d000000000240004c00001ce50000613d000000000260004c00001cde0000613d00000000326700d9000000000242004b00001dbc0000413d00000000236400a9000027104230011a000000000410004c00001ce80000c13d0000270f0330008c00001cee0000a13d00001ce80000013d000000000210004c000000000200001900001cee0000613d000000000361004b00001dbc0000213d0000000001160049000000000321004b00001dbc0000413d0000000006210049000a00000006001d000008120100004100000000001004390000000400500443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c700008002020000391f6d1f680000040f000000010220019000001dba0000613d000000000101043b000000000110004c00001dba0000613d000000400a00043d0000002401a00039000000a00200003900000000002104350000083301000041000000000b1a043600000002010000290000ffff0110018f0000000402a000390000000000120435000000a401a00039000000050900002900000000009104350000001f0290018f000000c401a0003900000003030000290000000203300367000000050490027200001d1b0000613d000000000500001900000005065002100000000007610019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b00001d130000413d000000000520004c000000070800002900001d2b0000613d0000000504400210000000000343034f00000000044100190000000302200210000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000240435000000000291001900000000000204350000000402000029000000000220004c0000000002000019000000010200c0390000006403a0003900000000002304350000004402a000390000000a0300002900000000003204350000001f02900039000000200900008a000000000292016f0000008403a00039000000c004200039000000000043043500000000012100190000001f0280018f000000000181043600000006030000290000000203300367000000050480027200001d4c0000613d000000000500001900000005065002100000000007610019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b00001d440000413d000000000520004c00001d5b0000613d0000000504400210000000000343034f00000000044100190000000302200210000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f00000000002404350000000002810019000000000002043500000000060004140000000b02000029000000040320008c00001d630000c13d000000010300003100001da00000013d000a0000000b001d0000001f03800039000900000009001d000000000393016f0000000003a300490000000001130019000007dd03000041000007dd04a0009c000000000403001900000000040a40190000004004400210000007dd0510009c00000000010380190000006001100210000000000141019f000007dd0460009c0000000003064019000000c003300210000000000113019f000b0000000a001d1f6d1f680000040f0000000b0a00002900000000030100190000006003300270000007dd03300197000000400430008c000000400500003900000000050340190000001f0450018f000000050550027200001d8b0000613d0000000006000019000000050760021000000000087a0019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00001d830000413d000000000640004c0000000a0b00002900001d9b0000613d0000000505500210000000000651034f00000000055a00190000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000100000003001f00030000000103550000000102200190000000090900002900001dda0000613d0000001f01300039000000000291016f0000000001a20019000000000221004b00000000020000190000000102004039000008070310009c00001dd40000213d000000010220019000001dd40000c13d000000400010043f000007df010000410000000102000031000000400320008c00000000030000190000000003014019000007df02200197000000000420004c000000000100a019000007df0220009c000000000103c019000000000110004c00001dba0000c13d00000000010a043300000000020b0433000000000001042d000000000100001900001f6f00010430000007e80100004100000000001004350000001101000039000000040010043f000007e90100004100001f6f00010430000000400100043d00000044021000390000083203000041000000000032043500000024021000390000001b030000390000000000320435000007e6020000410000000000210435000000040210003900000020030000390000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000007e80100004100000000001004350000004101000039000000040010043f000007e90100004100001f6f00010430000000400200043d0000001f0430018f000000050330027200001de70000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00001ddf0000413d000000000540004c00001df60000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000007dd010000410000000103000031000007dd0430009c0000000003018019000007dd0420009c000000000102401900000040011002100000006002300210000000000112019f00001f6f00010430000a000000000002000600000007001d000500000006001d000200000005001d000900000004001d000300000003001d000400000002001d0000000202800367000000000202043b000700000002001d000007e101100197000a00000001001d00000000001004350000000301000039000800000001001d000000200010043f000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000808011001c700008010020000391f6d1f680000040f000000010220019000001f1d0000613d000000000101043b000000000101041a000000010700008a000000000171004b00001e590000613d000100000007001d0000000a0100002900000000001004350000000801000029000000200010043f000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000808011001c700008010020000391f6d1f680000040f000000010220019000001f1d0000613d0000000202000039000000000101043b000000000101041a000000000110004c000000010700002900001e440000613d0000000a0100002900000000001004350000000801000029000000200010043f000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000808011001c700008010020000391f6d1f680000040f000000010220019000001f1d0000613d000000000201043b00000001070000290000000704000029000000000174013f000000000202041a000000000112004b0000000a05000029000000090600002900001f1f0000213d00000000014200190000270f0110008c00001f250000213d000000000120004c000000000100001900001e5f0000613d000000000160004c00001e560000613d00000000316700d9000000000121004b00001f1f0000413d00000000216200a9000027102110011a00001e5f0000013d0000000704000029000027100140008c00000000010000190000000a05000029000000090600002900001f250000813d000000000240004c00001e6d0000613d000000000260004c00001e660000613d00000000326700d9000000000242004b00001f1f0000413d00000000236400a9000027104230011a000000000410004c00001e700000c13d0000270f0330008c00001e760000a13d00001e700000013d000000000210004c000000000200001900001e760000613d000000000361004b00001f1f0000213d0000000001160049000000000321004b00001f1f0000413d0000000006210049000900000006001d000008120100004100000000001004390000000400500443000007dd010000410000000002000414000007dd0320009c0000000001024019000000c00110021000000813011001c700008002020000391f6d1f680000040f000000010220019000001f1d0000613d000000000101043b000000000110004c00001f1d0000613d000000400900043d0000008401900039000000a00200003900000000002104350000000201000029000000000110004c0000000001000019000000010100c039000000640290003900000000001204350000004401900039000000090200002900000000002104350000002401900039000000030200002900000000002104350000083401000041000000000a19043600000004010000290000ffff0110018f00000004029000390000000000120435000000a401900039000000060800002900000000008104350000001f0280018f000000c40190003900000005030000290000000203300367000000050480027200001eaf0000613d000000000500001900000005065002100000000007610019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b00001ea70000413d000000000520004c00001ebe0000613d0000000504400210000000000343034f00000000044100190000000302200210000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f00000000002404350000000001810019000000000001043500000000010004140000000a02000029000000040320008c00001ec60000c13d000000010300003100001f020000013d00090000000a001d0000001f04800039000000200300008a000000000534016f000007dd03000041000007dd0490009c000000000403001900000000040940190000004004400210000000c406500039000007dd0560009c000000000503001900000000050640190000006005500210000000000545019f000007dd0410009c0000000001038019000000c001100210000000000151019f000a00000009001d1f6d1f680000040f0000000a0900002900000000030100190000006003300270000007dd03300197000000400430008c000000400500003900000000050340190000001f0450018f000000050550027200001eee0000613d000000000600001900000005076002100000000008790019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00001ee60000413d000000000640004c00001efd0000613d0000000505500210000000000651034f00000000055900190000000304400210000000000705043300000000074701cf000000000747022f000000000606043b0000010004400089000000000646022f00000000044601cf000000000474019f0000000000450435000100000003001f00030000000103550000000102200190000000090a00002900001f3d0000613d0000001f01300039000000200200008a000000000221016f0000000001920019000000000221004b00000000020000190000000102004039000008070310009c00001f370000213d000000010220019000001f370000c13d000000400010043f000007df010000410000000102000031000000400320008c00000000030000190000000003014019000007df02200197000000000420004c000000000100a019000007df0220009c000000000103c019000000000110004c00001f1d0000c13d000000000109043300000000020a0433000000000001042d000000000100001900001f6f00010430000007e80100004100000000001004350000001101000039000000040010043f000007e90100004100001f6f00010430000000400100043d00000044021000390000083203000041000000000032043500000024021000390000001b030000390000000000320435000007e6020000410000000000210435000000040210003900000020030000390000000000320435000007dd02000041000007dd0310009c00000000010280190000004001100210000007e7011001c700001f6f00010430000007e80100004100000000001004350000004101000039000000040010043f000007e90100004100001f6f00010430000000400200043d0000001f0430018f000000050330027200001f4a0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00001f420000413d000000000540004c00001f590000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000007dd010000410000000103000031000007dd0430009c0000000003018019000007dd0420009c000000000102401900000040011002100000006002300210000000000112019f00001f6f0001043000001f66002104210000000102000039000000000001042d0000000002000019000000000001042d00001f6b002104230000000102000039000000000001042d0000000002000019000000000001042d00001f6d0000043200001f6e0001042e00001f6f00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000100000000000000008000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff02000000000000000000000000000000000000000000000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e000000002000000000000000000000000000000400000010000000000000000004f4654577261707065723a2064656661756c74427073203e3d2031303025000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000000a46d74bb00000000000000000000000000000000000000000000000000000000e1a4521700000000000000000000000000000000000000000000000000000000e55dc4e500000000000000000000000000000000000000000000000000000000e55dc4e600000000000000000000000000000000000000000000000000000000e5b5019a00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000e1a4521800000000000000000000000000000000000000000000000000000000e1bafc8000000000000000000000000000000000000000000000000000000000c3c8032900000000000000000000000000000000000000000000000000000000c3c8032a00000000000000000000000000000000000000000000000000000000d1b308dc00000000000000000000000000000000000000000000000000000000dda16a1000000000000000000000000000000000000000000000000000000000a46d74bc00000000000000000000000000000000000000000000000000000000a8198c00000000000000000000000000000000000000000000000000000000007a751181000000000000000000000000000000000000000000000000000000008bcb586b000000000000000000000000000000000000000000000000000000008bcb586c000000000000000000000000000000000000000000000000000000008d8c915c000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000007a751182000000000000000000000000000000000000000000000000000000008515484900000000000000000000000000000000000000000000000000000000498eff6300000000000000000000000000000000000000000000000000000000498eff6400000000000000000000000000000000000000000000000000000000715018a6000000000000000000000000000000000000000000000000000000000c3d27560000000000000000000000000000000000000000000000000000000017696f64000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff02000000000000000000000000000000000000400000000000000000000000004f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657264647265737300000000000000000000000000000000000000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f206100000000000000000000000000000000000000840000000000000000000000004f4654577261707065723a206f66744270735b5f6f66745d203e3d2031303025a9059cbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff80000000000000000000000000000000000000000000000000ffffffffffffffbf5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65641806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000006f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206ef6514f9f283faac4cf3f3a6a702c116227ad0f2c727fb336e4c10b418bc6d613416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000051905636000000000000000000000000000000000000000000000000000000005265656e7472616e637947756172643a207265656e7472616e742063616c6c00fc0c546a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004400000000000000000000000020746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000005361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f095ea7b300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000ffffffffffffff3f695ef6bf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffedb00000000000000000000000000000000000001240000000000000000000000002cdf0b950000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffebb000000000000000000000000000000000000014400000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff60000000000000000000000000000000000000000000000000ffffffffffffff1f000000000000000000000000000000000000000000000000ffffffffffffff5fffff000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000006000000000000000000000000097bcdc1dd7ab82ef93280983f23d391afea463d0333fddd1a4617693b9ccfeea77617000000000000000000000000000000000000000000000000000000000004f4654577261707065723a206e6f7420656e6f75676820616d6f756e74546f534f4654577261707065723a2046656520627073203e3d203130302500000000002a205e3d00000000000000000000000000000000000000000000000000000000365260b4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e458982d1ce775dfe156c958a22636cfd070f1fd22a2d195c5871dd8dbba37ed
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0x0000000000000000000000000000000000000000000000000000000000000002
-----Decoded View---------------
Arg [0] : _defaultBps (uint256): 2
-----Encoded View---------------
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ZKSYNC | 99.55% | $0.059665 | 20,749.9032 | $1,238.04 | |
ZKSYNC | 0.14% | $0.004988 | 349.388 | $1.74 | |
ZKSYNC | 0.13% | $2.03 | 0.7768 | $1.58 | |
ZKSYNC | 0.08% | $0.008432 | 119.4631 | $1.01 | |
BASE | 0.02% | $1,785.85 | 0.00015239 | $0.27214 | |
ETH | 0.02% | $1,784.91 | 0.00014933 | $0.266547 | |
LINEA | 0.02% | $1,784.91 | 0.00012399 | $0.221311 | |
BSC | 0.02% | $617.41 | 0.00032902 | $0.203138 | |
OP | 0.01% | $1,786.44 | 0.0000855 | $0.152745 | |
SCROLL | 0.01% | $1,784.91 | 0.00007555 | $0.134851 | |
POL | <0.01% | $0.2179 | 0.0000383 | $0.000008 |
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.