code: def normalizeLayerOrder(value, font):
      
      if not isinstance(value, (tuple, list)):
          raise TypeError("Layer order must be a list, not %s."
                          % type(value).__name__)
      for v in value:
          normalizeLayerName(v)
      fontLayers = [layer.name for layer in font.layers]
      for name in value:
          if name not in fontLayers:
              raise ValueError("Layer must exist in font. %s does not exist "
                               "in font.layers." % name)
      duplicates = [v for v, count in Counter(value).items() if count > 1]
      if len(duplicates) != 0:
          raise ValueError("Duplicate layers are not allowed. Layer name(s) "
                           "'%s' are duplicate(s)." % ", ".join(duplicates))
      return tuple([unicode(v) for v in value])
docs: Normalizes layer order.
  
      ** **value** must be a ``tuple`` or ``list``.
      * **value** items must normalize as layer names with
        :func:`normalizeLayerName`.
      * **value** must contain layers that exist in **font**.
      * **value** must not contain duplicate layers.
      * Returned ``tuple`` will be unencoded ``unicode`` strings
        for each layer name.