POL Price: $0.706219 (+1.52%)
Gas: 35 GWei
 

Overview

POL Balance

Polygon PoS Chain LogoPolygon PoS Chain LogoPolygon PoS Chain Logo0 POL

POL Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer I Driss...643089852024-11-15 9:10:3321 days ago1731661833IN
0x2EcCb53c...332c2a814
0 POL0.0028482798
Transfer I Driss...642966902024-11-15 1:33:1222 days ago1731634392IN
0x2EcCb53c...332c2a814
0 POL0.0022303369.99550217
Transfer I Driss...642432742024-11-13 17:31:5123 days ago1731519111IN
0x2EcCb53c...332c2a814
0 POL0.0011624839.99740301
Transfer I Driss...642431162024-11-13 17:26:0723 days ago1731518767IN
0x2EcCb53c...332c2a814
0 POL0.0014388545.15615977
Delete I Driss641099642024-11-10 9:53:1826 days ago1731232398IN
0x2EcCb53c...332c2a814
0 POL0.0045207972.38604292
Delete I Driss636330202024-10-29 12:38:1038 days ago1730205490IN
0x2EcCb53c...332c2a814
0 POL0.001920830.75557167
Add I Driss635668632024-10-27 20:50:4640 days ago1730062246IN
0x2EcCb53c...332c2a814
0 POL0.0100926245.5
Add I Driss635164332024-10-26 14:52:2941 days ago1729954349IN
0x2EcCb53c...332c2a814
0 POL0.0098375344.35
Add I Driss632721352024-10-20 13:37:0847 days ago1729431428IN
0x2EcCb53c...332c2a814
0 POL0.02296904103.55
Add I Driss632687292024-10-20 11:34:4947 days ago1729424089IN
0x2EcCb53c...332c2a814
0 POL0.0084334438.02
Add I Driss632682362024-10-20 11:16:3447 days ago1729422994IN
0x2EcCb53c...332c2a814
0 POL0.0093495442.15
Add I Driss632402402024-10-19 18:26:2948 days ago1729362389IN
0x2EcCb53c...332c2a814
0 POL0.0076637434.55
Add I Driss629822702024-10-13 9:41:5954 days ago1728812519IN
0x2EcCb53c...332c2a814
0 POL0.0100926245.5
Transfer I Driss...622271362024-09-24 18:10:3273 days ago1727201432IN
0x2EcCb53c...332c2a814
0 POL0.0009629630.22115431
Add I Driss619823282024-09-18 16:44:5279 days ago1726677892IN
0x2EcCb53c...332c2a814
0 POL0.0100926245.5
Add I Driss615727232024-09-08 12:03:0389 days ago1725796983IN
0x2EcCb53c...332c2a814
0 POL0.011090850
Add I Driss611820332024-08-29 12:54:4799 days ago1724936087IN
0x2EcCb53c...332c2a814
0 POL0.0081118136.57
Add I Driss611097202024-08-27 17:54:31101 days ago1724781271IN
0x2EcCb53c...332c2a814
0 POL0.0067786930.56
Add I Driss609965172024-08-24 21:42:12104 days ago1724535732IN
0x2EcCb53c...332c2a814
0 POL0.0067698230.52
Delete I Driss609960282024-08-24 21:24:10104 days ago1724534650IN
0x2EcCb53c...332c2a814
0 POL0.0015613525.00000004
Add I Driss609959272024-08-24 21:20:36104 days ago1724534436IN
0x2EcCb53c...332c2a814
0 POL0.0094271842.5
Add I Driss609380802024-08-23 10:35:41105 days ago1724409341IN
0x2EcCb53c...332c2a814
0 POL0.0072600332.73
Add I Driss609328892024-08-23 7:31:21105 days ago1724398281IN
0x2EcCb53c...332c2a814
0 POL0.008318137.5
Add I Driss608996722024-08-22 11:48:50106 days ago1724327330IN
0x2EcCb53c...332c2a814
0 POL0.0067653830.5
Add I Driss606691562024-08-16 18:20:20112 days ago1723832420IN
0x2EcCb53c...332c2a814
0 POL0.0062108428
View all transactions

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

Contract Source Code Verified (Exact Match)

Contract Name:
IDrissMappings

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-03-06
*/

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

interface ERC20 {
    function balanceOf(address _tokenOwner) external view returns (uint balance);
    function transfer(address _to, uint _tokens) external returns (bool success);
    function approve(address _spender, uint256 _value) external returns (bool success);
    function allowance(address _contract, address _spender) external view returns (uint256 remaining);
    function transferFrom(address _from, address _to, uint256 _value) external returns (bool success);
}

