code: def glyph_order(keys, draw_order=[]):
      keys = sorted(keys)
      def order_fn(glyph):
          matches = [item for item in draw_order if glyph.startswith(item)]
          return ((draw_order.index(matches[0]), glyph) if matches else
                  (1e9+keys.index(glyph), glyph))
      return sorted(keys, key=order_fn)