POL Price: $0.579512 (-17.60%)
 

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Delete Reverse M...642272672024-11-13 7:55:2826 days ago1731484528IN
0x561f1b51...a5dFF6f64
0 POL0.0015204669.96430045
Register Reverse...642272032024-11-13 7:53:1226 days ago1731484392IN
0x561f1b51...a5dFF6f64
0 POL0.0156960787.99580646
Delete Reverse M...641099342024-11-10 9:52:1429 days ago1731232334IN
0x561f1b51...a5dFF6f64
0 POL0.0018712978.85098433
Delete Reverse M...641099242024-11-10 9:51:5429 days ago1731232314IN
0x561f1b51...a5dFF6f64
0 POL0.0017155378.94060482
Register Reverse...635166732024-10-26 15:00:5944 days ago1729954859IN
0x561f1b51...a5dFF6f64
0 POL0.0059116933.27981527
Register Reverse...597042612024-07-23 8:35:55139 days ago1721723755IN
0x561f1b51...a5dFF6f64
0 POL0.005333130.0000007
Register Reverse...589540372024-07-04 16:08:03158 days ago1720109283IN
0x561f1b51...a5dFF6f64
0 POL0.0053665530.07604186
Register Reverse...586424592024-06-26 20:36:07166 days ago1719434167IN
0x561f1b51...a5dFF6f64
0 POL0.0053268730.00143284
Register Reverse...586285652024-06-26 12:07:56166 days ago1719403676IN
0x561f1b51...a5dFF6f64
0 POL0.0053038530.00000668
Register Reverse...581129872024-06-13 13:56:50179 days ago1718287010IN
0x561f1b51...a5dFF6f64
0 POL0.0082709346.50278882
Register Reverse...578086652024-06-05 20:12:55187 days ago1717618375IN
0x561f1b51...a5dFF6f64
0 POL0.0056599332
Register Reverse...577673312024-06-04 18:30:00188 days ago1717525800IN
0x561f1b51...a5dFF6f64
0 POL0.0053262930.00000002
Register Reverse...577654692024-06-04 17:21:54188 days ago1717521714IN
0x561f1b51...a5dFF6f64
0 POL0.0053910330.00000004
Delete Reverse M...571358212024-05-19 6:04:27204 days ago1716098667IN
0x561f1b51...a5dFF6f64
0 POL0.0006519630.00000003
Delete Reverse M...571357832024-05-19 6:03:07204 days ago1716098587IN
0x561f1b51...a5dFF6f64
0 POL0.0006519630.00000005
Delete Reverse M...571357442024-05-19 6:01:45204 days ago1716098505IN
0x561f1b51...a5dFF6f64
0 POL0.0006519630.00000007
Delete Reverse M...571340832024-05-19 4:59:40204 days ago1716094780IN
0x561f1b51...a5dFF6f64
0 POL0.0006519630.00000002
Delete Reverse M...571147662024-05-18 16:57:44205 days ago1716051464IN
0x561f1b51...a5dFF6f64
0 POL0.0006680130.73854695
Delete Reverse M...571111092024-05-18 14:38:33205 days ago1716043113IN
0x561f1b51...a5dFF6f64
0 POL0.0008692840
Delete Reverse M...571109882024-05-18 14:33:40205 days ago1716042820IN
0x561f1b51...a5dFF6f64
0 POL0.0008040837
Delete Reverse M...571109352024-05-18 14:31:22205 days ago1716042682IN
0x561f1b51...a5dFF6f64
0 POL0.0006815631.36237953
Register Reverse...567824272024-05-10 1:03:02213 days ago1715302982IN
0x561f1b51...a5dFF6f64
0 POL0.0053541930.00000019
Delete Reverse M...567819562024-05-10 0:44:46213 days ago1715301886IN
0x561f1b51...a5dFF6f64
0 POL0.0006519630.00000003
Register Reverse...566708142024-05-07 4:53:42216 days ago1715057622IN
0x561f1b51...a5dFF6f64
0 POL0.0059472633.00000003
Delete Reverse M...565795322024-05-04 20:00:46219 days ago1714852846IN
0x561f1b51...a5dFF6f64
0 POL0.0006519630.00000006
View all transactions

Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Test

Compiler Version
v0.8.1+commit.df193b15

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at polygonscan.com on 2022-05-31
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.1;

interface IDriss {
    function getIDriss(string memory hashPub) external view returns (string memory);
    function IDrissOwners(string memory _address) external view returns(address);
}

contract Test {   

    address public contractOwner = msg.sender; 
    mapping(string => string) public walletTags;
    mapping(address => string) public reverseIDriss;
    mapping(address => bool) private admins;
    address public IDrissAddr = 0x2EcCb53ca2d4ef91A79213FDDF3f8c2332c2a814;

    constructor() {
        walletTags["MM_ETH"] = "5d181abc9dcb7e79ce50e93db97addc1caf9f369257f61585889870555f8c321";
        walletTags["BINANCE_ETH"] = "4b118a4f0f3f149e641c6c43dd70283fcc07eacaa624efc762aa3843d85b2aba";
        walletTags["COINBASE_ETH"] = "92c7f97fb58ddbcb06c0d5a7cb720d74bc3c3aa52a0d706e477562cba68eeb73";
        walletTags["EXCHANGE_ETH"] = "ec72020f224c088671cfd623235b59c239964a95542713390a2b6ba07dd1151c";
        walletTags["PRIVATE_ETH"] = "005ba8fbc4c85a25534ac36354d779ef35e0ee31f4f8732b02b61c25ee406edb";
        walletTags["ERC20"] = "63d95e64e7caff988f97fdf32de5f16624f971149749c90fbc7bbe44244d3ced";
        walletTags["ESSENTIALS_ETH"] = "3ea9415b82f0ee7db933aab0be377ee1c1a405969d8b8c2454bcce7372a161c2";
        walletTags["RAINBOW_ETH"] = "992335db5f54ef94a5f23be8b925ed2529b044537c19b59643d39696936b6d6c";
        walletTags["ARGENT_ETH"] = "682614f9b037714bbf001db3a8d6e894fbdcf75cbbb9dea5a42edce33e880072";
        walletTags["TALLY_ETH"] = "f368de8673a59b860b71f54c7ba8ab17f0b9648ad014797e5f8d8fa9f7f1d11a";
        walletTags["TRUST_ETH"] = "df3d3f0233e396b2b27c3943269b10ecf2e7c1070a485e1b6b8f2201cb23cb52";
        walletTags["METAMASK_USDT"] = "74a3d8986c81769ed3bb99b773d66b60852f7ee3fa0d55a6a144523116c671c1";
        walletTags["BINANCE_USDT"] = "77c27c19cc85e24b1d4650800cc4b1bc607986dd3e78608435cececd31c35015";
        walletTags["COINBASE_USDT"] = "f2faabf9d133f31a13873ba8a15e676e063a730898ffadfcb0077f723260f563";
        walletTags["EXCHANGE_USDT"] = "683e7b694b374ce0d81ba525361fa0c27fff7237eb12ec41b6e225449d5702b9";
        walletTags["PRIVATE_USDT"] = "8c9a306a7dc200c52d32e3c1fcbf2f65e8037a68127b81807e8e58428004bc57";
        walletTags["ESSENTIALS_USDT"] = "74dcb573a5c63382484f597ae8034a6153c011e291c01eb3da40e9d83c436a9a";
        walletTags["METAMASK_USDC"] = "6f763fea691b1a723ef116e98c02fae07a4397e1a2b4b4c749d06845fa2ff5e4";
        walletTags["BINANCE_USDC"] = "7d2b0e0ee27a341da84ce56e95eb557988f9d4ff95fe452297fc765265bb27a2";
        walletTags["COINBASE_USDC"] = "6fe7c1a2fdd154e0b35283598724adee9a5d3b2e6523787d8b6de7cd441f15ca";
        walletTags["EXCHANGE_USDC"] = "8c4a231c47a4cfa7530ba4361b6926da4acd87f569167b8ba55b268bf99640d0";
        walletTags["PRIVATE_USDC"] = "54c9da06ab3d7c6c7f813f36491b22b7f312ae8f3b8d12866d35b5d325895e3e";
        walletTags["ESSENTIALS_USDC"] = "23a66df178daf25111083ee1610fb253baf3d12bd74c6c2aae96077558e3737a";
        walletTags["METAMASK_BNB"] = "3bee8eefc6afe6b4f7dbcc024eb3ad4ceaa5e458d34b7877319f2fe9f676e983";
        walletTags["ESSENTIALS_BNB"] = "639c9abb5605a14a557957fa72e146e9abf727be32e5149dca377b647317ebb9";
        walletTags["ESSENTIALS_ELA_SC"] = "c17c556467fe7c9fe5667dde7ca8cdbca8a24d0473b9e9c1c2c8166c1f355f6c";
        walletTags["ESSENTIAL_MATIC"] = "336fb6cdd7fec196c6e66966bd1c326072538a94e700b8bc1111d1574b8357ba";
        walletTags["TWITTER"] = "9306eda974cb89b82c0f38ab407f55b6d124159d1fa7779f2e088b2b786573c1";
    }


    function addAdmin(address adminAddress) external {
        require(msg.sender == contractOwner, "Only contractOwner can add admins.");
        admins[adminAddress] = true;
    }


    function deleteAdmin(address adminAddress) external {
        require(msg.sender == contractOwner, "Only contractOwner can delete admins.");
        admins[adminAddress] = false;
    }


    function addWalletTag(string memory _tag, string memory _tagHash) external {
        require(admins[msg.sender] == true, "Only admin can add wallet tag.");
        walletTags[_tag] = _tagHash;
    }


    function deleteWalletTag(string memory _tag) external {
        require(admins[msg.sender] == true, "Only admin can delete wallet tag.");
        delete walletTags[_tag];
    }


    function registerReverseIDriss(string memory _handle, string memory _walletTag) external {
        string memory _hashPub =  getSlice(toHex(sha256(abi.encodePacked(_handle, walletTags[_walletTag]))));
        require(checkIDrissOwnership(_hashPub), "You don't own this IDriss.");
        require(checkIDrissResolve(_hashPub), "This IDriss is not resolving.");
        reverseIDriss[msg.sender] = _handle;
    }


    function deleteReverseMapping() external {
        delete reverseIDriss[msg.sender];
    }

    function checkIDrissOwnership(string memory _hashPub) internal view returns (bool){
        address ownerIDrissAddr = IDriss(IDrissAddr).IDrissOwners(_hashPub);
        return ownerIDrissAddr==msg.sender;
    }

    function checkIDrissResolve(string memory _hashPub) internal view returns (bool){
        string memory IDrissAddrResolved = toLower(IDriss(IDrissAddr).getIDriss(_hashPub));
        return keccak256(abi.encodePacked(addressToString(msg.sender)))==keccak256(abi.encodePacked(IDrissAddrResolved));
    }

    // helper function to translate byte -> string
    function toHex16 (bytes16 data) internal pure returns (bytes32 result) {
        result = bytes32 (data) & 0xFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000 |
            (bytes32 (data) & 0x0000000000000000FFFFFFFFFFFFFFFF00000000000000000000000000000000) >> 64;
        result = result & 0xFFFFFFFF000000000000000000000000FFFFFFFF000000000000000000000000 |
            (result & 0x00000000FFFFFFFF000000000000000000000000FFFFFFFF0000000000000000) >> 32;
        result = result & 0xFFFF000000000000FFFF000000000000FFFF000000000000FFFF000000000000 |
            (result & 0x0000FFFF000000000000FFFF000000000000FFFF000000000000FFFF00000000) >> 16;
        result = result & 0xFF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
            (result & 0x00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000) >> 8;
        result = (result & 0xF000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000) >> 4 |
            (result & 0x0F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00) >> 8;
        result = bytes32 (0x3030303030303030303030303030303030303030303030303030303030303030 +
            uint256 (result) +
            (uint256 (result) + 0x0606060606060606060606060606060606060606060606060606060606060606 >> 4 &
            0x0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F) * 39);
    }

    // btes32 to string
    function toHex (bytes32 data) internal pure returns (string memory) {
        return string (abi.encodePacked ("0x", toHex16 (bytes16 (data)), toHex16 (bytes16 (data << 128))));
    }

    // compare IDriss hash with inputs
    function hashCompare(string memory string1, string memory string2, string memory string3) internal pure returns (bool) {
        return keccak256(abi.encodePacked(string3)) == keccak256(abi.encodePacked(string1, string2));
    }

    function addressToString(address _address) internal pure returns(string memory) {
        bytes32 _bytes = bytes32(uint256(uint160(address(_address))));
        bytes memory HEX = "0123456789abcdef";
        bytes memory _string = new bytes(42);
        _string[0] = '0';
        _string[1] = 'x';
        for(uint i = 0; i < 20; i++) {
            _string[2+i*2] = HEX[uint8(_bytes[i + 12] >> 4)];
            _string[3+i*2] = HEX[uint8(_bytes[i + 12] & 0x0f)];
        }
        return string(_string);
    }

    function toLower(string memory str) internal pure returns (string memory) {
        bytes memory bStr = bytes(str);
        bytes memory bLower = new bytes(bStr.length);
        for (uint i = 0; i < bStr.length; i++) {
            // Uppercase character...
            if ((uint8(bStr[i]) >= 65) && (uint8(bStr[i]) <= 90)) {
                // So we add 32 to make it lowercase
                bLower[i] = bytes1(uint8(bStr[i]) + 32);
            } else {
                bLower[i] = bStr[i];
            }
        }
        return string(bLower);
    }

    function getSlice(string memory text) internal pure returns (string memory) {
        bytes memory a = new bytes(64);
        for(uint i=0;i<=63;i++){
            a[i] = bytes(text)[i+2];
        }
        return string(a);    
    }

    function transferContractOwnership(address newOwner) public payable {
        require(msg.sender == contractOwner, "Only contractOwner can change ownership of contract.");
        require(newOwner != address(0), "Ownable: new contractOwner is the zero address.");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        contractOwner = newOwner;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"IDrissAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adminAddress","type":"address"}],"name":"addAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_tag","type":"string"},{"internalType":"string","name":"_tagHash","type":"string"}],"name":"addWalletTag","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adminAddress","type":"address"}],"name":"deleteAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deleteReverseMapping","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_tag","type":"string"}],"name":"deleteWalletTag","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_handle","type":"string"},{"internalType":"string","name":"_walletTag","type":"string"}],"name":"registerReverseIDriss","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"reverseIDriss","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferContractOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"walletTags","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]

