# *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
#     CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
#     DEPENDING ON IT IN YOUR PROJECT. ***
third_party {
  # would be NOTICE save for GFDL in:
  #   src/test/resources/testData/packaging/text-files/wikipedia.html
  license_type: BY_EXCEPTION_ONLY
}
