import abc
import typing


class AbstractJsonLibrary(abc.ABC):
    def loads(self, *args, **kwargs) -> dict:
        ...

    def dumps(self, *args, **kwargs) -> typing.Union[str, bytes]:
        ...


class JsonLibrary(AbstractJsonLibrary):  # noqa
    def __init__(self, lib: AbstractJsonLibrary):
        self._library = lib

    @property
    def library(self) -> AbstractJsonLibrary:
        return self._library

    def loads(self, *args, **kwargs) -> dict:
        return self.library.loads(*args, **kwargs)

    def dumps(self, *args, **kwargs) -> typing.Union[str, bytes]:
        res = self.library.dumps(*args, **kwargs)
        if isinstance(res, bytes):
            return res.decode()
        else:
            return res

bbeb5f5c3a2fbea3e9d1db2730a3f966249934f9
<mask token>


class JsonLibrary(AbstractJsonLibrary):
    <mask token>
    <mask token>

    def loads(self, *args, **kwargs) ->dict:
        return self.library.loads(*args, **kwargs)

    def dumps(self, *args, **kwargs) ->typing.Union[str, bytes]:
        res = self.library.dumps(*args, **kwargs)
        if isinstance(res, bytes):
            return res.decode()
        else:
            return res

<mask token>


class AbstractJsonLibrary(abc.ABC):
    <mask token>
    <mask token>


class JsonLibrary(AbstractJsonLibrary):

    def __init__(self, lib: AbstractJsonLibrary):
        self._library = lib

    @property
    def library(self) ->AbstractJsonLibrary:
        return self._library

    def loads(self, *args, **kwargs) ->dict:
        return self.library.loads(*args, **kwargs)

    def dumps(self, *args, **kwargs) ->typing.Union[str, bytes]:
        res = self.library.dumps(*args, **kwargs)
        if isinstance(res, bytes):
            return res.decode()
        else:
            return res

<mask token>


class AbstractJsonLibrary(abc.ABC):

    def loads(self, *args, **kwargs) ->dict:
        ...
    <mask token>


class JsonLibrary(AbstractJsonLibrary):

    def __init__(self, lib: AbstractJsonLibrary):
        self._library = lib

    @property
    def library(self) ->AbstractJsonLibrary:
        return self._library

    def loads(self, *args, **kwargs) ->dict:
        return self.library.loads(*args, **kwargs)

    def dumps(self, *args, **kwargs) ->typing.Union[str, bytes]:
        res = self.library.dumps(*args, **kwargs)
        if isinstance(res, bytes):
            return res.decode()
        else:
            return res

<mask token>


class AbstractJsonLibrary(abc.ABC):

    def loads(self, *args, **kwargs) ->dict:
        ...

    def dumps(self, *args, **kwargs) ->typing.Union[str, bytes]:
        ...


class JsonLibrary(AbstractJsonLibrary):

    def __init__(self, lib: AbstractJsonLibrary):
        self._library = lib

    @property
    def library(self) ->AbstractJsonLibrary:
        return self._library

    def loads(self, *args, **kwargs) ->dict:
        return self.library.loads(*args, **kwargs)

    def dumps(self, *args, **kwargs) ->typing.Union[str, bytes]:
        res = self.library.dumps(*args, **kwargs)
        if isinstance(res, bytes):
            return res.decode()
        else:
            return res

import abc
import typing


class AbstractJsonLibrary(abc.ABC):
    def loads(self, *args, **kwargs) -> dict:
        ...

    def dumps(self, *args, **kwargs) -> typing.Union[str, bytes]:
        ...


class JsonLibrary(AbstractJsonLibrary):  # noqa
    def __init__(self, lib: AbstractJsonLibrary):
        self._library = lib

    @property
    def library(self) -> AbstractJsonLibrary:
        return self._library

    def loads(self, *args, **kwargs) -> dict:
        return self.library.loads(*args, **kwargs)

    def dumps(self, *args, **kwargs) -> typing.Union[str, bytes]:
        res = self.library.dumps(*args, **kwargs)
        if isinstance(res, bytes):
            return res.decode()
        else:
            return res