6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732eccb53ca2d4ef91a79213fddf3f8c2332c2a814600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620000a657600080fd5b5060405180606001604052806040815260200162003c01604091396001604051620000d19062000eca565b90815260200160405180910390209080519060200190620000f492919062000935565b5060405180606001604052806040815260200162003c816040913960016040516200011f9062000ef8565b908152602001604051809103902090805190602001906200014292919062000935565b5060405180606001604052806040815260200162003dc16040913960016040516200016d9062000e85565b908152602001604051809103902090805190602001906200019092919062000935565b5060405180606001604052806040815260200162003e01604091396001604051620001bb9062000fde565b90815260200160405180910390209080519060200190620001de92919062000935565b5060405180606001604052806040815260200162003c41604091396001604051620002099062000f26565b908152602001604051809103902090805190602001906200022c92919062000935565b5060405180606001604052806040815260200162004141604091396001604051620002579062000f99565b908152602001604051809103902090805190602001906200027a92919062000935565b5060405180606001604052806040815260200162003ec1604091396001604051620002a59062000f6b565b90815260200160405180910390209080519060200190620002c892919062000935565b50604051806060016040528060408152602001620040c1604091396001604051620002f39062000ff5565b908152602001604051809103902090805190602001906200031692919062000935565b5060405180606001604052806040815260200162003e81604091396001604051620003419062000eb3565b908152602001604051809103902090805190602001906200036492919062000935565b5060405180606001604052806040815260200162003f816040913960016040516200038f9062000e29565b90815260200160405180910390209080519060200190620003b292919062000935565b5060405180606001604052806040815260200162004041604091396001604051620003dd9062000f54565b908152602001604051809103902090805190602001906200040092919062000935565b50604051806060016040528060408152602001620040016040913960016040516200042b9062000e57565b908152602001604051809103902090805190602001906200044e92919062000935565b5060405180606001604052806040815260200162003b01604091396001604051620004799062000fb0565b908152602001604051809103902090805190602001906200049c92919062000935565b5060405180606001604052806040815260200162003f41604091396001604051620004c79062000e6e565b90815260200160405180910390209080519060200190620004ea92919062000935565b5060405180606001604052806040815260200162004101604091396001604051620005159062000f82565b908152602001604051809103902090805190602001906200053892919062000935565b5060405180606001604052806040815260200162003d01604091396001604051620005639062000f0f565b908152602001604051809103902090805190602001906200058692919062000935565b5060405180606001604052806040815260200162004081604091396001604051620005b19062000e9c565b90815260200160405180910390209080519060200190620005d492919062000935565b5060405180606001604052806040815260200162003f01604091396001604051620005ff9062001023565b908152602001604051809103902090805190602001906200062292919062000935565b50604051806060016040528060408152602001620041816040913960016040516200064d9062000fc7565b908152602001604051809103902090805190602001906200067092919062000935565b50604051806060016040528060408152602001620041c16040913960016040516200069b9062001068565b90815260200160405180910390209080519060200190620006be92919062000935565b5060405180606001604052806040815260200162003bc1604091396001604051620006e99062001051565b908152602001604051809103902090805190602001906200070c92919062000935565b5060405180606001604052806040815260200162003e41604091396001604051620007379062000e40565b908152602001604051809103902090805190602001906200075a92919062000935565b5060405180606001604052806040815260200162003d8160409139600160405162000785906200103a565b90815260200160405180910390209080519060200190620007a892919062000935565b5060405180606001604052806040815260200162003b81604091396001604051620007d39062000f3d565b90815260200160405180910390209080519060200190620007f692919062000935565b5060405180606001604052806040815260200162003d4160409139600160405162000821906200100c565b908152602001604051809103902090805190602001906200084492919062000935565b5060405180606001604052806040815260200162003cc16040913960016040516200086f906200107f565b908152602001604051809103902090805190602001906200089292919062000935565b5060405180606001604052806040815260200162003b41604091396001604051620008bd9062000ee1565b90815260200160405180910390209080519060200190620008e092919062000935565b5060405180606001604052806040815260200162003fc16040913960016040516200090b9062001096565b908152602001604051809103902090805190602001906200092e92919062000935565b5062001599565b8280546200094390620010b8565b90600052602060002090601f016020900481019282620009675760008555620009b3565b82601f106200098257805160ff1916838001178555620009b3565b82800160010185558215620009b3579182015b82811115620009b257825182559160200191906001019062000995565b5b509050620009c29190620009c6565b5090565b5b80821115620009e1576000816000905550600101620009c7565b5090565b6000620009f4600983620010ad565b915062000a01826200111d565b600982019050919050565b600062000a1b600c83620010ad565b915062000a288262001146565b600c82019050919050565b600062000a42600d83620010ad565b915062000a4f826200116f565b600d82019050919050565b600062000a69600d83620010ad565b915062000a768262001198565b600d82019050919050565b600062000a90600c83620010ad565b915062000a9d82620011c1565b600c82019050919050565b600062000ab7600f83620010ad565b915062000ac482620011ea565b600f82019050919050565b600062000ade600a83620010ad565b915062000aeb8262001213565b600a82019050919050565b600062000b05600683620010ad565b915062000b12826200123c565b600682019050919050565b600062000b2c600f83620010ad565b915062000b398262001265565b600f82019050919050565b600062000b53600b83620010ad565b915062000b60826200128e565b600b82019050919050565b600062000b7a600c83620010ad565b915062000b8782620012b7565b600c82019050919050565b600062000ba1600b83620010ad565b915062000bae82620012e0565b600b82019050919050565b600062000bc8600c83620010ad565b915062000bd58262001309565b600c82019050919050565b600062000bef600983620010ad565b915062000bfc8262001332565b600982019050919050565b600062000c16600e83620010ad565b915062000c23826200135b565b600e82019050919050565b600062000c3d600d83620010ad565b915062000c4a8262001384565b600d82019050919050565b600062000c64600583620010ad565b915062000c7182620013ad565b600582019050919050565b600062000c8b600c83620010ad565b915062000c9882620013d6565b600c82019050919050565b600062000cb2600c83620010ad565b915062000cbf82620013ff565b600c82019050919050565b600062000cd9600c83620010ad565b915062000ce68262001428565b600c82019050919050565b600062000d00600b83620010ad565b915062000d0d8262001451565b600b82019050919050565b600062000d27600e83620010ad565b915062000d34826200147a565b600e82019050919050565b600062000d4e600d83620010ad565b915062000d5b82620014a3565b600d82019050919050565b600062000d75600f83620010ad565b915062000d8282620014cc565b600f82019050919050565b600062000d9c600d83620010ad565b915062000da982620014f5565b600d82019050919050565b600062000dc3600d83620010ad565b915062000dd0826200151e565b600d82019050919050565b600062000dea601183620010ad565b915062000df78262001547565b601182019050919050565b600062000e11600783620010ad565b915062000e1e8262001570565b600782019050919050565b600062000e3682620009e5565b9150819050919050565b600062000e4d8262000a0c565b9150819050919050565b600062000e648262000a33565b9150819050919050565b600062000e7b8262000a5a565b9150819050919050565b600062000e928262000a81565b9150819050919050565b600062000ea98262000aa8565b9150819050919050565b600062000ec08262000acf565b9150819050919050565b600062000ed78262000af6565b9150819050919050565b600062000eee8262000b1d565b9150819050919050565b600062000f058262000b44565b9150819050919050565b600062000f1c8262000b6b565b9150819050919050565b600062000f338262000b92565b9150819050919050565b600062000f4a8262000bb9565b9150819050919050565b600062000f618262000be0565b9150819050919050565b600062000f788262000c07565b9150819050919050565b600062000f8f8262000c2e565b9150819050919050565b600062000fa68262000c55565b9150819050919050565b600062000fbd8262000c7c565b9150819050919050565b600062000fd48262000ca3565b9150819050919050565b600062000feb8262000cca565b9150819050919050565b6000620010028262000cf1565b9150819050919050565b6000620010198262000d18565b9150819050919050565b6000620010308262000d3f565b9150819050919050565b6000620010478262000d66565b9150819050919050565b60006200105e8262000d8d565b9150819050919050565b6000620010758262000db4565b9150819050919050565b60006200108c8262000ddb565b9150819050919050565b6000620010a38262000e02565b9150819050919050565b600081905092915050565b60006002820490506001821680620010d157607f821691505b60208210811415620010e857620010e7620010ee565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f54414c4c595f4554480000000000000000000000000000000000000000000000600082015250565b7f505249564154455f555344430000000000000000000000000000000000000000600082015250565b7f4d4554414d41534b5f5553445400000000000000000000000000000000000000600082015250565b7f434f494e424153455f5553445400000000000000000000000000000000000000600082015250565b7f434f494e424153455f4554480000000000000000000000000000000000000000600082015250565b7f455353454e5449414c535f555344540000000000000000000000000000000000600082015250565b7f415247454e545f45544800000000000000000000000000000000000000000000600082015250565b7f4d4d5f4554480000000000000000000000000000000000000000000000000000600082015250565b7f455353454e5449414c5f4d415449430000000000000000000000000000000000600082015250565b7f42494e414e43455f455448000000000000000000000000000000000000000000600082015250565b7f505249564154455f555344540000000000000000000000000000000000000000600082015250565b7f505249564154455f455448000000000000000000000000000000000000000000600082015250565b7f4d4554414d41534b5f424e420000000000000000000000000000000000000000600082015250565b7f54525553545f4554480000000000000000000000000000000000000000000000600082015250565b7f455353454e5449414c535f455448000000000000000000000000000000000000600082015250565b7f45584348414e47455f5553445400000000000000000000000000000000000000600082015250565b7f4552433230000000000000000000000000000000000000000000000000000000600082015250565b7f42494e414e43455f555344540000000000000000000000000000000000000000600082015250565b7f42494e414e43455f555344430000000000000000000000000000000000000000600082015250565b7f45584348414e47455f4554480000000000000000000000000000000000000000600082015250565b7f5241494e424f575f455448000000000000000000000000000000000000000000600082015250565b7f455353454e5449414c535f424e42000000000000000000000000000000000000600082015250565b7f4d4554414d41534b5f5553444300000000000000000000000000000000000000600082015250565b7f455353454e5449414c535f555344430000000000000000000000000000000000600082015250565b7f45584348414e47455f5553444300000000000000000000000000000000000000600082015250565b7f434f494e424153455f5553444300000000000000000000000000000000000000600082015250565b7f455353454e5449414c535f454c415f5343000000000000000000000000000000600082015250565b7f5457495454455200000000000000000000000000000000000000000000000000600082015250565b61255880620015a96000396000f3fe60806040526004361061009c5760003560e01c8063a843c51f11610064578063a843c51f14610196578063b140c2b2146101b2578063ce606ee0146101c9578063e3d3cd80146101f4578063fc589bb81461021d578063fe51e011146102485761009c565b806327e1f7df146100a157806370480275146100ca578063780a3168146100f35780638a5b72b4146101305780639712f84f14610159575b600080fd5b3480156100ad57600080fd5b506100c860048036038101906100c391906119a3565b610271565b005b3480156100d657600080fd5b506100f160048036038101906100ec91906119a3565b61035a565b005b3480156100ff57600080fd5b5061011a600480360381019061011591906119a3565b610443565b6040516101279190611e2b565b60405180910390f35b34801561013c57600080fd5b5061015760048036038101906101529190611aa0565b6104e3565b005b34801561016557600080fd5b50610180600480360381019061017b9190611a1e565b61066e565b60405161018d9190611e2b565b60405180910390f35b6101b060048036038101906101ab91906119a3565b610724565b005b3480156101be57600080fd5b506101c761082e565b005b3480156101d557600080fd5b506101de61087b565b6040516101eb9190611e10565b60405180910390f35b34801561020057600080fd5b5061021b60048036038101906102169190611a1e565b61089f565b005b34801561022957600080fd5b5061023261095f565b60405161023f9190611e10565b60405180910390f35b34801561025457600080fd5b5061026f600480360381019061026a9190611aa0565b610985565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102f690611e6d565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103df90611f2d565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6002602052806000526040600020600091509050805461046290612171565b80601f016020809104026020016040519081016040528092919081815260200182805461048e90612171565b80156104db5780601f106104b0576101008083540402835291602001916104db565b820191906000526020600020905b8154815290600101906020018083116104be57829003601f168201915b505050505081565b600061058361057e6002856001866040516104fe9190611d9e565b908152602001604051809103902060405160200161051d929190611db5565b6040516020818303038152906040526040516105399190611d87565b602060405180830381855afa158015610556573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061057991906119f5565b610a4f565b610a8e565b905061058e81610be8565b6105cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c490611ead565b60405180910390fd5b6105d681610ccf565b610615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060c90611e4d565b60405180910390fd5b82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090805190602001906106689291906117b1565b50505050565b60018180516020810182018051848252602083016020850120818352809550505050505060009150905080546106a390612171565b80601f01602080910402602001604051908101604052809291908181526020018280546106cf90612171565b801561071c5780601f106106f15761010080835404028352916020019161071c565b820191906000526020600020905b8154815290600101906020018083116106ff57829003601f168201915b505050505081565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a990611eed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081990611e8d565b60405180910390fd5b61082b81610deb565b50565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108799190611837565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60011515600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092990611f0d565b60405180910390fd5b6001816040516109429190611d9e565b9081526020016040518091039020600061095c9190611837565b50565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60011515600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0f90611ecd565b60405180910390fd5b80600183604051610a299190611d9e565b90815260200160405180910390209080519060200190610a4a9291906117b1565b505050565b6060610a5a82610e2e565b610a67608084901b610e2e565b604051602001610a78929190611dd9565b6040516020818303038152906040529050919050565b60606000604067ffffffffffffffff811115610ad3577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610b055781602001600182028036833780820191505090505b50905060005b603f8111610bde5783600282610b219190611ff5565b81518110610b58577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b828281518110610b9c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080610bd6906121d4565b915050610b0b565b5080915050919050565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663679f0015846040518263ffffffff1660e01b8152600401610c469190611e2b565b60206040518083038186803b158015610c5e57600080fd5b505afa158015610c72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9691906119cc565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614915050919050565b600080610d8a600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635335104b856040518263ffffffff1660e01b8152600401610d309190611e2b565b60006040518083038186803b158015610d4857600080fd5b505afa158015610d5c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610d859190611a5f565b61108e565b905080604051602001610d9d9190611d9e565b60405160208183030381529060405280519060200120610dbc33611350565b604051602001610dcc9190611d9e565b6040516020818303038152906040528051906020012014915050919050565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000604077ffffffffffffffff0000000000000000000000000000000060001b836fffffffffffffffffffffffffffffffff191616901c7fffffffffffffffff00000000000000000000000000000000000000000000000060001b836fffffffffffffffffffffffffffffffff19161617905060207bffffffff000000000000000000000000ffffffff000000000000000060001b8216901c7fffffffff000000000000000000000000ffffffff00000000000000000000000060001b821617905060107dffff000000000000ffff000000000000ffff000000000000ffff0000000060001b8216901c7fffff000000000000ffff000000000000ffff000000000000ffff00000000000060001b821617905060087eff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000060001b8216901c7fff000000ff000000ff000000ff000000ff000000ff000000ff000000ff00000060001b821617905060087f0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f0060001b8216901c60047ff000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f00060001b8316901c17905060277f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f60047f06060606060606060606060606060606060606060606060606060606060606068460001c61103e9190611ff5565b901c1661104b9190612082565b8160001c7f303030303030303030303030303030303030303030303030303030303030303061107a9190611ff5565b6110849190611ff5565b60001b9050919050565b606060008290506000815167ffffffffffffffff8111156110d8577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561110a5781602001600182028036833780820191505090505b50905060005b8251811015611345576041838281518110611154577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff16101580156111bd5750605a8382815181106111a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1611155b156112855760208382815181106111fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c611215919061204b565b60f81b828281518110611251577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611332565b8281815181106112be577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b828281518110611302577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b808061133d906121d4565b915050611110565b508092505050919050565b606060008273ffffffffffffffffffffffffffffffffffffffff1660001b905060006040518060400160405280601081526020017f303132333435363738396162636465660000000000000000000000000000000081525090506000602a67ffffffffffffffff8111156113ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561141f5781602001600182028036833780820191505090505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061147d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611507577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b60148110156117a55782600485600c846115539190611ff5565b6020811061158a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b1a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c60f81c60ff16815181106115ef577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b826002836116089190612082565b60026116149190611ff5565b8151811061164b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535082600f60f81b85600c8461168e9190611ff5565b602081106116c5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b1a60f81b1660f81c60ff1681518110611707577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b826002836117209190612082565b600361172c9190611ff5565b81518110611763577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061179d906121d4565b915050611539565b50809350505050919050565b8280546117bd90612171565b90600052602060002090601f0160209004810192826117df5760008555611826565b82601f106117f857805160ff1916838001178555611826565b82800160010185558215611826579182015b8281111561182557825182559160200191906001019061180a565b5b5090506118339190611877565b5090565b50805461184390612171565b6000825580601f106118555750611874565b601f0160209004906000526020600020908101906118739190611877565b5b50565b5b80821115611890576000816000905550600101611878565b5090565b60006118a76118a284611f72565b611f4d565b9050828152602081018484840111156118bf57600080fd5b6118ca84828561212f565b509392505050565b60006118e56118e084611f72565b611f4d565b9050828152602081018484840111156118fd57600080fd5b61190884828561213e565b509392505050565b60008135905061191f816124f4565b92915050565b600081519050611934816124f4565b92915050565b6000815190506119498161250b565b92915050565b600082601f83011261196057600080fd5b8135611970848260208601611894565b91505092915050565b600082601f83011261198a57600080fd5b815161199a8482602086016118d2565b91505092915050565b6000602082840312156119b557600080fd5b60006119c384828501611910565b91505092915050565b6000602082840312156119de57600080fd5b60006119ec84828501611925565b91505092915050565b600060208284031215611a0757600080fd5b6000611a158482850161193a565b91505092915050565b600060208284031215611a3057600080fd5b600082013567ffffffffffffffff811115611a4a57600080fd5b611a568482850161194f565b91505092915050565b600060208284031215611a7157600080fd5b600082015167ffffffffffffffff811115611a8b57600080fd5b611a9784828501611979565b91505092915050565b60008060408385031215611ab357600080fd5b600083013567ffffffffffffffff811115611acd57600080fd5b611ad98582860161194f565b925050602083013567ffffffffffffffff811115611af657600080fd5b611b028582860161194f565b9150509250929050565b611b15816120dc565b82525050565b611b2c611b27826120ee565b61221d565b82525050565b6000611b3d82611fb8565b611b478185611fce565b9350611b5781856020860161213e565b80840191505092915050565b6000611b6e82611fc3565b611b788185611fd9565b9350611b8881856020860161213e565b611b91816122b4565b840191505092915050565b6000611ba782611fc3565b611bb18185611fea565b9350611bc181856020860161213e565b80840191505092915050565b60008154611bda81612171565b611be48186611fea565b94506001821660008114611bff5760018114611c1057611c43565b60ff19831686528186019350611c43565b611c1985611fa3565b60005b83811015611c3b57815481890152600182019150602081019050611c1c565b838801955050505b50505092915050565b6000611c59601d83611fd9565b9150611c64826122c5565b602082019050919050565b6000611c7c600283611fea565b9150611c87826122ee565b600282019050919050565b6000611c9f602583611fd9565b9150611caa82612317565b604082019050919050565b6000611cc2602f83611fd9565b9150611ccd82612366565b604082019050919050565b6000611ce5601a83611fd9565b9150611cf0826123b5565b602082019050919050565b6000611d08601e83611fd9565b9150611d13826123de565b602082019050919050565b6000611d2b603483611fd9565b9150611d3682612407565b604082019050919050565b6000611d4e602183611fd9565b9150611d5982612456565b604082019050919050565b6000611d71602283611fd9565b9150611d7c826124a5565b604082019050919050565b6000611d938284611b32565b915081905092915050565b6000611daa8284611b9c565b915081905092915050565b6000611dc18285611b9c565b9150611dcd8284611bcd565b91508190509392505050565b6000611de482611c6f565b9150611df08285611b1b565b602082019150611e008284611b1b565b6020820191508190509392505050565b6000602082019050611e256000830184611b0c565b92915050565b60006020820190508181036000830152611e458184611b63565b905092915050565b60006020820190508181036000830152611e6681611c4c565b9050919050565b60006020820190508181036000830152611e8681611c92565b9050919050565b60006020820190508181036000830152611ea681611cb5565b9050919050565b60006020820190508181036000830152611ec681611cd8565b9050919050565b60006020820190508181036000830152611ee681611cfb565b9050919050565b60006020820190508181036000830152611f0681611d1e565b9050919050565b60006020820190508181036000830152611f2681611d41565b9050919050565b60006020820190508181036000830152611f4681611d64565b9050919050565b6000611f57611f68565b9050611f6382826121a3565b919050565b6000604051905090565b600067ffffffffffffffff821115611f8d57611f8c612285565b5b611f96826122b4565b9050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600061200082612118565b915061200b83612118565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156120405761203f612227565b5b828201905092915050565b600061205682612122565b915061206183612122565b92508260ff0382111561207757612076612227565b5b828201905092915050565b600061208d82612118565b915061209883612118565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156120d1576120d0612227565b5b828202905092915050565b60006120e7826120f8565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b8381101561215c578082015181840152602081019050612141565b8381111561216b576000848401525b50505050565b6000600282049050600182168061218957607f821691505b6020821081141561219d5761219c612256565b5b50919050565b6121ac826122b4565b810181811067ffffffffffffffff821117156121cb576121ca612285565b5b80604052505050565b60006121df82612118565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561221257612211612227565b5b600182019050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f5468697320494472697373206973206e6f74207265736f6c76696e672e000000600082015250565b7f3078000000000000000000000000000000000000000000000000000000000000600082015250565b7f4f6e6c7920636f6e74726163744f776e65722063616e2064656c65746520616460008201527f6d696e732e000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e657720636f6e74726163744f776e657220697320746860008201527f65207a65726f20616464726573732e0000000000000000000000000000000000602082015250565b7f596f7520646f6e2774206f776e2074686973204944726973732e000000000000600082015250565b7f4f6e6c792061646d696e2063616e206164642077616c6c6574207461672e0000600082015250565b7f4f6e6c7920636f6e74726163744f776e65722063616e206368616e6765206f7760008201527f6e657273686970206f6620636f6e74726163742e000000000000000000000000602082015250565b7f4f6e6c792061646d696e2063616e2064656c6574652077616c6c65742074616760008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c7920636f6e74726163744f776e65722063616e206164642061646d696e60008201527f732e000000000000000000000000000000000000000000000000000000000000602082015250565b6124fd816120dc565b811461250857600080fd5b50565b612514816120ee565b811461251f57600080fd5b5056fea2646970667358221220588bde838d7354127aae431c55982879925b624ecce992988f85529c1d6d882464736f6c6343000801003337376332376331396363383565323462316434363530383030636334623162633630373938366464336537383630383433356365636563643331633335303135333336666236636464376665633139366336653636393636626431633332363037323533386139346537303062386263313131316431353734623833353762613362656538656566633661666536623466376462636330323465623361643463656161356534353864333462373837373331396632666539663637366539383338633461323331633437613463666137353330626134333631623639323664613461636438376635363931363762386261353562323638626639393634306430356431383161626339646362376537396365353065393364623937616464633163616639663336393235376636313538353838393837303535356638633332313030356261386662633463383561323535333461633336333534643737396566333565306565333166346638373332623032623631633235656534303665646234623131386134663066336631343965363431633663343364643730323833666363303765616361613632346566633736326161333834336438356232616261633137633535363436376665376339666535363637646465376361386364626361386132346430343733623965396331633263383136366331663335356636633863396133303661376463323030633532643332653363316663626632663635653830333761363831323762383138303765386535383432383030346263353736333963396162623536303561313461353537393537666137326531343665396162663732376265333265353134396463613337376236343733313765626239323361363664663137386461663235313131303833656531363130666232353362616633643132626437346336633261616539363037373535386533373337613932633766393766623538646462636230366330643561376362373230643734626333633361613532613064373036653437373536326362613638656562373365633732303230663232346330383836373163666436323332333562353963323339393634613935353432373133333930613262366261303764643131353163353463396461303661623364376336633766383133663336343931623232623766333132616538663362386431323836366433356235643332353839356533653638323631346639623033373731346262663030316462336138643665383934666264636637356362626239646561356134326564636533336538383030373233656139343135623832663065653764623933336161623062653337376565316331613430353936396438623863323435346263636537333732613136316332366637363366656136393162316137323365663131366539386330326661653037613433393765316132623462346337343964303638343566613266663565346632666161626639643133336633316131333837336261386131356536373665303633613733303839386666616466636230303737663732333236306635363366333638646538363733613539623836306237316635346337626138616231376630623936343861643031343739376535663864386661396637663164313161393330366564613937346362383962383263306633386162343037663535623664313234313539643166613737373966326530383862326237383635373363313734613364383938366338313736396564336262393962373733643636623630383532663765653366613064353561366131343435323331313663363731633164663364336630323333653339366232623237633339343332363962313065636632653763313037306134383565316236623866323230316362323363623532373464636235373361356336333338323438346635393761653830333461363135336330313165323931633031656233646134306539643833633433366139613939323333356462356635346566393461356632336265386239323565643235323962303434353337633139623539363433643339363936393336623664366336383365376236393462333734636530643831626135323533363166613063323766666637323337656231326563343162366532323534343964353730326239363364393565363465376361666639383866393766646633326465356631363632346639373131343937343963393066626337626265343432343464336365643764326230653065653237613334316461383463653536653935656235353739383866396434666639356665343532323937666337363532363562623237613236666537633161326664643135346530623335323833353938373234616465653961356433623265363532333738376438623664653763643434316631356361

