10.2) can be used to check the syntax of property lists, or convert a property list file from one format to another. It also supports converting plists to Objective-C or Swift object literals. Like the Cocoa it is built on, it takes "old-style" inputs, but does not convert to this type. (The Cocoa from before Mac OS X 10.2 emits old-styled output.) The utility is introduced in Mac OS X v10.5. It takes any input and tries to generate "old-style" plists. Like the GNUstep version, it appears to use the property of Foundation types found in plists, which Apple has specified to produce valid old-style plists. In terms of the internals, Apple provides an open source parser for old style, XML, and binary formats in their C Core Foundation code as CFPropertyList. However, all the utilities and most parts of the system use the closed-source NSPropertyList parser from the Obj-C Foundation Kit. The Swift reimplementation is open source, but is not guaranteed to be identical. Format XML and JSON property lists are hand-editable in any text editor. Additionally, Apple provides support in Xcode for editing property lists in a hierarchical viewer/editor that can handle plists formatted in binary or XML, but not JSON. As of Mac OS X 10.4, Apple provides an AppleScript interface for reading property list files through the System Events application. As of Mac OS X 10.5, Apple provides an AppleScript interface for editing, creating and writing property list files as well. For the XML format, the tags, related Foundation classes and CoreFoundation types, and data storage formats are as follows: The Binary file format is documented in a comment block in the Core Foundation C code source file () for Apple's open sourced implementation of binary plists in its Foundation library. Apple describes the implementation as opaque in its plist(5) manual page documentation, which means that reliance on the format is discouraged. In the binary file format the magic number (the first few bytes of the file which indicate that it's a valid plist file) is the text bplist, followed by two bytes indicating the version of the format. The binary file can store some information that cannot be captured in the XML or JSON file formats. The array, set and dictionary binary types are made up of pointers - the objref and keyref entries - that index into an object table in the file. This