    function authorizeOperator(address operator) external {
        require(msg.sender != operator, "ERC777: authorizing self as operator");
        if (_defaultOperators[operator]) {
            delete _revokedDefaultOperators[msg.sender][operator];
        } else {
            _operators[msg.sender][operator] = true;
        }
        emit AuthorizedOperator(operator, msg.sender);
    }