## @file
# UEFI 2.0 Shell Binary Package
#
# This package contains binary shell application that follows
# UEFI specification and UEFI Shell 2.0 specification.
# Copyright (c) 2011, Intel Corporation. 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.
#
##

[Defines]
  DEC_SPECIFICATION              = 0x00010005
  PACKAGE_NAME                   = ShellBinPkg
  PACKAGE_GUID                   = 4B34AD9D-1324-41e5-8B1D-359AA7BCA62C
  PACKAGE_VERSION                = 0.5

