// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

syntax = "proto2";

package location.nearby.errorcode.proto;

// import "logs/proto/logs_annotations/logs_annotations.proto";

// option (logs_proto.file_not_used_for_logging_except_enums) = true;
option optimize_for = LITE_RUNTIME;
option java_package = "com.google.location.nearby.errorcode.proto";
option java_outer_classname = "ErrorCodeEnums";
option objc_class_prefix = "GNCP";

// The type of the error.
// It help to sort error codes to different types to analyze and also impact the
// logcat print it as Warning or Severe.
enum ErrorType {
  UNKNOWN_TYPE = 0;

  // The error should not happen on production, it's like the input is null or
  // not invalid or it's a unexpected API call. For example, start advertising
  // with empty service ID or start advertising with the same service ID twice.
  DEVELOPING = 1;

  // It’s about the device's capabilities, some devices may not support the
  // feature Nearby used. E.g. The device not support BLE advertising
  DEVICE = 2;

  // The failure return from the system or library API we used to communicate
  // with the medium. E.g. get null OS objects or call the API but get a
  // negative return value which indicates that the system does not allow to do
  // that now.
  SYSTEM = 3;

  // The network related failure. E.g. get an EOF exception while reading pipe
  // or fail to create connection.
  NETWORK = 4;

  // This may not be a failure, it can be the things we are interested in, like
  // to count how many BLE advertisements the device received in a specified
  // period and how many different advertisements in it, it can help us to know
  // the user under a clean or dirty environment.
  OTHERS = 5;
}

// The event which the error occurs on.
enum Event {
  UNKNOWN_EVENT = 0;
  START_ADVERTISING = 1;
  STOP_ADVERTISING = 2;
  START_LISTENING_INCOMING_CONNECTION = 3;
  STOP_LISTENING_INCOMING_CONNECTION = 4;
  START_DISCOVERING = 5;
  STOP_DISCOVERING = 6;
  CONNECT = 7;
  DISCONNECT = 8;
  ACCEPT_CONNECTION = 9;
  REJECT_CONNECTION = 10;
  SEND_PAYLOAD = 11;
  CANCEL_PAYLOAD = 12;
  RECEIVE_PAYLOAD = 13;
  UPGRADE = 14;
}

// The error to identify the common failure for all mediums. The range between 0
// and 30.
enum CommonError {
  UNKNOWN_ERROR = 0;

  // The common error for all mediums, the range between 0 and 30.

  // Developing error, the input with invalid format or empty.
  INVALID_PARAMETER = 1;
  // Device error, the medium not available on this device.
  MEDIUM_NOT_AVAILABLE = 2;
  // System error, the medium in the unexpected state, e.g. we have check the
  // medium is on, after then it suddenly off and cause Nearby
  // Connection failed.
  UNEXPECTED_MEDIUM_STATE = 3;
  // System error, the medim not available because the resource ran out. e.g.
  // the Wi-Fi Direct initialized cause Wi-Fi Aware not available, or BLE
  // connections hit the maximan number, or Wi-Fi Hotstop already created.
  OUT_OF_RESOURCE = 4;
  // Others error, the error happens when user cancel the flow, it's not a
  // real failure.
  FLOW_CANCELED = 5;
  // Developing error, an unexpect call that the medium not ready, need to do
  // something before this call. e.g. call WifiAwareImpli#connectToSocket but
  // never join network before this call.
  UNEXPECTED_CALL = 6;

  // Reserved 7 to 30
}

// The error for event START_ADVERTISING. The range between 31 and 99.
enum StartAdvertisingError {
  reserved 37, 39;

