From 27966bbc5d59d475d0b6bb02099778d85861f00e Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Fri, 4 Dec 2020 20:42:22 +0100 Subject: [PATCH 01/29] Added object tags --- Shared/Examples/ImageExampleFactory.swift | 4 +++- Source/API/Image/PDFImage+Equatable.swift | 8 ++++++- Source/API/List/PDFList+Equatable.swift | 22 +++++++++++++------ Source/API/List/PDFListItem+Equatable.swift | 22 +++++++++++++------ Source/API/Table/PDFTable+Equatable.swift | 22 +++++++++++++------ .../Table/Style/PDFTableCell+Equatable.swift | 22 +++++++++++++------ .../Text/PDFAttributedText+Equatable.swift | 22 +++++++++++++------ Source/API/Text/PDFSimpleText+Equatable.swift | 19 ++++++++++++---- Source/API/Utils/PDFDocumentObject.swift | 15 ++++++++++++- Source/API/Utils/PDFTaggableObject.swift | 17 ++++++++++++++ .../Utils/Attributes/PDFObjectAttribute.swift | 2 +- 11 files changed, 132 insertions(+), 43 deletions(-) create mode 100644 Source/API/Utils/PDFTaggableObject.swift diff --git a/Shared/Examples/ImageExampleFactory.swift b/Shared/Examples/ImageExampleFactory.swift index 1cd435d5..29635422 100644 --- a/Shared/Examples/ImageExampleFactory.swift +++ b/Shared/Examples/ImageExampleFactory.swift @@ -66,8 +66,10 @@ class ImageExampleFactory: ExampleFactory { ] ] - // Add first row of images + // As an example we can set a tag to the first image, so we can identify in our delegation methods + images[0][0].tag = 1 + // Add first row of images document.add(imagesInRow: images[0], spacing: 10) // Add spacing between image rows diff --git a/Source/API/Image/PDFImage+Equatable.swift b/Source/API/Image/PDFImage+Equatable.swift index 59b1d0ca..fe2fc859 100644 --- a/Source/API/Image/PDFImage+Equatable.swift +++ b/Source/API/Image/PDFImage+Equatable.swift @@ -8,12 +8,18 @@ /** TODO: documentation */ -extension PDFImage: Equatable { +extension PDFImage { /** TODO: documentation */ public static func == (lhs: PDFImage, rhs: PDFImage) -> Bool { + guard lhs.attributes == rhs.attributes else { + return false + } + guard lhs.tag == rhs.tag else { + return false + } guard lhs.image == rhs.image else { return false } diff --git a/Source/API/List/PDFList+Equatable.swift b/Source/API/List/PDFList+Equatable.swift index 50eba40d..4588620b 100644 --- a/Source/API/List/PDFList+Equatable.swift +++ b/Source/API/List/PDFList+Equatable.swift @@ -5,15 +5,23 @@ // Created by Philip Niedertscheider on 09/11/2017. // -/** - TODO: documentation - */ -extension PDFList: Equatable { +extension PDFList { - /** - TODO: documentation - */ + /// Compares two instances of `PDFList` for equality + /// + /// - Parameters: + /// - lhs: One instance of `PDFList` + /// - rhs: Another instance of `PDFList` + /// - Returns: `true`, if `levelIndentations` and `items` equal; otherwise `false` public static func == (lhs: PDFList, rhs: PDFList) -> Bool { + // Properties of PDFObjectAttribute + guard lhs.attributes == rhs.attributes else { + return false + } + guard lhs.tag == rhs.tag else { + return false + } + // Properties of PDFList guard lhs.levelIndentations.count == rhs.levelIndentations.count else { return false } diff --git a/Source/API/List/PDFListItem+Equatable.swift b/Source/API/List/PDFListItem+Equatable.swift index f9ddd1e5..06d84312 100644 --- a/Source/API/List/PDFListItem+Equatable.swift +++ b/Source/API/List/PDFListItem+Equatable.swift @@ -5,15 +5,23 @@ // Created by Philip Niedertscheider on 09/11/2017. // -/** - TODO: documentation - */ -extension PDFListItem: Equatable { +extension PDFListItem { - /** - TODO: documentation - */ + /// Compares two instances of `PDFListItem` for equality + /// + /// - Parameters: + /// - lhs: One instance of `PDFListItem` + /// - rhs: Another instance of `PDFListItem` + /// - Returns: `true`, if `attributes`, `tag`, `content`, `children` and `symbol` equal; otherwise `false` public static func == (lhs: PDFListItem, rhs: PDFListItem) -> Bool { + // Properties of PDFObjectAttribute + guard lhs.attributes == rhs.attributes else { + return false + } + guard lhs.tag == rhs.tag else { + return false + } + // Properties of PDFListItem guard lhs.content == rhs.content else { return false } diff --git a/Source/API/Table/PDFTable+Equatable.swift b/Source/API/Table/PDFTable+Equatable.swift index 41ffb8c7..f7a02d19 100644 --- a/Source/API/Table/PDFTable+Equatable.swift +++ b/Source/API/Table/PDFTable+Equatable.swift @@ -5,15 +5,23 @@ // Created by Philip Niedertscheider on 09/11/2017. // -/** - TODO: Documentation - */ -extension PDFTable: Equatable { +extension PDFTable { - /** - TODO: Documentation - */ + /// Compares two instances of `PDFTable` for equality + /// + /// - Parameters: + /// - lhs: One instance of `PDFTable` + /// - rhs: Another instance of `PDFTable` + /// - Returns: `true`, if `attributes`, `tag`, `style`, `cells`, `widths`, `padding`, `margin`, `showHeadersOnEveryPage` equal; otherwise `false` public static func == (lhs: PDFTable, rhs: PDFTable) -> Bool { + // Properties of PDFObjectAttribute + guard lhs.attributes == rhs.attributes else { + return false + } + guard lhs.tag == rhs.tag else { + return false + } + // Properties of PDFTable guard lhs.style == rhs.style else { return false } diff --git a/Source/API/Table/Style/PDFTableCell+Equatable.swift b/Source/API/Table/Style/PDFTableCell+Equatable.swift index a4a59e8b..df5e2d76 100644 --- a/Source/API/Table/Style/PDFTableCell+Equatable.swift +++ b/Source/API/Table/Style/PDFTableCell+Equatable.swift @@ -5,15 +5,23 @@ // Created by Philip Niedertscheider on 09/11/2017. // -/** - TODO: Documentation - */ -extension PDFTableCell: Equatable { +extension PDFTableCell { - /** - TODO: Documentation - */ + /// Compares two instances of `PDFTableCell` for equality + /// + /// - Parameters: + /// - lhs: One instance of `PDFTableCell` + /// - rhs: Another instance of `PDFTableCell` + /// - Returns: `true`, if `attributes`, `tag`, `content`, `alignment` and `style` equal; otherwise `false` public static func == (lhs: PDFTableCell, rhs: PDFTableCell) -> Bool { + // Properties of PDFTableCell + guard lhs.attributes == rhs.attributes else { + return false + } + guard lhs.tag == rhs.tag else { + return false + } + // Properties of PDFTableCell if lhs.content != rhs.content { return false } diff --git a/Source/API/Text/PDFAttributedText+Equatable.swift b/Source/API/Text/PDFAttributedText+Equatable.swift index 85120548..8991a82a 100644 --- a/Source/API/Text/PDFAttributedText+Equatable.swift +++ b/Source/API/Text/PDFAttributedText+Equatable.swift @@ -5,15 +5,23 @@ // Created by Philip Niedertscheider on 09/11/2017. // -/** - TODO: Documentation - */ -extension PDFAttributedText: Equatable { +extension PDFAttributedText { - /** - TODO: Documentation - */ + /// Compares two instances of `PDFAttributedText` for equality + /// + /// - Parameters: + /// - lhs: One instance of `PDFAttributedText` + /// - rhs: Another instance of `PDFAttributedText` + /// - Returns: `true`, if `attributes`, `tag` and `text` equal; otherwise `false` public static func == (lhs: PDFAttributedText, rhs: PDFAttributedText) -> Bool { + // Properties of PDFObjectAttribute + guard lhs.attributes == rhs.attributes else { + return false + } + guard lhs.tag == rhs.tag else { + return false + } + // Properties of PDFAttributedText guard lhs.text == rhs.text else { return false } diff --git a/Source/API/Text/PDFSimpleText+Equatable.swift b/Source/API/Text/PDFSimpleText+Equatable.swift index 161acf11..446423ea 100644 --- a/Source/API/Text/PDFSimpleText+Equatable.swift +++ b/Source/API/Text/PDFSimpleText+Equatable.swift @@ -8,12 +8,23 @@ /** TODO: Documentation */ -extension PDFSimpleText: Equatable { +extension PDFSimpleText { - /** - TODO: Documentation - */ + /// Compares two instances of `PDFSimpleText` for equality + /// + /// - Parameters: + /// - lhs: One instance of `PDFSimpleText` + /// - rhs: Another instance of `PDFSimpleText` + /// - Returns: `true`, if `attributes`, `tag`, `text` and `spacing` equal; otherwise `false` public static func == (lhs: PDFSimpleText, rhs: PDFSimpleText) -> Bool { + // Properties of PDFObjectAttribute + guard lhs.attributes == rhs.attributes else { + return false + } + guard lhs.tag == rhs.tag else { + return false + } + // Properties of PDFSimpleText guard lhs.text == rhs.text else { return false } diff --git a/Source/API/Utils/PDFDocumentObject.swift b/Source/API/Utils/PDFDocumentObject.swift index ced5d82b..7814ff3d 100644 --- a/Source/API/Utils/PDFDocumentObject.swift +++ b/Source/API/Utils/PDFDocumentObject.swift @@ -7,9 +7,10 @@ import Foundation -public class PDFDocumentObject: PDFAttributableObject { +public class PDFDocumentObject: PDFAttributableObject, PDFTaggableObject { public var attributes: [PDFObjectAttribute] = [] + public var tag: Int = 0 public init() {} @@ -17,3 +18,15 @@ public class PDFDocumentObject: PDFAttributableObject { attributes.append(attribute) } } + +extension PDFDocumentObject: Hashable { + + public static func == (lhs: PDFDocumentObject, rhs: PDFDocumentObject) -> Bool { + lhs.attributes == rhs.attributes && lhs.tag == rhs.tag + } + + public func hash(into hasher: inout Hasher) { + hasher.combine(attributes) + hasher.combine(tag) + } +} diff --git a/Source/API/Utils/PDFTaggableObject.swift b/Source/API/Utils/PDFTaggableObject.swift new file mode 100644 index 00000000..dbd5ab07 --- /dev/null +++ b/Source/API/Utils/PDFTaggableObject.swift @@ -0,0 +1,17 @@ +// +// PDFTaggableObject.swift +// TPPDF +// +// Created by Philip Niedertscheider on 04.12.20. +// Copyright © 2020 Philip Niedertscheider. All rights reserved. +// + +/// Object can be identified using the `tag` property +public protocol PDFTaggableObject { + + /// An integer that you can use to identify document objects in your application. + /// + /// The default value is 0. You can set the value of this tag and use that value to identify the object later. + var tag: Int { get set } + +} diff --git a/Source/Internal/Utils/Attributes/PDFObjectAttribute.swift b/Source/Internal/Utils/Attributes/PDFObjectAttribute.swift index 3d06c692..73bdb913 100644 --- a/Source/Internal/Utils/Attributes/PDFObjectAttribute.swift +++ b/Source/Internal/Utils/Attributes/PDFObjectAttribute.swift @@ -10,7 +10,7 @@ import Foundation /** List of attributes an object can obtain */ -public enum PDFObjectAttribute { +public enum PDFObjectAttribute: Hashable { /** Adds a clickable link with a redirection to the given URL From a38acf5ea180a1d91033b1dc9ab38487b705fa0a Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Fri, 4 Dec 2020 23:13:36 +0100 Subject: [PATCH 02/29] Fixed missing file in proejct --- TPPDF.xcodeproj/project.pbxproj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/TPPDF.xcodeproj/project.pbxproj b/TPPDF.xcodeproj/project.pbxproj index 3005ab25..d8d664d1 100644 --- a/TPPDF.xcodeproj/project.pbxproj +++ b/TPPDF.xcodeproj/project.pbxproj @@ -162,6 +162,7 @@ D4803D3B24703E5300DDA039 /* PDFText.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803CA024703E5300DDA039 /* PDFText.swift */; }; D4803D3C24703E5300DDA039 /* PDFTextStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803CA124703E5300DDA039 /* PDFTextStyle.swift */; }; D4839C39253706950005BB87 /* PDFTableCalculatedCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4839C38253706950005BB87 /* PDFTableCalculatedCell.swift */; }; + D494BA6E257ADF850017C407 /* PDFTaggableObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D494BA6D257ADF850017C407 /* PDFTaggableObject.swift */; }; D4EE2F9724A34C990004E3B9 /* PDFContextGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4EE2F9624A34C990004E3B9 /* PDFContextGraphics.swift */; }; D4EE2F9924A34CBF0004E3B9 /* CrossPlattformGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4EE2F9824A34CBF0004E3B9 /* CrossPlattformGraphics.swift */; }; OBJ_419 /* AdapterProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_331 /* AdapterProtocols.swift */; }; @@ -623,6 +624,7 @@ D4803CA024703E5300DDA039 /* PDFText.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFText.swift; sourceTree = ""; }; D4803CA124703E5300DDA039 /* PDFTextStyle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTextStyle.swift; sourceTree = ""; }; D4839C38253706950005BB87 /* PDFTableCalculatedCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTableCalculatedCell.swift; sourceTree = ""; }; + D494BA6D257ADF850017C407 /* PDFTaggableObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PDFTaggableObject.swift; path = Source/API/Utils/PDFTaggableObject.swift; sourceTree = SOURCE_ROOT; }; D4EE2F9624A34C990004E3B9 /* PDFContextGraphics.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFContextGraphics.swift; sourceTree = ""; }; D4EE2F9824A34CBF0004E3B9 /* CrossPlattformGraphics.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CrossPlattformGraphics.swift; sourceTree = ""; }; "Nimble::Nimble::Product" /* Nimble.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -935,6 +937,7 @@ D4803BEC24703E5300DDA039 /* Utils */ = { isa = PBXGroup; children = ( + D494BA6D257ADF850017C407 /* PDFTaggableObject.swift */, D4803BED24703E5300DDA039 /* PDFCalculations.swift */, D4803BEE24703E5300DDA039 /* PDFSlicedObject.swift */, D4803BEF24703E5300DDA039 /* CustomStringConvertible+AutoDescribing.swift */, @@ -2332,6 +2335,7 @@ D4803CFA24703E5300DDA039 /* PDFSectionColumn.swift in Sources */, D4803D1424703E5300DDA039 /* PDFPageLayout.swift in Sources */, D4803D2024703E5300DDA039 /* PDFTableCellStyle.swift in Sources */, + D494BA6E257ADF850017C407 /* PDFTaggableObject.swift in Sources */, D4803CFF24703E5300DDA039 /* PDFGenerator+Generation.swift in Sources */, D4803CF324703E5300DDA039 /* PDFMultiDocumentGenerator.swift in Sources */, D4EE2F9924A34CBF0004E3B9 /* CrossPlattformGraphics.swift in Sources */, From e778cc96b708a4c221015e7135921e17a98b98e9 Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Fri, 4 Dec 2020 23:49:28 +0100 Subject: [PATCH 03/29] Fixed equality patterns --- Source/API/Image/PDFImage+Equatable.swift | 2 +- Source/API/List/PDFList+Equatable.swift | 2 +- Source/API/List/PDFListItem+Equatable.swift | 2 +- Source/API/Table/PDFTable+Equatable.swift | 2 +- .../Table/{Style => }/PDFTableCell+Equatable.swift | 8 ++++---- Source/API/Text/PDFSimpleText+Equatable.swift | 2 +- Source/API/Utils/PDFDocumentObject.swift | 12 ------------ TPPDF.xcodeproj/project.pbxproj | 2 +- 8 files changed, 10 insertions(+), 22 deletions(-) rename Source/API/Table/{Style => }/PDFTableCell+Equatable.swift (82%) diff --git a/Source/API/Image/PDFImage+Equatable.swift b/Source/API/Image/PDFImage+Equatable.swift index fe2fc859..1b05bbc3 100644 --- a/Source/API/Image/PDFImage+Equatable.swift +++ b/Source/API/Image/PDFImage+Equatable.swift @@ -8,7 +8,7 @@ /** TODO: documentation */ -extension PDFImage { +extension PDFImage: Equatable { /** TODO: documentation diff --git a/Source/API/List/PDFList+Equatable.swift b/Source/API/List/PDFList+Equatable.swift index 4588620b..2ff78f17 100644 --- a/Source/API/List/PDFList+Equatable.swift +++ b/Source/API/List/PDFList+Equatable.swift @@ -5,7 +5,7 @@ // Created by Philip Niedertscheider on 09/11/2017. // -extension PDFList { +extension PDFList: Equatable { /// Compares two instances of `PDFList` for equality /// diff --git a/Source/API/List/PDFListItem+Equatable.swift b/Source/API/List/PDFListItem+Equatable.swift index 06d84312..03530487 100644 --- a/Source/API/List/PDFListItem+Equatable.swift +++ b/Source/API/List/PDFListItem+Equatable.swift @@ -5,7 +5,7 @@ // Created by Philip Niedertscheider on 09/11/2017. // -extension PDFListItem { +extension PDFListItem: Equatable { /// Compares two instances of `PDFListItem` for equality /// diff --git a/Source/API/Table/PDFTable+Equatable.swift b/Source/API/Table/PDFTable+Equatable.swift index f7a02d19..fe198f16 100644 --- a/Source/API/Table/PDFTable+Equatable.swift +++ b/Source/API/Table/PDFTable+Equatable.swift @@ -5,7 +5,7 @@ // Created by Philip Niedertscheider on 09/11/2017. // -extension PDFTable { +extension PDFTable: Equatable { /// Compares two instances of `PDFTable` for equality /// diff --git a/Source/API/Table/Style/PDFTableCell+Equatable.swift b/Source/API/Table/PDFTableCell+Equatable.swift similarity index 82% rename from Source/API/Table/Style/PDFTableCell+Equatable.swift rename to Source/API/Table/PDFTableCell+Equatable.swift index df5e2d76..607783e5 100644 --- a/Source/API/Table/Style/PDFTableCell+Equatable.swift +++ b/Source/API/Table/PDFTableCell+Equatable.swift @@ -5,7 +5,7 @@ // Created by Philip Niedertscheider on 09/11/2017. // -extension PDFTableCell { +extension PDFTableCell: Equatable { /// Compares two instances of `PDFTableCell` for equality /// @@ -22,13 +22,13 @@ extension PDFTableCell { return false } // Properties of PDFTableCell - if lhs.content != rhs.content { + guard lhs.content == rhs.content else { return false } - if lhs.alignment != rhs.alignment { + guard lhs.style == rhs.style else { return false } - if lhs.style != rhs.style { + guard lhs.alignment == rhs.alignment else { return false } return true diff --git a/Source/API/Text/PDFSimpleText+Equatable.swift b/Source/API/Text/PDFSimpleText+Equatable.swift index 446423ea..065c81bf 100644 --- a/Source/API/Text/PDFSimpleText+Equatable.swift +++ b/Source/API/Text/PDFSimpleText+Equatable.swift @@ -8,7 +8,7 @@ /** TODO: Documentation */ -extension PDFSimpleText { +extension PDFSimpleText: Equatable { /// Compares two instances of `PDFSimpleText` for equality /// diff --git a/Source/API/Utils/PDFDocumentObject.swift b/Source/API/Utils/PDFDocumentObject.swift index 7814ff3d..9af41d71 100644 --- a/Source/API/Utils/PDFDocumentObject.swift +++ b/Source/API/Utils/PDFDocumentObject.swift @@ -18,15 +18,3 @@ public class PDFDocumentObject: PDFAttributableObject, PDFTaggableObject { attributes.append(attribute) } } - -extension PDFDocumentObject: Hashable { - - public static func == (lhs: PDFDocumentObject, rhs: PDFDocumentObject) -> Bool { - lhs.attributes == rhs.attributes && lhs.tag == rhs.tag - } - - public func hash(into hasher: inout Hasher) { - hasher.combine(attributes) - hasher.combine(tag) - } -} diff --git a/TPPDF.xcodeproj/project.pbxproj b/TPPDF.xcodeproj/project.pbxproj index d8d664d1..64c1f28f 100644 --- a/TPPDF.xcodeproj/project.pbxproj +++ b/TPPDF.xcodeproj/project.pbxproj @@ -1221,6 +1221,7 @@ isa = PBXGroup; children = ( D4803C7824703E5300DDA039 /* PDFTable+Equatable.swift */, + D4803C8124703E5300DDA039 /* PDFTableCell+Equatable.swift */, D4803C7924703E5300DDA039 /* Style */, D4803C8324703E5300DDA039 /* Sections */, D4803C8E24703E5300DDA039 /* Content */, @@ -1242,7 +1243,6 @@ D4803C7E24703E5300DDA039 /* PDFTableCellPosition+Equatable-Hashable.swift */, D4803C7F24703E5300DDA039 /* PDFTableCellBorders.swift */, D4803C8024703E5300DDA039 /* PDFTableStyle+Equatable.swift */, - D4803C8124703E5300DDA039 /* PDFTableCell+Equatable.swift */, D4803C8224703E5300DDA039 /* PDFTableCellStyle.swift */, ); path = Style; From 36e346e00c9108efae67d85f910c6026fd25be68 Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Sat, 5 Dec 2020 22:14:56 +0100 Subject: [PATCH 04/29] Added hashable and Equatable --- Package.resolved | 26 ++++++++-- Package.swift | 4 +- .../API/Graphics/PDFLineStyle+Equatable.swift | 26 ---------- Source/API/Graphics/PDFLineStyle.swift | 28 +++++++++-- Source/API/Image/PDFImage+Equatable.swift | 42 ---------------- Source/API/Image/PDFImage.swift | 47 ++++++++++++++++++ Source/API/Image/PDFImageOptions.swift | 3 +- Source/API/List/PDFList+Equatable.swift | 39 --------------- Source/API/List/PDFList.swift | 41 ++++++++++++++++ Source/API/List/PDFListItem+Equatable.swift | 36 -------------- Source/API/List/PDFListItem.swift | 36 ++++++++++++++ Source/API/List/PDFListItemSymbol.swift | 26 +++++++++- .../Content/PDFTableContent+Equatable.swift | 44 ----------------- .../API/Table/Content/PDFTableContent.swift | 42 +++++++++++++++- Source/API/Table/PDFTable+Equatable.swift | 49 ------------------- Source/API/Table/PDFTable.swift | 37 ++++++++++++++ Source/API/Table/PDFTableCell+Equatable.swift | 37 -------------- Source/API/Table/PDFTableCell.swift | 36 ++++++++++++++ .../Style/PDFTableCellBorders+Equatable.swift | 32 ------------ .../API/Table/Style/PDFTableCellBorders.swift | 47 +++++++++++------- .../Style/PDFTableCellStyle+Equatable.swift | 29 ----------- .../API/Table/Style/PDFTableCellStyle.swift | 25 +++++++++- .../Text/PDFAttributedText+Equatable.swift | 30 ------------ Source/API/Text/PDFAttributedText.swift | 25 +++++++++- Source/API/Text/PDFSimpleText+Equatable.swift | 8 +-- Source/API/Text/PDFSimpleText.swift | 30 +++++++++++- Source/API/Text/PDFText.swift | 28 +---------- Source/API/Text/PDFTextStyle.swift | 25 +++++++++- Source/API/Utils/PDFDocumentObject.swift | 23 +++++++-- .../PDFGenerator+Generation_Spec.swift | 5 -- .../Text/PDFAttributedTextObject_Spec.swift | 1 - 31 files changed, 467 insertions(+), 440 deletions(-) delete mode 100644 Source/API/Graphics/PDFLineStyle+Equatable.swift delete mode 100644 Source/API/Image/PDFImage+Equatable.swift delete mode 100644 Source/API/List/PDFList+Equatable.swift delete mode 100644 Source/API/List/PDFListItem+Equatable.swift delete mode 100644 Source/API/Table/Content/PDFTableContent+Equatable.swift delete mode 100644 Source/API/Table/PDFTable+Equatable.swift delete mode 100644 Source/API/Table/PDFTableCell+Equatable.swift delete mode 100644 Source/API/Table/Style/PDFTableCellBorders+Equatable.swift delete mode 100644 Source/API/Table/Style/PDFTableCellStyle+Equatable.swift delete mode 100644 Source/API/Text/PDFAttributedText+Equatable.swift diff --git a/Package.resolved b/Package.resolved index 4a3a2b86..a7345b7e 100644 --- a/Package.resolved +++ b/Package.resolved @@ -1,13 +1,31 @@ { "object": { "pins": [ + { + "package": "CwlCatchException", + "repositoryURL": "https://github.com/mattgallagher/CwlCatchException.git", + "state": { + "branch": null, + "revision": "f809deb30dc5c9d9b78c872e553261a61177721a", + "version": "2.0.0" + } + }, + { + "package": "CwlPreconditionTesting", + "repositoryURL": "https://github.com/mattgallagher/CwlPreconditionTesting.git", + "state": { + "branch": null, + "revision": "02b7a39a99c4da27abe03cab2053a9034379639f", + "version": "2.0.0" + } + }, { "package": "Nimble", "repositoryURL": "https://github.com/Quick/Nimble", "state": { "branch": null, - "revision": "7a46a5fc86cb917f69e3daf79fcb045283d8f008", - "version": "8.1.2" + "revision": "e491a6731307bb23783bf664d003be9b2fa59ab5", + "version": "9.0.0" } }, { @@ -15,8 +33,8 @@ "repositoryURL": "https://github.com/Quick/Quick", "state": { "branch": null, - "revision": "09b3becb37cb2163919a3842a4c5fa6ec7130792", - "version": "2.2.1" + "revision": "0038bcbab4292f3b028632556507c124e5ba69f3", + "version": "3.0.0" } } ] diff --git a/Package.swift b/Package.swift index 629bcf71..4355c330 100644 --- a/Package.swift +++ b/Package.swift @@ -12,8 +12,8 @@ let package = Package( .library(name: "TPPDF", targets: ["TPPDF"]), ], dependencies: [ - .package(url: "https://github.com/Quick/Quick", .exact("2.2.0")), - .package(url: "https://github.com/Quick/Nimble", .exact("8.0.7")), + .package(url: "https://github.com/Quick/Quick", .upToNextMajor(from: "3.0.0")), + .package(url: "https://github.com/Quick/Nimble", .upToNextMajor(from: "9.0.0")), ], targets: [ .target(name: "TPPDF", path: "Source"), diff --git a/Source/API/Graphics/PDFLineStyle+Equatable.swift b/Source/API/Graphics/PDFLineStyle+Equatable.swift deleted file mode 100644 index 5a35ed37..00000000 --- a/Source/API/Graphics/PDFLineStyle+Equatable.swift +++ /dev/null @@ -1,26 +0,0 @@ -// -// PDFLineStyle+Equatable.swift -// TPPDF -// -// Created by Philip Niedertscheider on 09/11/2017. -// - -extension PDFLineStyle: Equatable { - - /** - TODO: Documentation - */ - public static func == (lhs: PDFLineStyle, rhs: PDFLineStyle) -> Bool { - guard lhs.type == rhs.type else { - return false - } - guard lhs.color == rhs.color else { - return false - } - guard lhs.width == rhs.width else { - return false - } - return true - } - -} diff --git a/Source/API/Graphics/PDFLineStyle.swift b/Source/API/Graphics/PDFLineStyle.swift index 59d92e6c..30cf6b57 100644 --- a/Source/API/Graphics/PDFLineStyle.swift +++ b/Source/API/Graphics/PDFLineStyle.swift @@ -14,7 +14,7 @@ import AppKit /** This struct defines how a line or border of a table is drawn. */ -public struct PDFLineStyle { +public struct PDFLineStyle: Hashable { /** Defines the type of this line @@ -51,9 +51,29 @@ public struct PDFLineStyle { self.radius = radius } - /** - Shorthand method for creating an invisible line - */ + // MARK: - Equatable + + public static func == (lhs: PDFLineStyle, rhs: PDFLineStyle) -> Bool { + guard lhs.type == rhs.type else { return false } + guard lhs.color == rhs.color else { return false } + guard lhs.width == rhs.width else { return false } + return true + } + + // MARK: - Hashable + + public func hash(into hasher: inout Hasher) { + hasher.combine(type) + hasher.combine(color) + hasher.combine(width) + } +} + +// MARK: - Defaults + +extension PDFLineStyle { + + /// Shorthand method for creating an invisible line public static var none: PDFLineStyle { PDFLineStyle(type: .none, width: 0) } diff --git a/Source/API/Image/PDFImage+Equatable.swift b/Source/API/Image/PDFImage+Equatable.swift deleted file mode 100644 index 1b05bbc3..00000000 --- a/Source/API/Image/PDFImage+Equatable.swift +++ /dev/null @@ -1,42 +0,0 @@ -// -// PDFImage+Equatable.swguardt -// TPPDF -// -// Created by Philip Niedertscheider on 09/11/2017. -// - -/** - TODO: documentation - */ -extension PDFImage: Equatable { - - /** - TODO: documentation - */ - public static func == (lhs: PDFImage, rhs: PDFImage) -> Bool { - guard lhs.attributes == rhs.attributes else { - return false - } - guard lhs.tag == rhs.tag else { - return false - } - guard lhs.image == rhs.image else { - return false - } - if let lhsCaption = lhs.caption, let rhsCaption = rhs.caption, lhsCaption != rhsCaption { - return false - } else if (lhs.caption == nil && rhs.caption != nil) || (lhs.caption != nil && rhs.caption == nil) { - return false - } - guard lhs.size == rhs.size else { - return false - } - guard lhs.sizeFit == rhs.sizeFit else { - return false - } - guard lhs.quality == rhs.quality else { - return false - } - return true - } -} diff --git a/Source/API/Image/PDFImage.swift b/Source/API/Image/PDFImage.swift index 78d3c51f..e95b0347 100644 --- a/Source/API/Image/PDFImage.swift +++ b/Source/API/Image/PDFImage.swift @@ -93,4 +93,51 @@ public class PDFImage: PDFDocumentObject { options: self.options, cornerRadius: self.cornerRadius) } + + // MARK: - Equatable + + public override func isEqual(to other: PDFDocumentObject) -> Bool { + guard super.isEqual(to: other) else { + return false + } + guard let otherImage = other as? PDFImage else { + return false + } + guard self.attributes == otherImage.attributes else { + return false + } + guard self.tag == otherImage.tag else { + return false + } + guard self.image == otherImage.image else { + return false + } + guard self.caption == otherImage.caption else { + return false + } + guard self.size == otherImage.size else { + return false + } + guard self.sizeFit == otherImage.sizeFit else { + return false + } + guard self.quality == otherImage.quality else { + return false + } + return true + } + + // MARK: - Hashable + + public override func hash(into hasher: inout Hasher) { + hasher.combine(image) + hasher.combine(caption) + hasher.combine(size.width) + hasher.combine(size.height) + hasher.combine(sizeFit) + hasher.combine(quality) + hasher.combine(quality) + hasher.combine(options) + hasher.combine(cornerRadius) + } } diff --git a/Source/API/Image/PDFImageOptions.swift b/Source/API/Image/PDFImageOptions.swift index cd45f1b6..8797c690 100644 --- a/Source/API/Image/PDFImageOptions.swift +++ b/Source/API/Image/PDFImageOptions.swift @@ -8,7 +8,7 @@ /** TODO: documentation */ -public struct PDFImageOptions: OptionSet { +public struct PDFImageOptions: OptionSet, Hashable { /** TODO: documentation @@ -61,4 +61,5 @@ public struct PDFImageOptions: OptionSet { TODO: documentation */ public static let none = PDFImageOptions(rawValue: 1 << 7) + } diff --git a/Source/API/List/PDFList+Equatable.swift b/Source/API/List/PDFList+Equatable.swift deleted file mode 100644 index 2ff78f17..00000000 --- a/Source/API/List/PDFList+Equatable.swift +++ /dev/null @@ -1,39 +0,0 @@ -// -// PDFList+Equatable.swift -// TPPDF -// -// Created by Philip Niedertscheider on 09/11/2017. -// - -extension PDFList: Equatable { - - /// Compares two instances of `PDFList` for equality - /// - /// - Parameters: - /// - lhs: One instance of `PDFList` - /// - rhs: Another instance of `PDFList` - /// - Returns: `true`, if `levelIndentations` and `items` equal; otherwise `false` - public static func == (lhs: PDFList, rhs: PDFList) -> Bool { - // Properties of PDFObjectAttribute - guard lhs.attributes == rhs.attributes else { - return false - } - guard lhs.tag == rhs.tag else { - return false - } - // Properties of PDFList - guard lhs.levelIndentations.count == rhs.levelIndentations.count else { - return false - } - for (idx, indentation) in lhs.levelIndentations.enumerated() where rhs.levelIndentations[idx] != indentation { - return false - } - guard lhs.items.count == rhs.items.count else { - return false - } - for (idx, item) in lhs.items.enumerated() where rhs.items[idx] != item { - return false - } - return true - } -} diff --git a/Source/API/List/PDFList.swift b/Source/API/List/PDFList.swift index 8d67564a..bbad4e0a 100644 --- a/Source/API/List/PDFList.swift +++ b/Source/API/List/PDFList.swift @@ -109,6 +109,47 @@ public class PDFList: PDFDocumentObject { list.items = items.map(\.copy) return list } + + // MARK: - Equatable + + /// Compares two instances of `PDFList` for equality + /// + /// - Parameters: + /// - lhs: One instance of `PDFList` + /// - rhs: Another instance of `PDFList` + /// - Returns: `true`, if `levelIndentations` and `items` equal; otherwise `false` + public override func isEqual(to other: PDFDocumentObject) -> Bool { + guard super.isEqual(to: other) else { + return false + } + guard let otherList = other as? PDFList else { + return false + } + guard self.levelIndentations.count == otherList.levelIndentations.count else { + return false + } + for (idx, indentation) in self.levelIndentations.enumerated() where otherList.levelIndentations[idx] != indentation { + return false + } + guard self.items.count == otherList.items.count else { + return false + } + for (idx, item) in self.items.enumerated() where otherList.items[idx] != item { + return false + } + return true + } + + // MARK: - Hashable + + public override func hash(into hasher: inout Hasher) { + super.hash(into: &hasher) + for (pre, post) in levelIndentations { + hasher.combine(pre) + hasher.combine(post) + } + hasher.combine(items) + } } extension PDFList: CustomDebugStringConvertible { diff --git a/Source/API/List/PDFListItem+Equatable.swift b/Source/API/List/PDFListItem+Equatable.swift deleted file mode 100644 index 03530487..00000000 --- a/Source/API/List/PDFListItem+Equatable.swift +++ /dev/null @@ -1,36 +0,0 @@ -// -// PDFListItem+Equatable.swift -// TPPDF -// -// Created by Philip Niedertscheider on 09/11/2017. -// - -extension PDFListItem: Equatable { - - /// Compares two instances of `PDFListItem` for equality - /// - /// - Parameters: - /// - lhs: One instance of `PDFListItem` - /// - rhs: Another instance of `PDFListItem` - /// - Returns: `true`, if `attributes`, `tag`, `content`, `children` and `symbol` equal; otherwise `false` - public static func == (lhs: PDFListItem, rhs: PDFListItem) -> Bool { - // Properties of PDFObjectAttribute - guard lhs.attributes == rhs.attributes else { - return false - } - guard lhs.tag == rhs.tag else { - return false - } - // Properties of PDFListItem - guard lhs.content == rhs.content else { - return false - } - guard (lhs.children ?? []) == (rhs.children ?? []) else { - return false - } - guard lhs.symbol == rhs.symbol else { - return false - } - return true - } -} diff --git a/Source/API/List/PDFListItem.swift b/Source/API/List/PDFListItem.swift index 9e96cd77..801bd278 100644 --- a/Source/API/List/PDFListItem.swift +++ b/Source/API/List/PDFListItem.swift @@ -78,6 +78,42 @@ public class PDFListItem: PDFDocumentObject { } return item } + + // MARK: - Equatable + + /// Compares two instances of `PDFListItem` for equality + /// + /// - Parameters: + /// - lhs: One instance of `PDFListItem` + /// - rhs: Another instance of `PDFListItem` + /// - Returns: `true`, if `attributes`, `tag`, `content`, `children` and `symbol` equal; otherwise `false` + public override func isEqual(to other: PDFDocumentObject) -> Bool { + guard super.isEqual(to: other) else { + return false + } + guard let otherListItem = other as? PDFListItem else { + return false + } + guard self.content == otherListItem.content else { + return false + } + guard self.children == otherListItem.children else { + return false + } + guard self.symbol == otherListItem.symbol else { + return false + } + return true + } + + // MARK: - Equatable + + public override func hash(into hasher: inout Hasher) { + super.hash(into: &hasher) + hasher.combine(content) + hasher.combine(children) + hasher.combine(symbol) + } } extension PDFListItem: CustomDebugStringConvertible { diff --git a/Source/API/List/PDFListItemSymbol.swift b/Source/API/List/PDFListItemSymbol.swift index 9ec463fd..162819bc 100644 --- a/Source/API/List/PDFListItemSymbol.swift +++ b/Source/API/List/PDFListItemSymbol.swift @@ -8,7 +8,7 @@ /** TODO: documentation */ -public enum PDFListItemSymbol: RawRepresentable { +public enum PDFListItemSymbol: RawRepresentable, Hashable { /** TODO: documentation @@ -112,4 +112,28 @@ public enum PDFListItemSymbol: RawRepresentable { } } } + + // MARK: - Equatable + + public static func == (lhs: PDFListItemSymbol, rhs: PDFListItemSymbol) -> Bool { + switch (lhs, rhs) { + case (.none, .none), + (.inherit, .inherit), + (.dot, .dot), + (.dash, .dash): + return true + case let (.custom(lhsValue), .custom(rhsValue)): + return lhsValue == rhsValue + case let (.numbered(lhsValue), .numbered(rhsValue)): + return lhsValue == rhsValue + default: + return false + } + } + + // MARK: - Hashable + + public func hash(into hasher: inout Hasher) { + hasher.combine(rawValue) + } } diff --git a/Source/API/Table/Content/PDFTableContent+Equatable.swift b/Source/API/Table/Content/PDFTableContent+Equatable.swift deleted file mode 100644 index 5b73bedb..00000000 --- a/Source/API/Table/Content/PDFTableContent+Equatable.swift +++ /dev/null @@ -1,44 +0,0 @@ -// -// PDFTableContent+Equatable.swift -// TPPDF -// -// Created by Philip Niedertscheider on 09/11/2017. -// - -#if os(iOS) -import UIKit -#elseif os(macOS) -import AppKit -#endif - -/** - TODO: Documentation - */ -extension PDFTableContent: Equatable { - - /** - TODO: Documentation - */ - public static func == (lhs: PDFTableContent, rhs: PDFTableContent) -> Bool { - guard lhs.type == rhs.type else { - return false - } - if let lhsString = lhs.content as? String, - let rhsString = rhs.content as? String, - lhsString != rhsString { - return false - } else if let lhsString = lhs.content as? NSAttributedString, - let rhsString = rhs.content as? NSAttributedString, - lhsString != rhsString { - return false - } else if let lhsImage = lhs.content as? Image, - let rhsImage = rhs.content as? Image, - lhsImage != rhsImage { - return false - } else if (lhs.content == nil && rhs.content != nil) || (lhs.content != nil && rhs.content == nil) { - return false - } - return true - } - -} diff --git a/Source/API/Table/Content/PDFTableContent.swift b/Source/API/Table/Content/PDFTableContent.swift index a575887a..f5b1bdf8 100644 --- a/Source/API/Table/Content/PDFTableContent.swift +++ b/Source/API/Table/Content/PDFTableContent.swift @@ -14,7 +14,7 @@ import AppKit /** TODO: Documentation */ -public class PDFTableContent: CustomStringConvertible { +public class PDFTableContent: CustomStringConvertible, Hashable { /** TODO: Documentation @@ -106,6 +106,46 @@ public class PDFTableContent: CustomStringConvertible { internal var imageValue: Image? { type == .image ? content as? Image : nil } + + // MARK: - Equatable + + public static func == (lhs: PDFTableContent, rhs: PDFTableContent) -> Bool { + guard lhs.type == rhs.type else { + return false + } + if let lhsString = lhs.content as? String, + let rhsString = rhs.content as? String, + lhsString != rhsString { + return false + } else if let lhsString = lhs.content as? NSAttributedString, + let rhsString = rhs.content as? NSAttributedString, + lhsString != rhsString { + return false + } else if let lhsImage = lhs.content as? Image, + let rhsImage = rhs.content as? Image, + lhsImage != rhsImage { + return false + } else if (lhs.content == nil && rhs.content != nil) || (lhs.content != nil && rhs.content == nil) { + return false + } + return true + } + + // MARK: - Hashable + + public func hash(into hasher: inout Hasher) { + hasher.combine(type) + switch type { + case .string: + hasher.combine(stringValue) + case .attributedString: + hasher.combine(attributedStringValue) + case .image: + hasher.combine(imageValue) + case .none: + hasher.combine("none") + } + } } extension PDFTableContent: PDFTableContentable { diff --git a/Source/API/Table/PDFTable+Equatable.swift b/Source/API/Table/PDFTable+Equatable.swift deleted file mode 100644 index fe198f16..00000000 --- a/Source/API/Table/PDFTable+Equatable.swift +++ /dev/null @@ -1,49 +0,0 @@ -// -// PDFTable+Equatable.swift -// TPPDF -// -// Created by Philip Niedertscheider on 09/11/2017. -// - -extension PDFTable: Equatable { - - /// Compares two instances of `PDFTable` for equality - /// - /// - Parameters: - /// - lhs: One instance of `PDFTable` - /// - rhs: Another instance of `PDFTable` - /// - Returns: `true`, if `attributes`, `tag`, `style`, `cells`, `widths`, `padding`, `margin`, `showHeadersOnEveryPage` equal; otherwise `false` - public static func == (lhs: PDFTable, rhs: PDFTable) -> Bool { - // Properties of PDFObjectAttribute - guard lhs.attributes == rhs.attributes else { - return false - } - guard lhs.tag == rhs.tag else { - return false - } - // Properties of PDFTable - guard lhs.style == rhs.style else { - return false - } - guard lhs.cells.count == rhs.cells.count else { - return false - } - for i in 0.. Bool { + guard super.isEqual(to: other) else { return false } + + guard let otherTable = other as? PDFTable else { + return false + } + guard self.style == otherTable.style else { + return false + } + guard self.cells.count == otherTable.cells.count else { + return false + } + for i in 0.. Bool { - // Properties of PDFTableCell - guard lhs.attributes == rhs.attributes else { - return false - } - guard lhs.tag == rhs.tag else { - return false - } - // Properties of PDFTableCell - guard lhs.content == rhs.content else { - return false - } - guard lhs.style == rhs.style else { - return false - } - guard lhs.alignment == rhs.alignment else { - return false - } - return true - } - -} diff --git a/Source/API/Table/PDFTableCell.swift b/Source/API/Table/PDFTableCell.swift index c421cd65..c06ac5f3 100644 --- a/Source/API/Table/PDFTableCell.swift +++ b/Source/API/Table/PDFTableCell.swift @@ -40,4 +40,40 @@ public class PDFTableCell: PDFDocumentObject { self.alignment = alignment self.style = style } + + // MARK: - Equatable + + /// Compares two instances of `PDFTableCell` for equality + /// + /// - Parameters: + /// - lhs: One instance of `PDFTableCell` + /// - rhs: Another instance of `PDFTableCell` + /// - Returns: `true`, if `attributes`, `tag`, `content`, `alignment` and `style` equal; otherwise `false` + public override func isEqual(to other: PDFDocumentObject) -> Bool { + guard super.isEqual(to: other) else { + return false + } + guard let otherCell = other as? PDFTableCell else { + return false + } + guard self.content == otherCell.content else { + return false + } + guard self.style == otherCell.style else { + return false + } + guard self.alignment == otherCell.alignment else { + return false + } + return true + } + + // MARK: - Equatable + + public override func hash(into hasher: inout Hasher) { + super.hash(into: &hasher) + hasher.combine(content) + hasher.combine(style) + hasher.combine(alignment) + } } diff --git a/Source/API/Table/Style/PDFTableCellBorders+Equatable.swift b/Source/API/Table/Style/PDFTableCellBorders+Equatable.swift deleted file mode 100644 index ce6b1e59..00000000 --- a/Source/API/Table/Style/PDFTableCellBorders+Equatable.swift +++ /dev/null @@ -1,32 +0,0 @@ -// -// PDFTableCellBorders+Equatable.swift -// TPPDF -// -// Created by Philip Niedertscheider on 09/11/2017. -// - -/** - TODO: Documentation - */ -extension PDFTableCellBorders: Equatable { - - /** - TODO: Documentation - */ - public static func == (lhs: PDFTableCellBorders, rhs: PDFTableCellBorders) -> Bool { - guard lhs.left == rhs.left else { - return false - } - guard lhs.top == rhs.top else { - return false - } - guard lhs.right == rhs.right else { - return false - } - guard lhs.bottom == rhs.bottom else { - return false - } - return true - } - -} diff --git a/Source/API/Table/Style/PDFTableCellBorders.swift b/Source/API/Table/Style/PDFTableCellBorders.swift index 561bc013..bbd338c2 100644 --- a/Source/API/Table/Style/PDFTableCellBorders.swift +++ b/Source/API/Table/Style/PDFTableCellBorders.swift @@ -8,42 +8,55 @@ /** TODO: Documentation */ -public struct PDFTableCellBorders { +public struct PDFTableCellBorders: Hashable { - /** - TODO: Documentation - */ + /// Style of left edge line public var left: PDFLineStyle - /** - TODO: Documentation - */ + /// Style of top edge line public var top: PDFLineStyle - /** - TODO: Documentation - */ + /// Style of right edge line public var right: PDFLineStyle - /** - TODO: Documentation - */ + /// Style of bottom edge line public var bottom: PDFLineStyle /** TODO: Documentation */ - public init(left: PDFLineStyle = PDFLineStyle.none, - top: PDFLineStyle = PDFLineStyle.none, - right: PDFLineStyle = PDFLineStyle.none, - bottom: PDFLineStyle = PDFLineStyle.none) { + public init(left: PDFLineStyle = .none, + top: PDFLineStyle = .none, + right: PDFLineStyle = .none, + bottom: PDFLineStyle = .none) { self.left = left self.top = top self.right = right self.bottom = bottom } + + // MARK: - Equatable + + public static func == (lhs: PDFTableCellBorders, rhs: PDFTableCellBorders) -> Bool { + guard lhs.left == rhs.left else { return false } + guard lhs.top == rhs.top else { return false } + guard lhs.right == rhs.right else { return false } + guard lhs.bottom == rhs.bottom else { return false } + return true + } + + // MARK: - Hashable + + public func hash(into hasher: inout Hasher) { + hasher.combine(left) + hasher.combine(top) + hasher.combine(right) + hasher.combine(bottom) + } } +// MARK: - Defaults + extension PDFTableCellBorders { public static let none = PDFTableCellBorders(left: .none, top: .none, right: .none, bottom: .none) diff --git a/Source/API/Table/Style/PDFTableCellStyle+Equatable.swift b/Source/API/Table/Style/PDFTableCellStyle+Equatable.swift deleted file mode 100644 index 1cb9a163..00000000 --- a/Source/API/Table/Style/PDFTableCellStyle+Equatable.swift +++ /dev/null @@ -1,29 +0,0 @@ -// -// PDFTableCellStyle+Equatable.swift -// TPPDF -// -// Created by Philip Niedertscheider on 09/11/2017. -// - -/** - TODO: Documentation - */ -extension PDFTableCellStyle: Equatable { - - /** - TODO: Documentation - */ - public static func == (lhs: PDFTableCellStyle, rhs: PDFTableCellStyle) -> Bool { - guard lhs.colors == rhs.colors else { - return false - } - guard lhs.borders == rhs.borders else { - return false - } - guard lhs.font == rhs.font else { - return false - } - return true - } - -} diff --git a/Source/API/Table/Style/PDFTableCellStyle.swift b/Source/API/Table/Style/PDFTableCellStyle.swift index 9bd6ab00..ce43bb42 100644 --- a/Source/API/Table/Style/PDFTableCellStyle.swift +++ b/Source/API/Table/Style/PDFTableCellStyle.swift @@ -14,7 +14,7 @@ import AppKit /** TODO: Documentation */ -public struct PDFTableCellStyle { +public struct PDFTableCellStyle : Hashable { /** TODO: Documentation @@ -41,6 +41,29 @@ public struct PDFTableCellStyle { self.borders = borders self.font = font } + + // MARK: - Equatable + + public static func == (lhs: PDFTableCellStyle, rhs: PDFTableCellStyle) -> Bool { + guard lhs.colors == rhs.colors else { + return false + } + guard lhs.borders == rhs.borders else { + return false + } + guard lhs.font == rhs.font else { + return false + } + return true + } + // MARK: - Hashable + + public func hash(into hasher: inout Hasher) { + hasher.combine(colors.fill) + hasher.combine(colors.text) + hasher.combine(borders) + hasher.combine(font) + } } extension PDFTableCellStyle { diff --git a/Source/API/Text/PDFAttributedText+Equatable.swift b/Source/API/Text/PDFAttributedText+Equatable.swift deleted file mode 100644 index 8991a82a..00000000 --- a/Source/API/Text/PDFAttributedText+Equatable.swift +++ /dev/null @@ -1,30 +0,0 @@ -// -// PDFAttributedText+Equatable.swift -// TPPDF -// -// Created by Philip Niedertscheider on 09/11/2017. -// - -extension PDFAttributedText { - - /// Compares two instances of `PDFAttributedText` for equality - /// - /// - Parameters: - /// - lhs: One instance of `PDFAttributedText` - /// - rhs: Another instance of `PDFAttributedText` - /// - Returns: `true`, if `attributes`, `tag` and `text` equal; otherwise `false` - public static func == (lhs: PDFAttributedText, rhs: PDFAttributedText) -> Bool { - // Properties of PDFObjectAttribute - guard lhs.attributes == rhs.attributes else { - return false - } - guard lhs.tag == rhs.tag else { - return false - } - // Properties of PDFAttributedText - guard lhs.text == rhs.text else { - return false - } - return true - } -} diff --git a/Source/API/Text/PDFAttributedText.swift b/Source/API/Text/PDFAttributedText.swift index 2930a64a..b7931149 100644 --- a/Source/API/Text/PDFAttributedText.swift +++ b/Source/API/Text/PDFAttributedText.swift @@ -35,7 +35,30 @@ public class PDFAttributedText: PDFText { /** Creats a new `PDFAttributedText` with the same properties */ - override internal var copy: PDFText { + public override var copy: PDFText { PDFAttributedText(text: text) } + + // MARK: - Equatable + + /// Compares two instances of `PDFAttributedText` for equality + /// + /// - Parameters: + /// - lhs: One instance of `PDFAttributedText` + /// - rhs: Another instance of `PDFAttributedText` + /// - Returns: `true`, if `attributes`, `tag` and `text` equal; otherwise `false` + public override func isEqual(to other: PDFDocumentObject) -> Bool { + guard super.isEqual(to: other) else { + return false + } + guard let otherAttributedText = other as? PDFAttributedText else { + return false + } + guard self.text == otherAttributedText.text else { + return false + } + return true + } + + // MARK: - Hasha } diff --git a/Source/API/Text/PDFSimpleText+Equatable.swift b/Source/API/Text/PDFSimpleText+Equatable.swift index 065c81bf..2348e64a 100644 --- a/Source/API/Text/PDFSimpleText+Equatable.swift +++ b/Source/API/Text/PDFSimpleText+Equatable.swift @@ -8,14 +8,8 @@ /** TODO: Documentation */ -extension PDFSimpleText: Equatable { +extension PDFSimpleText { - /// Compares two instances of `PDFSimpleText` for equality - /// - /// - Parameters: - /// - lhs: One instance of `PDFSimpleText` - /// - rhs: Another instance of `PDFSimpleText` - /// - Returns: `true`, if `attributes`, `tag`, `text` and `spacing` equal; otherwise `false` public static func == (lhs: PDFSimpleText, rhs: PDFSimpleText) -> Bool { // Properties of PDFObjectAttribute guard lhs.attributes == rhs.attributes else { diff --git a/Source/API/Text/PDFSimpleText.swift b/Source/API/Text/PDFSimpleText.swift index bb812803..26cb721e 100644 --- a/Source/API/Text/PDFSimpleText.swift +++ b/Source/API/Text/PDFSimpleText.swift @@ -49,7 +49,35 @@ public class PDFSimpleText: PDFText { /** Creates a new `PDFSimpleText` with the same properties */ - override internal var copy: PDFText { + public override var copy: PDFText { PDFSimpleText(text: self.text, spacing: self.spacing, style: self.style) } + + // MARK: - Equatable + + /// Compares two instances of `PDFSimpleText` for equality + /// + /// - Parameters: + /// - other: Another instance of `PDFSimpleText` + /// - Returns: `true`, if `attributes`, `tag`, `text` and `spacing` equal; otherwise `false` + public override func isEqual(to other: PDFDocumentObject) -> Bool { + guard super.isEqual(to: other) else { + return false + } + guard let otherText = other as? PDFSimpleText else { + return false + } + guard self.text == otherText.text else { + return false + } + guard self.spacing == otherText.spacing else { + return false + } + guard self.style == otherText.style else { + return false + } + return true + } + + // MARK: - Hashable } diff --git a/Source/API/Text/PDFText.swift b/Source/API/Text/PDFText.swift index 319a5a26..7c0f0cea 100644 --- a/Source/API/Text/PDFText.swift +++ b/Source/API/Text/PDFText.swift @@ -5,34 +5,10 @@ // Created by Philip Niedertscheider on 31/10/2017. // -/** - Protocol all text objects should implement - */ +/// Protocol all text objects should implement public class PDFText: PDFDocumentObject, CustomStringConvertible { - /** - TODO: Documentation - */ - internal var copy: PDFText { + var copy: PDFText { fatalError() } - - /** - TODO: Documentation - */ - public static func != (lhs: PDFText, rhs: PDFText) -> Bool { - !(lhs == rhs) - } - - /** - TODO: Documentation - */ - public static func == (lhs: PDFText, rhs: PDFText) -> Bool { - if let attributedLhs = lhs as? PDFAttributedText, let attributedRhs = rhs as? PDFAttributedText { - return attributedLhs == attributedRhs - } else if let simpleLhs = lhs as? PDFSimpleText, let simpleRhs = rhs as? PDFSimpleText { - return simpleLhs == simpleRhs - } - return false - } } diff --git a/Source/API/Text/PDFTextStyle.swift b/Source/API/Text/PDFTextStyle.swift index 76debf2d..ac735bd2 100644 --- a/Source/API/Text/PDFTextStyle.swift +++ b/Source/API/Text/PDFTextStyle.swift @@ -14,7 +14,7 @@ import AppKit /** TODO: Documentation */ -public class PDFTextStyle { +public class PDFTextStyle: Hashable { /** Name of style @@ -43,4 +43,27 @@ public class PDFTextStyle { self.font = font self.color = color } + + // MARK: - Equatable + + public static func == (lhs: PDFTextStyle, rhs: PDFTextStyle) -> Bool { + guard lhs.name == rhs.name else { + return false + } + guard lhs.font == rhs.font else { + return false + } + guard lhs.color == rhs.color else { + return false + } + return true + } + + // MARK: - Hashable + + public func hash(into hasher: inout Hasher) { + hasher.combine(name) + hasher.combine(font) + hasher.combine(color) + } } diff --git a/Source/API/Utils/PDFDocumentObject.swift b/Source/API/Utils/PDFDocumentObject.swift index 9af41d71..7dba44a7 100644 --- a/Source/API/Utils/PDFDocumentObject.swift +++ b/Source/API/Utils/PDFDocumentObject.swift @@ -5,9 +5,7 @@ // Created by Philip Niedertscheider on 19.12.19. // -import Foundation - -public class PDFDocumentObject: PDFAttributableObject, PDFTaggableObject { +public class PDFDocumentObject: PDFAttributableObject, PDFTaggableObject, Hashable { public var attributes: [PDFObjectAttribute] = [] public var tag: Int = 0 @@ -17,4 +15,23 @@ public class PDFDocumentObject: PDFAttributableObject, PDFTaggableObject { public func add(attribute: PDFObjectAttribute) { attributes.append(attribute) } + + // MARK: - Equatable + + public static func == (lhs: PDFDocumentObject, rhs: PDFDocumentObject) -> Bool { + lhs.isEqual(to: rhs) + } + + public func isEqual(to other: PDFDocumentObject) -> Bool { + guard self.attributes == other.attributes else { return false } + guard self.tag == other.tag else { return false } + return true + } + + // MARK: - Hashable + + public func hash(into hasher: inout Hasher) { + hasher.combine(attributes) + hasher.combine(tag) + } } diff --git a/Tests/TPPDFTests/PDFGenerator+Generation_Spec.swift b/Tests/TPPDFTests/PDFGenerator+Generation_Spec.swift index 0c2ae732..82b9d76e 100644 --- a/Tests/TPPDFTests/PDFGenerator+Generation_Spec.swift +++ b/Tests/TPPDFTests/PDFGenerator+Generation_Spec.swift @@ -28,7 +28,6 @@ class PDFGenerator_Generation_Spec: QuickSpec { var url: URL! expect { url = try PDFGenerator(document: document).generateURL(filename: filename) - return nil }.toNot(throwError()) expect(url).toEventuallyNot(beNil()) @@ -49,7 +48,6 @@ class PDFGenerator_Generation_Spec: QuickSpec { var url: URL! expect { url = try PDFGenerator(document: document).generateURL(filename: filename) - return nil }.toNot(throwError()) expect(url).toEventuallyNot(beNil()) @@ -70,7 +68,6 @@ class PDFGenerator_Generation_Spec: QuickSpec { var url: URL! expect { url = try PDFGenerator(document: document).generateURL(filename: filename) - return nil }.toNot(throwError()) expect(url).toEventuallyNot(beNil()) @@ -94,7 +91,6 @@ class PDFGenerator_Generation_Spec: QuickSpec { var data: Data! expect { data = try PDFGenerator(document: document).generateData() - return nil }.toNot(throwError()) expect(data).toEventuallyNot(beNil()) // let expectedBase64 = "" @@ -108,7 +104,6 @@ class PDFGenerator_Generation_Spec: QuickSpec { var data: Data! expect { data = try PDFGenerator(document: document).generateData() - return nil }.toNot(throwError()) expect(data).toEventuallyNot(beNil()) // let expectedBase64 = "" diff --git a/Tests/TPPDFTests/Text/PDFAttributedTextObject_Spec.swift b/Tests/TPPDFTests/Text/PDFAttributedTextObject_Spec.swift index 7692bb07..8d0c499a 100644 --- a/Tests/TPPDFTests/Text/PDFAttributedTextObject_Spec.swift +++ b/Tests/TPPDFTests/Text/PDFAttributedTextObject_Spec.swift @@ -44,7 +44,6 @@ class PDFAttributedTextObject_Spec: QuickSpec { let custom = CustomTextObject() expect { let _ = PDFAttributedTextObject(text: custom) - return nil }.to(throwAssertion()) #endif } From be015f3334390954a2188235f61d6b25ab927165 Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Sun, 3 Jan 2021 09:45:14 +0100 Subject: [PATCH 05/29] Fixed project setup --- .../CwlCatchExceptionSupport_Info.plist | 25 + TPPDF.xcodeproj/CwlCatchException_Info.plist | 25 + .../CwlMachBadInstructionHandler_Info.plist | 25 + .../CwlPosixPreconditionTesting_Info.plist | 25 + .../CwlPreconditionTesting_Info.plist | 25 + .../CwlCatchExceptionSupport/module.modulemap | 4 + .../QuickObjCRuntime/module.modulemap | 4 + TPPDF.xcodeproj/QuickObjCRuntime_Info.plist | 25 + TPPDF.xcodeproj/TPPDF_Info.plist | 1 - TPPDF.xcodeproj/project.pbxproj | 4339 +++++++++-------- 10 files changed, 2469 insertions(+), 2029 deletions(-) create mode 100644 TPPDF.xcodeproj/CwlCatchExceptionSupport_Info.plist create mode 100644 TPPDF.xcodeproj/CwlCatchException_Info.plist create mode 100644 TPPDF.xcodeproj/CwlMachBadInstructionHandler_Info.plist create mode 100644 TPPDF.xcodeproj/CwlPosixPreconditionTesting_Info.plist create mode 100644 TPPDF.xcodeproj/CwlPreconditionTesting_Info.plist create mode 100644 TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap create mode 100644 TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap create mode 100644 TPPDF.xcodeproj/QuickObjCRuntime_Info.plist diff --git a/TPPDF.xcodeproj/CwlCatchExceptionSupport_Info.plist b/TPPDF.xcodeproj/CwlCatchExceptionSupport_Info.plist new file mode 100644 index 00000000..57ada9f9 --- /dev/null +++ b/TPPDF.xcodeproj/CwlCatchExceptionSupport_Info.plist @@ -0,0 +1,25 @@ + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/TPPDF.xcodeproj/CwlCatchException_Info.plist b/TPPDF.xcodeproj/CwlCatchException_Info.plist new file mode 100644 index 00000000..57ada9f9 --- /dev/null +++ b/TPPDF.xcodeproj/CwlCatchException_Info.plist @@ -0,0 +1,25 @@ + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/TPPDF.xcodeproj/CwlMachBadInstructionHandler_Info.plist b/TPPDF.xcodeproj/CwlMachBadInstructionHandler_Info.plist new file mode 100644 index 00000000..57ada9f9 --- /dev/null +++ b/TPPDF.xcodeproj/CwlMachBadInstructionHandler_Info.plist @@ -0,0 +1,25 @@ + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/TPPDF.xcodeproj/CwlPosixPreconditionTesting_Info.plist b/TPPDF.xcodeproj/CwlPosixPreconditionTesting_Info.plist new file mode 100644 index 00000000..57ada9f9 --- /dev/null +++ b/TPPDF.xcodeproj/CwlPosixPreconditionTesting_Info.plist @@ -0,0 +1,25 @@ + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/TPPDF.xcodeproj/CwlPreconditionTesting_Info.plist b/TPPDF.xcodeproj/CwlPreconditionTesting_Info.plist new file mode 100644 index 00000000..57ada9f9 --- /dev/null +++ b/TPPDF.xcodeproj/CwlPreconditionTesting_Info.plist @@ -0,0 +1,25 @@ + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap b/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap new file mode 100644 index 00000000..55dece39 --- /dev/null +++ b/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap @@ -0,0 +1,4 @@ +module CwlCatchExceptionSupport { + umbrella "/Volumes/Developer/TPPDF/.build/checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport/include" + export * +} diff --git a/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap b/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap new file mode 100644 index 00000000..551fba0e --- /dev/null +++ b/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap @@ -0,0 +1,4 @@ +module QuickObjCRuntime { + umbrella "/Volumes/Developer/TPPDF/.build/checkouts/Quick/Sources/QuickObjCRuntime/include" + export * +} diff --git a/TPPDF.xcodeproj/QuickObjCRuntime_Info.plist b/TPPDF.xcodeproj/QuickObjCRuntime_Info.plist new file mode 100644 index 00000000..57ada9f9 --- /dev/null +++ b/TPPDF.xcodeproj/QuickObjCRuntime_Info.plist @@ -0,0 +1,25 @@ + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/TPPDF.xcodeproj/TPPDF_Info.plist b/TPPDF.xcodeproj/TPPDF_Info.plist index ca23c84f..cae2ad07 100644 --- a/TPPDF.xcodeproj/TPPDF_Info.plist +++ b/TPPDF.xcodeproj/TPPDF_Info.plist @@ -1,5 +1,4 @@ - CFBundleDevelopmentRegion diff --git a/TPPDF.xcodeproj/project.pbxproj b/TPPDF.xcodeproj/project.pbxproj index 64c1f28f..b199ee58 100644 --- a/TPPDF.xcodeproj/project.pbxproj +++ b/TPPDF.xcodeproj/project.pbxproj @@ -3,17 +3,17 @@ archiveVersion = 1; classes = { }; - objectVersion = 53; + objectVersion = 46; objects = { /* Begin PBXAggregateTarget section */ "TPPDF::TPPDFPackageTests::ProductTarget" /* TPPDFPackageTests */ = { isa = PBXAggregateTarget; - buildConfigurationList = OBJ_737 /* Build configuration list for PBXAggregateTarget "TPPDFPackageTests" */; + buildConfigurationList = OBJ_750 /* Build configuration list for PBXAggregateTarget "TPPDFPackageTests" */; buildPhases = ( ); dependencies = ( - OBJ_740 /* PBXTargetDependency */, + OBJ_753 /* PBXTargetDependency */, ); name = TPPDFPackageTests; productName = TPPDFPackageTests; @@ -21,459 +21,475 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - D477C4C424C479550097C2AB /* PDFConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = D477C4C324C479550097C2AB /* PDFConstants.swift */; }; - D4803CA224703E5300DDA039 /* PDFGroupObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803BE824703E5300DDA039 /* PDFGroupObject.swift */; }; - D4803CA324703E5300DDA039 /* PDFImageObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803BEA24703E5300DDA039 /* PDFImageObject.swift */; }; - D4803CA424703E5300DDA039 /* PDFImageRowObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803BEB24703E5300DDA039 /* PDFImageRowObject.swift */; }; - D4803CA524703E5300DDA039 /* PDFCalculations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803BED24703E5300DDA039 /* PDFCalculations.swift */; }; - D4803CA624703E5300DDA039 /* PDFSlicedObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803BEE24703E5300DDA039 /* PDFSlicedObject.swift */; }; - D4803CA724703E5300DDA039 /* CustomStringConvertible+AutoDescribing.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803BEF24703E5300DDA039 /* CustomStringConvertible+AutoDescribing.swift */; }; - D4803CA824703E5300DDA039 /* PDFAttributableObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803BF124703E5300DDA039 /* PDFAttributableObject.swift */; }; - D4803CA924703E5300DDA039 /* PDFObjectAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803BF224703E5300DDA039 /* PDFObjectAttribute.swift */; }; - D4803CAA24703E5300DDA039 /* PDFLocatedRenderObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803BF324703E5300DDA039 /* PDFLocatedRenderObject.swift */; }; - D4803CAB24703E5300DDA039 /* WeakRef.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803BF424703E5300DDA039 /* WeakRef.swift */; }; - D4803CAC24703E5300DDA039 /* FileManager+TemporaryFiles.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803BF524703E5300DDA039 /* FileManager+TemporaryFiles.swift */; }; - D4803CAD24703E5300DDA039 /* Stack.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803BF624703E5300DDA039 /* Stack.swift */; }; - D4803CAE24703E5300DDA039 /* PDFColumnWrapSectionObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803BF824703E5300DDA039 /* PDFColumnWrapSectionObject.swift */; }; - D4803CAF24703E5300DDA039 /* PDFSectionColumnObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803BF924703E5300DDA039 /* PDFSectionColumnObject.swift */; }; - D4803CB024703E5300DDA039 /* PDFSectionObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803BFA24703E5300DDA039 /* PDFSectionObject.swift */; }; - D4803CB124703E5300DDA039 /* PDFGenerator+Debug.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803BFB24703E5300DDA039 /* PDFGenerator+Debug.swift */; }; - D4803CB224703E5300DDA039 /* CGPoint+Null.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803BFD24703E5300DDA039 /* CGPoint+Null.swift */; }; - D4803CB324703E5300DDA039 /* CGPoint+Math.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803BFE24703E5300DDA039 /* CGPoint+Math.swift */; }; - D4803CB424703E5300DDA039 /* PDFPagination.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C0024703E5300DDA039 /* PDFPagination.swift */; }; - D4803CB524703E5300DDA039 /* Int+RomanNumerals.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C0124703E5300DDA039 /* Int+RomanNumerals.swift */; }; - D4803CB624703E5300DDA039 /* PDFPaginationStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C0224703E5300DDA039 /* PDFPaginationStyle.swift */; }; - D4803CB724703E5300DDA039 /* PDFPaginationClosure.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C0324703E5300DDA039 /* PDFPaginationClosure.swift */; }; - D4803CB924703E5300DDA039 /* PDFPaginationStyle+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C0524703E5300DDA039 /* PDFPaginationStyle+Equatable.swift */; }; - D4803CBA24703E5300DDA039 /* PDFPagination+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C0624703E5300DDA039 /* PDFPagination+Equatable.swift */; }; - D4803CC724703E5300DDA039 /* PDFListObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C1524703E5300DDA039 /* PDFListObject.swift */; }; - D4803CC824703E5300DDA039 /* PDFTableOfContentObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C1724703E5300DDA039 /* PDFTableOfContentObject.swift */; }; - D4803CC924703E5300DDA039 /* PDFGenerator+Layout.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C1824703E5300DDA039 /* PDFGenerator+Layout.swift */; }; - D4803CCA24703E5300DDA039 /* PDFLineSeparatorObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C1A24703E5300DDA039 /* PDFLineSeparatorObject.swift */; }; - D4803CCB24703E5300DDA039 /* PDFGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C1B24703E5300DDA039 /* PDFGraphics.swift */; }; - D4803CCC24703E5300DDA039 /* UIColor+CloseToEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C1C24703E5300DDA039 /* UIColor+CloseToEqual.swift */; }; - D4803CCD24703E5300DDA039 /* PDFLineObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C1D24703E5300DDA039 /* PDFLineObject.swift */; }; - D4803CCE24703E5300DDA039 /* UIColor+Hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C1E24703E5300DDA039 /* UIColor+Hex.swift */; }; - D4803CCF24703E5300DDA039 /* UIImage+Pixel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C1F24703E5300DDA039 /* UIImage+Pixel.swift */; }; - D4803CD024703E5300DDA039 /* PDFLineSeparatorObject+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C2024703E5300DDA039 /* PDFLineSeparatorObject+Equatable.swift */; }; - D4803CD124703E5300DDA039 /* PDFRectangleObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C2124703E5300DDA039 /* PDFRectangleObject.swift */; }; - D4803CD224703E5300DDA039 /* PDFPageBreakObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C2324703E5300DDA039 /* PDFPageBreakObject.swift */; }; - D4803CD324703E5300DDA039 /* PDFLayoutHeights.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C2424703E5300DDA039 /* PDFLayoutHeights.swift */; }; - D4803CD424703E5300DDA039 /* PDFOffsetObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C2524703E5300DDA039 /* PDFOffsetObject.swift */; }; - D4803CD524703E5300DDA039 /* PDFLayoutIndentations+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C2624703E5300DDA039 /* PDFLayoutIndentations+Equatable.swift */; }; - D4803CD624703E5300DDA039 /* PDFLayoutIndentations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C2724703E5300DDA039 /* PDFLayoutIndentations.swift */; }; - D4803CD724703E5300DDA039 /* PDFOffsetObject+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C2824703E5300DDA039 /* PDFOffsetObject+Equatable.swift */; }; - D4803CD824703E5300DDA039 /* PDFPageBreakObject+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C2924703E5300DDA039 /* PDFPageBreakObject+Equatable.swift */; }; - D4803CD924703E5300DDA039 /* PDFSectionColumnContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C2A24703E5300DDA039 /* PDFSectionColumnContainer.swift */; }; - D4803CDA24703E5300DDA039 /* PDFIndentationObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C2B24703E5300DDA039 /* PDFIndentationObject.swift */; }; - D4803CDB24703E5300DDA039 /* PDFLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C2C24703E5300DDA039 /* PDFLayout.swift */; }; - D4803CDC24703E5300DDA039 /* PDFSpaceObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C2D24703E5300DDA039 /* PDFSpaceObject.swift */; }; - D4803CDD24703E5300DDA039 /* PDFLayout+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C2E24703E5300DDA039 /* PDFLayout+Equatable.swift */; }; - D4803CDE24703E5300DDA039 /* PDFColumnLayoutState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C2F24703E5300DDA039 /* PDFColumnLayoutState.swift */; }; - D4803CDF24703E5300DDA039 /* PDFPageLayout+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C3024703E5300DDA039 /* PDFPageLayout+Equatable.swift */; }; - D4803CE024703E5300DDA039 /* PDFMarginObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C3124703E5300DDA039 /* PDFMarginObject.swift */; }; - D4803CE124703E5300DDA039 /* PDFIndentationObject+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C3224703E5300DDA039 /* PDFIndentationObject+Equatable.swift */; }; - D4803CE224703E5300DDA039 /* PDFLayoutHeights+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C3324703E5300DDA039 /* PDFLayoutHeights+Equatable.swift */; }; - D4803CE324703E5300DDA039 /* PDFExternalPageObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C3524703E5300DDA039 /* PDFExternalPageObject.swift */; }; - D4803CE424703E5300DDA039 /* PDFExternalDocumentObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C3624703E5300DDA039 /* PDFExternalDocumentObject.swift */; }; - D4803CE524703E5300DDA039 /* PDFTableMergeUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C3824703E5300DDA039 /* PDFTableMergeUtil.swift */; }; - D4803CE624703E5300DDA039 /* PDFTableNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C3924703E5300DDA039 /* PDFTableNode.swift */; }; - D4803CE724703E5300DDA039 /* PDFTableObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C3A24703E5300DDA039 /* PDFTableObject.swift */; }; - D4803CE824703E5300DDA039 /* PDFTableValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C3B24703E5300DDA039 /* PDFTableValidator.swift */; }; - D4803CEA24703E5300DDA039 /* PDFFontObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C3E24703E5300DDA039 /* PDFFontObject.swift */; }; - D4803CEB24703E5300DDA039 /* PDFAttributedTextObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C3F24703E5300DDA039 /* PDFAttributedTextObject.swift */; }; - D4803CEC24703E5300DDA039 /* PDFTextColorObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C4024703E5300DDA039 /* PDFTextColorObject.swift */; }; - D4803CED24703E5300DDA039 /* PDFImageSizeFit.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C4324703E5300DDA039 /* PDFImageSizeFit.swift */; }; - D4803CEE24703E5300DDA039 /* PDFImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C4424703E5300DDA039 /* PDFImage.swift */; }; - D4803CEF24703E5300DDA039 /* PDFImageOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C4524703E5300DDA039 /* PDFImageOptions.swift */; }; - D4803CF024703E5300DDA039 /* PDFImage+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C4624703E5300DDA039 /* PDFImage+Equatable.swift */; }; - D4803CF124703E5300DDA039 /* PDFDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C4724703E5300DDA039 /* PDFDocument.swift */; }; - D4803CF224703E5300DDA039 /* PDFGeneratorProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C4824703E5300DDA039 /* PDFGeneratorProtocol.swift */; }; - D4803CF324703E5300DDA039 /* PDFMultiDocumentGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C4924703E5300DDA039 /* PDFMultiDocumentGenerator.swift */; }; - D4803CF424703E5300DDA039 /* PDFDocumentObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C4B24703E5300DDA039 /* PDFDocumentObject.swift */; }; - D4803CF524703E5300DDA039 /* PDFError.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C4C24703E5300DDA039 /* PDFError.swift */; }; - D4803CF624703E5300DDA039 /* PDFRenderObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C4D24703E5300DDA039 /* PDFRenderObject.swift */; }; - D4803CF724703E5300DDA039 /* PDFCopy.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C4E24703E5300DDA039 /* PDFCopy.swift */; }; - D4803CF924703E5300DDA039 /* PDFSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C5124703E5300DDA039 /* PDFSection.swift */; }; - D4803CFA24703E5300DDA039 /* PDFSectionColumn.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C5224703E5300DDA039 /* PDFSectionColumn.swift */; }; - D4803CFB24703E5300DDA039 /* PDFGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C5324703E5300DDA039 /* PDFGenerator.swift */; }; - D4803CFC24703E5300DDA039 /* PDFPageFormat.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C5524703E5300DDA039 /* PDFPageFormat.swift */; }; - D4803CFD24703E5300DDA039 /* PDFPageFormat+Layout.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C5624703E5300DDA039 /* PDFPageFormat+Layout.swift */; }; - D4803CFE24703E5300DDA039 /* PDFPageFormat+SizeConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C5724703E5300DDA039 /* PDFPageFormat+SizeConstants.swift */; }; - D4803CFF24703E5300DDA039 /* PDFGenerator+Generation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C5824703E5300DDA039 /* PDFGenerator+Generation.swift */; }; - D4803D0024703E5300DDA039 /* PDFInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C5A24703E5300DDA039 /* PDFInfo.swift */; }; - D4803D0124703E5300DDA039 /* PDFInfo+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C5B24703E5300DDA039 /* PDFInfo+Equatable.swift */; }; - D4803D0224703E5300DDA039 /* PDFGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C5D24703E5300DDA039 /* PDFGroup.swift */; }; - D4803D0324703E5300DDA039 /* PDFGroupContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C5E24703E5300DDA039 /* PDFGroupContainer.swift */; }; - D4803D0424703E5300DDA039 /* PDFMasterGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C5F24703E5300DDA039 /* PDFMasterGroup.swift */; }; - D4803D0524703E5300DDA039 /* PDFGroup+Objects.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C6024703E5300DDA039 /* PDFGroup+Objects.swift */; }; - D4803D0624703E5300DDA039 /* PDFListItemSymbol.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C6224703E5300DDA039 /* PDFListItemSymbol.swift */; }; - D4803D0724703E5300DDA039 /* PDFList.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C6324703E5300DDA039 /* PDFList.swift */; }; - D4803D0824703E5300DDA039 /* PDFListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C6424703E5300DDA039 /* PDFListItem.swift */; }; - D4803D0924703E5300DDA039 /* PDFListItem+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C6524703E5300DDA039 /* PDFListItem+Equatable.swift */; }; - D4803D0A24703E5300DDA039 /* PDFList+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C6624703E5300DDA039 /* PDFList+Equatable.swift */; }; - D4803D0B24703E5300DDA039 /* PDFTableOfContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C6824703E5300DDA039 /* PDFTableOfContent.swift */; }; - D4803D0C24703E5300DDA039 /* PDFBezierPathVertex.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C6A24703E5300DDA039 /* PDFBezierPathVertex.swift */; }; - D4803D0D24703E5300DDA039 /* PDFLineStyle+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C6B24703E5300DDA039 /* PDFLineStyle+Equatable.swift */; }; - D4803D0E24703E5300DDA039 /* PDFLineType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C6C24703E5300DDA039 /* PDFLineType.swift */; }; - D4803D0F24703E5300DDA039 /* PDFLineStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C6D24703E5300DDA039 /* PDFLineStyle.swift */; }; - D4803D1024703E5300DDA039 /* PDFDynamicGeometryShape.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C6E24703E5300DDA039 /* PDFDynamicGeometryShape.swift */; }; - D4803D1124703E5300DDA039 /* PDFBezierPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C6F24703E5300DDA039 /* PDFBezierPath.swift */; }; - D4803D1224703E5300DDA039 /* PDFBezierPath+Copying.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C7024703E5300DDA039 /* PDFBezierPath+Copying.swift */; }; - D4803D1324703E5300DDA039 /* PDFContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C7224703E5300DDA039 /* PDFContainer.swift */; }; - D4803D1424703E5300DDA039 /* PDFPageLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C7324703E5300DDA039 /* PDFPageLayout.swift */; }; - D4803D1524703E5300DDA039 /* PDFExternalDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C7524703E5300DDA039 /* PDFExternalDocument.swift */; }; - D4803D1724703E5300DDA039 /* PDFTable+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C7824703E5300DDA039 /* PDFTable+Equatable.swift */; }; - D4803D1824703E5300DDA039 /* PDFTableStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C7A24703E5300DDA039 /* PDFTableStyle.swift */; }; - D4803D1924703E5300DDA039 /* PDFTableStyle+Defaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C7B24703E5300DDA039 /* PDFTableStyle+Defaults.swift */; }; - D4803D1A24703E5300DDA039 /* PDFTableCellStyle+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C7C24703E5300DDA039 /* PDFTableCellStyle+Equatable.swift */; }; - D4803D1B24703E5300DDA039 /* PDFTableCellBorders+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C7D24703E5300DDA039 /* PDFTableCellBorders+Equatable.swift */; }; - D4803D1C24703E5300DDA039 /* PDFTableCellPosition+Equatable-Hashable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C7E24703E5300DDA039 /* PDFTableCellPosition+Equatable-Hashable.swift */; }; - D4803D1D24703E5300DDA039 /* PDFTableCellBorders.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C7F24703E5300DDA039 /* PDFTableCellBorders.swift */; }; - D4803D1E24703E5300DDA039 /* PDFTableStyle+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C8024703E5300DDA039 /* PDFTableStyle+Equatable.swift */; }; - D4803D1F24703E5300DDA039 /* PDFTableCell+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C8124703E5300DDA039 /* PDFTableCell+Equatable.swift */; }; - D4803D2024703E5300DDA039 /* PDFTableCellStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C8224703E5300DDA039 /* PDFTableCellStyle.swift */; }; - D4803D2124703E5300DDA039 /* PDFTableMergeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C8424703E5300DDA039 /* PDFTableMergeable.swift */; }; - D4803D2224703E5300DDA039 /* PDFTable+RowSubscripts.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C8524703E5300DDA039 /* PDFTable+RowSubscripts.swift */; }; - D4803D2324703E5300DDA039 /* PDFTable+SectionSubscripts.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C8624703E5300DDA039 /* PDFTable+SectionSubscripts.swift */; }; - D4803D2424703E5300DDA039 /* PDFTableRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C8724703E5300DDA039 /* PDFTableRow.swift */; }; - D4803D2524703E5300DDA039 /* PDFTableColumns.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C8824703E5300DDA039 /* PDFTableColumns.swift */; }; - D4803D2624703E5300DDA039 /* PDFTableSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C8924703E5300DDA039 /* PDFTableSection.swift */; }; - D4803D2724703E5300DDA039 /* PDFTableRows.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C8A24703E5300DDA039 /* PDFTableRows.swift */; }; - D4803D2824703E5300DDA039 /* PDFTable+ColumnSubscripts.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C8B24703E5300DDA039 /* PDFTable+ColumnSubscripts.swift */; }; - D4803D2924703E5300DDA039 /* PDFTableColumn.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C8C24703E5300DDA039 /* PDFTableColumn.swift */; }; - D4803D2A24703E5300DDA039 /* PDFTable+CellSubscripts.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C8D24703E5300DDA039 /* PDFTable+CellSubscripts.swift */; }; - D4803D2B24703E5300DDA039 /* NSAttributedString+PDFTableContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C8F24703E5300DDA039 /* NSAttributedString+PDFTableContent.swift */; }; - D4803D2C24703E5300DDA039 /* PDFTableContent+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C9024703E5300DDA039 /* PDFTableContent+Equatable.swift */; }; - D4803D2D24703E5300DDA039 /* Number+PDFTableContentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C9124703E5300DDA039 /* Number+PDFTableContentable.swift */; }; - D4803D2E24703E5300DDA039 /* PDFTableContentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C9224703E5300DDA039 /* PDFTableContentable.swift */; }; - D4803D2F24703E5300DDA039 /* String+PDFTableContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C9324703E5300DDA039 /* String+PDFTableContent.swift */; }; - D4803D3024703E5300DDA039 /* PDFTableContent+ContentType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C9424703E5300DDA039 /* PDFTableContent+ContentType.swift */; }; - D4803D3124703E5300DDA039 /* PDFTableContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C9524703E5300DDA039 /* PDFTableContent.swift */; }; - D4803D3224703E5300DDA039 /* UIImage+PDFTableContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C9624703E5300DDA039 /* UIImage+PDFTableContent.swift */; }; - D4803D3324703E5300DDA039 /* PDFTableCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C9724703E5300DDA039 /* PDFTableCell.swift */; }; - D4803D3424703E5300DDA039 /* PDFTableCellPosition.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C9824703E5300DDA039 /* PDFTableCellPosition.swift */; }; - D4803D3524703E5300DDA039 /* PDFTableCellAlignment.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C9924703E5300DDA039 /* PDFTableCellAlignment.swift */; }; - D4803D3624703E5300DDA039 /* PDFTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C9A24703E5300DDA039 /* PDFTable.swift */; }; - D4803D3724703E5300DDA039 /* PDFSimpleText+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C9C24703E5300DDA039 /* PDFSimpleText+Equatable.swift */; }; - D4803D3824703E5300DDA039 /* PDFSimpleText.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C9D24703E5300DDA039 /* PDFSimpleText.swift */; }; - D4803D3924703E5300DDA039 /* PDFAttributedText+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C9E24703E5300DDA039 /* PDFAttributedText+Equatable.swift */; }; - D4803D3A24703E5300DDA039 /* PDFAttributedText.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803C9F24703E5300DDA039 /* PDFAttributedText.swift */; }; - D4803D3B24703E5300DDA039 /* PDFText.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803CA024703E5300DDA039 /* PDFText.swift */; }; - D4803D3C24703E5300DDA039 /* PDFTextStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4803CA124703E5300DDA039 /* PDFTextStyle.swift */; }; - D4839C39253706950005BB87 /* PDFTableCalculatedCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4839C38253706950005BB87 /* PDFTableCalculatedCell.swift */; }; - D494BA6E257ADF850017C407 /* PDFTaggableObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D494BA6D257ADF850017C407 /* PDFTaggableObject.swift */; }; - D4EE2F9724A34C990004E3B9 /* PDFContextGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4EE2F9624A34C990004E3B9 /* PDFContextGraphics.swift */; }; - D4EE2F9924A34CBF0004E3B9 /* CrossPlattformGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4EE2F9824A34CBF0004E3B9 /* CrossPlattformGraphics.swift */; }; - OBJ_419 /* AdapterProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_331 /* AdapterProtocols.swift */; }; - OBJ_420 /* AssertionDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_332 /* AssertionDispatcher.swift */; }; - OBJ_421 /* AssertionRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_333 /* AssertionRecorder.swift */; }; - OBJ_422 /* NMBExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_334 /* NMBExpectation.swift */; }; - OBJ_423 /* NMBObjCMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_335 /* NMBObjCMatcher.swift */; }; - OBJ_424 /* NimbleEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_336 /* NimbleEnvironment.swift */; }; - OBJ_425 /* NimbleXCTestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_337 /* NimbleXCTestHandler.swift */; }; - OBJ_426 /* ExceptionCapture.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_339 /* ExceptionCapture.swift */; }; - OBJ_427 /* DSL+Wait.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_340 /* DSL+Wait.swift */; }; - OBJ_428 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_341 /* DSL.swift */; }; - OBJ_429 /* Expectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_342 /* Expectation.swift */; }; - OBJ_430 /* ExpectationMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_343 /* ExpectationMessage.swift */; }; - OBJ_431 /* Expression.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_344 /* Expression.swift */; }; - OBJ_432 /* FailureMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_345 /* FailureMessage.swift */; }; - OBJ_433 /* AllPass.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_347 /* AllPass.swift */; }; - OBJ_434 /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_348 /* Async.swift */; }; - OBJ_435 /* BeAKindOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_349 /* BeAKindOf.swift */; }; - OBJ_436 /* BeAnInstanceOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_350 /* BeAnInstanceOf.swift */; }; - OBJ_437 /* BeCloseTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_351 /* BeCloseTo.swift */; }; - OBJ_438 /* BeEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_352 /* BeEmpty.swift */; }; - OBJ_439 /* BeGreaterThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_353 /* BeGreaterThan.swift */; }; - OBJ_440 /* BeGreaterThanOrEqualTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_354 /* BeGreaterThanOrEqualTo.swift */; }; - OBJ_441 /* BeIdenticalTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_355 /* BeIdenticalTo.swift */; }; - OBJ_442 /* BeLessThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_356 /* BeLessThan.swift */; }; - OBJ_443 /* BeLessThanOrEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_357 /* BeLessThanOrEqual.swift */; }; - OBJ_444 /* BeLogical.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_358 /* BeLogical.swift */; }; - OBJ_445 /* BeNil.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_359 /* BeNil.swift */; }; - OBJ_446 /* BeVoid.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_360 /* BeVoid.swift */; }; - OBJ_447 /* BeginWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_361 /* BeginWith.swift */; }; - OBJ_448 /* Contain.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_362 /* Contain.swift */; }; - OBJ_449 /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_363 /* ContainElementSatisfying.swift */; }; - OBJ_450 /* ElementsEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_364 /* ElementsEqual.swift */; }; - OBJ_451 /* EndWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_365 /* EndWith.swift */; }; - OBJ_452 /* Equal.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_366 /* Equal.swift */; }; - OBJ_453 /* HaveCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_367 /* HaveCount.swift */; }; - OBJ_454 /* Match.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_368 /* Match.swift */; }; - OBJ_455 /* MatchError.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_369 /* MatchError.swift */; }; - OBJ_456 /* MatcherFunc.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_370 /* MatcherFunc.swift */; }; - OBJ_457 /* MatcherProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_371 /* MatcherProtocols.swift */; }; - OBJ_458 /* PostNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_372 /* PostNotification.swift */; }; - OBJ_459 /* Predicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_373 /* Predicate.swift */; }; - OBJ_460 /* RaisesException.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_374 /* RaisesException.swift */; }; - OBJ_461 /* SatisfyAllOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_375 /* SatisfyAllOf.swift */; }; - OBJ_462 /* SatisfyAnyOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_376 /* SatisfyAnyOf.swift */; }; - OBJ_463 /* ThrowAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_377 /* ThrowAssertion.swift */; }; - OBJ_464 /* ThrowError.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_378 /* ThrowError.swift */; }; - OBJ_465 /* ToSucceed.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_379 /* ToSucceed.swift */; }; - OBJ_466 /* Await.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_381 /* Await.swift */; }; - OBJ_467 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_382 /* Errors.swift */; }; - OBJ_468 /* Functional.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_383 /* Functional.swift */; }; - OBJ_469 /* SourceLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_384 /* SourceLocation.swift */; }; - OBJ_470 /* Stringers.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_385 /* Stringers.swift */; }; - OBJ_472 /* NimbleCwlPreconditionTesting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Nimble::NimbleCwlPreconditionTesting::Product" /* NimbleCwlPreconditionTesting.framework */; }; - OBJ_473 /* NimbleCwlCatchException.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Nimble::NimbleCwlCatchException::Product" /* NimbleCwlCatchException.framework */; }; - OBJ_474 /* NimbleCwlCatchExceptionSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Nimble::NimbleCwlCatchExceptionSupport::Product" /* NimbleCwlCatchExceptionSupport.framework */; }; - OBJ_475 /* NimbleCwlMachBadInstructionHandler.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Nimble::NimbleCwlMachBadInstructionHandler::Product" /* NimbleCwlMachBadInstructionHandler.framework */; }; - OBJ_488 /* CwlCatchException.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_387 /* CwlCatchException.swift */; }; - OBJ_490 /* NimbleCwlCatchExceptionSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Nimble::NimbleCwlCatchExceptionSupport::Product" /* NimbleCwlCatchExceptionSupport.framework */; }; - OBJ_496 /* CwlCatchException.m in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_389 /* CwlCatchException.m */; }; - OBJ_502 /* CwlMachBadInstructionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_394 /* CwlMachBadInstructionHandler.m */; }; - OBJ_503 /* mach_excServer.c in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_395 /* mach_excServer.c */; }; - OBJ_509 /* CwlBadInstructionException.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_400 /* CwlBadInstructionException.swift */; }; - OBJ_510 /* CwlCatchBadInstruction.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_401 /* CwlCatchBadInstruction.swift */; }; - OBJ_511 /* CwlDarwinDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_402 /* CwlDarwinDefinitions.swift */; }; - OBJ_513 /* NimbleCwlCatchException.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Nimble::NimbleCwlCatchException::Product" /* NimbleCwlCatchException.framework */; }; - OBJ_514 /* NimbleCwlCatchExceptionSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Nimble::NimbleCwlCatchExceptionSupport::Product" /* NimbleCwlCatchExceptionSupport.framework */; }; - OBJ_515 /* NimbleCwlMachBadInstructionHandler.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Nimble::NimbleCwlMachBadInstructionHandler::Product" /* NimbleCwlMachBadInstructionHandler.framework */; }; - OBJ_524 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_403 /* Package.swift */; }; - OBJ_530 /* Behavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_297 /* Behavior.swift */; }; - OBJ_531 /* Callsite.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_298 /* Callsite.swift */; }; - OBJ_532 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_300 /* Configuration.swift */; }; - OBJ_533 /* QuickConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_301 /* QuickConfiguration.swift */; }; - OBJ_534 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_303 /* DSL.swift */; }; - OBJ_535 /* World+DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_304 /* World+DSL.swift */; }; - OBJ_536 /* ErrorUtility.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_305 /* ErrorUtility.swift */; }; - OBJ_537 /* Example.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_306 /* Example.swift */; }; - OBJ_538 /* ExampleGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_307 /* ExampleGroup.swift */; }; - OBJ_539 /* ExampleMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_308 /* ExampleMetadata.swift */; }; - OBJ_540 /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_309 /* Filter.swift */; }; - OBJ_541 /* Closures.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_311 /* Closures.swift */; }; - OBJ_542 /* ExampleHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_312 /* ExampleHooks.swift */; }; - OBJ_543 /* HooksPhase.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_313 /* HooksPhase.swift */; }; - OBJ_544 /* SuiteHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_314 /* SuiteHooks.swift */; }; - OBJ_545 /* NSBundle+CurrentTestBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_315 /* NSBundle+CurrentTestBundle.swift */; }; - OBJ_546 /* QuickMain.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_316 /* QuickMain.swift */; }; - OBJ_547 /* QuickSelectedTestSuiteBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_317 /* QuickSelectedTestSuiteBuilder.swift */; }; - OBJ_548 /* QuickSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_318 /* QuickSpec.swift */; }; - OBJ_549 /* QuickTestSuite.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_319 /* QuickTestSuite.swift */; }; - OBJ_550 /* String+C99ExtendedIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_320 /* String+C99ExtendedIdentifier.swift */; }; - OBJ_551 /* URL+FileName.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_321 /* URL+FileName.swift */; }; - OBJ_552 /* World.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_322 /* World.swift */; }; - OBJ_554 /* QuickSpecBase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Quick::QuickSpecBase::Product" /* QuickSpecBase.framework */; }; - OBJ_562 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_327 /* Package.swift */; }; - OBJ_567 /* QuickSpecBase.m in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_324 /* QuickSpecBase.m */; }; - OBJ_569 /* QuickSpecBase.h in Headers */ = {isa = PBXBuildFile; fileRef = OBJ_326 /* QuickSpecBase.h */; settings = {ATTRIBUTES = (Public, ); }; }; - OBJ_735 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_6 /* Package.swift */; }; - OBJ_746 /* PDFGraphics_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_197 /* PDFGraphics_Spec.swift */; }; - OBJ_747 /* PDFLineSeparatorObject+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_198 /* PDFLineSeparatorObject+Equatable_Spec.swift */; }; - OBJ_748 /* PDFLineSeparatorObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_199 /* PDFLineSeparatorObject_Spec.swift */; }; - OBJ_749 /* PDFLineStyle_Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_200 /* PDFLineStyle_Equatable_Spec.swift */; }; - OBJ_750 /* PDFLineStyle_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_201 /* PDFLineStyle_Spec.swift */; }; - OBJ_751 /* PDFLineType_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_202 /* PDFLineType_Spec.swift */; }; - OBJ_752 /* UIColor+Hex_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_203 /* UIColor+Hex_Spec.swift */; }; - OBJ_753 /* UIImage+CloseToEqual_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_204 /* UIImage+CloseToEqual_Spec.swift */; }; - OBJ_754 /* UIImage+Pixel_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_205 /* UIImage+Pixel_Spec.swift */; }; - OBJ_755 /* PDFImageSizeFit_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_207 /* PDFImageSizeFit_Spec.swift */; }; - OBJ_756 /* PDFImage_Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_208 /* PDFImage_Equatable_Spec.swift */; }; - OBJ_757 /* PDFImage_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_209 /* PDFImage_Spec.swift */; }; - OBJ_758 /* PDFTableMergeUtil_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_212 /* PDFTableMergeUtil_Spec.swift */; }; - OBJ_761 /* PDFContainer_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_217 /* PDFContainer_Spec.swift */; }; - OBJ_762 /* PDFIndentationObject_Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_218 /* PDFIndentationObject_Equatable_Spec.swift */; }; - OBJ_763 /* PDFIndentationObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_219 /* PDFIndentationObject_Spec.swift */; }; - OBJ_764 /* PDFLayout+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_220 /* PDFLayout+Equatable_Spec.swift */; }; - OBJ_765 /* PDFLayoutHeights+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_221 /* PDFLayoutHeights+Equatable_Spec.swift */; }; - OBJ_766 /* PDFLayoutHeights_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_222 /* PDFLayoutHeights_Spec.swift */; }; - OBJ_767 /* PDFLayoutIndentations+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_223 /* PDFLayoutIndentations+Equatable_Spec.swift */; }; - OBJ_768 /* PDFLayoutIndentations_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_224 /* PDFLayoutIndentations_Spec.swift */; }; - OBJ_769 /* PDFLayout_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_225 /* PDFLayout_Spec.swift */; }; - OBJ_770 /* PDFOffsetObject+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_226 /* PDFOffsetObject+Equatable_Spec.swift */; }; - OBJ_771 /* PDFOffsetObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_227 /* PDFOffsetObject_Spec.swift */; }; - OBJ_772 /* PDFPageBreakObject+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_228 /* PDFPageBreakObject+Equatable_Spec.swift */; }; - OBJ_773 /* PDFPageBreakObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_229 /* PDFPageBreakObject_Spec.swift */; }; - OBJ_774 /* PDFPageLayout+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_230 /* PDFPageLayout+Equatable_Spec.swift */; }; - OBJ_775 /* PDFPageLayout_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_231 /* PDFPageLayout_Spec.swift */; }; - OBJ_776 /* PDFSpaceObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_232 /* PDFSpaceObject_Spec.swift */; }; - OBJ_777 /* PDFList+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_234 /* PDFList+Equatable_Spec.swift */; }; - OBJ_778 /* PDFListItemObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_235 /* PDFListItemObject_Spec.swift */; }; - OBJ_779 /* PDFListItemSymbol_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_236 /* PDFListItemSymbol_Spec.swift */; }; - OBJ_780 /* PDFListItem_Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_237 /* PDFListItem_Equatable_Spec.swift */; }; - OBJ_781 /* PDFListItem_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_238 /* PDFListItem_Spec.swift */; }; - OBJ_782 /* PDFList_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_239 /* PDFList_Spec.swift */; }; - OBJ_783 /* CGPoint+Math_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_241 /* CGPoint+Math_Spec.swift */; }; - OBJ_784 /* PDFInfo+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_243 /* PDFInfo+Equatable_Spec.swift */; }; - OBJ_785 /* PDFInfo_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_244 /* PDFInfo_Spec.swift */; }; - OBJ_786 /* PDFDocument+Objects_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_245 /* PDFDocument+Objects_Spec.swift */; }; - OBJ_787 /* PDFDocument_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_246 /* PDFDocument_Spec.swift */; }; - OBJ_788 /* PDFGenerator+Debug_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_247 /* PDFGenerator+Debug_Spec.swift */; }; - OBJ_789 /* PDFGenerator+Generation_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_248 /* PDFGenerator+Generation_Spec.swift */; }; - OBJ_790 /* PDFGenerator+Layout_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_249 /* PDFGenerator+Layout_Spec.swift */; }; - OBJ_791 /* PDFGenerator_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_250 /* PDFGenerator_Spec.swift */; }; - OBJ_792 /* PDFPageFormat+Layout_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_252 /* PDFPageFormat+Layout_Spec.swift */; }; - OBJ_793 /* PDFPageFormat+SizeConstants_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_253 /* PDFPageFormat+SizeConstants_Spec.swift */; }; - OBJ_794 /* PDFPageFormat_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_254 /* PDFPageFormat_Spec.swift */; }; - OBJ_795 /* Int+RomanNumerals_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_256 /* Int+RomanNumerals_Spec.swift */; }; - OBJ_796 /* PDFPaginationStyle+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_257 /* PDFPaginationStyle+Equatable_Spec.swift */; }; - OBJ_797 /* PDFPaginationStyle_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_258 /* PDFPaginationStyle_Spec.swift */; }; - OBJ_798 /* PDFPagination_Closure_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_259 /* PDFPagination_Closure_Spec.swift */; }; - OBJ_799 /* PDFPagination_Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_260 /* PDFPagination_Equatable_Spec.swift */; }; - OBJ_800 /* PDFPagination_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_261 /* PDFPagination_Spec.swift */; }; - OBJ_801 /* PDFTable+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_263 /* PDFTable+Equatable_Spec.swift */; }; - OBJ_802 /* PDFTableCell+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_264 /* PDFTableCell+Equatable_Spec.swift */; }; - OBJ_803 /* PDFTableCellAlignment_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_265 /* PDFTableCellAlignment_Spec.swift */; }; - OBJ_804 /* PDFTableCellBorders+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_266 /* PDFTableCellBorders+Equatable_Spec.swift */; }; - OBJ_805 /* PDFTableCellBorders_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_267 /* PDFTableCellBorders_Spec.swift */; }; - OBJ_806 /* PDFTableCellPosition+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_268 /* PDFTableCellPosition+Equatable_Spec.swift */; }; - OBJ_807 /* PDFTableCellPosition_Hashable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_269 /* PDFTableCellPosition_Hashable_Spec.swift */; }; - OBJ_808 /* PDFTableCellPosition_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_270 /* PDFTableCellPosition_Spec.swift */; }; - OBJ_809 /* PDFTableCellStyle+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_271 /* PDFTableCellStyle+Equatable_Spec.swift */; }; - OBJ_810 /* PDFTableCellStyle_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_272 /* PDFTableCellStyle_Spec.swift */; }; - OBJ_811 /* PDFTableCell_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_273 /* PDFTableCell_Spec.swift */; }; - OBJ_812 /* PDFTableContent+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_274 /* PDFTableContent+Equatable_Spec.swift */; }; - OBJ_813 /* PDFTableContent_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_275 /* PDFTableContent_Spec.swift */; }; - OBJ_814 /* PDFTableStyle+Defaults_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_276 /* PDFTableStyle+Defaults_Spec.swift */; }; - OBJ_815 /* PDFTableStyle+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_277 /* PDFTableStyle+Equatable_Spec.swift */; }; - OBJ_816 /* PDFTableStyle_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_278 /* PDFTableStyle_Spec.swift */; }; - OBJ_817 /* PDFTableValidator_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_279 /* PDFTableValidator_Spec.swift */; }; - OBJ_818 /* PDFTable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_280 /* PDFTable_Spec.swift */; }; - OBJ_819 /* PDFAttributedText+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_282 /* PDFAttributedText+Equatable_Spec.swift */; }; - OBJ_820 /* PDFAttributedTextObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_283 /* PDFAttributedTextObject_Spec.swift */; }; - OBJ_821 /* PDFAttributedText_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_284 /* PDFAttributedText_Spec.swift */; }; - OBJ_822 /* PDFFontObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_285 /* PDFFontObject_Spec.swift */; }; - OBJ_823 /* PDFSimpleText+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_286 /* PDFSimpleText+Equatable_Spec.swift */; }; - OBJ_824 /* PDFSimpleText_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_287 /* PDFSimpleText_Spec.swift */; }; - OBJ_825 /* PDFTextColorObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_288 /* PDFTextColorObject_Spec.swift */; }; - OBJ_826 /* PDFText_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_289 /* PDFText_Spec.swift */; }; - OBJ_827 /* PDFCalculations_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_291 /* PDFCalculations_Spec.swift */; }; - OBJ_828 /* PDFError_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_292 /* PDFError_Spec.swift */; }; - OBJ_829 /* PDFObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_293 /* PDFObject_Spec.swift */; }; - OBJ_831 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Nimble::Nimble::Product" /* Nimble.framework */; }; - OBJ_832 /* NimbleCwlPreconditionTesting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Nimble::NimbleCwlPreconditionTesting::Product" /* NimbleCwlPreconditionTesting.framework */; }; - OBJ_833 /* NimbleCwlCatchException.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Nimble::NimbleCwlCatchException::Product" /* NimbleCwlCatchException.framework */; }; - OBJ_834 /* NimbleCwlCatchExceptionSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Nimble::NimbleCwlCatchExceptionSupport::Product" /* NimbleCwlCatchExceptionSupport.framework */; }; - OBJ_835 /* NimbleCwlMachBadInstructionHandler.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Nimble::NimbleCwlMachBadInstructionHandler::Product" /* NimbleCwlMachBadInstructionHandler.framework */; }; - OBJ_836 /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Quick::Quick::Product" /* Quick.framework */; }; - OBJ_837 /* QuickSpecBase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Quick::QuickSpecBase::Product" /* QuickSpecBase.framework */; }; - OBJ_838 /* TPPDF.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "TPPDF::TPPDF::Product" /* TPPDF.framework */; }; + D4B7EA1E25A1BB67007D09C7 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D4B7EA1D25A1BB67007D09C7 /* XCTest.framework */; }; + D4B7EA1F25A1BB67007D09C7 /* XCTest.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D4B7EA1D25A1BB67007D09C7 /* XCTest.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + OBJ_428 /* CwlCatchException.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_353 /* CwlCatchException.swift */; }; + OBJ_430 /* CwlCatchExceptionSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchExceptionSupport::Product" /* CwlCatchExceptionSupport.framework */; }; + OBJ_438 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_359 /* Package.swift */; }; + OBJ_443 /* CwlCatchException.m in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_355 /* CwlCatchException.m */; }; + OBJ_450 /* CwlMachBadInstructionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_340 /* CwlMachBadInstructionHandler.m */; }; + OBJ_451 /* mach_excServer.c in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_341 /* mach_excServer.c */; }; + OBJ_453 /* CwlMachBadInstructionHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = OBJ_343 /* CwlMachBadInstructionHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + OBJ_460 /* CwlCatchBadInstructionPosix.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_345 /* CwlCatchBadInstructionPosix.swift */; }; + OBJ_467 /* CwlBadInstructionException.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_347 /* CwlBadInstructionException.swift */; }; + OBJ_468 /* CwlCatchBadInstruction.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_348 /* CwlCatchBadInstruction.swift */; }; + OBJ_469 /* CwlDarwinDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_349 /* CwlDarwinDefinitions.swift */; }; + OBJ_471 /* CwlCatchException.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchException::Product" /* CwlCatchException.framework */; }; + OBJ_472 /* CwlCatchExceptionSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchExceptionSupport::Product" /* CwlCatchExceptionSupport.framework */; }; + OBJ_473 /* CwlMachBadInstructionHandler.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlMachBadInstructionHandler::Product" /* CwlMachBadInstructionHandler.framework */; }; + OBJ_482 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_350 /* Package.swift */; }; + OBJ_488 /* AdapterProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_281 /* AdapterProtocols.swift */; }; + OBJ_489 /* AssertionDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_282 /* AssertionDispatcher.swift */; }; + OBJ_490 /* AssertionRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_283 /* AssertionRecorder.swift */; }; + OBJ_491 /* NMBExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_284 /* NMBExpectation.swift */; }; + OBJ_492 /* NMBObjCMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_285 /* NMBObjCMatcher.swift */; }; + OBJ_493 /* NimbleEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_286 /* NimbleEnvironment.swift */; }; + OBJ_494 /* NimbleXCTestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_287 /* NimbleXCTestHandler.swift */; }; + OBJ_495 /* ExceptionCapture.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_289 /* ExceptionCapture.swift */; }; + OBJ_496 /* DSL+Wait.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_290 /* DSL+Wait.swift */; }; + OBJ_497 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_291 /* DSL.swift */; }; + OBJ_498 /* Expectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_292 /* Expectation.swift */; }; + OBJ_499 /* ExpectationMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_293 /* ExpectationMessage.swift */; }; + OBJ_500 /* Expression.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_294 /* Expression.swift */; }; + OBJ_501 /* FailureMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_295 /* FailureMessage.swift */; }; + OBJ_502 /* AllPass.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_297 /* AllPass.swift */; }; + OBJ_503 /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_298 /* Async.swift */; }; + OBJ_504 /* BeAKindOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_299 /* BeAKindOf.swift */; }; + OBJ_505 /* BeAnInstanceOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_300 /* BeAnInstanceOf.swift */; }; + OBJ_506 /* BeCloseTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_301 /* BeCloseTo.swift */; }; + OBJ_507 /* BeEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_302 /* BeEmpty.swift */; }; + OBJ_508 /* BeGreaterThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_303 /* BeGreaterThan.swift */; }; + OBJ_509 /* BeGreaterThanOrEqualTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_304 /* BeGreaterThanOrEqualTo.swift */; }; + OBJ_510 /* BeIdenticalTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_305 /* BeIdenticalTo.swift */; }; + OBJ_511 /* BeLessThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_306 /* BeLessThan.swift */; }; + OBJ_512 /* BeLessThanOrEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_307 /* BeLessThanOrEqual.swift */; }; + OBJ_513 /* BeLogical.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_308 /* BeLogical.swift */; }; + OBJ_514 /* BeNil.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_309 /* BeNil.swift */; }; + OBJ_515 /* BeVoid.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_310 /* BeVoid.swift */; }; + OBJ_516 /* BeginWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_311 /* BeginWith.swift */; }; + OBJ_517 /* BeginWithPrefix.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_312 /* BeginWithPrefix.swift */; }; + OBJ_518 /* Contain.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_313 /* Contain.swift */; }; + OBJ_519 /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_314 /* ContainElementSatisfying.swift */; }; + OBJ_520 /* ElementsEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_315 /* ElementsEqual.swift */; }; + OBJ_521 /* EndWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_316 /* EndWith.swift */; }; + OBJ_522 /* Equal.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_317 /* Equal.swift */; }; + OBJ_523 /* HaveCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_318 /* HaveCount.swift */; }; + OBJ_524 /* Match.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_319 /* Match.swift */; }; + OBJ_525 /* MatchError.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_320 /* MatchError.swift */; }; + OBJ_526 /* MatcherFunc.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_321 /* MatcherFunc.swift */; }; + OBJ_527 /* MatcherProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_322 /* MatcherProtocols.swift */; }; + OBJ_528 /* PostNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_323 /* PostNotification.swift */; }; + OBJ_529 /* Predicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_324 /* Predicate.swift */; }; + OBJ_530 /* RaisesException.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_325 /* RaisesException.swift */; }; + OBJ_531 /* SatisfyAllOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_326 /* SatisfyAllOf.swift */; }; + OBJ_532 /* SatisfyAnyOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_327 /* SatisfyAnyOf.swift */; }; + OBJ_533 /* ThrowAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_328 /* ThrowAssertion.swift */; }; + OBJ_534 /* ThrowError.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_329 /* ThrowError.swift */; }; + OBJ_535 /* ToSucceed.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_330 /* ToSucceed.swift */; }; + OBJ_536 /* Await.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_332 /* Await.swift */; }; + OBJ_537 /* DispatchTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_333 /* DispatchTimeInterval.swift */; }; + OBJ_538 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_334 /* Errors.swift */; }; + OBJ_539 /* SourceLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_335 /* SourceLocation.swift */; }; + OBJ_540 /* Stringers.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_336 /* Stringers.swift */; }; + OBJ_542 /* CwlPosixPreconditionTesting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlPosixPreconditionTesting::Product" /* CwlPosixPreconditionTesting.framework */; }; + OBJ_543 /* CwlPreconditionTesting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlPreconditionTesting::Product" /* CwlPreconditionTesting.framework */; }; + OBJ_544 /* CwlCatchException.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchException::Product" /* CwlCatchException.framework */; }; + OBJ_545 /* CwlCatchExceptionSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchExceptionSupport::Product" /* CwlCatchExceptionSupport.framework */; }; + OBJ_546 /* CwlMachBadInstructionHandler.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlMachBadInstructionHandler::Product" /* CwlMachBadInstructionHandler.framework */; }; + OBJ_557 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_337 /* Package.swift */; }; + OBJ_563 /* Behavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_362 /* Behavior.swift */; }; + OBJ_564 /* Callsite.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_363 /* Callsite.swift */; }; + OBJ_565 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_365 /* Configuration.swift */; }; + OBJ_566 /* QuickConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_366 /* QuickConfiguration.swift */; }; + OBJ_567 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_368 /* DSL.swift */; }; + OBJ_568 /* World+DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_369 /* World+DSL.swift */; }; + OBJ_569 /* ErrorUtility.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_370 /* ErrorUtility.swift */; }; + OBJ_570 /* Example.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_371 /* Example.swift */; }; + OBJ_571 /* ExampleGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_372 /* ExampleGroup.swift */; }; + OBJ_572 /* ExampleMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_373 /* ExampleMetadata.swift */; }; + OBJ_573 /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_374 /* Filter.swift */; }; + OBJ_574 /* Closures.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_376 /* Closures.swift */; }; + OBJ_575 /* ExampleHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_377 /* ExampleHooks.swift */; }; + OBJ_576 /* HooksPhase.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_378 /* HooksPhase.swift */; }; + OBJ_577 /* SuiteHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_379 /* SuiteHooks.swift */; }; + OBJ_578 /* NSBundle+CurrentTestBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_380 /* NSBundle+CurrentTestBundle.swift */; }; + OBJ_579 /* QuickMain.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_381 /* QuickMain.swift */; }; + OBJ_580 /* QuickSelectedTestSuiteBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_382 /* QuickSelectedTestSuiteBuilder.swift */; }; + OBJ_581 /* QuickSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_383 /* QuickSpec.swift */; }; + OBJ_582 /* QuickTestObservation.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_384 /* QuickTestObservation.swift */; }; + OBJ_583 /* QuickTestSuite.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_385 /* QuickTestSuite.swift */; }; + OBJ_584 /* String+C99ExtendedIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_386 /* String+C99ExtendedIdentifier.swift */; }; + OBJ_585 /* URL+FileName.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_387 /* URL+FileName.swift */; }; + OBJ_586 /* World.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_388 /* World.swift */; }; + OBJ_588 /* QuickObjCRuntime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Quick::QuickObjCRuntime::Product" /* QuickObjCRuntime.framework */; }; + OBJ_595 /* QuickSpecBase.m in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_390 /* QuickSpecBase.m */; }; + OBJ_602 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_394 /* Package.swift */; }; + OBJ_608 /* PDFExternalDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_10 /* PDFExternalDocument.swift */; }; + OBJ_609 /* PDFBezierPath+Copying.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_12 /* PDFBezierPath+Copying.swift */; }; + OBJ_610 /* PDFBezierPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_13 /* PDFBezierPath.swift */; }; + OBJ_611 /* PDFBezierPathVertex.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_14 /* PDFBezierPathVertex.swift */; }; + OBJ_612 /* PDFDynamicGeometryShape.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_15 /* PDFDynamicGeometryShape.swift */; }; + OBJ_613 /* PDFLineStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_16 /* PDFLineStyle.swift */; }; + OBJ_614 /* PDFLineType.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_17 /* PDFLineType.swift */; }; + OBJ_615 /* PDFGroup+Objects.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_19 /* PDFGroup+Objects.swift */; }; + OBJ_616 /* PDFGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_20 /* PDFGroup.swift */; }; + OBJ_617 /* PDFGroupContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_21 /* PDFGroupContainer.swift */; }; + OBJ_618 /* PDFMasterGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_22 /* PDFMasterGroup.swift */; }; + OBJ_619 /* PDFImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_24 /* PDFImage.swift */; }; + OBJ_620 /* PDFImageOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_25 /* PDFImageOptions.swift */; }; + OBJ_621 /* PDFImageSizeFit.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_26 /* PDFImageSizeFit.swift */; }; + OBJ_622 /* PDFContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_28 /* PDFContainer.swift */; }; + OBJ_623 /* PDFPageLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_29 /* PDFPageLayout.swift */; }; + OBJ_624 /* PDFList.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_31 /* PDFList.swift */; }; + OBJ_625 /* PDFListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_32 /* PDFListItem.swift */; }; + OBJ_626 /* PDFListItemSymbol.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_33 /* PDFListItemSymbol.swift */; }; + OBJ_627 /* PDFInfo+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_35 /* PDFInfo+Equatable.swift */; }; + OBJ_628 /* PDFInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_36 /* PDFInfo.swift */; }; + OBJ_629 /* PDFDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_37 /* PDFDocument.swift */; }; + OBJ_630 /* PDFGenerator+Generation.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_38 /* PDFGenerator+Generation.swift */; }; + OBJ_631 /* PDFGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_39 /* PDFGenerator.swift */; }; + OBJ_632 /* PDFGeneratorProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_40 /* PDFGeneratorProtocol.swift */; }; + OBJ_633 /* PDFMultiDocumentGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_41 /* PDFMultiDocumentGenerator.swift */; }; + OBJ_634 /* PDFPageFormat+Layout.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_43 /* PDFPageFormat+Layout.swift */; }; + OBJ_635 /* PDFPageFormat+SizeConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_44 /* PDFPageFormat+SizeConstants.swift */; }; + OBJ_636 /* PDFPageFormat.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_45 /* PDFPageFormat.swift */; }; + OBJ_637 /* PDFSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_47 /* PDFSection.swift */; }; + OBJ_638 /* PDFSectionColumn.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_48 /* PDFSectionColumn.swift */; }; + OBJ_639 /* PDFTableOfContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_50 /* PDFTableOfContent.swift */; }; + OBJ_640 /* NSAttributedString+PDFTableContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_53 /* NSAttributedString+PDFTableContent.swift */; }; + OBJ_641 /* Number+PDFTableContentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_54 /* Number+PDFTableContentable.swift */; }; + OBJ_642 /* PDFTableContent+ContentType.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_55 /* PDFTableContent+ContentType.swift */; }; + OBJ_643 /* PDFTableContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_56 /* PDFTableContent.swift */; }; + OBJ_644 /* PDFTableContentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_57 /* PDFTableContentable.swift */; }; + OBJ_645 /* String+PDFTableContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_58 /* String+PDFTableContent.swift */; }; + OBJ_646 /* UIImage+PDFTableContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_59 /* UIImage+PDFTableContent.swift */; }; + OBJ_647 /* PDFTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_60 /* PDFTable.swift */; }; + OBJ_648 /* PDFTableCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_61 /* PDFTableCell.swift */; }; + OBJ_649 /* PDFTableCellAlignment.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_62 /* PDFTableCellAlignment.swift */; }; + OBJ_650 /* PDFTableCellPosition.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_63 /* PDFTableCellPosition.swift */; }; + OBJ_651 /* PDFTable+CellSubscripts.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_65 /* PDFTable+CellSubscripts.swift */; }; + OBJ_652 /* PDFTable+ColumnSubscripts.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_66 /* PDFTable+ColumnSubscripts.swift */; }; + OBJ_653 /* PDFTable+RowSubscripts.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_67 /* PDFTable+RowSubscripts.swift */; }; + OBJ_654 /* PDFTable+SectionSubscripts.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_68 /* PDFTable+SectionSubscripts.swift */; }; + OBJ_655 /* PDFTableColumn.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_69 /* PDFTableColumn.swift */; }; + OBJ_656 /* PDFTableColumns.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_70 /* PDFTableColumns.swift */; }; + OBJ_657 /* PDFTableMergeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_71 /* PDFTableMergeable.swift */; }; + OBJ_658 /* PDFTableRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_72 /* PDFTableRow.swift */; }; + OBJ_659 /* PDFTableRows.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_73 /* PDFTableRows.swift */; }; + OBJ_660 /* PDFTableSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_74 /* PDFTableSection.swift */; }; + OBJ_661 /* PDFTableCellBorders.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_76 /* PDFTableCellBorders.swift */; }; + OBJ_662 /* PDFTableCellPosition+Equatable-Hashable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_77 /* PDFTableCellPosition+Equatable-Hashable.swift */; }; + OBJ_663 /* PDFTableCellStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_78 /* PDFTableCellStyle.swift */; }; + OBJ_664 /* PDFTableStyle+Defaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_79 /* PDFTableStyle+Defaults.swift */; }; + OBJ_665 /* PDFTableStyle+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_80 /* PDFTableStyle+Equatable.swift */; }; + OBJ_666 /* PDFTableStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_81 /* PDFTableStyle.swift */; }; + OBJ_667 /* PDFAttributedText.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_83 /* PDFAttributedText.swift */; }; + OBJ_668 /* PDFSimpleText+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_84 /* PDFSimpleText+Equatable.swift */; }; + OBJ_669 /* PDFSimpleText.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_85 /* PDFSimpleText.swift */; }; + OBJ_670 /* PDFText.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_86 /* PDFText.swift */; }; + OBJ_671 /* PDFTextStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_87 /* PDFTextStyle.swift */; }; + OBJ_672 /* CrossPlattformGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_89 /* CrossPlattformGraphics.swift */; }; + OBJ_673 /* PDFConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_90 /* PDFConstants.swift */; }; + OBJ_674 /* PDFCopy.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_91 /* PDFCopy.swift */; }; + OBJ_675 /* PDFDocumentObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_92 /* PDFDocumentObject.swift */; }; + OBJ_676 /* PDFError.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_93 /* PDFError.swift */; }; + OBJ_677 /* PDFRenderObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_94 /* PDFRenderObject.swift */; }; + OBJ_678 /* PDFTaggableObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_95 /* PDFTaggableObject.swift */; }; + OBJ_679 /* PDFExternalDocumentObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_98 /* PDFExternalDocumentObject.swift */; }; + OBJ_680 /* PDFExternalPageObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_99 /* PDFExternalPageObject.swift */; }; + OBJ_681 /* PDFContextGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_101 /* PDFContextGraphics.swift */; }; + OBJ_682 /* PDFGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_102 /* PDFGraphics.swift */; }; + OBJ_683 /* PDFLineObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_103 /* PDFLineObject.swift */; }; + OBJ_684 /* PDFLineSeparatorObject+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_104 /* PDFLineSeparatorObject+Equatable.swift */; }; + OBJ_685 /* PDFLineSeparatorObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_105 /* PDFLineSeparatorObject.swift */; }; + OBJ_686 /* PDFRectangleObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_106 /* PDFRectangleObject.swift */; }; + OBJ_687 /* UIColor+CloseToEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_107 /* UIColor+CloseToEqual.swift */; }; + OBJ_688 /* UIColor+Hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_108 /* UIColor+Hex.swift */; }; + OBJ_689 /* UIImage+Pixel.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_109 /* UIImage+Pixel.swift */; }; + OBJ_690 /* PDFGroupObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_111 /* PDFGroupObject.swift */; }; + OBJ_691 /* PDFImageObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_113 /* PDFImageObject.swift */; }; + OBJ_692 /* PDFImageRowObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_114 /* PDFImageRowObject.swift */; }; + OBJ_693 /* PDFColumnLayoutState.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_116 /* PDFColumnLayoutState.swift */; }; + OBJ_694 /* PDFIndentationObject+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_117 /* PDFIndentationObject+Equatable.swift */; }; + OBJ_695 /* PDFIndentationObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_118 /* PDFIndentationObject.swift */; }; + OBJ_696 /* PDFLayout+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_119 /* PDFLayout+Equatable.swift */; }; + OBJ_697 /* PDFLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_120 /* PDFLayout.swift */; }; + OBJ_698 /* PDFLayoutHeights+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_121 /* PDFLayoutHeights+Equatable.swift */; }; + OBJ_699 /* PDFLayoutHeights.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_122 /* PDFLayoutHeights.swift */; }; + OBJ_700 /* PDFLayoutIndentations+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_123 /* PDFLayoutIndentations+Equatable.swift */; }; + OBJ_701 /* PDFLayoutIndentations.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_124 /* PDFLayoutIndentations.swift */; }; + OBJ_702 /* PDFMarginObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_125 /* PDFMarginObject.swift */; }; + OBJ_703 /* PDFOffsetObject+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_126 /* PDFOffsetObject+Equatable.swift */; }; + OBJ_704 /* PDFOffsetObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_127 /* PDFOffsetObject.swift */; }; + OBJ_705 /* PDFPageBreakObject+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_128 /* PDFPageBreakObject+Equatable.swift */; }; + OBJ_706 /* PDFPageBreakObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_129 /* PDFPageBreakObject.swift */; }; + OBJ_707 /* PDFPageLayout+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_130 /* PDFPageLayout+Equatable.swift */; }; + OBJ_708 /* PDFSectionColumnContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_131 /* PDFSectionColumnContainer.swift */; }; + OBJ_709 /* PDFSpaceObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_132 /* PDFSpaceObject.swift */; }; + OBJ_710 /* PDFListObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_134 /* PDFListObject.swift */; }; + OBJ_711 /* CGPoint+Math.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_136 /* CGPoint+Math.swift */; }; + OBJ_712 /* CGPoint+Null.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_137 /* CGPoint+Null.swift */; }; + OBJ_713 /* PDFGenerator+Debug.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_138 /* PDFGenerator+Debug.swift */; }; + OBJ_714 /* PDFGenerator+Layout.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_139 /* PDFGenerator+Layout.swift */; }; + OBJ_715 /* Int+RomanNumerals.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_141 /* Int+RomanNumerals.swift */; }; + OBJ_716 /* PDFPagination+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_142 /* PDFPagination+Equatable.swift */; }; + OBJ_717 /* PDFPagination.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_143 /* PDFPagination.swift */; }; + OBJ_718 /* PDFPaginationClosure.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_144 /* PDFPaginationClosure.swift */; }; + OBJ_719 /* PDFPaginationStyle+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_145 /* PDFPaginationStyle+Equatable.swift */; }; + OBJ_720 /* PDFPaginationStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_146 /* PDFPaginationStyle.swift */; }; + OBJ_721 /* PDFColumnWrapSectionObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_148 /* PDFColumnWrapSectionObject.swift */; }; + OBJ_722 /* PDFSectionColumnObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_149 /* PDFSectionColumnObject.swift */; }; + OBJ_723 /* PDFSectionObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_150 /* PDFSectionObject.swift */; }; + OBJ_724 /* PDFTableOfContentObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_152 /* PDFTableOfContentObject.swift */; }; + OBJ_725 /* PDFTableCalculatedCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_154 /* PDFTableCalculatedCell.swift */; }; + OBJ_726 /* PDFTableMergeUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_155 /* PDFTableMergeUtil.swift */; }; + OBJ_727 /* PDFTableNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_156 /* PDFTableNode.swift */; }; + OBJ_728 /* PDFTableObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_157 /* PDFTableObject.swift */; }; + OBJ_729 /* PDFTableValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_158 /* PDFTableValidator.swift */; }; + OBJ_730 /* PDFAttributedTextObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_160 /* PDFAttributedTextObject.swift */; }; + OBJ_731 /* PDFFontObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_161 /* PDFFontObject.swift */; }; + OBJ_732 /* PDFTextColorObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_162 /* PDFTextColorObject.swift */; }; + OBJ_733 /* PDFAttributableObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_165 /* PDFAttributableObject.swift */; }; + OBJ_734 /* PDFObjectAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_166 /* PDFObjectAttribute.swift */; }; + OBJ_735 /* CustomStringConvertible+AutoDescribing.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_167 /* CustomStringConvertible+AutoDescribing.swift */; }; + OBJ_736 /* FileManager+TemporaryFiles.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_168 /* FileManager+TemporaryFiles.swift */; }; + OBJ_737 /* PDFCalculations.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_169 /* PDFCalculations.swift */; }; + OBJ_738 /* PDFLocatedRenderObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_170 /* PDFLocatedRenderObject.swift */; }; + OBJ_739 /* PDFSlicedObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_171 /* PDFSlicedObject.swift */; }; + OBJ_740 /* Stack.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_172 /* Stack.swift */; }; + OBJ_741 /* WeakRef.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_173 /* WeakRef.swift */; }; + OBJ_748 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_6 /* Package.swift */; }; + OBJ_759 /* PDFTableRowSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_179 /* PDFTableRowSpec.swift */; }; + OBJ_760 /* PDFTable_RowSubscriptsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_180 /* PDFTable_RowSubscriptsSpec.swift */; }; + OBJ_761 /* PDFGraphics_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_182 /* PDFGraphics_Spec.swift */; }; + OBJ_762 /* PDFLineSeparatorObject+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_183 /* PDFLineSeparatorObject+Equatable_Spec.swift */; }; + OBJ_763 /* PDFLineSeparatorObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_184 /* PDFLineSeparatorObject_Spec.swift */; }; + OBJ_764 /* PDFLineStyle_Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_185 /* PDFLineStyle_Equatable_Spec.swift */; }; + OBJ_765 /* PDFLineStyle_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_186 /* PDFLineStyle_Spec.swift */; }; + OBJ_766 /* PDFLineType_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_187 /* PDFLineType_Spec.swift */; }; + OBJ_767 /* UIColor+Hex_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_188 /* UIColor+Hex_Spec.swift */; }; + OBJ_768 /* UIImage+CloseToEqual_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_189 /* UIImage+CloseToEqual_Spec.swift */; }; + OBJ_769 /* UIImage+Pixel_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_190 /* UIImage+Pixel_Spec.swift */; }; + OBJ_770 /* PDFImageSizeFit_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_192 /* PDFImageSizeFit_Spec.swift */; }; + OBJ_771 /* PDFImage_Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_193 /* PDFImage_Equatable_Spec.swift */; }; + OBJ_772 /* PDFImage_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_194 /* PDFImage_Spec.swift */; }; + OBJ_773 /* PDFTableMergeUtil_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_197 /* PDFTableMergeUtil_Spec.swift */; }; + OBJ_774 /* PDFTableObjectSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_198 /* PDFTableObjectSpec.swift */; }; + OBJ_775 /* PDFContainer_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_200 /* PDFContainer_Spec.swift */; }; + OBJ_776 /* PDFIndentationObject_Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_201 /* PDFIndentationObject_Equatable_Spec.swift */; }; + OBJ_777 /* PDFIndentationObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_202 /* PDFIndentationObject_Spec.swift */; }; + OBJ_778 /* PDFLayout+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_203 /* PDFLayout+Equatable_Spec.swift */; }; + OBJ_779 /* PDFLayoutHeights+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_204 /* PDFLayoutHeights+Equatable_Spec.swift */; }; + OBJ_780 /* PDFLayoutHeights_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_205 /* PDFLayoutHeights_Spec.swift */; }; + OBJ_781 /* PDFLayoutIndentations+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_206 /* PDFLayoutIndentations+Equatable_Spec.swift */; }; + OBJ_782 /* PDFLayoutIndentations_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_207 /* PDFLayoutIndentations_Spec.swift */; }; + OBJ_783 /* PDFLayout_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_208 /* PDFLayout_Spec.swift */; }; + OBJ_784 /* PDFOffsetObject+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_209 /* PDFOffsetObject+Equatable_Spec.swift */; }; + OBJ_785 /* PDFOffsetObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_210 /* PDFOffsetObject_Spec.swift */; }; + OBJ_786 /* PDFPageBreakObject+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_211 /* PDFPageBreakObject+Equatable_Spec.swift */; }; + OBJ_787 /* PDFPageBreakObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_212 /* PDFPageBreakObject_Spec.swift */; }; + OBJ_788 /* PDFPageLayout+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_213 /* PDFPageLayout+Equatable_Spec.swift */; }; + OBJ_789 /* PDFPageLayout_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_214 /* PDFPageLayout_Spec.swift */; }; + OBJ_790 /* PDFSpaceObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_215 /* PDFSpaceObject_Spec.swift */; }; + OBJ_791 /* PDFList+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_217 /* PDFList+Equatable_Spec.swift */; }; + OBJ_792 /* PDFListItemObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_218 /* PDFListItemObject_Spec.swift */; }; + OBJ_793 /* PDFListItemSymbol_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_219 /* PDFListItemSymbol_Spec.swift */; }; + OBJ_794 /* PDFListItem_Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_220 /* PDFListItem_Equatable_Spec.swift */; }; + OBJ_795 /* PDFListItem_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_221 /* PDFListItem_Spec.swift */; }; + OBJ_796 /* PDFList_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_222 /* PDFList_Spec.swift */; }; + OBJ_797 /* CGPoint+Math_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_224 /* CGPoint+Math_Spec.swift */; }; + OBJ_798 /* PDFInfo+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_226 /* PDFInfo+Equatable_Spec.swift */; }; + OBJ_799 /* PDFInfo_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_227 /* PDFInfo_Spec.swift */; }; + OBJ_800 /* PDFDocument+Objects_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_228 /* PDFDocument+Objects_Spec.swift */; }; + OBJ_801 /* PDFDocument_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_229 /* PDFDocument_Spec.swift */; }; + OBJ_802 /* PDFGenerator+Debug_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_230 /* PDFGenerator+Debug_Spec.swift */; }; + OBJ_803 /* PDFGenerator+Generation_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_231 /* PDFGenerator+Generation_Spec.swift */; }; + OBJ_804 /* PDFGenerator+Layout_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_232 /* PDFGenerator+Layout_Spec.swift */; }; + OBJ_805 /* PDFGenerator_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_233 /* PDFGenerator_Spec.swift */; }; + OBJ_806 /* PDFPageFormat+Layout_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_235 /* PDFPageFormat+Layout_Spec.swift */; }; + OBJ_807 /* PDFPageFormat+SizeConstants_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_236 /* PDFPageFormat+SizeConstants_Spec.swift */; }; + OBJ_808 /* PDFPageFormat_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_237 /* PDFPageFormat_Spec.swift */; }; + OBJ_809 /* Int+RomanNumerals_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_239 /* Int+RomanNumerals_Spec.swift */; }; + OBJ_810 /* PDFPaginationStyle+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_240 /* PDFPaginationStyle+Equatable_Spec.swift */; }; + OBJ_811 /* PDFPaginationStyle_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_241 /* PDFPaginationStyle_Spec.swift */; }; + OBJ_812 /* PDFPagination_Closure_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_242 /* PDFPagination_Closure_Spec.swift */; }; + OBJ_813 /* PDFPagination_Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_243 /* PDFPagination_Equatable_Spec.swift */; }; + OBJ_814 /* PDFPagination_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_244 /* PDFPagination_Spec.swift */; }; + OBJ_815 /* PDFTable+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_246 /* PDFTable+Equatable_Spec.swift */; }; + OBJ_816 /* PDFTableCell+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_247 /* PDFTableCell+Equatable_Spec.swift */; }; + OBJ_817 /* PDFTableCellAlignment_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_248 /* PDFTableCellAlignment_Spec.swift */; }; + OBJ_818 /* PDFTableCellBorders+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_249 /* PDFTableCellBorders+Equatable_Spec.swift */; }; + OBJ_819 /* PDFTableCellBorders_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_250 /* PDFTableCellBorders_Spec.swift */; }; + OBJ_820 /* PDFTableCellPosition+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_251 /* PDFTableCellPosition+Equatable_Spec.swift */; }; + OBJ_821 /* PDFTableCellPosition_Hashable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_252 /* PDFTableCellPosition_Hashable_Spec.swift */; }; + OBJ_822 /* PDFTableCellPosition_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_253 /* PDFTableCellPosition_Spec.swift */; }; + OBJ_823 /* PDFTableCellStyle+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_254 /* PDFTableCellStyle+Equatable_Spec.swift */; }; + OBJ_824 /* PDFTableCellStyle_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_255 /* PDFTableCellStyle_Spec.swift */; }; + OBJ_825 /* PDFTableCell_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_256 /* PDFTableCell_Spec.swift */; }; + OBJ_826 /* PDFTableContent+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_257 /* PDFTableContent+Equatable_Spec.swift */; }; + OBJ_827 /* PDFTableContent_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_258 /* PDFTableContent_Spec.swift */; }; + OBJ_828 /* PDFTableStyle+Defaults_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_259 /* PDFTableStyle+Defaults_Spec.swift */; }; + OBJ_829 /* PDFTableStyle+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_260 /* PDFTableStyle+Equatable_Spec.swift */; }; + OBJ_830 /* PDFTableStyle_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_261 /* PDFTableStyle_Spec.swift */; }; + OBJ_831 /* PDFTableValidator_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_262 /* PDFTableValidator_Spec.swift */; }; + OBJ_832 /* PDFTable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_263 /* PDFTable_Spec.swift */; }; + OBJ_833 /* PDFAttributedText+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_265 /* PDFAttributedText+Equatable_Spec.swift */; }; + OBJ_834 /* PDFAttributedTextObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_266 /* PDFAttributedTextObject_Spec.swift */; }; + OBJ_835 /* PDFAttributedText_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_267 /* PDFAttributedText_Spec.swift */; }; + OBJ_836 /* PDFFontObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_268 /* PDFFontObject_Spec.swift */; }; + OBJ_837 /* PDFSimpleText+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_269 /* PDFSimpleText+Equatable_Spec.swift */; }; + OBJ_838 /* PDFSimpleText_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_270 /* PDFSimpleText_Spec.swift */; }; + OBJ_839 /* PDFTextColorObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_271 /* PDFTextColorObject_Spec.swift */; }; + OBJ_840 /* PDFText_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_272 /* PDFText_Spec.swift */; }; + OBJ_841 /* PDFCalculations_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_274 /* PDFCalculations_Spec.swift */; }; + OBJ_842 /* PDFError_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_275 /* PDFError_Spec.swift */; }; + OBJ_843 /* PDFObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_276 /* PDFObject_Spec.swift */; }; + OBJ_845 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Nimble::Nimble::Product" /* Nimble.framework */; }; + OBJ_846 /* CwlPosixPreconditionTesting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlPosixPreconditionTesting::Product" /* CwlPosixPreconditionTesting.framework */; }; + OBJ_847 /* CwlPreconditionTesting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlPreconditionTesting::Product" /* CwlPreconditionTesting.framework */; }; + OBJ_848 /* CwlCatchException.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchException::Product" /* CwlCatchException.framework */; }; + OBJ_849 /* CwlCatchExceptionSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchExceptionSupport::Product" /* CwlCatchExceptionSupport.framework */; }; + OBJ_850 /* CwlMachBadInstructionHandler.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlMachBadInstructionHandler::Product" /* CwlMachBadInstructionHandler.framework */; }; + OBJ_851 /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Quick::Quick::Product" /* Quick.framework */; }; + OBJ_852 /* QuickObjCRuntime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Quick::QuickObjCRuntime::Product" /* QuickObjCRuntime.framework */; }; + OBJ_853 /* TPPDF.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "TPPDF::TPPDF::Product" /* TPPDF.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - D4803BD424703E2000DDA039 /* PBXContainerItemProxy */ = { + D4B7E9E825A1BB24007D09C7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; remoteGlobalIDString = "Nimble::Nimble"; remoteInfo = Nimble; }; - D4803BD524703E2000DDA039 /* PBXContainerItemProxy */ = { + D4B7E9E925A1BB24007D09C7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; - remoteGlobalIDString = "Nimble::NimbleCwlPreconditionTesting"; - remoteInfo = NimbleCwlPreconditionTesting; + remoteGlobalIDString = "CwlPreconditionTesting::CwlPosixPreconditionTesting"; + remoteInfo = CwlPosixPreconditionTesting; }; - D4803BD624703E2000DDA039 /* PBXContainerItemProxy */ = { + D4B7E9EA25A1BB24007D09C7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; - remoteGlobalIDString = "Nimble::NimbleCwlCatchException"; - remoteInfo = NimbleCwlCatchException; + remoteGlobalIDString = "CwlPreconditionTesting::CwlPreconditionTesting"; + remoteInfo = CwlPreconditionTesting; }; - D4803BD724703E2000DDA039 /* PBXContainerItemProxy */ = { + D4B7E9EB25A1BB24007D09C7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; - remoteGlobalIDString = "Nimble::NimbleCwlCatchExceptionSupport"; - remoteInfo = NimbleCwlCatchExceptionSupport; + remoteGlobalIDString = "CwlCatchException::CwlCatchException"; + remoteInfo = CwlCatchException; }; - D4803BD824703E2000DDA039 /* PBXContainerItemProxy */ = { + D4B7E9EC25A1BB24007D09C7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; - remoteGlobalIDString = "Nimble::NimbleCwlCatchExceptionSupport"; - remoteInfo = NimbleCwlCatchExceptionSupport; + remoteGlobalIDString = "CwlCatchException::CwlCatchExceptionSupport"; + remoteInfo = CwlCatchExceptionSupport; }; - D4803BD924703E2000DDA039 /* PBXContainerItemProxy */ = { + D4B7E9ED25A1BB24007D09C7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; - remoteGlobalIDString = "Nimble::NimbleCwlMachBadInstructionHandler"; - remoteInfo = NimbleCwlMachBadInstructionHandler; + remoteGlobalIDString = "CwlCatchException::CwlCatchExceptionSupport"; + remoteInfo = CwlCatchExceptionSupport; }; - D4803BDA24703E2000DDA039 /* PBXContainerItemProxy */ = { + D4B7E9EE25A1BB24007D09C7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; - remoteGlobalIDString = "Nimble::NimbleCwlCatchException"; - remoteInfo = NimbleCwlCatchException; + remoteGlobalIDString = "CwlPreconditionTesting::CwlMachBadInstructionHandler"; + remoteInfo = CwlMachBadInstructionHandler; }; - D4803BDB24703E2000DDA039 /* PBXContainerItemProxy */ = { + D4B7E9EF25A1BB24007D09C7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; - remoteGlobalIDString = "Nimble::NimbleCwlCatchExceptionSupport"; - remoteInfo = NimbleCwlCatchExceptionSupport; + remoteGlobalIDString = "CwlCatchException::CwlCatchException"; + remoteInfo = CwlCatchException; }; - D4803BDC24703E2000DDA039 /* PBXContainerItemProxy */ = { + D4B7E9F025A1BB24007D09C7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; - remoteGlobalIDString = "Nimble::NimbleCwlMachBadInstructionHandler"; - remoteInfo = NimbleCwlMachBadInstructionHandler; + remoteGlobalIDString = "CwlCatchException::CwlCatchExceptionSupport"; + remoteInfo = CwlCatchExceptionSupport; }; - D4803BDD24703E2000DDA039 /* PBXContainerItemProxy */ = { + D4B7E9F125A1BB24007D09C7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; - remoteGlobalIDString = "Nimble::NimbleCwlPreconditionTesting"; - remoteInfo = NimbleCwlPreconditionTesting; + remoteGlobalIDString = "CwlPreconditionTesting::CwlMachBadInstructionHandler"; + remoteInfo = CwlMachBadInstructionHandler; }; - D4803BDE24703E2000DDA039 /* PBXContainerItemProxy */ = { + D4B7E9F225A1BB24007D09C7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; - remoteGlobalIDString = "Nimble::NimbleCwlCatchException"; - remoteInfo = NimbleCwlCatchException; + remoteGlobalIDString = "CwlPreconditionTesting::CwlPosixPreconditionTesting"; + remoteInfo = CwlPosixPreconditionTesting; }; - D4803BDF24703E2000DDA039 /* PBXContainerItemProxy */ = { + D4B7E9F325A1BB24007D09C7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; - remoteGlobalIDString = "Nimble::NimbleCwlCatchExceptionSupport"; - remoteInfo = NimbleCwlCatchExceptionSupport; + remoteGlobalIDString = "CwlPreconditionTesting::CwlPreconditionTesting"; + remoteInfo = CwlPreconditionTesting; }; - D4803BE024703E2000DDA039 /* PBXContainerItemProxy */ = { + D4B7E9F425A1BB24007D09C7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; - remoteGlobalIDString = "Nimble::NimbleCwlMachBadInstructionHandler"; - remoteInfo = NimbleCwlMachBadInstructionHandler; + remoteGlobalIDString = "CwlCatchException::CwlCatchException"; + remoteInfo = CwlCatchException; }; - D4803BE124703E2000DDA039 /* PBXContainerItemProxy */ = { + D4B7E9F525A1BB24007D09C7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = OBJ_1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = "CwlCatchException::CwlCatchExceptionSupport"; + remoteInfo = CwlCatchExceptionSupport; + }; + D4B7E9F625A1BB24007D09C7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = OBJ_1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = "CwlPreconditionTesting::CwlMachBadInstructionHandler"; + remoteInfo = CwlMachBadInstructionHandler; + }; + D4B7E9F725A1BB24007D09C7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; remoteGlobalIDString = "Quick::Quick"; remoteInfo = Quick; }; - D4803BE224703E2000DDA039 /* PBXContainerItemProxy */ = { + D4B7E9F825A1BB24007D09C7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; - remoteGlobalIDString = "Quick::QuickSpecBase"; - remoteInfo = QuickSpecBase; + remoteGlobalIDString = "Quick::QuickObjCRuntime"; + remoteInfo = QuickObjCRuntime; }; - D4803BE324703E2000DDA039 /* PBXContainerItemProxy */ = { + D4B7E9F925A1BB24007D09C7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; - remoteGlobalIDString = "Quick::QuickSpecBase"; - remoteInfo = QuickSpecBase; + remoteGlobalIDString = "Quick::QuickObjCRuntime"; + remoteInfo = QuickObjCRuntime; }; - D4803BE424703E2000DDA039 /* PBXContainerItemProxy */ = { + D4B7E9FA25A1BB24007D09C7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; remoteGlobalIDString = "TPPDF::TPPDF"; remoteInfo = TPPDF; }; - D4803BE524703E4700DDA039 /* PBXContainerItemProxy */ = { + D4B7E9FB25A1BB24007D09C7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; @@ -482,1419 +498,1581 @@ }; /* End PBXContainerItemProxy section */ +/* Begin PBXCopyFilesBuildPhase section */ + D4B7EA2025A1BB67007D09C7 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + D4B7EA1F25A1BB67007D09C7 /* XCTest.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ - D477C4C324C479550097C2AB /* PDFConstants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFConstants.swift; sourceTree = ""; }; - D4803BE824703E5300DDA039 /* PDFGroupObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFGroupObject.swift; sourceTree = ""; }; - D4803BEA24703E5300DDA039 /* PDFImageObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFImageObject.swift; sourceTree = ""; }; - D4803BEB24703E5300DDA039 /* PDFImageRowObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFImageRowObject.swift; sourceTree = ""; }; - D4803BED24703E5300DDA039 /* PDFCalculations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFCalculations.swift; sourceTree = ""; }; - D4803BEE24703E5300DDA039 /* PDFSlicedObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFSlicedObject.swift; sourceTree = ""; }; - D4803BEF24703E5300DDA039 /* CustomStringConvertible+AutoDescribing.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "CustomStringConvertible+AutoDescribing.swift"; sourceTree = ""; }; - D4803BF124703E5300DDA039 /* PDFAttributableObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFAttributableObject.swift; sourceTree = ""; }; - D4803BF224703E5300DDA039 /* PDFObjectAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFObjectAttribute.swift; sourceTree = ""; }; - D4803BF324703E5300DDA039 /* PDFLocatedRenderObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFLocatedRenderObject.swift; sourceTree = ""; }; - D4803BF424703E5300DDA039 /* WeakRef.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WeakRef.swift; sourceTree = ""; }; - D4803BF524703E5300DDA039 /* FileManager+TemporaryFiles.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "FileManager+TemporaryFiles.swift"; sourceTree = ""; }; - D4803BF624703E5300DDA039 /* Stack.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Stack.swift; sourceTree = ""; }; - D4803BF824703E5300DDA039 /* PDFColumnWrapSectionObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFColumnWrapSectionObject.swift; sourceTree = ""; }; - D4803BF924703E5300DDA039 /* PDFSectionColumnObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFSectionColumnObject.swift; sourceTree = ""; }; - D4803BFA24703E5300DDA039 /* PDFSectionObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFSectionObject.swift; sourceTree = ""; }; - D4803BFB24703E5300DDA039 /* PDFGenerator+Debug.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Debug.swift"; sourceTree = ""; }; - D4803BFD24703E5300DDA039 /* CGPoint+Null.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "CGPoint+Null.swift"; sourceTree = ""; }; - D4803BFE24703E5300DDA039 /* CGPoint+Math.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "CGPoint+Math.swift"; sourceTree = ""; }; - D4803C0024703E5300DDA039 /* PDFPagination.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFPagination.swift; sourceTree = ""; }; - D4803C0124703E5300DDA039 /* Int+RomanNumerals.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Int+RomanNumerals.swift"; sourceTree = ""; }; - D4803C0224703E5300DDA039 /* PDFPaginationStyle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFPaginationStyle.swift; sourceTree = ""; }; - D4803C0324703E5300DDA039 /* PDFPaginationClosure.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFPaginationClosure.swift; sourceTree = ""; }; - D4803C0524703E5300DDA039 /* PDFPaginationStyle+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFPaginationStyle+Equatable.swift"; sourceTree = ""; }; - D4803C0624703E5300DDA039 /* PDFPagination+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFPagination+Equatable.swift"; sourceTree = ""; }; - D4803C1524703E5300DDA039 /* PDFListObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFListObject.swift; sourceTree = ""; }; - D4803C1724703E5300DDA039 /* PDFTableOfContentObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTableOfContentObject.swift; sourceTree = ""; }; - D4803C1824703E5300DDA039 /* PDFGenerator+Layout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Layout.swift"; sourceTree = ""; }; - D4803C1A24703E5300DDA039 /* PDFLineSeparatorObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFLineSeparatorObject.swift; sourceTree = ""; }; - D4803C1B24703E5300DDA039 /* PDFGraphics.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFGraphics.swift; sourceTree = ""; }; - D4803C1C24703E5300DDA039 /* UIColor+CloseToEqual.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIColor+CloseToEqual.swift"; sourceTree = ""; }; - D4803C1D24703E5300DDA039 /* PDFLineObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFLineObject.swift; sourceTree = ""; }; - D4803C1E24703E5300DDA039 /* UIColor+Hex.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIColor+Hex.swift"; sourceTree = ""; }; - D4803C1F24703E5300DDA039 /* UIImage+Pixel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIImage+Pixel.swift"; sourceTree = ""; }; - D4803C2024703E5300DDA039 /* PDFLineSeparatorObject+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFLineSeparatorObject+Equatable.swift"; sourceTree = ""; }; - D4803C2124703E5300DDA039 /* PDFRectangleObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFRectangleObject.swift; sourceTree = ""; }; - D4803C2324703E5300DDA039 /* PDFPageBreakObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFPageBreakObject.swift; sourceTree = ""; }; - D4803C2424703E5300DDA039 /* PDFLayoutHeights.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFLayoutHeights.swift; sourceTree = ""; }; - D4803C2524703E5300DDA039 /* PDFOffsetObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFOffsetObject.swift; sourceTree = ""; }; - D4803C2624703E5300DDA039 /* PDFLayoutIndentations+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFLayoutIndentations+Equatable.swift"; sourceTree = ""; }; - D4803C2724703E5300DDA039 /* PDFLayoutIndentations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFLayoutIndentations.swift; sourceTree = ""; }; - D4803C2824703E5300DDA039 /* PDFOffsetObject+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFOffsetObject+Equatable.swift"; sourceTree = ""; }; - D4803C2924703E5300DDA039 /* PDFPageBreakObject+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFPageBreakObject+Equatable.swift"; sourceTree = ""; }; - D4803C2A24703E5300DDA039 /* PDFSectionColumnContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFSectionColumnContainer.swift; sourceTree = ""; }; - D4803C2B24703E5300DDA039 /* PDFIndentationObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFIndentationObject.swift; sourceTree = ""; }; - D4803C2C24703E5300DDA039 /* PDFLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFLayout.swift; sourceTree = ""; }; - D4803C2D24703E5300DDA039 /* PDFSpaceObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFSpaceObject.swift; sourceTree = ""; }; - D4803C2E24703E5300DDA039 /* PDFLayout+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFLayout+Equatable.swift"; sourceTree = ""; }; - D4803C2F24703E5300DDA039 /* PDFColumnLayoutState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFColumnLayoutState.swift; sourceTree = ""; }; - D4803C3024703E5300DDA039 /* PDFPageLayout+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFPageLayout+Equatable.swift"; sourceTree = ""; }; - D4803C3124703E5300DDA039 /* PDFMarginObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFMarginObject.swift; sourceTree = ""; }; - D4803C3224703E5300DDA039 /* PDFIndentationObject+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFIndentationObject+Equatable.swift"; sourceTree = ""; }; - D4803C3324703E5300DDA039 /* PDFLayoutHeights+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFLayoutHeights+Equatable.swift"; sourceTree = ""; }; - D4803C3524703E5300DDA039 /* PDFExternalPageObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFExternalPageObject.swift; sourceTree = ""; }; - D4803C3624703E5300DDA039 /* PDFExternalDocumentObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFExternalDocumentObject.swift; sourceTree = ""; }; - D4803C3824703E5300DDA039 /* PDFTableMergeUtil.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTableMergeUtil.swift; sourceTree = ""; }; - D4803C3924703E5300DDA039 /* PDFTableNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTableNode.swift; sourceTree = ""; }; - D4803C3A24703E5300DDA039 /* PDFTableObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTableObject.swift; sourceTree = ""; }; - D4803C3B24703E5300DDA039 /* PDFTableValidator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTableValidator.swift; sourceTree = ""; }; - D4803C3E24703E5300DDA039 /* PDFFontObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFFontObject.swift; sourceTree = ""; }; - D4803C3F24703E5300DDA039 /* PDFAttributedTextObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFAttributedTextObject.swift; sourceTree = ""; }; - D4803C4024703E5300DDA039 /* PDFTextColorObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTextColorObject.swift; sourceTree = ""; }; - D4803C4324703E5300DDA039 /* PDFImageSizeFit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFImageSizeFit.swift; sourceTree = ""; }; - D4803C4424703E5300DDA039 /* PDFImage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFImage.swift; sourceTree = ""; }; - D4803C4524703E5300DDA039 /* PDFImageOptions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFImageOptions.swift; sourceTree = ""; }; - D4803C4624703E5300DDA039 /* PDFImage+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFImage+Equatable.swift"; sourceTree = ""; }; - D4803C4724703E5300DDA039 /* PDFDocument.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFDocument.swift; sourceTree = ""; }; - D4803C4824703E5300DDA039 /* PDFGeneratorProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFGeneratorProtocol.swift; sourceTree = ""; }; - D4803C4924703E5300DDA039 /* PDFMultiDocumentGenerator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFMultiDocumentGenerator.swift; sourceTree = ""; }; - D4803C4B24703E5300DDA039 /* PDFDocumentObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFDocumentObject.swift; sourceTree = ""; }; - D4803C4C24703E5300DDA039 /* PDFError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFError.swift; sourceTree = ""; }; - D4803C4D24703E5300DDA039 /* PDFRenderObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFRenderObject.swift; sourceTree = ""; }; - D4803C4E24703E5300DDA039 /* PDFCopy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFCopy.swift; sourceTree = ""; }; - D4803C5124703E5300DDA039 /* PDFSection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFSection.swift; sourceTree = ""; }; - D4803C5224703E5300DDA039 /* PDFSectionColumn.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFSectionColumn.swift; sourceTree = ""; }; - D4803C5324703E5300DDA039 /* PDFGenerator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFGenerator.swift; sourceTree = ""; }; - D4803C5524703E5300DDA039 /* PDFPageFormat.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFPageFormat.swift; sourceTree = ""; }; - D4803C5624703E5300DDA039 /* PDFPageFormat+Layout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFPageFormat+Layout.swift"; sourceTree = ""; }; - D4803C5724703E5300DDA039 /* PDFPageFormat+SizeConstants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFPageFormat+SizeConstants.swift"; sourceTree = ""; }; - D4803C5824703E5300DDA039 /* PDFGenerator+Generation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Generation.swift"; sourceTree = ""; }; - D4803C5A24703E5300DDA039 /* PDFInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFInfo.swift; sourceTree = ""; }; - D4803C5B24703E5300DDA039 /* PDFInfo+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFInfo+Equatable.swift"; sourceTree = ""; }; - D4803C5D24703E5300DDA039 /* PDFGroup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFGroup.swift; sourceTree = ""; }; - D4803C5E24703E5300DDA039 /* PDFGroupContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFGroupContainer.swift; sourceTree = ""; }; - D4803C5F24703E5300DDA039 /* PDFMasterGroup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFMasterGroup.swift; sourceTree = ""; }; - D4803C6024703E5300DDA039 /* PDFGroup+Objects.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFGroup+Objects.swift"; sourceTree = ""; }; - D4803C6224703E5300DDA039 /* PDFListItemSymbol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFListItemSymbol.swift; sourceTree = ""; }; - D4803C6324703E5300DDA039 /* PDFList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFList.swift; sourceTree = ""; }; - D4803C6424703E5300DDA039 /* PDFListItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFListItem.swift; sourceTree = ""; }; - D4803C6524703E5300DDA039 /* PDFListItem+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFListItem+Equatable.swift"; sourceTree = ""; }; - D4803C6624703E5300DDA039 /* PDFList+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFList+Equatable.swift"; sourceTree = ""; }; - D4803C6824703E5300DDA039 /* PDFTableOfContent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTableOfContent.swift; sourceTree = ""; }; - D4803C6A24703E5300DDA039 /* PDFBezierPathVertex.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFBezierPathVertex.swift; sourceTree = ""; }; - D4803C6B24703E5300DDA039 /* PDFLineStyle+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFLineStyle+Equatable.swift"; sourceTree = ""; }; - D4803C6C24703E5300DDA039 /* PDFLineType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFLineType.swift; sourceTree = ""; }; - D4803C6D24703E5300DDA039 /* PDFLineStyle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFLineStyle.swift; sourceTree = ""; }; - D4803C6E24703E5300DDA039 /* PDFDynamicGeometryShape.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFDynamicGeometryShape.swift; sourceTree = ""; }; - D4803C6F24703E5300DDA039 /* PDFBezierPath.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFBezierPath.swift; sourceTree = ""; }; - D4803C7024703E5300DDA039 /* PDFBezierPath+Copying.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFBezierPath+Copying.swift"; sourceTree = ""; }; - D4803C7224703E5300DDA039 /* PDFContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFContainer.swift; sourceTree = ""; }; - D4803C7324703E5300DDA039 /* PDFPageLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFPageLayout.swift; sourceTree = ""; }; - D4803C7524703E5300DDA039 /* PDFExternalDocument.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFExternalDocument.swift; sourceTree = ""; }; - D4803C7824703E5300DDA039 /* PDFTable+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFTable+Equatable.swift"; sourceTree = ""; }; - D4803C7A24703E5300DDA039 /* PDFTableStyle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTableStyle.swift; sourceTree = ""; }; - D4803C7B24703E5300DDA039 /* PDFTableStyle+Defaults.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFTableStyle+Defaults.swift"; sourceTree = ""; }; - D4803C7C24703E5300DDA039 /* PDFTableCellStyle+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFTableCellStyle+Equatable.swift"; sourceTree = ""; }; - D4803C7D24703E5300DDA039 /* PDFTableCellBorders+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFTableCellBorders+Equatable.swift"; sourceTree = ""; }; - D4803C7E24703E5300DDA039 /* PDFTableCellPosition+Equatable-Hashable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFTableCellPosition+Equatable-Hashable.swift"; sourceTree = ""; }; - D4803C7F24703E5300DDA039 /* PDFTableCellBorders.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTableCellBorders.swift; sourceTree = ""; }; - D4803C8024703E5300DDA039 /* PDFTableStyle+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFTableStyle+Equatable.swift"; sourceTree = ""; }; - D4803C8124703E5300DDA039 /* PDFTableCell+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFTableCell+Equatable.swift"; sourceTree = ""; }; - D4803C8224703E5300DDA039 /* PDFTableCellStyle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTableCellStyle.swift; sourceTree = ""; }; - D4803C8424703E5300DDA039 /* PDFTableMergeable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTableMergeable.swift; sourceTree = ""; }; - D4803C8524703E5300DDA039 /* PDFTable+RowSubscripts.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFTable+RowSubscripts.swift"; sourceTree = ""; }; - D4803C8624703E5300DDA039 /* PDFTable+SectionSubscripts.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFTable+SectionSubscripts.swift"; sourceTree = ""; }; - D4803C8724703E5300DDA039 /* PDFTableRow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTableRow.swift; sourceTree = ""; }; - D4803C8824703E5300DDA039 /* PDFTableColumns.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTableColumns.swift; sourceTree = ""; }; - D4803C8924703E5300DDA039 /* PDFTableSection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTableSection.swift; sourceTree = ""; }; - D4803C8A24703E5300DDA039 /* PDFTableRows.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTableRows.swift; sourceTree = ""; }; - D4803C8B24703E5300DDA039 /* PDFTable+ColumnSubscripts.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFTable+ColumnSubscripts.swift"; sourceTree = ""; }; - D4803C8C24703E5300DDA039 /* PDFTableColumn.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTableColumn.swift; sourceTree = ""; }; - D4803C8D24703E5300DDA039 /* PDFTable+CellSubscripts.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFTable+CellSubscripts.swift"; sourceTree = ""; }; - D4803C8F24703E5300DDA039 /* NSAttributedString+PDFTableContent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSAttributedString+PDFTableContent.swift"; sourceTree = ""; }; - D4803C9024703E5300DDA039 /* PDFTableContent+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFTableContent+Equatable.swift"; sourceTree = ""; }; - D4803C9124703E5300DDA039 /* Number+PDFTableContentable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Number+PDFTableContentable.swift"; sourceTree = ""; }; - D4803C9224703E5300DDA039 /* PDFTableContentable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTableContentable.swift; sourceTree = ""; }; - D4803C9324703E5300DDA039 /* String+PDFTableContent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String+PDFTableContent.swift"; sourceTree = ""; }; - D4803C9424703E5300DDA039 /* PDFTableContent+ContentType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFTableContent+ContentType.swift"; sourceTree = ""; }; - D4803C9524703E5300DDA039 /* PDFTableContent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTableContent.swift; sourceTree = ""; }; - D4803C9624703E5300DDA039 /* UIImage+PDFTableContent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIImage+PDFTableContent.swift"; sourceTree = ""; }; - D4803C9724703E5300DDA039 /* PDFTableCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTableCell.swift; sourceTree = ""; }; - D4803C9824703E5300DDA039 /* PDFTableCellPosition.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTableCellPosition.swift; sourceTree = ""; }; - D4803C9924703E5300DDA039 /* PDFTableCellAlignment.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTableCellAlignment.swift; sourceTree = ""; }; - D4803C9A24703E5300DDA039 /* PDFTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTable.swift; sourceTree = ""; }; - D4803C9C24703E5300DDA039 /* PDFSimpleText+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFSimpleText+Equatable.swift"; sourceTree = ""; }; - D4803C9D24703E5300DDA039 /* PDFSimpleText.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFSimpleText.swift; sourceTree = ""; }; - D4803C9E24703E5300DDA039 /* PDFAttributedText+Equatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PDFAttributedText+Equatable.swift"; sourceTree = ""; }; - D4803C9F24703E5300DDA039 /* PDFAttributedText.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFAttributedText.swift; sourceTree = ""; }; - D4803CA024703E5300DDA039 /* PDFText.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFText.swift; sourceTree = ""; }; - D4803CA124703E5300DDA039 /* PDFTextStyle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTextStyle.swift; sourceTree = ""; }; - D4839C38253706950005BB87 /* PDFTableCalculatedCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFTableCalculatedCell.swift; sourceTree = ""; }; - D494BA6D257ADF850017C407 /* PDFTaggableObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PDFTaggableObject.swift; path = Source/API/Utils/PDFTaggableObject.swift; sourceTree = SOURCE_ROOT; }; - D4EE2F9624A34C990004E3B9 /* PDFContextGraphics.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFContextGraphics.swift; sourceTree = ""; }; - D4EE2F9824A34CBF0004E3B9 /* CrossPlattformGraphics.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CrossPlattformGraphics.swift; sourceTree = ""; }; - "Nimble::Nimble::Product" /* Nimble.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - "Nimble::NimbleCwlCatchException::Product" /* NimbleCwlCatchException.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = NimbleCwlCatchException.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - "Nimble::NimbleCwlCatchExceptionSupport::Product" /* NimbleCwlCatchExceptionSupport.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = NimbleCwlCatchExceptionSupport.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - "Nimble::NimbleCwlMachBadInstructionHandler::Product" /* NimbleCwlMachBadInstructionHandler.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = NimbleCwlMachBadInstructionHandler.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - "Nimble::NimbleCwlPreconditionTesting::Product" /* NimbleCwlPreconditionTesting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = NimbleCwlPreconditionTesting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - OBJ_197 /* PDFGraphics_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGraphics_Spec.swift; sourceTree = ""; }; - OBJ_198 /* PDFLineSeparatorObject+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLineSeparatorObject+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_199 /* PDFLineSeparatorObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineSeparatorObject_Spec.swift; sourceTree = ""; }; - OBJ_200 /* PDFLineStyle_Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineStyle_Equatable_Spec.swift; sourceTree = ""; }; - OBJ_201 /* PDFLineStyle_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineStyle_Spec.swift; sourceTree = ""; }; - OBJ_202 /* PDFLineType_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineType_Spec.swift; sourceTree = ""; }; - OBJ_203 /* UIColor+Hex_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+Hex_Spec.swift"; sourceTree = ""; }; - OBJ_204 /* UIImage+CloseToEqual_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+CloseToEqual_Spec.swift"; sourceTree = ""; }; - OBJ_205 /* UIImage+Pixel_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+Pixel_Spec.swift"; sourceTree = ""; }; - OBJ_207 /* PDFImageSizeFit_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImageSizeFit_Spec.swift; sourceTree = ""; }; - OBJ_208 /* PDFImage_Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImage_Equatable_Spec.swift; sourceTree = ""; }; - OBJ_209 /* PDFImage_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImage_Spec.swift; sourceTree = ""; }; - OBJ_212 /* PDFTableMergeUtil_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableMergeUtil_Spec.swift; sourceTree = ""; }; - OBJ_217 /* PDFContainer_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFContainer_Spec.swift; sourceTree = ""; }; - OBJ_218 /* PDFIndentationObject_Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFIndentationObject_Equatable_Spec.swift; sourceTree = ""; }; - OBJ_219 /* PDFIndentationObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFIndentationObject_Spec.swift; sourceTree = ""; }; - OBJ_220 /* PDFLayout+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLayout+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_221 /* PDFLayoutHeights+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLayoutHeights+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_222 /* PDFLayoutHeights_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLayoutHeights_Spec.swift; sourceTree = ""; }; - OBJ_223 /* PDFLayoutIndentations+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLayoutIndentations+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_224 /* PDFLayoutIndentations_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLayoutIndentations_Spec.swift; sourceTree = ""; }; - OBJ_225 /* PDFLayout_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLayout_Spec.swift; sourceTree = ""; }; - OBJ_226 /* PDFOffsetObject+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFOffsetObject+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_227 /* PDFOffsetObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFOffsetObject_Spec.swift; sourceTree = ""; }; - OBJ_228 /* PDFPageBreakObject+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageBreakObject+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_229 /* PDFPageBreakObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPageBreakObject_Spec.swift; sourceTree = ""; }; - OBJ_230 /* PDFPageLayout+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageLayout+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_231 /* PDFPageLayout_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPageLayout_Spec.swift; sourceTree = ""; }; - OBJ_232 /* PDFSpaceObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSpaceObject_Spec.swift; sourceTree = ""; }; - OBJ_234 /* PDFList+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFList+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_235 /* PDFListItemObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListItemObject_Spec.swift; sourceTree = ""; }; - OBJ_236 /* PDFListItemSymbol_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListItemSymbol_Spec.swift; sourceTree = ""; }; - OBJ_237 /* PDFListItem_Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListItem_Equatable_Spec.swift; sourceTree = ""; }; - OBJ_238 /* PDFListItem_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListItem_Spec.swift; sourceTree = ""; }; - OBJ_239 /* PDFList_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFList_Spec.swift; sourceTree = ""; }; - OBJ_241 /* CGPoint+Math_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CGPoint+Math_Spec.swift"; sourceTree = ""; }; - OBJ_243 /* PDFInfo+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFInfo+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_244 /* PDFInfo_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFInfo_Spec.swift; sourceTree = ""; }; - OBJ_245 /* PDFDocument+Objects_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFDocument+Objects_Spec.swift"; sourceTree = ""; }; - OBJ_246 /* PDFDocument_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFDocument_Spec.swift; sourceTree = ""; }; - OBJ_247 /* PDFGenerator+Debug_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Debug_Spec.swift"; sourceTree = ""; }; - OBJ_248 /* PDFGenerator+Generation_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Generation_Spec.swift"; sourceTree = ""; }; - OBJ_249 /* PDFGenerator+Layout_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Layout_Spec.swift"; sourceTree = ""; }; - OBJ_250 /* PDFGenerator_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGenerator_Spec.swift; sourceTree = ""; }; - OBJ_252 /* PDFPageFormat+Layout_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageFormat+Layout_Spec.swift"; sourceTree = ""; }; - OBJ_253 /* PDFPageFormat+SizeConstants_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageFormat+SizeConstants_Spec.swift"; sourceTree = ""; }; - OBJ_254 /* PDFPageFormat_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPageFormat_Spec.swift; sourceTree = ""; }; - OBJ_256 /* Int+RomanNumerals_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Int+RomanNumerals_Spec.swift"; sourceTree = ""; }; - OBJ_257 /* PDFPaginationStyle+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPaginationStyle+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_258 /* PDFPaginationStyle_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPaginationStyle_Spec.swift; sourceTree = ""; }; - OBJ_259 /* PDFPagination_Closure_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPagination_Closure_Spec.swift; sourceTree = ""; }; - OBJ_260 /* PDFPagination_Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPagination_Equatable_Spec.swift; sourceTree = ""; }; - OBJ_261 /* PDFPagination_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPagination_Spec.swift; sourceTree = ""; }; - OBJ_263 /* PDFTable+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTable+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_264 /* PDFTableCell+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableCell+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_265 /* PDFTableCellAlignment_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellAlignment_Spec.swift; sourceTree = ""; }; - OBJ_266 /* PDFTableCellBorders+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableCellBorders+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_267 /* PDFTableCellBorders_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellBorders_Spec.swift; sourceTree = ""; }; - OBJ_268 /* PDFTableCellPosition+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableCellPosition+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_269 /* PDFTableCellPosition_Hashable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellPosition_Hashable_Spec.swift; sourceTree = ""; }; - OBJ_270 /* PDFTableCellPosition_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellPosition_Spec.swift; sourceTree = ""; }; - OBJ_271 /* PDFTableCellStyle+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableCellStyle+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_272 /* PDFTableCellStyle_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellStyle_Spec.swift; sourceTree = ""; }; - OBJ_273 /* PDFTableCell_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCell_Spec.swift; sourceTree = ""; }; - OBJ_274 /* PDFTableContent+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableContent+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_275 /* PDFTableContent_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableContent_Spec.swift; sourceTree = ""; }; - OBJ_276 /* PDFTableStyle+Defaults_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableStyle+Defaults_Spec.swift"; sourceTree = ""; }; - OBJ_277 /* PDFTableStyle+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableStyle+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_278 /* PDFTableStyle_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableStyle_Spec.swift; sourceTree = ""; }; - OBJ_279 /* PDFTableValidator_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableValidator_Spec.swift; sourceTree = ""; }; - OBJ_280 /* PDFTable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTable_Spec.swift; sourceTree = ""; }; - OBJ_282 /* PDFAttributedText+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFAttributedText+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_283 /* PDFAttributedTextObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFAttributedTextObject_Spec.swift; sourceTree = ""; }; - OBJ_284 /* PDFAttributedText_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFAttributedText_Spec.swift; sourceTree = ""; }; - OBJ_285 /* PDFFontObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFFontObject_Spec.swift; sourceTree = ""; }; - OBJ_286 /* PDFSimpleText+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFSimpleText+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_287 /* PDFSimpleText_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSimpleText_Spec.swift; sourceTree = ""; }; - OBJ_288 /* PDFTextColorObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTextColorObject_Spec.swift; sourceTree = ""; }; - OBJ_289 /* PDFText_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFText_Spec.swift; sourceTree = ""; }; - OBJ_291 /* PDFCalculations_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFCalculations_Spec.swift; sourceTree = ""; }; - OBJ_292 /* PDFError_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFError_Spec.swift; sourceTree = ""; }; - OBJ_293 /* PDFObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFObject_Spec.swift; sourceTree = ""; }; - OBJ_297 /* Behavior.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Behavior.swift; sourceTree = ""; }; - OBJ_298 /* Callsite.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Callsite.swift; sourceTree = ""; }; - OBJ_300 /* Configuration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Configuration.swift; sourceTree = ""; }; - OBJ_301 /* QuickConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickConfiguration.swift; sourceTree = ""; }; - OBJ_303 /* DSL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DSL.swift; sourceTree = ""; }; - OBJ_304 /* World+DSL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "World+DSL.swift"; sourceTree = ""; }; - OBJ_305 /* ErrorUtility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ErrorUtility.swift; sourceTree = ""; }; - OBJ_306 /* Example.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Example.swift; sourceTree = ""; }; - OBJ_307 /* ExampleGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExampleGroup.swift; sourceTree = ""; }; - OBJ_308 /* ExampleMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExampleMetadata.swift; sourceTree = ""; }; - OBJ_309 /* Filter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Filter.swift; sourceTree = ""; }; - OBJ_311 /* Closures.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Closures.swift; sourceTree = ""; }; - OBJ_312 /* ExampleHooks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExampleHooks.swift; sourceTree = ""; }; - OBJ_313 /* HooksPhase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HooksPhase.swift; sourceTree = ""; }; - OBJ_314 /* SuiteHooks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SuiteHooks.swift; sourceTree = ""; }; - OBJ_315 /* NSBundle+CurrentTestBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSBundle+CurrentTestBundle.swift"; sourceTree = ""; }; - OBJ_316 /* QuickMain.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickMain.swift; sourceTree = ""; }; - OBJ_317 /* QuickSelectedTestSuiteBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickSelectedTestSuiteBuilder.swift; sourceTree = ""; }; - OBJ_318 /* QuickSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickSpec.swift; sourceTree = ""; }; - OBJ_319 /* QuickTestSuite.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickTestSuite.swift; sourceTree = ""; }; - OBJ_320 /* String+C99ExtendedIdentifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+C99ExtendedIdentifier.swift"; sourceTree = ""; }; - OBJ_321 /* URL+FileName.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "URL+FileName.swift"; sourceTree = ""; }; - OBJ_322 /* World.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = World.swift; sourceTree = ""; }; - OBJ_324 /* QuickSpecBase.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QuickSpecBase.m; sourceTree = ""; }; - OBJ_326 /* QuickSpecBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QuickSpecBase.h; sourceTree = ""; }; - OBJ_327 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; name = Package.swift; path = "${SOURCE_ROOT}/.build/checkouts/Quick/Package.swift"; sourceTree = ""; }; - OBJ_331 /* AdapterProtocols.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdapterProtocols.swift; sourceTree = ""; }; - OBJ_332 /* AssertionDispatcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AssertionDispatcher.swift; sourceTree = ""; }; - OBJ_333 /* AssertionRecorder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AssertionRecorder.swift; sourceTree = ""; }; - OBJ_334 /* NMBExpectation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NMBExpectation.swift; sourceTree = ""; }; - OBJ_335 /* NMBObjCMatcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NMBObjCMatcher.swift; sourceTree = ""; }; - OBJ_336 /* NimbleEnvironment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NimbleEnvironment.swift; sourceTree = ""; }; - OBJ_337 /* NimbleXCTestHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NimbleXCTestHandler.swift; sourceTree = ""; }; - OBJ_339 /* ExceptionCapture.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExceptionCapture.swift; sourceTree = ""; }; - OBJ_340 /* DSL+Wait.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DSL+Wait.swift"; sourceTree = ""; }; - OBJ_341 /* DSL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DSL.swift; sourceTree = ""; }; - OBJ_342 /* Expectation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Expectation.swift; sourceTree = ""; }; - OBJ_343 /* ExpectationMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpectationMessage.swift; sourceTree = ""; }; - OBJ_344 /* Expression.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Expression.swift; sourceTree = ""; }; - OBJ_345 /* FailureMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FailureMessage.swift; sourceTree = ""; }; - OBJ_347 /* AllPass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AllPass.swift; sourceTree = ""; }; - OBJ_348 /* Async.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Async.swift; sourceTree = ""; }; - OBJ_349 /* BeAKindOf.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeAKindOf.swift; sourceTree = ""; }; - OBJ_350 /* BeAnInstanceOf.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeAnInstanceOf.swift; sourceTree = ""; }; - OBJ_351 /* BeCloseTo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeCloseTo.swift; sourceTree = ""; }; - OBJ_352 /* BeEmpty.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeEmpty.swift; sourceTree = ""; }; - OBJ_353 /* BeGreaterThan.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeGreaterThan.swift; sourceTree = ""; }; - OBJ_354 /* BeGreaterThanOrEqualTo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeGreaterThanOrEqualTo.swift; sourceTree = ""; }; - OBJ_355 /* BeIdenticalTo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeIdenticalTo.swift; sourceTree = ""; }; - OBJ_356 /* BeLessThan.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeLessThan.swift; sourceTree = ""; }; - OBJ_357 /* BeLessThanOrEqual.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeLessThanOrEqual.swift; sourceTree = ""; }; - OBJ_358 /* BeLogical.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeLogical.swift; sourceTree = ""; }; - OBJ_359 /* BeNil.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeNil.swift; sourceTree = ""; }; - OBJ_360 /* BeVoid.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeVoid.swift; sourceTree = ""; }; - OBJ_361 /* BeginWith.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeginWith.swift; sourceTree = ""; }; - OBJ_362 /* Contain.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Contain.swift; sourceTree = ""; }; - OBJ_363 /* ContainElementSatisfying.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContainElementSatisfying.swift; sourceTree = ""; }; - OBJ_364 /* ElementsEqual.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ElementsEqual.swift; sourceTree = ""; }; - OBJ_365 /* EndWith.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EndWith.swift; sourceTree = ""; }; - OBJ_366 /* Equal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Equal.swift; sourceTree = ""; }; - OBJ_367 /* HaveCount.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HaveCount.swift; sourceTree = ""; }; - OBJ_368 /* Match.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Match.swift; sourceTree = ""; }; - OBJ_369 /* MatchError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MatchError.swift; sourceTree = ""; }; - OBJ_370 /* MatcherFunc.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MatcherFunc.swift; sourceTree = ""; }; - OBJ_371 /* MatcherProtocols.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MatcherProtocols.swift; sourceTree = ""; }; - OBJ_372 /* PostNotification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostNotification.swift; sourceTree = ""; }; - OBJ_373 /* Predicate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Predicate.swift; sourceTree = ""; }; - OBJ_374 /* RaisesException.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RaisesException.swift; sourceTree = ""; }; - OBJ_375 /* SatisfyAllOf.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SatisfyAllOf.swift; sourceTree = ""; }; - OBJ_376 /* SatisfyAnyOf.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SatisfyAnyOf.swift; sourceTree = ""; }; - OBJ_377 /* ThrowAssertion.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThrowAssertion.swift; sourceTree = ""; }; - OBJ_378 /* ThrowError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThrowError.swift; sourceTree = ""; }; - OBJ_379 /* ToSucceed.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToSucceed.swift; sourceTree = ""; }; - OBJ_381 /* Await.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Await.swift; sourceTree = ""; }; - OBJ_382 /* Errors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = ""; }; - OBJ_383 /* Functional.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Functional.swift; sourceTree = ""; }; - OBJ_384 /* SourceLocation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SourceLocation.swift; sourceTree = ""; }; - OBJ_385 /* Stringers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Stringers.swift; sourceTree = ""; }; - OBJ_387 /* CwlCatchException.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CwlCatchException.swift; sourceTree = ""; }; - OBJ_389 /* CwlCatchException.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CwlCatchException.m; sourceTree = ""; }; - OBJ_391 /* CwlCatchException.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CwlCatchException.h; sourceTree = ""; }; - OBJ_392 /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; name = module.modulemap; path = "${SOURCE_ROOT}/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport/module.modulemap"; sourceTree = ""; }; - OBJ_394 /* CwlMachBadInstructionHandler.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CwlMachBadInstructionHandler.m; sourceTree = ""; }; - OBJ_395 /* mach_excServer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = mach_excServer.c; sourceTree = ""; }; - OBJ_397 /* CwlMachBadInstructionHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CwlMachBadInstructionHandler.h; sourceTree = ""; }; - OBJ_398 /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; name = module.modulemap; path = "${SOURCE_ROOT}/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlMachBadInstructionHandler/module.modulemap"; sourceTree = ""; }; - OBJ_400 /* CwlBadInstructionException.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CwlBadInstructionException.swift; sourceTree = ""; }; - OBJ_401 /* CwlCatchBadInstruction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CwlCatchBadInstruction.swift; sourceTree = ""; }; - OBJ_402 /* CwlDarwinDefinitions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CwlDarwinDefinitions.swift; sourceTree = ""; }; - OBJ_403 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; name = Package.swift; path = "${SOURCE_ROOT}/.build/checkouts/Nimble/Package.swift"; sourceTree = ""; }; + "CwlCatchException::CwlCatchException::Product" /* CwlCatchException.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CwlCatchException.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + "CwlCatchException::CwlCatchExceptionSupport::Product" /* CwlCatchExceptionSupport.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CwlCatchExceptionSupport.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + "CwlPreconditionTesting::CwlMachBadInstructionHandler::Product" /* CwlMachBadInstructionHandler.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CwlMachBadInstructionHandler.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + "CwlPreconditionTesting::CwlPosixPreconditionTesting::Product" /* CwlPosixPreconditionTesting.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CwlPosixPreconditionTesting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + "CwlPreconditionTesting::CwlPreconditionTesting::Product" /* CwlPreconditionTesting.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CwlPreconditionTesting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D4B7EA1D25A1BB67007D09C7 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/MacOSX.platform/Developer/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; + "Nimble::Nimble::Product" /* Nimble.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + OBJ_10 /* PDFExternalDocument.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFExternalDocument.swift; sourceTree = ""; }; + OBJ_101 /* PDFContextGraphics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFContextGraphics.swift; sourceTree = ""; }; + OBJ_102 /* PDFGraphics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGraphics.swift; sourceTree = ""; }; + OBJ_103 /* PDFLineObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineObject.swift; sourceTree = ""; }; + OBJ_104 /* PDFLineSeparatorObject+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLineSeparatorObject+Equatable.swift"; sourceTree = ""; }; + OBJ_105 /* PDFLineSeparatorObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineSeparatorObject.swift; sourceTree = ""; }; + OBJ_106 /* PDFRectangleObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFRectangleObject.swift; sourceTree = ""; }; + OBJ_107 /* UIColor+CloseToEqual.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+CloseToEqual.swift"; sourceTree = ""; }; + OBJ_108 /* UIColor+Hex.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+Hex.swift"; sourceTree = ""; }; + OBJ_109 /* UIImage+Pixel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+Pixel.swift"; sourceTree = ""; }; + OBJ_111 /* PDFGroupObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGroupObject.swift; sourceTree = ""; }; + OBJ_113 /* PDFImageObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImageObject.swift; sourceTree = ""; }; + OBJ_114 /* PDFImageRowObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImageRowObject.swift; sourceTree = ""; }; + OBJ_116 /* PDFColumnLayoutState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFColumnLayoutState.swift; sourceTree = ""; }; + OBJ_117 /* PDFIndentationObject+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFIndentationObject+Equatable.swift"; sourceTree = ""; }; + OBJ_118 /* PDFIndentationObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFIndentationObject.swift; sourceTree = ""; }; + OBJ_119 /* PDFLayout+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLayout+Equatable.swift"; sourceTree = ""; }; + OBJ_12 /* PDFBezierPath+Copying.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFBezierPath+Copying.swift"; sourceTree = ""; }; + OBJ_120 /* PDFLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLayout.swift; sourceTree = ""; }; + OBJ_121 /* PDFLayoutHeights+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLayoutHeights+Equatable.swift"; sourceTree = ""; }; + OBJ_122 /* PDFLayoutHeights.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLayoutHeights.swift; sourceTree = ""; }; + OBJ_123 /* PDFLayoutIndentations+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLayoutIndentations+Equatable.swift"; sourceTree = ""; }; + OBJ_124 /* PDFLayoutIndentations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLayoutIndentations.swift; sourceTree = ""; }; + OBJ_125 /* PDFMarginObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFMarginObject.swift; sourceTree = ""; }; + OBJ_126 /* PDFOffsetObject+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFOffsetObject+Equatable.swift"; sourceTree = ""; }; + OBJ_127 /* PDFOffsetObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFOffsetObject.swift; sourceTree = ""; }; + OBJ_128 /* PDFPageBreakObject+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageBreakObject+Equatable.swift"; sourceTree = ""; }; + OBJ_129 /* PDFPageBreakObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPageBreakObject.swift; sourceTree = ""; }; + OBJ_13 /* PDFBezierPath.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFBezierPath.swift; sourceTree = ""; }; + OBJ_130 /* PDFPageLayout+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageLayout+Equatable.swift"; sourceTree = ""; }; + OBJ_131 /* PDFSectionColumnContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSectionColumnContainer.swift; sourceTree = ""; }; + OBJ_132 /* PDFSpaceObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSpaceObject.swift; sourceTree = ""; }; + OBJ_134 /* PDFListObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListObject.swift; sourceTree = ""; }; + OBJ_136 /* CGPoint+Math.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CGPoint+Math.swift"; sourceTree = ""; }; + OBJ_137 /* CGPoint+Null.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CGPoint+Null.swift"; sourceTree = ""; }; + OBJ_138 /* PDFGenerator+Debug.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Debug.swift"; sourceTree = ""; }; + OBJ_139 /* PDFGenerator+Layout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Layout.swift"; sourceTree = ""; }; + OBJ_14 /* PDFBezierPathVertex.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFBezierPathVertex.swift; sourceTree = ""; }; + OBJ_141 /* Int+RomanNumerals.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Int+RomanNumerals.swift"; sourceTree = ""; }; + OBJ_142 /* PDFPagination+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPagination+Equatable.swift"; sourceTree = ""; }; + OBJ_143 /* PDFPagination.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPagination.swift; sourceTree = ""; }; + OBJ_144 /* PDFPaginationClosure.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPaginationClosure.swift; sourceTree = ""; }; + OBJ_145 /* PDFPaginationStyle+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPaginationStyle+Equatable.swift"; sourceTree = ""; }; + OBJ_146 /* PDFPaginationStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPaginationStyle.swift; sourceTree = ""; }; + OBJ_148 /* PDFColumnWrapSectionObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFColumnWrapSectionObject.swift; sourceTree = ""; }; + OBJ_149 /* PDFSectionColumnObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSectionColumnObject.swift; sourceTree = ""; }; + OBJ_15 /* PDFDynamicGeometryShape.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFDynamicGeometryShape.swift; sourceTree = ""; }; + OBJ_150 /* PDFSectionObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSectionObject.swift; sourceTree = ""; }; + OBJ_152 /* PDFTableOfContentObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableOfContentObject.swift; sourceTree = ""; }; + OBJ_154 /* PDFTableCalculatedCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCalculatedCell.swift; sourceTree = ""; }; + OBJ_155 /* PDFTableMergeUtil.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableMergeUtil.swift; sourceTree = ""; }; + OBJ_156 /* PDFTableNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableNode.swift; sourceTree = ""; }; + OBJ_157 /* PDFTableObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableObject.swift; sourceTree = ""; }; + OBJ_158 /* PDFTableValidator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableValidator.swift; sourceTree = ""; }; + OBJ_16 /* PDFLineStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineStyle.swift; sourceTree = ""; }; + OBJ_160 /* PDFAttributedTextObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFAttributedTextObject.swift; sourceTree = ""; }; + OBJ_161 /* PDFFontObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFFontObject.swift; sourceTree = ""; }; + OBJ_162 /* PDFTextColorObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTextColorObject.swift; sourceTree = ""; }; + OBJ_165 /* PDFAttributableObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFAttributableObject.swift; sourceTree = ""; }; + OBJ_166 /* PDFObjectAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFObjectAttribute.swift; sourceTree = ""; }; + OBJ_167 /* CustomStringConvertible+AutoDescribing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CustomStringConvertible+AutoDescribing.swift"; sourceTree = ""; }; + OBJ_168 /* FileManager+TemporaryFiles.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FileManager+TemporaryFiles.swift"; sourceTree = ""; }; + OBJ_169 /* PDFCalculations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFCalculations.swift; sourceTree = ""; }; + OBJ_17 /* PDFLineType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineType.swift; sourceTree = ""; }; + OBJ_170 /* PDFLocatedRenderObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLocatedRenderObject.swift; sourceTree = ""; }; + OBJ_171 /* PDFSlicedObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSlicedObject.swift; sourceTree = ""; }; + OBJ_172 /* Stack.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Stack.swift; sourceTree = ""; }; + OBJ_173 /* WeakRef.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WeakRef.swift; sourceTree = ""; }; + OBJ_179 /* PDFTableRowSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableRowSpec.swift; sourceTree = ""; }; + OBJ_180 /* PDFTable_RowSubscriptsSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTable_RowSubscriptsSpec.swift; sourceTree = ""; }; + OBJ_182 /* PDFGraphics_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGraphics_Spec.swift; sourceTree = ""; }; + OBJ_183 /* PDFLineSeparatorObject+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLineSeparatorObject+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_184 /* PDFLineSeparatorObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineSeparatorObject_Spec.swift; sourceTree = ""; }; + OBJ_185 /* PDFLineStyle_Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineStyle_Equatable_Spec.swift; sourceTree = ""; }; + OBJ_186 /* PDFLineStyle_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineStyle_Spec.swift; sourceTree = ""; }; + OBJ_187 /* PDFLineType_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineType_Spec.swift; sourceTree = ""; }; + OBJ_188 /* UIColor+Hex_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+Hex_Spec.swift"; sourceTree = ""; }; + OBJ_189 /* UIImage+CloseToEqual_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+CloseToEqual_Spec.swift"; sourceTree = ""; }; + OBJ_19 /* PDFGroup+Objects.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFGroup+Objects.swift"; sourceTree = ""; }; + OBJ_190 /* UIImage+Pixel_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+Pixel_Spec.swift"; sourceTree = ""; }; + OBJ_192 /* PDFImageSizeFit_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImageSizeFit_Spec.swift; sourceTree = ""; }; + OBJ_193 /* PDFImage_Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImage_Equatable_Spec.swift; sourceTree = ""; }; + OBJ_194 /* PDFImage_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImage_Spec.swift; sourceTree = ""; }; + OBJ_197 /* PDFTableMergeUtil_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableMergeUtil_Spec.swift; sourceTree = ""; }; + OBJ_198 /* PDFTableObjectSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableObjectSpec.swift; sourceTree = ""; }; + OBJ_20 /* PDFGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGroup.swift; sourceTree = ""; }; + OBJ_200 /* PDFContainer_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFContainer_Spec.swift; sourceTree = ""; }; + OBJ_201 /* PDFIndentationObject_Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFIndentationObject_Equatable_Spec.swift; sourceTree = ""; }; + OBJ_202 /* PDFIndentationObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFIndentationObject_Spec.swift; sourceTree = ""; }; + OBJ_203 /* PDFLayout+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLayout+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_204 /* PDFLayoutHeights+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLayoutHeights+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_205 /* PDFLayoutHeights_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLayoutHeights_Spec.swift; sourceTree = ""; }; + OBJ_206 /* PDFLayoutIndentations+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLayoutIndentations+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_207 /* PDFLayoutIndentations_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLayoutIndentations_Spec.swift; sourceTree = ""; }; + OBJ_208 /* PDFLayout_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLayout_Spec.swift; sourceTree = ""; }; + OBJ_209 /* PDFOffsetObject+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFOffsetObject+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_21 /* PDFGroupContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGroupContainer.swift; sourceTree = ""; }; + OBJ_210 /* PDFOffsetObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFOffsetObject_Spec.swift; sourceTree = ""; }; + OBJ_211 /* PDFPageBreakObject+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageBreakObject+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_212 /* PDFPageBreakObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPageBreakObject_Spec.swift; sourceTree = ""; }; + OBJ_213 /* PDFPageLayout+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageLayout+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_214 /* PDFPageLayout_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPageLayout_Spec.swift; sourceTree = ""; }; + OBJ_215 /* PDFSpaceObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSpaceObject_Spec.swift; sourceTree = ""; }; + OBJ_217 /* PDFList+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFList+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_218 /* PDFListItemObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListItemObject_Spec.swift; sourceTree = ""; }; + OBJ_219 /* PDFListItemSymbol_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListItemSymbol_Spec.swift; sourceTree = ""; }; + OBJ_22 /* PDFMasterGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFMasterGroup.swift; sourceTree = ""; }; + OBJ_220 /* PDFListItem_Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListItem_Equatable_Spec.swift; sourceTree = ""; }; + OBJ_221 /* PDFListItem_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListItem_Spec.swift; sourceTree = ""; }; + OBJ_222 /* PDFList_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFList_Spec.swift; sourceTree = ""; }; + OBJ_224 /* CGPoint+Math_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CGPoint+Math_Spec.swift"; sourceTree = ""; }; + OBJ_226 /* PDFInfo+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFInfo+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_227 /* PDFInfo_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFInfo_Spec.swift; sourceTree = ""; }; + OBJ_228 /* PDFDocument+Objects_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFDocument+Objects_Spec.swift"; sourceTree = ""; }; + OBJ_229 /* PDFDocument_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFDocument_Spec.swift; sourceTree = ""; }; + OBJ_230 /* PDFGenerator+Debug_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Debug_Spec.swift"; sourceTree = ""; }; + OBJ_231 /* PDFGenerator+Generation_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Generation_Spec.swift"; sourceTree = ""; }; + OBJ_232 /* PDFGenerator+Layout_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Layout_Spec.swift"; sourceTree = ""; }; + OBJ_233 /* PDFGenerator_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGenerator_Spec.swift; sourceTree = ""; }; + OBJ_235 /* PDFPageFormat+Layout_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageFormat+Layout_Spec.swift"; sourceTree = ""; }; + OBJ_236 /* PDFPageFormat+SizeConstants_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageFormat+SizeConstants_Spec.swift"; sourceTree = ""; }; + OBJ_237 /* PDFPageFormat_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPageFormat_Spec.swift; sourceTree = ""; }; + OBJ_239 /* Int+RomanNumerals_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Int+RomanNumerals_Spec.swift"; sourceTree = ""; }; + OBJ_24 /* PDFImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImage.swift; sourceTree = ""; }; + OBJ_240 /* PDFPaginationStyle+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPaginationStyle+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_241 /* PDFPaginationStyle_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPaginationStyle_Spec.swift; sourceTree = ""; }; + OBJ_242 /* PDFPagination_Closure_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPagination_Closure_Spec.swift; sourceTree = ""; }; + OBJ_243 /* PDFPagination_Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPagination_Equatable_Spec.swift; sourceTree = ""; }; + OBJ_244 /* PDFPagination_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPagination_Spec.swift; sourceTree = ""; }; + OBJ_246 /* PDFTable+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTable+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_247 /* PDFTableCell+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableCell+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_248 /* PDFTableCellAlignment_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellAlignment_Spec.swift; sourceTree = ""; }; + OBJ_249 /* PDFTableCellBorders+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableCellBorders+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_25 /* PDFImageOptions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImageOptions.swift; sourceTree = ""; }; + OBJ_250 /* PDFTableCellBorders_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellBorders_Spec.swift; sourceTree = ""; }; + OBJ_251 /* PDFTableCellPosition+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableCellPosition+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_252 /* PDFTableCellPosition_Hashable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellPosition_Hashable_Spec.swift; sourceTree = ""; }; + OBJ_253 /* PDFTableCellPosition_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellPosition_Spec.swift; sourceTree = ""; }; + OBJ_254 /* PDFTableCellStyle+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableCellStyle+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_255 /* PDFTableCellStyle_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellStyle_Spec.swift; sourceTree = ""; }; + OBJ_256 /* PDFTableCell_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCell_Spec.swift; sourceTree = ""; }; + OBJ_257 /* PDFTableContent+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableContent+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_258 /* PDFTableContent_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableContent_Spec.swift; sourceTree = ""; }; + OBJ_259 /* PDFTableStyle+Defaults_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableStyle+Defaults_Spec.swift"; sourceTree = ""; }; + OBJ_26 /* PDFImageSizeFit.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImageSizeFit.swift; sourceTree = ""; }; + OBJ_260 /* PDFTableStyle+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableStyle+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_261 /* PDFTableStyle_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableStyle_Spec.swift; sourceTree = ""; }; + OBJ_262 /* PDFTableValidator_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableValidator_Spec.swift; sourceTree = ""; }; + OBJ_263 /* PDFTable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTable_Spec.swift; sourceTree = ""; }; + OBJ_265 /* PDFAttributedText+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFAttributedText+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_266 /* PDFAttributedTextObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFAttributedTextObject_Spec.swift; sourceTree = ""; }; + OBJ_267 /* PDFAttributedText_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFAttributedText_Spec.swift; sourceTree = ""; }; + OBJ_268 /* PDFFontObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFFontObject_Spec.swift; sourceTree = ""; }; + OBJ_269 /* PDFSimpleText+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFSimpleText+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_270 /* PDFSimpleText_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSimpleText_Spec.swift; sourceTree = ""; }; + OBJ_271 /* PDFTextColorObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTextColorObject_Spec.swift; sourceTree = ""; }; + OBJ_272 /* PDFText_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFText_Spec.swift; sourceTree = ""; }; + OBJ_274 /* PDFCalculations_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFCalculations_Spec.swift; sourceTree = ""; }; + OBJ_275 /* PDFError_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFError_Spec.swift; sourceTree = ""; }; + OBJ_276 /* PDFObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFObject_Spec.swift; sourceTree = ""; }; + OBJ_28 /* PDFContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFContainer.swift; sourceTree = ""; }; + OBJ_281 /* AdapterProtocols.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdapterProtocols.swift; sourceTree = ""; }; + OBJ_282 /* AssertionDispatcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AssertionDispatcher.swift; sourceTree = ""; }; + OBJ_283 /* AssertionRecorder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AssertionRecorder.swift; sourceTree = ""; }; + OBJ_284 /* NMBExpectation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NMBExpectation.swift; sourceTree = ""; }; + OBJ_285 /* NMBObjCMatcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NMBObjCMatcher.swift; sourceTree = ""; }; + OBJ_286 /* NimbleEnvironment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NimbleEnvironment.swift; sourceTree = ""; }; + OBJ_287 /* NimbleXCTestHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NimbleXCTestHandler.swift; sourceTree = ""; }; + OBJ_289 /* ExceptionCapture.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExceptionCapture.swift; sourceTree = ""; }; + OBJ_29 /* PDFPageLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPageLayout.swift; sourceTree = ""; }; + OBJ_290 /* DSL+Wait.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DSL+Wait.swift"; sourceTree = ""; }; + OBJ_291 /* DSL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DSL.swift; sourceTree = ""; }; + OBJ_292 /* Expectation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Expectation.swift; sourceTree = ""; }; + OBJ_293 /* ExpectationMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpectationMessage.swift; sourceTree = ""; }; + OBJ_294 /* Expression.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Expression.swift; sourceTree = ""; }; + OBJ_295 /* FailureMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FailureMessage.swift; sourceTree = ""; }; + OBJ_297 /* AllPass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AllPass.swift; sourceTree = ""; }; + OBJ_298 /* Async.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Async.swift; sourceTree = ""; }; + OBJ_299 /* BeAKindOf.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeAKindOf.swift; sourceTree = ""; }; + OBJ_300 /* BeAnInstanceOf.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeAnInstanceOf.swift; sourceTree = ""; }; + OBJ_301 /* BeCloseTo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeCloseTo.swift; sourceTree = ""; }; + OBJ_302 /* BeEmpty.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeEmpty.swift; sourceTree = ""; }; + OBJ_303 /* BeGreaterThan.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeGreaterThan.swift; sourceTree = ""; }; + OBJ_304 /* BeGreaterThanOrEqualTo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeGreaterThanOrEqualTo.swift; sourceTree = ""; }; + OBJ_305 /* BeIdenticalTo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeIdenticalTo.swift; sourceTree = ""; }; + OBJ_306 /* BeLessThan.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeLessThan.swift; sourceTree = ""; }; + OBJ_307 /* BeLessThanOrEqual.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeLessThanOrEqual.swift; sourceTree = ""; }; + OBJ_308 /* BeLogical.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeLogical.swift; sourceTree = ""; }; + OBJ_309 /* BeNil.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeNil.swift; sourceTree = ""; }; + OBJ_31 /* PDFList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFList.swift; sourceTree = ""; }; + OBJ_310 /* BeVoid.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeVoid.swift; sourceTree = ""; }; + OBJ_311 /* BeginWith.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeginWith.swift; sourceTree = ""; }; + OBJ_312 /* BeginWithPrefix.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeginWithPrefix.swift; sourceTree = ""; }; + OBJ_313 /* Contain.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Contain.swift; sourceTree = ""; }; + OBJ_314 /* ContainElementSatisfying.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContainElementSatisfying.swift; sourceTree = ""; }; + OBJ_315 /* ElementsEqual.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ElementsEqual.swift; sourceTree = ""; }; + OBJ_316 /* EndWith.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EndWith.swift; sourceTree = ""; }; + OBJ_317 /* Equal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Equal.swift; sourceTree = ""; }; + OBJ_318 /* HaveCount.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HaveCount.swift; sourceTree = ""; }; + OBJ_319 /* Match.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Match.swift; sourceTree = ""; }; + OBJ_32 /* PDFListItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListItem.swift; sourceTree = ""; }; + OBJ_320 /* MatchError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MatchError.swift; sourceTree = ""; }; + OBJ_321 /* MatcherFunc.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MatcherFunc.swift; sourceTree = ""; }; + OBJ_322 /* MatcherProtocols.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MatcherProtocols.swift; sourceTree = ""; }; + OBJ_323 /* PostNotification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostNotification.swift; sourceTree = ""; }; + OBJ_324 /* Predicate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Predicate.swift; sourceTree = ""; }; + OBJ_325 /* RaisesException.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RaisesException.swift; sourceTree = ""; }; + OBJ_326 /* SatisfyAllOf.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SatisfyAllOf.swift; sourceTree = ""; }; + OBJ_327 /* SatisfyAnyOf.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SatisfyAnyOf.swift; sourceTree = ""; }; + OBJ_328 /* ThrowAssertion.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThrowAssertion.swift; sourceTree = ""; }; + OBJ_329 /* ThrowError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThrowError.swift; sourceTree = ""; }; + OBJ_33 /* PDFListItemSymbol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListItemSymbol.swift; sourceTree = ""; }; + OBJ_330 /* ToSucceed.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToSucceed.swift; sourceTree = ""; }; + OBJ_332 /* Await.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Await.swift; sourceTree = ""; }; + OBJ_333 /* DispatchTimeInterval.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DispatchTimeInterval.swift; sourceTree = ""; }; + OBJ_334 /* Errors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = ""; }; + OBJ_335 /* SourceLocation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SourceLocation.swift; sourceTree = ""; }; + OBJ_336 /* Stringers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Stringers.swift; sourceTree = ""; }; + OBJ_337 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; name = Package.swift; path = .build/checkouts/Nimble/Package.swift; sourceTree = SOURCE_ROOT; }; + OBJ_340 /* CwlMachBadInstructionHandler.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CwlMachBadInstructionHandler.m; sourceTree = ""; }; + OBJ_341 /* mach_excServer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = mach_excServer.c; sourceTree = ""; }; + OBJ_343 /* CwlMachBadInstructionHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CwlMachBadInstructionHandler.h; sourceTree = ""; }; + OBJ_345 /* CwlCatchBadInstructionPosix.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CwlCatchBadInstructionPosix.swift; sourceTree = ""; }; + OBJ_347 /* CwlBadInstructionException.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CwlBadInstructionException.swift; sourceTree = ""; }; + OBJ_348 /* CwlCatchBadInstruction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CwlCatchBadInstruction.swift; sourceTree = ""; }; + OBJ_349 /* CwlDarwinDefinitions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CwlDarwinDefinitions.swift; sourceTree = ""; }; + OBJ_35 /* PDFInfo+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFInfo+Equatable.swift"; sourceTree = ""; }; + OBJ_350 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; name = Package.swift; path = .build/checkouts/CwlPreconditionTesting/Package.swift; sourceTree = SOURCE_ROOT; }; + OBJ_353 /* CwlCatchException.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CwlCatchException.swift; sourceTree = ""; }; + OBJ_355 /* CwlCatchException.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CwlCatchException.m; sourceTree = ""; }; + OBJ_357 /* CwlCatchException.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CwlCatchException.h; sourceTree = ""; }; + OBJ_358 /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; name = module.modulemap; path = TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap; sourceTree = SOURCE_ROOT; }; + OBJ_359 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; name = Package.swift; path = .build/checkouts/CwlCatchException/Package.swift; sourceTree = SOURCE_ROOT; }; + OBJ_36 /* PDFInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFInfo.swift; sourceTree = ""; }; + OBJ_362 /* Behavior.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Behavior.swift; sourceTree = ""; }; + OBJ_363 /* Callsite.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Callsite.swift; sourceTree = ""; }; + OBJ_365 /* Configuration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Configuration.swift; sourceTree = ""; }; + OBJ_366 /* QuickConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickConfiguration.swift; sourceTree = ""; }; + OBJ_368 /* DSL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DSL.swift; sourceTree = ""; }; + OBJ_369 /* World+DSL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "World+DSL.swift"; sourceTree = ""; }; + OBJ_37 /* PDFDocument.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFDocument.swift; sourceTree = ""; }; + OBJ_370 /* ErrorUtility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ErrorUtility.swift; sourceTree = ""; }; + OBJ_371 /* Example.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Example.swift; sourceTree = ""; }; + OBJ_372 /* ExampleGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExampleGroup.swift; sourceTree = ""; }; + OBJ_373 /* ExampleMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExampleMetadata.swift; sourceTree = ""; }; + OBJ_374 /* Filter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Filter.swift; sourceTree = ""; }; + OBJ_376 /* Closures.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Closures.swift; sourceTree = ""; }; + OBJ_377 /* ExampleHooks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExampleHooks.swift; sourceTree = ""; }; + OBJ_378 /* HooksPhase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HooksPhase.swift; sourceTree = ""; }; + OBJ_379 /* SuiteHooks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SuiteHooks.swift; sourceTree = ""; }; + OBJ_38 /* PDFGenerator+Generation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Generation.swift"; sourceTree = ""; }; + OBJ_380 /* NSBundle+CurrentTestBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSBundle+CurrentTestBundle.swift"; sourceTree = ""; }; + OBJ_381 /* QuickMain.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickMain.swift; sourceTree = ""; }; + OBJ_382 /* QuickSelectedTestSuiteBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickSelectedTestSuiteBuilder.swift; sourceTree = ""; }; + OBJ_383 /* QuickSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickSpec.swift; sourceTree = ""; }; + OBJ_384 /* QuickTestObservation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickTestObservation.swift; sourceTree = ""; }; + OBJ_385 /* QuickTestSuite.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickTestSuite.swift; sourceTree = ""; }; + OBJ_386 /* String+C99ExtendedIdentifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+C99ExtendedIdentifier.swift"; sourceTree = ""; }; + OBJ_387 /* URL+FileName.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "URL+FileName.swift"; sourceTree = ""; }; + OBJ_388 /* World.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = World.swift; sourceTree = ""; }; + OBJ_39 /* PDFGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGenerator.swift; sourceTree = ""; }; + OBJ_390 /* QuickSpecBase.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QuickSpecBase.m; sourceTree = ""; }; + OBJ_392 /* QuickSpecBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QuickSpecBase.h; sourceTree = ""; }; + OBJ_393 /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; name = module.modulemap; path = TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap; sourceTree = SOURCE_ROOT; }; + OBJ_394 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; name = Package.swift; path = .build/checkouts/Quick/Package.swift; sourceTree = SOURCE_ROOT; }; + OBJ_40 /* PDFGeneratorProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGeneratorProtocol.swift; sourceTree = ""; }; + OBJ_406 /* Example macOS */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "Example macOS"; sourceTree = SOURCE_ROOT; }; + OBJ_407 /* resources */ = {isa = PBXFileReference; lastKnownFileType = folder; path = resources; sourceTree = SOURCE_ROOT; }; + OBJ_408 /* Shared iOS */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "Shared iOS"; sourceTree = SOURCE_ROOT; }; + OBJ_409 /* Example iOS-SwiftPM */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "Example iOS-SwiftPM"; sourceTree = SOURCE_ROOT; }; + OBJ_41 /* PDFMultiDocumentGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFMultiDocumentGenerator.swift; sourceTree = ""; }; + OBJ_410 /* Shared */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Shared; sourceTree = SOURCE_ROOT; }; + OBJ_411 /* Documentation */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Documentation; sourceTree = SOURCE_ROOT; }; + OBJ_412 /* build */ = {isa = PBXFileReference; lastKnownFileType = folder; path = build; sourceTree = SOURCE_ROOT; }; + OBJ_413 /* Example iOS-Carthage */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "Example iOS-Carthage"; sourceTree = SOURCE_ROOT; }; + OBJ_414 /* Example iOS-Cocoapods */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "Example iOS-Cocoapods"; sourceTree = SOURCE_ROOT; }; + OBJ_415 /* codecov.yml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = codecov.yml; sourceTree = ""; }; + OBJ_416 /* TPPDF.podspec */ = {isa = PBXFileReference; lastKnownFileType = text; path = TPPDF.podspec; sourceTree = ""; }; + OBJ_417 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; + OBJ_418 /* CODE_OF_CONDUCT.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = CODE_OF_CONDUCT.md; sourceTree = ""; }; + OBJ_419 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + OBJ_420 /* Gemfile */ = {isa = PBXFileReference; lastKnownFileType = text; path = Gemfile; sourceTree = ""; }; + OBJ_421 /* Gemfile.lock */ = {isa = PBXFileReference; lastKnownFileType = text; path = Gemfile.lock; sourceTree = ""; }; + OBJ_422 /* CHANGELOG.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = CHANGELOG.md; sourceTree = ""; }; + OBJ_43 /* PDFPageFormat+Layout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageFormat+Layout.swift"; sourceTree = ""; }; + OBJ_44 /* PDFPageFormat+SizeConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageFormat+SizeConstants.swift"; sourceTree = ""; }; + OBJ_45 /* PDFPageFormat.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPageFormat.swift; sourceTree = ""; }; + OBJ_47 /* PDFSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSection.swift; sourceTree = ""; }; + OBJ_48 /* PDFSectionColumn.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSectionColumn.swift; sourceTree = ""; }; + OBJ_50 /* PDFTableOfContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableOfContent.swift; sourceTree = ""; }; + OBJ_53 /* NSAttributedString+PDFTableContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSAttributedString+PDFTableContent.swift"; sourceTree = ""; }; + OBJ_54 /* Number+PDFTableContentable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Number+PDFTableContentable.swift"; sourceTree = ""; }; + OBJ_55 /* PDFTableContent+ContentType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableContent+ContentType.swift"; sourceTree = ""; }; + OBJ_56 /* PDFTableContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableContent.swift; sourceTree = ""; }; + OBJ_57 /* PDFTableContentable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableContentable.swift; sourceTree = ""; }; + OBJ_58 /* String+PDFTableContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+PDFTableContent.swift"; sourceTree = ""; }; + OBJ_59 /* UIImage+PDFTableContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+PDFTableContent.swift"; sourceTree = ""; }; OBJ_6 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; path = Package.swift; sourceTree = ""; }; - "Quick::Quick::Product" /* Quick.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Quick.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - "Quick::QuickSpecBase::Product" /* QuickSpecBase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = QuickSpecBase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - "TPPDF::TPPDF::Product" /* TPPDF.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TPPDF.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - "TPPDF::TPPDFTests::Product" /* TPPDFTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; path = TPPDFTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + OBJ_60 /* PDFTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTable.swift; sourceTree = ""; }; + OBJ_61 /* PDFTableCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCell.swift; sourceTree = ""; }; + OBJ_62 /* PDFTableCellAlignment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellAlignment.swift; sourceTree = ""; }; + OBJ_63 /* PDFTableCellPosition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellPosition.swift; sourceTree = ""; }; + OBJ_65 /* PDFTable+CellSubscripts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTable+CellSubscripts.swift"; sourceTree = ""; }; + OBJ_66 /* PDFTable+ColumnSubscripts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTable+ColumnSubscripts.swift"; sourceTree = ""; }; + OBJ_67 /* PDFTable+RowSubscripts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTable+RowSubscripts.swift"; sourceTree = ""; }; + OBJ_68 /* PDFTable+SectionSubscripts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTable+SectionSubscripts.swift"; sourceTree = ""; }; + OBJ_69 /* PDFTableColumn.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableColumn.swift; sourceTree = ""; }; + OBJ_70 /* PDFTableColumns.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableColumns.swift; sourceTree = ""; }; + OBJ_71 /* PDFTableMergeable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableMergeable.swift; sourceTree = ""; }; + OBJ_72 /* PDFTableRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableRow.swift; sourceTree = ""; }; + OBJ_73 /* PDFTableRows.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableRows.swift; sourceTree = ""; }; + OBJ_74 /* PDFTableSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableSection.swift; sourceTree = ""; }; + OBJ_76 /* PDFTableCellBorders.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellBorders.swift; sourceTree = ""; }; + OBJ_77 /* PDFTableCellPosition+Equatable-Hashable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableCellPosition+Equatable-Hashable.swift"; sourceTree = ""; }; + OBJ_78 /* PDFTableCellStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellStyle.swift; sourceTree = ""; }; + OBJ_79 /* PDFTableStyle+Defaults.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableStyle+Defaults.swift"; sourceTree = ""; }; + OBJ_80 /* PDFTableStyle+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableStyle+Equatable.swift"; sourceTree = ""; }; + OBJ_81 /* PDFTableStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableStyle.swift; sourceTree = ""; }; + OBJ_83 /* PDFAttributedText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFAttributedText.swift; sourceTree = ""; }; + OBJ_84 /* PDFSimpleText+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFSimpleText+Equatable.swift"; sourceTree = ""; }; + OBJ_85 /* PDFSimpleText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSimpleText.swift; sourceTree = ""; }; + OBJ_86 /* PDFText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFText.swift; sourceTree = ""; }; + OBJ_87 /* PDFTextStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTextStyle.swift; sourceTree = ""; }; + OBJ_89 /* CrossPlattformGraphics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CrossPlattformGraphics.swift; sourceTree = ""; }; + OBJ_90 /* PDFConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFConstants.swift; sourceTree = ""; }; + OBJ_91 /* PDFCopy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFCopy.swift; sourceTree = ""; }; + OBJ_92 /* PDFDocumentObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFDocumentObject.swift; sourceTree = ""; }; + OBJ_93 /* PDFError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFError.swift; sourceTree = ""; }; + OBJ_94 /* PDFRenderObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFRenderObject.swift; sourceTree = ""; }; + OBJ_95 /* PDFTaggableObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTaggableObject.swift; sourceTree = ""; }; + OBJ_98 /* PDFExternalDocumentObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFExternalDocumentObject.swift; sourceTree = ""; }; + OBJ_99 /* PDFExternalPageObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFExternalPageObject.swift; sourceTree = ""; }; + "Quick::Quick::Product" /* Quick.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Quick.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + "Quick::QuickObjCRuntime::Product" /* QuickObjCRuntime.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = QuickObjCRuntime.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + "TPPDF::TPPDF::Product" /* TPPDF.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = TPPDF.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + "TPPDF::TPPDFTests::Product" /* TPPDFTests.xctest */ = {isa = PBXFileReference; lastKnownFileType = file; path = TPPDFTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - OBJ_471 /* Frameworks */ = { + OBJ_429 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 0; files = ( - OBJ_472 /* NimbleCwlPreconditionTesting.framework in Frameworks */, - OBJ_473 /* NimbleCwlCatchException.framework in Frameworks */, - OBJ_474 /* NimbleCwlCatchExceptionSupport.framework in Frameworks */, - OBJ_475 /* NimbleCwlMachBadInstructionHandler.framework in Frameworks */, + OBJ_430 /* CwlCatchExceptionSupport.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_489 /* Frameworks */ = { + OBJ_444 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 0; files = ( - OBJ_490 /* NimbleCwlCatchExceptionSupport.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_497 /* Frameworks */ = { + OBJ_454 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 0; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_504 /* Frameworks */ = { + OBJ_461 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 0; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_512 /* Frameworks */ = { + OBJ_470 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 0; files = ( - OBJ_513 /* NimbleCwlCatchException.framework in Frameworks */, - OBJ_514 /* NimbleCwlCatchExceptionSupport.framework in Frameworks */, - OBJ_515 /* NimbleCwlMachBadInstructionHandler.framework in Frameworks */, + OBJ_471 /* CwlCatchException.framework in Frameworks */, + OBJ_472 /* CwlCatchExceptionSupport.framework in Frameworks */, + OBJ_473 /* CwlMachBadInstructionHandler.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_553 /* Frameworks */ = { + OBJ_541 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 0; files = ( - OBJ_554 /* QuickSpecBase.framework in Frameworks */, + OBJ_542 /* CwlPosixPreconditionTesting.framework in Frameworks */, + OBJ_543 /* CwlPreconditionTesting.framework in Frameworks */, + OBJ_544 /* CwlCatchException.framework in Frameworks */, + OBJ_545 /* CwlCatchExceptionSupport.framework in Frameworks */, + OBJ_546 /* CwlMachBadInstructionHandler.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_570 /* Frameworks */ = { + OBJ_587 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 0; files = ( + OBJ_588 /* QuickObjCRuntime.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_729 /* Frameworks */ = { + OBJ_596 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 0; files = ( + D4B7EA1E25A1BB67007D09C7 /* XCTest.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_830 /* Frameworks */ = { + OBJ_742 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 0; files = ( - OBJ_831 /* Nimble.framework in Frameworks */, - OBJ_832 /* NimbleCwlPreconditionTesting.framework in Frameworks */, - OBJ_833 /* NimbleCwlCatchException.framework in Frameworks */, - OBJ_834 /* NimbleCwlCatchExceptionSupport.framework in Frameworks */, - OBJ_835 /* NimbleCwlMachBadInstructionHandler.framework in Frameworks */, - OBJ_836 /* Quick.framework in Frameworks */, - OBJ_837 /* QuickSpecBase.framework in Frameworks */, - OBJ_838 /* TPPDF.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + OBJ_844 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 0; + files = ( + OBJ_845 /* Nimble.framework in Frameworks */, + OBJ_846 /* CwlPosixPreconditionTesting.framework in Frameworks */, + OBJ_847 /* CwlPreconditionTesting.framework in Frameworks */, + OBJ_848 /* CwlCatchException.framework in Frameworks */, + OBJ_849 /* CwlCatchExceptionSupport.framework in Frameworks */, + OBJ_850 /* CwlMachBadInstructionHandler.framework in Frameworks */, + OBJ_851 /* Quick.framework in Frameworks */, + OBJ_852 /* QuickObjCRuntime.framework in Frameworks */, + OBJ_853 /* TPPDF.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - D4803BE624703E5300DDA039 /* Internal */ = { - isa = PBXGroup; - children = ( - D4803BFB24703E5300DDA039 /* PDFGenerator+Debug.swift */, - D4803C1824703E5300DDA039 /* PDFGenerator+Layout.swift */, - D4803C3424703E5300DDA039 /* External */, - D4803C1924703E5300DDA039 /* Graphics */, - D4803BE724703E5300DDA039 /* Group */, - D4803BE924703E5300DDA039 /* Image */, - D4803C2224703E5300DDA039 /* Layout */, - D4803C1424703E5300DDA039 /* List */, - D4803BFC24703E5300DDA039 /* Math */, - D4803BFF24703E5300DDA039 /* Pagination */, - D4803BF724703E5300DDA039 /* Section */, - D4803C3724703E5300DDA039 /* Table */, - D4803C1624703E5300DDA039 /* Table Of Content */, - D4803C3D24703E5300DDA039 /* Text */, - D4803BEC24703E5300DDA039 /* Utils */, + D4B7EA1C25A1BB67007D09C7 /* Frameworks */ = { + isa = PBXGroup; + children = ( + D4B7EA1D25A1BB67007D09C7 /* XCTest.framework */, ); - path = Internal; + name = Frameworks; sourceTree = ""; }; - D4803BE724703E5300DDA039 /* Group */ = { + OBJ_100 /* Graphics */ = { isa = PBXGroup; children = ( - D4803BE824703E5300DDA039 /* PDFGroupObject.swift */, + OBJ_101 /* PDFContextGraphics.swift */, + OBJ_102 /* PDFGraphics.swift */, + OBJ_103 /* PDFLineObject.swift */, + OBJ_104 /* PDFLineSeparatorObject+Equatable.swift */, + OBJ_105 /* PDFLineSeparatorObject.swift */, + OBJ_106 /* PDFRectangleObject.swift */, + OBJ_107 /* UIColor+CloseToEqual.swift */, + OBJ_108 /* UIColor+Hex.swift */, + OBJ_109 /* UIImage+Pixel.swift */, ); - path = Group; + path = Graphics; sourceTree = ""; }; - D4803BE924703E5300DDA039 /* Image */ = { + OBJ_11 /* Graphics */ = { isa = PBXGroup; children = ( - D4803BEA24703E5300DDA039 /* PDFImageObject.swift */, - D4803BEB24703E5300DDA039 /* PDFImageRowObject.swift */, + OBJ_12 /* PDFBezierPath+Copying.swift */, + OBJ_13 /* PDFBezierPath.swift */, + OBJ_14 /* PDFBezierPathVertex.swift */, + OBJ_15 /* PDFDynamicGeometryShape.swift */, + OBJ_16 /* PDFLineStyle.swift */, + OBJ_17 /* PDFLineType.swift */, ); - path = Image; + path = Graphics; sourceTree = ""; }; - D4803BEC24703E5300DDA039 /* Utils */ = { + OBJ_110 /* Group */ = { isa = PBXGroup; children = ( - D494BA6D257ADF850017C407 /* PDFTaggableObject.swift */, - D4803BED24703E5300DDA039 /* PDFCalculations.swift */, - D4803BEE24703E5300DDA039 /* PDFSlicedObject.swift */, - D4803BEF24703E5300DDA039 /* CustomStringConvertible+AutoDescribing.swift */, - D4803BF024703E5300DDA039 /* Attributes */, - D4803BF324703E5300DDA039 /* PDFLocatedRenderObject.swift */, - D4803BF424703E5300DDA039 /* WeakRef.swift */, - D4803BF524703E5300DDA039 /* FileManager+TemporaryFiles.swift */, - D4803BF624703E5300DDA039 /* Stack.swift */, + OBJ_111 /* PDFGroupObject.swift */, ); - path = Utils; + path = Group; sourceTree = ""; }; - D4803BF024703E5300DDA039 /* Attributes */ = { + OBJ_112 /* Image */ = { isa = PBXGroup; children = ( - D4803BF124703E5300DDA039 /* PDFAttributableObject.swift */, - D4803BF224703E5300DDA039 /* PDFObjectAttribute.swift */, + OBJ_113 /* PDFImageObject.swift */, + OBJ_114 /* PDFImageRowObject.swift */, ); - path = Attributes; + path = Image; + sourceTree = ""; + }; + OBJ_115 /* Layout */ = { + isa = PBXGroup; + children = ( + OBJ_116 /* PDFColumnLayoutState.swift */, + OBJ_117 /* PDFIndentationObject+Equatable.swift */, + OBJ_118 /* PDFIndentationObject.swift */, + OBJ_119 /* PDFLayout+Equatable.swift */, + OBJ_120 /* PDFLayout.swift */, + OBJ_121 /* PDFLayoutHeights+Equatable.swift */, + OBJ_122 /* PDFLayoutHeights.swift */, + OBJ_123 /* PDFLayoutIndentations+Equatable.swift */, + OBJ_124 /* PDFLayoutIndentations.swift */, + OBJ_125 /* PDFMarginObject.swift */, + OBJ_126 /* PDFOffsetObject+Equatable.swift */, + OBJ_127 /* PDFOffsetObject.swift */, + OBJ_128 /* PDFPageBreakObject+Equatable.swift */, + OBJ_129 /* PDFPageBreakObject.swift */, + OBJ_130 /* PDFPageLayout+Equatable.swift */, + OBJ_131 /* PDFSectionColumnContainer.swift */, + OBJ_132 /* PDFSpaceObject.swift */, + ); + path = Layout; sourceTree = ""; }; - D4803BF724703E5300DDA039 /* Section */ = { + OBJ_133 /* List */ = { isa = PBXGroup; children = ( - D4803BF824703E5300DDA039 /* PDFColumnWrapSectionObject.swift */, - D4803BF924703E5300DDA039 /* PDFSectionColumnObject.swift */, - D4803BFA24703E5300DDA039 /* PDFSectionObject.swift */, + OBJ_134 /* PDFListObject.swift */, ); - path = Section; + path = List; sourceTree = ""; }; - D4803BFC24703E5300DDA039 /* Math */ = { + OBJ_135 /* Math */ = { isa = PBXGroup; children = ( - D4803BFD24703E5300DDA039 /* CGPoint+Null.swift */, - D4803BFE24703E5300DDA039 /* CGPoint+Math.swift */, + OBJ_136 /* CGPoint+Math.swift */, + OBJ_137 /* CGPoint+Null.swift */, ); path = Math; sourceTree = ""; }; - D4803BFF24703E5300DDA039 /* Pagination */ = { + OBJ_140 /* Pagination */ = { isa = PBXGroup; children = ( - D4803C0024703E5300DDA039 /* PDFPagination.swift */, - D4803C0124703E5300DDA039 /* Int+RomanNumerals.swift */, - D4803C0224703E5300DDA039 /* PDFPaginationStyle.swift */, - D4803C0324703E5300DDA039 /* PDFPaginationClosure.swift */, - D4803C0524703E5300DDA039 /* PDFPaginationStyle+Equatable.swift */, - D4803C0624703E5300DDA039 /* PDFPagination+Equatable.swift */, + OBJ_141 /* Int+RomanNumerals.swift */, + OBJ_142 /* PDFPagination+Equatable.swift */, + OBJ_143 /* PDFPagination.swift */, + OBJ_144 /* PDFPaginationClosure.swift */, + OBJ_145 /* PDFPaginationStyle+Equatable.swift */, + OBJ_146 /* PDFPaginationStyle.swift */, ); path = Pagination; sourceTree = ""; }; - D4803C1424703E5300DDA039 /* List */ = { + OBJ_147 /* Section */ = { isa = PBXGroup; children = ( - D4803C1524703E5300DDA039 /* PDFListObject.swift */, + OBJ_148 /* PDFColumnWrapSectionObject.swift */, + OBJ_149 /* PDFSectionColumnObject.swift */, + OBJ_150 /* PDFSectionObject.swift */, ); - path = List; + path = Section; sourceTree = ""; }; - D4803C1624703E5300DDA039 /* Table Of Content */ = { + OBJ_151 /* Table Of Content */ = { isa = PBXGroup; children = ( - D4803C1724703E5300DDA039 /* PDFTableOfContentObject.swift */, + OBJ_152 /* PDFTableOfContentObject.swift */, ); path = "Table Of Content"; sourceTree = ""; }; - D4803C1924703E5300DDA039 /* Graphics */ = { + OBJ_153 /* Table */ = { isa = PBXGroup; children = ( - D4EE2F9624A34C990004E3B9 /* PDFContextGraphics.swift */, - D4803C1A24703E5300DDA039 /* PDFLineSeparatorObject.swift */, - D4803C1B24703E5300DDA039 /* PDFGraphics.swift */, - D4803C1C24703E5300DDA039 /* UIColor+CloseToEqual.swift */, - D4803C1D24703E5300DDA039 /* PDFLineObject.swift */, - D4803C1E24703E5300DDA039 /* UIColor+Hex.swift */, - D4803C1F24703E5300DDA039 /* UIImage+Pixel.swift */, - D4803C2024703E5300DDA039 /* PDFLineSeparatorObject+Equatable.swift */, - D4803C2124703E5300DDA039 /* PDFRectangleObject.swift */, + OBJ_154 /* PDFTableCalculatedCell.swift */, + OBJ_155 /* PDFTableMergeUtil.swift */, + OBJ_156 /* PDFTableNode.swift */, + OBJ_157 /* PDFTableObject.swift */, + OBJ_158 /* PDFTableValidator.swift */, ); - path = Graphics; + path = Table; sourceTree = ""; }; - D4803C2224703E5300DDA039 /* Layout */ = { - isa = PBXGroup; - children = ( - D4803C2324703E5300DDA039 /* PDFPageBreakObject.swift */, - D4803C2424703E5300DDA039 /* PDFLayoutHeights.swift */, - D4803C2524703E5300DDA039 /* PDFOffsetObject.swift */, - D4803C2624703E5300DDA039 /* PDFLayoutIndentations+Equatable.swift */, - D4803C2724703E5300DDA039 /* PDFLayoutIndentations.swift */, - D4803C2824703E5300DDA039 /* PDFOffsetObject+Equatable.swift */, - D4803C2924703E5300DDA039 /* PDFPageBreakObject+Equatable.swift */, - D4803C2A24703E5300DDA039 /* PDFSectionColumnContainer.swift */, - D4803C2B24703E5300DDA039 /* PDFIndentationObject.swift */, - D4803C2C24703E5300DDA039 /* PDFLayout.swift */, - D4803C2D24703E5300DDA039 /* PDFSpaceObject.swift */, - D4803C2E24703E5300DDA039 /* PDFLayout+Equatable.swift */, - D4803C2F24703E5300DDA039 /* PDFColumnLayoutState.swift */, - D4803C3024703E5300DDA039 /* PDFPageLayout+Equatable.swift */, - D4803C3124703E5300DDA039 /* PDFMarginObject.swift */, - D4803C3224703E5300DDA039 /* PDFIndentationObject+Equatable.swift */, - D4803C3324703E5300DDA039 /* PDFLayoutHeights+Equatable.swift */, + OBJ_159 /* Text */ = { + isa = PBXGroup; + children = ( + OBJ_160 /* PDFAttributedTextObject.swift */, + OBJ_161 /* PDFFontObject.swift */, + OBJ_162 /* PDFTextColorObject.swift */, ); - path = Layout; + path = Text; sourceTree = ""; }; - D4803C3424703E5300DDA039 /* External */ = { + OBJ_163 /* Utils */ = { isa = PBXGroup; children = ( - D4803C3524703E5300DDA039 /* PDFExternalPageObject.swift */, - D4803C3624703E5300DDA039 /* PDFExternalDocumentObject.swift */, + OBJ_164 /* Attributes */, + OBJ_167 /* CustomStringConvertible+AutoDescribing.swift */, + OBJ_168 /* FileManager+TemporaryFiles.swift */, + OBJ_169 /* PDFCalculations.swift */, + OBJ_170 /* PDFLocatedRenderObject.swift */, + OBJ_171 /* PDFSlicedObject.swift */, + OBJ_172 /* Stack.swift */, + OBJ_173 /* WeakRef.swift */, ); - path = External; + path = Utils; sourceTree = ""; }; - D4803C3724703E5300DDA039 /* Table */ = { + OBJ_164 /* Attributes */ = { isa = PBXGroup; children = ( - D4839C38253706950005BB87 /* PDFTableCalculatedCell.swift */, - D4803C3824703E5300DDA039 /* PDFTableMergeUtil.swift */, - D4803C3924703E5300DDA039 /* PDFTableNode.swift */, - D4803C3A24703E5300DDA039 /* PDFTableObject.swift */, - D4803C3B24703E5300DDA039 /* PDFTableValidator.swift */, + OBJ_165 /* PDFAttributableObject.swift */, + OBJ_166 /* PDFObjectAttribute.swift */, ); - path = Table; + path = Attributes; sourceTree = ""; }; - D4803C3D24703E5300DDA039 /* Text */ = { + OBJ_174 /* Tests */ = { isa = PBXGroup; children = ( - D4803C3E24703E5300DDA039 /* PDFFontObject.swift */, - D4803C3F24703E5300DDA039 /* PDFAttributedTextObject.swift */, - D4803C4024703E5300DDA039 /* PDFTextColorObject.swift */, + OBJ_175 /* TPPDFTests */, ); - path = Text; - sourceTree = ""; + name = Tests; + sourceTree = SOURCE_ROOT; }; - D4803C4124703E5300DDA039 /* API */ = { - isa = PBXGroup; - children = ( - D4803C4724703E5300DDA039 /* PDFDocument.swift */, - D4803C5324703E5300DDA039 /* PDFGenerator.swift */, - D4803C5824703E5300DDA039 /* PDFGenerator+Generation.swift */, - D4803C4824703E5300DDA039 /* PDFGeneratorProtocol.swift */, - D4803C4924703E5300DDA039 /* PDFMultiDocumentGenerator.swift */, - D4803C7424703E5300DDA039 /* External */, - D4803C6924703E5300DDA039 /* Graphics */, - D4803C5C24703E5300DDA039 /* Groups */, - D4803C4224703E5300DDA039 /* Image */, - D4803C7124703E5300DDA039 /* Layout */, - D4803C6124703E5300DDA039 /* List */, - D4803C5924703E5300DDA039 /* Metadata */, - D4803C5424703E5300DDA039 /* Page Format */, - D4803C4F24703E5300DDA039 /* Section */, - D4803C7724703E5300DDA039 /* Table */, - D4803C6724703E5300DDA039 /* Table Of Content */, - D4803C9B24703E5300DDA039 /* Text */, - D4803C4A24703E5300DDA039 /* Utils */, + OBJ_175 /* TPPDFTests */ = { + isa = PBXGroup; + children = ( + OBJ_176 /* API */, + OBJ_181 /* Graphics */, + OBJ_191 /* Image */, + OBJ_195 /* Internal */, + OBJ_199 /* Layout */, + OBJ_216 /* List */, + OBJ_223 /* Math */, + OBJ_225 /* Metadata */, + OBJ_228 /* PDFDocument+Objects_Spec.swift */, + OBJ_229 /* PDFDocument_Spec.swift */, + OBJ_230 /* PDFGenerator+Debug_Spec.swift */, + OBJ_231 /* PDFGenerator+Generation_Spec.swift */, + OBJ_232 /* PDFGenerator+Layout_Spec.swift */, + OBJ_233 /* PDFGenerator_Spec.swift */, + OBJ_234 /* Page Format */, + OBJ_238 /* Pagination */, + OBJ_245 /* Table */, + OBJ_264 /* Text */, + OBJ_273 /* Utils */, + ); + name = TPPDFTests; + path = Tests/TPPDFTests; + sourceTree = SOURCE_ROOT; + }; + OBJ_176 /* API */ = { + isa = PBXGroup; + children = ( + OBJ_177 /* Table */, ); path = API; sourceTree = ""; }; - D4803C4224703E5300DDA039 /* Image */ = { + OBJ_177 /* Table */ = { isa = PBXGroup; children = ( - D4803C4324703E5300DDA039 /* PDFImageSizeFit.swift */, - D4803C4424703E5300DDA039 /* PDFImage.swift */, - D4803C4524703E5300DDA039 /* PDFImageOptions.swift */, - D4803C4624703E5300DDA039 /* PDFImage+Equatable.swift */, + OBJ_178 /* Sections */, ); - path = Image; + path = Table; sourceTree = ""; }; - D4803C4A24703E5300DDA039 /* Utils */ = { + OBJ_178 /* Sections */ = { isa = PBXGroup; children = ( - D477C4C324C479550097C2AB /* PDFConstants.swift */, - D4EE2F9824A34CBF0004E3B9 /* CrossPlattformGraphics.swift */, - D4803C4B24703E5300DDA039 /* PDFDocumentObject.swift */, - D4803C4C24703E5300DDA039 /* PDFError.swift */, - D4803C4D24703E5300DDA039 /* PDFRenderObject.swift */, - D4803C4E24703E5300DDA039 /* PDFCopy.swift */, + OBJ_179 /* PDFTableRowSpec.swift */, + OBJ_180 /* PDFTable_RowSubscriptsSpec.swift */, ); - path = Utils; + path = Sections; sourceTree = ""; }; - D4803C4F24703E5300DDA039 /* Section */ = { + OBJ_18 /* Groups */ = { isa = PBXGroup; children = ( - D4803C5124703E5300DDA039 /* PDFSection.swift */, - D4803C5224703E5300DDA039 /* PDFSectionColumn.swift */, + OBJ_19 /* PDFGroup+Objects.swift */, + OBJ_20 /* PDFGroup.swift */, + OBJ_21 /* PDFGroupContainer.swift */, + OBJ_22 /* PDFMasterGroup.swift */, ); - path = Section; + path = Groups; sourceTree = ""; }; - D4803C5424703E5300DDA039 /* Page Format */ = { + OBJ_181 /* Graphics */ = { isa = PBXGroup; children = ( - D4803C5524703E5300DDA039 /* PDFPageFormat.swift */, - D4803C5624703E5300DDA039 /* PDFPageFormat+Layout.swift */, - D4803C5724703E5300DDA039 /* PDFPageFormat+SizeConstants.swift */, + OBJ_182 /* PDFGraphics_Spec.swift */, + OBJ_183 /* PDFLineSeparatorObject+Equatable_Spec.swift */, + OBJ_184 /* PDFLineSeparatorObject_Spec.swift */, + OBJ_185 /* PDFLineStyle_Equatable_Spec.swift */, + OBJ_186 /* PDFLineStyle_Spec.swift */, + OBJ_187 /* PDFLineType_Spec.swift */, + OBJ_188 /* UIColor+Hex_Spec.swift */, + OBJ_189 /* UIImage+CloseToEqual_Spec.swift */, + OBJ_190 /* UIImage+Pixel_Spec.swift */, ); - path = "Page Format"; + path = Graphics; sourceTree = ""; }; - D4803C5924703E5300DDA039 /* Metadata */ = { + OBJ_191 /* Image */ = { isa = PBXGroup; children = ( - D4803C5A24703E5300DDA039 /* PDFInfo.swift */, - D4803C5B24703E5300DDA039 /* PDFInfo+Equatable.swift */, + OBJ_192 /* PDFImageSizeFit_Spec.swift */, + OBJ_193 /* PDFImage_Equatable_Spec.swift */, + OBJ_194 /* PDFImage_Spec.swift */, ); - path = Metadata; + path = Image; sourceTree = ""; }; - D4803C5C24703E5300DDA039 /* Groups */ = { + OBJ_195 /* Internal */ = { isa = PBXGroup; children = ( - D4803C5D24703E5300DDA039 /* PDFGroup.swift */, - D4803C5E24703E5300DDA039 /* PDFGroupContainer.swift */, - D4803C5F24703E5300DDA039 /* PDFMasterGroup.swift */, - D4803C6024703E5300DDA039 /* PDFGroup+Objects.swift */, + OBJ_196 /* Table */, ); - path = Groups; + path = Internal; sourceTree = ""; }; - D4803C6124703E5300DDA039 /* List */ = { + OBJ_196 /* Table */ = { isa = PBXGroup; children = ( - D4803C6224703E5300DDA039 /* PDFListItemSymbol.swift */, - D4803C6324703E5300DDA039 /* PDFList.swift */, - D4803C6424703E5300DDA039 /* PDFListItem.swift */, - D4803C6524703E5300DDA039 /* PDFListItem+Equatable.swift */, - D4803C6624703E5300DDA039 /* PDFList+Equatable.swift */, + OBJ_197 /* PDFTableMergeUtil_Spec.swift */, + OBJ_198 /* PDFTableObjectSpec.swift */, + ); + path = Table; + sourceTree = ""; + }; + OBJ_199 /* Layout */ = { + isa = PBXGroup; + children = ( + OBJ_200 /* PDFContainer_Spec.swift */, + OBJ_201 /* PDFIndentationObject_Equatable_Spec.swift */, + OBJ_202 /* PDFIndentationObject_Spec.swift */, + OBJ_203 /* PDFLayout+Equatable_Spec.swift */, + OBJ_204 /* PDFLayoutHeights+Equatable_Spec.swift */, + OBJ_205 /* PDFLayoutHeights_Spec.swift */, + OBJ_206 /* PDFLayoutIndentations+Equatable_Spec.swift */, + OBJ_207 /* PDFLayoutIndentations_Spec.swift */, + OBJ_208 /* PDFLayout_Spec.swift */, + OBJ_209 /* PDFOffsetObject+Equatable_Spec.swift */, + OBJ_210 /* PDFOffsetObject_Spec.swift */, + OBJ_211 /* PDFPageBreakObject+Equatable_Spec.swift */, + OBJ_212 /* PDFPageBreakObject_Spec.swift */, + OBJ_213 /* PDFPageLayout+Equatable_Spec.swift */, + OBJ_214 /* PDFPageLayout_Spec.swift */, + OBJ_215 /* PDFSpaceObject_Spec.swift */, + ); + path = Layout; + sourceTree = ""; + }; + OBJ_216 /* List */ = { + isa = PBXGroup; + children = ( + OBJ_217 /* PDFList+Equatable_Spec.swift */, + OBJ_218 /* PDFListItemObject_Spec.swift */, + OBJ_219 /* PDFListItemSymbol_Spec.swift */, + OBJ_220 /* PDFListItem_Equatable_Spec.swift */, + OBJ_221 /* PDFListItem_Spec.swift */, + OBJ_222 /* PDFList_Spec.swift */, ); path = List; sourceTree = ""; }; - D4803C6724703E5300DDA039 /* Table Of Content */ = { + OBJ_223 /* Math */ = { isa = PBXGroup; children = ( - D4803C6824703E5300DDA039 /* PDFTableOfContent.swift */, + OBJ_224 /* CGPoint+Math_Spec.swift */, ); - path = "Table Of Content"; + path = Math; sourceTree = ""; }; - D4803C6924703E5300DDA039 /* Graphics */ = { + OBJ_225 /* Metadata */ = { isa = PBXGroup; children = ( - D4803C6A24703E5300DDA039 /* PDFBezierPathVertex.swift */, - D4803C6B24703E5300DDA039 /* PDFLineStyle+Equatable.swift */, - D4803C6C24703E5300DDA039 /* PDFLineType.swift */, - D4803C6D24703E5300DDA039 /* PDFLineStyle.swift */, - D4803C6E24703E5300DDA039 /* PDFDynamicGeometryShape.swift */, - D4803C6F24703E5300DDA039 /* PDFBezierPath.swift */, - D4803C7024703E5300DDA039 /* PDFBezierPath+Copying.swift */, + OBJ_226 /* PDFInfo+Equatable_Spec.swift */, + OBJ_227 /* PDFInfo_Spec.swift */, ); - path = Graphics; + path = Metadata; sourceTree = ""; }; - D4803C7124703E5300DDA039 /* Layout */ = { + OBJ_23 /* Image */ = { isa = PBXGroup; children = ( - D4803C7224703E5300DDA039 /* PDFContainer.swift */, - D4803C7324703E5300DDA039 /* PDFPageLayout.swift */, + OBJ_24 /* PDFImage.swift */, + OBJ_25 /* PDFImageOptions.swift */, + OBJ_26 /* PDFImageSizeFit.swift */, ); - path = Layout; + path = Image; sourceTree = ""; }; - D4803C7424703E5300DDA039 /* External */ = { + OBJ_234 /* Page Format */ = { isa = PBXGroup; children = ( - D4803C7524703E5300DDA039 /* PDFExternalDocument.swift */, + OBJ_235 /* PDFPageFormat+Layout_Spec.swift */, + OBJ_236 /* PDFPageFormat+SizeConstants_Spec.swift */, + OBJ_237 /* PDFPageFormat_Spec.swift */, ); - path = External; + path = "Page Format"; sourceTree = ""; }; - D4803C7724703E5300DDA039 /* Table */ = { + OBJ_238 /* Pagination */ = { isa = PBXGroup; children = ( - D4803C7824703E5300DDA039 /* PDFTable+Equatable.swift */, - D4803C8124703E5300DDA039 /* PDFTableCell+Equatable.swift */, - D4803C7924703E5300DDA039 /* Style */, - D4803C8324703E5300DDA039 /* Sections */, - D4803C8E24703E5300DDA039 /* Content */, - D4803C9724703E5300DDA039 /* PDFTableCell.swift */, - D4803C9824703E5300DDA039 /* PDFTableCellPosition.swift */, - D4803C9924703E5300DDA039 /* PDFTableCellAlignment.swift */, - D4803C9A24703E5300DDA039 /* PDFTable.swift */, + OBJ_239 /* Int+RomanNumerals_Spec.swift */, + OBJ_240 /* PDFPaginationStyle+Equatable_Spec.swift */, + OBJ_241 /* PDFPaginationStyle_Spec.swift */, + OBJ_242 /* PDFPagination_Closure_Spec.swift */, + OBJ_243 /* PDFPagination_Equatable_Spec.swift */, + OBJ_244 /* PDFPagination_Spec.swift */, + ); + path = Pagination; + sourceTree = ""; + }; + OBJ_245 /* Table */ = { + isa = PBXGroup; + children = ( + OBJ_246 /* PDFTable+Equatable_Spec.swift */, + OBJ_247 /* PDFTableCell+Equatable_Spec.swift */, + OBJ_248 /* PDFTableCellAlignment_Spec.swift */, + OBJ_249 /* PDFTableCellBorders+Equatable_Spec.swift */, + OBJ_250 /* PDFTableCellBorders_Spec.swift */, + OBJ_251 /* PDFTableCellPosition+Equatable_Spec.swift */, + OBJ_252 /* PDFTableCellPosition_Hashable_Spec.swift */, + OBJ_253 /* PDFTableCellPosition_Spec.swift */, + OBJ_254 /* PDFTableCellStyle+Equatable_Spec.swift */, + OBJ_255 /* PDFTableCellStyle_Spec.swift */, + OBJ_256 /* PDFTableCell_Spec.swift */, + OBJ_257 /* PDFTableContent+Equatable_Spec.swift */, + OBJ_258 /* PDFTableContent_Spec.swift */, + OBJ_259 /* PDFTableStyle+Defaults_Spec.swift */, + OBJ_260 /* PDFTableStyle+Equatable_Spec.swift */, + OBJ_261 /* PDFTableStyle_Spec.swift */, + OBJ_262 /* PDFTableValidator_Spec.swift */, + OBJ_263 /* PDFTable_Spec.swift */, ); path = Table; sourceTree = ""; }; - D4803C7924703E5300DDA039 /* Style */ = { + OBJ_264 /* Text */ = { isa = PBXGroup; children = ( - D4803C7A24703E5300DDA039 /* PDFTableStyle.swift */, - D4803C7B24703E5300DDA039 /* PDFTableStyle+Defaults.swift */, - D4803C7C24703E5300DDA039 /* PDFTableCellStyle+Equatable.swift */, - D4803C7D24703E5300DDA039 /* PDFTableCellBorders+Equatable.swift */, - D4803C7E24703E5300DDA039 /* PDFTableCellPosition+Equatable-Hashable.swift */, - D4803C7F24703E5300DDA039 /* PDFTableCellBorders.swift */, - D4803C8024703E5300DDA039 /* PDFTableStyle+Equatable.swift */, - D4803C8224703E5300DDA039 /* PDFTableCellStyle.swift */, + OBJ_265 /* PDFAttributedText+Equatable_Spec.swift */, + OBJ_266 /* PDFAttributedTextObject_Spec.swift */, + OBJ_267 /* PDFAttributedText_Spec.swift */, + OBJ_268 /* PDFFontObject_Spec.swift */, + OBJ_269 /* PDFSimpleText+Equatable_Spec.swift */, + OBJ_270 /* PDFSimpleText_Spec.swift */, + OBJ_271 /* PDFTextColorObject_Spec.swift */, + OBJ_272 /* PDFText_Spec.swift */, ); - path = Style; + path = Text; sourceTree = ""; }; - D4803C8324703E5300DDA039 /* Sections */ = { + OBJ_27 /* Layout */ = { isa = PBXGroup; children = ( - D4803C8424703E5300DDA039 /* PDFTableMergeable.swift */, - D4803C8524703E5300DDA039 /* PDFTable+RowSubscripts.swift */, - D4803C8624703E5300DDA039 /* PDFTable+SectionSubscripts.swift */, - D4803C8724703E5300DDA039 /* PDFTableRow.swift */, - D4803C8824703E5300DDA039 /* PDFTableColumns.swift */, - D4803C8924703E5300DDA039 /* PDFTableSection.swift */, - D4803C8A24703E5300DDA039 /* PDFTableRows.swift */, - D4803C8B24703E5300DDA039 /* PDFTable+ColumnSubscripts.swift */, - D4803C8C24703E5300DDA039 /* PDFTableColumn.swift */, - D4803C8D24703E5300DDA039 /* PDFTable+CellSubscripts.swift */, + OBJ_28 /* PDFContainer.swift */, + OBJ_29 /* PDFPageLayout.swift */, ); - path = Sections; + path = Layout; sourceTree = ""; }; - D4803C8E24703E5300DDA039 /* Content */ = { + OBJ_273 /* Utils */ = { isa = PBXGroup; children = ( - D4803C8F24703E5300DDA039 /* NSAttributedString+PDFTableContent.swift */, - D4803C9024703E5300DDA039 /* PDFTableContent+Equatable.swift */, - D4803C9124703E5300DDA039 /* Number+PDFTableContentable.swift */, - D4803C9224703E5300DDA039 /* PDFTableContentable.swift */, - D4803C9324703E5300DDA039 /* String+PDFTableContent.swift */, - D4803C9424703E5300DDA039 /* PDFTableContent+ContentType.swift */, - D4803C9524703E5300DDA039 /* PDFTableContent.swift */, - D4803C9624703E5300DDA039 /* UIImage+PDFTableContent.swift */, + OBJ_274 /* PDFCalculations_Spec.swift */, + OBJ_275 /* PDFError_Spec.swift */, + OBJ_276 /* PDFObject_Spec.swift */, ); - path = Content; + path = Utils; sourceTree = ""; }; - D4803C9B24703E5300DDA039 /* Text */ = { + OBJ_277 /* Dependencies */ = { isa = PBXGroup; children = ( - D4803C9C24703E5300DDA039 /* PDFSimpleText+Equatable.swift */, - D4803C9D24703E5300DDA039 /* PDFSimpleText.swift */, - D4803C9E24703E5300DDA039 /* PDFAttributedText+Equatable.swift */, - D4803C9F24703E5300DDA039 /* PDFAttributedText.swift */, - D4803CA024703E5300DDA039 /* PDFText.swift */, - D4803CA124703E5300DDA039 /* PDFTextStyle.swift */, + OBJ_278 /* Nimble 9.0.0 */, + OBJ_338 /* CwlPreconditionTesting 2.0.0 */, + OBJ_351 /* CwlCatchException 2.0.0 */, + OBJ_360 /* Quick 3.0.0 */, ); - path = Text; + name = Dependencies; sourceTree = ""; }; - OBJ_194 /* Tests */ = { + OBJ_278 /* Nimble 9.0.0 */ = { isa = PBXGroup; children = ( - OBJ_195 /* TPPDFTests */, + OBJ_279 /* Nimble */, + OBJ_337 /* Package.swift */, ); - name = Tests; + name = "Nimble 9.0.0"; sourceTree = SOURCE_ROOT; }; - OBJ_195 /* TPPDFTests */ = { - isa = PBXGroup; - children = ( - OBJ_196 /* Graphics */, - OBJ_206 /* Image */, - OBJ_210 /* Internal */, - OBJ_216 /* Layout */, - OBJ_233 /* List */, - OBJ_240 /* Math */, - OBJ_242 /* Metadata */, - OBJ_245 /* PDFDocument+Objects_Spec.swift */, - OBJ_246 /* PDFDocument_Spec.swift */, - OBJ_247 /* PDFGenerator+Debug_Spec.swift */, - OBJ_248 /* PDFGenerator+Generation_Spec.swift */, - OBJ_249 /* PDFGenerator+Layout_Spec.swift */, - OBJ_250 /* PDFGenerator_Spec.swift */, - OBJ_251 /* Page Format */, - OBJ_255 /* Pagination */, - OBJ_262 /* Table */, - OBJ_281 /* Text */, - OBJ_290 /* Utils */, + OBJ_279 /* Nimble */ = { + isa = PBXGroup; + children = ( + OBJ_280 /* Adapters */, + OBJ_290 /* DSL+Wait.swift */, + OBJ_291 /* DSL.swift */, + OBJ_292 /* Expectation.swift */, + OBJ_293 /* ExpectationMessage.swift */, + OBJ_294 /* Expression.swift */, + OBJ_295 /* FailureMessage.swift */, + OBJ_296 /* Matchers */, + OBJ_331 /* Utils */, ); - name = TPPDFTests; - path = Tests/TPPDFTests; + name = Nimble; + path = .build/checkouts/Nimble/Sources/Nimble; sourceTree = SOURCE_ROOT; }; - OBJ_196 /* Graphics */ = { + OBJ_280 /* Adapters */ = { isa = PBXGroup; children = ( - OBJ_197 /* PDFGraphics_Spec.swift */, - OBJ_198 /* PDFLineSeparatorObject+Equatable_Spec.swift */, - OBJ_199 /* PDFLineSeparatorObject_Spec.swift */, - OBJ_200 /* PDFLineStyle_Equatable_Spec.swift */, - OBJ_201 /* PDFLineStyle_Spec.swift */, - OBJ_202 /* PDFLineType_Spec.swift */, - OBJ_203 /* UIColor+Hex_Spec.swift */, - OBJ_204 /* UIImage+CloseToEqual_Spec.swift */, - OBJ_205 /* UIImage+Pixel_Spec.swift */, + OBJ_281 /* AdapterProtocols.swift */, + OBJ_282 /* AssertionDispatcher.swift */, + OBJ_283 /* AssertionRecorder.swift */, + OBJ_284 /* NMBExpectation.swift */, + OBJ_285 /* NMBObjCMatcher.swift */, + OBJ_286 /* NimbleEnvironment.swift */, + OBJ_287 /* NimbleXCTestHandler.swift */, + OBJ_288 /* NonObjectiveC */, ); - path = Graphics; + path = Adapters; sourceTree = ""; }; - OBJ_206 /* Image */ = { + OBJ_288 /* NonObjectiveC */ = { isa = PBXGroup; children = ( - OBJ_207 /* PDFImageSizeFit_Spec.swift */, - OBJ_208 /* PDFImage_Equatable_Spec.swift */, - OBJ_209 /* PDFImage_Spec.swift */, + OBJ_289 /* ExceptionCapture.swift */, ); - path = Image; + path = NonObjectiveC; sourceTree = ""; }; - OBJ_210 /* Internal */ = { - isa = PBXGroup; - children = ( - OBJ_211 /* Table */, + OBJ_296 /* Matchers */ = { + isa = PBXGroup; + children = ( + OBJ_297 /* AllPass.swift */, + OBJ_298 /* Async.swift */, + OBJ_299 /* BeAKindOf.swift */, + OBJ_300 /* BeAnInstanceOf.swift */, + OBJ_301 /* BeCloseTo.swift */, + OBJ_302 /* BeEmpty.swift */, + OBJ_303 /* BeGreaterThan.swift */, + OBJ_304 /* BeGreaterThanOrEqualTo.swift */, + OBJ_305 /* BeIdenticalTo.swift */, + OBJ_306 /* BeLessThan.swift */, + OBJ_307 /* BeLessThanOrEqual.swift */, + OBJ_308 /* BeLogical.swift */, + OBJ_309 /* BeNil.swift */, + OBJ_310 /* BeVoid.swift */, + OBJ_311 /* BeginWith.swift */, + OBJ_312 /* BeginWithPrefix.swift */, + OBJ_313 /* Contain.swift */, + OBJ_314 /* ContainElementSatisfying.swift */, + OBJ_315 /* ElementsEqual.swift */, + OBJ_316 /* EndWith.swift */, + OBJ_317 /* Equal.swift */, + OBJ_318 /* HaveCount.swift */, + OBJ_319 /* Match.swift */, + OBJ_320 /* MatchError.swift */, + OBJ_321 /* MatcherFunc.swift */, + OBJ_322 /* MatcherProtocols.swift */, + OBJ_323 /* PostNotification.swift */, + OBJ_324 /* Predicate.swift */, + OBJ_325 /* RaisesException.swift */, + OBJ_326 /* SatisfyAllOf.swift */, + OBJ_327 /* SatisfyAnyOf.swift */, + OBJ_328 /* ThrowAssertion.swift */, + OBJ_329 /* ThrowError.swift */, + OBJ_330 /* ToSucceed.swift */, ); - path = Internal; + path = Matchers; sourceTree = ""; }; - OBJ_211 /* Table */ = { + OBJ_30 /* List */ = { isa = PBXGroup; children = ( - OBJ_212 /* PDFTableMergeUtil_Spec.swift */, + OBJ_31 /* PDFList.swift */, + OBJ_32 /* PDFListItem.swift */, + OBJ_33 /* PDFListItemSymbol.swift */, ); - path = Table; + path = List; sourceTree = ""; }; - OBJ_216 /* Layout */ = { - isa = PBXGroup; - children = ( - OBJ_217 /* PDFContainer_Spec.swift */, - OBJ_218 /* PDFIndentationObject_Equatable_Spec.swift */, - OBJ_219 /* PDFIndentationObject_Spec.swift */, - OBJ_220 /* PDFLayout+Equatable_Spec.swift */, - OBJ_221 /* PDFLayoutHeights+Equatable_Spec.swift */, - OBJ_222 /* PDFLayoutHeights_Spec.swift */, - OBJ_223 /* PDFLayoutIndentations+Equatable_Spec.swift */, - OBJ_224 /* PDFLayoutIndentations_Spec.swift */, - OBJ_225 /* PDFLayout_Spec.swift */, - OBJ_226 /* PDFOffsetObject+Equatable_Spec.swift */, - OBJ_227 /* PDFOffsetObject_Spec.swift */, - OBJ_228 /* PDFPageBreakObject+Equatable_Spec.swift */, - OBJ_229 /* PDFPageBreakObject_Spec.swift */, - OBJ_230 /* PDFPageLayout+Equatable_Spec.swift */, - OBJ_231 /* PDFPageLayout_Spec.swift */, - OBJ_232 /* PDFSpaceObject_Spec.swift */, + OBJ_331 /* Utils */ = { + isa = PBXGroup; + children = ( + OBJ_332 /* Await.swift */, + OBJ_333 /* DispatchTimeInterval.swift */, + OBJ_334 /* Errors.swift */, + OBJ_335 /* SourceLocation.swift */, + OBJ_336 /* Stringers.swift */, ); - path = Layout; + path = Utils; sourceTree = ""; }; - OBJ_233 /* List */ = { + OBJ_338 /* CwlPreconditionTesting 2.0.0 */ = { isa = PBXGroup; children = ( - OBJ_234 /* PDFList+Equatable_Spec.swift */, - OBJ_235 /* PDFListItemObject_Spec.swift */, - OBJ_236 /* PDFListItemSymbol_Spec.swift */, - OBJ_237 /* PDFListItem_Equatable_Spec.swift */, - OBJ_238 /* PDFListItem_Spec.swift */, - OBJ_239 /* PDFList_Spec.swift */, + OBJ_339 /* CwlMachBadInstructionHandler */, + OBJ_344 /* CwlPosixPreconditionTesting */, + OBJ_346 /* CwlPreconditionTesting */, + OBJ_350 /* Package.swift */, ); - path = List; - sourceTree = ""; + name = "CwlPreconditionTesting 2.0.0"; + sourceTree = SOURCE_ROOT; }; - OBJ_240 /* Math */ = { + OBJ_339 /* CwlMachBadInstructionHandler */ = { isa = PBXGroup; children = ( - OBJ_241 /* CGPoint+Math_Spec.swift */, + OBJ_340 /* CwlMachBadInstructionHandler.m */, + OBJ_341 /* mach_excServer.c */, + OBJ_342 /* include */, ); - path = Math; - sourceTree = ""; + name = CwlMachBadInstructionHandler; + path = .build/checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler; + sourceTree = SOURCE_ROOT; }; - OBJ_242 /* Metadata */ = { + OBJ_34 /* Metadata */ = { isa = PBXGroup; children = ( - OBJ_243 /* PDFInfo+Equatable_Spec.swift */, - OBJ_244 /* PDFInfo_Spec.swift */, + OBJ_35 /* PDFInfo+Equatable.swift */, + OBJ_36 /* PDFInfo.swift */, ); path = Metadata; sourceTree = ""; }; - OBJ_251 /* Page Format */ = { + OBJ_342 /* include */ = { isa = PBXGroup; children = ( - OBJ_252 /* PDFPageFormat+Layout_Spec.swift */, - OBJ_253 /* PDFPageFormat+SizeConstants_Spec.swift */, - OBJ_254 /* PDFPageFormat_Spec.swift */, + OBJ_343 /* CwlMachBadInstructionHandler.h */, ); - path = "Page Format"; + path = include; sourceTree = ""; }; - OBJ_255 /* Pagination */ = { + OBJ_344 /* CwlPosixPreconditionTesting */ = { isa = PBXGroup; children = ( - OBJ_256 /* Int+RomanNumerals_Spec.swift */, - OBJ_257 /* PDFPaginationStyle+Equatable_Spec.swift */, - OBJ_258 /* PDFPaginationStyle_Spec.swift */, - OBJ_259 /* PDFPagination_Closure_Spec.swift */, - OBJ_260 /* PDFPagination_Equatable_Spec.swift */, - OBJ_261 /* PDFPagination_Spec.swift */, + OBJ_345 /* CwlCatchBadInstructionPosix.swift */, ); - path = Pagination; - sourceTree = ""; + name = CwlPosixPreconditionTesting; + path = .build/checkouts/CwlPreconditionTesting/Sources/CwlPosixPreconditionTesting; + sourceTree = SOURCE_ROOT; }; - OBJ_262 /* Table */ = { - isa = PBXGroup; - children = ( - OBJ_263 /* PDFTable+Equatable_Spec.swift */, - OBJ_264 /* PDFTableCell+Equatable_Spec.swift */, - OBJ_265 /* PDFTableCellAlignment_Spec.swift */, - OBJ_266 /* PDFTableCellBorders+Equatable_Spec.swift */, - OBJ_267 /* PDFTableCellBorders_Spec.swift */, - OBJ_268 /* PDFTableCellPosition+Equatable_Spec.swift */, - OBJ_269 /* PDFTableCellPosition_Hashable_Spec.swift */, - OBJ_270 /* PDFTableCellPosition_Spec.swift */, - OBJ_271 /* PDFTableCellStyle+Equatable_Spec.swift */, - OBJ_272 /* PDFTableCellStyle_Spec.swift */, - OBJ_273 /* PDFTableCell_Spec.swift */, - OBJ_274 /* PDFTableContent+Equatable_Spec.swift */, - OBJ_275 /* PDFTableContent_Spec.swift */, - OBJ_276 /* PDFTableStyle+Defaults_Spec.swift */, - OBJ_277 /* PDFTableStyle+Equatable_Spec.swift */, - OBJ_278 /* PDFTableStyle_Spec.swift */, - OBJ_279 /* PDFTableValidator_Spec.swift */, - OBJ_280 /* PDFTable_Spec.swift */, + OBJ_346 /* CwlPreconditionTesting */ = { + isa = PBXGroup; + children = ( + OBJ_347 /* CwlBadInstructionException.swift */, + OBJ_348 /* CwlCatchBadInstruction.swift */, + OBJ_349 /* CwlDarwinDefinitions.swift */, ); - path = Table; - sourceTree = ""; + name = CwlPreconditionTesting; + path = .build/checkouts/CwlPreconditionTesting/Sources/CwlPreconditionTesting; + sourceTree = SOURCE_ROOT; }; - OBJ_281 /* Text */ = { + OBJ_351 /* CwlCatchException 2.0.0 */ = { isa = PBXGroup; children = ( - OBJ_282 /* PDFAttributedText+Equatable_Spec.swift */, - OBJ_283 /* PDFAttributedTextObject_Spec.swift */, - OBJ_284 /* PDFAttributedText_Spec.swift */, - OBJ_285 /* PDFFontObject_Spec.swift */, - OBJ_286 /* PDFSimpleText+Equatable_Spec.swift */, - OBJ_287 /* PDFSimpleText_Spec.swift */, - OBJ_288 /* PDFTextColorObject_Spec.swift */, - OBJ_289 /* PDFText_Spec.swift */, + OBJ_352 /* CwlCatchException */, + OBJ_354 /* CwlCatchExceptionSupport */, + OBJ_359 /* Package.swift */, ); - path = Text; - sourceTree = ""; + name = "CwlCatchException 2.0.0"; + sourceTree = SOURCE_ROOT; }; - OBJ_290 /* Utils */ = { + OBJ_352 /* CwlCatchException */ = { isa = PBXGroup; children = ( - OBJ_291 /* PDFCalculations_Spec.swift */, - OBJ_292 /* PDFError_Spec.swift */, - OBJ_293 /* PDFObject_Spec.swift */, + OBJ_353 /* CwlCatchException.swift */, ); - path = Utils; - sourceTree = ""; + name = CwlCatchException; + path = .build/checkouts/CwlCatchException/Sources/CwlCatchException; + sourceTree = SOURCE_ROOT; }; - OBJ_294 /* Dependencies */ = { + OBJ_354 /* CwlCatchExceptionSupport */ = { isa = PBXGroup; children = ( - OBJ_295 /* Quick 2.2.0 */, - OBJ_328 /* Nimble 8.0.7 */, + OBJ_355 /* CwlCatchException.m */, + OBJ_356 /* include */, ); - name = Dependencies; + name = CwlCatchExceptionSupport; + path = .build/checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport; + sourceTree = SOURCE_ROOT; + }; + OBJ_356 /* include */ = { + isa = PBXGroup; + children = ( + OBJ_357 /* CwlCatchException.h */, + OBJ_358 /* module.modulemap */, + ); + path = include; sourceTree = ""; }; - OBJ_295 /* Quick 2.2.0 */ = { + OBJ_360 /* Quick 3.0.0 */ = { isa = PBXGroup; children = ( - OBJ_296 /* Quick */, - OBJ_323 /* QuickSpecBase */, - OBJ_327 /* Package.swift */, + OBJ_361 /* Quick */, + OBJ_389 /* QuickObjCRuntime */, + OBJ_394 /* Package.swift */, ); - name = "Quick 2.2.0"; + name = "Quick 3.0.0"; sourceTree = SOURCE_ROOT; }; - OBJ_296 /* Quick */ = { - isa = PBXGroup; - children = ( - OBJ_297 /* Behavior.swift */, - OBJ_298 /* Callsite.swift */, - OBJ_299 /* Configuration */, - OBJ_302 /* DSL */, - OBJ_305 /* ErrorUtility.swift */, - OBJ_306 /* Example.swift */, - OBJ_307 /* ExampleGroup.swift */, - OBJ_308 /* ExampleMetadata.swift */, - OBJ_309 /* Filter.swift */, - OBJ_310 /* Hooks */, - OBJ_315 /* NSBundle+CurrentTestBundle.swift */, - OBJ_316 /* QuickMain.swift */, - OBJ_317 /* QuickSelectedTestSuiteBuilder.swift */, - OBJ_318 /* QuickSpec.swift */, - OBJ_319 /* QuickTestSuite.swift */, - OBJ_320 /* String+C99ExtendedIdentifier.swift */, - OBJ_321 /* URL+FileName.swift */, - OBJ_322 /* World.swift */, + OBJ_361 /* Quick */ = { + isa = PBXGroup; + children = ( + OBJ_362 /* Behavior.swift */, + OBJ_363 /* Callsite.swift */, + OBJ_364 /* Configuration */, + OBJ_367 /* DSL */, + OBJ_370 /* ErrorUtility.swift */, + OBJ_371 /* Example.swift */, + OBJ_372 /* ExampleGroup.swift */, + OBJ_373 /* ExampleMetadata.swift */, + OBJ_374 /* Filter.swift */, + OBJ_375 /* Hooks */, + OBJ_380 /* NSBundle+CurrentTestBundle.swift */, + OBJ_381 /* QuickMain.swift */, + OBJ_382 /* QuickSelectedTestSuiteBuilder.swift */, + OBJ_383 /* QuickSpec.swift */, + OBJ_384 /* QuickTestObservation.swift */, + OBJ_385 /* QuickTestSuite.swift */, + OBJ_386 /* String+C99ExtendedIdentifier.swift */, + OBJ_387 /* URL+FileName.swift */, + OBJ_388 /* World.swift */, ); name = Quick; path = .build/checkouts/Quick/Sources/Quick; sourceTree = SOURCE_ROOT; }; - OBJ_299 /* Configuration */ = { + OBJ_364 /* Configuration */ = { isa = PBXGroup; children = ( - OBJ_300 /* Configuration.swift */, - OBJ_301 /* QuickConfiguration.swift */, + OBJ_365 /* Configuration.swift */, + OBJ_366 /* QuickConfiguration.swift */, ); path = Configuration; sourceTree = ""; }; - OBJ_302 /* DSL */ = { + OBJ_367 /* DSL */ = { isa = PBXGroup; children = ( - OBJ_303 /* DSL.swift */, - OBJ_304 /* World+DSL.swift */, + OBJ_368 /* DSL.swift */, + OBJ_369 /* World+DSL.swift */, ); path = DSL; sourceTree = ""; }; - OBJ_310 /* Hooks */ = { + OBJ_375 /* Hooks */ = { isa = PBXGroup; children = ( - OBJ_311 /* Closures.swift */, - OBJ_312 /* ExampleHooks.swift */, - OBJ_313 /* HooksPhase.swift */, - OBJ_314 /* SuiteHooks.swift */, + OBJ_376 /* Closures.swift */, + OBJ_377 /* ExampleHooks.swift */, + OBJ_378 /* HooksPhase.swift */, + OBJ_379 /* SuiteHooks.swift */, ); path = Hooks; sourceTree = ""; }; - OBJ_323 /* QuickSpecBase */ = { + OBJ_389 /* QuickObjCRuntime */ = { isa = PBXGroup; children = ( - OBJ_324 /* QuickSpecBase.m */, - OBJ_325 /* include */, + OBJ_390 /* QuickSpecBase.m */, + OBJ_391 /* include */, ); - name = QuickSpecBase; - path = .build/checkouts/Quick/Sources/QuickSpecBase; + name = QuickObjCRuntime; + path = .build/checkouts/Quick/Sources/QuickObjCRuntime; sourceTree = SOURCE_ROOT; }; - OBJ_325 /* include */ = { + OBJ_391 /* include */ = { isa = PBXGroup; children = ( - OBJ_326 /* QuickSpecBase.h */, + OBJ_392 /* QuickSpecBase.h */, + OBJ_393 /* module.modulemap */, ); path = include; sourceTree = ""; }; - OBJ_328 /* Nimble 8.0.7 */ = { + OBJ_395 /* Products */ = { isa = PBXGroup; children = ( - OBJ_329 /* Nimble */, - OBJ_386 /* NimbleCwlCatchException */, - OBJ_388 /* NimbleCwlCatchExceptionSupport */, - OBJ_393 /* NimbleCwlMachBadInstructionHandler */, - OBJ_399 /* NimbleCwlPreconditionTesting */, - OBJ_403 /* Package.swift */, + "CwlCatchException::CwlCatchExceptionSupport::Product" /* CwlCatchExceptionSupport.framework */, + "CwlPreconditionTesting::CwlPosixPreconditionTesting::Product" /* CwlPosixPreconditionTesting.framework */, + "Quick::QuickObjCRuntime::Product" /* QuickObjCRuntime.framework */, + "TPPDF::TPPDFTests::Product" /* TPPDFTests.xctest */, + "CwlPreconditionTesting::CwlPreconditionTesting::Product" /* CwlPreconditionTesting.framework */, + "Nimble::Nimble::Product" /* Nimble.framework */, + "Quick::Quick::Product" /* Quick.framework */, + "CwlCatchException::CwlCatchException::Product" /* CwlCatchException.framework */, + "TPPDF::TPPDF::Product" /* TPPDF.framework */, + "CwlPreconditionTesting::CwlMachBadInstructionHandler::Product" /* CwlMachBadInstructionHandler.framework */, ); - name = "Nimble 8.0.7"; - sourceTree = SOURCE_ROOT; + name = Products; + sourceTree = BUILT_PRODUCTS_DIR; }; - OBJ_329 /* Nimble */ = { + OBJ_42 /* Page Format */ = { isa = PBXGroup; children = ( - OBJ_330 /* Adapters */, - OBJ_340 /* DSL+Wait.swift */, - OBJ_341 /* DSL.swift */, - OBJ_342 /* Expectation.swift */, - OBJ_343 /* ExpectationMessage.swift */, - OBJ_344 /* Expression.swift */, - OBJ_345 /* FailureMessage.swift */, - OBJ_346 /* Matchers */, - OBJ_380 /* Utils */, + OBJ_43 /* PDFPageFormat+Layout.swift */, + OBJ_44 /* PDFPageFormat+SizeConstants.swift */, + OBJ_45 /* PDFPageFormat.swift */, ); - name = Nimble; - path = .build/checkouts/Nimble/Sources/Nimble; - sourceTree = SOURCE_ROOT; + path = "Page Format"; + sourceTree = ""; }; - OBJ_330 /* Adapters */ = { + OBJ_46 /* Section */ = { isa = PBXGroup; children = ( - OBJ_331 /* AdapterProtocols.swift */, - OBJ_332 /* AssertionDispatcher.swift */, - OBJ_333 /* AssertionRecorder.swift */, - OBJ_334 /* NMBExpectation.swift */, - OBJ_335 /* NMBObjCMatcher.swift */, - OBJ_336 /* NimbleEnvironment.swift */, - OBJ_337 /* NimbleXCTestHandler.swift */, - OBJ_338 /* NonObjectiveC */, + OBJ_47 /* PDFSection.swift */, + OBJ_48 /* PDFSectionColumn.swift */, ); - path = Adapters; + path = Section; sourceTree = ""; }; - OBJ_338 /* NonObjectiveC */ = { + OBJ_49 /* Table Of Content */ = { isa = PBXGroup; children = ( - OBJ_339 /* ExceptionCapture.swift */, - ); - path = NonObjectiveC; - sourceTree = ""; - }; - OBJ_346 /* Matchers */ = { - isa = PBXGroup; - children = ( - OBJ_347 /* AllPass.swift */, - OBJ_348 /* Async.swift */, - OBJ_349 /* BeAKindOf.swift */, - OBJ_350 /* BeAnInstanceOf.swift */, - OBJ_351 /* BeCloseTo.swift */, - OBJ_352 /* BeEmpty.swift */, - OBJ_353 /* BeGreaterThan.swift */, - OBJ_354 /* BeGreaterThanOrEqualTo.swift */, - OBJ_355 /* BeIdenticalTo.swift */, - OBJ_356 /* BeLessThan.swift */, - OBJ_357 /* BeLessThanOrEqual.swift */, - OBJ_358 /* BeLogical.swift */, - OBJ_359 /* BeNil.swift */, - OBJ_360 /* BeVoid.swift */, - OBJ_361 /* BeginWith.swift */, - OBJ_362 /* Contain.swift */, - OBJ_363 /* ContainElementSatisfying.swift */, - OBJ_364 /* ElementsEqual.swift */, - OBJ_365 /* EndWith.swift */, - OBJ_366 /* Equal.swift */, - OBJ_367 /* HaveCount.swift */, - OBJ_368 /* Match.swift */, - OBJ_369 /* MatchError.swift */, - OBJ_370 /* MatcherFunc.swift */, - OBJ_371 /* MatcherProtocols.swift */, - OBJ_372 /* PostNotification.swift */, - OBJ_373 /* Predicate.swift */, - OBJ_374 /* RaisesException.swift */, - OBJ_375 /* SatisfyAllOf.swift */, - OBJ_376 /* SatisfyAnyOf.swift */, - OBJ_377 /* ThrowAssertion.swift */, - OBJ_378 /* ThrowError.swift */, - OBJ_379 /* ToSucceed.swift */, + OBJ_50 /* PDFTableOfContent.swift */, ); - path = Matchers; + path = "Table Of Content"; sourceTree = ""; }; - OBJ_380 /* Utils */ = { + OBJ_5 /* */ = { isa = PBXGroup; children = ( - OBJ_381 /* Await.swift */, - OBJ_382 /* Errors.swift */, - OBJ_383 /* Functional.swift */, - OBJ_384 /* SourceLocation.swift */, - OBJ_385 /* Stringers.swift */, - ); - path = Utils; + OBJ_6 /* Package.swift */, + OBJ_7 /* Sources */, + OBJ_174 /* Tests */, + OBJ_277 /* Dependencies */, + OBJ_395 /* Products */, + OBJ_406 /* Example macOS */, + OBJ_407 /* resources */, + OBJ_408 /* Shared iOS */, + OBJ_409 /* Example iOS-SwiftPM */, + OBJ_410 /* Shared */, + OBJ_411 /* Documentation */, + OBJ_412 /* build */, + OBJ_413 /* Example iOS-Carthage */, + OBJ_414 /* Example iOS-Cocoapods */, + OBJ_415 /* codecov.yml */, + OBJ_416 /* TPPDF.podspec */, + OBJ_417 /* LICENSE */, + OBJ_418 /* CODE_OF_CONDUCT.md */, + OBJ_419 /* README.md */, + OBJ_420 /* Gemfile */, + OBJ_421 /* Gemfile.lock */, + OBJ_422 /* CHANGELOG.md */, + D4B7EA1C25A1BB67007D09C7 /* Frameworks */, + ); + name = ""; sourceTree = ""; }; - OBJ_386 /* NimbleCwlCatchException */ = { + OBJ_51 /* Table */ = { isa = PBXGroup; children = ( - OBJ_387 /* CwlCatchException.swift */, + OBJ_52 /* Content */, + OBJ_60 /* PDFTable.swift */, + OBJ_61 /* PDFTableCell.swift */, + OBJ_62 /* PDFTableCellAlignment.swift */, + OBJ_63 /* PDFTableCellPosition.swift */, + OBJ_64 /* Sections */, + OBJ_75 /* Style */, ); - name = NimbleCwlCatchException; - path = .build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Dependencies/CwlCatchException/Sources/CwlCatchException; - sourceTree = SOURCE_ROOT; + path = Table; + sourceTree = ""; }; - OBJ_388 /* NimbleCwlCatchExceptionSupport */ = { + OBJ_52 /* Content */ = { isa = PBXGroup; children = ( - OBJ_389 /* CwlCatchException.m */, - OBJ_390 /* include */, + OBJ_53 /* NSAttributedString+PDFTableContent.swift */, + OBJ_54 /* Number+PDFTableContentable.swift */, + OBJ_55 /* PDFTableContent+ContentType.swift */, + OBJ_56 /* PDFTableContent.swift */, + OBJ_57 /* PDFTableContentable.swift */, + OBJ_58 /* String+PDFTableContent.swift */, + OBJ_59 /* UIImage+PDFTableContent.swift */, ); - name = NimbleCwlCatchExceptionSupport; - path = .build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Dependencies/CwlCatchException/Sources/CwlCatchExceptionSupport; - sourceTree = SOURCE_ROOT; + path = Content; + sourceTree = ""; }; - OBJ_390 /* include */ = { + OBJ_64 /* Sections */ = { isa = PBXGroup; children = ( - OBJ_391 /* CwlCatchException.h */, - OBJ_392 /* module.modulemap */, + OBJ_65 /* PDFTable+CellSubscripts.swift */, + OBJ_66 /* PDFTable+ColumnSubscripts.swift */, + OBJ_67 /* PDFTable+RowSubscripts.swift */, + OBJ_68 /* PDFTable+SectionSubscripts.swift */, + OBJ_69 /* PDFTableColumn.swift */, + OBJ_70 /* PDFTableColumns.swift */, + OBJ_71 /* PDFTableMergeable.swift */, + OBJ_72 /* PDFTableRow.swift */, + OBJ_73 /* PDFTableRows.swift */, + OBJ_74 /* PDFTableSection.swift */, ); - path = include; + path = Sections; sourceTree = ""; }; - OBJ_393 /* NimbleCwlMachBadInstructionHandler */ = { + OBJ_7 /* Sources */ = { isa = PBXGroup; children = ( - OBJ_394 /* CwlMachBadInstructionHandler.m */, - OBJ_395 /* mach_excServer.c */, - OBJ_396 /* include */, + OBJ_8 /* API */, + OBJ_96 /* Internal */, ); - name = NimbleCwlMachBadInstructionHandler; - path = .build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler; + name = Sources; + path = Source; sourceTree = SOURCE_ROOT; }; - OBJ_396 /* include */ = { + OBJ_75 /* Style */ = { isa = PBXGroup; children = ( - OBJ_397 /* CwlMachBadInstructionHandler.h */, - OBJ_398 /* module.modulemap */, + OBJ_76 /* PDFTableCellBorders.swift */, + OBJ_77 /* PDFTableCellPosition+Equatable-Hashable.swift */, + OBJ_78 /* PDFTableCellStyle.swift */, + OBJ_79 /* PDFTableStyle+Defaults.swift */, + OBJ_80 /* PDFTableStyle+Equatable.swift */, + OBJ_81 /* PDFTableStyle.swift */, ); - path = include; + path = Style; + sourceTree = ""; + }; + OBJ_8 /* API */ = { + isa = PBXGroup; + children = ( + OBJ_9 /* External */, + OBJ_11 /* Graphics */, + OBJ_18 /* Groups */, + OBJ_23 /* Image */, + OBJ_27 /* Layout */, + OBJ_30 /* List */, + OBJ_34 /* Metadata */, + OBJ_37 /* PDFDocument.swift */, + OBJ_38 /* PDFGenerator+Generation.swift */, + OBJ_39 /* PDFGenerator.swift */, + OBJ_40 /* PDFGeneratorProtocol.swift */, + OBJ_41 /* PDFMultiDocumentGenerator.swift */, + OBJ_42 /* Page Format */, + OBJ_46 /* Section */, + OBJ_49 /* Table Of Content */, + OBJ_51 /* Table */, + OBJ_82 /* Text */, + OBJ_88 /* Utils */, + ); + path = API; sourceTree = ""; }; - OBJ_399 /* NimbleCwlPreconditionTesting */ = { + OBJ_82 /* Text */ = { isa = PBXGroup; children = ( - OBJ_400 /* CwlBadInstructionException.swift */, - OBJ_401 /* CwlCatchBadInstruction.swift */, - OBJ_402 /* CwlDarwinDefinitions.swift */, + OBJ_83 /* PDFAttributedText.swift */, + OBJ_84 /* PDFSimpleText+Equatable.swift */, + OBJ_85 /* PDFSimpleText.swift */, + OBJ_86 /* PDFText.swift */, + OBJ_87 /* PDFTextStyle.swift */, ); - name = NimbleCwlPreconditionTesting; - path = .build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlPreconditionTesting; - sourceTree = SOURCE_ROOT; + path = Text; + sourceTree = ""; }; - OBJ_404 /* Products */ = { + OBJ_88 /* Utils */ = { isa = PBXGroup; children = ( - "Nimble::NimbleCwlCatchException::Product" /* NimbleCwlCatchException.framework */, - "Nimble::NimbleCwlPreconditionTesting::Product" /* NimbleCwlPreconditionTesting.framework */, - "TPPDF::TPPDFTests::Product" /* TPPDFTests.xctest */, - "TPPDF::TPPDF::Product" /* TPPDF.framework */, - "Nimble::Nimble::Product" /* Nimble.framework */, - "Quick::Quick::Product" /* Quick.framework */, - "Quick::QuickSpecBase::Product" /* QuickSpecBase.framework */, - "Nimble::NimbleCwlCatchExceptionSupport::Product" /* NimbleCwlCatchExceptionSupport.framework */, - "Nimble::NimbleCwlMachBadInstructionHandler::Product" /* NimbleCwlMachBadInstructionHandler.framework */, + OBJ_89 /* CrossPlattformGraphics.swift */, + OBJ_90 /* PDFConstants.swift */, + OBJ_91 /* PDFCopy.swift */, + OBJ_92 /* PDFDocumentObject.swift */, + OBJ_93 /* PDFError.swift */, + OBJ_94 /* PDFRenderObject.swift */, + OBJ_95 /* PDFTaggableObject.swift */, ); - name = Products; - sourceTree = BUILT_PRODUCTS_DIR; + path = Utils; + sourceTree = ""; }; - OBJ_5 = { + OBJ_9 /* External */ = { isa = PBXGroup; children = ( - OBJ_6 /* Package.swift */, - OBJ_7 /* Sources */, - OBJ_194 /* Tests */, - OBJ_294 /* Dependencies */, - OBJ_404 /* Products */, + OBJ_10 /* PDFExternalDocument.swift */, ); + path = External; sourceTree = ""; }; - OBJ_7 /* Sources */ = { + OBJ_96 /* Internal */ = { + isa = PBXGroup; + children = ( + OBJ_97 /* External */, + OBJ_100 /* Graphics */, + OBJ_110 /* Group */, + OBJ_112 /* Image */, + OBJ_115 /* Layout */, + OBJ_133 /* List */, + OBJ_135 /* Math */, + OBJ_138 /* PDFGenerator+Debug.swift */, + OBJ_139 /* PDFGenerator+Layout.swift */, + OBJ_140 /* Pagination */, + OBJ_147 /* Section */, + OBJ_151 /* Table Of Content */, + OBJ_153 /* Table */, + OBJ_159 /* Text */, + OBJ_163 /* Utils */, + ); + path = Internal; + sourceTree = ""; + }; + OBJ_97 /* External */ = { isa = PBXGroup; children = ( - D4803C4124703E5300DDA039 /* API */, - D4803BE624703E5300DDA039 /* Internal */, + OBJ_98 /* PDFExternalDocumentObject.swift */, + OBJ_99 /* PDFExternalPageObject.swift */, ); - name = Sources; - path = Source; - sourceTree = SOURCE_ROOT; + path = External; + sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - OBJ_568 /* Headers */ = { + OBJ_452 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 0; files = ( - OBJ_569 /* QuickSpecBase.h in Headers */, + OBJ_453 /* CwlMachBadInstructionHandler.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - "Nimble::Nimble" /* Nimble */ = { + "CwlCatchException::CwlCatchException" /* CwlCatchException */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_415 /* Build configuration list for PBXNativeTarget "Nimble" */; + buildConfigurationList = OBJ_424 /* Build configuration list for PBXNativeTarget "CwlCatchException" */; buildPhases = ( - OBJ_418 /* Sources */, - OBJ_471 /* Frameworks */, + OBJ_427 /* Sources */, + OBJ_429 /* Frameworks */, ); buildRules = ( ); dependencies = ( - OBJ_476 /* PBXTargetDependency */, - OBJ_478 /* PBXTargetDependency */, - OBJ_480 /* PBXTargetDependency */, - OBJ_482 /* PBXTargetDependency */, + OBJ_431 /* PBXTargetDependency */, ); - name = Nimble; - productName = Nimble; - productReference = "Nimble::Nimble::Product" /* Nimble.framework */; + name = CwlCatchException; + productName = CwlCatchException; + productReference = "CwlCatchException::CwlCatchException::Product" /* CwlCatchException.framework */; productType = "com.apple.product-type.framework"; }; - "Nimble::NimbleCwlCatchException" /* NimbleCwlCatchException */ = { + "CwlCatchException::CwlCatchExceptionSupport" /* CwlCatchExceptionSupport */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_484 /* Build configuration list for PBXNativeTarget "NimbleCwlCatchException" */; + buildConfigurationList = OBJ_439 /* Build configuration list for PBXNativeTarget "CwlCatchExceptionSupport" */; buildPhases = ( - OBJ_487 /* Sources */, - OBJ_489 /* Frameworks */, + OBJ_442 /* Sources */, + OBJ_444 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = CwlCatchExceptionSupport; + productName = CwlCatchExceptionSupport; + productReference = "CwlCatchException::CwlCatchExceptionSupport::Product" /* CwlCatchExceptionSupport.framework */; + productType = "com.apple.product-type.framework"; + }; + "CwlCatchException::SwiftPMPackageDescription" /* CwlCatchExceptionPackageDescription */ = { + isa = PBXNativeTarget; + buildConfigurationList = OBJ_434 /* Build configuration list for PBXNativeTarget "CwlCatchExceptionPackageDescription" */; + buildPhases = ( + OBJ_437 /* Sources */, ); buildRules = ( ); dependencies = ( - OBJ_491 /* PBXTargetDependency */, ); - name = NimbleCwlCatchException; - productName = NimbleCwlCatchException; - productReference = "Nimble::NimbleCwlCatchException::Product" /* NimbleCwlCatchException.framework */; + name = CwlCatchExceptionPackageDescription; + productName = CwlCatchExceptionPackageDescription; productType = "com.apple.product-type.framework"; }; - "Nimble::NimbleCwlCatchExceptionSupport" /* NimbleCwlCatchExceptionSupport */ = { + "CwlPreconditionTesting::CwlMachBadInstructionHandler" /* CwlMachBadInstructionHandler */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_492 /* Build configuration list for PBXNativeTarget "NimbleCwlCatchExceptionSupport" */; + buildConfigurationList = OBJ_446 /* Build configuration list for PBXNativeTarget "CwlMachBadInstructionHandler" */; buildPhases = ( - OBJ_495 /* Sources */, - OBJ_497 /* Frameworks */, + OBJ_449 /* Sources */, + OBJ_452 /* Headers */, + OBJ_454 /* Frameworks */, ); buildRules = ( ); dependencies = ( ); - name = NimbleCwlCatchExceptionSupport; - productName = NimbleCwlCatchExceptionSupport; - productReference = "Nimble::NimbleCwlCatchExceptionSupport::Product" /* NimbleCwlCatchExceptionSupport.framework */; + name = CwlMachBadInstructionHandler; + productName = CwlMachBadInstructionHandler; + productReference = "CwlPreconditionTesting::CwlMachBadInstructionHandler::Product" /* CwlMachBadInstructionHandler.framework */; productType = "com.apple.product-type.framework"; }; - "Nimble::NimbleCwlMachBadInstructionHandler" /* NimbleCwlMachBadInstructionHandler */ = { + "CwlPreconditionTesting::CwlPosixPreconditionTesting" /* CwlPosixPreconditionTesting */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_498 /* Build configuration list for PBXNativeTarget "NimbleCwlMachBadInstructionHandler" */; + buildConfigurationList = OBJ_456 /* Build configuration list for PBXNativeTarget "CwlPosixPreconditionTesting" */; buildPhases = ( - OBJ_501 /* Sources */, - OBJ_504 /* Frameworks */, + OBJ_459 /* Sources */, + OBJ_461 /* Frameworks */, ); buildRules = ( ); dependencies = ( ); - name = NimbleCwlMachBadInstructionHandler; - productName = NimbleCwlMachBadInstructionHandler; - productReference = "Nimble::NimbleCwlMachBadInstructionHandler::Product" /* NimbleCwlMachBadInstructionHandler.framework */; + name = CwlPosixPreconditionTesting; + productName = CwlPosixPreconditionTesting; + productReference = "CwlPreconditionTesting::CwlPosixPreconditionTesting::Product" /* CwlPosixPreconditionTesting.framework */; productType = "com.apple.product-type.framework"; }; - "Nimble::NimbleCwlPreconditionTesting" /* NimbleCwlPreconditionTesting */ = { + "CwlPreconditionTesting::CwlPreconditionTesting" /* CwlPreconditionTesting */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_505 /* Build configuration list for PBXNativeTarget "NimbleCwlPreconditionTesting" */; + buildConfigurationList = OBJ_463 /* Build configuration list for PBXNativeTarget "CwlPreconditionTesting" */; buildPhases = ( - OBJ_508 /* Sources */, - OBJ_512 /* Frameworks */, + OBJ_466 /* Sources */, + OBJ_470 /* Frameworks */, ); buildRules = ( ); dependencies = ( - OBJ_516 /* PBXTargetDependency */, - OBJ_517 /* PBXTargetDependency */, - OBJ_518 /* PBXTargetDependency */, + OBJ_474 /* PBXTargetDependency */, + OBJ_475 /* PBXTargetDependency */, + OBJ_476 /* PBXTargetDependency */, ); - name = NimbleCwlPreconditionTesting; - productName = NimbleCwlPreconditionTesting; - productReference = "Nimble::NimbleCwlPreconditionTesting::Product" /* NimbleCwlPreconditionTesting.framework */; + name = CwlPreconditionTesting; + productName = CwlPreconditionTesting; + productReference = "CwlPreconditionTesting::CwlPreconditionTesting::Product" /* CwlPreconditionTesting.framework */; + productType = "com.apple.product-type.framework"; + }; + "CwlPreconditionTesting::SwiftPMPackageDescription" /* CwlPreconditionTestingPackageDescription */ = { + isa = PBXNativeTarget; + buildConfigurationList = OBJ_478 /* Build configuration list for PBXNativeTarget "CwlPreconditionTestingPackageDescription" */; + buildPhases = ( + OBJ_481 /* Sources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = CwlPreconditionTestingPackageDescription; + productName = CwlPreconditionTestingPackageDescription; + productType = "com.apple.product-type.framework"; + }; + "Nimble::Nimble" /* Nimble */ = { + isa = PBXNativeTarget; + buildConfigurationList = OBJ_484 /* Build configuration list for PBXNativeTarget "Nimble" */; + buildPhases = ( + OBJ_487 /* Sources */, + OBJ_541 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + OBJ_547 /* PBXTargetDependency */, + OBJ_548 /* PBXTargetDependency */, + OBJ_549 /* PBXTargetDependency */, + OBJ_550 /* PBXTargetDependency */, + OBJ_551 /* PBXTargetDependency */, + ); + name = Nimble; + productName = Nimble; + productReference = "Nimble::Nimble::Product" /* Nimble.framework */; productType = "com.apple.product-type.framework"; }; "Nimble::SwiftPMPackageDescription" /* NimblePackageDescription */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_520 /* Build configuration list for PBXNativeTarget "NimblePackageDescription" */; + buildConfigurationList = OBJ_553 /* Build configuration list for PBXNativeTarget "NimblePackageDescription" */; buildPhases = ( - OBJ_523 /* Sources */, + OBJ_556 /* Sources */, ); buildRules = ( ); @@ -1906,43 +2084,43 @@ }; "Quick::Quick" /* Quick */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_526 /* Build configuration list for PBXNativeTarget "Quick" */; + buildConfigurationList = OBJ_559 /* Build configuration list for PBXNativeTarget "Quick" */; buildPhases = ( - OBJ_529 /* Sources */, - OBJ_553 /* Frameworks */, + OBJ_562 /* Sources */, + OBJ_587 /* Frameworks */, ); buildRules = ( ); dependencies = ( - OBJ_555 /* PBXTargetDependency */, + OBJ_589 /* PBXTargetDependency */, ); name = Quick; productName = Quick; productReference = "Quick::Quick::Product" /* Quick.framework */; productType = "com.apple.product-type.framework"; }; - "Quick::QuickSpecBase" /* QuickSpecBase */ = { + "Quick::QuickObjCRuntime" /* QuickObjCRuntime */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_563 /* Build configuration list for PBXNativeTarget "QuickSpecBase" */; + buildConfigurationList = OBJ_591 /* Build configuration list for PBXNativeTarget "QuickObjCRuntime" */; buildPhases = ( - OBJ_566 /* Sources */, - OBJ_568 /* Headers */, - OBJ_570 /* Frameworks */, + OBJ_594 /* Sources */, + OBJ_596 /* Frameworks */, + D4B7EA2025A1BB67007D09C7 /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( ); - name = QuickSpecBase; - productName = QuickSpecBase; - productReference = "Quick::QuickSpecBase::Product" /* QuickSpecBase.framework */; + name = QuickObjCRuntime; + productName = QuickObjCRuntime; + productReference = "Quick::QuickObjCRuntime::Product" /* QuickObjCRuntime.framework */; productType = "com.apple.product-type.framework"; }; "Quick::SwiftPMPackageDescription" /* QuickPackageDescription */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_558 /* Build configuration list for PBXNativeTarget "QuickPackageDescription" */; + buildConfigurationList = OBJ_598 /* Build configuration list for PBXNativeTarget "QuickPackageDescription" */; buildPhases = ( - OBJ_561 /* Sources */, + OBJ_601 /* Sources */, ); buildRules = ( ); @@ -1954,9 +2132,9 @@ }; "TPPDF::SwiftPMPackageDescription" /* TPPDFPackageDescription */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_731 /* Build configuration list for PBXNativeTarget "TPPDFPackageDescription" */; + buildConfigurationList = OBJ_744 /* Build configuration list for PBXNativeTarget "TPPDFPackageDescription" */; buildPhases = ( - OBJ_734 /* Sources */, + OBJ_747 /* Sources */, ); buildRules = ( ); @@ -1968,10 +2146,10 @@ }; "TPPDF::TPPDF" /* TPPDF */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_572 /* Build configuration list for PBXNativeTarget "TPPDF" */; + buildConfigurationList = OBJ_604 /* Build configuration list for PBXNativeTarget "TPPDF" */; buildPhases = ( - OBJ_575 /* Sources */, - OBJ_729 /* Frameworks */, + OBJ_607 /* Sources */, + OBJ_742 /* Frameworks */, ); buildRules = ( ); @@ -1984,22 +2162,23 @@ }; "TPPDF::TPPDFTests" /* TPPDFTests */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_742 /* Build configuration list for PBXNativeTarget "TPPDFTests" */; + buildConfigurationList = OBJ_755 /* Build configuration list for PBXNativeTarget "TPPDFTests" */; buildPhases = ( - OBJ_745 /* Sources */, - OBJ_830 /* Frameworks */, + OBJ_758 /* Sources */, + OBJ_844 /* Frameworks */, ); buildRules = ( ); dependencies = ( - OBJ_839 /* PBXTargetDependency */, - OBJ_840 /* PBXTargetDependency */, - OBJ_841 /* PBXTargetDependency */, - OBJ_842 /* PBXTargetDependency */, - OBJ_843 /* PBXTargetDependency */, - OBJ_844 /* PBXTargetDependency */, - OBJ_845 /* PBXTargetDependency */, - OBJ_846 /* PBXTargetDependency */, + OBJ_854 /* PBXTargetDependency */, + OBJ_855 /* PBXTargetDependency */, + OBJ_856 /* PBXTargetDependency */, + OBJ_857 /* PBXTargetDependency */, + OBJ_858 /* PBXTargetDependency */, + OBJ_859 /* PBXTargetDependency */, + OBJ_860 /* PBXTargetDependency */, + OBJ_861 /* PBXTargetDependency */, + OBJ_862 /* PBXTargetDependency */, ); name = TPPDFTests; productName = TPPDFTests; @@ -2016,26 +2195,29 @@ LastUpgradeCheck = 9999; }; buildConfigurationList = OBJ_2 /* Build configuration list for PBXProject "TPPDF" */; - compatibilityVersion = "Xcode 11.4"; + compatibilityVersion = "Xcode 3.2"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, ); - mainGroup = OBJ_5; - productRefGroup = OBJ_404 /* Products */; + mainGroup = OBJ_5 /* */; + productRefGroup = OBJ_395 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( + "CwlCatchException::CwlCatchException" /* CwlCatchException */, + "CwlCatchException::SwiftPMPackageDescription" /* CwlCatchExceptionPackageDescription */, + "CwlCatchException::CwlCatchExceptionSupport" /* CwlCatchExceptionSupport */, + "CwlPreconditionTesting::CwlMachBadInstructionHandler" /* CwlMachBadInstructionHandler */, + "CwlPreconditionTesting::CwlPosixPreconditionTesting" /* CwlPosixPreconditionTesting */, + "CwlPreconditionTesting::CwlPreconditionTesting" /* CwlPreconditionTesting */, + "CwlPreconditionTesting::SwiftPMPackageDescription" /* CwlPreconditionTestingPackageDescription */, "Nimble::Nimble" /* Nimble */, - "Nimble::NimbleCwlCatchException" /* NimbleCwlCatchException */, - "Nimble::NimbleCwlCatchExceptionSupport" /* NimbleCwlCatchExceptionSupport */, - "Nimble::NimbleCwlMachBadInstructionHandler" /* NimbleCwlMachBadInstructionHandler */, - "Nimble::NimbleCwlPreconditionTesting" /* NimbleCwlPreconditionTesting */, "Nimble::SwiftPMPackageDescription" /* NimblePackageDescription */, "Quick::Quick" /* Quick */, + "Quick::QuickObjCRuntime" /* QuickObjCRuntime */, "Quick::SwiftPMPackageDescription" /* QuickPackageDescription */, - "Quick::QuickSpecBase" /* QuickSpecBase */, "TPPDF::TPPDF" /* TPPDF */, "TPPDF::SwiftPMPackageDescription" /* TPPDFPackageDescription */, "TPPDF::TPPDFPackageTests::ProductTarget" /* TPPDFPackageTests */, @@ -2045,494 +2227,523 @@ /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ - OBJ_418 /* Sources */ = { + OBJ_427 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_419 /* AdapterProtocols.swift in Sources */, - OBJ_420 /* AssertionDispatcher.swift in Sources */, - OBJ_421 /* AssertionRecorder.swift in Sources */, - OBJ_422 /* NMBExpectation.swift in Sources */, - OBJ_423 /* NMBObjCMatcher.swift in Sources */, - OBJ_424 /* NimbleEnvironment.swift in Sources */, - OBJ_425 /* NimbleXCTestHandler.swift in Sources */, - OBJ_426 /* ExceptionCapture.swift in Sources */, - OBJ_427 /* DSL+Wait.swift in Sources */, - OBJ_428 /* DSL.swift in Sources */, - OBJ_429 /* Expectation.swift in Sources */, - OBJ_430 /* ExpectationMessage.swift in Sources */, - OBJ_431 /* Expression.swift in Sources */, - OBJ_432 /* FailureMessage.swift in Sources */, - OBJ_433 /* AllPass.swift in Sources */, - OBJ_434 /* Async.swift in Sources */, - OBJ_435 /* BeAKindOf.swift in Sources */, - OBJ_436 /* BeAnInstanceOf.swift in Sources */, - OBJ_437 /* BeCloseTo.swift in Sources */, - OBJ_438 /* BeEmpty.swift in Sources */, - OBJ_439 /* BeGreaterThan.swift in Sources */, - OBJ_440 /* BeGreaterThanOrEqualTo.swift in Sources */, - OBJ_441 /* BeIdenticalTo.swift in Sources */, - OBJ_442 /* BeLessThan.swift in Sources */, - OBJ_443 /* BeLessThanOrEqual.swift in Sources */, - OBJ_444 /* BeLogical.swift in Sources */, - OBJ_445 /* BeNil.swift in Sources */, - OBJ_446 /* BeVoid.swift in Sources */, - OBJ_447 /* BeginWith.swift in Sources */, - OBJ_448 /* Contain.swift in Sources */, - OBJ_449 /* ContainElementSatisfying.swift in Sources */, - OBJ_450 /* ElementsEqual.swift in Sources */, - OBJ_451 /* EndWith.swift in Sources */, - OBJ_452 /* Equal.swift in Sources */, - OBJ_453 /* HaveCount.swift in Sources */, - OBJ_454 /* Match.swift in Sources */, - OBJ_455 /* MatchError.swift in Sources */, - OBJ_456 /* MatcherFunc.swift in Sources */, - OBJ_457 /* MatcherProtocols.swift in Sources */, - OBJ_458 /* PostNotification.swift in Sources */, - OBJ_459 /* Predicate.swift in Sources */, - OBJ_460 /* RaisesException.swift in Sources */, - OBJ_461 /* SatisfyAllOf.swift in Sources */, - OBJ_462 /* SatisfyAnyOf.swift in Sources */, - OBJ_463 /* ThrowAssertion.swift in Sources */, - OBJ_464 /* ThrowError.swift in Sources */, - OBJ_465 /* ToSucceed.swift in Sources */, - OBJ_466 /* Await.swift in Sources */, - OBJ_467 /* Errors.swift in Sources */, - OBJ_468 /* Functional.swift in Sources */, - OBJ_469 /* SourceLocation.swift in Sources */, - OBJ_470 /* Stringers.swift in Sources */, + OBJ_428 /* CwlCatchException.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_487 /* Sources */ = { + OBJ_437 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_488 /* CwlCatchException.swift in Sources */, + OBJ_438 /* Package.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_495 /* Sources */ = { + OBJ_442 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_496 /* CwlCatchException.m in Sources */, + OBJ_443 /* CwlCatchException.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_501 /* Sources */ = { + OBJ_449 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_502 /* CwlMachBadInstructionHandler.m in Sources */, - OBJ_503 /* mach_excServer.c in Sources */, + OBJ_450 /* CwlMachBadInstructionHandler.m in Sources */, + OBJ_451 /* mach_excServer.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_508 /* Sources */ = { + OBJ_459 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_509 /* CwlBadInstructionException.swift in Sources */, - OBJ_510 /* CwlCatchBadInstruction.swift in Sources */, - OBJ_511 /* CwlDarwinDefinitions.swift in Sources */, + OBJ_460 /* CwlCatchBadInstructionPosix.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_523 /* Sources */ = { + OBJ_466 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_524 /* Package.swift in Sources */, + OBJ_467 /* CwlBadInstructionException.swift in Sources */, + OBJ_468 /* CwlCatchBadInstruction.swift in Sources */, + OBJ_469 /* CwlDarwinDefinitions.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_529 /* Sources */ = { + OBJ_481 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_530 /* Behavior.swift in Sources */, - OBJ_531 /* Callsite.swift in Sources */, - OBJ_532 /* Configuration.swift in Sources */, - OBJ_533 /* QuickConfiguration.swift in Sources */, - OBJ_534 /* DSL.swift in Sources */, - OBJ_535 /* World+DSL.swift in Sources */, - OBJ_536 /* ErrorUtility.swift in Sources */, - OBJ_537 /* Example.swift in Sources */, - OBJ_538 /* ExampleGroup.swift in Sources */, - OBJ_539 /* ExampleMetadata.swift in Sources */, - OBJ_540 /* Filter.swift in Sources */, - OBJ_541 /* Closures.swift in Sources */, - OBJ_542 /* ExampleHooks.swift in Sources */, - OBJ_543 /* HooksPhase.swift in Sources */, - OBJ_544 /* SuiteHooks.swift in Sources */, - OBJ_545 /* NSBundle+CurrentTestBundle.swift in Sources */, - OBJ_546 /* QuickMain.swift in Sources */, - OBJ_547 /* QuickSelectedTestSuiteBuilder.swift in Sources */, - OBJ_548 /* QuickSpec.swift in Sources */, - OBJ_549 /* QuickTestSuite.swift in Sources */, - OBJ_550 /* String+C99ExtendedIdentifier.swift in Sources */, - OBJ_551 /* URL+FileName.swift in Sources */, - OBJ_552 /* World.swift in Sources */, + OBJ_482 /* Package.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_561 /* Sources */ = { + OBJ_487 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 0; + files = ( + OBJ_488 /* AdapterProtocols.swift in Sources */, + OBJ_489 /* AssertionDispatcher.swift in Sources */, + OBJ_490 /* AssertionRecorder.swift in Sources */, + OBJ_491 /* NMBExpectation.swift in Sources */, + OBJ_492 /* NMBObjCMatcher.swift in Sources */, + OBJ_493 /* NimbleEnvironment.swift in Sources */, + OBJ_494 /* NimbleXCTestHandler.swift in Sources */, + OBJ_495 /* ExceptionCapture.swift in Sources */, + OBJ_496 /* DSL+Wait.swift in Sources */, + OBJ_497 /* DSL.swift in Sources */, + OBJ_498 /* Expectation.swift in Sources */, + OBJ_499 /* ExpectationMessage.swift in Sources */, + OBJ_500 /* Expression.swift in Sources */, + OBJ_501 /* FailureMessage.swift in Sources */, + OBJ_502 /* AllPass.swift in Sources */, + OBJ_503 /* Async.swift in Sources */, + OBJ_504 /* BeAKindOf.swift in Sources */, + OBJ_505 /* BeAnInstanceOf.swift in Sources */, + OBJ_506 /* BeCloseTo.swift in Sources */, + OBJ_507 /* BeEmpty.swift in Sources */, + OBJ_508 /* BeGreaterThan.swift in Sources */, + OBJ_509 /* BeGreaterThanOrEqualTo.swift in Sources */, + OBJ_510 /* BeIdenticalTo.swift in Sources */, + OBJ_511 /* BeLessThan.swift in Sources */, + OBJ_512 /* BeLessThanOrEqual.swift in Sources */, + OBJ_513 /* BeLogical.swift in Sources */, + OBJ_514 /* BeNil.swift in Sources */, + OBJ_515 /* BeVoid.swift in Sources */, + OBJ_516 /* BeginWith.swift in Sources */, + OBJ_517 /* BeginWithPrefix.swift in Sources */, + OBJ_518 /* Contain.swift in Sources */, + OBJ_519 /* ContainElementSatisfying.swift in Sources */, + OBJ_520 /* ElementsEqual.swift in Sources */, + OBJ_521 /* EndWith.swift in Sources */, + OBJ_522 /* Equal.swift in Sources */, + OBJ_523 /* HaveCount.swift in Sources */, + OBJ_524 /* Match.swift in Sources */, + OBJ_525 /* MatchError.swift in Sources */, + OBJ_526 /* MatcherFunc.swift in Sources */, + OBJ_527 /* MatcherProtocols.swift in Sources */, + OBJ_528 /* PostNotification.swift in Sources */, + OBJ_529 /* Predicate.swift in Sources */, + OBJ_530 /* RaisesException.swift in Sources */, + OBJ_531 /* SatisfyAllOf.swift in Sources */, + OBJ_532 /* SatisfyAnyOf.swift in Sources */, + OBJ_533 /* ThrowAssertion.swift in Sources */, + OBJ_534 /* ThrowError.swift in Sources */, + OBJ_535 /* ToSucceed.swift in Sources */, + OBJ_536 /* Await.swift in Sources */, + OBJ_537 /* DispatchTimeInterval.swift in Sources */, + OBJ_538 /* Errors.swift in Sources */, + OBJ_539 /* SourceLocation.swift in Sources */, + OBJ_540 /* Stringers.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + OBJ_556 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_562 /* Package.swift in Sources */, + OBJ_557 /* Package.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_566 /* Sources */ = { + OBJ_562 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_567 /* QuickSpecBase.m in Sources */, + OBJ_563 /* Behavior.swift in Sources */, + OBJ_564 /* Callsite.swift in Sources */, + OBJ_565 /* Configuration.swift in Sources */, + OBJ_566 /* QuickConfiguration.swift in Sources */, + OBJ_567 /* DSL.swift in Sources */, + OBJ_568 /* World+DSL.swift in Sources */, + OBJ_569 /* ErrorUtility.swift in Sources */, + OBJ_570 /* Example.swift in Sources */, + OBJ_571 /* ExampleGroup.swift in Sources */, + OBJ_572 /* ExampleMetadata.swift in Sources */, + OBJ_573 /* Filter.swift in Sources */, + OBJ_574 /* Closures.swift in Sources */, + OBJ_575 /* ExampleHooks.swift in Sources */, + OBJ_576 /* HooksPhase.swift in Sources */, + OBJ_577 /* SuiteHooks.swift in Sources */, + OBJ_578 /* NSBundle+CurrentTestBundle.swift in Sources */, + OBJ_579 /* QuickMain.swift in Sources */, + OBJ_580 /* QuickSelectedTestSuiteBuilder.swift in Sources */, + OBJ_581 /* QuickSpec.swift in Sources */, + OBJ_582 /* QuickTestObservation.swift in Sources */, + OBJ_583 /* QuickTestSuite.swift in Sources */, + OBJ_584 /* String+C99ExtendedIdentifier.swift in Sources */, + OBJ_585 /* URL+FileName.swift in Sources */, + OBJ_586 /* World.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_575 /* Sources */ = { + OBJ_594 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - D4803CB724703E5300DDA039 /* PDFPaginationClosure.swift in Sources */, - D4803D2824703E5300DDA039 /* PDFTable+ColumnSubscripts.swift in Sources */, - D4803CB324703E5300DDA039 /* CGPoint+Math.swift in Sources */, - D4803CE224703E5300DDA039 /* PDFLayoutHeights+Equatable.swift in Sources */, - D4803CE324703E5300DDA039 /* PDFExternalPageObject.swift in Sources */, - D4803D1A24703E5300DDA039 /* PDFTableCellStyle+Equatable.swift in Sources */, - D4803D3224703E5300DDA039 /* UIImage+PDFTableContent.swift in Sources */, - D4803D2924703E5300DDA039 /* PDFTableColumn.swift in Sources */, - D4803D3B24703E5300DDA039 /* PDFText.swift in Sources */, - D4803CFD24703E5300DDA039 /* PDFPageFormat+Layout.swift in Sources */, - D4803CA924703E5300DDA039 /* PDFObjectAttribute.swift in Sources */, - D4803CAC24703E5300DDA039 /* FileManager+TemporaryFiles.swift in Sources */, - D4803D1824703E5300DDA039 /* PDFTableStyle.swift in Sources */, - D4803D3924703E5300DDA039 /* PDFAttributedText+Equatable.swift in Sources */, - D4803CB224703E5300DDA039 /* CGPoint+Null.swift in Sources */, - D4803D0924703E5300DDA039 /* PDFListItem+Equatable.swift in Sources */, - D4803D2424703E5300DDA039 /* PDFTableRow.swift in Sources */, - D4803CC724703E5300DDA039 /* PDFListObject.swift in Sources */, - D4803D1524703E5300DDA039 /* PDFExternalDocument.swift in Sources */, - D4803CA824703E5300DDA039 /* PDFAttributableObject.swift in Sources */, - D4803D2724703E5300DDA039 /* PDFTableRows.swift in Sources */, - D4803D0824703E5300DDA039 /* PDFListItem.swift in Sources */, - D4803D1324703E5300DDA039 /* PDFContainer.swift in Sources */, - D4803CA724703E5300DDA039 /* CustomStringConvertible+AutoDescribing.swift in Sources */, - D4803CD424703E5300DDA039 /* PDFOffsetObject.swift in Sources */, - D4803D0224703E5300DDA039 /* PDFGroup.swift in Sources */, - D4803CD624703E5300DDA039 /* PDFLayoutIndentations.swift in Sources */, - D4803D3024703E5300DDA039 /* PDFTableContent+ContentType.swift in Sources */, - D4803CBA24703E5300DDA039 /* PDFPagination+Equatable.swift in Sources */, - D4803D1224703E5300DDA039 /* PDFBezierPath+Copying.swift in Sources */, - D4803CAD24703E5300DDA039 /* Stack.swift in Sources */, - D4803CCF24703E5300DDA039 /* UIImage+Pixel.swift in Sources */, - D4803D0C24703E5300DDA039 /* PDFBezierPathVertex.swift in Sources */, - D4803CE524703E5300DDA039 /* PDFTableMergeUtil.swift in Sources */, - D4803D0024703E5300DDA039 /* PDFInfo.swift in Sources */, - D4803CCB24703E5300DDA039 /* PDFGraphics.swift in Sources */, - D4803D3424703E5300DDA039 /* PDFTableCellPosition.swift in Sources */, - D4803CAE24703E5300DDA039 /* PDFColumnWrapSectionObject.swift in Sources */, - D4803CD924703E5300DDA039 /* PDFSectionColumnContainer.swift in Sources */, - D4803CDD24703E5300DDA039 /* PDFLayout+Equatable.swift in Sources */, - D4803CD224703E5300DDA039 /* PDFPageBreakObject.swift in Sources */, - D4803CDC24703E5300DDA039 /* PDFSpaceObject.swift in Sources */, - D4803CFB24703E5300DDA039 /* PDFGenerator.swift in Sources */, - D4803CCD24703E5300DDA039 /* PDFLineObject.swift in Sources */, - D4803D3124703E5300DDA039 /* PDFTableContent.swift in Sources */, - D4803D0F24703E5300DDA039 /* PDFLineStyle.swift in Sources */, - D4803CEE24703E5300DDA039 /* PDFImage.swift in Sources */, - D4803D0324703E5300DDA039 /* PDFGroupContainer.swift in Sources */, - D4803CE424703E5300DDA039 /* PDFExternalDocumentObject.swift in Sources */, - D4803CDA24703E5300DDA039 /* PDFIndentationObject.swift in Sources */, - D4803CC924703E5300DDA039 /* PDFGenerator+Layout.swift in Sources */, - D4803CE824703E5300DDA039 /* PDFTableValidator.swift in Sources */, - D4803D2B24703E5300DDA039 /* NSAttributedString+PDFTableContent.swift in Sources */, - D4803CF024703E5300DDA039 /* PDFImage+Equatable.swift in Sources */, - D4803CB524703E5300DDA039 /* Int+RomanNumerals.swift in Sources */, - D4803CB124703E5300DDA039 /* PDFGenerator+Debug.swift in Sources */, - D4803D1F24703E5300DDA039 /* PDFTableCell+Equatable.swift in Sources */, - D4803CDE24703E5300DDA039 /* PDFColumnLayoutState.swift in Sources */, - D4803D3C24703E5300DDA039 /* PDFTextStyle.swift in Sources */, - D4803CEB24703E5300DDA039 /* PDFAttributedTextObject.swift in Sources */, - D4803D1C24703E5300DDA039 /* PDFTableCellPosition+Equatable-Hashable.swift in Sources */, - D4803D1724703E5300DDA039 /* PDFTable+Equatable.swift in Sources */, - D4803D0A24703E5300DDA039 /* PDFList+Equatable.swift in Sources */, - D4803D2124703E5300DDA039 /* PDFTableMergeable.swift in Sources */, - D4803CF724703E5300DDA039 /* PDFCopy.swift in Sources */, - D4803CAA24703E5300DDA039 /* PDFLocatedRenderObject.swift in Sources */, - D4803CC824703E5300DDA039 /* PDFTableOfContentObject.swift in Sources */, - D4803D2324703E5300DDA039 /* PDFTable+SectionSubscripts.swift in Sources */, - D4803D0424703E5300DDA039 /* PDFMasterGroup.swift in Sources */, - D4803CEC24703E5300DDA039 /* PDFTextColorObject.swift in Sources */, - D4803D0624703E5300DDA039 /* PDFListItemSymbol.swift in Sources */, - D4803D1124703E5300DDA039 /* PDFBezierPath.swift in Sources */, - D4803D3A24703E5300DDA039 /* PDFAttributedText.swift in Sources */, - D4803D2224703E5300DDA039 /* PDFTable+RowSubscripts.swift in Sources */, - D4839C39253706950005BB87 /* PDFTableCalculatedCell.swift in Sources */, - D4803CF924703E5300DDA039 /* PDFSection.swift in Sources */, - D4803CB924703E5300DDA039 /* PDFPaginationStyle+Equatable.swift in Sources */, - D4803CD124703E5300DDA039 /* PDFRectangleObject.swift in Sources */, - D4803CA524703E5300DDA039 /* PDFCalculations.swift in Sources */, - D4803D2624703E5300DDA039 /* PDFTableSection.swift in Sources */, - D4803CF424703E5300DDA039 /* PDFDocumentObject.swift in Sources */, - D4803CB024703E5300DDA039 /* PDFSectionObject.swift in Sources */, - D4803D2E24703E5300DDA039 /* PDFTableContentable.swift in Sources */, - D4803CEF24703E5300DDA039 /* PDFImageOptions.swift in Sources */, - D4803CF224703E5300DDA039 /* PDFGeneratorProtocol.swift in Sources */, - D4803CF524703E5300DDA039 /* PDFError.swift in Sources */, - D4803D0124703E5300DDA039 /* PDFInfo+Equatable.swift in Sources */, - D4803CA424703E5300DDA039 /* PDFImageRowObject.swift in Sources */, - D4803D2C24703E5300DDA039 /* PDFTableContent+Equatable.swift in Sources */, - D4803D0E24703E5300DDA039 /* PDFLineType.swift in Sources */, - D4803D2524703E5300DDA039 /* PDFTableColumns.swift in Sources */, - D4803CCC24703E5300DDA039 /* UIColor+CloseToEqual.swift in Sources */, - D4803CA224703E5300DDA039 /* PDFGroupObject.swift in Sources */, - D4803CE724703E5300DDA039 /* PDFTableObject.swift in Sources */, - D4803CAB24703E5300DDA039 /* WeakRef.swift in Sources */, - D4803CF124703E5300DDA039 /* PDFDocument.swift in Sources */, - D4803CB424703E5300DDA039 /* PDFPagination.swift in Sources */, - D4803D0D24703E5300DDA039 /* PDFLineStyle+Equatable.swift in Sources */, - D4803CD324703E5300DDA039 /* PDFLayoutHeights.swift in Sources */, - D4803CEA24703E5300DDA039 /* PDFFontObject.swift in Sources */, - D4803CE124703E5300DDA039 /* PDFIndentationObject+Equatable.swift in Sources */, - D4803D3324703E5300DDA039 /* PDFTableCell.swift in Sources */, - D4803CED24703E5300DDA039 /* PDFImageSizeFit.swift in Sources */, - D4803CD024703E5300DDA039 /* PDFLineSeparatorObject+Equatable.swift in Sources */, - D4803D0724703E5300DDA039 /* PDFList.swift in Sources */, - D4803CA624703E5300DDA039 /* PDFSlicedObject.swift in Sources */, - D4803D0B24703E5300DDA039 /* PDFTableOfContent.swift in Sources */, - D4803CD724703E5300DDA039 /* PDFOffsetObject+Equatable.swift in Sources */, - D4803D2F24703E5300DDA039 /* String+PDFTableContent.swift in Sources */, - D4803D1024703E5300DDA039 /* PDFDynamicGeometryShape.swift in Sources */, - D4803CCA24703E5300DDA039 /* PDFLineSeparatorObject.swift in Sources */, - D4803CD524703E5300DDA039 /* PDFLayoutIndentations+Equatable.swift in Sources */, - D4803D3624703E5300DDA039 /* PDFTable.swift in Sources */, - D4803D3824703E5300DDA039 /* PDFSimpleText.swift in Sources */, - D4803CB624703E5300DDA039 /* PDFPaginationStyle.swift in Sources */, - D4803CFE24703E5300DDA039 /* PDFPageFormat+SizeConstants.swift in Sources */, - D4803CA324703E5300DDA039 /* PDFImageObject.swift in Sources */, - D4803CCE24703E5300DDA039 /* UIColor+Hex.swift in Sources */, - D4803D3724703E5300DDA039 /* PDFSimpleText+Equatable.swift in Sources */, - D4803CE624703E5300DDA039 /* PDFTableNode.swift in Sources */, - D4803D0524703E5300DDA039 /* PDFGroup+Objects.swift in Sources */, - D4803CFC24703E5300DDA039 /* PDFPageFormat.swift in Sources */, - D4803D1D24703E5300DDA039 /* PDFTableCellBorders.swift in Sources */, - D4803D3524703E5300DDA039 /* PDFTableCellAlignment.swift in Sources */, - D4803D1B24703E5300DDA039 /* PDFTableCellBorders+Equatable.swift in Sources */, - D4803CE024703E5300DDA039 /* PDFMarginObject.swift in Sources */, - D4803CAF24703E5300DDA039 /* PDFSectionColumnObject.swift in Sources */, - D4803CDB24703E5300DDA039 /* PDFLayout.swift in Sources */, - D4803D2D24703E5300DDA039 /* Number+PDFTableContentable.swift in Sources */, - D4803CDF24703E5300DDA039 /* PDFPageLayout+Equatable.swift in Sources */, - D4EE2F9724A34C990004E3B9 /* PDFContextGraphics.swift in Sources */, - D477C4C424C479550097C2AB /* PDFConstants.swift in Sources */, - D4803D1E24703E5300DDA039 /* PDFTableStyle+Equatable.swift in Sources */, - D4803D1924703E5300DDA039 /* PDFTableStyle+Defaults.swift in Sources */, - D4803D2A24703E5300DDA039 /* PDFTable+CellSubscripts.swift in Sources */, - D4803CFA24703E5300DDA039 /* PDFSectionColumn.swift in Sources */, - D4803D1424703E5300DDA039 /* PDFPageLayout.swift in Sources */, - D4803D2024703E5300DDA039 /* PDFTableCellStyle.swift in Sources */, - D494BA6E257ADF850017C407 /* PDFTaggableObject.swift in Sources */, - D4803CFF24703E5300DDA039 /* PDFGenerator+Generation.swift in Sources */, - D4803CF324703E5300DDA039 /* PDFMultiDocumentGenerator.swift in Sources */, - D4EE2F9924A34CBF0004E3B9 /* CrossPlattformGraphics.swift in Sources */, - D4803CF624703E5300DDA039 /* PDFRenderObject.swift in Sources */, - D4803CD824703E5300DDA039 /* PDFPageBreakObject+Equatable.swift in Sources */, + OBJ_595 /* QuickSpecBase.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_734 /* Sources */ = { + OBJ_601 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_735 /* Package.swift in Sources */, + OBJ_602 /* Package.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_745 /* Sources */ = { + OBJ_607 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_746 /* PDFGraphics_Spec.swift in Sources */, - OBJ_747 /* PDFLineSeparatorObject+Equatable_Spec.swift in Sources */, - OBJ_748 /* PDFLineSeparatorObject_Spec.swift in Sources */, - OBJ_749 /* PDFLineStyle_Equatable_Spec.swift in Sources */, - OBJ_750 /* PDFLineStyle_Spec.swift in Sources */, - OBJ_751 /* PDFLineType_Spec.swift in Sources */, - OBJ_752 /* UIColor+Hex_Spec.swift in Sources */, - OBJ_753 /* UIImage+CloseToEqual_Spec.swift in Sources */, - OBJ_754 /* UIImage+Pixel_Spec.swift in Sources */, - OBJ_755 /* PDFImageSizeFit_Spec.swift in Sources */, - OBJ_756 /* PDFImage_Equatable_Spec.swift in Sources */, - OBJ_757 /* PDFImage_Spec.swift in Sources */, - OBJ_758 /* PDFTableMergeUtil_Spec.swift in Sources */, - OBJ_761 /* PDFContainer_Spec.swift in Sources */, - OBJ_762 /* PDFIndentationObject_Equatable_Spec.swift in Sources */, - OBJ_763 /* PDFIndentationObject_Spec.swift in Sources */, - OBJ_764 /* PDFLayout+Equatable_Spec.swift in Sources */, - OBJ_765 /* PDFLayoutHeights+Equatable_Spec.swift in Sources */, - OBJ_766 /* PDFLayoutHeights_Spec.swift in Sources */, - OBJ_767 /* PDFLayoutIndentations+Equatable_Spec.swift in Sources */, - OBJ_768 /* PDFLayoutIndentations_Spec.swift in Sources */, - OBJ_769 /* PDFLayout_Spec.swift in Sources */, - OBJ_770 /* PDFOffsetObject+Equatable_Spec.swift in Sources */, - OBJ_771 /* PDFOffsetObject_Spec.swift in Sources */, - OBJ_772 /* PDFPageBreakObject+Equatable_Spec.swift in Sources */, - OBJ_773 /* PDFPageBreakObject_Spec.swift in Sources */, - OBJ_774 /* PDFPageLayout+Equatable_Spec.swift in Sources */, - OBJ_775 /* PDFPageLayout_Spec.swift in Sources */, - OBJ_776 /* PDFSpaceObject_Spec.swift in Sources */, - OBJ_777 /* PDFList+Equatable_Spec.swift in Sources */, - OBJ_778 /* PDFListItemObject_Spec.swift in Sources */, - OBJ_779 /* PDFListItemSymbol_Spec.swift in Sources */, - OBJ_780 /* PDFListItem_Equatable_Spec.swift in Sources */, - OBJ_781 /* PDFListItem_Spec.swift in Sources */, - OBJ_782 /* PDFList_Spec.swift in Sources */, - OBJ_783 /* CGPoint+Math_Spec.swift in Sources */, - OBJ_784 /* PDFInfo+Equatable_Spec.swift in Sources */, - OBJ_785 /* PDFInfo_Spec.swift in Sources */, - OBJ_786 /* PDFDocument+Objects_Spec.swift in Sources */, - OBJ_787 /* PDFDocument_Spec.swift in Sources */, - OBJ_788 /* PDFGenerator+Debug_Spec.swift in Sources */, - OBJ_789 /* PDFGenerator+Generation_Spec.swift in Sources */, - OBJ_790 /* PDFGenerator+Layout_Spec.swift in Sources */, - OBJ_791 /* PDFGenerator_Spec.swift in Sources */, - OBJ_792 /* PDFPageFormat+Layout_Spec.swift in Sources */, - OBJ_793 /* PDFPageFormat+SizeConstants_Spec.swift in Sources */, - OBJ_794 /* PDFPageFormat_Spec.swift in Sources */, - OBJ_795 /* Int+RomanNumerals_Spec.swift in Sources */, - OBJ_796 /* PDFPaginationStyle+Equatable_Spec.swift in Sources */, - OBJ_797 /* PDFPaginationStyle_Spec.swift in Sources */, - OBJ_798 /* PDFPagination_Closure_Spec.swift in Sources */, - OBJ_799 /* PDFPagination_Equatable_Spec.swift in Sources */, - OBJ_800 /* PDFPagination_Spec.swift in Sources */, - OBJ_801 /* PDFTable+Equatable_Spec.swift in Sources */, - OBJ_802 /* PDFTableCell+Equatable_Spec.swift in Sources */, - OBJ_803 /* PDFTableCellAlignment_Spec.swift in Sources */, - OBJ_804 /* PDFTableCellBorders+Equatable_Spec.swift in Sources */, - OBJ_805 /* PDFTableCellBorders_Spec.swift in Sources */, - OBJ_806 /* PDFTableCellPosition+Equatable_Spec.swift in Sources */, - OBJ_807 /* PDFTableCellPosition_Hashable_Spec.swift in Sources */, - OBJ_808 /* PDFTableCellPosition_Spec.swift in Sources */, - OBJ_809 /* PDFTableCellStyle+Equatable_Spec.swift in Sources */, - OBJ_810 /* PDFTableCellStyle_Spec.swift in Sources */, - OBJ_811 /* PDFTableCell_Spec.swift in Sources */, - OBJ_812 /* PDFTableContent+Equatable_Spec.swift in Sources */, - OBJ_813 /* PDFTableContent_Spec.swift in Sources */, - OBJ_814 /* PDFTableStyle+Defaults_Spec.swift in Sources */, - OBJ_815 /* PDFTableStyle+Equatable_Spec.swift in Sources */, - OBJ_816 /* PDFTableStyle_Spec.swift in Sources */, - OBJ_817 /* PDFTableValidator_Spec.swift in Sources */, - OBJ_818 /* PDFTable_Spec.swift in Sources */, - OBJ_819 /* PDFAttributedText+Equatable_Spec.swift in Sources */, - OBJ_820 /* PDFAttributedTextObject_Spec.swift in Sources */, - OBJ_821 /* PDFAttributedText_Spec.swift in Sources */, - OBJ_822 /* PDFFontObject_Spec.swift in Sources */, - OBJ_823 /* PDFSimpleText+Equatable_Spec.swift in Sources */, - OBJ_824 /* PDFSimpleText_Spec.swift in Sources */, - OBJ_825 /* PDFTextColorObject_Spec.swift in Sources */, - OBJ_826 /* PDFText_Spec.swift in Sources */, - OBJ_827 /* PDFCalculations_Spec.swift in Sources */, - OBJ_828 /* PDFError_Spec.swift in Sources */, - OBJ_829 /* PDFObject_Spec.swift in Sources */, + OBJ_608 /* PDFExternalDocument.swift in Sources */, + OBJ_609 /* PDFBezierPath+Copying.swift in Sources */, + OBJ_610 /* PDFBezierPath.swift in Sources */, + OBJ_611 /* PDFBezierPathVertex.swift in Sources */, + OBJ_612 /* PDFDynamicGeometryShape.swift in Sources */, + OBJ_613 /* PDFLineStyle.swift in Sources */, + OBJ_614 /* PDFLineType.swift in Sources */, + OBJ_615 /* PDFGroup+Objects.swift in Sources */, + OBJ_616 /* PDFGroup.swift in Sources */, + OBJ_617 /* PDFGroupContainer.swift in Sources */, + OBJ_618 /* PDFMasterGroup.swift in Sources */, + OBJ_619 /* PDFImage.swift in Sources */, + OBJ_620 /* PDFImageOptions.swift in Sources */, + OBJ_621 /* PDFImageSizeFit.swift in Sources */, + OBJ_622 /* PDFContainer.swift in Sources */, + OBJ_623 /* PDFPageLayout.swift in Sources */, + OBJ_624 /* PDFList.swift in Sources */, + OBJ_625 /* PDFListItem.swift in Sources */, + OBJ_626 /* PDFListItemSymbol.swift in Sources */, + OBJ_627 /* PDFInfo+Equatable.swift in Sources */, + OBJ_628 /* PDFInfo.swift in Sources */, + OBJ_629 /* PDFDocument.swift in Sources */, + OBJ_630 /* PDFGenerator+Generation.swift in Sources */, + OBJ_631 /* PDFGenerator.swift in Sources */, + OBJ_632 /* PDFGeneratorProtocol.swift in Sources */, + OBJ_633 /* PDFMultiDocumentGenerator.swift in Sources */, + OBJ_634 /* PDFPageFormat+Layout.swift in Sources */, + OBJ_635 /* PDFPageFormat+SizeConstants.swift in Sources */, + OBJ_636 /* PDFPageFormat.swift in Sources */, + OBJ_637 /* PDFSection.swift in Sources */, + OBJ_638 /* PDFSectionColumn.swift in Sources */, + OBJ_639 /* PDFTableOfContent.swift in Sources */, + OBJ_640 /* NSAttributedString+PDFTableContent.swift in Sources */, + OBJ_641 /* Number+PDFTableContentable.swift in Sources */, + OBJ_642 /* PDFTableContent+ContentType.swift in Sources */, + OBJ_643 /* PDFTableContent.swift in Sources */, + OBJ_644 /* PDFTableContentable.swift in Sources */, + OBJ_645 /* String+PDFTableContent.swift in Sources */, + OBJ_646 /* UIImage+PDFTableContent.swift in Sources */, + OBJ_647 /* PDFTable.swift in Sources */, + OBJ_648 /* PDFTableCell.swift in Sources */, + OBJ_649 /* PDFTableCellAlignment.swift in Sources */, + OBJ_650 /* PDFTableCellPosition.swift in Sources */, + OBJ_651 /* PDFTable+CellSubscripts.swift in Sources */, + OBJ_652 /* PDFTable+ColumnSubscripts.swift in Sources */, + OBJ_653 /* PDFTable+RowSubscripts.swift in Sources */, + OBJ_654 /* PDFTable+SectionSubscripts.swift in Sources */, + OBJ_655 /* PDFTableColumn.swift in Sources */, + OBJ_656 /* PDFTableColumns.swift in Sources */, + OBJ_657 /* PDFTableMergeable.swift in Sources */, + OBJ_658 /* PDFTableRow.swift in Sources */, + OBJ_659 /* PDFTableRows.swift in Sources */, + OBJ_660 /* PDFTableSection.swift in Sources */, + OBJ_661 /* PDFTableCellBorders.swift in Sources */, + OBJ_662 /* PDFTableCellPosition+Equatable-Hashable.swift in Sources */, + OBJ_663 /* PDFTableCellStyle.swift in Sources */, + OBJ_664 /* PDFTableStyle+Defaults.swift in Sources */, + OBJ_665 /* PDFTableStyle+Equatable.swift in Sources */, + OBJ_666 /* PDFTableStyle.swift in Sources */, + OBJ_667 /* PDFAttributedText.swift in Sources */, + OBJ_668 /* PDFSimpleText+Equatable.swift in Sources */, + OBJ_669 /* PDFSimpleText.swift in Sources */, + OBJ_670 /* PDFText.swift in Sources */, + OBJ_671 /* PDFTextStyle.swift in Sources */, + OBJ_672 /* CrossPlattformGraphics.swift in Sources */, + OBJ_673 /* PDFConstants.swift in Sources */, + OBJ_674 /* PDFCopy.swift in Sources */, + OBJ_675 /* PDFDocumentObject.swift in Sources */, + OBJ_676 /* PDFError.swift in Sources */, + OBJ_677 /* PDFRenderObject.swift in Sources */, + OBJ_678 /* PDFTaggableObject.swift in Sources */, + OBJ_679 /* PDFExternalDocumentObject.swift in Sources */, + OBJ_680 /* PDFExternalPageObject.swift in Sources */, + OBJ_681 /* PDFContextGraphics.swift in Sources */, + OBJ_682 /* PDFGraphics.swift in Sources */, + OBJ_683 /* PDFLineObject.swift in Sources */, + OBJ_684 /* PDFLineSeparatorObject+Equatable.swift in Sources */, + OBJ_685 /* PDFLineSeparatorObject.swift in Sources */, + OBJ_686 /* PDFRectangleObject.swift in Sources */, + OBJ_687 /* UIColor+CloseToEqual.swift in Sources */, + OBJ_688 /* UIColor+Hex.swift in Sources */, + OBJ_689 /* UIImage+Pixel.swift in Sources */, + OBJ_690 /* PDFGroupObject.swift in Sources */, + OBJ_691 /* PDFImageObject.swift in Sources */, + OBJ_692 /* PDFImageRowObject.swift in Sources */, + OBJ_693 /* PDFColumnLayoutState.swift in Sources */, + OBJ_694 /* PDFIndentationObject+Equatable.swift in Sources */, + OBJ_695 /* PDFIndentationObject.swift in Sources */, + OBJ_696 /* PDFLayout+Equatable.swift in Sources */, + OBJ_697 /* PDFLayout.swift in Sources */, + OBJ_698 /* PDFLayoutHeights+Equatable.swift in Sources */, + OBJ_699 /* PDFLayoutHeights.swift in Sources */, + OBJ_700 /* PDFLayoutIndentations+Equatable.swift in Sources */, + OBJ_701 /* PDFLayoutIndentations.swift in Sources */, + OBJ_702 /* PDFMarginObject.swift in Sources */, + OBJ_703 /* PDFOffsetObject+Equatable.swift in Sources */, + OBJ_704 /* PDFOffsetObject.swift in Sources */, + OBJ_705 /* PDFPageBreakObject+Equatable.swift in Sources */, + OBJ_706 /* PDFPageBreakObject.swift in Sources */, + OBJ_707 /* PDFPageLayout+Equatable.swift in Sources */, + OBJ_708 /* PDFSectionColumnContainer.swift in Sources */, + OBJ_709 /* PDFSpaceObject.swift in Sources */, + OBJ_710 /* PDFListObject.swift in Sources */, + OBJ_711 /* CGPoint+Math.swift in Sources */, + OBJ_712 /* CGPoint+Null.swift in Sources */, + OBJ_713 /* PDFGenerator+Debug.swift in Sources */, + OBJ_714 /* PDFGenerator+Layout.swift in Sources */, + OBJ_715 /* Int+RomanNumerals.swift in Sources */, + OBJ_716 /* PDFPagination+Equatable.swift in Sources */, + OBJ_717 /* PDFPagination.swift in Sources */, + OBJ_718 /* PDFPaginationClosure.swift in Sources */, + OBJ_719 /* PDFPaginationStyle+Equatable.swift in Sources */, + OBJ_720 /* PDFPaginationStyle.swift in Sources */, + OBJ_721 /* PDFColumnWrapSectionObject.swift in Sources */, + OBJ_722 /* PDFSectionColumnObject.swift in Sources */, + OBJ_723 /* PDFSectionObject.swift in Sources */, + OBJ_724 /* PDFTableOfContentObject.swift in Sources */, + OBJ_725 /* PDFTableCalculatedCell.swift in Sources */, + OBJ_726 /* PDFTableMergeUtil.swift in Sources */, + OBJ_727 /* PDFTableNode.swift in Sources */, + OBJ_728 /* PDFTableObject.swift in Sources */, + OBJ_729 /* PDFTableValidator.swift in Sources */, + OBJ_730 /* PDFAttributedTextObject.swift in Sources */, + OBJ_731 /* PDFFontObject.swift in Sources */, + OBJ_732 /* PDFTextColorObject.swift in Sources */, + OBJ_733 /* PDFAttributableObject.swift in Sources */, + OBJ_734 /* PDFObjectAttribute.swift in Sources */, + OBJ_735 /* CustomStringConvertible+AutoDescribing.swift in Sources */, + OBJ_736 /* FileManager+TemporaryFiles.swift in Sources */, + OBJ_737 /* PDFCalculations.swift in Sources */, + OBJ_738 /* PDFLocatedRenderObject.swift in Sources */, + OBJ_739 /* PDFSlicedObject.swift in Sources */, + OBJ_740 /* Stack.swift in Sources */, + OBJ_741 /* WeakRef.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + OBJ_747 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 0; + files = ( + OBJ_748 /* Package.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + OBJ_758 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 0; + files = ( + OBJ_759 /* PDFTableRowSpec.swift in Sources */, + OBJ_760 /* PDFTable_RowSubscriptsSpec.swift in Sources */, + OBJ_761 /* PDFGraphics_Spec.swift in Sources */, + OBJ_762 /* PDFLineSeparatorObject+Equatable_Spec.swift in Sources */, + OBJ_763 /* PDFLineSeparatorObject_Spec.swift in Sources */, + OBJ_764 /* PDFLineStyle_Equatable_Spec.swift in Sources */, + OBJ_765 /* PDFLineStyle_Spec.swift in Sources */, + OBJ_766 /* PDFLineType_Spec.swift in Sources */, + OBJ_767 /* UIColor+Hex_Spec.swift in Sources */, + OBJ_768 /* UIImage+CloseToEqual_Spec.swift in Sources */, + OBJ_769 /* UIImage+Pixel_Spec.swift in Sources */, + OBJ_770 /* PDFImageSizeFit_Spec.swift in Sources */, + OBJ_771 /* PDFImage_Equatable_Spec.swift in Sources */, + OBJ_772 /* PDFImage_Spec.swift in Sources */, + OBJ_773 /* PDFTableMergeUtil_Spec.swift in Sources */, + OBJ_774 /* PDFTableObjectSpec.swift in Sources */, + OBJ_775 /* PDFContainer_Spec.swift in Sources */, + OBJ_776 /* PDFIndentationObject_Equatable_Spec.swift in Sources */, + OBJ_777 /* PDFIndentationObject_Spec.swift in Sources */, + OBJ_778 /* PDFLayout+Equatable_Spec.swift in Sources */, + OBJ_779 /* PDFLayoutHeights+Equatable_Spec.swift in Sources */, + OBJ_780 /* PDFLayoutHeights_Spec.swift in Sources */, + OBJ_781 /* PDFLayoutIndentations+Equatable_Spec.swift in Sources */, + OBJ_782 /* PDFLayoutIndentations_Spec.swift in Sources */, + OBJ_783 /* PDFLayout_Spec.swift in Sources */, + OBJ_784 /* PDFOffsetObject+Equatable_Spec.swift in Sources */, + OBJ_785 /* PDFOffsetObject_Spec.swift in Sources */, + OBJ_786 /* PDFPageBreakObject+Equatable_Spec.swift in Sources */, + OBJ_787 /* PDFPageBreakObject_Spec.swift in Sources */, + OBJ_788 /* PDFPageLayout+Equatable_Spec.swift in Sources */, + OBJ_789 /* PDFPageLayout_Spec.swift in Sources */, + OBJ_790 /* PDFSpaceObject_Spec.swift in Sources */, + OBJ_791 /* PDFList+Equatable_Spec.swift in Sources */, + OBJ_792 /* PDFListItemObject_Spec.swift in Sources */, + OBJ_793 /* PDFListItemSymbol_Spec.swift in Sources */, + OBJ_794 /* PDFListItem_Equatable_Spec.swift in Sources */, + OBJ_795 /* PDFListItem_Spec.swift in Sources */, + OBJ_796 /* PDFList_Spec.swift in Sources */, + OBJ_797 /* CGPoint+Math_Spec.swift in Sources */, + OBJ_798 /* PDFInfo+Equatable_Spec.swift in Sources */, + OBJ_799 /* PDFInfo_Spec.swift in Sources */, + OBJ_800 /* PDFDocument+Objects_Spec.swift in Sources */, + OBJ_801 /* PDFDocument_Spec.swift in Sources */, + OBJ_802 /* PDFGenerator+Debug_Spec.swift in Sources */, + OBJ_803 /* PDFGenerator+Generation_Spec.swift in Sources */, + OBJ_804 /* PDFGenerator+Layout_Spec.swift in Sources */, + OBJ_805 /* PDFGenerator_Spec.swift in Sources */, + OBJ_806 /* PDFPageFormat+Layout_Spec.swift in Sources */, + OBJ_807 /* PDFPageFormat+SizeConstants_Spec.swift in Sources */, + OBJ_808 /* PDFPageFormat_Spec.swift in Sources */, + OBJ_809 /* Int+RomanNumerals_Spec.swift in Sources */, + OBJ_810 /* PDFPaginationStyle+Equatable_Spec.swift in Sources */, + OBJ_811 /* PDFPaginationStyle_Spec.swift in Sources */, + OBJ_812 /* PDFPagination_Closure_Spec.swift in Sources */, + OBJ_813 /* PDFPagination_Equatable_Spec.swift in Sources */, + OBJ_814 /* PDFPagination_Spec.swift in Sources */, + OBJ_815 /* PDFTable+Equatable_Spec.swift in Sources */, + OBJ_816 /* PDFTableCell+Equatable_Spec.swift in Sources */, + OBJ_817 /* PDFTableCellAlignment_Spec.swift in Sources */, + OBJ_818 /* PDFTableCellBorders+Equatable_Spec.swift in Sources */, + OBJ_819 /* PDFTableCellBorders_Spec.swift in Sources */, + OBJ_820 /* PDFTableCellPosition+Equatable_Spec.swift in Sources */, + OBJ_821 /* PDFTableCellPosition_Hashable_Spec.swift in Sources */, + OBJ_822 /* PDFTableCellPosition_Spec.swift in Sources */, + OBJ_823 /* PDFTableCellStyle+Equatable_Spec.swift in Sources */, + OBJ_824 /* PDFTableCellStyle_Spec.swift in Sources */, + OBJ_825 /* PDFTableCell_Spec.swift in Sources */, + OBJ_826 /* PDFTableContent+Equatable_Spec.swift in Sources */, + OBJ_827 /* PDFTableContent_Spec.swift in Sources */, + OBJ_828 /* PDFTableStyle+Defaults_Spec.swift in Sources */, + OBJ_829 /* PDFTableStyle+Equatable_Spec.swift in Sources */, + OBJ_830 /* PDFTableStyle_Spec.swift in Sources */, + OBJ_831 /* PDFTableValidator_Spec.swift in Sources */, + OBJ_832 /* PDFTable_Spec.swift in Sources */, + OBJ_833 /* PDFAttributedText+Equatable_Spec.swift in Sources */, + OBJ_834 /* PDFAttributedTextObject_Spec.swift in Sources */, + OBJ_835 /* PDFAttributedText_Spec.swift in Sources */, + OBJ_836 /* PDFFontObject_Spec.swift in Sources */, + OBJ_837 /* PDFSimpleText+Equatable_Spec.swift in Sources */, + OBJ_838 /* PDFSimpleText_Spec.swift in Sources */, + OBJ_839 /* PDFTextColorObject_Spec.swift in Sources */, + OBJ_840 /* PDFText_Spec.swift in Sources */, + OBJ_841 /* PDFCalculations_Spec.swift in Sources */, + OBJ_842 /* PDFError_Spec.swift in Sources */, + OBJ_843 /* PDFObject_Spec.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - OBJ_476 /* PBXTargetDependency */ = { + OBJ_431 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = "Nimble::NimbleCwlPreconditionTesting" /* NimbleCwlPreconditionTesting */; - targetProxy = D4803BD524703E2000DDA039 /* PBXContainerItemProxy */; + target = "CwlCatchException::CwlCatchExceptionSupport" /* CwlCatchExceptionSupport */; + targetProxy = D4B7E9EC25A1BB24007D09C7 /* PBXContainerItemProxy */; }; - OBJ_478 /* PBXTargetDependency */ = { + OBJ_474 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = "Nimble::NimbleCwlCatchException" /* NimbleCwlCatchException */; - targetProxy = D4803BDA24703E2000DDA039 /* PBXContainerItemProxy */; + target = "CwlCatchException::CwlCatchException" /* CwlCatchException */; + targetProxy = D4B7E9EB25A1BB24007D09C7 /* PBXContainerItemProxy */; }; - OBJ_480 /* PBXTargetDependency */ = { + OBJ_475 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = "CwlCatchException::CwlCatchExceptionSupport" /* CwlCatchExceptionSupport */; + targetProxy = D4B7E9ED25A1BB24007D09C7 /* PBXContainerItemProxy */; + }; + OBJ_476 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = "Nimble::NimbleCwlCatchExceptionSupport" /* NimbleCwlCatchExceptionSupport */; - targetProxy = D4803BDB24703E2000DDA039 /* PBXContainerItemProxy */; + target = "CwlPreconditionTesting::CwlMachBadInstructionHandler" /* CwlMachBadInstructionHandler */; + targetProxy = D4B7E9EE25A1BB24007D09C7 /* PBXContainerItemProxy */; }; - OBJ_482 /* PBXTargetDependency */ = { + OBJ_547 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = "Nimble::NimbleCwlMachBadInstructionHandler" /* NimbleCwlMachBadInstructionHandler */; - targetProxy = D4803BDC24703E2000DDA039 /* PBXContainerItemProxy */; + target = "CwlPreconditionTesting::CwlPosixPreconditionTesting" /* CwlPosixPreconditionTesting */; + targetProxy = D4B7E9E925A1BB24007D09C7 /* PBXContainerItemProxy */; }; - OBJ_491 /* PBXTargetDependency */ = { + OBJ_548 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = "Nimble::NimbleCwlCatchExceptionSupport" /* NimbleCwlCatchExceptionSupport */; - targetProxy = D4803BD724703E2000DDA039 /* PBXContainerItemProxy */; + target = "CwlPreconditionTesting::CwlPreconditionTesting" /* CwlPreconditionTesting */; + targetProxy = D4B7E9EA25A1BB24007D09C7 /* PBXContainerItemProxy */; }; - OBJ_516 /* PBXTargetDependency */ = { + OBJ_549 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = "Nimble::NimbleCwlCatchException" /* NimbleCwlCatchException */; - targetProxy = D4803BD624703E2000DDA039 /* PBXContainerItemProxy */; + target = "CwlCatchException::CwlCatchException" /* CwlCatchException */; + targetProxy = D4B7E9EF25A1BB24007D09C7 /* PBXContainerItemProxy */; }; - OBJ_517 /* PBXTargetDependency */ = { + OBJ_550 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = "Nimble::NimbleCwlCatchExceptionSupport" /* NimbleCwlCatchExceptionSupport */; - targetProxy = D4803BD824703E2000DDA039 /* PBXContainerItemProxy */; + target = "CwlCatchException::CwlCatchExceptionSupport" /* CwlCatchExceptionSupport */; + targetProxy = D4B7E9F025A1BB24007D09C7 /* PBXContainerItemProxy */; }; - OBJ_518 /* PBXTargetDependency */ = { + OBJ_551 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = "Nimble::NimbleCwlMachBadInstructionHandler" /* NimbleCwlMachBadInstructionHandler */; - targetProxy = D4803BD924703E2000DDA039 /* PBXContainerItemProxy */; + target = "CwlPreconditionTesting::CwlMachBadInstructionHandler" /* CwlMachBadInstructionHandler */; + targetProxy = D4B7E9F125A1BB24007D09C7 /* PBXContainerItemProxy */; }; - OBJ_555 /* PBXTargetDependency */ = { + OBJ_589 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = "Quick::QuickSpecBase" /* QuickSpecBase */; - targetProxy = D4803BE224703E2000DDA039 /* PBXContainerItemProxy */; + target = "Quick::QuickObjCRuntime" /* QuickObjCRuntime */; + targetProxy = D4B7E9F825A1BB24007D09C7 /* PBXContainerItemProxy */; }; - OBJ_740 /* PBXTargetDependency */ = { + OBJ_753 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "TPPDF::TPPDFTests" /* TPPDFTests */; - targetProxy = D4803BE524703E4700DDA039 /* PBXContainerItemProxy */; + targetProxy = D4B7E9FB25A1BB24007D09C7 /* PBXContainerItemProxy */; }; - OBJ_839 /* PBXTargetDependency */ = { + OBJ_854 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "Nimble::Nimble" /* Nimble */; - targetProxy = D4803BD424703E2000DDA039 /* PBXContainerItemProxy */; + targetProxy = D4B7E9E825A1BB24007D09C7 /* PBXContainerItemProxy */; }; - OBJ_840 /* PBXTargetDependency */ = { + OBJ_855 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = "Nimble::NimbleCwlPreconditionTesting" /* NimbleCwlPreconditionTesting */; - targetProxy = D4803BDD24703E2000DDA039 /* PBXContainerItemProxy */; + target = "CwlPreconditionTesting::CwlPosixPreconditionTesting" /* CwlPosixPreconditionTesting */; + targetProxy = D4B7E9F225A1BB24007D09C7 /* PBXContainerItemProxy */; }; - OBJ_841 /* PBXTargetDependency */ = { + OBJ_856 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = "Nimble::NimbleCwlCatchException" /* NimbleCwlCatchException */; - targetProxy = D4803BDE24703E2000DDA039 /* PBXContainerItemProxy */; + target = "CwlPreconditionTesting::CwlPreconditionTesting" /* CwlPreconditionTesting */; + targetProxy = D4B7E9F325A1BB24007D09C7 /* PBXContainerItemProxy */; }; - OBJ_842 /* PBXTargetDependency */ = { + OBJ_857 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = "Nimble::NimbleCwlCatchExceptionSupport" /* NimbleCwlCatchExceptionSupport */; - targetProxy = D4803BDF24703E2000DDA039 /* PBXContainerItemProxy */; + target = "CwlCatchException::CwlCatchException" /* CwlCatchException */; + targetProxy = D4B7E9F425A1BB24007D09C7 /* PBXContainerItemProxy */; }; - OBJ_843 /* PBXTargetDependency */ = { + OBJ_858 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = "Nimble::NimbleCwlMachBadInstructionHandler" /* NimbleCwlMachBadInstructionHandler */; - targetProxy = D4803BE024703E2000DDA039 /* PBXContainerItemProxy */; + target = "CwlCatchException::CwlCatchExceptionSupport" /* CwlCatchExceptionSupport */; + targetProxy = D4B7E9F525A1BB24007D09C7 /* PBXContainerItemProxy */; }; - OBJ_844 /* PBXTargetDependency */ = { + OBJ_859 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = "CwlPreconditionTesting::CwlMachBadInstructionHandler" /* CwlMachBadInstructionHandler */; + targetProxy = D4B7E9F625A1BB24007D09C7 /* PBXContainerItemProxy */; + }; + OBJ_860 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "Quick::Quick" /* Quick */; - targetProxy = D4803BE124703E2000DDA039 /* PBXContainerItemProxy */; + targetProxy = D4B7E9F725A1BB24007D09C7 /* PBXContainerItemProxy */; }; - OBJ_845 /* PBXTargetDependency */ = { + OBJ_861 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = "Quick::QuickSpecBase" /* QuickSpecBase */; - targetProxy = D4803BE324703E2000DDA039 /* PBXContainerItemProxy */; + target = "Quick::QuickObjCRuntime" /* QuickObjCRuntime */; + targetProxy = D4B7E9F925A1BB24007D09C7 /* PBXContainerItemProxy */; }; - OBJ_846 /* PBXTargetDependency */ = { + OBJ_862 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "TPPDF::TPPDF" /* TPPDF */; - targetProxy = D4803BE424703E2000DDA039 /* PBXContainerItemProxy */; + targetProxy = D4B7E9FA25A1BB24007D09C7 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -2552,7 +2763,7 @@ "SWIFT_PACKAGE=1", "DEBUG=1", ); - MACOSX_DEPLOYMENT_TARGET = 10.13; + MACOSX_DEPLOYMENT_TARGET = 10.10; ONLY_ACTIVE_ARCH = YES; OTHER_SWIFT_FLAGS = "$(inherited) -DXcode"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -2577,19 +2788,18 @@ "$(inherited)", "SWIFT_PACKAGE=1", ); - MACOSX_DEPLOYMENT_TARGET = 10.13; + MACOSX_DEPLOYMENT_TARGET = 10.10; OTHER_SWIFT_FLAGS = "$(inherited) -DXcode"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator watchos watchsimulator"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) SWIFT_PACKAGE"; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; USE_HEADERMAP = NO; }; name = Release; }; - OBJ_416 /* Debug */ = { + OBJ_425 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ENABLE_TESTABILITY = YES; @@ -2599,33 +2809,29 @@ ); HEADER_SEARCH_PATHS = ( "$(inherited)", - "$(SRCROOT)/.build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Dependencies/CwlCatchException/Sources/CwlCatchExceptionSupport/include", - "$(SRCROOT)/.build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include", - "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport", - "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlMachBadInstructionHandler", - ); - INFOPLIST_FILE = TPPDF.xcodeproj/Nimble_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx", + "$(SRCROOT)/.build/checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport/include", + "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport", ); + INFOPLIST_FILE = TPPDF.xcodeproj/CwlCatchException_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + MACOSX_DEPLOYMENT_TARGET = 10.10; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; - OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlMachBadInstructionHandler/module.modulemap"; - PRODUCT_BUNDLE_IDENTIFIER = Nimble; + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap"; + PRODUCT_BUNDLE_IDENTIFIER = CwlCatchException; PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; SWIFT_VERSION = 5.0; - TARGET_NAME = Nimble; + TARGET_NAME = CwlCatchException; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Debug; }; - OBJ_417 /* Release */ = { + OBJ_426 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ENABLE_TESTABILITY = YES; @@ -2635,35 +2841,50 @@ ); HEADER_SEARCH_PATHS = ( "$(inherited)", - "$(SRCROOT)/.build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Dependencies/CwlCatchException/Sources/CwlCatchExceptionSupport/include", - "$(SRCROOT)/.build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include", - "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport", - "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlMachBadInstructionHandler", - ); - INFOPLIST_FILE = TPPDF.xcodeproj/Nimble_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx", + "$(SRCROOT)/.build/checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport/include", + "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport", ); + INFOPLIST_FILE = TPPDF.xcodeproj/CwlCatchException_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + MACOSX_DEPLOYMENT_TARGET = 10.10; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; - OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlMachBadInstructionHandler/module.modulemap"; - PRODUCT_BUNDLE_IDENTIFIER = Nimble; + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap"; + PRODUCT_BUNDLE_IDENTIFIER = CwlCatchException; PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; SWIFT_VERSION = 5.0; - TARGET_NAME = Nimble; + TARGET_NAME = CwlCatchException; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Release; }; - OBJ_485 /* Debug */ = { + OBJ_435 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD = /usr/bin/true; + OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -package-description-version 5.0.0"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + OBJ_436 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD = /usr/bin/true; + OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -package-description-version 5.0.0"; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + OBJ_440 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + DEFINES_MODULE = NO; ENABLE_TESTABILITY = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -2671,33 +2892,30 @@ ); HEADER_SEARCH_PATHS = ( "$(inherited)", - "$(SRCROOT)/.build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Dependencies/CwlCatchException/Sources/CwlCatchExceptionSupport/include", - "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport", - ); - INFOPLIST_FILE = TPPDF.xcodeproj/NimbleCwlCatchException_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx", + "$(SRCROOT)/.build/checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport/include", ); + INFOPLIST_FILE = TPPDF.xcodeproj/CwlCatchExceptionSupport_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + MACOSX_DEPLOYMENT_TARGET = 10.10; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; - OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport/module.modulemap"; - PRODUCT_BUNDLE_IDENTIFIER = NimbleCwlCatchException; + OTHER_SWIFT_FLAGS = "$(inherited)"; + PRODUCT_BUNDLE_IDENTIFIER = CwlCatchExceptionSupport; PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; - SWIFT_VERSION = 5.0; - TARGET_NAME = NimbleCwlCatchException; + TARGET_NAME = CwlCatchExceptionSupport; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Debug; }; - OBJ_486 /* Release */ = { + OBJ_441 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + DEFINES_MODULE = NO; ENABLE_TESTABILITY = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -2705,34 +2923,31 @@ ); HEADER_SEARCH_PATHS = ( "$(inherited)", - "$(SRCROOT)/.build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Dependencies/CwlCatchException/Sources/CwlCatchExceptionSupport/include", - "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport", - ); - INFOPLIST_FILE = TPPDF.xcodeproj/NimbleCwlCatchException_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx", + "$(SRCROOT)/.build/checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport/include", ); + INFOPLIST_FILE = TPPDF.xcodeproj/CwlCatchExceptionSupport_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + MACOSX_DEPLOYMENT_TARGET = 10.10; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; - OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport/module.modulemap"; - PRODUCT_BUNDLE_IDENTIFIER = NimbleCwlCatchException; + OTHER_SWIFT_FLAGS = "$(inherited)"; + PRODUCT_BUNDLE_IDENTIFIER = CwlCatchExceptionSupport; PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; - SWIFT_VERSION = 5.0; - TARGET_NAME = NimbleCwlCatchException; + TARGET_NAME = CwlCatchExceptionSupport; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Release; }; - OBJ_493 /* Debug */ = { + OBJ_447 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - DEFINES_MODULE = NO; + CLANG_ENABLE_MODULES = YES; + DEFINES_MODULE = YES; ENABLE_TESTABILITY = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -2740,32 +2955,31 @@ ); HEADER_SEARCH_PATHS = ( "$(inherited)", - "$(SRCROOT)/.build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Dependencies/CwlCatchException/Sources/CwlCatchExceptionSupport/include", - ); - INFOPLIST_FILE = TPPDF.xcodeproj/NimbleCwlCatchExceptionSupport_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx", + "$(SRCROOT)/.build/checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include", ); + INFOPLIST_FILE = TPPDF.xcodeproj/CwlMachBadInstructionHandler_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + MACOSX_DEPLOYMENT_TARGET = 10.10; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; OTHER_SWIFT_FLAGS = "$(inherited)"; - PRODUCT_BUNDLE_IDENTIFIER = NimbleCwlCatchExceptionSupport; + PRODUCT_BUNDLE_IDENTIFIER = CwlMachBadInstructionHandler; PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; - TARGET_NAME = NimbleCwlCatchExceptionSupport; + TARGET_NAME = CwlMachBadInstructionHandler; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Debug; }; - OBJ_494 /* Release */ = { + OBJ_448 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - DEFINES_MODULE = NO; + CLANG_ENABLE_MODULES = YES; + DEFINES_MODULE = YES; ENABLE_TESTABILITY = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -2773,95 +2987,83 @@ ); HEADER_SEARCH_PATHS = ( "$(inherited)", - "$(SRCROOT)/.build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Dependencies/CwlCatchException/Sources/CwlCatchExceptionSupport/include", - ); - INFOPLIST_FILE = TPPDF.xcodeproj/NimbleCwlCatchExceptionSupport_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx", + "$(SRCROOT)/.build/checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include", ); + INFOPLIST_FILE = TPPDF.xcodeproj/CwlMachBadInstructionHandler_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + MACOSX_DEPLOYMENT_TARGET = 10.10; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; OTHER_SWIFT_FLAGS = "$(inherited)"; - PRODUCT_BUNDLE_IDENTIFIER = NimbleCwlCatchExceptionSupport; + PRODUCT_BUNDLE_IDENTIFIER = CwlMachBadInstructionHandler; PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; - TARGET_NAME = NimbleCwlCatchExceptionSupport; + TARGET_NAME = CwlMachBadInstructionHandler; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Release; }; - OBJ_499 /* Debug */ = { + OBJ_457 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - DEFINES_MODULE = NO; ENABLE_TESTABILITY = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PLATFORM_DIR)/Developer/Library/Frameworks", ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/.build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include", - ); - INFOPLIST_FILE = TPPDF.xcodeproj/NimbleCwlMachBadInstructionHandler_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx", - ); + HEADER_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = TPPDF.xcodeproj/CwlPosixPreconditionTesting_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + MACOSX_DEPLOYMENT_TARGET = 10.10; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; OTHER_SWIFT_FLAGS = "$(inherited)"; - PRODUCT_BUNDLE_IDENTIFIER = NimbleCwlMachBadInstructionHandler; + PRODUCT_BUNDLE_IDENTIFIER = CwlPosixPreconditionTesting; PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; - TARGET_NAME = NimbleCwlMachBadInstructionHandler; + SWIFT_VERSION = 5.0; + TARGET_NAME = CwlPosixPreconditionTesting; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Debug; }; - OBJ_500 /* Release */ = { + OBJ_458 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - DEFINES_MODULE = NO; ENABLE_TESTABILITY = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PLATFORM_DIR)/Developer/Library/Frameworks", ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(SRCROOT)/.build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include", - ); - INFOPLIST_FILE = TPPDF.xcodeproj/NimbleCwlMachBadInstructionHandler_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx", - ); + HEADER_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = TPPDF.xcodeproj/CwlPosixPreconditionTesting_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + MACOSX_DEPLOYMENT_TARGET = 10.10; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; OTHER_SWIFT_FLAGS = "$(inherited)"; - PRODUCT_BUNDLE_IDENTIFIER = NimbleCwlMachBadInstructionHandler; + PRODUCT_BUNDLE_IDENTIFIER = CwlPosixPreconditionTesting; PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; - TARGET_NAME = NimbleCwlMachBadInstructionHandler; + SWIFT_VERSION = 5.0; + TARGET_NAME = CwlPosixPreconditionTesting; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Release; }; - OBJ_506 /* Debug */ = { + OBJ_464 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ENABLE_TESTABILITY = YES; @@ -2871,33 +3073,30 @@ ); HEADER_SEARCH_PATHS = ( "$(inherited)", - "$(SRCROOT)/.build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Dependencies/CwlCatchException/Sources/CwlCatchExceptionSupport/include", - "$(SRCROOT)/.build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include", - "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport", - "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlMachBadInstructionHandler", - ); - INFOPLIST_FILE = TPPDF.xcodeproj/NimbleCwlPreconditionTesting_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx", + "$(SRCROOT)/.build/checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport/include", + "$(SRCROOT)/.build/checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include", + "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport", ); + INFOPLIST_FILE = TPPDF.xcodeproj/CwlPreconditionTesting_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + MACOSX_DEPLOYMENT_TARGET = 10.10; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; - OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlMachBadInstructionHandler/module.modulemap"; - PRODUCT_BUNDLE_IDENTIFIER = NimbleCwlPreconditionTesting; + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap"; + PRODUCT_BUNDLE_IDENTIFIER = CwlPreconditionTesting; PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; SWIFT_VERSION = 5.0; - TARGET_NAME = NimbleCwlPreconditionTesting; + TARGET_NAME = CwlPreconditionTesting; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Debug; }; - OBJ_507 /* Release */ = { + OBJ_465 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ENABLE_TESTABILITY = YES; @@ -2907,51 +3106,48 @@ ); HEADER_SEARCH_PATHS = ( "$(inherited)", - "$(SRCROOT)/.build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Dependencies/CwlCatchException/Sources/CwlCatchExceptionSupport/include", - "$(SRCROOT)/.build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include", - "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport", - "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlMachBadInstructionHandler", - ); - INFOPLIST_FILE = TPPDF.xcodeproj/NimbleCwlPreconditionTesting_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx", + "$(SRCROOT)/.build/checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport/include", + "$(SRCROOT)/.build/checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include", + "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport", ); + INFOPLIST_FILE = TPPDF.xcodeproj/CwlPreconditionTesting_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + MACOSX_DEPLOYMENT_TARGET = 10.10; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; - OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlMachBadInstructionHandler/module.modulemap"; - PRODUCT_BUNDLE_IDENTIFIER = NimbleCwlPreconditionTesting; + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap"; + PRODUCT_BUNDLE_IDENTIFIER = CwlPreconditionTesting; PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; SWIFT_VERSION = 5.0; - TARGET_NAME = NimbleCwlPreconditionTesting; + TARGET_NAME = CwlPreconditionTesting; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Release; }; - OBJ_521 /* Debug */ = { + OBJ_479 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { LD = /usr/bin/true; - OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -target x86_64-apple-macosx10.13 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -package-description-version 5.0.0"; + OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -package-description-version 5.0.0"; SWIFT_VERSION = 5.0; }; name = Debug; }; - OBJ_522 /* Release */ = { + OBJ_480 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { LD = /usr/bin/true; - OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -target x86_64-apple-macosx10.13 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -package-description-version 5.0.0"; + OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -package-description-version 5.0.0"; SWIFT_VERSION = 5.0; }; name = Release; }; - OBJ_527 /* Debug */ = { + OBJ_485 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ENABLE_TESTABILITY = YES; @@ -2961,30 +3157,30 @@ ); HEADER_SEARCH_PATHS = ( "$(inherited)", - "$(SRCROOT)/.build/checkouts/Quick/Sources/QuickSpecBase/include", - ); - INFOPLIST_FILE = TPPDF.xcodeproj/Quick_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx", + "$(SRCROOT)/.build/checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport/include", + "$(SRCROOT)/.build/checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include", + "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport", ); + INFOPLIST_FILE = TPPDF.xcodeproj/Nimble_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + MACOSX_DEPLOYMENT_TARGET = 10.10; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; - OTHER_SWIFT_FLAGS = "$(inherited)"; - PRODUCT_BUNDLE_IDENTIFIER = Quick; + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap"; + PRODUCT_BUNDLE_IDENTIFIER = Nimble; PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; SWIFT_VERSION = 5.0; - TARGET_NAME = Quick; + TARGET_NAME = Nimble; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Debug; }; - OBJ_528 /* Release */ = { + OBJ_486 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ENABLE_TESTABILITY = YES; @@ -2994,52 +3190,50 @@ ); HEADER_SEARCH_PATHS = ( "$(inherited)", - "$(SRCROOT)/.build/checkouts/Quick/Sources/QuickSpecBase/include", - ); - INFOPLIST_FILE = TPPDF.xcodeproj/Quick_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx", + "$(SRCROOT)/.build/checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport/include", + "$(SRCROOT)/.build/checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include", + "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport", ); + INFOPLIST_FILE = TPPDF.xcodeproj/Nimble_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + MACOSX_DEPLOYMENT_TARGET = 10.10; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; - OTHER_SWIFT_FLAGS = "$(inherited)"; - PRODUCT_BUNDLE_IDENTIFIER = Quick; + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap"; + PRODUCT_BUNDLE_IDENTIFIER = Nimble; PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; SWIFT_VERSION = 5.0; - TARGET_NAME = Quick; + TARGET_NAME = Nimble; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Release; }; - OBJ_559 /* Debug */ = { + OBJ_554 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { LD = /usr/bin/true; - OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -target x86_64-apple-macosx10.13 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -package-description-version 5.0.0"; + OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -package-description-version 5.2.0"; SWIFT_VERSION = 5.0; }; name = Debug; }; - OBJ_560 /* Release */ = { + OBJ_555 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { LD = /usr/bin/true; - OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -target x86_64-apple-macosx10.13 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -package-description-version 5.0.0"; + OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -package-description-version 5.2.0"; SWIFT_VERSION = 5.0; }; name = Release; }; - OBJ_564 /* Debug */ = { + OBJ_560 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_ENABLE_MODULES = YES; - DEFINES_MODULE = YES; ENABLE_TESTABILITY = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -3047,33 +3241,64 @@ ); HEADER_SEARCH_PATHS = ( "$(inherited)", - "$(SRCROOT)/.build/checkouts/Quick/Sources/QuickSpecBase/include", + "$(SRCROOT)/.build/checkouts/Quick/Sources/QuickObjCRuntime/include", + "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime", ); - INFOPLIST_FILE = TPPDF.xcodeproj/QuickSpecBase_Info.plist; + INFOPLIST_FILE = TPPDF.xcodeproj/Quick_Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + OTHER_CFLAGS = "$(inherited)"; + OTHER_LDFLAGS = "$(inherited)"; + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap"; + PRODUCT_BUNDLE_IDENTIFIER = Quick; + PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; + SWIFT_VERSION = 5.0; + TARGET_NAME = Quick; + TVOS_DEPLOYMENT_TARGET = 9.0; + WATCHOS_DEPLOYMENT_TARGET = 2.0; + }; + name = Debug; + }; + OBJ_561 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ENABLE_TESTABILITY = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PLATFORM_DIR)/Developer/Library/Frameworks", + ); + HEADER_SEARCH_PATHS = ( "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx", + "$(SRCROOT)/.build/checkouts/Quick/Sources/QuickObjCRuntime/include", + "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime", ); + INFOPLIST_FILE = TPPDF.xcodeproj/Quick_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + MACOSX_DEPLOYMENT_TARGET = 10.10; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; - OTHER_SWIFT_FLAGS = "$(inherited)"; - PRODUCT_BUNDLE_IDENTIFIER = QuickSpecBase; + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap"; + PRODUCT_BUNDLE_IDENTIFIER = Quick; PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; - TARGET_NAME = QuickSpecBase; + SWIFT_VERSION = 5.0; + TARGET_NAME = Quick; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; }; - name = Debug; + name = Release; }; - OBJ_565 /* Release */ = { + OBJ_592 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CLANG_ENABLE_MODULES = YES; - DEFINES_MODULE = YES; + DEFINES_MODULE = NO; ENABLE_TESTABILITY = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -3081,32 +3306,78 @@ ); HEADER_SEARCH_PATHS = ( "$(inherited)", - "$(SRCROOT)/.build/checkouts/Quick/Sources/QuickSpecBase/include", + "$(SRCROOT)/.build/checkouts/Quick/Sources/QuickObjCRuntime/include", ); - INFOPLIST_FILE = TPPDF.xcodeproj/QuickSpecBase_Info.plist; + INFOPLIST_FILE = TPPDF.xcodeproj/QuickObjCRuntime_Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + OTHER_CFLAGS = "$(inherited)"; + OTHER_LDFLAGS = "$(inherited)"; + OTHER_SWIFT_FLAGS = "$(inherited)"; + PRODUCT_BUNDLE_IDENTIFIER = QuickObjCRuntime; + PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; + TARGET_NAME = QuickObjCRuntime; + TVOS_DEPLOYMENT_TARGET = 9.0; + WATCHOS_DEPLOYMENT_TARGET = 2.0; + }; + name = Debug; + }; + OBJ_593 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEFINES_MODULE = NO; + ENABLE_TESTABILITY = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PLATFORM_DIR)/Developer/Library/Frameworks", + ); + HEADER_SEARCH_PATHS = ( "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx", + "$(SRCROOT)/.build/checkouts/Quick/Sources/QuickObjCRuntime/include", ); + INFOPLIST_FILE = TPPDF.xcodeproj/QuickObjCRuntime_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + MACOSX_DEPLOYMENT_TARGET = 10.10; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; OTHER_SWIFT_FLAGS = "$(inherited)"; - PRODUCT_BUNDLE_IDENTIFIER = QuickSpecBase; + PRODUCT_BUNDLE_IDENTIFIER = QuickObjCRuntime; PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; - TARGET_NAME = QuickSpecBase; + TARGET_NAME = QuickObjCRuntime; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Release; }; - OBJ_573 /* Debug */ = { + OBJ_599 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD = /usr/bin/true; + OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -package-description-version 5.2.0"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + OBJ_600 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD = /usr/bin/true; + OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -package-description-version 5.2.0"; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + OBJ_605 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CURRENT_PROJECT_VERSION = 2.3.2; ENABLE_TESTABILITY = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -3115,11 +3386,8 @@ HEADER_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = TPPDF.xcodeproj/TPPDF_Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx", - ); - MARKETING_VERSION = 2.3.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + MACOSX_DEPLOYMENT_TARGET = 10.14; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; OTHER_SWIFT_FLAGS = "$(inherited)"; @@ -3135,10 +3403,9 @@ }; name = Debug; }; - OBJ_574 /* Release */ = { + OBJ_606 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - CURRENT_PROJECT_VERSION = 2.3.2; ENABLE_TESTABILITY = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -3147,11 +3414,8 @@ HEADER_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = TPPDF.xcodeproj/TPPDF_Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx", - ); - MARKETING_VERSION = 2.3.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + MACOSX_DEPLOYMENT_TARGET = 10.14; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; OTHER_SWIFT_FLAGS = "$(inherited)"; @@ -3167,40 +3431,39 @@ }; name = Release; }; - OBJ_732 /* Debug */ = { + OBJ_745 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { LD = /usr/bin/true; - OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -target x86_64-apple-macosx10.13 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -package-description-version 5.2.0"; + OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -package-description-version 5.2.0"; SWIFT_VERSION = 5.0; }; name = Debug; }; - OBJ_733 /* Release */ = { + OBJ_746 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { LD = /usr/bin/true; - OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -target x86_64-apple-macosx10.13 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -package-description-version 5.2.0"; + OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -package-description-version 5.2.0"; SWIFT_VERSION = 5.0; }; name = Release; }; - OBJ_738 /* Debug */ = { + OBJ_751 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { }; name = Debug; }; - OBJ_739 /* Release */ = { + OBJ_752 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { }; name = Release; }; - OBJ_743 /* Debug */ = { + OBJ_756 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CLANG_ENABLE_MODULES = YES; EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; FRAMEWORK_SEARCH_PATHS = ( @@ -3209,22 +3472,19 @@ ); HEADER_SEARCH_PATHS = ( "$(inherited)", - "$(SRCROOT)/.build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Dependencies/CwlCatchException/Sources/CwlCatchExceptionSupport/include", - "$(SRCROOT)/.build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include", - "$(SRCROOT)/.build/checkouts/Quick/Sources/QuickSpecBase/include", - "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport", - "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlMachBadInstructionHandler", + "$(SRCROOT)/.build/checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport/include", + "$(SRCROOT)/.build/checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include", + "$(SRCROOT)/.build/checkouts/Quick/Sources/QuickObjCRuntime/include", + "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport", + "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime", ); INFOPLIST_FILE = TPPDF.xcodeproj/TPPDFTests_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@loader_path/../Frameworks", - "@loader_path/Frameworks", - ); + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @loader_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.15; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; - OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlMachBadInstructionHandler/module.modulemap"; + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; SWIFT_VERSION = 5.0; TARGET_NAME = TPPDFTests; @@ -3233,10 +3493,9 @@ }; name = Debug; }; - OBJ_744 /* Release */ = { + OBJ_757 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CLANG_ENABLE_MODULES = YES; EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; FRAMEWORK_SEARCH_PATHS = ( @@ -3245,22 +3504,19 @@ ); HEADER_SEARCH_PATHS = ( "$(inherited)", - "$(SRCROOT)/.build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Dependencies/CwlCatchException/Sources/CwlCatchExceptionSupport/include", - "$(SRCROOT)/.build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include", - "$(SRCROOT)/.build/checkouts/Quick/Sources/QuickSpecBase/include", - "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport", - "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlMachBadInstructionHandler", + "$(SRCROOT)/.build/checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport/include", + "$(SRCROOT)/.build/checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include", + "$(SRCROOT)/.build/checkouts/Quick/Sources/QuickObjCRuntime/include", + "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport", + "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime", ); INFOPLIST_FILE = TPPDF.xcodeproj/TPPDFTests_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@loader_path/../Frameworks", - "@loader_path/Frameworks", - ); + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @loader_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.15; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; - OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlMachBadInstructionHandler/module.modulemap"; + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; SWIFT_VERSION = 5.0; TARGET_NAME = TPPDFTests; @@ -3281,119 +3537,146 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_415 /* Build configuration list for PBXNativeTarget "Nimble" */ = { + OBJ_424 /* Build configuration list for PBXNativeTarget "CwlCatchException" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_416 /* Debug */, - OBJ_417 /* Release */, + OBJ_425 /* Debug */, + OBJ_426 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_484 /* Build configuration list for PBXNativeTarget "NimbleCwlCatchException" */ = { + OBJ_434 /* Build configuration list for PBXNativeTarget "CwlCatchExceptionPackageDescription" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_485 /* Debug */, - OBJ_486 /* Release */, + OBJ_435 /* Debug */, + OBJ_436 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + OBJ_439 /* Build configuration list for PBXNativeTarget "CwlCatchExceptionSupport" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + OBJ_440 /* Debug */, + OBJ_441 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + OBJ_446 /* Build configuration list for PBXNativeTarget "CwlMachBadInstructionHandler" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + OBJ_447 /* Debug */, + OBJ_448 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_492 /* Build configuration list for PBXNativeTarget "NimbleCwlCatchExceptionSupport" */ = { + OBJ_456 /* Build configuration list for PBXNativeTarget "CwlPosixPreconditionTesting" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_493 /* Debug */, - OBJ_494 /* Release */, + OBJ_457 /* Debug */, + OBJ_458 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_498 /* Build configuration list for PBXNativeTarget "NimbleCwlMachBadInstructionHandler" */ = { + OBJ_463 /* Build configuration list for PBXNativeTarget "CwlPreconditionTesting" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_499 /* Debug */, - OBJ_500 /* Release */, + OBJ_464 /* Debug */, + OBJ_465 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_505 /* Build configuration list for PBXNativeTarget "NimbleCwlPreconditionTesting" */ = { + OBJ_478 /* Build configuration list for PBXNativeTarget "CwlPreconditionTestingPackageDescription" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_506 /* Debug */, - OBJ_507 /* Release */, + OBJ_479 /* Debug */, + OBJ_480 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + OBJ_484 /* Build configuration list for PBXNativeTarget "Nimble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + OBJ_485 /* Debug */, + OBJ_486 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_520 /* Build configuration list for PBXNativeTarget "NimblePackageDescription" */ = { + OBJ_553 /* Build configuration list for PBXNativeTarget "NimblePackageDescription" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_521 /* Debug */, - OBJ_522 /* Release */, + OBJ_554 /* Debug */, + OBJ_555 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_526 /* Build configuration list for PBXNativeTarget "Quick" */ = { + OBJ_559 /* Build configuration list for PBXNativeTarget "Quick" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_527 /* Debug */, - OBJ_528 /* Release */, + OBJ_560 /* Debug */, + OBJ_561 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_558 /* Build configuration list for PBXNativeTarget "QuickPackageDescription" */ = { + OBJ_591 /* Build configuration list for PBXNativeTarget "QuickObjCRuntime" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_559 /* Debug */, - OBJ_560 /* Release */, + OBJ_592 /* Debug */, + OBJ_593 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_563 /* Build configuration list for PBXNativeTarget "QuickSpecBase" */ = { + OBJ_598 /* Build configuration list for PBXNativeTarget "QuickPackageDescription" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_564 /* Debug */, - OBJ_565 /* Release */, + OBJ_599 /* Debug */, + OBJ_600 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_572 /* Build configuration list for PBXNativeTarget "TPPDF" */ = { + OBJ_604 /* Build configuration list for PBXNativeTarget "TPPDF" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_573 /* Debug */, - OBJ_574 /* Release */, + OBJ_605 /* Debug */, + OBJ_606 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_731 /* Build configuration list for PBXNativeTarget "TPPDFPackageDescription" */ = { + OBJ_744 /* Build configuration list for PBXNativeTarget "TPPDFPackageDescription" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_732 /* Debug */, - OBJ_733 /* Release */, + OBJ_745 /* Debug */, + OBJ_746 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_737 /* Build configuration list for PBXAggregateTarget "TPPDFPackageTests" */ = { + OBJ_750 /* Build configuration list for PBXAggregateTarget "TPPDFPackageTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_738 /* Debug */, - OBJ_739 /* Release */, + OBJ_751 /* Debug */, + OBJ_752 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_742 /* Build configuration list for PBXNativeTarget "TPPDFTests" */ = { + OBJ_755 /* Build configuration list for PBXNativeTarget "TPPDFTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_743 /* Debug */, - OBJ_744 /* Release */, + OBJ_756 /* Debug */, + OBJ_757 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; From 43ad03eb66dc0e8cbd0860d9e4804721fec0e6e3 Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Sun, 3 Jan 2021 09:46:50 +0100 Subject: [PATCH 06/29] Updated SwiftPM dependencies --- .../xcshareddata/swiftpm/Package.resolved | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/Example iOS-SwiftPM/Example.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Example iOS-SwiftPM/Example.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 8b87b94e..a7345b7e 100644 --- a/Example iOS-SwiftPM/Example.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Example iOS-SwiftPM/Example.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,13 +1,31 @@ { "object": { "pins": [ + { + "package": "CwlCatchException", + "repositoryURL": "https://github.com/mattgallagher/CwlCatchException.git", + "state": { + "branch": null, + "revision": "f809deb30dc5c9d9b78c872e553261a61177721a", + "version": "2.0.0" + } + }, + { + "package": "CwlPreconditionTesting", + "repositoryURL": "https://github.com/mattgallagher/CwlPreconditionTesting.git", + "state": { + "branch": null, + "revision": "02b7a39a99c4da27abe03cab2053a9034379639f", + "version": "2.0.0" + } + }, { "package": "Nimble", "repositoryURL": "https://github.com/Quick/Nimble", "state": { "branch": null, - "revision": "2b1809051b4a65c1d7f5233331daa24572cd7fca", - "version": "8.1.1" + "revision": "e491a6731307bb23783bf664d003be9b2fa59ab5", + "version": "9.0.0" } }, { @@ -15,8 +33,8 @@ "repositoryURL": "https://github.com/Quick/Quick", "state": { "branch": null, - "revision": "09b3becb37cb2163919a3842a4c5fa6ec7130792", - "version": "2.2.1" + "revision": "0038bcbab4292f3b028632556507c124e5ba69f3", + "version": "3.0.0" } } ] From 385a47f7adb6ce283fdde5cd0157d1123451a3f3 Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Sun, 3 Jan 2021 10:43:09 +0100 Subject: [PATCH 07/29] Added PDFContext for encapsulated rendering --- .../ExternalDocumentExampleFactory.swift | 2 +- Source/API/PDFGenerator+Generation.swift | 10 +- Source/API/PDFMultiDocumentGenerator.swift | 6 +- Source/API/Utils/PDFRenderObject.swift | 4 +- .../External/PDFExternalPageObject.swift | 13 +- Source/Internal/Graphics/PDFContext.swift | 218 ++++++++++++++++++ .../Graphics/PDFContextGraphics.swift | 14 +- Source/Internal/Graphics/PDFGraphics.swift | 14 +- Source/Internal/Graphics/PDFLineObject.swift | 2 +- .../Graphics/PDFLineSeparatorObject.swift | 2 +- .../Graphics/PDFRectangleObject.swift | 2 +- Source/Internal/Group/PDFGroupObject.swift | 2 +- Source/Internal/Image/PDFImageObject.swift | 2 +- .../Internal/Layout/PDFPageBreakObject.swift | 2 +- Source/Internal/Layout/PDFSpaceObject.swift | 2 +- Source/Internal/PDFGenerator+Debug.swift | 6 +- .../Text/PDFAttributedTextObject.swift | 8 +- Source/Internal/Utils/PDFSlicedObject.swift | 2 +- 18 files changed, 269 insertions(+), 42 deletions(-) create mode 100644 Source/Internal/Graphics/PDFContext.swift diff --git a/Shared/Examples/ExternalDocumentExampleFactory.swift b/Shared/Examples/ExternalDocumentExampleFactory.swift index b44dd0b9..aeeea3f6 100644 --- a/Shared/Examples/ExternalDocumentExampleFactory.swift +++ b/Shared/Examples/ExternalDocumentExampleFactory.swift @@ -24,7 +24,7 @@ class ExternalDocumentExampleFactory: ExampleFactory { document.add(text: "This is more text after the external pdf file") // Add same sample again - externalDocument = PDFExternalDocument(url: Bundle.main.url(forResource: "sample", withExtension: "pdf")!, pages: 1, 3) + externalDocument = PDFExternalDocument(url: Bundle.main.url(forResource: "sample", withExtension: "pdf")!, pages: 2, 4) document.add(externalDocument: externalDocument) // Add more text after externalDocument diff --git a/Source/API/PDFGenerator+Generation.swift b/Source/API/PDFGenerator+Generation.swift index 5ccc975a..10fdd5e7 100644 --- a/Source/API/PDFGenerator+Generation.swift +++ b/Source/API/PDFGenerator+Generation.swift @@ -71,7 +71,7 @@ extension PDFGenerator { - throws: PDFError */ - public func generatePDFContext(context: CGContext) throws { + public func generatePDFContext(context: PDFContext) throws { let renderObjects = try createRenderObjects() try render(objects: renderObjects, in: context) } @@ -318,14 +318,14 @@ extension PDFGenerator { - throws: PDFError, if rendering fails */ - internal func render(objects: [PDFLocatedRenderObject], in context: CGContext) throws { + internal func render(objects: [PDFLocatedRenderObject], in context: PDFContext) throws { PDFContextGraphics.beginPDFPage(in: context, for: document.layout.bounds) - drawDebugPageOverlay(in: context) - let renderProgress = Progress.discreteProgress(totalUnitCount: Int64(objects.count)) progress.addChild(renderProgress, withPendingUnitCount: 1) + drawDebugPageOverlay(in: context) + for (container, object) in objects { try render(object: object, in: container, in: context) renderProgress.completedUnitCount += 1 @@ -339,7 +339,7 @@ extension PDFGenerator { - throws: PDFError, if rendering fails */ - internal func render(object: PDFRenderObject, in container: PDFContainer, in context: CGContext) throws { + internal func render(object: PDFRenderObject, in container: PDFContainer, in context: PDFContext) throws { try object.draw(generator: self, container: container, in: context) } diff --git a/Source/API/PDFMultiDocumentGenerator.swift b/Source/API/PDFMultiDocumentGenerator.swift index b9aaf894..b34c90c5 100644 --- a/Source/API/PDFMultiDocumentGenerator.swift +++ b/Source/API/PDFMultiDocumentGenerator.swift @@ -85,7 +85,7 @@ public class PDFMultiDocumentGenerator: PDFGeneratorProtocol { */ public func generate(to target: URL, info: PDFInfo?) throws { assert(!generators.isEmpty, "At least one document is required!") - + let context = PDFContextGraphics.createPDFContext(url: target, bounds: self.bounds, info: self.info) try processDocuments(context: context) PDFContextGraphics.closePDFContext(context) @@ -110,7 +110,7 @@ public class PDFMultiDocumentGenerator: PDFGeneratorProtocol { let (data, context) = PDFContextGraphics.createPDFDataContext(bounds: bounds, info: info ?? self.info) try processDocuments(context: context) PDFContextGraphics.closePDFContext(context) - + return data as Data } @@ -120,7 +120,7 @@ public class PDFMultiDocumentGenerator: PDFGeneratorProtocol { Make sure to call `UIGraphicsBeginPDFContextToData()` before, and `UIGraphicsEndPDFContext` after calling this method. */ - internal func processDocuments(context: CGContext) throws { + internal func processDocuments(context: PDFContext) throws { for generator in generators { generator.debug = debug progress.addChild(generator.progress, withPendingUnitCount: 1) diff --git a/Source/API/Utils/PDFRenderObject.swift b/Source/API/Utils/PDFRenderObject.swift index 890d6029..abf189ce 100644 --- a/Source/API/Utils/PDFRenderObject.swift +++ b/Source/API/Utils/PDFRenderObject.swift @@ -50,7 +50,7 @@ public class PDFRenderObject: CustomStringConvertible { - throws: None */ - internal func draw(generator: PDFGenerator, container: PDFContainer, in context: CGContext) throws { + internal func draw(generator: PDFGenerator, container: PDFContainer, in context: PDFContext) throws { applyAttributes(in: context) } @@ -65,7 +65,7 @@ public class PDFRenderObject: CustomStringConvertible { Applies the attributes to the current render context. Should be called after calling `draw` */ - internal func applyAttributes(in context: CGContext) { + internal func applyAttributes(in context: PDFContext) { for (attribute, frame) in attributes { switch attribute { case .link(let url): diff --git a/Source/Internal/External/PDFExternalPageObject.swift b/Source/Internal/External/PDFExternalPageObject.swift index 527079ba..0e6680d4 100644 --- a/Source/Internal/External/PDFExternalPageObject.swift +++ b/Source/Internal/External/PDFExternalPageObject.swift @@ -26,8 +26,17 @@ internal class PDFExternalPageObject: PDFRenderObject { ] } - override internal func draw(generator: PDFGenerator, container: PDFContainer, in context: CGContext) throws { - PDFContextGraphics.endPDFPage(in: context) + override internal func draw(generator: PDFGenerator, container: PDFContainer, in context: PDFContext) throws { + if !context.currentPageContainsDrawnContent { + // If page is empty and no page is active, we are good to go + // Otherwise we need to delete the empty page + if context.hasActivePage { + context.resetDelayedCommands() + } + } else { + // if something has been drawn on the page, end the and draw the external PDF page on a new page + PDFContextGraphics.endPDFPage(in: context) + } PDFContextGraphics.beginPDFPage(in: context, for: frame, flipped: false) context.saveGState() diff --git a/Source/Internal/Graphics/PDFContext.swift b/Source/Internal/Graphics/PDFContext.swift new file mode 100644 index 00000000..2f3fdfc0 --- /dev/null +++ b/Source/Internal/Graphics/PDFContext.swift @@ -0,0 +1,218 @@ +// +// File.swift +// +// +// Created by Philip Niedertscheider on 03.01.21. +// + +import CoreGraphics +import CoreText + +/// Encapsulates the graphics context +public class PDFContext { + + private enum Command { + case beginPDFPage(pageConfig: CFDictionary?) + case translateBy(x: CGFloat, y: CGFloat) + case scaleBy(x: CGFloat, y: CGFloat) + } + + private let cgContext: CGContext + + internal private(set) var currentPageContainsDrawnContent = false + internal private(set) var hasActivePage = false + + private var delayedCommands: [Command] = [] + + internal init(cgContext: CGContext) { + self.cgContext = cgContext + } + + // MARK: - PDF + + internal func beginPDFPage(_ pageInfo: CFDictionary?) { + // Do not create page immediately, instead invoke it as soon as necessary + print("beginPDFPage") + delayedCommands.append(.beginPDFPage(pageConfig: pageInfo)) + currentPageContainsDrawnContent = false + hasActivePage = true + } + + internal func endPDFPage() { + print("endPDFPage") + applyDelayedCommands() + cgContext.endPDFPage() + hasActivePage = false + } + + internal func closePDF() { + print("closePDFPage") + applyDelayedCommands() + cgContext.closePDF() + hasActivePage = false + } + + // MARK: - Coordinate System + + internal var userSpaceToDeviceSpaceTransform: CGAffineTransform { + cgContext.userSpaceToDeviceSpaceTransform + } + + // MARK: - Translation + + internal func translateBy(x: CGFloat, y: CGFloat) { + print("translateBy") + delayedCommands.append(.translateBy(x: x, y: y)) + } + + internal func scaleBy(x: CGFloat, y: CGFloat) { + print("scaleBy") + delayedCommands.append(.scaleBy(x: x, y: y)) + } + + // MARK: - Drawing + + internal func drawPath(using mode: CGPathDrawingMode) { + print("drawPath") + applyDelayedCommands() + cgContext.drawPath(using: mode) + currentPageContainsDrawnContent = true + } + + internal func drawPDFPage(_ page: CGPDFPage) { + print("drawPDFPage") + applyDelayedCommands() + cgContext.drawPDFPage(page) + currentPageContainsDrawnContent = true + } + + internal func draw(image: CGImage, in frame: CGRect, flipped: Bool) { + print("draw(image:)") + applyDelayedCommands() + cgContext.draw(image: image, in: frame, flipped: flipped) + currentPageContainsDrawnContent = true + } + + // MARK: - Colors + + internal func setFillColor(_ color: CGColor) { + print("setFillColor") + applyDelayedCommands() + cgContext.setFillColor(color) + currentPageContainsDrawnContent = true + } + + // MARK: - Paths + + internal func beginPath() { + print("beginPath") + applyDelayedCommands() + cgContext.beginPath() + currentPageContainsDrawnContent = true + } + + internal func addPath(_ path: CGPath) { + print("addPath") + applyDelayedCommands() + cgContext.addPath(path) + currentPageContainsDrawnContent = true + } + + internal func setLineDash(phase: CGFloat, lengths: [CGFloat]) { + print("setLineDash") + applyDelayedCommands() + cgContext.setLineDash(phase: phase, lengths: lengths) + currentPageContainsDrawnContent = true + } + + internal func setLineCap(_ cap: CGLineCap) { + print("setLineCap") + applyDelayedCommands() + cgContext.setLineCap(cap) + currentPageContainsDrawnContent = true + } + + internal func setLineWidth(_ width: CGFloat) { + print("setLineWidth") + applyDelayedCommands() + cgContext.setLineWidth(width) + currentPageContainsDrawnContent = true + } + + internal func setStrokeColor(_ color: CGColor) { + print("setStrokeColor") + applyDelayedCommands() + cgContext.setStrokeColor(color) + currentPageContainsDrawnContent = true + } + + // MARK: - State + + internal func saveGState() { + print("saveGState") + applyDelayedCommands() + cgContext.saveGState() + } + + internal func restoreGState() { + print("restoreGState") + applyDelayedCommands() + cgContext.restoreGState() + } + + // MARK: - CoreText + + internal var textMatrix: CGAffineTransform { + get { + cgContext.textMatrix + } + set { + cgContext.textMatrix = newValue + } + } + + internal func draw(ctFrame frameRef: CTFrame) { + print("draw(ctFrame:)") + applyDelayedCommands() + CTFrameDraw(frameRef, cgContext) + currentPageContainsDrawnContent = true + } + + // MARK: - Masking + + internal func clip() { + print("clip") + applyDelayedCommands() + cgContext.clip() + currentPageContainsDrawnContent = true + } + + // MARK: - Metadata + + internal func setURL(_ url: CFURL, for rect: CGRect) { + print("setURL") + applyDelayedCommands() + cgContext.setURL(url, for: rect) + currentPageContainsDrawnContent = true + } + + // MARK: - Helpers + + internal func resetDelayedCommands() { + delayedCommands = [] + } + + private func applyDelayedCommands() { + for command in delayedCommands { + switch command { + case .beginPDFPage(let pageConfig): + cgContext.beginPDFPage(pageConfig) + case let .scaleBy(x, y): + cgContext.scaleBy(x: x, y: y) + case let .translateBy(x, y): + cgContext.translateBy(x: x, y: y) + } + } + delayedCommands = [] + } +} diff --git a/Source/Internal/Graphics/PDFContextGraphics.swift b/Source/Internal/Graphics/PDFContextGraphics.swift index e8fb1438..3b4ef2fb 100644 --- a/Source/Internal/Graphics/PDFContextGraphics.swift +++ b/Source/Internal/Graphics/PDFContextGraphics.swift @@ -37,15 +37,15 @@ internal enum PDFContextGraphics { #endif } - internal static func createPDFContext(url: URL, bounds: CGRect, info: PDFInfo) -> CGContext { + internal static func createPDFContext(url: URL, bounds: CGRect, info: PDFInfo) -> PDFContext { var mediaBox = bounds guard let context = CGContext(url as CFURL, mediaBox: &mediaBox, info.generate() as CFDictionary) else { fatalError("Failed to create PDF rendering context for URL") } - return context + return PDFContext(cgContext: context) } - internal static func createPDFDataContext(bounds: CGRect, info: PDFInfo) -> (NSMutableData, CGContext) { + internal static func createPDFDataContext(bounds: CGRect, info: PDFInfo) -> (NSMutableData, PDFContext) { let data = NSMutableData() let contextInfo = info.generate() var mediaBox = bounds @@ -53,14 +53,14 @@ internal enum PDFContextGraphics { let context = CGContext(consumer: consumer, mediaBox: &mediaBox, contextInfo as CFDictionary) else { fatalError("Failed to create PDF rendering context") } - return (data, context) + return (data, PDFContext(cgContext: context)) } - internal static func closePDFContext(_ context: CGContext) { + internal static func closePDFContext(_ context: PDFContext) { context.closePDF() } - internal static func beginPDFPage(in context: CGContext, for bounds: CGRect, flipped: Bool = true) { + internal static func beginPDFPage(in context: PDFContext, for bounds: CGRect, flipped: Bool = true) { var mediaBox = bounds let boxData = NSData(bytes: &mediaBox, length: MemoryLayout.size(ofValue: mediaBox)) let pageInfo = [ @@ -74,7 +74,7 @@ internal enum PDFContextGraphics { } } - internal static func endPDFPage(in context: CGContext) { + internal static func endPDFPage(in context: PDFContext) { context.endPDFPage() } } diff --git a/Source/Internal/Graphics/PDFGraphics.swift b/Source/Internal/Graphics/PDFGraphics.swift index be0f178d..af298f18 100644 --- a/Source/Internal/Graphics/PDFGraphics.swift +++ b/Source/Internal/Graphics/PDFGraphics.swift @@ -34,7 +34,7 @@ internal enum PDFGraphics { - parameter end: End point of line - parameter style: Style of drawn line */ - internal static func drawLine(in context: CGContext, start: CGPoint, end: CGPoint, style: PDFLineStyle) { + internal static func drawLine(in context: PDFContext, start: CGPoint, end: CGPoint, style: PDFLineStyle) { guard style.type != .none else { return } @@ -57,7 +57,7 @@ internal enum PDFGraphics { - parameter outline: Style of border lines - parameter fill: Inner color */ - internal static func drawRect(in context: CGContext, rect: CGRect, outline: PDFLineStyle, fill: Color = .clear) { + internal static func drawRect(in context: PDFContext, rect: CGRect, outline: PDFLineStyle, fill: Color = .clear) { var path = BezierPath(rect: rect) if let radius = outline.radius { path = BezierPath(roundedRect: rect, cornerRadius: radius) @@ -74,7 +74,7 @@ internal enum PDFGraphics { - parameter outline: Style of border lines - parameter fill: Inner color */ - internal static func drawRect(in context: CGContext, rect: CGRect, outline: PDFLineStyle, pattern: FillPattern) { + internal static func drawRect(in context: PDFContext, rect: CGRect, outline: PDFLineStyle, pattern: FillPattern) { var path = BezierPath(rect: rect) if let radius = outline.radius { path = BezierPath(roundedRect: rect, cornerRadius: radius) @@ -89,7 +89,7 @@ internal enum PDFGraphics { /** TODO: Documentation */ - internal static func drawPath(path: BezierPath, in context: CGContext, outline: PDFLineStyle, fillColor: Color) { + internal static func drawPath(path: BezierPath, in context: PDFContext, outline: PDFLineStyle, fillColor: Color) { prepareForDrawingPath(path: path.cgPath, in: context, strokeStyle: outline) context.setFillColor(fillColor.cgColor) context.drawPath(using: .fillStroke) @@ -98,7 +98,7 @@ internal enum PDFGraphics { /** TODO: Documentation */ - internal static func prepareForDrawingPath(path: CGPath, in context: CGContext, strokeStyle: PDFLineStyle) { + internal static func prepareForDrawingPath(path: CGPath, in context: PDFContext, strokeStyle: PDFLineStyle) { context.beginPath() context.addPath(path) @@ -260,7 +260,7 @@ internal enum PDFGraphics { clipPath.addClip() image.draw(in: CGRect(origin: .zero, size: size)) - + #if os(iOS) let finalImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() @@ -289,7 +289,7 @@ internal enum PDFGraphics { /** TODO: Documentation */ - internal func setFill(in context: CGContext) { + internal func setFill(in context: PDFContext) { switch self { case .dotted(let foreColor, let backColor): let size = CGSize(width: 5, height: 5) diff --git a/Source/Internal/Graphics/PDFLineObject.swift b/Source/Internal/Graphics/PDFLineObject.swift index 3ff087a1..bd77a10a 100644 --- a/Source/Internal/Graphics/PDFLineObject.swift +++ b/Source/Internal/Graphics/PDFLineObject.swift @@ -73,7 +73,7 @@ internal class PDFLineObject: PDFRenderObject { - throws: None */ - override internal func draw(generator: PDFGenerator, container: PDFContainer, in context: CGContext) throws { + override internal func draw(generator: PDFGenerator, container: PDFContainer, in context: PDFContext) throws { PDFGraphics.drawLine( in: context, start: startPoint, diff --git a/Source/Internal/Graphics/PDFLineSeparatorObject.swift b/Source/Internal/Graphics/PDFLineSeparatorObject.swift index c069f1f7..5fce9f33 100644 --- a/Source/Internal/Graphics/PDFLineSeparatorObject.swift +++ b/Source/Internal/Graphics/PDFLineSeparatorObject.swift @@ -59,7 +59,7 @@ internal class PDFLineSeparatorObject: PDFRenderObject { - throws: None */ - override internal func draw(generator: PDFGenerator, container: PDFContainer, in context: CGContext) throws { + override internal func draw(generator: PDFGenerator, container: PDFContainer, in context: PDFContext) throws { PDFGraphics.drawLine( in: context, start: CGPoint(x: self.frame.minX, y: self.frame.midY), diff --git a/Source/Internal/Graphics/PDFRectangleObject.swift b/Source/Internal/Graphics/PDFRectangleObject.swift index a69cff19..e28df1a9 100644 --- a/Source/Internal/Graphics/PDFRectangleObject.swift +++ b/Source/Internal/Graphics/PDFRectangleObject.swift @@ -72,7 +72,7 @@ internal class PDFRectangleObject: PDFRenderObject { - throws: None */ - override internal func draw(generator: PDFGenerator, container: PDFContainer, in context: CGContext) throws { + override internal func draw(generator: PDFGenerator, container: PDFContainer, in context: PDFContext) throws { PDFGraphics.drawRect(in: context, rect: self.frame, outline: lineStyle, fill: fillColor) applyAttributes(in: context) } diff --git a/Source/Internal/Group/PDFGroupObject.swift b/Source/Internal/Group/PDFGroupObject.swift index 204bb701..7e0119e5 100644 --- a/Source/Internal/Group/PDFGroupObject.swift +++ b/Source/Internal/Group/PDFGroupObject.swift @@ -199,7 +199,7 @@ internal class PDFGroupObject: PDFRenderObject { /** TODO: Documentation */ - override internal func draw(generator: PDFGenerator, container: PDFContainer, in context: CGContext) throws { + override internal func draw(generator: PDFGenerator, container: PDFContainer, in context: PDFContext) throws { if let color = backgroundColor { PDFGraphics.drawRect(in: context, rect: self.frame, outline: self.outline, fill: color) } diff --git a/Source/Internal/Image/PDFImageObject.swift b/Source/Internal/Image/PDFImageObject.swift index 7e2b1e17..605b1be0 100644 --- a/Source/Internal/Image/PDFImageObject.swift +++ b/Source/Internal/Image/PDFImageObject.swift @@ -91,7 +91,7 @@ internal class PDFImageObject: PDFRenderObject { - parameter generator: Current instance handling the drawing - parameter container: Container where the image is placed in */ - override internal func draw(generator: PDFGenerator, container: PDFContainer, in context: CGContext) throws { + override internal func draw(generator: PDFGenerator, container: PDFContainer, in context: PDFContext) throws { var roundedCorners: RectCorner = [] if image.options.contains(.rounded) { roundedCorners = .allCorners diff --git a/Source/Internal/Layout/PDFPageBreakObject.swift b/Source/Internal/Layout/PDFPageBreakObject.swift index 7a1fbf69..6facf7e5 100644 --- a/Source/Internal/Layout/PDFPageBreakObject.swift +++ b/Source/Internal/Layout/PDFPageBreakObject.swift @@ -70,7 +70,7 @@ internal class PDFPageBreakObject: PDFRenderObject { - throws: None */ - override internal func draw(generator: PDFGenerator, container: PDFContainer, in context: CGContext) throws { + override internal func draw(generator: PDFGenerator, container: PDFContainer, in context: PDFContext) throws { if !stayOnSamePage { PDFContextGraphics.endPDFPage(in: context) PDFContextGraphics.beginPDFPage(in: context, for: generator.document.layout.bounds) diff --git a/Source/Internal/Layout/PDFSpaceObject.swift b/Source/Internal/Layout/PDFSpaceObject.swift index 678273e0..3782edfc 100644 --- a/Source/Internal/Layout/PDFSpaceObject.swift +++ b/Source/Internal/Layout/PDFSpaceObject.swift @@ -62,7 +62,7 @@ internal class PDFSpaceObject: PDFRenderObject { - throws: None */ - override internal func draw(generator: PDFGenerator, container: PDFContainer, in context: CGContext) throws { + override internal func draw(generator: PDFGenerator, container: PDFContainer, in context: PDFContext) throws { if generator.debug { PDFGraphics.drawRect(in: context, rect: self.frame, diff --git a/Source/Internal/PDFGenerator+Debug.swift b/Source/Internal/PDFGenerator+Debug.swift index 7ba289ce..7892703e 100644 --- a/Source/Internal/PDFGenerator+Debug.swift +++ b/Source/Internal/PDFGenerator+Debug.swift @@ -21,7 +21,7 @@ extension PDFGenerator { /** Overlays horizontal and vertical lines at margin insets */ - internal func drawDebugPageOverlay(in context: CGContext) { + internal func drawDebugPageOverlay(in context: PDFContext) { // Only render if debugging is enabled guard debug else { return @@ -52,7 +52,7 @@ extension PDFGenerator { - parameter positionY: Position in points, from top page edge */ - private func drawHorizontalMarginLines(in context: CGContext, positionY: CGFloat) { + private func drawHorizontalMarginLines(in context: PDFContext, positionY: CGFloat) { PDFGraphics.drawLine(in: context, start: CGPoint(x: 0, y: positionY), end: CGPoint(x: document.layout.width, y: positionY), style: debugLineStyle) } @@ -61,7 +61,7 @@ extension PDFGenerator { - parameter positionX: Position in points, from left page edge */ - private func drawVerticalMarginLines(in context: CGContext, positionX: CGFloat) { + private func drawVerticalMarginLines(in context: PDFContext, positionX: CGFloat) { PDFGraphics.drawLine(in: context, start: CGPoint(x: positionX, y: 0), end: CGPoint(x: positionX, y: document.layout.height), style: debugLineStyle) } diff --git a/Source/Internal/Text/PDFAttributedTextObject.swift b/Source/Internal/Text/PDFAttributedTextObject.swift index 8b189b77..6069b88a 100644 --- a/Source/Internal/Text/PDFAttributedTextObject.swift +++ b/Source/Internal/Text/PDFAttributedTextObject.swift @@ -120,7 +120,7 @@ internal class PDFAttributedTextObject: PDFRenderObject { - throws: None */ - override internal func draw(generator: PDFGenerator, container: PDFContainer, in context: CGContext) throws { + override internal func draw(generator: PDFGenerator, container: PDFContainer, in context: PDFContext) throws { if attributedString == nil { throw PDFError.textObjectNotCalculated } @@ -148,9 +148,9 @@ internal class PDFAttributedTextObject: PDFRenderObject { // Translate context to actual position of text context.translateBy(x: frame.minX, y: CGFloat(generator.document.layout.height) - frame.maxY) - + // Draw text into context - CTFrameDraw(frameRef, context) + context.draw(ctFrame: frameRef) // Restore context to pre manipulation context.restoreGState() @@ -176,7 +176,7 @@ internal class PDFAttributedTextObject: PDFRenderObject { private func calculateLinkAttributes(with links: [(url: String, range: NSRange)], in frameRef: CTFrame, in allRange: NSRange, - context: CGContext, + context: PDFContext, debug: Bool) { guard let lines = CTFrameGetLines(frameRef) as? [CTLine] else { return diff --git a/Source/Internal/Utils/PDFSlicedObject.swift b/Source/Internal/Utils/PDFSlicedObject.swift index 1d445917..b5fb5819 100644 --- a/Source/Internal/Utils/PDFSlicedObject.swift +++ b/Source/Internal/Utils/PDFSlicedObject.swift @@ -28,7 +28,7 @@ internal class PDFSlicedObject: PDFRenderObject { ] } - override internal func draw(generator: PDFGenerator, container: PDFContainer, in context: CGContext) throws { + override internal func draw(generator: PDFGenerator, container: PDFContainer, in context: PDFContext) throws { if frame != .null { context.saveGState() context.beginPath() From 90a846dba57932ec58afee0fdad335cc7370cb56 Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Sun, 3 Jan 2021 10:45:03 +0100 Subject: [PATCH 08/29] Fixed build of unit tests --- TPPDF.xcodeproj/project.pbxproj | 9 ++++++--- Tests/TPPDFTests/Layout/PDFPageBreakObject_Spec.swift | 2 +- Tests/TPPDFTests/PDFGenerator+Generation_Spec.swift | 4 ++-- Tests/TPPDFTests/Utils/PDFObject_Spec.swift | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/TPPDF.xcodeproj/project.pbxproj b/TPPDF.xcodeproj/project.pbxproj index b199ee58..208369d6 100644 --- a/TPPDF.xcodeproj/project.pbxproj +++ b/TPPDF.xcodeproj/project.pbxproj @@ -23,6 +23,7 @@ /* Begin PBXBuildFile section */ D4B7EA1E25A1BB67007D09C7 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D4B7EA1D25A1BB67007D09C7 /* XCTest.framework */; }; D4B7EA1F25A1BB67007D09C7 /* XCTest.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D4B7EA1D25A1BB67007D09C7 /* XCTest.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + D4B7EA4125A1C956007D09C7 /* PDFContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4B7EA4025A1C956007D09C7 /* PDFContext.swift */; }; OBJ_428 /* CwlCatchException.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_353 /* CwlCatchException.swift */; }; OBJ_430 /* CwlCatchExceptionSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchExceptionSupport::Product" /* CwlCatchExceptionSupport.framework */; }; OBJ_438 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_359 /* Package.swift */; }; @@ -519,6 +520,7 @@ "CwlPreconditionTesting::CwlPosixPreconditionTesting::Product" /* CwlPosixPreconditionTesting.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CwlPosixPreconditionTesting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; "CwlPreconditionTesting::CwlPreconditionTesting::Product" /* CwlPreconditionTesting.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CwlPreconditionTesting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D4B7EA1D25A1BB67007D09C7 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/MacOSX.platform/Developer/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; + D4B7EA4025A1C956007D09C7 /* PDFContext.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFContext.swift; sourceTree = ""; }; "Nimble::Nimble::Product" /* Nimble.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; OBJ_10 /* PDFExternalDocument.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFExternalDocument.swift; sourceTree = ""; }; OBJ_101 /* PDFContextGraphics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFContextGraphics.swift; sourceTree = ""; }; @@ -963,6 +965,7 @@ OBJ_100 /* Graphics */ = { isa = PBXGroup; children = ( + D4B7EA4025A1C956007D09C7 /* PDFContext.swift */, OBJ_101 /* PDFContextGraphics.swift */, OBJ_102 /* PDFGraphics.swift */, OBJ_103 /* PDFLineObject.swift */, @@ -1732,7 +1735,7 @@ path = "Table Of Content"; sourceTree = ""; }; - OBJ_5 /* */ = { + OBJ_5 = { isa = PBXGroup; children = ( OBJ_6 /* Package.swift */, @@ -1759,7 +1762,6 @@ OBJ_422 /* CHANGELOG.md */, D4B7EA1C25A1BB67007D09C7 /* Frameworks */, ); - name = ""; sourceTree = ""; }; OBJ_51 /* Table */ = { @@ -2201,7 +2203,7 @@ knownRegions = ( en, ); - mainGroup = OBJ_5 /* */; + mainGroup = OBJ_5; productRefGroup = OBJ_395 /* Products */; projectDirPath = ""; projectRoot = ""; @@ -2421,6 +2423,7 @@ OBJ_621 /* PDFImageSizeFit.swift in Sources */, OBJ_622 /* PDFContainer.swift in Sources */, OBJ_623 /* PDFPageLayout.swift in Sources */, + D4B7EA4125A1C956007D09C7 /* PDFContext.swift in Sources */, OBJ_624 /* PDFList.swift in Sources */, OBJ_625 /* PDFListItem.swift in Sources */, OBJ_626 /* PDFListItemSymbol.swift in Sources */, diff --git a/Tests/TPPDFTests/Layout/PDFPageBreakObject_Spec.swift b/Tests/TPPDFTests/Layout/PDFPageBreakObject_Spec.swift index 575613c6..56850899 100644 --- a/Tests/TPPDFTests/Layout/PDFPageBreakObject_Spec.swift +++ b/Tests/TPPDFTests/Layout/PDFPageBreakObject_Spec.swift @@ -53,7 +53,7 @@ class PDFPageBreakObject_Spec: QuickSpec { it("can be drawn") { expect { - try object.draw(generator: generator, container: container, in: context) + try object.draw(generator: generator, container: container, in: PDFContext(cgContext: context)) }.toNot(throwError()) } } diff --git a/Tests/TPPDFTests/PDFGenerator+Generation_Spec.swift b/Tests/TPPDFTests/PDFGenerator+Generation_Spec.swift index 82b9d76e..33548f1f 100644 --- a/Tests/TPPDFTests/PDFGenerator+Generation_Spec.swift +++ b/Tests/TPPDFTests/PDFGenerator+Generation_Spec.swift @@ -133,7 +133,7 @@ class PDFGenerator_Generation_Spec: QuickSpec { static var called = false - override func draw(generator: PDFGenerator, container: PDFContainer, in context: CGContext) throws { + override func draw(generator: PDFGenerator, container: PDFContainer, in context: PDFContext) throws { CustomObject.called = true } @@ -147,7 +147,7 @@ class PDFGenerator_Generation_Spec: QuickSpec { expect(CustomObject.called).to(beFalse()) - try? generator.render(object: obj, in: .headerLeft, in: context) + try? generator.render(object: obj, in: .headerLeft, in: .init(cgContext: context)) expect(CustomObject.called).to(beTrue()) } diff --git a/Tests/TPPDFTests/Utils/PDFObject_Spec.swift b/Tests/TPPDFTests/Utils/PDFObject_Spec.swift index edd8cec5..4d764309 100644 --- a/Tests/TPPDFTests/Utils/PDFObject_Spec.swift +++ b/Tests/TPPDFTests/Utils/PDFObject_Spec.swift @@ -49,7 +49,7 @@ class PDFObject_Spec: QuickSpec { it("should have a draw method") { expect { - try object.draw(generator: generator, container: container, in: context) + try object.draw(generator: generator, container: container, in: PDFContext(cgContext: context)) }.toNot(throwError()) } } From a2ce29843d0b7fdaf3c022155c4a60d7d40e4be1 Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Sun, 3 Jan 2021 11:10:33 +0100 Subject: [PATCH 09/29] Fixed deployment versions --- TPPDF.xcodeproj/project.pbxproj | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/TPPDF.xcodeproj/project.pbxproj b/TPPDF.xcodeproj/project.pbxproj index 208369d6..faccedf7 100644 --- a/TPPDF.xcodeproj/project.pbxproj +++ b/TPPDF.xcodeproj/project.pbxproj @@ -856,8 +856,8 @@ OBJ_99 /* PDFExternalPageObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFExternalPageObject.swift; sourceTree = ""; }; "Quick::Quick::Product" /* Quick.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Quick.framework; sourceTree = BUILT_PRODUCTS_DIR; }; "Quick::QuickObjCRuntime::Product" /* QuickObjCRuntime.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = QuickObjCRuntime.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - "TPPDF::TPPDF::Product" /* TPPDF.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = TPPDF.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - "TPPDF::TPPDFTests::Product" /* TPPDFTests.xctest */ = {isa = PBXFileReference; lastKnownFileType = file; path = TPPDFTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + "TPPDF::TPPDF::Product" /* TPPDF.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TPPDF.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + "TPPDF::TPPDFTests::Product" /* TPPDFTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; path = TPPDFTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -2766,7 +2766,7 @@ "SWIFT_PACKAGE=1", "DEBUG=1", ); - MACOSX_DEPLOYMENT_TARGET = 10.10; + MACOSX_DEPLOYMENT_TARGET = 10.13; ONLY_ACTIVE_ARCH = YES; OTHER_SWIFT_FLAGS = "$(inherited) -DXcode"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -2791,7 +2791,7 @@ "$(inherited)", "SWIFT_PACKAGE=1", ); - MACOSX_DEPLOYMENT_TARGET = 10.10; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_SWIFT_FLAGS = "$(inherited) -DXcode"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; @@ -3388,9 +3388,7 @@ ); HEADER_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = TPPDF.xcodeproj/TPPDF_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; - MACOSX_DEPLOYMENT_TARGET = 10.14; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; OTHER_SWIFT_FLAGS = "$(inherited)"; @@ -3401,8 +3399,6 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; SWIFT_VERSION = 5.0; TARGET_NAME = TPPDF; - TVOS_DEPLOYMENT_TARGET = 9.0; - WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Debug; }; @@ -3416,9 +3412,7 @@ ); HEADER_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = TPPDF.xcodeproj/TPPDF_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; - MACOSX_DEPLOYMENT_TARGET = 10.14; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; OTHER_SWIFT_FLAGS = "$(inherited)"; @@ -3429,8 +3423,6 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; SWIFT_VERSION = 5.0; TARGET_NAME = TPPDF; - TVOS_DEPLOYMENT_TARGET = 9.0; - WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Release; }; @@ -3482,17 +3474,13 @@ "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime", ); INFOPLIST_FILE = TPPDF.xcodeproj/TPPDFTests_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @loader_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.15; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; SWIFT_VERSION = 5.0; TARGET_NAME = TPPDFTests; - TVOS_DEPLOYMENT_TARGET = 9.0; - WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Debug; }; @@ -3514,17 +3502,13 @@ "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime", ); INFOPLIST_FILE = TPPDF.xcodeproj/TPPDFTests_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @loader_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.15; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; SWIFT_VERSION = 5.0; TARGET_NAME = TPPDFTests; - TVOS_DEPLOYMENT_TARGET = 9.0; - WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Release; }; From 96000d3f9b390f005e4b289f95ad3963216305d1 Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Sun, 3 Jan 2021 11:18:42 +0100 Subject: [PATCH 10/29] CI build destination bump --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 15aa4c4d..f02d113b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,7 @@ cache: env: global: - - DESTINATION="OS=13.4,name=iPhone 11 Pro" + - DESTINATION="OS=13.6,name=iPhone 11 Pro" - WORKSPACE="Example.xcworkspace" - PROJECT="Example.xcodeproj" - EXAMPLE_SCHEME="Example" From 151293e9f042260a9de2f30ca5b87a2dcd56e375 Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Sun, 3 Jan 2021 11:51:15 +0100 Subject: [PATCH 11/29] Fixed external document inserting empty page when debugging --- .gitignore | 3 +++ .../Example.xcodeproj/project.pbxproj | 4 ++++ Shared/Data/Documents/sample-large.pdf | Bin 0 -> 39337 bytes Shared/Examples/ExperimentFactory.swift | 11 +++-------- Source/API/PDFGenerator+Generation.swift | 11 ++++++++--- Source/API/Utils/PDFError.swift | 8 +++----- .../External/PDFExternalDocumentObject.swift | 4 ++-- Source/Internal/PDFGenerator+Debug.swift | 2 +- 8 files changed, 24 insertions(+), 19 deletions(-) create mode 100644 Shared/Data/Documents/sample-large.pdf diff --git a/.gitignore b/.gitignore index d00765cb..46a346ee 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,6 @@ Example*/Pods/Swiftlint # Xcode Schemes, so Carthage doesn't complain !Example iOS/TPPDF.xcodeproj/xcsharedata/xcschemes/TPPDF.xcscheme !Example iOS/TPPDF.xcodeproj/xcsharedata/xcschemes/TPPDF-Example.xcscheme + +# Ruby Gems +vendor diff --git a/Example iOS-SwiftPM/Example.xcodeproj/project.pbxproj b/Example iOS-SwiftPM/Example.xcodeproj/project.pbxproj index 1a03efd7..f3ecf5d2 100644 --- a/Example iOS-SwiftPM/Example.xcodeproj/project.pbxproj +++ b/Example iOS-SwiftPM/Example.xcodeproj/project.pbxproj @@ -41,6 +41,7 @@ D49855532461FB0B00D54270 /* Image-4.jpg in Resources */ = {isa = PBXBuildFile; fileRef = D49855372461FB0B00D54270 /* Image-4.jpg */; }; D49855542461FB0B00D54270 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = D49855382461FB0B00D54270 /* Icon.png */; }; D49855562461FB9A00D54270 /* Examples.swift in Sources */ = {isa = PBXBuildFile; fileRef = D49855552461FB9A00D54270 /* Examples.swift */; }; + D4B7EB0725A1D345007D09C7 /* sample-large.pdf in Resources */ = {isa = PBXBuildFile; fileRef = D4B7EB0525A1D32F007D09C7 /* sample-large.pdf */; }; D4D28D2323AA1A6D00028D5A /* ExamplesListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4D28D2223AA1A6D00028D5A /* ExamplesListViewController.swift */; }; /* End PBXBuildFile section */ @@ -81,6 +82,7 @@ D49855372461FB0B00D54270 /* Image-4.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "Image-4.jpg"; sourceTree = ""; }; D49855382461FB0B00D54270 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Icon.png; sourceTree = ""; }; D49855552461FB9A00D54270 /* Examples.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Examples.swift; sourceTree = ""; }; + D4B7EB0525A1D32F007D09C7 /* sample-large.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = "sample-large.pdf"; sourceTree = ""; }; D4D28D2223AA1A6D00028D5A /* ExamplesListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExamplesListViewController.swift; sourceTree = ""; }; /* End PBXFileReference section */ @@ -197,6 +199,7 @@ D498552F2461FB0B00D54270 /* Documents */ = { isa = PBXGroup; children = ( + D4B7EB0525A1D32F007D09C7 /* sample-large.pdf */, D49855302461FB0B00D54270 /* sample.pdf */, ); path = Documents; @@ -310,6 +313,7 @@ 607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */, 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */, 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */, + D4B7EB0725A1D345007D09C7 /* sample-large.pdf in Resources */, D49855512461FB0B00D54270 /* Image-3.jpg in Resources */, D498554F2461FB0B00D54270 /* PortraitImage.jpg in Resources */, D49855542461FB0B00D54270 /* Icon.png in Resources */, diff --git a/Shared/Data/Documents/sample-large.pdf b/Shared/Data/Documents/sample-large.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e71c3a33aa1f98a7c8f47d2b2916b52ffbf20c28 GIT binary patch literal 39337 zcmdVD2|QI@8#bO&8Hz+?h!dhxIFoZwBy-4=F_L-6lv$-gW{Q*yr2&;BLnIMph%!%& zG?*g|s7#e_?R^I4IG!io|Nr;&eb4Xxy|Jvb_daV~>$noQX zis6vbDy`d%!nGBac@zd$968^8^wBaSXI=N9!dz8D@4yW8gey1wcD6JsMe;kPZZZ%K zROS+Qh#lctZd6F`^h+yADmKMfvkE_P+o7|6g1yZ|`_AYdS!^74&Q$1lDC1~$cxMB~ zaq@7NL^_2J7xe^d2DGD(yFrUIS|{>Yv^NCckLJacoXC+X&d zuRC)!32RI6*O|UZ=&O)A6S0Iu!q=484Ms*n0RogO^!+51Y<(Q9ZS_=l{uyV<=Y99+ zzv2vSEWwpDtrkRV_{MXH5z!*6wuW9eT>ZGt;*cN_AEl)#9Bi8mZT38(Qwb!U+WzFw zl)Q=DCH`@FfTQ%MNNZPUfX~mX{mmhHr2Y)co{cw&kDBPhqc-sl%7;zh>pkvQEkFAvw zUCwU}>E~_2p08wl7i?S|aQ!e`s;Q$GxkNOixN5INUyy?HP?a^t*pj zfY~g_KPkch%I4ptL4g0ujIGp;&QG>?VY;{ zIptXHm2-9SeqFRB*rNO_!;U8mOPW=T8F+`4cE%VB)3L2Ta7Hj~@lEBV7?w2N`=`{- z9PC-LEcB{n!dlKM?(R^Ns7@(3*EorU+T;$i4#_!Y!fj?q1l zuI(ilvdX{G%xY8a>6Z!*)cHhqpXE>w5$4hp-jtYsVvo9$pt;C)k&^XipUT*%daO0s zu}?co_%gy`18c0j&bf^u9NN41ly|<`Exqgh4*wngir4g3rn|NoXCxFQn`)OR1?&ot zP(6!|AC2#Rdi(6HGY8^6#vk6GeeOlPZ@h*0Wl@Xu$9Da`{8(8+r7OTd--~Kdh=@ZmX%BHA4ltPUyC{$RU8#Pis`%G z*xlGJmF>81`oX5SiOsH?kHiVa*~QVtMQ3OlxIN=|mYm^|q1`6wB;sW0^vY@KnfR?! zjW-&7FEu7xV5WP1h7RTwg&!)MboyQ~xP9;}PZCcl4>ykiPdugy%bnz!^fakAsUK6F z?_kP&m)^A3wEylt$+*PNb$jeKw|M=D$>OTQX%^`Ye@%hXP5 zp^P)Pnm4DKrpi{~tqTrD49j)z70C%tR*zLb^;Ap$W!u|5`->X$8&@3Ya}dGY!WLJj zV~X3!qjZTfMtPV2>~exFL0$~P~!zxq`;CB~}3dPX&}`rM7P{XC7#`@-V0 zjm{Wl--{iy`r`EEhMbICxZEi@_EMkHTLBW|mcJJN@|k=y`r>Q<^joczl@u$B)uNxYJW-82#i_yRtMXL!vGOxjE#DCdQ_rJqY&4( za|-aTIV|ksadWKYjYeqqP#078XK}RI`Mjam9(Q|h);4CvSd^I@+|17_u2UV) zo4uM@-z@I?_R_yNTO2wS+g~Nte`?r#-1g@g`uLzbLCs3>mFD5r>RIY*)VmjJE8KnW zeaB+tM9Hyxxq3bN6Z|(U9?1^0+TAKSXATq?6U!T%8uqU znj1Y$?1~dk|JMAj7A1UP!$}k7Jf}Nv?Nx0r*XY)<^?mC}>T#`I_jL5>)KRP**4Nv< z)aQ4|&ob=i11z_LpJ$o1-{0+PURKokz4T+W3&KV1)z?~;+Ecc??_49^w&`Bc%_-gQ zkoTppYUll(x}7Ck8}_m|KXzW@{OOHd-fgG$c)@+m->qu9BD%CUbi{sqXA)pE@uu!a z(5I4XKdw#rzV~79?RYa#G-{k^WwP&8Q`UR)+r4!oDI@oajfP4ME%zSW&*~U$6P=Gr zzf-a++e!7=jls0R6FkvLeIz$QOc^YCXn)M&n9?V;;WLe@!K&A)%cH%Y$+o?~rQ^;?m7j{O%I!W_?e^>a zcg4f(w+3|3srSd}@$03ByQ;?pzFbe)@_x)Fn#1()Q`lZyc&Cr#xo6TE?$tn?0a-%XI1cUWH?u-jFFdIQGQQL za#l{(+u9TH+53j?d)#aB`6`2| zw^bXXCZgUP%Ki5EYi(3~Yj^O&O}`7q;+k(=KI%JFVsG`d^6P=-kBRcT-lmsIPd@+Q z(r@#jr`6Z-%k>)(Z*P^#|2XmM>Xh}j>N5jF+T+@Bmru$29%1}B;wR!_*Y|ELXmpBJ z$ip%emhVzX6iHY^3K?nxVp?5Mai^uHtqlU!uzCn{QXeEF=x1wMqK5yogQUS42suc< z)_As^e6)D!gO;_8XvAn~5ad&1ZLfau%JGKcNft)dl4t279NEk) zeqCWv)#0oSVOrXfQv2x-j4um*tP)}7RI*vA@?@m*w*4nZ1ePZcEZUVUYVa}93MmjZ zY_kukU~)}pW8R6LhBIDwRJ2~2BYs=&+=@lMNz}^dG`A=gi0x^%Rrq-=eOgC>!(WQU4D&;Zt^4;>D7_PW>#2F~Xq}ymh;IBc-7L?YyH@+wt7F}ge>uIKV^m4b zBT7=5JYXn_0h^D5ge1C~WDf}*atarTiONMn%;h4%*C5T(f9@k8NkF3Tp^*e%YJpC4 zyVfa}Y|ddbp09{YgREg}`CnKYuCH18Q9_sZ?dr1d7 z(PoenolA0}hbf%sevQtvR=w+`ldlIH{7M%-R{mm4RC9>qci>$dHatuDj-_V5>l3?e zA_o0N4a|GPg4fg^ew;oi%6RC&+BrZ1jRd^(kdkDOQ2Mm<0tvxm1%58kjfTg3fgqvu zW&d-Kpdd$>1W}@MjDpq*_!56663R$RyO!21%1F!ISs=+zZxZZv7YpqLASq|@9XfN6 zukfIfo=@PN(+O9^{dW>T68O|W__#8cYkDe(w8Yy~g)*KnAC#bo(HAmG;6Yy)O5kgd=IOsj2`S=4K_w_+2Mnb)R2a zKlXkfEtHbMwMXj_z1Cy))%!S2zv+C`$`It=GT9j-vT@oyM~rvJ?P>MaLwX#eWovQM zYpiYjM;3eIVul{H?bfnY8QQ&S8fAGsY3&!yvv!3qsy|=gDDgVaq#DtpfRZ^CYSp<- zus^8P*S_w#XQ7x>L!0m;P?VJa-=l<*$%tHnh8D|$x#Ys_st?ZuFKH~{ zuhjoVhuryT>SUfHMbviXE=&%eYj4iQe!q)373&Vy;aNKHf?}o$x*Ifg)@)lpV4tGQ z`mA}&9w=(-nhr&6ah{Bj!SNPW&P|8{2B*1PVwAtlL=}qK8U#~EZHq`z+hD*YEUUC{ z6o|2`7i3l#pX`h}!z*N#%XnS5`T3KAsDYLrq^Rxfv96fNWuqhtN?h(?1I)H|-N(FF*!FBWP$dwR zh%r4s38-Ym)+hFUYS}u*(A!&TY$K}K_IBhbR^|3r(H(rlJSeq4u%M5TQJ#70q4ZG^ zBQ{n}^TL#sH5Po%c1zN~;~ZtQBdp}scK6(~3QW;d)v;glwBd}8(*d;Q80#=Ad!Ge+ zYqDd@im^lO0cTR;#XTTZf>@d?qL}N>pX*uv!dJ9zM7m??0eha+0ik{s2@Ssz>b*2G z8nk0K-qPDExMt;%$C*i@-W+pL2|N_D3=Vps+7&%pyTXIMFoOeMlF z5BwXB%CVynyxyxe>STyj;@Ok%Yej#aU3(z#$aLl5rK#bP39%1aejobs`lC*&V!5T% zvX9#yk4A0h$0NG&9^FBOgV+p_{XD?n$o$Mqdvf*pt({8SjBPqkLk34Ok?~5Kzuw(T z9FLDkRy}=SwYYe~PD(=EuFRDCnWh+1l5<*E* z_7`#Emm4}(?!Do(Iv~=oIw1>2NlJqo`?dR8TlBX2$46xxrDJ+~fREPTph>(zVQ|nS zBQ$R=nJr$?L<_VKE}^9S|J>kUC>I71B^aXE`m-#d5U*tg?NSB%_Evg2K04`_A&*dL zDwW4y*vwS0T-~y@r*=r#Q}v|mYL?K=+z$+o6( zfBv33C88{0z9m>YqDFy9Mk@r!60828>@T|$;yeqPpEqEHCs~F=kjYa7St75VvhA*N z_#VvH2otQf_r(Jmv?zgxViuQR{vcj4L<2LkQ-~pwGuh<8qrNaQfv@q`$OJ>VGDt8X zVtqj{QD}DojxfpO2&@ungJ5FFkx7CHtX?aCdfiM=uR^_e_wKOt!KDW5k_!66K|z;; zIk&eR$}@yb&Q(UpIR!65Ekeweoy*{kjat6H|1&X1U5w^SZ0~{ogPSij>i7 z)vr*G4(HKwN=@9PPJe2dxWnpEE|x4W#`GV!mi#jtV;>7gHMprTTddK(a%g*O9Qt-! zo86Aj0zCqPbq@tY#Prh!rViBxtXID91Kp{X%aHK0j)5mVAjhN2-@S4MGF>qKnR?IgZ>Kr zh@mtB^8yQ&7-1lT1s?l_aSD8mzs4z8O81Tg7NYE0AXpsl(SYT`#=>=J!D$1vwHhOj zI9ZMP?|E(H;=Uw0Ql>kKQ#tYbj_)$UVxp!uv+9m_$Uk|glyFRWh0%4j*6-iXOsPaj znfH{RvFb(Uh1Xv^>4sRU+}wFwM?v~>{9GU|xBo;v-$zZ`!>i_wHg-9ebU?Ezh1uzSi(gghX%tFa)B(M)b~{kT+Rll!7NCHzlo5)GZ4(1e-Cf`d2Hm zTHkQqdhSq6@3f`%?y6-PEM?1{j!sJ72wS-Js%$Y*w@3aHDhE+Omjp0OMJX!My?FMpthSv5jrzZ-flKD0@3b40;eON1b+0z#xC z=j_PR&J+6Yo3>W*Pb7*JM~_}QZ*)D*?^?|fmlDI52Pc*VN4pfz0tOxw*c742 zu~{j~aQ3{|MQXOZg~xwkrU<^q-vbOKw-MPzYQFMTSL*-_7^4T>ht#a356We&OzmG) z!E)_JK5vwNQ{QyOrHkh|&+|vDjP1Q~Lv$dD&fb{+oqv8@MQ;%6PpjzI{zuV55l1<{ zSqCy!UE+@APvp@`O1T*a5sds=_ECAhBLnO@pFGnN1$BiZ)z>EXM{#O>%-ZptQ&_Cu z)N!ajqJ!&+fKq~yawf1wdEdO_4=YAUy=ep1h&Sd{2Ot;`HN|EhLhw|J)qm<`BBLc?(@K!yMd>$-TIFAdAtO$S`8(?#J{^U)A1S4H)Jzkzu-y zvt3fXyk^S$(RX%Lv#%i${mB9X8;jMOzH^IwkhN1g>RfN!5@Y5f%!uI}SGk-x-FYR> z?#e6gG~U&^!Wt%Plf6}|$3#tB^7SdeFm`}pHs!}&VdyIS zd7dMbH~9QqS{EJ@0>O~C2&G6?YTkIk&DOf`@Gp#D;A{Lfg27R)5hB6hh@fAfd~q!P zvwQ)LkqN;udVJ2lI(qv^5qq0fAY)PzU>A05QkzOQ%q|4^g7co`7)9RMd}+t`L&9SA zrZ;caLt0m!taZn}pP$+ZwC*7a$0#N?#l>xH*b~K7VT`I#mC+z4dl}HW2hL;{-q9cH zX#HA~zdHMz33jw}Coo4AF;>48g|y7YF7SxJXhGs3?ty;9{Xy*Fh{k6o+JYkzH(9^H zgTFwuka+H|xY0Pu6+%P{o~X(eik27uKcGc_^NbtqI=EWrlUtgj5WyC`i{dQ(BU(Ob zP@sj{jqaM;jjpNNyZ$g4ECMdsw5A9i5CT}po)M1HD9oWlaKhYd?7Je&jo}$rGD?{4eD9OB=$W{X)@2}e#mhfz zL7R>@Y3}&0A}nTPdNa~aA<*7xX z11?YJ01PxJFkoi13!c(bm>*z>5ehP3;PGD=yWlCU!GEq@@RZy}0t``+{TVP6LAnC0 z=bOG~>o3_ZW$ki2dfZrHY`QFdx2`)sG4A3~!GkmA$N8p5@{KK#Dzu8^Zagh;*hWjj z;WYz${z|m4+-hKpmI8KJ1O@4YK#n`S0_+7 zd-VVh4I%X_d76;q1ZU)TWxn;cYfyW z(H86|7Q7Cky1Y||p8QhGz?w_M2|bpv5)U44Li}h-O0o5#Ltc&2y(<2@tD<(raF|w4 z(^AFgk+Wj5E5^2KW!G&U_S>{4Bjbcob#JzMZV6rRJ(mnxz`%nti(aHD-Gq4oMw%F= zAOi*-|Ao;De2u?mk3hj2O*)+P|0Z?+AyTKl-f@bw2hi8g|E#T(PtUhRe7!c&JwJEX&!k5&`VMOr4Wc-((255&FDl)Qunw^&KzhVQ3(aTNRtfIKR8CT>P33C z)P)CsfoP#L2md|2P?8&wUXYUio7Q#0`OdXvLOBbTO8aVGQTf*`BXMS;)|IhXKN~I`YdfQCLENQ? zb0R`a*1K{0N=Un?#jPoI=ij{|{vqP=BweV5OA#$x2txw1%ZxdaCYh*t;{_=>Tkc9P zT<#Js^4ItUDLIGWMM}K zx6m$Qtr7odB4IB;u>bY2WppNKFCaLrLg^&u-DZwmtIMu%5uEAEQ}k`)M9843dWev* z+a6n^ZvgfJ_CtFCQ2J9v4XA7`ed_}=%+B#^fMJH(2#~q%A^;eMlfW<|$a3!5N80y5 zg|pb{p|^HKuYD>^0Aa*r+wnRdyW3o;}+p`aL~t%tvg>Uv8|?~6VBw9 z?0!Akc|6l;sX_Aoz#=OGXt2$7AOfQxk(JI4RPWI~cAakEQ$z9Hr)$pw)vG*k=!)Gs z2s9aD)SxLMf+q6*SB=~i2`_Kf-&S=%EY)fk|0)RbD-j|WB|RqAb_N=}zp*!ekqG_Pb>VHQ~eDFU@ z;0V}2UES-ob!3f^&)}uQJo~_2(m^TDhVx)6X=*9=b5`z27yr3HLlT}8yVXdldapS= zra7sGNGuefA^IB&q8dsI@!x|6Md>P%Ktrl>`7>zBT%p{lezCU)`5d})Rvp@qK7@%5(as1M&dqY5M+zJG62y6BmViyF$}UG5S*2X4sqRwxvCPYH=6 z*{ubT4XH?L1~>2|ERbx-^-X_=Y*3V3N5&0Nvi%u1wGm+N`oWY~-%I{j=tlcyPCLn{p&y)H(|fvkd`*dl?DX8q;NsMpP>*IBO&nK2y2JPW+vF~RSj95i)Rn9GDl+Bhk&cIjn7?U#I zQzPE$sa-49x@%iQUqk#UAZ|wX>V0DkvvA3u3pk|61jXhxlBz0fo`gfH+oAvt(QYk- zaNw)_J#9l(I70@`ycO~PTiPb$AFUK8$x89`xEz@aG$dl7v{F<>V)FzIsf>#PH2;Gj zCYM0{9k!vWqalHYR2uVVwxIxxmzI6pifR4v6ORzvt6(AuYF&xZJuM7D5Q_~$(Y?k1IJ&1b6Wuc|VOD1{qI&b-6JIYRDy8l!BP5YHYr!p%KLJ6fDq2kxQcf5^ClW#H3Q0 zKcj|fk23b9dN#&2Rx8|K#d(EK2*9b~U=!gRAvGLqB19H#vb&jw86c>9A*;ka?d5W37dvL7_1|KWQa<(Y5yHabReLw_28q1| zz(M|a!fN))_TpGR1RNpnKHiVpnUH3`FL6{01S973zu{4Vi~^;NqADbtFK}o?FhGe<^NfN__OaKrRQ5#a}*Nl-O_WMHOPpW~eXqDI&?K>jat7^6YdV&rgC@R&xW#1SQyH&%Q)0UoyT!?`ym;v6^d+txS4H|+#j;{hWKZ2pkC3Debu&Q2xf={bM`rb&!*qEDBH)Ga3Oitwv&{ZjD3 zxe~9C(~t5yPHJ*I^P; zv#>yMgC)fS{t|E~$&L&hqHOy!aB?9t_2$S&~?kDOK@3eysubsVc^Y<2w|ldaAibd^qyW0~w3XbH|GFdMCB1>VtyGWVxSL zH0reRo<*Rq0P*kp_|1_R`mC#S*Jt{Ksk2eBh6Tx+uJ&`oX1Pg_ZjiKn0J2R zlD#;*RCTJanzhE2!z&s-a;F1#Y6UqbE3(PZ z2zIBKZ@2k^luzCs)){?MR9gZnZCOr%Ee6#sE|y{zLM%|I*n=O+$wG*H&UNoxG91?U z1f&Q;W$iN@dC-ZKmd>vGf%DG_U~eBpbprJte&WP3g# z9E$1Ly|$u-%{d1#H>0oX#WKhQ;8Qi~rro~=Yw!4e`ONibr88SZELX^(P1`ia7CB)A zO{80QnI918IjZnmr2L2&QRKvTh=PjBqSdE4ZXFM<&m7&bllA7N*QXnV2*v$N?3B@} zc*}JFI9F9mJ8Mo?SZlWufrHU22b&B=X)oW>g}imSGlxq>E)Aoi9FhTp7XCbeL#ijE zpq&3f9g{1t{to59Ig7I+IHZD{c>ssC@yY|AfSHXqbzWnRqLR>y%(yM>iWe^jS zSPDsFg^2GW9l;@0mCc}rls38$g+s2y`b(&xTrOm~ zA)^1!sG%}cu`)iyfH7Q+VMf&!SB#=2Ora6KRtbgWt)*D(E30hg71oK;#U`khU8B4LKn8hdB^RK+Ywfo@z#0S%%l*70_10 z)A%^B)o}LaIpGt#1;js~z;<{bD>v+oD{(y4sKgOub~*o` zux<1w65J~tOrz!w{)sV@gMXn?b7mEjtH&sVe^do+^92o&TxRG7o`HpehSE~}_n@IF z@F9VQRI;-`&^XTx8me4$a4t#1xxr&TZ-rz}=>z_pN9P)-#dNzX^cnTJX8gi}H-!W2Dg+64|5M!Eu zMh#UKh54HYGL?D%m_-34qxW&~+kXCvw~FNTNoa<$C~lc57=SE_EZ~GgHB!`B6qhI9 zqL(D16AmgEbc@JY6k`99MFAzFdzUJKWOQ)!6`-0e5Y?1#9J3B$Hawwt&w14S++qeKl=b=y3-hE#t>ff}O8T8OlPuk!Z{6jiwo z88!clC>DmJHz13`3O?3I>>O0-4McG*#YV$pHY4MtcmCf_RWvT&Jzgc|^qN=xt?tUR z`x&@J7?z-gEto*qPo#A-6!tr^-llIk-;qyfonJC7QN*yHOsevWVqTq8ZfIMR>7+?a z@rj?88S)G&J%A|ov^eJR1#C1F8{+kbgqZf4_8+cfYthY5PFB@Sx8ev3zwGDq+P;!` zA0%x~rL&m5@-O=2=nro+c-UY23`v{AdVI&|LPzK38xplpN*lOZjx>MsLk@~mibjE) zg^OasRY-UK&#e@Ss_2J^928te1$c8oeAAKSIQM}PR0-*QEYC6@!KbHL?P{k!J*`$L z8JwO5(kMXk&CKy5zsct^mJ!co{P!ZeAJ>Qp=^*(AK9|uK94-!>h6SAPi8-C{GyZ+a zw{~$5OTNR8xKz{f4Pi*2X`ZasqKgI{lEcykfnmoQ(JkSFJeXPC+Ix22*^@>*_};FD-jJep{*L6b z_9#x5e%BqRzWFjkREkkI4xDLL1?OBF97wko$j z_OA@uta2j3uiW*W{Q7-g`J}-nubvq?T>J{_aAg;uQAIaz z@OE1~LPEpQ#uL0VmvA5j5n^!tl^%jn%)tZ~NPyo6#6`@WCFVk!Q@rDrD%Ws9Hz%e; z!D(lD2>2*pJp>^kfr+@iOx!Fa?)<PQIYK6P+aZ=p#J@G4MigrJ0Dn z5$td1Az%Ti2VR6m7%j@%6UwScjIp5mBZ(}AB*KkQ!Ub*vm*nU%5h^Ue?{LyQ_?P$s z4kYmv3sjHs4`-{-0|7`hfjN=H!`6{-LK3(g;hvXDPb=U`kep_s>k?; zL&xUx7{s&cki=8Ski-L~kZ_0uj0WuVg4+@g`alwoa3IJGYD^I9!vZD+HM1UwMcV`> znRQvJ@<^(=CNTx!-PPcQdI+2}3VsPSwA?`67iql_PAMVgh7vXym`J60NaA`x5|K$V zbCe^DnxoE7(bCJ(+07nW?DpXG+T^uvXzStW=;n%$K#F51Rtz+4)MEp`@mfOP+sX@m zd-om>Z(G8*gI)kg_@kQoE>#0fF>!qr1NE(Xw)Wo6mL3+qHeL=EZtk9kK)Esa&q7sC zLCM0`-ocAW0{WDat*5nzqq~=z2Y4o;#a4C&FHLuJ1rMubX|3nxV(B{5qT=Y`>80pk z>45+cl+d&!`~oq7gpnh-6~tFkppF9rc9W%m#*+dILkgf)3cOiP3gmxd0X;|oG($gA zj~Q*k%dF>vpLe&V3wRCpg1@P=rM)Kt&?9_}o$w3Hx1xc|yA=iYrcf9_UD8+_z=ArM zB}Z!oS9@pZW#$qJp4QOY(WSvM1F!yue_`5+0?3e1v~*Xqbp*o*UVtuzkkI$CbuolK zVN7h50t5ht&kr6Ha0jp=;ClmsV2c7n4ToNtW?n*0Xdz8GSym7QDdBe{0woPr;2)iu z+lKx+aRvfM-;TZIr9aQS^;|)c*8L5(=i{zvF&LjvPm5EgXV?_BF)VFOq=KW9o3odU7~*dC65NidhP6Of*To}*2RhisS0F%ztizEh5N1l z#pl2MmnJ@JzW0Ie!ewMdYxMNMk>Q@GpF@(zzWLp*xWS<*HqsF9Sn}Ig$=twXg1K>} zR{Dk3k%w^Hn{Ue5+X1)TK?o8AivxXmCAt z=;`V17Xg!>+r+MwHB0b>qtpC=xEZn*i5-lxbZa)i(Uk$xGXTsI- zV%SI1v+~fo0Qar0YLqe=zAv(3Sw6N@KHRYY=dV<(q@iz!V0u<6vS(7hyydvS=;HX) zm&ev(PZ*z@=ob=dVqRk>!C2keq+GBseH5X@*gd#gesQ@nLeC`PP7!-9+u@5x8}{8R zmVJSH;#(}=@^0g$Or7YkqOdiw;W01F*-m<%U~9NZXTtVkiE7-7V+A~J$*x7m?%tF7 zS^r8I%Q`8x8I;-FHN-acL%#_1BGZ)tkkw z*lgL!;_-d=a9TmcA)Tq@-J4%?lu6mI@ZsTMSCl}WUtbl%lNi>!bE{WTSYHH=r_tn6 zU=y22gedYGyQtWbxZ~{{4mwJ*LIXuF#a( zz3o@gj_Eg2n(1S=m&j!8IOh1fY18wPMyqtS#SOiy4Bcg>?nIosd%@+laLVE_gckDt zv+nk4o-D@4ug~78R8+G~)j#d@Ac80Aj14mBYuK~<#}!RfPUJZHEoS6wue(ub{`O(n zh9gnl>pm4Z^0)u&J;B-GCm3q^ar!l{;&gJT&qujb27%amPJ9&W0Z)NG#H)%e@3AAf z=MHA}Xy3V|>#J&oxpXd|dk=fX_EM3CE|u$p`HK5ozUS;UesU;F?=$XeLdUK+FOHgn zF)m$Cs>SPKZrpV!;~q?38}*`oj0w#xA^7IQd#2NUe7`eYIASG{d;y;ggf*3XJm`G) zmYPk8_h?$)6T=nPaaY9LSi5=ZPJrB5lLM(Mrwt8Mj4t}>txI^%ka^MY-Ts7u@zXZh zx@*?i-xAchYO!W4ebUF5kNx{*n_D#kW%QL-BjbWvwGWh3wTQ-=Rd+r(@nXP40j*&a zegN~_YTfhnmb1s-AC6EvC38oIb0z+ahUNCdnd%~*oR<6el_O>K*ZHUo=U>^({e-(? z>ldR@bb(NVc_uH5yX>I5h`8>N?439JKA+66I=hL^qRXb&J`dIL#NxpU5j@#(f{qpHO>o#=Fpw1a3-b?Y!O=`$Brs3hxz`5CPA z3mQ$R+%R%gQ|?7Nmz!K%W9-DqV*c_~<(6aHqmM5B3y$8vi;Fgg0?F7Dc3&-1xldUNf%q5T(l+}7Um=Ms{x z_1IZ-zI!F_b&n(0V~P?Yr@Ia+_Fl-u+OB3Ad>`h?_PJnOYo9w$LM_+IWn;H~wl-(c zf8WEtMS1yolZLTpsN368esL!R#W^w4vF}_NrRTmpw6t&guFP}x4jJEN{5iW8?el%s zTIToc>N|!A(ez7;pBZdhA+Q-E?}U{<)NP8kRS6T?#>?^YYgL7p)%3+!{rw#isOiIg z7Ry|%k=T>EDNV*YW8bX9SEt?Nu1YVsUV9z8W$@>rJ>9Zfx;?JBmsFz-6>3`aZ(%~d zXWFxTKoOU%LVM=H(V@obHm}f+MwuMa|g`Wakfyuod(^HHFm^R!X&!xWK##CIDR?%mR9Xsy0#aQb0XD%0(yj`=#aGoHyOoOG7gO(?ZFt7>t8;H_+cDNnlB^k36?Y#PGG^K1ey7WA z&$R4BRc8nYPr0^OYzVufbPQ7-Fp@F4=;-;M?G5*LyP7Fy3Wj8#W#G*_j+S-v=2J#}@<=MOkZZyVE=6RNJ()dRvd>g+ql!)(HXqQSy~N=#F%YD=z3dvcpXCMD5=0MubC_4jr20In%vAoakLDd=d* z%rp~E8kkWxejc`VOp*vFX$%sfg#QpySS(OUb_hZn8iRqfHuN9DmDnaJiG~WvsoKzz z($FCZRBhlF=%j*KZD=UEG^-5*>38ZjG#YYlsoKy;X~>nKYLk@2LLTm{HYq5kMcsx* zLtgo;HYvzyoz;eh+^1P>Qc!B7@(tRxhsnB5QZm1ebJXrB*@hY~1e^~2IW9~KW~ zu~PSwl7yn%v)V9F)$pt~*omLjhJpOaS#4OTC}&oiH0|?ANkMM%?0&S*hl9_Yqwa^p z(mWruQfbBthk^nRvp-Aw%wXDR<_IrIJLfnY?U>>vY3CddZzoXS7Yse^JN8N_U)2<_FBy^-Wbw6n|nYQxiT z6U3df?*Y5mvpx$VQcxI#>Uv-*Y1RigLX2kY!NGD+aBbFS@z~kx2q`HI?cY-OLt>!U zK+bAI(u_T@H;|Q_)elQERv_d>a}P8U38mo9`m7Wbr<>I#4JBPtw}IEm&0bqb6fg-i z{ZKTV4f;Wc5X`!s6z#Ks2c*3Rj&?qPQK9LFMnUmZ>U*H2pb*%sHZ<*gplR0|5{-i* zmeijGJWlgH(9%#KW_CX)c0H>NO~XS-3=T?0nbi+N!$Y7S?N|XGpS_Ndz(CVn4=YKF zT`(Oq-wlg_vc;*N1uIQEA6P8yd|>fV2$A};Qghr_3Vh*N{m@7h6bqj9StL{}Gph|l zJ8x1_G`0eXqvc&BfC0@taFR53AFK}OO*_>0#YsUsAhX&~wD`k;L7?e}qs1g1Xj__o zcr49l@kl6MPkmoJ8p;8f)rP~+_QTNF86+M@qs@?jo@wq2xR_?_@w8lm1oDLjYtpoK z8b~wR?<+kAPfFuyzAwmCp!vRFCz|H_f`B#6_XYiEzAxAXrTM;)te%ZsG~nXdZ6I3?x6UyGAnh!veH0uqhIvS1zn{6~02mNU52Z%I6d+*fu0P*PAa}Lr3pv{cg{br&qr zO{=*;KiYXi)7ml=21B#l+O!l7w&CkhA1ljgHnnzax5(b!cK4%$+f zbzl4(>jN)IW8YACG*nMR{mghQjfO+vrD=Rg6wv6jpOvO$W0E(J+eMsYIum-Hw9Bn9?HHem^)oW-VBW6Dz=r>0jj>aZ~ z=cCbZAXY%5snIAD4K_ejfCfWo44MX$plyzRRQA`)!xC&Gc`!j~4Ems&1`4czlWyGH zyg*0>%m+db>}0vxxgo&!gnw27yK>uXfS+z<4XifK+6K&}6w1=t#u7}7E#BHn8f_&d e$MokeggrY?FA$u9V>)OIaH^O#Y*5x#VfsIR7`c}K literal 0 HcmV?d00001 diff --git a/Shared/Examples/ExperimentFactory.swift b/Shared/Examples/ExperimentFactory.swift index 516af57d..de17a675 100644 --- a/Shared/Examples/ExperimentFactory.swift +++ b/Shared/Examples/ExperimentFactory.swift @@ -7,20 +7,15 @@ // import TPPDF +import Foundation class ExperimentFactory: ExampleFactory { func generateDocument() -> [PDFDocument] { let document = PDFDocument(format: .a4) - let table = PDFTable(rows: 3, columns: 4) - table.content = [ - ["0,0", "0,1", "0,2", "0,3"], - ["1,0", "1,1", "1,2", "1,3"], - ["2,0", "2,1", "2,2", "2,3"], - ] - table.rows.allRowsAlignment = [.left, .left, .right, .right] - document.add(table: table) + let externalDocument = PDFExternalDocument(url: Bundle.main.url(forResource: "sample-large", withExtension: "pdf")!) + document.add(externalDocument: externalDocument) return [document] } diff --git a/Source/API/PDFGenerator+Generation.swift b/Source/API/PDFGenerator+Generation.swift index 10fdd5e7..6b3b9422 100644 --- a/Source/API/PDFGenerator+Generation.swift +++ b/Source/API/PDFGenerator+Generation.swift @@ -164,6 +164,8 @@ extension PDFGenerator { hasAddedHeaderFooterToPage = true _ = try addHeaderFooterObjects() } + } else { + currentPage += 1 } if obj.1 is PDFExternalPageObject { @@ -287,6 +289,7 @@ extension PDFGenerator { TODO: Documentation */ private func headerFooterDebugLines() throws -> [PDFLocatedRenderObject] { + return [] let headerFooterDebugLineStyle = PDFLineStyle(type: .dashed, color: .orange, width: 1) let yPositions = [ @@ -319,12 +322,14 @@ extension PDFGenerator { - throws: PDFError, if rendering fails */ internal func render(objects: [PDFLocatedRenderObject], in context: PDFContext) throws { - PDFContextGraphics.beginPDFPage(in: context, for: document.layout.bounds) - let renderProgress = Progress.discreteProgress(totalUnitCount: Int64(objects.count)) progress.addChild(renderProgress, withPendingUnitCount: 1) - drawDebugPageOverlay(in: context) + // if first element is an external document, do not create the page + if objects.first?.1 is PDFExternalPageObject == false { + PDFContextGraphics.beginPDFPage(in: context, for: document.layout.bounds) + drawDebugPageOverlay(in: context) + } for (container, object) in objects { try render(object: object, in: container, in: context) diff --git a/Source/API/Utils/PDFError.swift b/Source/API/Utils/PDFError.swift index 713dbced..3aac80ed 100644 --- a/Source/API/Utils/PDFError.swift +++ b/Source/API/Utils/PDFError.swift @@ -10,7 +10,7 @@ import Foundation /** List of errors which can occur during using this framework */ -public enum PDFError: Error { +public enum PDFError: LocalizedError { /** TODO: Documentation @@ -70,15 +70,13 @@ public enum PDFError: Error { */ case externalDocumentURLInvalid(url: URL) - /** - TODO: Documentation - */ + /// Index of page in external document is out of bounds case pageOutOfBounds(index: Int) /** TODO: Documentation */ - public var localizedDescription: String { + public var errorDescription: String? { switch self { case .tableContentInvalid(let value): return "Table content is invalid: " + value.debugDescription diff --git a/Source/Internal/External/PDFExternalDocumentObject.swift b/Source/Internal/External/PDFExternalDocumentObject.swift index 88f2b120..946431a9 100644 --- a/Source/Internal/External/PDFExternalDocumentObject.swift +++ b/Source/Internal/External/PDFExternalDocumentObject.swift @@ -24,8 +24,8 @@ internal class PDFExternalDocumentObject: PDFRenderObject { guard let cgPDF = CGPDFDocument(url as CFURL) else { throw PDFError.externalDocumentURLInvalid(url: url) } - - for i in pages { + let allPages = pages.isEmpty ? Array(1...cgPDF.numberOfPages) : pages + for i in allPages { guard let page = cgPDF.page(at: i) else { throw PDFError.pageOutOfBounds(index: i) } diff --git a/Source/Internal/PDFGenerator+Debug.swift b/Source/Internal/PDFGenerator+Debug.swift index 7892703e..75346cea 100644 --- a/Source/Internal/PDFGenerator+Debug.swift +++ b/Source/Internal/PDFGenerator+Debug.swift @@ -16,7 +16,7 @@ import AppKit */ extension PDFGenerator { - // MARK: - INTERNAL FUNCS + // MARK: - INTERNAL FUNCSs /** Overlays horizontal and vertical lines at margin insets From 31b3475fe3870a70ce548a0f755a0ab43aaeb7b7 Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Sun, 3 Jan 2021 11:57:00 +0100 Subject: [PATCH 12/29] WIP --- .gitignore | 1 + .../xcshareddata/swiftpm/Package.resolved | 26 ++++++++++++++++--- Shared iOS/UI/ViewController.swift | 3 ++- Shared/Examples/ExperimentFactory.swift | 2 ++ .../CwlCatchExceptionSupport/module.modulemap | 4 --- .../module.modulemap | 4 --- .../module.modulemap | 4 --- .../QuickObjCRuntime/module.modulemap | 4 --- 8 files changed, 27 insertions(+), 21 deletions(-) delete mode 100644 TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap delete mode 100644 TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport/module.modulemap delete mode 100644 TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlMachBadInstructionHandler/module.modulemap delete mode 100644 TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap diff --git a/.gitignore b/.gitignore index 46a346ee..f8b680a9 100644 --- a/.gitignore +++ b/.gitignore @@ -54,6 +54,7 @@ Example*/Pods/Swiftlint # Swift Package Manager .swiftpm +TPPDF.xcodeproj/GeneratedModuleMap # Xcode Schemes, so Carthage doesn't complain !Example iOS/TPPDF.xcodeproj/xcsharedata/xcschemes/TPPDF.xcscheme diff --git a/Example macOS/Example.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Example macOS/Example.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index f37fa258..a7345b7e 100644 --- a/Example macOS/Example.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Example macOS/Example.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,13 +1,31 @@ { "object": { "pins": [ + { + "package": "CwlCatchException", + "repositoryURL": "https://github.com/mattgallagher/CwlCatchException.git", + "state": { + "branch": null, + "revision": "f809deb30dc5c9d9b78c872e553261a61177721a", + "version": "2.0.0" + } + }, + { + "package": "CwlPreconditionTesting", + "repositoryURL": "https://github.com/mattgallagher/CwlPreconditionTesting.git", + "state": { + "branch": null, + "revision": "02b7a39a99c4da27abe03cab2053a9034379639f", + "version": "2.0.0" + } + }, { "package": "Nimble", "repositoryURL": "https://github.com/Quick/Nimble", "state": { "branch": null, - "revision": "72f5a90d573f7f7d70aa6b8ad84b3e1e02eabb4d", - "version": "8.0.9" + "revision": "e491a6731307bb23783bf664d003be9b2fa59ab5", + "version": "9.0.0" } }, { @@ -15,8 +33,8 @@ "repositoryURL": "https://github.com/Quick/Quick", "state": { "branch": null, - "revision": "33682c2f6230c60614861dfc61df267e11a1602f", - "version": "2.2.0" + "revision": "0038bcbab4292f3b028632556507c124e5ba69f3", + "version": "3.0.0" } } ] diff --git a/Shared iOS/UI/ViewController.swift b/Shared iOS/UI/ViewController.swift index 7a52a8da..0d45f8e6 100644 --- a/Shared iOS/UI/ViewController.swift +++ b/Shared iOS/UI/ViewController.swift @@ -55,12 +55,13 @@ class ViewController: UIViewController { do { let url = try generator.generateURL(filename: "Example.pdf") print("Output URL:", url) - + /* ---- Execution Metrics ---- */ print("Generation took: " + TimeUtils.stringFromTimeInterval(interval: CFAbsoluteTimeGetCurrent() - startTime)) /* ---- Execution Metrics ---- */ DispatchQueue.main.async { + print((generator as? PDFGenerator)?.totalPages) self.progressView.isHidden = true // Load PDF into a webview from the temporary file self.webView.loadRequest(URLRequest(url: url)) diff --git a/Shared/Examples/ExperimentFactory.swift b/Shared/Examples/ExperimentFactory.swift index de17a675..dcc4e9cf 100644 --- a/Shared/Examples/ExperimentFactory.swift +++ b/Shared/Examples/ExperimentFactory.swift @@ -17,6 +17,8 @@ class ExperimentFactory: ExampleFactory { let externalDocument = PDFExternalDocument(url: Bundle.main.url(forResource: "sample-large", withExtension: "pdf")!) document.add(externalDocument: externalDocument) + document.add(text: "END") + return [document] } } diff --git a/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap b/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap deleted file mode 100644 index 55dece39..00000000 --- a/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap +++ /dev/null @@ -1,4 +0,0 @@ -module CwlCatchExceptionSupport { - umbrella "/Volumes/Developer/TPPDF/.build/checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport/include" - export * -} diff --git a/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport/module.modulemap b/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport/module.modulemap deleted file mode 100644 index 203adb7d..00000000 --- a/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport/module.modulemap +++ /dev/null @@ -1,4 +0,0 @@ -module NimbleCwlCatchExceptionSupport { - umbrella "../../../.build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Dependencies/CwlCatchException/Sources/CwlCatchExceptionSupport/include" - export * -} diff --git a/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlMachBadInstructionHandler/module.modulemap b/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlMachBadInstructionHandler/module.modulemap deleted file mode 100644 index b36a2ccd..00000000 --- a/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlMachBadInstructionHandler/module.modulemap +++ /dev/null @@ -1,4 +0,0 @@ -module NimbleCwlMachBadInstructionHandler { - umbrella "../../../.build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include" - export * -} diff --git a/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap b/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap deleted file mode 100644 index 551fba0e..00000000 --- a/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap +++ /dev/null @@ -1,4 +0,0 @@ -module QuickObjCRuntime { - umbrella "/Volumes/Developer/TPPDF/.build/checkouts/Quick/Sources/QuickObjCRuntime/include" - export * -} From ba15694b5f1b07ccbdde60c11b6832d45fd9a255 Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Sun, 3 Jan 2021 13:29:21 +0100 Subject: [PATCH 13/29] Fixed total page count calculations with external documents --- .../Example.xcodeproj/project.pbxproj | 8 +- .../xcshareddata/xcschemes/Example.xcscheme | 22 +- Package.swift | 11 +- Shared/Examples/ExperimentFactory.swift | 2 + Source/API/PDFGenerator+Generation.swift | 32 +- .../ExternalDocumentTests.swift | 281 ++++++++++++++++++ .../resources/50-pages.pdf | Bin 0 -> 39337 bytes .../PDFGenerator+Generation_Spec.swift | 64 ++++ Tests/TPPDFTests/resources/sample.pdf | Bin 0 -> 21622 bytes 9 files changed, 403 insertions(+), 17 deletions(-) create mode 100644 Tests/TPPDFIntegrationTests/ExternalDocumentTests.swift create mode 100644 Tests/TPPDFIntegrationTests/resources/50-pages.pdf create mode 100644 Tests/TPPDFTests/resources/sample.pdf diff --git a/Example macOS/Example.xcodeproj/project.pbxproj b/Example macOS/Example.xcodeproj/project.pbxproj index 62019bdd..6225519f 100644 --- a/Example macOS/Example.xcodeproj/project.pbxproj +++ b/Example macOS/Example.xcodeproj/project.pbxproj @@ -44,6 +44,7 @@ D48C53D924A26C0000D7A3DD /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = D48C53BD24A26C0000D7A3DD /* Icon.png */; }; D48C53DC24A26E5400D7A3DD /* TPPDF in Frameworks */ = {isa = PBXBuildFile; productRef = D48C53DB24A26E5400D7A3DD /* TPPDF */; }; D48C53DE24A27A0100D7A3DD /* PDFView+SwiftUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = D48C53DD24A27A0100D7A3DD /* PDFView+SwiftUI.swift */; }; + D4B7EB0B25A1DAD2007D09C7 /* sample-large.pdf in Resources */ = {isa = PBXBuildFile; fileRef = D4B7EB0A25A1DACE007D09C7 /* sample-large.pdf */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -87,6 +88,7 @@ D48C53BC24A26C0000D7A3DD /* Image-4.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "Image-4.jpg"; sourceTree = ""; }; D48C53BD24A26C0000D7A3DD /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Icon.png; sourceTree = ""; }; D48C53DD24A27A0100D7A3DD /* PDFView+SwiftUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFView+SwiftUI.swift"; sourceTree = ""; }; + D4B7EB0A25A1DACE007D09C7 /* sample-large.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = "sample-large.pdf"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -210,6 +212,7 @@ D48C53B424A26C0000D7A3DD /* Documents */ = { isa = PBXGroup; children = ( + D4B7EB0A25A1DACE007D09C7 /* sample-large.pdf */, D48C53B524A26C0000D7A3DD /* sample.pdf */, ); path = Documents; @@ -266,7 +269,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 1150; - LastUpgradeCheck = 1160; + LastUpgradeCheck = 1230; ORGANIZATIONNAME = "techprimate GmbH & Co. KG"; TargetAttributes = { D48C538424A269F400D7A3DD = { @@ -303,6 +306,7 @@ D48C539324A269F500D7A3DD /* Main.storyboard in Resources */, D48C539024A269F500D7A3DD /* Preview Assets.xcassets in Resources */, D48C538D24A269F500D7A3DD /* Assets.xcassets in Resources */, + D4B7EB0B25A1DAD2007D09C7 /* sample-large.pdf in Resources */, D48C53D624A26C0000D7A3DD /* Image-3.jpg in Resources */, D48C53D424A26C0000D7A3DD /* PortraitImage.jpg in Resources */, D48C53D924A26C0000D7A3DD /* Icon.png in Resources */, @@ -386,6 +390,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -446,6 +451,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; diff --git a/Example macOS/Example.xcodeproj/xcshareddata/xcschemes/Example.xcscheme b/Example macOS/Example.xcodeproj/xcshareddata/xcschemes/Example.xcscheme index 4bea168c..66c0a0d7 100644 --- a/Example macOS/Example.xcodeproj/xcshareddata/xcschemes/Example.xcscheme +++ b/Example macOS/Example.xcodeproj/xcshareddata/xcschemes/Example.xcscheme @@ -1,6 +1,6 @@ + + + + + + + + [PDFDocument] { let document = PDFDocument(format: .a4) + document.pagination = .init(container: .footerRight) + let externalDocument = PDFExternalDocument(url: Bundle.main.url(forResource: "sample-large", withExtension: "pdf")!) document.add(externalDocument: externalDocument) diff --git a/Source/API/PDFGenerator+Generation.swift b/Source/API/PDFGenerator+Generation.swift index 6b3b9422..bce2e6a2 100644 --- a/Source/API/PDFGenerator+Generation.swift +++ b/Source/API/PDFGenerator+Generation.swift @@ -131,9 +131,9 @@ extension PDFGenerator { return try calculateRenderObjects(contentObjs: contentObjects, masterObj: masterObjects, progress: calculationProgress) } - private func estimateTotalPageCount(of contentObjects: [PDFLocatedRenderObject], progress: Progress) throws -> Int { + internal func estimateTotalPageCount(of contentObjects: [PDFLocatedRenderObject], progress: Progress) throws -> Int { // Only calculate render header & footer metrics if page has content. - if !contentObjects.isEmpty { + if !contentObjects.isEmpty && !(contentObjects.first?.1 is PDFExternalPageObject) { _ = try addHeaderFooterObjects() } @@ -141,7 +141,7 @@ extension PDFGenerator { // Iterate all objects and let them calculate the required rendering bounds var needsPageBreak = false - for (container, pdfObject) in contentObjects { + for (pdfObjectIdx, (container, pdfObject)) in contentObjects.enumerated() { if let tocObject = pdfObject as? PDFTableOfContentObject { // Create table of content from objects tocObject.list = PDFGenerator.createTableOfContentList(objects: contentObjects, @@ -150,7 +150,7 @@ extension PDFGenerator { } let objects = try pdfObject.calculate(generator: self, container: container) var prevObj: PDFLocatedRenderObject? - for obj in objects { + for (objIdx, obj) in objects.enumerated() { if needsPageBreak { if !(prevObj?.1 is PDFExternalPageObject) { needsPageBreak = false @@ -159,17 +159,18 @@ extension PDFGenerator { } } - if !(obj.1 is PDFExternalPageObject) { + if obj.1 is PDFExternalPageObject { + // Do not add counter if one of the following is true: + // - external page is the first element + if !(pdfObjectIdx == 0 && objIdx == 0) { + currentPage += 1 + } + needsPageBreak = true + } else { if !hasAddedHeaderFooterToPage { hasAddedHeaderFooterToPage = true _ = try addHeaderFooterObjects() } - } else { - currentPage += 1 - } - - if obj.1 is PDFExternalPageObject { - needsPageBreak = true } if let pageBreak = obj.1 as? PDFPageBreakObject, !pageBreak.stayOnSamePage { @@ -181,7 +182,8 @@ extension PDFGenerator { progress.completedUnitCount += 1 } - let result = currentPage + var result = currentPage + // If the last object was a external page object, we reduce the amount by one, as we are already on the next page // Reset all changes made by metrics calculation to generator resetGenerator() @@ -201,7 +203,10 @@ extension PDFGenerator { result += masterObj hasAddedMasterToPage = true - result += try addHeaderFooterObjects() + // If the first content object is an external page document, skip headers and footers + if !(contentObjs.first?.1 is PDFExternalDocumentObject) { + result += try addHeaderFooterObjects() + } hasAddedHeaderFooterToPage = true // Iterate all objects and let them calculate the required rendering @@ -289,7 +294,6 @@ extension PDFGenerator { TODO: Documentation */ private func headerFooterDebugLines() throws -> [PDFLocatedRenderObject] { - return [] let headerFooterDebugLineStyle = PDFLineStyle(type: .dashed, color: .orange, width: 1) let yPositions = [ diff --git a/Tests/TPPDFIntegrationTests/ExternalDocumentTests.swift b/Tests/TPPDFIntegrationTests/ExternalDocumentTests.swift new file mode 100644 index 00000000..1e206e98 --- /dev/null +++ b/Tests/TPPDFIntegrationTests/ExternalDocumentTests.swift @@ -0,0 +1,281 @@ +import Foundation +import Quick +import Nimble +@testable import TPPDF +import PDFKit + +class ExternalDocumentTests: QuickSpec { + + override func spec() { + describe("External Document") { + context("only document") { + context("debug mode") { + + // Test Case: + // Precondition: + // - Document is empty + // - Debug mode is active + // Expected Result: + // - Render all pages in external document + // - Do not render anything else than external document pages + // Notes: + // - This test needs to be run with and without debug mode to validate side effects + it("should draw the pdf pages with debug overlay") { + let document = PDFDocument(format: .a4) + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "50-pages", withExtension: "pdf")!)) + + let generator = PDFGenerator(document: document) + generator.debug = true + + var outputURL: URL! = nil + expect { + outputURL = try generator.generateURL(filename: "output.pdf") + }.toNot(throwError()) + expect(generator.totalPages) == 50 + + let outputDoc = PDFKit.PDFDocument(url: outputURL) + expect(outputDoc?.pageCount) == 50 + + // TODO: compare output PDF to reference PDF + } + } + + context("normal mode") { + + // Test Case: + // Precondition: + // - Document is empty + // - Debug mode is not active + // Expected Result: + // - Render all pages in external document + // - Do not render anything else than external document pages + // Notes: + // - This test needs to be run with and without debug mode to validate side effects + it("should draw the pdf pages") { + let document = PDFDocument(format: .a4) + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "50-pages", withExtension: "pdf")!)) + + let generator = PDFGenerator(document: document) + generator.debug = false + + var outputURL: URL! = nil + expect { + outputURL = try generator.generateURL(filename: "output.pdf") + }.toNot(throwError()) + expect(generator.totalPages) == 50 + + let outputDoc = PDFKit.PDFDocument(url: outputURL) + expect(outputDoc?.pageCount) == 50 + + // TODO: compare output PDF to reference PDF + } + } + } + context("content before document") { + context("debug mode") { + + // Test Case: + // Precondition: + // - Document contains content + // - Debug mode is active + // Expected Result: + // - Render content before external document + // - Render all pages in external document + // Notes: + // - This test needs to be run with and without debug mode to validate side effects + it("should draw the pdf pages with debug overlay") { + let document = PDFDocument(format: .a4) + document.add(text: "Text before external document") + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "50-pages", withExtension: "pdf")!)) + + let generator = PDFGenerator(document: document) + generator.debug = true + + var outputURL: URL! = nil + expect { + outputURL = try generator.generateURL(filename: "output.pdf") + }.toNot(throwError()) + expect(generator.totalPages) == 51 + + let outputDoc = PDFKit.PDFDocument(url: outputURL) + expect(outputDoc?.pageCount) == 51 + + // TODO: compare output PDF to reference PDF + } + } + + context("normal mode") { + + // Test Case: + // Precondition: + // - Document contains content + // - Debug mode is not active + // Expected Result: + // - Render content before external document + // - Render all pages in external document + // Notes: + // - This test needs to be run with and without debug mode to validate side effects + it("should draw the pdf pages") { + let document = PDFDocument(format: .a4) + document.add(text: "Text before external document") + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "50-pages", withExtension: "pdf")!)) + + let generator = PDFGenerator(document: document) + generator.debug = false + + var outputURL: URL! = nil + expect { + outputURL = try generator.generateURL(filename: "output.pdf") + }.toNot(throwError()) + expect(generator.totalPages) == 51 + + let outputDoc = PDFKit.PDFDocument(url: outputURL) + expect(outputDoc?.pageCount) == 51 + + // TODO: compare output PDF to reference PDF + } + } + } + + context("content after document") { + context("debug mode") { + + // Test Case: + // Precondition: + // - Document is empty before adding external document + // - More content is added after external document + // - Debug mode is active + // Expected Result: + // - Render all pages in external document + // - Render content after external document + // Notes: + // - This test needs to be run with and without debug mode to validate side effects + it("should draw the pdf pages with debug overlay") { + let document = PDFDocument(format: .a4) + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "50-pages", withExtension: "pdf")!)) + document.add(text: "Text after external document") + + let generator = PDFGenerator(document: document) + generator.debug = true + + var outputURL: URL! = nil + expect { + outputURL = try generator.generateURL(filename: "output.pdf") + }.toNot(throwError()) + expect(generator.totalPages) == 51 + + let outputDoc = PDFKit.PDFDocument(url: outputURL) + expect(outputDoc?.pageCount) == 51 + + // TODO: compare output PDF to reference PDF + } + } + + context("normal mode") { + + // Test Case: + // Precondition: + // - Document is empty before adding external document + // - More content is added after external document + // - Debug mode is not active + // Expected Result: + // - Render all pages in external document + // - Render content after external document + // Notes: + // - This test needs to be run with and without debug mode to validate side effects + it("should draw the pdf pages") { + let document = PDFDocument(format: .a4) + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "50-pages", withExtension: "pdf")!)) + document.add(text: "Text after external document") + + let generator = PDFGenerator(document: document) + generator.debug = false + + var outputURL: URL! = nil + expect { + outputURL = try generator.generateURL(filename: "output.pdf") + }.toNot(throwError()) + expect(generator.totalPages) == 51 + + let outputDoc = PDFKit.PDFDocument(url: outputURL) + expect(outputDoc?.pageCount) == 51 + + // TODO: compare output PDF to reference PDF + } + } + } + + context("document between content") { + context("debug mode") { + + // Test Case: + // Precondition: + // - Document has content before external documnet + // - More content is added after external document + // - Debug mode is active + // Expected Result: + // - Render content before external document + // - Render all pages in external document + // - Render content after external document + // Notes: + // - This test needs to be run with and without debug mode to validate side effects + it("should draw the pdf pages with debug overlay") { + let document = PDFDocument(format: .a4) + document.add(text: "Text before external document") + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "50-pages", withExtension: "pdf")!)) + document.add(text: "Text after external document") + + let generator = PDFGenerator(document: document) + generator.debug = true + + var outputURL: URL! = nil + expect { + outputURL = try generator.generateURL(filename: "output.pdf") + }.toNot(throwError()) + expect(generator.totalPages) == 52 + + let outputDoc = PDFKit.PDFDocument(url: outputURL) + expect(outputDoc?.pageCount) == 52 + + // TODO: compare output PDF to reference PDF + } + } + + context("normal mode") { + + // Test Case: + // Precondition: + // - Document has content before external documnet + // - More content is added after external document + // - Debug mode is not active + // Expected Result: + // - Render content before external document + // - Render all pages in external document + // - Render content after external document + // Notes: + // - This test needs to be run with and without debug mode to validate side effects + it("should draw the pdf pages") { + let document = PDFDocument(format: .a4) + document.add(text: "Text before external document") + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "50-pages", withExtension: "pdf")!)) + document.add(text: "Text after external document") + + let generator = PDFGenerator(document: document) + generator.debug = false + + var outputURL: URL! = nil + expect { + outputURL = try generator.generateURL(filename: "output.pdf") + }.toNot(throwError()) + expect(generator.totalPages) == 52 + + let outputDoc = PDFKit.PDFDocument(url: outputURL) + expect(outputDoc?.pageCount) == 52 + + // TODO: compare output PDF to reference PDF + } + } + } + } + } +} diff --git a/Tests/TPPDFIntegrationTests/resources/50-pages.pdf b/Tests/TPPDFIntegrationTests/resources/50-pages.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e71c3a33aa1f98a7c8f47d2b2916b52ffbf20c28 GIT binary patch literal 39337 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 literal 0 HcmV?d00001 diff --git a/Tests/TPPDFTests/PDFGenerator+Generation_Spec.swift b/Tests/TPPDFTests/PDFGenerator+Generation_Spec.swift index 33548f1f..8b252385 100644 --- a/Tests/TPPDFTests/PDFGenerator+Generation_Spec.swift +++ b/Tests/TPPDFTests/PDFGenerator+Generation_Spec.swift @@ -275,6 +275,70 @@ class PDFGenerator_Generation_Spec: QuickSpec { } } } + + describe("total page estimation") { + + // Test Case: + // Precondition: + // - Document contains an external document + // Expected Result: + // - Same page count as external document + // Notes: + // - none + context("only external document") { + it("should return correct total pages count") { + let document = PDFDocument(format: .a4) + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "sample", withExtension: "pdf")!)) + + let generator = PDFGenerator(document: document) + _ = try generator.generateData() + + expect(generator.totalPages) == 4 + } + } + + // Test Case: + // Precondition: + // - Document contains an external document + // - Document contains text after document + // Expected Result: + // - Same page count as external document plus one + // Notes: + // - none + context("external document and text") { + it("should return correct total pages count") { + let document = PDFDocument(format: .a4) + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "sample", withExtension: "pdf")!)) + document.add(text: "Some text after document") + + let generator = PDFGenerator(document: document) + _ = try generator.generateData() + + expect(generator.totalPages) == 5 + } + } + + // Test Case: + // Precondition: + // - Document contains text + // - Document contains an external document after text + // Expected Result: + // - Same page count as external document plus one + // Notes: + // - none + context("external document and text") { + it("should return correct total pages count") { + let document = PDFDocument(format: .a4) + document.add(text: "Some text after document") + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "sample", withExtension: "pdf")!)) + + let generator = PDFGenerator(document: document) + _ = try generator.generateData() + + expect(generator.totalPages) == 5 + } + } + } } } } diff --git a/Tests/TPPDFTests/resources/sample.pdf b/Tests/TPPDFTests/resources/sample.pdf new file mode 100644 index 0000000000000000000000000000000000000000..17be8a295d0545ccb8fb63543f8eb8f90f5b321d GIT binary patch literal 21622 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 bX>Zg2lxJ Date: Sun, 3 Jan 2021 13:31:42 +0100 Subject: [PATCH 14/29] Fixed module maps --- .gitignore | 1 - .../CwlCatchExceptionSupport/module.modulemap | 4 ++++ .../NimbleCwlCatchExceptionSupport/module.modulemap | 4 ++++ .../NimbleCwlMachBadInstructionHandler/module.modulemap | 4 ++++ .../GeneratedModuleMap/QuickObjCRuntime/module.modulemap | 4 ++++ 5 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap create mode 100644 TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport/module.modulemap create mode 100644 TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlMachBadInstructionHandler/module.modulemap create mode 100644 TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap diff --git a/.gitignore b/.gitignore index f8b680a9..46a346ee 100644 --- a/.gitignore +++ b/.gitignore @@ -54,7 +54,6 @@ Example*/Pods/Swiftlint # Swift Package Manager .swiftpm -TPPDF.xcodeproj/GeneratedModuleMap # Xcode Schemes, so Carthage doesn't complain !Example iOS/TPPDF.xcodeproj/xcsharedata/xcschemes/TPPDF.xcscheme diff --git a/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap b/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap new file mode 100644 index 00000000..987b823b --- /dev/null +++ b/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap @@ -0,0 +1,4 @@ +module CwlCatchExceptionSupport { + umbrella "../../../.build/checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport/include" + export * +} diff --git a/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport/module.modulemap b/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport/module.modulemap new file mode 100644 index 00000000..203adb7d --- /dev/null +++ b/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlCatchExceptionSupport/module.modulemap @@ -0,0 +1,4 @@ +module NimbleCwlCatchExceptionSupport { + umbrella "../../../.build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Dependencies/CwlCatchException/Sources/CwlCatchExceptionSupport/include" + export * +} diff --git a/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlMachBadInstructionHandler/module.modulemap b/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlMachBadInstructionHandler/module.modulemap new file mode 100644 index 00000000..b36a2ccd --- /dev/null +++ b/TPPDF.xcodeproj/GeneratedModuleMap/NimbleCwlMachBadInstructionHandler/module.modulemap @@ -0,0 +1,4 @@ +module NimbleCwlMachBadInstructionHandler { + umbrella "../../../.build/checkouts/Nimble/Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include" + export * +} diff --git a/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap b/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap new file mode 100644 index 00000000..3a670def --- /dev/null +++ b/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap @@ -0,0 +1,4 @@ +module QuickObjCRuntime { + umbrella "../../../.build/checkouts/Quick/Sources/QuickObjCRuntime/include" + export * +} From 9f70c4161070726cc61e8d23d93b2c09356991bc Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Sun, 3 Jan 2021 13:37:14 +0100 Subject: [PATCH 15/29] Fixed linting setup --- .swiftlint.yml | 2 +- Example iOS-SwiftPM/Example.xcodeproj/project.pbxproj | 2 +- Shared iOS/UI/ViewController.swift | 1 - Source/API/Image/PDFImage.swift | 4 ++-- Source/API/List/PDFList.swift | 4 ++-- Source/API/List/PDFListItem.swift | 4 ++-- Source/API/PDFGenerator+Generation.swift | 3 +-- Source/API/Section/PDFSectionColumn.swift | 2 +- Source/API/Table/Content/PDFTableContent+ContentType.swift | 2 +- Source/API/Table/PDFTable.swift | 2 +- Source/API/Table/PDFTableCell.swift | 4 ++-- Source/API/Table/Style/PDFTableCellStyle.swift | 2 +- Source/API/Text/PDFAttributedText.swift | 4 ++-- Source/API/Text/PDFSimpleText.swift | 4 ++-- Source/API/Utils/CrossPlattformGraphics.swift | 3 +-- Source/Internal/Graphics/UIColor+Hex.swift | 1 - Source/Internal/Table/PDFTableObject.swift | 2 -- Source/Internal/Utils/PDFCalculations.swift | 4 ++-- 18 files changed, 22 insertions(+), 28 deletions(-) diff --git a/.swiftlint.yml b/.swiftlint.yml index c242fafb..d11ab282 100644 --- a/.swiftlint.yml +++ b/.swiftlint.yml @@ -44,7 +44,7 @@ identifier_name: error: 2 warning: 2 included: - - ../Source + - Source line_length: 150 reporter: xcode type_body_length: diff --git a/Example iOS-SwiftPM/Example.xcodeproj/project.pbxproj b/Example iOS-SwiftPM/Example.xcodeproj/project.pbxproj index f3ecf5d2..42e48e47 100644 --- a/Example iOS-SwiftPM/Example.xcodeproj/project.pbxproj +++ b/Example iOS-SwiftPM/Example.xcodeproj/project.pbxproj @@ -337,7 +337,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "if which swiftlint >/dev/null; then\n \"swiftlint\" --config ../.swiftlint.yml\nelse\n echo \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n"; + shellScript = "if which swiftlint >/dev/null; then\n if [-z \"$CI\"]; then\n echo \"Skipping SwiftLint as running on CI...\"\n else\n cd ../\n \"swiftlint\" --config .swiftlint.yml\n fi\nelse\n echo \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n"; }; /* End PBXShellScriptBuildPhase section */ diff --git a/Shared iOS/UI/ViewController.swift b/Shared iOS/UI/ViewController.swift index 0d45f8e6..798e1c46 100644 --- a/Shared iOS/UI/ViewController.swift +++ b/Shared iOS/UI/ViewController.swift @@ -61,7 +61,6 @@ class ViewController: UIViewController { /* ---- Execution Metrics ---- */ DispatchQueue.main.async { - print((generator as? PDFGenerator)?.totalPages) self.progressView.isHidden = true // Load PDF into a webview from the temporary file self.webView.loadRequest(URLRequest(url: url)) diff --git a/Source/API/Image/PDFImage.swift b/Source/API/Image/PDFImage.swift index e95b0347..05bce8c8 100644 --- a/Source/API/Image/PDFImage.swift +++ b/Source/API/Image/PDFImage.swift @@ -96,7 +96,7 @@ public class PDFImage: PDFDocumentObject { // MARK: - Equatable - public override func isEqual(to other: PDFDocumentObject) -> Bool { + override public func isEqual(to other: PDFDocumentObject) -> Bool { guard super.isEqual(to: other) else { return false } @@ -129,7 +129,7 @@ public class PDFImage: PDFDocumentObject { // MARK: - Hashable - public override func hash(into hasher: inout Hasher) { + override public func hash(into hasher: inout Hasher) { hasher.combine(image) hasher.combine(caption) hasher.combine(size.width) diff --git a/Source/API/List/PDFList.swift b/Source/API/List/PDFList.swift index bbad4e0a..384e812d 100644 --- a/Source/API/List/PDFList.swift +++ b/Source/API/List/PDFList.swift @@ -118,7 +118,7 @@ public class PDFList: PDFDocumentObject { /// - lhs: One instance of `PDFList` /// - rhs: Another instance of `PDFList` /// - Returns: `true`, if `levelIndentations` and `items` equal; otherwise `false` - public override func isEqual(to other: PDFDocumentObject) -> Bool { + override public func isEqual(to other: PDFDocumentObject) -> Bool { guard super.isEqual(to: other) else { return false } @@ -142,7 +142,7 @@ public class PDFList: PDFDocumentObject { // MARK: - Hashable - public override func hash(into hasher: inout Hasher) { + override public func hash(into hasher: inout Hasher) { super.hash(into: &hasher) for (pre, post) in levelIndentations { hasher.combine(pre) diff --git a/Source/API/List/PDFListItem.swift b/Source/API/List/PDFListItem.swift index 801bd278..1933f725 100644 --- a/Source/API/List/PDFListItem.swift +++ b/Source/API/List/PDFListItem.swift @@ -87,7 +87,7 @@ public class PDFListItem: PDFDocumentObject { /// - lhs: One instance of `PDFListItem` /// - rhs: Another instance of `PDFListItem` /// - Returns: `true`, if `attributes`, `tag`, `content`, `children` and `symbol` equal; otherwise `false` - public override func isEqual(to other: PDFDocumentObject) -> Bool { + override public func isEqual(to other: PDFDocumentObject) -> Bool { guard super.isEqual(to: other) else { return false } @@ -108,7 +108,7 @@ public class PDFListItem: PDFDocumentObject { // MARK: - Equatable - public override func hash(into hasher: inout Hasher) { + override public func hash(into hasher: inout Hasher) { super.hash(into: &hasher) hasher.combine(content) hasher.combine(children) diff --git a/Source/API/PDFGenerator+Generation.swift b/Source/API/PDFGenerator+Generation.swift index bce2e6a2..4537c712 100644 --- a/Source/API/PDFGenerator+Generation.swift +++ b/Source/API/PDFGenerator+Generation.swift @@ -182,8 +182,7 @@ extension PDFGenerator { progress.completedUnitCount += 1 } - var result = currentPage - // If the last object was a external page object, we reduce the amount by one, as we are already on the next page + let result = currentPage // Reset all changes made by metrics calculation to generator resetGenerator() diff --git a/Source/API/Section/PDFSectionColumn.swift b/Source/API/Section/PDFSectionColumn.swift index 9fab8ef1..c6936ae4 100644 --- a/Source/API/Section/PDFSectionColumn.swift +++ b/Source/API/Section/PDFSectionColumn.swift @@ -52,7 +52,7 @@ public class PDFSectionColumn: PDFDocumentObject { internal var copy: PDFSectionColumn { PDFSectionColumn(width: self.width) } - + // MARK: - Layout /** diff --git a/Source/API/Table/Content/PDFTableContent+ContentType.swift b/Source/API/Table/Content/PDFTableContent+ContentType.swift index 9dcb1d26..8ae28db2 100644 --- a/Source/API/Table/Content/PDFTableContent+ContentType.swift +++ b/Source/API/Table/Content/PDFTableContent+ContentType.swift @@ -34,6 +34,6 @@ extension PDFTableContent { TODO: Documentation */ case image - + } } diff --git a/Source/API/Table/PDFTable.swift b/Source/API/Table/PDFTable.swift index 26caf963..403aa27c 100644 --- a/Source/API/Table/PDFTable.swift +++ b/Source/API/Table/PDFTable.swift @@ -119,7 +119,7 @@ public class PDFTable: PDFDocumentObject { /// - Parameters: /// - other: Another instance of `PDFTable` /// - Returns: `true`, if `attributes`, `tag`, `style`, `cells`, `widths`, `padding`, `margin`, `showHeadersOnEveryPage` equal; otherwise `false` - public override func isEqual(to other: PDFDocumentObject) -> Bool { + override public func isEqual(to other: PDFDocumentObject) -> Bool { guard super.isEqual(to: other) else { return false } guard let otherTable = other as? PDFTable else { diff --git a/Source/API/Table/PDFTableCell.swift b/Source/API/Table/PDFTableCell.swift index c06ac5f3..4bed405b 100644 --- a/Source/API/Table/PDFTableCell.swift +++ b/Source/API/Table/PDFTableCell.swift @@ -49,7 +49,7 @@ public class PDFTableCell: PDFDocumentObject { /// - lhs: One instance of `PDFTableCell` /// - rhs: Another instance of `PDFTableCell` /// - Returns: `true`, if `attributes`, `tag`, `content`, `alignment` and `style` equal; otherwise `false` - public override func isEqual(to other: PDFDocumentObject) -> Bool { + override public func isEqual(to other: PDFDocumentObject) -> Bool { guard super.isEqual(to: other) else { return false } @@ -70,7 +70,7 @@ public class PDFTableCell: PDFDocumentObject { // MARK: - Equatable - public override func hash(into hasher: inout Hasher) { + override public func hash(into hasher: inout Hasher) { super.hash(into: &hasher) hasher.combine(content) hasher.combine(style) diff --git a/Source/API/Table/Style/PDFTableCellStyle.swift b/Source/API/Table/Style/PDFTableCellStyle.swift index ce43bb42..78a87a80 100644 --- a/Source/API/Table/Style/PDFTableCellStyle.swift +++ b/Source/API/Table/Style/PDFTableCellStyle.swift @@ -14,7 +14,7 @@ import AppKit /** TODO: Documentation */ -public struct PDFTableCellStyle : Hashable { +public struct PDFTableCellStyle: Hashable { /** TODO: Documentation diff --git a/Source/API/Text/PDFAttributedText.swift b/Source/API/Text/PDFAttributedText.swift index b7931149..fede4dff 100644 --- a/Source/API/Text/PDFAttributedText.swift +++ b/Source/API/Text/PDFAttributedText.swift @@ -35,7 +35,7 @@ public class PDFAttributedText: PDFText { /** Creats a new `PDFAttributedText` with the same properties */ - public override var copy: PDFText { + override public var copy: PDFText { PDFAttributedText(text: text) } @@ -47,7 +47,7 @@ public class PDFAttributedText: PDFText { /// - lhs: One instance of `PDFAttributedText` /// - rhs: Another instance of `PDFAttributedText` /// - Returns: `true`, if `attributes`, `tag` and `text` equal; otherwise `false` - public override func isEqual(to other: PDFDocumentObject) -> Bool { + override public func isEqual(to other: PDFDocumentObject) -> Bool { guard super.isEqual(to: other) else { return false } diff --git a/Source/API/Text/PDFSimpleText.swift b/Source/API/Text/PDFSimpleText.swift index 26cb721e..2da2a9a4 100644 --- a/Source/API/Text/PDFSimpleText.swift +++ b/Source/API/Text/PDFSimpleText.swift @@ -49,7 +49,7 @@ public class PDFSimpleText: PDFText { /** Creates a new `PDFSimpleText` with the same properties */ - public override var copy: PDFText { + override public var copy: PDFText { PDFSimpleText(text: self.text, spacing: self.spacing, style: self.style) } @@ -60,7 +60,7 @@ public class PDFSimpleText: PDFText { /// - Parameters: /// - other: Another instance of `PDFSimpleText` /// - Returns: `true`, if `attributes`, `tag`, `text` and `spacing` equal; otherwise `false` - public override func isEqual(to other: PDFDocumentObject) -> Bool { + override public func isEqual(to other: PDFDocumentObject) -> Bool { guard super.isEqual(to: other) else { return false } diff --git a/Source/API/Utils/CrossPlattformGraphics.swift b/Source/API/Utils/CrossPlattformGraphics.swift index 1566226a..8ca277cf 100644 --- a/Source/API/Utils/CrossPlattformGraphics.swift +++ b/Source/API/Utils/CrossPlattformGraphics.swift @@ -28,7 +28,7 @@ public typealias EdgeInsets = NSEdgeInsets public typealias BezierPath = NSBezierPath public typealias Point = NSPoint -extension NSBezierPath{ +extension NSBezierPath { func quadCurve(to endPoint: CGPoint, controlPoint: CGPoint) { let startPoint = self.currentPoint let controlPoint1 = CGPoint(x: (startPoint.x + (controlPoint.x - startPoint.x) * 2.0/3.0), @@ -107,7 +107,6 @@ extension NSBezierPath { } } - extension NSBezierPath { convenience init(roundedRect rect: CGRect, cornerRadius: CGFloat) { diff --git a/Source/Internal/Graphics/UIColor+Hex.swift b/Source/Internal/Graphics/UIColor+Hex.swift index c5261da9..ef811afe 100644 --- a/Source/Internal/Graphics/UIColor+Hex.swift +++ b/Source/Internal/Graphics/UIColor+Hex.swift @@ -85,4 +85,3 @@ extension Color { return String(format: "#%08x", rgb) } } - diff --git a/Source/Internal/Table/PDFTableObject.swift b/Source/Internal/Table/PDFTableObject.swift index 62ab88af..f1a1e0d0 100644 --- a/Source/Internal/Table/PDFTableObject.swift +++ b/Source/Internal/Table/PDFTableObject.swift @@ -342,7 +342,6 @@ internal class PDFTableObject: PDFRenderObject { throw PDFError.tableCellTooBig(cell: firstInvalidCell.cell) } - for (idx, item) in onPageCells.enumerated() { let cellFrame = item.frames.cell @@ -405,7 +404,6 @@ internal class PDFTableObject: PDFRenderObject { var remainder: [PDFTableCalculatedCell] } - /// Filters the given list of cells into the ones that fit on the current page, and all remainding cells, repositioned for the next page. /// /// - Parameters: diff --git a/Source/Internal/Utils/PDFCalculations.swift b/Source/Internal/Utils/PDFCalculations.swift index d8b2e953..aaff5eed 100644 --- a/Source/Internal/Utils/PDFCalculations.swift +++ b/Source/Internal/Utils/PDFCalculations.swift @@ -472,7 +472,7 @@ internal enum PDFCalculations { sizeFit: PDFImageSizeFit) -> (CGSize, CGSize) { /* calculate the aspect size of image */ let size = (size == CGSize.zero) ? image.size : size - + /* calculate caption height if a caption exists */ let captionHeight: CGFloat = (image.caption as? PDFAttributedText).map({ $0.text.size().height }) @@ -497,7 +497,7 @@ internal enum PDFCalculations { }() let imageSize = CGSize(width: image.size.width / factor, height: (image.size.height / factor) - captionHeight) - + return (imageSize, CGSize(width: imageSize.width, height: captionHeight)) } From 93ea5e45f72bf0287446262ddc0b9186fafb0641 Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Sun, 3 Jan 2021 13:41:19 +0100 Subject: [PATCH 16/29] Bump travis CI Xcode version --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f02d113b..e4b0c5f6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ os: osx -osx_image: xcode11.6 +osx_image: xcode12.2 language: objective-c cache: - bundler From 45a15562958182014c0784f84ac675c45b2075e3 Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Sun, 3 Jan 2021 14:03:45 +0100 Subject: [PATCH 17/29] Version bump of iOS simulator --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index e4b0c5f6..c19afbef 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,7 @@ cache: env: global: - - DESTINATION="OS=13.6,name=iPhone 11 Pro" + - DESTINATION="OS=14.2,name=iPhone 11 Pro" - WORKSPACE="Example.xcworkspace" - PROJECT="Example.xcodeproj" - EXAMPLE_SCHEME="Example" From 53b8f31cefa75ef4981d49240b35e37d10b2f405 Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Sun, 3 Jan 2021 14:36:40 +0100 Subject: [PATCH 18/29] WIP --- .../TPPDFIntegrationTests_Info.plist | 25 +++++++++++++++++++ .../xcschemes/TPPDF-Package.xcscheme | 23 ++++++++--------- 2 files changed, 36 insertions(+), 12 deletions(-) create mode 100644 TPPDF.xcodeproj/TPPDFIntegrationTests_Info.plist diff --git a/TPPDF.xcodeproj/TPPDFIntegrationTests_Info.plist b/TPPDF.xcodeproj/TPPDFIntegrationTests_Info.plist new file mode 100644 index 00000000..7c23420d --- /dev/null +++ b/TPPDF.xcodeproj/TPPDFIntegrationTests_Info.plist @@ -0,0 +1,25 @@ + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/TPPDF.xcodeproj/xcshareddata/xcschemes/TPPDF-Package.xcscheme b/TPPDF.xcodeproj/xcshareddata/xcschemes/TPPDF-Package.xcscheme index 1bf996fd..8a3dc203 100644 --- a/TPPDF.xcodeproj/xcshareddata/xcschemes/TPPDF-Package.xcscheme +++ b/TPPDF.xcodeproj/xcshareddata/xcschemes/TPPDF-Package.xcscheme @@ -26,18 +26,7 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES" - codeCoverageEnabled = "YES" - onlyGenerateCoverageForSpecifiedTargets = "YES"> - - - - + shouldUseLaunchSchemeArgsEnv = "YES"> @@ -49,6 +38,16 @@ ReferencedContainer = "container:TPPDF.xcodeproj"> + + + + Date: Sun, 3 Jan 2021 15:09:04 +0100 Subject: [PATCH 19/29] Fixed test setup --- TPPDF.xcodeproj/project.pbxproj | 3444 +++++++++-------- .../xcschemes/TPPDF-Package.xcscheme | 3 +- .../xcschemes/TPPDFIntegrationTests.xcscheme | 52 + Tests/Common/Bundle+Module.swift | 17 + .../ExternalDocumentTests.swift | 5 + .../PDFGenerator+Generation_Spec.swift | 6 + 6 files changed, 1958 insertions(+), 1569 deletions(-) create mode 100644 TPPDF.xcodeproj/xcshareddata/xcschemes/TPPDFIntegrationTests.xcscheme create mode 100644 Tests/Common/Bundle+Module.swift diff --git a/TPPDF.xcodeproj/project.pbxproj b/TPPDF.xcodeproj/project.pbxproj index faccedf7..e2201155 100644 --- a/TPPDF.xcodeproj/project.pbxproj +++ b/TPPDF.xcodeproj/project.pbxproj @@ -9,11 +9,12 @@ /* Begin PBXAggregateTarget section */ "TPPDF::TPPDFPackageTests::ProductTarget" /* TPPDFPackageTests */ = { isa = PBXAggregateTarget; - buildConfigurationList = OBJ_750 /* Build configuration list for PBXAggregateTarget "TPPDFPackageTests" */; + buildConfigurationList = OBJ_763 /* Build configuration list for PBXAggregateTarget "TPPDFPackageTests" */; buildPhases = ( ); dependencies = ( - OBJ_753 /* PBXTargetDependency */, + OBJ_766 /* PBXTargetDependency */, + OBJ_767 /* PBXTargetDependency */, ); name = TPPDFPackageTests; productName = TPPDFPackageTests; @@ -21,496 +22,600 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - D4B7EA1E25A1BB67007D09C7 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D4B7EA1D25A1BB67007D09C7 /* XCTest.framework */; }; - D4B7EA1F25A1BB67007D09C7 /* XCTest.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D4B7EA1D25A1BB67007D09C7 /* XCTest.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - D4B7EA4125A1C956007D09C7 /* PDFContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4B7EA4025A1C956007D09C7 /* PDFContext.swift */; }; - OBJ_428 /* CwlCatchException.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_353 /* CwlCatchException.swift */; }; - OBJ_430 /* CwlCatchExceptionSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchExceptionSupport::Product" /* CwlCatchExceptionSupport.framework */; }; - OBJ_438 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_359 /* Package.swift */; }; - OBJ_443 /* CwlCatchException.m in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_355 /* CwlCatchException.m */; }; - OBJ_450 /* CwlMachBadInstructionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_340 /* CwlMachBadInstructionHandler.m */; }; - OBJ_451 /* mach_excServer.c in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_341 /* mach_excServer.c */; }; - OBJ_453 /* CwlMachBadInstructionHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = OBJ_343 /* CwlMachBadInstructionHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - OBJ_460 /* CwlCatchBadInstructionPosix.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_345 /* CwlCatchBadInstructionPosix.swift */; }; - OBJ_467 /* CwlBadInstructionException.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_347 /* CwlBadInstructionException.swift */; }; - OBJ_468 /* CwlCatchBadInstruction.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_348 /* CwlCatchBadInstruction.swift */; }; - OBJ_469 /* CwlDarwinDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_349 /* CwlDarwinDefinitions.swift */; }; - OBJ_471 /* CwlCatchException.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchException::Product" /* CwlCatchException.framework */; }; - OBJ_472 /* CwlCatchExceptionSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchExceptionSupport::Product" /* CwlCatchExceptionSupport.framework */; }; - OBJ_473 /* CwlMachBadInstructionHandler.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlMachBadInstructionHandler::Product" /* CwlMachBadInstructionHandler.framework */; }; - OBJ_482 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_350 /* Package.swift */; }; - OBJ_488 /* AdapterProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_281 /* AdapterProtocols.swift */; }; - OBJ_489 /* AssertionDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_282 /* AssertionDispatcher.swift */; }; - OBJ_490 /* AssertionRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_283 /* AssertionRecorder.swift */; }; - OBJ_491 /* NMBExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_284 /* NMBExpectation.swift */; }; - OBJ_492 /* NMBObjCMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_285 /* NMBObjCMatcher.swift */; }; - OBJ_493 /* NimbleEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_286 /* NimbleEnvironment.swift */; }; - OBJ_494 /* NimbleXCTestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_287 /* NimbleXCTestHandler.swift */; }; - OBJ_495 /* ExceptionCapture.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_289 /* ExceptionCapture.swift */; }; - OBJ_496 /* DSL+Wait.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_290 /* DSL+Wait.swift */; }; - OBJ_497 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_291 /* DSL.swift */; }; - OBJ_498 /* Expectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_292 /* Expectation.swift */; }; - OBJ_499 /* ExpectationMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_293 /* ExpectationMessage.swift */; }; - OBJ_500 /* Expression.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_294 /* Expression.swift */; }; - OBJ_501 /* FailureMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_295 /* FailureMessage.swift */; }; - OBJ_502 /* AllPass.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_297 /* AllPass.swift */; }; - OBJ_503 /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_298 /* Async.swift */; }; - OBJ_504 /* BeAKindOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_299 /* BeAKindOf.swift */; }; - OBJ_505 /* BeAnInstanceOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_300 /* BeAnInstanceOf.swift */; }; - OBJ_506 /* BeCloseTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_301 /* BeCloseTo.swift */; }; - OBJ_507 /* BeEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_302 /* BeEmpty.swift */; }; - OBJ_508 /* BeGreaterThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_303 /* BeGreaterThan.swift */; }; - OBJ_509 /* BeGreaterThanOrEqualTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_304 /* BeGreaterThanOrEqualTo.swift */; }; - OBJ_510 /* BeIdenticalTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_305 /* BeIdenticalTo.swift */; }; - OBJ_511 /* BeLessThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_306 /* BeLessThan.swift */; }; - OBJ_512 /* BeLessThanOrEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_307 /* BeLessThanOrEqual.swift */; }; - OBJ_513 /* BeLogical.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_308 /* BeLogical.swift */; }; - OBJ_514 /* BeNil.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_309 /* BeNil.swift */; }; - OBJ_515 /* BeVoid.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_310 /* BeVoid.swift */; }; - OBJ_516 /* BeginWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_311 /* BeginWith.swift */; }; - OBJ_517 /* BeginWithPrefix.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_312 /* BeginWithPrefix.swift */; }; - OBJ_518 /* Contain.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_313 /* Contain.swift */; }; - OBJ_519 /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_314 /* ContainElementSatisfying.swift */; }; - OBJ_520 /* ElementsEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_315 /* ElementsEqual.swift */; }; - OBJ_521 /* EndWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_316 /* EndWith.swift */; }; - OBJ_522 /* Equal.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_317 /* Equal.swift */; }; - OBJ_523 /* HaveCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_318 /* HaveCount.swift */; }; - OBJ_524 /* Match.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_319 /* Match.swift */; }; - OBJ_525 /* MatchError.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_320 /* MatchError.swift */; }; - OBJ_526 /* MatcherFunc.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_321 /* MatcherFunc.swift */; }; - OBJ_527 /* MatcherProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_322 /* MatcherProtocols.swift */; }; - OBJ_528 /* PostNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_323 /* PostNotification.swift */; }; - OBJ_529 /* Predicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_324 /* Predicate.swift */; }; - OBJ_530 /* RaisesException.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_325 /* RaisesException.swift */; }; - OBJ_531 /* SatisfyAllOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_326 /* SatisfyAllOf.swift */; }; - OBJ_532 /* SatisfyAnyOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_327 /* SatisfyAnyOf.swift */; }; - OBJ_533 /* ThrowAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_328 /* ThrowAssertion.swift */; }; - OBJ_534 /* ThrowError.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_329 /* ThrowError.swift */; }; - OBJ_535 /* ToSucceed.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_330 /* ToSucceed.swift */; }; - OBJ_536 /* Await.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_332 /* Await.swift */; }; - OBJ_537 /* DispatchTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_333 /* DispatchTimeInterval.swift */; }; - OBJ_538 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_334 /* Errors.swift */; }; - OBJ_539 /* SourceLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_335 /* SourceLocation.swift */; }; - OBJ_540 /* Stringers.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_336 /* Stringers.swift */; }; - OBJ_542 /* CwlPosixPreconditionTesting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlPosixPreconditionTesting::Product" /* CwlPosixPreconditionTesting.framework */; }; - OBJ_543 /* CwlPreconditionTesting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlPreconditionTesting::Product" /* CwlPreconditionTesting.framework */; }; - OBJ_544 /* CwlCatchException.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchException::Product" /* CwlCatchException.framework */; }; - OBJ_545 /* CwlCatchExceptionSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchExceptionSupport::Product" /* CwlCatchExceptionSupport.framework */; }; - OBJ_546 /* CwlMachBadInstructionHandler.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlMachBadInstructionHandler::Product" /* CwlMachBadInstructionHandler.framework */; }; - OBJ_557 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_337 /* Package.swift */; }; - OBJ_563 /* Behavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_362 /* Behavior.swift */; }; - OBJ_564 /* Callsite.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_363 /* Callsite.swift */; }; - OBJ_565 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_365 /* Configuration.swift */; }; - OBJ_566 /* QuickConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_366 /* QuickConfiguration.swift */; }; - OBJ_567 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_368 /* DSL.swift */; }; - OBJ_568 /* World+DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_369 /* World+DSL.swift */; }; - OBJ_569 /* ErrorUtility.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_370 /* ErrorUtility.swift */; }; - OBJ_570 /* Example.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_371 /* Example.swift */; }; - OBJ_571 /* ExampleGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_372 /* ExampleGroup.swift */; }; - OBJ_572 /* ExampleMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_373 /* ExampleMetadata.swift */; }; - OBJ_573 /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_374 /* Filter.swift */; }; - OBJ_574 /* Closures.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_376 /* Closures.swift */; }; - OBJ_575 /* ExampleHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_377 /* ExampleHooks.swift */; }; - OBJ_576 /* HooksPhase.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_378 /* HooksPhase.swift */; }; - OBJ_577 /* SuiteHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_379 /* SuiteHooks.swift */; }; - OBJ_578 /* NSBundle+CurrentTestBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_380 /* NSBundle+CurrentTestBundle.swift */; }; - OBJ_579 /* QuickMain.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_381 /* QuickMain.swift */; }; - OBJ_580 /* QuickSelectedTestSuiteBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_382 /* QuickSelectedTestSuiteBuilder.swift */; }; - OBJ_581 /* QuickSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_383 /* QuickSpec.swift */; }; - OBJ_582 /* QuickTestObservation.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_384 /* QuickTestObservation.swift */; }; - OBJ_583 /* QuickTestSuite.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_385 /* QuickTestSuite.swift */; }; - OBJ_584 /* String+C99ExtendedIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_386 /* String+C99ExtendedIdentifier.swift */; }; - OBJ_585 /* URL+FileName.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_387 /* URL+FileName.swift */; }; - OBJ_586 /* World.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_388 /* World.swift */; }; - OBJ_588 /* QuickObjCRuntime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Quick::QuickObjCRuntime::Product" /* QuickObjCRuntime.framework */; }; - OBJ_595 /* QuickSpecBase.m in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_390 /* QuickSpecBase.m */; }; - OBJ_602 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_394 /* Package.swift */; }; - OBJ_608 /* PDFExternalDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_10 /* PDFExternalDocument.swift */; }; - OBJ_609 /* PDFBezierPath+Copying.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_12 /* PDFBezierPath+Copying.swift */; }; - OBJ_610 /* PDFBezierPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_13 /* PDFBezierPath.swift */; }; - OBJ_611 /* PDFBezierPathVertex.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_14 /* PDFBezierPathVertex.swift */; }; - OBJ_612 /* PDFDynamicGeometryShape.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_15 /* PDFDynamicGeometryShape.swift */; }; - OBJ_613 /* PDFLineStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_16 /* PDFLineStyle.swift */; }; - OBJ_614 /* PDFLineType.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_17 /* PDFLineType.swift */; }; - OBJ_615 /* PDFGroup+Objects.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_19 /* PDFGroup+Objects.swift */; }; - OBJ_616 /* PDFGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_20 /* PDFGroup.swift */; }; - OBJ_617 /* PDFGroupContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_21 /* PDFGroupContainer.swift */; }; - OBJ_618 /* PDFMasterGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_22 /* PDFMasterGroup.swift */; }; - OBJ_619 /* PDFImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_24 /* PDFImage.swift */; }; - OBJ_620 /* PDFImageOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_25 /* PDFImageOptions.swift */; }; - OBJ_621 /* PDFImageSizeFit.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_26 /* PDFImageSizeFit.swift */; }; - OBJ_622 /* PDFContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_28 /* PDFContainer.swift */; }; - OBJ_623 /* PDFPageLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_29 /* PDFPageLayout.swift */; }; - OBJ_624 /* PDFList.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_31 /* PDFList.swift */; }; - OBJ_625 /* PDFListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_32 /* PDFListItem.swift */; }; - OBJ_626 /* PDFListItemSymbol.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_33 /* PDFListItemSymbol.swift */; }; - OBJ_627 /* PDFInfo+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_35 /* PDFInfo+Equatable.swift */; }; - OBJ_628 /* PDFInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_36 /* PDFInfo.swift */; }; - OBJ_629 /* PDFDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_37 /* PDFDocument.swift */; }; - OBJ_630 /* PDFGenerator+Generation.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_38 /* PDFGenerator+Generation.swift */; }; - OBJ_631 /* PDFGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_39 /* PDFGenerator.swift */; }; - OBJ_632 /* PDFGeneratorProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_40 /* PDFGeneratorProtocol.swift */; }; - OBJ_633 /* PDFMultiDocumentGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_41 /* PDFMultiDocumentGenerator.swift */; }; - OBJ_634 /* PDFPageFormat+Layout.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_43 /* PDFPageFormat+Layout.swift */; }; - OBJ_635 /* PDFPageFormat+SizeConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_44 /* PDFPageFormat+SizeConstants.swift */; }; - OBJ_636 /* PDFPageFormat.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_45 /* PDFPageFormat.swift */; }; - OBJ_637 /* PDFSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_47 /* PDFSection.swift */; }; - OBJ_638 /* PDFSectionColumn.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_48 /* PDFSectionColumn.swift */; }; - OBJ_639 /* PDFTableOfContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_50 /* PDFTableOfContent.swift */; }; - OBJ_640 /* NSAttributedString+PDFTableContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_53 /* NSAttributedString+PDFTableContent.swift */; }; - OBJ_641 /* Number+PDFTableContentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_54 /* Number+PDFTableContentable.swift */; }; - OBJ_642 /* PDFTableContent+ContentType.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_55 /* PDFTableContent+ContentType.swift */; }; - OBJ_643 /* PDFTableContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_56 /* PDFTableContent.swift */; }; - OBJ_644 /* PDFTableContentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_57 /* PDFTableContentable.swift */; }; - OBJ_645 /* String+PDFTableContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_58 /* String+PDFTableContent.swift */; }; - OBJ_646 /* UIImage+PDFTableContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_59 /* UIImage+PDFTableContent.swift */; }; - OBJ_647 /* PDFTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_60 /* PDFTable.swift */; }; - OBJ_648 /* PDFTableCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_61 /* PDFTableCell.swift */; }; - OBJ_649 /* PDFTableCellAlignment.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_62 /* PDFTableCellAlignment.swift */; }; - OBJ_650 /* PDFTableCellPosition.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_63 /* PDFTableCellPosition.swift */; }; - OBJ_651 /* PDFTable+CellSubscripts.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_65 /* PDFTable+CellSubscripts.swift */; }; - OBJ_652 /* PDFTable+ColumnSubscripts.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_66 /* PDFTable+ColumnSubscripts.swift */; }; - OBJ_653 /* PDFTable+RowSubscripts.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_67 /* PDFTable+RowSubscripts.swift */; }; - OBJ_654 /* PDFTable+SectionSubscripts.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_68 /* PDFTable+SectionSubscripts.swift */; }; - OBJ_655 /* PDFTableColumn.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_69 /* PDFTableColumn.swift */; }; - OBJ_656 /* PDFTableColumns.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_70 /* PDFTableColumns.swift */; }; - OBJ_657 /* PDFTableMergeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_71 /* PDFTableMergeable.swift */; }; - OBJ_658 /* PDFTableRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_72 /* PDFTableRow.swift */; }; - OBJ_659 /* PDFTableRows.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_73 /* PDFTableRows.swift */; }; - OBJ_660 /* PDFTableSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_74 /* PDFTableSection.swift */; }; - OBJ_661 /* PDFTableCellBorders.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_76 /* PDFTableCellBorders.swift */; }; - OBJ_662 /* PDFTableCellPosition+Equatable-Hashable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_77 /* PDFTableCellPosition+Equatable-Hashable.swift */; }; - OBJ_663 /* PDFTableCellStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_78 /* PDFTableCellStyle.swift */; }; - OBJ_664 /* PDFTableStyle+Defaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_79 /* PDFTableStyle+Defaults.swift */; }; - OBJ_665 /* PDFTableStyle+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_80 /* PDFTableStyle+Equatable.swift */; }; - OBJ_666 /* PDFTableStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_81 /* PDFTableStyle.swift */; }; - OBJ_667 /* PDFAttributedText.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_83 /* PDFAttributedText.swift */; }; - OBJ_668 /* PDFSimpleText+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_84 /* PDFSimpleText+Equatable.swift */; }; - OBJ_669 /* PDFSimpleText.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_85 /* PDFSimpleText.swift */; }; - OBJ_670 /* PDFText.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_86 /* PDFText.swift */; }; - OBJ_671 /* PDFTextStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_87 /* PDFTextStyle.swift */; }; - OBJ_672 /* CrossPlattformGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_89 /* CrossPlattformGraphics.swift */; }; - OBJ_673 /* PDFConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_90 /* PDFConstants.swift */; }; - OBJ_674 /* PDFCopy.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_91 /* PDFCopy.swift */; }; - OBJ_675 /* PDFDocumentObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_92 /* PDFDocumentObject.swift */; }; - OBJ_676 /* PDFError.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_93 /* PDFError.swift */; }; - OBJ_677 /* PDFRenderObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_94 /* PDFRenderObject.swift */; }; - OBJ_678 /* PDFTaggableObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_95 /* PDFTaggableObject.swift */; }; - OBJ_679 /* PDFExternalDocumentObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_98 /* PDFExternalDocumentObject.swift */; }; - OBJ_680 /* PDFExternalPageObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_99 /* PDFExternalPageObject.swift */; }; - OBJ_681 /* PDFContextGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_101 /* PDFContextGraphics.swift */; }; - OBJ_682 /* PDFGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_102 /* PDFGraphics.swift */; }; - OBJ_683 /* PDFLineObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_103 /* PDFLineObject.swift */; }; - OBJ_684 /* PDFLineSeparatorObject+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_104 /* PDFLineSeparatorObject+Equatable.swift */; }; - OBJ_685 /* PDFLineSeparatorObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_105 /* PDFLineSeparatorObject.swift */; }; - OBJ_686 /* PDFRectangleObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_106 /* PDFRectangleObject.swift */; }; - OBJ_687 /* UIColor+CloseToEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_107 /* UIColor+CloseToEqual.swift */; }; - OBJ_688 /* UIColor+Hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_108 /* UIColor+Hex.swift */; }; - OBJ_689 /* UIImage+Pixel.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_109 /* UIImage+Pixel.swift */; }; - OBJ_690 /* PDFGroupObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_111 /* PDFGroupObject.swift */; }; - OBJ_691 /* PDFImageObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_113 /* PDFImageObject.swift */; }; - OBJ_692 /* PDFImageRowObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_114 /* PDFImageRowObject.swift */; }; - OBJ_693 /* PDFColumnLayoutState.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_116 /* PDFColumnLayoutState.swift */; }; - OBJ_694 /* PDFIndentationObject+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_117 /* PDFIndentationObject+Equatable.swift */; }; - OBJ_695 /* PDFIndentationObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_118 /* PDFIndentationObject.swift */; }; - OBJ_696 /* PDFLayout+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_119 /* PDFLayout+Equatable.swift */; }; - OBJ_697 /* PDFLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_120 /* PDFLayout.swift */; }; - OBJ_698 /* PDFLayoutHeights+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_121 /* PDFLayoutHeights+Equatable.swift */; }; - OBJ_699 /* PDFLayoutHeights.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_122 /* PDFLayoutHeights.swift */; }; - OBJ_700 /* PDFLayoutIndentations+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_123 /* PDFLayoutIndentations+Equatable.swift */; }; - OBJ_701 /* PDFLayoutIndentations.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_124 /* PDFLayoutIndentations.swift */; }; - OBJ_702 /* PDFMarginObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_125 /* PDFMarginObject.swift */; }; - OBJ_703 /* PDFOffsetObject+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_126 /* PDFOffsetObject+Equatable.swift */; }; - OBJ_704 /* PDFOffsetObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_127 /* PDFOffsetObject.swift */; }; - OBJ_705 /* PDFPageBreakObject+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_128 /* PDFPageBreakObject+Equatable.swift */; }; - OBJ_706 /* PDFPageBreakObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_129 /* PDFPageBreakObject.swift */; }; - OBJ_707 /* PDFPageLayout+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_130 /* PDFPageLayout+Equatable.swift */; }; - OBJ_708 /* PDFSectionColumnContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_131 /* PDFSectionColumnContainer.swift */; }; - OBJ_709 /* PDFSpaceObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_132 /* PDFSpaceObject.swift */; }; - OBJ_710 /* PDFListObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_134 /* PDFListObject.swift */; }; - OBJ_711 /* CGPoint+Math.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_136 /* CGPoint+Math.swift */; }; - OBJ_712 /* CGPoint+Null.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_137 /* CGPoint+Null.swift */; }; - OBJ_713 /* PDFGenerator+Debug.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_138 /* PDFGenerator+Debug.swift */; }; - OBJ_714 /* PDFGenerator+Layout.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_139 /* PDFGenerator+Layout.swift */; }; - OBJ_715 /* Int+RomanNumerals.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_141 /* Int+RomanNumerals.swift */; }; - OBJ_716 /* PDFPagination+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_142 /* PDFPagination+Equatable.swift */; }; - OBJ_717 /* PDFPagination.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_143 /* PDFPagination.swift */; }; - OBJ_718 /* PDFPaginationClosure.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_144 /* PDFPaginationClosure.swift */; }; - OBJ_719 /* PDFPaginationStyle+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_145 /* PDFPaginationStyle+Equatable.swift */; }; - OBJ_720 /* PDFPaginationStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_146 /* PDFPaginationStyle.swift */; }; - OBJ_721 /* PDFColumnWrapSectionObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_148 /* PDFColumnWrapSectionObject.swift */; }; - OBJ_722 /* PDFSectionColumnObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_149 /* PDFSectionColumnObject.swift */; }; - OBJ_723 /* PDFSectionObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_150 /* PDFSectionObject.swift */; }; - OBJ_724 /* PDFTableOfContentObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_152 /* PDFTableOfContentObject.swift */; }; - OBJ_725 /* PDFTableCalculatedCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_154 /* PDFTableCalculatedCell.swift */; }; - OBJ_726 /* PDFTableMergeUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_155 /* PDFTableMergeUtil.swift */; }; - OBJ_727 /* PDFTableNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_156 /* PDFTableNode.swift */; }; - OBJ_728 /* PDFTableObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_157 /* PDFTableObject.swift */; }; - OBJ_729 /* PDFTableValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_158 /* PDFTableValidator.swift */; }; - OBJ_730 /* PDFAttributedTextObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_160 /* PDFAttributedTextObject.swift */; }; - OBJ_731 /* PDFFontObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_161 /* PDFFontObject.swift */; }; - OBJ_732 /* PDFTextColorObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_162 /* PDFTextColorObject.swift */; }; - OBJ_733 /* PDFAttributableObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_165 /* PDFAttributableObject.swift */; }; - OBJ_734 /* PDFObjectAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_166 /* PDFObjectAttribute.swift */; }; - OBJ_735 /* CustomStringConvertible+AutoDescribing.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_167 /* CustomStringConvertible+AutoDescribing.swift */; }; - OBJ_736 /* FileManager+TemporaryFiles.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_168 /* FileManager+TemporaryFiles.swift */; }; - OBJ_737 /* PDFCalculations.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_169 /* PDFCalculations.swift */; }; - OBJ_738 /* PDFLocatedRenderObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_170 /* PDFLocatedRenderObject.swift */; }; - OBJ_739 /* PDFSlicedObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_171 /* PDFSlicedObject.swift */; }; - OBJ_740 /* Stack.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_172 /* Stack.swift */; }; - OBJ_741 /* WeakRef.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_173 /* WeakRef.swift */; }; - OBJ_748 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_6 /* Package.swift */; }; - OBJ_759 /* PDFTableRowSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_179 /* PDFTableRowSpec.swift */; }; - OBJ_760 /* PDFTable_RowSubscriptsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_180 /* PDFTable_RowSubscriptsSpec.swift */; }; - OBJ_761 /* PDFGraphics_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_182 /* PDFGraphics_Spec.swift */; }; - OBJ_762 /* PDFLineSeparatorObject+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_183 /* PDFLineSeparatorObject+Equatable_Spec.swift */; }; - OBJ_763 /* PDFLineSeparatorObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_184 /* PDFLineSeparatorObject_Spec.swift */; }; - OBJ_764 /* PDFLineStyle_Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_185 /* PDFLineStyle_Equatable_Spec.swift */; }; - OBJ_765 /* PDFLineStyle_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_186 /* PDFLineStyle_Spec.swift */; }; - OBJ_766 /* PDFLineType_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_187 /* PDFLineType_Spec.swift */; }; - OBJ_767 /* UIColor+Hex_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_188 /* UIColor+Hex_Spec.swift */; }; - OBJ_768 /* UIImage+CloseToEqual_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_189 /* UIImage+CloseToEqual_Spec.swift */; }; - OBJ_769 /* UIImage+Pixel_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_190 /* UIImage+Pixel_Spec.swift */; }; - OBJ_770 /* PDFImageSizeFit_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_192 /* PDFImageSizeFit_Spec.swift */; }; - OBJ_771 /* PDFImage_Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_193 /* PDFImage_Equatable_Spec.swift */; }; - OBJ_772 /* PDFImage_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_194 /* PDFImage_Spec.swift */; }; - OBJ_773 /* PDFTableMergeUtil_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_197 /* PDFTableMergeUtil_Spec.swift */; }; - OBJ_774 /* PDFTableObjectSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_198 /* PDFTableObjectSpec.swift */; }; - OBJ_775 /* PDFContainer_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_200 /* PDFContainer_Spec.swift */; }; - OBJ_776 /* PDFIndentationObject_Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_201 /* PDFIndentationObject_Equatable_Spec.swift */; }; - OBJ_777 /* PDFIndentationObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_202 /* PDFIndentationObject_Spec.swift */; }; - OBJ_778 /* PDFLayout+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_203 /* PDFLayout+Equatable_Spec.swift */; }; - OBJ_779 /* PDFLayoutHeights+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_204 /* PDFLayoutHeights+Equatable_Spec.swift */; }; - OBJ_780 /* PDFLayoutHeights_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_205 /* PDFLayoutHeights_Spec.swift */; }; - OBJ_781 /* PDFLayoutIndentations+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_206 /* PDFLayoutIndentations+Equatable_Spec.swift */; }; - OBJ_782 /* PDFLayoutIndentations_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_207 /* PDFLayoutIndentations_Spec.swift */; }; - OBJ_783 /* PDFLayout_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_208 /* PDFLayout_Spec.swift */; }; - OBJ_784 /* PDFOffsetObject+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_209 /* PDFOffsetObject+Equatable_Spec.swift */; }; - OBJ_785 /* PDFOffsetObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_210 /* PDFOffsetObject_Spec.swift */; }; - OBJ_786 /* PDFPageBreakObject+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_211 /* PDFPageBreakObject+Equatable_Spec.swift */; }; - OBJ_787 /* PDFPageBreakObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_212 /* PDFPageBreakObject_Spec.swift */; }; - OBJ_788 /* PDFPageLayout+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_213 /* PDFPageLayout+Equatable_Spec.swift */; }; - OBJ_789 /* PDFPageLayout_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_214 /* PDFPageLayout_Spec.swift */; }; - OBJ_790 /* PDFSpaceObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_215 /* PDFSpaceObject_Spec.swift */; }; - OBJ_791 /* PDFList+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_217 /* PDFList+Equatable_Spec.swift */; }; - OBJ_792 /* PDFListItemObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_218 /* PDFListItemObject_Spec.swift */; }; - OBJ_793 /* PDFListItemSymbol_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_219 /* PDFListItemSymbol_Spec.swift */; }; - OBJ_794 /* PDFListItem_Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_220 /* PDFListItem_Equatable_Spec.swift */; }; - OBJ_795 /* PDFListItem_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_221 /* PDFListItem_Spec.swift */; }; - OBJ_796 /* PDFList_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_222 /* PDFList_Spec.swift */; }; - OBJ_797 /* CGPoint+Math_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_224 /* CGPoint+Math_Spec.swift */; }; - OBJ_798 /* PDFInfo+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_226 /* PDFInfo+Equatable_Spec.swift */; }; - OBJ_799 /* PDFInfo_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_227 /* PDFInfo_Spec.swift */; }; - OBJ_800 /* PDFDocument+Objects_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_228 /* PDFDocument+Objects_Spec.swift */; }; - OBJ_801 /* PDFDocument_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_229 /* PDFDocument_Spec.swift */; }; - OBJ_802 /* PDFGenerator+Debug_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_230 /* PDFGenerator+Debug_Spec.swift */; }; - OBJ_803 /* PDFGenerator+Generation_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_231 /* PDFGenerator+Generation_Spec.swift */; }; - OBJ_804 /* PDFGenerator+Layout_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_232 /* PDFGenerator+Layout_Spec.swift */; }; - OBJ_805 /* PDFGenerator_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_233 /* PDFGenerator_Spec.swift */; }; - OBJ_806 /* PDFPageFormat+Layout_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_235 /* PDFPageFormat+Layout_Spec.swift */; }; - OBJ_807 /* PDFPageFormat+SizeConstants_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_236 /* PDFPageFormat+SizeConstants_Spec.swift */; }; - OBJ_808 /* PDFPageFormat_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_237 /* PDFPageFormat_Spec.swift */; }; - OBJ_809 /* Int+RomanNumerals_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_239 /* Int+RomanNumerals_Spec.swift */; }; - OBJ_810 /* PDFPaginationStyle+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_240 /* PDFPaginationStyle+Equatable_Spec.swift */; }; - OBJ_811 /* PDFPaginationStyle_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_241 /* PDFPaginationStyle_Spec.swift */; }; - OBJ_812 /* PDFPagination_Closure_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_242 /* PDFPagination_Closure_Spec.swift */; }; - OBJ_813 /* PDFPagination_Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_243 /* PDFPagination_Equatable_Spec.swift */; }; - OBJ_814 /* PDFPagination_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_244 /* PDFPagination_Spec.swift */; }; - OBJ_815 /* PDFTable+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_246 /* PDFTable+Equatable_Spec.swift */; }; - OBJ_816 /* PDFTableCell+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_247 /* PDFTableCell+Equatable_Spec.swift */; }; - OBJ_817 /* PDFTableCellAlignment_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_248 /* PDFTableCellAlignment_Spec.swift */; }; - OBJ_818 /* PDFTableCellBorders+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_249 /* PDFTableCellBorders+Equatable_Spec.swift */; }; - OBJ_819 /* PDFTableCellBorders_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_250 /* PDFTableCellBorders_Spec.swift */; }; - OBJ_820 /* PDFTableCellPosition+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_251 /* PDFTableCellPosition+Equatable_Spec.swift */; }; - OBJ_821 /* PDFTableCellPosition_Hashable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_252 /* PDFTableCellPosition_Hashable_Spec.swift */; }; - OBJ_822 /* PDFTableCellPosition_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_253 /* PDFTableCellPosition_Spec.swift */; }; - OBJ_823 /* PDFTableCellStyle+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_254 /* PDFTableCellStyle+Equatable_Spec.swift */; }; - OBJ_824 /* PDFTableCellStyle_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_255 /* PDFTableCellStyle_Spec.swift */; }; - OBJ_825 /* PDFTableCell_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_256 /* PDFTableCell_Spec.swift */; }; - OBJ_826 /* PDFTableContent+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_257 /* PDFTableContent+Equatable_Spec.swift */; }; - OBJ_827 /* PDFTableContent_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_258 /* PDFTableContent_Spec.swift */; }; - OBJ_828 /* PDFTableStyle+Defaults_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_259 /* PDFTableStyle+Defaults_Spec.swift */; }; - OBJ_829 /* PDFTableStyle+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_260 /* PDFTableStyle+Equatable_Spec.swift */; }; - OBJ_830 /* PDFTableStyle_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_261 /* PDFTableStyle_Spec.swift */; }; - OBJ_831 /* PDFTableValidator_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_262 /* PDFTableValidator_Spec.swift */; }; - OBJ_832 /* PDFTable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_263 /* PDFTable_Spec.swift */; }; - OBJ_833 /* PDFAttributedText+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_265 /* PDFAttributedText+Equatable_Spec.swift */; }; - OBJ_834 /* PDFAttributedTextObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_266 /* PDFAttributedTextObject_Spec.swift */; }; - OBJ_835 /* PDFAttributedText_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_267 /* PDFAttributedText_Spec.swift */; }; - OBJ_836 /* PDFFontObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_268 /* PDFFontObject_Spec.swift */; }; - OBJ_837 /* PDFSimpleText+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_269 /* PDFSimpleText+Equatable_Spec.swift */; }; - OBJ_838 /* PDFSimpleText_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_270 /* PDFSimpleText_Spec.swift */; }; - OBJ_839 /* PDFTextColorObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_271 /* PDFTextColorObject_Spec.swift */; }; - OBJ_840 /* PDFText_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_272 /* PDFText_Spec.swift */; }; - OBJ_841 /* PDFCalculations_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_274 /* PDFCalculations_Spec.swift */; }; - OBJ_842 /* PDFError_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_275 /* PDFError_Spec.swift */; }; - OBJ_843 /* PDFObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_276 /* PDFObject_Spec.swift */; }; - OBJ_845 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Nimble::Nimble::Product" /* Nimble.framework */; }; - OBJ_846 /* CwlPosixPreconditionTesting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlPosixPreconditionTesting::Product" /* CwlPosixPreconditionTesting.framework */; }; - OBJ_847 /* CwlPreconditionTesting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlPreconditionTesting::Product" /* CwlPreconditionTesting.framework */; }; - OBJ_848 /* CwlCatchException.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchException::Product" /* CwlCatchException.framework */; }; - OBJ_849 /* CwlCatchExceptionSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchExceptionSupport::Product" /* CwlCatchExceptionSupport.framework */; }; - OBJ_850 /* CwlMachBadInstructionHandler.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlMachBadInstructionHandler::Product" /* CwlMachBadInstructionHandler.framework */; }; - OBJ_851 /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Quick::Quick::Product" /* Quick.framework */; }; - OBJ_852 /* QuickObjCRuntime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Quick::QuickObjCRuntime::Product" /* QuickObjCRuntime.framework */; }; - OBJ_853 /* TPPDF.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "TPPDF::TPPDF::Product" /* TPPDF.framework */; }; + D48008C025A200AD00CFB266 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D48008BF25A200AD00CFB266 /* XCTest.framework */; }; + D48008C125A200AD00CFB266 /* XCTest.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D48008BF25A200AD00CFB266 /* XCTest.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + D48009AC25A204C700CFB266 /* Bundle+Module.swift in Sources */ = {isa = PBXBuildFile; fileRef = D48009AB25A204C700CFB266 /* Bundle+Module.swift */; }; + D48009CD25A2050900CFB266 /* Bundle+Module.swift in Sources */ = {isa = PBXBuildFile; fileRef = D48009AB25A204C700CFB266 /* Bundle+Module.swift */; }; + D4800A0125A2072900CFB266 /* 50-pages.pdf in CopyFiles */ = {isa = PBXBuildFile; fileRef = D480095625A202DD00CFB266 /* 50-pages.pdf */; }; + D4800A3425A2073200CFB266 /* sample.pdf in CopyFiles */ = {isa = PBXBuildFile; fileRef = D480099925A202F200CFB266 /* sample.pdf */; }; + OBJ_415 /* CwlCatchException.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_356 /* CwlCatchException.swift */; }; + OBJ_417 /* CwlCatchExceptionSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchExceptionSupport::Product" /* CwlCatchExceptionSupport.framework */; }; + OBJ_425 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_362 /* Package.swift */; }; + OBJ_430 /* CwlCatchException.m in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_358 /* CwlCatchException.m */; }; + OBJ_437 /* CwlMachBadInstructionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_343 /* CwlMachBadInstructionHandler.m */; }; + OBJ_438 /* mach_excServer.c in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_344 /* mach_excServer.c */; }; + OBJ_440 /* CwlMachBadInstructionHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = OBJ_346 /* CwlMachBadInstructionHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + OBJ_447 /* CwlCatchBadInstructionPosix.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_348 /* CwlCatchBadInstructionPosix.swift */; }; + OBJ_454 /* CwlBadInstructionException.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_350 /* CwlBadInstructionException.swift */; }; + OBJ_455 /* CwlCatchBadInstruction.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_351 /* CwlCatchBadInstruction.swift */; }; + OBJ_456 /* CwlDarwinDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_352 /* CwlDarwinDefinitions.swift */; }; + OBJ_458 /* CwlCatchException.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchException::Product" /* CwlCatchException.framework */; }; + OBJ_459 /* CwlCatchExceptionSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchExceptionSupport::Product" /* CwlCatchExceptionSupport.framework */; }; + OBJ_460 /* CwlMachBadInstructionHandler.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlMachBadInstructionHandler::Product" /* CwlMachBadInstructionHandler.framework */; }; + OBJ_469 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_353 /* Package.swift */; }; + OBJ_475 /* AdapterProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_284 /* AdapterProtocols.swift */; }; + OBJ_476 /* AssertionDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_285 /* AssertionDispatcher.swift */; }; + OBJ_477 /* AssertionRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_286 /* AssertionRecorder.swift */; }; + OBJ_478 /* NMBExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_287 /* NMBExpectation.swift */; }; + OBJ_479 /* NMBObjCMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_288 /* NMBObjCMatcher.swift */; }; + OBJ_480 /* NimbleEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_289 /* NimbleEnvironment.swift */; }; + OBJ_481 /* NimbleXCTestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_290 /* NimbleXCTestHandler.swift */; }; + OBJ_482 /* ExceptionCapture.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_292 /* ExceptionCapture.swift */; }; + OBJ_483 /* DSL+Wait.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_293 /* DSL+Wait.swift */; }; + OBJ_484 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_294 /* DSL.swift */; }; + OBJ_485 /* Expectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_295 /* Expectation.swift */; }; + OBJ_486 /* ExpectationMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_296 /* ExpectationMessage.swift */; }; + OBJ_487 /* Expression.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_297 /* Expression.swift */; }; + OBJ_488 /* FailureMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_298 /* FailureMessage.swift */; }; + OBJ_489 /* AllPass.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_300 /* AllPass.swift */; }; + OBJ_490 /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_301 /* Async.swift */; }; + OBJ_491 /* BeAKindOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_302 /* BeAKindOf.swift */; }; + OBJ_492 /* BeAnInstanceOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_303 /* BeAnInstanceOf.swift */; }; + OBJ_493 /* BeCloseTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_304 /* BeCloseTo.swift */; }; + OBJ_494 /* BeEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_305 /* BeEmpty.swift */; }; + OBJ_495 /* BeGreaterThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_306 /* BeGreaterThan.swift */; }; + OBJ_496 /* BeGreaterThanOrEqualTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_307 /* BeGreaterThanOrEqualTo.swift */; }; + OBJ_497 /* BeIdenticalTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_308 /* BeIdenticalTo.swift */; }; + OBJ_498 /* BeLessThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_309 /* BeLessThan.swift */; }; + OBJ_499 /* BeLessThanOrEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_310 /* BeLessThanOrEqual.swift */; }; + OBJ_500 /* BeLogical.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_311 /* BeLogical.swift */; }; + OBJ_501 /* BeNil.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_312 /* BeNil.swift */; }; + OBJ_502 /* BeVoid.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_313 /* BeVoid.swift */; }; + OBJ_503 /* BeginWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_314 /* BeginWith.swift */; }; + OBJ_504 /* BeginWithPrefix.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_315 /* BeginWithPrefix.swift */; }; + OBJ_505 /* Contain.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_316 /* Contain.swift */; }; + OBJ_506 /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_317 /* ContainElementSatisfying.swift */; }; + OBJ_507 /* ElementsEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_318 /* ElementsEqual.swift */; }; + OBJ_508 /* EndWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_319 /* EndWith.swift */; }; + OBJ_509 /* Equal.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_320 /* Equal.swift */; }; + OBJ_510 /* HaveCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_321 /* HaveCount.swift */; }; + OBJ_511 /* Match.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_322 /* Match.swift */; }; + OBJ_512 /* MatchError.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_323 /* MatchError.swift */; }; + OBJ_513 /* MatcherFunc.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_324 /* MatcherFunc.swift */; }; + OBJ_514 /* MatcherProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_325 /* MatcherProtocols.swift */; }; + OBJ_515 /* PostNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_326 /* PostNotification.swift */; }; + OBJ_516 /* Predicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_327 /* Predicate.swift */; }; + OBJ_517 /* RaisesException.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_328 /* RaisesException.swift */; }; + OBJ_518 /* SatisfyAllOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_329 /* SatisfyAllOf.swift */; }; + OBJ_519 /* SatisfyAnyOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_330 /* SatisfyAnyOf.swift */; }; + OBJ_520 /* ThrowAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_331 /* ThrowAssertion.swift */; }; + OBJ_521 /* ThrowError.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_332 /* ThrowError.swift */; }; + OBJ_522 /* ToSucceed.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_333 /* ToSucceed.swift */; }; + OBJ_523 /* Await.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_335 /* Await.swift */; }; + OBJ_524 /* DispatchTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_336 /* DispatchTimeInterval.swift */; }; + OBJ_525 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_337 /* Errors.swift */; }; + OBJ_526 /* SourceLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_338 /* SourceLocation.swift */; }; + OBJ_527 /* Stringers.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_339 /* Stringers.swift */; }; + OBJ_529 /* CwlPosixPreconditionTesting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlPosixPreconditionTesting::Product" /* CwlPosixPreconditionTesting.framework */; }; + OBJ_530 /* CwlPreconditionTesting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlPreconditionTesting::Product" /* CwlPreconditionTesting.framework */; }; + OBJ_531 /* CwlCatchException.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchException::Product" /* CwlCatchException.framework */; }; + OBJ_532 /* CwlCatchExceptionSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchExceptionSupport::Product" /* CwlCatchExceptionSupport.framework */; }; + OBJ_533 /* CwlMachBadInstructionHandler.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlMachBadInstructionHandler::Product" /* CwlMachBadInstructionHandler.framework */; }; + OBJ_544 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_340 /* Package.swift */; }; + OBJ_550 /* Behavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_365 /* Behavior.swift */; }; + OBJ_551 /* Callsite.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_366 /* Callsite.swift */; }; + OBJ_552 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_368 /* Configuration.swift */; }; + OBJ_553 /* QuickConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_369 /* QuickConfiguration.swift */; }; + OBJ_554 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_371 /* DSL.swift */; }; + OBJ_555 /* World+DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_372 /* World+DSL.swift */; }; + OBJ_556 /* ErrorUtility.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_373 /* ErrorUtility.swift */; }; + OBJ_557 /* Example.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_374 /* Example.swift */; }; + OBJ_558 /* ExampleGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_375 /* ExampleGroup.swift */; }; + OBJ_559 /* ExampleMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_376 /* ExampleMetadata.swift */; }; + OBJ_560 /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_377 /* Filter.swift */; }; + OBJ_561 /* Closures.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_379 /* Closures.swift */; }; + OBJ_562 /* ExampleHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_380 /* ExampleHooks.swift */; }; + OBJ_563 /* HooksPhase.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_381 /* HooksPhase.swift */; }; + OBJ_564 /* SuiteHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_382 /* SuiteHooks.swift */; }; + OBJ_565 /* NSBundle+CurrentTestBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_383 /* NSBundle+CurrentTestBundle.swift */; }; + OBJ_566 /* QuickMain.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_384 /* QuickMain.swift */; }; + OBJ_567 /* QuickSelectedTestSuiteBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_385 /* QuickSelectedTestSuiteBuilder.swift */; }; + OBJ_568 /* QuickSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_386 /* QuickSpec.swift */; }; + OBJ_569 /* QuickTestObservation.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_387 /* QuickTestObservation.swift */; }; + OBJ_570 /* QuickTestSuite.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_388 /* QuickTestSuite.swift */; }; + OBJ_571 /* String+C99ExtendedIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_389 /* String+C99ExtendedIdentifier.swift */; }; + OBJ_572 /* URL+FileName.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_390 /* URL+FileName.swift */; }; + OBJ_573 /* World.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_391 /* World.swift */; }; + OBJ_575 /* QuickObjCRuntime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Quick::QuickObjCRuntime::Product" /* QuickObjCRuntime.framework */; }; + OBJ_582 /* QuickSpecBase.m in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_393 /* QuickSpecBase.m */; }; + OBJ_589 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_397 /* Package.swift */; }; + OBJ_595 /* PDFExternalDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_10 /* PDFExternalDocument.swift */; }; + OBJ_596 /* PDFBezierPath+Copying.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_12 /* PDFBezierPath+Copying.swift */; }; + OBJ_597 /* PDFBezierPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_13 /* PDFBezierPath.swift */; }; + OBJ_598 /* PDFBezierPathVertex.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_14 /* PDFBezierPathVertex.swift */; }; + OBJ_599 /* PDFDynamicGeometryShape.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_15 /* PDFDynamicGeometryShape.swift */; }; + OBJ_600 /* PDFLineStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_16 /* PDFLineStyle.swift */; }; + OBJ_601 /* PDFLineType.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_17 /* PDFLineType.swift */; }; + OBJ_602 /* PDFGroup+Objects.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_19 /* PDFGroup+Objects.swift */; }; + OBJ_603 /* PDFGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_20 /* PDFGroup.swift */; }; + OBJ_604 /* PDFGroupContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_21 /* PDFGroupContainer.swift */; }; + OBJ_605 /* PDFMasterGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_22 /* PDFMasterGroup.swift */; }; + OBJ_606 /* PDFImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_24 /* PDFImage.swift */; }; + OBJ_607 /* PDFImageOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_25 /* PDFImageOptions.swift */; }; + OBJ_608 /* PDFImageSizeFit.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_26 /* PDFImageSizeFit.swift */; }; + OBJ_609 /* PDFContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_28 /* PDFContainer.swift */; }; + OBJ_610 /* PDFPageLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_29 /* PDFPageLayout.swift */; }; + OBJ_611 /* PDFList.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_31 /* PDFList.swift */; }; + OBJ_612 /* PDFListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_32 /* PDFListItem.swift */; }; + OBJ_613 /* PDFListItemSymbol.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_33 /* PDFListItemSymbol.swift */; }; + OBJ_614 /* PDFInfo+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_35 /* PDFInfo+Equatable.swift */; }; + OBJ_615 /* PDFInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_36 /* PDFInfo.swift */; }; + OBJ_616 /* PDFDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_37 /* PDFDocument.swift */; }; + OBJ_617 /* PDFGenerator+Generation.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_38 /* PDFGenerator+Generation.swift */; }; + OBJ_618 /* PDFGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_39 /* PDFGenerator.swift */; }; + OBJ_619 /* PDFGeneratorProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_40 /* PDFGeneratorProtocol.swift */; }; + OBJ_620 /* PDFMultiDocumentGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_41 /* PDFMultiDocumentGenerator.swift */; }; + OBJ_621 /* PDFPageFormat+Layout.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_43 /* PDFPageFormat+Layout.swift */; }; + OBJ_622 /* PDFPageFormat+SizeConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_44 /* PDFPageFormat+SizeConstants.swift */; }; + OBJ_623 /* PDFPageFormat.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_45 /* PDFPageFormat.swift */; }; + OBJ_624 /* PDFSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_47 /* PDFSection.swift */; }; + OBJ_625 /* PDFSectionColumn.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_48 /* PDFSectionColumn.swift */; }; + OBJ_626 /* PDFTableOfContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_50 /* PDFTableOfContent.swift */; }; + OBJ_627 /* NSAttributedString+PDFTableContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_53 /* NSAttributedString+PDFTableContent.swift */; }; + OBJ_628 /* Number+PDFTableContentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_54 /* Number+PDFTableContentable.swift */; }; + OBJ_629 /* PDFTableContent+ContentType.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_55 /* PDFTableContent+ContentType.swift */; }; + OBJ_630 /* PDFTableContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_56 /* PDFTableContent.swift */; }; + OBJ_631 /* PDFTableContentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_57 /* PDFTableContentable.swift */; }; + OBJ_632 /* String+PDFTableContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_58 /* String+PDFTableContent.swift */; }; + OBJ_633 /* UIImage+PDFTableContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_59 /* UIImage+PDFTableContent.swift */; }; + OBJ_634 /* PDFTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_60 /* PDFTable.swift */; }; + OBJ_635 /* PDFTableCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_61 /* PDFTableCell.swift */; }; + OBJ_636 /* PDFTableCellAlignment.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_62 /* PDFTableCellAlignment.swift */; }; + OBJ_637 /* PDFTableCellPosition.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_63 /* PDFTableCellPosition.swift */; }; + OBJ_638 /* PDFTable+CellSubscripts.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_65 /* PDFTable+CellSubscripts.swift */; }; + OBJ_639 /* PDFTable+ColumnSubscripts.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_66 /* PDFTable+ColumnSubscripts.swift */; }; + OBJ_640 /* PDFTable+RowSubscripts.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_67 /* PDFTable+RowSubscripts.swift */; }; + OBJ_641 /* PDFTable+SectionSubscripts.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_68 /* PDFTable+SectionSubscripts.swift */; }; + OBJ_642 /* PDFTableColumn.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_69 /* PDFTableColumn.swift */; }; + OBJ_643 /* PDFTableColumns.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_70 /* PDFTableColumns.swift */; }; + OBJ_644 /* PDFTableMergeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_71 /* PDFTableMergeable.swift */; }; + OBJ_645 /* PDFTableRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_72 /* PDFTableRow.swift */; }; + OBJ_646 /* PDFTableRows.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_73 /* PDFTableRows.swift */; }; + OBJ_647 /* PDFTableSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_74 /* PDFTableSection.swift */; }; + OBJ_648 /* PDFTableCellBorders.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_76 /* PDFTableCellBorders.swift */; }; + OBJ_649 /* PDFTableCellPosition+Equatable-Hashable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_77 /* PDFTableCellPosition+Equatable-Hashable.swift */; }; + OBJ_650 /* PDFTableCellStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_78 /* PDFTableCellStyle.swift */; }; + OBJ_651 /* PDFTableStyle+Defaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_79 /* PDFTableStyle+Defaults.swift */; }; + OBJ_652 /* PDFTableStyle+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_80 /* PDFTableStyle+Equatable.swift */; }; + OBJ_653 /* PDFTableStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_81 /* PDFTableStyle.swift */; }; + OBJ_654 /* PDFAttributedText.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_83 /* PDFAttributedText.swift */; }; + OBJ_655 /* PDFSimpleText+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_84 /* PDFSimpleText+Equatable.swift */; }; + OBJ_656 /* PDFSimpleText.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_85 /* PDFSimpleText.swift */; }; + OBJ_657 /* PDFText.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_86 /* PDFText.swift */; }; + OBJ_658 /* PDFTextStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_87 /* PDFTextStyle.swift */; }; + OBJ_659 /* CrossPlattformGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_89 /* CrossPlattformGraphics.swift */; }; + OBJ_660 /* PDFConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_90 /* PDFConstants.swift */; }; + OBJ_661 /* PDFCopy.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_91 /* PDFCopy.swift */; }; + OBJ_662 /* PDFDocumentObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_92 /* PDFDocumentObject.swift */; }; + OBJ_663 /* PDFError.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_93 /* PDFError.swift */; }; + OBJ_664 /* PDFRenderObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_94 /* PDFRenderObject.swift */; }; + OBJ_665 /* PDFTaggableObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_95 /* PDFTaggableObject.swift */; }; + OBJ_666 /* PDFExternalDocumentObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_98 /* PDFExternalDocumentObject.swift */; }; + OBJ_667 /* PDFExternalPageObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_99 /* PDFExternalPageObject.swift */; }; + OBJ_668 /* PDFContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_101 /* PDFContext.swift */; }; + OBJ_669 /* PDFContextGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_102 /* PDFContextGraphics.swift */; }; + OBJ_670 /* PDFGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_103 /* PDFGraphics.swift */; }; + OBJ_671 /* PDFLineObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_104 /* PDFLineObject.swift */; }; + OBJ_672 /* PDFLineSeparatorObject+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_105 /* PDFLineSeparatorObject+Equatable.swift */; }; + OBJ_673 /* PDFLineSeparatorObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_106 /* PDFLineSeparatorObject.swift */; }; + OBJ_674 /* PDFRectangleObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_107 /* PDFRectangleObject.swift */; }; + OBJ_675 /* UIColor+CloseToEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_108 /* UIColor+CloseToEqual.swift */; }; + OBJ_676 /* UIColor+Hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_109 /* UIColor+Hex.swift */; }; + OBJ_677 /* UIImage+Pixel.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_110 /* UIImage+Pixel.swift */; }; + OBJ_678 /* PDFGroupObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_112 /* PDFGroupObject.swift */; }; + OBJ_679 /* PDFImageObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_114 /* PDFImageObject.swift */; }; + OBJ_680 /* PDFImageRowObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_115 /* PDFImageRowObject.swift */; }; + OBJ_681 /* PDFColumnLayoutState.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_117 /* PDFColumnLayoutState.swift */; }; + OBJ_682 /* PDFIndentationObject+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_118 /* PDFIndentationObject+Equatable.swift */; }; + OBJ_683 /* PDFIndentationObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_119 /* PDFIndentationObject.swift */; }; + OBJ_684 /* PDFLayout+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_120 /* PDFLayout+Equatable.swift */; }; + OBJ_685 /* PDFLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_121 /* PDFLayout.swift */; }; + OBJ_686 /* PDFLayoutHeights+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_122 /* PDFLayoutHeights+Equatable.swift */; }; + OBJ_687 /* PDFLayoutHeights.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_123 /* PDFLayoutHeights.swift */; }; + OBJ_688 /* PDFLayoutIndentations+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_124 /* PDFLayoutIndentations+Equatable.swift */; }; + OBJ_689 /* PDFLayoutIndentations.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_125 /* PDFLayoutIndentations.swift */; }; + OBJ_690 /* PDFMarginObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_126 /* PDFMarginObject.swift */; }; + OBJ_691 /* PDFOffsetObject+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_127 /* PDFOffsetObject+Equatable.swift */; }; + OBJ_692 /* PDFOffsetObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_128 /* PDFOffsetObject.swift */; }; + OBJ_693 /* PDFPageBreakObject+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_129 /* PDFPageBreakObject+Equatable.swift */; }; + OBJ_694 /* PDFPageBreakObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_130 /* PDFPageBreakObject.swift */; }; + OBJ_695 /* PDFPageLayout+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_131 /* PDFPageLayout+Equatable.swift */; }; + OBJ_696 /* PDFSectionColumnContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_132 /* PDFSectionColumnContainer.swift */; }; + OBJ_697 /* PDFSpaceObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_133 /* PDFSpaceObject.swift */; }; + OBJ_698 /* PDFListObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_135 /* PDFListObject.swift */; }; + OBJ_699 /* CGPoint+Math.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_137 /* CGPoint+Math.swift */; }; + OBJ_700 /* CGPoint+Null.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_138 /* CGPoint+Null.swift */; }; + OBJ_701 /* PDFGenerator+Debug.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_139 /* PDFGenerator+Debug.swift */; }; + OBJ_702 /* PDFGenerator+Layout.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_140 /* PDFGenerator+Layout.swift */; }; + OBJ_703 /* Int+RomanNumerals.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_142 /* Int+RomanNumerals.swift */; }; + OBJ_704 /* PDFPagination+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_143 /* PDFPagination+Equatable.swift */; }; + OBJ_705 /* PDFPagination.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_144 /* PDFPagination.swift */; }; + OBJ_706 /* PDFPaginationClosure.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_145 /* PDFPaginationClosure.swift */; }; + OBJ_707 /* PDFPaginationStyle+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_146 /* PDFPaginationStyle+Equatable.swift */; }; + OBJ_708 /* PDFPaginationStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_147 /* PDFPaginationStyle.swift */; }; + OBJ_709 /* PDFColumnWrapSectionObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_149 /* PDFColumnWrapSectionObject.swift */; }; + OBJ_710 /* PDFSectionColumnObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_150 /* PDFSectionColumnObject.swift */; }; + OBJ_711 /* PDFSectionObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_151 /* PDFSectionObject.swift */; }; + OBJ_712 /* PDFTableOfContentObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_153 /* PDFTableOfContentObject.swift */; }; + OBJ_713 /* PDFTableCalculatedCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_155 /* PDFTableCalculatedCell.swift */; }; + OBJ_714 /* PDFTableMergeUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_156 /* PDFTableMergeUtil.swift */; }; + OBJ_715 /* PDFTableNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_157 /* PDFTableNode.swift */; }; + OBJ_716 /* PDFTableObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_158 /* PDFTableObject.swift */; }; + OBJ_717 /* PDFTableValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_159 /* PDFTableValidator.swift */; }; + OBJ_718 /* PDFAttributedTextObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_161 /* PDFAttributedTextObject.swift */; }; + OBJ_719 /* PDFFontObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_162 /* PDFFontObject.swift */; }; + OBJ_720 /* PDFTextColorObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_163 /* PDFTextColorObject.swift */; }; + OBJ_721 /* PDFAttributableObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_166 /* PDFAttributableObject.swift */; }; + OBJ_722 /* PDFObjectAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_167 /* PDFObjectAttribute.swift */; }; + OBJ_723 /* CustomStringConvertible+AutoDescribing.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_168 /* CustomStringConvertible+AutoDescribing.swift */; }; + OBJ_724 /* FileManager+TemporaryFiles.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_169 /* FileManager+TemporaryFiles.swift */; }; + OBJ_725 /* PDFCalculations.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_170 /* PDFCalculations.swift */; }; + OBJ_726 /* PDFLocatedRenderObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_171 /* PDFLocatedRenderObject.swift */; }; + OBJ_727 /* PDFSlicedObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_172 /* PDFSlicedObject.swift */; }; + OBJ_728 /* Stack.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_173 /* Stack.swift */; }; + OBJ_729 /* WeakRef.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_174 /* WeakRef.swift */; }; + OBJ_736 /* ExternalDocumentTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_177 /* ExternalDocumentTests.swift */; }; + OBJ_738 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Nimble::Nimble::Product" /* Nimble.framework */; }; + OBJ_739 /* CwlPosixPreconditionTesting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlPosixPreconditionTesting::Product" /* CwlPosixPreconditionTesting.framework */; }; + OBJ_740 /* CwlPreconditionTesting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlPreconditionTesting::Product" /* CwlPreconditionTesting.framework */; }; + OBJ_741 /* CwlCatchException.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchException::Product" /* CwlCatchException.framework */; }; + OBJ_742 /* CwlCatchExceptionSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchExceptionSupport::Product" /* CwlCatchExceptionSupport.framework */; }; + OBJ_743 /* CwlMachBadInstructionHandler.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlMachBadInstructionHandler::Product" /* CwlMachBadInstructionHandler.framework */; }; + OBJ_744 /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Quick::Quick::Product" /* Quick.framework */; }; + OBJ_745 /* QuickObjCRuntime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Quick::QuickObjCRuntime::Product" /* QuickObjCRuntime.framework */; }; + OBJ_746 /* TPPDF.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "TPPDF::TPPDF::Product" /* TPPDF.framework */; }; + OBJ_761 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_6 /* Package.swift */; }; + OBJ_773 /* PDFTableRowSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_182 /* PDFTableRowSpec.swift */; }; + OBJ_774 /* PDFTable_RowSubscriptsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_183 /* PDFTable_RowSubscriptsSpec.swift */; }; + OBJ_775 /* PDFGraphics_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_185 /* PDFGraphics_Spec.swift */; }; + OBJ_776 /* PDFLineSeparatorObject+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_186 /* PDFLineSeparatorObject+Equatable_Spec.swift */; }; + OBJ_777 /* PDFLineSeparatorObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_187 /* PDFLineSeparatorObject_Spec.swift */; }; + OBJ_778 /* PDFLineStyle_Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_188 /* PDFLineStyle_Equatable_Spec.swift */; }; + OBJ_779 /* PDFLineStyle_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_189 /* PDFLineStyle_Spec.swift */; }; + OBJ_780 /* PDFLineType_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_190 /* PDFLineType_Spec.swift */; }; + OBJ_781 /* UIColor+Hex_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_191 /* UIColor+Hex_Spec.swift */; }; + OBJ_782 /* UIImage+CloseToEqual_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_192 /* UIImage+CloseToEqual_Spec.swift */; }; + OBJ_783 /* UIImage+Pixel_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_193 /* UIImage+Pixel_Spec.swift */; }; + OBJ_784 /* PDFImageSizeFit_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_195 /* PDFImageSizeFit_Spec.swift */; }; + OBJ_785 /* PDFImage_Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_196 /* PDFImage_Equatable_Spec.swift */; }; + OBJ_786 /* PDFImage_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_197 /* PDFImage_Spec.swift */; }; + OBJ_787 /* PDFTableMergeUtil_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_200 /* PDFTableMergeUtil_Spec.swift */; }; + OBJ_788 /* PDFTableObjectSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_201 /* PDFTableObjectSpec.swift */; }; + OBJ_789 /* PDFContainer_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_203 /* PDFContainer_Spec.swift */; }; + OBJ_790 /* PDFIndentationObject_Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_204 /* PDFIndentationObject_Equatable_Spec.swift */; }; + OBJ_791 /* PDFIndentationObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_205 /* PDFIndentationObject_Spec.swift */; }; + OBJ_792 /* PDFLayout+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_206 /* PDFLayout+Equatable_Spec.swift */; }; + OBJ_793 /* PDFLayoutHeights+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_207 /* PDFLayoutHeights+Equatable_Spec.swift */; }; + OBJ_794 /* PDFLayoutHeights_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_208 /* PDFLayoutHeights_Spec.swift */; }; + OBJ_795 /* PDFLayoutIndentations+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_209 /* PDFLayoutIndentations+Equatable_Spec.swift */; }; + OBJ_796 /* PDFLayoutIndentations_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_210 /* PDFLayoutIndentations_Spec.swift */; }; + OBJ_797 /* PDFLayout_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_211 /* PDFLayout_Spec.swift */; }; + OBJ_798 /* PDFOffsetObject+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_212 /* PDFOffsetObject+Equatable_Spec.swift */; }; + OBJ_799 /* PDFOffsetObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_213 /* PDFOffsetObject_Spec.swift */; }; + OBJ_800 /* PDFPageBreakObject+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_214 /* PDFPageBreakObject+Equatable_Spec.swift */; }; + OBJ_801 /* PDFPageBreakObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_215 /* PDFPageBreakObject_Spec.swift */; }; + OBJ_802 /* PDFPageLayout+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_216 /* PDFPageLayout+Equatable_Spec.swift */; }; + OBJ_803 /* PDFPageLayout_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_217 /* PDFPageLayout_Spec.swift */; }; + OBJ_804 /* PDFSpaceObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_218 /* PDFSpaceObject_Spec.swift */; }; + OBJ_805 /* PDFList+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_220 /* PDFList+Equatable_Spec.swift */; }; + OBJ_806 /* PDFListItemObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_221 /* PDFListItemObject_Spec.swift */; }; + OBJ_807 /* PDFListItemSymbol_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_222 /* PDFListItemSymbol_Spec.swift */; }; + OBJ_808 /* PDFListItem_Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_223 /* PDFListItem_Equatable_Spec.swift */; }; + OBJ_809 /* PDFListItem_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_224 /* PDFListItem_Spec.swift */; }; + OBJ_810 /* PDFList_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_225 /* PDFList_Spec.swift */; }; + OBJ_811 /* CGPoint+Math_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_227 /* CGPoint+Math_Spec.swift */; }; + OBJ_812 /* PDFInfo+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_229 /* PDFInfo+Equatable_Spec.swift */; }; + OBJ_813 /* PDFInfo_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_230 /* PDFInfo_Spec.swift */; }; + OBJ_814 /* PDFDocument+Objects_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_231 /* PDFDocument+Objects_Spec.swift */; }; + OBJ_815 /* PDFDocument_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_232 /* PDFDocument_Spec.swift */; }; + OBJ_816 /* PDFGenerator+Debug_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_233 /* PDFGenerator+Debug_Spec.swift */; }; + OBJ_817 /* PDFGenerator+Generation_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_234 /* PDFGenerator+Generation_Spec.swift */; }; + OBJ_818 /* PDFGenerator+Layout_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_235 /* PDFGenerator+Layout_Spec.swift */; }; + OBJ_819 /* PDFGenerator_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_236 /* PDFGenerator_Spec.swift */; }; + OBJ_820 /* PDFPageFormat+Layout_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_238 /* PDFPageFormat+Layout_Spec.swift */; }; + OBJ_821 /* PDFPageFormat+SizeConstants_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_239 /* PDFPageFormat+SizeConstants_Spec.swift */; }; + OBJ_822 /* PDFPageFormat_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_240 /* PDFPageFormat_Spec.swift */; }; + OBJ_823 /* Int+RomanNumerals_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_242 /* Int+RomanNumerals_Spec.swift */; }; + OBJ_824 /* PDFPaginationStyle+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_243 /* PDFPaginationStyle+Equatable_Spec.swift */; }; + OBJ_825 /* PDFPaginationStyle_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_244 /* PDFPaginationStyle_Spec.swift */; }; + OBJ_826 /* PDFPagination_Closure_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_245 /* PDFPagination_Closure_Spec.swift */; }; + OBJ_827 /* PDFPagination_Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_246 /* PDFPagination_Equatable_Spec.swift */; }; + OBJ_828 /* PDFPagination_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_247 /* PDFPagination_Spec.swift */; }; + OBJ_829 /* PDFTable+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_249 /* PDFTable+Equatable_Spec.swift */; }; + OBJ_830 /* PDFTableCell+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_250 /* PDFTableCell+Equatable_Spec.swift */; }; + OBJ_831 /* PDFTableCellAlignment_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_251 /* PDFTableCellAlignment_Spec.swift */; }; + OBJ_832 /* PDFTableCellBorders+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_252 /* PDFTableCellBorders+Equatable_Spec.swift */; }; + OBJ_833 /* PDFTableCellBorders_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_253 /* PDFTableCellBorders_Spec.swift */; }; + OBJ_834 /* PDFTableCellPosition+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_254 /* PDFTableCellPosition+Equatable_Spec.swift */; }; + OBJ_835 /* PDFTableCellPosition_Hashable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_255 /* PDFTableCellPosition_Hashable_Spec.swift */; }; + OBJ_836 /* PDFTableCellPosition_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_256 /* PDFTableCellPosition_Spec.swift */; }; + OBJ_837 /* PDFTableCellStyle+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_257 /* PDFTableCellStyle+Equatable_Spec.swift */; }; + OBJ_838 /* PDFTableCellStyle_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_258 /* PDFTableCellStyle_Spec.swift */; }; + OBJ_839 /* PDFTableCell_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_259 /* PDFTableCell_Spec.swift */; }; + OBJ_840 /* PDFTableContent+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_260 /* PDFTableContent+Equatable_Spec.swift */; }; + OBJ_841 /* PDFTableContent_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_261 /* PDFTableContent_Spec.swift */; }; + OBJ_842 /* PDFTableStyle+Defaults_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_262 /* PDFTableStyle+Defaults_Spec.swift */; }; + OBJ_843 /* PDFTableStyle+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_263 /* PDFTableStyle+Equatable_Spec.swift */; }; + OBJ_844 /* PDFTableStyle_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_264 /* PDFTableStyle_Spec.swift */; }; + OBJ_845 /* PDFTableValidator_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_265 /* PDFTableValidator_Spec.swift */; }; + OBJ_846 /* PDFTable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_266 /* PDFTable_Spec.swift */; }; + OBJ_847 /* PDFAttributedText+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_268 /* PDFAttributedText+Equatable_Spec.swift */; }; + OBJ_848 /* PDFAttributedTextObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_269 /* PDFAttributedTextObject_Spec.swift */; }; + OBJ_849 /* PDFAttributedText_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_270 /* PDFAttributedText_Spec.swift */; }; + OBJ_850 /* PDFFontObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_271 /* PDFFontObject_Spec.swift */; }; + OBJ_851 /* PDFSimpleText+Equatable_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_272 /* PDFSimpleText+Equatable_Spec.swift */; }; + OBJ_852 /* PDFSimpleText_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_273 /* PDFSimpleText_Spec.swift */; }; + OBJ_853 /* PDFTextColorObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_274 /* PDFTextColorObject_Spec.swift */; }; + OBJ_854 /* PDFText_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_275 /* PDFText_Spec.swift */; }; + OBJ_855 /* PDFCalculations_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_277 /* PDFCalculations_Spec.swift */; }; + OBJ_856 /* PDFError_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_278 /* PDFError_Spec.swift */; }; + OBJ_857 /* PDFObject_Spec.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_279 /* PDFObject_Spec.swift */; }; + OBJ_859 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Nimble::Nimble::Product" /* Nimble.framework */; }; + OBJ_860 /* CwlPosixPreconditionTesting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlPosixPreconditionTesting::Product" /* CwlPosixPreconditionTesting.framework */; }; + OBJ_861 /* CwlPreconditionTesting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlPreconditionTesting::Product" /* CwlPreconditionTesting.framework */; }; + OBJ_862 /* CwlCatchException.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchException::Product" /* CwlCatchException.framework */; }; + OBJ_863 /* CwlCatchExceptionSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlCatchException::CwlCatchExceptionSupport::Product" /* CwlCatchExceptionSupport.framework */; }; + OBJ_864 /* CwlMachBadInstructionHandler.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "CwlPreconditionTesting::CwlMachBadInstructionHandler::Product" /* CwlMachBadInstructionHandler.framework */; }; + OBJ_865 /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Quick::Quick::Product" /* Quick.framework */; }; + OBJ_866 /* QuickObjCRuntime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "Quick::QuickObjCRuntime::Product" /* QuickObjCRuntime.framework */; }; + OBJ_867 /* TPPDF.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "TPPDF::TPPDF::Product" /* TPPDF.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - D4B7E9E825A1BB24007D09C7 /* PBXContainerItemProxy */ = { + D48008A025A200A000CFB266 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = OBJ_1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = "TPPDF::TPPDFIntegrationTests"; + remoteInfo = TPPDFIntegrationTests; + }; + D48008A125A200A000CFB266 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = OBJ_1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = "TPPDF::TPPDFTests"; + remoteInfo = TPPDFTests; + }; + D48008A225A200A100CFB266 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; remoteGlobalIDString = "Nimble::Nimble"; remoteInfo = Nimble; }; - D4B7E9E925A1BB24007D09C7 /* PBXContainerItemProxy */ = { + D48008A325A200A100CFB266 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; remoteGlobalIDString = "CwlPreconditionTesting::CwlPosixPreconditionTesting"; remoteInfo = CwlPosixPreconditionTesting; }; - D4B7E9EA25A1BB24007D09C7 /* PBXContainerItemProxy */ = { + D48008A425A200A100CFB266 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; remoteGlobalIDString = "CwlPreconditionTesting::CwlPreconditionTesting"; remoteInfo = CwlPreconditionTesting; }; - D4B7E9EB25A1BB24007D09C7 /* PBXContainerItemProxy */ = { + D48008A525A200A100CFB266 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; remoteGlobalIDString = "CwlCatchException::CwlCatchException"; remoteInfo = CwlCatchException; }; - D4B7E9EC25A1BB24007D09C7 /* PBXContainerItemProxy */ = { + D48008A625A200A100CFB266 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; remoteGlobalIDString = "CwlCatchException::CwlCatchExceptionSupport"; remoteInfo = CwlCatchExceptionSupport; }; - D4B7E9ED25A1BB24007D09C7 /* PBXContainerItemProxy */ = { + D48008A725A200A100CFB266 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; remoteGlobalIDString = "CwlCatchException::CwlCatchExceptionSupport"; remoteInfo = CwlCatchExceptionSupport; }; - D4B7E9EE25A1BB24007D09C7 /* PBXContainerItemProxy */ = { + D48008A825A200A100CFB266 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; remoteGlobalIDString = "CwlPreconditionTesting::CwlMachBadInstructionHandler"; remoteInfo = CwlMachBadInstructionHandler; }; - D4B7E9EF25A1BB24007D09C7 /* PBXContainerItemProxy */ = { + D48008A925A200A100CFB266 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; remoteGlobalIDString = "CwlCatchException::CwlCatchException"; remoteInfo = CwlCatchException; }; - D4B7E9F025A1BB24007D09C7 /* PBXContainerItemProxy */ = { + D48008AA25A200A100CFB266 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; remoteGlobalIDString = "CwlCatchException::CwlCatchExceptionSupport"; remoteInfo = CwlCatchExceptionSupport; }; - D4B7E9F125A1BB24007D09C7 /* PBXContainerItemProxy */ = { + D48008AB25A200A100CFB266 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; remoteGlobalIDString = "CwlPreconditionTesting::CwlMachBadInstructionHandler"; remoteInfo = CwlMachBadInstructionHandler; }; - D4B7E9F225A1BB24007D09C7 /* PBXContainerItemProxy */ = { + D48008AC25A200A100CFB266 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; remoteGlobalIDString = "CwlPreconditionTesting::CwlPosixPreconditionTesting"; remoteInfo = CwlPosixPreconditionTesting; }; - D4B7E9F325A1BB24007D09C7 /* PBXContainerItemProxy */ = { + D48008AD25A200A100CFB266 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; remoteGlobalIDString = "CwlPreconditionTesting::CwlPreconditionTesting"; remoteInfo = CwlPreconditionTesting; }; - D4B7E9F425A1BB24007D09C7 /* PBXContainerItemProxy */ = { + D48008AE25A200A100CFB266 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; remoteGlobalIDString = "CwlCatchException::CwlCatchException"; remoteInfo = CwlCatchException; }; - D4B7E9F525A1BB24007D09C7 /* PBXContainerItemProxy */ = { + D48008AF25A200A100CFB266 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; remoteGlobalIDString = "CwlCatchException::CwlCatchExceptionSupport"; remoteInfo = CwlCatchExceptionSupport; }; - D4B7E9F625A1BB24007D09C7 /* PBXContainerItemProxy */ = { + D48008B025A200A100CFB266 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; remoteGlobalIDString = "CwlPreconditionTesting::CwlMachBadInstructionHandler"; remoteInfo = CwlMachBadInstructionHandler; }; - D4B7E9F725A1BB24007D09C7 /* PBXContainerItemProxy */ = { + D48008B125A200A100CFB266 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; remoteGlobalIDString = "Quick::Quick"; remoteInfo = Quick; }; - D4B7E9F825A1BB24007D09C7 /* PBXContainerItemProxy */ = { + D48008B225A200A100CFB266 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; remoteGlobalIDString = "Quick::QuickObjCRuntime"; remoteInfo = QuickObjCRuntime; }; - D4B7E9F925A1BB24007D09C7 /* PBXContainerItemProxy */ = { + D48008B325A200A100CFB266 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; remoteGlobalIDString = "Quick::QuickObjCRuntime"; remoteInfo = QuickObjCRuntime; }; - D4B7E9FA25A1BB24007D09C7 /* PBXContainerItemProxy */ = { + D48008B425A200A100CFB266 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; remoteGlobalIDString = "TPPDF::TPPDF"; remoteInfo = TPPDF; }; - D4B7E9FB25A1BB24007D09C7 /* PBXContainerItemProxy */ = { + D48008B525A200A100CFB266 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = OBJ_1 /* Project object */; proxyType = 1; - remoteGlobalIDString = "TPPDF::TPPDFTests"; - remoteInfo = TPPDFTests; + remoteGlobalIDString = "Nimble::Nimble"; + remoteInfo = Nimble; + }; + D48008B625A200A100CFB266 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = OBJ_1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = "CwlPreconditionTesting::CwlPosixPreconditionTesting"; + remoteInfo = CwlPosixPreconditionTesting; + }; + D48008B725A200A100CFB266 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = OBJ_1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = "CwlPreconditionTesting::CwlPreconditionTesting"; + remoteInfo = CwlPreconditionTesting; + }; + D48008B825A200A100CFB266 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = OBJ_1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = "CwlCatchException::CwlCatchException"; + remoteInfo = CwlCatchException; + }; + D48008B925A200A100CFB266 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = OBJ_1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = "CwlCatchException::CwlCatchExceptionSupport"; + remoteInfo = CwlCatchExceptionSupport; + }; + D48008BA25A200A100CFB266 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = OBJ_1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = "CwlPreconditionTesting::CwlMachBadInstructionHandler"; + remoteInfo = CwlMachBadInstructionHandler; + }; + D48008BB25A200A100CFB266 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = OBJ_1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = "Quick::Quick"; + remoteInfo = Quick; + }; + D48008BC25A200A100CFB266 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = OBJ_1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = "Quick::QuickObjCRuntime"; + remoteInfo = QuickObjCRuntime; + }; + D48008BD25A200A100CFB266 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = OBJ_1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = "TPPDF::TPPDF"; + remoteInfo = TPPDF; }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ - D4B7EA2025A1BB67007D09C7 /* Embed Frameworks */ = { + D48008C225A200AD00CFB266 /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; dstSubfolderSpec = 10; files = ( - D4B7EA1F25A1BB67007D09C7 /* XCTest.framework in Embed Frameworks */, + D48008C125A200AD00CFB266 /* XCTest.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; + D48009DF25A2071900CFB266 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + D4800A0125A2072900CFB266 /* 50-pages.pdf in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D4800A3325A2073100CFB266 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + D4800A3425A2073200CFB266 /* sample.pdf in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ @@ -519,293 +624,280 @@ "CwlPreconditionTesting::CwlMachBadInstructionHandler::Product" /* CwlMachBadInstructionHandler.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CwlMachBadInstructionHandler.framework; sourceTree = BUILT_PRODUCTS_DIR; }; "CwlPreconditionTesting::CwlPosixPreconditionTesting::Product" /* CwlPosixPreconditionTesting.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CwlPosixPreconditionTesting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; "CwlPreconditionTesting::CwlPreconditionTesting::Product" /* CwlPreconditionTesting.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CwlPreconditionTesting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D4B7EA1D25A1BB67007D09C7 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/MacOSX.platform/Developer/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; - D4B7EA4025A1C956007D09C7 /* PDFContext.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFContext.swift; sourceTree = ""; }; + D48008BF25A200AD00CFB266 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/MacOSX.platform/Developer/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; + D480095625A202DD00CFB266 /* 50-pages.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = "50-pages.pdf"; sourceTree = ""; }; + D480099925A202F200CFB266 /* sample.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = sample.pdf; sourceTree = ""; }; + D48009AB25A204C700CFB266 /* Bundle+Module.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Bundle+Module.swift"; sourceTree = ""; }; "Nimble::Nimble::Product" /* Nimble.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; OBJ_10 /* PDFExternalDocument.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFExternalDocument.swift; sourceTree = ""; }; - OBJ_101 /* PDFContextGraphics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFContextGraphics.swift; sourceTree = ""; }; - OBJ_102 /* PDFGraphics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGraphics.swift; sourceTree = ""; }; - OBJ_103 /* PDFLineObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineObject.swift; sourceTree = ""; }; - OBJ_104 /* PDFLineSeparatorObject+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLineSeparatorObject+Equatable.swift"; sourceTree = ""; }; - OBJ_105 /* PDFLineSeparatorObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineSeparatorObject.swift; sourceTree = ""; }; - OBJ_106 /* PDFRectangleObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFRectangleObject.swift; sourceTree = ""; }; - OBJ_107 /* UIColor+CloseToEqual.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+CloseToEqual.swift"; sourceTree = ""; }; - OBJ_108 /* UIColor+Hex.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+Hex.swift"; sourceTree = ""; }; - OBJ_109 /* UIImage+Pixel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+Pixel.swift"; sourceTree = ""; }; - OBJ_111 /* PDFGroupObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGroupObject.swift; sourceTree = ""; }; - OBJ_113 /* PDFImageObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImageObject.swift; sourceTree = ""; }; - OBJ_114 /* PDFImageRowObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImageRowObject.swift; sourceTree = ""; }; - OBJ_116 /* PDFColumnLayoutState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFColumnLayoutState.swift; sourceTree = ""; }; - OBJ_117 /* PDFIndentationObject+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFIndentationObject+Equatable.swift"; sourceTree = ""; }; - OBJ_118 /* PDFIndentationObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFIndentationObject.swift; sourceTree = ""; }; - OBJ_119 /* PDFLayout+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLayout+Equatable.swift"; sourceTree = ""; }; + OBJ_101 /* PDFContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFContext.swift; sourceTree = ""; }; + OBJ_102 /* PDFContextGraphics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFContextGraphics.swift; sourceTree = ""; }; + OBJ_103 /* PDFGraphics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGraphics.swift; sourceTree = ""; }; + OBJ_104 /* PDFLineObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineObject.swift; sourceTree = ""; }; + OBJ_105 /* PDFLineSeparatorObject+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLineSeparatorObject+Equatable.swift"; sourceTree = ""; }; + OBJ_106 /* PDFLineSeparatorObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineSeparatorObject.swift; sourceTree = ""; }; + OBJ_107 /* PDFRectangleObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFRectangleObject.swift; sourceTree = ""; }; + OBJ_108 /* UIColor+CloseToEqual.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+CloseToEqual.swift"; sourceTree = ""; }; + OBJ_109 /* UIColor+Hex.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+Hex.swift"; sourceTree = ""; }; + OBJ_110 /* UIImage+Pixel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+Pixel.swift"; sourceTree = ""; }; + OBJ_112 /* PDFGroupObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGroupObject.swift; sourceTree = ""; }; + OBJ_114 /* PDFImageObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImageObject.swift; sourceTree = ""; }; + OBJ_115 /* PDFImageRowObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImageRowObject.swift; sourceTree = ""; }; + OBJ_117 /* PDFColumnLayoutState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFColumnLayoutState.swift; sourceTree = ""; }; + OBJ_118 /* PDFIndentationObject+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFIndentationObject+Equatable.swift"; sourceTree = ""; }; + OBJ_119 /* PDFIndentationObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFIndentationObject.swift; sourceTree = ""; }; OBJ_12 /* PDFBezierPath+Copying.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFBezierPath+Copying.swift"; sourceTree = ""; }; - OBJ_120 /* PDFLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLayout.swift; sourceTree = ""; }; - OBJ_121 /* PDFLayoutHeights+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLayoutHeights+Equatable.swift"; sourceTree = ""; }; - OBJ_122 /* PDFLayoutHeights.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLayoutHeights.swift; sourceTree = ""; }; - OBJ_123 /* PDFLayoutIndentations+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLayoutIndentations+Equatable.swift"; sourceTree = ""; }; - OBJ_124 /* PDFLayoutIndentations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLayoutIndentations.swift; sourceTree = ""; }; - OBJ_125 /* PDFMarginObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFMarginObject.swift; sourceTree = ""; }; - OBJ_126 /* PDFOffsetObject+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFOffsetObject+Equatable.swift"; sourceTree = ""; }; - OBJ_127 /* PDFOffsetObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFOffsetObject.swift; sourceTree = ""; }; - OBJ_128 /* PDFPageBreakObject+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageBreakObject+Equatable.swift"; sourceTree = ""; }; - OBJ_129 /* PDFPageBreakObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPageBreakObject.swift; sourceTree = ""; }; + OBJ_120 /* PDFLayout+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLayout+Equatable.swift"; sourceTree = ""; }; + OBJ_121 /* PDFLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLayout.swift; sourceTree = ""; }; + OBJ_122 /* PDFLayoutHeights+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLayoutHeights+Equatable.swift"; sourceTree = ""; }; + OBJ_123 /* PDFLayoutHeights.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLayoutHeights.swift; sourceTree = ""; }; + OBJ_124 /* PDFLayoutIndentations+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLayoutIndentations+Equatable.swift"; sourceTree = ""; }; + OBJ_125 /* PDFLayoutIndentations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLayoutIndentations.swift; sourceTree = ""; }; + OBJ_126 /* PDFMarginObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFMarginObject.swift; sourceTree = ""; }; + OBJ_127 /* PDFOffsetObject+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFOffsetObject+Equatable.swift"; sourceTree = ""; }; + OBJ_128 /* PDFOffsetObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFOffsetObject.swift; sourceTree = ""; }; + OBJ_129 /* PDFPageBreakObject+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageBreakObject+Equatable.swift"; sourceTree = ""; }; OBJ_13 /* PDFBezierPath.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFBezierPath.swift; sourceTree = ""; }; - OBJ_130 /* PDFPageLayout+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageLayout+Equatable.swift"; sourceTree = ""; }; - OBJ_131 /* PDFSectionColumnContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSectionColumnContainer.swift; sourceTree = ""; }; - OBJ_132 /* PDFSpaceObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSpaceObject.swift; sourceTree = ""; }; - OBJ_134 /* PDFListObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListObject.swift; sourceTree = ""; }; - OBJ_136 /* CGPoint+Math.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CGPoint+Math.swift"; sourceTree = ""; }; - OBJ_137 /* CGPoint+Null.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CGPoint+Null.swift"; sourceTree = ""; }; - OBJ_138 /* PDFGenerator+Debug.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Debug.swift"; sourceTree = ""; }; - OBJ_139 /* PDFGenerator+Layout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Layout.swift"; sourceTree = ""; }; + OBJ_130 /* PDFPageBreakObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPageBreakObject.swift; sourceTree = ""; }; + OBJ_131 /* PDFPageLayout+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageLayout+Equatable.swift"; sourceTree = ""; }; + OBJ_132 /* PDFSectionColumnContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSectionColumnContainer.swift; sourceTree = ""; }; + OBJ_133 /* PDFSpaceObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSpaceObject.swift; sourceTree = ""; }; + OBJ_135 /* PDFListObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListObject.swift; sourceTree = ""; }; + OBJ_137 /* CGPoint+Math.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CGPoint+Math.swift"; sourceTree = ""; }; + OBJ_138 /* CGPoint+Null.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CGPoint+Null.swift"; sourceTree = ""; }; + OBJ_139 /* PDFGenerator+Debug.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Debug.swift"; sourceTree = ""; }; OBJ_14 /* PDFBezierPathVertex.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFBezierPathVertex.swift; sourceTree = ""; }; - OBJ_141 /* Int+RomanNumerals.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Int+RomanNumerals.swift"; sourceTree = ""; }; - OBJ_142 /* PDFPagination+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPagination+Equatable.swift"; sourceTree = ""; }; - OBJ_143 /* PDFPagination.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPagination.swift; sourceTree = ""; }; - OBJ_144 /* PDFPaginationClosure.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPaginationClosure.swift; sourceTree = ""; }; - OBJ_145 /* PDFPaginationStyle+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPaginationStyle+Equatable.swift"; sourceTree = ""; }; - OBJ_146 /* PDFPaginationStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPaginationStyle.swift; sourceTree = ""; }; - OBJ_148 /* PDFColumnWrapSectionObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFColumnWrapSectionObject.swift; sourceTree = ""; }; - OBJ_149 /* PDFSectionColumnObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSectionColumnObject.swift; sourceTree = ""; }; + OBJ_140 /* PDFGenerator+Layout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Layout.swift"; sourceTree = ""; }; + OBJ_142 /* Int+RomanNumerals.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Int+RomanNumerals.swift"; sourceTree = ""; }; + OBJ_143 /* PDFPagination+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPagination+Equatable.swift"; sourceTree = ""; }; + OBJ_144 /* PDFPagination.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPagination.swift; sourceTree = ""; }; + OBJ_145 /* PDFPaginationClosure.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPaginationClosure.swift; sourceTree = ""; }; + OBJ_146 /* PDFPaginationStyle+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPaginationStyle+Equatable.swift"; sourceTree = ""; }; + OBJ_147 /* PDFPaginationStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPaginationStyle.swift; sourceTree = ""; }; + OBJ_149 /* PDFColumnWrapSectionObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFColumnWrapSectionObject.swift; sourceTree = ""; }; OBJ_15 /* PDFDynamicGeometryShape.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFDynamicGeometryShape.swift; sourceTree = ""; }; - OBJ_150 /* PDFSectionObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSectionObject.swift; sourceTree = ""; }; - OBJ_152 /* PDFTableOfContentObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableOfContentObject.swift; sourceTree = ""; }; - OBJ_154 /* PDFTableCalculatedCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCalculatedCell.swift; sourceTree = ""; }; - OBJ_155 /* PDFTableMergeUtil.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableMergeUtil.swift; sourceTree = ""; }; - OBJ_156 /* PDFTableNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableNode.swift; sourceTree = ""; }; - OBJ_157 /* PDFTableObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableObject.swift; sourceTree = ""; }; - OBJ_158 /* PDFTableValidator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableValidator.swift; sourceTree = ""; }; + OBJ_150 /* PDFSectionColumnObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSectionColumnObject.swift; sourceTree = ""; }; + OBJ_151 /* PDFSectionObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSectionObject.swift; sourceTree = ""; }; + OBJ_153 /* PDFTableOfContentObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableOfContentObject.swift; sourceTree = ""; }; + OBJ_155 /* PDFTableCalculatedCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCalculatedCell.swift; sourceTree = ""; }; + OBJ_156 /* PDFTableMergeUtil.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableMergeUtil.swift; sourceTree = ""; }; + OBJ_157 /* PDFTableNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableNode.swift; sourceTree = ""; }; + OBJ_158 /* PDFTableObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableObject.swift; sourceTree = ""; }; + OBJ_159 /* PDFTableValidator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableValidator.swift; sourceTree = ""; }; OBJ_16 /* PDFLineStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineStyle.swift; sourceTree = ""; }; - OBJ_160 /* PDFAttributedTextObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFAttributedTextObject.swift; sourceTree = ""; }; - OBJ_161 /* PDFFontObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFFontObject.swift; sourceTree = ""; }; - OBJ_162 /* PDFTextColorObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTextColorObject.swift; sourceTree = ""; }; - OBJ_165 /* PDFAttributableObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFAttributableObject.swift; sourceTree = ""; }; - OBJ_166 /* PDFObjectAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFObjectAttribute.swift; sourceTree = ""; }; - OBJ_167 /* CustomStringConvertible+AutoDescribing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CustomStringConvertible+AutoDescribing.swift"; sourceTree = ""; }; - OBJ_168 /* FileManager+TemporaryFiles.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FileManager+TemporaryFiles.swift"; sourceTree = ""; }; - OBJ_169 /* PDFCalculations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFCalculations.swift; sourceTree = ""; }; + OBJ_161 /* PDFAttributedTextObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFAttributedTextObject.swift; sourceTree = ""; }; + OBJ_162 /* PDFFontObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFFontObject.swift; sourceTree = ""; }; + OBJ_163 /* PDFTextColorObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTextColorObject.swift; sourceTree = ""; }; + OBJ_166 /* PDFAttributableObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFAttributableObject.swift; sourceTree = ""; }; + OBJ_167 /* PDFObjectAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFObjectAttribute.swift; sourceTree = ""; }; + OBJ_168 /* CustomStringConvertible+AutoDescribing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CustomStringConvertible+AutoDescribing.swift"; sourceTree = ""; }; + OBJ_169 /* FileManager+TemporaryFiles.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FileManager+TemporaryFiles.swift"; sourceTree = ""; }; OBJ_17 /* PDFLineType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineType.swift; sourceTree = ""; }; - OBJ_170 /* PDFLocatedRenderObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLocatedRenderObject.swift; sourceTree = ""; }; - OBJ_171 /* PDFSlicedObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSlicedObject.swift; sourceTree = ""; }; - OBJ_172 /* Stack.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Stack.swift; sourceTree = ""; }; - OBJ_173 /* WeakRef.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WeakRef.swift; sourceTree = ""; }; - OBJ_179 /* PDFTableRowSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableRowSpec.swift; sourceTree = ""; }; - OBJ_180 /* PDFTable_RowSubscriptsSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTable_RowSubscriptsSpec.swift; sourceTree = ""; }; - OBJ_182 /* PDFGraphics_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGraphics_Spec.swift; sourceTree = ""; }; - OBJ_183 /* PDFLineSeparatorObject+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLineSeparatorObject+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_184 /* PDFLineSeparatorObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineSeparatorObject_Spec.swift; sourceTree = ""; }; - OBJ_185 /* PDFLineStyle_Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineStyle_Equatable_Spec.swift; sourceTree = ""; }; - OBJ_186 /* PDFLineStyle_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineStyle_Spec.swift; sourceTree = ""; }; - OBJ_187 /* PDFLineType_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineType_Spec.swift; sourceTree = ""; }; - OBJ_188 /* UIColor+Hex_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+Hex_Spec.swift"; sourceTree = ""; }; - OBJ_189 /* UIImage+CloseToEqual_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+CloseToEqual_Spec.swift"; sourceTree = ""; }; + OBJ_170 /* PDFCalculations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFCalculations.swift; sourceTree = ""; }; + OBJ_171 /* PDFLocatedRenderObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLocatedRenderObject.swift; sourceTree = ""; }; + OBJ_172 /* PDFSlicedObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSlicedObject.swift; sourceTree = ""; }; + OBJ_173 /* Stack.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Stack.swift; sourceTree = ""; }; + OBJ_174 /* WeakRef.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WeakRef.swift; sourceTree = ""; }; + OBJ_177 /* ExternalDocumentTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExternalDocumentTests.swift; sourceTree = ""; }; + OBJ_182 /* PDFTableRowSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableRowSpec.swift; sourceTree = ""; }; + OBJ_183 /* PDFTable_RowSubscriptsSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTable_RowSubscriptsSpec.swift; sourceTree = ""; }; + OBJ_185 /* PDFGraphics_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGraphics_Spec.swift; sourceTree = ""; }; + OBJ_186 /* PDFLineSeparatorObject+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLineSeparatorObject+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_187 /* PDFLineSeparatorObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineSeparatorObject_Spec.swift; sourceTree = ""; }; + OBJ_188 /* PDFLineStyle_Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineStyle_Equatable_Spec.swift; sourceTree = ""; }; + OBJ_189 /* PDFLineStyle_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineStyle_Spec.swift; sourceTree = ""; }; OBJ_19 /* PDFGroup+Objects.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFGroup+Objects.swift"; sourceTree = ""; }; - OBJ_190 /* UIImage+Pixel_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+Pixel_Spec.swift"; sourceTree = ""; }; - OBJ_192 /* PDFImageSizeFit_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImageSizeFit_Spec.swift; sourceTree = ""; }; - OBJ_193 /* PDFImage_Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImage_Equatable_Spec.swift; sourceTree = ""; }; - OBJ_194 /* PDFImage_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImage_Spec.swift; sourceTree = ""; }; - OBJ_197 /* PDFTableMergeUtil_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableMergeUtil_Spec.swift; sourceTree = ""; }; - OBJ_198 /* PDFTableObjectSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableObjectSpec.swift; sourceTree = ""; }; + OBJ_190 /* PDFLineType_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLineType_Spec.swift; sourceTree = ""; }; + OBJ_191 /* UIColor+Hex_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+Hex_Spec.swift"; sourceTree = ""; }; + OBJ_192 /* UIImage+CloseToEqual_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+CloseToEqual_Spec.swift"; sourceTree = ""; }; + OBJ_193 /* UIImage+Pixel_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+Pixel_Spec.swift"; sourceTree = ""; }; + OBJ_195 /* PDFImageSizeFit_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImageSizeFit_Spec.swift; sourceTree = ""; }; + OBJ_196 /* PDFImage_Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImage_Equatable_Spec.swift; sourceTree = ""; }; + OBJ_197 /* PDFImage_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImage_Spec.swift; sourceTree = ""; }; OBJ_20 /* PDFGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGroup.swift; sourceTree = ""; }; - OBJ_200 /* PDFContainer_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFContainer_Spec.swift; sourceTree = ""; }; - OBJ_201 /* PDFIndentationObject_Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFIndentationObject_Equatable_Spec.swift; sourceTree = ""; }; - OBJ_202 /* PDFIndentationObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFIndentationObject_Spec.swift; sourceTree = ""; }; - OBJ_203 /* PDFLayout+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLayout+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_204 /* PDFLayoutHeights+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLayoutHeights+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_205 /* PDFLayoutHeights_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLayoutHeights_Spec.swift; sourceTree = ""; }; - OBJ_206 /* PDFLayoutIndentations+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLayoutIndentations+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_207 /* PDFLayoutIndentations_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLayoutIndentations_Spec.swift; sourceTree = ""; }; - OBJ_208 /* PDFLayout_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLayout_Spec.swift; sourceTree = ""; }; - OBJ_209 /* PDFOffsetObject+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFOffsetObject+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_200 /* PDFTableMergeUtil_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableMergeUtil_Spec.swift; sourceTree = ""; }; + OBJ_201 /* PDFTableObjectSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableObjectSpec.swift; sourceTree = ""; }; + OBJ_203 /* PDFContainer_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFContainer_Spec.swift; sourceTree = ""; }; + OBJ_204 /* PDFIndentationObject_Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFIndentationObject_Equatable_Spec.swift; sourceTree = ""; }; + OBJ_205 /* PDFIndentationObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFIndentationObject_Spec.swift; sourceTree = ""; }; + OBJ_206 /* PDFLayout+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLayout+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_207 /* PDFLayoutHeights+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLayoutHeights+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_208 /* PDFLayoutHeights_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLayoutHeights_Spec.swift; sourceTree = ""; }; + OBJ_209 /* PDFLayoutIndentations+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFLayoutIndentations+Equatable_Spec.swift"; sourceTree = ""; }; OBJ_21 /* PDFGroupContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGroupContainer.swift; sourceTree = ""; }; - OBJ_210 /* PDFOffsetObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFOffsetObject_Spec.swift; sourceTree = ""; }; - OBJ_211 /* PDFPageBreakObject+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageBreakObject+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_212 /* PDFPageBreakObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPageBreakObject_Spec.swift; sourceTree = ""; }; - OBJ_213 /* PDFPageLayout+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageLayout+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_214 /* PDFPageLayout_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPageLayout_Spec.swift; sourceTree = ""; }; - OBJ_215 /* PDFSpaceObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSpaceObject_Spec.swift; sourceTree = ""; }; - OBJ_217 /* PDFList+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFList+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_218 /* PDFListItemObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListItemObject_Spec.swift; sourceTree = ""; }; - OBJ_219 /* PDFListItemSymbol_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListItemSymbol_Spec.swift; sourceTree = ""; }; + OBJ_210 /* PDFLayoutIndentations_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLayoutIndentations_Spec.swift; sourceTree = ""; }; + OBJ_211 /* PDFLayout_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFLayout_Spec.swift; sourceTree = ""; }; + OBJ_212 /* PDFOffsetObject+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFOffsetObject+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_213 /* PDFOffsetObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFOffsetObject_Spec.swift; sourceTree = ""; }; + OBJ_214 /* PDFPageBreakObject+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageBreakObject+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_215 /* PDFPageBreakObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPageBreakObject_Spec.swift; sourceTree = ""; }; + OBJ_216 /* PDFPageLayout+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageLayout+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_217 /* PDFPageLayout_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPageLayout_Spec.swift; sourceTree = ""; }; + OBJ_218 /* PDFSpaceObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSpaceObject_Spec.swift; sourceTree = ""; }; OBJ_22 /* PDFMasterGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFMasterGroup.swift; sourceTree = ""; }; - OBJ_220 /* PDFListItem_Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListItem_Equatable_Spec.swift; sourceTree = ""; }; - OBJ_221 /* PDFListItem_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListItem_Spec.swift; sourceTree = ""; }; - OBJ_222 /* PDFList_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFList_Spec.swift; sourceTree = ""; }; - OBJ_224 /* CGPoint+Math_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CGPoint+Math_Spec.swift"; sourceTree = ""; }; - OBJ_226 /* PDFInfo+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFInfo+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_227 /* PDFInfo_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFInfo_Spec.swift; sourceTree = ""; }; - OBJ_228 /* PDFDocument+Objects_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFDocument+Objects_Spec.swift"; sourceTree = ""; }; - OBJ_229 /* PDFDocument_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFDocument_Spec.swift; sourceTree = ""; }; - OBJ_230 /* PDFGenerator+Debug_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Debug_Spec.swift"; sourceTree = ""; }; - OBJ_231 /* PDFGenerator+Generation_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Generation_Spec.swift"; sourceTree = ""; }; - OBJ_232 /* PDFGenerator+Layout_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Layout_Spec.swift"; sourceTree = ""; }; - OBJ_233 /* PDFGenerator_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGenerator_Spec.swift; sourceTree = ""; }; - OBJ_235 /* PDFPageFormat+Layout_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageFormat+Layout_Spec.swift"; sourceTree = ""; }; - OBJ_236 /* PDFPageFormat+SizeConstants_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageFormat+SizeConstants_Spec.swift"; sourceTree = ""; }; - OBJ_237 /* PDFPageFormat_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPageFormat_Spec.swift; sourceTree = ""; }; - OBJ_239 /* Int+RomanNumerals_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Int+RomanNumerals_Spec.swift"; sourceTree = ""; }; + OBJ_220 /* PDFList+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFList+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_221 /* PDFListItemObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListItemObject_Spec.swift; sourceTree = ""; }; + OBJ_222 /* PDFListItemSymbol_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListItemSymbol_Spec.swift; sourceTree = ""; }; + OBJ_223 /* PDFListItem_Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListItem_Equatable_Spec.swift; sourceTree = ""; }; + OBJ_224 /* PDFListItem_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListItem_Spec.swift; sourceTree = ""; }; + OBJ_225 /* PDFList_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFList_Spec.swift; sourceTree = ""; }; + OBJ_227 /* CGPoint+Math_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CGPoint+Math_Spec.swift"; sourceTree = ""; }; + OBJ_229 /* PDFInfo+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFInfo+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_230 /* PDFInfo_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFInfo_Spec.swift; sourceTree = ""; }; + OBJ_231 /* PDFDocument+Objects_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFDocument+Objects_Spec.swift"; sourceTree = ""; }; + OBJ_232 /* PDFDocument_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFDocument_Spec.swift; sourceTree = ""; }; + OBJ_233 /* PDFGenerator+Debug_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Debug_Spec.swift"; sourceTree = ""; }; + OBJ_234 /* PDFGenerator+Generation_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Generation_Spec.swift"; sourceTree = ""; }; + OBJ_235 /* PDFGenerator+Layout_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Layout_Spec.swift"; sourceTree = ""; }; + OBJ_236 /* PDFGenerator_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGenerator_Spec.swift; sourceTree = ""; }; + OBJ_238 /* PDFPageFormat+Layout_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageFormat+Layout_Spec.swift"; sourceTree = ""; }; + OBJ_239 /* PDFPageFormat+SizeConstants_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageFormat+SizeConstants_Spec.swift"; sourceTree = ""; }; OBJ_24 /* PDFImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImage.swift; sourceTree = ""; }; - OBJ_240 /* PDFPaginationStyle+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPaginationStyle+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_241 /* PDFPaginationStyle_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPaginationStyle_Spec.swift; sourceTree = ""; }; - OBJ_242 /* PDFPagination_Closure_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPagination_Closure_Spec.swift; sourceTree = ""; }; - OBJ_243 /* PDFPagination_Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPagination_Equatable_Spec.swift; sourceTree = ""; }; - OBJ_244 /* PDFPagination_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPagination_Spec.swift; sourceTree = ""; }; - OBJ_246 /* PDFTable+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTable+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_247 /* PDFTableCell+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableCell+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_248 /* PDFTableCellAlignment_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellAlignment_Spec.swift; sourceTree = ""; }; - OBJ_249 /* PDFTableCellBorders+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableCellBorders+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_240 /* PDFPageFormat_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPageFormat_Spec.swift; sourceTree = ""; }; + OBJ_242 /* Int+RomanNumerals_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Int+RomanNumerals_Spec.swift"; sourceTree = ""; }; + OBJ_243 /* PDFPaginationStyle+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPaginationStyle+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_244 /* PDFPaginationStyle_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPaginationStyle_Spec.swift; sourceTree = ""; }; + OBJ_245 /* PDFPagination_Closure_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPagination_Closure_Spec.swift; sourceTree = ""; }; + OBJ_246 /* PDFPagination_Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPagination_Equatable_Spec.swift; sourceTree = ""; }; + OBJ_247 /* PDFPagination_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPagination_Spec.swift; sourceTree = ""; }; + OBJ_249 /* PDFTable+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTable+Equatable_Spec.swift"; sourceTree = ""; }; OBJ_25 /* PDFImageOptions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImageOptions.swift; sourceTree = ""; }; - OBJ_250 /* PDFTableCellBorders_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellBorders_Spec.swift; sourceTree = ""; }; - OBJ_251 /* PDFTableCellPosition+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableCellPosition+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_252 /* PDFTableCellPosition_Hashable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellPosition_Hashable_Spec.swift; sourceTree = ""; }; - OBJ_253 /* PDFTableCellPosition_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellPosition_Spec.swift; sourceTree = ""; }; - OBJ_254 /* PDFTableCellStyle+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableCellStyle+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_255 /* PDFTableCellStyle_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellStyle_Spec.swift; sourceTree = ""; }; - OBJ_256 /* PDFTableCell_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCell_Spec.swift; sourceTree = ""; }; - OBJ_257 /* PDFTableContent+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableContent+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_258 /* PDFTableContent_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableContent_Spec.swift; sourceTree = ""; }; - OBJ_259 /* PDFTableStyle+Defaults_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableStyle+Defaults_Spec.swift"; sourceTree = ""; }; + OBJ_250 /* PDFTableCell+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableCell+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_251 /* PDFTableCellAlignment_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellAlignment_Spec.swift; sourceTree = ""; }; + OBJ_252 /* PDFTableCellBorders+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableCellBorders+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_253 /* PDFTableCellBorders_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellBorders_Spec.swift; sourceTree = ""; }; + OBJ_254 /* PDFTableCellPosition+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableCellPosition+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_255 /* PDFTableCellPosition_Hashable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellPosition_Hashable_Spec.swift; sourceTree = ""; }; + OBJ_256 /* PDFTableCellPosition_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellPosition_Spec.swift; sourceTree = ""; }; + OBJ_257 /* PDFTableCellStyle+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableCellStyle+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_258 /* PDFTableCellStyle_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCellStyle_Spec.swift; sourceTree = ""; }; + OBJ_259 /* PDFTableCell_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableCell_Spec.swift; sourceTree = ""; }; OBJ_26 /* PDFImageSizeFit.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFImageSizeFit.swift; sourceTree = ""; }; - OBJ_260 /* PDFTableStyle+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableStyle+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_261 /* PDFTableStyle_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableStyle_Spec.swift; sourceTree = ""; }; - OBJ_262 /* PDFTableValidator_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableValidator_Spec.swift; sourceTree = ""; }; - OBJ_263 /* PDFTable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTable_Spec.swift; sourceTree = ""; }; - OBJ_265 /* PDFAttributedText+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFAttributedText+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_266 /* PDFAttributedTextObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFAttributedTextObject_Spec.swift; sourceTree = ""; }; - OBJ_267 /* PDFAttributedText_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFAttributedText_Spec.swift; sourceTree = ""; }; - OBJ_268 /* PDFFontObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFFontObject_Spec.swift; sourceTree = ""; }; - OBJ_269 /* PDFSimpleText+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFSimpleText+Equatable_Spec.swift"; sourceTree = ""; }; - OBJ_270 /* PDFSimpleText_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSimpleText_Spec.swift; sourceTree = ""; }; - OBJ_271 /* PDFTextColorObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTextColorObject_Spec.swift; sourceTree = ""; }; - OBJ_272 /* PDFText_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFText_Spec.swift; sourceTree = ""; }; - OBJ_274 /* PDFCalculations_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFCalculations_Spec.swift; sourceTree = ""; }; - OBJ_275 /* PDFError_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFError_Spec.swift; sourceTree = ""; }; - OBJ_276 /* PDFObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFObject_Spec.swift; sourceTree = ""; }; + OBJ_260 /* PDFTableContent+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableContent+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_261 /* PDFTableContent_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableContent_Spec.swift; sourceTree = ""; }; + OBJ_262 /* PDFTableStyle+Defaults_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableStyle+Defaults_Spec.swift"; sourceTree = ""; }; + OBJ_263 /* PDFTableStyle+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFTableStyle+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_264 /* PDFTableStyle_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableStyle_Spec.swift; sourceTree = ""; }; + OBJ_265 /* PDFTableValidator_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTableValidator_Spec.swift; sourceTree = ""; }; + OBJ_266 /* PDFTable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTable_Spec.swift; sourceTree = ""; }; + OBJ_268 /* PDFAttributedText+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFAttributedText+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_269 /* PDFAttributedTextObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFAttributedTextObject_Spec.swift; sourceTree = ""; }; + OBJ_270 /* PDFAttributedText_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFAttributedText_Spec.swift; sourceTree = ""; }; + OBJ_271 /* PDFFontObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFFontObject_Spec.swift; sourceTree = ""; }; + OBJ_272 /* PDFSimpleText+Equatable_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFSimpleText+Equatable_Spec.swift"; sourceTree = ""; }; + OBJ_273 /* PDFSimpleText_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSimpleText_Spec.swift; sourceTree = ""; }; + OBJ_274 /* PDFTextColorObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFTextColorObject_Spec.swift; sourceTree = ""; }; + OBJ_275 /* PDFText_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFText_Spec.swift; sourceTree = ""; }; + OBJ_277 /* PDFCalculations_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFCalculations_Spec.swift; sourceTree = ""; }; + OBJ_278 /* PDFError_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFError_Spec.swift; sourceTree = ""; }; + OBJ_279 /* PDFObject_Spec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFObject_Spec.swift; sourceTree = ""; }; OBJ_28 /* PDFContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFContainer.swift; sourceTree = ""; }; - OBJ_281 /* AdapterProtocols.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdapterProtocols.swift; sourceTree = ""; }; - OBJ_282 /* AssertionDispatcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AssertionDispatcher.swift; sourceTree = ""; }; - OBJ_283 /* AssertionRecorder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AssertionRecorder.swift; sourceTree = ""; }; - OBJ_284 /* NMBExpectation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NMBExpectation.swift; sourceTree = ""; }; - OBJ_285 /* NMBObjCMatcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NMBObjCMatcher.swift; sourceTree = ""; }; - OBJ_286 /* NimbleEnvironment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NimbleEnvironment.swift; sourceTree = ""; }; - OBJ_287 /* NimbleXCTestHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NimbleXCTestHandler.swift; sourceTree = ""; }; - OBJ_289 /* ExceptionCapture.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExceptionCapture.swift; sourceTree = ""; }; + OBJ_284 /* AdapterProtocols.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdapterProtocols.swift; sourceTree = ""; }; + OBJ_285 /* AssertionDispatcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AssertionDispatcher.swift; sourceTree = ""; }; + OBJ_286 /* AssertionRecorder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AssertionRecorder.swift; sourceTree = ""; }; + OBJ_287 /* NMBExpectation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NMBExpectation.swift; sourceTree = ""; }; + OBJ_288 /* NMBObjCMatcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NMBObjCMatcher.swift; sourceTree = ""; }; + OBJ_289 /* NimbleEnvironment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NimbleEnvironment.swift; sourceTree = ""; }; OBJ_29 /* PDFPageLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPageLayout.swift; sourceTree = ""; }; - OBJ_290 /* DSL+Wait.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DSL+Wait.swift"; sourceTree = ""; }; - OBJ_291 /* DSL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DSL.swift; sourceTree = ""; }; - OBJ_292 /* Expectation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Expectation.swift; sourceTree = ""; }; - OBJ_293 /* ExpectationMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpectationMessage.swift; sourceTree = ""; }; - OBJ_294 /* Expression.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Expression.swift; sourceTree = ""; }; - OBJ_295 /* FailureMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FailureMessage.swift; sourceTree = ""; }; - OBJ_297 /* AllPass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AllPass.swift; sourceTree = ""; }; - OBJ_298 /* Async.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Async.swift; sourceTree = ""; }; - OBJ_299 /* BeAKindOf.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeAKindOf.swift; sourceTree = ""; }; - OBJ_300 /* BeAnInstanceOf.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeAnInstanceOf.swift; sourceTree = ""; }; - OBJ_301 /* BeCloseTo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeCloseTo.swift; sourceTree = ""; }; - OBJ_302 /* BeEmpty.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeEmpty.swift; sourceTree = ""; }; - OBJ_303 /* BeGreaterThan.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeGreaterThan.swift; sourceTree = ""; }; - OBJ_304 /* BeGreaterThanOrEqualTo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeGreaterThanOrEqualTo.swift; sourceTree = ""; }; - OBJ_305 /* BeIdenticalTo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeIdenticalTo.swift; sourceTree = ""; }; - OBJ_306 /* BeLessThan.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeLessThan.swift; sourceTree = ""; }; - OBJ_307 /* BeLessThanOrEqual.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeLessThanOrEqual.swift; sourceTree = ""; }; - OBJ_308 /* BeLogical.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeLogical.swift; sourceTree = ""; }; - OBJ_309 /* BeNil.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeNil.swift; sourceTree = ""; }; + OBJ_290 /* NimbleXCTestHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NimbleXCTestHandler.swift; sourceTree = ""; }; + OBJ_292 /* ExceptionCapture.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExceptionCapture.swift; sourceTree = ""; }; + OBJ_293 /* DSL+Wait.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DSL+Wait.swift"; sourceTree = ""; }; + OBJ_294 /* DSL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DSL.swift; sourceTree = ""; }; + OBJ_295 /* Expectation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Expectation.swift; sourceTree = ""; }; + OBJ_296 /* ExpectationMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpectationMessage.swift; sourceTree = ""; }; + OBJ_297 /* Expression.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Expression.swift; sourceTree = ""; }; + OBJ_298 /* FailureMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FailureMessage.swift; sourceTree = ""; }; + OBJ_300 /* AllPass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AllPass.swift; sourceTree = ""; }; + OBJ_301 /* Async.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Async.swift; sourceTree = ""; }; + OBJ_302 /* BeAKindOf.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeAKindOf.swift; sourceTree = ""; }; + OBJ_303 /* BeAnInstanceOf.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeAnInstanceOf.swift; sourceTree = ""; }; + OBJ_304 /* BeCloseTo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeCloseTo.swift; sourceTree = ""; }; + OBJ_305 /* BeEmpty.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeEmpty.swift; sourceTree = ""; }; + OBJ_306 /* BeGreaterThan.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeGreaterThan.swift; sourceTree = ""; }; + OBJ_307 /* BeGreaterThanOrEqualTo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeGreaterThanOrEqualTo.swift; sourceTree = ""; }; + OBJ_308 /* BeIdenticalTo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeIdenticalTo.swift; sourceTree = ""; }; + OBJ_309 /* BeLessThan.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeLessThan.swift; sourceTree = ""; }; OBJ_31 /* PDFList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFList.swift; sourceTree = ""; }; - OBJ_310 /* BeVoid.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeVoid.swift; sourceTree = ""; }; - OBJ_311 /* BeginWith.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeginWith.swift; sourceTree = ""; }; - OBJ_312 /* BeginWithPrefix.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeginWithPrefix.swift; sourceTree = ""; }; - OBJ_313 /* Contain.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Contain.swift; sourceTree = ""; }; - OBJ_314 /* ContainElementSatisfying.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContainElementSatisfying.swift; sourceTree = ""; }; - OBJ_315 /* ElementsEqual.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ElementsEqual.swift; sourceTree = ""; }; - OBJ_316 /* EndWith.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EndWith.swift; sourceTree = ""; }; - OBJ_317 /* Equal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Equal.swift; sourceTree = ""; }; - OBJ_318 /* HaveCount.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HaveCount.swift; sourceTree = ""; }; - OBJ_319 /* Match.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Match.swift; sourceTree = ""; }; + OBJ_310 /* BeLessThanOrEqual.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeLessThanOrEqual.swift; sourceTree = ""; }; + OBJ_311 /* BeLogical.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeLogical.swift; sourceTree = ""; }; + OBJ_312 /* BeNil.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeNil.swift; sourceTree = ""; }; + OBJ_313 /* BeVoid.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeVoid.swift; sourceTree = ""; }; + OBJ_314 /* BeginWith.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeginWith.swift; sourceTree = ""; }; + OBJ_315 /* BeginWithPrefix.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeginWithPrefix.swift; sourceTree = ""; }; + OBJ_316 /* Contain.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Contain.swift; sourceTree = ""; }; + OBJ_317 /* ContainElementSatisfying.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContainElementSatisfying.swift; sourceTree = ""; }; + OBJ_318 /* ElementsEqual.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ElementsEqual.swift; sourceTree = ""; }; + OBJ_319 /* EndWith.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EndWith.swift; sourceTree = ""; }; OBJ_32 /* PDFListItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListItem.swift; sourceTree = ""; }; - OBJ_320 /* MatchError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MatchError.swift; sourceTree = ""; }; - OBJ_321 /* MatcherFunc.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MatcherFunc.swift; sourceTree = ""; }; - OBJ_322 /* MatcherProtocols.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MatcherProtocols.swift; sourceTree = ""; }; - OBJ_323 /* PostNotification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostNotification.swift; sourceTree = ""; }; - OBJ_324 /* Predicate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Predicate.swift; sourceTree = ""; }; - OBJ_325 /* RaisesException.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RaisesException.swift; sourceTree = ""; }; - OBJ_326 /* SatisfyAllOf.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SatisfyAllOf.swift; sourceTree = ""; }; - OBJ_327 /* SatisfyAnyOf.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SatisfyAnyOf.swift; sourceTree = ""; }; - OBJ_328 /* ThrowAssertion.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThrowAssertion.swift; sourceTree = ""; }; - OBJ_329 /* ThrowError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThrowError.swift; sourceTree = ""; }; + OBJ_320 /* Equal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Equal.swift; sourceTree = ""; }; + OBJ_321 /* HaveCount.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HaveCount.swift; sourceTree = ""; }; + OBJ_322 /* Match.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Match.swift; sourceTree = ""; }; + OBJ_323 /* MatchError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MatchError.swift; sourceTree = ""; }; + OBJ_324 /* MatcherFunc.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MatcherFunc.swift; sourceTree = ""; }; + OBJ_325 /* MatcherProtocols.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MatcherProtocols.swift; sourceTree = ""; }; + OBJ_326 /* PostNotification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostNotification.swift; sourceTree = ""; }; + OBJ_327 /* Predicate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Predicate.swift; sourceTree = ""; }; + OBJ_328 /* RaisesException.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RaisesException.swift; sourceTree = ""; }; + OBJ_329 /* SatisfyAllOf.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SatisfyAllOf.swift; sourceTree = ""; }; OBJ_33 /* PDFListItemSymbol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFListItemSymbol.swift; sourceTree = ""; }; - OBJ_330 /* ToSucceed.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToSucceed.swift; sourceTree = ""; }; - OBJ_332 /* Await.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Await.swift; sourceTree = ""; }; - OBJ_333 /* DispatchTimeInterval.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DispatchTimeInterval.swift; sourceTree = ""; }; - OBJ_334 /* Errors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = ""; }; - OBJ_335 /* SourceLocation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SourceLocation.swift; sourceTree = ""; }; - OBJ_336 /* Stringers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Stringers.swift; sourceTree = ""; }; - OBJ_337 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; name = Package.swift; path = .build/checkouts/Nimble/Package.swift; sourceTree = SOURCE_ROOT; }; - OBJ_340 /* CwlMachBadInstructionHandler.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CwlMachBadInstructionHandler.m; sourceTree = ""; }; - OBJ_341 /* mach_excServer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = mach_excServer.c; sourceTree = ""; }; - OBJ_343 /* CwlMachBadInstructionHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CwlMachBadInstructionHandler.h; sourceTree = ""; }; - OBJ_345 /* CwlCatchBadInstructionPosix.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CwlCatchBadInstructionPosix.swift; sourceTree = ""; }; - OBJ_347 /* CwlBadInstructionException.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CwlBadInstructionException.swift; sourceTree = ""; }; - OBJ_348 /* CwlCatchBadInstruction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CwlCatchBadInstruction.swift; sourceTree = ""; }; - OBJ_349 /* CwlDarwinDefinitions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CwlDarwinDefinitions.swift; sourceTree = ""; }; + OBJ_330 /* SatisfyAnyOf.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SatisfyAnyOf.swift; sourceTree = ""; }; + OBJ_331 /* ThrowAssertion.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThrowAssertion.swift; sourceTree = ""; }; + OBJ_332 /* ThrowError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThrowError.swift; sourceTree = ""; }; + OBJ_333 /* ToSucceed.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToSucceed.swift; sourceTree = ""; }; + OBJ_335 /* Await.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Await.swift; sourceTree = ""; }; + OBJ_336 /* DispatchTimeInterval.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DispatchTimeInterval.swift; sourceTree = ""; }; + OBJ_337 /* Errors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = ""; }; + OBJ_338 /* SourceLocation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SourceLocation.swift; sourceTree = ""; }; + OBJ_339 /* Stringers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Stringers.swift; sourceTree = ""; }; + OBJ_340 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; name = Package.swift; path = .build/checkouts/Nimble/Package.swift; sourceTree = SOURCE_ROOT; }; + OBJ_343 /* CwlMachBadInstructionHandler.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CwlMachBadInstructionHandler.m; sourceTree = ""; }; + OBJ_344 /* mach_excServer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = mach_excServer.c; sourceTree = ""; }; + OBJ_346 /* CwlMachBadInstructionHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CwlMachBadInstructionHandler.h; sourceTree = ""; }; + OBJ_348 /* CwlCatchBadInstructionPosix.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CwlCatchBadInstructionPosix.swift; sourceTree = ""; }; OBJ_35 /* PDFInfo+Equatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFInfo+Equatable.swift"; sourceTree = ""; }; - OBJ_350 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; name = Package.swift; path = .build/checkouts/CwlPreconditionTesting/Package.swift; sourceTree = SOURCE_ROOT; }; - OBJ_353 /* CwlCatchException.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CwlCatchException.swift; sourceTree = ""; }; - OBJ_355 /* CwlCatchException.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CwlCatchException.m; sourceTree = ""; }; - OBJ_357 /* CwlCatchException.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CwlCatchException.h; sourceTree = ""; }; - OBJ_358 /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; name = module.modulemap; path = TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap; sourceTree = SOURCE_ROOT; }; - OBJ_359 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; name = Package.swift; path = .build/checkouts/CwlCatchException/Package.swift; sourceTree = SOURCE_ROOT; }; + OBJ_350 /* CwlBadInstructionException.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CwlBadInstructionException.swift; sourceTree = ""; }; + OBJ_351 /* CwlCatchBadInstruction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CwlCatchBadInstruction.swift; sourceTree = ""; }; + OBJ_352 /* CwlDarwinDefinitions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CwlDarwinDefinitions.swift; sourceTree = ""; }; + OBJ_353 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; name = Package.swift; path = .build/checkouts/CwlPreconditionTesting/Package.swift; sourceTree = SOURCE_ROOT; }; + OBJ_356 /* CwlCatchException.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CwlCatchException.swift; sourceTree = ""; }; + OBJ_358 /* CwlCatchException.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CwlCatchException.m; sourceTree = ""; }; OBJ_36 /* PDFInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFInfo.swift; sourceTree = ""; }; - OBJ_362 /* Behavior.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Behavior.swift; sourceTree = ""; }; - OBJ_363 /* Callsite.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Callsite.swift; sourceTree = ""; }; - OBJ_365 /* Configuration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Configuration.swift; sourceTree = ""; }; - OBJ_366 /* QuickConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickConfiguration.swift; sourceTree = ""; }; - OBJ_368 /* DSL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DSL.swift; sourceTree = ""; }; - OBJ_369 /* World+DSL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "World+DSL.swift"; sourceTree = ""; }; + OBJ_360 /* CwlCatchException.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CwlCatchException.h; sourceTree = ""; }; + OBJ_361 /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; name = module.modulemap; path = TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap; sourceTree = SOURCE_ROOT; }; + OBJ_362 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; name = Package.swift; path = .build/checkouts/CwlCatchException/Package.swift; sourceTree = SOURCE_ROOT; }; + OBJ_365 /* Behavior.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Behavior.swift; sourceTree = ""; }; + OBJ_366 /* Callsite.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Callsite.swift; sourceTree = ""; }; + OBJ_368 /* Configuration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Configuration.swift; sourceTree = ""; }; + OBJ_369 /* QuickConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickConfiguration.swift; sourceTree = ""; }; OBJ_37 /* PDFDocument.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFDocument.swift; sourceTree = ""; }; - OBJ_370 /* ErrorUtility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ErrorUtility.swift; sourceTree = ""; }; - OBJ_371 /* Example.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Example.swift; sourceTree = ""; }; - OBJ_372 /* ExampleGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExampleGroup.swift; sourceTree = ""; }; - OBJ_373 /* ExampleMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExampleMetadata.swift; sourceTree = ""; }; - OBJ_374 /* Filter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Filter.swift; sourceTree = ""; }; - OBJ_376 /* Closures.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Closures.swift; sourceTree = ""; }; - OBJ_377 /* ExampleHooks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExampleHooks.swift; sourceTree = ""; }; - OBJ_378 /* HooksPhase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HooksPhase.swift; sourceTree = ""; }; - OBJ_379 /* SuiteHooks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SuiteHooks.swift; sourceTree = ""; }; + OBJ_371 /* DSL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DSL.swift; sourceTree = ""; }; + OBJ_372 /* World+DSL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "World+DSL.swift"; sourceTree = ""; }; + OBJ_373 /* ErrorUtility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ErrorUtility.swift; sourceTree = ""; }; + OBJ_374 /* Example.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Example.swift; sourceTree = ""; }; + OBJ_375 /* ExampleGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExampleGroup.swift; sourceTree = ""; }; + OBJ_376 /* ExampleMetadata.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExampleMetadata.swift; sourceTree = ""; }; + OBJ_377 /* Filter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Filter.swift; sourceTree = ""; }; + OBJ_379 /* Closures.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Closures.swift; sourceTree = ""; }; OBJ_38 /* PDFGenerator+Generation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFGenerator+Generation.swift"; sourceTree = ""; }; - OBJ_380 /* NSBundle+CurrentTestBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSBundle+CurrentTestBundle.swift"; sourceTree = ""; }; - OBJ_381 /* QuickMain.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickMain.swift; sourceTree = ""; }; - OBJ_382 /* QuickSelectedTestSuiteBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickSelectedTestSuiteBuilder.swift; sourceTree = ""; }; - OBJ_383 /* QuickSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickSpec.swift; sourceTree = ""; }; - OBJ_384 /* QuickTestObservation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickTestObservation.swift; sourceTree = ""; }; - OBJ_385 /* QuickTestSuite.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickTestSuite.swift; sourceTree = ""; }; - OBJ_386 /* String+C99ExtendedIdentifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+C99ExtendedIdentifier.swift"; sourceTree = ""; }; - OBJ_387 /* URL+FileName.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "URL+FileName.swift"; sourceTree = ""; }; - OBJ_388 /* World.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = World.swift; sourceTree = ""; }; + OBJ_380 /* ExampleHooks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExampleHooks.swift; sourceTree = ""; }; + OBJ_381 /* HooksPhase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HooksPhase.swift; sourceTree = ""; }; + OBJ_382 /* SuiteHooks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SuiteHooks.swift; sourceTree = ""; }; + OBJ_383 /* NSBundle+CurrentTestBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSBundle+CurrentTestBundle.swift"; sourceTree = ""; }; + OBJ_384 /* QuickMain.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickMain.swift; sourceTree = ""; }; + OBJ_385 /* QuickSelectedTestSuiteBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickSelectedTestSuiteBuilder.swift; sourceTree = ""; }; + OBJ_386 /* QuickSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickSpec.swift; sourceTree = ""; }; + OBJ_387 /* QuickTestObservation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickTestObservation.swift; sourceTree = ""; }; + OBJ_388 /* QuickTestSuite.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickTestSuite.swift; sourceTree = ""; }; + OBJ_389 /* String+C99ExtendedIdentifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+C99ExtendedIdentifier.swift"; sourceTree = ""; }; OBJ_39 /* PDFGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGenerator.swift; sourceTree = ""; }; - OBJ_390 /* QuickSpecBase.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QuickSpecBase.m; sourceTree = ""; }; - OBJ_392 /* QuickSpecBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QuickSpecBase.h; sourceTree = ""; }; - OBJ_393 /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; name = module.modulemap; path = TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap; sourceTree = SOURCE_ROOT; }; - OBJ_394 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; name = Package.swift; path = .build/checkouts/Quick/Package.swift; sourceTree = SOURCE_ROOT; }; + OBJ_390 /* URL+FileName.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "URL+FileName.swift"; sourceTree = ""; }; + OBJ_391 /* World.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = World.swift; sourceTree = ""; }; + OBJ_393 /* QuickSpecBase.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QuickSpecBase.m; sourceTree = ""; }; + OBJ_395 /* QuickSpecBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QuickSpecBase.h; sourceTree = ""; }; + OBJ_396 /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; name = module.modulemap; path = TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap; sourceTree = SOURCE_ROOT; }; + OBJ_397 /* Package.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; name = Package.swift; path = .build/checkouts/Quick/Package.swift; sourceTree = SOURCE_ROOT; }; OBJ_40 /* PDFGeneratorProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGeneratorProtocol.swift; sourceTree = ""; }; - OBJ_406 /* Example macOS */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "Example macOS"; sourceTree = SOURCE_ROOT; }; - OBJ_407 /* resources */ = {isa = PBXFileReference; lastKnownFileType = folder; path = resources; sourceTree = SOURCE_ROOT; }; - OBJ_408 /* Shared iOS */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "Shared iOS"; sourceTree = SOURCE_ROOT; }; - OBJ_409 /* Example iOS-SwiftPM */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "Example iOS-SwiftPM"; sourceTree = SOURCE_ROOT; }; OBJ_41 /* PDFMultiDocumentGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFMultiDocumentGenerator.swift; sourceTree = ""; }; - OBJ_410 /* Shared */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Shared; sourceTree = SOURCE_ROOT; }; - OBJ_411 /* Documentation */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Documentation; sourceTree = SOURCE_ROOT; }; - OBJ_412 /* build */ = {isa = PBXFileReference; lastKnownFileType = folder; path = build; sourceTree = SOURCE_ROOT; }; - OBJ_413 /* Example iOS-Carthage */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "Example iOS-Carthage"; sourceTree = SOURCE_ROOT; }; - OBJ_414 /* Example iOS-Cocoapods */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "Example iOS-Cocoapods"; sourceTree = SOURCE_ROOT; }; - OBJ_415 /* codecov.yml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = codecov.yml; sourceTree = ""; }; - OBJ_416 /* TPPDF.podspec */ = {isa = PBXFileReference; lastKnownFileType = text; path = TPPDF.podspec; sourceTree = ""; }; - OBJ_417 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; - OBJ_418 /* CODE_OF_CONDUCT.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = CODE_OF_CONDUCT.md; sourceTree = ""; }; - OBJ_419 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - OBJ_420 /* Gemfile */ = {isa = PBXFileReference; lastKnownFileType = text; path = Gemfile; sourceTree = ""; }; - OBJ_421 /* Gemfile.lock */ = {isa = PBXFileReference; lastKnownFileType = text; path = Gemfile.lock; sourceTree = ""; }; - OBJ_422 /* CHANGELOG.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = CHANGELOG.md; sourceTree = ""; }; OBJ_43 /* PDFPageFormat+Layout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageFormat+Layout.swift"; sourceTree = ""; }; OBJ_44 /* PDFPageFormat+SizeConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFPageFormat+SizeConstants.swift"; sourceTree = ""; }; OBJ_45 /* PDFPageFormat.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFPageFormat.swift; sourceTree = ""; }; @@ -856,125 +948,167 @@ OBJ_99 /* PDFExternalPageObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFExternalPageObject.swift; sourceTree = ""; }; "Quick::Quick::Product" /* Quick.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Quick.framework; sourceTree = BUILT_PRODUCTS_DIR; }; "Quick::QuickObjCRuntime::Product" /* QuickObjCRuntime.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = QuickObjCRuntime.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - "TPPDF::TPPDF::Product" /* TPPDF.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TPPDF.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - "TPPDF::TPPDFTests::Product" /* TPPDFTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; path = TPPDFTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + "TPPDF::TPPDF::Product" /* TPPDF.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = TPPDF.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + "TPPDF::TPPDFIntegrationTests::Product" /* TPPDFIntegrationTests.xctest */ = {isa = PBXFileReference; lastKnownFileType = file; path = TPPDFIntegrationTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + "TPPDF::TPPDFTests::Product" /* TPPDFTests.xctest */ = {isa = PBXFileReference; lastKnownFileType = file; path = TPPDFTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - OBJ_429 /* Frameworks */ = { + OBJ_416 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 0; + files = ( + OBJ_417 /* CwlCatchExceptionSupport.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + OBJ_431 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 0; files = ( - OBJ_430 /* CwlCatchExceptionSupport.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_444 /* Frameworks */ = { + OBJ_441 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 0; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_454 /* Frameworks */ = { + OBJ_448 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 0; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_461 /* Frameworks */ = { + OBJ_457 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 0; files = ( + OBJ_458 /* CwlCatchException.framework in Frameworks */, + OBJ_459 /* CwlCatchExceptionSupport.framework in Frameworks */, + OBJ_460 /* CwlMachBadInstructionHandler.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_470 /* Frameworks */ = { + OBJ_528 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 0; files = ( - OBJ_471 /* CwlCatchException.framework in Frameworks */, - OBJ_472 /* CwlCatchExceptionSupport.framework in Frameworks */, - OBJ_473 /* CwlMachBadInstructionHandler.framework in Frameworks */, + OBJ_529 /* CwlPosixPreconditionTesting.framework in Frameworks */, + OBJ_530 /* CwlPreconditionTesting.framework in Frameworks */, + OBJ_531 /* CwlCatchException.framework in Frameworks */, + OBJ_532 /* CwlCatchExceptionSupport.framework in Frameworks */, + OBJ_533 /* CwlMachBadInstructionHandler.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_541 /* Frameworks */ = { + OBJ_574 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 0; files = ( - OBJ_542 /* CwlPosixPreconditionTesting.framework in Frameworks */, - OBJ_543 /* CwlPreconditionTesting.framework in Frameworks */, - OBJ_544 /* CwlCatchException.framework in Frameworks */, - OBJ_545 /* CwlCatchExceptionSupport.framework in Frameworks */, - OBJ_546 /* CwlMachBadInstructionHandler.framework in Frameworks */, + OBJ_575 /* QuickObjCRuntime.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_587 /* Frameworks */ = { + OBJ_583 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 0; files = ( - OBJ_588 /* QuickObjCRuntime.framework in Frameworks */, + D48008C025A200AD00CFB266 /* XCTest.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_596 /* Frameworks */ = { + OBJ_730 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 0; files = ( - D4B7EA1E25A1BB67007D09C7 /* XCTest.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_742 /* Frameworks */ = { + OBJ_737 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 0; files = ( + OBJ_738 /* Nimble.framework in Frameworks */, + OBJ_739 /* CwlPosixPreconditionTesting.framework in Frameworks */, + OBJ_740 /* CwlPreconditionTesting.framework in Frameworks */, + OBJ_741 /* CwlCatchException.framework in Frameworks */, + OBJ_742 /* CwlCatchExceptionSupport.framework in Frameworks */, + OBJ_743 /* CwlMachBadInstructionHandler.framework in Frameworks */, + OBJ_744 /* Quick.framework in Frameworks */, + OBJ_745 /* QuickObjCRuntime.framework in Frameworks */, + OBJ_746 /* TPPDF.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_844 /* Frameworks */ = { + OBJ_858 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 0; files = ( - OBJ_845 /* Nimble.framework in Frameworks */, - OBJ_846 /* CwlPosixPreconditionTesting.framework in Frameworks */, - OBJ_847 /* CwlPreconditionTesting.framework in Frameworks */, - OBJ_848 /* CwlCatchException.framework in Frameworks */, - OBJ_849 /* CwlCatchExceptionSupport.framework in Frameworks */, - OBJ_850 /* CwlMachBadInstructionHandler.framework in Frameworks */, - OBJ_851 /* Quick.framework in Frameworks */, - OBJ_852 /* QuickObjCRuntime.framework in Frameworks */, - OBJ_853 /* TPPDF.framework in Frameworks */, + OBJ_859 /* Nimble.framework in Frameworks */, + OBJ_860 /* CwlPosixPreconditionTesting.framework in Frameworks */, + OBJ_861 /* CwlPreconditionTesting.framework in Frameworks */, + OBJ_862 /* CwlCatchException.framework in Frameworks */, + OBJ_863 /* CwlCatchExceptionSupport.framework in Frameworks */, + OBJ_864 /* CwlMachBadInstructionHandler.framework in Frameworks */, + OBJ_865 /* Quick.framework in Frameworks */, + OBJ_866 /* QuickObjCRuntime.framework in Frameworks */, + OBJ_867 /* TPPDF.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - D4B7EA1C25A1BB67007D09C7 /* Frameworks */ = { + D48008BE25A200AD00CFB266 /* Frameworks */ = { isa = PBXGroup; children = ( - D4B7EA1D25A1BB67007D09C7 /* XCTest.framework */, + D48008BF25A200AD00CFB266 /* XCTest.framework */, ); name = Frameworks; sourceTree = ""; }; + D480095525A202DD00CFB266 /* resources */ = { + isa = PBXGroup; + children = ( + D480095625A202DD00CFB266 /* 50-pages.pdf */, + ); + path = resources; + sourceTree = ""; + }; + D480099825A202F200CFB266 /* resources */ = { + isa = PBXGroup; + children = ( + D480099925A202F200CFB266 /* sample.pdf */, + ); + path = resources; + sourceTree = ""; + }; + D48009AA25A204BB00CFB266 /* Common */ = { + isa = PBXGroup; + children = ( + D48009AB25A204C700CFB266 /* Bundle+Module.swift */, + ); + name = Common; + path = Tests/Common; + sourceTree = ""; + }; OBJ_100 /* Graphics */ = { isa = PBXGroup; children = ( - D4B7EA4025A1C956007D09C7 /* PDFContext.swift */, - OBJ_101 /* PDFContextGraphics.swift */, - OBJ_102 /* PDFGraphics.swift */, - OBJ_103 /* PDFLineObject.swift */, - OBJ_104 /* PDFLineSeparatorObject+Equatable.swift */, - OBJ_105 /* PDFLineSeparatorObject.swift */, - OBJ_106 /* PDFRectangleObject.swift */, - OBJ_107 /* UIColor+CloseToEqual.swift */, - OBJ_108 /* UIColor+Hex.swift */, - OBJ_109 /* UIImage+Pixel.swift */, + OBJ_101 /* PDFContext.swift */, + OBJ_102 /* PDFContextGraphics.swift */, + OBJ_103 /* PDFGraphics.swift */, + OBJ_104 /* PDFLineObject.swift */, + OBJ_105 /* PDFLineSeparatorObject+Equatable.swift */, + OBJ_106 /* PDFLineSeparatorObject.swift */, + OBJ_107 /* PDFRectangleObject.swift */, + OBJ_108 /* UIColor+CloseToEqual.swift */, + OBJ_109 /* UIColor+Hex.swift */, + OBJ_110 /* UIImage+Pixel.swift */, ); path = Graphics; sourceTree = ""; @@ -992,304 +1126,317 @@ path = Graphics; sourceTree = ""; }; - OBJ_110 /* Group */ = { + OBJ_111 /* Group */ = { isa = PBXGroup; children = ( - OBJ_111 /* PDFGroupObject.swift */, + OBJ_112 /* PDFGroupObject.swift */, ); path = Group; sourceTree = ""; }; - OBJ_112 /* Image */ = { + OBJ_113 /* Image */ = { isa = PBXGroup; children = ( - OBJ_113 /* PDFImageObject.swift */, - OBJ_114 /* PDFImageRowObject.swift */, + OBJ_114 /* PDFImageObject.swift */, + OBJ_115 /* PDFImageRowObject.swift */, ); path = Image; sourceTree = ""; }; - OBJ_115 /* Layout */ = { - isa = PBXGroup; - children = ( - OBJ_116 /* PDFColumnLayoutState.swift */, - OBJ_117 /* PDFIndentationObject+Equatable.swift */, - OBJ_118 /* PDFIndentationObject.swift */, - OBJ_119 /* PDFLayout+Equatable.swift */, - OBJ_120 /* PDFLayout.swift */, - OBJ_121 /* PDFLayoutHeights+Equatable.swift */, - OBJ_122 /* PDFLayoutHeights.swift */, - OBJ_123 /* PDFLayoutIndentations+Equatable.swift */, - OBJ_124 /* PDFLayoutIndentations.swift */, - OBJ_125 /* PDFMarginObject.swift */, - OBJ_126 /* PDFOffsetObject+Equatable.swift */, - OBJ_127 /* PDFOffsetObject.swift */, - OBJ_128 /* PDFPageBreakObject+Equatable.swift */, - OBJ_129 /* PDFPageBreakObject.swift */, - OBJ_130 /* PDFPageLayout+Equatable.swift */, - OBJ_131 /* PDFSectionColumnContainer.swift */, - OBJ_132 /* PDFSpaceObject.swift */, + OBJ_116 /* Layout */ = { + isa = PBXGroup; + children = ( + OBJ_117 /* PDFColumnLayoutState.swift */, + OBJ_118 /* PDFIndentationObject+Equatable.swift */, + OBJ_119 /* PDFIndentationObject.swift */, + OBJ_120 /* PDFLayout+Equatable.swift */, + OBJ_121 /* PDFLayout.swift */, + OBJ_122 /* PDFLayoutHeights+Equatable.swift */, + OBJ_123 /* PDFLayoutHeights.swift */, + OBJ_124 /* PDFLayoutIndentations+Equatable.swift */, + OBJ_125 /* PDFLayoutIndentations.swift */, + OBJ_126 /* PDFMarginObject.swift */, + OBJ_127 /* PDFOffsetObject+Equatable.swift */, + OBJ_128 /* PDFOffsetObject.swift */, + OBJ_129 /* PDFPageBreakObject+Equatable.swift */, + OBJ_130 /* PDFPageBreakObject.swift */, + OBJ_131 /* PDFPageLayout+Equatable.swift */, + OBJ_132 /* PDFSectionColumnContainer.swift */, + OBJ_133 /* PDFSpaceObject.swift */, ); path = Layout; sourceTree = ""; }; - OBJ_133 /* List */ = { + OBJ_134 /* List */ = { isa = PBXGroup; children = ( - OBJ_134 /* PDFListObject.swift */, + OBJ_135 /* PDFListObject.swift */, ); path = List; sourceTree = ""; }; - OBJ_135 /* Math */ = { + OBJ_136 /* Math */ = { isa = PBXGroup; children = ( - OBJ_136 /* CGPoint+Math.swift */, - OBJ_137 /* CGPoint+Null.swift */, + OBJ_137 /* CGPoint+Math.swift */, + OBJ_138 /* CGPoint+Null.swift */, ); path = Math; sourceTree = ""; }; - OBJ_140 /* Pagination */ = { + OBJ_141 /* Pagination */ = { isa = PBXGroup; children = ( - OBJ_141 /* Int+RomanNumerals.swift */, - OBJ_142 /* PDFPagination+Equatable.swift */, - OBJ_143 /* PDFPagination.swift */, - OBJ_144 /* PDFPaginationClosure.swift */, - OBJ_145 /* PDFPaginationStyle+Equatable.swift */, - OBJ_146 /* PDFPaginationStyle.swift */, + OBJ_142 /* Int+RomanNumerals.swift */, + OBJ_143 /* PDFPagination+Equatable.swift */, + OBJ_144 /* PDFPagination.swift */, + OBJ_145 /* PDFPaginationClosure.swift */, + OBJ_146 /* PDFPaginationStyle+Equatable.swift */, + OBJ_147 /* PDFPaginationStyle.swift */, ); path = Pagination; sourceTree = ""; }; - OBJ_147 /* Section */ = { + OBJ_148 /* Section */ = { isa = PBXGroup; children = ( - OBJ_148 /* PDFColumnWrapSectionObject.swift */, - OBJ_149 /* PDFSectionColumnObject.swift */, - OBJ_150 /* PDFSectionObject.swift */, + OBJ_149 /* PDFColumnWrapSectionObject.swift */, + OBJ_150 /* PDFSectionColumnObject.swift */, + OBJ_151 /* PDFSectionObject.swift */, ); path = Section; sourceTree = ""; }; - OBJ_151 /* Table Of Content */ = { + OBJ_152 /* Table Of Content */ = { isa = PBXGroup; children = ( - OBJ_152 /* PDFTableOfContentObject.swift */, + OBJ_153 /* PDFTableOfContentObject.swift */, ); path = "Table Of Content"; sourceTree = ""; }; - OBJ_153 /* Table */ = { + OBJ_154 /* Table */ = { isa = PBXGroup; children = ( - OBJ_154 /* PDFTableCalculatedCell.swift */, - OBJ_155 /* PDFTableMergeUtil.swift */, - OBJ_156 /* PDFTableNode.swift */, - OBJ_157 /* PDFTableObject.swift */, - OBJ_158 /* PDFTableValidator.swift */, + OBJ_155 /* PDFTableCalculatedCell.swift */, + OBJ_156 /* PDFTableMergeUtil.swift */, + OBJ_157 /* PDFTableNode.swift */, + OBJ_158 /* PDFTableObject.swift */, + OBJ_159 /* PDFTableValidator.swift */, ); path = Table; sourceTree = ""; }; - OBJ_159 /* Text */ = { + OBJ_160 /* Text */ = { isa = PBXGroup; children = ( - OBJ_160 /* PDFAttributedTextObject.swift */, - OBJ_161 /* PDFFontObject.swift */, - OBJ_162 /* PDFTextColorObject.swift */, + OBJ_161 /* PDFAttributedTextObject.swift */, + OBJ_162 /* PDFFontObject.swift */, + OBJ_163 /* PDFTextColorObject.swift */, ); path = Text; sourceTree = ""; }; - OBJ_163 /* Utils */ = { + OBJ_164 /* Utils */ = { isa = PBXGroup; children = ( - OBJ_164 /* Attributes */, - OBJ_167 /* CustomStringConvertible+AutoDescribing.swift */, - OBJ_168 /* FileManager+TemporaryFiles.swift */, - OBJ_169 /* PDFCalculations.swift */, - OBJ_170 /* PDFLocatedRenderObject.swift */, - OBJ_171 /* PDFSlicedObject.swift */, - OBJ_172 /* Stack.swift */, - OBJ_173 /* WeakRef.swift */, + OBJ_165 /* Attributes */, + OBJ_168 /* CustomStringConvertible+AutoDescribing.swift */, + OBJ_169 /* FileManager+TemporaryFiles.swift */, + OBJ_170 /* PDFCalculations.swift */, + OBJ_171 /* PDFLocatedRenderObject.swift */, + OBJ_172 /* PDFSlicedObject.swift */, + OBJ_173 /* Stack.swift */, + OBJ_174 /* WeakRef.swift */, ); path = Utils; sourceTree = ""; }; - OBJ_164 /* Attributes */ = { + OBJ_165 /* Attributes */ = { isa = PBXGroup; children = ( - OBJ_165 /* PDFAttributableObject.swift */, - OBJ_166 /* PDFObjectAttribute.swift */, + OBJ_166 /* PDFAttributableObject.swift */, + OBJ_167 /* PDFObjectAttribute.swift */, ); path = Attributes; sourceTree = ""; }; - OBJ_174 /* Tests */ = { + OBJ_175 /* Tests */ = { isa = PBXGroup; children = ( - OBJ_175 /* TPPDFTests */, + D48009AA25A204BB00CFB266 /* Common */, + OBJ_176 /* TPPDFIntegrationTests */, + OBJ_178 /* TPPDFTests */, ); name = Tests; sourceTree = SOURCE_ROOT; }; - OBJ_175 /* TPPDFTests */ = { - isa = PBXGroup; - children = ( - OBJ_176 /* API */, - OBJ_181 /* Graphics */, - OBJ_191 /* Image */, - OBJ_195 /* Internal */, - OBJ_199 /* Layout */, - OBJ_216 /* List */, - OBJ_223 /* Math */, - OBJ_225 /* Metadata */, - OBJ_228 /* PDFDocument+Objects_Spec.swift */, - OBJ_229 /* PDFDocument_Spec.swift */, - OBJ_230 /* PDFGenerator+Debug_Spec.swift */, - OBJ_231 /* PDFGenerator+Generation_Spec.swift */, - OBJ_232 /* PDFGenerator+Layout_Spec.swift */, - OBJ_233 /* PDFGenerator_Spec.swift */, - OBJ_234 /* Page Format */, - OBJ_238 /* Pagination */, - OBJ_245 /* Table */, - OBJ_264 /* Text */, - OBJ_273 /* Utils */, + OBJ_176 /* TPPDFIntegrationTests */ = { + isa = PBXGroup; + children = ( + D480095525A202DD00CFB266 /* resources */, + OBJ_177 /* ExternalDocumentTests.swift */, + ); + name = TPPDFIntegrationTests; + path = Tests/TPPDFIntegrationTests; + sourceTree = SOURCE_ROOT; + }; + OBJ_178 /* TPPDFTests */ = { + isa = PBXGroup; + children = ( + D480099825A202F200CFB266 /* resources */, + OBJ_179 /* API */, + OBJ_184 /* Graphics */, + OBJ_194 /* Image */, + OBJ_198 /* Internal */, + OBJ_202 /* Layout */, + OBJ_219 /* List */, + OBJ_226 /* Math */, + OBJ_228 /* Metadata */, + OBJ_231 /* PDFDocument+Objects_Spec.swift */, + OBJ_232 /* PDFDocument_Spec.swift */, + OBJ_233 /* PDFGenerator+Debug_Spec.swift */, + OBJ_234 /* PDFGenerator+Generation_Spec.swift */, + OBJ_235 /* PDFGenerator+Layout_Spec.swift */, + OBJ_236 /* PDFGenerator_Spec.swift */, + OBJ_237 /* Page Format */, + OBJ_241 /* Pagination */, + OBJ_248 /* Table */, + OBJ_267 /* Text */, + OBJ_276 /* Utils */, ); name = TPPDFTests; path = Tests/TPPDFTests; sourceTree = SOURCE_ROOT; }; - OBJ_176 /* API */ = { + OBJ_179 /* API */ = { isa = PBXGroup; children = ( - OBJ_177 /* Table */, + OBJ_180 /* Table */, ); path = API; sourceTree = ""; }; - OBJ_177 /* Table */ = { + OBJ_18 /* Groups */ = { isa = PBXGroup; children = ( - OBJ_178 /* Sections */, + OBJ_19 /* PDFGroup+Objects.swift */, + OBJ_20 /* PDFGroup.swift */, + OBJ_21 /* PDFGroupContainer.swift */, + OBJ_22 /* PDFMasterGroup.swift */, ); - path = Table; + path = Groups; sourceTree = ""; }; - OBJ_178 /* Sections */ = { + OBJ_180 /* Table */ = { isa = PBXGroup; children = ( - OBJ_179 /* PDFTableRowSpec.swift */, - OBJ_180 /* PDFTable_RowSubscriptsSpec.swift */, + OBJ_181 /* Sections */, ); - path = Sections; + path = Table; sourceTree = ""; }; - OBJ_18 /* Groups */ = { + OBJ_181 /* Sections */ = { isa = PBXGroup; children = ( - OBJ_19 /* PDFGroup+Objects.swift */, - OBJ_20 /* PDFGroup.swift */, - OBJ_21 /* PDFGroupContainer.swift */, - OBJ_22 /* PDFMasterGroup.swift */, + OBJ_182 /* PDFTableRowSpec.swift */, + OBJ_183 /* PDFTable_RowSubscriptsSpec.swift */, ); - path = Groups; + path = Sections; sourceTree = ""; }; - OBJ_181 /* Graphics */ = { + OBJ_184 /* Graphics */ = { isa = PBXGroup; children = ( - OBJ_182 /* PDFGraphics_Spec.swift */, - OBJ_183 /* PDFLineSeparatorObject+Equatable_Spec.swift */, - OBJ_184 /* PDFLineSeparatorObject_Spec.swift */, - OBJ_185 /* PDFLineStyle_Equatable_Spec.swift */, - OBJ_186 /* PDFLineStyle_Spec.swift */, - OBJ_187 /* PDFLineType_Spec.swift */, - OBJ_188 /* UIColor+Hex_Spec.swift */, - OBJ_189 /* UIImage+CloseToEqual_Spec.swift */, - OBJ_190 /* UIImage+Pixel_Spec.swift */, + OBJ_185 /* PDFGraphics_Spec.swift */, + OBJ_186 /* PDFLineSeparatorObject+Equatable_Spec.swift */, + OBJ_187 /* PDFLineSeparatorObject_Spec.swift */, + OBJ_188 /* PDFLineStyle_Equatable_Spec.swift */, + OBJ_189 /* PDFLineStyle_Spec.swift */, + OBJ_190 /* PDFLineType_Spec.swift */, + OBJ_191 /* UIColor+Hex_Spec.swift */, + OBJ_192 /* UIImage+CloseToEqual_Spec.swift */, + OBJ_193 /* UIImage+Pixel_Spec.swift */, ); path = Graphics; sourceTree = ""; }; - OBJ_191 /* Image */ = { + OBJ_194 /* Image */ = { isa = PBXGroup; children = ( - OBJ_192 /* PDFImageSizeFit_Spec.swift */, - OBJ_193 /* PDFImage_Equatable_Spec.swift */, - OBJ_194 /* PDFImage_Spec.swift */, + OBJ_195 /* PDFImageSizeFit_Spec.swift */, + OBJ_196 /* PDFImage_Equatable_Spec.swift */, + OBJ_197 /* PDFImage_Spec.swift */, ); path = Image; sourceTree = ""; }; - OBJ_195 /* Internal */ = { + OBJ_198 /* Internal */ = { isa = PBXGroup; children = ( - OBJ_196 /* Table */, + OBJ_199 /* Table */, ); path = Internal; sourceTree = ""; }; - OBJ_196 /* Table */ = { + OBJ_199 /* Table */ = { isa = PBXGroup; children = ( - OBJ_197 /* PDFTableMergeUtil_Spec.swift */, - OBJ_198 /* PDFTableObjectSpec.swift */, + OBJ_200 /* PDFTableMergeUtil_Spec.swift */, + OBJ_201 /* PDFTableObjectSpec.swift */, ); path = Table; sourceTree = ""; }; - OBJ_199 /* Layout */ = { - isa = PBXGroup; - children = ( - OBJ_200 /* PDFContainer_Spec.swift */, - OBJ_201 /* PDFIndentationObject_Equatable_Spec.swift */, - OBJ_202 /* PDFIndentationObject_Spec.swift */, - OBJ_203 /* PDFLayout+Equatable_Spec.swift */, - OBJ_204 /* PDFLayoutHeights+Equatable_Spec.swift */, - OBJ_205 /* PDFLayoutHeights_Spec.swift */, - OBJ_206 /* PDFLayoutIndentations+Equatable_Spec.swift */, - OBJ_207 /* PDFLayoutIndentations_Spec.swift */, - OBJ_208 /* PDFLayout_Spec.swift */, - OBJ_209 /* PDFOffsetObject+Equatable_Spec.swift */, - OBJ_210 /* PDFOffsetObject_Spec.swift */, - OBJ_211 /* PDFPageBreakObject+Equatable_Spec.swift */, - OBJ_212 /* PDFPageBreakObject_Spec.swift */, - OBJ_213 /* PDFPageLayout+Equatable_Spec.swift */, - OBJ_214 /* PDFPageLayout_Spec.swift */, - OBJ_215 /* PDFSpaceObject_Spec.swift */, + OBJ_202 /* Layout */ = { + isa = PBXGroup; + children = ( + OBJ_203 /* PDFContainer_Spec.swift */, + OBJ_204 /* PDFIndentationObject_Equatable_Spec.swift */, + OBJ_205 /* PDFIndentationObject_Spec.swift */, + OBJ_206 /* PDFLayout+Equatable_Spec.swift */, + OBJ_207 /* PDFLayoutHeights+Equatable_Spec.swift */, + OBJ_208 /* PDFLayoutHeights_Spec.swift */, + OBJ_209 /* PDFLayoutIndentations+Equatable_Spec.swift */, + OBJ_210 /* PDFLayoutIndentations_Spec.swift */, + OBJ_211 /* PDFLayout_Spec.swift */, + OBJ_212 /* PDFOffsetObject+Equatable_Spec.swift */, + OBJ_213 /* PDFOffsetObject_Spec.swift */, + OBJ_214 /* PDFPageBreakObject+Equatable_Spec.swift */, + OBJ_215 /* PDFPageBreakObject_Spec.swift */, + OBJ_216 /* PDFPageLayout+Equatable_Spec.swift */, + OBJ_217 /* PDFPageLayout_Spec.swift */, + OBJ_218 /* PDFSpaceObject_Spec.swift */, ); path = Layout; sourceTree = ""; }; - OBJ_216 /* List */ = { + OBJ_219 /* List */ = { isa = PBXGroup; children = ( - OBJ_217 /* PDFList+Equatable_Spec.swift */, - OBJ_218 /* PDFListItemObject_Spec.swift */, - OBJ_219 /* PDFListItemSymbol_Spec.swift */, - OBJ_220 /* PDFListItem_Equatable_Spec.swift */, - OBJ_221 /* PDFListItem_Spec.swift */, - OBJ_222 /* PDFList_Spec.swift */, + OBJ_220 /* PDFList+Equatable_Spec.swift */, + OBJ_221 /* PDFListItemObject_Spec.swift */, + OBJ_222 /* PDFListItemSymbol_Spec.swift */, + OBJ_223 /* PDFListItem_Equatable_Spec.swift */, + OBJ_224 /* PDFListItem_Spec.swift */, + OBJ_225 /* PDFList_Spec.swift */, ); path = List; sourceTree = ""; }; - OBJ_223 /* Math */ = { + OBJ_226 /* Math */ = { isa = PBXGroup; children = ( - OBJ_224 /* CGPoint+Math_Spec.swift */, + OBJ_227 /* CGPoint+Math_Spec.swift */, ); path = Math; sourceTree = ""; }; - OBJ_225 /* Metadata */ = { + OBJ_228 /* Metadata */ = { isa = PBXGroup; children = ( - OBJ_226 /* PDFInfo+Equatable_Spec.swift */, - OBJ_227 /* PDFInfo_Spec.swift */, + OBJ_229 /* PDFInfo+Equatable_Spec.swift */, + OBJ_230 /* PDFInfo_Spec.swift */, ); path = Metadata; sourceTree = ""; @@ -1304,65 +1451,65 @@ path = Image; sourceTree = ""; }; - OBJ_234 /* Page Format */ = { + OBJ_237 /* Page Format */ = { isa = PBXGroup; children = ( - OBJ_235 /* PDFPageFormat+Layout_Spec.swift */, - OBJ_236 /* PDFPageFormat+SizeConstants_Spec.swift */, - OBJ_237 /* PDFPageFormat_Spec.swift */, + OBJ_238 /* PDFPageFormat+Layout_Spec.swift */, + OBJ_239 /* PDFPageFormat+SizeConstants_Spec.swift */, + OBJ_240 /* PDFPageFormat_Spec.swift */, ); path = "Page Format"; sourceTree = ""; }; - OBJ_238 /* Pagination */ = { + OBJ_241 /* Pagination */ = { isa = PBXGroup; children = ( - OBJ_239 /* Int+RomanNumerals_Spec.swift */, - OBJ_240 /* PDFPaginationStyle+Equatable_Spec.swift */, - OBJ_241 /* PDFPaginationStyle_Spec.swift */, - OBJ_242 /* PDFPagination_Closure_Spec.swift */, - OBJ_243 /* PDFPagination_Equatable_Spec.swift */, - OBJ_244 /* PDFPagination_Spec.swift */, + OBJ_242 /* Int+RomanNumerals_Spec.swift */, + OBJ_243 /* PDFPaginationStyle+Equatable_Spec.swift */, + OBJ_244 /* PDFPaginationStyle_Spec.swift */, + OBJ_245 /* PDFPagination_Closure_Spec.swift */, + OBJ_246 /* PDFPagination_Equatable_Spec.swift */, + OBJ_247 /* PDFPagination_Spec.swift */, ); path = Pagination; sourceTree = ""; }; - OBJ_245 /* Table */ = { - isa = PBXGroup; - children = ( - OBJ_246 /* PDFTable+Equatable_Spec.swift */, - OBJ_247 /* PDFTableCell+Equatable_Spec.swift */, - OBJ_248 /* PDFTableCellAlignment_Spec.swift */, - OBJ_249 /* PDFTableCellBorders+Equatable_Spec.swift */, - OBJ_250 /* PDFTableCellBorders_Spec.swift */, - OBJ_251 /* PDFTableCellPosition+Equatable_Spec.swift */, - OBJ_252 /* PDFTableCellPosition_Hashable_Spec.swift */, - OBJ_253 /* PDFTableCellPosition_Spec.swift */, - OBJ_254 /* PDFTableCellStyle+Equatable_Spec.swift */, - OBJ_255 /* PDFTableCellStyle_Spec.swift */, - OBJ_256 /* PDFTableCell_Spec.swift */, - OBJ_257 /* PDFTableContent+Equatable_Spec.swift */, - OBJ_258 /* PDFTableContent_Spec.swift */, - OBJ_259 /* PDFTableStyle+Defaults_Spec.swift */, - OBJ_260 /* PDFTableStyle+Equatable_Spec.swift */, - OBJ_261 /* PDFTableStyle_Spec.swift */, - OBJ_262 /* PDFTableValidator_Spec.swift */, - OBJ_263 /* PDFTable_Spec.swift */, + OBJ_248 /* Table */ = { + isa = PBXGroup; + children = ( + OBJ_249 /* PDFTable+Equatable_Spec.swift */, + OBJ_250 /* PDFTableCell+Equatable_Spec.swift */, + OBJ_251 /* PDFTableCellAlignment_Spec.swift */, + OBJ_252 /* PDFTableCellBorders+Equatable_Spec.swift */, + OBJ_253 /* PDFTableCellBorders_Spec.swift */, + OBJ_254 /* PDFTableCellPosition+Equatable_Spec.swift */, + OBJ_255 /* PDFTableCellPosition_Hashable_Spec.swift */, + OBJ_256 /* PDFTableCellPosition_Spec.swift */, + OBJ_257 /* PDFTableCellStyle+Equatable_Spec.swift */, + OBJ_258 /* PDFTableCellStyle_Spec.swift */, + OBJ_259 /* PDFTableCell_Spec.swift */, + OBJ_260 /* PDFTableContent+Equatable_Spec.swift */, + OBJ_261 /* PDFTableContent_Spec.swift */, + OBJ_262 /* PDFTableStyle+Defaults_Spec.swift */, + OBJ_263 /* PDFTableStyle+Equatable_Spec.swift */, + OBJ_264 /* PDFTableStyle_Spec.swift */, + OBJ_265 /* PDFTableValidator_Spec.swift */, + OBJ_266 /* PDFTable_Spec.swift */, ); path = Table; sourceTree = ""; }; - OBJ_264 /* Text */ = { + OBJ_267 /* Text */ = { isa = PBXGroup; children = ( - OBJ_265 /* PDFAttributedText+Equatable_Spec.swift */, - OBJ_266 /* PDFAttributedTextObject_Spec.swift */, - OBJ_267 /* PDFAttributedText_Spec.swift */, - OBJ_268 /* PDFFontObject_Spec.swift */, - OBJ_269 /* PDFSimpleText+Equatable_Spec.swift */, - OBJ_270 /* PDFSimpleText_Spec.swift */, - OBJ_271 /* PDFTextColorObject_Spec.swift */, - OBJ_272 /* PDFText_Spec.swift */, + OBJ_268 /* PDFAttributedText+Equatable_Spec.swift */, + OBJ_269 /* PDFAttributedTextObject_Spec.swift */, + OBJ_270 /* PDFAttributedText_Spec.swift */, + OBJ_271 /* PDFFontObject_Spec.swift */, + OBJ_272 /* PDFSimpleText+Equatable_Spec.swift */, + OBJ_273 /* PDFSimpleText_Spec.swift */, + OBJ_274 /* PDFTextColorObject_Spec.swift */, + OBJ_275 /* PDFText_Spec.swift */, ); path = Text; sourceTree = ""; @@ -1376,113 +1523,113 @@ path = Layout; sourceTree = ""; }; - OBJ_273 /* Utils */ = { + OBJ_276 /* Utils */ = { isa = PBXGroup; children = ( - OBJ_274 /* PDFCalculations_Spec.swift */, - OBJ_275 /* PDFError_Spec.swift */, - OBJ_276 /* PDFObject_Spec.swift */, + OBJ_277 /* PDFCalculations_Spec.swift */, + OBJ_278 /* PDFError_Spec.swift */, + OBJ_279 /* PDFObject_Spec.swift */, ); path = Utils; sourceTree = ""; }; - OBJ_277 /* Dependencies */ = { + OBJ_280 /* Dependencies */ = { isa = PBXGroup; children = ( - OBJ_278 /* Nimble 9.0.0 */, - OBJ_338 /* CwlPreconditionTesting 2.0.0 */, - OBJ_351 /* CwlCatchException 2.0.0 */, - OBJ_360 /* Quick 3.0.0 */, + OBJ_281 /* Nimble 9.0.0 */, + OBJ_341 /* CwlPreconditionTesting 2.0.0 */, + OBJ_354 /* CwlCatchException 2.0.0 */, + OBJ_363 /* Quick 3.0.0 */, ); name = Dependencies; sourceTree = ""; }; - OBJ_278 /* Nimble 9.0.0 */ = { + OBJ_281 /* Nimble 9.0.0 */ = { isa = PBXGroup; children = ( - OBJ_279 /* Nimble */, - OBJ_337 /* Package.swift */, + OBJ_282 /* Nimble */, + OBJ_340 /* Package.swift */, ); name = "Nimble 9.0.0"; sourceTree = SOURCE_ROOT; }; - OBJ_279 /* Nimble */ = { + OBJ_282 /* Nimble */ = { isa = PBXGroup; children = ( - OBJ_280 /* Adapters */, - OBJ_290 /* DSL+Wait.swift */, - OBJ_291 /* DSL.swift */, - OBJ_292 /* Expectation.swift */, - OBJ_293 /* ExpectationMessage.swift */, - OBJ_294 /* Expression.swift */, - OBJ_295 /* FailureMessage.swift */, - OBJ_296 /* Matchers */, - OBJ_331 /* Utils */, + OBJ_283 /* Adapters */, + OBJ_293 /* DSL+Wait.swift */, + OBJ_294 /* DSL.swift */, + OBJ_295 /* Expectation.swift */, + OBJ_296 /* ExpectationMessage.swift */, + OBJ_297 /* Expression.swift */, + OBJ_298 /* FailureMessage.swift */, + OBJ_299 /* Matchers */, + OBJ_334 /* Utils */, ); name = Nimble; path = .build/checkouts/Nimble/Sources/Nimble; sourceTree = SOURCE_ROOT; }; - OBJ_280 /* Adapters */ = { + OBJ_283 /* Adapters */ = { isa = PBXGroup; children = ( - OBJ_281 /* AdapterProtocols.swift */, - OBJ_282 /* AssertionDispatcher.swift */, - OBJ_283 /* AssertionRecorder.swift */, - OBJ_284 /* NMBExpectation.swift */, - OBJ_285 /* NMBObjCMatcher.swift */, - OBJ_286 /* NimbleEnvironment.swift */, - OBJ_287 /* NimbleXCTestHandler.swift */, - OBJ_288 /* NonObjectiveC */, + OBJ_284 /* AdapterProtocols.swift */, + OBJ_285 /* AssertionDispatcher.swift */, + OBJ_286 /* AssertionRecorder.swift */, + OBJ_287 /* NMBExpectation.swift */, + OBJ_288 /* NMBObjCMatcher.swift */, + OBJ_289 /* NimbleEnvironment.swift */, + OBJ_290 /* NimbleXCTestHandler.swift */, + OBJ_291 /* NonObjectiveC */, ); path = Adapters; sourceTree = ""; }; - OBJ_288 /* NonObjectiveC */ = { + OBJ_291 /* NonObjectiveC */ = { isa = PBXGroup; children = ( - OBJ_289 /* ExceptionCapture.swift */, + OBJ_292 /* ExceptionCapture.swift */, ); path = NonObjectiveC; sourceTree = ""; }; - OBJ_296 /* Matchers */ = { - isa = PBXGroup; - children = ( - OBJ_297 /* AllPass.swift */, - OBJ_298 /* Async.swift */, - OBJ_299 /* BeAKindOf.swift */, - OBJ_300 /* BeAnInstanceOf.swift */, - OBJ_301 /* BeCloseTo.swift */, - OBJ_302 /* BeEmpty.swift */, - OBJ_303 /* BeGreaterThan.swift */, - OBJ_304 /* BeGreaterThanOrEqualTo.swift */, - OBJ_305 /* BeIdenticalTo.swift */, - OBJ_306 /* BeLessThan.swift */, - OBJ_307 /* BeLessThanOrEqual.swift */, - OBJ_308 /* BeLogical.swift */, - OBJ_309 /* BeNil.swift */, - OBJ_310 /* BeVoid.swift */, - OBJ_311 /* BeginWith.swift */, - OBJ_312 /* BeginWithPrefix.swift */, - OBJ_313 /* Contain.swift */, - OBJ_314 /* ContainElementSatisfying.swift */, - OBJ_315 /* ElementsEqual.swift */, - OBJ_316 /* EndWith.swift */, - OBJ_317 /* Equal.swift */, - OBJ_318 /* HaveCount.swift */, - OBJ_319 /* Match.swift */, - OBJ_320 /* MatchError.swift */, - OBJ_321 /* MatcherFunc.swift */, - OBJ_322 /* MatcherProtocols.swift */, - OBJ_323 /* PostNotification.swift */, - OBJ_324 /* Predicate.swift */, - OBJ_325 /* RaisesException.swift */, - OBJ_326 /* SatisfyAllOf.swift */, - OBJ_327 /* SatisfyAnyOf.swift */, - OBJ_328 /* ThrowAssertion.swift */, - OBJ_329 /* ThrowError.swift */, - OBJ_330 /* ToSucceed.swift */, + OBJ_299 /* Matchers */ = { + isa = PBXGroup; + children = ( + OBJ_300 /* AllPass.swift */, + OBJ_301 /* Async.swift */, + OBJ_302 /* BeAKindOf.swift */, + OBJ_303 /* BeAnInstanceOf.swift */, + OBJ_304 /* BeCloseTo.swift */, + OBJ_305 /* BeEmpty.swift */, + OBJ_306 /* BeGreaterThan.swift */, + OBJ_307 /* BeGreaterThanOrEqualTo.swift */, + OBJ_308 /* BeIdenticalTo.swift */, + OBJ_309 /* BeLessThan.swift */, + OBJ_310 /* BeLessThanOrEqual.swift */, + OBJ_311 /* BeLogical.swift */, + OBJ_312 /* BeNil.swift */, + OBJ_313 /* BeVoid.swift */, + OBJ_314 /* BeginWith.swift */, + OBJ_315 /* BeginWithPrefix.swift */, + OBJ_316 /* Contain.swift */, + OBJ_317 /* ContainElementSatisfying.swift */, + OBJ_318 /* ElementsEqual.swift */, + OBJ_319 /* EndWith.swift */, + OBJ_320 /* Equal.swift */, + OBJ_321 /* HaveCount.swift */, + OBJ_322 /* Match.swift */, + OBJ_323 /* MatchError.swift */, + OBJ_324 /* MatcherFunc.swift */, + OBJ_325 /* MatcherProtocols.swift */, + OBJ_326 /* PostNotification.swift */, + OBJ_327 /* Predicate.swift */, + OBJ_328 /* RaisesException.swift */, + OBJ_329 /* SatisfyAllOf.swift */, + OBJ_330 /* SatisfyAnyOf.swift */, + OBJ_331 /* ThrowAssertion.swift */, + OBJ_332 /* ThrowError.swift */, + OBJ_333 /* ToSucceed.swift */, ); path = Matchers; sourceTree = ""; @@ -1497,213 +1644,214 @@ path = List; sourceTree = ""; }; - OBJ_331 /* Utils */ = { + OBJ_334 /* Utils */ = { isa = PBXGroup; children = ( - OBJ_332 /* Await.swift */, - OBJ_333 /* DispatchTimeInterval.swift */, - OBJ_334 /* Errors.swift */, - OBJ_335 /* SourceLocation.swift */, - OBJ_336 /* Stringers.swift */, + OBJ_335 /* Await.swift */, + OBJ_336 /* DispatchTimeInterval.swift */, + OBJ_337 /* Errors.swift */, + OBJ_338 /* SourceLocation.swift */, + OBJ_339 /* Stringers.swift */, ); path = Utils; sourceTree = ""; }; - OBJ_338 /* CwlPreconditionTesting 2.0.0 */ = { + OBJ_34 /* Metadata */ = { isa = PBXGroup; children = ( - OBJ_339 /* CwlMachBadInstructionHandler */, - OBJ_344 /* CwlPosixPreconditionTesting */, - OBJ_346 /* CwlPreconditionTesting */, - OBJ_350 /* Package.swift */, + OBJ_35 /* PDFInfo+Equatable.swift */, + OBJ_36 /* PDFInfo.swift */, ); - name = "CwlPreconditionTesting 2.0.0"; - sourceTree = SOURCE_ROOT; + path = Metadata; + sourceTree = ""; }; - OBJ_339 /* CwlMachBadInstructionHandler */ = { + OBJ_341 /* CwlPreconditionTesting 2.0.0 */ = { isa = PBXGroup; children = ( - OBJ_340 /* CwlMachBadInstructionHandler.m */, - OBJ_341 /* mach_excServer.c */, - OBJ_342 /* include */, + OBJ_342 /* CwlMachBadInstructionHandler */, + OBJ_347 /* CwlPosixPreconditionTesting */, + OBJ_349 /* CwlPreconditionTesting */, + OBJ_353 /* Package.swift */, ); - name = CwlMachBadInstructionHandler; - path = .build/checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler; + name = "CwlPreconditionTesting 2.0.0"; sourceTree = SOURCE_ROOT; }; - OBJ_34 /* Metadata */ = { + OBJ_342 /* CwlMachBadInstructionHandler */ = { isa = PBXGroup; children = ( - OBJ_35 /* PDFInfo+Equatable.swift */, - OBJ_36 /* PDFInfo.swift */, + OBJ_343 /* CwlMachBadInstructionHandler.m */, + OBJ_344 /* mach_excServer.c */, + OBJ_345 /* include */, ); - path = Metadata; - sourceTree = ""; + name = CwlMachBadInstructionHandler; + path = .build/checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler; + sourceTree = SOURCE_ROOT; }; - OBJ_342 /* include */ = { + OBJ_345 /* include */ = { isa = PBXGroup; children = ( - OBJ_343 /* CwlMachBadInstructionHandler.h */, + OBJ_346 /* CwlMachBadInstructionHandler.h */, ); path = include; sourceTree = ""; }; - OBJ_344 /* CwlPosixPreconditionTesting */ = { + OBJ_347 /* CwlPosixPreconditionTesting */ = { isa = PBXGroup; children = ( - OBJ_345 /* CwlCatchBadInstructionPosix.swift */, + OBJ_348 /* CwlCatchBadInstructionPosix.swift */, ); name = CwlPosixPreconditionTesting; path = .build/checkouts/CwlPreconditionTesting/Sources/CwlPosixPreconditionTesting; sourceTree = SOURCE_ROOT; }; - OBJ_346 /* CwlPreconditionTesting */ = { + OBJ_349 /* CwlPreconditionTesting */ = { isa = PBXGroup; children = ( - OBJ_347 /* CwlBadInstructionException.swift */, - OBJ_348 /* CwlCatchBadInstruction.swift */, - OBJ_349 /* CwlDarwinDefinitions.swift */, + OBJ_350 /* CwlBadInstructionException.swift */, + OBJ_351 /* CwlCatchBadInstruction.swift */, + OBJ_352 /* CwlDarwinDefinitions.swift */, ); name = CwlPreconditionTesting; path = .build/checkouts/CwlPreconditionTesting/Sources/CwlPreconditionTesting; sourceTree = SOURCE_ROOT; }; - OBJ_351 /* CwlCatchException 2.0.0 */ = { + OBJ_354 /* CwlCatchException 2.0.0 */ = { isa = PBXGroup; children = ( - OBJ_352 /* CwlCatchException */, - OBJ_354 /* CwlCatchExceptionSupport */, - OBJ_359 /* Package.swift */, + OBJ_355 /* CwlCatchException */, + OBJ_357 /* CwlCatchExceptionSupport */, + OBJ_362 /* Package.swift */, ); name = "CwlCatchException 2.0.0"; sourceTree = SOURCE_ROOT; }; - OBJ_352 /* CwlCatchException */ = { + OBJ_355 /* CwlCatchException */ = { isa = PBXGroup; children = ( - OBJ_353 /* CwlCatchException.swift */, + OBJ_356 /* CwlCatchException.swift */, ); name = CwlCatchException; path = .build/checkouts/CwlCatchException/Sources/CwlCatchException; sourceTree = SOURCE_ROOT; }; - OBJ_354 /* CwlCatchExceptionSupport */ = { + OBJ_357 /* CwlCatchExceptionSupport */ = { isa = PBXGroup; children = ( - OBJ_355 /* CwlCatchException.m */, - OBJ_356 /* include */, + OBJ_358 /* CwlCatchException.m */, + OBJ_359 /* include */, ); name = CwlCatchExceptionSupport; path = .build/checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport; sourceTree = SOURCE_ROOT; }; - OBJ_356 /* include */ = { + OBJ_359 /* include */ = { isa = PBXGroup; children = ( - OBJ_357 /* CwlCatchException.h */, - OBJ_358 /* module.modulemap */, + OBJ_360 /* CwlCatchException.h */, + OBJ_361 /* module.modulemap */, ); path = include; sourceTree = ""; }; - OBJ_360 /* Quick 3.0.0 */ = { + OBJ_363 /* Quick 3.0.0 */ = { isa = PBXGroup; children = ( - OBJ_361 /* Quick */, - OBJ_389 /* QuickObjCRuntime */, - OBJ_394 /* Package.swift */, + OBJ_364 /* Quick */, + OBJ_392 /* QuickObjCRuntime */, + OBJ_397 /* Package.swift */, ); name = "Quick 3.0.0"; sourceTree = SOURCE_ROOT; }; - OBJ_361 /* Quick */ = { - isa = PBXGroup; - children = ( - OBJ_362 /* Behavior.swift */, - OBJ_363 /* Callsite.swift */, - OBJ_364 /* Configuration */, - OBJ_367 /* DSL */, - OBJ_370 /* ErrorUtility.swift */, - OBJ_371 /* Example.swift */, - OBJ_372 /* ExampleGroup.swift */, - OBJ_373 /* ExampleMetadata.swift */, - OBJ_374 /* Filter.swift */, - OBJ_375 /* Hooks */, - OBJ_380 /* NSBundle+CurrentTestBundle.swift */, - OBJ_381 /* QuickMain.swift */, - OBJ_382 /* QuickSelectedTestSuiteBuilder.swift */, - OBJ_383 /* QuickSpec.swift */, - OBJ_384 /* QuickTestObservation.swift */, - OBJ_385 /* QuickTestSuite.swift */, - OBJ_386 /* String+C99ExtendedIdentifier.swift */, - OBJ_387 /* URL+FileName.swift */, - OBJ_388 /* World.swift */, + OBJ_364 /* Quick */ = { + isa = PBXGroup; + children = ( + OBJ_365 /* Behavior.swift */, + OBJ_366 /* Callsite.swift */, + OBJ_367 /* Configuration */, + OBJ_370 /* DSL */, + OBJ_373 /* ErrorUtility.swift */, + OBJ_374 /* Example.swift */, + OBJ_375 /* ExampleGroup.swift */, + OBJ_376 /* ExampleMetadata.swift */, + OBJ_377 /* Filter.swift */, + OBJ_378 /* Hooks */, + OBJ_383 /* NSBundle+CurrentTestBundle.swift */, + OBJ_384 /* QuickMain.swift */, + OBJ_385 /* QuickSelectedTestSuiteBuilder.swift */, + OBJ_386 /* QuickSpec.swift */, + OBJ_387 /* QuickTestObservation.swift */, + OBJ_388 /* QuickTestSuite.swift */, + OBJ_389 /* String+C99ExtendedIdentifier.swift */, + OBJ_390 /* URL+FileName.swift */, + OBJ_391 /* World.swift */, ); name = Quick; path = .build/checkouts/Quick/Sources/Quick; sourceTree = SOURCE_ROOT; }; - OBJ_364 /* Configuration */ = { + OBJ_367 /* Configuration */ = { isa = PBXGroup; children = ( - OBJ_365 /* Configuration.swift */, - OBJ_366 /* QuickConfiguration.swift */, + OBJ_368 /* Configuration.swift */, + OBJ_369 /* QuickConfiguration.swift */, ); path = Configuration; sourceTree = ""; }; - OBJ_367 /* DSL */ = { + OBJ_370 /* DSL */ = { isa = PBXGroup; children = ( - OBJ_368 /* DSL.swift */, - OBJ_369 /* World+DSL.swift */, + OBJ_371 /* DSL.swift */, + OBJ_372 /* World+DSL.swift */, ); path = DSL; sourceTree = ""; }; - OBJ_375 /* Hooks */ = { + OBJ_378 /* Hooks */ = { isa = PBXGroup; children = ( - OBJ_376 /* Closures.swift */, - OBJ_377 /* ExampleHooks.swift */, - OBJ_378 /* HooksPhase.swift */, - OBJ_379 /* SuiteHooks.swift */, + OBJ_379 /* Closures.swift */, + OBJ_380 /* ExampleHooks.swift */, + OBJ_381 /* HooksPhase.swift */, + OBJ_382 /* SuiteHooks.swift */, ); path = Hooks; sourceTree = ""; }; - OBJ_389 /* QuickObjCRuntime */ = { + OBJ_392 /* QuickObjCRuntime */ = { isa = PBXGroup; children = ( - OBJ_390 /* QuickSpecBase.m */, - OBJ_391 /* include */, + OBJ_393 /* QuickSpecBase.m */, + OBJ_394 /* include */, ); name = QuickObjCRuntime; path = .build/checkouts/Quick/Sources/QuickObjCRuntime; sourceTree = SOURCE_ROOT; }; - OBJ_391 /* include */ = { + OBJ_394 /* include */ = { isa = PBXGroup; children = ( - OBJ_392 /* QuickSpecBase.h */, - OBJ_393 /* module.modulemap */, + OBJ_395 /* QuickSpecBase.h */, + OBJ_396 /* module.modulemap */, ); path = include; sourceTree = ""; }; - OBJ_395 /* Products */ = { + OBJ_398 /* Products */ = { isa = PBXGroup; children = ( "CwlCatchException::CwlCatchExceptionSupport::Product" /* CwlCatchExceptionSupport.framework */, + "CwlCatchException::CwlCatchException::Product" /* CwlCatchException.framework */, + "Nimble::Nimble::Product" /* Nimble.framework */, + "Quick::Quick::Product" /* Quick.framework */, + "TPPDF::TPPDFIntegrationTests::Product" /* TPPDFIntegrationTests.xctest */, "CwlPreconditionTesting::CwlPosixPreconditionTesting::Product" /* CwlPosixPreconditionTesting.framework */, + "CwlPreconditionTesting::CwlMachBadInstructionHandler::Product" /* CwlMachBadInstructionHandler.framework */, "Quick::QuickObjCRuntime::Product" /* QuickObjCRuntime.framework */, "TPPDF::TPPDFTests::Product" /* TPPDFTests.xctest */, - "CwlPreconditionTesting::CwlPreconditionTesting::Product" /* CwlPreconditionTesting.framework */, - "Nimble::Nimble::Product" /* Nimble.framework */, - "Quick::Quick::Product" /* Quick.framework */, - "CwlCatchException::CwlCatchException::Product" /* CwlCatchException.framework */, "TPPDF::TPPDF::Product" /* TPPDF.framework */, - "CwlPreconditionTesting::CwlMachBadInstructionHandler::Product" /* CwlMachBadInstructionHandler.framework */, + "CwlPreconditionTesting::CwlPreconditionTesting::Product" /* CwlPreconditionTesting.framework */, ); name = Products; sourceTree = BUILT_PRODUCTS_DIR; @@ -1740,27 +1888,10 @@ children = ( OBJ_6 /* Package.swift */, OBJ_7 /* Sources */, - OBJ_174 /* Tests */, - OBJ_277 /* Dependencies */, - OBJ_395 /* Products */, - OBJ_406 /* Example macOS */, - OBJ_407 /* resources */, - OBJ_408 /* Shared iOS */, - OBJ_409 /* Example iOS-SwiftPM */, - OBJ_410 /* Shared */, - OBJ_411 /* Documentation */, - OBJ_412 /* build */, - OBJ_413 /* Example iOS-Carthage */, - OBJ_414 /* Example iOS-Cocoapods */, - OBJ_415 /* codecov.yml */, - OBJ_416 /* TPPDF.podspec */, - OBJ_417 /* LICENSE */, - OBJ_418 /* CODE_OF_CONDUCT.md */, - OBJ_419 /* README.md */, - OBJ_420 /* Gemfile */, - OBJ_421 /* Gemfile.lock */, - OBJ_422 /* CHANGELOG.md */, - D4B7EA1C25A1BB67007D09C7 /* Frameworks */, + OBJ_175 /* Tests */, + OBJ_280 /* Dependencies */, + OBJ_398 /* Products */, + D48008BE25A200AD00CFB266 /* Frameworks */, ); sourceTree = ""; }; @@ -1896,19 +2027,19 @@ children = ( OBJ_97 /* External */, OBJ_100 /* Graphics */, - OBJ_110 /* Group */, - OBJ_112 /* Image */, - OBJ_115 /* Layout */, - OBJ_133 /* List */, - OBJ_135 /* Math */, - OBJ_138 /* PDFGenerator+Debug.swift */, - OBJ_139 /* PDFGenerator+Layout.swift */, - OBJ_140 /* Pagination */, - OBJ_147 /* Section */, - OBJ_151 /* Table Of Content */, - OBJ_153 /* Table */, - OBJ_159 /* Text */, - OBJ_163 /* Utils */, + OBJ_111 /* Group */, + OBJ_113 /* Image */, + OBJ_116 /* Layout */, + OBJ_134 /* List */, + OBJ_136 /* Math */, + OBJ_139 /* PDFGenerator+Debug.swift */, + OBJ_140 /* PDFGenerator+Layout.swift */, + OBJ_141 /* Pagination */, + OBJ_148 /* Section */, + OBJ_152 /* Table Of Content */, + OBJ_154 /* Table */, + OBJ_160 /* Text */, + OBJ_164 /* Utils */, ); path = Internal; sourceTree = ""; @@ -1925,11 +2056,11 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - OBJ_452 /* Headers */ = { + OBJ_439 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 0; files = ( - OBJ_453 /* CwlMachBadInstructionHandler.h in Headers */, + OBJ_440 /* CwlMachBadInstructionHandler.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1938,15 +2069,15 @@ /* Begin PBXNativeTarget section */ "CwlCatchException::CwlCatchException" /* CwlCatchException */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_424 /* Build configuration list for PBXNativeTarget "CwlCatchException" */; + buildConfigurationList = OBJ_411 /* Build configuration list for PBXNativeTarget "CwlCatchException" */; buildPhases = ( - OBJ_427 /* Sources */, - OBJ_429 /* Frameworks */, + OBJ_414 /* Sources */, + OBJ_416 /* Frameworks */, ); buildRules = ( ); dependencies = ( - OBJ_431 /* PBXTargetDependency */, + OBJ_418 /* PBXTargetDependency */, ); name = CwlCatchException; productName = CwlCatchException; @@ -1955,10 +2086,10 @@ }; "CwlCatchException::CwlCatchExceptionSupport" /* CwlCatchExceptionSupport */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_439 /* Build configuration list for PBXNativeTarget "CwlCatchExceptionSupport" */; + buildConfigurationList = OBJ_426 /* Build configuration list for PBXNativeTarget "CwlCatchExceptionSupport" */; buildPhases = ( - OBJ_442 /* Sources */, - OBJ_444 /* Frameworks */, + OBJ_429 /* Sources */, + OBJ_431 /* Frameworks */, ); buildRules = ( ); @@ -1971,9 +2102,9 @@ }; "CwlCatchException::SwiftPMPackageDescription" /* CwlCatchExceptionPackageDescription */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_434 /* Build configuration list for PBXNativeTarget "CwlCatchExceptionPackageDescription" */; + buildConfigurationList = OBJ_421 /* Build configuration list for PBXNativeTarget "CwlCatchExceptionPackageDescription" */; buildPhases = ( - OBJ_437 /* Sources */, + OBJ_424 /* Sources */, ); buildRules = ( ); @@ -1985,11 +2116,11 @@ }; "CwlPreconditionTesting::CwlMachBadInstructionHandler" /* CwlMachBadInstructionHandler */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_446 /* Build configuration list for PBXNativeTarget "CwlMachBadInstructionHandler" */; + buildConfigurationList = OBJ_433 /* Build configuration list for PBXNativeTarget "CwlMachBadInstructionHandler" */; buildPhases = ( - OBJ_449 /* Sources */, - OBJ_452 /* Headers */, - OBJ_454 /* Frameworks */, + OBJ_436 /* Sources */, + OBJ_439 /* Headers */, + OBJ_441 /* Frameworks */, ); buildRules = ( ); @@ -2002,10 +2133,10 @@ }; "CwlPreconditionTesting::CwlPosixPreconditionTesting" /* CwlPosixPreconditionTesting */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_456 /* Build configuration list for PBXNativeTarget "CwlPosixPreconditionTesting" */; + buildConfigurationList = OBJ_443 /* Build configuration list for PBXNativeTarget "CwlPosixPreconditionTesting" */; buildPhases = ( - OBJ_459 /* Sources */, - OBJ_461 /* Frameworks */, + OBJ_446 /* Sources */, + OBJ_448 /* Frameworks */, ); buildRules = ( ); @@ -2018,17 +2149,17 @@ }; "CwlPreconditionTesting::CwlPreconditionTesting" /* CwlPreconditionTesting */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_463 /* Build configuration list for PBXNativeTarget "CwlPreconditionTesting" */; + buildConfigurationList = OBJ_450 /* Build configuration list for PBXNativeTarget "CwlPreconditionTesting" */; buildPhases = ( - OBJ_466 /* Sources */, - OBJ_470 /* Frameworks */, + OBJ_453 /* Sources */, + OBJ_457 /* Frameworks */, ); buildRules = ( ); dependencies = ( - OBJ_474 /* PBXTargetDependency */, - OBJ_475 /* PBXTargetDependency */, - OBJ_476 /* PBXTargetDependency */, + OBJ_461 /* PBXTargetDependency */, + OBJ_462 /* PBXTargetDependency */, + OBJ_463 /* PBXTargetDependency */, ); name = CwlPreconditionTesting; productName = CwlPreconditionTesting; @@ -2037,9 +2168,9 @@ }; "CwlPreconditionTesting::SwiftPMPackageDescription" /* CwlPreconditionTestingPackageDescription */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_478 /* Build configuration list for PBXNativeTarget "CwlPreconditionTestingPackageDescription" */; + buildConfigurationList = OBJ_465 /* Build configuration list for PBXNativeTarget "CwlPreconditionTestingPackageDescription" */; buildPhases = ( - OBJ_481 /* Sources */, + OBJ_468 /* Sources */, ); buildRules = ( ); @@ -2051,19 +2182,19 @@ }; "Nimble::Nimble" /* Nimble */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_484 /* Build configuration list for PBXNativeTarget "Nimble" */; + buildConfigurationList = OBJ_471 /* Build configuration list for PBXNativeTarget "Nimble" */; buildPhases = ( - OBJ_487 /* Sources */, - OBJ_541 /* Frameworks */, + OBJ_474 /* Sources */, + OBJ_528 /* Frameworks */, ); buildRules = ( ); dependencies = ( - OBJ_547 /* PBXTargetDependency */, - OBJ_548 /* PBXTargetDependency */, - OBJ_549 /* PBXTargetDependency */, - OBJ_550 /* PBXTargetDependency */, - OBJ_551 /* PBXTargetDependency */, + OBJ_534 /* PBXTargetDependency */, + OBJ_535 /* PBXTargetDependency */, + OBJ_536 /* PBXTargetDependency */, + OBJ_537 /* PBXTargetDependency */, + OBJ_538 /* PBXTargetDependency */, ); name = Nimble; productName = Nimble; @@ -2072,9 +2203,9 @@ }; "Nimble::SwiftPMPackageDescription" /* NimblePackageDescription */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_553 /* Build configuration list for PBXNativeTarget "NimblePackageDescription" */; + buildConfigurationList = OBJ_540 /* Build configuration list for PBXNativeTarget "NimblePackageDescription" */; buildPhases = ( - OBJ_556 /* Sources */, + OBJ_543 /* Sources */, ); buildRules = ( ); @@ -2086,15 +2217,15 @@ }; "Quick::Quick" /* Quick */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_559 /* Build configuration list for PBXNativeTarget "Quick" */; + buildConfigurationList = OBJ_546 /* Build configuration list for PBXNativeTarget "Quick" */; buildPhases = ( - OBJ_562 /* Sources */, - OBJ_587 /* Frameworks */, + OBJ_549 /* Sources */, + OBJ_574 /* Frameworks */, ); buildRules = ( ); dependencies = ( - OBJ_589 /* PBXTargetDependency */, + OBJ_576 /* PBXTargetDependency */, ); name = Quick; productName = Quick; @@ -2103,11 +2234,11 @@ }; "Quick::QuickObjCRuntime" /* QuickObjCRuntime */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_591 /* Build configuration list for PBXNativeTarget "QuickObjCRuntime" */; + buildConfigurationList = OBJ_578 /* Build configuration list for PBXNativeTarget "QuickObjCRuntime" */; buildPhases = ( - OBJ_594 /* Sources */, - OBJ_596 /* Frameworks */, - D4B7EA2025A1BB67007D09C7 /* Embed Frameworks */, + OBJ_581 /* Sources */, + OBJ_583 /* Frameworks */, + D48008C225A200AD00CFB266 /* Embed Frameworks */, ); buildRules = ( ); @@ -2120,9 +2251,9 @@ }; "Quick::SwiftPMPackageDescription" /* QuickPackageDescription */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_598 /* Build configuration list for PBXNativeTarget "QuickPackageDescription" */; + buildConfigurationList = OBJ_585 /* Build configuration list for PBXNativeTarget "QuickPackageDescription" */; buildPhases = ( - OBJ_601 /* Sources */, + OBJ_588 /* Sources */, ); buildRules = ( ); @@ -2134,9 +2265,9 @@ }; "TPPDF::SwiftPMPackageDescription" /* TPPDFPackageDescription */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_744 /* Build configuration list for PBXNativeTarget "TPPDFPackageDescription" */; + buildConfigurationList = OBJ_757 /* Build configuration list for PBXNativeTarget "TPPDFPackageDescription" */; buildPhases = ( - OBJ_747 /* Sources */, + OBJ_760 /* Sources */, ); buildRules = ( ); @@ -2148,10 +2279,10 @@ }; "TPPDF::TPPDF" /* TPPDF */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_604 /* Build configuration list for PBXNativeTarget "TPPDF" */; + buildConfigurationList = OBJ_591 /* Build configuration list for PBXNativeTarget "TPPDF" */; buildPhases = ( - OBJ_607 /* Sources */, - OBJ_742 /* Frameworks */, + OBJ_594 /* Sources */, + OBJ_730 /* Frameworks */, ); buildRules = ( ); @@ -2162,25 +2293,52 @@ productReference = "TPPDF::TPPDF::Product" /* TPPDF.framework */; productType = "com.apple.product-type.framework"; }; + "TPPDF::TPPDFIntegrationTests" /* TPPDFIntegrationTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = OBJ_732 /* Build configuration list for PBXNativeTarget "TPPDFIntegrationTests" */; + buildPhases = ( + OBJ_735 /* Sources */, + OBJ_737 /* Frameworks */, + D48009DF25A2071900CFB266 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + OBJ_747 /* PBXTargetDependency */, + OBJ_748 /* PBXTargetDependency */, + OBJ_749 /* PBXTargetDependency */, + OBJ_750 /* PBXTargetDependency */, + OBJ_751 /* PBXTargetDependency */, + OBJ_752 /* PBXTargetDependency */, + OBJ_753 /* PBXTargetDependency */, + OBJ_754 /* PBXTargetDependency */, + OBJ_755 /* PBXTargetDependency */, + ); + name = TPPDFIntegrationTests; + productName = TPPDFIntegrationTests; + productReference = "TPPDF::TPPDFIntegrationTests::Product" /* TPPDFIntegrationTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; "TPPDF::TPPDFTests" /* TPPDFTests */ = { isa = PBXNativeTarget; - buildConfigurationList = OBJ_755 /* Build configuration list for PBXNativeTarget "TPPDFTests" */; + buildConfigurationList = OBJ_769 /* Build configuration list for PBXNativeTarget "TPPDFTests" */; buildPhases = ( - OBJ_758 /* Sources */, - OBJ_844 /* Frameworks */, + OBJ_772 /* Sources */, + OBJ_858 /* Frameworks */, + D4800A3325A2073100CFB266 /* CopyFiles */, ); buildRules = ( ); dependencies = ( - OBJ_854 /* PBXTargetDependency */, - OBJ_855 /* PBXTargetDependency */, - OBJ_856 /* PBXTargetDependency */, - OBJ_857 /* PBXTargetDependency */, - OBJ_858 /* PBXTargetDependency */, - OBJ_859 /* PBXTargetDependency */, - OBJ_860 /* PBXTargetDependency */, - OBJ_861 /* PBXTargetDependency */, - OBJ_862 /* PBXTargetDependency */, + OBJ_868 /* PBXTargetDependency */, + OBJ_869 /* PBXTargetDependency */, + OBJ_870 /* PBXTargetDependency */, + OBJ_871 /* PBXTargetDependency */, + OBJ_872 /* PBXTargetDependency */, + OBJ_873 /* PBXTargetDependency */, + OBJ_874 /* PBXTargetDependency */, + OBJ_875 /* PBXTargetDependency */, + OBJ_876 /* PBXTargetDependency */, ); name = TPPDFTests; productName = TPPDFTests; @@ -2204,7 +2362,7 @@ en, ); mainGroup = OBJ_5; - productRefGroup = OBJ_395 /* Products */; + productRefGroup = OBJ_398 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( @@ -2221,6 +2379,7 @@ "Quick::QuickObjCRuntime" /* QuickObjCRuntime */, "Quick::SwiftPMPackageDescription" /* QuickPackageDescription */, "TPPDF::TPPDF" /* TPPDF */, + "TPPDF::TPPDFIntegrationTests" /* TPPDFIntegrationTests */, "TPPDF::SwiftPMPackageDescription" /* TPPDFPackageDescription */, "TPPDF::TPPDFPackageTests::ProductTarget" /* TPPDFPackageTests */, "TPPDF::TPPDFTests" /* TPPDFTests */, @@ -2229,524 +2388,584 @@ /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ - OBJ_427 /* Sources */ = { + OBJ_414 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_428 /* CwlCatchException.swift in Sources */, + OBJ_415 /* CwlCatchException.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_437 /* Sources */ = { + OBJ_424 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_438 /* Package.swift in Sources */, + OBJ_425 /* Package.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_442 /* Sources */ = { + OBJ_429 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_443 /* CwlCatchException.m in Sources */, + OBJ_430 /* CwlCatchException.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_449 /* Sources */ = { + OBJ_436 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_450 /* CwlMachBadInstructionHandler.m in Sources */, - OBJ_451 /* mach_excServer.c in Sources */, + OBJ_437 /* CwlMachBadInstructionHandler.m in Sources */, + OBJ_438 /* mach_excServer.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_459 /* Sources */ = { + OBJ_446 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_460 /* CwlCatchBadInstructionPosix.swift in Sources */, + OBJ_447 /* CwlCatchBadInstructionPosix.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_466 /* Sources */ = { + OBJ_453 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_467 /* CwlBadInstructionException.swift in Sources */, - OBJ_468 /* CwlCatchBadInstruction.swift in Sources */, - OBJ_469 /* CwlDarwinDefinitions.swift in Sources */, + OBJ_454 /* CwlBadInstructionException.swift in Sources */, + OBJ_455 /* CwlCatchBadInstruction.swift in Sources */, + OBJ_456 /* CwlDarwinDefinitions.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_481 /* Sources */ = { + OBJ_468 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_482 /* Package.swift in Sources */, + OBJ_469 /* Package.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_487 /* Sources */ = { + OBJ_474 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_488 /* AdapterProtocols.swift in Sources */, - OBJ_489 /* AssertionDispatcher.swift in Sources */, - OBJ_490 /* AssertionRecorder.swift in Sources */, - OBJ_491 /* NMBExpectation.swift in Sources */, - OBJ_492 /* NMBObjCMatcher.swift in Sources */, - OBJ_493 /* NimbleEnvironment.swift in Sources */, - OBJ_494 /* NimbleXCTestHandler.swift in Sources */, - OBJ_495 /* ExceptionCapture.swift in Sources */, - OBJ_496 /* DSL+Wait.swift in Sources */, - OBJ_497 /* DSL.swift in Sources */, - OBJ_498 /* Expectation.swift in Sources */, - OBJ_499 /* ExpectationMessage.swift in Sources */, - OBJ_500 /* Expression.swift in Sources */, - OBJ_501 /* FailureMessage.swift in Sources */, - OBJ_502 /* AllPass.swift in Sources */, - OBJ_503 /* Async.swift in Sources */, - OBJ_504 /* BeAKindOf.swift in Sources */, - OBJ_505 /* BeAnInstanceOf.swift in Sources */, - OBJ_506 /* BeCloseTo.swift in Sources */, - OBJ_507 /* BeEmpty.swift in Sources */, - OBJ_508 /* BeGreaterThan.swift in Sources */, - OBJ_509 /* BeGreaterThanOrEqualTo.swift in Sources */, - OBJ_510 /* BeIdenticalTo.swift in Sources */, - OBJ_511 /* BeLessThan.swift in Sources */, - OBJ_512 /* BeLessThanOrEqual.swift in Sources */, - OBJ_513 /* BeLogical.swift in Sources */, - OBJ_514 /* BeNil.swift in Sources */, - OBJ_515 /* BeVoid.swift in Sources */, - OBJ_516 /* BeginWith.swift in Sources */, - OBJ_517 /* BeginWithPrefix.swift in Sources */, - OBJ_518 /* Contain.swift in Sources */, - OBJ_519 /* ContainElementSatisfying.swift in Sources */, - OBJ_520 /* ElementsEqual.swift in Sources */, - OBJ_521 /* EndWith.swift in Sources */, - OBJ_522 /* Equal.swift in Sources */, - OBJ_523 /* HaveCount.swift in Sources */, - OBJ_524 /* Match.swift in Sources */, - OBJ_525 /* MatchError.swift in Sources */, - OBJ_526 /* MatcherFunc.swift in Sources */, - OBJ_527 /* MatcherProtocols.swift in Sources */, - OBJ_528 /* PostNotification.swift in Sources */, - OBJ_529 /* Predicate.swift in Sources */, - OBJ_530 /* RaisesException.swift in Sources */, - OBJ_531 /* SatisfyAllOf.swift in Sources */, - OBJ_532 /* SatisfyAnyOf.swift in Sources */, - OBJ_533 /* ThrowAssertion.swift in Sources */, - OBJ_534 /* ThrowError.swift in Sources */, - OBJ_535 /* ToSucceed.swift in Sources */, - OBJ_536 /* Await.swift in Sources */, - OBJ_537 /* DispatchTimeInterval.swift in Sources */, - OBJ_538 /* Errors.swift in Sources */, - OBJ_539 /* SourceLocation.swift in Sources */, - OBJ_540 /* Stringers.swift in Sources */, + OBJ_475 /* AdapterProtocols.swift in Sources */, + OBJ_476 /* AssertionDispatcher.swift in Sources */, + OBJ_477 /* AssertionRecorder.swift in Sources */, + OBJ_478 /* NMBExpectation.swift in Sources */, + OBJ_479 /* NMBObjCMatcher.swift in Sources */, + OBJ_480 /* NimbleEnvironment.swift in Sources */, + OBJ_481 /* NimbleXCTestHandler.swift in Sources */, + OBJ_482 /* ExceptionCapture.swift in Sources */, + OBJ_483 /* DSL+Wait.swift in Sources */, + OBJ_484 /* DSL.swift in Sources */, + OBJ_485 /* Expectation.swift in Sources */, + OBJ_486 /* ExpectationMessage.swift in Sources */, + OBJ_487 /* Expression.swift in Sources */, + OBJ_488 /* FailureMessage.swift in Sources */, + OBJ_489 /* AllPass.swift in Sources */, + OBJ_490 /* Async.swift in Sources */, + OBJ_491 /* BeAKindOf.swift in Sources */, + OBJ_492 /* BeAnInstanceOf.swift in Sources */, + OBJ_493 /* BeCloseTo.swift in Sources */, + OBJ_494 /* BeEmpty.swift in Sources */, + OBJ_495 /* BeGreaterThan.swift in Sources */, + OBJ_496 /* BeGreaterThanOrEqualTo.swift in Sources */, + OBJ_497 /* BeIdenticalTo.swift in Sources */, + OBJ_498 /* BeLessThan.swift in Sources */, + OBJ_499 /* BeLessThanOrEqual.swift in Sources */, + OBJ_500 /* BeLogical.swift in Sources */, + OBJ_501 /* BeNil.swift in Sources */, + OBJ_502 /* BeVoid.swift in Sources */, + OBJ_503 /* BeginWith.swift in Sources */, + OBJ_504 /* BeginWithPrefix.swift in Sources */, + OBJ_505 /* Contain.swift in Sources */, + OBJ_506 /* ContainElementSatisfying.swift in Sources */, + OBJ_507 /* ElementsEqual.swift in Sources */, + OBJ_508 /* EndWith.swift in Sources */, + OBJ_509 /* Equal.swift in Sources */, + OBJ_510 /* HaveCount.swift in Sources */, + OBJ_511 /* Match.swift in Sources */, + OBJ_512 /* MatchError.swift in Sources */, + OBJ_513 /* MatcherFunc.swift in Sources */, + OBJ_514 /* MatcherProtocols.swift in Sources */, + OBJ_515 /* PostNotification.swift in Sources */, + OBJ_516 /* Predicate.swift in Sources */, + OBJ_517 /* RaisesException.swift in Sources */, + OBJ_518 /* SatisfyAllOf.swift in Sources */, + OBJ_519 /* SatisfyAnyOf.swift in Sources */, + OBJ_520 /* ThrowAssertion.swift in Sources */, + OBJ_521 /* ThrowError.swift in Sources */, + OBJ_522 /* ToSucceed.swift in Sources */, + OBJ_523 /* Await.swift in Sources */, + OBJ_524 /* DispatchTimeInterval.swift in Sources */, + OBJ_525 /* Errors.swift in Sources */, + OBJ_526 /* SourceLocation.swift in Sources */, + OBJ_527 /* Stringers.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_556 /* Sources */ = { + OBJ_543 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_557 /* Package.swift in Sources */, + OBJ_544 /* Package.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_562 /* Sources */ = { + OBJ_549 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_563 /* Behavior.swift in Sources */, - OBJ_564 /* Callsite.swift in Sources */, - OBJ_565 /* Configuration.swift in Sources */, - OBJ_566 /* QuickConfiguration.swift in Sources */, - OBJ_567 /* DSL.swift in Sources */, - OBJ_568 /* World+DSL.swift in Sources */, - OBJ_569 /* ErrorUtility.swift in Sources */, - OBJ_570 /* Example.swift in Sources */, - OBJ_571 /* ExampleGroup.swift in Sources */, - OBJ_572 /* ExampleMetadata.swift in Sources */, - OBJ_573 /* Filter.swift in Sources */, - OBJ_574 /* Closures.swift in Sources */, - OBJ_575 /* ExampleHooks.swift in Sources */, - OBJ_576 /* HooksPhase.swift in Sources */, - OBJ_577 /* SuiteHooks.swift in Sources */, - OBJ_578 /* NSBundle+CurrentTestBundle.swift in Sources */, - OBJ_579 /* QuickMain.swift in Sources */, - OBJ_580 /* QuickSelectedTestSuiteBuilder.swift in Sources */, - OBJ_581 /* QuickSpec.swift in Sources */, - OBJ_582 /* QuickTestObservation.swift in Sources */, - OBJ_583 /* QuickTestSuite.swift in Sources */, - OBJ_584 /* String+C99ExtendedIdentifier.swift in Sources */, - OBJ_585 /* URL+FileName.swift in Sources */, - OBJ_586 /* World.swift in Sources */, + OBJ_550 /* Behavior.swift in Sources */, + OBJ_551 /* Callsite.swift in Sources */, + OBJ_552 /* Configuration.swift in Sources */, + OBJ_553 /* QuickConfiguration.swift in Sources */, + OBJ_554 /* DSL.swift in Sources */, + OBJ_555 /* World+DSL.swift in Sources */, + OBJ_556 /* ErrorUtility.swift in Sources */, + OBJ_557 /* Example.swift in Sources */, + OBJ_558 /* ExampleGroup.swift in Sources */, + OBJ_559 /* ExampleMetadata.swift in Sources */, + OBJ_560 /* Filter.swift in Sources */, + OBJ_561 /* Closures.swift in Sources */, + OBJ_562 /* ExampleHooks.swift in Sources */, + OBJ_563 /* HooksPhase.swift in Sources */, + OBJ_564 /* SuiteHooks.swift in Sources */, + OBJ_565 /* NSBundle+CurrentTestBundle.swift in Sources */, + OBJ_566 /* QuickMain.swift in Sources */, + OBJ_567 /* QuickSelectedTestSuiteBuilder.swift in Sources */, + OBJ_568 /* QuickSpec.swift in Sources */, + OBJ_569 /* QuickTestObservation.swift in Sources */, + OBJ_570 /* QuickTestSuite.swift in Sources */, + OBJ_571 /* String+C99ExtendedIdentifier.swift in Sources */, + OBJ_572 /* URL+FileName.swift in Sources */, + OBJ_573 /* World.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_594 /* Sources */ = { + OBJ_581 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_595 /* QuickSpecBase.m in Sources */, + OBJ_582 /* QuickSpecBase.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_601 /* Sources */ = { + OBJ_588 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_602 /* Package.swift in Sources */, + OBJ_589 /* Package.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_607 /* Sources */ = { + OBJ_594 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_608 /* PDFExternalDocument.swift in Sources */, - OBJ_609 /* PDFBezierPath+Copying.swift in Sources */, - OBJ_610 /* PDFBezierPath.swift in Sources */, - OBJ_611 /* PDFBezierPathVertex.swift in Sources */, - OBJ_612 /* PDFDynamicGeometryShape.swift in Sources */, - OBJ_613 /* PDFLineStyle.swift in Sources */, - OBJ_614 /* PDFLineType.swift in Sources */, - OBJ_615 /* PDFGroup+Objects.swift in Sources */, - OBJ_616 /* PDFGroup.swift in Sources */, - OBJ_617 /* PDFGroupContainer.swift in Sources */, - OBJ_618 /* PDFMasterGroup.swift in Sources */, - OBJ_619 /* PDFImage.swift in Sources */, - OBJ_620 /* PDFImageOptions.swift in Sources */, - OBJ_621 /* PDFImageSizeFit.swift in Sources */, - OBJ_622 /* PDFContainer.swift in Sources */, - OBJ_623 /* PDFPageLayout.swift in Sources */, - D4B7EA4125A1C956007D09C7 /* PDFContext.swift in Sources */, - OBJ_624 /* PDFList.swift in Sources */, - OBJ_625 /* PDFListItem.swift in Sources */, - OBJ_626 /* PDFListItemSymbol.swift in Sources */, - OBJ_627 /* PDFInfo+Equatable.swift in Sources */, - OBJ_628 /* PDFInfo.swift in Sources */, - OBJ_629 /* PDFDocument.swift in Sources */, - OBJ_630 /* PDFGenerator+Generation.swift in Sources */, - OBJ_631 /* PDFGenerator.swift in Sources */, - OBJ_632 /* PDFGeneratorProtocol.swift in Sources */, - OBJ_633 /* PDFMultiDocumentGenerator.swift in Sources */, - OBJ_634 /* PDFPageFormat+Layout.swift in Sources */, - OBJ_635 /* PDFPageFormat+SizeConstants.swift in Sources */, - OBJ_636 /* PDFPageFormat.swift in Sources */, - OBJ_637 /* PDFSection.swift in Sources */, - OBJ_638 /* PDFSectionColumn.swift in Sources */, - OBJ_639 /* PDFTableOfContent.swift in Sources */, - OBJ_640 /* NSAttributedString+PDFTableContent.swift in Sources */, - OBJ_641 /* Number+PDFTableContentable.swift in Sources */, - OBJ_642 /* PDFTableContent+ContentType.swift in Sources */, - OBJ_643 /* PDFTableContent.swift in Sources */, - OBJ_644 /* PDFTableContentable.swift in Sources */, - OBJ_645 /* String+PDFTableContent.swift in Sources */, - OBJ_646 /* UIImage+PDFTableContent.swift in Sources */, - OBJ_647 /* PDFTable.swift in Sources */, - OBJ_648 /* PDFTableCell.swift in Sources */, - OBJ_649 /* PDFTableCellAlignment.swift in Sources */, - OBJ_650 /* PDFTableCellPosition.swift in Sources */, - OBJ_651 /* PDFTable+CellSubscripts.swift in Sources */, - OBJ_652 /* PDFTable+ColumnSubscripts.swift in Sources */, - OBJ_653 /* PDFTable+RowSubscripts.swift in Sources */, - OBJ_654 /* PDFTable+SectionSubscripts.swift in Sources */, - OBJ_655 /* PDFTableColumn.swift in Sources */, - OBJ_656 /* PDFTableColumns.swift in Sources */, - OBJ_657 /* PDFTableMergeable.swift in Sources */, - OBJ_658 /* PDFTableRow.swift in Sources */, - OBJ_659 /* PDFTableRows.swift in Sources */, - OBJ_660 /* PDFTableSection.swift in Sources */, - OBJ_661 /* PDFTableCellBorders.swift in Sources */, - OBJ_662 /* PDFTableCellPosition+Equatable-Hashable.swift in Sources */, - OBJ_663 /* PDFTableCellStyle.swift in Sources */, - OBJ_664 /* PDFTableStyle+Defaults.swift in Sources */, - OBJ_665 /* PDFTableStyle+Equatable.swift in Sources */, - OBJ_666 /* PDFTableStyle.swift in Sources */, - OBJ_667 /* PDFAttributedText.swift in Sources */, - OBJ_668 /* PDFSimpleText+Equatable.swift in Sources */, - OBJ_669 /* PDFSimpleText.swift in Sources */, - OBJ_670 /* PDFText.swift in Sources */, - OBJ_671 /* PDFTextStyle.swift in Sources */, - OBJ_672 /* CrossPlattformGraphics.swift in Sources */, - OBJ_673 /* PDFConstants.swift in Sources */, - OBJ_674 /* PDFCopy.swift in Sources */, - OBJ_675 /* PDFDocumentObject.swift in Sources */, - OBJ_676 /* PDFError.swift in Sources */, - OBJ_677 /* PDFRenderObject.swift in Sources */, - OBJ_678 /* PDFTaggableObject.swift in Sources */, - OBJ_679 /* PDFExternalDocumentObject.swift in Sources */, - OBJ_680 /* PDFExternalPageObject.swift in Sources */, - OBJ_681 /* PDFContextGraphics.swift in Sources */, - OBJ_682 /* PDFGraphics.swift in Sources */, - OBJ_683 /* PDFLineObject.swift in Sources */, - OBJ_684 /* PDFLineSeparatorObject+Equatable.swift in Sources */, - OBJ_685 /* PDFLineSeparatorObject.swift in Sources */, - OBJ_686 /* PDFRectangleObject.swift in Sources */, - OBJ_687 /* UIColor+CloseToEqual.swift in Sources */, - OBJ_688 /* UIColor+Hex.swift in Sources */, - OBJ_689 /* UIImage+Pixel.swift in Sources */, - OBJ_690 /* PDFGroupObject.swift in Sources */, - OBJ_691 /* PDFImageObject.swift in Sources */, - OBJ_692 /* PDFImageRowObject.swift in Sources */, - OBJ_693 /* PDFColumnLayoutState.swift in Sources */, - OBJ_694 /* PDFIndentationObject+Equatable.swift in Sources */, - OBJ_695 /* PDFIndentationObject.swift in Sources */, - OBJ_696 /* PDFLayout+Equatable.swift in Sources */, - OBJ_697 /* PDFLayout.swift in Sources */, - OBJ_698 /* PDFLayoutHeights+Equatable.swift in Sources */, - OBJ_699 /* PDFLayoutHeights.swift in Sources */, - OBJ_700 /* PDFLayoutIndentations+Equatable.swift in Sources */, - OBJ_701 /* PDFLayoutIndentations.swift in Sources */, - OBJ_702 /* PDFMarginObject.swift in Sources */, - OBJ_703 /* PDFOffsetObject+Equatable.swift in Sources */, - OBJ_704 /* PDFOffsetObject.swift in Sources */, - OBJ_705 /* PDFPageBreakObject+Equatable.swift in Sources */, - OBJ_706 /* PDFPageBreakObject.swift in Sources */, - OBJ_707 /* PDFPageLayout+Equatable.swift in Sources */, - OBJ_708 /* PDFSectionColumnContainer.swift in Sources */, - OBJ_709 /* PDFSpaceObject.swift in Sources */, - OBJ_710 /* PDFListObject.swift in Sources */, - OBJ_711 /* CGPoint+Math.swift in Sources */, - OBJ_712 /* CGPoint+Null.swift in Sources */, - OBJ_713 /* PDFGenerator+Debug.swift in Sources */, - OBJ_714 /* PDFGenerator+Layout.swift in Sources */, - OBJ_715 /* Int+RomanNumerals.swift in Sources */, - OBJ_716 /* PDFPagination+Equatable.swift in Sources */, - OBJ_717 /* PDFPagination.swift in Sources */, - OBJ_718 /* PDFPaginationClosure.swift in Sources */, - OBJ_719 /* PDFPaginationStyle+Equatable.swift in Sources */, - OBJ_720 /* PDFPaginationStyle.swift in Sources */, - OBJ_721 /* PDFColumnWrapSectionObject.swift in Sources */, - OBJ_722 /* PDFSectionColumnObject.swift in Sources */, - OBJ_723 /* PDFSectionObject.swift in Sources */, - OBJ_724 /* PDFTableOfContentObject.swift in Sources */, - OBJ_725 /* PDFTableCalculatedCell.swift in Sources */, - OBJ_726 /* PDFTableMergeUtil.swift in Sources */, - OBJ_727 /* PDFTableNode.swift in Sources */, - OBJ_728 /* PDFTableObject.swift in Sources */, - OBJ_729 /* PDFTableValidator.swift in Sources */, - OBJ_730 /* PDFAttributedTextObject.swift in Sources */, - OBJ_731 /* PDFFontObject.swift in Sources */, - OBJ_732 /* PDFTextColorObject.swift in Sources */, - OBJ_733 /* PDFAttributableObject.swift in Sources */, - OBJ_734 /* PDFObjectAttribute.swift in Sources */, - OBJ_735 /* CustomStringConvertible+AutoDescribing.swift in Sources */, - OBJ_736 /* FileManager+TemporaryFiles.swift in Sources */, - OBJ_737 /* PDFCalculations.swift in Sources */, - OBJ_738 /* PDFLocatedRenderObject.swift in Sources */, - OBJ_739 /* PDFSlicedObject.swift in Sources */, - OBJ_740 /* Stack.swift in Sources */, - OBJ_741 /* WeakRef.swift in Sources */, + OBJ_595 /* PDFExternalDocument.swift in Sources */, + OBJ_596 /* PDFBezierPath+Copying.swift in Sources */, + OBJ_597 /* PDFBezierPath.swift in Sources */, + OBJ_598 /* PDFBezierPathVertex.swift in Sources */, + OBJ_599 /* PDFDynamicGeometryShape.swift in Sources */, + OBJ_600 /* PDFLineStyle.swift in Sources */, + OBJ_601 /* PDFLineType.swift in Sources */, + OBJ_602 /* PDFGroup+Objects.swift in Sources */, + OBJ_603 /* PDFGroup.swift in Sources */, + OBJ_604 /* PDFGroupContainer.swift in Sources */, + OBJ_605 /* PDFMasterGroup.swift in Sources */, + OBJ_606 /* PDFImage.swift in Sources */, + OBJ_607 /* PDFImageOptions.swift in Sources */, + OBJ_608 /* PDFImageSizeFit.swift in Sources */, + OBJ_609 /* PDFContainer.swift in Sources */, + OBJ_610 /* PDFPageLayout.swift in Sources */, + OBJ_611 /* PDFList.swift in Sources */, + OBJ_612 /* PDFListItem.swift in Sources */, + OBJ_613 /* PDFListItemSymbol.swift in Sources */, + OBJ_614 /* PDFInfo+Equatable.swift in Sources */, + OBJ_615 /* PDFInfo.swift in Sources */, + OBJ_616 /* PDFDocument.swift in Sources */, + OBJ_617 /* PDFGenerator+Generation.swift in Sources */, + OBJ_618 /* PDFGenerator.swift in Sources */, + OBJ_619 /* PDFGeneratorProtocol.swift in Sources */, + OBJ_620 /* PDFMultiDocumentGenerator.swift in Sources */, + OBJ_621 /* PDFPageFormat+Layout.swift in Sources */, + OBJ_622 /* PDFPageFormat+SizeConstants.swift in Sources */, + OBJ_623 /* PDFPageFormat.swift in Sources */, + OBJ_624 /* PDFSection.swift in Sources */, + OBJ_625 /* PDFSectionColumn.swift in Sources */, + OBJ_626 /* PDFTableOfContent.swift in Sources */, + OBJ_627 /* NSAttributedString+PDFTableContent.swift in Sources */, + OBJ_628 /* Number+PDFTableContentable.swift in Sources */, + OBJ_629 /* PDFTableContent+ContentType.swift in Sources */, + OBJ_630 /* PDFTableContent.swift in Sources */, + OBJ_631 /* PDFTableContentable.swift in Sources */, + OBJ_632 /* String+PDFTableContent.swift in Sources */, + OBJ_633 /* UIImage+PDFTableContent.swift in Sources */, + OBJ_634 /* PDFTable.swift in Sources */, + OBJ_635 /* PDFTableCell.swift in Sources */, + OBJ_636 /* PDFTableCellAlignment.swift in Sources */, + OBJ_637 /* PDFTableCellPosition.swift in Sources */, + OBJ_638 /* PDFTable+CellSubscripts.swift in Sources */, + OBJ_639 /* PDFTable+ColumnSubscripts.swift in Sources */, + OBJ_640 /* PDFTable+RowSubscripts.swift in Sources */, + OBJ_641 /* PDFTable+SectionSubscripts.swift in Sources */, + OBJ_642 /* PDFTableColumn.swift in Sources */, + OBJ_643 /* PDFTableColumns.swift in Sources */, + OBJ_644 /* PDFTableMergeable.swift in Sources */, + OBJ_645 /* PDFTableRow.swift in Sources */, + OBJ_646 /* PDFTableRows.swift in Sources */, + OBJ_647 /* PDFTableSection.swift in Sources */, + OBJ_648 /* PDFTableCellBorders.swift in Sources */, + OBJ_649 /* PDFTableCellPosition+Equatable-Hashable.swift in Sources */, + OBJ_650 /* PDFTableCellStyle.swift in Sources */, + OBJ_651 /* PDFTableStyle+Defaults.swift in Sources */, + OBJ_652 /* PDFTableStyle+Equatable.swift in Sources */, + OBJ_653 /* PDFTableStyle.swift in Sources */, + OBJ_654 /* PDFAttributedText.swift in Sources */, + OBJ_655 /* PDFSimpleText+Equatable.swift in Sources */, + OBJ_656 /* PDFSimpleText.swift in Sources */, + OBJ_657 /* PDFText.swift in Sources */, + OBJ_658 /* PDFTextStyle.swift in Sources */, + OBJ_659 /* CrossPlattformGraphics.swift in Sources */, + OBJ_660 /* PDFConstants.swift in Sources */, + OBJ_661 /* PDFCopy.swift in Sources */, + OBJ_662 /* PDFDocumentObject.swift in Sources */, + OBJ_663 /* PDFError.swift in Sources */, + OBJ_664 /* PDFRenderObject.swift in Sources */, + OBJ_665 /* PDFTaggableObject.swift in Sources */, + OBJ_666 /* PDFExternalDocumentObject.swift in Sources */, + OBJ_667 /* PDFExternalPageObject.swift in Sources */, + OBJ_668 /* PDFContext.swift in Sources */, + OBJ_669 /* PDFContextGraphics.swift in Sources */, + OBJ_670 /* PDFGraphics.swift in Sources */, + OBJ_671 /* PDFLineObject.swift in Sources */, + OBJ_672 /* PDFLineSeparatorObject+Equatable.swift in Sources */, + OBJ_673 /* PDFLineSeparatorObject.swift in Sources */, + OBJ_674 /* PDFRectangleObject.swift in Sources */, + OBJ_675 /* UIColor+CloseToEqual.swift in Sources */, + OBJ_676 /* UIColor+Hex.swift in Sources */, + OBJ_677 /* UIImage+Pixel.swift in Sources */, + OBJ_678 /* PDFGroupObject.swift in Sources */, + OBJ_679 /* PDFImageObject.swift in Sources */, + OBJ_680 /* PDFImageRowObject.swift in Sources */, + OBJ_681 /* PDFColumnLayoutState.swift in Sources */, + OBJ_682 /* PDFIndentationObject+Equatable.swift in Sources */, + OBJ_683 /* PDFIndentationObject.swift in Sources */, + OBJ_684 /* PDFLayout+Equatable.swift in Sources */, + OBJ_685 /* PDFLayout.swift in Sources */, + OBJ_686 /* PDFLayoutHeights+Equatable.swift in Sources */, + OBJ_687 /* PDFLayoutHeights.swift in Sources */, + OBJ_688 /* PDFLayoutIndentations+Equatable.swift in Sources */, + OBJ_689 /* PDFLayoutIndentations.swift in Sources */, + OBJ_690 /* PDFMarginObject.swift in Sources */, + OBJ_691 /* PDFOffsetObject+Equatable.swift in Sources */, + OBJ_692 /* PDFOffsetObject.swift in Sources */, + OBJ_693 /* PDFPageBreakObject+Equatable.swift in Sources */, + OBJ_694 /* PDFPageBreakObject.swift in Sources */, + OBJ_695 /* PDFPageLayout+Equatable.swift in Sources */, + OBJ_696 /* PDFSectionColumnContainer.swift in Sources */, + OBJ_697 /* PDFSpaceObject.swift in Sources */, + OBJ_698 /* PDFListObject.swift in Sources */, + OBJ_699 /* CGPoint+Math.swift in Sources */, + OBJ_700 /* CGPoint+Null.swift in Sources */, + OBJ_701 /* PDFGenerator+Debug.swift in Sources */, + OBJ_702 /* PDFGenerator+Layout.swift in Sources */, + OBJ_703 /* Int+RomanNumerals.swift in Sources */, + OBJ_704 /* PDFPagination+Equatable.swift in Sources */, + OBJ_705 /* PDFPagination.swift in Sources */, + OBJ_706 /* PDFPaginationClosure.swift in Sources */, + OBJ_707 /* PDFPaginationStyle+Equatable.swift in Sources */, + OBJ_708 /* PDFPaginationStyle.swift in Sources */, + OBJ_709 /* PDFColumnWrapSectionObject.swift in Sources */, + OBJ_710 /* PDFSectionColumnObject.swift in Sources */, + OBJ_711 /* PDFSectionObject.swift in Sources */, + OBJ_712 /* PDFTableOfContentObject.swift in Sources */, + OBJ_713 /* PDFTableCalculatedCell.swift in Sources */, + OBJ_714 /* PDFTableMergeUtil.swift in Sources */, + OBJ_715 /* PDFTableNode.swift in Sources */, + OBJ_716 /* PDFTableObject.swift in Sources */, + OBJ_717 /* PDFTableValidator.swift in Sources */, + OBJ_718 /* PDFAttributedTextObject.swift in Sources */, + OBJ_719 /* PDFFontObject.swift in Sources */, + OBJ_720 /* PDFTextColorObject.swift in Sources */, + OBJ_721 /* PDFAttributableObject.swift in Sources */, + OBJ_722 /* PDFObjectAttribute.swift in Sources */, + OBJ_723 /* CustomStringConvertible+AutoDescribing.swift in Sources */, + OBJ_724 /* FileManager+TemporaryFiles.swift in Sources */, + OBJ_725 /* PDFCalculations.swift in Sources */, + OBJ_726 /* PDFLocatedRenderObject.swift in Sources */, + OBJ_727 /* PDFSlicedObject.swift in Sources */, + OBJ_728 /* Stack.swift in Sources */, + OBJ_729 /* WeakRef.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_747 /* Sources */ = { + OBJ_735 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_748 /* Package.swift in Sources */, + OBJ_736 /* ExternalDocumentTests.swift in Sources */, + D48009CD25A2050900CFB266 /* Bundle+Module.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - OBJ_758 /* Sources */ = { + OBJ_760 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - OBJ_759 /* PDFTableRowSpec.swift in Sources */, - OBJ_760 /* PDFTable_RowSubscriptsSpec.swift in Sources */, - OBJ_761 /* PDFGraphics_Spec.swift in Sources */, - OBJ_762 /* PDFLineSeparatorObject+Equatable_Spec.swift in Sources */, - OBJ_763 /* PDFLineSeparatorObject_Spec.swift in Sources */, - OBJ_764 /* PDFLineStyle_Equatable_Spec.swift in Sources */, - OBJ_765 /* PDFLineStyle_Spec.swift in Sources */, - OBJ_766 /* PDFLineType_Spec.swift in Sources */, - OBJ_767 /* UIColor+Hex_Spec.swift in Sources */, - OBJ_768 /* UIImage+CloseToEqual_Spec.swift in Sources */, - OBJ_769 /* UIImage+Pixel_Spec.swift in Sources */, - OBJ_770 /* PDFImageSizeFit_Spec.swift in Sources */, - OBJ_771 /* PDFImage_Equatable_Spec.swift in Sources */, - OBJ_772 /* PDFImage_Spec.swift in Sources */, - OBJ_773 /* PDFTableMergeUtil_Spec.swift in Sources */, - OBJ_774 /* PDFTableObjectSpec.swift in Sources */, - OBJ_775 /* PDFContainer_Spec.swift in Sources */, - OBJ_776 /* PDFIndentationObject_Equatable_Spec.swift in Sources */, - OBJ_777 /* PDFIndentationObject_Spec.swift in Sources */, - OBJ_778 /* PDFLayout+Equatable_Spec.swift in Sources */, - OBJ_779 /* PDFLayoutHeights+Equatable_Spec.swift in Sources */, - OBJ_780 /* PDFLayoutHeights_Spec.swift in Sources */, - OBJ_781 /* PDFLayoutIndentations+Equatable_Spec.swift in Sources */, - OBJ_782 /* PDFLayoutIndentations_Spec.swift in Sources */, - OBJ_783 /* PDFLayout_Spec.swift in Sources */, - OBJ_784 /* PDFOffsetObject+Equatable_Spec.swift in Sources */, - OBJ_785 /* PDFOffsetObject_Spec.swift in Sources */, - OBJ_786 /* PDFPageBreakObject+Equatable_Spec.swift in Sources */, - OBJ_787 /* PDFPageBreakObject_Spec.swift in Sources */, - OBJ_788 /* PDFPageLayout+Equatable_Spec.swift in Sources */, - OBJ_789 /* PDFPageLayout_Spec.swift in Sources */, - OBJ_790 /* PDFSpaceObject_Spec.swift in Sources */, - OBJ_791 /* PDFList+Equatable_Spec.swift in Sources */, - OBJ_792 /* PDFListItemObject_Spec.swift in Sources */, - OBJ_793 /* PDFListItemSymbol_Spec.swift in Sources */, - OBJ_794 /* PDFListItem_Equatable_Spec.swift in Sources */, - OBJ_795 /* PDFListItem_Spec.swift in Sources */, - OBJ_796 /* PDFList_Spec.swift in Sources */, - OBJ_797 /* CGPoint+Math_Spec.swift in Sources */, - OBJ_798 /* PDFInfo+Equatable_Spec.swift in Sources */, - OBJ_799 /* PDFInfo_Spec.swift in Sources */, - OBJ_800 /* PDFDocument+Objects_Spec.swift in Sources */, - OBJ_801 /* PDFDocument_Spec.swift in Sources */, - OBJ_802 /* PDFGenerator+Debug_Spec.swift in Sources */, - OBJ_803 /* PDFGenerator+Generation_Spec.swift in Sources */, - OBJ_804 /* PDFGenerator+Layout_Spec.swift in Sources */, - OBJ_805 /* PDFGenerator_Spec.swift in Sources */, - OBJ_806 /* PDFPageFormat+Layout_Spec.swift in Sources */, - OBJ_807 /* PDFPageFormat+SizeConstants_Spec.swift in Sources */, - OBJ_808 /* PDFPageFormat_Spec.swift in Sources */, - OBJ_809 /* Int+RomanNumerals_Spec.swift in Sources */, - OBJ_810 /* PDFPaginationStyle+Equatable_Spec.swift in Sources */, - OBJ_811 /* PDFPaginationStyle_Spec.swift in Sources */, - OBJ_812 /* PDFPagination_Closure_Spec.swift in Sources */, - OBJ_813 /* PDFPagination_Equatable_Spec.swift in Sources */, - OBJ_814 /* PDFPagination_Spec.swift in Sources */, - OBJ_815 /* PDFTable+Equatable_Spec.swift in Sources */, - OBJ_816 /* PDFTableCell+Equatable_Spec.swift in Sources */, - OBJ_817 /* PDFTableCellAlignment_Spec.swift in Sources */, - OBJ_818 /* PDFTableCellBorders+Equatable_Spec.swift in Sources */, - OBJ_819 /* PDFTableCellBorders_Spec.swift in Sources */, - OBJ_820 /* PDFTableCellPosition+Equatable_Spec.swift in Sources */, - OBJ_821 /* PDFTableCellPosition_Hashable_Spec.swift in Sources */, - OBJ_822 /* PDFTableCellPosition_Spec.swift in Sources */, - OBJ_823 /* PDFTableCellStyle+Equatable_Spec.swift in Sources */, - OBJ_824 /* PDFTableCellStyle_Spec.swift in Sources */, - OBJ_825 /* PDFTableCell_Spec.swift in Sources */, - OBJ_826 /* PDFTableContent+Equatable_Spec.swift in Sources */, - OBJ_827 /* PDFTableContent_Spec.swift in Sources */, - OBJ_828 /* PDFTableStyle+Defaults_Spec.swift in Sources */, - OBJ_829 /* PDFTableStyle+Equatable_Spec.swift in Sources */, - OBJ_830 /* PDFTableStyle_Spec.swift in Sources */, - OBJ_831 /* PDFTableValidator_Spec.swift in Sources */, - OBJ_832 /* PDFTable_Spec.swift in Sources */, - OBJ_833 /* PDFAttributedText+Equatable_Spec.swift in Sources */, - OBJ_834 /* PDFAttributedTextObject_Spec.swift in Sources */, - OBJ_835 /* PDFAttributedText_Spec.swift in Sources */, - OBJ_836 /* PDFFontObject_Spec.swift in Sources */, - OBJ_837 /* PDFSimpleText+Equatable_Spec.swift in Sources */, - OBJ_838 /* PDFSimpleText_Spec.swift in Sources */, - OBJ_839 /* PDFTextColorObject_Spec.swift in Sources */, - OBJ_840 /* PDFText_Spec.swift in Sources */, - OBJ_841 /* PDFCalculations_Spec.swift in Sources */, - OBJ_842 /* PDFError_Spec.swift in Sources */, - OBJ_843 /* PDFObject_Spec.swift in Sources */, + OBJ_761 /* Package.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + OBJ_772 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 0; + files = ( + OBJ_773 /* PDFTableRowSpec.swift in Sources */, + OBJ_774 /* PDFTable_RowSubscriptsSpec.swift in Sources */, + OBJ_775 /* PDFGraphics_Spec.swift in Sources */, + OBJ_776 /* PDFLineSeparatorObject+Equatable_Spec.swift in Sources */, + OBJ_777 /* PDFLineSeparatorObject_Spec.swift in Sources */, + OBJ_778 /* PDFLineStyle_Equatable_Spec.swift in Sources */, + OBJ_779 /* PDFLineStyle_Spec.swift in Sources */, + OBJ_780 /* PDFLineType_Spec.swift in Sources */, + OBJ_781 /* UIColor+Hex_Spec.swift in Sources */, + OBJ_782 /* UIImage+CloseToEqual_Spec.swift in Sources */, + OBJ_783 /* UIImage+Pixel_Spec.swift in Sources */, + OBJ_784 /* PDFImageSizeFit_Spec.swift in Sources */, + OBJ_785 /* PDFImage_Equatable_Spec.swift in Sources */, + OBJ_786 /* PDFImage_Spec.swift in Sources */, + OBJ_787 /* PDFTableMergeUtil_Spec.swift in Sources */, + OBJ_788 /* PDFTableObjectSpec.swift in Sources */, + OBJ_789 /* PDFContainer_Spec.swift in Sources */, + OBJ_790 /* PDFIndentationObject_Equatable_Spec.swift in Sources */, + OBJ_791 /* PDFIndentationObject_Spec.swift in Sources */, + OBJ_792 /* PDFLayout+Equatable_Spec.swift in Sources */, + OBJ_793 /* PDFLayoutHeights+Equatable_Spec.swift in Sources */, + D48009AC25A204C700CFB266 /* Bundle+Module.swift in Sources */, + OBJ_794 /* PDFLayoutHeights_Spec.swift in Sources */, + OBJ_795 /* PDFLayoutIndentations+Equatable_Spec.swift in Sources */, + OBJ_796 /* PDFLayoutIndentations_Spec.swift in Sources */, + OBJ_797 /* PDFLayout_Spec.swift in Sources */, + OBJ_798 /* PDFOffsetObject+Equatable_Spec.swift in Sources */, + OBJ_799 /* PDFOffsetObject_Spec.swift in Sources */, + OBJ_800 /* PDFPageBreakObject+Equatable_Spec.swift in Sources */, + OBJ_801 /* PDFPageBreakObject_Spec.swift in Sources */, + OBJ_802 /* PDFPageLayout+Equatable_Spec.swift in Sources */, + OBJ_803 /* PDFPageLayout_Spec.swift in Sources */, + OBJ_804 /* PDFSpaceObject_Spec.swift in Sources */, + OBJ_805 /* PDFList+Equatable_Spec.swift in Sources */, + OBJ_806 /* PDFListItemObject_Spec.swift in Sources */, + OBJ_807 /* PDFListItemSymbol_Spec.swift in Sources */, + OBJ_808 /* PDFListItem_Equatable_Spec.swift in Sources */, + OBJ_809 /* PDFListItem_Spec.swift in Sources */, + OBJ_810 /* PDFList_Spec.swift in Sources */, + OBJ_811 /* CGPoint+Math_Spec.swift in Sources */, + OBJ_812 /* PDFInfo+Equatable_Spec.swift in Sources */, + OBJ_813 /* PDFInfo_Spec.swift in Sources */, + OBJ_814 /* PDFDocument+Objects_Spec.swift in Sources */, + OBJ_815 /* PDFDocument_Spec.swift in Sources */, + OBJ_816 /* PDFGenerator+Debug_Spec.swift in Sources */, + OBJ_817 /* PDFGenerator+Generation_Spec.swift in Sources */, + OBJ_818 /* PDFGenerator+Layout_Spec.swift in Sources */, + OBJ_819 /* PDFGenerator_Spec.swift in Sources */, + OBJ_820 /* PDFPageFormat+Layout_Spec.swift in Sources */, + OBJ_821 /* PDFPageFormat+SizeConstants_Spec.swift in Sources */, + OBJ_822 /* PDFPageFormat_Spec.swift in Sources */, + OBJ_823 /* Int+RomanNumerals_Spec.swift in Sources */, + OBJ_824 /* PDFPaginationStyle+Equatable_Spec.swift in Sources */, + OBJ_825 /* PDFPaginationStyle_Spec.swift in Sources */, + OBJ_826 /* PDFPagination_Closure_Spec.swift in Sources */, + OBJ_827 /* PDFPagination_Equatable_Spec.swift in Sources */, + OBJ_828 /* PDFPagination_Spec.swift in Sources */, + OBJ_829 /* PDFTable+Equatable_Spec.swift in Sources */, + OBJ_830 /* PDFTableCell+Equatable_Spec.swift in Sources */, + OBJ_831 /* PDFTableCellAlignment_Spec.swift in Sources */, + OBJ_832 /* PDFTableCellBorders+Equatable_Spec.swift in Sources */, + OBJ_833 /* PDFTableCellBorders_Spec.swift in Sources */, + OBJ_834 /* PDFTableCellPosition+Equatable_Spec.swift in Sources */, + OBJ_835 /* PDFTableCellPosition_Hashable_Spec.swift in Sources */, + OBJ_836 /* PDFTableCellPosition_Spec.swift in Sources */, + OBJ_837 /* PDFTableCellStyle+Equatable_Spec.swift in Sources */, + OBJ_838 /* PDFTableCellStyle_Spec.swift in Sources */, + OBJ_839 /* PDFTableCell_Spec.swift in Sources */, + OBJ_840 /* PDFTableContent+Equatable_Spec.swift in Sources */, + OBJ_841 /* PDFTableContent_Spec.swift in Sources */, + OBJ_842 /* PDFTableStyle+Defaults_Spec.swift in Sources */, + OBJ_843 /* PDFTableStyle+Equatable_Spec.swift in Sources */, + OBJ_844 /* PDFTableStyle_Spec.swift in Sources */, + OBJ_845 /* PDFTableValidator_Spec.swift in Sources */, + OBJ_846 /* PDFTable_Spec.swift in Sources */, + OBJ_847 /* PDFAttributedText+Equatable_Spec.swift in Sources */, + OBJ_848 /* PDFAttributedTextObject_Spec.swift in Sources */, + OBJ_849 /* PDFAttributedText_Spec.swift in Sources */, + OBJ_850 /* PDFFontObject_Spec.swift in Sources */, + OBJ_851 /* PDFSimpleText+Equatable_Spec.swift in Sources */, + OBJ_852 /* PDFSimpleText_Spec.swift in Sources */, + OBJ_853 /* PDFTextColorObject_Spec.swift in Sources */, + OBJ_854 /* PDFText_Spec.swift in Sources */, + OBJ_855 /* PDFCalculations_Spec.swift in Sources */, + OBJ_856 /* PDFError_Spec.swift in Sources */, + OBJ_857 /* PDFObject_Spec.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - OBJ_431 /* PBXTargetDependency */ = { + OBJ_418 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "CwlCatchException::CwlCatchExceptionSupport" /* CwlCatchExceptionSupport */; - targetProxy = D4B7E9EC25A1BB24007D09C7 /* PBXContainerItemProxy */; + targetProxy = D48008A625A200A100CFB266 /* PBXContainerItemProxy */; }; - OBJ_474 /* PBXTargetDependency */ = { + OBJ_461 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "CwlCatchException::CwlCatchException" /* CwlCatchException */; - targetProxy = D4B7E9EB25A1BB24007D09C7 /* PBXContainerItemProxy */; + targetProxy = D48008A525A200A100CFB266 /* PBXContainerItemProxy */; }; - OBJ_475 /* PBXTargetDependency */ = { + OBJ_462 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "CwlCatchException::CwlCatchExceptionSupport" /* CwlCatchExceptionSupport */; - targetProxy = D4B7E9ED25A1BB24007D09C7 /* PBXContainerItemProxy */; + targetProxy = D48008A725A200A100CFB266 /* PBXContainerItemProxy */; }; - OBJ_476 /* PBXTargetDependency */ = { + OBJ_463 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "CwlPreconditionTesting::CwlMachBadInstructionHandler" /* CwlMachBadInstructionHandler */; - targetProxy = D4B7E9EE25A1BB24007D09C7 /* PBXContainerItemProxy */; + targetProxy = D48008A825A200A100CFB266 /* PBXContainerItemProxy */; }; - OBJ_547 /* PBXTargetDependency */ = { + OBJ_534 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "CwlPreconditionTesting::CwlPosixPreconditionTesting" /* CwlPosixPreconditionTesting */; - targetProxy = D4B7E9E925A1BB24007D09C7 /* PBXContainerItemProxy */; + targetProxy = D48008A325A200A100CFB266 /* PBXContainerItemProxy */; }; - OBJ_548 /* PBXTargetDependency */ = { + OBJ_535 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "CwlPreconditionTesting::CwlPreconditionTesting" /* CwlPreconditionTesting */; - targetProxy = D4B7E9EA25A1BB24007D09C7 /* PBXContainerItemProxy */; + targetProxy = D48008A425A200A100CFB266 /* PBXContainerItemProxy */; }; - OBJ_549 /* PBXTargetDependency */ = { + OBJ_536 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "CwlCatchException::CwlCatchException" /* CwlCatchException */; - targetProxy = D4B7E9EF25A1BB24007D09C7 /* PBXContainerItemProxy */; + targetProxy = D48008A925A200A100CFB266 /* PBXContainerItemProxy */; }; - OBJ_550 /* PBXTargetDependency */ = { + OBJ_537 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "CwlCatchException::CwlCatchExceptionSupport" /* CwlCatchExceptionSupport */; - targetProxy = D4B7E9F025A1BB24007D09C7 /* PBXContainerItemProxy */; + targetProxy = D48008AA25A200A100CFB266 /* PBXContainerItemProxy */; }; - OBJ_551 /* PBXTargetDependency */ = { + OBJ_538 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "CwlPreconditionTesting::CwlMachBadInstructionHandler" /* CwlMachBadInstructionHandler */; - targetProxy = D4B7E9F125A1BB24007D09C7 /* PBXContainerItemProxy */; + targetProxy = D48008AB25A200A100CFB266 /* PBXContainerItemProxy */; }; - OBJ_589 /* PBXTargetDependency */ = { + OBJ_576 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "Quick::QuickObjCRuntime" /* QuickObjCRuntime */; - targetProxy = D4B7E9F825A1BB24007D09C7 /* PBXContainerItemProxy */; + targetProxy = D48008B225A200A100CFB266 /* PBXContainerItemProxy */; + }; + OBJ_747 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = "Nimble::Nimble" /* Nimble */; + targetProxy = D48008A225A200A100CFB266 /* PBXContainerItemProxy */; + }; + OBJ_748 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = "CwlPreconditionTesting::CwlPosixPreconditionTesting" /* CwlPosixPreconditionTesting */; + targetProxy = D48008AC25A200A100CFB266 /* PBXContainerItemProxy */; + }; + OBJ_749 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = "CwlPreconditionTesting::CwlPreconditionTesting" /* CwlPreconditionTesting */; + targetProxy = D48008AD25A200A100CFB266 /* PBXContainerItemProxy */; + }; + OBJ_750 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = "CwlCatchException::CwlCatchException" /* CwlCatchException */; + targetProxy = D48008AE25A200A100CFB266 /* PBXContainerItemProxy */; + }; + OBJ_751 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = "CwlCatchException::CwlCatchExceptionSupport" /* CwlCatchExceptionSupport */; + targetProxy = D48008AF25A200A100CFB266 /* PBXContainerItemProxy */; + }; + OBJ_752 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = "CwlPreconditionTesting::CwlMachBadInstructionHandler" /* CwlMachBadInstructionHandler */; + targetProxy = D48008B025A200A100CFB266 /* PBXContainerItemProxy */; }; OBJ_753 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = "Quick::Quick" /* Quick */; + targetProxy = D48008B125A200A100CFB266 /* PBXContainerItemProxy */; + }; + OBJ_754 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = "Quick::QuickObjCRuntime" /* QuickObjCRuntime */; + targetProxy = D48008B325A200A100CFB266 /* PBXContainerItemProxy */; + }; + OBJ_755 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = "TPPDF::TPPDF" /* TPPDF */; + targetProxy = D48008B425A200A100CFB266 /* PBXContainerItemProxy */; + }; + OBJ_766 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = "TPPDF::TPPDFIntegrationTests" /* TPPDFIntegrationTests */; + targetProxy = D48008A025A200A000CFB266 /* PBXContainerItemProxy */; + }; + OBJ_767 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "TPPDF::TPPDFTests" /* TPPDFTests */; - targetProxy = D4B7E9FB25A1BB24007D09C7 /* PBXContainerItemProxy */; + targetProxy = D48008A125A200A000CFB266 /* PBXContainerItemProxy */; }; - OBJ_854 /* PBXTargetDependency */ = { + OBJ_868 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "Nimble::Nimble" /* Nimble */; - targetProxy = D4B7E9E825A1BB24007D09C7 /* PBXContainerItemProxy */; + targetProxy = D48008B525A200A100CFB266 /* PBXContainerItemProxy */; }; - OBJ_855 /* PBXTargetDependency */ = { + OBJ_869 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "CwlPreconditionTesting::CwlPosixPreconditionTesting" /* CwlPosixPreconditionTesting */; - targetProxy = D4B7E9F225A1BB24007D09C7 /* PBXContainerItemProxy */; + targetProxy = D48008B625A200A100CFB266 /* PBXContainerItemProxy */; }; - OBJ_856 /* PBXTargetDependency */ = { + OBJ_870 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "CwlPreconditionTesting::CwlPreconditionTesting" /* CwlPreconditionTesting */; - targetProxy = D4B7E9F325A1BB24007D09C7 /* PBXContainerItemProxy */; + targetProxy = D48008B725A200A100CFB266 /* PBXContainerItemProxy */; }; - OBJ_857 /* PBXTargetDependency */ = { + OBJ_871 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "CwlCatchException::CwlCatchException" /* CwlCatchException */; - targetProxy = D4B7E9F425A1BB24007D09C7 /* PBXContainerItemProxy */; + targetProxy = D48008B825A200A100CFB266 /* PBXContainerItemProxy */; }; - OBJ_858 /* PBXTargetDependency */ = { + OBJ_872 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "CwlCatchException::CwlCatchExceptionSupport" /* CwlCatchExceptionSupport */; - targetProxy = D4B7E9F525A1BB24007D09C7 /* PBXContainerItemProxy */; + targetProxy = D48008B925A200A100CFB266 /* PBXContainerItemProxy */; }; - OBJ_859 /* PBXTargetDependency */ = { + OBJ_873 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "CwlPreconditionTesting::CwlMachBadInstructionHandler" /* CwlMachBadInstructionHandler */; - targetProxy = D4B7E9F625A1BB24007D09C7 /* PBXContainerItemProxy */; + targetProxy = D48008BA25A200A100CFB266 /* PBXContainerItemProxy */; }; - OBJ_860 /* PBXTargetDependency */ = { + OBJ_874 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "Quick::Quick" /* Quick */; - targetProxy = D4B7E9F725A1BB24007D09C7 /* PBXContainerItemProxy */; + targetProxy = D48008BB25A200A100CFB266 /* PBXContainerItemProxy */; }; - OBJ_861 /* PBXTargetDependency */ = { + OBJ_875 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "Quick::QuickObjCRuntime" /* QuickObjCRuntime */; - targetProxy = D4B7E9F925A1BB24007D09C7 /* PBXContainerItemProxy */; + targetProxy = D48008BC25A200A100CFB266 /* PBXContainerItemProxy */; }; - OBJ_862 /* PBXTargetDependency */ = { + OBJ_876 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = "TPPDF::TPPDF" /* TPPDF */; - targetProxy = D4B7E9FA25A1BB24007D09C7 /* PBXContainerItemProxy */; + targetProxy = D48008BD25A200A100CFB266 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -2766,7 +2985,7 @@ "SWIFT_PACKAGE=1", "DEBUG=1", ); - MACOSX_DEPLOYMENT_TARGET = 10.13; + MACOSX_DEPLOYMENT_TARGET = 10.10; ONLY_ACTIVE_ARCH = YES; OTHER_SWIFT_FLAGS = "$(inherited) -DXcode"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -2791,7 +3010,7 @@ "$(inherited)", "SWIFT_PACKAGE=1", ); - MACOSX_DEPLOYMENT_TARGET = 10.13; + MACOSX_DEPLOYMENT_TARGET = 10.10; OTHER_SWIFT_FLAGS = "$(inherited) -DXcode"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; @@ -2802,7 +3021,7 @@ }; name = Release; }; - OBJ_425 /* Debug */ = { + OBJ_412 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ENABLE_TESTABILITY = YES; @@ -2834,7 +3053,7 @@ }; name = Debug; }; - OBJ_426 /* Release */ = { + OBJ_413 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ENABLE_TESTABILITY = YES; @@ -2866,7 +3085,7 @@ }; name = Release; }; - OBJ_435 /* Debug */ = { + OBJ_422 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { LD = /usr/bin/true; @@ -2875,7 +3094,7 @@ }; name = Debug; }; - OBJ_436 /* Release */ = { + OBJ_423 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { LD = /usr/bin/true; @@ -2884,7 +3103,7 @@ }; name = Release; }; - OBJ_440 /* Debug */ = { + OBJ_427 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { DEFINES_MODULE = NO; @@ -2915,7 +3134,7 @@ }; name = Debug; }; - OBJ_441 /* Release */ = { + OBJ_428 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { DEFINES_MODULE = NO; @@ -2946,7 +3165,7 @@ }; name = Release; }; - OBJ_447 /* Debug */ = { + OBJ_434 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { CLANG_ENABLE_MODULES = YES; @@ -2978,7 +3197,7 @@ }; name = Debug; }; - OBJ_448 /* Release */ = { + OBJ_435 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { CLANG_ENABLE_MODULES = YES; @@ -3010,7 +3229,7 @@ }; name = Release; }; - OBJ_457 /* Debug */ = { + OBJ_444 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ENABLE_TESTABILITY = YES; @@ -3038,7 +3257,7 @@ }; name = Debug; }; - OBJ_458 /* Release */ = { + OBJ_445 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ENABLE_TESTABILITY = YES; @@ -3066,7 +3285,7 @@ }; name = Release; }; - OBJ_464 /* Debug */ = { + OBJ_451 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ENABLE_TESTABILITY = YES; @@ -3099,7 +3318,7 @@ }; name = Debug; }; - OBJ_465 /* Release */ = { + OBJ_452 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ENABLE_TESTABILITY = YES; @@ -3132,7 +3351,7 @@ }; name = Release; }; - OBJ_479 /* Debug */ = { + OBJ_466 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { LD = /usr/bin/true; @@ -3141,7 +3360,7 @@ }; name = Debug; }; - OBJ_480 /* Release */ = { + OBJ_467 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { LD = /usr/bin/true; @@ -3150,7 +3369,7 @@ }; name = Release; }; - OBJ_485 /* Debug */ = { + OBJ_472 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ENABLE_TESTABILITY = YES; @@ -3183,7 +3402,7 @@ }; name = Debug; }; - OBJ_486 /* Release */ = { + OBJ_473 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ENABLE_TESTABILITY = YES; @@ -3216,7 +3435,7 @@ }; name = Release; }; - OBJ_554 /* Debug */ = { + OBJ_541 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { LD = /usr/bin/true; @@ -3225,7 +3444,7 @@ }; name = Debug; }; - OBJ_555 /* Release */ = { + OBJ_542 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { LD = /usr/bin/true; @@ -3234,7 +3453,7 @@ }; name = Release; }; - OBJ_560 /* Debug */ = { + OBJ_547 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ENABLE_TESTABILITY = YES; @@ -3266,7 +3485,7 @@ }; name = Debug; }; - OBJ_561 /* Release */ = { + OBJ_548 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ENABLE_TESTABILITY = YES; @@ -3298,7 +3517,7 @@ }; name = Release; }; - OBJ_592 /* Debug */ = { + OBJ_579 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { DEFINES_MODULE = NO; @@ -3329,7 +3548,7 @@ }; name = Debug; }; - OBJ_593 /* Release */ = { + OBJ_580 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { DEFINES_MODULE = NO; @@ -3360,7 +3579,7 @@ }; name = Release; }; - OBJ_599 /* Debug */ = { + OBJ_586 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { LD = /usr/bin/true; @@ -3369,7 +3588,7 @@ }; name = Debug; }; - OBJ_600 /* Release */ = { + OBJ_587 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { LD = /usr/bin/true; @@ -3378,7 +3597,7 @@ }; name = Release; }; - OBJ_605 /* Debug */ = { + OBJ_592 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ENABLE_TESTABILITY = YES; @@ -3388,7 +3607,9 @@ ); HEADER_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = TPPDF.xcodeproj/TPPDF_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; OTHER_SWIFT_FLAGS = "$(inherited)"; @@ -3399,10 +3620,12 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; SWIFT_VERSION = 5.0; TARGET_NAME = TPPDF; + TVOS_DEPLOYMENT_TARGET = 9.0; + WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Debug; }; - OBJ_606 /* Release */ = { + OBJ_593 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ENABLE_TESTABILITY = YES; @@ -3412,7 +3635,9 @@ ); HEADER_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = TPPDF.xcodeproj/TPPDF_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/macosx"; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; OTHER_SWIFT_FLAGS = "$(inherited)"; @@ -3423,40 +3648,106 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; SWIFT_VERSION = 5.0; TARGET_NAME = TPPDF; + TVOS_DEPLOYMENT_TARGET = 9.0; + WATCHOS_DEPLOYMENT_TARGET = 2.0; + }; + name = Release; + }; + OBJ_733 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PLATFORM_DIR)/Developer/Library/Frameworks", + ); + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/.build/checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport/include", + "$(SRCROOT)/.build/checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include", + "$(SRCROOT)/.build/checkouts/Quick/Sources/QuickObjCRuntime/include", + "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport", + "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime", + ); + INFOPLIST_FILE = TPPDF.xcodeproj/TPPDFIntegrationTests_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @loader_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.15; + OTHER_CFLAGS = "$(inherited)"; + OTHER_LDFLAGS = "$(inherited)"; + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; + SWIFT_VERSION = 5.0; + TARGET_NAME = TPPDFIntegrationTests; + TVOS_DEPLOYMENT_TARGET = 9.0; + WATCHOS_DEPLOYMENT_TARGET = 2.0; + }; + name = Debug; + }; + OBJ_734 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PLATFORM_DIR)/Developer/Library/Frameworks", + ); + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/.build/checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport/include", + "$(SRCROOT)/.build/checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include", + "$(SRCROOT)/.build/checkouts/Quick/Sources/QuickObjCRuntime/include", + "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport", + "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime", + ); + INFOPLIST_FILE = TPPDF.xcodeproj/TPPDFIntegrationTests_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @loader_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.15; + OTHER_CFLAGS = "$(inherited)"; + OTHER_LDFLAGS = "$(inherited)"; + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; + SWIFT_VERSION = 5.0; + TARGET_NAME = TPPDFIntegrationTests; + TVOS_DEPLOYMENT_TARGET = 9.0; + WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Release; }; - OBJ_745 /* Debug */ = { + OBJ_758 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { LD = /usr/bin/true; - OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -package-description-version 5.2.0"; + OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -package-description-version 5.3.0"; SWIFT_VERSION = 5.0; }; name = Debug; }; - OBJ_746 /* Release */ = { + OBJ_759 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { LD = /usr/bin/true; - OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -package-description-version 5.2.0"; + OTHER_SWIFT_FLAGS = "-swift-version 5 -I $(TOOLCHAIN_DIR)/usr/lib/swift/pm/4_2 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -package-description-version 5.3.0"; SWIFT_VERSION = 5.0; }; name = Release; }; - OBJ_751 /* Debug */ = { + OBJ_764 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { }; name = Debug; }; - OBJ_752 /* Release */ = { + OBJ_765 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { }; name = Release; }; - OBJ_756 /* Debug */ = { + OBJ_770 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { CLANG_ENABLE_MODULES = YES; @@ -3474,17 +3765,21 @@ "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime", ); INFOPLIST_FILE = TPPDF.xcodeproj/TPPDFTests_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @loader_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; SWIFT_VERSION = 5.0; TARGET_NAME = TPPDFTests; + TVOS_DEPLOYMENT_TARGET = 9.0; + WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Debug; }; - OBJ_757 /* Release */ = { + OBJ_771 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { CLANG_ENABLE_MODULES = YES; @@ -3502,13 +3797,17 @@ "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime", ); INFOPLIST_FILE = TPPDF.xcodeproj/TPPDFTests_Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @loader_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "$(inherited)"; OTHER_LDFLAGS = "$(inherited)"; OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/CwlCatchExceptionSupport/module.modulemap -Xcc -fmodule-map-file=$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime/module.modulemap"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; SWIFT_VERSION = 5.0; TARGET_NAME = TPPDFTests; + TVOS_DEPLOYMENT_TARGET = 9.0; + WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Release; }; @@ -3524,146 +3823,155 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_424 /* Build configuration list for PBXNativeTarget "CwlCatchException" */ = { + OBJ_411 /* Build configuration list for PBXNativeTarget "CwlCatchException" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_425 /* Debug */, - OBJ_426 /* Release */, + OBJ_412 /* Debug */, + OBJ_413 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_434 /* Build configuration list for PBXNativeTarget "CwlCatchExceptionPackageDescription" */ = { + OBJ_421 /* Build configuration list for PBXNativeTarget "CwlCatchExceptionPackageDescription" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_435 /* Debug */, - OBJ_436 /* Release */, + OBJ_422 /* Debug */, + OBJ_423 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_439 /* Build configuration list for PBXNativeTarget "CwlCatchExceptionSupport" */ = { + OBJ_426 /* Build configuration list for PBXNativeTarget "CwlCatchExceptionSupport" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_440 /* Debug */, - OBJ_441 /* Release */, + OBJ_427 /* Debug */, + OBJ_428 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_446 /* Build configuration list for PBXNativeTarget "CwlMachBadInstructionHandler" */ = { + OBJ_433 /* Build configuration list for PBXNativeTarget "CwlMachBadInstructionHandler" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_447 /* Debug */, - OBJ_448 /* Release */, + OBJ_434 /* Debug */, + OBJ_435 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_456 /* Build configuration list for PBXNativeTarget "CwlPosixPreconditionTesting" */ = { + OBJ_443 /* Build configuration list for PBXNativeTarget "CwlPosixPreconditionTesting" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_457 /* Debug */, - OBJ_458 /* Release */, + OBJ_444 /* Debug */, + OBJ_445 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_463 /* Build configuration list for PBXNativeTarget "CwlPreconditionTesting" */ = { + OBJ_450 /* Build configuration list for PBXNativeTarget "CwlPreconditionTesting" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_464 /* Debug */, - OBJ_465 /* Release */, + OBJ_451 /* Debug */, + OBJ_452 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_478 /* Build configuration list for PBXNativeTarget "CwlPreconditionTestingPackageDescription" */ = { + OBJ_465 /* Build configuration list for PBXNativeTarget "CwlPreconditionTestingPackageDescription" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_479 /* Debug */, - OBJ_480 /* Release */, + OBJ_466 /* Debug */, + OBJ_467 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_484 /* Build configuration list for PBXNativeTarget "Nimble" */ = { + OBJ_471 /* Build configuration list for PBXNativeTarget "Nimble" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_485 /* Debug */, - OBJ_486 /* Release */, + OBJ_472 /* Debug */, + OBJ_473 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_553 /* Build configuration list for PBXNativeTarget "NimblePackageDescription" */ = { + OBJ_540 /* Build configuration list for PBXNativeTarget "NimblePackageDescription" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_554 /* Debug */, - OBJ_555 /* Release */, + OBJ_541 /* Debug */, + OBJ_542 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_559 /* Build configuration list for PBXNativeTarget "Quick" */ = { + OBJ_546 /* Build configuration list for PBXNativeTarget "Quick" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_560 /* Debug */, - OBJ_561 /* Release */, + OBJ_547 /* Debug */, + OBJ_548 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_591 /* Build configuration list for PBXNativeTarget "QuickObjCRuntime" */ = { + OBJ_578 /* Build configuration list for PBXNativeTarget "QuickObjCRuntime" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_592 /* Debug */, - OBJ_593 /* Release */, + OBJ_579 /* Debug */, + OBJ_580 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_598 /* Build configuration list for PBXNativeTarget "QuickPackageDescription" */ = { + OBJ_585 /* Build configuration list for PBXNativeTarget "QuickPackageDescription" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_599 /* Debug */, - OBJ_600 /* Release */, + OBJ_586 /* Debug */, + OBJ_587 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + OBJ_591 /* Build configuration list for PBXNativeTarget "TPPDF" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + OBJ_592 /* Debug */, + OBJ_593 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_604 /* Build configuration list for PBXNativeTarget "TPPDF" */ = { + OBJ_732 /* Build configuration list for PBXNativeTarget "TPPDFIntegrationTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_605 /* Debug */, - OBJ_606 /* Release */, + OBJ_733 /* Debug */, + OBJ_734 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_744 /* Build configuration list for PBXNativeTarget "TPPDFPackageDescription" */ = { + OBJ_757 /* Build configuration list for PBXNativeTarget "TPPDFPackageDescription" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_745 /* Debug */, - OBJ_746 /* Release */, + OBJ_758 /* Debug */, + OBJ_759 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_750 /* Build configuration list for PBXAggregateTarget "TPPDFPackageTests" */ = { + OBJ_763 /* Build configuration list for PBXAggregateTarget "TPPDFPackageTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_751 /* Debug */, - OBJ_752 /* Release */, + OBJ_764 /* Debug */, + OBJ_765 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - OBJ_755 /* Build configuration list for PBXNativeTarget "TPPDFTests" */ = { + OBJ_769 /* Build configuration list for PBXNativeTarget "TPPDFTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - OBJ_756 /* Debug */, - OBJ_757 /* Release */, + OBJ_770 /* Debug */, + OBJ_771 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/TPPDF.xcodeproj/xcshareddata/xcschemes/TPPDF-Package.xcscheme b/TPPDF.xcodeproj/xcshareddata/xcschemes/TPPDF-Package.xcscheme index 8a3dc203..2ab739e8 100644 --- a/TPPDF.xcodeproj/xcshareddata/xcschemes/TPPDF-Package.xcscheme +++ b/TPPDF.xcodeproj/xcshareddata/xcschemes/TPPDF-Package.xcscheme @@ -26,7 +26,8 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES"> + shouldUseLaunchSchemeArgsEnv = "YES" + codeCoverageEnabled = "YES"> diff --git a/TPPDF.xcodeproj/xcshareddata/xcschemes/TPPDFIntegrationTests.xcscheme b/TPPDF.xcodeproj/xcshareddata/xcschemes/TPPDFIntegrationTests.xcscheme new file mode 100644 index 00000000..241905e2 --- /dev/null +++ b/TPPDF.xcodeproj/xcshareddata/xcschemes/TPPDFIntegrationTests.xcscheme @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/Common/Bundle+Module.swift b/Tests/Common/Bundle+Module.swift new file mode 100644 index 00000000..4c870e4b --- /dev/null +++ b/Tests/Common/Bundle+Module.swift @@ -0,0 +1,17 @@ +import Foundation + +extension Bundle { + + private static var productsDirectory: URL { + #if os(macOS) + if let bundle = Bundle.allBundles.first(where: { $0.bundlePath.hasSuffix(".xctest") }) { + return bundle.bundleURL.deletingLastPathComponent() + } + fatalError("Couldn't find the products directory") + #else + return Bundle.main.bundleURL + #endif + } + + static var module: Bundle = Bundle.main +} diff --git a/Tests/TPPDFIntegrationTests/ExternalDocumentTests.swift b/Tests/TPPDFIntegrationTests/ExternalDocumentTests.swift index 1e206e98..c2b04668 100644 --- a/Tests/TPPDFIntegrationTests/ExternalDocumentTests.swift +++ b/Tests/TPPDFIntegrationTests/ExternalDocumentTests.swift @@ -7,6 +7,11 @@ import PDFKit class ExternalDocumentTests: QuickSpec { override func spec() { + // This is a hotfix until we can use xcodebuild with SPM resource paths + if Bundle.module == Bundle.main { + Bundle.module = Bundle(for: ExternalDocumentTests.self) + } + describe("External Document") { context("only document") { context("debug mode") { diff --git a/Tests/TPPDFTests/PDFGenerator+Generation_Spec.swift b/Tests/TPPDFTests/PDFGenerator+Generation_Spec.swift index 8b252385..29d102e5 100644 --- a/Tests/TPPDFTests/PDFGenerator+Generation_Spec.swift +++ b/Tests/TPPDFTests/PDFGenerator+Generation_Spec.swift @@ -15,6 +15,12 @@ import Nimble class PDFGenerator_Generation_Spec: QuickSpec { override func spec() { + // This is a hotfix until we can use xcodebuild with SPM resource paths + if Bundle.module == Bundle.main { + Bundle.module = Bundle(for: PDFGenerator_Generation_Spec.self) + } + + describe("PDFGenerator") { context("Generation") { From 827d8f93f3d6f83e2e835aad39a37b9ede06fbab Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Sun, 3 Jan 2021 15:10:26 +0100 Subject: [PATCH 20/29] Changed coverage targets --- .../xcshareddata/xcschemes/TPPDF-Package.xcscheme | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/TPPDF.xcodeproj/xcshareddata/xcschemes/TPPDF-Package.xcscheme b/TPPDF.xcodeproj/xcshareddata/xcschemes/TPPDF-Package.xcscheme index 2ab739e8..d18d200f 100644 --- a/TPPDF.xcodeproj/xcshareddata/xcschemes/TPPDF-Package.xcscheme +++ b/TPPDF.xcodeproj/xcshareddata/xcschemes/TPPDF-Package.xcscheme @@ -27,7 +27,17 @@ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES" - codeCoverageEnabled = "YES"> + codeCoverageEnabled = "YES" + onlyGenerateCoverageForSpecifiedTargets = "YES"> + + + + From 052c2fbf08fa02eace49aa4a3109b606cabe674a Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Sun, 3 Jan 2021 15:48:53 +0100 Subject: [PATCH 21/29] Fixed ios tests deployment version --- TPPDF.xcodeproj/project.pbxproj | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/TPPDF.xcodeproj/project.pbxproj b/TPPDF.xcodeproj/project.pbxproj index e2201155..0737f72c 100644 --- a/TPPDF.xcodeproj/project.pbxproj +++ b/TPPDF.xcodeproj/project.pbxproj @@ -949,8 +949,8 @@ "Quick::Quick::Product" /* Quick.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Quick.framework; sourceTree = BUILT_PRODUCTS_DIR; }; "Quick::QuickObjCRuntime::Product" /* QuickObjCRuntime.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = QuickObjCRuntime.framework; sourceTree = BUILT_PRODUCTS_DIR; }; "TPPDF::TPPDF::Product" /* TPPDF.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = TPPDF.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - "TPPDF::TPPDFIntegrationTests::Product" /* TPPDFIntegrationTests.xctest */ = {isa = PBXFileReference; lastKnownFileType = file; path = TPPDFIntegrationTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - "TPPDF::TPPDFTests::Product" /* TPPDFTests.xctest */ = {isa = PBXFileReference; lastKnownFileType = file; path = TPPDFTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + "TPPDF::TPPDFIntegrationTests::Product" /* TPPDFIntegrationTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; path = TPPDFIntegrationTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + "TPPDF::TPPDFTests::Product" /* TPPDFTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; path = TPPDFTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -3671,7 +3671,7 @@ "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime", ); INFOPLIST_FILE = TPPDF.xcodeproj/TPPDFIntegrationTests_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @loader_path/../Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.15; OTHER_CFLAGS = "$(inherited)"; @@ -3703,7 +3703,7 @@ "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime", ); INFOPLIST_FILE = TPPDF.xcodeproj/TPPDFIntegrationTests_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @loader_path/../Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.15; OTHER_CFLAGS = "$(inherited)"; @@ -3765,7 +3765,7 @@ "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime", ); INFOPLIST_FILE = TPPDF.xcodeproj/TPPDFTests_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @loader_path/../Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "$(inherited)"; @@ -3797,7 +3797,7 @@ "$(SRCROOT)/TPPDF.xcodeproj/GeneratedModuleMap/QuickObjCRuntime", ); INFOPLIST_FILE = TPPDF.xcodeproj/TPPDFTests_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @loader_path/../Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.13; OTHER_CFLAGS = "$(inherited)"; From 83968b7984d06f25b08d5beb866b7e2347709ff5 Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Sun, 3 Jan 2021 16:13:06 +0100 Subject: [PATCH 22/29] Fixed iOS Tests --- Source/Internal/Table/PDFTableObject.swift | 8 +-- TPPDF.xcodeproj/project.pbxproj | 59 ++++++++++++++++++- .../xcschemes/TPPDF-Package.xcscheme | 2 +- .../xcschemes/TPPDFIntegrationTests.xcscheme | 2 +- .../xcschemes/TPPDFPackageTests.xcscheme | 2 +- .../xcschemes/TPPDFTests.xcscheme | 2 +- .../Internal/Table/PDFTableObjectSpec.swift | 2 +- .../List/PDFListItemObject_Spec.swift | 2 +- 8 files changed, 66 insertions(+), 13 deletions(-) diff --git a/Source/Internal/Table/PDFTableObject.swift b/Source/Internal/Table/PDFTableObject.swift index f1a1e0d0..7a631307 100644 --- a/Source/Internal/Table/PDFTableObject.swift +++ b/Source/Internal/Table/PDFTableObject.swift @@ -334,7 +334,7 @@ internal class PDFTableObject: PDFRenderObject { items: nextPageCells, minOffset: minOffset, maxOffset: maxOffset, - shouldSplitCellsOnPageBeak: table.shouldSplitCellsOnPageBreak) + shouldSplitCellsOnPageBreak: table.shouldSplitCellsOnPageBreak) let onPageCells = filterResult.cells nextPageCells = filterResult.remainder // If none of the cells fit on the current page, the algorithm will try again on the next page and if it occurs again, an error should be thrown @@ -413,7 +413,7 @@ internal class PDFTableObject: PDFRenderObject { /// - maxOffset: Maximum `y`-position on the page /// - shouldSplitCellsOnPageBreak: If `true`, cells won't be sliced and shown on both pages, instead moved entirely to the next page /// - Returns: Two lists of cells, see `FilteredCells` - internal func filterCellsOnPage(for generator: PDFGenerator, items: [PDFTableCalculatedCell], minOffset: CGFloat, maxOffset: CGFloat, shouldSplitCellsOnPageBeak: Bool) -> FilteredCells { + internal func filterCellsOnPage(for generator: PDFGenerator, items: [PDFTableCalculatedCell], minOffset: CGFloat, maxOffset: CGFloat, shouldSplitCellsOnPageBreak: Bool) -> FilteredCells { // Maximum height available let contentHeight = maxOffset - minOffset var result = FilteredCells(cells: [], remainder: []) @@ -429,12 +429,12 @@ internal class PDFTableObject: PDFRenderObject { result.cells.append(item) } else { // If cells should be split and cell is partially on current page, add it to the cells, the cell will be sliced afterwards - if shouldSplitCellsOnPageBeak && cellFrame.minY < maxOffset { + if shouldSplitCellsOnPageBreak && cellFrame.minY < maxOffset { result.cells.append(item) } // In any case, if the cell does not fit on the active page entirely, it must be repositioned for further pages var nextPageCell = item - if shouldSplitCellsOnPageBeak { + if shouldSplitCellsOnPageBreak { nextPageCell.frames.cell.origin.y -= contentHeight nextPageCell.frames.content.origin.y -= contentHeight } else { diff --git a/TPPDF.xcodeproj/project.pbxproj b/TPPDF.xcodeproj/project.pbxproj index 0737f72c..d7331d65 100644 --- a/TPPDF.xcodeproj/project.pbxproj +++ b/TPPDF.xcodeproj/project.pbxproj @@ -2352,7 +2352,7 @@ isa = PBXProject; attributes = { LastSwiftMigration = 9999; - LastUpgradeCheck = 9999; + LastUpgradeCheck = 1230; }; buildConfigurationList = OBJ_2 /* Build configuration list for PBXProject "TPPDF" */; compatibilityVersion = "Xcode 3.2"; @@ -2974,17 +2974,44 @@ isa = XCBuildConfiguration; buildSettings = { CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = dwarf; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_NS_ASSERTIONS = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", "SWIFT_PACKAGE=1", "DEBUG=1", ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.10; ONLY_ACTIVE_ARCH = YES; OTHER_SWIFT_FLAGS = "$(inherited) -DXcode"; @@ -3001,15 +3028,41 @@ isa = XCBuildConfiguration; buildSettings = { CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = s; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", "SWIFT_PACKAGE=1", ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.10; OTHER_SWIFT_FLAGS = "$(inherited) -DXcode"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -3750,8 +3803,8 @@ OBJ_770 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CLANG_ENABLE_MODULES = YES; - EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PLATFORM_DIR)/Developer/Library/Frameworks", @@ -3782,8 +3835,8 @@ OBJ_771 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CLANG_ENABLE_MODULES = YES; - EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PLATFORM_DIR)/Developer/Library/Frameworks", diff --git a/TPPDF.xcodeproj/xcshareddata/xcschemes/TPPDF-Package.xcscheme b/TPPDF.xcodeproj/xcshareddata/xcschemes/TPPDF-Package.xcscheme index d18d200f..99ea665c 100644 --- a/TPPDF.xcodeproj/xcshareddata/xcschemes/TPPDF-Package.xcscheme +++ b/TPPDF.xcodeproj/xcshareddata/xcschemes/TPPDF-Package.xcscheme @@ -1,6 +1,6 @@ Date: Sun, 3 Jan 2021 18:05:59 +0100 Subject: [PATCH 23/29] WIP --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c19afbef..323add81 100644 --- a/.travis.yml +++ b/.travis.yml @@ -151,7 +151,7 @@ jobs: -scheme ${EXAMPLE_SCHEME} -clonedSourcePackagesDirPath . -derivedDataPath ${TRAVIS_BUILD_DIR}/derived_data - -sdk macosx10.15 + -sdk macosx -configuration Debug ONLY_ACTIVE_ARCH=YES build | xcpretty From 583d0a40ab1e22a151421305ca1250f03a4e878a Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Sun, 3 Jan 2021 19:20:43 +0100 Subject: [PATCH 24/29] Fixed carthage compilation in Xcode 12 --- .travis.yml | 2 +- scripts/carthage.sh | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100755 scripts/carthage.sh diff --git a/.travis.yml b/.travis.yml index 323add81..de866d1d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -97,7 +97,7 @@ jobs: before_script: - cd "${ROOT_FOLDER}" - echo 'github "techprimate/TPPDF" "'$(git rev-parse HEAD)'"' > Cartfile - - carthage update --platform ios --cache-builds + - ../scripts/carthage.sh update --platform ios --cache-builds script: - set -o pipefail - xcodebuild -project "$PROJECT" diff --git a/scripts/carthage.sh b/scripts/carthage.sh new file mode 100755 index 00000000..2ff85c93 --- /dev/null +++ b/scripts/carthage.sh @@ -0,0 +1,21 @@ +# carthage.sh +# Usage example: ./carthage.sh build --platform iOS + +# Documentation: https://github.com/Carthage/Carthage/blob/master/Documentation/Xcode12Workaround.md + +set -euo pipefail + +xcconfig=$(mktemp /tmp/static.xcconfig.XXXXXX) +trap 'rm -f "$xcconfig"' INT TERM HUP EXIT + +# For Xcode 12 make sure EXCLUDED_ARCHS is set to arm architectures otherwise +# the build will fail on lipo due to duplicate architectures. + +CURRENT_XCODE_VERSION=$(xcodebuild -version | grep "Build version" | cut -d' ' -f3) +echo "EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200__BUILD_$CURRENT_XCODE_VERSION = arm64 arm64e armv7 armv7s armv6 armv8" >> $xcconfig + +echo 'EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200 = $(EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200__BUILD_$(XCODE_PRODUCT_BUILD_VERSION))' >> $xcconfig +echo 'EXCLUDED_ARCHS = $(inherited) $(EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_$(EFFECTIVE_PLATFORM_SUFFIX)__NATIVE_ARCH_64_BIT_$(NATIVE_ARCH_64_BIT)__XCODE_$(XCODE_VERSION_MAJOR))' >> $xcconfig + +export XCODE_XCCONFIG_FILE="$xcconfig" +carthage "$@" From 9890bae492aadab780eee250a549961eae7c3308 Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Mon, 4 Jan 2021 21:36:50 +0100 Subject: [PATCH 25/29] Added more integration test cases for merging multiple external documents and total page count calculation --- TPPDF.xcodeproj/project.pbxproj | 4 + .../EmptyDocumentTests.swift | 27 ++++ .../ExternalDocumentTests.swift | 127 ++++++++++++++++++ 3 files changed, 158 insertions(+) create mode 100644 Tests/TPPDFIntegrationTests/EmptyDocumentTests.swift diff --git a/TPPDF.xcodeproj/project.pbxproj b/TPPDF.xcodeproj/project.pbxproj index d7331d65..0450880f 100644 --- a/TPPDF.xcodeproj/project.pbxproj +++ b/TPPDF.xcodeproj/project.pbxproj @@ -22,6 +22,7 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ + D47CBEDB25A3AFD90071CD3A /* EmptyDocumentTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D47CBEDA25A3AFD90071CD3A /* EmptyDocumentTests.swift */; }; D48008C025A200AD00CFB266 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D48008BF25A200AD00CFB266 /* XCTest.framework */; }; D48008C125A200AD00CFB266 /* XCTest.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D48008BF25A200AD00CFB266 /* XCTest.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; D48009AC25A204C700CFB266 /* Bundle+Module.swift in Sources */ = {isa = PBXBuildFile; fileRef = D48009AB25A204C700CFB266 /* Bundle+Module.swift */; }; @@ -624,6 +625,7 @@ "CwlPreconditionTesting::CwlMachBadInstructionHandler::Product" /* CwlMachBadInstructionHandler.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CwlMachBadInstructionHandler.framework; sourceTree = BUILT_PRODUCTS_DIR; }; "CwlPreconditionTesting::CwlPosixPreconditionTesting::Product" /* CwlPosixPreconditionTesting.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CwlPosixPreconditionTesting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; "CwlPreconditionTesting::CwlPreconditionTesting::Product" /* CwlPreconditionTesting.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CwlPreconditionTesting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D47CBEDA25A3AFD90071CD3A /* EmptyDocumentTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmptyDocumentTests.swift; sourceTree = ""; }; D48008BF25A200AD00CFB266 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/MacOSX.platform/Developer/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; D480095625A202DD00CFB266 /* 50-pages.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = "50-pages.pdf"; sourceTree = ""; }; D480099925A202F200CFB266 /* sample.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = sample.pdf; sourceTree = ""; }; @@ -1276,6 +1278,7 @@ children = ( D480095525A202DD00CFB266 /* resources */, OBJ_177 /* ExternalDocumentTests.swift */, + D47CBEDA25A3AFD90071CD3A /* EmptyDocumentTests.swift */, ); name = TPPDFIntegrationTests; path = Tests/TPPDFIntegrationTests; @@ -2709,6 +2712,7 @@ buildActionMask = 0; files = ( OBJ_736 /* ExternalDocumentTests.swift in Sources */, + D47CBEDB25A3AFD90071CD3A /* EmptyDocumentTests.swift in Sources */, D48009CD25A2050900CFB266 /* Bundle+Module.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/Tests/TPPDFIntegrationTests/EmptyDocumentTests.swift b/Tests/TPPDFIntegrationTests/EmptyDocumentTests.swift new file mode 100644 index 00000000..46be0657 --- /dev/null +++ b/Tests/TPPDFIntegrationTests/EmptyDocumentTests.swift @@ -0,0 +1,27 @@ +import Foundation +import Quick +import Nimble +@testable import TPPDF +import PDFKit + +class EmptyDocumentTests: QuickSpec { + + override func spec() { + describe("Empty Document") { + it("it should have a single page") { + let document = PDFDocument(format: .usLetter) + let generator = PDFGenerator(document: document) + generator.debug = true + + var outputURL: URL! = nil + expect { + outputURL = try generator.generateURL(filename: "output.pdf") + }.toNot(throwError()) + expect(generator.totalPages) == 1 + + let outputDoc = PDFKit.PDFDocument(url: outputURL) + expect(outputDoc?.pageCount) == 1 + } + } + } +} diff --git a/Tests/TPPDFIntegrationTests/ExternalDocumentTests.swift b/Tests/TPPDFIntegrationTests/ExternalDocumentTests.swift index c2b04668..6d6597e3 100644 --- a/Tests/TPPDFIntegrationTests/ExternalDocumentTests.swift +++ b/Tests/TPPDFIntegrationTests/ExternalDocumentTests.swift @@ -76,6 +76,7 @@ class ExternalDocumentTests: QuickSpec { } } } + context("content before document") { context("debug mode") { @@ -281,6 +282,132 @@ class ExternalDocumentTests: QuickSpec { } } } + + context("multiple external documents") { + context("debug mode") { + + // Test Case: + // Precondition: + // - Document contains 2 external documents + // - Debug mode is active + // Expected Result: + // - Render content of each document after another + // Notes: + // - This test needs to be run with and without debug mode to validate side effects + it("should merge two external documents with debug overlay") { + let document = PDFDocument(format: .a4) + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "50-pages", withExtension: "pdf")!)) + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "50-pages", withExtension: "pdf")!)) + + let generator = PDFGenerator(document: document) + generator.debug = true + + var outputURL: URL! = nil + expect { + outputURL = try generator.generateURL(filename: "output.pdf") + }.toNot(throwError()) + expect(generator.totalPages) == 100 + + let outputDoc = PDFKit.PDFDocument(url: outputURL) + expect(outputDoc?.pageCount) == 100 + + // TODO: compare output PDF to reference PDF + } + + // Test Case: + // Precondition: + // - Document contains 2 external documents + // - Debug mode is active + // Expected Result: + // - Render content of each document after another + // Notes: + // - This test needs to be run with and without debug mode to validate side effects + it("should merge many external documents with debug overlay") { + let document = PDFDocument(format: .a4) + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "50-pages", withExtension: "pdf")!)) + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "50-pages", withExtension: "pdf")!)) + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "50-pages", withExtension: "pdf")!)) + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "50-pages", withExtension: "pdf")!)) + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "50-pages", withExtension: "pdf")!)) + + let generator = PDFGenerator(document: document) + generator.debug = true + + var outputURL: URL! = nil + expect { + outputURL = try generator.generateURL(filename: "output.pdf") + }.toNot(throwError()) + expect(generator.totalPages) == 250 + + let outputDoc = PDFKit.PDFDocument(url: outputURL) + expect(outputDoc?.pageCount) == 250 + + // TODO: compare output PDF to reference PDF + } + } + + context("normal mode") { + + // Test Case: + // Precondition: + // - Document contains 5 external documents + // - Debug mode is not active + // Expected Result: + // - Render content of each document after another + // Notes: + // - This test needs to be run with and without debug mode to validate side effects + it("should merge two external documents") { + let document = PDFDocument(format: .a4) + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "50-pages", withExtension: "pdf")!)) + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "50-pages", withExtension: "pdf")!)) + + let generator = PDFGenerator(document: document) + generator.debug = false + + var outputURL: URL! = nil + expect { + outputURL = try generator.generateURL(filename: "output.pdf") + }.toNot(throwError()) + expect(generator.totalPages) == 100 + + let outputDoc = PDFKit.PDFDocument(url: outputURL) + expect(outputDoc?.pageCount) == 100 + + // TODO: compare output PDF to reference PDF + } + + // Test Case: + // Precondition: + // - Document contains 5 external documents + // - Debug mode is not active + // Expected Result: + // - Render content of each document after another + // Notes: + // - This test needs to be run with and without debug mode to validate side effects + it("should merge many external documents") { + let document = PDFDocument(format: .a4) + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "50-pages", withExtension: "pdf")!)) + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "50-pages", withExtension: "pdf")!)) + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "50-pages", withExtension: "pdf")!)) + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "50-pages", withExtension: "pdf")!)) + document.add(externalDocument: .init(url: Bundle.module.url(forResource: "50-pages", withExtension: "pdf")!)) + + let generator = PDFGenerator(document: document) + generator.debug = false + + var outputURL: URL! = nil + expect { + outputURL = try generator.generateURL(filename: "output.pdf") + }.toNot(throwError()) + expect(generator.totalPages) == 250 + + let outputDoc = PDFKit.PDFDocument(url: outputURL) + expect(outputDoc?.pageCount) == 250 + + // TODO: compare output PDF to reference PDF + } + } + } } } } From 05464c10a578fd3fcf7fa8db1ef8494959fe0e3c Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Tue, 5 Jan 2021 21:04:06 +0100 Subject: [PATCH 26/29] Removed empty pages between batching external documents --- Source/API/PDFGenerator+Generation.swift | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Source/API/PDFGenerator+Generation.swift b/Source/API/PDFGenerator+Generation.swift index 4537c712..2be2ede9 100644 --- a/Source/API/PDFGenerator+Generation.swift +++ b/Source/API/PDFGenerator+Generation.swift @@ -141,7 +141,9 @@ extension PDFGenerator { // Iterate all objects and let them calculate the required rendering bounds var needsPageBreak = false - for (pdfObjectIdx, (container, pdfObject)) in contentObjects.enumerated() { + var prevPDFObject: PDFLocatedRenderObject? + for (pdfObjectIdx, locatedPdfObject) in contentObjects.enumerated() { + let (container, pdfObject) = locatedPdfObject if let tocObject = pdfObject as? PDFTableOfContentObject { // Create table of content from objects tocObject.list = PDFGenerator.createTableOfContentList(objects: contentObjects, @@ -152,7 +154,8 @@ extension PDFGenerator { var prevObj: PDFLocatedRenderObject? for (objIdx, obj) in objects.enumerated() { if needsPageBreak { - if !(prevObj?.1 is PDFExternalPageObject) { + // Skip adding page break between external pages + if !(prevObj?.1 is PDFExternalPageObject) && !(obj.1 is PDFExternalPageObject) { needsPageBreak = false _ = try PDFPageBreakObject().calculate(generator: self, container: container) currentPage += 1 @@ -180,6 +183,7 @@ extension PDFGenerator { prevObj = obj } progress.completedUnitCount += 1 + prevPDFObject = locatedPdfObject } let result = currentPage @@ -215,7 +219,7 @@ extension PDFGenerator { var prevObj: PDFLocatedRenderObject? for obj in objects { if needsPageBreak { - if !(prevObj?.1 is PDFExternalPageObject) { + if !(prevObj?.1 is PDFExternalPageObject) && !(obj.1 is PDFExternalPageObject) { needsPageBreak = false result += try PDFPageBreakObject().calculate(generator: self, container: container) currentPage += 1 From 43570c0e3571b7193ab2198f9a132a88cf3f64f0 Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Wed, 6 Jan 2021 18:50:56 +0100 Subject: [PATCH 27/29] Updated changelog, added 2.3.3 --- CHANGELOG.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4af9cd24..1a3e9bd7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Change Log ## [Unreleased](https://github.com/techprimate/TPPDF/tree/HEAD) (2020-??-??) -[Full Changelog](https://github.com/techprimate/TPPDF/compare/2.3.2...HEAD) +[Full Changelog](https://github.com/techprimate/TPPDF/compare/2.3.3...HEAD) **Implemented enhancements:** @@ -11,6 +11,23 @@ **Merged pull requests:** +## [2.3.3](https://github.com/techprimate/TPPDF/tree/HEAD) (2020-??-??) +[Full Changelog](https://github.com/techprimate/TPPDF/compare/2.3.2...2.3.3) + +**Fixed bugs:** + +- Fixed empty pages between external documents (#247) +- Fixed total page count calculations (#248) + +**Closed issues:** + +- Issue #247 +- Issue #248 + +**Merged pull requests:** + +- Issue #258 + ## [2.3.2](https://github.com/techprimate/TPPDF/tree/2.3.2) (2020-12-05) [Full Changelog](https://github.com/techprimate/TPPDF/compare/2.3.1...2.3.2) From feee86706d60cb12a138078fe1a52924b27c6cb0 Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Wed, 6 Jan 2021 18:59:12 +0100 Subject: [PATCH 28/29] Fixed usage description --- Documentation/Usage.md | 44 +++++++++++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/Documentation/Usage.md b/Documentation/Usage.md index 9b23fb04..82034d8c 100644 --- a/Documentation/Usage.md +++ b/Documentation/Usage.md @@ -40,6 +40,7 @@ - [Document Info](#document-info) - [Generation](#generation) - [Multiple Documents](#multiple-documents) +* [Progress Observing](#progress-observing) * [Debug](#debug) ## Getting Started @@ -738,7 +739,7 @@ You can generate the PDF file using the following method: let document: PDFDocument let filename = "awesome.pdf" let generator = PDFGenerator(document: document) -let url = try generator.generateURL(document: document, filename: filename) +let url = try generator.generateURL(filename: filename) ``` This will render the document to a temporary file and return the URL. Be sure to wrap it a `try-catch` block, as it might throw an error! @@ -749,7 +750,7 @@ It is also possible to render the file and return the data, using `generateData` let document: PDFDocument let filename = "awesome.pdf" let generator = PDFGenerator(document: document) -let data = try generator.generateData(document: document, filename: filename) +let data = try generator.generateData() ``` And if you want to directly save it to a specific file, pass an URL to `generate(document:, to: )`: @@ -769,19 +770,34 @@ If you want to combine multiple `PDFDocument` into a single PDF file, use the al ```swift let generator = PDFMultiDocumentGenerator(documents: [document1, document2]) -generator.progress.observe(\.fractionCompleted) { (p, _) in +let url = try generator.generateURL(filename: "Example.pdf") +``` + +Also you are able to track the generation of each individual document using the `progresses` array: + +**Example:** + +```swift +let generator = PDFMultiDocumentGenerator(documents: [document1, document2]) +generator.progresses[0].observe(\.fractionCompleted) { (p, _) in print(p.localizedDescription ?? "") } +``` + +# Progress Observing + +Progress observing is done using the native `Progress` handling. + +**Example:** + +```swift +let generator = PDFDocumentGenerator(document: document) generator.progress.observe(\.fractionCompleted) { (p, _) in print(p.localizedDescription ?? "") } -generator.progress.observe(\.completedUnitCount) { (p, _) in - print(p.completedUnitCount ?? "", " of ", p.totalUnitCount) -} -let url = try generator.generateURL(filename: "Example.pdf") ``` -Also you are able to track the generation of each individual document using the `progresses` array: +Also you are able to track the generation of each individual document when rendering multiple documents by using the `progresses` array: **Example:** @@ -792,6 +808,16 @@ generator.progresses[0].observe(\.fractionCompleted) { (p, _) in } ``` +You can find more about `Progress` handling in the Apple Developer documentation. + # Debug -If you want to enable a debug overlay, set the flag `debug` in `PDFGenerator::generate(..)`, `PDFGenerator::generateURL(..)` or `PDFGenerator::generateData(..)` to `true` and it will add colored outlines of the elements in you document. \ No newline at end of file +If you want to enable a debug overlay, set the flag `debug` of the `PDFGenerator` instance to `true` and it will add colored outlines of the elements in you document. + +**Example:** + +```swift +let document: PDFDocument +let generator = PDFDocumentGenerator(document: document) +generator.debug = true +``` \ No newline at end of file From b90e71eb619bd4a4d98512377fb4043afbdeab67 Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Wed, 6 Jan 2021 19:01:30 +0100 Subject: [PATCH 29/29] Version bump to 2.3.3 --- TPPDF.podspec | 2 +- TPPDF.xcodeproj/project.pbxproj | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/TPPDF.podspec b/TPPDF.podspec index 9c7173f1..2060c527 100644 --- a/TPPDF.podspec +++ b/TPPDF.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'TPPDF' - s.version = '2.3.2' + s.version = '2.3.3' s.summary = 'TPPDF is a simple-to-use PDF builder for iOS' s.description = <<-DESC TPPDF is an object-based PDF builder, completely built in Swift. diff --git a/TPPDF.xcodeproj/project.pbxproj b/TPPDF.xcodeproj/project.pbxproj index 0450880f..d053a1a4 100644 --- a/TPPDF.xcodeproj/project.pbxproj +++ b/TPPDF.xcodeproj/project.pbxproj @@ -3017,6 +3017,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.10; + MARKETING_VERSION = 2.3.3; ONLY_ACTIVE_ARCH = YES; OTHER_SWIFT_FLAGS = "$(inherited) -DXcode"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -3068,6 +3069,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.10; + MARKETING_VERSION = 2.3.3; OTHER_SWIFT_FLAGS = "$(inherited) -DXcode"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx;