Mumbai Testnet

Contract

0x20Ad6764b9C021410F2CF518D2537FC2bBCfa336

Overview

MATIC Balance

Polygon PoS Chain LogoPolygon PoS Chain LogoPolygon PoS Chain Logo0 MATIC

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Value
Get Complaint360551892023-05-26 5:03:30308 days ago1685077410IN
0x20Ad6764...2bBCfa336
0 MATIC0.000306263.977
Get All Pending ...360551582023-05-26 5:02:24308 days ago1685077344IN
0x20Ad6764...2bBCfa336
0 MATIC0.001608822.82270001
Get Complaint360550322023-05-26 4:57:56308 days ago1685077076IN
0x20Ad6764...2bBCfa336
0 MATIC0.000306263.977
Get Complaint360549822023-05-26 4:56:10308 days ago1685076970IN
0x20Ad6764...2bBCfa336
0 MATIC0.000224092.91
Get Complaint360549522023-05-26 4:55:06308 days ago1685076906IN
0x20Ad6764...2bBCfa336
0 MATIC0.000224092.91
Get Complaint360549412023-05-26 4:54:42308 days ago1685076882IN
0x20Ad6764...2bBCfa336
0 MATIC0.000217372.8227
Get All Pending ...360549372023-05-26 4:54:34308 days ago1685076874IN
0x20Ad6764...2bBCfa336
0 MATIC0.001608822.8227
Get Complaint360548952023-05-26 4:53:04308 days ago1685076784IN
0x20Ad6764...2bBCfa336
0 MATIC0.000149391.93999999
Get Complaint360548832023-05-26 4:52:40308 days ago1685076760IN
0x20Ad6764...2bBCfa336
0 MATIC0.000149391.94
Get All Pending ...360548552023-05-26 4:51:40308 days ago1685076700IN
0x20Ad6764...2bBCfa336
0 MATIC0.001105721.94
Get Complaint360548162023-05-26 4:50:18308 days ago1685076618IN
0x20Ad6764...2bBCfa336
0 MATIC0.000149391.94
Get All Pending ...360548012023-05-26 4:49:46308 days ago1685076586IN
0x20Ad6764...2bBCfa336
0 MATIC0.001149461.94
Get Complaint360547982023-05-26 4:49:38308 days ago1685076578IN
0x20Ad6764...2bBCfa336
0 MATIC0.000193561.94
Get All Complain...360547372023-05-26 4:47:30308 days ago1685076450IN
0x20Ad6764...2bBCfa336
0 MATIC0.001471441.94
Get Complaint360359132023-05-25 17:09:19308 days ago1685034559IN
0x20Ad6764...2bBCfa336
0 MATIC0.000306263.977
Get Complaint360359082023-05-25 17:09:09308 days ago1685034549IN
0x20Ad6764...2bBCfa336
0 MATIC0.00039683.977
Get Complaint360358972023-05-25 17:08:45308 days ago1685034525IN
0x20Ad6764...2bBCfa336
0 MATIC0.000281632.8227
Get All Complain...357815482023-05-19 10:04:49315 days ago1684490689IN
0x20Ad6764...2bBCfa336
0 MATIC0.002030332.6768496
Get All Complain...357814592023-05-19 10:01:41315 days ago1684490501IN
0x20Ad6764...2bBCfa336
0 MATIC0.001918692.52966886
Get All Complain...357814252023-05-19 10:00:29315 days ago1684490429IN
0x20Ad6764...2bBCfa336
0 MATIC0.040464853.35000001
Get Complaint357814012023-05-19 9:59:37315 days ago1684490377IN
0x20Ad6764...2bBCfa336
0 MATIC0.000186742.42500001
File Complaint357813872023-05-19 9:59:07315 days ago1684490347IN
0x20Ad6764...2bBCfa336
0 MATIC0.000850422.44414812
Get All Pending ...357806852023-05-19 9:34:15315 days ago1684488855IN
0x20Ad6764...2bBCfa336
0 MATIC0.001483612.42500001
Get Complaint357805722023-05-19 9:30:15315 days ago1684488615IN
0x20Ad6764...2bBCfa336
0 MATIC0.000186742.42500001
Get All Complain...357805452023-05-19 9:29:19315 days ago1684488559IN
0x20Ad6764...2bBCfa336
0 MATIC0.00105341.50000001
View all transactions

Parent Txn Hash Block From To Value
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Complaint

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 800 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 1 : PCMS.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