  // Developing error, not allow to advertising fast pair model id and sharing
  // fast advertisement at the same time, they are both use fast
  // advertisement, and only allow 1 fast advertisement at the same time.
  MULTIPLE_FAST_ADVERTISEMENT_NOT_ALLOWED = 31;
  // System error, there's already someone advertising fast advertisement, not
  // allow to start another one.
  FAST_ADVERTISEMENT_ALREADY_ADVERTISED = 32;
  // Developing error, this service ID already requested, should not request
  // it again without stop advertising.
  DUPLICATE_ADVERTISING_REQUESTED = 33;
  // System error, failed to start GATT server
  START_GATT_SERVER_FAILED = 34;
  // System error, all advertising slot ran out, can't available for new
  // regular advertisement.
  BLE_MAX_GATT_ADVERTISEMENT_SLOT_REACHED = 35;
  // System error, failed to start advertising for legacy advertisements on BLE
  START_LEGACY_ADVERTISING_FAILED = 36;
  // System error, failed to start advertising for extended advertisements on
  // BLE
  START_EXTENDED_ADVERTISING_FAILED = 38;
  // System error, there's already someone advertising on Bluetooth, not allow
  // to start another one.
  BLUETOOTH_ALREADY_ADVERTISED = 40;
  // System error, failed to modify the Bluetooth name.
  MODIFY_BLUETOOTH_NAME_FAILED = 41;
  // System error, failed to persist the original Bluetooth name into shared
  // preference.
  PERSIST_ORIGINAL_BLUETOOTH_NAME_FAILED = 42;
  // System error, failed to start advertising.
  START_ADVERTISING_FAILED = 43;

  // Developing error, not allow to advertising on Wi-Fi Lan(TDLS) without
  // accetpting connections. The connection may comes in very quickly, so need
  // to accetpt connections before advertising.
  SHOULD_ACCEPT_CONNECTIONS_BEFORE_ADVERTISING_ON_WIFI_LAN = 44;
  // System error, failed to acquire WifiAwareSession
  ACQUIRE_WIFI_AWARE_SESSION_FAILED = 45;

  // The default value for clearcut
  UNKNOWN_START_ADVERTISING_ERROR = 46;

  // System error, failed to update Aware PublishConfig
  AWARE_UPDATE_PUBLISHING_FAILED = 47;

  // Next ID :48
}

// The error for event STOP_ADVERTISING. The range between 31 and 99.
enum StopAdvertisingError {
  // System error, failed to stop advertising.
  STOP_ADVERTISING_FAILED = 31;
  // System error, failed to modify the Bluetooth name.
  RESTORE_BLUETOOTH_NAME_FAILED = 32;
  // System error, failed to stop advertising for BLE legacy advertisements.
  STOP_LEGACY_ADVERTISING_FAILED = 33;
  // System error, failed to stop advertising for BLE extended advertisements.
  STOP_EXTENDED_ADVERTISING_FAILED = 34;

  // The default value for clearcut
  UNKNOWN_STOP_ADVERTISING_ERROR = 35;

  // Next ID :36
}

// The error for event START_DISCOVERING. The range between 31 and 99.
enum StartDiscoveringError {
  // Developing error, this service ID already requested, should not request it
  // again without stop discovering.
  DUPLICATE_DISCOVERING_REQUESTED = 31;
  // System error, failed to start discovering for legacy advertisements on BLE
  START_LEGACY_DISCOVERING_FAILED = 32;
  // System error, failed to start discovering for extended advertisements on
  // BLE
  START_EXTENDED_DISCOVERING_FAILED = 33;
  // System error, failed to start discovering.
  START_DISCOVERING_FAILED = 34;
  // Network error, invalid remote target info, discover the nearby devices but
  // the information not valid.
  INVALID_TARGET_INFO = 35;
  // Network error, failed to fetch the advertisement from the remote devices.
  FETCH_ADVERTISEMENT_FAILED = 36;
  // Network error, failed to fetch the advertisement via GATT from the remote
  // devices.
  GATT_FETCH_ADVERTISEMENT_FAILED = 37;
  // Network error, failed to fetch the advertisement via L2CAP from the remote
  // devices.
  L2CAP_FETCH_ADVERTISEMENT_FAILED = 38;
  // System error, the medium not available when trying to fetch advertisements.
  // e.g. fetch advertisements but BT disabled unexpectedly.
  NOT_AVAILABLE_TO_FETCH_ADVERTISEMENT = 39;
  // System error, failed to acquire WifiAwareSession
  ACQUIRE_WIFI_AWARE_SESSION_FOR_DISCOVERING_FAILED = 40;

