code: def _compare_acl(current, desired, region, key, keyid, profile):
      '''
      ACLs can be specified using macro-style names that get expanded to
      something more complex. There's no predictable way to reverse it.
      So expand all syntactic sugar in our input, and compare against that
      rather than the input itself.
      '''
      ocid = _get_canonical_id(region, key, keyid, profile)
      return __utils__['boto3.json_objs_equal'](current, _acl_to_grant(desired, ocid)f _compare_acl(current, desired, region, key, keyid, profile):
      '''
      ACLs can be specified using macro-style names that get expanded to
      something more complex. There's no predictable way to reverse it.
      So expand all syntactic sugar in our input, and compare against that
      rather than the input itself.
      '''
      ocid = _get_canonical_id(region, key, keyid, profile)
      return __utils__['boto3.json_objs_equal'](current, _acl_to_grant(desired, ocid))
docs: ACLs can be specified using macro-style names that get expanded to
      something more complex. There's no predictable way to reverse it.
      So expand all syntactic sugar in our input, and compare against that
      rather than the input itself.