from typing import Dict


class OlcControlRequest:
    def __init__(self, tags: Dict[str, str] = None, token_number: int = 0):
        self.tags = tags if tags is not None else {}
        self.token_number = token_number

    def __eq__(self, _value):
        if not isinstance(_value, OlcControlRequest):
            return NotImplemented
        return frozenset(self.tags.items()) == frozenset(_value.tags.items())

    def __hash__(self):
        return hash((frozenset(self.tags.items())))

    def __repr__(self):
        return f"OlcControlRequest({self.tags}, {self.token_number})"

    def __str__(self):
        return f"OlcControlRequest({self.tags}, {self.token_number})"