contract Complaint {
    address[] public officer;
    address public owner;
    uint256 public nextId;
    uint256[] public pendingApprovals;
    uint256[] public pendingResolutions;
    uint256[] public resolvedCases;

    constructor(address _officer) {
        owner = msg.sender;
        officer.push(_officer);
        officer.push(msg.sender);
        nextId = 1;
    }

    modifier onlyOwner() {
        require(
            msg.sender == owner,
            "You are not the owner of this smart contract"
        );
        _;
    }

    modifier onlyOfficer() {
        require(
            exists(msg.sender),
            "You are not registered officer of this smart contract"
        );
        _;
    }

    function exists(address sender) private view returns (bool) {
        for (uint i = 0; i < officer.length; i++) {
            if (officer[i] == sender) {
                return true;
            }
        }
    return false;
    }

    struct complaint {
        uint256 id;
        address complaintRegisteredBy;
        string title;
        string description;
        string date;
        string time;
        string place;
        string complaintFiledDate;
        string approvalRemark;
        string[] resolutionRemark;
        string[] resolutionDates;
        bool isApproved;
        bool isResolved;
        bool exists;
    }
    mapping(uint256 => complaint) public Complaints;

    event complaintFiled(
        uint256 id,
        address complaintRegisteredBy,
        string title
    );

    event pendingApprovalsEvent(
        complaint complaint
    );

    event pendingResolutionsEvent(
        complaint complaint
    );

    event pendingResolvedEvent(
        complaint complaint
    );

    event getAllComplaintsEvent(
        complaint complaint
    );

    event getComplaintEvent(
        complaint complaint
    );

    function getComplaint(uint256 id) public returns(complaint memory) {
        emit getComplaintEvent(Complaints[id]);
        return Complaints[id];
    }

    function getAllComplaints() public returns(complaint[] memory) {

        complaint[] memory allComplaints = new complaint[](nextId);

        for (uint256 i = 1; i < nextId; i++) {
            complaint storage c = Complaints[i];
            allComplaints[i-1] = c;
            emit getAllComplaintsEvent(c);
        }
        return allComplaints;
    } 

    function getAllPendingApprovalComplaints() public returns(complaint[] memory) {
        calcPendingApprovalIds();

        complaint[] memory allComplaints = new complaint[](pendingApprovals.length);

        for (uint256 i = 0; i < pendingApprovals.length; i++) {
            complaint storage c = Complaints[pendingApprovals[i]];
            allComplaints[i] = c;
            emit pendingApprovalsEvent(c);
        }
        return allComplaints;
    }

    function getAllResolvedComplaints() public returns(complaint[] memory) {
        calcResolvedIds();

        complaint[] memory allComplaints = new complaint[](resolvedCases.length);

        for (uint256 i = 0; i < resolvedCases.length; i++) {
            complaint storage c = Complaints[resolvedCases[i]];
            allComplaints[i] = c;
            emit pendingResolvedEvent(c);
        }
        return allComplaints;
    }

    function getAllPendingResolutionComplaints() public returns(complaint[] memory) {
        calcPendingResolutionIds();

        complaint[] memory allComplaints = new complaint[](pendingResolutions.length);

        for (uint256 i = 0; i < pendingResolutions.length; i++) {
            complaint storage c = Complaints[pendingResolutions[i]];
            allComplaints[i] = c;
            emit pendingResolutionsEvent(c);
        }
        return allComplaints;
    }

    function fileComplaint(string memory _title, string memory _description, string memory date, 
        string memory time, string memory place, string memory complaintFiledDate)
        public
    {
        complaint storage newComplaint = Complaints[nextId];
        newComplaint.id = nextId;
        newComplaint.complaintRegisteredBy = msg.sender;
        newComplaint.title = _title;
        newComplaint.description = _description;
        newComplaint.date = date;
        newComplaint.time = time;
        newComplaint.place = place;
        newComplaint.complaintFiledDate = complaintFiledDate;
        newComplaint.approvalRemark = "Pending Approval";
        newComplaint.resolutionRemark.push(string.concat( "By officer: ", "Pending Resolution"));
        newComplaint.resolutionDates.push(complaintFiledDate);
        newComplaint.isApproved = false;
        newComplaint.isResolved = false;
        newComplaint.exists = true;
        emit complaintFiled(nextId, msg.sender, _title);
        nextId++;
    }

    function approveComplaint(uint256 _id, string memory officerDetails, string memory date)
        public
        onlyOfficer
    {
        require(
            Complaints[_id].exists == true,
            "This complaint id does not exist"
        );
        require(
            Complaints[_id].isApproved == false,
            "Complaint is already approved"
        );
        Complaints[_id].isApproved = true;
        Complaints[_id].approvalRemark = officerDetails;
        Complaints[_id].resolutionRemark.push(string.concat( "By officer: ", "Investigation Started"));
        Complaints[_id].resolutionDates.push(date);
    }

    function discardComplaint(uint256 _id, string memory _approvalRemark)
        public
        onlyOfficer
    {
        require(
            Complaints[_id].exists == true,
            "This complaint id does not exist"
        );
        require(
            Complaints[_id].isApproved == false,
            "Complaint is already approved"
        );
        Complaints[_id].exists = false;
        Complaints[_id].isApproved = true;
        Complaints[_id].isResolved = true;
        Complaints[_id].approvalRemark = string.concat(
            "This complaint is rejected. Reason: ",
            _approvalRemark
        );
    }

    function resolveComplaintFromUser(uint256 _id, string memory _resolutionRemark, string memory date) public {
        require(
            Complaints[_id].exists == true,
            "This complaint id does not exist"
        );
        require(
            Complaints[_id].isApproved == true,
            "Complaint is not yet approved"
        );
        require(
            Complaints[_id].isResolved == false,
            "Complaint is already resolved"
        );
        Complaints[_id].resolutionRemark.push(string.concat( "By victim: ", _resolutionRemark));
        Complaints[_id].resolutionDates.push(date);
    }

    function resolveComplaint(uint256 _id, string memory _resolutionRemark, bool isOver, string memory date)
        public
        onlyOfficer
    {
        require(
            Complaints[_id].exists == true,
            "This complaint id does not exist"
        );
        require(
            Complaints[_id].isApproved == true,
            "Complaint is not yet approved"
        );
        require(
            Complaints[_id].isResolved == false,
            "Complaint is already resolved"
        );
        if (isOver) {
            Complaints[_id].isResolved = true;
        }
        Complaints[_id].resolutionRemark.push(string.concat( "By officer: ", _resolutionRemark));
        Complaints[_id].resolutionDates.push(date);
    }

    function calcPendingApprovalIds() public {
        delete pendingApprovals;
        for (uint256 i = 1; i < nextId; i++) {
            if (
                Complaints[i].isApproved == false &&
                Complaints[i].exists == true
            ) {
                pendingApprovals.push(Complaints[i].id);
            }
        }
    }

    function calcPendingResolutionIds() public {
        delete pendingResolutions;
        for (uint256 i = 1; i < nextId; i++) {
            if (
                Complaints[i].isResolved == false &&
                Complaints[i].isApproved == true &&
                Complaints[i].exists == true
            ) {
                pendingResolutions.push(Complaints[i].id);
            }
        }
    }

    function calcResolvedIds() public {
        delete resolvedCases;
        for (uint256 i = 1; i < nextId; i++) {
            if (Complaints[i].isResolved == true) {
                resolvedCases.push(Complaints[i].id);
            }
        }
    }

    function setOfficerAddress(address _officer) public onlyOwner {
        officer.push(_officer);
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 800
  },
  "evmVersion": "london",
  "remappings": [],
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_officer","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"address","name":"complaintRegisteredBy","type":"address"},{"indexed":false,"internalType":"string","name":"title","type":"string"}],"name":"complaintFiled","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"complaintRegisteredBy","type":"address"},{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"date","type":"string"},{"internalType":"string","name":"time","type":"string"},{"internalType":"string","name":"place","type":"string"},{"internalType":"string","name":"complaintFiledDate","type":"string"},{"internalType":"string","name":"approvalRemark","type":"string"},{"internalType":"string[]","name":"resolutionRemark","type":"string[]"},{"internalType":"string[]","name":"resolutionDates","type":"string[]"},{"internalType":"bool","name":"isApproved","type":"bool"},{"internalType":"bool","name":"isResolved","type":"bool"},{"internalType":"bool","name":"exists","type":"bool"}],"indexed":false,"internalType":"struct Complaint.complaint","name":"complaint","type":"tuple"}],"name":"getAllComplaintsEvent","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"complaintRegisteredBy","type":"address"},{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"date","type":"string"},{"internalType":"string","name":"time","type":"string"},{"internalType":"string","name":"place","type":"string"},{"internalType":"string","name":"complaintFiledDate","type":"string"},{"internalType":"string","name":"approvalRemark","type":"string"},{"internalType":"string[]","name":"resolutionRemark","type":"string[]"},{"internalType":"string[]","name":"resolutionDates","type":"string[]"},{"internalType":"bool","name":"isApproved","type":"bool"},{"internalType":"bool","name":"isResolved","type":"bool"},{"internalType":"bool","name":"exists","type":"bool"}],"indexed":false,"internalType":"struct Complaint.complaint","name":"complaint","type":"tuple"}],"name":"getComplaintEvent","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"complaintRegisteredBy","type":"address"},{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"date","type":"string"},{"internalType":"string","name":"time","type":"string"},{"internalType":"string","name":"place","type":"string"},{"internalType":"string","name":"complaintFiledDate","type":"string"},{"internalType":"string","name":"approvalRemark","type":"string"},{"internalType":"string[]","name":"resolutionRemark","type":"string[]"},{"internalType":"string[]","name":"resolutionDates","type":"string[]"},{"internalType":"bool","name":"isApproved","type":"bool"},{"internalType":"bool","name":"isResolved","type":"bool"},{"internalType":"bool","name":"exists","type":"bool"}],"indexed":false,"internalType":"struct Complaint.complaint","name":"complaint","type":"tuple"}],"name":"pendingApprovalsEvent","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"complaintRegisteredBy","type":"address"},{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"date","type":"string"},{"internalType":"string","name":"time","type":"string"},{"internalType":"string","name":"place","type":"string"},{"internalType":"string","name":"complaintFiledDate","type":"string"},{"internalType":"string","name":"approvalRemark","type":"string"},{"internalType":"string[]","name":"resolutionRemark","type":"string[]"},{"internalType":"string[]","name":"resolutionDates","type":"string[]"},{"internalType":"bool","name":"isApproved","type":"bool"},{"internalType":"bool","name":"isResolved","type":"bool"},{"internalType":"bool","name":"exists","type":"bool"}],"indexed":false,"internalType":"struct Complaint.complaint","name":"complaint","type":"tuple"}],"name":"pendingResolutionsEvent","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"complaintRegisteredBy","type":"address"},{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"date","type":"string"},{"internalType":"string","name":"time","type":"string"},{"internalType":"string","name":"place","type":"string"},{"internalType":"string","name":"complaintFiledDate","type":"string"},{"internalType":"string","name":"approvalRemark","type":"string"},{"internalType":"string[]","name":"resolutionRemark","type":"string[]"},{"internalType":"string[]","name":"resolutionDates","type":"string[]"},{"internalType":"bool","name":"isApproved","type":"bool"},{"internalType":"bool","name":"isResolved","type":"bool"},{"internalType":"bool","name":"exists","type":"bool"}],"indexed":false,"internalType":"struct Complaint.complaint","name":"complaint","type":"tuple"}],"name":"pendingResolvedEvent","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"Complaints","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"complaintRegisteredBy","type":"address"},{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"date","type":"string"},{"internalType":"string","name":"time","type":"string"},{"internalType":"string","name":"place","type":"string"},{"internalType":"string","name":"complaintFiledDate","type":"string"},{"internalType":"string","name":"approvalRemark","type":"string"},{"internalType":"bool","name":"isApproved","type":"bool"},{"internalType":"bool","name":"isResolved","type":"bool"},{"internalType":"bool","name":"exists","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"string","name":"officerDetails","type":"string"},{"internalType":"string","name":"date","type":"string"}],"name":"approveComplaint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"calcPendingApprovalIds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"calcPendingResolutionIds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"calcResolvedIds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"string","name":"_approvalRemark","type":"string"}],"name":"discardComplaint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_title","type":"string"},{"internalType":"string","name":"_description","type":"string"},{"internalType":"string","name":"date","type":"string"},{"internalType":"string","name":"time","type":"string"},{"internalType":"string","name":"place","type":"string"},{"internalType":"string","name":"complaintFiledDate","type":"string"}],"name":"fileComplaint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllComplaints","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"complaintRegisteredBy","type":"address"},{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"date","type":"string"},{"internalType":"string","name":"time","type":"string"},{"internalType":"string","name":"place","type":"string"},{"internalType":"string","name":"complaintFiledDate","type":"string"},{"internalType":"string","name":"approvalRemark","type":"string"},{"internalType":"string[]","name":"resolutionRemark","type":"string[]"},{"internalType":"string[]","name":"resolutionDates","type":"string[]"},{"internalType":"bool","name":"isApproved","type":"bool"},{"internalType":"bool","name":"isResolved","type":"bool"},{"internalType":"bool","name":"exists","type":"bool"}],"internalType":"struct Complaint.complaint[]","name":"","type":"tuple[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllPendingApprovalComplaints","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"complaintRegisteredBy","type":"address"},{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"date","type":"string"},{"internalType":"string","name":"time","type":"string"},{"internalType":"string","name":"place","type":"string"},{"internalType":"string","name":"complaintFiledDate","type":"string"},{"internalType":"string","name":"approvalRemark","type":"string"},{"internalType":"string[]","name":"resolutionRemark","type":"string[]"},{"internalType":"string[]","name":"resolutionDates","type":"string[]"},{"internalType":"bool","name":"isApproved","type":"bool"},{"internalType":"bool","name":"isResolved","type":"bool"},{"internalType":"bool","name":"exists","type":"bool"}],"internalType":"struct Complaint.complaint[]","name":"","type":"tuple[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllPendingResolutionComplaints","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"complaintRegisteredBy","type":"address"},{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"date","type":"string"},{"internalType":"string","name":"time","type":"string"},{"internalType":"string","name":"place","type":"string"},{"internalType":"string","name":"complaintFiledDate","type":"string"},{"internalType":"string","name":"approvalRemark","type":"string"},{"internalType":"string[]","name":"resolutionRemark","type":"string[]"},{"internalType":"string[]","name":"resolutionDates","type":"string[]"},{"internalType":"bool","name":"isApproved","type":"bool"},{"internalType":"bool","name":"isResolved","type":"bool"},{"internalType":"bool","name":"exists","type":"bool"}],"internalType":"struct Complaint.complaint[]","name":"","type":"tuple[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllResolvedComplaints","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"complaintRegisteredBy","type":"address"},{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"date","type":"string"},{"internalType":"string","name":"time","type":"string"},{"internalType":"string","name":"place","type":"string"},{"internalType":"string","name":"complaintFiledDate","type":"string"},{"internalType":"string","name":"approvalRemark","type":"string"},{"internalType":"string[]","name":"resolutionRemark","type":"string[]"},{"internalType":"string[]","name":"resolutionDates","type":"string[]"},{"internalType":"bool","name":"isApproved","type":"bool"},{"internalType":"bool","name":"isResolved","type":"bool"},{"internalType":"bool","name":"exists","type":"bool"}],"internalType":"struct Complaint.complaint[]","name":"","type":"tuple[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getComplaint","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"complaintRegisteredBy","type":"address"},{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"date","type":"string"},{"internalType":"string","name":"time","type":"string"},{"internalType":"string","name":"place","type":"string"},{"internalType":"string","name":"complaintFiledDate","type":"string"},{"internalType":"string","name":"approvalRemark","type":"string"},{"internalType":"string[]","name":"resolutionRemark","type":"string[]"},{"internalType":"string[]","name":"resolutionDates","type":"string[]"},{"internalType":"bool","name":"isApproved","type":"bool"},{"internalType":"bool","name":"isResolved","type":"bool"},{"internalType":"bool","name":"exists","type":"bool"}],"internalType":"struct Complaint.complaint","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nextId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"officer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pendingApprovals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pendingResolutions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"string","name":"_resolutionRemark","type":"string"},{"internalType":"bool","name":"isOver","type":"bool"},{"internalType":"string","name":"date","type":"string"}],"name":"resolveComplaint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"string","name":"_resolutionRemark","type":"string"},{"internalType":"string","name":"date","type":"string"}],"name":"resolveComplaintFromUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"resolvedCases","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_officer","type":"address"}],"name":"setOfficerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162004435380380620044358339810160408190526200003491620000af565b60018054336001600160a01b0319918216811783556000805480850182558180527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563908101805485166001600160a01b03979097169690961790955580548085019091559093018054909116909217909155600255620000e1565b600060208284031215620000c257600080fd5b81516001600160a01b0381168114620000da57600080fd5b9392505050565b61434480620000f16000396000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c8063686b656e116100d8578063d37bc08b1161008c578063eb89309b11610066578063eb89309b146102e9578063ecb722f7146102f1578063fecc10211461030457600080fd5b8063d37bc08b146102a3578063dee8ae43146102b6578063e5289608146102d657600080fd5b80639f2b37b0116100bd5780639f2b37b01461025d578063b09cc42714610288578063cc9116351461029b57600080fd5b8063686b656e1461021f5780638da5cb5b1461023257600080fd5b806343802b771161012f5780634de1c8c3116101145780634de1c8c3146101ed57806354b6f29e1461020e57806361b8ce8c1461021657600080fd5b806343802b77146101d25780634b464e53146101da57600080fd5b8063346fed1011610160578063346fed10146101a45780633b1a6553146101ac5780633c5f15e7146101bf57600080fd5b80630dac95391461017c5780632071be7f1461019a575b600080fd5b610184610317565b60405161019191906139dc565b60405180910390f35b6101a2610a12565b005b6101a2610aa4565b6101a26101ba366004613ae1565b610b7a565b6101a26101cd366004613b4e565b610d41565b610184610e1d565b6101a26101e8366004613b7e565b611537565b6102006101fb366004613c73565b611711565b604051908152602001610191565b610184611732565b61020060025481565b61020061022d366004613c73565b611e4c565b600154610245906001600160a01b031681565b6040516001600160a01b039091168152602001610191565b61027061026b366004613c73565b611e5c565b6040516101919c9b9a99989796959493929190613c8c565b6101a2610296366004613d61565b612281565b6101a2612429565b6101a26102b1366004613ae1565b6124d8565b6102c96102c4366004613c73565b6126aa565b6040516101919190613da8565b6101a26102e4366004613dbb565b612d18565b610184612f7b565b6102456102ff366004613c73565b613695565b610200610312366004613c73565b6136bf565b6060600060025467ffffffffffffffff81111561033657610336613a3e565b60405190808252806020026020018201604052801561036f57816020015b61035c613738565b8152602001906001900390816103545790505b50905060015b600254811015610a0c5760008181526006602090815260409182902082516101c0810184528154815260018201546001600160a01b0316928101929092526002810180549193849290840191906103cb90613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546103f790613e42565b80156104445780601f1061041957610100808354040283529160200191610444565b820191906000526020600020905b81548152906001019060200180831161042757829003601f168201915b5050505050815260200160038201805461045d90613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461048990613e42565b80156104d65780601f106104ab576101008083540402835291602001916104d6565b820191906000526020600020905b8154815290600101906020018083116104b957829003601f168201915b505050505081526020016004820180546104ef90613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461051b90613e42565b80156105685780601f1061053d57610100808354040283529160200191610568565b820191906000526020600020905b81548152906001019060200180831161054b57829003601f168201915b5050505050815260200160058201805461058190613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546105ad90613e42565b80156105fa5780601f106105cf576101008083540402835291602001916105fa565b820191906000526020600020905b8154815290600101906020018083116105dd57829003601f168201915b5050505050815260200160068201805461061390613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461063f90613e42565b801561068c5780601f106106615761010080835404028352916020019161068c565b820191906000526020600020905b81548152906001019060200180831161066f57829003601f168201915b505050505081526020016007820180546106a590613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546106d190613e42565b801561071e5780601f106106f35761010080835404028352916020019161071e565b820191906000526020600020905b81548152906001019060200180831161070157829003601f168201915b5050505050815260200160088201805461073790613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461076390613e42565b80156107b05780601f10610785576101008083540402835291602001916107b0565b820191906000526020600020905b81548152906001019060200180831161079357829003601f168201915b5050505050815260200160098201805480602002602001604051908101604052809291908181526020016000905b8282101561088a5783829060005260206000200180546107fd90613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461082990613e42565b80156108765780601f1061084b57610100808354040283529160200191610876565b820191906000526020600020905b81548152906001019060200180831161085957829003601f168201915b5050505050815260200190600101906107de565b505050508152602001600a8201805480602002602001604051908101604052809291908181526020016000905b828210156109635783829060005260206000200180546108d690613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461090290613e42565b801561094f5780601f106109245761010080835404028352916020019161094f565b820191906000526020600020905b81548152906001019060200180831161093257829003601f168201915b5050505050815260200190600101906108b7565b50505090825250600b919091015460ff80821615156020840152610100820481161515604084015262010000909104161515606090910152836109a7600185613e8c565b815181106109b7576109b7613ea5565b60200260200101819052507fa2201c7e4ef4abcd8b6c640fedb1021bbbb5103b62ad2486f9bb85f8ae49ecc9816040516109f191906140d8565b60405180910390a15080610a04816140eb565b915050610375565b50919050565b610a1e600560006137b6565b60015b600254811015610aa1576000818152600660205260409020600b0154610100900460ff161515600103610a8f576000818152600660205260408120546005805460018101825592527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0909101555b80610a99816140eb565b915050610a21565b50565b610ab0600460006137b6565b60015b600254811015610aa1576000818152600660205260409020600b0154610100900460ff16158015610afa57506000818152600660205260409020600b015460ff1615156001145b8015610b2257506000818152600660205260409020600b015462010000900460ff1615156001145b15610b68576000818152600660205260408120546004805460018101825592527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b909101555b80610b72816140eb565b915050610ab3565b6000838152600660205260409020600b015462010000900460ff161515600114610beb5760405162461bcd60e51b815260206004820181905260248201527f5468697320636f6d706c61696e7420696420646f6573206e6f7420657869737460448201526064015b60405180910390fd5b6000838152600660205260409020600b015460ff161515600114610c515760405162461bcd60e51b815260206004820152601d60248201527f436f6d706c61696e74206973206e6f742079657420617070726f7665640000006044820152606401610be2565b6000838152600660205260409020600b0154610100900460ff1615610cb85760405162461bcd60e51b815260206004820152601d60248201527f436f6d706c61696e7420697320616c7265616479207265736f6c7665640000006044820152606401610be2565b6006600084815260200190815260200160002060090182604051602001610cdf9190614104565b60408051601f1981840301815291905281546001810183556000928352602090922090910190610d0f9082614197565b5060008381526006602090815260408220600a018054600181018255908352912001610d3b8282614197565b50505050565b6001546001600160a01b03163314610dc15760405162461bcd60e51b815260206004820152602c60248201527f596f7520617265206e6f7420746865206f776e6572206f66207468697320736d60448201527f61727420636f6e747261637400000000000000000000000000000000000000006064820152608401610be2565b600080546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6060610e27610aa4565b60045460009067ffffffffffffffff811115610e4557610e45613a3e565b604051908082528060200260200182016040528015610e7e57816020015b610e6b613738565b815260200190600190039081610e635790505b50905060005b600454811015610a0c5760006006600060048481548110610ea757610ea7613ea5565b60009182526020808320909101548352828101939093526040918201902081516101c0810183528154815260018201546001600160a01b0316938101939093526002810180549194508492840191610efe90613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054610f2a90613e42565b8015610f775780601f10610f4c57610100808354040283529160200191610f77565b820191906000526020600020905b815481529060010190602001808311610f5a57829003601f168201915b50505050508152602001600382018054610f9090613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054610fbc90613e42565b80156110095780601f10610fde57610100808354040283529160200191611009565b820191906000526020600020905b815481529060010190602001808311610fec57829003601f168201915b5050505050815260200160048201805461102290613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461104e90613e42565b801561109b5780601f106110705761010080835404028352916020019161109b565b820191906000526020600020905b81548152906001019060200180831161107e57829003601f168201915b505050505081526020016005820180546110b490613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546110e090613e42565b801561112d5780601f106111025761010080835404028352916020019161112d565b820191906000526020600020905b81548152906001019060200180831161111057829003601f168201915b5050505050815260200160068201805461114690613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461117290613e42565b80156111bf5780601f10611194576101008083540402835291602001916111bf565b820191906000526020600020905b8154815290600101906020018083116111a257829003601f168201915b505050505081526020016007820180546111d890613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461120490613e42565b80156112515780601f1061122657610100808354040283529160200191611251565b820191906000526020600020905b81548152906001019060200180831161123457829003601f168201915b5050505050815260200160088201805461126a90613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461129690613e42565b80156112e35780601f106112b8576101008083540402835291602001916112e3565b820191906000526020600020905b8154815290600101906020018083116112c657829003601f168201915b5050505050815260200160098201805480602002602001604051908101604052809291908181526020016000905b828210156113bd57838290600052602060002001805461133090613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461135c90613e42565b80156113a95780601f1061137e576101008083540402835291602001916113a9565b820191906000526020600020905b81548152906001019060200180831161138c57829003601f168201915b505050505081526020019060010190611311565b505050508152602001600a8201805480602002602001604051908101604052809291908181526020016000905b8282101561149657838290600052602060002001805461140990613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461143590613e42565b80156114825780601f1061145757610100808354040283529160200191611482565b820191906000526020600020905b81548152906001019060200180831161146557829003601f168201915b5050505050815260200190600101906113ea565b50505090825250600b919091015460ff8082161515602084015261010082048116151560408401526201000090910416151560609091015283518490849081106114e2576114e2613ea5565b60200260200101819052507fdafe1e5dd6afe5e3b27c1378f6acaa9621d78858ae2b7e9920de18d59cceaedc8160405161151c91906140d8565b60405180910390a1508061152f816140eb565b915050610e84565b60028054600081815260066020526040902090815560018101805473ffffffffffffffffffffffffffffffffffffffff19163317905590810161157a8882614197565b50600381016115898782614197565b50600481016115988682614197565b50600581016115a78582614197565b50600681016115b68482614197565b50600781016115c58382614197565b5060408051808201909152601081527f50656e64696e6720417070726f76616c00000000000000000000000000000000602082015260088201906116099082614197565b506040516b0213c9037b33334b1b2b91d160a51b60208201527f50656e64696e67205265736f6c7574696f6e0000000000000000000000000000602c8201526009820190603e0160408051601f19818403018152919052815460018101835560009283526020909220909101906116809082614197565b50600a8101805460018101825560009182526020909120016116a28382614197565b50600b8101805462ffffff1916620100001790556002546040517fdeb4e2a7c73777ecde924d94281fa19efd33da9ff6f4e0c7ede16fa01fa3051d916116eb9133908b90614257565b60405180910390a160028054906000611703836140eb565b919050555050505050505050565b6005818154811061172157600080fd5b600091825260209091200154905081565b606061173c610a12565b60055460009067ffffffffffffffff81111561175a5761175a613a3e565b60405190808252806020026020018201604052801561179357816020015b611780613738565b8152602001906001900390816117785790505b50905060005b600554811015610a0c57600060066000600584815481106117bc576117bc613ea5565b60009182526020808320909101548352828101939093526040918201902081516101c0810183528154815260018201546001600160a01b031693810193909352600281018054919450849284019161181390613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461183f90613e42565b801561188c5780601f106118615761010080835404028352916020019161188c565b820191906000526020600020905b81548152906001019060200180831161186f57829003601f168201915b505050505081526020016003820180546118a590613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546118d190613e42565b801561191e5780601f106118f35761010080835404028352916020019161191e565b820191906000526020600020905b81548152906001019060200180831161190157829003601f168201915b5050505050815260200160048201805461193790613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461196390613e42565b80156119b05780601f10611985576101008083540402835291602001916119b0565b820191906000526020600020905b81548152906001019060200180831161199357829003601f168201915b505050505081526020016005820180546119c990613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546119f590613e42565b8015611a425780601f10611a1757610100808354040283529160200191611a42565b820191906000526020600020905b815481529060010190602001808311611a2557829003601f168201915b50505050508152602001600682018054611a5b90613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054611a8790613e42565b8015611ad45780601f10611aa957610100808354040283529160200191611ad4565b820191906000526020600020905b815481529060010190602001808311611ab757829003601f168201915b50505050508152602001600782018054611aed90613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054611b1990613e42565b8015611b665780601f10611b3b57610100808354040283529160200191611b66565b820191906000526020600020905b815481529060010190602001808311611b4957829003601f168201915b50505050508152602001600882018054611b7f90613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054611bab90613e42565b8015611bf85780601f10611bcd57610100808354040283529160200191611bf8565b820191906000526020600020905b815481529060010190602001808311611bdb57829003601f168201915b5050505050815260200160098201805480602002602001604051908101604052809291908181526020016000905b82821015611cd2578382906000526020600020018054611c4590613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054611c7190613e42565b8015611cbe5780601f10611c9357610100808354040283529160200191611cbe565b820191906000526020600020905b815481529060010190602001808311611ca157829003601f168201915b505050505081526020019060010190611c26565b505050508152602001600a8201805480602002602001604051908101604052809291908181526020016000905b82821015611dab578382906000526020600020018054611d1e90613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054611d4a90613e42565b8015611d975780601f10611d6c57610100808354040283529160200191611d97565b820191906000526020600020905b815481529060010190602001808311611d7a57829003601f168201915b505050505081526020019060010190611cff565b50505090825250600b919091015460ff808216151560208401526101008204811615156040840152620100009091041615156060909101528351849084908110611df757611df7613ea5565b60200260200101819052507ff9df4e8ed50448d051b537ad6de26dc7590f37d7708b92f384b42557def7704e81604051611e3191906140d8565b60405180910390a15080611e44816140eb565b915050611799565b6003818154811061172157600080fd5b60066020526000908152604090208054600182015460028301805492936001600160a01b0390921692611e8e90613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054611eba90613e42565b8015611f075780601f10611edc57610100808354040283529160200191611f07565b820191906000526020600020905b815481529060010190602001808311611eea57829003601f168201915b505050505090806003018054611f1c90613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054611f4890613e42565b8015611f955780601f10611f6a57610100808354040283529160200191611f95565b820191906000526020600020905b815481529060010190602001808311611f7857829003601f168201915b505050505090806004018054611faa90613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054611fd690613e42565b80156120235780601f10611ff857610100808354040283529160200191612023565b820191906000526020600020905b81548152906001019060200180831161200657829003601f168201915b50505050509080600501805461203890613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461206490613e42565b80156120b15780601f10612086576101008083540402835291602001916120b1565b820191906000526020600020905b81548152906001019060200180831161209457829003601f168201915b5050505050908060060180546120c690613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546120f290613e42565b801561213f5780601f106121145761010080835404028352916020019161213f565b820191906000526020600020905b81548152906001019060200180831161212257829003601f168201915b50505050509080600701805461215490613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461218090613e42565b80156121cd5780601f106121a2576101008083540402835291602001916121cd565b820191906000526020600020905b8154815290600101906020018083116121b057829003601f168201915b5050505050908060080180546121e290613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461220e90613e42565b801561225b5780601f106122305761010080835404028352916020019161225b565b820191906000526020600020905b81548152906001019060200180831161223e57829003601f168201915b505050600b909301549192505060ff80821691610100810482169162010000909104168c565b61228a336136cf565b6122fc5760405162461bcd60e51b815260206004820152603560248201527f596f7520617265206e6f742072656769737465726564206f666669636572206f60448201527f66207468697320736d61727420636f6e747261637400000000000000000000006064820152608401610be2565b6000828152600660205260409020600b015462010000900460ff1615156001146123685760405162461bcd60e51b815260206004820181905260248201527f5468697320636f6d706c61696e7420696420646f6573206e6f742065786973746044820152606401610be2565b6000828152600660205260409020600b015460ff16156123ca5760405162461bcd60e51b815260206004820152601d60248201527f436f6d706c61696e7420697320616c726561647920617070726f7665640000006044820152606401610be2565b600082815260066020908152604091829020600b01805462ffffff191661010117905590516123fb91839101614288565b60408051601f198184030181529181526000848152600660205220600801906124249082614197565b505050565b612435600360006137b6565b60015b600254811015610aa1576000818152600660205260409020600b015460ff1615801561248057506000818152600660205260409020600b015462010000900460ff1615156001145b156124c6576000818152600660205260408120546003805460018101825592527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b909101555b806124d0816140eb565b915050612438565b6124e1336136cf565b6125535760405162461bcd60e51b815260206004820152603560248201527f596f7520617265206e6f742072656769737465726564206f666669636572206f60448201527f66207468697320736d61727420636f6e747261637400000000000000000000006064820152608401610be2565b6000838152600660205260409020600b015462010000900460ff1615156001146125bf5760405162461bcd60e51b815260206004820181905260248201527f5468697320636f6d706c61696e7420696420646f6573206e6f742065786973746044820152606401610be2565b6000838152600660205260409020600b015460ff16156126215760405162461bcd60e51b815260206004820152601d60248201527f436f6d706c61696e7420697320616c726561647920617070726f7665640000006044820152606401610be2565b6000838152600660205260409020600b8101805460ff1916600117905560080161264b8382614197565b5060066000848152602001908152602001600020600901604051602001610cdf906b0213c9037b33334b1b2b91d160a51b81527f496e7665737469676174696f6e20537461727465640000000000000000000000600c82015260210190565b6126b2613738565b6000828152600660205260409081902090517fb1e45cba07690de17a99511799158b69c37226498b838555b5c51c6448030467916126ef916140d8565b60405180910390a160008281526006602090815260409182902082516101c0810184528154815260018201546001600160a01b031692810192909252600281018054929391929184019161274290613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461276e90613e42565b80156127bb5780601f10612790576101008083540402835291602001916127bb565b820191906000526020600020905b81548152906001019060200180831161279e57829003601f168201915b505050505081526020016003820180546127d490613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461280090613e42565b801561284d5780601f106128225761010080835404028352916020019161284d565b820191906000526020600020905b81548152906001019060200180831161283057829003601f168201915b5050505050815260200160048201805461286690613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461289290613e42565b80156128df5780601f106128b4576101008083540402835291602001916128df565b820191906000526020600020905b8154815290600101906020018083116128c257829003601f168201915b505050505081526020016005820180546128f890613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461292490613e42565b80156129715780601f1061294657610100808354040283529160200191612971565b820191906000526020600020905b81548152906001019060200180831161295457829003601f168201915b5050505050815260200160068201805461298a90613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546129b690613e42565b8015612a035780601f106129d857610100808354040283529160200191612a03565b820191906000526020600020905b8154815290600101906020018083116129e657829003601f168201915b50505050508152602001600782018054612a1c90613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054612a4890613e42565b8015612a955780601f10612a6a57610100808354040283529160200191612a95565b820191906000526020600020905b815481529060010190602001808311612a7857829003601f168201915b50505050508152602001600882018054612aae90613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054612ada90613e42565b8015612b275780601f10612afc57610100808354040283529160200191612b27565b820191906000526020600020905b815481529060010190602001808311612b0a57829003601f168201915b5050505050815260200160098201805480602002602001604051908101604052809291908181526020016000905b82821015612c01578382906000526020600020018054612b7490613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054612ba090613e42565b8015612bed5780601f10612bc257610100808354040283529160200191612bed565b820191906000526020600020905b815481529060010190602001808311612bd057829003601f168201915b505050505081526020019060010190612b55565b505050508152602001600a8201805480602002602001604051908101604052809291908181526020016000905b82821015612cda578382906000526020600020018054612c4d90613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054612c7990613e42565b8015612cc65780601f10612c9b57610100808354040283529160200191612cc6565b820191906000526020600020905b815481529060010190602001808311612ca957829003601f168201915b505050505081526020019060010190612c2e565b50505090825250600b919091015460ff8082161515602084015261010082048116151560408401526201000090910416151560609091015292915050565b612d21336136cf565b612d935760405162461bcd60e51b815260206004820152603560248201527f596f7520617265206e6f742072656769737465726564206f666669636572206f60448201527f66207468697320736d61727420636f6e747261637400000000000000000000006064820152608401610be2565b6000848152600660205260409020600b015462010000900460ff161515600114612dff5760405162461bcd60e51b815260206004820181905260248201527f5468697320636f6d706c61696e7420696420646f6573206e6f742065786973746044820152606401610be2565b6000848152600660205260409020600b015460ff161515600114612e655760405162461bcd60e51b815260206004820152601d60248201527f436f6d706c61696e74206973206e6f742079657420617070726f7665640000006044820152606401610be2565b6000848152600660205260409020600b0154610100900460ff1615612ecc5760405162461bcd60e51b815260206004820152601d60248201527f436f6d706c61696e7420697320616c7265616479207265736f6c7665640000006044820152606401610be2565b8115612ef1576000848152600660205260409020600b01805461ff0019166101001790555b6006600085815260200190815260200160002060090183604051602001612f1891906142da565b60408051601f1981840301815291905281546001810183556000928352602090922090910190612f489082614197565b5060008481526006602090815260408220600a018054600181018255908352912001612f748282614197565b5050505050565b6060612f85612429565b60035460009067ffffffffffffffff811115612fa357612fa3613a3e565b604051908082528060200260200182016040528015612fdc57816020015b612fc9613738565b815260200190600190039081612fc15790505b50905060005b600354811015610a0c576000600660006003848154811061300557613005613ea5565b60009182526020808320909101548352828101939093526040918201902081516101c0810183528154815260018201546001600160a01b031693810193909352600281018054919450849284019161305c90613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461308890613e42565b80156130d55780601f106130aa576101008083540402835291602001916130d5565b820191906000526020600020905b8154815290600101906020018083116130b857829003601f168201915b505050505081526020016003820180546130ee90613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461311a90613e42565b80156131675780601f1061313c57610100808354040283529160200191613167565b820191906000526020600020905b81548152906001019060200180831161314a57829003601f168201915b5050505050815260200160048201805461318090613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546131ac90613e42565b80156131f95780601f106131ce576101008083540402835291602001916131f9565b820191906000526020600020905b8154815290600101906020018083116131dc57829003601f168201915b5050505050815260200160058201805461321290613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461323e90613e42565b801561328b5780601f106132605761010080835404028352916020019161328b565b820191906000526020600020905b81548152906001019060200180831161326e57829003601f168201915b505050505081526020016006820180546132a490613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546132d090613e42565b801561331d5780601f106132f25761010080835404028352916020019161331d565b820191906000526020600020905b81548152906001019060200180831161330057829003601f168201915b5050505050815260200160078201805461333690613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461336290613e42565b80156133af5780601f10613384576101008083540402835291602001916133af565b820191906000526020600020905b81548152906001019060200180831161339257829003601f168201915b505050505081526020016008820180546133c890613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546133f490613e42565b80156134415780601f1061341657610100808354040283529160200191613441565b820191906000526020600020905b81548152906001019060200180831161342457829003601f168201915b5050505050815260200160098201805480602002602001604051908101604052809291908181526020016000905b8282101561351b57838290600052602060002001805461348e90613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546134ba90613e42565b80156135075780601f106134dc57610100808354040283529160200191613507565b820191906000526020600020905b8154815290600101906020018083116134ea57829003601f168201915b50505050508152602001906001019061346f565b505050508152602001600a8201805480602002602001604051908101604052809291908181526020016000905b828210156135f457838290600052602060002001805461356790613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461359390613e42565b80156135e05780601f106135b5576101008083540402835291602001916135e0565b820191906000526020600020905b8154815290600101906020018083116135c357829003601f168201915b505050505081526020019060010190613548565b50505090825250600b919091015460ff80821615156020840152610100820481161515604084015262010000909104161515606090910152835184908490811061364057613640613ea5565b60200260200101819052507fc3d5582c8b448fbd235c9b74919e86814e69ed7c5de3014fa32dc2c0b1f238ed8160405161367a91906140d8565b60405180910390a1508061368d816140eb565b915050612fe2565b600081815481106136a557600080fd5b6000918252602090912001546001600160a01b0316905081565b6004818154811061172157600080fd5b6000805b60005481101561372f57826001600160a01b0316600082815481106136fa576136fa613ea5565b6000918252602090912001546001600160a01b03160361371d5750600192915050565b80613727816140eb565b9150506136d3565b50600092915050565b604051806101c001604052806000815260200160006001600160a01b031681526020016060815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081526020016000151581526020016000151581526020016000151581525090565b5080546000825590600052602060002090810190610aa191905b808211156137e457600081556001016137d0565b5090565b60005b838110156138035781810151838201526020016137eb565b50506000910152565b600081518084526138248160208601602086016137e8565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b8481101561388357601f1986840301895261387183835161380c565b98840198925090830190600101613855565b5090979650505050505050565b60006101c08251845260208301516138b360208601826001600160a01b03169052565b5060408301518160408601526138cb8286018261380c565b915050606083015184820360608601526138e5828261380c565b915050608083015184820360808601526138ff828261380c565b91505060a083015184820360a0860152613919828261380c565b91505060c083015184820360c0860152613933828261380c565b91505060e083015184820360e086015261394d828261380c565b9150506101008084015185830382870152613968838261380c565b9250505061012080840151858303828701526139848382613838565b9250505061014080840151858303828701526139a08382613838565b92505050610160808401516139b88287018215159052565b5050610180838101511515908501526101a092830151151592909301919091525090565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613a3157603f19888603018452613a1f858351613890565b94509285019290850190600101613a03565b5092979650505050505050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112613a6557600080fd5b813567ffffffffffffffff80821115613a8057613a80613a3e565b604051601f8301601f19908116603f01168101908282118183101715613aa857613aa8613a3e565b81604052838152866020858801011115613ac157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215613af657600080fd5b83359250602084013567ffffffffffffffff80821115613b1557600080fd5b613b2187838801613a54565b93506040860135915080821115613b3757600080fd5b50613b4486828701613a54565b9150509250925092565b600060208284031215613b6057600080fd5b81356001600160a01b0381168114613b7757600080fd5b9392505050565b60008060008060008060c08789031215613b9757600080fd5b863567ffffffffffffffff80821115613baf57600080fd5b613bbb8a838b01613a54565b97506020890135915080821115613bd157600080fd5b613bdd8a838b01613a54565b96506040890135915080821115613bf357600080fd5b613bff8a838b01613a54565b95506060890135915080821115613c1557600080fd5b613c218a838b01613a54565b94506080890135915080821115613c3757600080fd5b613c438a838b01613a54565b935060a0890135915080821115613c5957600080fd5b50613c6689828a01613a54565b9150509295509295509295565b600060208284031215613c8557600080fd5b5035919050565b8c81526001600160a01b038c1660208201526000610180806040840152613cb58184018e61380c565b90508281036060840152613cc9818d61380c565b90508281036080840152613cdd818c61380c565b905082810360a0840152613cf1818b61380c565b905082810360c0840152613d05818a61380c565b905082810360e0840152613d19818961380c565b9050828103610100840152613d2e818861380c565b915050613d4061012083018615159052565b921515610140820152901515610160909101529a9950505050505050505050565b60008060408385031215613d7457600080fd5b82359150602083013567ffffffffffffffff811115613d9257600080fd5b613d9e85828601613a54565b9150509250929050565b602081526000613b776020830184613890565b60008060008060808587031215613dd157600080fd5b84359350602085013567ffffffffffffffff80821115613df057600080fd5b613dfc88838901613a54565b9450604087013591508115158214613e1357600080fd5b90925060608601359080821115613e2957600080fd5b50613e3687828801613a54565b91505092959194509250565b600181811c90821680613e5657607f821691505b602082108103610a0c57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115613e9f57613e9f613e76565b92915050565b634e487b7160e01b600052603260045260246000fd5b60008154613ec881613e42565b808552602060018381168015613ee55760018114613eff57613f2d565b60ff1985168884015283151560051b880183019550613f2d565b866000528260002060005b85811015613f255781548a8201860152908301908401613f0a565b890184019650505b505050505092915050565b600081548084526020808501808196508360051b81019150856000528260002060005b85811015613f84578284038952613f728483613ebb565b98850198935060019182019101613f5b565b5091979650505050505050565b60006101c082548452613fae60018401546001600160a01b031690565b6001600160a01b0316602085015260408401819052613fd281850160028501613ebb565b90508381036060850152613fe98160038501613ebb565b905083810360808501526140008160048501613ebb565b905083810360a08501526140178160058501613ebb565b905083810360c085015261402e8160068501613ebb565b905083810360e08501526140458160078501613ebb565b905083810361010085015261405d8160088501613ebb565b90508381036101208501526140758160098501613f38565b905083810361014085015261408d81600a8501613f38565b9050600b8301546140a6610160860160ff831615159052565b6140bb610180860160ff8360081c1615159052565b6140d06101a0860160ff8360101c1615159052565b509392505050565b602081526000613b776020830184613f91565b6000600182016140fd576140fd613e76565b5060010190565b7f42792076696374696d3a2000000000000000000000000000000000000000000081526000825161413c81600b8501602087016137e8565b91909101600b0192915050565b601f82111561242457600081815260208120601f850160051c810160208610156141705750805b601f850160051c820191505b8181101561418f5782815560010161417c565b505050505050565b815167ffffffffffffffff8111156141b1576141b1613a3e565b6141c5816141bf8454613e42565b84614149565b602080601f8311600181146141fa57600084156141e25750858301515b600019600386901b1c1916600185901b17855561418f565b600085815260208120601f198616915b828110156142295788860151825594840194600190910190840161420a565b50858210156142475787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8381526001600160a01b038316602082015260606040820152600061427f606083018461380c565b95945050505050565b7f5468697320636f6d706c61696e742069732072656a65637465642e2052656173815263037b71d160e51b6020820152600082516142cd8160248501602087016137e8565b9190910160240192915050565b6b0213c9037b33334b1b2b91d160a51b81526000825161430181600c8501602087016137e8565b91909101600c019291505056fea2646970667358221220b1ddb208dc69080f52ce50cf74370fd03f8ed8318665b6104c61795b6585857564736f6c6343000811003300000000000000000000000081f6140511252d9bccf6dab7e4dd6d9bcb220622

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101775760003560e01c8063686b656e116100d8578063d37bc08b1161008c578063eb89309b11610066578063eb89309b146102e9578063ecb722f7146102f1578063fecc10211461030457600080fd5b8063d37bc08b146102a3578063dee8ae43146102b6578063e5289608146102d657600080fd5b80639f2b37b0116100bd5780639f2b37b01461025d578063b09cc42714610288578063cc9116351461029b57600080fd5b8063686b656e1461021f5780638da5cb5b1461023257600080fd5b806343802b771161012f5780634de1c8c3116101145780634de1c8c3146101ed57806354b6f29e1461020e57806361b8ce8c1461021657600080fd5b806343802b77146101d25780634b464e53146101da57600080fd5b8063346fed1011610160578063346fed10146101a45780633b1a6553146101ac5780633c5f15e7146101bf57600080fd5b80630dac95391461017c5780632071be7f1461019a575b600080fd5b610184610317565b60405161019191906139dc565b60405180910390f35b6101a2610a12565b005b6101a2610aa4565b6101a26101ba366004613ae1565b610b7a565b6101a26101cd366004613b4e565b610d41565b610184610e1d565b6101a26101e8366004613b7e565b611537565b6102006101fb366004613c73565b611711565b604051908152602001610191565b610184611732565b61020060025481565b61020061022d366004613c73565b611e4c565b600154610245906001600160a01b031681565b6040516001600160a01b039091168152602001610191565b61027061026b366004613c73565b611e5c565b6040516101919c9b9a99989796959493929190613c8c565b6101a2610296366004613d61565b612281565b6101a2612429565b6101a26102b1366004613ae1565b6124d8565b6102c96102c4366004613c73565b6126aa565b6040516101919190613da8565b6101a26102e4366004613dbb565b612d18565b610184612f7b565b6102456102ff366004613c73565b613695565b610200610312366004613c73565b6136bf565b6060600060025467ffffffffffffffff81111561033657610336613a3e565b60405190808252806020026020018201604052801561036f57816020015b61035c613738565b8152602001906001900390816103545790505b50905060015b600254811015610a0c5760008181526006602090815260409182902082516101c0810184528154815260018201546001600160a01b0316928101929092526002810180549193849290840191906103cb90613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546103f790613e42565b80156104445780601f1061041957610100808354040283529160200191610444565b820191906000526020600020905b81548152906001019060200180831161042757829003601f168201915b5050505050815260200160038201805461045d90613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461048990613e42565b80156104d65780601f106104ab576101008083540402835291602001916104d6565b820191906000526020600020905b8154815290600101906020018083116104b957829003601f168201915b505050505081526020016004820180546104ef90613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461051b90613e42565b80156105685780601f1061053d57610100808354040283529160200191610568565b820191906000526020600020905b81548152906001019060200180831161054b57829003601f168201915b5050505050815260200160058201805461058190613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546105ad90613e42565b80156105fa5780601f106105cf576101008083540402835291602001916105fa565b820191906000526020600020905b8154815290600101906020018083116105dd57829003601f168201915b5050505050815260200160068201805461061390613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461063f90613e42565b801561068c5780601f106106615761010080835404028352916020019161068c565b820191906000526020600020905b81548152906001019060200180831161066f57829003601f168201915b505050505081526020016007820180546106a590613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546106d190613e42565b801561071e5780601f106106f35761010080835404028352916020019161071e565b820191906000526020600020905b81548152906001019060200180831161070157829003601f168201915b5050505050815260200160088201805461073790613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461076390613e42565b80156107b05780601f10610785576101008083540402835291602001916107b0565b820191906000526020600020905b81548152906001019060200180831161079357829003601f168201915b5050505050815260200160098201805480602002602001604051908101604052809291908181526020016000905b8282101561088a5783829060005260206000200180546107fd90613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461082990613e42565b80156108765780601f1061084b57610100808354040283529160200191610876565b820191906000526020600020905b81548152906001019060200180831161085957829003601f168201915b5050505050815260200190600101906107de565b505050508152602001600a8201805480602002602001604051908101604052809291908181526020016000905b828210156109635783829060005260206000200180546108d690613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461090290613e42565b801561094f5780601f106109245761010080835404028352916020019161094f565b820191906000526020600020905b81548152906001019060200180831161093257829003601f168201915b5050505050815260200190600101906108b7565b50505090825250600b919091015460ff80821615156020840152610100820481161515604084015262010000909104161515606090910152836109a7600185613e8c565b815181106109b7576109b7613ea5565b60200260200101819052507fa2201c7e4ef4abcd8b6c640fedb1021bbbb5103b62ad2486f9bb85f8ae49ecc9816040516109f191906140d8565b60405180910390a15080610a04816140eb565b915050610375565b50919050565b610a1e600560006137b6565b60015b600254811015610aa1576000818152600660205260409020600b0154610100900460ff161515600103610a8f576000818152600660205260408120546005805460018101825592527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0909101555b80610a99816140eb565b915050610a21565b50565b610ab0600460006137b6565b60015b600254811015610aa1576000818152600660205260409020600b0154610100900460ff16158015610afa57506000818152600660205260409020600b015460ff1615156001145b8015610b2257506000818152600660205260409020600b015462010000900460ff1615156001145b15610b68576000818152600660205260408120546004805460018101825592527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b909101555b80610b72816140eb565b915050610ab3565b6000838152600660205260409020600b015462010000900460ff161515600114610beb5760405162461bcd60e51b815260206004820181905260248201527f5468697320636f6d706c61696e7420696420646f6573206e6f7420657869737460448201526064015b60405180910390fd5b6000838152600660205260409020600b015460ff161515600114610c515760405162461bcd60e51b815260206004820152601d60248201527f436f6d706c61696e74206973206e6f742079657420617070726f7665640000006044820152606401610be2565b6000838152600660205260409020600b0154610100900460ff1615610cb85760405162461bcd60e51b815260206004820152601d60248201527f436f6d706c61696e7420697320616c7265616479207265736f6c7665640000006044820152606401610be2565b6006600084815260200190815260200160002060090182604051602001610cdf9190614104565b60408051601f1981840301815291905281546001810183556000928352602090922090910190610d0f9082614197565b5060008381526006602090815260408220600a018054600181018255908352912001610d3b8282614197565b50505050565b6001546001600160a01b03163314610dc15760405162461bcd60e51b815260206004820152602c60248201527f596f7520617265206e6f7420746865206f776e6572206f66207468697320736d60448201527f61727420636f6e747261637400000000000000000000000000000000000000006064820152608401610be2565b600080546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6060610e27610aa4565b60045460009067ffffffffffffffff811115610e4557610e45613a3e565b604051908082528060200260200182016040528015610e7e57816020015b610e6b613738565b815260200190600190039081610e635790505b50905060005b600454811015610a0c5760006006600060048481548110610ea757610ea7613ea5565b60009182526020808320909101548352828101939093526040918201902081516101c0810183528154815260018201546001600160a01b0316938101939093526002810180549194508492840191610efe90613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054610f2a90613e42565b8015610f775780601f10610f4c57610100808354040283529160200191610f77565b820191906000526020600020905b815481529060010190602001808311610f5a57829003601f168201915b50505050508152602001600382018054610f9090613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054610fbc90613e42565b80156110095780601f10610fde57610100808354040283529160200191611009565b820191906000526020600020905b815481529060010190602001808311610fec57829003601f168201915b5050505050815260200160048201805461102290613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461104e90613e42565b801561109b5780601f106110705761010080835404028352916020019161109b565b820191906000526020600020905b81548152906001019060200180831161107e57829003601f168201915b505050505081526020016005820180546110b490613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546110e090613e42565b801561112d5780601f106111025761010080835404028352916020019161112d565b820191906000526020600020905b81548152906001019060200180831161111057829003601f168201915b5050505050815260200160068201805461114690613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461117290613e42565b80156111bf5780601f10611194576101008083540402835291602001916111bf565b820191906000526020600020905b8154815290600101906020018083116111a257829003601f168201915b505050505081526020016007820180546111d890613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461120490613e42565b80156112515780601f1061122657610100808354040283529160200191611251565b820191906000526020600020905b81548152906001019060200180831161123457829003601f168201915b5050505050815260200160088201805461126a90613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461129690613e42565b80156112e35780601f106112b8576101008083540402835291602001916112e3565b820191906000526020600020905b8154815290600101906020018083116112c657829003601f168201915b5050505050815260200160098201805480602002602001604051908101604052809291908181526020016000905b828210156113bd57838290600052602060002001805461133090613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461135c90613e42565b80156113a95780601f1061137e576101008083540402835291602001916113a9565b820191906000526020600020905b81548152906001019060200180831161138c57829003601f168201915b505050505081526020019060010190611311565b505050508152602001600a8201805480602002602001604051908101604052809291908181526020016000905b8282101561149657838290600052602060002001805461140990613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461143590613e42565b80156114825780601f1061145757610100808354040283529160200191611482565b820191906000526020600020905b81548152906001019060200180831161146557829003601f168201915b5050505050815260200190600101906113ea565b50505090825250600b919091015460ff8082161515602084015261010082048116151560408401526201000090910416151560609091015283518490849081106114e2576114e2613ea5565b60200260200101819052507fdafe1e5dd6afe5e3b27c1378f6acaa9621d78858ae2b7e9920de18d59cceaedc8160405161151c91906140d8565b60405180910390a1508061152f816140eb565b915050610e84565b60028054600081815260066020526040902090815560018101805473ffffffffffffffffffffffffffffffffffffffff19163317905590810161157a8882614197565b50600381016115898782614197565b50600481016115988682614197565b50600581016115a78582614197565b50600681016115b68482614197565b50600781016115c58382614197565b5060408051808201909152601081527f50656e64696e6720417070726f76616c00000000000000000000000000000000602082015260088201906116099082614197565b506040516b0213c9037b33334b1b2b91d160a51b60208201527f50656e64696e67205265736f6c7574696f6e0000000000000000000000000000602c8201526009820190603e0160408051601f19818403018152919052815460018101835560009283526020909220909101906116809082614197565b50600a8101805460018101825560009182526020909120016116a28382614197565b50600b8101805462ffffff1916620100001790556002546040517fdeb4e2a7c73777ecde924d94281fa19efd33da9ff6f4e0c7ede16fa01fa3051d916116eb9133908b90614257565b60405180910390a160028054906000611703836140eb565b919050555050505050505050565b6005818154811061172157600080fd5b600091825260209091200154905081565b606061173c610a12565b60055460009067ffffffffffffffff81111561175a5761175a613a3e565b60405190808252806020026020018201604052801561179357816020015b611780613738565b8152602001906001900390816117785790505b50905060005b600554811015610a0c57600060066000600584815481106117bc576117bc613ea5565b60009182526020808320909101548352828101939093526040918201902081516101c0810183528154815260018201546001600160a01b031693810193909352600281018054919450849284019161181390613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461183f90613e42565b801561188c5780601f106118615761010080835404028352916020019161188c565b820191906000526020600020905b81548152906001019060200180831161186f57829003601f168201915b505050505081526020016003820180546118a590613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546118d190613e42565b801561191e5780601f106118f35761010080835404028352916020019161191e565b820191906000526020600020905b81548152906001019060200180831161190157829003601f168201915b5050505050815260200160048201805461193790613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461196390613e42565b80156119b05780601f10611985576101008083540402835291602001916119b0565b820191906000526020600020905b81548152906001019060200180831161199357829003601f168201915b505050505081526020016005820180546119c990613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546119f590613e42565b8015611a425780601f10611a1757610100808354040283529160200191611a42565b820191906000526020600020905b815481529060010190602001808311611a2557829003601f168201915b50505050508152602001600682018054611a5b90613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054611a8790613e42565b8015611ad45780601f10611aa957610100808354040283529160200191611ad4565b820191906000526020600020905b815481529060010190602001808311611ab757829003601f168201915b50505050508152602001600782018054611aed90613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054611b1990613e42565b8015611b665780601f10611b3b57610100808354040283529160200191611b66565b820191906000526020600020905b815481529060010190602001808311611b4957829003601f168201915b50505050508152602001600882018054611b7f90613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054611bab90613e42565b8015611bf85780601f10611bcd57610100808354040283529160200191611bf8565b820191906000526020600020905b815481529060010190602001808311611bdb57829003601f168201915b5050505050815260200160098201805480602002602001604051908101604052809291908181526020016000905b82821015611cd2578382906000526020600020018054611c4590613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054611c7190613e42565b8015611cbe5780601f10611c9357610100808354040283529160200191611cbe565b820191906000526020600020905b815481529060010190602001808311611ca157829003601f168201915b505050505081526020019060010190611c26565b505050508152602001600a8201805480602002602001604051908101604052809291908181526020016000905b82821015611dab578382906000526020600020018054611d1e90613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054611d4a90613e42565b8015611d975780601f10611d6c57610100808354040283529160200191611d97565b820191906000526020600020905b815481529060010190602001808311611d7a57829003601f168201915b505050505081526020019060010190611cff565b50505090825250600b919091015460ff808216151560208401526101008204811615156040840152620100009091041615156060909101528351849084908110611df757611df7613ea5565b60200260200101819052507ff9df4e8ed50448d051b537ad6de26dc7590f37d7708b92f384b42557def7704e81604051611e3191906140d8565b60405180910390a15080611e44816140eb565b915050611799565b6003818154811061172157600080fd5b60066020526000908152604090208054600182015460028301805492936001600160a01b0390921692611e8e90613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054611eba90613e42565b8015611f075780601f10611edc57610100808354040283529160200191611f07565b820191906000526020600020905b815481529060010190602001808311611eea57829003601f168201915b505050505090806003018054611f1c90613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054611f4890613e42565b8015611f955780601f10611f6a57610100808354040283529160200191611f95565b820191906000526020600020905b815481529060010190602001808311611f7857829003601f168201915b505050505090806004018054611faa90613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054611fd690613e42565b80156120235780601f10611ff857610100808354040283529160200191612023565b820191906000526020600020905b81548152906001019060200180831161200657829003601f168201915b50505050509080600501805461203890613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461206490613e42565b80156120b15780601f10612086576101008083540402835291602001916120b1565b820191906000526020600020905b81548152906001019060200180831161209457829003601f168201915b5050505050908060060180546120c690613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546120f290613e42565b801561213f5780601f106121145761010080835404028352916020019161213f565b820191906000526020600020905b81548152906001019060200180831161212257829003601f168201915b50505050509080600701805461215490613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461218090613e42565b80156121cd5780601f106121a2576101008083540402835291602001916121cd565b820191906000526020600020905b8154815290600101906020018083116121b057829003601f168201915b5050505050908060080180546121e290613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461220e90613e42565b801561225b5780601f106122305761010080835404028352916020019161225b565b820191906000526020600020905b81548152906001019060200180831161223e57829003601f168201915b505050600b909301549192505060ff80821691610100810482169162010000909104168c565b61228a336136cf565b6122fc5760405162461bcd60e51b815260206004820152603560248201527f596f7520617265206e6f742072656769737465726564206f666669636572206f60448201527f66207468697320736d61727420636f6e747261637400000000000000000000006064820152608401610be2565b6000828152600660205260409020600b015462010000900460ff1615156001146123685760405162461bcd60e51b815260206004820181905260248201527f5468697320636f6d706c61696e7420696420646f6573206e6f742065786973746044820152606401610be2565b6000828152600660205260409020600b015460ff16156123ca5760405162461bcd60e51b815260206004820152601d60248201527f436f6d706c61696e7420697320616c726561647920617070726f7665640000006044820152606401610be2565b600082815260066020908152604091829020600b01805462ffffff191661010117905590516123fb91839101614288565b60408051601f198184030181529181526000848152600660205220600801906124249082614197565b505050565b612435600360006137b6565b60015b600254811015610aa1576000818152600660205260409020600b015460ff1615801561248057506000818152600660205260409020600b015462010000900460ff1615156001145b156124c6576000818152600660205260408120546003805460018101825592527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b909101555b806124d0816140eb565b915050612438565b6124e1336136cf565b6125535760405162461bcd60e51b815260206004820152603560248201527f596f7520617265206e6f742072656769737465726564206f666669636572206f60448201527f66207468697320736d61727420636f6e747261637400000000000000000000006064820152608401610be2565b6000838152600660205260409020600b015462010000900460ff1615156001146125bf5760405162461bcd60e51b815260206004820181905260248201527f5468697320636f6d706c61696e7420696420646f6573206e6f742065786973746044820152606401610be2565b6000838152600660205260409020600b015460ff16156126215760405162461bcd60e51b815260206004820152601d60248201527f436f6d706c61696e7420697320616c726561647920617070726f7665640000006044820152606401610be2565b6000838152600660205260409020600b8101805460ff1916600117905560080161264b8382614197565b5060066000848152602001908152602001600020600901604051602001610cdf906b0213c9037b33334b1b2b91d160a51b81527f496e7665737469676174696f6e20537461727465640000000000000000000000600c82015260210190565b6126b2613738565b6000828152600660205260409081902090517fb1e45cba07690de17a99511799158b69c37226498b838555b5c51c6448030467916126ef916140d8565b60405180910390a160008281526006602090815260409182902082516101c0810184528154815260018201546001600160a01b031692810192909252600281018054929391929184019161274290613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461276e90613e42565b80156127bb5780601f10612790576101008083540402835291602001916127bb565b820191906000526020600020905b81548152906001019060200180831161279e57829003601f168201915b505050505081526020016003820180546127d490613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461280090613e42565b801561284d5780601f106128225761010080835404028352916020019161284d565b820191906000526020600020905b81548152906001019060200180831161283057829003601f168201915b5050505050815260200160048201805461286690613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461289290613e42565b80156128df5780601f106128b4576101008083540402835291602001916128df565b820191906000526020600020905b8154815290600101906020018083116128c257829003601f168201915b505050505081526020016005820180546128f890613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461292490613e42565b80156129715780601f1061294657610100808354040283529160200191612971565b820191906000526020600020905b81548152906001019060200180831161295457829003601f168201915b5050505050815260200160068201805461298a90613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546129b690613e42565b8015612a035780601f106129d857610100808354040283529160200191612a03565b820191906000526020600020905b8154815290600101906020018083116129e657829003601f168201915b50505050508152602001600782018054612a1c90613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054612a4890613e42565b8015612a955780601f10612a6a57610100808354040283529160200191612a95565b820191906000526020600020905b815481529060010190602001808311612a7857829003601f168201915b50505050508152602001600882018054612aae90613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054612ada90613e42565b8015612b275780601f10612afc57610100808354040283529160200191612b27565b820191906000526020600020905b815481529060010190602001808311612b0a57829003601f168201915b5050505050815260200160098201805480602002602001604051908101604052809291908181526020016000905b82821015612c01578382906000526020600020018054612b7490613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054612ba090613e42565b8015612bed5780601f10612bc257610100808354040283529160200191612bed565b820191906000526020600020905b815481529060010190602001808311612bd057829003601f168201915b505050505081526020019060010190612b55565b505050508152602001600a8201805480602002602001604051908101604052809291908181526020016000905b82821015612cda578382906000526020600020018054612c4d90613e42565b80601f0160208091040260200160405190810160405280929190818152602001828054612c7990613e42565b8015612cc65780601f10612c9b57610100808354040283529160200191612cc6565b820191906000526020600020905b815481529060010190602001808311612ca957829003601f168201915b505050505081526020019060010190612c2e565b50505090825250600b919091015460ff8082161515602084015261010082048116151560408401526201000090910416151560609091015292915050565b612d21336136cf565b612d935760405162461bcd60e51b815260206004820152603560248201527f596f7520617265206e6f742072656769737465726564206f666669636572206f60448201527f66207468697320736d61727420636f6e747261637400000000000000000000006064820152608401610be2565b6000848152600660205260409020600b015462010000900460ff161515600114612dff5760405162461bcd60e51b815260206004820181905260248201527f5468697320636f6d706c61696e7420696420646f6573206e6f742065786973746044820152606401610be2565b6000848152600660205260409020600b015460ff161515600114612e655760405162461bcd60e51b815260206004820152601d60248201527f436f6d706c61696e74206973206e6f742079657420617070726f7665640000006044820152606401610be2565b6000848152600660205260409020600b0154610100900460ff1615612ecc5760405162461bcd60e51b815260206004820152601d60248201527f436f6d706c61696e7420697320616c7265616479207265736f6c7665640000006044820152606401610be2565b8115612ef1576000848152600660205260409020600b01805461ff0019166101001790555b6006600085815260200190815260200160002060090183604051602001612f1891906142da565b60408051601f1981840301815291905281546001810183556000928352602090922090910190612f489082614197565b5060008481526006602090815260408220600a018054600181018255908352912001612f748282614197565b5050505050565b6060612f85612429565b60035460009067ffffffffffffffff811115612fa357612fa3613a3e565b604051908082528060200260200182016040528015612fdc57816020015b612fc9613738565b815260200190600190039081612fc15790505b50905060005b600354811015610a0c576000600660006003848154811061300557613005613ea5565b60009182526020808320909101548352828101939093526040918201902081516101c0810183528154815260018201546001600160a01b031693810193909352600281018054919450849284019161305c90613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461308890613e42565b80156130d55780601f106130aa576101008083540402835291602001916130d5565b820191906000526020600020905b8154815290600101906020018083116130b857829003601f168201915b505050505081526020016003820180546130ee90613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461311a90613e42565b80156131675780601f1061313c57610100808354040283529160200191613167565b820191906000526020600020905b81548152906001019060200180831161314a57829003601f168201915b5050505050815260200160048201805461318090613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546131ac90613e42565b80156131f95780601f106131ce576101008083540402835291602001916131f9565b820191906000526020600020905b8154815290600101906020018083116131dc57829003601f168201915b5050505050815260200160058201805461321290613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461323e90613e42565b801561328b5780601f106132605761010080835404028352916020019161328b565b820191906000526020600020905b81548152906001019060200180831161326e57829003601f168201915b505050505081526020016006820180546132a490613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546132d090613e42565b801561331d5780601f106132f25761010080835404028352916020019161331d565b820191906000526020600020905b81548152906001019060200180831161330057829003601f168201915b5050505050815260200160078201805461333690613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461336290613e42565b80156133af5780601f10613384576101008083540402835291602001916133af565b820191906000526020600020905b81548152906001019060200180831161339257829003601f168201915b505050505081526020016008820180546133c890613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546133f490613e42565b80156134415780601f1061341657610100808354040283529160200191613441565b820191906000526020600020905b81548152906001019060200180831161342457829003601f168201915b5050505050815260200160098201805480602002602001604051908101604052809291908181526020016000905b8282101561351b57838290600052602060002001805461348e90613e42565b80601f01602080910402602001604051908101604052809291908181526020018280546134ba90613e42565b80156135075780601f106134dc57610100808354040283529160200191613507565b820191906000526020600020905b8154815290600101906020018083116134ea57829003601f168201915b50505050508152602001906001019061346f565b505050508152602001600a8201805480602002602001604051908101604052809291908181526020016000905b828210156135f457838290600052602060002001805461356790613e42565b80601f016020809104026020016040519081016040528092919081815260200182805461359390613e42565b80156135e05780601f106135b5576101008083540402835291602001916135e0565b820191906000526020600020905b8154815290600101906020018083116135c357829003601f168201915b505050505081526020019060010190613548565b50505090825250600b919091015460ff80821615156020840152610100820481161515604084015262010000909104161515606090910152835184908490811061364057613640613ea5565b60200260200101819052507fc3d5582c8b448fbd235c9b74919e86814e69ed7c5de3014fa32dc2c0b1f238ed8160405161367a91906140d8565b60405180910390a1508061368d816140eb565b915050612fe2565b600081815481106136a557600080fd5b6000918252602090912001546001600160a01b0316905081565b6004818154811061172157600080fd5b6000805b60005481101561372f57826001600160a01b0316600082815481106136fa576136fa613ea5565b6000918252602090912001546001600160a01b03160361371d5750600192915050565b80613727816140eb565b9150506136d3565b50600092915050565b604051806101c001604052806000815260200160006001600160a01b031681526020016060815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081526020016000151581526020016000151581526020016000151581525090565b5080546000825590600052602060002090810190610aa191905b808211156137e457600081556001016137d0565b5090565b60005b838110156138035781810151838201526020016137eb565b50506000910152565b600081518084526138248160208601602086016137e8565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b8481101561388357601f1986840301895261387183835161380c565b98840198925090830190600101613855565b5090979650505050505050565b60006101c08251845260208301516138b360208601826001600160a01b03169052565b5060408301518160408601526138cb8286018261380c565b915050606083015184820360608601526138e5828261380c565b915050608083015184820360808601526138ff828261380c565b91505060a083015184820360a0860152613919828261380c565b91505060c083015184820360c0860152613933828261380c565b91505060e083015184820360e086015261394d828261380c565b9150506101008084015185830382870152613968838261380c565b9250505061012080840151858303828701526139848382613838565b9250505061014080840151858303828701526139a08382613838565b92505050610160808401516139b88287018215159052565b5050610180838101511515908501526101a092830151151592909301919091525090565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613a3157603f19888603018452613a1f858351613890565b94509285019290850190600101613a03565b5092979650505050505050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112613a6557600080fd5b813567ffffffffffffffff80821115613a8057613a80613a3e565b604051601f8301601f19908116603f01168101908282118183101715613aa857613aa8613a3e565b81604052838152866020858801011115613ac157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215613af657600080fd5b83359250602084013567ffffffffffffffff80821115613b1557600080fd5b613b2187838801613a54565b93506040860135915080821115613b3757600080fd5b50613b4486828701613a54565b9150509250925092565b600060208284031215613b6057600080fd5b81356001600160a01b0381168114613b7757600080fd5b9392505050565b60008060008060008060c08789031215613b9757600080fd5b863567ffffffffffffffff80821115613baf57600080fd5b613bbb8a838b01613a54565b97506020890135915080821115613bd157600080fd5b613bdd8a838b01613a54565b96506040890135915080821115613bf357600080fd5b613bff8a838b01613a54565b95506060890135915080821115613c1557600080fd5b613c218a838b01613a54565b94506080890135915080821115613c3757600080fd5b613c438a838b01613a54565b935060a0890135915080821115613c5957600080fd5b50613c6689828a01613a54565b9150509295509295509295565b600060208284031215613c8557600080fd5b5035919050565b8c81526001600160a01b038c1660208201526000610180806040840152613cb58184018e61380c565b90508281036060840152613cc9818d61380c565b90508281036080840152613cdd818c61380c565b905082810360a0840152613cf1818b61380c565b905082810360c0840152613d05818a61380c565b905082810360e0840152613d19818961380c565b9050828103610100840152613d2e818861380c565b915050613d4061012083018615159052565b921515610140820152901515610160909101529a9950505050505050505050565b60008060408385031215613d7457600080fd5b82359150602083013567ffffffffffffffff811115613d9257600080fd5b613d9e85828601613a54565b9150509250929050565b602081526000613b776020830184613890565b60008060008060808587031215613dd157600080fd5b84359350602085013567ffffffffffffffff80821115613df057600080fd5b613dfc88838901613a54565b9450604087013591508115158214613e1357600080fd5b90925060608601359080821115613e2957600080fd5b50613e3687828801613a54565b91505092959194509250565b600181811c90821680613e5657607f821691505b602082108103610a0c57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115613e9f57613e9f613e76565b92915050565b634e487b7160e01b600052603260045260246000fd5b60008154613ec881613e42565b808552602060018381168015613ee55760018114613eff57613f2d565b60ff1985168884015283151560051b880183019550613f2d565b866000528260002060005b85811015613f255781548a8201860152908301908401613f0a565b890184019650505b505050505092915050565b600081548084526020808501808196508360051b81019150856000528260002060005b85811015613f84578284038952613f728483613ebb565b98850198935060019182019101613f5b565b5091979650505050505050565b60006101c082548452613fae60018401546001600160a01b031690565b6001600160a01b0316602085015260408401819052613fd281850160028501613ebb565b90508381036060850152613fe98160038501613ebb565b905083810360808501526140008160048501613ebb565b905083810360a08501526140178160058501613ebb565b905083810360c085015261402e8160068501613ebb565b905083810360e08501526140458160078501613ebb565b905083810361010085015261405d8160088501613ebb565b90508381036101208501526140758160098501613f38565b905083810361014085015261408d81600a8501613f38565b9050600b8301546140a6610160860160ff831615159052565b6140bb610180860160ff8360081c1615159052565b6140d06101a0860160ff8360101c1615159052565b509392505050565b602081526000613b776020830184613f91565b6000600182016140fd576140fd613e76565b5060010190565b7f42792076696374696d3a2000000000000000000000000000000000000000000081526000825161413c81600b8501602087016137e8565b91909101600b0192915050565b601f82111561242457600081815260208120601f850160051c810160208610156141705750805b601f850160051c820191505b8181101561418f5782815560010161417c565b505050505050565b815167ffffffffffffffff8111156141b1576141b1613a3e565b6141c5816141bf8454613e42565b84614149565b602080601f8311600181146141fa57600084156141e25750858301515b600019600386901b1c1916600185901b17855561418f565b600085815260208120601f198616915b828110156142295788860151825594840194600190910190840161420a565b50858210156142475787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8381526001600160a01b038316602082015260606040820152600061427f606083018461380c565b95945050505050565b7f5468697320636f6d706c61696e742069732072656a65637465642e2052656173815263037b71d160e51b6020820152600082516142cd8160248501602087016137e8565b9190910160240192915050565b6b0213c9037b33334b1b2b91d160a51b81526000825161430181600c8501602087016137e8565b91909101600c019291505056fea2646970667358221220b1ddb208dc69080f52ce50cf74370fd03f8ed8318665b6104c61795b6585857564736f6c63430008110033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000081f6140511252d9bccf6dab7e4dd6d9bcb220622

-----Decoded View---------------
Arg [0] : _officer (address): 0x81f6140511252D9Bccf6DAB7E4Dd6D9bCB220622

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000081f6140511252d9bccf6dab7e4dd6d9bcb220622


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Txn 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.