  // The default value for clearcut
  UNKNOWN_START_DISCOVERING_ERROR = 41;

  // Next ID :42
}

// The error for event STOP_DISCOVERING. The range between 31 and 99.
enum StopDiscoveringError {
  // System error, failed to stop discovering.
  STOP_DISCOVERING_FAILED = 31;
  // System error, failed to stop discovering for BLE legacy scanning.
  STOP_LEGACY_DISCOVERING_FAILED = 32;
  // System error, failed to stop discovering for BLE extended scanning.
  STOP_EXTENDED_DISCOVERING_FAILED = 33;

  // The default value for clearcut
  UNKNOWN_STOP_DISCOVERING_ERROR = 34;

  // Next ID :35
}

// The error for event START_LISTENING_INCOMING_CONNECTION. The range between 31
// and 99.
enum StartListeningIncomingConnectionError {
  // Developing error, this service ID already requested, should not request it
  // again without stop accepting.
  DUPLICATE_ACCEPTING_CONNECTION_REQUESTED = 31;
  // System error, failed to open a GATT server for listening incoming GATT
  // connection.
  OPEN_GATT_SERVER_FAILED = 32;
  // System error, failed to accept the incoming GATT connection
  ACCEPT_GATT_CONNECTION_FAILED = 33;
  // System error, failed to accept the incoming L2CAP connection
  ACCEPT_L2CAP_CONNECTION_FAILED = 34;
  // Network error, wait the GATT connection ready after the connection
  // established but never.
  CREATE_GATT_SERVER_SOCKET_NOT_READY = 35;
  // System error, failed to accept the incoming connection
  ACCEPT_CONNECTION_FAILED = 36;
  // System error, failed to create a server socket for listening incoming
  // connection.
  CREATE_SERVER_SOCKET_FAILED = 37;

  // The default value for clearcut
  UNKNOWN_START_LISTENING_INCOMING_CONNECTION_ERROR = 38;

  // Network error, failed to send L2 Message to the remote peer
  ACCEPT_SEND_AWARE_L2_MESSAGE_FAILED = 39;
  // Network error, failed to receive L2 Message from the remote peer
  ACCEPT_RECEIVE_AWARE_L2_MESSAGE_FAILED = 40;

  // Next ID :41
}

// The error for event STOP_LISTENING_INCOMING_CONNECTION. The range between 31
// and 99.
enum StopListeningIncomingConnectionError {
  // System error, failed to stop accepting the incoming connection
  STOP_ACCEPTING_CONNECTION_FAILED = 31;

  // The default value for clearcut
  UNKNOWN_STOP_LISTENING_INCOMING_CONNECTION_ERROR = 32;

  // Next ID :33
}

