﻿// *++
//
// Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
// Copyright (c) 2015, Hisilicon Limited. All rights reserved.<BR>
// Copyright (c) 2015, Linaro Limited. All rights reserved.<BR>
//
// This program and the accompanying materials
// are licensed and made available under the terms and conditions of the BSD License
// which accompanies this distribution.  The full text of the license may be found at
// http://opensource.org/licenses/bsd-license.php
//
// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
//
// Based on files under Nt32Pkg/MiscSubClassPlatformDxe/
// --*/

/=#

#string STR_MISC_SYSTEM_MANUFACTURER   #language en-US  "Huawei Technologies Co., Ltd."
//#string STR_MISC_SYSTEM_PRODUCT_NAME   #language en-US  "To be filled by O.E.M."
#string STR_MISC_SYSTEM_PRODUCT_NAME   #language en-US  "PANGEA"
//#string STR_MISC_SYSTEM_VERSION        #language en-US  "To be filled by O.E.M."
#string STR_MISC_SYSTEM_VERSION        #language en-US  "V200R002"
#string STR_MISC_SYSTEM_SERIAL_NUMBER  #language en-US  "To be filled by O.E.M."
#string STR_MISC_SYSTEM_SKU_NUMBER     #language en-US  "To be filled by O.E.M."
#string STR_MISC_SYSTEM_FAMILY         #language en-US  "To be filled by O.E.M."