contract IDrissMappings {
    uint public countAdding = 0; 
    uint public countDeleting = 0; 
    uint public price = 0;      
    uint public creationTime = block.timestamp;
    address public contractOwner = msg.sender; 
    mapping(string => string) private IDriss;
    mapping(string => string) private IDrissHash;
    mapping(string => address) public IDrissOwners; 
    mapping(string => uint) public payDates;    
    mapping(address => bool) private admins;
    
    event Increment(uint value);
    event Decrement(uint value);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event IDrissOwnershipTransferred(address indexed previousIDrissOwner, address indexed newIDrissOwner);
    event IDrissAdded(string indexed hash);
    event IDrissDeleted(string indexed hash);
    event NewPrice(uint price);
    event AdminAdded(address indexed admin);
    event AdminDeleted(address indexed admin);


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

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

    function setPrice(uint newPrice) external {
        require(msg.sender == contractOwner, "Only contractOwner can set price.");
        price = newPrice;
        emit NewPrice(price);
    }
    
    function withdraw() external returns (bytes memory) {
        require(admins[msg.sender] == true, "Only trusted admin can withdraw.");
        (bool sent, bytes memory data) = msg.sender.call{value: address(this).balance, gas: 40000}("");
        require(sent, "Failed to  withdraw.");
        return data;
    }

    function withdrawTokens(address tokenContract) external {
        require(admins[msg.sender] == true, "Only trusted admin can withdraw.");
        ERC20 tc = ERC20(tokenContract);
        tc.transfer(msg.sender, tc.balanceOf(address(this)));
    }
    

    function increment() private {
        countAdding += 1;
        emit Increment(countAdding);
    }
    
    function decrement() private {
        countDeleting += 1;
        emit Decrement(countDeleting);
    }

    function addIDriss(string memory hashPub, string memory hashID, string memory address_, address ownerAddress) external payable {
        require(admins[msg.sender] == true, "Only trusted admin can add IDriss.");
        require(keccak256(bytes(IDrissHash[hashPub])) == keccak256(bytes("")), "Cannot change existing binding.");
        require(msg.value >= price, "Not enough MATIC.");
        IDriss[hashID] = address_;
        IDrissHash[hashPub] = hashID;
        IDrissOwners[hashPub] = ownerAddress;
        payDates[hashPub] = block.timestamp;
        increment();
        emit IDrissAdded(hashPub);
    }
    
    function addIDrissToken(string memory hashPub, string memory hashID, string memory address_, address token, uint amount, address ownerAddress) external payable{
        require(admins[msg.sender] == true, "Only trusted admin can add IDriss.");
        require(keccak256(bytes(IDrissHash[hashPub])) == keccak256(bytes("")), "Binding already created.");
        ERC20 paymentTc = ERC20(token);
        require(paymentTc.allowance(msg.sender, address(this)) >= amount,"Insuficient Allowance.");
        require(paymentTc.transferFrom(msg.sender, address(this), amount),"Transfer Failed.");
        IDriss[hashID] = address_;
        IDrissHash[hashPub] = hashID;
        IDrissOwners[hashPub] = ownerAddress;
        payDates[hashPub] = block.timestamp;
        increment();
        emit IDrissAdded(hashPub);
    }
    
    function deleteIDriss(string memory hashPub) external payable {
        require(IDrissOwners[hashPub] == msg.sender, "Only IDrissOwner can delete binding.");
        require(keccak256(bytes(IDrissHash[hashPub])) != keccak256(bytes("")), "Binding does not exist.");
        delete IDriss[IDrissHash[hashPub]];
        delete IDrissHash[hashPub];
        delete IDrissOwners[hashPub];
        delete payDates[hashPub];
        decrement();
        emit IDrissDeleted(hashPub);
    }

    function getIDriss(string memory hashPub) public view returns (string memory){
        require(keccak256(bytes(IDrissHash[hashPub])) != keccak256(bytes("")), "Binding does not exist.");
        return IDriss[IDrissHash[hashPub]];
    }

    function transferIDrissOwnership(string memory hashPub, address newOwner) external payable {
        require(IDrissOwners[hashPub] == msg.sender, "Only IDrissOwner can change ownership.");
        IDrissOwners[hashPub] = newOwner;
        emit IDrissOwnershipTransferred(msg.sender, newOwner);
    }

    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 {
        address oldOwner = contractOwner;
        contractOwner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"admin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"admin","type":"address"}],"name":"AdminDeleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Decrement","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"hash","type":"string"}],"name":"IDrissAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"hash","type":"string"}],"name":"IDrissDeleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousIDrissOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newIDrissOwner","type":"address"}],"name":"IDrissOwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Increment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"}],"name":"NewPrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"IDrissOwners","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":"hashPub","type":"string"},{"internalType":"string","name":"hashID","type":"string"},{"internalType":"string","name":"address_","type":"string"},{"internalType":"address","name":"ownerAddress","type":"address"}],"name":"addIDriss","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"string","name":"hashPub","type":"string"},{"internalType":"string","name":"hashID","type":"string"},{"internalType":"string","name":"address_","type":"string"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"ownerAddress","type":"address"}],"name":"addIDrissToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"contractOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"countAdding","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"countDeleting","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"creationTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adminAddress","type":"address"}],"name":"deleteAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"hashPub","type":"string"}],"name":"deleteIDriss","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"string","name":"hashPub","type":"string"}],"name":"getIDriss","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"payDates","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPrice","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferContractOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"string","name":"hashPub","type":"string"},{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferIDrissOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenContract","type":"address"}],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405260008055600060015560006002554260035533600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561006357600080fd5b50612bac806100736000396000f3fe6080604052600436106101095760003560e01c80638398140011610095578063b868714711610064578063b86871471461032c578063c3234c3514610348578063ce606ee014610385578063d8270dce146103b0578063fea072d0146103db57610109565b806383981400146102a057806391b7f5ed146102bc578063a035b1fe146102e5578063a843c51f1461031057610109565b806349df728c116100dc57806349df728c146101b85780635335104b146101e15780635c9db38f1461021e578063679f00151461023a578063704802751461027757610109565b806327e1f7df1461010e578063392ad67f146101375780633ccfd60b14610162578063453d02ba1461018d575b600080fd5b34801561011a57600080fd5b5061013560048036038101906101309190611a9b565b6103f7565b005b34801561014357600080fd5b5061014c610525565b60405161015991906124a4565b60405180910390f35b34801561016e57600080fd5b5061017761052b565b6040516101849190612260565b60405180910390f35b34801561019957600080fd5b506101a261067b565b6040516101af91906124a4565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da9190611a9b565b610681565b005b3480156101ed57600080fd5b5061020860048036038101906102039190611aed565b610833565b6040516102159190612282565b60405180910390f35b61023860048036038101906102339190611b2e565b61098b565b005b34801561024657600080fd5b50610261600480360381019061025c9190611aed565b610af2565b60405161026e91906121bc565b60405180910390f35b34801561028357600080fd5b5061029e60048036038101906102999190611a9b565b610b3b565b005b6102ba60048036038101906102b59190611b82565b610c69565b005b3480156102c857600080fd5b506102e360048036038101906102de9190611cfe565b610f01565b005b3480156102f157600080fd5b506102fa610fd4565b60405161030791906124a4565b60405180910390f35b61032a60048036038101906103259190611a9b565b610fda565b005b61034660048036038101906103419190611c2d565b6110e6565b005b34801561035457600080fd5b5061036f600480360381019061036a9190611aed565b6114dc565b60405161037c91906124a4565b60405180910390f35b34801561039157600080fd5b5061039a61150a565b6040516103a791906121bc565b60405180910390f35b3480156103bc57600080fd5b506103c5611530565b6040516103d291906124a4565b60405180910390f35b6103f560048036038101906103f09190611aed565b611536565b005b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047e90612304565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f989ddfce057dad219e0ae16f691b121bb0e348f0d8ae0ad400b4d5ac8d616c8b60405160405180910390a250565b60015481565b606060011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146105c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b790612484565b60405180910390fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1647619c40906040516105eb906121a7565b600060405180830381858888f193505050503d8060008114610629576040519150601f19603f3d011682016040523d82523d6000602084013e61062e565b606091505b509150915081610673576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066a906122c4565b60405180910390fd5b809250505090565b60005481565b60011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610714576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070b90612484565b60405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161076f91906121bc565b60206040518083038186803b15801561078757600080fd5b505afa15801561079b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bf9190611d27565b6040518363ffffffff1660e01b81526004016107dc929190612237565b602060405180830381600087803b1580156107f657600080fd5b505af115801561080a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082e9190611ac4565b505050565b6060604051806020016040528060008152508051906020012060068360405161085c9190612179565b90815260200160405180910390206040516108779190612162565b604051809103902014156108c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b790612364565b60405180910390fd5b60056006836040516108d29190612179565b90815260200160405180910390206040516108ed9190612190565b908152602001604051809103902080546109069061266d565b80601f01602080910402602001604051908101604052809291908181526020018280546109329061266d565b801561097f5780601f106109545761010080835404028352916020019161097f565b820191906000526020600020905b81548152906001019060200180831161096257829003601f168201915b50505050509050919050565b3373ffffffffffffffffffffffffffffffffffffffff166007836040516109b29190612179565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2e90612464565b60405180910390fd5b80600783604051610a489190612179565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f0e643e8fe2f6e1dfd016e8b1761ee1627c3428bb650f55f2ba0488be210a385a60405160405180910390a35050565b6007818051602081018201805184825260208301602085012081835280955050505050506000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc290612404565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a250565b60011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf3906122e4565b60405180910390fd5b6040518060200160405280600081525080519060200120600685604051610d239190612179565b9081526020016040518091039020604051610d3e9190612162565b604051809103902014610d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7d906123a4565b60405180910390fd5b600254341015610dcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc290612324565b60405180910390fd5b81600584604051610ddc9190612179565b90815260200160405180910390209080519060200190610dfd9291906118fc565b5082600685604051610e0f9190612179565b90815260200160405180910390209080519060200190610e309291906118fc565b5080600785604051610e429190612179565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042600885604051610e9f9190612179565b908152602001604051809103902081905550610eb961178e565b83604051610ec79190612179565b60405180910390207ffed8b27bfcef56857e564d6522e88730dce7de6d50f5f2e8f8a10df8b4fa997360405160405180910390a250505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f88906123e4565b60405180910390fd5b806002819055507f270b316b51ab2cf3a3bb8ca4d22e76a327d05e762fcaa8bd6afaf8cfde9270b7600254604051610fc991906124a4565b60405180910390a150565b60025481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461106a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611061906123c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d190612344565b60405180910390fd5b6110e3816117e2565b50565b60011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611179576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611170906122e4565b60405180910390fd5b60405180602001604052806000815250805190602001206006876040516111a09190612179565b90815260200160405180910390206040516111bb9190612162565b604051809103902014611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa90612424565b60405180910390fd5b6000839050828173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b81526004016112449291906121d7565b60206040518083038186803b15801561125c57600080fd5b505afa158015611270573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112949190611d27565b10156112d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cc90612444565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b815260040161131293929190612200565b602060405180830381600087803b15801561132c57600080fd5b505af1158015611340573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113649190611ac4565b6113a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139a906122a4565b60405180910390fd5b846005876040516113b49190612179565b908152602001604051809103902090805190602001906113d59291906118fc565b50856006886040516113e79190612179565b908152602001604051809103902090805190602001906114089291906118fc565b508160078860405161141a9190612179565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426008886040516114779190612179565b90815260200160405180910390208190555061149161178e565b8660405161149f9190612179565b60405180910390207ffed8b27bfcef56857e564d6522e88730dce7de6d50f5f2e8f8a10df8b4fa997360405160405180910390a250505050505050565b6008818051602081018201805184825260208301602085012081835280955050505050506000915090505481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b3373ffffffffffffffffffffffffffffffffffffffff1660078260405161155d9190612179565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d990612384565b60405180910390fd5b60405180602001604052806000815250805190602001206006826040516116099190612179565b90815260200160405180910390206040516116249190612162565b6040518091039020141561166d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166490612364565b60405180910390fd5b600560068260405161167f9190612179565b908152602001604051809103902060405161169a9190612190565b908152602001604051809103902060006116b49190611982565b6006816040516116c49190612179565b908152602001604051809103902060006116de9190611982565b6007816040516116ee9190612179565b908152602001604051809103902060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560088160405161172f9190612179565b9081526020016040518091039020600090556117496118a8565b806040516117579190612179565b60405180910390207f1838740f74b11929173af9e8cebc5592e1dab8e3f36341b579a4b0e3e97606af60405160405180910390a250565b60016000808282546117a0919061258d565b925050819055507f51af157c2eee40f68107a47a49c32fbbeb0a3c9e5cd37aa56e88e6be92368a816000546040516117d891906124a4565b60405180910390a1565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60018060008282546118ba919061258d565b925050819055507f32814a5bdfd1b8c3d76c49c54e043d6e8aa93d197a09e16599b567135503f7486001546040516118f291906124a4565b60405180910390a1565b8280546119089061266d565b90600052602060002090601f01602090048101928261192a5760008555611971565b82601f1061194357805160ff1916838001178555611971565b82800160010185558215611971579182015b82811115611970578251825591602001919060010190611955565b5b50905061197e91906119c2565b5090565b50805461198e9061266d565b6000825580601f106119a057506119bf565b601f0160209004906000526020600020908101906119be91906119c2565b5b50565b5b808211156119db5760008160009055506001016119c3565b5090565b60006119f26119ed846124e4565b6124bf565b905082815260208101848484011115611a0a57600080fd5b611a1584828561262b565b509392505050565b600081359050611a2c81612b31565b92915050565b600081519050611a4181612b48565b92915050565b600082601f830112611a5857600080fd5b8135611a688482602086016119df565b91505092915050565b600081359050611a8081612b5f565b92915050565b600081519050611a9581612b5f565b92915050565b600060208284031215611aad57600080fd5b6000611abb84828501611a1d565b91505092915050565b600060208284031215611ad657600080fd5b6000611ae484828501611a32565b91505092915050565b600060208284031215611aff57600080fd5b600082013567ffffffffffffffff811115611b1957600080fd5b611b2584828501611a47565b91505092915050565b60008060408385031215611b4157600080fd5b600083013567ffffffffffffffff811115611b5b57600080fd5b611b6785828601611a47565b9250506020611b7885828601611a1d565b9150509250929050565b60008060008060808587031215611b9857600080fd5b600085013567ffffffffffffffff811115611bb257600080fd5b611bbe87828801611a47565b945050602085013567ffffffffffffffff811115611bdb57600080fd5b611be787828801611a47565b935050604085013567ffffffffffffffff811115611c0457600080fd5b611c1087828801611a47565b9250506060611c2187828801611a1d565b91505092959194509250565b60008060008060008060c08789031215611c4657600080fd5b600087013567ffffffffffffffff811115611c6057600080fd5b611c6c89828a01611a47565b965050602087013567ffffffffffffffff811115611c8957600080fd5b611c9589828a01611a47565b955050604087013567ffffffffffffffff811115611cb257600080fd5b611cbe89828a01611a47565b9450506060611ccf89828a01611a1d565b9350506080611ce089828a01611a71565b92505060a0611cf189828a01611a1d565b9150509295509295509295565b600060208284031215611d1057600080fd5b6000611d1e84828501611a71565b91505092915050565b600060208284031215611d3957600080fd5b6000611d4784828501611a86565b91505092915050565b611d59816125e3565b82525050565b6000611d6a8261253f565b611d748185612555565b9350611d8481856020860161263a565b611d8d8161275d565b840191505092915050565b60008154611da58161266d565b611daf8186612566565b94506001821660008114611dca5760018114611ddb57611e0e565b60ff19831686528186019350611e0e565b611de485612515565b60005b83811015611e0657815481890152600182019150602081019050611de7565b838801955050505b50505092915050565b6000611e228261254a565b611e2c8185612571565b9350611e3c81856020860161263a565b611e458161275d565b840191505092915050565b6000611e5b8261254a565b611e658185612582565b9350611e7581856020860161263a565b80840191505092915050565b60008154611e8e8161266d565b611e988186612582565b94506001821660008114611eb35760018114611ec457611ef7565b60ff19831686528186019350611ef7565b611ecd8561252a565b60005b83811015611eef57815481890152600182019150602081019050611ed0565b838801955050505b50505092915050565b6000611f0d601083612571565b9150611f188261276e565b602082019050919050565b6000611f30601483612571565b9150611f3b82612797565b602082019050919050565b6000611f53602283612571565b9150611f5e826127c0565b604082019050919050565b6000611f76602583612571565b9150611f818261280f565b604082019050919050565b6000611f99601183612571565b9150611fa48261285e565b602082019050919050565b6000611fbc602f83612571565b9150611fc782612887565b604082019050919050565b6000611fdf601783612571565b9150611fea826128d6565b602082019050919050565b6000612002602483612571565b915061200d826128ff565b604082019050919050565b6000612025601f83612571565b91506120308261294e565b602082019050919050565b6000612048603483612571565b915061205382612977565b604082019050919050565b600061206b602183612571565b9150612076826129c6565b604082019050919050565b600061208e602283612571565b915061209982612a15565b604082019050919050565b60006120b1601883612571565b91506120bc82612a64565b602082019050919050565b60006120d4600083612566565b91506120df82612a8d565b600082019050919050565b60006120f7601683612571565b915061210282612a90565b602082019050919050565b600061211a602683612571565b915061212582612ab9565b604082019050919050565b600061213d602083612571565b915061214882612b08565b602082019050919050565b61215c81612621565b82525050565b600061216e8284611d98565b915081905092915050565b60006121858284611e50565b915081905092915050565b600061219c8284611e81565b915081905092915050565b60006121b2826120c7565b9150819050919050565b60006020820190506121d16000830184611d50565b92915050565b60006040820190506121ec6000830185611d50565b6121f96020830184611d50565b9392505050565b60006060820190506122156000830186611d50565b6122226020830185611d50565b61222f6040830184612153565b949350505050565b600060408201905061224c6000830185611d50565b6122596020830184612153565b9392505050565b6000602082019050818103600083015261227a8184611d5f565b905092915050565b6000602082019050818103600083015261229c8184611e17565b905092915050565b600060208201905081810360008301526122bd81611f00565b9050919050565b600060208201905081810360008301526122dd81611f23565b9050919050565b600060208201905081810360008301526122fd81611f46565b9050919050565b6000602082019050818103600083015261231d81611f69565b9050919050565b6000602082019050818103600083015261233d81611f8c565b9050919050565b6000602082019050818103600083015261235d81611faf565b9050919050565b6000602082019050818103600083015261237d81611fd2565b9050919050565b6000602082019050818103600083015261239d81611ff5565b9050919050565b600060208201905081810360008301526123bd81612018565b9050919050565b600060208201905081810360008301526123dd8161203b565b9050919050565b600060208201905081810360008301526123fd8161205e565b9050919050565b6000602082019050818103600083015261241d81612081565b9050919050565b6000602082019050818103600083015261243d816120a4565b9050919050565b6000602082019050818103600083015261245d816120ea565b9050919050565b6000602082019050818103600083015261247d8161210d565b9050919050565b6000602082019050818103600083015261249d81612130565b9050919050565b60006020820190506124b96000830184612153565b92915050565b60006124c96124da565b90506124d5828261269f565b919050565b6000604051905090565b600067ffffffffffffffff8211156124ff576124fe61272e565b5b6125088261275d565b9050602081019050919050565b60008190508160005260206000209050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600061259882612621565b91506125a383612621565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156125d8576125d76126d0565b5b828201905092915050565b60006125ee82612601565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561265857808201518184015260208101905061263d565b83811115612667576000848401525b50505050565b6000600282049050600182168061268557607f821691505b60208210811415612699576126986126ff565b5b50919050565b6126a88261275d565b810181811067ffffffffffffffff821117156126c7576126c661272e565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f5472616e73666572204661696c65642e00000000000000000000000000000000600082015250565b7f4661696c656420746f202077697468647261772e000000000000000000000000600082015250565b7f4f6e6c7920747275737465642061646d696e2063616e2061646420494472697360008201527f732e000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c7920636f6e74726163744f776e65722063616e2064656c65746520616460008201527f6d696e732e000000000000000000000000000000000000000000000000000000602082015250565b7f4e6f7420656e6f756768204d415449432e000000000000000000000000000000600082015250565b7f4f776e61626c653a206e657720636f6e74726163744f776e657220697320746860008201527f65207a65726f20616464726573732e0000000000000000000000000000000000602082015250565b7f42696e64696e6720646f6573206e6f742065786973742e000000000000000000600082015250565b7f4f6e6c79204944726973734f776e65722063616e2064656c6574652062696e6460008201527f696e672e00000000000000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f74206368616e6765206578697374696e672062696e64696e672e00600082015250565b7f4f6e6c7920636f6e74726163744f776e65722063616e206368616e6765206f7760008201527f6e657273686970206f6620636f6e74726163742e000000000000000000000000602082015250565b7f4f6e6c7920636f6e74726163744f776e65722063616e2073657420707269636560008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c7920636f6e74726163744f776e65722063616e206164642061646d696e60008201527f732e000000000000000000000000000000000000000000000000000000000000602082015250565b7f42696e64696e6720616c726561647920637265617465642e0000000000000000600082015250565b50565b7f496e737566696369656e7420416c6c6f77616e63652e00000000000000000000600082015250565b7f4f6e6c79204944726973734f776e65722063616e206368616e6765206f776e6560008201527f72736869702e0000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c7920747275737465642061646d696e2063616e2077697468647261772e600082015250565b612b3a816125e3565b8114612b4557600080fd5b50565b612b51816125f5565b8114612b5c57600080fd5b50565b612b6881612621565b8114612b7357600080fd5b5056fea264697066735822122065342377a4dfc75489a7485ed573ae3b327494683658a8f16dc23eb8dc3a7ba664736f6c63430008010033

