{
  "configuration_format_version": 3,
  "group_id" : "com.tools.android",
  "artifact_id" : "desugar_jdk_libs",
  "version": "1.1.1",
  "required_compilation_api_level": 26,
  "synthesized_library_classes_package_prefix": "j$.",
  "support_all_callbacks_from_library": true,
  "common_flags": [
    {
      "api_level_below_or_equal": 25,
      "wrapper_conversion": [
        "java.time.Clock"
      ]
    },
    {
      "api_level_below_or_equal": 23,
      "wrapper_conversion": [
        "java.util.PrimitiveIterator$OfDouble",
        "java.util.PrimitiveIterator$OfInt",
        "java.util.PrimitiveIterator$OfLong",
        "java.util.Spliterator",
        "java.util.Spliterator$OfDouble",
        "java.util.Spliterator$OfInt",
        "java.util.Spliterator$OfLong",
        "java.util.Spliterator$OfPrimitive",
        "java.util.function.BiConsumer",
        "java.util.function.BiFunction",
        "java.util.function.BiPredicate",
        "java.util.function.BinaryOperator",
        "java.util.function.Consumer",
        "java.util.function.DoubleBinaryOperator",
        "java.util.function.DoubleConsumer",
        "java.util.function.DoubleFunction",
        "java.util.function.DoublePredicate",
        "java.util.function.DoubleToIntFunction",
        "java.util.function.DoubleToLongFunction",
        "java.util.function.DoubleUnaryOperator",
        "java.util.function.Function",
        "java.util.function.IntBinaryOperator",
        "java.util.function.IntConsumer",
        "java.util.function.IntFunction",
        "java.util.function.IntPredicate",
        "java.util.function.IntToDoubleFunction",
        "java.util.function.IntToLongFunction",
        "java.util.function.IntUnaryOperator",
        "java.util.function.LongBinaryOperator",
        "java.util.function.LongConsumer",
        "java.util.function.LongFunction",
        "java.util.function.LongPredicate",
        "java.util.function.LongToDoubleFunction",
        "java.util.function.LongToIntFunction",
        "java.util.function.LongUnaryOperator",
        "java.util.function.ObjDoubleConsumer",
        "java.util.function.ObjIntConsumer",
        "java.util.function.ObjLongConsumer",
        "java.util.function.Predicate",
        "java.util.function.Supplier",
        "java.util.function.ToDoubleFunction",
        "java.util.function.ToIntFunction",
        "java.util.function.ToLongFunction",
        "java.util.function.UnaryOperator",
        "java.util.stream.BaseStream",
        "java.util.stream.Collector",
        "java.util.stream.DoubleStream",
        "java.util.stream.IntStream",
        "java.util.stream.LongStream",
        "java.util.stream.Stream"
      ]
    }
  ],
  "library_flags": [
    {
      "api_level_below_or_equal": 25,
      "rewrite_prefix": {
        "j$.time.": "java.time.",
        "java.time.": "j$.time.",
        "java.util.Desugar": "j$.util.Desugar"
      },
      "backport": {
        "java.lang.Double8": "java.lang.Double",
        "java.lang.Integer8": "java.lang.Integer",
        "java.lang.Long8": "java.lang.Long",
        "java.lang.Math8": "java.lang.Math"
      },
      "retarget_lib_member": {
        "java.util.Date#toInstant": "java.util.DesugarDate",
        "java.util.GregorianCalendar#toZonedDateTime": "java.util.DesugarGregorianCalendar",
        "java.util.TimeZone#toZoneId": "java.util.DesugarTimeZone"
      },
      "custom_conversion": {
        "java.time.ZonedDateTime": "java.time.TimeConversions",
        "java.time.LocalDate": "java.time.TimeConversions",
        "java.time.Duration": "java.time.TimeConversions",
        "java.time.ZoneId": "java.time.TimeConversions",
        "java.time.MonthDay": "java.time.TimeConversions",
        "java.time.Instant": "java.time.TimeConversions"
      }
    },
    {
      "api_level_below_or_equal": 23,
      "rewrite_prefix": {
        "j$.util.Optional": "java.util.Optional",
        "j$.util.LongSummaryStatistics": "java.util.LongSummaryStatistics",
        "j$.util.IntSummaryStatistics": "java.util.IntSummaryStatistics",
        "j$.util.DoubleSummaryStatistics": "java.util.DoubleSummaryStatistics",
        "java.util.stream.": "j$.util.stream.",
        "java.util.function.": "j$.util.function.",
        "java.util.Comparators": "j$.util.Comparators",
        "java.util.DoubleSummaryStatistics": "j$.util.DoubleSummaryStatistics",
        "java.util.IntSummaryStatistics": "j$.util.IntSummaryStatistics",
        "java.util.LongSummaryStatistics": "j$.util.LongSummaryStatistics",
        "java.util.Objects": "j$.util.Objects",
        "java.util.Optional": "j$.util.Optional",
        "java.util.PrimitiveIterator": "j$.util.PrimitiveIterator",
        "java.util.SortedSet$1": "j$.util.SortedSet$1",
        "java.util.Spliterator": "j$.util.Spliterator",
        "java.util.StringJoiner": "j$.util.StringJoiner",
        "java.util.Tripwire": "j$.util.Tripwire",
        "java.util.concurrent.DesugarUnsafe": "j$.util.concurrent.DesugarUnsafe",
        "java.util.concurrent.ThreadLocalRandom": "j$.util.concurrent.ThreadLocalRandom",
        "java.util.concurrent.atomic.DesugarAtomic": "j$.util.concurrent.atomic.DesugarAtomic"
      },
      "retarget_lib_member": {
        "java.util.Arrays#stream": "java.util.DesugarArrays",
        "java.util.Arrays#spliterator": "java.util.DesugarArrays",
        "java.util.LinkedHashSet#spliterator": "java.util.DesugarLinkedHashSet"
      },
      "dont_rewrite": [
        "java.util.Iterator#remove"
      ],
      "emulate_interface": {
        "java.lang.Iterable": "j$.lang.Iterable",
        "java.util.Map$Entry": "j$.util.Map$Entry",
        "java.util.Collection": "j$.util.Collection",
        "java.util.Map": "j$.util.Map",
        "java.util.Iterator": "j$.util.Iterator",
        "java.util.Comparator": "j$.util.Comparator",
        "java.util.List": "j$.util.List",
        "java.util.SortedSet": "j$.util.SortedSet",
        "java.util.Set": "j$.util.Set",
        "java.util.concurrent.ConcurrentMap": "j$.util.concurrent.ConcurrentMap"
      },
      "custom_conversion": {
        "java.util.Optional": "java.util.OptionalConversions",
        "java.util.OptionalDouble": "java.util.OptionalConversions",
        "java.util.OptionalInt": "java.util.OptionalConversions",
        "java.util.OptionalLong": "java.util.OptionalConversions",
        "java.util.LongSummaryStatistics": "java.util.LongSummaryStatisticsConversions",
        "java.util.IntSummaryStatistics": "java.util.IntSummaryStatisticsConversions",
        "java.util.DoubleSummaryStatistics": "java.util.DoubleSummaryStatisticsConversions"
      }
    }
  ],
  "program_flags": [
    {
      "api_level_below_or_equal": 25,
      "rewrite_prefix": {
        "java.time.": "j$.time.",
        "java.util.Desugar": "j$.util.Desugar"
      },
      "retarget_lib_member": {
        "java.util.Calendar#toInstant": "java.util.DesugarCalendar",
        "java.util.Date#from": "java.util.DesugarDate",
        "java.util.Date#toInstant": "java.util.DesugarDate",
        "java.util.GregorianCalendar#from": "java.util.DesugarGregorianCalendar",
        "java.util.GregorianCalendar#toZonedDateTime": "java.util.DesugarGregorianCalendar",
        "java.util.TimeZone#toZoneId": "java.util.DesugarTimeZone"
      },
      "custom_conversion": {
        "java.time.ZonedDateTime": "java.time.TimeConversions",
        "java.time.LocalDate": "java.time.TimeConversions",
        "java.time.Duration": "java.time.TimeConversions",
        "java.time.ZoneId": "java.time.TimeConversions",
        "java.time.MonthDay": "java.time.TimeConversions",
        "java.time.Instant": "java.time.TimeConversions"
      }
    },
    {
      "api_level_below_or_equal": 23,
      "rewrite_prefix": {
        "java.util.stream.": "j$.util.stream.",
        "java.util.function.": "j$.util.function.",
        "java.util.DoubleSummaryStatistics": "j$.util.DoubleSummaryStatistics",
        "java.util.IntSummaryStatistics": "j$.util.IntSummaryStatistics",
        "java.util.LongSummaryStatistics": "j$.util.LongSummaryStatistics",
        "java.util.Optional": "j$.util.Optional",
        "java.util.PrimitiveIterator": "j$.util.PrimitiveIterator",
        "java.util.Spliterator": "j$.util.Spliterator",
        "java.util.StringJoiner": "j$.util.StringJoiner",
        "java.util.concurrent.ThreadLocalRandom": "j$.util.concurrent.ThreadLocalRandom",
        "java.util.concurrent.atomic.DesugarAtomic": "j$.util.concurrent.atomic.DesugarAtomic"
      },
      "retarget_lib_member": {
        "java.util.Arrays#stream": "java.util.DesugarArrays",
        "java.util.Arrays#spliterator": "java.util.DesugarArrays",
        "java.util.LinkedHashSet#spliterator": "java.util.DesugarLinkedHashSet",
        "java.util.concurrent.atomic.AtomicInteger#getAndUpdate": "java.util.concurrent.atomic.DesugarAtomicInteger",
        "java.util.concurrent.atomic.AtomicInteger#updateAndGet": "java.util.concurrent.atomic.DesugarAtomicInteger",
        "java.util.concurrent.atomic.AtomicInteger#getAndAccumulate": "java.util.concurrent.atomic.DesugarAtomicInteger",
        "java.util.concurrent.atomic.AtomicInteger#accumulateAndGet": "java.util.concurrent.atomic.DesugarAtomicInteger",
        "java.util.concurrent.atomic.AtomicLong#getAndUpdate": "java.util.concurrent.atomic.DesugarAtomicLong",
        "java.util.concurrent.atomic.AtomicLong#updateAndGet": "java.util.concurrent.atomic.DesugarAtomicLong",
        "java.util.concurrent.atomic.AtomicLong#getAndAccumulate": "java.util.concurrent.atomic.DesugarAtomicLong",
        "java.util.concurrent.atomic.AtomicLong#accumulateAndGet": "java.util.concurrent.atomic.DesugarAtomicLong",
        "java.util.concurrent.atomic.AtomicReference#getAndUpdate": "java.util.concurrent.atomic.DesugarAtomicReference",
        "java.util.concurrent.atomic.AtomicReference#updateAndGet": "java.util.concurrent.atomic.DesugarAtomicReference",
        "java.util.concurrent.atomic.AtomicReference#getAndAccumulate": "java.util.concurrent.atomic.DesugarAtomicReference",
        "java.util.concurrent.atomic.AtomicReference#accumulateAndGet": "java.util.concurrent.atomic.DesugarAtomicReference",
        "java.util.Collections#synchronizedMap": "java.util.DesugarCollections",
        "java.util.Collections#synchronizedSortedMap": "java.util.DesugarCollections"
      },
      "dont_rewrite": [
        "java.util.Iterator#remove"
      ],
      "emulate_interface": {
        "java.lang.Iterable": "j$.lang.Iterable",
        "java.util.Map$Entry": "j$.util.Map$Entry",
        "java.util.Collection": "j$.util.Collection",
        "java.util.Map": "j$.util.Map",
        "java.util.Iterator": "j$.util.Iterator",
        "java.util.Comparator": "j$.util.Comparator",
        "java.util.List": "j$.util.List",
        "java.util.SortedSet": "j$.util.SortedSet",
        "java.util.Set": "j$.util.Set",
        "java.util.concurrent.ConcurrentMap": "j$.util.concurrent.ConcurrentMap"
      },
      "custom_conversion": {
        "java.util.Optional": "java.util.OptionalConversions",
        "java.util.OptionalDouble": "java.util.OptionalConversions",
        "java.util.OptionalInt": "java.util.OptionalConversions",
        "java.util.OptionalLong": "java.util.OptionalConversions",
        "java.util.LongSummaryStatistics": "java.util.LongSummaryStatisticsConversions",
        "java.util.IntSummaryStatistics": "java.util.IntSummaryStatisticsConversions",
        "java.util.DoubleSummaryStatistics": "java.util.DoubleSummaryStatisticsConversions"
      }
    }
  ],
  "shrinker_config": [
    "-keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); public static final !synthetic <fields>; }",
    "-keeppackagenames j$",
    "-keepclassmembers class j$.util.IntSummaryStatistics { long count; long sum; int min; int max; }",
    "-keepclassmembers class j$.util.LongSummaryStatistics { long count; long sum; long min; long max; }",
    "-keepclassmembers class j$.util.DoubleSummaryStatistics { long count; double sum; double min; double max; }",
    "-keepattributes Signature",
    "-keepattributes EnclosingMethod",
    "-keepattributes InnerClasses"
  ]
}