// The error for event CONNECT. The range between 31 and 99.
enum ConnectError {
  // Network error, failed to connect to remote device because we lost the
  // target without MAC address to connect to. e.g. BLE cache MAC address in
  // medium, it may lost when just try to connect.
  UNEXPECT_TARGET_LOST = 31;
  // System error, failed to establish connection on GATT
  ESTABLISH_GATT_CONNECTION_FAILED = 32;
  // System error, failed to establish connection on L2CAP
  ESTABLISH_L2CAP_CONNECTION_FAILED = 33;
  // Developing error, the MAC address not valid for connecting
  INVALID_MAC_ADDRESS = 34;
  // Others error, unexpected interrupt when sleep before connect GATT for
  // waiting GATT server ready. Should not hapepen, it may be the process be
  // killed.
  SLEEP_BEFORE_CONNECT_GATT_INTERRUPTED = 35;
  // Others error, unexpected interrupt when sleep after GATT connect to wait
  // GATT connection ready to transfer data. Should not hapepen, it may be
  // the process be killed.
  SLEEP_AFTER_GATT_CONNECTED_INTERRUPTED = 36;
  // Network error, failed to configure the GATT connection priority, it may
  // failed when the connection still wait for the status update from network or
  // just a RemoteException.
  REQUEST_GATT_CONNECTION_PRIORITY_FAILED = 37;
  // Network error, failed to change connection for data transferring on L2CAP
  // connection.
  L2CAP_SWITCH_TO_DATA_TRANSFERRING_FAILED = 38;
  // Network error, failed to change connection for data transferring on GATT
  // connection.
  GATT_SWITCH_TO_DATA_TRANSFERRING_FAILED = 39;
  // System error, failed to establish connection
  ESTABLISH_CONNECTION_FAILED = 40;
  // Developing error, this connection already established, should not request
  // it again.
  DUPLICATE_CONNECTION_REQUESTED = 41;
  // Network error, the connection lost.
  CONNECTION_LOST = 42;
  // Network error, failed to connect to the network. e.g. an aware network,
  // hotspot or a direct network.
  CONNECT_TO_NETWORK_FAILED = 43;

  // The default value for clearcut
  UNKNOWN_CONNECT_ERROR = 44;

  // Network error, failed to send L2 Message to the remote peer
  CONNECT_SEND_AWARE_L2_MESSAGE_FAILED = 45;
  // Network error, failed to send L2 Message to the remote peer
  CONNECT_READ_AWARE_L2_MESSAGE_FAILED = 46;

  // Next ID :47
}

// The error for event DISCONNECT. The range between 31 and 99.
enum DisconnectError {
  // System error, failed to disconnect the network.
  DISCONNECT_NETWORK_FAILED = 31;

  // The default value for clearcut
  UNKNOWN_DISCONNECT_ERROR = 32;

  // Next ID :33
}

// The error for event SEND_PAYLOAD. The range between 31 and 99.
enum SendPayloadError {
  // The default value for clearcut
  UNKNOWN_SEND_PAYLOAD_ERROR = 31;

  // Network error, failed to send payload.
  SEND_PAYLOAD_FAILED = 32;

  // Next ID :33
}

// The error for event SEND_PAYLOAD. The range between 31 and 99.
enum ReceivePayloadError {
  // The default value for clearcut
  UNKNOWN_RECEIVE_PAYLOAD_ERROR = 31;

  // Network error, failed to send payload.
  RECEIVE_PAYLOAD_FAILED = 32;

  // Next ID :33
}

// The error for event UPGRADE. The range between 31 and 99.
enum UpgradeError {
  // The default value for clearcut
  UNKNOWN_UPGRADE_ERROR = 31;
  // System error, failed to create a wifi p2p group.
  CREATE_P2P_GROUP_FAILED = 32;

  // Next ID :33
}

// The error for event ACCEPT_CONNECTION. The range between 31 and 99.
enum AcceptConnectionError {
  // The default value for clearcut
  UNKNOWN_ACCEPT_CONNECTION_ERROR = 31;

  // Network error, failed to send accept connection.
  RESPOND_ACCEPT_CONNECTION_FAILED = 32;

  // Next ID :33
}

// The error for event REJECT_CONNECTION. The range between 31 and 99.
enum RejectConnectionError {
  // The default value for clearcut
  UNKNOWN_REJECT_CONNECTION_ERROR = 31;

  // Network error, failed to send reject connection.
  RESPOND_REJECT_CONNECTION_FAILED = 32;

  // Next ID :33
}

enum Description {
  reserved 28, 29;

