[examples] Remove bluetooth examples

TEST=None, removed code only

Change-Id: I9ecb94497abf2fb9f0744ea3f8827b575c430b79
diff --git a/README.md b/README.md
index 3eb00e0..31cabce 100644
--- a/README.md
+++ b/README.md
@@ -23,3 +23,4 @@
 * topaz/tools/dartfmt_extras: acc1f05718af2bcfbba3317a456f82b67eec4e42
 * topaz/tools/mod: acc1f05718af2bcfbba3317a456f82b67eec4e42
 * topaz/tools/widget_explorer: acc1f05718af2bcfbba3317a456f82b67eec4e42
+* topaz/examples/bluetooth: f4287c5ae0e9b099983121b41be66e1994b83a02
diff --git a/examples/bluetooth/MAINTAINERS b/examples/bluetooth/MAINTAINERS
deleted file mode 100644
index 9ef7655..0000000
--- a/examples/bluetooth/MAINTAINERS
+++ /dev/null
@@ -1,3 +0,0 @@
-armansito@google.com
-bwb@google.com
-ejia@google.com
diff --git a/examples/bluetooth/ble_rect/BUILD.gn b/examples/bluetooth/ble_rect/BUILD.gn
deleted file mode 100644
index ed193f3..0000000
--- a/examples/bluetooth/ble_rect/BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2017 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import("//topaz/runtime/flutter_runner/flutter_app.gni")
-
-flutter_app("ble_rect") {
-  package_name = "ble_rect"
-
-  main_dart = "lib/main.dart"
-
-  deps = [
-    "//garnet/public/fidl/fuchsia.bluetooth.gatt",
-    "//garnet/public/fidl/fuchsia.bluetooth.le",
-    "//peridot/public/fidl/fuchsia.modular",
-    "//third_party/dart-pkg/git/flutter/packages/flutter",
-    "//topaz/public/dart/fidl",
-    "//topaz/public/lib/app/dart",
-    "//topaz/public/lib/app_driver/dart",
-    "//topaz/public/lib/widgets/dart",
-  ]
-}
diff --git a/examples/bluetooth/ble_rect/README.md b/examples/bluetooth/ble_rect/README.md
deleted file mode 100644
index 786f58c..0000000
--- a/examples/bluetooth/ble_rect/README.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# BLE Rect
-
-This is a Flutter application that displays a square which can be
-remotely manipulated using Bluetooth Low Energy.
-
-The application publishes a GATT (Generic Attribute Profile) service
-that provides three control points to modify different aspects of the
-square.
-
-
-## Service Definition
-
-This application publishes a custom GATT service which is identified by the
-128-bit UUID `548c2932-f58c-4c0b-9a4d-92110695a591`. The application advertises
-this service UUID along with a name ("BLE Rect") while listening for a client to
-connect.
-
-A simple WebBluetooth client to interact with this service can be found
-[here](https://armansito.github.io/ble_square_client/).
-
-This service contains the following characteristics:
-
-### Color
-
-Field | Definition
---- | :---:
-*UUID* | `2bf96f76-f872-422e-8dbd-d2b425850d91`
-*properties* | `write`
-*format* | `uint8[3]`
-*description* | RGB components of the color
-
-### Scale
-
-Field | Definition
---- | :---:
-UUID | `4939518b-b222-404d-90b5-7f675f13f27f`
-properties | `write`
-*format* | `uint8` (0-255)
-*description* | The current scale as percentage
-
-### Rotation
-
-Field | Definition
---- | :---:
-*UUID* | `f1121828-32b3-4675-a46e-db826531c348`
-*properties* | `write`
-*format* | `uint16` (0-360)
-*description* | The current rotation in degrees
diff --git a/examples/bluetooth/ble_rect/analysis_options.yaml b/examples/bluetooth/ble_rect/analysis_options.yaml
deleted file mode 100644
index 7415796..0000000
--- a/examples/bluetooth/ble_rect/analysis_options.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-# Copyright 2017 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-include: ../../../tools/analysis_options.yaml
diff --git a/examples/bluetooth/ble_rect/lib/main.dart b/examples/bluetooth/ble_rect/lib/main.dart
deleted file mode 100644
index 02a046f..0000000
--- a/examples/bluetooth/ble_rect/lib/main.dart
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2017 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'package:flutter/material.dart';
-import 'package:lib.app.dart/logging.dart';
-import 'package:lib.widgets.dart/model.dart';
-import 'package:lib.app_driver.dart/module_driver.dart';
-
-import 'src/models/ble_rect_model.dart';
-import 'src/screen.dart';
-
-void main() {
-  setupLogger();
-
-  final model = BLERectModel();
-  final driver = ModuleDriver(onTerminate: model.onTerminate);
-
-  runApp(
-    MaterialApp(
-      home: ScopedModel<BLERectModel>(
-        model: model,
-        child: BLERectScreen(),
-      ),
-    ),
-  );
-
-  driver.start().then((_) {
-    model.start(driver.environmentServices);
-  }).catchError(log.severe);
-}
diff --git a/examples/bluetooth/ble_rect/lib/src/models/ble_rect_model.dart b/examples/bluetooth/ble_rect/lib/src/models/ble_rect_model.dart
deleted file mode 100644
index b1b6f46..0000000
--- a/examples/bluetooth/ble_rect/lib/src/models/ble_rect_model.dart
+++ /dev/null
@@ -1,341 +0,0 @@
-// Copyright 2017 The Fuchsia Authors. 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:math' as math;
-import 'dart:typed_data';
-import 'dart:ui';
-
-import 'package:fidl_fuchsia_bluetooth/fidl.dart' as bt;
-import 'package:fidl_fuchsia_bluetooth_gatt/fidl.dart' as gatt;
-import 'package:fidl_fuchsia_bluetooth_le/fidl.dart' as ble;
-import 'package:lib.app.dart/app.dart';
-import 'package:lib.app.dart/logging.dart';
-import 'package:lib.widgets.dart/model.dart';
-
-/// The [Model] for the GATT Server example.
-class BLERectModel extends Model
-    implements ble.PeripheralDelegate, gatt.LocalServiceDelegate {
-  // Custom UUID for our service.
-  static const String _serviceUuid = '548c2932-f58c-4c0b-9a4d-92110695a591';
-
-  // Our service exposes 3 characteristics to control the color, rotation, and
-  // scale, transforms of our square. Each characteristic comes with a
-  // descriptor that describes the characteristic's function in a human readable
-  // form.
-  static const String _colorUuid = '2bf96f76-f872-422e-8dbd-d2b425850d91';
-  static const int _colorId = 0;
-  static const int _colorDescId = 1;
-  static const String _colorDesc = 'RGB triplet (3 octets)';
-
-  static const String _scaleUuid = '4939518b-b222-404d-90b5-7f675f13f27f';
-  static const int _scaleId = 2;
-  static const int _scaleDescId = 3;
-  static const String _scaleDesc = 'scale percentage (uint8)';
-
-  static const String _rotateUuid = 'f1121828-32b3-4675-a46e-db826531c348';
-  static const int _rotateId = 4;
-  static const int _rotateDescId = 5;
-  static const String _rotateDesc = 'rotation in degrees (uint16)';
-
-  // UUID for the "Characteristic User Description" descriptor.
-  static const String _descUuid = '00002901-0000-1000-8000-00805F9B34FB';
-
-  /// Returns the last FIDL status.
-  bt.Status get lastStatus => _lastStatus;
-
-  /// Returns true if a Central device is currently connected to us.
-  bool get isCentralConnected => _currentCentral != null;
-
-  /// Returns the name of the currently connected central, or null if not
-  /// available.
-  String get connectedCentralId => _currentCentral?.identifier;
-
-  // The low_energy.Peripheral service is used to accept connections from
-  // centrals.
-  final ble.PeripheralProxy _peripheral = new ble.PeripheralProxy();
-  final ble.PeripheralDelegateBinding _peripheralDelegate =
-      new ble.PeripheralDelegateBinding();
-
-  // The gatt.Server service is used to publish our service.
-  final gatt.ServerProxy _server = new gatt.ServerProxy();
-
-  // The delegate binding.
-  final gatt.LocalServiceDelegateBinding _serviceDelegate =
-      new gatt.LocalServiceDelegateBinding();
-
-  // The gatt.LocalService interface can be used to perform service actions,
-  // such as sending characteristic value notifications.
-  final gatt.LocalServiceProxy _service = new gatt.LocalServiceProxy();
-
-  // The currently connected BLE central, if any.
-  ble.RemoteDevice _currentCentral;
-
-  // The most recent request status. We use this to display an error when
-  // something goes wrong.
-  bt.Status _lastStatus;
-
-  /// The current color.
-  Color get color => _color;
-  Color _color = const Color(0xFF00FF00);
-
-  /// The current scale factor.
-  double get scale => _scale;
-  double _scale = 1.0;
-
-  /// The current rotation in radians.
-  double get radians => _radians;
-  double _radians = 0.0;
-
-  // Publishes our GATT service.
-  void _publishService() {
-    // Our characteristics have the lowest security requirement.
-    const gatt.SecurityRequirements sec = const gatt.SecurityRequirements(
-      encryptionRequired: false,
-      authenticationRequired: false,
-      authorizationRequired: false,
-    );
-
-    // Reads are allowed without security. Writes are not allowed.
-    const gatt.AttributePermissions readOnlyPermissions =
-        const gatt.AttributePermissions(read: sec);
-
-    // Writes are allowed without security. Reads are not allowed.
-    const gatt.AttributePermissions writeOnlyPermissions =
-        const gatt.AttributePermissions(write: sec);
-
-    // Color
-    const gatt.Characteristic color = const gatt.Characteristic(
-        id: _colorId,
-        type: _colorUuid,
-        properties: gatt.kPropertyWrite | gatt.kPropertyReliableWrite,
-        permissions: writeOnlyPermissions,
-        descriptors: <gatt.Descriptor>[
-          const gatt.Descriptor(
-              id: _colorDescId,
-              type: _descUuid,
-              permissions: readOnlyPermissions)
-        ]);
-
-    // Scale
-    const gatt.Characteristic scale = const gatt.Characteristic(
-        id: _scaleId,
-        type: _scaleUuid,
-        properties: gatt.kPropertyWrite,
-        permissions: writeOnlyPermissions,
-        descriptors: <gatt.Descriptor>[
-          const gatt.Descriptor(
-              id: _scaleDescId,
-              type: _descUuid,
-              permissions: readOnlyPermissions)
-        ]);
-
-    // Rotate
-    const gatt.Characteristic rotate = const gatt.Characteristic(
-        id: _rotateId,
-        type: _rotateUuid,
-        properties: gatt.kPropertyWriteWithoutResponse,
-        permissions: writeOnlyPermissions,
-        descriptors: <gatt.Descriptor>[
-          const gatt.Descriptor(
-              id: _rotateDescId,
-              type: _descUuid,
-              permissions: readOnlyPermissions)
-        ]);
-
-    const gatt.ServiceInfo service = const gatt.ServiceInfo(
-        id: 0,
-        primary: true,
-        type: _serviceUuid,
-        characteristics: <gatt.Characteristic>[color, scale, rotate]);
-
-    _service.ctrl.close();
-    _serviceDelegate.close();
-
-    _server.publishService(
-        service, _serviceDelegate.wrap(this), _service.ctrl.request(),
-        (bt.Status status) {
-      if (status.error != null) {
-        _lastStatus = status;
-      }
-      log.info('publishService (status: $status)');
-      notifyListeners();
-    });
-  }
-
-  // Initiates LE advertising.
-  void _startAdvertising() {
-    _currentCentral = null;
-
-    const ble.AdvertisingData data = const ble.AdvertisingData(
-      name: 'BLE Rect',
-      serviceUuids: const <String>[_serviceUuid],
-    );
-
-    // Unbind if the delegate was previously bound.
-    _peripheralDelegate.close();
-
-    // Make this app connectable by providing a peripheral delegate.
-    _peripheral
-        .startAdvertising(data, null, _peripheralDelegate.wrap(this), 60, false,
-            (bt.Status status, String advertisementId) {
-      log.info('startAdverising status: $status');
-      if (status.error != null) {
-        _lastStatus = status;
-      }
-
-      notifyListeners();
-    });
-
-    notifyListeners();
-  }
-
-  /// Connect to the BLE environment services and bootstrap the GATT service.
-  void start(ServiceProviderProxy environmentServices) {
-    connectToService(environmentServices, _server.ctrl);
-    connectToService(environmentServices, _peripheral.ctrl);
-
-    _publishService();
-    _startAdvertising();
-  }
-
-  /// Call this method when the model needs to terminate to allow it to close
-  /// any open connections
-  void onTerminate() {
-    _peripheral.ctrl.close();
-    _server.ctrl.close();
-    _service.ctrl.close();
-
-    _peripheralDelegate.close();
-    _serviceDelegate.close();
-  }
-
-  // ble.PeripheralDelegate overrides:
-
-  @override
-  void onCentralConnected(String advertisementId, ble.RemoteDevice central) {
-    log.info('Central connected: $central');
-    _currentCentral = central;
-    notifyListeners();
-  }
-
-  @override
-  void onCentralDisconnected(String deviceId) {
-    log.info('Central disconnected: $deviceId');
-
-    if (deviceId == _currentCentral?.identifier) {
-      // Start listening for new incoming connections.
-      _startAdvertising();
-    }
-  }
-
-  // gatt.ServiceDelegate overrides:
-
-  @override
-  void onCharacteristicConfiguration(
-      int characteristicId,
-      String peerId,
-      // ignore: avoid_positional_boolean_parameters
-      bool notify,
-      bool indicate) {}
-
-  @override
-  void onReadValue(int id, int offset,
-      void callback(Uint8List value, gatt.ErrorCode status)) {
-    if (offset != 0) {
-      callback(null, gatt.ErrorCode.invalidOffset);
-      return;
-    }
-
-    String description;
-    switch (id) {
-      case _colorDescId:
-        description = _colorDesc;
-        break;
-      case _scaleDescId:
-        description = _scaleDesc;
-        break;
-      case _rotateDescId:
-        description = _rotateDesc;
-        break;
-      default:
-        callback(null, gatt.ErrorCode.notPermitted);
-        return;
-    }
-
-    callback(description.runes.toList(), gatt.ErrorCode.noError);
-  }
-
-  bool _writeColor(final List<int> value) {
-    if (value.length != 3) {
-      log.info('Malformed color value (size: ${value.length})');
-      return false;
-    }
-
-    _color = new Color.fromARGB(255, value[0], value[1], value[2]);
-
-    return true;
-  }
-
-  bool _writeScale(final List<int> value) {
-    if (value.length != 1) {
-      log.info('Malformed scale value (size: ${value.length})');
-      return false;
-    }
-
-    _scale = value[0].toDouble() / 100.0;
-
-    return true;
-  }
-
-  bool _writeRotate(final List<int> value) {
-    if (value.length != 2) {
-      log.info('Malformed rotation angle (size: ${value.length})');
-      return false;
-    }
-
-    ByteBuffer buffer = new Uint8List.fromList(value).buffer;
-    ByteData bdata = new ByteData.view(buffer);
-    double angle = bdata.getUint16(0, Endian.little).toDouble();
-    _radians = angle * math.pi / 180.0;
-
-    return true;
-  }
-
-  @override
-  void onWriteValue(int id, int offset, List<int> value,
-      void callback(gatt.ErrorCode status)) {
-    if (offset != 0) {
-      callback(gatt.ErrorCode.invalidOffset);
-      return;
-    }
-
-    bool Function(List<int> value) func;
-    if (id == _colorId) {
-      func = _writeColor;
-    } else if (id == _scaleId) {
-      func = _writeScale;
-    }
-
-    if (!func(value)) {
-      callback(gatt.ErrorCode.invalidValueLength);
-      return;
-    }
-
-    callback(gatt.ErrorCode.noError);
-    notifyListeners();
-  }
-
-  @override
-  void onWriteWithoutResponse(int id, int offset, List<int> value) {
-    if (offset != 0) {
-      return;
-    }
-
-    if (!_writeRotate(value)) {
-      return;
-    }
-
-    notifyListeners();
-  }
-}
diff --git a/examples/bluetooth/ble_rect/lib/src/screen.dart b/examples/bluetooth/ble_rect/lib/src/screen.dart
deleted file mode 100644
index 686e7cb..0000000
--- a/examples/bluetooth/ble_rect/lib/src/screen.dart
+++ /dev/null
@@ -1,90 +0,0 @@
-// Copyright 2017 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// ignore_for_file: public_member_api_docs
-
-import 'package:flutter/material.dart';
-import 'package:lib.widgets.dart/model.dart';
-
-import 'models/ble_rect_model.dart';
-
-/// Custom painter for that draws the square
-class SquarePainter extends CustomPainter {
-  final Color _color;
-  double _scale;
-  double _radians;
-
-  SquarePainter(this._color, this._scale, this._radians);
-
-  @override
-  void paint(Canvas canvas, Size size) {
-    // Draw the square in the center of the canvas.
-    double edge = size.shortestSide / 2.0;
-    double x0 = size.width / 2.0;
-    double y0 = size.height / 2.0;
-    canvas
-      ..translate(x0, y0)
-      ..rotate(_radians)
-      ..scale(_scale, _scale)
-      ..drawRect(
-        new Rect.fromLTWH(-edge / 2.0, -edge / 2.0, edge, edge),
-        new Paint()..color = _color,
-      );
-  }
-
-  @override
-  bool shouldRepaint(SquarePainter oldDelegate) =>
-      oldDelegate._color != _color ||
-      oldDelegate._scale != _scale ||
-      oldDelegate._radians != _radians;
-
-  @override
-  bool hitTest(Offset position) => false;
-}
-
-class BLERectScreen extends StatelessWidget {
-  Widget _bottomText(BLERectModel model) {
-    if (model.lastStatus?.error != null) {
-      return new Text('Error: ${model.lastStatus.error.description}',
-          style: const TextStyle(color: const Color(0xFFFFC0EB)));
-    }
-
-    if (!model.isCentralConnected) {
-      return new Row(children: const <Widget>[
-        const Text('Waiting for connection...'),
-        const CircularProgressIndicator(),
-      ]);
-    }
-
-    // TODO(armansito): Show name here instead when we perform name discovery on
-    // centrals.
-    return new Align(
-        alignment: Alignment.centerLeft,
-        child: new Text('Connected: ${model.connectedCentralId}'));
-  }
-
-  @override
-  Widget build(BuildContext context) {
-    return new ScopedModelDescendant<BLERectModuleModel>(builder: (
-      BuildContext context,
-      Widget child,
-      BLERectModuleModel model,
-    ) {
-      return new Scaffold(
-          appBar: new AppBar(
-              title: const Text('BLE Rect'),
-              bottom: new PreferredSize(
-                  child: new Container(
-                      color: Colors.white, child: _bottomText(model)),
-                  preferredSize: const Size.fromHeight(10.0))),
-          body: model.isCentralConnected
-              ? new RepaintBoundary(
-                  child: new CustomPaint(
-                      child: new Container(),
-                      painter: new SquarePainter(
-                          model.color, model.scale, model.radians)))
-              : new Container(color: Colors.grey));
-    });
-  }
-}
diff --git a/examples/bluetooth/ble_rect/pubspec.yaml b/examples/bluetooth/ble_rect/pubspec.yaml
deleted file mode 100644
index d41fc66..0000000
--- a/examples/bluetooth/ble_rect/pubspec.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-# Copyright 2017 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-name: BLE Rect
-
-flutter:
-  uses-material-design: true
diff --git a/examples/bluetooth/ble_scanner/BUILD.gn b/examples/bluetooth/ble_scanner/BUILD.gn
deleted file mode 100644
index 845ca4c..0000000
--- a/examples/bluetooth/ble_scanner/BUILD.gn
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 2017 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import("//topaz/runtime/flutter_runner/flutter_app.gni")
-
-flutter_app("ble_scanner") {
-  deprecated_bare_package_url = "//build"
-
-  package_name = "ble_scanner"
-
-  main_dart = "lib/main.dart"
-
-  meta = [
-    {
-      path = rebase_path("meta/ble_scanner.cmx")
-      dest = "ble_scanner.cmx"
-    },
-  ]
-
-  deps = [
-    "//garnet/public/fidl/fuchsia.bluetooth",
-    "//garnet/public/fidl/fuchsia.bluetooth.gatt",
-    "//garnet/public/fidl/fuchsia.bluetooth.le",
-    "//peridot/public/fidl/fuchsia.modular",
-    "//third_party/dart-pkg/git/flutter/packages/flutter",
-    "//topaz/public/dart/fidl",
-    "//topaz/public/lib/app/dart",
-    "//topaz/public/lib/app_driver/dart",
-    "//topaz/public/lib/widgets/dart",
-  ]
-}
diff --git a/examples/bluetooth/ble_scanner/analysis_options.yaml b/examples/bluetooth/ble_scanner/analysis_options.yaml
deleted file mode 100644
index 7415796..0000000
--- a/examples/bluetooth/ble_scanner/analysis_options.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-# Copyright 2017 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-include: ../../../tools/analysis_options.yaml
diff --git a/examples/bluetooth/ble_scanner/lib/main.dart b/examples/bluetooth/ble_scanner/lib/main.dart
deleted file mode 100644
index f450b49..0000000
--- a/examples/bluetooth/ble_scanner/lib/main.dart
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2017 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'package:flutter/material.dart';
-import 'package:flutter/widgets.dart';
-import 'package:lib.app.dart/logging.dart';
-import 'package:lib.widgets.dart/model.dart';
-
-import 'src/models/ble_scanner_model.dart';
-import 'src/screen.dart';
-
-void main() {
-  setupLogger();
-  runApp(
-    MaterialApp(
-      home: ScopedModel<BLEScannerModel>(
-        model: BLEScannerModel(),
-        child: BLEScannerScreen(),
-      ),
-    ),
-  );
-}
diff --git a/examples/bluetooth/ble_scanner/lib/src/manufacturer_names.dart b/examples/bluetooth/ble_scanner/lib/src/manufacturer_names.dart
deleted file mode 100644
index 3331f3f..0000000
--- a/examples/bluetooth/ble_scanner/lib/src/manufacturer_names.dart
+++ /dev/null
@@ -1,1197 +0,0 @@
-// Copyright 2017 The Fuchsia Authors. 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:core';
-
-List<String> _manufacturerNames = <String>[
-  /* 0x0000 */ 'Ericsson Technology Licensing',
-  /* 0x0001 */ 'Nokia Mobile Phones',
-  /* 0x0002 */ 'Intel Corp.',
-  /* 0x0003 */ 'IBM Corp.',
-  /* 0x0004 */ 'Toshiba Corp.',
-  /* 0x0005 */ '3Com',
-  /* 0x0006 */ 'Microsoft',
-  /* 0x0007 */ 'Lucent',
-  /* 0x0008 */ 'Motorola',
-  /* 0x0009 */ 'Infineon Technologies AG',
-  /* 0x000A */ 'Cambridge Silicon Radio',
-  /* 0x000B */ 'Silicon Wave',
-  /* 0x000C */ 'Digianswer A/S',
-  /* 0x000D */ 'Texas Instruments Inc.',
-  /* 0x000E */ 'Parthus Technologies Inc.',
-  /* 0x000F */ 'Broadcom Corporation',
-  /* 0x0010 */ 'Mitel Semiconductor',
-  /* 0x0011 */ 'Widcomm, Inc.',
-  /* 0x0012 */ 'Zeevo, Inc.',
-  /* 0x0013 */ 'Atmel Corporation',
-  /* 0x0014 */ 'Mitsubishi Electric Corporation',
-  /* 0x0015 */ 'RTX Telecom A/S',
-  /* 0x0016 */ 'KC Technology Inc.',
-  /* 0x0017 */ 'Newlogic',
-  /* 0x0018 */ 'Transilica, Inc.',
-  /* 0x0019 */ 'Rohde & Schwarz GmbH & Co. KG',
-  /* 0x001A */ 'TTPCom Limited',
-  /* 0x001B */ 'Signia Technologies, Inc.',
-  /* 0x001C */ 'Conexant Systems Inc.',
-  /* 0x001D */ 'Qualcomm',
-  /* 0x001E */ 'Inventel',
-  /* 0x001F */ 'AVM Berlin',
-  /* 0x0020 */ 'BandSpeed, Inc.',
-  /* 0x0021 */ 'Mansella Ltd',
-  /* 0x0022 */ 'NEC Corporation',
-  /* 0x0023 */ 'WavePlus Technology Co., Ltd.',
-  /* 0x0024 */ 'Alcatel',
-  /* 0x0025 */ 'NXP Semiconductors (formerly Philips Semiconductors)',
-  /* 0x0026 */ 'C Technologies',
-  /* 0x0027 */ 'Open Interface',
-  /* 0x0028 */ 'R F Micro Devices',
-  /* 0x0029 */ 'Hitachi Ltd',
-  /* 0x002A */ 'Symbol Technologies, Inc.',
-  /* 0x002B */ 'Tenovis',
-  /* 0x002C */ 'Macronix International Co. Ltd.',
-  /* 0x002D */ 'GCT Semiconductor',
-  /* 0x002E */ 'Norwood Systems',
-  /* 0x002F */ 'MewTel Technology Inc.',
-  /* 0x0030 */ 'ST Microelectronics',
-  /* 0x0031 */ 'Synopsys, Inc.',
-  /* 0x0032 */ 'Red-M (Communications) Ltd',
-  /* 0x0033 */ 'Commil Ltd',
-  /* 0x0034 */ 'Computer Access Technology Corporation (CATC)',
-  /* 0x0035 */ 'Eclipse (HQ Espana) S.L.',
-  /* 0x0036 */ 'Renesas Electronics Corporation',
-  /* 0x0037 */ 'Mobilian Corporation',
-  /* 0x0038 */ 'Terax',
-  /* 0x0039 */ 'Integrated System Solution Corp.',
-  /* 0x003A */ 'Matsushita Electric Industrial Co., Ltd.',
-  /* 0x003B */ 'Gennum Corporation',
-  /* 0x003C */ 'BlackBerry Limited (formerly Research In Motion)',
-  /* 0x003D */ 'IPextreme, Inc.',
-  /* 0x003E */ 'Systems and Chips, Inc',
-  /* 0x003F */ 'Bluetooth SIG, Inc',
-  /* 0x0040 */ 'Seiko Epson Corporation',
-  /* 0x0041 */ 'Integrated Silicon Solution Taiwan, Inc.',
-  /* 0x0042 */ 'CONWISE Technology Corporation Ltd',
-  /* 0x0043 */ 'PARROT SA',
-  /* 0x0044 */ 'Socket Mobile',
-  /* 0x0045 */ 'Atheros Communications, Inc.',
-  /* 0x0046 */ 'MediaTek, Inc.',
-  /* 0x0047 */ 'Bluegiga',
-  /* 0x0048 */ 'Marvell Technology Group Ltd.',
-  /* 0x0049 */ '3DSP Corporation',
-  /* 0x004A */ 'Accel Semiconductor Ltd.',
-  /* 0x004B */ 'Continental Automotive Systems',
-  /* 0x004C */ 'Apple, Inc.',
-  /* 0x004D */ 'Staccato Communications, Inc.',
-  /* 0x004E */ 'Avago Technologies',
-  /* 0x004F */ 'APT Ltd.',
-  /* 0x0050 */ 'SiRF Technology, Inc.',
-  /* 0x0051 */ 'Tzero Technologies, Inc.',
-  /* 0x0052 */ 'J&M Corporation',
-  /* 0x0053 */ 'Free2move AB',
-  /* 0x0054 */ '3DiJoy Corporation',
-  /* 0x0055 */ 'Plantronics, Inc.',
-  /* 0x0056 */ 'Sony Ericsson Mobile Communications',
-  /* 0x0057 */ 'Harman International Industries, Inc.',
-  /* 0x0058 */ 'Vizio, Inc.',
-  /* 0x0059 */ 'Nordic Semiconductor ASA',
-  /* 0x005A */ 'EM Microelectronic-Marin SA',
-  /* 0x005B */ 'Ralink Technology Corporation',
-  /* 0x005C */ 'Belkin International, Inc.',
-  /* 0x005D */ 'Realtek Semiconductor Corporation',
-  /* 0x005E */ 'Stonestreet One, LLC',
-  /* 0x005F */ 'Wicentric, Inc.',
-  /* 0x0060 */ 'RivieraWaves S.A.S',
-  /* 0x0061 */ 'RDA Microelectronics',
-  /* 0x0062 */ 'Gibson Guitars',
-  /* 0x0063 */ 'MiCommand Inc.',
-  /* 0x0064 */ 'Band XI International, LLC',
-  /* 0x0065 */ 'Hewlett-Packard Company',
-  /* 0x0066 */ '9Solutions Oy',
-  /* 0x0067 */ 'GN Netcom A/S',
-  /* 0x0068 */ 'General Motors',
-  /* 0x0069 */ 'A&D Engineering, Inc.',
-  /* 0x006A */ 'MindTree Ltd.',
-  /* 0x006B */ 'Polar Electro OY',
-  /* 0x006C */ 'Beautiful Enterprise Co., Ltd.',
-  /* 0x006D */ 'BriarTek, Inc',
-  /* 0x006E */ 'Summit Data Communications, Inc.',
-  /* 0x006F */ 'Sound ID',
-  /* 0x0070 */ 'Monster, LLC',
-  /* 0x0071 */ 'connectBlue AB',
-  /* 0x0072 */ 'ShangHai Super Smart Electronics Co. Ltd.',
-  /* 0x0073 */ 'Group Sense Ltd.',
-  /* 0x0074 */ 'Zomm, LLC',
-  /* 0x0075 */ 'Samsung Electronics Co. Ltd.',
-  /* 0x0076 */ 'Creative Technology Ltd.',
-  /* 0x0077 */ 'Laird Technologies',
-  /* 0x0078 */ 'Nike, Inc.',
-  /* 0x0079 */ 'lesswire AG',
-  /* 0x007A */ 'MStar Semiconductor, Inc.',
-  /* 0x007B */ 'Hanlynn Technologies',
-  /* 0x007C */ 'A & R Cambridge',
-  /* 0x007D */ 'Seers Technology Co., Ltd.',
-  /* 0x007E */ 'Sports Tracking Technologies Ltd.',
-  /* 0x007F */ 'Autonet Mobile',
-  /* 0x0080 */ 'DeLorme Publishing Company, Inc.',
-  /* 0x0081 */ 'WuXi Vimicro',
-  /* 0x0082 */ 'Sennheiser Communications A/S',
-  /* 0x0083 */ 'TimeKeeping Systems, Inc.',
-  /* 0x0084 */ 'Ludus Helsinki Ltd.',
-  /* 0x0085 */ 'BlueRadios, Inc.',
-  /* 0x0086 */ 'Equinux AG',
-  /* 0x0087 */ 'Garmin International, Inc.',
-  /* 0x0088 */ 'Ecotest',
-  /* 0x0089 */ 'GN ReSound A/S',
-  /* 0x008A */ 'Jawbone',
-  /* 0x008B */ 'Topcon Positioning Systems, LLC',
-  /* 0x008C */ 'Gimbal Inc. (formerly Qualcomm Labs, Inc. and Qualcomm Retail Solutions, Inc.)',
-  /* 0x008D */ 'Zscan Software',
-  /* 0x008E */ 'Quintic Corp',
-  /* 0x008F */ 'Telit Wireless Solutions GmbH (formerly Stollmann E+V GmbH)',
-  /* 0x0090 */ 'Funai Electric Co., Ltd.',
-  /* 0x0091 */ 'Advanced PANMOBIL systems GmbH & Co. KG',
-  /* 0x0092 */ 'ThinkOptics, Inc.',
-  /* 0x0093 */ 'Universal Electronics, Inc.',
-  /* 0x0094 */ 'Airoha Technology Corp.',
-  /* 0x0095 */ 'NEC Lighting, Ltd.',
-  /* 0x0096 */ 'ODM Technology, Inc.',
-  /* 0x0097 */ 'ConnecteDevice Ltd.',
-  /* 0x0098 */ 'zero1.tv GmbH',
-  /* 0x0099 */ 'i.Tech Dynamic Global Distribution Ltd.',
-  /* 0x009A */ 'Alpwise',
-  /* 0x009B */ 'Jiangsu Toppower Automotive Electronics Co., Ltd.',
-  /* 0x009C */ 'Colorfy, Inc.',
-  /* 0x009D */ 'Geoforce Inc.',
-  /* 0x009E */ 'Bose Corporation',
-  /* 0x009F */ 'Suunto Oy',
-  /* 0x00A0 */ 'Kensington Computer Products Group',
-  /* 0x00A1 */ 'SR-Medizinelektronik',
-  /* 0x00A2 */ 'Vertu Corporation Limited',
-  /* 0x00A3 */ 'Meta Watch Ltd.',
-  /* 0x00A4 */ 'LINAK A/S',
-  /* 0x00A5 */ 'OTL Dynamics LLC',
-  /* 0x00A6 */ 'Panda Ocean Inc.',
-  /* 0x00A7 */ 'Visteon Corporation',
-  /* 0x00A8 */ 'ARP Devices Limited',
-  /* 0x00A9 */ 'Magneti Marelli S.p.A',
-  /* 0x00AA */ 'CAEN RFID srl',
-  /* 0x00AB */ 'Ingenieur-Systemgruppe Zahn GmbH',
-  /* 0x00AC */ 'Green Throttle Games',
-  /* 0x00AD */ 'Peter Systemtechnik GmbH',
-  /* 0x00AE */ 'Omegawave Oy',
-  /* 0x00AF */ 'Cinetix',
-  /* 0x00B0 */ 'Passif Semiconductor Corp',
-  /* 0x00B1 */ 'Saris Cycling Group, Inc',
-  /* 0x00B2 */ 'Bekey A/S',
-  /* 0x00B3 */ 'Clarinox Technologies Pty. Ltd.',
-  /* 0x00B4 */ 'BDE Technology Co., Ltd.',
-  /* 0x00B5 */ 'Swirl Networks',
-  /* 0x00B6 */ 'Meso international',
-  /* 0x00B7 */ 'TreLab Ltd',
-  /* 0x00B8 */ 'Qualcomm Innovation Center, Inc. (QuIC)',
-  /* 0x00B9 */ 'Johnson Controls, Inc.',
-  /* 0x00BA */ 'Starkey Laboratories Inc.',
-  /* 0x00BB */ 'S-Power Electronics Limited',
-  /* 0x00BC */ 'Ace Sensor Inc',
-  /* 0x00BD */ 'Aplix Corporation',
-  /* 0x00BE */ 'AAMP of America',
-  /* 0x00BF */ 'Stalmart Technology Limited',
-  /* 0x00C0 */ 'AMICCOM Electronics Corporation',
-  /* 0x00C1 */ 'Shenzhen Excelsecu Data Technology Co.,Ltd',
-  /* 0x00C2 */ 'Geneq Inc.',
-  /* 0x00C3 */ 'adidas AG',
-  /* 0x00C4 */ 'LG Electronics',
-  /* 0x00C5 */ 'Onset Computer Corporation',
-  /* 0x00C6 */ 'Selfly BV',
-  /* 0x00C7 */ 'Quuppa Oy.',
-  /* 0x00C8 */ 'GeLo Inc',
-  /* 0x00C9 */ 'Evluma',
-  /* 0x00CA */ 'MC10',
-  /* 0x00CB */ 'Binauric SE',
-  /* 0x00CC */ 'Beats Electronics',
-  /* 0x00CD */ 'Microchip Technology Inc.',
-  /* 0x00CE */ 'Elgato Systems GmbH',
-  /* 0x00CF */ 'ARCHOS SA',
-  /* 0x00D0 */ 'Dexcom, Inc.',
-  /* 0x00D1 */ 'Polar Electro Europe B.V.',
-  /* 0x00D2 */ 'Dialog Semiconductor B.V.',
-  /* 0x00D3 */ 'Taixingbang Technology (HK) Co,. LTD.',
-  /* 0x00D4 */ 'Kawantech',
-  /* 0x00D5 */ 'Austco Communication Systems',
-  /* 0x00D6 */ 'Timex Group USA, Inc.',
-  /* 0x00D7 */ 'Qualcomm Technologies, Inc.',
-  /* 0x00D8 */ 'Qualcomm Connected Experiences, Inc.',
-  /* 0x00D9 */ 'Voyetra Turtle Beach',
-  /* 0x00DA */ 'txtr GmbH',
-  /* 0x00DB */ 'Biosentronics',
-  /* 0x00DC */ 'Procter & Gamble',
-  /* 0x00DD */ 'Hosiden Corporation',
-  /* 0x00DE */ 'Muzik LLC',
-  /* 0x00DF */ 'Misfit Wearables Corp',
-  /* 0x00E0 */ 'Google',
-  /* 0x00E1 */ 'Danlers Ltd',
-  /* 0x00E2 */ 'Semilink Inc',
-  /* 0x00E3 */ 'inMusic Brands, Inc',
-  /* 0x00E4 */ 'L.S. Research Inc.',
-  /* 0x00E5 */ 'Eden Software Consultants Ltd.',
-  /* 0x00E6 */ 'Freshtemp',
-  /* 0x00E7 */ 'KS Technologies',
-  /* 0x00E8 */ 'ACTS Technologies',
-  /* 0x00E9 */ 'Vtrack Systems',
-  /* 0x00EA */ 'Nielsen-Kellerman Company',
-  /* 0x00EB */ 'Server Technology Inc.',
-  /* 0x00EC */ 'BioResearch Associates',
-  /* 0x00ED */ 'Jolly Logic, LLC',
-  /* 0x00EE */ 'Above Average Outcomes, Inc.',
-  /* 0x00EF */ 'Bitsplitters GmbH',
-  /* 0x00F0 */ 'PayPal, Inc.',
-  /* 0x00F1 */ 'Witron Technology Limited',
-  /* 0x00F2 */ 'Morse Project Inc.',
-  /* 0x00F3 */ 'Kent Displays Inc.',
-  /* 0x00F4 */ 'Nautilus Inc.',
-  /* 0x00F5 */ 'Smartifier Oy',
-  /* 0x00F6 */ 'Elcometer Limited',
-  /* 0x00F7 */ 'VSN Technologies, Inc.',
-  /* 0x00F8 */ 'AceUni Corp., Ltd.',
-  /* 0x00F9 */ 'StickNFind',
-  /* 0x00FA */ 'Crystal Code AB',
-  /* 0x00FB */ 'KOUKAAM a.s.',
-  /* 0x00FC */ 'Delphi Corporation',
-  /* 0x00FD */ 'ValenceTech Limited',
-  /* 0x00FE */ 'Stanley Black and Decker',
-  /* 0x00FF */ 'Typo Products, LLC',
-  /* 0x0100 */ 'TomTom International BV',
-  /* 0x0101 */ 'Fugoo, Inc.',
-  /* 0x0102 */ 'Keiser Corporation',
-  /* 0x0103 */ 'Bang & Olufsen A/S',
-  /* 0x0104 */ 'PLUS Location Systems Pty Ltd',
-  /* 0x0105 */ 'Ubiquitous Computing Technology Corporation',
-  /* 0x0106 */ 'Innovative Yachtter Solutions',
-  /* 0x0107 */ 'William Demant Holding A/S',
-  /* 0x0108 */ 'Chicony Electronics Co., Ltd.',
-  /* 0x0109 */ 'Atus BV',
-  /* 0x010A */ 'Codegate Ltd',
-  /* 0x010B */ 'ERi, Inc',
-  /* 0x010C */ 'Transducers Direct, LLC',
-  /* 0x010D */ 'Fujitsu Ten LImited',
-  /* 0x010E */ 'Audi AG',
-  /* 0x010F */ 'HiSilicon Technologies Col, Ltd.',
-  /* 0x0110 */ 'Nippon Seiki Co., Ltd.',
-  /* 0x0111 */ 'Steelseries ApS',
-  /* 0x0112 */ 'Visybl Inc.',
-  /* 0x0113 */ 'Openbrain Technologies, Co., Ltd.',
-  /* 0x0114 */ 'Xensr',
-  /* 0x0115 */ 'e.solutions',
-  /* 0x0116 */ '10AK Technologies',
-  /* 0x0117 */ 'Wimoto Technologies Inc',
-  /* 0x0118 */ 'Radius Networks, Inc.',
-  /* 0x0119 */ 'Wize Technology Co., Ltd.',
-  /* 0x011A */ 'Qualcomm Labs, Inc.',
-  /* 0x011B */ 'Aruba Networks',
-  /* 0x011C */ 'Baidu',
-  /* 0x011D */ 'Arendi AG',
-  /* 0x011E */ 'Skoda Auto a.s.',
-  /* 0x011F */ 'Volkswagen AG',
-  /* 0x0120 */ 'Porsche AG',
-  /* 0x0121 */ 'Sino Wealth Electronic Ltd.',
-  /* 0x0122 */ 'AirTurn, Inc.',
-  /* 0x0123 */ 'Kinsa, Inc',
-  /* 0x0124 */ 'HID Global',
-  /* 0x0125 */ 'SEAT es',
-  /* 0x0126 */ 'Promethean Ltd.',
-  /* 0x0127 */ 'Salutica Allied Solutions',
-  /* 0x0128 */ 'GPSI Group Pty Ltd',
-  /* 0x0129 */ 'Nimble Devices Oy',
-  /* 0x012A */ 'Changzhou Yongse Infotech Co., Ltd.',
-  /* 0x012B */ 'SportIQ',
-  /* 0x012C */ 'TEMEC Instruments B.V.',
-  /* 0x012D */ 'Sony Corporation',
-  /* 0x012E */ 'ASSA ABLOY',
-  /* 0x012F */ 'Clarion Co. Inc.',
-  /* 0x0130 */ 'Warehouse Innovations',
-  /* 0x0131 */ 'Cypress Semiconductor',
-  /* 0x0132 */ 'MADS Inc',
-  /* 0x0133 */ 'Blue Maestro Limited',
-  /* 0x0134 */ 'Resolution Products, Ltd.',
-  /* 0x0135 */ 'Aireware LLC',
-  /* 0x0136 */ 'Seed Labs, Inc. (formerly ETC sp. z.o.o.)',
-  /* 0x0137 */ 'Prestigio Plaza Ltd.',
-  /* 0x0138 */ 'NTEO Inc.',
-  /* 0x0139 */ 'Focus Systems Corporation',
-  /* 0x013A */ 'Tencent Holdings Ltd.',
-  /* 0x013B */ 'Allegion',
-  /* 0x013C */ 'Murata Manufacturing Co., Ltd.',
-  /* 0x013D */ 'WirelessWERX',
-  /* 0x013E */ 'Nod, Inc.',
-  /* 0x013F */ 'B&B Manufacturing Company',
-  /* 0x0140 */ 'Alpine Electronics (China) Co., Ltd',
-  /* 0x0141 */ 'FedEx Services',
-  /* 0x0142 */ 'Grape Systems Inc.',
-  /* 0x0143 */ 'Bkon Connect',
-  /* 0x0144 */ 'Lintech GmbH',
-  /* 0x0145 */ 'Novatel Wireless',
-  /* 0x0146 */ 'Ciright',
-  /* 0x0147 */ 'Mighty Cast, Inc.',
-  /* 0x0148 */ 'Ambimat Electronics',
-  /* 0x0149 */ 'Perytons Ltd.',
-  /* 0x014A */ 'Tivoli Audio, LLC',
-  /* 0x014B */ 'Master Lock',
-  /* 0x014C */ 'Mesh-Net Ltd',
-  /* 0x014D */ 'HUIZHOU DESAY SV AUTOMOTIVE CO., LTD.',
-  /* 0x014E */ 'Tangerine, Inc.',
-  /* 0x014F */ 'B&W Group Ltd.',
-  /* 0x0150 */ 'Pioneer Corporation',
-  /* 0x0151 */ 'OnBeep',
-  /* 0x0152 */ 'Vernier Software & Technology',
-  /* 0x0153 */ 'ROL Ergo',
-  /* 0x0154 */ 'Pebble Technology',
-  /* 0x0155 */ 'NETATMO',
-  /* 0x0156 */ 'Accumulate AB',
-  /* 0x0157 */ 'Anhui Huami Information Technology Co., Ltd.',
-  /* 0x0158 */ 'Inmite s.r.o.',
-  /* 0x0159 */ 'ChefSteps, Inc.',
-  /* 0x015A */ 'micas AG',
-  /* 0x015B */ 'Biomedical Research Ltd.',
-  /* 0x015C */ 'Pitius Tec S.L.',
-  /* 0x015D */ 'Estimote, Inc.',
-  /* 0x015E */ 'Unikey Technologies, Inc.',
-  /* 0x015F */ 'Timer Cap Co.',
-  /* 0x0160 */ 'AwoX',
-  /* 0x0161 */ 'yikes',
-  /* 0x0162 */ 'MADSGlobalNZ Ltd.',
-  /* 0x0163 */ 'PCH International',
-  /* 0x0164 */ 'Qingdao Yeelink Information Technology Co., Ltd.',
-  /* 0x0165 */ 'Milwaukee Tool (Formally Milwaukee Electric Tools)',
-  /* 0x0166 */ 'MISHIK Pte Ltd',
-  /* 0x0167 */ 'Bayer HealthCare',
-  /* 0x0168 */ 'Spicebox LLC',
-  /* 0x0169 */ 'emberlight',
-  /* 0x016A */ 'Cooper-Atkins Corporation',
-  /* 0x016B */ 'Qblinks',
-  /* 0x016C */ 'MYSPHERA',
-  /* 0x016D */ 'LifeScan Inc',
-  /* 0x016E */ 'Volantic AB',
-  /* 0x016F */ 'Podo Labs, Inc',
-  /* 0x0170 */ 'Roche Diabetes Care AG',
-  /* 0x0171 */ 'Amazon Fulfillment Service',
-  /* 0x0172 */ 'Connovate Technology Private Limited',
-  /* 0x0173 */ 'Kocomojo, LLC',
-  /* 0x0174 */ 'EveryKey LLC',
-  /* 0x0175 */ 'Dynamic Controls',
-  /* 0x0176 */ 'SentriLock',
-  /* 0x0177 */ 'I-SYST inc.',
-  /* 0x0178 */ 'CASIO COMPUTER CO., LTD.',
-  /* 0x0179 */ 'LAPIS Semiconductor Co., Ltd.',
-  /* 0x017A */ 'Telemonitor, Inc.',
-  /* 0x017B */ 'taskit GmbH',
-  /* 0x017C */ 'Daimler AG',
-  /* 0x017D */ 'BatAndCat',
-  /* 0x017E */ 'BluDotz Ltd',
-  /* 0x017F */ 'XTel Wireless ApS',
-  /* 0x0180 */ 'Gigaset Communications GmbH',
-  /* 0x0181 */ 'Gecko Health Innovations, Inc.',
-  /* 0x0182 */ 'HOP Ubiquitous',
-  /* 0x0183 */ 'Walt Disney',
-  /* 0x0184 */ 'Nectar',
-  /* 0x0185 */ 'bel\'apps LLC',
-  /* 0x0186 */ 'CORE Lighting Ltd',
-  /* 0x0187 */ 'Seraphim Sense Ltd',
-  /* 0x0188 */ 'Unico RBC',
-  /* 0x0189 */ 'Physical Enterprises Inc.',
-  /* 0x018A */ 'Able Trend Technology Limited',
-  /* 0x018B */ 'Konica Minolta, Inc.',
-  /* 0x018C */ 'Wilo SE',
-  /* 0x018D */ 'Extron Design Services',
-  /* 0x018E */ 'Fitbit, Inc.',
-  /* 0x018F */ 'Fireflies Systems',
-  /* 0x0190 */ 'Intelletto Technologies Inc.',
-  /* 0x0191 */ 'FDK CORPORATION',
-  /* 0x0192 */ 'Cloudleaf, Inc',
-  /* 0x0193 */ 'Maveric Automation LLC',
-  /* 0x0194 */ 'Acoustic Stream Corporation',
-  /* 0x0195 */ 'Zuli',
-  /* 0x0196 */ 'Paxton Access Ltd',
-  /* 0x0197 */ 'WiSilica Inc.',
-  /* 0x0198 */ 'VENGIT Korlatolt Felelossegu Tarsasag',
-  /* 0x0199 */ 'SALTO SYSTEMS S.L.',
-  /* 0x019A */ 'TRON Forum (formerly T-Engine Forum)',
-  /* 0x019B */ 'CUBETECH s.r.o.',
-  /* 0x019C */ 'Cokiya Incorporated',
-  /* 0x019D */ 'CVS Health',
-  /* 0x019E */ 'Ceruus',
-  /* 0x019F */ 'Strainstall Ltd',
-  /* 0x01A0 */ 'Channel Enterprises (HK) Ltd.',
-  /* 0x01A1 */ 'FIAMM',
-  /* 0x01A2 */ 'GIGALANE.CO.,LTD',
-  /* 0x01A3 */ 'EROAD',
-  /* 0x01A4 */ 'Mine Safety Appliances',
-  /* 0x01A5 */ 'Icon Health and Fitness',
-  /* 0x01A6 */ 'Asandoo GmbH',
-  /* 0x01A7 */ 'ENERGOUS CORPORATION',
-  /* 0x01A8 */ 'Taobao',
-  /* 0x01A9 */ 'Canon Inc.',
-  /* 0x01AA */ 'Geophysical Technology Inc.',
-  /* 0x01AB */ 'Facebook, Inc.',
-  /* 0x01AC */ 'Nipro Diagnostics, Inc.',
-  /* 0x01AD */ 'FlightSafety International',
-  /* 0x01AE */ 'Earlens Corporation',
-  /* 0x01AF */ 'Sunrise Micro Devices, Inc.',
-  /* 0x01B0 */ 'Star Micronics Co., Ltd.',
-  /* 0x01B1 */ 'Netizens Sp. z o.o.',
-  /* 0x01B2 */ 'Nymi Inc.',
-  /* 0x01B3 */ 'Nytec, Inc.',
-  /* 0x01B4 */ 'Trineo Sp. z o.o.',
-  /* 0x01B5 */ 'Nest Labs Inc.',
-  /* 0x01B6 */ 'LM Technologies Ltd',
-  /* 0x01B7 */ 'General Electric Company',
-  /* 0x01B8 */ 'i+D3 S.L.',
-  /* 0x01B9 */ 'HANA Micron',
-  /* 0x01BA */ 'Stages Cycling LLC',
-  /* 0x01BB */ 'Cochlear Bone Anchored Solutions AB',
-  /* 0x01BC */ 'SenionLab AB',
-  /* 0x01BD */ 'Syszone Co., Ltd',
-  /* 0x01BE */ 'Pulsate Mobile Ltd.',
-  /* 0x01BF */ 'Hong Kong HunterSun Electronic Limited',
-  /* 0x01C0 */ 'pironex GmbH',
-  /* 0x01C1 */ 'BRADATECH Corp.',
-  /* 0x01C2 */ 'Transenergooil AG',
-  /* 0x01C3 */ 'Bunch',
-  /* 0x01C4 */ 'DME Microelectronics',
-  /* 0x01C5 */ 'Bitcraze AB',
-  /* 0x01C6 */ 'HASWARE Inc.',
-  /* 0x01C7 */ 'Abiogenix Inc.',
-  /* 0x01C8 */ 'Poly-Control ApS',
-  /* 0x01C9 */ 'Avi-on',
-  /* 0x01CA */ 'Laerdal Medical AS',
-  /* 0x01CB */ 'Fetch My Pet',
-  /* 0x01CC */ 'Sam Labs Ltd.',
-  /* 0x01CD */ 'Chengdu Synwing Technology Ltd',
-  /* 0x01CE */ 'HOUWA SYSTEM DESIGN, k.k.',
-  /* 0x01CF */ 'BSH',
-  /* 0x01D0 */ 'Primus Inter Pares Ltd',
-  /* 0x01D1 */ 'August Home, Inc',
-  /* 0x01D2 */ 'Gill Electronics',
-  /* 0x01D3 */ 'Sky Wave Design',
-  /* 0x01D4 */ 'Newlab S.r.l.',
-  /* 0x01D5 */ 'ELAD srl',
-  /* 0x01D6 */ 'G-wearables inc.',
-  /* 0x01D7 */ 'Squadrone Systems Inc.',
-  /* 0x01D8 */ 'Code Corporation',
-  /* 0x01D9 */ 'Savant Systems LLC',
-  /* 0x01DA */ 'Logitech International SA',
-  /* 0x01DB */ 'Innblue Consulting',
-  /* 0x01DC */ 'iParking Ltd.',
-  /* 0x01DD */ 'Koninklijke Philips Electronics N.V.',
-  /* 0x01DE */ 'Minelab Electronics Pty Limited',
-  /* 0x01DF */ 'Bison Group Ltd.',
-  /* 0x01E0 */ 'Widex A/S',
-  /* 0x01E1 */ 'Jolla Ltd',
-  /* 0x01E2 */ 'Lectronix, Inc.',
-  /* 0x01E3 */ 'Caterpillar Inc',
-  /* 0x01E4 */ 'Freedom Innovations',
-  /* 0x01E5 */ 'Dynamic Devices Ltd',
-  /* 0x01E6 */ 'Technology Solutions (UK) Ltd',
-  /* 0x01E7 */ 'IPS Group Inc.',
-  /* 0x01E8 */ 'STIR',
-  /* 0x01E9 */ 'Sano, Inc.',
-  /* 0x01EA */ 'Advanced Application Design, Inc.',
-  /* 0x01EB */ 'AutoMap LLC',
-  /* 0x01EC */ 'Spreadtrum Communications Shanghai Ltd',
-  /* 0x01ED */ 'CuteCircuit LTD',
-  /* 0x01EE */ 'Valeo Service',
-  /* 0x01EF */ 'Fullpower Technologies, Inc.',
-  /* 0x01F0 */ 'KloudNation',
-  /* 0x01F1 */ 'Zebra Technologies Corporation',
-  /* 0x01F2 */ 'Itron, Inc.',
-  /* 0x01F3 */ 'The University of Tokyo',
-  /* 0x01F4 */ 'UTC Fire and Security',
-  /* 0x01F5 */ 'Cool Webthings Limited',
-  /* 0x01F6 */ 'DJO Global',
-  /* 0x01F7 */ 'Gelliner Limited',
-  /* 0x01F8 */ 'Anyka (Guangzhou) Microelectronics Technology Co, LTD',
-  /* 0x01F9 */ 'Medtronic Inc.',
-  /* 0x01FA */ 'Gozio Inc.',
-  /* 0x01FB */ 'Form Lifting, LLC',
-  /* 0x01FC */ 'Wahoo Fitness, LLC',
-  /* 0x01FD */ 'Kontakt Micro-Location Sp. z o.o.',
-  /* 0x01FE */ 'Radio Systems Corporation',
-  /* 0x01FF */ 'Freescale Semiconductor, Inc.',
-  /* 0x0200 */ 'Verifone Systems Pte Ltd. Taiwan Branch',
-  /* 0x0201 */ 'AR Timing',
-  /* 0x0202 */ 'Rigado LLC',
-  /* 0x0203 */ 'Kemppi Oy',
-  /* 0x0204 */ 'Tapcentive Inc.',
-  /* 0x0205 */ 'Smartbotics Inc.',
-  /* 0x0206 */ 'Otter Products, LLC',
-  /* 0x0207 */ 'STEMP Inc.',
-  /* 0x0208 */ 'LumiGeek LLC',
-  /* 0x0209 */ 'InvisionHeart Inc.',
-  /* 0x020A */ 'Macnica Inc.',
-  /* 0x020B */ 'Jaguar Land Rover Limited',
-  /* 0x020C */ 'CoroWare Technologies, Inc',
-  /* 0x020D */ 'Simplo Technology Co., LTD',
-  /* 0x020E */ 'Omron Healthcare Co., LTD',
-  /* 0x020F */ 'Comodule GMBH',
-  /* 0x0210 */ 'ikeGPS',
-  /* 0x0211 */ 'Telink Semiconductor Co. Ltd',
-  /* 0x0212 */ 'Interplan Co., Ltd',
-  /* 0x0213 */ 'Wyler AG',
-  /* 0x0214 */ 'IK Multimedia Production srl',
-  /* 0x0215 */ 'Lukoton Experience Oy',
-  /* 0x0216 */ 'MTI Ltd',
-  /* 0x0217 */ 'Tech4home, Lda',
-  /* 0x0218 */ 'Hiotech AB',
-  /* 0x0219 */ 'DOTT Limited',
-  /* 0x021A */ 'Blue Speck Labs, LLC',
-  /* 0x021B */ 'Cisco Systems, Inc',
-  /* 0x021C */ 'Mobicomm Inc',
-  /* 0x021D */ 'Edamic',
-  /* 0x021E */ 'Goodnet, Ltd',
-  /* 0x021F */ 'Luster Leaf Products Inc',
-  /* 0x0220 */ 'Manus Machina BV',
-  /* 0x0221 */ 'Mobiquity Networks Inc',
-  /* 0x0222 */ 'Praxis Dynamics',
-  /* 0x0223 */ 'Philip Morris Products S.A.',
-  /* 0x0224 */ 'Comarch SA',
-  /* 0x0225 */ 'Nestl Nespresso S.A.',
-  /* 0x0226 */ 'Merlinia A/S',
-  /* 0x0227 */ 'LifeBEAM Technologies',
-  /* 0x0228 */ 'Twocanoes Labs, LLC',
-  /* 0x0229 */ 'Muoverti Limited',
-  /* 0x022A */ 'Stamer Musikanlagen GMBH',
-  /* 0x022B */ 'Tesla Motors',
-  /* 0x022C */ 'Pharynks Corporation',
-  /* 0x022D */ 'Lupine',
-  /* 0x022E */ 'Siemens AG',
-  /* 0x022F */ 'Huami (Shanghai) Culture Communication CO., LTD',
-  /* 0x0230 */ 'Foster Electric Company, Ltd',
-  /* 0x0231 */ 'ETA SA',
-  /* 0x0232 */ 'x-Senso Solutions Kft',
-  /* 0x0233 */ 'Shenzhen SuLong Communication Ltd',
-  /* 0x0234 */ 'FengFan (BeiJing) Technology Co, Ltd',
-  /* 0x0235 */ 'Qrio Inc',
-  /* 0x0236 */ 'Pitpatpet Ltd',
-  /* 0x0237 */ 'MSHeli s.r.l.',
-  /* 0x0238 */ 'Trakm8 Ltd',
-  /* 0x0239 */ 'JIN CO, Ltd',
-  /* 0x023A */ 'Alatech Tehnology',
-  /* 0x023B */ 'Beijing CarePulse Electronic Technology Co, Ltd',
-  /* 0x023C */ 'Awarepoint',
-  /* 0x023D */ 'ViCentra B.V.',
-  /* 0x023E */ 'Raven Industries',
-  /* 0x023F */ 'WaveWare Technologies Inc.',
-  /* 0x0240 */ 'Argenox Technologies',
-  /* 0x0241 */ 'Bragi GmbH',
-  /* 0x0242 */ '16Lab Inc',
-  /* 0x0243 */ 'Masimo Corp',
-  /* 0x0244 */ 'Iotera Inc',
-  /* 0x0245 */ 'Endress+Hauser',
-  /* 0x0246 */ 'ACKme Networks, Inc.',
-  /* 0x0247 */ 'FiftyThree Inc.',
-  /* 0x0248 */ 'Parker Hannifin Corp',
-  /* 0x0249 */ 'Transcranial Ltd',
-  /* 0x024A */ 'Uwatec AG',
-  /* 0x024B */ 'Orlan LLC',
-  /* 0x024C */ 'Blue Clover Devices',
-  /* 0x024D */ 'M-Way Solutions GmbH',
-  /* 0x024E */ 'Microtronics Engineering GmbH',
-  /* 0x024F */ 'Schneider Schreibgerte GmbH',
-  /* 0x0250 */ 'Sapphire Circuits LLC',
-  /* 0x0251 */ 'Lumo Bodytech Inc.',
-  /* 0x0252 */ 'UKC Technosolution',
-  /* 0x0253 */ 'Xicato Inc.',
-  /* 0x0254 */ 'Playbrush',
-  /* 0x0255 */ 'Dai Nippon Printing Co., Ltd.',
-  /* 0x0256 */ 'G24 Power Limited',
-  /* 0x0257 */ 'AdBabble Local Commerce Inc.',
-  /* 0x0258 */ 'Devialet SA',
-  /* 0x0259 */ 'ALTYOR',
-  /* 0x025A */ 'University of Applied Sciences Valais/Haute Ecole Valaisanne',
-  /* 0x025B */ 'Five Interactive, LLC dba Zendo',
-  /* 0x025C */ 'NetEaseHangzhouNetwork co.Ltd.',
-  /* 0x025D */ 'Lexmark International Inc.',
-  /* 0x025E */ 'Fluke Corporation',
-  /* 0x025F */ 'Yardarm Technologies',
-  /* 0x0260 */ 'SensaRx',
-  /* 0x0261 */ 'SECVRE GmbH',
-  /* 0x0262 */ 'Glacial Ridge Technologies',
-  /* 0x0263 */ 'Identiv, Inc.',
-  /* 0x0264 */ 'DDS, Inc.',
-  /* 0x0265 */ 'SMK Corporation',
-  /* 0x0266 */ 'Schawbel Technologies LLC',
-  /* 0x0267 */ 'XMI Systems SA',
-  /* 0x0268 */ 'Cerevo',
-  /* 0x0269 */ 'Torrox GmbH & Co KG',
-  /* 0x026A */ 'Gemalto',
-  /* 0x026B */ 'DEKA Research & Development Corp.',
-  /* 0x026C */ 'Domster Tadeusz Szydlowski',
-  /* 0x026D */ 'Technogym SPA',
-  /* 0x026E */ 'FLEURBAEY BVBA',
-  /* 0x026F */ 'Aptcode Solutions',
-  /* 0x0270 */ 'LSI ADL Technology',
-  /* 0x0271 */ 'Animas Corp',
-  /* 0x0272 */ 'Alps Electric Co., Ltd.',
-  /* 0x0273 */ 'OCEASOFT',
-  /* 0x0274 */ 'Motsai Research',
-  /* 0x0275 */ 'Geotab',
-  /* 0x0276 */ 'E.G.O. Elektro-Gertebau GmbH',
-  /* 0x0277 */ 'bewhere inc',
-  /* 0x0278 */ 'Johnson Outdoors Inc',
-  /* 0x0279 */ 'steute Schaltgerate GmbH & Co. KG',
-  /* 0x027A */ 'Ekomini inc.',
-  /* 0x027B */ 'DEFA AS',
-  /* 0x027C */ 'Aseptika Ltd',
-  /* 0x027D */ 'HUAWEI Technologies Co., Ltd. ( )',
-  /* 0x027E */ 'HabitAware, LLC',
-  /* 0x027F */ 'ruwido austria gmbh',
-  /* 0x0280 */ 'ITEC corporation',
-  /* 0x0281 */ 'StoneL',
-  /* 0x0282 */ 'Sonova AG',
-  /* 0x0283 */ 'Maven Machines, Inc.',
-  /* 0x0284 */ 'Synapse Electronics',
-  /* 0x0285 */ 'Standard Innovation Inc.',
-  /* 0x0286 */ 'RF Code, Inc.',
-  /* 0x0287 */ 'Wally Ventures S.L.',
-  /* 0x0288 */ 'Willowbank Electronics Ltd',
-  /* 0x0289 */ 'SK Telecom',
-  /* 0x028A */ 'Jetro AS',
-  /* 0x028B */ 'Code Gears LTD',
-  /* 0x028C */ 'NANOLINK APS',
-  /* 0x028D */ 'IF, LLC',
-  /* 0x028E */ 'RF Digital Corp',
-  /* 0x028F */ 'Church & Dwight Co., Inc',
-  /* 0x0290 */ 'Multibit Oy',
-  /* 0x0291 */ 'CliniCloud Inc',
-  /* 0x0292 */ 'SwiftSensors',
-  /* 0x0293 */ 'Blue Bite',
-  /* 0x0294 */ 'ELIAS GmbH',
-  /* 0x0295 */ 'Sivantos GmbH',
-  /* 0x0296 */ 'Petzl',
-  /* 0x0297 */ 'storm power ltd',
-  /* 0x0298 */ 'EISST Ltd',
-  /* 0x0299 */ 'Inexess Technology Simma KG',
-  /* 0x029A */ 'Currant, Inc.',
-  /* 0x029B */ 'C2 Development, Inc.',
-  /* 0x029C */ 'Blue Sky Scientific, LLC',
-  /* 0x029D */ 'ALOTTAZS LABS, LLC',
-  /* 0x029E */ 'Kupson spol. s r.o.',
-  /* 0x029F */ 'Areus Engineering GmbH',
-  /* 0x02A0 */ 'Impossible Camera GmbH',
-  /* 0x02A1 */ 'InventureTrack Systems',
-  /* 0x02A2 */ 'LockedUp',
-  /* 0x02A3 */ 'Itude',
-  /* 0x02A4 */ 'Pacific Lock Company',
-  /* 0x02A5 */ 'Tendyron Corporation ( )',
-  /* 0x02A6 */ 'Robert Bosch GmbH',
-  /* 0x02A7 */ 'Illuxtron international B.V.',
-  /* 0x02A8 */ 'miSport Ltd.',
-  /* 0x02A9 */ 'Chargelib',
-  /* 0x02AA */ 'Doppler Lab',
-  /* 0x02AB */ 'BBPOS Limited',
-  /* 0x02AC */ 'RTB Elektronik GmbH & Co. KG',
-  /* 0x02AD */ 'Rx Networks, Inc.',
-  /* 0x02AE */ 'WeatherFlow, Inc.',
-  /* 0x02AF */ 'Technicolor USA Inc.',
-  /* 0x02B0 */ 'Bestechnic(Shanghai),Ltd',
-  /* 0x02B1 */ 'Raden Inc',
-  /* 0x02B2 */ 'JouZen Oy',
-  /* 0x02B3 */ 'CLABER S.P.A.',
-  /* 0x02B4 */ 'Hyginex, Inc.',
-  /* 0x02B5 */ 'HANSHIN ELECTRIC RAILWAY CO.,LTD.',
-  /* 0x02B6 */ 'Schneider Electric',
-  /* 0x02B7 */ 'Oort Technologies LLC',
-  /* 0x02B8 */ 'Chrono Therapeutics',
-  /* 0x02B9 */ 'Rinnai Corporation',
-  /* 0x02BA */ 'Swissprime Technologies AG',
-  /* 0x02BB */ 'Koha.,Co.Ltd',
-  /* 0x02BC */ 'Genevac Ltd',
-  /* 0x02BD */ 'Chemtronics',
-  /* 0x02BE */ 'Seguro Technology Sp. z o.o.',
-  /* 0x02BF */ 'Redbird Flight Simulations',
-  /* 0x02C0 */ 'Dash Robotics',
-  /* 0x02C1 */ 'LINE Corporation',
-  /* 0x02C2 */ 'Guillemot Corporation',
-  /* 0x02C3 */ 'Techtronic Power Tools Technology Limited',
-  /* 0x02C4 */ 'Wilson Sporting Goods',
-  /* 0x02C5 */ 'Lenovo (Singapore) Pte Ltd. ( )',
-  /* 0x02C6 */ 'Ayatan Sensors',
-  /* 0x02C7 */ 'Electronics Tomorrow Limited',
-  /* 0x02C8 */ 'VASCO Data Security International, Inc.',
-  /* 0x02C9 */ 'PayRange Inc.',
-  /* 0x02CA */ 'ABOV Semiconductor',
-  /* 0x02CB */ 'AINA-Wireless Inc.',
-  /* 0x02CC */ 'Eijkelkamp Soil & Water',
-  /* 0x02CD */ 'BMA ergonomics b.v.',
-  /* 0x02CE */ 'Teva Branded Pharmaceutical Products R&D, Inc.',
-  /* 0x02CF */ 'Anima',
-  /* 0x02D0 */ '3M',
-  /* 0x02D1 */ 'Empatica Srl',
-  /* 0x02D2 */ 'Afero, Inc.',
-  /* 0x02D3 */ 'Powercast Corporation',
-  /* 0x02D4 */ 'Secuyou ApS',
-  /* 0x02D5 */ 'OMRON Corporation',
-  /* 0x02D6 */ 'Send Solutions',
-  /* 0x02D7 */ 'NIPPON SYSTEMWARE CO.,LTD.',
-  /* 0x02D8 */ 'Neosfar',
-  /* 0x02D9 */ 'Fliegl Agrartechnik GmbH',
-  /* 0x02DA */ 'Gilvader',
-  /* 0x02DB */ 'Digi International Inc (R)',
-  /* 0x02DC */ 'DeWalch Technologies, Inc.',
-  /* 0x02DD */ 'Flint Rehabilitation Devices, LLC',
-  /* 0x02DE */ 'Samsung SDS Co., Ltd.',
-  /* 0x02DF */ 'Blur Product Development',
-  /* 0x02E0 */ 'University of Michigan',
-  /* 0x02E1 */ 'Victron Energy BV',
-  /* 0x02E2 */ 'NTT docomo',
-  /* 0x02E3 */ 'Carmanah Technologies Corp.',
-  /* 0x02E4 */ 'Bytestorm Ltd.',
-  /* 0x02E5 */ 'Espressif Incorporated ( () )',
-  /* 0x02E6 */ 'Unwire',
-  /* 0x02E7 */ 'Connected Yard, Inc.',
-  /* 0x02E8 */ 'American Music Environments',
-  /* 0x02E9 */ 'Sensogram Technologies, Inc.',
-  /* 0x02EA */ 'Fujitsu Limited',
-  /* 0x02EB */ 'Ardic Technology',
-  /* 0x02EC */ 'Delta Systems, Inc',
-  /* 0x02ED */ 'HTC Corporation',
-  /* 0x02EE */ 'Citizen Holdings Co., Ltd.',
-  /* 0x02EF */ 'SMART-INNOVATION.inc',
-  /* 0x02F0 */ 'Blackrat Software',
-  /* 0x02F1 */ 'The Idea Cave, LLC',
-  /* 0x02F2 */ 'GoPro, Inc.',
-  /* 0x02F3 */ 'AuthAir, Inc',
-  /* 0x02F4 */ 'Vensi, Inc.',
-  /* 0x02F5 */ 'Indagem Tech LLC',
-  /* 0x02F6 */ 'Intemo Technologies',
-  /* 0x02F7 */ 'DreamVisions co., Ltd.',
-  /* 0x02F8 */ 'Runteq Oy Ltd',
-  /* 0x02F9 */ 'IMAGINATION TECHNOLOGIES LTD',
-  /* 0x02FA */ 'CoSTAR TEchnologies',
-  /* 0x02FB */ 'Clarius Mobile Health Corp.',
-  /* 0x02FC */ 'Shanghai Frequen Microelectronics Co., Ltd.',
-  /* 0x02FD */ 'Uwanna, Inc.',
-  /* 0x02FE */ 'Lierda Science & Technology Group Co., Ltd.',
-  /* 0x02FF */ 'Silicon Laboratories',
-  /* 0x0300 */ 'World Moto Inc.',
-  /* 0x0301 */ 'Giatec Scientific Inc.',
-  /* 0x0302 */ 'Loop Devices, Inc',
-  /* 0x0303 */ 'IACA electronique',
-  /* 0x0304 */ 'Martians Inc',
-  /* 0x0305 */ 'Swipp ApS',
-  /* 0x0306 */ 'Life Laboratory Inc.',
-  /* 0x0307 */ 'FUJI INDUSTRIAL CO.,LTD.',
-  /* 0x0308 */ 'Surefire, LLC',
-  /* 0x0309 */ 'Dolby Labs',
-  /* 0x030A */ 'Ellisys',
-  /* 0x030B */ 'Magnitude Lighting Converters',
-  /* 0x030C */ 'Hilti AG',
-  /* 0x030D */ 'Devdata S.r.l.',
-  /* 0x030E */ 'Deviceworx',
-  /* 0x030F */ 'Shortcut Labs',
-  /* 0x0310 */ 'SGL Italia S.r.l.',
-  /* 0x0311 */ 'PEEQ DATA',
-  /* 0x0312 */ 'Ducere Technologies Pvt Ltd',
-  /* 0x0313 */ 'DiveNav, Inc.',
-  /* 0x0314 */ 'RIIG AI Sp. z o.o.',
-  /* 0x0315 */ 'Thermo Fisher Scientific',
-  /* 0x0316 */ 'AG Measurematics Pvt. Ltd.',
-  /* 0x0317 */ 'CHUO Electronics CO., LTD.',
-  /* 0x0318 */ 'Aspenta International',
-  /* 0x0319 */ 'Eugster Frismag AG',
-  /* 0x031A */ 'Amber wireless GmbH',
-  /* 0x031B */ 'HQ Inc',
-  /* 0x031C */ 'Lab Sensor Solutions',
-  /* 0x031D */ 'Enterlab ApS',
-  /* 0x031E */ 'Eyefi, Inc.',
-  /* 0x031F */ 'MetaSystem S.p.A.',
-  /* 0x0320 */ 'SONO ELECTRONICS. CO., LTD',
-  /* 0x0321 */ 'Jewelbots',
-  /* 0x0322 */ 'Compumedics Limited',
-  /* 0x0323 */ 'Rotor Bike Components',
-  /* 0x0324 */ 'Astro, Inc.',
-  /* 0x0325 */ 'Amotus Solutions',
-  /* 0x0326 */ 'Healthwear Technologies (Changzhou)Ltd',
-  /* 0x0327 */ 'Essex Electronics',
-  /* 0x0328 */ 'Grundfos A/S',
-  /* 0x0329 */ 'Eargo, Inc.',
-  /* 0x032A */ 'Electronic Design Lab',
-  /* 0x032B */ 'ESYLUX',
-  /* 0x032C */ 'NIPPON SMT.CO.,Ltd',
-  /* 0x032D */ 'BM innovations GmbH',
-  /* 0x032E */ 'indoormap',
-  /* 0x032F */ 'OttoQ Inc',
-  /* 0x0330 */ 'North Pole Engineering',
-  /* 0x0331 */ '3flares Technologies Inc.',
-  /* 0x0332 */ 'Electrocompaniet A.S.',
-  /* 0x0333 */ 'Mul-T-Lock',
-  /* 0x0334 */ 'Corentium AS',
-  /* 0x0335 */ 'Enlighted Inc',
-  /* 0x0336 */ 'GISTIC',
-  /* 0x0337 */ 'AJP2 Holdings, LLC',
-  /* 0x0338 */ 'COBI GmbH',
-  /* 0x0339 */ 'Blue Sky Scientific, LLC',
-  /* 0x033A */ 'Appception, Inc.',
-  /* 0x033B */ 'Courtney Thorne Limited',
-  /* 0x033C */ 'Virtuosys',
-  /* 0x033D */ 'TPV Technology Limited',
-  /* 0x033E */ 'Monitra SA',
-  /* 0x033F */ 'Automation Components, Inc.',
-  /* 0x0340 */ 'Letsense s.r.l.',
-  /* 0x0341 */ 'Etesian Technologies LLC',
-  /* 0x0342 */ 'GERTEC BRASIL LTDA.',
-  /* 0x0343 */ 'Drekker Development Pty. Ltd.',
-  /* 0x0344 */ 'Whirl Inc',
-  /* 0x0345 */ 'Locus Positioning',
-  /* 0x0346 */ 'Acuity Brands Lighting, Inc',
-  /* 0x0347 */ 'Prevent Biometrics',
-  /* 0x0348 */ 'Arioneo',
-  /* 0x0349 */ 'VersaMe',
-  /* 0x034A */ 'Vaddio',
-  /* 0x034B */ 'Libratone A/S',
-  /* 0x034C */ 'HM Electronics, Inc.',
-  /* 0x034D */ 'TASER International, Inc.',
-  /* 0x034E */ 'SafeTrust Inc.',
-  /* 0x034F */ 'Heartland Payment Systems',
-  /* 0x0350 */ 'Bitstrata Systems Inc.',
-  /* 0x0351 */ 'Pieps GmbH',
-  /* 0x0352 */ 'iRiding(Xiamen)Technology Co.,Ltd.',
-  /* 0x0353 */ 'Alpha Audiotronics, Inc.',
-  /* 0x0354 */ 'TOPPAN FORMS CO.,LTD.',
-  /* 0x0355 */ 'Sigma Designs, Inc.',
-  /* 0x0356 */ 'Spectrum Brands, Inc.',
-  /* 0x0357 */ 'Polymap Wireless',
-  /* 0x0358 */ 'MagniWare Ltd.',
-  /* 0x0359 */ 'Novotec Medical GmbH',
-  /* 0x035A */ 'Medicom Innovation Partner a/s',
-  /* 0x035B */ 'Matrix Inc.',
-  /* 0x035C */ 'Eaton Corporation',
-  /* 0x035D */ 'KYS',
-  /* 0x035E */ 'Naya Health, Inc.',
-  /* 0x035F */ 'Acromag',
-  /* 0x0360 */ 'Insulet Corporation',
-  /* 0x0361 */ 'Wellinks Inc.',
-  /* 0x0362 */ 'ON Semiconductor',
-  /* 0x0363 */ 'FREELAP SA',
-  /* 0x0364 */ 'Favero Electronics Srl',
-  /* 0x0365 */ 'BioMech Sensor LLC',
-  /* 0x0366 */ 'BOLTT Sports technologies Private limited',
-  /* 0x0367 */ 'Saphe International',
-  /* 0x0368 */ 'Metormote AB',
-  /* 0x0369 */ 'littleBits',
-  /* 0x036A */ 'SetPoint Medical',
-  /* 0x036B */ 'BRControls Products BV',
-  /* 0x036C */ 'Zipcar',
-  /* 0x036D */ 'AirBolt Pty Ltd',
-  /* 0x036E */ 'KeepTruckin Inc',
-  /* 0x036F */ 'Motiv, Inc.',
-  /* 0x0370 */ 'Wazombi Labs O',
-  /* 0x0371 */ 'ORBCOMM',
-  /* 0x0372 */ 'Nixie Labs, Inc.',
-  /* 0x0373 */ 'AppNearMe Ltd',
-  /* 0x0374 */ 'Holman Industries',
-  /* 0x0375 */ 'Expain AS',
-  /* 0x0376 */ 'Electronic Temperature Instruments Ltd',
-  /* 0x0377 */ 'Plejd AB',
-  /* 0x0378 */ 'Propeller Health',
-  /* 0x0379 */ 'Shenzhen iMCO Electronic Technology Co.,Ltd',
-  /* 0x037A */ 'Algoria',
-  /* 0x037B */ 'Apption Labs Inc.',
-  /* 0x037C */ 'Cronologics Corporation',
-  /* 0x037D */ 'MICRODIA Ltd.',
-  /* 0x037E */ 'lulabytes S.L.',
-  /* 0x037F */ 'Nestec S.A.',
-  /* 0x0380 */ 'LLC \"MEGA-F service\"',
-  /* 0x0381 */ 'Sharp Corporation',
-  /* 0x0382 */ 'Precision Outcomes Ltd',
-  /* 0x0383 */ 'Kronos Incorporated',
-  /* 0x0384 */ 'OCOSMOS Co., Ltd.',
-  /* 0x0385 */ 'Embedded Electronic Solutions Ltd. dba e2Solutions',
-  /* 0x0386 */ 'Aterica Inc.',
-  /* 0x0387 */ 'BluStor PMC, Inc.',
-  /* 0x0388 */ 'Kapsch TrafficCom AB',
-  /* 0x0389 */ 'ActiveBlu Corporation',
-  /* 0x038A */ 'Kohler Mira Limited',
-  /* 0x038B */ 'Noke',
-  /* 0x038C */ 'Appion Inc.',
-  /* 0x038D */ 'Resmed Ltd',
-  /* 0x038E */ 'Crownstone B.V.',
-  /* 0x038F */ 'Xiaomi Inc.',
-  /* 0x0390 */ 'INFOTECH s.r.o.',
-  /* 0x0391 */ 'Thingsquare AB',
-  /* 0x0392 */ 'T&D',
-  /* 0x0393 */ 'LAVAZZA S.p.A.',
-  /* 0x0394 */ 'Netclearance Systems, Inc.',
-  /* 0x0395 */ 'SDATAWAY',
-  /* 0x0396 */ 'BLOKS GmbH',
-  /* 0x0397 */ 'LEGO System A/S',
-  /* 0x0398 */ 'Thetatronics Ltd',
-  /* 0x0399 */ 'Nikon Corporation',
-  /* 0x039A */ 'NeST',
-  /* 0x039B */ 'South Silicon Valley Microelectronics',
-  /* 0x039C */ 'ALE International',
-  /* 0x039D */ 'CareView Communications, Inc.',
-  /* 0x039E */ 'SchoolBoard Limited',
-  /* 0x039F */ 'Molex Corporation',
-  /* 0x03A0 */ 'IVT Wireless Limited',
-  /* 0x03A1 */ 'Alpine Labs LLC',
-  /* 0x03A2 */ 'Candura Instruments',
-  /* 0x03A3 */ 'SmartMovt Technology Co., Ltd',
-  /* 0x03A4 */ 'Token Zero Ltd',
-  /* 0x03A5 */ 'ACE CAD Enterprise Co., Ltd. (ACECAD)',
-  /* 0x03A6 */ 'Medela, Inc',
-  /* 0x03A7 */ 'AeroScout',
-  /* 0x03A8 */ 'Esrille Inc.',
-  /* 0x03A9 */ 'THINKERLY SRL',
-  /* 0x03AA */ 'Exon Sp. z o.o.',
-  /* 0x03AB */ 'Meizu Technology Co., Ltd.',
-  /* 0x03AC */ 'Smablo LTD',
-  /* 0x03AD */ 'XiQ',
-  /* 0x03AE */ 'Allswell Inc.',
-  /* 0x03AF */ 'Comm-N-Sense Corp DBA Verigo',
-  /* 0x03B0 */ 'VIBRADORM GmbH',
-  /* 0x03B1 */ 'Otodata Wireless Network Inc.',
-  /* 0x03B2 */ 'Propagation Systems Limited',
-  /* 0x03B3 */ 'Midwest Instruments & Controls',
-  /* 0x03B4 */ 'Alpha Nodus, inc.',
-  /* 0x03B5 */ 'petPOMM, Inc',
-  /* 0x03B6 */ 'Mattel',
-  /* 0x03B7 */ 'Airbly Inc.',
-  /* 0x03B8 */ 'A-Safe Limited',
-  /* 0x03B9 */ 'FREDERIQUE CONSTANT SA',
-  /* 0x03BA */ 'Maxscend Microelectronics Company Limited',
-  /* 0x03BB */ 'Abbott Diabetes Care',
-  /* 0x03BC */ 'ASB Bank Ltd',
-  /* 0x03BD */ 'amadas',
-  /* 0x03BE */ 'Applied Science, Inc.',
-  /* 0x03BF */ 'iLumi Solutions Inc.',
-  /* 0x03C0 */ 'Arch Systems Inc.',
-  /* 0x03C1 */ 'Ember Technologies, Inc.',
-  /* 0x03C2 */ 'Snapchat Inc',
-  /* 0x03C3 */ 'Casambi Technologies Oy',
-  /* 0x03C4 */ 'Pico Technology Inc.',
-  /* 0x03C5 */ 'St. Jude Medical, Inc.',
-  /* 0x03C6 */ 'Intricon',
-  /* 0x03C7 */ 'Structural Health Systems, Inc.',
-  /* 0x03C8 */ 'Avvel International',
-  /* 0x03C9 */ 'Gallagher Group',
-  /* 0x03CA */ 'In2things Automation Pvt. Ltd.',
-  /* 0x03CB */ 'SYSDEV Srl',
-  /* 0x03CC */ 'Vonkil Technologies Ltd',
-  /* 0x03CD */ 'Wynd Technologies, Inc.',
-  /* 0x03CE */ 'CONTRINEX S.A.',
-  /* 0x03CF */ 'MIRA, Inc.',
-  /* 0x03D0 */ 'Watteam Ltd',
-  /* 0x03D1 */ 'Density Inc.',
-  /* 0x03D2 */ 'IOT Pot India Private Limited',
-  /* 0x03D3 */ 'Sigma Connectivity AB',
-  /* 0x03D4 */ 'PEG PEREGO SPA',
-  /* 0x03D5 */ 'Wyzelink Systems Inc.',
-  /* 0x03D6 */ 'Yota Devices LTD',
-  /* 0x03D7 */ 'FINSECUR',
-  /* 0x03D8 */ 'Zen-Me Labs Ltd',
-  /* 0x03D9 */ '3IWare Co., Ltd.',
-  /* 0x03DA */ 'EnOcean GmbH',
-  /* 0x03DB */ 'Instabeat, Inc',
-  /* 0x03DC */ 'Nima Labs',
-  /* 0x03DD */ 'Andreas Stihl AG & Co. KG',
-  /* 0x03DE */ 'Nathan Rhoades LLC',
-  /* 0x03DF */ 'Grob Technologies, LLC',
-  /* 0x03E0 */ 'Actions (Zhuhai) Technology Co., Limited',
-  /* 0x03E1 */ 'SPD Development Company Ltd',
-  /* 0x03E2 */ 'Sensoan Oy',
-  /* 0x03E3 */ 'Qualcomm Life Inc',
-  /* 0x03E4 */ 'Chip-ing AG',
-  /* 0x03E5 */ 'ffly4u',
-  /* 0x03E6 */ 'IoT Instruments Oy',
-  /* 0x03E7 */ 'TRUE Fitness Technology',
-  /* 0x03E8 */ 'Reiner Kartengeraete GmbH & Co. KG.',
-  /* 0x03E9 */ 'SHENZHEN LEMONJOY TECHNOLOGY CO., LTD.',
-  /* 0x03EA */ 'Hello Inc.',
-  /* 0x03EB */ 'Evollve Inc.',
-  /* 0x03EC */ 'Jigowatts Inc.',
-  /* 0x03ED */ 'BASIC MICRO.COM,INC.',
-  /* 0x03EE */ 'CUBE TECHNOLOGIES',
-  /* 0x03EF */ 'foolography GmbH',
-  /* 0x03F0 */ 'CLINK',
-  /* 0x03F1 */ 'Hestan Smart Cooking Inc.',
-  /* 0x03F2 */ 'WindowMaster A/S',
-  /* 0x03F3 */ 'Flowscape AB',
-  /* 0x03F4 */ 'PAL Technologies Ltd',
-  /* 0x03F5 */ 'WHERE, Inc.',
-  /* 0x03F6 */ 'Iton Technology Corp.',
-  /* 0x03F7 */ 'Owl Labs Inc.',
-  /* 0x03F8 */ 'Rockford Corp.',
-  /* 0x03F9 */ 'Becon Technologies Co.,Ltd.',
-  /* 0x03FA */ 'Vyassoft Technologies Inc',
-  /* 0x03FB */ 'Nox Medical',
-  /* 0x03FC */ 'Kimberly-Clark',
-  /* 0x03FD */ 'Trimble Navigation Ltd.',
-  /* 0x03FE */ 'Littelfuse',
-  /* 0x03FF */ 'Withings',
-  /* 0x0400 */ 'i-developer IT Beratung UG',
-  /* 0x0401 */ '(unassigned)',
-  /* 0x0402 */ 'Sears Holdings Corporation',
-  /* 0x0403 */ 'Gantner Electronic GmbH',
-  /* 0x0404 */ 'Authomate Inc',
-  /* 0x0405 */ 'Vertex International, Inc.',
-  /* 0x0406 */ 'Airtago',
-  /* 0x0407 */ 'Swiss Audio SA',
-  /* 0x0408 */ 'ToGetHome Inc.',
-  /* 0x0409 */ 'AXIS',
-  /* 0x040A */ 'Openmatics',
-  /* 0x040B */ 'Jana Care Inc.',
-  /* 0x040C */ 'Senix Corporation',
-  /* 0x040D */ 'NorthStar Battery Company, LLC',
-  /* 0x040E */ 'SKF (U.K.) Limited',
-  /* 0x040F */ 'CO-AX Technology, Inc.',
-  /* 0x0410 */ 'Fender Musical Instruments',
-  /* 0x0411 */ 'Luidia Inc',
-  /* 0x0412 */ 'SEFAM',
-  /* 0x0413 */ 'Wireless Cables Inc',
-  /* 0x0414 */ 'Lightning Protection International Pty Ltd',
-  /* 0x0415 */ 'Uber Technologies Inc',
-  /* 0x0416 */ 'SODA GmbH',
-  /* 0x0417 */ 'Fatigue Science',
-  /* 0x0418 */ 'Alpine Electronics Inc.',
-  /* 0x0419 */ 'Novalogy LTD',
-  /* 0x041A */ 'Friday Labs Limited',
-  /* 0x041B */ 'OrthoAccel Technologies',
-  /* 0x041C */ 'WaterGuru, Inc.',
-  /* 0x041D */ 'Benning Elektrotechnik und Elektronik GmbH & Co. KG',
-  /* 0x041E */ 'Dell Computer Corporation',
-  /* 0x041F */ 'Kopin Corporation',
-  /* 0x0420 */ 'TecBakery GmbH',
-  /* 0x0421 */ 'Backbone Labs, Inc.',
-  /* 0x0422 */ 'DELSEY SA',
-  /* 0x0423 */ 'Chargifi Limited',
-  /* 0x0424 */ 'Trainesense Ltd.',
-  /* 0x0425 */ 'Unify Software and Solutions GmbH & Co. KG',
-  /* 0x0426 */ 'Husqvarna AB',
-  /* 0x0427 */ 'Focus fleet and fuel management inc',
-  /* 0x0428 */ 'SmallLoop, LLC',
-  /* 0x0429 */ 'Prolon Inc.',
-  /* 0x042A */ 'BD Medical',
-  /* 0x042B */ 'iMicroMed Incorporated',
-  /* 0x042C */ 'Ticto N.V.',
-  /* 0x042D */ 'Meshtech AS',
-  /* 0x042E */ 'MemCachier Inc.',
-  /* 0x042F */ 'Danfoss A/S',
-  /* 0x0430 */ 'SnapStyk Inc.',
-  /* 0x0431 */ 'Amyway Corporation',
-  /* 0x0432 */ 'Silk Labs, Inc.',
-  /* 0x0433 */ 'Pillsy Inc.',
-  /* 0x0434 */ 'Hatch Baby, Inc.',
-  /* 0x0435 */ 'Blocks Wearables Ltd.',
-  /* 0x0436 */ 'Drayson Technologies (Europe) Limited',
-  /* 0x0437 */ 'eBest IOT Inc.',
-  /* 0x0438 */ 'Helvar Ltd',
-  /* 0x0439 */ 'Radiance Technologies',
-  /* 0x043A */ 'Nuheara Limited',
-  /* 0x043B */ 'Appside co., ltd.',
-  /* 0x043C */ 'DeLaval',
-  /* 0x043D */ 'Coiler Corporation',
-  /* 0x043E */ 'Thermomedics, Inc.',
-  /* 0x043F */ 'Tentacle Sync GmbH',
-  /* 0x0440 */ 'Valencell, Inc.',
-  /* 0x0441 */ 'iProtoXi Oy',
-  /* 0x0442 */ 'SECOM CO., LTD.',
-  /* 0x0443 */ 'Tucker International LLC',
-  /* 0x0444 */ 'Metanate Limited',
-  /* 0x0445 */ 'Kobian Canada Inc.',
-  /* 0x0446 */ 'NETGEAR, Inc.',
-  /* 0x0447 */ 'Fabtronics Australia Pty Ltd',
-  /* 0x0448 */ 'Grand Centrix GmbH',
-  /* 0x0449 */ '1UP USA.com llc',
-  /* 0x044A */ 'SHIMANO INC.',
-  /* 0x044B */ 'Nain Inc.',
-  /* 0x044C */ 'LifeStyle Lock, LLC',
-  /* 0x044D */ 'VEGA Grieshaber KG',
-  /* 0x044E */ 'Xtrava Inc.',
-  /* 0x044F */ 'TTS Tooltechnic Systems AG & Co. KG',
-  /* 0x0450 */ 'Teenage Engineering AB',
-  /* 0x0451 */ 'Tunstall Nordic AB',
-  /* 0x0452 */ 'Svep Design Center AB',
-  /* 0x0453 */ 'GreenPeak Technologies BV',
-  /* 0x0454 */ 'Sphinx Electronics GmbH & Co KG',
-  /* 0x0455 */ 'Atomation',
-  /* 0x0456 */ 'Nemik Consulting Inc',
-  /* 0x0457 */ 'RF INNOVATION',
-  /* 0x0458 */ 'Mini Solution Co., Ltd.',
-  /* 0x0459 */ 'Lumenetix, Inc',
-  /* 0x045A */ '2048450 Ontario Inc',
-  /* 0x045B */ 'SPACEEK LTD',
-  /* 0x045C */ 'Delta T Corporation',
-  /* 0x045D */ 'Boston Scientific Corporation',
-  /* 0x045E */ 'Nuviz, Inc.',
-  /* 0x045F */ 'Real Time Automation, Inc.',
-  /* 0x0460 */ 'Kolibree',
-  /* 0x0461 */ 'vhf elektronik GmbH',
-  /* 0x0462 */ 'Bonsai Systems GmbH',
-  /* 0x0463 */ 'Fathom Systems Inc.',
-  /* 0x0464 */ 'Bellman & Symfon',
-  /* 0x0465 */ 'International Forte Group LLC',
-  /* 0x0466 */ 'CycleLabs Solutions inc.',
-  /* 0x0467 */ 'Codenex Oy',
-  /* 0x0468 */ 'Kynesim Ltd',
-  /* 0x0469 */ 'Palago AB',
-  /* 0x046A */ 'INSIGMA INC.',
-  /* 0x046B */ 'PMD Solutions',
-  /* 0x046C */ 'Qingdao Realtime Technology Co., Ltd.',
-  /* 0x046D */ 'BEGA Gantenbrink-Leuchten KG',
-  /* 0x046E */ 'Pambor Ltd.',
-  /* 0x046F */ 'Develco Products A/S',
-  /* 0x0470 */ 'iDesign s.r.l.',
-  /* 0x0471 */ 'TiVo Corp',
-  /* 0x0472 */ 'Control-J Pty Ltd',
-  /* 0x0473 */ 'Steelcase, Inc.',
-  /* 0x0474 */ 'iApartment co., ltd.',
-  /* 0x0475 */ 'Icom inc.',
-  /* 0x0476 */ 'Oxstren Wearable Technologies Private Limited',
-  /* 0x0477 */ 'Blue Spark Technologies',
-  /* 0x0478 */ 'FarSite Communications Limited',
-  /* 0x0479 */ 'mywerk system GmbH',
-  /* 0x047A */ 'Sinosun Technology Co., Ltd.',
-  /* 0x047B */ 'MIYOSHI ELECTRONICS CORPORATION',
-  /* 0x047C */ 'POWERMAT LTD',
-  /* 0x047D */ 'Occly LLC',
-  /* 0x047E */ 'OurHub Dev IvS',
-  /* 0x047F */ 'Pro-Mark, Inc.',
-  /* 0x0480 */ 'Dynometrics Inc.',
-  /* 0x0481 */ 'Quintrax Limited',
-  /* 0x0482 */ 'POS Tuning Udo Vosshenrich GmbH & Co. KG',
-  /* 0x0483 */ 'Multi Care Systems B.V.',
-  /* 0x0484 */ 'Revol Technologies Inc',
-  /* 0x0485 */ 'SKIDATA AG',
-  /* 0x0486 */ 'DEV TECNOLOGIA INDUSTRIA, COMERCIO E MANUTENCAO DE EQUIPAMENTOS LTDA. - ME',
-  /* 0x0487 */ 'Centrica Connected Home',
-  /* 0x0488 */ 'Automotive Data Solutions Inc',
-  /* 0x0489 */ 'Igarashi Engineering',
-  /* 0x048A */ 'Taelek Oy',
-  /* 0x048B */ 'CP Electronics Limited',
-  /* 0x048C */ 'Vectronix AG',
-  /* 0x048D */ 'S-Labs Sp. z o.o.',
-  /* 0x048E */ 'Companion Medical, Inc.',
-  /* 0x048F */ 'BlueKitchen GmbH',
-  /* 0x0490 */ 'Matting AB',
-  /* 0x0491 */ 'SOREX - Wireless Solutions GmbH',
-  /* 0x0492 */ 'ADC Technology, Inc.',
-  /* 0x0493 */ 'Lynxemi Pte Ltd',
-  /* 0x0494 */ 'SENNHEISER electronic GmbH & Co. KG',
-  /* 0x0495 */ 'LMT Mercer Group, Inc',
-  /* 0x0496 */ 'Polymorphic Labs LLC',
-  /* 0x0497 */ 'Cochlear Limited',
-  /* 0x0498 */ 'METER Group, Inc. USA',
-  /* 0x0499 */ 'Ruuvi Innovations Ltd.',
-  /* 0x049A */ 'Situne AS',
-  /* 0x049B */ 'nVisti, LLC',
-  /* 0x049C */ 'DyOcean',
-  /* 0x049D */ 'Uhlmann & Zacher GmbH',
-];
-
-/// Returns a string containing the name of the manufacturer that matches |identifier|.
-String getManufacturerName(int identifier) {
-  if (identifier >= _manufacturerNames.length || identifier < 0)
-    return '0x${identifier.toRadixString(16)}';
-  return _manufacturerNames[identifier];
-}
diff --git a/examples/bluetooth/ble_scanner/lib/src/models/ble_scanner_model.dart b/examples/bluetooth/ble_scanner/lib/src/models/ble_scanner_model.dart
deleted file mode 100644
index 5a8e2d3..0000000
--- a/examples/bluetooth/ble_scanner/lib/src/models/ble_scanner_model.dart
+++ /dev/null
@@ -1,163 +0,0 @@
-// Copyright 2017 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'package:fidl_fuchsia_bluetooth/fidl.dart' as bt;
-import 'package:fidl_fuchsia_bluetooth_gatt/fidl.dart' as gatt;
-import 'package:fidl_fuchsia_bluetooth_le/fidl.dart' as ble;
-import 'package:lib.app.dart/app.dart';
-import 'package:lib.app.dart/logging.dart';
-import 'package:lib.widgets.dart/model.dart';
-
-// ignore_for_file: public_member_api_docs
-
-enum ConnectionState { notConnected, connecting, connected }
-
-/// The [Model] for the BLE Scanner example.
-class BLEScannerModel extends Model {
-  // Members that maintain the FIDL service connections.
-  final ble.CentralProxy _central = new ble.CentralProxy();
-
-  // GATT client proxy to the currently connected peripheral.
-  final gatt.ClientProxy _gattClient = new gatt.ClientProxy();
-
-  // True if we have an active scan session.
-  bool _isScanning = false;
-
-  // True if a request to start a device scan is currently pending.
-  bool _isScanRequestPending = false;
-
-  // The current scan filter for current (if scanning) and future scan sessions.
-  ble.ScanFilter _scanFilter;
-
-  // Devices found during discovery.
-  final Map<String, ble.RemoteDevice> _discoveredDevices =
-      <String, ble.RemoteDevice>{};
-
-  // Devices that are connected.
-  final Map<String, ConnectionState> _connectedDevices =
-      <String, ConnectionState>{};
-
-  BLEScannerModel() {
-    _onStart();
-  }
-
-  /// True if we have an active scan session.
-  bool get isScanning => _isScanning;
-
-  /// True if a request to start a device scan is currently pending.
-  bool get isScanRequestPending => _isScanRequestPending;
-
-  /// Sets a scan filter. If scanning, this will immediately apply to the active scan session.
-  /// Otherwise, it will be used next time a scan is requested.
-  set scanFilter(ble.ScanFilter filter) {
-    _scanFilter = filter;
-    _discoveredDevices.clear();
-    if (isScanning) {
-      _restartScan();
-    }
-    notifyListeners();
-  }
-
-  /// Returns a list containing information about remote LE devices that have been discovered.
-  Iterable<ble.RemoteDevice> get discoveredDevices => _discoveredDevices.values;
-
-  /// Starts or stops a scan based on whether or not a scan is currently being performed.
-  void toggleScan() {
-    // The scan button will be disabled if a request is pending.
-    assert(!_isScanRequestPending);
-
-    if (isScanning) {
-      _central.stopScan();
-      return;
-    }
-
-    _restartScan();
-    notifyListeners();
-  }
-
-  void _restartScan() {
-    _isScanRequestPending = true;
-    _central.startScan(_scanFilter, (bt.Status status) {
-      _isScanRequestPending = false;
-      notifyListeners();
-    });
-  }
-
-  /// Returns the connection state for the peripheral with the given identifier.
-  ConnectionState getPeripheralState(String id) =>
-      _connectedDevices[id] ?? ConnectionState.notConnected;
-
-  /// Initiates a connection to the given device.
-  void connectPeripheral(String id) {
-    if (getPeripheralState(id) != ConnectionState.notConnected) {
-      log.info('Peripheral already connected or connecting (id: $id)');
-      return;
-    }
-
-    _connectedDevices[id] = ConnectionState.connecting;
-    notifyListeners();
-
-    // Close any existing GATT client connection.
-    _gattClient.ctrl.close();
-
-    _central.connectPeripheral(id, _gattClient.ctrl.request(),
-        (bt.Status status) {
-      if (status.error != null) {
-        log.info(
-            'Failed to connect to device with (id: $id): ${status.error.description}');
-        _connectedDevices.remove(id);
-      } else {
-        _connectedDevices[id] = ConnectionState.connected;
-      }
-
-      notifyListeners();
-    });
-  }
-
-  /// Disconnects the requested peripheral.
-  void disconnectPeripheral(String id) {
-    if (getPeripheralState(id) != ConnectionState.connected) {
-      log.info('Peripheral not connected (id: $id)');
-      return;
-    }
-
-    _central.disconnectPeripheral(id, (bt.Status status) {
-      log.info('Disconnect (id: $id, status: $status)');
-
-      // The widgets will be notified by onPeripheralDisconnected.
-    });
-  }
-
-  /// Connects the model to the Bluetooth LE service.
-  void _onStart() {
-    final startupContext = StartupContext.fromStartupInfo();
-    connectToService(startupContext.environmentServices, _central.ctrl);
-    _central
-        ..onScanStateChanged = _onScanStateChanged
-        ..onDeviceDiscovered = _onDeviceDiscovered
-        ..onPeripheralDisconnected = _onPeripheralDisconnected;
-  }
-
-  /// The [terminate] method should be called before the module terminates
-  ///  allowing it to teardown any open connections it may have
-  void terminate() {
-    _central.ctrl.close();
-  }
-
-  // ignore: avoid_positional_boolean_parameters
-  void _onScanStateChanged(bool scanning) {
-    _isScanning = scanning;
-    notifyListeners();
-  }
-
-  void _onDeviceDiscovered(ble.RemoteDevice device) {
-    _discoveredDevices[device.identifier] = device;
-    notifyListeners();
-  }
-
-  void _onPeripheralDisconnected(String id) {
-    _connectedDevices.remove(id);
-    notifyListeners();
-  }
-}
diff --git a/examples/bluetooth/ble_scanner/lib/src/screen.dart b/examples/bluetooth/ble_scanner/lib/src/screen.dart
deleted file mode 100644
index f9d27d1..0000000
--- a/examples/bluetooth/ble_scanner/lib/src/screen.dart
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2017 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'package:flutter/material.dart';
-import 'package:lib.widgets.dart/model.dart';
-
-import 'models/ble_scanner_model.dart';
-import 'widgets/scan_filter_button.dart';
-import 'widgets/scan_results_widget.dart';
-
-/// Root Widget of the BLE Scanner module.
-class BLEScannerScreen extends StatelessWidget {
-  @override
-  Widget build(BuildContext context) {
-    return new ScopedModelDescendant<BLEScannerModel>(builder: (
-      BuildContext context,
-      Widget child,
-      BLEScannerModel moduleModel,
-    ) {
-      return new Scaffold(
-          appBar: new AppBar(
-              title: const Text('BLE Scanner'),
-              bottom: moduleModel.isScanning
-                  ? const PreferredSize(
-                      child: const LinearProgressIndicator(),
-                      preferredSize: Size.zero)
-                  : null,
-              actions: <Widget>[
-                new IconButton(
-                    tooltip: 'Scan for BLE devices',
-                    onPressed: moduleModel.isScanRequestPending
-                        ? null
-                        : () => moduleModel.toggleScan(),
-                    icon: const Icon(Icons.bluetooth_searching)),
-                new ScanFilterButton(),
-              ]),
-          body: new ScanResultsWidget());
-    });
-  }
-}
diff --git a/examples/bluetooth/ble_scanner/lib/src/widgets/scan_filter_button.dart b/examples/bluetooth/ble_scanner/lib/src/widgets/scan_filter_button.dart
deleted file mode 100644
index a1ee197..0000000
--- a/examples/bluetooth/ble_scanner/lib/src/widgets/scan_filter_button.dart
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2017 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'package:flutter/material.dart';
-import 'package:lib.widgets.dart/model.dart';
-
-import '../models/ble_scanner_model.dart';
-import 'scan_filter_dialog.dart';
-
-/// Button that brings up the scan filter dialog
-class ScanFilterButton extends StatelessWidget {
-  @override
-  Widget build(BuildContext context) {
-    final ThemeData theme = Theme.of(context);
-
-    return new ScopedModelDescendant<BLEScannerModel>(builder: (
-      BuildContext context,
-      Widget child,
-      BLEScannerModel moduleModel,
-    ) {
-      return new FlatButton(
-          child: new Text('Add Filter',
-              style: theme.textTheme.body1.copyWith(color: Colors.white)),
-          onPressed: () {
-            Navigator.push(
-                context,
-                new MaterialPageRoute<DismissDialogAction>(
-                    builder: (BuildContext context) =>
-                        new ScanFilterDialog(moduleModel: moduleModel),
-                    fullscreenDialog: true));
-          });
-    });
-  }
-}
diff --git a/examples/bluetooth/ble_scanner/lib/src/widgets/scan_filter_dialog.dart b/examples/bluetooth/ble_scanner/lib/src/widgets/scan_filter_dialog.dart
deleted file mode 100644
index c71f5ef..0000000
--- a/examples/bluetooth/ble_scanner/lib/src/widgets/scan_filter_dialog.dart
+++ /dev/null
@@ -1,185 +0,0 @@
-// Copyright 2017 The Fuchsia Authors. 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:async';
-
-import 'package:fidl_fuchsia_bluetooth/fidl.dart';
-import 'package:fidl_fuchsia_bluetooth_le/fidl.dart' as ble;
-import 'package:flutter/material.dart';
-import 'package:meta/meta.dart';
-
-import '../manufacturer_names.dart';
-import '../models/ble_scanner_model.dart';
-
-// ignore_for_file: public_member_api_docs
-
-/// Enum values to pass to Navigator.push()
-enum DismissDialogAction {
-  /// Cancel the scan filter
-  cancel,
-
-  /// Apply the scan filter
-  save,
-}
-
-/// Widget that contains entry fields to build a BLE scan filter
-class ScanFilterDialog extends StatefulWidget {
-  final BLEScannerModel moduleModel;
-
-  const ScanFilterDialog({@required this.moduleModel, Key key})
-      : super(key: key);
-
-  @override
-  _ScanFilterDialogState createState() => new _ScanFilterDialogState();
-}
-
-class _ScanFilterDialogState extends State<ScanFilterDialog> {
-  int _manufacturerId;
-  String _nameSubstring;
-  bool _connectable;
-
-  bool _saveNeeded = false;
-
-  final GlobalKey<FormState> _formKey = new GlobalKey<FormState>();
-
-  Future<bool> _onWillPop() async {
-    if (!_saveNeeded) {
-      return true;
-    }
-
-    final ThemeData theme = Theme.of(context);
-    final TextStyle dialogTextStyle =
-        theme.textTheme.subhead.copyWith(color: theme.textTheme.caption.color);
-
-    return await showDialog<bool>(
-            context: context,
-            builder: (BuildContext context) => new AlertDialog(
-                    content:
-                        new Text('Discard filters?', style: dialogTextStyle),
-                    actions: <Widget>[
-                      new FlatButton(
-                          child: const Text('CANCEL'),
-                          onPressed: () {
-                            Navigator.of(context).pop(false);
-                          }),
-                      new FlatButton(
-                          child: const Text('DISCARD'),
-                          onPressed: () {
-                            Navigator.of(context).pop(true);
-                          })
-                    ])) ??
-        false;
-  }
-
-  void _handleConnectableChanged(bool newValue) {
-    if (_connectable != newValue) {
-      setState(() {
-        _saveNeeded = true;
-        _connectable = newValue;
-      });
-    }
-  }
-
-  @override
-  Widget build(BuildContext context) {
-    final ThemeData theme = Theme.of(context);
-    return new Scaffold(
-        appBar: new AppBar(title: const Text('Scan Filters'), actions: <Widget>[
-          new FlatButton(
-              child: new Text('SAVE',
-                  style: theme.textTheme.body1.copyWith(color: Colors.white)),
-              onPressed: () {
-                _formKey.currentState.save();
-
-                ble.ScanFilter filter = new ble.ScanFilter(
-                  manufacturerIdentifier: _manufacturerId != null
-                      ? new UInt16(value: _manufacturerId)
-                      : null,
-                  nameSubstring: _nameSubstring?.isNotEmpty ?? false
-                      ? _nameSubstring
-                      : null,
-                  connectable: _connectable != null
-                      ? new Bool(value: _connectable)
-                      : null,
-                );
-
-                widget.moduleModel.scanFilter = filter;
-                Navigator.pop(context, DismissDialogAction.save);
-              })
-        ]),
-        body: new Form(
-            key: _formKey,
-            onWillPop: _onWillPop,
-            child: new Container(
-                padding: const EdgeInsets.all(36.0),
-                child: new Column(
-                    children: <Widget>[
-                  new ListTile(
-                      title: const Text('Connectable'),
-                      trailing: new Container(
-                          width: 500.0,
-                          child: new Column(
-                              children: <Widget>[
-                            new RadioListTile<bool>(
-                                title: const Text('All'),
-                                value: null,
-                                groupValue: _connectable,
-                                onChanged: _handleConnectableChanged),
-                            new RadioListTile<bool>(
-                                title: const Text('Connectable devices only'),
-                                value: true,
-                                groupValue: _connectable,
-                                onChanged: _handleConnectableChanged),
-                            new RadioListTile<bool>(
-                                title:
-                                    const Text('Non-connectable devices only'),
-                                value: false,
-                                groupValue: _connectable,
-                                onChanged: _handleConnectableChanged),
-                          ]
-                                  .map((Widget child) =>
-                                      new Expanded(child: child))
-                                  .toList()))),
-                  new ListTile(
-                      title: const Text('Manufacturer ID'),
-                      trailing: new Container(
-                          width: 500.0,
-                          child: new DropdownButton<int>(
-                              value: _manufacturerId,
-                              onChanged: (int newValue) {
-                                if (newValue != _manufacturerId) {
-                                  setState(() {
-                                    _saveNeeded = true;
-                                    _manufacturerId = newValue;
-                                  });
-                                }
-                              },
-                              items:
-                                  <int>[null, 0x00E0, 0x004C].map((int value) {
-                                return new DropdownMenuItem<int>(
-                                  value: value,
-                                  child: new Text(value == null
-                                      ? 'None'
-                                      : getManufacturerName(value)),
-                                );
-                              }).toList()))),
-                  new ListTile(
-                      title: const Text('Name Substring'),
-                      trailing: new Container(
-                          width: 500.0,
-                          child: new TextFormField(onSaved: (String newValue) {
-                            if (newValue != _nameSubstring) {
-                              setState(() {
-                                _saveNeeded = true;
-                                _nameSubstring = newValue;
-                              });
-                            }
-                          })))
-                ]
-                        .map((Widget child) => new Container(
-                            margin: const EdgeInsets.symmetric(vertical: 16.0),
-                            child: child))
-                        .toList()))));
-  }
-}
diff --git a/examples/bluetooth/ble_scanner/lib/src/widgets/scan_results_widget.dart b/examples/bluetooth/ble_scanner/lib/src/widgets/scan_results_widget.dart
deleted file mode 100644
index dcf7f20..0000000
--- a/examples/bluetooth/ble_scanner/lib/src/widgets/scan_results_widget.dart
+++ /dev/null
@@ -1,254 +0,0 @@
-// Copyright 2017 The Fuchsia Authors. 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:math';
-
-import 'package:fidl_fuchsia_bluetooth_le/fidl.dart' as ble;
-
-import 'package:flutter/material.dart';
-import 'package:lib.widgets.dart/model.dart';
-
-import '../manufacturer_names.dart';
-import '../models/ble_scanner_model.dart' as model;
-
-/// A scrollable view that displays BLE scan results
-class ScanResultsWidget extends StatefulWidget {
-  @override
-  ScanResultsState createState() => new ScanResultsState();
-}
-
-class _AdvertisingDataEntry {
-  final String fieldTitle;
-  final WidgetBuilder widgetBuilder;
-
-  _AdvertisingDataEntry(this.fieldTitle, this.widgetBuilder);
-}
-
-/// State corresponding to ScanResultsWidget
-class ScanResultsState extends State<ScanResultsWidget> {
-  final Map<String, bool> _expandedStateMap = <String, bool>{};
-
-  String _connectionStateString(model.ConnectionState connState) {
-    switch (connState) {
-      case model.ConnectionState.notConnected:
-        return 'not connected';
-      case model.ConnectionState.connecting:
-        return 'connecting...';
-      case model.ConnectionState.connected:
-        return 'connected';
-    }
-    return '(unknown)';
-  }
-
-  Color _connectionStateColor(model.ConnectionState connState) {
-    switch (connState) {
-      case model.ConnectionState.notConnected:
-        return Colors.grey[400];
-      case model.ConnectionState.connecting:
-        return Colors.amber[400];
-      case model.ConnectionState.connected:
-        return Colors.green;
-    }
-    return Colors.black;
-  }
-
-  Widget _buildHeader(ble.RemoteDevice device) {
-    return new ScopedModelDescendant<model.BLEScannerModel>(builder: (
-      BuildContext context,
-      Widget child,
-      model.BLEScannerModel moduleModel,
-    ) {
-      final model.ConnectionState connState =
-          moduleModel.getPeripheralState(device.identifier);
-      return new Row(children: <Widget>[
-        new Expanded(
-            flex: 2,
-            child: new Container(
-                margin: const EdgeInsets.only(left: 24.0),
-                child: new FittedBox(
-                    fit: BoxFit.scaleDown,
-                    alignment: FractionalOffset.centerLeft,
-                    child:
-                        new Text(device.advertisingData.name ?? '(unknown)')))),
-        new Container(
-            margin: const EdgeInsets.only(left: 24.0),
-            child: new Text(
-                device.connectable ? _connectionStateString(connState) : '',
-                style: new TextStyle(
-                    fontStyle: FontStyle.italic,
-                    color: _connectionStateColor(connState)))),
-        new Container(
-            margin: const EdgeInsets.only(left: 24.0),
-            child: new Text('RSSI: ${device.rssi?.value ?? 'unknown'} dBm'))
-      ]);
-    });
-  }
-
-  String _toHexString(final List<int> data) {
-    return data
-        .map((int byte) => byte.toRadixString(16).padLeft(2, '0'))
-        .join(' ');
-  }
-
-  Widget _buildAdvertisingDataWidget(ble.RemoteDevice device) {
-    List<_AdvertisingDataEntry> entries = <_AdvertisingDataEntry>[];
-
-    TextStyle textStyle = new TextStyle(
-        color: Colors.grey[700], fontWeight: FontWeight.w500, fontSize: 12.0);
-
-    int currentMaxTitleLength = 0;
-    double textScaleFactor =
-        MediaQuery.of(context, nullOk: true)?.textScaleFactor ?? 1.0;
-
-    if (device.advertisingData.txPowerLevel != null) {
-      const String title = 'Tx Power Level';
-      currentMaxTitleLength = max(currentMaxTitleLength, title.length);
-      entries.add(new _AdvertisingDataEntry(
-          title,
-          (BuildContext context) => new Text(
-              '${device.advertisingData.txPowerLevel.value} dBm',
-              style: textStyle)));
-    }
-
-    if (device.advertisingData.serviceUuids?.isNotEmpty ?? false) {
-      const String title = 'Service UUIDs';
-      currentMaxTitleLength = max(currentMaxTitleLength, title.length);
-      entries.add(new _AdvertisingDataEntry(
-          title,
-          (BuildContext context) => new Column(
-              children: device.advertisingData.serviceUuids
-                  .map((String uuid) => new Text(uuid, style: textStyle))
-                  .toList())));
-    }
-
-    for (final ble.ServiceDataEntry entry
-        in device.advertisingData.serviceData ??
-            const <ble.ServiceDataEntry>[]) {
-      String title = 'Service Data ($entry.uuid)';
-      currentMaxTitleLength = max(currentMaxTitleLength, title.length);
-      entries.add(new _AdvertisingDataEntry(
-          title,
-          (BuildContext context) =>
-              new Text(_toHexString(entry.data), style: textStyle)));
-    }
-
-    for (final ble.ManufacturerSpecificDataEntry entry
-        in device.advertisingData.manufacturerSpecificData ??
-            const <ble.ManufacturerSpecificDataEntry>[]) {
-      String title =
-          'Manufacturer Data (${getManufacturerName(entry.companyId)})';
-      currentMaxTitleLength = max(currentMaxTitleLength, title.length);
-      entries.add(new _AdvertisingDataEntry(
-          title,
-          (BuildContext context) =>
-              new Text(_toHexString(entry.data), style: textStyle)));
-    }
-
-    for (String uri in device.advertisingData.uris ?? const <String>[]) {
-      const String title = 'URI';
-      currentMaxTitleLength = max(currentMaxTitleLength, title.length);
-      entries.add(new _AdvertisingDataEntry(
-          title, (BuildContext context) => new Text(uri)));
-    }
-
-    if (entries.isEmpty) {
-      return new Text('No data', style: textStyle);
-    }
-
-    return new Container(
-        alignment: FractionalOffset.center,
-        child: new Column(
-            children: entries
-                .map((final _AdvertisingDataEntry entry) => new Padding(
-                    padding: const EdgeInsets.only(bottom: 5.0),
-                    child: new Row(children: <Widget>[
-                      new Container(
-                          width: currentMaxTitleLength * textScaleFactor * 8.0,
-                          child: new Text('${entry.fieldTitle}:',
-                              style: new TextStyle(
-                                  color: Colors.grey[700],
-                                  fontWeight: FontWeight.w600,
-                                  fontSize: 12.0))),
-                      new Container(
-                          margin: const EdgeInsets.only(left: 30.0),
-                          child: new Builder(builder: entry.widgetBuilder))
-                    ])))
-                .toList()));
-  }
-
-  Widget _buildConnectionWidget(ble.RemoteDevice device) {
-    return new ScopedModelDescendant<model.BLEScannerModel>(builder: (
-      BuildContext context,
-      Widget child,
-      model.BLEScannerModel moduleModel,
-    ) {
-      if (!device.connectable) {
-        return const Text('Not connectable');
-      }
-
-      final model.ConnectionState connState =
-          moduleModel.getPeripheralState(device.identifier);
-
-      if (connState == model.ConnectionState.connecting) {
-        return const Text('Connecting...');
-      }
-
-      if (connState == model.ConnectionState.notConnected) {
-        return new FlatButton(
-            onPressed: () => moduleModel.connectPeripheral(device.identifier),
-            child: const Text('Connect'),
-            textTheme: ButtonTextTheme.accent);
-      }
-
-      return new FlatButton(
-          onPressed: () => moduleModel.disconnectPeripheral(device.identifier),
-          child: const Text('Disconnect'),
-          textTheme: ButtonTextTheme.accent);
-    });
-  }
-
-  Widget _buildBody(ble.RemoteDevice device) {
-    return new Column(children: <Widget>[
-      new Container(
-          margin: const EdgeInsets.only(left: 40.0, right: 24.0, bottom: 24.0),
-          child: new Center(child: _buildAdvertisingDataWidget(device))),
-      const Divider(height: 1.0),
-      new Container(
-          padding: const EdgeInsets.symmetric(vertical: 16.0),
-          child: new Container(
-              margin: const EdgeInsets.only(right: 8.0),
-              child: _buildConnectionWidget(device)))
-    ]);
-  }
-
-  @override
-  Widget build(BuildContext context) {
-    return new ScopedModelDescendant<model.BLEScannerModel>(builder: (
-      BuildContext context,
-      Widget child,
-      model.BLEScannerModel moduleModel,
-    ) {
-      if (moduleModel.discoveredDevices.isEmpty) {
-        return const Center(child: const Text('No devices found'));
-      }
-
-      return new SingleChildScrollView(
-          child: new ExpansionPanelList(
-              expansionCallback: (int index, bool isExpanded) {
-                setState(() {
-                  ble.RemoteDevice device =
-                      moduleModel.discoveredDevices.elementAt(index);
-                  _expandedStateMap[device.identifier] = !isExpanded;
-                });
-              },
-              children:
-                  moduleModel.discoveredDevices.map((ble.RemoteDevice device) {
-                return new ExpansionPanel(
-                    headerBuilder: (_, __) => _buildHeader(device),
-                    body: _buildBody(device),
-                    isExpanded: _expandedStateMap[device.identifier] ?? false);
-              }).toList()));
-    });
-  }
-}
diff --git a/examples/bluetooth/ble_scanner/meta/ble_scanner.cmx b/examples/bluetooth/ble_scanner/meta/ble_scanner.cmx
deleted file mode 100644
index 207ff07..0000000
--- a/examples/bluetooth/ble_scanner/meta/ble_scanner.cmx
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-    "program": {
-        "data": "data/ble_scanner"
-    },
-    "sandbox": {
-        "services": [
-            "fuchsia.bluetooth.le.Central",
-            "fuchsia.cobalt.LoggerFactory",
-            "fuchsia.fonts.Provider",
-            "fuchsia.logger.LogSink",
-            "fuchsia.modular.Clipboard",
-            "fuchsia.modular.ContextWriter",
-            "fuchsia.modular.ModuleContext",
-            "fuchsia.netstack.Netstack",
-            "fuchsia.sys.Environment",
-            "fuchsia.ui.input.ImeService",
-            "fuchsia.ui.policy.Presenter",
-            "fuchsia.ui.scenic.Scenic",
-            "fuchsia.ui.viewsv1.ViewManager",
-            "fuchsia.wlan.service.Wlan"
-        ]
-    }
-}
diff --git a/examples/bluetooth/ble_scanner/pubspec.yaml b/examples/bluetooth/ble_scanner/pubspec.yaml
deleted file mode 100644
index ee2ebe7..0000000
--- a/examples/bluetooth/ble_scanner/pubspec.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-# Copyright 2017 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-name: BLE Scanner Example
-
-flutter:
-  uses-material-design: true
diff --git a/examples/bluetooth/eddystone_advertiser/BUILD.gn b/examples/bluetooth/eddystone_advertiser/BUILD.gn
deleted file mode 100644
index b29922e..0000000
--- a/examples/bluetooth/eddystone_advertiser/BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2017 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import("//topaz/runtime/flutter_runner/flutter_app.gni")
-
-flutter_app("eddystone_advertiser") {
-  package_name = "eddystone_advertiser"
-
-  main_dart = "lib/main.dart"
-
-  deps = [
-    "//garnet/public/fidl/fuchsia.bluetooth",
-    "//garnet/public/fidl/fuchsia.bluetooth.le",
-    "//peridot/public/fidl/fuchsia.modular",
-    "//third_party/dart-pkg/git/flutter/packages/flutter",
-    "//topaz/public/dart/fidl",
-    "//topaz/public/lib/app/dart",
-    "//topaz/public/lib/app_driver/dart",
-    "//topaz/public/lib/widgets/dart",
-  ]
-}
diff --git a/examples/bluetooth/eddystone_advertiser/analysis_options.yaml b/examples/bluetooth/eddystone_advertiser/analysis_options.yaml
deleted file mode 100644
index 7415796..0000000
--- a/examples/bluetooth/eddystone_advertiser/analysis_options.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-# Copyright 2017 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-include: ../../../tools/analysis_options.yaml
diff --git a/examples/bluetooth/eddystone_advertiser/lib/main.dart b/examples/bluetooth/eddystone_advertiser/lib/main.dart
deleted file mode 100644
index 854d6f3..0000000
--- a/examples/bluetooth/eddystone_advertiser/lib/main.dart
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2017 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'package:flutter/material.dart';
-import 'package:flutter/widgets.dart';
-import 'package:lib.app.dart/app.dart';
-import 'package:lib.app.dart/logging.dart';
-import 'package:lib.app_driver.dart/module_driver.dart';
-import 'package:lib.widgets.dart/model.dart';
-
-import 'src/models/eddystone_model.dart';
-import 'src/screen.dart';
-
-void main() {
-  setupLogger();
-
-  runApp(new MaterialApp(home: moduleWidget));
-
-  final model = EddystoneModel();
-  final driver = ModuleDriver(onTerminate: model.onTerminate);
-
-  runApp(
-    MaterialApp(
-      home: ScopedModel<EddystoneModel>(
-        model: model,
-        child: EddystoneScreen(),
-      ),
-    ),
-  );
-
-  driver.start((_) {
-    model.connect(driver.environmentServices);
-  }).catchError(log.severe);
-}
diff --git a/examples/bluetooth/eddystone_advertiser/lib/src/models/eddystone_model.dart b/examples/bluetooth/eddystone_advertiser/lib/src/models/eddystone_model.dart
deleted file mode 100644
index 4c9dc02..0000000
--- a/examples/bluetooth/eddystone_advertiser/lib/src/models/eddystone_model.dart
+++ /dev/null
@@ -1,154 +0,0 @@
-// Copyright 2017 The Fuchsia Authors. 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:async';
-import 'package:fidl_fuchsia_bluetooth/fidl.dart' as bt;
-import 'package:fidl_fuchsia_bluetooth_le/fidl.dart' as ble;
-import 'package:fidl_fuchsia_modular/fidl.dart';
-import 'package:lib.app.dart/app.dart';
-import 'package:lib.app.dart/logging.dart';
-import 'package:lib.widgets.dart/model.dart';
-
-// ignore_for_file: public_member_api_docs
-
-/// The [Model] for the Eddystone advertiser example.
-class EddystoneModel extends Model {
-  // Members that maintain the FIDL service connections.
-  final ble.PeripheralProxy _peripheral = new ble.PeripheralProxy();
-
-  // The set of advertisements that we're adveertising. Maps url => id
-  final Map<String, String> _activeAdvertisements = <String, String>{};
-
-  static const String kEddystoneUuid = '0000feaa-0000-1000-8000-00805f9b34fb';
-
-  /// True if we have an active scan session.
-  bool get isAdvertising => _activeAdvertisements.isNotEmpty;
-
-  Iterable<String> get advertisedUrls => _activeAdvertisements.keys;
-
-  /// Advertises a URL, if possible.
-  Future<String> startAdvertising(String url) {
-    Completer<String> completer = new Completer<String>();
-    log.info('Advertising url: $url');
-    ble.AdvertisingData data = new ble.AdvertisingData(
-      serviceUuids: const <String>[kEddystoneUuid],
-      serviceData: <ble.ServiceDataEntry>[
-        new ble.ServiceDataEntry(
-            uuid: kEddystoneUuid, data: _eddystoneDataForUrl(url))
-      ],
-    );
-    _peripheral.startAdvertising(data, null, null, 1000, false,
-        (bt.Status status, String advertisementId) {
-      log.info('StartAdvertising result: $status with $advertisementId');
-      if (status.error != null) {
-        completer.completeError(status.error.description);
-        return;
-      }
-      _activeAdvertisements[url] = advertisementId;
-      notifyListeners();
-      completer.complete(advertisementId);
-    });
-    return completer.future;
-  }
-
-  void stopAdvertising(String url) {
-    if (!_activeAdvertisements.containsKey(url)) {
-      return;
-    }
-    _peripheral.stopAdvertising(_activeAdvertisements[url], (bt.Status status) {
-      if (status.error != null) {
-        log.info('Error stopping advertising for $url: $status');
-      }
-    });
-    _activeAdvertisements.remove(url);
-    notifyListeners();
-  }
-
-  void connect(ServiceProviderProxy environmentServices) {
-    connectToService(startupContext.environmentServices, _peripheral.ctrl);
-  }
-
-  void onTerminate() {
-    _activeAdvertisements.values.forEach(stopAdvertising);
-  }
-
-  final Map<String, int> _schemes = const <String, int>{
-    'http://www.': 0,
-    'https://www.': 1,
-    'http://': 2,
-    'https://': 3,
-  };
-
-  String validateEddystoneUrl(final String proposed) {
-    bool prefixFound = false;
-    for (final String prefix in _schemes.keys) {
-      if (proposed.startsWith(prefix)) {
-        prefixFound = true;
-      }
-    }
-
-    if (!prefixFound) {
-      return 'URL must start with http(s)://';
-    }
-
-    List<int> encoded = _eddystoneDataForUrl(proposed);
-    if (encoded.length > 20) {
-      return 'URL too long.';
-    }
-
-    return null;
-  }
-
-  List<int> _eddystoneDataForUrl(final String url) {
-    List<int> result = <int>[]
-      // Eddystone header
-      ..add(0x10) // Frame type (Eddystone-URL)
-      ..add(0x12); // Faked tx-power (18dBm)
-    String left = url;
-    // Scheme
-
-    const Map<String, int> expansions = const <String, int>{
-      '.com/': 0,
-      '.org/': 1,
-      '.edu/': 2,
-      '.net/': 3,
-      '.info/': 4,
-      '.biz/': 5,
-      '.gov/': 6,
-      '.com': 7,
-      '.org': 8,
-      '.edu': 9,
-      '.net': 10,
-      '.info': 11,
-      '.biz': 12,
-      '.gov': 13,
-    };
-
-    for (final String prefix in _schemes.keys) {
-      if (left.startsWith(prefix)) {
-        left = left.substring(prefix.length);
-        result.add(_schemes[prefix]);
-      }
-    }
-
-    while (left.isNotEmpty) {
-      bool compacted = false;
-      for (final String str in expansions.keys) {
-        if (left.startsWith(str)) {
-          result.add(expansions[str]);
-          left = left.substring(str.length);
-          compacted = true;
-          break;
-        }
-      }
-      if (compacted) {
-        continue;
-      }
-      result.add(left.codeUnitAt(0));
-      left = left.substring(1);
-    }
-
-    return result;
-  }
-}
diff --git a/examples/bluetooth/eddystone_advertiser/lib/src/screen.dart b/examples/bluetooth/eddystone_advertiser/lib/src/screen.dart
deleted file mode 100644
index ca71fb0..0000000
--- a/examples/bluetooth/eddystone_advertiser/lib/src/screen.dart
+++ /dev/null
@@ -1,113 +0,0 @@
-// Copyright 2017 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'package:flutter/material.dart';
-import 'package:lib.widgets/model.dart';
-import 'package:meta/meta.dart';
-
-import 'modular/module_model.dart';
-
-// ignore_for_file: public_member_api_docs
-
-/// Root Widget of the Eddystone Advertiser module.
-class EddystoneScreen extends StatefulWidget {
-  final EddystoneModuleModel moduleModel;
-
-  const EddystoneScreen({@required this.moduleModel, Key key})
-      : super(key: key);
-
-  @override
-  _EddystoneState createState() => new _EddystoneState();
-}
-
-typedef RemoveCallback = void Function();
-
-class AdvertisedListItem extends StatelessWidget {
-  AdvertisedListItem({this.url, this.onRemove})
-      : super(key: new ObjectKey(url));
-
-  final String url;
-  final RemoveCallback onRemove;
-
-  @override
-  Widget build(BuildContext context) {
-    return new ListTile(
-        title: new Text(url),
-        trailing:
-            new RaisedButton(child: const Text('STOP'), onPressed: onRemove));
-  }
-}
-
-class _EddystoneState extends State<EddystoneScreen> {
-  //final List<String> _advertisedUrls = [];
-
-  final GlobalKey<FormState> _formKey = new GlobalKey<FormState>();
-
-  @override
-  Widget build(BuildContext context) {
-    return new ScopedModelDescendant<EddystoneModuleModel>(builder: (
-      BuildContext context,
-      Widget child,
-      EddystoneModuleModel moduleModel,
-    ) {
-      Builder b = new Builder(builder: (BuildContext context) {
-        Widget advertisingForm = new Form(
-            key: _formKey,
-            autovalidate: true,
-            child: new Container(
-                padding: const EdgeInsets.all(36.0),
-                child: new Column(children: <Widget>[
-                  new Row(children: <Widget>[
-                    new Expanded(
-                        flex: 1,
-                        child: new TextFormField(
-                            decoration: const InputDecoration(
-                              labelText: 'Advertise URL',
-                              hintText:
-                                  'A URL to advertise in an Eddystone-URL beacon',
-                            ),
-                            validator: moduleModel.validateEddystoneUrl,
-                            onSaved: (String newValue) {
-                              if (moduleModel.advertisedUrls
-                                  .contains(newValue)) {
-                                return;
-                              }
-                              moduleModel.startAdvertising(newValue).catchError(
-                                  (Object error) => Scaffold
-                                      .of(context)
-                                      .showSnackBar(new SnackBar(
-                                          content: new Text(error),
-                                          backgroundColor:
-                                              const Color(0xFFFFC0EB),
-                                          duration:
-                                              const Duration(seconds: 15))));
-                            })),
-                    new RaisedButton(
-                        child: const Text('Advertise'),
-                        onPressed: () {
-                          _formKey.currentState.save();
-                          _formKey.currentState.reset();
-                        }),
-                  ]),
-                ])));
-        List<Widget> widgets = <Widget>[
-          advertisingForm,
-          const Text('Advertised URLs')
-        ]..addAll(moduleModel.advertisedUrls.map((String url) {
-            return new AdvertisedListItem(
-                url: url,
-                onRemove: () {
-                  moduleModel.stopAdvertising(url);
-                });
-          }));
-        return new Column(children: widgets);
-      });
-      return new Scaffold(
-          appBar: new AppBar(
-            title: const Text('Eddystone Beacon'),
-          ),
-          body: b);
-    });
-  }
-}
diff --git a/examples/bluetooth/eddystone_advertiser/pubspec.yaml b/examples/bluetooth/eddystone_advertiser/pubspec.yaml
deleted file mode 100644
index ee2ebe7..0000000
--- a/examples/bluetooth/eddystone_advertiser/pubspec.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-# Copyright 2017 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-name: BLE Scanner Example
-
-flutter:
-  uses-material-design: true
diff --git a/packages/examples/all b/packages/examples/all
index 7f6b984..6a5226e 100644
--- a/packages/examples/all
+++ b/packages/examples/all
@@ -1,6 +1,5 @@
 {
     "imports": [
-        "topaz/packages/examples/bluetooth",
         "topaz/packages/examples/dart",
         "topaz/packages/examples/fidl",
         "topaz/packages/examples/flutter_gallery",
diff --git a/packages/examples/bluetooth b/packages/examples/bluetooth
deleted file mode 100644
index b79d05c..0000000
--- a/packages/examples/bluetooth
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-    "packages": [
-        "//topaz/examples/bluetooth/ble_scanner"
-    ]
-}