// Copyright (c) 2021, the Dart 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.

import 'dart:io';

void main() {
  print(FileMode.APPEND);
  print(FileMode.READ);
  print(FileMode.WRITE);
  print(FileMode.WRITE_ONLY);
  print(FileMode.WRITE_ONLY_APPEND);
  print(HttpStatus.CONTINUE);
  print(HttpStatus.SWITCHING_PROTOCOLS);
  print(HttpStatus.OK);
  print(HttpStatus.CREATED);
  print(HttpStatus.ACCEPTED);
  print(HttpStatus.NON_AUTHORITATIVE_INFORMATION);
  print(HttpStatus.NO_CONTENT);
  print(HttpStatus.RESET_CONTENT);
  print(HttpStatus.PARTIAL_CONTENT);
  print(HttpStatus.MULTIPLE_CHOICES);
  print(HttpStatus.MOVED_PERMANENTLY);
  print(HttpStatus.FOUND);
  print(HttpStatus.MOVED_TEMPORARILY);
  print(HttpStatus.SEE_OTHER);
  print(HttpStatus.NOT_MODIFIED);
  print(HttpStatus.USE_PROXY);
  print(HttpStatus.TEMPORARY_REDIRECT);
  print(HttpStatus.BAD_REQUEST);
  print(HttpStatus.UNAUTHORIZED);
  print(HttpStatus.PAYMENT_REQUIRED);
  print(HttpStatus.FORBIDDEN);
  print(HttpStatus.NOT_FOUND);
  print(HttpStatus.METHOD_NOT_ALLOWED);
  print(HttpStatus.NOT_ACCEPTABLE);
  print(HttpStatus.PROXY_AUTHENTICATION_REQUIRED);
  print(HttpStatus.REQUEST_TIMEOUT);
  print(HttpStatus.CONFLICT);
  print(HttpStatus.GONE);
  print(HttpStatus.LENGTH_REQUIRED);
  print(HttpStatus.PRECONDITION_FAILED);
  print(HttpStatus.REQUEST_ENTITY_TOO_LARGE);
  print(HttpStatus.REQUEST_URI_TOO_LONG);
  print(HttpStatus.UNSUPPORTED_MEDIA_TYPE);
  print(HttpStatus.REQUESTED_RANGE_NOT_SATISFIABLE);
  print(HttpStatus.EXPECTATION_FAILED);
  print(HttpStatus.UPGRADE_REQUIRED);
  print(HttpStatus.INTERNAL_SERVER_ERROR);
  print(HttpStatus.NOT_IMPLEMENTED);
  print(HttpStatus.BAD_GATEWAY);
  print(HttpStatus.SERVICE_UNAVAILABLE);
  print(HttpStatus.GATEWAY_TIMEOUT);
  print(HttpStatus.HTTP_VERSION_NOT_SUPPORTED);
  print(HttpStatus.NETWORK_CONNECT_TIMEOUT_ERROR);
}