  UNKNOWN = 0;
  NULL_SERVICE_ID = 1;
  NULL_ADVERTISEMENT_BYTES = 2;
  CONNECTIONS_FEATURE_DISABLED = 3;
  STALE_SDK_VERSION = 4;
  FEATURE_BLUETOOTH_NOT_SUPPORTED = 5;
  FEATURE_BLUETOOTH_LE_NOT_SUPPORTED = 6;
  NULL_BLUETOOTH_MANAGER = 7;
  NULL_BLUETOOTH_ADAPTER = 8;
  INVALID_FAST_PAIR_MODEL_ID = 9;
  INVALID_FAST_ADVERTISEMENT_DATA = 10;
  INVALID_ADVERTISEMENT_HEADER_DATA = 11;
  INVALID_REGULAR_ADVERTISEMENT_DATA = 12;
  NULL_BLUETOOTH_LE_ADVERTISER_COMPAT = 13;
  ADVERTISE_FAILED_ALREADY_STARTED = 14;
  ADVERTISE_FAILED_DATA_TOO_LARGE = 15;
  ADVERTISE_FAILED_FEATURE_UNSUPPORTED = 16;
  ADVERTISE_FAILED_INTERNAL_ERROR = 17;
  ADVERTISE_FAILED_TOO_MANY_ADVERTISERS = 18;
  INTERRUPTED_EXCEPTION = 19;
  EXECUTION_EXCEPTION = 20;
  NULL_BLUETOOTH_DEVICE_NAME = 21;
  SET_SCAN_MODE_FAILED = 22;
  INVOKE_API_FAILED = 23;
  TIMEOUT = 24;
  NULL_NFC_TAG = 25;
  FEATURE_NFC_NOT_SUPPORTED = 26;
  FEATURE_NFC_HOST_CARD_EMULATION_NOT_SUPPORTED = 27;
  MULTICAST_NOT_SUPPORTED = 30;
  NSD_NOT_ENABLED = 31;
  INVALID_PORT_NUMBER = 32;
  NULL_SERVICE_NAME = 33;
  NULL_SERVICE_TYPE = 34;
  WITHOUT_CONNECTED_WIFI_NETWORK = 35;
  FEATURE_WIFI_AWARE_NOT_SUPPORTED = 36;
  NULL_CONNECTIVITY_MANAGER = 37;
  NULL_WIFI_AWARE_MANAGER = 38;
  STALE_ANDROID_VERSION = 39;
  NULL_SERVICE_INFO = 40;
  NULL_WORK_SOURCE = 41;
  NULL_CALLBACK = 42;
  NULL_BLUETOOTH_LE_SCANNER_COMPAT = 43;
  EMPTY_WORK_SOURCE_CACHE = 44;
  SCAN_FAILED_ALREADY_STARTED = 45;
  SCAN_FAILED_APPLICATION_REGISTRATION_FAILED = 46;
  SCAN_FAILED_INTERNAL_ERROR = 47;
  SCAN_FAILED_FEATURE_UNSUPPORTED = 48;
  SCAN_FAILED_BLUETOOTH_DISABLED = 49;
  SCAN_FILTERS_NOT_ALLOWED_FOR_LOCATION = 50;
  BLUETOOTH_SCAN_REJUVENATE_FAILED = 51;
  NULL_BLE_PERIPHERAL = 52;
  NULL_BLUETOOTH_GATT = 53;
  UNEXPECTED_BLUETOOTH_STATE = 54;
  REMOTE_EXCEPTION = 55;
  INVALID_BLUETOOTH_SOCKET_STATE_BEFORE_CONNECT = 56;
  BLUETOOTH_SOCKET_CLOSED_AFTER_CONNECTED = 57;
  INVALID_BLUETOOTH_CHANNEL = 58;
  NULL_BLUETOOTH_DEVICE = 59;
  NULL_BLUETOOTH_PROXY = 60;
  INVALID_PACKET_LENGTH = 61;
  INVALID_PACKET_BYTES = 62;
  UNEXPECTED_EOF_EXCEPTION = 63;
  SOCKET_CLOSED_OR_TIMEOUT = 64;
  INVALID_IPV4_ADDRESS = 65;
  INVALID_IPV6_ADDRESS = 66;
  NULL_ADDRESS = 67;
  INVALID_VERSION = 68;
  SET_CONNECTION_PRIORITY_FAILED = 69;
  SET_CONNECTION_PRIORITY_INTERRUPTED = 70;
  UNKNOWN_IO_EXCEPTION = 71;
  READ_CHARACTERISTIC_FAILED = 72;
  WIFI_HOTSPOT_ENABLED = 73;
  AWARE_UNAVAILABLE = 74;
  IN_BLACK_LIST = 75;
  FEATURE_WIFI_NOT_SUPPORTED = 76;
  NULL_WIFI_MANAGER = 77;
  SOCKET_CLOSED = 78;
  SOCKET_ALREADY_CONNECTED = 79;
  NFC_TECH_NOT_SUPPORTED = 80;
  NFC_SERVICE_DIED = 81;
  BIND_NFC_SERVICE_FAILED = 82;
  NFC_CREATE_SOCKET_FAILED = 83;
  NULL_WIFI_AWARE_PEER = 84;
  NETWORK_ALREADY_JOINED = 85;
  JOIN_AWARE_NETWORK_CANCELLED = 86;
  NETWORK_UNAVAILABLE = 87;
  WITHOUT_ACTIVE_AWARE_NETWORK = 88;
  WITHOUT_JOINED_AWARE_NETWORK = 89;
  CONNET_TO_SOCKET_CANCELLED = 90;
  NULL_SSID = 91;
  NULL_PASSWORD = 92;
  FEATURE_WIFI_DIRECT_NOT_SUPPORTED = 93;
  NULL_WIFI_P2P_MANAGER = 94;
  P2P_GROUP_FORMED = 95;
  ACQUIRE_P2P_CHANNEL_FAILED = 96;
  P2P_UNSUPPORTED = 97;
  INTERNAL_ERROR = 98;
  BUSY = 99;
  REFLECTION_ERROR = 100;
  NETWORK_ERROR_EHOSTUNREACH = 101;
  NETWORK_ERROR_ENETUNREACH = 102;
  ADD_NETWORK_FAILED = 103;
  UPDATE_NETWORK_FAILED = 104;
  ALREADY_IN_PROGRESS = 105;
  INVALID_ARGS = 106;
  NOT_AUTHORIZED = 107;
  INVALID_NETWORK_ID = 108;
  WIFI_MANAGER_ENABLE_NETWORK_FAILED = 109;
  WIFI_MANAGER_RECONNECT_FAILED = 110;
  WITHOUT_ACTIVE_NETWORK = 111;
  WEBRTC_CONNECTION_FLOW_EXIST = 112;
  NULL_DROID_GUARD_RESULT = 113;
  TACHYON_SIGNALING_MESSENGER_EXIST = 114;
  TACHYON_ALREADY_START_RECEIVE_MESSAGE = 115;
  TACHYON_RECEIVE_MESSAGE_FAILED = 116;
  TACHYON_RECEIVE_MESSAGE_INTERRUPTED = 117;
  TACHYON_RECEIVE_MESSAGE_EXECUTION_EXCEPTION = 118;
  TACHYON_RECEIVE_MESSAGE_TIMEOUT = 119;
  TACHYON_RECEIVE_MESSAGE_AUTH_EXCEPTION = 120;
  TACHYON_RECEIVE_MESSAGE_STATUS_EXCEPTION = 121;
  TACHYON_SEND_MESSAGE_AUTH_EXCEPTION = 122;
  TACHYON_SEND_MESSAGE_STATUS_EXCEPTION = 123;
  TACHYON_GET_ICE_SERVER_AUTH_EXCEPTION = 124;
  TACHYON_GET_ICE_SERVER_STATUS_EXCEPTION = 125;
  EMPTY_TACHYON_ICE_SERVER = 126;
  POTENTIAL_WEBRTC_LIB_LOADING_FAILURE = 127;
  UNEXPECTED_GATT_DESCRIPTOR = 128;
  FAIL_TO_RECEIVE_L2CAP_PACKET = 129;
  WITHOUT_PSM_VALUE = 130;
  SOCKET_BIND_LISTEN_FAILED = 131;
  UNEXPECTED_PACKET_CONTENT = 132;
  UNREGISTER_NSD_MANAGER_FAILED = 133;
  PUBLISH_EMPTY_ADVERTISEMENT_FAILED = 134;
  BLUETOOTH_SOCKET_NOT_IN_LISTENING_STATE = 135;
  INVALID_BLUETOOTH_SOCKET_SIGNAL_SIZE = 136;
  INVALID_BLUETOOTH_SOCKET_SIGNAL_STATUS = 137;
  GET_ADDRESS_FAILED = 138;
  NULL_LOCAL_ADDRESS = 139;
  IS_LOOPBACK_ADDRESS = 140;
  SOCKET_NOT_BOUND = 141;
  INVALID_REMOTE_ADDRESS = 142;
  SOCKET_ALREADY_BOUND = 143;
  HOTSPOT_NOT_STARTED = 144;
  WEBRTC_ALREADY_INITIALIZED = 145;
  INVALID_WEBRTC_STATE = 146;
  NULL_DATA_CHANNEL = 147;
  CREATE_OFFER_FAILED = 148;
  CLOSE_SERVER_SOCKET_FAILED = 149;
  WIFI_AWARE_STARTED = 150;
  AWARE_PUBLISH_SESSION_RAN_OUT = 151;
  AWARE_SUBSCRIBE_SESSION_RAN_OUT = 152;
  AWARE_DATA_PATH_RAN_OUT = 153;
  WIFI_SIGNAL_STRENGTH_POOR = 154;
  POTENTIAL_SRD_ISSUE = 155;
  AWARE_L2_MESSAGE_HOST_NETWORK_ERROR = 156;
  AWARE_L2_MESSAGE_NETWORK_AVAILABLE_ERROR = 157;
  AWARE_L2_MESSAGE_IP_AVAILABLE_ERROR = 158;
  AWARE_L2_MESSAGE_CANCELLATION_RECEIVED = 159;
  TIE_BREAK_LOSER = 160;
  SERVER_SOCKET_UNAVAILABLE = 161;
  HOSTED_NETWORK_UNAVAILABLE = 162;
  AWARE_UPDATE_PUBLISHING_CONFIG_FAILED = 163;
  L2CAP_UNAVAILABLE = 164;
  ALREADY_HAS_GATT_CONNECTION = 165;
  UNSUPPORTED_DEVICE_TYPE = 166;
  UNSUPPORTED_DEVICE_TYPE_CHROME_OS = 167;
  UNSUPPORTED_DEVICE_TYPE_AUTO = 168;
  UNSUPPORTED_DEVICE_TYPE_TV = 169;
  UNSUPPORTED_DEVICE_TYPE_WEAR = 170;
  NULL_MESSAGE = 171;
  USER_RESTRICTION_DISALLOWED = 172;
  UNSUPPORTED_DEVICE_TYPE_PHONE = 173;
  UNSUPPORTED_DEVICE_TYPE_TABLET = 174;
  BROKEN_PIPE = 175;
  CONNECTION_ABORT = 176;
  FEATURE_USB_HOST_NOT_SUPPORTED = 177;
  FEATURE_USB_ACCESSORY_NOT_SUPPORTED = 178;
  FEATURE_USB_PORTS_NOT_FOUND = 179;
  MULTIPLEX_SOCKET_UNKNOWN_ERROR = 180;
  MULTIPLEX_SOCKET_NOT_LISTENING = 181;
  MULTIPLEX_SOCKET_DISABLED = 182;
  MULTIPLEX_SOCKET_TIMEOUT = 183;
  MULTIPLEX_SOCKET_IOEXCEPTION = 184;
  MULTIPLEX_SOCKET_UNKNOWN_RESPONSE_CODE = 185;
  MULTIPLEX_SOCKET_EXECUTION_EXCEPTION = 186;
  MULTIPLEX_SOCKET_INTERRUPTED_EXCEPTION = 187;
}