Deployed Bytecode

0x6080604052600436106101095760003560e01c80638398140011610095578063b868714711610064578063b86871471461032c578063c3234c3514610348578063ce606ee014610385578063d8270dce146103b0578063fea072d0146103db57610109565b806383981400146102a057806391b7f5ed146102bc578063a035b1fe146102e5578063a843c51f1461031057610109565b806349df728c116100dc57806349df728c146101b85780635335104b146101e15780635c9db38f1461021e578063679f00151461023a578063704802751461027757610109565b806327e1f7df1461010e578063392ad67f146101375780633ccfd60b14610162578063453d02ba1461018d575b600080fd5b34801561011a57600080fd5b5061013560048036038101906101309190611a9b565b6103f7565b005b34801561014357600080fd5b5061014c610525565b60405161015991906124a4565b60405180910390f35b34801561016e57600080fd5b5061017761052b565b6040516101849190612260565b60405180910390f35b34801561019957600080fd5b506101a261067b565b6040516101af91906124a4565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da9190611a9b565b610681565b005b3480156101ed57600080fd5b5061020860048036038101906102039190611aed565b610833565b6040516102159190612282565b60405180910390f35b61023860048036038101906102339190611b2e565b61098b565b005b34801561024657600080fd5b50610261600480360381019061025c9190611aed565b610af2565b60405161026e91906121bc565b60405180910390f35b34801561028357600080fd5b5061029e60048036038101906102999190611a9b565b610b3b565b005b6102ba60048036038101906102b59190611b82565b610c69565b005b3480156102c857600080fd5b506102e360048036038101906102de9190611cfe565b610f01565b005b3480156102f157600080fd5b506102fa610fd4565b60405161030791906124a4565b60405180910390f35b61032a60048036038101906103259190611a9b565b610fda565b005b61034660048036038101906103419190611c2d565b6110e6565b005b34801561035457600080fd5b5061036f600480360381019061036a9190611aed565b6114dc565b60405161037c91906124a4565b60405180910390f35b34801561039157600080fd5b5061039a61150a565b6040516103a791906121bc565b60405180910390f35b3480156103bc57600080fd5b506103c5611530565b6040516103d291906124a4565b60405180910390f35b6103f560048036038101906103f09190611aed565b611536565b005b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047e90612304565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f989ddfce057dad219e0ae16f691b121bb0e348f0d8ae0ad400b4d5ac8d616c8b60405160405180910390a250565b60015481565b606060011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146105c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b790612484565b60405180910390fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1647619c40906040516105eb906121a7565b600060405180830381858888f193505050503d8060008114610629576040519150601f19603f3d011682016040523d82523d6000602084013e61062e565b606091505b509150915081610673576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066a906122c4565b60405180910390fd5b809250505090565b60005481565b60011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610714576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070b90612484565b60405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161076f91906121bc565b60206040518083038186803b15801561078757600080fd5b505afa15801561079b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bf9190611d27565b6040518363ffffffff1660e01b81526004016107dc929190612237565b602060405180830381600087803b1580156107f657600080fd5b505af115801561080a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082e9190611ac4565b505050565b6060604051806020016040528060008152508051906020012060068360405161085c9190612179565b90815260200160405180910390206040516108779190612162565b604051809103902014156108c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b790612364565b60405180910390fd5b60056006836040516108d29190612179565b90815260200160405180910390206040516108ed9190612190565b908152602001604051809103902080546109069061266d565b80601f01602080910402602001604051908101604052809291908181526020018280546109329061266d565b801561097f5780601f106109545761010080835404028352916020019161097f565b820191906000526020600020905b81548152906001019060200180831161096257829003601f168201915b50505050509050919050565b3373ffffffffffffffffffffffffffffffffffffffff166007836040516109b29190612179565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2e90612464565b60405180910390fd5b80600783604051610a489190612179565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f0e643e8fe2f6e1dfd016e8b1761ee1627c3428bb650f55f2ba0488be210a385a60405160405180910390a35050565b6007818051602081018201805184825260208301602085012081835280955050505050506000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc290612404565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a250565b60011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf3906122e4565b60405180910390fd5b6040518060200160405280600081525080519060200120600685604051610d239190612179565b9081526020016040518091039020604051610d3e9190612162565b604051809103902014610d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7d906123a4565b60405180910390fd5b600254341015610dcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc290612324565b60405180910390fd5b81600584604051610ddc9190612179565b90815260200160405180910390209080519060200190610dfd9291906118fc565b5082600685604051610e0f9190612179565b90815260200160405180910390209080519060200190610e309291906118fc565b5080600785604051610e429190612179565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042600885604051610e9f9190612179565b908152602001604051809103902081905550610eb961178e565b83604051610ec79190612179565b60405180910390207ffed8b27bfcef56857e564d6522e88730dce7de6d50f5f2e8f8a10df8b4fa997360405160405180910390a250505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f88906123e4565b60405180910390fd5b806002819055507f270b316b51ab2cf3a3bb8ca4d22e76a327d05e762fcaa8bd6afaf8cfde9270b7600254604051610fc991906124a4565b60405180910390a150565b60025481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461106a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611061906123c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d190612344565b60405180910390fd5b6110e3816117e2565b50565b60011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611179576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611170906122e4565b60405180910390fd5b60405180602001604052806000815250805190602001206006876040516111a09190612179565b90815260200160405180910390206040516111bb9190612162565b604051809103902014611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa90612424565b60405180910390fd5b6000839050828173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b81526004016112449291906121d7565b60206040518083038186803b15801561125c57600080fd5b505afa158015611270573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112949190611d27565b10156112d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cc90612444565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b815260040161131293929190612200565b602060405180830381600087803b15801561132c57600080fd5b505af1158015611340573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113649190611ac4565b6113a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139a906122a4565b60405180910390fd5b846005876040516113b49190612179565b908152602001604051809103902090805190602001906113d59291906118fc565b50856006886040516113e79190612179565b908152602001604051809103902090805190602001906114089291906118fc565b508160078860405161141a9190612179565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426008886040516114779190612179565b90815260200160405180910390208190555061149161178e565b8660405161149f9190612179565b60405180910390207ffed8b27bfcef56857e564d6522e88730dce7de6d50f5f2e8f8a10df8b4fa997360405160405180910390a250505050505050565b6008818051602081018201805184825260208301602085012081835280955050505050506000915090505481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b3373ffffffffffffffffffffffffffffffffffffffff1660078260405161155d9190612179565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d990612384565b60405180910390fd5b60405180602001604052806000815250805190602001206006826040516116099190612179565b90815260200160405180910390206040516116249190612162565b6040518091039020141561166d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166490612364565b60405180910390fd5b600560068260405161167f9190612179565b908152602001604051809103902060405161169a9190612190565b908152602001604051809103902060006116b49190611982565b6006816040516116c49190612179565b908152602001604051809103902060006116de9190611982565b6007816040516116ee9190612179565b908152602001604051809103902060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560088160405161172f9190612179565b9081526020016040518091039020600090556117496118a8565b806040516117579190612179565b60405180910390207f1838740f74b11929173af9e8cebc5592e1dab8e3f36341b579a4b0e3e97606af60405160405180910390a250565b60016000808282546117a0919061258d565b925050819055507f51af157c2eee40f68107a47a49c32fbbeb0a3c9e5cd37aa56e88e6be92368a816000546040516117d891906124a4565b60405180910390a1565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60018060008282546118ba919061258d565b925050819055507f32814a5bdfd1b8c3d76c49c54e043d6e8aa93d197a09e16599b567135503f7486001546040516118f291906124a4565b60405180910390a1565b8280546119089061266d565b90600052602060002090601f01602090048101928261192a5760008555611971565b82601f1061194357805160ff1916838001178555611971565b82800160010185558215611971579182015b82811115611970578251825591602001919060010190611955565b5b50905061197e91906119c2565b5090565b50805461198e9061266d565b6000825580601f106119a057506119bf565b601f0160209004906000526020600020908101906119be91906119c2565b5b50565b5b808211156119db5760008160009055506001016119c3565b5090565b60006119f26119ed846124e4565b6124bf565b905082815260208101848484011115611a0a57600080fd5b611a1584828561262b565b509392505050565b600081359050611a2c81612b31565b92915050565b600081519050611a4181612b48565b92915050565b600082601f830112611a5857600080fd5b8135611a688482602086016119df565b91505092915050565b600081359050611a8081612b5f565b92915050565b600081519050611a9581612b5f565b92915050565b600060208284031215611aad57600080fd5b6000611abb84828501611a1d565b91505092915050565b600060208284031215611ad657600080fd5b6000611ae484828501611a32565b91505092915050565b600060208284031215611aff57600080fd5b600082013567ffffffffffffffff811115611b1957600080fd5b611b2584828501611a47565b91505092915050565b60008060408385031215611b4157600080fd5b600083013567ffffffffffffffff811115611b5b57600080fd5b611b6785828601611a47565b9250506020611b7885828601611a1d565b9150509250929050565b60008060008060808587031215611b9857600080fd5b600085013567ffffffffffffffff811115611bb257600080fd5b611bbe87828801611a47565b945050602085013567ffffffffffffffff811115611bdb57600080fd5b611be787828801611a47565b935050604085013567ffffffffffffffff811115611c0457600080fd5b611c1087828801611a47565b9250506060611c2187828801611a1d565b91505092959194509250565b60008060008060008060c08789031215611c4657600080fd5b600087013567ffffffffffffffff811115611c6057600080fd5b611c6c89828a01611a47565b965050602087013567ffffffffffffffff811115611c8957600080fd5b611c9589828a01611a47565b955050604087013567ffffffffffffffff811115611cb257600080fd5b611cbe89828a01611a47565b9450506060611ccf89828a01611a1d565b9350506080611ce089828a01611a71565b92505060a0611cf189828a01611a1d565b9150509295509295509295565b600060208284031215611d1057600080fd5b6000611d1e84828501611a71565b91505092915050565b600060208284031215611d3957600080fd5b6000611d4784828501611a86565b91505092915050565b611d59816125e3565b82525050565b6000611d6a8261253f565b611d748185612555565b9350611d8481856020860161263a565b611d8d8161275d565b840191505092915050565b60008154611da58161266d565b611daf8186612566565b94506001821660008114611dca5760018114611ddb57611e0e565b60ff19831686528186019350611e0e565b611de485612515565b60005b83811015611e0657815481890152600182019150602081019050611de7565b838801955050505b50505092915050565b6000611e228261254a565b611e2c8185612571565b9350611e3c81856020860161263a565b611e458161275d565b840191505092915050565b6000611e5b8261254a565b611e658185612582565b9350611e7581856020860161263a565b80840191505092915050565b60008154611e8e8161266d565b611e988186612582565b94506001821660008114611eb35760018114611ec457611ef7565b60ff19831686528186019350611ef7565b611ecd8561252a565b60005b83811015611eef57815481890152600182019150602081019050611ed0565b838801955050505b50505092915050565b6000611f0d601083612571565b9150611f188261276e565b602082019050919050565b6000611f30601483612571565b9150611f3b82612797565b602082019050919050565b6000611f53602283612571565b9150611f5e826127c0565b604082019050919050565b6000611f76602583612571565b9150611f818261280f565b604082019050919050565b6000611f99601183612571565b9150611fa48261285e565b602082019050919050565b6000611fbc602f83612571565b9150611fc782612887565b604082019050919050565b6000611fdf601783612571565b9150611fea826128d6565b602082019050919050565b6000612002602483612571565b915061200d826128ff565b604082019050919050565b6000612025601f83612571565b91506120308261294e565b602082019050919050565b6000612048603483612571565b915061205382612977565b604082019050919050565b600061206b602183612571565b9150612076826129c6565b604082019050919050565b600061208e602283612571565b915061209982612a15565b604082019050919050565b60006120b1601883612571565b91506120bc82612a64565b602082019050919050565b60006120d4600083612566565b91506120df82612a8d565b600082019050919050565b60006120f7601683612571565b915061210282612a90565b602082019050919050565b600061211a602683612571565b915061212582612ab9565b604082019050919050565b600061213d602083612571565b915061214882612b08565b602082019050919050565b61215c81612621565b82525050565b600061216e8284611d98565b915081905092915050565b60006121858284611e50565b915081905092915050565b600061219c8284611e81565b915081905092915050565b60006121b2826120c7565b9150819050919050565b60006020820190506121d16000830184611d50565b92915050565b60006040820190506121ec6000830185611d50565b6121f96020830184611d50565b9392505050565b60006060820190506122156000830186611d50565b6122226020830185611d50565b61222f6040830184612153565b949350505050565b600060408201905061224c6000830185611d50565b6122596020830184612153565b9392505050565b6000602082019050818103600083015261227a8184611d5f565b905092915050565b6000602082019050818103600083015261229c8184611e17565b905092915050565b600060208201905081810360008301526122bd81611f00565b9050919050565b600060208201905081810360008301526122dd81611f23565b9050919050565b600060208201905081810360008301526122fd81611f46565b9050919050565b6000602082019050818103600083015261231d81611f69565b9050919050565b6000602082019050818103600083015261233d81611f8c565b9050919050565b6000602082019050818103600083015261235d81611faf565b9050919050565b6000602082019050818103600083015261237d81611fd2565b9050919050565b6000602082019050818103600083015261239d81611ff5565b9050919050565b600060208201905081810360008301526123bd81612018565b9050919050565b600060208201905081810360008301526123dd8161203b565b9050919050565b600060208201905081810360008301526123fd8161205e565b9050919050565b6000602082019050818103600083015261241d81612081565b9050919050565b6000602082019050818103600083015261243d816120a4565b9050919050565b6000602082019050818103600083015261245d816120ea565b9050919050565b6000602082019050818103600083015261247d8161210d565b9050919050565b6000602082019050818103600083015261249d81612130565b9050919050565b60006020820190506124b96000830184612153565b92915050565b60006124c96124da565b90506124d5828261269f565b919050565b6000604051905090565b600067ffffffffffffffff8211156124ff576124fe61272e565b5b6125088261275d565b9050602081019050919050565b60008190508160005260206000209050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600061259882612621565b91506125a383612621565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156125d8576125d76126d0565b5b828201905092915050565b60006125ee82612601565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561265857808201518184015260208101905061263d565b83811115612667576000848401525b50505050565b6000600282049050600182168061268557607f821691505b60208210811415612699576126986126ff565b5b50919050565b6126a88261275d565b810181811067ffffffffffffffff821117156126c7576126c661272e565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f5472616e73666572204661696c65642e00000000000000000000000000000000600082015250565b7f4661696c656420746f202077697468647261772e000000000000000000000000600082015250565b7f4f6e6c7920747275737465642061646d696e2063616e2061646420494472697360008201527f732e000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c7920636f6e74726163744f776e65722063616e2064656c65746520616460008201527f6d696e732e000000000000000000000000000000000000000000000000000000602082015250565b7f4e6f7420656e6f756768204d415449432e000000000000000000000000000000600082015250565b7f4f776e61626c653a206e657720636f6e74726163744f776e657220697320746860008201527f65207a65726f20616464726573732e0000000000000000000000000000000000602082015250565b7f42696e64696e6720646f6573206e6f742065786973742e000000000000000000600082015250565b7f4f6e6c79204944726973734f776e65722063616e2064656c6574652062696e6460008201527f696e672e00000000000000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f74206368616e6765206578697374696e672062696e64696e672e00600082015250565b7f4f6e6c7920636f6e74726163744f776e65722063616e206368616e6765206f7760008201527f6e657273686970206f6620636f6e74726163742e000000000000000000000000602082015250565b7f4f6e6c7920636f6e74726163744f776e65722063616e2073657420707269636560008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c7920636f6e74726163744f776e65722063616e206164642061646d696e60008201527f732e000000000000000000000000000000000000000000000000000000000000602082015250565b7f42696e64696e6720616c726561647920637265617465642e0000000000000000600082015250565b50565b7f496e737566696369656e7420416c6c6f77616e63652e00000000000000000000600082015250565b7f4f6e6c79204944726973734f776e65722063616e206368616e6765206f776e6560008201527f72736869702e0000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c7920747275737465642061646d696e2063616e2077697468647261772e600082015250565b612b3a816125e3565b8114612b4557600080fd5b50565b612b51816125f5565b8114612b5c57600080fd5b50565b612b6881612621565b8114612b7357600080fd5b5056fea264697066735822122065342377a4dfc75489a7485ed573ae3b327494683658a8f16dc23eb8dc3a7ba664736f6c63430008010033