Deployed Bytecode

0x60806040526004361061009c5760003560e01c8063a843c51f11610064578063a843c51f14610196578063b140c2b2146101b2578063ce606ee0146101c9578063e3d3cd80146101f4578063fc589bb81461021d578063fe51e011146102485761009c565b806327e1f7df146100a157806370480275146100ca578063780a3168146100f35780638a5b72b4146101305780639712f84f14610159575b600080fd5b3480156100ad57600080fd5b506100c860048036038101906100c391906119a3565b610271565b005b3480156100d657600080fd5b506100f160048036038101906100ec91906119a3565b61035a565b005b3480156100ff57600080fd5b5061011a600480360381019061011591906119a3565b610443565b6040516101279190611e2b565b60405180910390f35b34801561013c57600080fd5b5061015760048036038101906101529190611aa0565b6104e3565b005b34801561016557600080fd5b50610180600480360381019061017b9190611a1e565b61066e565b60405161018d9190611e2b565b60405180910390f35b6101b060048036038101906101ab91906119a3565b610724565b005b3480156101be57600080fd5b506101c761082e565b005b3480156101d557600080fd5b506101de61087b565b6040516101eb9190611e10565b60405180910390f35b34801561020057600080fd5b5061021b60048036038101906102169190611a1e565b61089f565b005b34801561022957600080fd5b5061023261095f565b60405161023f9190611e10565b60405180910390f35b34801561025457600080fd5b5061026f600480360381019061026a9190611aa0565b610985565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102f690611e6d565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103df90611f2d565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6002602052806000526040600020600091509050805461046290612171565b80601f016020809104026020016040519081016040528092919081815260200182805461048e90612171565b80156104db5780601f106104b0576101008083540402835291602001916104db565b820191906000526020600020905b8154815290600101906020018083116104be57829003601f168201915b505050505081565b600061058361057e6002856001866040516104fe9190611d9e565b908152602001604051809103902060405160200161051d929190611db5565b6040516020818303038152906040526040516105399190611d87565b602060405180830381855afa158015610556573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061057991906119f5565b610a4f565b610a8e565b905061058e81610be8565b6105cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c490611ead565b60405180910390fd5b6105d681610ccf565b610615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060c90611e4d565b60405180910390fd5b82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090805190602001906106689291906117b1565b50505050565b60018180516020810182018051848252602083016020850120818352809550505050505060009150905080546106a390612171565b80601f01602080910402602001604051908101604052809291908181526020018280546106cf90612171565b801561071c5780601f106106f15761010080835404028352916020019161071c565b820191906000526020600020905b8154815290600101906020018083116106ff57829003601f168201915b505050505081565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a990611eed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081990611e8d565b60405180910390fd5b61082b81610deb565b50565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108799190611837565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60011515600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092990611f0d565b60405180910390fd5b6001816040516109429190611d9e565b9081526020016040518091039020600061095c9190611837565b50565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60011515600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0f90611ecd565b60405180910390fd5b80600183604051610a299190611d9e565b90815260200160405180910390209080519060200190610a4a9291906117b1565b505050565b6060610a5a82610e2e565b610a67608084901b610e2e565b604051602001610a78929190611dd9565b6040516020818303038152906040529050919050565b60606000604067ffffffffffffffff811115610ad3577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610b055781602001600182028036833780820191505090505b50905060005b603f8111610bde5783600282610b219190611ff5565b81518110610b58577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b828281518110610b9c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080610bd6906121d4565b915050610b0b565b5080915050919050565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663679f0015846040518263ffffffff1660e01b8152600401610c469190611e2b565b60206040518083038186803b158015610c5e57600080fd5b505afa158015610c72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9691906119cc565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614915050919050565b600080610d8a600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635335104b856040518263ffffffff1660e01b8152600401610d309190611e2b565b60006040518083038186803b158015610d4857600080fd5b505afa158015610d5c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610d859190611a5f565b61108e565b905080604051602001610d9d9190611d9e565b60405160208183030381529060405280519060200120610dbc33611350565b604051602001610dcc9190611d9e565b6040516020818303038152906040528051906020012014915050919050565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000604077ffffffffffffffff0000000000000000000000000000000060001b836fffffffffffffffffffffffffffffffff191616901c7fffffffffffffffff00000000000000000000000000000000000000000000000060001b836fffffffffffffffffffffffffffffffff19161617905060207bffffffff000000000000000000000000ffffffff000000000000000060001b8216901c7fffffffff000000000000000000000000ffffffff00000000000000000000000060001b821617905060107dffff000000000000ffff000000000000ffff000000000000ffff0000000060001b8216901c7fffff000000000000ffff000000000000ffff000000000000ffff00000000000060001b821617905060087eff000000ff000000ff000000ff000000ff000000ff000000ff000000ff000060001b8216901c7fff000000ff000000ff000000ff000000ff000000ff000000ff000000ff00000060001b821617905060087f0f000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f0060001b8216901c60047ff000f000f000f000f000f000f000f000f000f000f000f000f000f000f000f00060001b8316901c17905060277f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f60047f06060606060606060606060606060606060606060606060606060606060606068460001c61103e9190611ff5565b901c1661104b9190612082565b8160001c7f303030303030303030303030303030303030303030303030303030303030303061107a9190611ff5565b6110849190611ff5565b60001b9050919050565b606060008290506000815167ffffffffffffffff8111156110d8577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561110a5781602001600182028036833780820191505090505b50905060005b8251811015611345576041838281518110611154577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff16101580156111bd5750605a8382815181106111a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1611155b156112855760208382815181106111fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c611215919061204b565b60f81b828281518110611251577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611332565b8281815181106112be577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b828281518110611302577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b808061133d906121d4565b915050611110565b508092505050919050565b606060008273ffffffffffffffffffffffffffffffffffffffff1660001b905060006040518060400160405280601081526020017f303132333435363738396162636465660000000000000000000000000000000081525090506000602a67ffffffffffffffff8111156113ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561141f5781602001600182028036833780820191505090505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061147d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611507577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b60148110156117a55782600485600c846115539190611ff5565b6020811061158a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b1a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c60f81c60ff16815181106115ef577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b826002836116089190612082565b60026116149190611ff5565b8151811061164b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535082600f60f81b85600c8461168e9190611ff5565b602081106116c5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b1a60f81b1660f81c60ff1681518110611707577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b826002836117209190612082565b600361172c9190611ff5565b81518110611763577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061179d906121d4565b915050611539565b50809350505050919050565b8280546117bd90612171565b90600052602060002090601f0160209004810192826117df5760008555611826565b82601f106117f857805160ff1916838001178555611826565b82800160010185558215611826579182015b8281111561182557825182559160200191906001019061180a565b5b5090506118339190611877565b5090565b50805461184390612171565b6000825580601f106118555750611874565b601f0160209004906000526020600020908101906118739190611877565b5b50565b5b80821115611890576000816000905550600101611878565b5090565b60006118a76118a284611f72565b611f4d565b9050828152602081018484840111156118bf57600080fd5b6118ca84828561212f565b509392505050565b60006118e56118e084611f72565b611f4d565b9050828152602081018484840111156118fd57600080fd5b61190884828561213e565b509392505050565b60008135905061191f816124f4565b92915050565b600081519050611934816124f4565b92915050565b6000815190506119498161250b565b92915050565b600082601f83011261196057600080fd5b8135611970848260208601611894565b91505092915050565b600082601f83011261198a57600080fd5b815161199a8482602086016118d2565b91505092915050565b6000602082840312156119b557600080fd5b60006119c384828501611910565b91505092915050565b6000602082840312156119de57600080fd5b60006119ec84828501611925565b91505092915050565b600060208284031215611a0757600080fd5b6000611a158482850161193a565b91505092915050565b600060208284031215611a3057600080fd5b600082013567ffffffffffffffff811115611a4a57600080fd5b611a568482850161194f565b91505092915050565b600060208284031215611a7157600080fd5b600082015167ffffffffffffffff811115611a8b57600080fd5b611a9784828501611979565b91505092915050565b60008060408385031215611ab357600080fd5b600083013567ffffffffffffffff811115611acd57600080fd5b611ad98582860161194f565b925050602083013567ffffffffffffffff811115611af657600080fd5b611b028582860161194f565b9150509250929050565b611b15816120dc565b82525050565b611b2c611b27826120ee565b61221d565b82525050565b6000611b3d82611fb8565b611b478185611fce565b9350611b5781856020860161213e565b80840191505092915050565b6000611b6e82611fc3565b611b788185611fd9565b9350611b8881856020860161213e565b611b91816122b4565b840191505092915050565b6000611ba782611fc3565b611bb18185611fea565b9350611bc181856020860161213e565b80840191505092915050565b60008154611bda81612171565b611be48186611fea565b94506001821660008114611bff5760018114611c1057611c43565b60ff19831686528186019350611c43565b611c1985611fa3565b60005b83811015611c3b57815481890152600182019150602081019050611c1c565b838801955050505b50505092915050565b6000611c59601d83611fd9565b9150611c64826122c5565b602082019050919050565b6000611c7c600283611fea565b9150611c87826122ee565b600282019050919050565b6000611c9f602583611fd9565b9150611caa82612317565b604082019050919050565b6000611cc2602f83611fd9565b9150611ccd82612366565b604082019050919050565b6000611ce5601a83611fd9565b9150611cf0826123b5565b602082019050919050565b6000611d08601e83611fd9565b9150611d13826123de565b602082019050919050565b6000611d2b603483611fd9565b9150611d3682612407565b604082019050919050565b6000611d4e602183611fd9565b9150611d5982612456565b604082019050919050565b6000611d71602283611fd9565b9150611d7c826124a5565b604082019050919050565b6000611d938284611b32565b915081905092915050565b6000611daa8284611b9c565b915081905092915050565b6000611dc18285611b9c565b9150611dcd8284611bcd565b91508190509392505050565b6000611de482611c6f565b9150611df08285611b1b565b602082019150611e008284611b1b565b6020820191508190509392505050565b6000602082019050611e256000830184611b0c565b92915050565b60006020820190508181036000830152611e458184611b63565b905092915050565b60006020820190508181036000830152611e6681611c4c565b9050919050565b60006020820190508181036000830152611e8681611c92565b9050919050565b60006020820190508181036000830152611ea681611cb5565b9050919050565b60006020820190508181036000830152611ec681611cd8565b9050919050565b60006020820190508181036000830152611ee681611cfb565b9050919050565b60006020820190508181036000830152611f0681611d1e565b9050919050565b60006020820190508181036000830152611f2681611d41565b9050919050565b60006020820190508181036000830152611f4681611d64565b9050919050565b6000611f57611f68565b9050611f6382826121a3565b919050565b6000604051905090565b600067ffffffffffffffff821115611f8d57611f8c612285565b5b611f96826122b4565b9050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600061200082612118565b915061200b83612118565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156120405761203f612227565b5b828201905092915050565b600061205682612122565b915061206183612122565b92508260ff0382111561207757612076612227565b5b828201905092915050565b600061208d82612118565b915061209883612118565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156120d1576120d0612227565b5b828202905092915050565b60006120e7826120f8565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b8381101561215c578082015181840152602081019050612141565b8381111561216b576000848401525b50505050565b6000600282049050600182168061218957607f821691505b6020821081141561219d5761219c612256565b5b50919050565b6121ac826122b4565b810181811067ffffffffffffffff821117156121cb576121ca612285565b5b80604052505050565b60006121df82612118565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561221257612211612227565b5b600182019050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f5468697320494472697373206973206e6f74207265736f6c76696e672e000000600082015250565b7f3078000000000000000000000000000000000000000000000000000000000000600082015250565b7f4f6e6c7920636f6e74726163744f776e65722063616e2064656c65746520616460008201527f6d696e732e000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e657720636f6e74726163744f776e657220697320746860008201527f65207a65726f20616464726573732e0000000000000000000000000000000000602082015250565b7f596f7520646f6e2774206f776e2074686973204944726973732e000000000000600082015250565b7f4f6e6c792061646d696e2063616e206164642077616c6c6574207461672e0000600082015250565b7f4f6e6c7920636f6e74726163744f776e65722063616e206368616e6765206f7760008201527f6e657273686970206f6620636f6e74726163742e000000000000000000000000602082015250565b7f4f6e6c792061646d696e2063616e2064656c6574652077616c6c65742074616760008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c7920636f6e74726163744f776e65722063616e206164642061646d696e60008201527f732e000000000000000000000000000000000000000000000000000000000000602082015250565b6124fd816120dc565b811461250857600080fd5b50565b612514816120ee565b811461251f57600080fd5b5056fea2646970667358221220588bde838d7354127aae431c55982879925b624ecce992988f85529c1d6d882464736f6c63430008010033

