// /** @file
// Security Package Localized Strings and Content.
//
// Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR>
//
// SPDX-License-Identifier: BSD-2-Clause-Patent
//
// **/

#string STR_PROPERTIES_PACKAGE_NAME
#language en-US
"Security package"

