// Copyright (c) 2022, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

package j$.nio.file;

public class StandardOpenOption extends OpenOption {

  public static java.nio.file.StandardOpenOption wrap_convert(
      j$.nio.file.StandardOpenOption option) {
    return null;
  }

  public static j$.nio.file.StandardOpenOption wrap_convert(
      java.nio.file.StandardOpenOption option) {
    return null;
  }
}