Deployed Bytecode Sourcemap

253:8871:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3742:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3552:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;378:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4339:415;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;328:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8696:311;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4764:92;;;;;;;;;;;;;:::i;:::-;;279:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4150:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;478:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3939:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3742:187;3827:13;;;;;;;;;;3813:27;;:10;:27;;;3805:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;3916:5;3893:6;:20;3900:12;3893:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;3742:187;:::o;3552:180::-;3634:13;;;;;;;;;;3620:27;;:10;:27;;;3612:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;3720:4;3697:6;:20;3704:12;3697:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3552:180;:::o;378:47::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4339:415::-;4439:22;4465:74;4474:64;4480:57;4504:7;4513:10;4524;4513:22;;;;;;:::i;:::-;;;;;;;;;;;;;4487:49;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4480:57;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4474:5;:64::i;:::-;4465:8;:74::i;:::-;4439:100;;4558:30;4579:8;4558:20;:30::i;:::-;4550:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;4638:28;4657:8;4638:18;:28::i;:::-;4630:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4739:7;4711:13;:25;4725:10;4711:25;;;;;;;;;;;;;;;:35;;;;;;;;;;;;:::i;:::-;;4339:415;;;:::o;328:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8696:311::-;8797:13;;;;;;;;;;8783:27;;:10;:27;;;8775:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;8906:1;8886:22;;:8;:22;;;;8878:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;8971:28;8990:8;8971:18;:28::i;:::-;8696:311;:::o;4764:92::-;4823:13;:25;4837:10;4823:25;;;;;;;;;;;;;;;;4816:32;;;;:::i;:::-;4764:92::o;279:41::-;;;;;;;;;;;;:::o;4150:179::-;4245:4;4223:26;;:6;:18;4230:10;4223:18;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;4215:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;4305:10;4316:4;4305:16;;;;;;:::i;:::-;;;;;;;;;;;;;;4298:23;;;;:::i;:::-;4150:179;:::o;478:70::-;;;;;;;;;;;;;:::o;3939:201::-;4055:4;4033:26;;:6;:18;4040:10;4033:18;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;4025:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;4124:8;4105:10;4116:4;4105:16;;;;;;:::i;:::-;;;;;;;;;;;;;:27;;;;;;;;;;;;:::i;:::-;;3939:201;;:::o;6875:185::-;6928:13;6993:24;7011:4;6993:7;:24::i;:::-;7019:31;7045:3;7037:4;:11;;7019:7;:31::i;:::-;6969:82;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6954:98;;6875:185;;;:::o;8449:239::-;8510:13;8536:14;8563:2;8553:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8536:30;;8581:6;8577:73;8593:2;8590:1;:5;8577:73;;8628:4;8636:1;8634;:3;;;;:::i;:::-;8622:16;;;;;;;;;;;;;;;;;;;;;;;;8615:1;8617;8615:4;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;8596:3;;;;;:::i;:::-;;;;8577:73;;;;8674:1;8660:16;;;8449:239;;;:::o;4864:213::-;4941:4;4957:23;4990:10;;;;;;;;;;;4983:31;;;5015:8;4983:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4957:67;;5059:10;5042:27;;:15;:27;;;5035:34;;;4864:213;;;:::o;5085:304::-;5160:4;5176:32;5211:47;5226:10;;;;;;;;;;;5219:28;;;5248:8;5219:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5211:7;:47::i;:::-;5176:82;;5361:18;5344:36;;;;;;;;:::i;:::-;;;;;;;;;;;;;5334:47;;;;;;5303:27;5319:10;5303:15;:27::i;:::-;5286:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;5276:56;;;;;;:105;5269:112;;;5085:304;;;:::o;9015:106::-;9105:8;9089:13;;:24;;;;;;;;;;;;;;;;;;9015:106;:::o;5449:1393::-;5504:14;5728:2;5657:66;5640:83;;5649:4;5640:14;;;:83;5639:91;;5557:66;5540:83;;5549:4;5540:14;;;:83;:190;5531:199;;5922:2;5851:66;5842:75;;:6;:75;5841:83;;5759:66;5750:75;;:6;:75;:174;5741:183;;6116:2;6045:66;6036:75;;:6;:75;6035:83;;5953:66;5944:75;;:6;:75;:174;5935:183;;6310:1;6239:66;6230:75;;:6;:75;6229:82;;6147:66;6138:75;;:6;:75;:173;6129:182;;6510:1;6439:66;6430:75;;:6;:75;6429:82;;6412:1;6341:66;6332:75;;:6;:75;6331:82;;:180;6322:189;;6831:2;6761:66;6744:1;6674:66;6664:6;6655:16;;:85;;;;:::i;:::-;:90;;:172;6654:179;;;;:::i;:::-;6631:6;6622:16;;6540:66;:98;;;;:::i;:::-;:293;;;;:::i;:::-;6531:303;;6522:312;;5449:1393;;;:::o;7875:566::-;7934:13;7960:17;7986:3;7960:30;;8001:19;8033:4;:11;8023:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8001:44;;8061:6;8056:346;8077:4;:11;8073:1;:15;8056:346;;;8172:2;8160:4;8165:1;8160:7;;;;;;;;;;;;;;;;;;;;;;;;8154:14;;:20;;;;8153:48;;;;;8198:2;8186:4;8191:1;8186:7;;;;;;;;;;;;;;;;;;;;;;;;8180:14;;:20;;;;8153:48;8149:242;;;8312:2;8301:4;8306:1;8301:7;;;;;;;;;;;;;;;;;;;;;;;;8295:14;;:19;;;;:::i;:::-;8288:27;;8276:6;8283:1;8276:9;;;;;;;;;;;;;;;;;;;:39;;;;;;;;;;;8149:242;;;8368:4;8373:1;8368:7;;;;;;;;;;;;;;;;;;;;;;;;8356:6;8363:1;8356:9;;;;;;;;;;;;;;;;;;;:19;;;;;;;;;;;8149:242;8090:3;;;;;:::i;:::-;;;;8056:346;;;;8426:6;8412:21;;;;7875:566;;;:::o;7346:521::-;7411:13;7437:14;7486:8;7462:35;;7454:44;;7437:61;;7509:16;:37;;;;;;;;;;;;;;;;;;;7557:20;7590:2;7580:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7557:36;;7604:16;:7;7612:1;7604:10;;;;;;;;;;;;;;;;;;;:16;;;;;;;;;;;7631;:7;7639:1;7631:10;;;;;;;;;;;;;;;;;;;:16;;;;;;;;;;;7662:6;7658:169;7678:2;7674:1;:6;7658:169;;;7719:3;7747:1;7729:6;7740:2;7736:1;:6;;;;:::i;:::-;7729:14;;;;;;;;;;;;;;;;;;:19;;;;;7723:26;;7719:31;;;;;;;;;;;;;;;;;;;;;;;;;;7702:7;7714:1;7712;:3;;;;:::i;:::-;7710:1;:5;;;;:::i;:::-;7702:14;;;;;;;;;;;;;;;;;;;:48;;;;;;;;;;;7782:3;7809:4;7792:21;;:6;7803:2;7799:1;:6;;;;:::i;:::-;7792:14;;;;;;;;;;;;;;;;;;:21;7786:28;;7782:33;;;;;;;;;;;;;;;;;;;;;;;;;;7765:7;7777:1;7775;:3;;;;:::i;:::-;7773:1;:5;;;;:::i;:::-;7765:14;;;;;;;;;;;;;;;;;;;:50;;;;;;;;;;;7682:3;;;;;:::i;:::-;;;;7658:169;;;;7851:7;7837:22;;;;;7346:521;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:345:1:-;;110:66;126:49;168:6;126:49;:::i;:::-;110:66;:::i;:::-;101:75;;199:6;192:5;185:21;237:4;230:5;226:16;275:3;266:6;261:3;257:16;254:25;251:2;;;292:1;289;282:12;251:2;305:41;339:6;334:3;329;305:41;:::i;:::-;91:261;;;;;;:::o;358:354::-;;472:66;488:49;530:6;488:49;:::i;:::-;472:66;:::i;:::-;463:75;;561:6;554:5;547:21;599:4;592:5;588:16;637:3;628:6;623:3;619:16;616:25;613:2;;;654:1;651;644:12;613:2;667:39;699:6;694:3;689;667:39;:::i;:::-;453:259;;;;;;:::o;718:139::-;;802:6;789:20;780:29;;818:33;845:5;818:33;:::i;:::-;770:87;;;;:::o;863:143::-;;951:6;945:13;936:22;;967:33;994:5;967:33;:::i;:::-;926:80;;;;:::o;1012:143::-;;1100:6;1094:13;1085:22;;1116:33;1143:5;1116:33;:::i;:::-;1075:80;;;;:::o;1175:273::-;;1280:3;1273:4;1265:6;1261:17;1257:27;1247:2;;1298:1;1295;1288:12;1247:2;1338:6;1325:20;1363:79;1438:3;1430:6;1423:4;1415:6;1411:17;1363:79;:::i;:::-;1354:88;;1237:211;;;;;:::o;1468:288::-;;1584:3;1577:4;1569:6;1565:17;1561:27;1551:2;;1602:1;1599;1592:12;1551:2;1635:6;1629:13;1660:90;1746:3;1738:6;1731:4;1723:6;1719:17;1660:90;:::i;:::-;1651:99;;1541:215;;;;;:::o;1762:262::-;;1870:2;1858:9;1849:7;1845:23;1841:32;1838:2;;;1886:1;1883;1876:12;1838:2;1929:1;1954:53;1999:7;1990:6;1979:9;1975:22;1954:53;:::i;:::-;1944:63;;1900:117;1828:196;;;;:::o;2030:284::-;;2149:2;2137:9;2128:7;2124:23;2120:32;2117:2;;;2165:1;2162;2155:12;2117:2;2208:1;2233:64;2289:7;2280:6;2269:9;2265:22;2233:64;:::i;:::-;2223:74;;2179:128;2107:207;;;;:::o;2320:284::-;;2439:2;2427:9;2418:7;2414:23;2410:32;2407:2;;;2455:1;2452;2445:12;2407:2;2498:1;2523:64;2579:7;2570:6;2559:9;2555:22;2523:64;:::i;:::-;2513:74;;2469:128;2397:207;;;;:::o;2610:375::-;;2728:2;2716:9;2707:7;2703:23;2699:32;2696:2;;;2744:1;2741;2734:12;2696:2;2815:1;2804:9;2800:17;2787:31;2845:18;2837:6;2834:30;2831:2;;;2877:1;2874;2867:12;2831:2;2905:63;2960:7;2951:6;2940:9;2936:22;2905:63;:::i;:::-;2895:73;;2758:220;2686:299;;;;:::o;2991:390::-;;3120:2;3108:9;3099:7;3095:23;3091:32;3088:2;;;3136:1;3133;3126:12;3088:2;3200:1;3189:9;3185:17;3179:24;3230:18;3222:6;3219:30;3216:2;;;3262:1;3259;3252:12;3216:2;3290:74;3356:7;3347:6;3336:9;3332:22;3290:74;:::i;:::-;3280:84;;3150:224;3078:303;;;;:::o;3387:633::-;;;3532:2;3520:9;3511:7;3507:23;3503:32;3500:2;;;3548:1;3545;3538:12;3500:2;3619:1;3608:9;3604:17;3591:31;3649:18;3641:6;3638:30;3635:2;;;3681:1;3678;3671:12;3635:2;3709:63;3764:7;3755:6;3744:9;3740:22;3709:63;:::i;:::-;3699:73;;3562:220;3849:2;3838:9;3834:18;3821:32;3880:18;3872:6;3869:30;3866:2;;;3912:1;3909;3902:12;3866:2;3940:63;3995:7;3986:6;3975:9;3971:22;3940:63;:::i;:::-;3930:73;;3792:221;3490:530;;;;;:::o;4026:118::-;4113:24;4131:5;4113:24;:::i;:::-;4108:3;4101:37;4091:53;;:::o;4150:157::-;4255:45;4275:24;4293:5;4275:24;:::i;:::-;4255:45;:::i;:::-;4250:3;4243:58;4233:74;;:::o;4313:373::-;;4445:38;4477:5;4445:38;:::i;:::-;4499:88;4580:6;4575:3;4499:88;:::i;:::-;4492:95;;4596:52;4641:6;4636:3;4629:4;4622:5;4618:16;4596:52;:::i;:::-;4673:6;4668:3;4664:16;4657:23;;4421:265;;;;;:::o;4692:364::-;;4808:39;4841:5;4808:39;:::i;:::-;4863:71;4927:6;4922:3;4863:71;:::i;:::-;4856:78;;4943:52;4988:6;4983:3;4976:4;4969:5;4965:16;4943:52;:::i;:::-;5020:29;5042:6;5020:29;:::i;:::-;5015:3;5011:39;5004:46;;4784:272;;;;;:::o;5062:377::-;;5196:39;5229:5;5196:39;:::i;:::-;5251:89;5333:6;5328:3;5251:89;:::i;:::-;5244:96;;5349:52;5394:6;5389:3;5382:4;5375:5;5371:16;5349:52;:::i;:::-;5426:6;5421:3;5417:16;5410:23;;5172:267;;;;;:::o;5469:845::-;;5609:5;5603:12;5638:36;5664:9;5638:36;:::i;:::-;5690:89;5772:6;5767:3;5690:89;:::i;:::-;5683:96;;5810:1;5799:9;5795:17;5826:1;5821:137;;;;5972:1;5967:341;;;;5788:520;;5821:137;5905:4;5901:9;5890;5886:25;5881:3;5874:38;5941:6;5936:3;5932:16;5925:23;;5821:137;;5967:341;6034:38;6066:5;6034:38;:::i;:::-;6094:1;6108:154;6122:6;6119:1;6116:13;6108:154;;;6196:7;6190:14;6186:1;6181:3;6177:11;6170:35;6246:1;6237:7;6233:15;6222:26;;6144:4;6141:1;6137:12;6132:17;;6108:154;;;6291:6;6286:3;6282:16;6275:23;;5974:334;;5788:520;;5576:738;;;;;;:::o;6320:366::-;;6483:67;6547:2;6542:3;6483:67;:::i;:::-;6476:74;;6559:93;6648:3;6559:93;:::i;:::-;6677:2;6672:3;6668:12;6661:19;;6466:220;;;:::o;6692:400::-;;6873:84;6955:1;6950:3;6873:84;:::i;:::-;6866:91;;6966:93;7055:3;6966:93;:::i;:::-;7084:1;7079:3;7075:11;7068:18;;6856:236;;;:::o;7098:366::-;;7261:67;7325:2;7320:3;7261:67;:::i;:::-;7254:74;;7337:93;7426:3;7337:93;:::i;:::-;7455:2;7450:3;7446:12;7439:19;;7244:220;;;:::o;7470:366::-;;7633:67;7697:2;7692:3;7633:67;:::i;:::-;7626:74;;7709:93;7798:3;7709:93;:::i;:::-;7827:2;7822:3;7818:12;7811:19;;7616:220;;;:::o;7842:366::-;;8005:67;8069:2;8064:3;8005:67;:::i;:::-;7998:74;;8081:93;8170:3;8081:93;:::i;:::-;8199:2;8194:3;8190:12;8183:19;;7988:220;;;:::o;8214:366::-;;8377:67;8441:2;8436:3;8377:67;:::i;:::-;8370:74;;8453:93;8542:3;8453:93;:::i;:::-;8571:2;8566:3;8562:12;8555:19;;8360:220;;;:::o;8586:366::-;;8749:67;8813:2;8808:3;8749:67;:::i;:::-;8742:74;;8825:93;8914:3;8825:93;:::i;:::-;8943:2;8938:3;8934:12;8927:19;;8732:220;;;:::o;8958:366::-;;9121:67;9185:2;9180:3;9121:67;:::i;:::-;9114:74;;9197:93;9286:3;9197:93;:::i;:::-;9315:2;9310:3;9306:12;9299:19;;9104:220;;;:::o;9330:366::-;;9493:67;9557:2;9552:3;9493:67;:::i;:::-;9486:74;;9569:93;9658:3;9569:93;:::i;:::-;9687:2;9682:3;9678:12;9671:19;;9476:220;;;:::o;9702:271::-;;9854:93;9943:3;9934:6;9854:93;:::i;:::-;9847:100;;9964:3;9957:10;;9836:137;;;;:::o;9979:275::-;;10133:95;10224:3;10215:6;10133:95;:::i;:::-;10126:102;;10245:3;10238:10;;10115:139;;;;:::o;10260:429::-;;10459:95;10550:3;10541:6;10459:95;:::i;:::-;10452:102;;10571:92;10659:3;10650:6;10571:92;:::i;:::-;10564:99;;10680:3;10673:10;;10441:248;;;;;:::o;10695:663::-;;10958:148;11102:3;10958:148;:::i;:::-;10951:155;;11116:75;11187:3;11178:6;11116:75;:::i;:::-;11216:2;11211:3;11207:12;11200:19;;11229:75;11300:3;11291:6;11229:75;:::i;:::-;11329:2;11324:3;11320:12;11313:19;;11349:3;11342:10;;10940:418;;;;;:::o;11364:222::-;;11495:2;11484:9;11480:18;11472:26;;11508:71;11576:1;11565:9;11561:17;11552:6;11508:71;:::i;:::-;11462:124;;;;:::o;11592:313::-;;11743:2;11732:9;11728:18;11720:26;;11792:9;11786:4;11782:20;11778:1;11767:9;11763:17;11756:47;11820:78;11893:4;11884:6;11820:78;:::i;:::-;11812:86;;11710:195;;;;:::o;11911:419::-;;12115:2;12104:9;12100:18;12092:26;;12164:9;12158:4;12154:20;12150:1;12139:9;12135:17;12128:47;12192:131;12318:4;12192:131;:::i;:::-;12184:139;;12082:248;;;:::o;12336:419::-;;12540:2;12529:9;12525:18;12517:26;;12589:9;12583:4;12579:20;12575:1;12564:9;12560:17;12553:47;12617:131;12743:4;12617:131;:::i;:::-;12609:139;;12507:248;;;:::o;12761:419::-;;12965:2;12954:9;12950:18;12942:26;;13014:9;13008:4;13004:20;13000:1;12989:9;12985:17;12978:47;13042:131;13168:4;13042:131;:::i;:::-;13034:139;;12932:248;;;:::o;13186:419::-;;13390:2;13379:9;13375:18;13367:26;;13439:9;13433:4;13429:20;13425:1;13414:9;13410:17;13403:47;13467:131;13593:4;13467:131;:::i;:::-;13459:139;;13357:248;;;:::o;13611:419::-;;13815:2;13804:9;13800:18;13792:26;;13864:9;13858:4;13854:20;13850:1;13839:9;13835:17;13828:47;13892:131;14018:4;13892:131;:::i;:::-;13884:139;;13782:248;;;:::o;14036:419::-;;14240:2;14229:9;14225:18;14217:26;;14289:9;14283:4;14279:20;14275:1;14264:9;14260:17;14253:47;14317:131;14443:4;14317:131;:::i;:::-;14309:139;;14207:248;;;:::o;14461:419::-;;14665:2;14654:9;14650:18;14642:26;;14714:9;14708:4;14704:20;14700:1;14689:9;14685:17;14678:47;14742:131;14868:4;14742:131;:::i;:::-;14734:139;;14632:248;;;:::o;14886:419::-;;15090:2;15079:9;15075:18;15067:26;;15139:9;15133:4;15129:20;15125:1;15114:9;15110:17;15103:47;15167:131;15293:4;15167:131;:::i;:::-;15159:139;;15057:248;;;:::o;15311:129::-;;15372:20;;:::i;:::-;15362:30;;15401:33;15429:4;15421:6;15401:33;:::i;:::-;15352:88;;;:::o;15446:75::-;;15512:2;15506:9;15496:19;;15486:35;:::o;15527:308::-;;15679:18;15671:6;15668:30;15665:2;;;15701:18;;:::i;:::-;15665:2;15739:29;15761:6;15739:29;:::i;:::-;15731:37;;15823:4;15817;15813:15;15805:23;;15594:241;;;:::o;15841:141::-;;15913:3;15905:11;;15936:3;15933:1;15926:14;15970:4;15967:1;15957:18;15949:26;;15895:87;;;:::o;15988:98::-;;16073:5;16067:12;16057:22;;16046:40;;;:::o;16092:99::-;;16178:5;16172:12;16162:22;;16151:40;;;:::o;16197:147::-;;16335:3;16320:18;;16310:34;;;;:::o;16350:169::-;;16468:6;16463:3;16456:19;16508:4;16503:3;16499:14;16484:29;;16446:73;;;;:::o;16525:148::-;;16664:3;16649:18;;16639:34;;;;:::o;16679:305::-;;16738:20;16756:1;16738:20;:::i;:::-;16733:25;;16772:20;16790:1;16772:20;:::i;:::-;16767:25;;16926:1;16858:66;16854:74;16851:1;16848:81;16845:2;;;16932:18;;:::i;:::-;16845:2;16976:1;16973;16969:9;16962:16;;16723:261;;;;:::o;16990:237::-;;17047:18;17063:1;17047:18;:::i;:::-;17042:23;;17079:18;17095:1;17079:18;:::i;:::-;17074:23;;17169:1;17163:4;17159:12;17156:1;17153:19;17150:2;;;17175:18;;:::i;:::-;17150:2;17219:1;17216;17212:9;17205:16;;17032:195;;;;:::o;17233:348::-;;17296:20;17314:1;17296:20;:::i;:::-;17291:25;;17330:20;17348:1;17330:20;:::i;:::-;17325:25;;17518:1;17450:66;17446:74;17443:1;17440:81;17435:1;17428:9;17421:17;17417:105;17414:2;;;17525:18;;:::i;:::-;17414:2;17573:1;17570;17566:9;17555:20;;17281:300;;;;:::o;17587:96::-;;17653:24;17671:5;17653:24;:::i;:::-;17642:35;;17632:51;;;:::o;17689:77::-;;17755:5;17744:16;;17734:32;;;:::o;17772:126::-;;17849:42;17842:5;17838:54;17827:65;;17817:81;;;:::o;17904:77::-;;17970:5;17959:16;;17949:32;;;:::o;17987:86::-;;18062:4;18055:5;18051:16;18040:27;;18030:43;;;:::o;18079:154::-;18163:6;18158:3;18153;18140:30;18225:1;18216:6;18211:3;18207:16;18200:27;18130:103;;;:::o;18239:307::-;18307:1;18317:113;18331:6;18328:1;18325:13;18317:113;;;18416:1;18411:3;18407:11;18401:18;18397:1;18392:3;18388:11;18381:39;18353:2;18350:1;18346:10;18341:15;;18317:113;;;18448:6;18445:1;18442:13;18439:2;;;18528:1;18519:6;18514:3;18510:16;18503:27;18439:2;18288:258;;;;:::o;18552:320::-;;18633:1;18627:4;18623:12;18613:22;;18680:1;18674:4;18670:12;18701:18;18691:2;;18757:4;18749:6;18745:17;18735:27;;18691:2;18819;18811:6;18808:14;18788:18;18785:38;18782:2;;;18838:18;;:::i;:::-;18782:2;18603:269;;;;:::o;18878:281::-;18961:27;18983:4;18961:27;:::i;:::-;18953:6;18949:40;19091:6;19079:10;19076:22;19055:18;19043:10;19040:34;19037:62;19034:2;;;19102:18;;:::i;:::-;19034:2;19142:10;19138:2;19131:22;18921:238;;;:::o;19165:233::-;;19227:24;19245:5;19227:24;:::i;:::-;19218:33;;19273:66;19266:5;19263:77;19260:2;;;19343:18;;:::i;:::-;19260:2;19390:1;19383:5;19379:13;19372:20;;19208:190;;;:::o;19404:79::-;;19472:5;19461:16;;19451:32;;;:::o;19489:180::-;19537:77;19534:1;19527:88;19634:4;19631:1;19624:15;19658:4;19655:1;19648:15;19675:180;19723:77;19720:1;19713:88;19820:4;19817:1;19810:15;19844:4;19841:1;19834:15;19861:180;19909:77;19906:1;19899:88;20006:4;20003:1;19996:15;20030:4;20027:1;20020:15;20047:102;;20139:2;20135:7;20130:2;20123:5;20119:14;20115:28;20105:38;;20095:54;;;:::o;20155:179::-;20295:31;20291:1;20283:6;20279:14;20272:55;20261:73;:::o;20340:152::-;20480:4;20476:1;20468:6;20464:14;20457:28;20446:46;:::o;20498:224::-;20638:34;20634:1;20626:6;20622:14;20615:58;20707:7;20702:2;20694:6;20690:15;20683:32;20604:118;:::o;20728:234::-;20868:34;20864:1;20856:6;20852:14;20845:58;20937:17;20932:2;20924:6;20920:15;20913:42;20834:128;:::o;20968:176::-;21108:28;21104:1;21096:6;21092:14;21085:52;21074:70;:::o;21150:180::-;21290:32;21286:1;21278:6;21274:14;21267:56;21256:74;:::o;21336:239::-;21476:34;21472:1;21464:6;21460:14;21453:58;21545:22;21540:2;21532:6;21528:15;21521:47;21442:133;:::o;21581:220::-;21721:34;21717:1;21709:6;21705:14;21698:58;21790:3;21785:2;21777:6;21773:15;21766:28;21687:114;:::o;21807:221::-;21947:34;21943:1;21935:6;21931:14;21924:58;22016:4;22011:2;22003:6;21999:15;21992:29;21913:115;:::o;22034:122::-;22107:24;22125:5;22107:24;:::i;:::-;22100:5;22097:35;22087:2;;22146:1;22143;22136:12;22087:2;22077:79;:::o;22162:122::-;22235:24;22253:5;22235:24;:::i;:::-;22228:5;22225:35;22215:2;;22274:1;22271;22264:12;22215:2;22205:79;:::o

Swarm Source

ipfs://588bde838d7354127aae431c55982879925b624ecce992988f85529c1d6d8824

Block Transaction Gas Used Reward
view all blocks produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.