# DO NOT EDIT
# generated with the following command:
#
#   tools/js/bower2bazel.py -w lib/js/bower_archives.bzl -b lib/js/bower_components.bzl
#

load("//tools/bzl:js.bzl", "bower_archive")

def load_bower_archives():
  bower_archive(
    name = "accessibility-developer-tools",
    package = "accessibility-developer-tools",
    version = "2.12.0",
    sha1 = "88ae82dcdeb6c658f76eff509d0ee425cae14d49")
  bower_archive(
    name = "async",
    package = "async",
    version = "1.5.2",
    sha1 = "1ec975d3b3834646a7e3d4b7e68118b90ed72508")
  bower_archive(
    name = "chai",
    package = "chai",
    version = "3.5.0",
    sha1 = "849ad3ee7c77506548b7b5db603a4e150b9431aa")
  bower_archive(
    name = "font-roboto",
    package = "PolymerElements/font-roboto",
    version = "1.0.3",
    sha1 = "edf478d20ae2fc0704d7c155e20162caaabdd5ae")
  bower_archive(
    name = "iron-a11y-announcer",
    package = "PolymerElements/iron-a11y-announcer",
    version = "1.0.6",
    sha1 = "14aed1e1b300ea344e80362e875919ea3d104dcc")
  bower_archive(
    name = "iron-a11y-keys-behavior",
    package = "PolymerElements/iron-a11y-keys-behavior",
    version = "1.1.9",
    sha1 = "f58358ee652c67e6e721364ba50fb77a2ece1465")
  bower_archive(
    name = "iron-behaviors",
    package = "PolymerElements/iron-behaviors",
    version = "1.0.18",
    sha1 = "e231a1a02b090f5183db917639fdb96cdd0dca18")
  bower_archive(
    name = "iron-checked-element-behavior",
    package = "PolymerElements/iron-checked-element-behavior",
    version = "1.0.6",
    sha1 = "93ad3554cec119d8c5732d1c722ad113e1866370")
  bower_archive(
    name = "iron-fit-behavior",
    package = "PolymerElements/iron-fit-behavior",
    version = "1.2.7",
    sha1 = "01c485fbf898307029bbb72ac7e132db1570a842")
  bower_archive(
    name = "iron-flex-layout",
    package = "PolymerElements/iron-flex-layout",
    version = "1.3.7",
    sha1 = "4d4cf3232cf750a17a7df0a37476117f831ac633")
  bower_archive(
    name = "iron-form-element-behavior",
    package = "PolymerElements/iron-form-element-behavior",
    version = "1.0.7",
    sha1 = "7b5a79e02cc32f0918725dd26925d0df1e03ed12")
  bower_archive(
    name = "iron-menu-behavior",
    package = "PolymerElements/iron-menu-behavior",
    version = "2.0.1",
    sha1 = "139528ee1e8d86257e2aa445de7761b8ec70ae91")
  bower_archive(
    name = "iron-meta",
    package = "PolymerElements/iron-meta",
    version = "1.1.3",
    sha1 = "f77eba3f6f6817f10bda33918bde8f963d450041")
  bower_archive(
    name = "iron-resizable-behavior",
    package = "polymerelements/iron-resizable-behavior",
    version = "1.0.6",
    sha1 = "719c2a8a1a784f8aefcdeef41fcc2e5a03518d9e")
  bower_archive(
    name = "iron-validatable-behavior",
    package = "PolymerElements/iron-validatable-behavior",
    version = "1.1.2",
    sha1 = "7111f34ff32e1510131dfbdb1eaa51bfa291e8be")
  bower_archive(
    name = "lodash",
    package = "lodash",
    version = "3.10.1",
    sha1 = "2f207a8293c4c554bf6cf071241f7a00dc513d3a")
  bower_archive(
    name = "mocha",
    package = "mocha",
    version = "3.5.3",
    sha1 = "c14f149821e4e96241b20f85134aa757b73038f1")
  bower_archive(
    name = "neon-animation",
    package = "polymerelements/neon-animation",
    version = "1.2.5",
    sha1 = "588d289f779d02b21ce5b676e257bbd6155649e8")
  bower_archive(
    name = "paper-behaviors",
    package = "polymerelements/paper-behaviors",
    version = "1.0.13",
    sha1 = "a81eab28a952e124c208430e17508d9a1aae4ee7")
  bower_archive(
    name = "paper-material",
    package = "polymerelements/paper-material",
    version = "1.0.7",
    sha1 = "159b7fb6b13b181c4276b25f9c6adbeaacb0d42b")
  bower_archive(
    name = "paper-ripple",
    package = "polymerelements/paper-ripple",
    version = "1.0.10",
    sha1 = "21199db50d02b842da54bd6f4f1d1b10b474e893")
  bower_archive(
    name = "paper-styles",
    package = "PolymerElements/paper-styles",
    version = "1.3.1",
    sha1 = "4ee9c692366949a754e0e39f8031aa60ce66f24d")
  bower_archive(
    name = "sinon-chai",
    package = "sinon-chai",
    version = "2.14.0",
    sha1 = "78f0dc184efe47012a2b1b9a16a4289acf8300dc")
  bower_archive(
    name = "sinonjs",
    package = "sinonjs",
    version = "1.17.1",
    sha1 = "a26a6aab7358807de52ba738770f6ac709afd240")
  bower_archive(
    name = "stacky",
    package = "stacky",
    version = "1.3.2",
    sha1 = "d6c07a0112ab2e9677fe085933744466a89232fb")
  bower_archive(
    name = "web-animations-js",
    package = "web-animations/web-animations-js",
    version = "2.3.1",
    sha1 = "2ba5548d36188fe54555eaad0a576de4b027661e")
  bower_archive(
    name = "webcomponentsjs",
    package = "webcomponents/webcomponentsjs",
    version = "0.7.24",
    sha1 = "559227f8ee9db9bfbd81989f24510cc0c1bfc65c")
