# Path: consort/tools/HashCachingObject.py
# class HashCachingObject(abctools.AbjadValueObject):
# 
#     ### CLASS VARIABLES ###
# 
#     __slots__ = (
#         '_format',
#         '_hash',
#         )
# 
#     ### INITIALIZER ###
# 
#     def __init__(self):
#         self._format = None
#         self._hash = None
# 
#     ### SPECIAL METHODS ###
# 
#     #@profile
#     def __eq__(self, expr):
#         if isinstance(expr, type(self)):
#             if format(self) == format(expr):
#                 return True
#         return False
# 
#     #@profile
#     def __format__(self, format_specification=''):
#         if self._format is None:
#             agent = systemtools.StorageFormatAgent(self)
#             self._format = agent.get_storage_format()
#         return self._format
# 
#     #@profile
#     def __hash__(self):
#         if self._hash is None:
#             self._hash = hash((type(self), format(self)))
#         return self._hash


import abjad
        import consort
        import consort
        import consort
        import consort
from abjad.tools import instrumenttools
from abjad.tools import pitchtools
from consort.tools.HashCachingObject import HashCachingObject
        '_logical_tie_expressions_are_phrased',
        '_octavations',
        '_pitch_range',
        '_register_specifier',
        '_register_spread',
        )

    _default_octavations = abjad.CyclicTuple([
        4, 2, 1, 0, 5, 6, 7, 3,
        0, 5, 3, 1, 7, 4, 2, 6,
        2, 1, 5, 3, 4, 0, 7, 6,
        1, 2, 4, 0, 5, 7, 6, 3,
        7, 0, 3, 1, 5, 4, 6, 2,
        6, 1, 2, 0, 7, 5, 3, 4,
        3, 0, 4, 7, 2, 5, 6, 1,
        2, 3, 4, 7, 5, 1, 0, 6,
        ])

    ### INITIALIZER ###

    def __init__(
        self,
        application_rate=None,
        logical_tie_expressions=None,
        logical_tie_expressions_are_phrased=None,
        octavations=None,
        pitch_range=None,
        register_specifier=None,
        register_spread=None,
        ):

# Path: consort/tools/HashCachingObject.py
# class HashCachingObject(abctools.AbjadValueObject):
# 
#     ### CLASS VARIABLES ###
# 
#     __slots__ = (
#         '_format',
#         '_hash',
#         )
# 
#     ### INITIALIZER ###
# 
#     def __init__(self):
#         self._format = None
#         self._hash = None
# 
#     ### SPECIAL METHODS ###
# 
#     #@profile
#     def __eq__(self, expr):
#         if isinstance(expr, type(self)):
#             if format(self) == format(expr):
#                 return True
#         return False
# 
#     #@profile
#     def __format__(self, format_specification=''):
#         if self._format is None:
#             agent = systemtools.StorageFormatAgent(self)
#             self._format = agent.get_storage_format()
#         return self._format
# 
#     #@profile
#     def __hash__(self):
#         if self._hash is None:
#             self._hash = hash((type(self), format(self)))
#         return self._hash


# Path: consort/tools/RegisterHandler.py
import abjad
        import consort
        import consort
        import consort
        import consort
from abjad.tools import instrumenttools
from abjad.tools import pitchtools
from consort.tools.HashCachingObject import HashCachingObject

        '_logical_tie_expressions_are_phrased',
        '_octavations',
        '_pitch_range',
        '_register_specifier',
        '_register_spread',
        )

    _default_octavations = abjad.CyclicTuple([
        4, 2, 1, 0, 5, 6, 7, 3,
        0, 5, 3, 1, 7, 4, 2, 6,
        2, 1, 5, 3, 4, 0, 7, 6,
        1, 2, 4, 0, 5, 7, 6, 3,
        7, 0, 3, 1, 5, 4, 6, 2,
        6, 1, 2, 0, 7, 5, 3, 4,
        3, 0, 4, 7, 2, 5, 6, 1,
        2, 3, 4, 7, 5, 1, 0, 6,
        ])

    ### INITIALIZER ###

    def __init__(
        self,
        application_rate=None,
        logical_tie_expressions=None,
        logical_tie_expressions_are_phrased=None,
        octavations=None,
        pitch_range=None,
        register_specifier=None,
        register_spread=None,
        ):

        HashCachingObject.__init__(self)