Address Details
contract
token

0x32A9FE697a32135BFd313a6Ac28792DaE4D9979d

Token
cMCO2 (cMCO2)
Creator
0x35c4c1–ca32fd at 0xee81f4–c9c820
Balance
0 CELO ( )
Locked CELO Balance
0.00 CELO
Voting CELO Balance
0.00 CELO
Pending Unlocked Gold
0.00 CELO
Tokens
Fetching tokens...
Transactions
1,604 Transactions
Transfers
3 Transfers
Gas Used
67,282,284
Last Balance Update
25779019
This contract has been verified via Sourcify. View contract in Sourcify repository
Contract name:
ControlledSideToken




Optimization enabled
false
Compiler version
v0.5.17+commit.d19bba13




EVM Version
istanbul




Verified at
2021-09-04T01:43:33.397172Z

Contract source code

pragma solidity ^0.5.0;

import "./zeppelin/token/ERC777/ERC777.sol";
import "./IERC677Receiver.sol";
import "./ISideToken.sol";

contract ControlledSideToken is ISideToken, ERC777 {
    using Address for address;
    using SafeMath for uint256;

    address public authorized;
    uint256 private _granularity;

    event Transfer(address,address,uint256,bytes);

    constructor(
        string memory _tokenName,
        string memory _tokenSymbol,
        address _authorizedAddr,
        address[] memory _onwerAddr,
        uint256 _newGranularity
    ) ERC777(_tokenName, _tokenSymbol, _onwerAddr) public {
        require(_authorizedAddr != address(0), "SideToken: Minter address is null");
        require(_newGranularity >= 1, "SideToken: Granularity must be equal or bigger than 1");
        authorized = _authorizedAddr;
        _granularity = _newGranularity;
    }

    modifier onlyAuthorized() {
        require(_msgSender() == authorized, "SideToken: Caller is not the minter");
        _;
    }

    function mint(
        address account,
        uint256 amount,
        bytes calldata userData,
        bytes calldata operatorData
    )
    external onlyAuthorized
    {
        _mint(_msgSender(), account, amount, userData, operatorData);
    }

    /**
     * @dev Overrides burn funcionality so only authorized wallets can burn
     * tokens. This is important because if a holder burns tokens on the 
     * side token that amount would be forever stuck on the original bridge,
     * therefore the original token total supply would be forever wrong.
     * It's also imperative that we centralize burns on the main token as
     * this side token mirrors a real-world asset with an audited inventory.
     * 
     * That's why only default operators can burn tokens and only the authorized
     * address can burn its tokens. Regular users and contracts can't.
     *
     * Also emits a {Transfer} event for ERC20 compatibility.
     */
    function burn(uint256 amount, bytes calldata data) external onlyAuthorized {
        _burn(_msgSender(), _msgSender(), amount, data, "");
    }

    /**
    * @dev ERC677 transfer token with additional data if the recipient is a contact.
    * @param recipient The address to transfer to.
    * @param amount The amount to be transferred.
    * @param data The extra data to be passed to the receiving contract.
    */
    function transferAndCall(address recipient, uint amount, bytes calldata data)
        external returns (bool success)
    {
        address from = _msgSender();

        _send(from, from, recipient, amount, data, "", false);
        emit Transfer(from, recipient, amount, data);
        IERC677Receiver(recipient).onTokenTransfer(from, amount, data);
        return true;
    }

    function granularity() public view returns (uint256) {
        return _granularity;
    }

}
        

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","payable":false,"inputs":[{"type":"string","name":"_tokenName","internalType":"string"},{"type":"string","name":"_tokenSymbol","internalType":"string"},{"type":"address","name":"_authorizedAddr","internalType":"address"},{"type":"address[]","name":"_onwerAddr","internalType":"address[]"},{"type":"uint256","name":"_newGranularity","internalType":"uint256"}]},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"address","name":"spender","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"AuthorizedOperator","inputs":[{"type":"address","name":"operator","internalType":"address","indexed":true},{"type":"address","name":"tokenHolder","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"Burned","inputs":[{"type":"address","name":"operator","internalType":"address","indexed":true},{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"uint256","name":"amount","internalType":"uint256","indexed":false},{"type":"bytes","name":"data","internalType":"bytes","indexed":false},{"type":"bytes","name":"operatorData","internalType":"bytes","indexed":false}],"anonymous":false},{"type":"event","name":"Minted","inputs":[{"type":"address","name":"operator","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"amount","internalType":"uint256","indexed":false},{"type":"bytes","name":"data","internalType":"bytes","indexed":false},{"type":"bytes","name":"operatorData","internalType":"bytes","indexed":false}],"anonymous":false},{"type":"event","name":"RevokedOperator","inputs":[{"type":"address","name":"operator","internalType":"address","indexed":true},{"type":"address","name":"tokenHolder","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"Sent","inputs":[{"type":"address","name":"operator","internalType":"address","indexed":true},{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"amount","internalType":"uint256","indexed":false},{"type":"bytes","name":"data","internalType":"bytes","indexed":false},{"type":"bytes","name":"operatorData","internalType":"bytes","indexed":false}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"","internalType":"address","indexed":false},{"type":"address","name":"","internalType":"address","indexed":false},{"type":"uint256","name":"","internalType":"uint256","indexed":false},{"type":"bytes","name":"","internalType":"bytes","indexed":false}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"allowance","inputs":[{"type":"address","name":"holder","internalType":"address"},{"type":"address","name":"spender","internalType":"address"}],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"value","internalType":"uint256"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"authorizeOperator","inputs":[{"type":"address","name":"operator","internalType":"address"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"address","name":"","internalType":"address"}],"name":"authorized","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"tokenHolder","internalType":"address"}],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"burn","inputs":[{"type":"uint256","name":"amount","internalType":"uint256"},{"type":"bytes","name":"data","internalType":"bytes"}],"constant":false},{"type":"function","stateMutability":"pure","payable":false,"outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"address[]","name":"","internalType":"address[]"}],"name":"defaultOperators","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"granularity","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isOperatorFor","inputs":[{"type":"address","name":"operator","internalType":"address"},{"type":"address","name":"tokenHolder","internalType":"address"}],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"mint","inputs":[{"type":"address","name":"account","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"},{"type":"bytes","name":"userData","internalType":"bytes"},{"type":"bytes","name":"operatorData","internalType":"bytes"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"operatorBurn","inputs":[{"type":"address","name":"account","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"},{"type":"bytes","name":"data","internalType":"bytes"},{"type":"bytes","name":"operatorData","internalType":"bytes"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"operatorSend","inputs":[{"type":"address","name":"sender","internalType":"address"},{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"},{"type":"bytes","name":"data","internalType":"bytes"},{"type":"bytes","name":"operatorData","internalType":"bytes"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"revokeOperator","inputs":[{"type":"address","name":"operator","internalType":"address"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"send","inputs":[{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"},{"type":"bytes","name":"data","internalType":"bytes"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":"success","internalType":"bool"}],"name":"transferAndCall","inputs":[{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"},{"type":"bytes","name":"data","internalType":"bytes"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"holder","internalType":"address"},{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}],"constant":false}]
              

Contract Creation Code

0x60806040523480156200001157600080fd5b5060405162003f1d38038062003f1d833981810160405260a08110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b838201915060208201858111156200006f57600080fd5b82518660018202830111640100000000821117156200008d57600080fd5b8083526020830192505050908051906020019080838360005b83811015620000c3578082015181840152602081019050620000a6565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011557600080fd5b838201915060208201858111156200012c57600080fd5b82518660018202830111640100000000821117156200014a57600080fd5b8083526020830192505050908051906020019080838360005b838110156200018057808201518184015260208101905062000163565b50505050905090810190601f168015620001ae5780820380516001836020036101000a031916815260200191505b506040526020018051906020019092919080516040519392919084640100000000821115620001dc57600080fd5b83820191506020820185811115620001f357600080fd5b82518660208202830111640100000000821117156200021157600080fd5b8083526020830192505050908051906020019060200280838360005b838110156200024a5780820151818401526020810190506200022d565b505050509050016040526020018051906020019092919050505084848382600290805190602001906200027f929190620006db565b50816003908051906020019062000298929190620006db565b508060049080519060200190620002b192919062000762565b5060008090505b600480549050811015620003645760016005600060048481548110620002da57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050620002b8565b50738a0994b2b1b8ab22b8de7000dd31931fd61771a973ffffffffffffffffffffffffffffffffffffffff166329965a1d3060405180807f455243373737546f6b656e000000000000000000000000000000000000000000815250600b0190506040518091039020306040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b1580156200046a57600080fd5b505af11580156200047f573d6000803e3d6000fd5b50505050738a0994b2b1b8ab22b8de7000dd31931fd61771a973ffffffffffffffffffffffffffffffffffffffff166329965a1d3060405180807f4552433230546f6b656e00000000000000000000000000000000000000000000815250600a0190506040518091039020306040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b1580156200058857600080fd5b505af11580156200059d573d6000803e3d6000fd5b50505050505050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156200062c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018062003ec76021913960400191505060405180910390fd5b600181101562000688576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603581526020018062003ee86035913960400191505060405180910390fd5b82600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a8190555050505050506200085f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200071e57805160ff19168380011785556200074f565b828001600101855582156200074f579182015b828111156200074e57825182559160200191906001019062000731565b5b5090506200075e9190620007f1565b5090565b828054828255906000526020600020908101928215620007de579160200282015b82811115620007dd5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000783565b5b509050620007ed919062000819565b5090565b6200081691905b8082111562000812576000816000905550600101620007f8565b5090565b90565b6200085c91905b808211156200085857600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555060010162000820565b5090565b90565b613658806200086f6000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063d95b63711161007c578063d95b6371146107af578063dcdc7dd01461082b578063dd62ed3e14610923578063fad8b32a1461099b578063fc673c4f146109df578063fe9d930314610ad757610137565b806370a0823114610587578063959b8c3f146105df57806395d89b41146106235780639bd9bbc6146106a6578063a9059cbb1461074957610137565b8063313ce567116100ff578063313ce567146103285780634000aea01461034c578063456cb7c614610407578063556f0dc71461045157806362ad1b831461046f57610137565b806306e485381461013c57806306fdde031461019b578063095ea7b31461021e57806318160ddd1461028457806323b872dd146102a2575b600080fd5b610144610b5a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561018757808201518184015260208101905061016c565b505050509050019250505060405180910390f35b6101a3610be8565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e35780820151818401526020810190506101c8565b50505050905090810190601f1680156102105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026a6004803603604081101561023457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c8a565b604051808215151515815260200191505060405180910390f35b61028c610cad565b6040518082815260200191505060405180910390f35b61030e600480360360608110156102b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cb7565b604051808215151515815260200191505060405180910390f35b610330610f32565b604051808260ff1660ff16815260200191505060405180910390f35b6103ed6004803603606081101561036257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156103a957600080fd5b8201836020820111156103bb57600080fd5b803590602001918460018302840111640100000000831117156103dd57600080fd5b9091929391929390505050610f3b565b604051808215151515815260200191505060405180910390f35b61040f61115e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610459611184565b6040518082815260200191505060405180910390f35b610585600480360360a081101561048557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156104ec57600080fd5b8201836020820111156104fe57600080fd5b8035906020019184600183028401116401000000008311171561052057600080fd5b90919293919293908035906020019064010000000081111561054157600080fd5b82018360208201111561055357600080fd5b8035906020019184600183028401116401000000008311171561057557600080fd5b909192939192939050505061118e565b005b6105c96004803603602081101561059d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061129c565b6040518082815260200191505060405180910390f35b610621600480360360208110156105f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112e4565b005b61062b61155b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066b578082015181840152602081019050610650565b50505050905090810190601f1680156106985780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610747600480360360608110156106bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561070357600080fd5b82018360208201111561071557600080fd5b8035906020019184600183028401116401000000008311171561073757600080fd5b90919293919293905050506115fd565b005b6107956004803603604081101561075f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611674565b604051808215151515815260200191505060405180910390f35b610811600480360360408110156107c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117b5565b604051808215151515815260200191505060405180910390f35b6109216004803603608081101561084157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561088857600080fd5b82018360208201111561089a57600080fd5b803590602001918460018302840111640100000000831117156108bc57600080fd5b9091929391929390803590602001906401000000008111156108dd57600080fd5b8201836020820111156108ef57600080fd5b8035906020019184600183028401116401000000008311171561091157600080fd5b9091929391929390505050611966565b005b6109856004803603604081101561093957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ab7565b6040518082815260200191505060405180910390f35b6109dd600480360360208110156109b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b3e565b005b610ad5600480360360808110156109f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610a3c57600080fd5b820183602082011115610a4e57600080fd5b80359060200191846001830284011164010000000083111715610a7057600080fd5b909192939192939080359060200190640100000000811115610a9157600080fd5b820183602082011115610aa357600080fd5b80359060200191846001830284011164010000000083111715610ac557600080fd5b9091929391929390505050611db5565b005b610b5860048036036040811015610aed57600080fd5b810190808035906020019092919080359060200190640100000000811115610b1457600080fd5b820183602082011115610b2657600080fd5b80359060200191846001830284011164010000000083111715610b4857600080fd5b9091929391929390505050611ebf565b005b60606004805480602002602001604051908101604052809291908181526020018280548015610bde57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610b94575b5050505050905090565b606060028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c805780601f10610c5557610100808354040283529160200191610c80565b820191906000526020600020905b815481529060010190602001808311610c6357829003601f168201915b5050505050905090565b600080610c95611fdf565b9050610ca2818585611fe7565b600191505092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433737373a207472616e7366657220746f207a65726f206164647265737381525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610de1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806135be6022913960400191505060405180910390fd5b6000610deb611fdf565b9050610e19818686866040518060200160405280600081525060405180602001604052806000815250612175565b610e4581868686604051806020016040528060008152506040518060200160405280600081525061248f565b610ef88582610ef38660405180606001604052806029815260200161359560299139600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127929092919063ffffffff16565b611fe7565b610f268186868660405180602001604052806000815250604051806020016040528060008152506000612852565b60019150509392505050565b60006012905090565b600080610f46611fdf565b9050610fab8182888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050604051806020016040528060008152506000612bed565b7fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c168187878787604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050965050505050505060405180910390a18573ffffffffffffffffffffffffffffffffffffffff1663a4c0ed36828787876040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561113957600080fd5b505af115801561114d573d6000803e3d6000fd5b505050506001915050949350505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54905090565b61119f611199611fdf565b886117b5565b6111f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806135e06021913960400191505060405180910390fd5b6112936111ff611fdf565b88888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506001612bed565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b8073ffffffffffffffffffffffffffffffffffffffff16611303611fdf565b73ffffffffffffffffffffffffffffffffffffffff161415611370576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806134e06024913960400191505060405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561145a57600760006113ce611fdf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690556114f7565b600160066000611468611fdf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b6114ff611fdf565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a350565b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115f35780601f106115c8576101008083540402835291602001916115f3565b820191906000526020600020905b8154815290600101906020018083116115d657829003601f168201915b5050505050905090565b61166e611608611fdf565b611610611fdf565b868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050604051806020016040528060008152506001612bed565b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611718576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433737373a207472616e7366657220746f207a65726f206164647265737381525060200191505060405180910390fd5b6000611722611fdf565b9050611750818286866040518060200160405280600081525060405180602001604052806000815250612175565b61177c81828686604051806020016040528060008152506040518060200160405280600081525061248f565b6117aa8182868660405180602001604052806000815250604051806020016040528060008152506000612852565b600191505092915050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806118cd5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156118cc5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b8061195e5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166119a7611fdf565b73ffffffffffffffffffffffffffffffffffffffff1614611a13576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806135726023913960400191505060405180910390fd5b611aaf611a1e611fdf565b878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612d67565b505050505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b46611fdf565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806135046021913960400191505060405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611cbd57600160076000611c2a611fdf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611d51565b60066000611cc9611fdf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690555b611d59611fdf565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a350565b611dc6611dc0611fdf565b876117b5565b611e1b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806135e06021913960400191505060405180910390fd5b611eb7611e26611fdf565b878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050613075565b505050505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611f00611fdf565b73ffffffffffffffffffffffffffffffffffffffff1614611f6c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806135726023913960400191505060405180910390fd5b611fda611f77611fdf565b611f7f611fdf565b8585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505060405180602001604052806000815250613075565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561208a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4552433737373a20617070726f766520746f207a65726f20616464726573730081525060200191505060405180910390fd5b80600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000738a0994b2b1b8ab22b8de7000dd31931fd61771a973ffffffffffffffffffffffffffffffffffffffff1663aabbb8ca877f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe89560001b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b15801561223357600080fd5b505afa158015612247573d6000803e3d6000fd5b505050506040513d602081101561225d57600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612486578073ffffffffffffffffffffffffffffffffffffffff166375ab97828888888888886040518763ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156123b557808201518184015260208101905061239a565b50505050905090810190601f1680156123e25780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561241b578082015181840152602081019050612400565b50505050905090810190601f1680156124485780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b15801561246d57600080fd5b505af1158015612481573d6000803e3d6000fd5b505050505b50505050505050565b6124fa836040518060600160405280602781526020016134b9602791396000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127929092919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061258d836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461339b90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987868686604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015612682578082015181840152602081019050612667565b50505050905090810190601f1680156126af5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156126e85780820151818401526020810190506126cd565b50505050905090810190601f1680156127155780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a48373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050565b600083831115829061283f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156128045780820151818401526020810190506127e9565b50505050905090810190601f1680156128315780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000738a0994b2b1b8ab22b8de7000dd31931fd61771a973ffffffffffffffffffffffffffffffffffffffff1663aabbb8ca877fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60001b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b15801561291057600080fd5b505afa158015612924573d6000803e3d6000fd5b505050506040513d602081101561293a57600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612b66578073ffffffffffffffffffffffffffffffffffffffff166223de298989898989896040518763ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015612a91578082015181840152602081019050612a76565b50505050905090810190601f168015612abe5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015612af7578082015181840152602081019050612adc565b50505050905090810190601f168015612b245780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b158015612b4957600080fd5b505af1158015612b5d573d6000803e3d6000fd5b50505050612be3565b8115612be257612b8b8673ffffffffffffffffffffffffffffffffffffffff16613423565b15612be1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d815260200180613525604d913960600191505060405180910390fd5b5b5b5050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415612c90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4552433737373a2073656e642066726f6d207a65726f2061646472657373000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612d33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433737373a2073656e6420746f207a65726f20616464726573730000000081525060200191505060405180910390fd5b612d41878787878787612175565b612d4f87878787878761248f565b612d5e87878787878787612852565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612e0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433737373a206d696e7420746f207a65726f20616464726573730000000081525060200191505060405180910390fd5b612e1f8360015461339b90919063ffffffff16565b600181905550612e76836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461339b90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ec9856000868686866001612852565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d858585604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015612f65578082015181840152602081019050612f4a565b50505050905090810190601f168015612f925780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015612fcb578082015181840152602081019050612fb0565b50505050905090810190601f168015612ff85780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4552433737373a206275726e2066726f6d207a65726f2061646472657373000081525060200191505060405180910390fd5b61312785856000868686612175565b61319283604051806060016040528060238152602001613601602391396000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127929092919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131e98360015461346e90919063ffffffff16565b6001819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098858585604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561328b578082015181840152602081019050613270565b50505050905090810190601f1680156132b85780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156132f15780820151818401526020810190506132d6565b50505050905090810190601f16801561331e5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050565b600080828401905083811015613419576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561346557506000801b8214155b92505050919050565b60006134b083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612792565b90509291505056fe4552433737373a207472616e7366657220616d6f756e7420657863656564732062616c616e63654552433737373a20617574686f72697a696e672073656c66206173206f70657261746f724552433737373a207265766f6b696e672073656c66206173206f70657261746f724552433737373a20746f6b656e20726563697069656e7420636f6e747261637420686173206e6f20696d706c656d656e74657220666f7220455243373737546f6b656e73526563697069656e7453696465546f6b656e3a2043616c6c6572206973206e6f7420746865206d696e7465724552433737373a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654552433737373a207472616e736665722066726f6d207a65726f20616464726573734552433737373a2063616c6c6572206973206e6f7420616e206f70657261746f724552433737373a206275726e20616d6f756e7420657863656564732062616c616e6365a265627a7a7231582075afad5ac11e827514e86913bc37984e10a35d846ac3b469a660442bd6a9bfe864736f6c6343000511003253696465546f6b656e3a204d696e7465722061646472657373206973206e756c6c53696465546f6b656e3a204772616e756c6172697479206d75737420626520657175616c206f7220626967676572207468616e203100000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000004a2115ba6fb935c49dec4395045cd2b996060e13000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000005634d434f320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005634d434f3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000338d1a2a653230b59c2ed7f7bc96843fb40342e

Deployed ByteCode

0x608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063d95b63711161007c578063d95b6371146107af578063dcdc7dd01461082b578063dd62ed3e14610923578063fad8b32a1461099b578063fc673c4f146109df578063fe9d930314610ad757610137565b806370a0823114610587578063959b8c3f146105df57806395d89b41146106235780639bd9bbc6146106a6578063a9059cbb1461074957610137565b8063313ce567116100ff578063313ce567146103285780634000aea01461034c578063456cb7c614610407578063556f0dc71461045157806362ad1b831461046f57610137565b806306e485381461013c57806306fdde031461019b578063095ea7b31461021e57806318160ddd1461028457806323b872dd146102a2575b600080fd5b610144610b5a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561018757808201518184015260208101905061016c565b505050509050019250505060405180910390f35b6101a3610be8565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e35780820151818401526020810190506101c8565b50505050905090810190601f1680156102105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026a6004803603604081101561023457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c8a565b604051808215151515815260200191505060405180910390f35b61028c610cad565b6040518082815260200191505060405180910390f35b61030e600480360360608110156102b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cb7565b604051808215151515815260200191505060405180910390f35b610330610f32565b604051808260ff1660ff16815260200191505060405180910390f35b6103ed6004803603606081101561036257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156103a957600080fd5b8201836020820111156103bb57600080fd5b803590602001918460018302840111640100000000831117156103dd57600080fd5b9091929391929390505050610f3b565b604051808215151515815260200191505060405180910390f35b61040f61115e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610459611184565b6040518082815260200191505060405180910390f35b610585600480360360a081101561048557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156104ec57600080fd5b8201836020820111156104fe57600080fd5b8035906020019184600183028401116401000000008311171561052057600080fd5b90919293919293908035906020019064010000000081111561054157600080fd5b82018360208201111561055357600080fd5b8035906020019184600183028401116401000000008311171561057557600080fd5b909192939192939050505061118e565b005b6105c96004803603602081101561059d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061129c565b6040518082815260200191505060405180910390f35b610621600480360360208110156105f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112e4565b005b61062b61155b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066b578082015181840152602081019050610650565b50505050905090810190601f1680156106985780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610747600480360360608110156106bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561070357600080fd5b82018360208201111561071557600080fd5b8035906020019184600183028401116401000000008311171561073757600080fd5b90919293919293905050506115fd565b005b6107956004803603604081101561075f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611674565b604051808215151515815260200191505060405180910390f35b610811600480360360408110156107c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117b5565b604051808215151515815260200191505060405180910390f35b6109216004803603608081101561084157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561088857600080fd5b82018360208201111561089a57600080fd5b803590602001918460018302840111640100000000831117156108bc57600080fd5b9091929391929390803590602001906401000000008111156108dd57600080fd5b8201836020820111156108ef57600080fd5b8035906020019184600183028401116401000000008311171561091157600080fd5b9091929391929390505050611966565b005b6109856004803603604081101561093957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ab7565b6040518082815260200191505060405180910390f35b6109dd600480360360208110156109b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b3e565b005b610ad5600480360360808110156109f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610a3c57600080fd5b820183602082011115610a4e57600080fd5b80359060200191846001830284011164010000000083111715610a7057600080fd5b909192939192939080359060200190640100000000811115610a9157600080fd5b820183602082011115610aa357600080fd5b80359060200191846001830284011164010000000083111715610ac557600080fd5b9091929391929390505050611db5565b005b610b5860048036036040811015610aed57600080fd5b810190808035906020019092919080359060200190640100000000811115610b1457600080fd5b820183602082011115610b2657600080fd5b80359060200191846001830284011164010000000083111715610b4857600080fd5b9091929391929390505050611ebf565b005b60606004805480602002602001604051908101604052809291908181526020018280548015610bde57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610b94575b5050505050905090565b606060028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c805780601f10610c5557610100808354040283529160200191610c80565b820191906000526020600020905b815481529060010190602001808311610c6357829003601f168201915b5050505050905090565b600080610c95611fdf565b9050610ca2818585611fe7565b600191505092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433737373a207472616e7366657220746f207a65726f206164647265737381525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610de1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806135be6022913960400191505060405180910390fd5b6000610deb611fdf565b9050610e19818686866040518060200160405280600081525060405180602001604052806000815250612175565b610e4581868686604051806020016040528060008152506040518060200160405280600081525061248f565b610ef88582610ef38660405180606001604052806029815260200161359560299139600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127929092919063ffffffff16565b611fe7565b610f268186868660405180602001604052806000815250604051806020016040528060008152506000612852565b60019150509392505050565b60006012905090565b600080610f46611fdf565b9050610fab8182888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050604051806020016040528060008152506000612bed565b7fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c168187878787604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050965050505050505060405180910390a18573ffffffffffffffffffffffffffffffffffffffff1663a4c0ed36828787876040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561113957600080fd5b505af115801561114d573d6000803e3d6000fd5b505050506001915050949350505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54905090565b61119f611199611fdf565b886117b5565b6111f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806135e06021913960400191505060405180910390fd5b6112936111ff611fdf565b88888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506001612bed565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b8073ffffffffffffffffffffffffffffffffffffffff16611303611fdf565b73ffffffffffffffffffffffffffffffffffffffff161415611370576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806134e06024913960400191505060405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561145a57600760006113ce611fdf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690556114f7565b600160066000611468611fdf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b6114ff611fdf565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a350565b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115f35780601f106115c8576101008083540402835291602001916115f3565b820191906000526020600020905b8154815290600101906020018083116115d657829003601f168201915b5050505050905090565b61166e611608611fdf565b611610611fdf565b868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050604051806020016040528060008152506001612bed565b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611718576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433737373a207472616e7366657220746f207a65726f206164647265737381525060200191505060405180910390fd5b6000611722611fdf565b9050611750818286866040518060200160405280600081525060405180602001604052806000815250612175565b61177c81828686604051806020016040528060008152506040518060200160405280600081525061248f565b6117aa8182868660405180602001604052806000815250604051806020016040528060008152506000612852565b600191505092915050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806118cd5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156118cc5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b8061195e5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166119a7611fdf565b73ffffffffffffffffffffffffffffffffffffffff1614611a13576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806135726023913960400191505060405180910390fd5b611aaf611a1e611fdf565b878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612d67565b505050505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b46611fdf565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806135046021913960400191505060405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611cbd57600160076000611c2a611fdf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611d51565b60066000611cc9611fdf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690555b611d59611fdf565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a350565b611dc6611dc0611fdf565b876117b5565b611e1b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806135e06021913960400191505060405180910390fd5b611eb7611e26611fdf565b878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050613075565b505050505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611f00611fdf565b73ffffffffffffffffffffffffffffffffffffffff1614611f6c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806135726023913960400191505060405180910390fd5b611fda611f77611fdf565b611f7f611fdf565b8585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505060405180602001604052806000815250613075565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561208a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4552433737373a20617070726f766520746f207a65726f20616464726573730081525060200191505060405180910390fd5b80600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000738a0994b2b1b8ab22b8de7000dd31931fd61771a973ffffffffffffffffffffffffffffffffffffffff1663aabbb8ca877f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe89560001b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b15801561223357600080fd5b505afa158015612247573d6000803e3d6000fd5b505050506040513d602081101561225d57600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612486578073ffffffffffffffffffffffffffffffffffffffff166375ab97828888888888886040518763ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156123b557808201518184015260208101905061239a565b50505050905090810190601f1680156123e25780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561241b578082015181840152602081019050612400565b50505050905090810190601f1680156124485780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b15801561246d57600080fd5b505af1158015612481573d6000803e3d6000fd5b505050505b50505050505050565b6124fa836040518060600160405280602781526020016134b9602791396000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127929092919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061258d836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461339b90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987868686604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015612682578082015181840152602081019050612667565b50505050905090810190601f1680156126af5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156126e85780820151818401526020810190506126cd565b50505050905090810190601f1680156127155780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a48373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050565b600083831115829061283f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156128045780820151818401526020810190506127e9565b50505050905090810190601f1680156128315780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000738a0994b2b1b8ab22b8de7000dd31931fd61771a973ffffffffffffffffffffffffffffffffffffffff1663aabbb8ca877fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60001b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b15801561291057600080fd5b505afa158015612924573d6000803e3d6000fd5b505050506040513d602081101561293a57600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612b66578073ffffffffffffffffffffffffffffffffffffffff166223de298989898989896040518763ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015612a91578082015181840152602081019050612a76565b50505050905090810190601f168015612abe5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015612af7578082015181840152602081019050612adc565b50505050905090810190601f168015612b245780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b158015612b4957600080fd5b505af1158015612b5d573d6000803e3d6000fd5b50505050612be3565b8115612be257612b8b8673ffffffffffffffffffffffffffffffffffffffff16613423565b15612be1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d815260200180613525604d913960600191505060405180910390fd5b5b5b5050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415612c90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4552433737373a2073656e642066726f6d207a65726f2061646472657373000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612d33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433737373a2073656e6420746f207a65726f20616464726573730000000081525060200191505060405180910390fd5b612d41878787878787612175565b612d4f87878787878761248f565b612d5e87878787878787612852565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612e0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433737373a206d696e7420746f207a65726f20616464726573730000000081525060200191505060405180910390fd5b612e1f8360015461339b90919063ffffffff16565b600181905550612e76836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461339b90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ec9856000868686866001612852565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d858585604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015612f65578082015181840152602081019050612f4a565b50505050905090810190601f168015612f925780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015612fcb578082015181840152602081019050612fb0565b50505050905090810190601f168015612ff85780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4552433737373a206275726e2066726f6d207a65726f2061646472657373000081525060200191505060405180910390fd5b61312785856000868686612175565b61319283604051806060016040528060238152602001613601602391396000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127929092919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131e98360015461346e90919063ffffffff16565b6001819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098858585604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561328b578082015181840152602081019050613270565b50505050905090810190601f1680156132b85780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156132f15780820151818401526020810190506132d6565b50505050905090810190601f16801561331e5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050565b600080828401905083811015613419576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561346557506000801b8214155b92505050919050565b60006134b083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612792565b90509291505056fe4552433737373a207472616e7366657220616d6f756e7420657863656564732062616c616e63654552433737373a20617574686f72697a696e672073656c66206173206f70657261746f724552433737373a207265766f6b696e672073656c66206173206f70657261746f724552433737373a20746f6b656e20726563697069656e7420636f6e747261637420686173206e6f20696d706c656d656e74657220666f7220455243373737546f6b656e73526563697069656e7453696465546f6b656e3a2043616c6c6572206973206e6f7420746865206d696e7465724552433737373a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654552433737373a207472616e736665722066726f6d207a65726f20616464726573734552433737373a2063616c6c6572206973206e6f7420616e206f70657261746f724552433737373a206275726e20616d6f756e7420657863656564732062616c616e6365a265627a7a7231582075afad5ac11e827514e86913bc37984e10a35d846ac3b469a660442bd6a9bfe864736f6c63430005110032