Deployed Bytecode Sourcemap

547:5514:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1753:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;613:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2194:317;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;578:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2519:251;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4977:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5223:303;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;880:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1525:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3012:620;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1990:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;650:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5534:311;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3644:824;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;934:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;733:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;684:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4480:489;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1753:229;1838:13;;;;;;;;;;;1824:27;;:10;:27;;;1816:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;1927:5;1904:6;:20;1911:12;1904:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1961:12;1948:26;;;;;;;;;;;;1753:229;:::o;613:29::-;;;;:::o;2194:317::-;2232:12;2287:4;2265:26;;:6;:18;2272:10;2265:18;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;2257:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;2340:9;2351:17;2372:10;:15;;2395:21;2423:5;2372:61;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2339:94;;;;2452:4;2444:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;2499:4;2492:11;;;;2194:317;:::o;578:27::-;;;;:::o;2519:251::-;2616:4;2594:26;;:6;:18;2601:10;2594:18;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;2586:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;2668:8;2685:13;2668:31;;2710:2;:11;;;2722:10;2734:2;:12;;;2755:4;2734:27;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2710:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2519:251;;:::o;4977:238::-;5040:13;5124:9;;;;;;;;;;;;5114:20;;;;;;5089:10;5100:7;5089:19;;;;;;:::i;:::-;;;;;;;;;;;;;5073:37;;;;;;:::i;:::-;;;;;;;;:61;;5065:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;5180:6;5187:10;5198:7;5187:19;;;;;;:::i;:::-;;;;;;;;;;;;;5180:27;;;;;;:::i;:::-;;;;;;;;;;;;;5173:34;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4977:238;;;:::o;5223:303::-;5358:10;5333:35;;:12;5346:7;5333:21;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:35;;;5325:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;5446:8;5422:12;5435:7;5422:21;;;;;;:::i;:::-;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;5509:8;5470:48;;5497:10;5470:48;;;;;;;;;;;;5223:303;;:::o;880:46::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1525:220::-;1607:13;;;;;;;;;;;1593:27;;:10;:27;;;1585:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;1693:4;1670:6;:20;1677:12;1670:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;1724:12;1713:24;;;;;;;;;;;;1525:220;:::o;3012:620::-;3180:4;3158:26;;:6;:18;3165:10;3158:18;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3150:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3293:9;;;;;;;;;;;;3283:20;;;;;;3258:10;3269:7;3258:19;;;;;;:::i;:::-;;;;;;;;;;;;;3242:37;;;;;;:::i;:::-;;;;;;;;:61;3234:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;3371:5;;3358:9;:18;;3350:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;3426:8;3409:6;3416;3409:14;;;;;;:::i;:::-;;;;;;;;;;;;;:25;;;;;;;;;;;;:::i;:::-;;3467:6;3445:10;3456:7;3445:19;;;;;;:::i;:::-;;;;;;;;;;;;;:28;;;;;;;;;;;;:::i;:::-;;3508:12;3484;3497:7;3484:21;;;;;;:::i;:::-;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;3551:15;3531:8;3540:7;3531:17;;;;;;:::i;:::-;;;;;;;;;;;;;:35;;;;3577:11;:9;:11::i;:::-;3616:7;3604:20;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;3012:620;;;;:::o;1990:192::-;2065:13;;;;;;;;;;;2051:27;;:10;:27;;;2043:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2135:8;2127:5;:16;;;;2159:15;2168:5;;2159:15;;;;;;:::i;:::-;;;;;;;;1990:192;:::o;650:21::-;;;;:::o;5534:311::-;5635:13;;;;;;;;;;;5621:27;;:10;:27;;;5613:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;5744:1;5724:22;;:8;:22;;;;5716:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;5809:28;5828:8;5809:18;:28::i;:::-;5534:311;:::o;3644:824::-;3844:4;3822:26;;:6;:18;3829:10;3822:18;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3814:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3957:9;;;;;;;;;;;;3947:20;;;;;;3922:10;3933:7;3922:19;;;;;;:::i;:::-;;;;;;;;;;;;;3906:37;;;;;;:::i;:::-;;;;;;;;:61;3898:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;4007:15;4031:5;4007:30;;4106:6;4056:9;:19;;;4076:10;4096:4;4056:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;4048:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;4157:9;:22;;;4180:10;4200:4;4207:6;4157:57;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4149:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4262:8;4245:6;4252;4245:14;;;;;;:::i;:::-;;;;;;;;;;;;;:25;;;;;;;;;;;;:::i;:::-;;4303:6;4281:10;4292:7;4281:19;;;;;;:::i;:::-;;;;;;;;;;;;;:28;;;;;;;;;;;;:::i;:::-;;4344:12;4320;4333:7;4320:21;;;;;;:::i;:::-;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;4387:15;4367:8;4376:7;4367:17;;;;;;:::i;:::-;;;;;;;;;;;;;:35;;;;4413:11;:9;:11::i;:::-;4452:7;4440:20;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;3644:824;;;;;;;:::o;934:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;733:41::-;;;;;;;;;;;;;:::o;684:42::-;;;;:::o;4480:489::-;4586:10;4561:35;;:12;4574:7;4561:21;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:35;;;4553:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;4707:9;;;;;;;;;;;;4697:20;;;;;;4672:10;4683:7;4672:19;;;;;;:::i;:::-;;;;;;;;;;;;;4656:37;;;;;;:::i;:::-;;;;;;;;:61;;4648:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;4763:6;4770:10;4781:7;4770:19;;;;;;:::i;:::-;;;;;;;;;;;;;4763:27;;;;;;:::i;:::-;;;;;;;;;;;;;;4756:34;;;;:::i;:::-;4808:10;4819:7;4808:19;;;;;;:::i;:::-;;;;;;;;;;;;;;4801:26;;;;:::i;:::-;4845:12;4858:7;4845:21;;;;;;:::i;:::-;;;;;;;;;;;;;;4838:28;;;;;;;;;;;4884:8;4893:7;4884:17;;;;;;:::i;:::-;;;;;;;;;;;;;4877:24;;;4912:11;:9;:11::i;:::-;4953:7;4939:22;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4480:489;:::o;2784:102::-;2839:1;2824:11;;:16;;;;;;;:::i;:::-;;;;;;;;2856:22;2866:11;;2856:22;;;;;;:::i;:::-;;;;;;;;2784:102::o;5853:205::-;5927:16;5946:13;;;;;;;;;;;5927:32;;5986:8;5970:13;;:24;;;;;;;;;;;;;;;;;;6041:8;6010:40;;6031:8;6010:40;;;;;;;;;;;;5853:205;;:::o;2898:106::-;2955:1;2938:13;;:18;;;;;;;:::i;:::-;;;;;;;;2972:24;2982:13;;2972:24;;;;;;:::i;:::-;;;;;;;;2898:106::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:139::-;;442:6;429:20;420:29;;458:33;485:5;458:33;:::i;:::-;410:87;;;;:::o;503:137::-;;588:6;582:13;573:22;;604:30;628:5;604:30;:::i;:::-;563:77;;;;:::o;660:273::-;;765:3;758:4;750:6;746:17;742:27;732:2;;783:1;780;773:12;732:2;823:6;810:20;848:79;923:3;915:6;908:4;900:6;896:17;848:79;:::i;:::-;839:88;;722:211;;;;;:::o;939:139::-;;1023:6;1010:20;1001:29;;1039:33;1066:5;1039:33;:::i;:::-;991:87;;;;:::o;1084:143::-;;1172:6;1166:13;1157:22;;1188:33;1215:5;1188:33;:::i;:::-;1147:80;;;;:::o;1233:262::-;;1341:2;1329:9;1320:7;1316:23;1312:32;1309:2;;;1357:1;1354;1347:12;1309:2;1400:1;1425:53;1470:7;1461:6;1450:9;1446:22;1425:53;:::i;:::-;1415:63;;1371:117;1299:196;;;;:::o;1501:278::-;;1617:2;1605:9;1596:7;1592:23;1588:32;1585:2;;;1633:1;1630;1623:12;1585:2;1676:1;1701:61;1754:7;1745:6;1734:9;1730:22;1701:61;:::i;:::-;1691:71;;1647:125;1575:204;;;;:::o;1785:375::-;;1903:2;1891:9;1882:7;1878:23;1874:32;1871:2;;;1919:1;1916;1909:12;1871:2;1990:1;1979:9;1975:17;1962:31;2020:18;2012:6;2009:30;2006:2;;;2052:1;2049;2042:12;2006:2;2080:63;2135:7;2126:6;2115:9;2111:22;2080:63;:::i;:::-;2070:73;;1933:220;1861:299;;;;:::o;2166:520::-;;;2301:2;2289:9;2280:7;2276:23;2272:32;2269:2;;;2317:1;2314;2307:12;2269:2;2388:1;2377:9;2373:17;2360:31;2418:18;2410:6;2407:30;2404:2;;;2450:1;2447;2440:12;2404:2;2478:63;2533:7;2524:6;2513:9;2509:22;2478:63;:::i;:::-;2468:73;;2331:220;2590:2;2616:53;2661:7;2652:6;2641:9;2637:22;2616:53;:::i;:::-;2606:63;;2561:118;2259:427;;;;;:::o;2692:1037::-;;;;;2881:3;2869:9;2860:7;2856:23;2852:33;2849:2;;;2898:1;2895;2888:12;2849:2;2969:1;2958:9;2954:17;2941:31;2999:18;2991:6;2988:30;2985:2;;;3031:1;3028;3021:12;2985:2;3059:63;3114:7;3105:6;3094:9;3090:22;3059:63;:::i;:::-;3049:73;;2912:220;3199:2;3188:9;3184:18;3171:32;3230:18;3222:6;3219:30;3216:2;;;3262:1;3259;3252:12;3216:2;3290:63;3345:7;3336:6;3325:9;3321:22;3290:63;:::i;:::-;3280:73;;3142:221;3430:2;3419:9;3415:18;3402:32;3461:18;3453:6;3450:30;3447:2;;;3493:1;3490;3483:12;3447:2;3521:63;3576:7;3567:6;3556:9;3552:22;3521:63;:::i;:::-;3511:73;;3373:221;3633:2;3659:53;3704:7;3695:6;3684:9;3680:22;3659:53;:::i;:::-;3649:63;;3604:118;2839:890;;;;;;;:::o;3735:1329::-;;;;;;;3958:3;3946:9;3937:7;3933:23;3929:33;3926:2;;;3975:1;3972;3965:12;3926:2;4046:1;4035:9;4031:17;4018:31;4076:18;4068:6;4065:30;4062:2;;;4108:1;4105;4098:12;4062:2;4136:63;4191:7;4182:6;4171:9;4167:22;4136:63;:::i;:::-;4126:73;;3989:220;4276:2;4265:9;4261:18;4248:32;4307:18;4299:6;4296:30;4293:2;;;4339:1;4336;4329:12;4293:2;4367:63;4422:7;4413:6;4402:9;4398:22;4367:63;:::i;:::-;4357:73;;4219:221;4507:2;4496:9;4492:18;4479:32;4538:18;4530:6;4527:30;4524:2;;;4570:1;4567;4560:12;4524:2;4598:63;4653:7;4644:6;4633:9;4629:22;4598:63;:::i;:::-;4588:73;;4450:221;4710:2;4736:53;4781:7;4772:6;4761:9;4757:22;4736:53;:::i;:::-;4726:63;;4681:118;4838:3;4865:53;4910:7;4901:6;4890:9;4886:22;4865:53;:::i;:::-;4855:63;;4809:119;4967:3;4994:53;5039:7;5030:6;5019:9;5015:22;4994:53;:::i;:::-;4984:63;;4938:119;3916:1148;;;;;;;;:::o;5070:262::-;;5178:2;5166:9;5157:7;5153:23;5149:32;5146:2;;;5194:1;5191;5184:12;5146:2;5237:1;5262:53;5307:7;5298:6;5287:9;5283:22;5262:53;:::i;:::-;5252:63;;5208:117;5136:196;;;;:::o;5338:284::-;;5457:2;5445:9;5436:7;5432:23;5428:32;5425:2;;;5473:1;5470;5463:12;5425:2;5516:1;5541:64;5597:7;5588:6;5577:9;5573:22;5541:64;:::i;:::-;5531:74;;5487:128;5415:207;;;;:::o;5628:118::-;5715:24;5733:5;5715:24;:::i;:::-;5710:3;5703:37;5693:53;;:::o;5752:360::-;;5866:38;5898:5;5866:38;:::i;:::-;5920:70;5983:6;5978:3;5920:70;:::i;:::-;5913:77;;5999:52;6044:6;6039:3;6032:4;6025:5;6021:16;5999:52;:::i;:::-;6076:29;6098:6;6076:29;:::i;:::-;6071:3;6067:39;6060:46;;5842:270;;;;;:::o;6140:849::-;;6282:5;6276:12;6311:36;6337:9;6311:36;:::i;:::-;6363:88;6444:6;6439:3;6363:88;:::i;:::-;6356:95;;6482:1;6471:9;6467:17;6498:1;6493:137;;;;6644:1;6639:344;;;;6460:523;;6493:137;6577:4;6573:9;6562;6558:25;6553:3;6546:38;6613:6;6608:3;6604:16;6597:23;;6493:137;;6639:344;6706:41;6741:5;6706:41;:::i;:::-;6769:1;6783:154;6797:6;6794:1;6791:13;6783:154;;;6871:7;6865:14;6861:1;6856:3;6852:11;6845:35;6921:1;6912:7;6908:15;6897:26;;6819:4;6816:1;6812:12;6807:17;;6783:154;;;6966:6;6961:3;6957:16;6950:23;;6646:337;;6460:523;;6249:740;;;;;;:::o;6995:364::-;;7111:39;7144:5;7111:39;:::i;:::-;7166:71;7230:6;7225:3;7166:71;:::i;:::-;7159:78;;7246:52;7291:6;7286:3;7279:4;7272:5;7268:16;7246:52;:::i;:::-;7323:29;7345:6;7323:29;:::i;:::-;7318:3;7314:39;7307:46;;7087:272;;;;;:::o;7365:377::-;;7499:39;7532:5;7499:39;:::i;:::-;7554:89;7636:6;7631:3;7554:89;:::i;:::-;7547:96;;7652:52;7697:6;7692:3;7685:4;7678:5;7674:16;7652:52;:::i;:::-;7729:6;7724:3;7720:16;7713:23;;7475:267;;;;;:::o;7772:845::-;;7912:5;7906:12;7941:36;7967:9;7941:36;:::i;:::-;7993:89;8075:6;8070:3;7993:89;:::i;:::-;7986:96;;8113:1;8102:9;8098:17;8129:1;8124:137;;;;8275:1;8270:341;;;;8091:520;;8124:137;8208:4;8204:9;8193;8189:25;8184:3;8177:38;8244:6;8239:3;8235:16;8228:23;;8124:137;;8270:341;8337:38;8369:5;8337:38;:::i;:::-;8397:1;8411:154;8425:6;8422:1;8419:13;8411:154;;;8499:7;8493:14;8489:1;8484:3;8480:11;8473:35;8549:1;8540:7;8536:15;8525:26;;8447:4;8444:1;8440:12;8435:17;;8411:154;;;8594:6;8589:3;8585:16;8578:23;;8277:334;;8091:520;;7879:738;;;;;;:::o;8623:366::-;;8786:67;8850:2;8845:3;8786:67;:::i;:::-;8779:74;;8862:93;8951:3;8862:93;:::i;:::-;8980:2;8975:3;8971:12;8964:19;;8769:220;;;:::o;8995:366::-;;9158:67;9222:2;9217:3;9158:67;:::i;:::-;9151:74;;9234:93;9323:3;9234:93;:::i;:::-;9352:2;9347:3;9343:12;9336:19;;9141:220;;;:::o;9367:366::-;;9530:67;9594:2;9589:3;9530:67;:::i;:::-;9523:74;;9606:93;9695:3;9606:93;:::i;:::-;9724:2;9719:3;9715:12;9708:19;;9513:220;;;:::o;9739:366::-;;9902:67;9966:2;9961:3;9902:67;:::i;:::-;9895:74;;9978:93;10067:3;9978:93;:::i;:::-;10096:2;10091:3;10087:12;10080:19;;9885:220;;;:::o;10111:366::-;;10274:67;10338:2;10333:3;10274:67;:::i;:::-;10267:74;;10350:93;10439:3;10350:93;:::i;:::-;10468:2;10463:3;10459:12;10452:19;;10257:220;;;:::o;10483:366::-;;10646:67;10710:2;10705:3;10646:67;:::i;:::-;10639:74;;10722:93;10811:3;10722:93;:::i;:::-;10840:2;10835:3;10831:12;10824:19;;10629:220;;;:::o;10855:366::-;;11018:67;11082:2;11077:3;11018:67;:::i;:::-;11011:74;;11094:93;11183:3;11094:93;:::i;:::-;11212:2;11207:3;11203:12;11196:19;;11001:220;;;:::o;11227:366::-;;11390:67;11454:2;11449:3;11390:67;:::i;:::-;11383:74;;11466:93;11555:3;11466:93;:::i;:::-;11584:2;11579:3;11575:12;11568:19;;11373:220;;;:::o;11599:366::-;;11762:67;11826:2;11821:3;11762:67;:::i;:::-;11755:74;;11838:93;11927:3;11838:93;:::i;:::-;11956:2;11951:3;11947:12;11940:19;;11745:220;;;:::o;11971:366::-;;12134:67;12198:2;12193:3;12134:67;:::i;:::-;12127:74;;12210:93;12299:3;12210:93;:::i;:::-;12328:2;12323:3;12319:12;12312:19;;12117:220;;;:::o;12343:366::-;;12506:67;12570:2;12565:3;12506:67;:::i;:::-;12499:74;;12582:93;12671:3;12582:93;:::i;:::-;12700:2;12695:3;12691:12;12684:19;;12489:220;;;:::o;12715:366::-;;12878:67;12942:2;12937:3;12878:67;:::i;:::-;12871:74;;12954:93;13043:3;12954:93;:::i;:::-;13072:2;13067:3;13063:12;13056:19;;12861:220;;;:::o;13087:366::-;;13250:67;13314:2;13309:3;13250:67;:::i;:::-;13243:74;;13326:93;13415:3;13326:93;:::i;:::-;13444:2;13439:3;13435:12;13428:19;;13233:220;;;:::o;13459:398::-;;13639:83;13720:1;13715:3;13639:83;:::i;:::-;13632:90;;13731:93;13820:3;13731:93;:::i;:::-;13849:1;13844:3;13840:11;13833:18;;13622:235;;;:::o;13863:366::-;;14026:67;14090:2;14085:3;14026:67;:::i;:::-;14019:74;;14102:93;14191:3;14102:93;:::i;:::-;14220:2;14215:3;14211:12;14204:19;;14009:220;;;:::o;14235:366::-;;14398:67;14462:2;14457:3;14398:67;:::i;:::-;14391:74;;14474:93;14563:3;14474:93;:::i;:::-;14592:2;14587:3;14583:12;14576:19;;14381:220;;;:::o;14607:366::-;;14770:67;14834:2;14829:3;14770:67;:::i;:::-;14763:74;;14846:93;14935:3;14846:93;:::i;:::-;14964:2;14959:3;14955:12;14948:19;;14753:220;;;:::o;14979:118::-;15066:24;15084:5;15066:24;:::i;:::-;15061:3;15054:37;15044:53;;:::o;15103:273::-;;15256:94;15346:3;15337:6;15256:94;:::i;:::-;15249:101;;15367:3;15360:10;;15238:138;;;;:::o;15382:275::-;;15536:95;15627:3;15618:6;15536:95;:::i;:::-;15529:102;;15648:3;15641:10;;15518:139;;;;:::o;15663:269::-;;15814:92;15902:3;15893:6;15814:92;:::i;:::-;15807:99;;15923:3;15916:10;;15796:136;;;;:::o;15938:379::-;;16144:147;16287:3;16144:147;:::i;:::-;16137:154;;16308:3;16301:10;;16126:191;;;:::o;16323:222::-;;16454:2;16443:9;16439:18;16431:26;;16467:71;16535:1;16524:9;16520:17;16511:6;16467:71;:::i;:::-;16421:124;;;;:::o;16551:332::-;;16710:2;16699:9;16695:18;16687:26;;16723:71;16791:1;16780:9;16776:17;16767:6;16723:71;:::i;:::-;16804:72;16872:2;16861:9;16857:18;16848:6;16804:72;:::i;:::-;16677:206;;;;;:::o;16889:442::-;;17076:2;17065:9;17061:18;17053:26;;17089:71;17157:1;17146:9;17142:17;17133:6;17089:71;:::i;:::-;17170:72;17238:2;17227:9;17223:18;17214:6;17170:72;:::i;:::-;17252;17320:2;17309:9;17305:18;17296:6;17252:72;:::i;:::-;17043:288;;;;;;:::o;17337:332::-;;17496:2;17485:9;17481:18;17473:26;;17509:71;17577:1;17566:9;17562:17;17553:6;17509:71;:::i;:::-;17590:72;17658:2;17647:9;17643:18;17634:6;17590:72;:::i;:::-;17463:206;;;;;:::o;17675:309::-;;17824:2;17813:9;17809:18;17801:26;;17873:9;17867:4;17863:20;17859:1;17848:9;17844:17;17837:47;17901:76;17972:4;17963:6;17901:76;:::i;:::-;17893:84;;17791:193;;;;:::o;17990:313::-;;18141:2;18130:9;18126:18;18118:26;;18190:9;18184:4;18180:20;18176:1;18165:9;18161:17;18154:47;18218:78;18291:4;18282:6;18218:78;:::i;:::-;18210:86;;18108:195;;;;:::o;18309:419::-;;18513:2;18502:9;18498:18;18490:26;;18562:9;18556:4;18552:20;18548:1;18537:9;18533:17;18526:47;18590:131;18716:4;18590:131;:::i;:::-;18582:139;;18480:248;;;:::o;18734:419::-;;18938:2;18927:9;18923:18;18915:26;;18987:9;18981:4;18977:20;18973:1;18962:9;18958:17;18951:47;19015:131;19141:4;19015:131;:::i;:::-;19007:139;;18905:248;;;:::o;19159:419::-;;19363:2;19352:9;19348:18;19340:26;;19412:9;19406:4;19402:20;19398:1;19387:9;19383:17;19376:47;19440:131;19566:4;19440:131;:::i;:::-;19432:139;;19330:248;;;:::o;19584:419::-;;19788:2;19777:9;19773:18;19765:26;;19837:9;19831:4;19827:20;19823:1;19812:9;19808:17;19801:47;19865:131;19991:4;19865:131;:::i;:::-;19857:139;;19755:248;;;:::o;20009:419::-;;20213:2;20202:9;20198:18;20190:26;;20262:9;20256:4;20252:20;20248:1;20237:9;20233:17;20226:47;20290:131;20416:4;20290:131;:::i;:::-;20282:139;;20180:248;;;:::o;20434:419::-;;20638:2;20627:9;20623:18;20615:26;;20687:9;20681:4;20677:20;20673:1;20662:9;20658:17;20651:47;20715:131;20841:4;20715:131;:::i;:::-;20707:139;;20605:248;;;:::o;20859:419::-;;21063:2;21052:9;21048:18;21040:26;;21112:9;21106:4;21102:20;21098:1;21087:9;21083:17;21076:47;21140:131;21266:4;21140:131;:::i;:::-;21132:139;;21030:248;;;:::o;21284:419::-;;21488:2;21477:9;21473:18;21465:26;;21537:9;21531:4;21527:20;21523:1;21512:9;21508:17;21501:47;21565:131;21691:4;21565:131;:::i;:::-;21557:139;;21455:248;;;:::o;21709:419::-;;21913:2;21902:9;21898:18;21890:26;;21962:9;21956:4;21952:20;21948:1;21937:9;21933:17;21926:47;21990:131;22116:4;21990:131;:::i;:::-;21982:139;;21880:248;;;:::o;22134:419::-;;22338:2;22327:9;22323:18;22315:26;;22387:9;22381:4;22377:20;22373:1;22362:9;22358:17;22351:47;22415:131;22541:4;22415:131;:::i;:::-;22407:139;;22305:248;;;:::o;22559:419::-;;22763:2;22752:9;22748:18;22740:26;;22812:9;22806:4;22802:20;22798:1;22787:9;22783:17;22776:47;22840:131;22966:4;22840:131;:::i;:::-;22832:139;;22730:248;;;:::o;22984:419::-;;23188:2;23177:9;23173:18;23165:26;;23237:9;23231:4;23227:20;23223:1;23212:9;23208:17;23201:47;23265:131;23391:4;23265:131;:::i;:::-;23257:139;;23155:248;;;:::o;23409:419::-;;23613:2;23602:9;23598:18;23590:26;;23662:9;23656:4;23652:20;23648:1;23637:9;23633:17;23626:47;23690:131;23816:4;23690:131;:::i;:::-;23682:139;;23580:248;;;:::o;23834:419::-;;24038:2;24027:9;24023:18;24015:26;;24087:9;24081:4;24077:20;24073:1;24062:9;24058:17;24051:47;24115:131;24241:4;24115:131;:::i;:::-;24107:139;;24005:248;;;:::o;24259:419::-;;24463:2;24452:9;24448:18;24440:26;;24512:9;24506:4;24502:20;24498:1;24487:9;24483:17;24476:47;24540:131;24666:4;24540:131;:::i;:::-;24532:139;;24430:248;;;:::o;24684:419::-;;24888:2;24877:9;24873:18;24865:26;;24937:9;24931:4;24927:20;24923:1;24912:9;24908:17;24901:47;24965:131;25091:4;24965:131;:::i;:::-;24957:139;;24855:248;;;:::o;25109:222::-;;25240:2;25229:9;25225:18;25217:26;;25253:71;25321:1;25310:9;25306:17;25297:6;25253:71;:::i;:::-;25207:124;;;;:::o;25337:129::-;;25398:20;;:::i;:::-;25388:30;;25427:33;25455:4;25447:6;25427:33;:::i;:::-;25378:88;;;:::o;25472:75::-;;25538:2;25532:9;25522:19;;25512:35;:::o;25553:308::-;;25705:18;25697:6;25694:30;25691:2;;;25727:18;;:::i;:::-;25691:2;25765:29;25787:6;25765:29;:::i;:::-;25757:37;;25849:4;25843;25839:15;25831:23;;25620:241;;;:::o;25867:144::-;;25942:3;25934:11;;25965:3;25962:1;25955:14;25999:4;25996:1;25986:18;25978:26;;25924:87;;;:::o;26017:141::-;;26089:3;26081:11;;26112:3;26109:1;26102:14;26146:4;26143:1;26133:18;26125:26;;26071:87;;;:::o;26164:98::-;;26249:5;26243:12;26233:22;;26222:40;;;:::o;26268:99::-;;26354:5;26348:12;26338:22;;26327:40;;;:::o;26373:168::-;;26490:6;26485:3;26478:19;26530:4;26525:3;26521:14;26506:29;;26468:73;;;;:::o;26547:147::-;;26685:3;26670:18;;26660:34;;;;:::o;26700:169::-;;26818:6;26813:3;26806:19;26858:4;26853:3;26849:14;26834:29;;26796:73;;;;:::o;26875:148::-;;27014:3;26999:18;;26989:34;;;;:::o;27029:305::-;;27088:20;27106:1;27088:20;:::i;:::-;27083:25;;27122:20;27140:1;27122:20;:::i;:::-;27117:25;;27276:1;27208:66;27204:74;27201:1;27198:81;27195:2;;;27282:18;;:::i;:::-;27195:2;27326:1;27323;27319:9;27312:16;;27073:261;;;;:::o;27340:96::-;;27406:24;27424:5;27406:24;:::i;:::-;27395:35;;27385:51;;;:::o;27442:90::-;;27519:5;27512:13;27505:21;27494:32;;27484:48;;;:::o;27538:126::-;;27615:42;27608:5;27604:54;27593:65;;27583:81;;;:::o;27670:77::-;;27736:5;27725:16;;27715:32;;;:::o;27753:154::-;27837:6;27832:3;27827;27814:30;27899:1;27890:6;27885:3;27881:16;27874:27;27804:103;;;:::o;27913:307::-;27981:1;27991:113;28005:6;28002:1;27999:13;27991:113;;;28090:1;28085:3;28081:11;28075:18;28071:1;28066:3;28062:11;28055:39;28027:2;28024:1;28020:10;28015:15;;27991:113;;;28122:6;28119:1;28116:13;28113:2;;;28202:1;28193:6;28188:3;28184:16;28177:27;28113:2;27962:258;;;;:::o;28226:320::-;;28307:1;28301:4;28297:12;28287:22;;28354:1;28348:4;28344:12;28375:18;28365:2;;28431:4;28423:6;28419:17;28409:27;;28365:2;28493;28485:6;28482:14;28462:18;28459:38;28456:2;;;28512:18;;:::i;:::-;28456:2;28277:269;;;;:::o;28552:281::-;28635:27;28657:4;28635:27;:::i;:::-;28627:6;28623:40;28765:6;28753:10;28750:22;28729:18;28717:10;28714:34;28711:62;28708:2;;;28776:18;;:::i;:::-;28708:2;28816:10;28812:2;28805:22;28595:238;;;:::o;28839:180::-;28887:77;28884:1;28877:88;28984:4;28981:1;28974:15;29008:4;29005:1;28998:15;29025:180;29073:77;29070:1;29063:88;29170:4;29167:1;29160:15;29194:4;29191:1;29184:15;29211:180;29259:77;29256:1;29249:88;29356:4;29353:1;29346:15;29380:4;29377:1;29370:15;29397:102;;29489:2;29485:7;29480:2;29473:5;29469:14;29465:28;29455:38;;29445:54;;;:::o;29505:166::-;29645:18;29641:1;29633:6;29629:14;29622:42;29611:60;:::o;29677:170::-;29817:22;29813:1;29805:6;29801:14;29794:46;29783:64;:::o;29853:221::-;29993:34;29989:1;29981:6;29977:14;29970:58;30062:4;30057:2;30049:6;30045:15;30038:29;29959:115;:::o;30080:224::-;30220:34;30216:1;30208:6;30204:14;30197:58;30289:7;30284:2;30276:6;30272:15;30265:32;30186:118;:::o;30310:167::-;30450:19;30446:1;30438:6;30434:14;30427:43;30416:61;:::o;30483:234::-;30623:34;30619:1;30611:6;30607:14;30600:58;30692:17;30687:2;30679:6;30675:15;30668:42;30589:128;:::o;30723:173::-;30863:25;30859:1;30851:6;30847:14;30840:49;30829:67;:::o;30902:223::-;31042:34;31038:1;31030:6;31026:14;31019:58;31111:6;31106:2;31098:6;31094:15;31087:31;31008:117;:::o;31131:181::-;31271:33;31267:1;31259:6;31255:14;31248:57;31237:75;:::o;31318:239::-;31458:34;31454:1;31446:6;31442:14;31435:58;31527:22;31522:2;31514:6;31510:15;31503:47;31424:133;:::o;31563:220::-;31703:34;31699:1;31691:6;31687:14;31680:58;31772:3;31767:2;31759:6;31755:15;31748:28;31669:114;:::o;31789:221::-;31929:34;31925:1;31917:6;31913:14;31906:58;31998:4;31993:2;31985:6;31981:15;31974:29;31895:115;:::o;32016:174::-;32156:26;32152:1;32144:6;32140:14;32133:50;32122:68;:::o;32196:114::-;32302:8;:::o;32316:172::-;32456:24;32452:1;32444:6;32440:14;32433:48;32422:66;:::o;32494:225::-;32634:34;32630:1;32622:6;32618:14;32611:58;32703:8;32698:2;32690:6;32686:15;32679:33;32600:119;:::o;32725:182::-;32865:34;32861:1;32853:6;32849:14;32842:58;32831:76;:::o;32913:122::-;32986:24;33004:5;32986:24;:::i;:::-;32979:5;32976:35;32966:2;;33025:1;33022;33015:12;32966:2;32956:79;:::o;33041:116::-;33111:21;33126:5;33111:21;:::i;:::-;33104:5;33101:32;33091:2;;33147:1;33144;33137:12;33091:2;33081:76;:::o;33163:122::-;33236:24;33254:5;33236:24;:::i;:::-;33229:5;33226:35;33216:2;;33275:1;33272;33265:12;33216:2;33206:79;:::o

Swarm Source

ipfs://65342377a4dfc75489a7485ed573ae3b327494683658a8f16dc23eb8dc3a7ba6

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.