The Swift Package Index logo.Swift Package Index

Build Information

Successful build of Hwp-Swift, reference 0.19.0 (eebe90), with Swift 6.1 for macOS (SPM) on 13 Oct 2026 17:01:29 UTC.

Swift 6 data race errors: 5

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

     |                      |- warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
     |                      `- note: 'self'-isolated 'fragmentFootnotes' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1553 |                 environment: noteEnvironment,
1554 |                 childParagraphs: Self.childParagraphs(of:),
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:2410:82: warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
2408 |                 policy: splitPolicy,
2409 |                 columnIsEmpty: columnIsEmpty,
2410 |                 extra: { fragmentFootnoteReservation(through: $0, of: remainder, fragmentFootnotes) }
     |                        |                                                         |- warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
     |                        |                                                         `- note: 'self'-isolated 'fragmentFootnotes' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
     |                        `- note: access can happen concurrently
2411 |             )
2412 |             // 빈 단(gap만 charge)에서 gap+첫 줄이 안 맞는 초과 문단은 gap을 무르고
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1331:60: warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
1315 |
1316 |     private func appendFlowParagraphAcrossPages(_ split: FlowSplitInput) {
1317 |         appendParagraphAcrossColumns(
     |         `- note: access can happen concurrently
1318 |             attributedString: split.attributedString,
1319 |             paragraphFrame: split.paragraphFrame,
     :
1329 |             fitSource: split.fitSource,
1330 |             onFragmentPlaced: {
1331 |                 registerPageChromeForCurrentFragment(from: split.paragraph)
     |                                                            |- warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
     |                                                            `- note: 'self'-isolated 'split' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1332 |                 appendInlineControlBlocksForCurrentFragment(from: split.paragraph)
1333 |             }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1241:36: warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
1239 |         ) && (
1240 |             paragraphHeight > currentColumnFrame.height
1241 |                 || canSplitAtEntry(split, cacheHeightUsed: cacheHeightUsed)
     |                                    |- warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
     |                                    `- note: 'self'-isolated 'split' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1242 |         )
1243 |         if paragraphFrame.lines.count > 1, exceedsColumn || exceedsBodyAboveNotes {
1244 |             appendFlowParagraphAcrossPages(split)
     |             `- note: access can happen concurrently
1245 |             return true
1246 |         }
1247 |         contentHeightUsed += beforeGap
1248 |         paragraphAnchorTop = currentColumnFrame.minY + contentHeightUsed
1249 |         appendBlock(
     |         `- note: access can happen concurrently
1250 |             height: paragraphHeight - beforeGap,
1251 |             attributedString: attributedString,
[283/307] Compiling HwpKitCore HwpPageGeometry.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:2189:5: warning: 'public' modifier conflicts with extension's default access of 'private'
2187 |
2188 |     /// 전체 문단 대비 처리 위치 (0...1 근사) — 프로그레시브 로딩 진행률
2189 |     public func progressEstimate() -> Double {
     |     `- warning: 'public' modifier conflicts with extension's default access of 'private'
2190 |         let total = sections.reduce(0) { $0 + $1.paragraph.count }
2191 |         guard total > 0 else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:5412:86: warning: sending 'first' risks causing data races; this is an error in the Swift 6 language mode
5410 |                environment: noteEnvironment.withFootnoteShape(currentSectionDef?.endNoteShape),
5411 |                numbering: first.numbering,
5412 |                isNoteEnd: pendingEndnotes.count == 1 || pendingEndnotes[1].noteId != first.noteId,
     |                                                                                      |- warning: sending 'first' risks causing data races; this is an error in the Swift 6 language mode
     |                                                                                      `- note: 'self'-isolated 'first' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
5413 |                noteCarriesObjects: first.noteFacts?.carriesObjects ?? false
     |                                          `- note: access can happen concurrently
5414 |            ) > effectiveContentHeight
5415 |         {
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1771:46: warning: sending 'attributedString' risks causing data races; this is an error in the Swift 6 language mode
1769 |             ) || bandStartOverflows(runs[0])
1770 |             let shiftedOut = !cachedBreak && staleShiftOverflows(
1771 |                 paragraph, attributedString: attributedString, frame: paragraphFrame, runs: runs
     |                                              |- warning: sending 'attributedString' risks causing data races; this is an error in the Swift 6 language mode
     |                                              `- note: 'self'-isolated 'attributedString' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1772 |             )
1773 |             if cachedBreak || shiftedOut {
     :
1791 |         // 캐시(한글의 절단점)가 더 앞 조각이라 하면 그쪽을 따른다 (#165) — 늦은 귀속은
1792 |         // 각주 이어짐과 만나 뒤 쪽으로 연쇄한다 (`earliestOrdinalRanges`).
1793 |         let slices = absoluteRunSlices(
     |                      `- note: access can happen concurrently
1794 |             runs: runs,
1795 |             attributedString: attributedString,
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1552:22: warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
1548 |             return total
1549 |         }
1550 |         return fragmentFootnotes.reservation(for: ordinals, isLast: true) {
     |                                  `- note: access can happen concurrently
1551 |             footnoteCoordinator.anticipatedFootnoteHeight(
1552 |                 for: fragmentFootnotes.paragraph,
     |                      |- warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
     |                      `- note: 'self'-isolated 'fragmentFootnotes' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1553 |                 environment: noteEnvironment,
1554 |                 childParagraphs: Self.childParagraphs(of:),
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:2410:82: warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
2408 |                 policy: splitPolicy,
2409 |                 columnIsEmpty: columnIsEmpty,
2410 |                 extra: { fragmentFootnoteReservation(through: $0, of: remainder, fragmentFootnotes) }
     |                        |                                                         |- warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
     |                        |                                                         `- note: 'self'-isolated 'fragmentFootnotes' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
     |                        `- note: access can happen concurrently
2411 |             )
2412 |             // 빈 단(gap만 charge)에서 gap+첫 줄이 안 맞는 초과 문단은 gap을 무르고
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1331:60: warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
1315 |
1316 |     private func appendFlowParagraphAcrossPages(_ split: FlowSplitInput) {
1317 |         appendParagraphAcrossColumns(
     |         `- note: access can happen concurrently
1318 |             attributedString: split.attributedString,
1319 |             paragraphFrame: split.paragraphFrame,
     :
1329 |             fitSource: split.fitSource,
1330 |             onFragmentPlaced: {
1331 |                 registerPageChromeForCurrentFragment(from: split.paragraph)
     |                                                            |- warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
     |                                                            `- note: 'self'-isolated 'split' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1332 |                 appendInlineControlBlocksForCurrentFragment(from: split.paragraph)
1333 |             }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1241:36: warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
1239 |         ) && (
1240 |             paragraphHeight > currentColumnFrame.height
1241 |                 || canSplitAtEntry(split, cacheHeightUsed: cacheHeightUsed)
     |                                    |- warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
     |                                    `- note: 'self'-isolated 'split' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1242 |         )
1243 |         if paragraphFrame.lines.count > 1, exceedsColumn || exceedsBodyAboveNotes {
1244 |             appendFlowParagraphAcrossPages(split)
     |             `- note: access can happen concurrently
1245 |             return true
1246 |         }
1247 |         contentHeightUsed += beforeGap
1248 |         paragraphAnchorTop = currentColumnFrame.minY + contentHeightUsed
1249 |         appendBlock(
     |         `- note: access can happen concurrently
1250 |             height: paragraphHeight - beforeGap,
1251 |             attributedString: attributedString,
[284/307] Compiling HwpKitCore HwpPaginator.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:2189:5: warning: 'public' modifier conflicts with extension's default access of 'private'
2187 |
2188 |     /// 전체 문단 대비 처리 위치 (0...1 근사) — 프로그레시브 로딩 진행률
2189 |     public func progressEstimate() -> Double {
     |     `- warning: 'public' modifier conflicts with extension's default access of 'private'
2190 |         let total = sections.reduce(0) { $0 + $1.paragraph.count }
2191 |         guard total > 0 else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:5412:86: warning: sending 'first' risks causing data races; this is an error in the Swift 6 language mode
5410 |                environment: noteEnvironment.withFootnoteShape(currentSectionDef?.endNoteShape),
5411 |                numbering: first.numbering,
5412 |                isNoteEnd: pendingEndnotes.count == 1 || pendingEndnotes[1].noteId != first.noteId,
     |                                                                                      |- warning: sending 'first' risks causing data races; this is an error in the Swift 6 language mode
     |                                                                                      `- note: 'self'-isolated 'first' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
5413 |                noteCarriesObjects: first.noteFacts?.carriesObjects ?? false
     |                                          `- note: access can happen concurrently
5414 |            ) > effectiveContentHeight
5415 |         {
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1771:46: warning: sending 'attributedString' risks causing data races; this is an error in the Swift 6 language mode
1769 |             ) || bandStartOverflows(runs[0])
1770 |             let shiftedOut = !cachedBreak && staleShiftOverflows(
1771 |                 paragraph, attributedString: attributedString, frame: paragraphFrame, runs: runs
     |                                              |- warning: sending 'attributedString' risks causing data races; this is an error in the Swift 6 language mode
     |                                              `- note: 'self'-isolated 'attributedString' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1772 |             )
1773 |             if cachedBreak || shiftedOut {
     :
1791 |         // 캐시(한글의 절단점)가 더 앞 조각이라 하면 그쪽을 따른다 (#165) — 늦은 귀속은
1792 |         // 각주 이어짐과 만나 뒤 쪽으로 연쇄한다 (`earliestOrdinalRanges`).
1793 |         let slices = absoluteRunSlices(
     |                      `- note: access can happen concurrently
1794 |             runs: runs,
1795 |             attributedString: attributedString,
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1552:22: warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
1548 |             return total
1549 |         }
1550 |         return fragmentFootnotes.reservation(for: ordinals, isLast: true) {
     |                                  `- note: access can happen concurrently
1551 |             footnoteCoordinator.anticipatedFootnoteHeight(
1552 |                 for: fragmentFootnotes.paragraph,
     |                      |- warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
     |                      `- note: 'self'-isolated 'fragmentFootnotes' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1553 |                 environment: noteEnvironment,
1554 |                 childParagraphs: Self.childParagraphs(of:),
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:2410:82: warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
2408 |                 policy: splitPolicy,
2409 |                 columnIsEmpty: columnIsEmpty,
2410 |                 extra: { fragmentFootnoteReservation(through: $0, of: remainder, fragmentFootnotes) }
     |                        |                                                         |- warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
     |                        |                                                         `- note: 'self'-isolated 'fragmentFootnotes' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
     |                        `- note: access can happen concurrently
2411 |             )
2412 |             // 빈 단(gap만 charge)에서 gap+첫 줄이 안 맞는 초과 문단은 gap을 무르고
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1331:60: warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
1315 |
1316 |     private func appendFlowParagraphAcrossPages(_ split: FlowSplitInput) {
1317 |         appendParagraphAcrossColumns(
     |         `- note: access can happen concurrently
1318 |             attributedString: split.attributedString,
1319 |             paragraphFrame: split.paragraphFrame,
     :
1329 |             fitSource: split.fitSource,
1330 |             onFragmentPlaced: {
1331 |                 registerPageChromeForCurrentFragment(from: split.paragraph)
     |                                                            |- warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
     |                                                            `- note: 'self'-isolated 'split' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1332 |                 appendInlineControlBlocksForCurrentFragment(from: split.paragraph)
1333 |             }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1241:36: warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
1239 |         ) && (
1240 |             paragraphHeight > currentColumnFrame.height
1241 |                 || canSplitAtEntry(split, cacheHeightUsed: cacheHeightUsed)
     |                                    |- warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
     |                                    `- note: 'self'-isolated 'split' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1242 |         )
1243 |         if paragraphFrame.lines.count > 1, exceedsColumn || exceedsBodyAboveNotes {
1244 |             appendFlowParagraphAcrossPages(split)
     |             `- note: access can happen concurrently
1245 |             return true
1246 |         }
1247 |         contentHeightUsed += beforeGap
1248 |         paragraphAnchorTop = currentColumnFrame.minY + contentHeightUsed
1249 |         appendBlock(
     |         `- note: access can happen concurrently
1250 |             height: paragraphHeight - beforeGap,
1251 |             attributedString: attributedString,
[285/307] Compiling HwpKitCore HwpParagraphFragmentLines.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:2189:5: warning: 'public' modifier conflicts with extension's default access of 'private'
2187 |
2188 |     /// 전체 문단 대비 처리 위치 (0...1 근사) — 프로그레시브 로딩 진행률
2189 |     public func progressEstimate() -> Double {
     |     `- warning: 'public' modifier conflicts with extension's default access of 'private'
2190 |         let total = sections.reduce(0) { $0 + $1.paragraph.count }
2191 |         guard total > 0 else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:5412:86: warning: sending 'first' risks causing data races; this is an error in the Swift 6 language mode
5410 |                environment: noteEnvironment.withFootnoteShape(currentSectionDef?.endNoteShape),
5411 |                numbering: first.numbering,
5412 |                isNoteEnd: pendingEndnotes.count == 1 || pendingEndnotes[1].noteId != first.noteId,
     |                                                                                      |- warning: sending 'first' risks causing data races; this is an error in the Swift 6 language mode
     |                                                                                      `- note: 'self'-isolated 'first' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
5413 |                noteCarriesObjects: first.noteFacts?.carriesObjects ?? false
     |                                          `- note: access can happen concurrently
5414 |            ) > effectiveContentHeight
5415 |         {
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1771:46: warning: sending 'attributedString' risks causing data races; this is an error in the Swift 6 language mode
1769 |             ) || bandStartOverflows(runs[0])
1770 |             let shiftedOut = !cachedBreak && staleShiftOverflows(
1771 |                 paragraph, attributedString: attributedString, frame: paragraphFrame, runs: runs
     |                                              |- warning: sending 'attributedString' risks causing data races; this is an error in the Swift 6 language mode
     |                                              `- note: 'self'-isolated 'attributedString' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1772 |             )
1773 |             if cachedBreak || shiftedOut {
     :
1791 |         // 캐시(한글의 절단점)가 더 앞 조각이라 하면 그쪽을 따른다 (#165) — 늦은 귀속은
1792 |         // 각주 이어짐과 만나 뒤 쪽으로 연쇄한다 (`earliestOrdinalRanges`).
1793 |         let slices = absoluteRunSlices(
     |                      `- note: access can happen concurrently
1794 |             runs: runs,
1795 |             attributedString: attributedString,
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1552:22: warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
1548 |             return total
1549 |         }
1550 |         return fragmentFootnotes.reservation(for: ordinals, isLast: true) {
     |                                  `- note: access can happen concurrently
1551 |             footnoteCoordinator.anticipatedFootnoteHeight(
1552 |                 for: fragmentFootnotes.paragraph,
     |                      |- warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
     |                      `- note: 'self'-isolated 'fragmentFootnotes' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1553 |                 environment: noteEnvironment,
1554 |                 childParagraphs: Self.childParagraphs(of:),
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:2410:82: warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
2408 |                 policy: splitPolicy,
2409 |                 columnIsEmpty: columnIsEmpty,
2410 |                 extra: { fragmentFootnoteReservation(through: $0, of: remainder, fragmentFootnotes) }
     |                        |                                                         |- warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
     |                        |                                                         `- note: 'self'-isolated 'fragmentFootnotes' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
     |                        `- note: access can happen concurrently
2411 |             )
2412 |             // 빈 단(gap만 charge)에서 gap+첫 줄이 안 맞는 초과 문단은 gap을 무르고
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1331:60: warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
1315 |
1316 |     private func appendFlowParagraphAcrossPages(_ split: FlowSplitInput) {
1317 |         appendParagraphAcrossColumns(
     |         `- note: access can happen concurrently
1318 |             attributedString: split.attributedString,
1319 |             paragraphFrame: split.paragraphFrame,
     :
1329 |             fitSource: split.fitSource,
1330 |             onFragmentPlaced: {
1331 |                 registerPageChromeForCurrentFragment(from: split.paragraph)
     |                                                            |- warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
     |                                                            `- note: 'self'-isolated 'split' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1332 |                 appendInlineControlBlocksForCurrentFragment(from: split.paragraph)
1333 |             }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1241:36: warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
1239 |         ) && (
1240 |             paragraphHeight > currentColumnFrame.height
1241 |                 || canSplitAtEntry(split, cacheHeightUsed: cacheHeightUsed)
     |                                    |- warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
     |                                    `- note: 'self'-isolated 'split' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1242 |         )
1243 |         if paragraphFrame.lines.count > 1, exceedsColumn || exceedsBodyAboveNotes {
1244 |             appendFlowParagraphAcrossPages(split)
     |             `- note: access can happen concurrently
1245 |             return true
1246 |         }
1247 |         contentHeightUsed += beforeGap
1248 |         paragraphAnchorTop = currentColumnFrame.minY + contentHeightUsed
1249 |         appendBlock(
     |         `- note: access can happen concurrently
1250 |             height: paragraphHeight - beforeGap,
1251 |             attributedString: attributedString,
[286/307] Compiling HwpKitCore HwpParagraphFragmentStyle.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:2189:5: warning: 'public' modifier conflicts with extension's default access of 'private'
2187 |
2188 |     /// 전체 문단 대비 처리 위치 (0...1 근사) — 프로그레시브 로딩 진행률
2189 |     public func progressEstimate() -> Double {
     |     `- warning: 'public' modifier conflicts with extension's default access of 'private'
2190 |         let total = sections.reduce(0) { $0 + $1.paragraph.count }
2191 |         guard total > 0 else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:5412:86: warning: sending 'first' risks causing data races; this is an error in the Swift 6 language mode
5410 |                environment: noteEnvironment.withFootnoteShape(currentSectionDef?.endNoteShape),
5411 |                numbering: first.numbering,
5412 |                isNoteEnd: pendingEndnotes.count == 1 || pendingEndnotes[1].noteId != first.noteId,
     |                                                                                      |- warning: sending 'first' risks causing data races; this is an error in the Swift 6 language mode
     |                                                                                      `- note: 'self'-isolated 'first' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
5413 |                noteCarriesObjects: first.noteFacts?.carriesObjects ?? false
     |                                          `- note: access can happen concurrently
5414 |            ) > effectiveContentHeight
5415 |         {
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1771:46: warning: sending 'attributedString' risks causing data races; this is an error in the Swift 6 language mode
1769 |             ) || bandStartOverflows(runs[0])
1770 |             let shiftedOut = !cachedBreak && staleShiftOverflows(
1771 |                 paragraph, attributedString: attributedString, frame: paragraphFrame, runs: runs
     |                                              |- warning: sending 'attributedString' risks causing data races; this is an error in the Swift 6 language mode
     |                                              `- note: 'self'-isolated 'attributedString' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1772 |             )
1773 |             if cachedBreak || shiftedOut {
     :
1791 |         // 캐시(한글의 절단점)가 더 앞 조각이라 하면 그쪽을 따른다 (#165) — 늦은 귀속은
1792 |         // 각주 이어짐과 만나 뒤 쪽으로 연쇄한다 (`earliestOrdinalRanges`).
1793 |         let slices = absoluteRunSlices(
     |                      `- note: access can happen concurrently
1794 |             runs: runs,
1795 |             attributedString: attributedString,
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1552:22: warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
1548 |             return total
1549 |         }
1550 |         return fragmentFootnotes.reservation(for: ordinals, isLast: true) {
     |                                  `- note: access can happen concurrently
1551 |             footnoteCoordinator.anticipatedFootnoteHeight(
1552 |                 for: fragmentFootnotes.paragraph,
     |                      |- warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
     |                      `- note: 'self'-isolated 'fragmentFootnotes' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1553 |                 environment: noteEnvironment,
1554 |                 childParagraphs: Self.childParagraphs(of:),
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:2410:82: warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
2408 |                 policy: splitPolicy,
2409 |                 columnIsEmpty: columnIsEmpty,
2410 |                 extra: { fragmentFootnoteReservation(through: $0, of: remainder, fragmentFootnotes) }
     |                        |                                                         |- warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
     |                        |                                                         `- note: 'self'-isolated 'fragmentFootnotes' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
     |                        `- note: access can happen concurrently
2411 |             )
2412 |             // 빈 단(gap만 charge)에서 gap+첫 줄이 안 맞는 초과 문단은 gap을 무르고
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1331:60: warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
1315 |
1316 |     private func appendFlowParagraphAcrossPages(_ split: FlowSplitInput) {
1317 |         appendParagraphAcrossColumns(
     |         `- note: access can happen concurrently
1318 |             attributedString: split.attributedString,
1319 |             paragraphFrame: split.paragraphFrame,
     :
1329 |             fitSource: split.fitSource,
1330 |             onFragmentPlaced: {
1331 |                 registerPageChromeForCurrentFragment(from: split.paragraph)
     |                                                            |- warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
     |                                                            `- note: 'self'-isolated 'split' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1332 |                 appendInlineControlBlocksForCurrentFragment(from: split.paragraph)
1333 |             }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1241:36: warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
1239 |         ) && (
1240 |             paragraphHeight > currentColumnFrame.height
1241 |                 || canSplitAtEntry(split, cacheHeightUsed: cacheHeightUsed)
     |                                    |- warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
     |                                    `- note: 'self'-isolated 'split' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1242 |         )
1243 |         if paragraphFrame.lines.count > 1, exceedsColumn || exceedsBodyAboveNotes {
1244 |             appendFlowParagraphAcrossPages(split)
     |             `- note: access can happen concurrently
1245 |             return true
1246 |         }
1247 |         contentHeightUsed += beforeGap
1248 |         paragraphAnchorTop = currentColumnFrame.minY + contentHeightUsed
1249 |         appendBlock(
     |         `- note: access can happen concurrently
1250 |             height: paragraphHeight - beforeGap,
1251 |             attributedString: attributedString,
[287/307] Compiling HwpKitCore HwpParagraphLayout.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:2189:5: warning: 'public' modifier conflicts with extension's default access of 'private'
2187 |
2188 |     /// 전체 문단 대비 처리 위치 (0...1 근사) — 프로그레시브 로딩 진행률
2189 |     public func progressEstimate() -> Double {
     |     `- warning: 'public' modifier conflicts with extension's default access of 'private'
2190 |         let total = sections.reduce(0) { $0 + $1.paragraph.count }
2191 |         guard total > 0 else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:5412:86: warning: sending 'first' risks causing data races; this is an error in the Swift 6 language mode
5410 |                environment: noteEnvironment.withFootnoteShape(currentSectionDef?.endNoteShape),
5411 |                numbering: first.numbering,
5412 |                isNoteEnd: pendingEndnotes.count == 1 || pendingEndnotes[1].noteId != first.noteId,
     |                                                                                      |- warning: sending 'first' risks causing data races; this is an error in the Swift 6 language mode
     |                                                                                      `- note: 'self'-isolated 'first' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
5413 |                noteCarriesObjects: first.noteFacts?.carriesObjects ?? false
     |                                          `- note: access can happen concurrently
5414 |            ) > effectiveContentHeight
5415 |         {
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1771:46: warning: sending 'attributedString' risks causing data races; this is an error in the Swift 6 language mode
1769 |             ) || bandStartOverflows(runs[0])
1770 |             let shiftedOut = !cachedBreak && staleShiftOverflows(
1771 |                 paragraph, attributedString: attributedString, frame: paragraphFrame, runs: runs
     |                                              |- warning: sending 'attributedString' risks causing data races; this is an error in the Swift 6 language mode
     |                                              `- note: 'self'-isolated 'attributedString' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1772 |             )
1773 |             if cachedBreak || shiftedOut {
     :
1791 |         // 캐시(한글의 절단점)가 더 앞 조각이라 하면 그쪽을 따른다 (#165) — 늦은 귀속은
1792 |         // 각주 이어짐과 만나 뒤 쪽으로 연쇄한다 (`earliestOrdinalRanges`).
1793 |         let slices = absoluteRunSlices(
     |                      `- note: access can happen concurrently
1794 |             runs: runs,
1795 |             attributedString: attributedString,
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1552:22: warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
1548 |             return total
1549 |         }
1550 |         return fragmentFootnotes.reservation(for: ordinals, isLast: true) {
     |                                  `- note: access can happen concurrently
1551 |             footnoteCoordinator.anticipatedFootnoteHeight(
1552 |                 for: fragmentFootnotes.paragraph,
     |                      |- warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
     |                      `- note: 'self'-isolated 'fragmentFootnotes' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1553 |                 environment: noteEnvironment,
1554 |                 childParagraphs: Self.childParagraphs(of:),
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:2410:82: warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
2408 |                 policy: splitPolicy,
2409 |                 columnIsEmpty: columnIsEmpty,
2410 |                 extra: { fragmentFootnoteReservation(through: $0, of: remainder, fragmentFootnotes) }
     |                        |                                                         |- warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
     |                        |                                                         `- note: 'self'-isolated 'fragmentFootnotes' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
     |                        `- note: access can happen concurrently
2411 |             )
2412 |             // 빈 단(gap만 charge)에서 gap+첫 줄이 안 맞는 초과 문단은 gap을 무르고
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1331:60: warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
1315 |
1316 |     private func appendFlowParagraphAcrossPages(_ split: FlowSplitInput) {
1317 |         appendParagraphAcrossColumns(
     |         `- note: access can happen concurrently
1318 |             attributedString: split.attributedString,
1319 |             paragraphFrame: split.paragraphFrame,
     :
1329 |             fitSource: split.fitSource,
1330 |             onFragmentPlaced: {
1331 |                 registerPageChromeForCurrentFragment(from: split.paragraph)
     |                                                            |- warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
     |                                                            `- note: 'self'-isolated 'split' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1332 |                 appendInlineControlBlocksForCurrentFragment(from: split.paragraph)
1333 |             }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1241:36: warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
1239 |         ) && (
1240 |             paragraphHeight > currentColumnFrame.height
1241 |                 || canSplitAtEntry(split, cacheHeightUsed: cacheHeightUsed)
     |                                    |- warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
     |                                    `- note: 'self'-isolated 'split' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1242 |         )
1243 |         if paragraphFrame.lines.count > 1, exceedsColumn || exceedsBodyAboveNotes {
1244 |             appendFlowParagraphAcrossPages(split)
     |             `- note: access can happen concurrently
1245 |             return true
1246 |         }
1247 |         contentHeightUsed += beforeGap
1248 |         paragraphAnchorTop = currentColumnFrame.minY + contentHeightUsed
1249 |         appendBlock(
     |         `- note: access can happen concurrently
1250 |             height: paragraphHeight - beforeGap,
1251 |             attributedString: attributedString,
[288/307] Compiling HwpKitCore HwpParagraphMeasurer.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:2189:5: warning: 'public' modifier conflicts with extension's default access of 'private'
2187 |
2188 |     /// 전체 문단 대비 처리 위치 (0...1 근사) — 프로그레시브 로딩 진행률
2189 |     public func progressEstimate() -> Double {
     |     `- warning: 'public' modifier conflicts with extension's default access of 'private'
2190 |         let total = sections.reduce(0) { $0 + $1.paragraph.count }
2191 |         guard total > 0 else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:5412:86: warning: sending 'first' risks causing data races; this is an error in the Swift 6 language mode
5410 |                environment: noteEnvironment.withFootnoteShape(currentSectionDef?.endNoteShape),
5411 |                numbering: first.numbering,
5412 |                isNoteEnd: pendingEndnotes.count == 1 || pendingEndnotes[1].noteId != first.noteId,
     |                                                                                      |- warning: sending 'first' risks causing data races; this is an error in the Swift 6 language mode
     |                                                                                      `- note: 'self'-isolated 'first' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
5413 |                noteCarriesObjects: first.noteFacts?.carriesObjects ?? false
     |                                          `- note: access can happen concurrently
5414 |            ) > effectiveContentHeight
5415 |         {
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1771:46: warning: sending 'attributedString' risks causing data races; this is an error in the Swift 6 language mode
1769 |             ) || bandStartOverflows(runs[0])
1770 |             let shiftedOut = !cachedBreak && staleShiftOverflows(
1771 |                 paragraph, attributedString: attributedString, frame: paragraphFrame, runs: runs
     |                                              |- warning: sending 'attributedString' risks causing data races; this is an error in the Swift 6 language mode
     |                                              `- note: 'self'-isolated 'attributedString' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1772 |             )
1773 |             if cachedBreak || shiftedOut {
     :
1791 |         // 캐시(한글의 절단점)가 더 앞 조각이라 하면 그쪽을 따른다 (#165) — 늦은 귀속은
1792 |         // 각주 이어짐과 만나 뒤 쪽으로 연쇄한다 (`earliestOrdinalRanges`).
1793 |         let slices = absoluteRunSlices(
     |                      `- note: access can happen concurrently
1794 |             runs: runs,
1795 |             attributedString: attributedString,
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1552:22: warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
1548 |             return total
1549 |         }
1550 |         return fragmentFootnotes.reservation(for: ordinals, isLast: true) {
     |                                  `- note: access can happen concurrently
1551 |             footnoteCoordinator.anticipatedFootnoteHeight(
1552 |                 for: fragmentFootnotes.paragraph,
     |                      |- warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
     |                      `- note: 'self'-isolated 'fragmentFootnotes' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1553 |                 environment: noteEnvironment,
1554 |                 childParagraphs: Self.childParagraphs(of:),
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:2410:82: warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
2408 |                 policy: splitPolicy,
2409 |                 columnIsEmpty: columnIsEmpty,
2410 |                 extra: { fragmentFootnoteReservation(through: $0, of: remainder, fragmentFootnotes) }
     |                        |                                                         |- warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
     |                        |                                                         `- note: 'self'-isolated 'fragmentFootnotes' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
     |                        `- note: access can happen concurrently
2411 |             )
2412 |             // 빈 단(gap만 charge)에서 gap+첫 줄이 안 맞는 초과 문단은 gap을 무르고
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1331:60: warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
1315 |
1316 |     private func appendFlowParagraphAcrossPages(_ split: FlowSplitInput) {
1317 |         appendParagraphAcrossColumns(
     |         `- note: access can happen concurrently
1318 |             attributedString: split.attributedString,
1319 |             paragraphFrame: split.paragraphFrame,
     :
1329 |             fitSource: split.fitSource,
1330 |             onFragmentPlaced: {
1331 |                 registerPageChromeForCurrentFragment(from: split.paragraph)
     |                                                            |- warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
     |                                                            `- note: 'self'-isolated 'split' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1332 |                 appendInlineControlBlocksForCurrentFragment(from: split.paragraph)
1333 |             }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1241:36: warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
1239 |         ) && (
1240 |             paragraphHeight > currentColumnFrame.height
1241 |                 || canSplitAtEntry(split, cacheHeightUsed: cacheHeightUsed)
     |                                    |- warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
     |                                    `- note: 'self'-isolated 'split' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1242 |         )
1243 |         if paragraphFrame.lines.count > 1, exceedsColumn || exceedsBodyAboveNotes {
1244 |             appendFlowParagraphAcrossPages(split)
     |             `- note: access can happen concurrently
1245 |             return true
1246 |         }
1247 |         contentHeightUsed += beforeGap
1248 |         paragraphAnchorTop = currentColumnFrame.minY + contentHeightUsed
1249 |         appendBlock(
     |         `- note: access can happen concurrently
1250 |             height: paragraphHeight - beforeGap,
1251 |             attributedString: attributedString,
[289/307] Compiling HwpKitCore HwpParagraphMetrics.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:2189:5: warning: 'public' modifier conflicts with extension's default access of 'private'
2187 |
2188 |     /// 전체 문단 대비 처리 위치 (0...1 근사) — 프로그레시브 로딩 진행률
2189 |     public func progressEstimate() -> Double {
     |     `- warning: 'public' modifier conflicts with extension's default access of 'private'
2190 |         let total = sections.reduce(0) { $0 + $1.paragraph.count }
2191 |         guard total > 0 else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:5412:86: warning: sending 'first' risks causing data races; this is an error in the Swift 6 language mode
5410 |                environment: noteEnvironment.withFootnoteShape(currentSectionDef?.endNoteShape),
5411 |                numbering: first.numbering,
5412 |                isNoteEnd: pendingEndnotes.count == 1 || pendingEndnotes[1].noteId != first.noteId,
     |                                                                                      |- warning: sending 'first' risks causing data races; this is an error in the Swift 6 language mode
     |                                                                                      `- note: 'self'-isolated 'first' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
5413 |                noteCarriesObjects: first.noteFacts?.carriesObjects ?? false
     |                                          `- note: access can happen concurrently
5414 |            ) > effectiveContentHeight
5415 |         {
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1771:46: warning: sending 'attributedString' risks causing data races; this is an error in the Swift 6 language mode
1769 |             ) || bandStartOverflows(runs[0])
1770 |             let shiftedOut = !cachedBreak && staleShiftOverflows(
1771 |                 paragraph, attributedString: attributedString, frame: paragraphFrame, runs: runs
     |                                              |- warning: sending 'attributedString' risks causing data races; this is an error in the Swift 6 language mode
     |                                              `- note: 'self'-isolated 'attributedString' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1772 |             )
1773 |             if cachedBreak || shiftedOut {
     :
1791 |         // 캐시(한글의 절단점)가 더 앞 조각이라 하면 그쪽을 따른다 (#165) — 늦은 귀속은
1792 |         // 각주 이어짐과 만나 뒤 쪽으로 연쇄한다 (`earliestOrdinalRanges`).
1793 |         let slices = absoluteRunSlices(
     |                      `- note: access can happen concurrently
1794 |             runs: runs,
1795 |             attributedString: attributedString,
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1552:22: warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
1548 |             return total
1549 |         }
1550 |         return fragmentFootnotes.reservation(for: ordinals, isLast: true) {
     |                                  `- note: access can happen concurrently
1551 |             footnoteCoordinator.anticipatedFootnoteHeight(
1552 |                 for: fragmentFootnotes.paragraph,
     |                      |- warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
     |                      `- note: 'self'-isolated 'fragmentFootnotes' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1553 |                 environment: noteEnvironment,
1554 |                 childParagraphs: Self.childParagraphs(of:),
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:2410:82: warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
2408 |                 policy: splitPolicy,
2409 |                 columnIsEmpty: columnIsEmpty,
2410 |                 extra: { fragmentFootnoteReservation(through: $0, of: remainder, fragmentFootnotes) }
     |                        |                                                         |- warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
     |                        |                                                         `- note: 'self'-isolated 'fragmentFootnotes' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
     |                        `- note: access can happen concurrently
2411 |             )
2412 |             // 빈 단(gap만 charge)에서 gap+첫 줄이 안 맞는 초과 문단은 gap을 무르고
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1331:60: warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
1315 |
1316 |     private func appendFlowParagraphAcrossPages(_ split: FlowSplitInput) {
1317 |         appendParagraphAcrossColumns(
     |         `- note: access can happen concurrently
1318 |             attributedString: split.attributedString,
1319 |             paragraphFrame: split.paragraphFrame,
     :
1329 |             fitSource: split.fitSource,
1330 |             onFragmentPlaced: {
1331 |                 registerPageChromeForCurrentFragment(from: split.paragraph)
     |                                                            |- warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
     |                                                            `- note: 'self'-isolated 'split' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1332 |                 appendInlineControlBlocksForCurrentFragment(from: split.paragraph)
1333 |             }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1241:36: warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
1239 |         ) && (
1240 |             paragraphHeight > currentColumnFrame.height
1241 |                 || canSplitAtEntry(split, cacheHeightUsed: cacheHeightUsed)
     |                                    |- warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
     |                                    `- note: 'self'-isolated 'split' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1242 |         )
1243 |         if paragraphFrame.lines.count > 1, exceedsColumn || exceedsBodyAboveNotes {
1244 |             appendFlowParagraphAcrossPages(split)
     |             `- note: access can happen concurrently
1245 |             return true
1246 |         }
1247 |         contentHeightUsed += beforeGap
1248 |         paragraphAnchorTop = currentColumnFrame.minY + contentHeightUsed
1249 |         appendBlock(
     |         `- note: access can happen concurrently
1250 |             height: paragraphHeight - beforeGap,
1251 |             attributedString: attributedString,
[290/307] Compiling HwpKitCore HwpParagraphObjectCollector.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:2189:5: warning: 'public' modifier conflicts with extension's default access of 'private'
2187 |
2188 |     /// 전체 문단 대비 처리 위치 (0...1 근사) — 프로그레시브 로딩 진행률
2189 |     public func progressEstimate() -> Double {
     |     `- warning: 'public' modifier conflicts with extension's default access of 'private'
2190 |         let total = sections.reduce(0) { $0 + $1.paragraph.count }
2191 |         guard total > 0 else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:5412:86: warning: sending 'first' risks causing data races; this is an error in the Swift 6 language mode
5410 |                environment: noteEnvironment.withFootnoteShape(currentSectionDef?.endNoteShape),
5411 |                numbering: first.numbering,
5412 |                isNoteEnd: pendingEndnotes.count == 1 || pendingEndnotes[1].noteId != first.noteId,
     |                                                                                      |- warning: sending 'first' risks causing data races; this is an error in the Swift 6 language mode
     |                                                                                      `- note: 'self'-isolated 'first' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
5413 |                noteCarriesObjects: first.noteFacts?.carriesObjects ?? false
     |                                          `- note: access can happen concurrently
5414 |            ) > effectiveContentHeight
5415 |         {
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1771:46: warning: sending 'attributedString' risks causing data races; this is an error in the Swift 6 language mode
1769 |             ) || bandStartOverflows(runs[0])
1770 |             let shiftedOut = !cachedBreak && staleShiftOverflows(
1771 |                 paragraph, attributedString: attributedString, frame: paragraphFrame, runs: runs
     |                                              |- warning: sending 'attributedString' risks causing data races; this is an error in the Swift 6 language mode
     |                                              `- note: 'self'-isolated 'attributedString' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1772 |             )
1773 |             if cachedBreak || shiftedOut {
     :
1791 |         // 캐시(한글의 절단점)가 더 앞 조각이라 하면 그쪽을 따른다 (#165) — 늦은 귀속은
1792 |         // 각주 이어짐과 만나 뒤 쪽으로 연쇄한다 (`earliestOrdinalRanges`).
1793 |         let slices = absoluteRunSlices(
     |                      `- note: access can happen concurrently
1794 |             runs: runs,
1795 |             attributedString: attributedString,
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1552:22: warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
1548 |             return total
1549 |         }
1550 |         return fragmentFootnotes.reservation(for: ordinals, isLast: true) {
     |                                  `- note: access can happen concurrently
1551 |             footnoteCoordinator.anticipatedFootnoteHeight(
1552 |                 for: fragmentFootnotes.paragraph,
     |                      |- warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
     |                      `- note: 'self'-isolated 'fragmentFootnotes' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1553 |                 environment: noteEnvironment,
1554 |                 childParagraphs: Self.childParagraphs(of:),
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:2410:82: warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
2408 |                 policy: splitPolicy,
2409 |                 columnIsEmpty: columnIsEmpty,
2410 |                 extra: { fragmentFootnoteReservation(through: $0, of: remainder, fragmentFootnotes) }
     |                        |                                                         |- warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
     |                        |                                                         `- note: 'self'-isolated 'fragmentFootnotes' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
     |                        `- note: access can happen concurrently
2411 |             )
2412 |             // 빈 단(gap만 charge)에서 gap+첫 줄이 안 맞는 초과 문단은 gap을 무르고
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1331:60: warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
1315 |
1316 |     private func appendFlowParagraphAcrossPages(_ split: FlowSplitInput) {
1317 |         appendParagraphAcrossColumns(
     |         `- note: access can happen concurrently
1318 |             attributedString: split.attributedString,
1319 |             paragraphFrame: split.paragraphFrame,
     :
1329 |             fitSource: split.fitSource,
1330 |             onFragmentPlaced: {
1331 |                 registerPageChromeForCurrentFragment(from: split.paragraph)
     |                                                            |- warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
     |                                                            `- note: 'self'-isolated 'split' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1332 |                 appendInlineControlBlocksForCurrentFragment(from: split.paragraph)
1333 |             }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1241:36: warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
1239 |         ) && (
1240 |             paragraphHeight > currentColumnFrame.height
1241 |                 || canSplitAtEntry(split, cacheHeightUsed: cacheHeightUsed)
     |                                    |- warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
     |                                    `- note: 'self'-isolated 'split' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1242 |         )
1243 |         if paragraphFrame.lines.count > 1, exceedsColumn || exceedsBodyAboveNotes {
1244 |             appendFlowParagraphAcrossPages(split)
     |             `- note: access can happen concurrently
1245 |             return true
1246 |         }
1247 |         contentHeightUsed += beforeGap
1248 |         paragraphAnchorTop = currentColumnFrame.minY + contentHeightUsed
1249 |         appendBlock(
     |         `- note: access can happen concurrently
1250 |             height: paragraphHeight - beforeGap,
1251 |             attributedString: attributedString,
[291/307] Compiling HwpKitCore HwpParagraphObjectPredicates.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:2189:5: warning: 'public' modifier conflicts with extension's default access of 'private'
2187 |
2188 |     /// 전체 문단 대비 처리 위치 (0...1 근사) — 프로그레시브 로딩 진행률
2189 |     public func progressEstimate() -> Double {
     |     `- warning: 'public' modifier conflicts with extension's default access of 'private'
2190 |         let total = sections.reduce(0) { $0 + $1.paragraph.count }
2191 |         guard total > 0 else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:5412:86: warning: sending 'first' risks causing data races; this is an error in the Swift 6 language mode
5410 |                environment: noteEnvironment.withFootnoteShape(currentSectionDef?.endNoteShape),
5411 |                numbering: first.numbering,
5412 |                isNoteEnd: pendingEndnotes.count == 1 || pendingEndnotes[1].noteId != first.noteId,
     |                                                                                      |- warning: sending 'first' risks causing data races; this is an error in the Swift 6 language mode
     |                                                                                      `- note: 'self'-isolated 'first' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
5413 |                noteCarriesObjects: first.noteFacts?.carriesObjects ?? false
     |                                          `- note: access can happen concurrently
5414 |            ) > effectiveContentHeight
5415 |         {
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1771:46: warning: sending 'attributedString' risks causing data races; this is an error in the Swift 6 language mode
1769 |             ) || bandStartOverflows(runs[0])
1770 |             let shiftedOut = !cachedBreak && staleShiftOverflows(
1771 |                 paragraph, attributedString: attributedString, frame: paragraphFrame, runs: runs
     |                                              |- warning: sending 'attributedString' risks causing data races; this is an error in the Swift 6 language mode
     |                                              `- note: 'self'-isolated 'attributedString' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1772 |             )
1773 |             if cachedBreak || shiftedOut {
     :
1791 |         // 캐시(한글의 절단점)가 더 앞 조각이라 하면 그쪽을 따른다 (#165) — 늦은 귀속은
1792 |         // 각주 이어짐과 만나 뒤 쪽으로 연쇄한다 (`earliestOrdinalRanges`).
1793 |         let slices = absoluteRunSlices(
     |                      `- note: access can happen concurrently
1794 |             runs: runs,
1795 |             attributedString: attributedString,
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1552:22: warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
1548 |             return total
1549 |         }
1550 |         return fragmentFootnotes.reservation(for: ordinals, isLast: true) {
     |                                  `- note: access can happen concurrently
1551 |             footnoteCoordinator.anticipatedFootnoteHeight(
1552 |                 for: fragmentFootnotes.paragraph,
     |                      |- warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
     |                      `- note: 'self'-isolated 'fragmentFootnotes' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1553 |                 environment: noteEnvironment,
1554 |                 childParagraphs: Self.childParagraphs(of:),
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:2410:82: warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
2408 |                 policy: splitPolicy,
2409 |                 columnIsEmpty: columnIsEmpty,
2410 |                 extra: { fragmentFootnoteReservation(through: $0, of: remainder, fragmentFootnotes) }
     |                        |                                                         |- warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
     |                        |                                                         `- note: 'self'-isolated 'fragmentFootnotes' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
     |                        `- note: access can happen concurrently
2411 |             )
2412 |             // 빈 단(gap만 charge)에서 gap+첫 줄이 안 맞는 초과 문단은 gap을 무르고
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1331:60: warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
1315 |
1316 |     private func appendFlowParagraphAcrossPages(_ split: FlowSplitInput) {
1317 |         appendParagraphAcrossColumns(
     |         `- note: access can happen concurrently
1318 |             attributedString: split.attributedString,
1319 |             paragraphFrame: split.paragraphFrame,
     :
1329 |             fitSource: split.fitSource,
1330 |             onFragmentPlaced: {
1331 |                 registerPageChromeForCurrentFragment(from: split.paragraph)
     |                                                            |- warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
     |                                                            `- note: 'self'-isolated 'split' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1332 |                 appendInlineControlBlocksForCurrentFragment(from: split.paragraph)
1333 |             }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1241:36: warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
1239 |         ) && (
1240 |             paragraphHeight > currentColumnFrame.height
1241 |                 || canSplitAtEntry(split, cacheHeightUsed: cacheHeightUsed)
     |                                    |- warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
     |                                    `- note: 'self'-isolated 'split' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1242 |         )
1243 |         if paragraphFrame.lines.count > 1, exceedsColumn || exceedsBodyAboveNotes {
1244 |             appendFlowParagraphAcrossPages(split)
     |             `- note: access can happen concurrently
1245 |             return true
1246 |         }
1247 |         contentHeightUsed += beforeGap
1248 |         paragraphAnchorTop = currentColumnFrame.minY + contentHeightUsed
1249 |         appendBlock(
     |         `- note: access can happen concurrently
1250 |             height: paragraphHeight - beforeGap,
1251 |             attributedString: attributedString,
[292/307] Compiling HwpKitCore HwpScript+Detect.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:2189:5: warning: 'public' modifier conflicts with extension's default access of 'private'
2187 |
2188 |     /// 전체 문단 대비 처리 위치 (0...1 근사) — 프로그레시브 로딩 진행률
2189 |     public func progressEstimate() -> Double {
     |     `- warning: 'public' modifier conflicts with extension's default access of 'private'
2190 |         let total = sections.reduce(0) { $0 + $1.paragraph.count }
2191 |         guard total > 0 else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:5412:86: warning: sending 'first' risks causing data races; this is an error in the Swift 6 language mode
5410 |                environment: noteEnvironment.withFootnoteShape(currentSectionDef?.endNoteShape),
5411 |                numbering: first.numbering,
5412 |                isNoteEnd: pendingEndnotes.count == 1 || pendingEndnotes[1].noteId != first.noteId,
     |                                                                                      |- warning: sending 'first' risks causing data races; this is an error in the Swift 6 language mode
     |                                                                                      `- note: 'self'-isolated 'first' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
5413 |                noteCarriesObjects: first.noteFacts?.carriesObjects ?? false
     |                                          `- note: access can happen concurrently
5414 |            ) > effectiveContentHeight
5415 |         {
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1771:46: warning: sending 'attributedString' risks causing data races; this is an error in the Swift 6 language mode
1769 |             ) || bandStartOverflows(runs[0])
1770 |             let shiftedOut = !cachedBreak && staleShiftOverflows(
1771 |                 paragraph, attributedString: attributedString, frame: paragraphFrame, runs: runs
     |                                              |- warning: sending 'attributedString' risks causing data races; this is an error in the Swift 6 language mode
     |                                              `- note: 'self'-isolated 'attributedString' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1772 |             )
1773 |             if cachedBreak || shiftedOut {
     :
1791 |         // 캐시(한글의 절단점)가 더 앞 조각이라 하면 그쪽을 따른다 (#165) — 늦은 귀속은
1792 |         // 각주 이어짐과 만나 뒤 쪽으로 연쇄한다 (`earliestOrdinalRanges`).
1793 |         let slices = absoluteRunSlices(
     |                      `- note: access can happen concurrently
1794 |             runs: runs,
1795 |             attributedString: attributedString,
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1552:22: warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
1548 |             return total
1549 |         }
1550 |         return fragmentFootnotes.reservation(for: ordinals, isLast: true) {
     |                                  `- note: access can happen concurrently
1551 |             footnoteCoordinator.anticipatedFootnoteHeight(
1552 |                 for: fragmentFootnotes.paragraph,
     |                      |- warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
     |                      `- note: 'self'-isolated 'fragmentFootnotes' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1553 |                 environment: noteEnvironment,
1554 |                 childParagraphs: Self.childParagraphs(of:),
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:2410:82: warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
2408 |                 policy: splitPolicy,
2409 |                 columnIsEmpty: columnIsEmpty,
2410 |                 extra: { fragmentFootnoteReservation(through: $0, of: remainder, fragmentFootnotes) }
     |                        |                                                         |- warning: sending 'fragmentFootnotes' risks causing data races; this is an error in the Swift 6 language mode
     |                        |                                                         `- note: 'self'-isolated 'fragmentFootnotes' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
     |                        `- note: access can happen concurrently
2411 |             )
2412 |             // 빈 단(gap만 charge)에서 gap+첫 줄이 안 맞는 초과 문단은 gap을 무르고
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1331:60: warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
1315 |
1316 |     private func appendFlowParagraphAcrossPages(_ split: FlowSplitInput) {
1317 |         appendParagraphAcrossColumns(
     |         `- note: access can happen concurrently
1318 |             attributedString: split.attributedString,
1319 |             paragraphFrame: split.paragraphFrame,
     :
1329 |             fitSource: split.fitSource,
1330 |             onFragmentPlaced: {
1331 |                 registerPageChromeForCurrentFragment(from: split.paragraph)
     |                                                            |- warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
     |                                                            `- note: 'self'-isolated 'split' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1332 |                 appendInlineControlBlocksForCurrentFragment(from: split.paragraph)
1333 |             }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:1241:36: warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
1239 |         ) && (
1240 |             paragraphHeight > currentColumnFrame.height
1241 |                 || canSplitAtEntry(split, cacheHeightUsed: cacheHeightUsed)
     |                                    |- warning: sending 'split' risks causing data races; this is an error in the Swift 6 language mode
     |                                    `- note: 'self'-isolated 'split' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
1242 |         )
1243 |         if paragraphFrame.lines.count > 1, exceedsColumn || exceedsBodyAboveNotes {
1244 |             appendFlowParagraphAcrossPages(split)
     |             `- note: access can happen concurrently
1245 |             return true
1246 |         }
1247 |         contentHeightUsed += beforeGap
1248 |         paragraphAnchorTop = currentColumnFrame.minY + contentHeightUsed
1249 |         appendBlock(
     |         `- note: access can happen concurrently
1250 |             height: paragraphHeight - beforeGap,
1251 |             attributedString: attributedString,
[293/307] Emitting module HwpKitCore
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Fonts/HwpInstalledHancomFonts.swift:54:23: warning: static property 'index' is not concurrency-safe because non-'Sendable' type '[String : CTFontDescriptor]' may have shared mutable state; this is an error in the Swift 6 language mode
 52 |     /// face 이름 (family/full/PostScript, 원문 + 정규화) → 파일 descriptor.
 53 |     /// 한컴오피스가 없으면 빈 인덱스.
 54 |     public static let index: [String: CTFontDescriptor] = buildIndex()
    |                       `- warning: static property 'index' is not concurrency-safe because non-'Sendable' type '[String : CTFontDescriptor]' may have shared mutable state; this is an error in the Swift 6 language mode
 55 |
 56 |     /// 인덱스에서 후보 이름으로 descriptor를 찾는다 (원문 → 정규화 순).
CoreText.CTFontDescriptor:1:14: note: class 'CTFontDescriptor' does not conform to the 'Sendable' protocol
1 | public class CTFontDescriptor : _CFObject {
  |              `- note: class 'CTFontDescriptor' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Fonts/HwpInstalledHancomFonts.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreText'
  1 | import CoreGraphics
  2 | import CoreText
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreText'
  3 | import Foundation
  4 |
    :
 52 |     /// face 이름 (family/full/PostScript, 원문 + 정규화) → 파일 descriptor.
 53 |     /// 한컴오피스가 없으면 빈 인덱스.
 54 |     public static let index: [String: CTFontDescriptor] = buildIndex()
    |                       |- note: add '@MainActor' to make static property 'index' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 55 |
 56 |     /// 인덱스에서 후보 이름으로 descriptor를 찾는다 (원문 → 정규화 순).
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpFootnoteLayout.swift:587:5: warning: 'internal' modifier conflicts with extension's default access of 'private'
585 |     /// 높이는 이 수집 결과에서 나오므로 순환을 피하고, 예약 경로
586 |     /// (`HwpFootnoteCoordinator`)가 같은 rect로 재수집해 값이 갈리지 않게 한다.
587 |     internal static func paragraphRect(width: CGFloat, textHeight: CGFloat) -> CGRect {
    |     `- warning: 'internal' modifier conflicts with extension's default access of 'private'
588 |         CGRect(x: 0, y: 0, width: width, height: textHeight)
589 |     }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Layout/HwpPaginator.swift:2189:5: warning: 'public' modifier conflicts with extension's default access of 'private'
2187 |
2188 |     /// 전체 문단 대비 처리 위치 (0...1 근사) — 프로그레시브 로딩 진행률
2189 |     public func progressEstimate() -> Double {
     |     `- warning: 'public' modifier conflicts with extension's default access of 'private'
2190 |         let total = sections.reduce(0) { $0 + $1.paragraph.count }
2191 |         guard total > 0 else { return 1 }
[294/307] Compiling HwpKitCore HwpShapeGeometry.swift
[295/307] Compiling HwpKitCore HwpTableFrame.swift
[296/307] Compiling HwpKitCore HwpTableLayout.swift
[297/307] Compiling HwpKitCore HwpTableLayoutFrames.swift
[298/307] Compiling HwpKitCore HwpTableLayoutWidths.swift
[299/307] Compiling HwpKitCore HwpTextAttributeCache.swift
[300/307] Compiling HwpKitCore HwpTextRunBuilder.swift
[301/307] Compiling HwpKitCore HwpTextRunBuilderDecorations.swift
[302/307] Compiling HwpKitCore HwpTextRunBuilderFontFallback.swift
[303/307] Compiling HwpKitCore HwpTextRunBuilderFonts.swift
[304/307] Compiling HwpKitCore HwpTextRunBuilderInlineObject.swift
[305/307] Compiling HwpKitCore HwpTextRunBuilderLetterSpacing.swift
[306/307] Compiling HwpKitCore HwpTextRunBuilderLineBreak.swift
[307/307] Compiling HwpKitCore HwpTextRunBuilderMarks.swift
[308/341] Compiling HwpKitNative HwpDocumentUIView.swift
[309/341] Compiling HwpKitNative HwpDocumentUIViewAccessibility.swift
[310/341] Compiling HwpKitNative HwpDocumentUIViewGeometry.swift
[311/341] Compiling HwpKitNative HwpDocumentUIViewKeyboard.swift
[312/344] Emitting module HwpKitNative
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpImageStyleRenderer.swift:13:24: warning: static property 'context' is not concurrency-safe because non-'Sendable' type 'CIContext' may have shared mutable state; this is an error in the Swift 6 language mode
11 | /// (`HwpPageImageProvider`)가 캐시한다.
12 | enum HwpImageStyleRenderer {
13 |     private static let context = CIContext(options: [.useSoftwareRenderer: false])
   |                        `- warning: static property 'context' is not concurrency-safe because non-'Sendable' type 'CIContext' may have shared mutable state; this is an error in the Swift 6 language mode
14 |
15 |     /// 스타일을 적용한 이미지를 반환한다. 적용할 것이 없으면 원본 그대로.
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIContext.h:36:12: note: class 'CIContext' does not conform to the 'Sendable' protocol
 34 |
 35 | NS_CLASS_AVAILABLE(10_4, 5_0)
 36 | @interface CIContext : NSObject
    |            `- note: class 'CIContext' does not conform to the 'Sendable' protocol
 37 | {
 38 |     void *_priv;
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpImageStyleRenderer.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreImage'
 1 | import CoreGraphics
 2 | import CoreImage
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreImage'
 3 | import Foundation
 4 | import HwpKitCore
   :
11 | /// (`HwpPageImageProvider`)가 캐시한다.
12 | enum HwpImageStyleRenderer {
13 |     private static let context = CIContext(options: [.useSoftwareRenderer: false])
   |                        |- note: add '@MainActor' to make static property 'context' part of global actor 'MainActor'
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 |     /// 스타일을 적용한 이미지를 반환한다. 적용할 것이 없으면 원본 그대로.
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpPageLayer.swift:374:16: warning: static property 'placeholderFont' is not concurrency-safe because non-'Sendable' type 'CTFont' may have shared mutable state; this is an error in the Swift 6 language mode
372 |     /// 한국어 안전망 (Apple SD Gothic Neo)을 경유해 커버리지를 보장한다 (#125).
373 |     /// internal인 이유: 글리프 커버리지 회귀 테스트의 관측 지점.
374 |     static let placeholderFont = HwpFontResolver().fallbackFont(for: .korean, size: 12)
    |                `- warning: static property 'placeholderFont' is not concurrency-safe because non-'Sendable' type 'CTFont' may have shared mutable state; this is an error in the Swift 6 language mode
375 |
376 |     private func drawPlaceholder(_ text: String, in rect: CGRect, context ctx: CGContext) {
CoreText.CTFont:1:14: note: class 'CTFont' does not conform to the 'Sendable' protocol
1 | public class CTFont : _CFObject {
  |              `- note: class 'CTFont' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpPageLayer.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreText'
  1 | import CoreGraphics
  2 | import CoreText
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreText'
  3 | import Foundation
  4 | import HwpKitCore
    :
372 |     /// 한국어 안전망 (Apple SD Gothic Neo)을 경유해 커버리지를 보장한다 (#125).
373 |     /// internal인 이유: 글리프 커버리지 회귀 테스트의 관측 지점.
374 |     static let placeholderFont = HwpFontResolver().fallbackFont(for: .korean, size: 12)
    |                |- note: add '@MainActor' to make static property 'placeholderFont' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
375 |
376 |     private func drawPlaceholder(_ text: String, in rect: CGRect, context ctx: CGContext) {
[313/344] Compiling HwpKitNative HwpDocumentUIViewSearch.swift
[314/344] Compiling HwpKitNative HwpDocumentUIViewSelection.swift
[315/344] Compiling HwpKitNative HwpDocumentUIViewSelectionHandles.swift
[316/344] Compiling HwpKitNative HwpDocumentUIViewZoom.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/macOS/HwpDocumentNSView.swift:220:17: warning: cannot access property 'searchController' here in deinitializer; this is an error in the Swift 6 language mode
216 |
217 |         deinit {
218 |             NotificationCenter.default.removeObserver(self)
    |                                                       `- note: after making a copy of 'self', only nonisolated properties of 'self' can be accessed from a deinit
219 |             HwpDocumentViewSupport.detachSearchSessionOnTeardown(
220 |                 searchController, from: selectionController
    |                 `- warning: cannot access property 'searchController' here in deinitializer; this is an error in the Swift 6 language mode
221 |             )
222 |         }
[317/344] Compiling HwpKitNative HwpCenteringClipView.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/macOS/HwpDocumentNSView.swift:220:17: warning: cannot access property 'searchController' here in deinitializer; this is an error in the Swift 6 language mode
216 |
217 |         deinit {
218 |             NotificationCenter.default.removeObserver(self)
    |                                                       `- note: after making a copy of 'self', only nonisolated properties of 'self' can be accessed from a deinit
219 |             HwpDocumentViewSupport.detachSearchSessionOnTeardown(
220 |                 searchController, from: selectionController
    |                 `- warning: cannot access property 'searchController' here in deinitializer; this is an error in the Swift 6 language mode
221 |             )
222 |         }
[318/344] Compiling HwpKitNative HwpDocumentNSView.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/macOS/HwpDocumentNSView.swift:220:17: warning: cannot access property 'searchController' here in deinitializer; this is an error in the Swift 6 language mode
216 |
217 |         deinit {
218 |             NotificationCenter.default.removeObserver(self)
    |                                                       `- note: after making a copy of 'self', only nonisolated properties of 'self' can be accessed from a deinit
219 |             HwpDocumentViewSupport.detachSearchSessionOnTeardown(
220 |                 searchController, from: selectionController
    |                 `- warning: cannot access property 'searchController' here in deinitializer; this is an error in the Swift 6 language mode
221 |             )
222 |         }
[319/344] Compiling HwpKitNative HwpDocumentNSViewSearch.swift
[320/344] Compiling HwpKitNative HwpDocumentNSViewSelection.swift
[321/344] Compiling HwpKitNative HwpDocumentNSViewZoom.swift
[322/344] Compiling HwpKitNative HwpPageLayerLineEnd.swift
[323/344] Compiling HwpKitNative HwpPageLayerLineShapes.swift
[324/344] Compiling HwpKitNative HwpPageLayerShades.swift
[325/344] Compiling HwpKitNative HwpPageThumbnailRenderer.swift
[326/344] Compiling HwpKitNative HwpDocumentNSViewAccessibility.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/macOS/HwpDocumentNSViewAccessibility.swift:15:61: warning: main actor-isolated property 'window' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
13 |
14 |         override func accessibilityFrame() -> NSRect {
15 |             guard let contentView, let window = contentView.window else { return .zero }
   |                                                             `- warning: main actor-isolated property 'window' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
16 |             return window.convertToScreen(contentView.convert(contentRect, to: nil))
17 |         }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:86:61: note: property declared here
 84 | - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
 85 |
 86 | @property (nullable, readonly, unsafe_unretained) NSWindow *window;
    |                                                             `- note: property declared here
 87 | @property (nullable, readonly, unsafe_unretained) NSView *superview;
 88 | @property (copy) NSArray<__kindof NSView *> *subviews;
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/macOS/HwpDocumentNSViewAccessibility.swift:16:27: warning: call to main actor-isolated instance method 'convertToScreen' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
14 |         override func accessibilityFrame() -> NSRect {
15 |             guard let contentView, let window = contentView.window else { return .zero }
16 |             return window.convertToScreen(contentView.convert(contentRect, to: nil))
   |                           `- warning: call to main actor-isolated instance method 'convertToScreen' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
17 |         }
18 |     }
AppKit.NSWindow.convertToScreen:3:24: note: calls to instance method 'convertToScreen' from outside of its actor context are implicitly asynchronous
1 | class NSWindow {
2 | @available(macOS 10.7, *)
3 |   @MainActor open func convertToScreen(_ rect: NSRect) -> NSRect}
  |                        |- note: calls to instance method 'convertToScreen' from outside of its actor context are implicitly asynchronous
  |                        `- note: main actor isolation inferred from inheritance from class 'NSResponder'
4 |
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/macOS/HwpDocumentNSViewAccessibility.swift:16:55: warning: call to main actor-isolated instance method 'convert(_:to:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
14 |         override func accessibilityFrame() -> NSRect {
15 |             guard let contentView, let window = contentView.window else { return .zero }
16 |             return window.convertToScreen(contentView.convert(contentRect, to: nil))
   |                                                       `- warning: call to main actor-isolated instance method 'convert(_:to:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
17 |         }
18 |     }
AppKit.NSView.convert:2:22: note: calls to instance method 'convert(_:to:)' from outside of its actor context are implicitly asynchronous
1 | class NSView {
2 | @MainActor open func convert(_ rect: NSRect, to view: NSView?) -> NSRect}
  |                      |- note: calls to instance method 'convert(_:to:)' from outside of its actor context are implicitly asynchronous
  |                      `- note: main actor isolation inferred from inheritance from class 'NSResponder'
3 |
[327/344] Compiling HwpKitNative HwpDocumentNSViewGeometry.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/macOS/HwpDocumentNSViewAccessibility.swift:15:61: warning: main actor-isolated property 'window' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
13 |
14 |         override func accessibilityFrame() -> NSRect {
15 |             guard let contentView, let window = contentView.window else { return .zero }
   |                                                             `- warning: main actor-isolated property 'window' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
16 |             return window.convertToScreen(contentView.convert(contentRect, to: nil))
17 |         }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:86:61: note: property declared here
 84 | - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
 85 |
 86 | @property (nullable, readonly, unsafe_unretained) NSWindow *window;
    |                                                             `- note: property declared here
 87 | @property (nullable, readonly, unsafe_unretained) NSView *superview;
 88 | @property (copy) NSArray<__kindof NSView *> *subviews;
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/macOS/HwpDocumentNSViewAccessibility.swift:16:27: warning: call to main actor-isolated instance method 'convertToScreen' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
14 |         override func accessibilityFrame() -> NSRect {
15 |             guard let contentView, let window = contentView.window else { return .zero }
16 |             return window.convertToScreen(contentView.convert(contentRect, to: nil))
   |                           `- warning: call to main actor-isolated instance method 'convertToScreen' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
17 |         }
18 |     }
AppKit.NSWindow.convertToScreen:3:24: note: calls to instance method 'convertToScreen' from outside of its actor context are implicitly asynchronous
1 | class NSWindow {
2 | @available(macOS 10.7, *)
3 |   @MainActor open func convertToScreen(_ rect: NSRect) -> NSRect}
  |                        |- note: calls to instance method 'convertToScreen' from outside of its actor context are implicitly asynchronous
  |                        `- note: main actor isolation inferred from inheritance from class 'NSResponder'
4 |
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/macOS/HwpDocumentNSViewAccessibility.swift:16:55: warning: call to main actor-isolated instance method 'convert(_:to:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
14 |         override func accessibilityFrame() -> NSRect {
15 |             guard let contentView, let window = contentView.window else { return .zero }
16 |             return window.convertToScreen(contentView.convert(contentRect, to: nil))
   |                                                       `- warning: call to main actor-isolated instance method 'convert(_:to:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
17 |         }
18 |     }
AppKit.NSView.convert:2:22: note: calls to instance method 'convert(_:to:)' from outside of its actor context are implicitly asynchronous
1 | class NSView {
2 | @MainActor open func convert(_ rect: NSRect, to view: NSView?) -> NSRect}
  |                      |- note: calls to instance method 'convert(_:to:)' from outside of its actor context are implicitly asynchronous
  |                      `- note: main actor isolation inferred from inheritance from class 'NSResponder'
3 |
[328/344] Compiling HwpKitNative HwpDocumentNSViewKeyboard.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/macOS/HwpDocumentNSViewAccessibility.swift:15:61: warning: main actor-isolated property 'window' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
13 |
14 |         override func accessibilityFrame() -> NSRect {
15 |             guard let contentView, let window = contentView.window else { return .zero }
   |                                                             `- warning: main actor-isolated property 'window' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
16 |             return window.convertToScreen(contentView.convert(contentRect, to: nil))
17 |         }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:86:61: note: property declared here
 84 | - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
 85 |
 86 | @property (nullable, readonly, unsafe_unretained) NSWindow *window;
    |                                                             `- note: property declared here
 87 | @property (nullable, readonly, unsafe_unretained) NSView *superview;
 88 | @property (copy) NSArray<__kindof NSView *> *subviews;
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/macOS/HwpDocumentNSViewAccessibility.swift:16:27: warning: call to main actor-isolated instance method 'convertToScreen' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
14 |         override func accessibilityFrame() -> NSRect {
15 |             guard let contentView, let window = contentView.window else { return .zero }
16 |             return window.convertToScreen(contentView.convert(contentRect, to: nil))
   |                           `- warning: call to main actor-isolated instance method 'convertToScreen' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
17 |         }
18 |     }
AppKit.NSWindow.convertToScreen:3:24: note: calls to instance method 'convertToScreen' from outside of its actor context are implicitly asynchronous
1 | class NSWindow {
2 | @available(macOS 10.7, *)
3 |   @MainActor open func convertToScreen(_ rect: NSRect) -> NSRect}
  |                        |- note: calls to instance method 'convertToScreen' from outside of its actor context are implicitly asynchronous
  |                        `- note: main actor isolation inferred from inheritance from class 'NSResponder'
4 |
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/macOS/HwpDocumentNSViewAccessibility.swift:16:55: warning: call to main actor-isolated instance method 'convert(_:to:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
14 |         override func accessibilityFrame() -> NSRect {
15 |             guard let contentView, let window = contentView.window else { return .zero }
16 |             return window.convertToScreen(contentView.convert(contentRect, to: nil))
   |                                                       `- warning: call to main actor-isolated instance method 'convert(_:to:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
17 |         }
18 |     }
AppKit.NSView.convert:2:22: note: calls to instance method 'convert(_:to:)' from outside of its actor context are implicitly asynchronous
1 | class NSView {
2 | @MainActor open func convert(_ rect: NSRect, to view: NSView?) -> NSRect}
  |                      |- note: calls to instance method 'convert(_:to:)' from outside of its actor context are implicitly asynchronous
  |                      `- note: main actor isolation inferred from inheritance from class 'NSResponder'
3 |
[329/344] Compiling HwpKitNative HwpDecodeThrottle.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpImageStyleRenderer.swift:13:24: warning: static property 'context' is not concurrency-safe because non-'Sendable' type 'CIContext' may have shared mutable state; this is an error in the Swift 6 language mode
11 | /// (`HwpPageImageProvider`)가 캐시한다.
12 | enum HwpImageStyleRenderer {
13 |     private static let context = CIContext(options: [.useSoftwareRenderer: false])
   |                        `- warning: static property 'context' is not concurrency-safe because non-'Sendable' type 'CIContext' may have shared mutable state; this is an error in the Swift 6 language mode
14 |
15 |     /// 스타일을 적용한 이미지를 반환한다. 적용할 것이 없으면 원본 그대로.
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIContext.h:36:12: note: class 'CIContext' does not conform to the 'Sendable' protocol
 34 |
 35 | NS_CLASS_AVAILABLE(10_4, 5_0)
 36 | @interface CIContext : NSObject
    |            `- note: class 'CIContext' does not conform to the 'Sendable' protocol
 37 | {
 38 |     void *_priv;
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpImageStyleRenderer.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreImage'
 1 | import CoreGraphics
 2 | import CoreImage
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreImage'
 3 | import Foundation
 4 | import HwpKitCore
   :
11 | /// (`HwpPageImageProvider`)가 캐시한다.
12 | enum HwpImageStyleRenderer {
13 |     private static let context = CIContext(options: [.useSoftwareRenderer: false])
   |                        |- note: add '@MainActor' to make static property 'context' part of global actor 'MainActor'
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 |     /// 스타일을 적용한 이미지를 반환한다. 적용할 것이 없으면 원본 그대로.
[330/344] Compiling HwpKitNative HwpImageStyleRenderer.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpImageStyleRenderer.swift:13:24: warning: static property 'context' is not concurrency-safe because non-'Sendable' type 'CIContext' may have shared mutable state; this is an error in the Swift 6 language mode
11 | /// (`HwpPageImageProvider`)가 캐시한다.
12 | enum HwpImageStyleRenderer {
13 |     private static let context = CIContext(options: [.useSoftwareRenderer: false])
   |                        `- warning: static property 'context' is not concurrency-safe because non-'Sendable' type 'CIContext' may have shared mutable state; this is an error in the Swift 6 language mode
14 |
15 |     /// 스타일을 적용한 이미지를 반환한다. 적용할 것이 없으면 원본 그대로.
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIContext.h:36:12: note: class 'CIContext' does not conform to the 'Sendable' protocol
 34 |
 35 | NS_CLASS_AVAILABLE(10_4, 5_0)
 36 | @interface CIContext : NSObject
    |            `- note: class 'CIContext' does not conform to the 'Sendable' protocol
 37 | {
 38 |     void *_priv;
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpImageStyleRenderer.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreImage'
 1 | import CoreGraphics
 2 | import CoreImage
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreImage'
 3 | import Foundation
 4 | import HwpKitCore
   :
11 | /// (`HwpPageImageProvider`)가 캐시한다.
12 | enum HwpImageStyleRenderer {
13 |     private static let context = CIContext(options: [.useSoftwareRenderer: false])
   |                        |- note: add '@MainActor' to make static property 'context' part of global actor 'MainActor'
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 |     /// 스타일을 적용한 이미지를 반환한다. 적용할 것이 없으면 원본 그대로.
[331/344] Compiling HwpKitNative HwpPDFRenderer.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpImageStyleRenderer.swift:13:24: warning: static property 'context' is not concurrency-safe because non-'Sendable' type 'CIContext' may have shared mutable state; this is an error in the Swift 6 language mode
11 | /// (`HwpPageImageProvider`)가 캐시한다.
12 | enum HwpImageStyleRenderer {
13 |     private static let context = CIContext(options: [.useSoftwareRenderer: false])
   |                        `- warning: static property 'context' is not concurrency-safe because non-'Sendable' type 'CIContext' may have shared mutable state; this is an error in the Swift 6 language mode
14 |
15 |     /// 스타일을 적용한 이미지를 반환한다. 적용할 것이 없으면 원본 그대로.
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIContext.h:36:12: note: class 'CIContext' does not conform to the 'Sendable' protocol
 34 |
 35 | NS_CLASS_AVAILABLE(10_4, 5_0)
 36 | @interface CIContext : NSObject
    |            `- note: class 'CIContext' does not conform to the 'Sendable' protocol
 37 | {
 38 |     void *_priv;
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpImageStyleRenderer.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreImage'
 1 | import CoreGraphics
 2 | import CoreImage
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreImage'
 3 | import Foundation
 4 | import HwpKitCore
   :
11 | /// (`HwpPageImageProvider`)가 캐시한다.
12 | enum HwpImageStyleRenderer {
13 |     private static let context = CIContext(options: [.useSoftwareRenderer: false])
   |                        |- note: add '@MainActor' to make static property 'context' part of global actor 'MainActor'
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 |     /// 스타일을 적용한 이미지를 반환한다. 적용할 것이 없으면 원본 그대로.
[332/344] Compiling HwpKitNative HwpPageBitmapRenderer.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpImageStyleRenderer.swift:13:24: warning: static property 'context' is not concurrency-safe because non-'Sendable' type 'CIContext' may have shared mutable state; this is an error in the Swift 6 language mode
11 | /// (`HwpPageImageProvider`)가 캐시한다.
12 | enum HwpImageStyleRenderer {
13 |     private static let context = CIContext(options: [.useSoftwareRenderer: false])
   |                        `- warning: static property 'context' is not concurrency-safe because non-'Sendable' type 'CIContext' may have shared mutable state; this is an error in the Swift 6 language mode
14 |
15 |     /// 스타일을 적용한 이미지를 반환한다. 적용할 것이 없으면 원본 그대로.
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIContext.h:36:12: note: class 'CIContext' does not conform to the 'Sendable' protocol
 34 |
 35 | NS_CLASS_AVAILABLE(10_4, 5_0)
 36 | @interface CIContext : NSObject
    |            `- note: class 'CIContext' does not conform to the 'Sendable' protocol
 37 | {
 38 |     void *_priv;
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpImageStyleRenderer.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreImage'
 1 | import CoreGraphics
 2 | import CoreImage
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreImage'
 3 | import Foundation
 4 | import HwpKitCore
   :
11 | /// (`HwpPageImageProvider`)가 캐시한다.
12 | enum HwpImageStyleRenderer {
13 |     private static let context = CIContext(options: [.useSoftwareRenderer: false])
   |                        |- note: add '@MainActor' to make static property 'context' part of global actor 'MainActor'
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 |     /// 스타일을 적용한 이미지를 반환한다. 적용할 것이 없으면 원본 그대로.
[333/344] Compiling HwpKitNative HwpImageCache.swift
[334/344] Compiling HwpKitNative HwpThumbnailCache.swift
[335/344] Compiling HwpKitNative HwpDocumentActor.swift
[336/344] Compiling HwpKitNative HwpDocumentAccessibility.swift
[337/344] Compiling HwpKitNative HwpDocumentViewSupport.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/HwpDocumentViewSupport.swift:92:13: warning: main actor-isolated static property 'maximumRasterPixelsPerAxis' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 77 |
 78 |     /// 레이어 한 축의 래스터 픽셀 상한 (Metal 최대 텍스처 = 백킹 스토어 안전선).
 79 |     private static let maximumRasterPixelsPerAxis: CGFloat = 8192
    |                        `- note: static property declared here
 80 |
 81 |     /// 레이어 하나의 총 래스터 픽셀 상한 (RGBA 64MB). 축별 상한만으로는
    :
 90 |         guard size.width > 0, size.height > 0 else { return scale }
 91 |         let axisCap = min(
 92 |             maximumRasterPixelsPerAxis / size.width,
    |             `- warning: main actor-isolated static property 'maximumRasterPixelsPerAxis' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 93 |             maximumRasterPixelsPerAxis / size.height
 94 |         )
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/HwpDocumentViewSupport.swift:93:13: warning: main actor-isolated static property 'maximumRasterPixelsPerAxis' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 77 |
 78 |     /// 레이어 한 축의 래스터 픽셀 상한 (Metal 최대 텍스처 = 백킹 스토어 안전선).
 79 |     private static let maximumRasterPixelsPerAxis: CGFloat = 8192
    |                        `- note: static property declared here
 80 |
 81 |     /// 레이어 하나의 총 래스터 픽셀 상한 (RGBA 64MB). 축별 상한만으로는
    :
 91 |         let axisCap = min(
 92 |             maximumRasterPixelsPerAxis / size.width,
 93 |             maximumRasterPixelsPerAxis / size.height
    |             `- warning: main actor-isolated static property 'maximumRasterPixelsPerAxis' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 94 |         )
 95 |         // 총 면적 = (w·s)(h·s) = w·h·s² ≤ maximumRasterPixels → s ≤ √(max/(w·h))
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/HwpDocumentViewSupport.swift:96:24: warning: main actor-isolated static property 'maximumRasterPixels' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 82 |     /// 14400pt 페이지가 8192² = 256MB 백킹을 받아 가상화 5장이면 1GB를
 83 |     /// 넘겨 iOS가 종료된다 — 면적 총량으로 제한한다 (#3).
 84 |     private static let maximumRasterPixels: CGFloat = 16_000_000
    |                        `- note: static property declared here
 85 |
 86 |     /// 페이지 크기 × scale이 백킹 스토어 상한을 넘으면 scale을 낮춘다 (#7).
    :
 94 |         )
 95 |         // 총 면적 = (w·s)(h·s) = w·h·s² ≤ maximumRasterPixels → s ≤ √(max/(w·h))
 96 |         let areaCap = (maximumRasterPixels / (size.width * size.height)).squareRoot()
    |                        `- warning: main actor-isolated static property 'maximumRasterPixels' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 97 |         // 최소 배율(0.1)은 원하는 scale에만 적용하고, 안전 캡(axisCap/areaCap)은
 98 |         // 항상 이기게 한다 — 거대 레이어(예: 긴 메모 패널, axisCap<0.1)에서 바닥이
[338/344] Compiling HwpKitNative HwpSelectionHandleGeometry.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/HwpDocumentViewSupport.swift:92:13: warning: main actor-isolated static property 'maximumRasterPixelsPerAxis' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 77 |
 78 |     /// 레이어 한 축의 래스터 픽셀 상한 (Metal 최대 텍스처 = 백킹 스토어 안전선).
 79 |     private static let maximumRasterPixelsPerAxis: CGFloat = 8192
    |                        `- note: static property declared here
 80 |
 81 |     /// 레이어 하나의 총 래스터 픽셀 상한 (RGBA 64MB). 축별 상한만으로는
    :
 90 |         guard size.width > 0, size.height > 0 else { return scale }
 91 |         let axisCap = min(
 92 |             maximumRasterPixelsPerAxis / size.width,
    |             `- warning: main actor-isolated static property 'maximumRasterPixelsPerAxis' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 93 |             maximumRasterPixelsPerAxis / size.height
 94 |         )
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/HwpDocumentViewSupport.swift:93:13: warning: main actor-isolated static property 'maximumRasterPixelsPerAxis' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 77 |
 78 |     /// 레이어 한 축의 래스터 픽셀 상한 (Metal 최대 텍스처 = 백킹 스토어 안전선).
 79 |     private static let maximumRasterPixelsPerAxis: CGFloat = 8192
    |                        `- note: static property declared here
 80 |
 81 |     /// 레이어 하나의 총 래스터 픽셀 상한 (RGBA 64MB). 축별 상한만으로는
    :
 91 |         let axisCap = min(
 92 |             maximumRasterPixelsPerAxis / size.width,
 93 |             maximumRasterPixelsPerAxis / size.height
    |             `- warning: main actor-isolated static property 'maximumRasterPixelsPerAxis' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 94 |         )
 95 |         // 총 면적 = (w·s)(h·s) = w·h·s² ≤ maximumRasterPixels → s ≤ √(max/(w·h))
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/HwpDocumentViewSupport.swift:96:24: warning: main actor-isolated static property 'maximumRasterPixels' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 82 |     /// 14400pt 페이지가 8192² = 256MB 백킹을 받아 가상화 5장이면 1GB를
 83 |     /// 넘겨 iOS가 종료된다 — 면적 총량으로 제한한다 (#3).
 84 |     private static let maximumRasterPixels: CGFloat = 16_000_000
    |                        `- note: static property declared here
 85 |
 86 |     /// 페이지 크기 × scale이 백킹 스토어 상한을 넘으면 scale을 낮춘다 (#7).
    :
 94 |         )
 95 |         // 총 면적 = (w·s)(h·s) = w·h·s² ≤ maximumRasterPixels → s ≤ √(max/(w·h))
 96 |         let areaCap = (maximumRasterPixels / (size.width * size.height)).squareRoot()
    |                        `- warning: main actor-isolated static property 'maximumRasterPixels' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 97 |         // 최소 배율(0.1)은 원하는 scale에만 적용하고, 안전 캡(axisCap/areaCap)은
 98 |         // 항상 이기게 한다 — 거대 레이어(예: 긴 메모 패널, axisCap<0.1)에서 바닥이
[339/344] Compiling HwpKitNative HwpSelectionRTF.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/HwpDocumentViewSupport.swift:92:13: warning: main actor-isolated static property 'maximumRasterPixelsPerAxis' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 77 |
 78 |     /// 레이어 한 축의 래스터 픽셀 상한 (Metal 최대 텍스처 = 백킹 스토어 안전선).
 79 |     private static let maximumRasterPixelsPerAxis: CGFloat = 8192
    |                        `- note: static property declared here
 80 |
 81 |     /// 레이어 하나의 총 래스터 픽셀 상한 (RGBA 64MB). 축별 상한만으로는
    :
 90 |         guard size.width > 0, size.height > 0 else { return scale }
 91 |         let axisCap = min(
 92 |             maximumRasterPixelsPerAxis / size.width,
    |             `- warning: main actor-isolated static property 'maximumRasterPixelsPerAxis' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 93 |             maximumRasterPixelsPerAxis / size.height
 94 |         )
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/HwpDocumentViewSupport.swift:93:13: warning: main actor-isolated static property 'maximumRasterPixelsPerAxis' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 77 |
 78 |     /// 레이어 한 축의 래스터 픽셀 상한 (Metal 최대 텍스처 = 백킹 스토어 안전선).
 79 |     private static let maximumRasterPixelsPerAxis: CGFloat = 8192
    |                        `- note: static property declared here
 80 |
 81 |     /// 레이어 하나의 총 래스터 픽셀 상한 (RGBA 64MB). 축별 상한만으로는
    :
 91 |         let axisCap = min(
 92 |             maximumRasterPixelsPerAxis / size.width,
 93 |             maximumRasterPixelsPerAxis / size.height
    |             `- warning: main actor-isolated static property 'maximumRasterPixelsPerAxis' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 94 |         )
 95 |         // 총 면적 = (w·s)(h·s) = w·h·s² ≤ maximumRasterPixels → s ≤ √(max/(w·h))
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/HwpDocumentViewSupport.swift:96:24: warning: main actor-isolated static property 'maximumRasterPixels' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 82 |     /// 14400pt 페이지가 8192² = 256MB 백킹을 받아 가상화 5장이면 1GB를
 83 |     /// 넘겨 iOS가 종료된다 — 면적 총량으로 제한한다 (#3).
 84 |     private static let maximumRasterPixels: CGFloat = 16_000_000
    |                        `- note: static property declared here
 85 |
 86 |     /// 페이지 크기 × scale이 백킹 스토어 상한을 넘으면 scale을 낮춘다 (#7).
    :
 94 |         )
 95 |         // 총 면적 = (w·s)(h·s) = w·h·s² ≤ maximumRasterPixels → s ≤ √(max/(w·h))
 96 |         let areaCap = (maximumRasterPixels / (size.width * size.height)).squareRoot()
    |                        `- warning: main actor-isolated static property 'maximumRasterPixels' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 97 |         // 최소 배율(0.1)은 원하는 scale에만 적용하고, 안전 캡(axisCap/areaCap)은
 98 |         // 항상 이기게 한다 — 거대 레이어(예: 긴 메모 패널, axisCap<0.1)에서 바닥이
[340/344] Compiling HwpKitNative PlatformTypes.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/HwpDocumentViewSupport.swift:92:13: warning: main actor-isolated static property 'maximumRasterPixelsPerAxis' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 77 |
 78 |     /// 레이어 한 축의 래스터 픽셀 상한 (Metal 최대 텍스처 = 백킹 스토어 안전선).
 79 |     private static let maximumRasterPixelsPerAxis: CGFloat = 8192
    |                        `- note: static property declared here
 80 |
 81 |     /// 레이어 하나의 총 래스터 픽셀 상한 (RGBA 64MB). 축별 상한만으로는
    :
 90 |         guard size.width > 0, size.height > 0 else { return scale }
 91 |         let axisCap = min(
 92 |             maximumRasterPixelsPerAxis / size.width,
    |             `- warning: main actor-isolated static property 'maximumRasterPixelsPerAxis' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 93 |             maximumRasterPixelsPerAxis / size.height
 94 |         )
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/HwpDocumentViewSupport.swift:93:13: warning: main actor-isolated static property 'maximumRasterPixelsPerAxis' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 77 |
 78 |     /// 레이어 한 축의 래스터 픽셀 상한 (Metal 최대 텍스처 = 백킹 스토어 안전선).
 79 |     private static let maximumRasterPixelsPerAxis: CGFloat = 8192
    |                        `- note: static property declared here
 80 |
 81 |     /// 레이어 하나의 총 래스터 픽셀 상한 (RGBA 64MB). 축별 상한만으로는
    :
 91 |         let axisCap = min(
 92 |             maximumRasterPixelsPerAxis / size.width,
 93 |             maximumRasterPixelsPerAxis / size.height
    |             `- warning: main actor-isolated static property 'maximumRasterPixelsPerAxis' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 94 |         )
 95 |         // 총 면적 = (w·s)(h·s) = w·h·s² ≤ maximumRasterPixels → s ≤ √(max/(w·h))
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/HwpDocumentViewSupport.swift:96:24: warning: main actor-isolated static property 'maximumRasterPixels' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 82 |     /// 14400pt 페이지가 8192² = 256MB 백킹을 받아 가상화 5장이면 1GB를
 83 |     /// 넘겨 iOS가 종료된다 — 면적 총량으로 제한한다 (#3).
 84 |     private static let maximumRasterPixels: CGFloat = 16_000_000
    |                        `- note: static property declared here
 85 |
 86 |     /// 페이지 크기 × scale이 백킹 스토어 상한을 넘으면 scale을 낮춘다 (#7).
    :
 94 |         )
 95 |         // 총 면적 = (w·s)(h·s) = w·h·s² ≤ maximumRasterPixels → s ≤ √(max/(w·h))
 96 |         let areaCap = (maximumRasterPixels / (size.width * size.height)).squareRoot()
    |                        `- warning: main actor-isolated static property 'maximumRasterPixels' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 97 |         // 최소 배율(0.1)은 원하는 scale에만 적용하고, 안전 캡(axisCap/areaCap)은
 98 |         // 항상 이기게 한다 — 거대 레이어(예: 긴 메모 패널, axisCap<0.1)에서 바닥이
[341/344] Compiling HwpKitNative HwpPageImageProvider.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpPageImageProvider.swift:208:58: warning: variable 'self' was written to, but never read
206 |             // 스타일 변형은 변형 키로 이 provider에만 저장한다.
207 |             let purgeGenerationBeforeFetch = await cache.purgeGeneration()
208 |             let decoded = await cache.fetch(key) { [weak self] in
    |                                                          `- warning: variable 'self' was written to, but never read
209 |                 if Task.isCancelled {
210 |                     return nil
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpPageImageProvider.swift:217:24: warning: capture of 'adapter' with non-sendable type 'HwpImageAdapter' in a '@Sendable' closure; this is an error in the Swift 6 language mode
215 |                     data: data
216 |                 )
217 |                 switch adapter.decode(binaryData: binaryData) {
    |                        `- warning: capture of 'adapter' with non-sendable type 'HwpImageAdapter' in a '@Sendable' closure; this is an error in the Swift 6 language mode
218 |                 case let .success(decoded):
219 |                     return HwpCachedImage(
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Media/HwpImageAdapter.swift:40:15: note: struct 'HwpImageAdapter' does not conform to the 'Sendable' protocol
 38 | }
 39 |
 40 | public struct HwpImageAdapter {
    |               `- note: struct 'HwpImageAdapter' does not conform to the 'Sendable' protocol
 41 |     /// 디코드 허용 최대 픽셀 수 (폭×높이). 실제 문서 이미지는 이 한도 아래다 —
 42 |     /// 작은 압축본이 거대 차원을 선언하는 디코드 폭탄을 디코드 전에 거른다.
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpPageImageProvider.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'HwpKitCore'
  2 | import CoreHwp
  3 | import Foundation
  4 | import HwpKitCore
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'HwpKitCore'
  5 |
  6 | // 락 아래 가변 상태를 한 타입에 모아 두느라 길다. 쪼개면 그 상태를 internal로
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpPageLayer.swift:374:16: warning: static property 'placeholderFont' is not concurrency-safe because non-'Sendable' type 'CTFont' may have shared mutable state; this is an error in the Swift 6 language mode
372 |     /// 한국어 안전망 (Apple SD Gothic Neo)을 경유해 커버리지를 보장한다 (#125).
373 |     /// internal인 이유: 글리프 커버리지 회귀 테스트의 관측 지점.
374 |     static let placeholderFont = HwpFontResolver().fallbackFont(for: .korean, size: 12)
    |                `- warning: static property 'placeholderFont' is not concurrency-safe because non-'Sendable' type 'CTFont' may have shared mutable state; this is an error in the Swift 6 language mode
375 |
376 |     private func drawPlaceholder(_ text: String, in rect: CGRect, context ctx: CGContext) {
CoreText.CTFont:1:14: note: class 'CTFont' does not conform to the 'Sendable' protocol
1 | public class CTFont : _CFObject {
  |              `- note: class 'CTFont' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpPageLayer.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreText'
  1 | import CoreGraphics
  2 | import CoreText
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreText'
  3 | import Foundation
  4 | import HwpKitCore
    :
372 |     /// 한국어 안전망 (Apple SD Gothic Neo)을 경유해 커버리지를 보장한다 (#125).
373 |     /// internal인 이유: 글리프 커버리지 회귀 테스트의 관측 지점.
374 |     static let placeholderFont = HwpFontResolver().fallbackFont(for: .korean, size: 12)
    |                |- note: add '@MainActor' to make static property 'placeholderFont' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
375 |
376 |     private func drawPlaceholder(_ text: String, in rect: CGRect, context ctx: CGContext) {
[342/344] Compiling HwpKitNative HwpPageLayer.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpPageImageProvider.swift:208:58: warning: variable 'self' was written to, but never read
206 |             // 스타일 변형은 변형 키로 이 provider에만 저장한다.
207 |             let purgeGenerationBeforeFetch = await cache.purgeGeneration()
208 |             let decoded = await cache.fetch(key) { [weak self] in
    |                                                          `- warning: variable 'self' was written to, but never read
209 |                 if Task.isCancelled {
210 |                     return nil
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpPageImageProvider.swift:217:24: warning: capture of 'adapter' with non-sendable type 'HwpImageAdapter' in a '@Sendable' closure; this is an error in the Swift 6 language mode
215 |                     data: data
216 |                 )
217 |                 switch adapter.decode(binaryData: binaryData) {
    |                        `- warning: capture of 'adapter' with non-sendable type 'HwpImageAdapter' in a '@Sendable' closure; this is an error in the Swift 6 language mode
218 |                 case let .success(decoded):
219 |                     return HwpCachedImage(
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Media/HwpImageAdapter.swift:40:15: note: struct 'HwpImageAdapter' does not conform to the 'Sendable' protocol
 38 | }
 39 |
 40 | public struct HwpImageAdapter {
    |               `- note: struct 'HwpImageAdapter' does not conform to the 'Sendable' protocol
 41 |     /// 디코드 허용 최대 픽셀 수 (폭×높이). 실제 문서 이미지는 이 한도 아래다 —
 42 |     /// 작은 압축본이 거대 차원을 선언하는 디코드 폭탄을 디코드 전에 거른다.
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpPageImageProvider.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'HwpKitCore'
  2 | import CoreHwp
  3 | import Foundation
  4 | import HwpKitCore
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'HwpKitCore'
  5 |
  6 | // 락 아래 가변 상태를 한 타입에 모아 두느라 길다. 쪼개면 그 상태를 internal로
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpPageLayer.swift:374:16: warning: static property 'placeholderFont' is not concurrency-safe because non-'Sendable' type 'CTFont' may have shared mutable state; this is an error in the Swift 6 language mode
372 |     /// 한국어 안전망 (Apple SD Gothic Neo)을 경유해 커버리지를 보장한다 (#125).
373 |     /// internal인 이유: 글리프 커버리지 회귀 테스트의 관측 지점.
374 |     static let placeholderFont = HwpFontResolver().fallbackFont(for: .korean, size: 12)
    |                `- warning: static property 'placeholderFont' is not concurrency-safe because non-'Sendable' type 'CTFont' may have shared mutable state; this is an error in the Swift 6 language mode
375 |
376 |     private func drawPlaceholder(_ text: String, in rect: CGRect, context ctx: CGContext) {
CoreText.CTFont:1:14: note: class 'CTFont' does not conform to the 'Sendable' protocol
1 | public class CTFont : _CFObject {
  |              `- note: class 'CTFont' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpPageLayer.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreText'
  1 | import CoreGraphics
  2 | import CoreText
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreText'
  3 | import Foundation
  4 | import HwpKitCore
    :
372 |     /// 한국어 안전망 (Apple SD Gothic Neo)을 경유해 커버리지를 보장한다 (#125).
373 |     /// internal인 이유: 글리프 커버리지 회귀 테스트의 관측 지점.
374 |     static let placeholderFont = HwpFontResolver().fallbackFont(for: .korean, size: 12)
    |                |- note: add '@MainActor' to make static property 'placeholderFont' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
375 |
376 |     private func drawPlaceholder(_ text: String, in rect: CGRect, context ctx: CGContext) {
[343/344] Compiling HwpKitNative HwpPageLayerDecorationLines.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpPageImageProvider.swift:208:58: warning: variable 'self' was written to, but never read
206 |             // 스타일 변형은 변형 키로 이 provider에만 저장한다.
207 |             let purgeGenerationBeforeFetch = await cache.purgeGeneration()
208 |             let decoded = await cache.fetch(key) { [weak self] in
    |                                                          `- warning: variable 'self' was written to, but never read
209 |                 if Task.isCancelled {
210 |                     return nil
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpPageImageProvider.swift:217:24: warning: capture of 'adapter' with non-sendable type 'HwpImageAdapter' in a '@Sendable' closure; this is an error in the Swift 6 language mode
215 |                     data: data
216 |                 )
217 |                 switch adapter.decode(binaryData: binaryData) {
    |                        `- warning: capture of 'adapter' with non-sendable type 'HwpImageAdapter' in a '@Sendable' closure; this is an error in the Swift 6 language mode
218 |                 case let .success(decoded):
219 |                     return HwpCachedImage(
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Media/HwpImageAdapter.swift:40:15: note: struct 'HwpImageAdapter' does not conform to the 'Sendable' protocol
 38 | }
 39 |
 40 | public struct HwpImageAdapter {
    |               `- note: struct 'HwpImageAdapter' does not conform to the 'Sendable' protocol
 41 |     /// 디코드 허용 최대 픽셀 수 (폭×높이). 실제 문서 이미지는 이 한도 아래다 —
 42 |     /// 작은 압축본이 거대 차원을 선언하는 디코드 폭탄을 디코드 전에 거른다.
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpPageImageProvider.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'HwpKitCore'
  2 | import CoreHwp
  3 | import Foundation
  4 | import HwpKitCore
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'HwpKitCore'
  5 |
  6 | // 락 아래 가변 상태를 한 타입에 모아 두느라 길다. 쪼개면 그 상태를 internal로
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpPageLayer.swift:374:16: warning: static property 'placeholderFont' is not concurrency-safe because non-'Sendable' type 'CTFont' may have shared mutable state; this is an error in the Swift 6 language mode
372 |     /// 한국어 안전망 (Apple SD Gothic Neo)을 경유해 커버리지를 보장한다 (#125).
373 |     /// internal인 이유: 글리프 커버리지 회귀 테스트의 관측 지점.
374 |     static let placeholderFont = HwpFontResolver().fallbackFont(for: .korean, size: 12)
    |                `- warning: static property 'placeholderFont' is not concurrency-safe because non-'Sendable' type 'CTFont' may have shared mutable state; this is an error in the Swift 6 language mode
375 |
376 |     private func drawPlaceholder(_ text: String, in rect: CGRect, context ctx: CGContext) {
CoreText.CTFont:1:14: note: class 'CTFont' does not conform to the 'Sendable' protocol
1 | public class CTFont : _CFObject {
  |              `- note: class 'CTFont' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpPageLayer.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreText'
  1 | import CoreGraphics
  2 | import CoreText
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreText'
  3 | import Foundation
  4 | import HwpKitCore
    :
372 |     /// 한국어 안전망 (Apple SD Gothic Neo)을 경유해 커버리지를 보장한다 (#125).
373 |     /// internal인 이유: 글리프 커버리지 회귀 테스트의 관측 지점.
374 |     static let placeholderFont = HwpFontResolver().fallbackFont(for: .korean, size: 12)
    |                |- note: add '@MainActor' to make static property 'placeholderFont' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
375 |
376 |     private func drawPlaceholder(_ text: String, in rect: CGRect, context ctx: CGContext) {
[344/344] Compiling HwpKitNative HwpPageLayerDecorations.swift
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpPageImageProvider.swift:208:58: warning: variable 'self' was written to, but never read
206 |             // 스타일 변형은 변형 키로 이 provider에만 저장한다.
207 |             let purgeGenerationBeforeFetch = await cache.purgeGeneration()
208 |             let decoded = await cache.fetch(key) { [weak self] in
    |                                                          `- warning: variable 'self' was written to, but never read
209 |                 if Task.isCancelled {
210 |                     return nil
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpPageImageProvider.swift:217:24: warning: capture of 'adapter' with non-sendable type 'HwpImageAdapter' in a '@Sendable' closure; this is an error in the Swift 6 language mode
215 |                     data: data
216 |                 )
217 |                 switch adapter.decode(binaryData: binaryData) {
    |                        `- warning: capture of 'adapter' with non-sendable type 'HwpImageAdapter' in a '@Sendable' closure; this is an error in the Swift 6 language mode
218 |                 case let .success(decoded):
219 |                     return HwpCachedImage(
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitCore/Media/HwpImageAdapter.swift:40:15: note: struct 'HwpImageAdapter' does not conform to the 'Sendable' protocol
 38 | }
 39 |
 40 | public struct HwpImageAdapter {
    |               `- note: struct 'HwpImageAdapter' does not conform to the 'Sendable' protocol
 41 |     /// 디코드 허용 최대 픽셀 수 (폭×높이). 실제 문서 이미지는 이 한도 아래다 —
 42 |     /// 작은 압축본이 거대 차원을 선언하는 디코드 폭탄을 디코드 전에 거른다.
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpPageImageProvider.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'HwpKitCore'
  2 | import CoreHwp
  3 | import Foundation
  4 | import HwpKitCore
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'HwpKitCore'
  5 |
  6 | // 락 아래 가변 상태를 한 타입에 모아 두느라 길다. 쪼개면 그 상태를 internal로
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpPageLayer.swift:374:16: warning: static property 'placeholderFont' is not concurrency-safe because non-'Sendable' type 'CTFont' may have shared mutable state; this is an error in the Swift 6 language mode
372 |     /// 한국어 안전망 (Apple SD Gothic Neo)을 경유해 커버리지를 보장한다 (#125).
373 |     /// internal인 이유: 글리프 커버리지 회귀 테스트의 관측 지점.
374 |     static let placeholderFont = HwpFontResolver().fallbackFont(for: .korean, size: 12)
    |                `- warning: static property 'placeholderFont' is not concurrency-safe because non-'Sendable' type 'CTFont' may have shared mutable state; this is an error in the Swift 6 language mode
375 |
376 |     private func drawPlaceholder(_ text: String, in rect: CGRect, context ctx: CGContext) {
CoreText.CTFont:1:14: note: class 'CTFont' does not conform to the 'Sendable' protocol
1 | public class CTFont : _CFObject {
  |              `- note: class 'CTFont' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/HwpKitNative/Rendering/HwpPageLayer.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreText'
  1 | import CoreGraphics
  2 | import CoreText
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreText'
  3 | import Foundation
  4 | import HwpKitCore
    :
372 |     /// 한국어 안전망 (Apple SD Gothic Neo)을 경유해 커버리지를 보장한다 (#125).
373 |     /// internal인 이유: 글리프 커버리지 회귀 테스트의 관측 지점.
374 |     static let placeholderFont = HwpFontResolver().fallbackFont(for: .korean, size: 12)
    |                |- note: add '@MainActor' to make static property 'placeholderFont' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
375 |
376 |     private func drawPlaceholder(_ text: String, in rect: CGRect, context ctx: CGContext) {
[345/354] Compiling HwpKit HwpSearchNavigator.swift
[346/354] Compiling HwpKit HwpDocumentToolbar.swift
[347/354] Compiling HwpKit HwpPageNavigator.swift
[348/354] Compiling HwpKit HwpPageThumbnails.swift
[349/355] Compiling HwpKit HwpDocumentLoader.swift
[350/355] Compiling HwpKit HwpSearchDisplay.swift
[351/355] Compiling HwpKit HwpSearchBar.swift
[352/355] Compiling HwpKit HwpPDFExporter.swift
[353/355] Emitting module HwpKit
[354/355] Compiling HwpKit HwpDocumentView.swift
[355/355] Compiling HwpKit HwpZoomControls.swift
Build complete! (55.02s)
Fetching https://github.com/swiftlang/swift-docc-plugin from cache
Fetching https://github.com/CoreOffice/OLEKit.git
Fetching https://github.com/Quick/Nimble
Fetching https://github.com/tsolomko/SWCompression.git
[1/906] Fetching olekit
[11/18984] Fetching olekit, swcompression
[10127/38986] Fetching olekit, swcompression, nimble
Fetched https://github.com/Quick/Nimble from cache (3.19s)
Fetched https://github.com/CoreOffice/OLEKit.git from cache (3.19s)
Fetched https://github.com/tsolomko/SWCompression.git from cache (3.19s)
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (3.19s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.5.0 (6.63s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit from cache
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.04s)
Computing version for https://github.com/Quick/Nimble
Computed https://github.com/Quick/Nimble at 13.8.0 (1.62s)
Fetching https://github.com/mattgallagher/CwlPreconditionTesting.git
[1/1257] Fetching cwlpreconditiontesting
Fetched https://github.com/mattgallagher/CwlPreconditionTesting.git from cache (0.95s)
Computing version for https://github.com/tsolomko/SWCompression.git
Computed https://github.com/tsolomko/SWCompression.git at 4.9.1 (1.51s)
Fetching https://github.com/tsolomko/BitByteData
[1/3281] Fetching bitbytedata
Fetched https://github.com/tsolomko/BitByteData from cache (1.17s)
Computing version for https://github.com/CoreOffice/OLEKit.git
Computed https://github.com/CoreOffice/OLEKit.git at 0.3.1 (1.84s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (0.70s)
Computing version for https://github.com/tsolomko/BitByteData
Computed https://github.com/tsolomko/BitByteData at 2.1.0 (0.50s)
Computing version for https://github.com/mattgallagher/CwlPreconditionTesting.git
Computed https://github.com/mattgallagher/CwlPreconditionTesting.git at 2.2.2 (0.66s)
Fetching https://github.com/mattgallagher/CwlCatchException.git
[1/460] Fetching cwlcatchexception
Fetched https://github.com/mattgallagher/CwlCatchException.git from cache (0.77s)
Computing version for https://github.com/mattgallagher/CwlCatchException.git
Computed https://github.com/mattgallagher/CwlCatchException.git at 2.2.1 (1.40s)
Creating working copy for https://github.com/mattgallagher/CwlCatchException.git
Working copy of https://github.com/mattgallagher/CwlCatchException.git resolved at 2.2.1
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.5.0
Creating working copy for https://github.com/CoreOffice/OLEKit.git
Working copy of https://github.com/CoreOffice/OLEKit.git resolved at 0.3.1
Creating working copy for https://github.com/tsolomko/SWCompression.git
Working copy of https://github.com/tsolomko/SWCompression.git resolved at 4.9.1
Creating working copy for https://github.com/tsolomko/BitByteData
Working copy of https://github.com/tsolomko/BitByteData resolved at 2.1.0
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Creating working copy for https://github.com/Quick/Nimble
Working copy of https://github.com/Quick/Nimble resolved at 13.8.0
Creating working copy for https://github.com/mattgallagher/CwlPreconditionTesting.git
Working copy of https://github.com/mattgallagher/CwlPreconditionTesting.git resolved at 2.2.2
warning: 'nimble': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
    /Users/admin/builder/spi-builder-workspace/.build/checkouts/Nimble/Sources/Nimble/PrivacyInfo.xcprivacy
Build complete.
{
  "dependencies" : [
    {
      "identity" : "olekit",
      "requirement" : {
        "exact" : [
          "0.3.1"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/CoreOffice/OLEKit.git"
    },
    {
      "identity" : "swcompression",
      "requirement" : {
        "exact" : [
          "4.9.1"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/tsolomko/SWCompression.git"
    },
    {
      "identity" : "nimble",
      "requirement" : {
        "exact" : [
          "13.8.0"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/Quick/Nimble"
    },
    {
      "identity" : "swift-docc-plugin",
      "requirement" : {
        "exact" : [
          "1.5.0"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/swiftlang/swift-docc-plugin"
    }
  ],
  "manifest_display_name" : "Hwp-Swift",
  "name" : "Hwp-Swift",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "14.0"
    },
    {
      "name" : "ios",
      "version" : "17.0"
    },
    {
      "name" : "tvos",
      "version" : "17.0"
    },
    {
      "name" : "watchos",
      "version" : "10.0"
    }
  ],
  "products" : [
    {
      "name" : "CoreHwp",
      "targets" : [
        "CoreHwp"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "HwpKitCore",
      "targets" : [
        "HwpKitCore"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "HwpKitNative",
      "targets" : [
        "HwpKitNative"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "HwpKit",
      "targets" : [
        "HwpKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "HwpKitTests",
      "module_type" : "SwiftTarget",
      "name" : "HwpKitTests",
      "path" : "Tests/HwpKitTests",
      "product_dependencies" : [
        "Nimble"
      ],
      "sources" : [
        "FixtureBaselineAnchorTests.swift",
        "FixtureBlockLayoutSnapshotTests.swift",
        "FixtureContainerTextPositionTests.swift",
        "FixtureDashPatternTests.swift",
        "FixtureDecorationLineRenderTests+Compat.swift",
        "FixtureDecorationLineRenderTests+Hwp2007.swift",
        "FixtureDecorationLineRenderTests+Hwp2007Shapes.swift",
        "FixtureDecorationLineRenderTests+LineWide.swift",
        "FixtureDecorationLineRenderTests+MsWordScript.swift",
        "FixtureDecorationLineRenderTests+MsWordShapes.swift",
        "FixtureDecorationLineRenderTests+NoteReference.swift",
        "FixtureDecorationLineRenderTests+RunEnd.swift",
        "FixtureDecorationLineRenderTests+Script.swift",
        "FixtureDecorationLineRenderTests+ScriptLarge.swift",
        "FixtureDecorationLineRenderTests+Thickness.swift",
        "FixtureDecorationLineRenderTests.swift",
        "FixtureFloatingTableBandTests.swift",
        "FixtureFootnoteContinuationTests.swift",
        "FixtureFootnoteOverlapTests.swift",
        "FixtureHyperlinkClickBandTests.swift",
        "FixtureInlineObjectBaselineTests.swift",
        "FixtureInlineObjectMarkerSizeTests.swift",
        "FixtureInlineTableActualHeightTests.swift",
        "FixtureInlineTableFragmentTests.swift",
        "FixtureLetterSpacingTests.swift",
        "FixtureLineShapeRenderTests+RunEnd.swift",
        "FixtureLineShapeRenderTests.swift",
        "FixtureMsWordParagraphEndBoxTests.swift",
        "FixtureNoteReferenceTests.swift",
        "FixtureNumberingLabelRenderTests.swift",
        "FixtureObjectRenderTests.swift",
        "FixturePageEndLineBoxTests.swift",
        "FixtureParagraphEndCharSizeTests.swift",
        "FixturePreviewFidelityTests.swift",
        "FixturePreviewSupport.swift",
        "FixtureRenderGoldenTests.swift",
        "FixtureRenderHashSnapshotTests.swift",
        "FixtureRenderTests.swift",
        "FixtureSpaceWidthTests.swift",
        "FixtureSupport.swift",
        "FixtureTableBorderChainTests.swift",
        "FixtureTableBorderCornerTests.swift",
        "FixtureTableCellSpacingTests.swift",
        "FixtureTableRowHeightTests.swift",
        "FixtureWideTableTests.swift",
        "HwpAccessibilityLabelTests.swift",
        "HwpDocumentLoaderProgressiveTests.swift",
        "HwpDocumentLoaderTests.swift",
        "HwpDocumentViewTests.swift",
        "HwpKitScopeGuardTests.swift",
        "HwpPDFExporterTests.swift",
        "HwpPageNavigatorFieldTests.swift",
        "HwpPageThumbnailsTests.swift",
        "HwpProgressiveBatchTests.swift",
        "HwpSearchIntegrationTests.swift",
        "HwpSearchToolsTests.swift",
        "HwpSelectableTextPaintParityTests.swift",
        "HwpToolsTests.swift",
        "HwpxFixtureCopyParityTests.swift",
        "HwpxFixtureRenderTests.swift"
      ],
      "target_dependencies" : [
        "HwpKit",
        "HwpKitNative",
        "HwpKitCore",
        "CoreHwp"
      ],
      "type" : "test"
    },
    {
      "c99name" : "HwpKitNativeTests",
      "module_type" : "SwiftTarget",
      "name" : "HwpKitNativeTests",
      "path" : "Tests/HwpKitNativeTests",
      "product_dependencies" : [
        "Nimble"
      ],
      "sources" : [
        "HwpDecodeThrottleTests.swift",
        "HwpDecorationLineGeometryTests+Compat.swift",
        "HwpDecorationLineGeometryTests+Hwp2007.swift",
        "HwpDecorationLineGeometryTests+Hwp2007Shape.swift",
        "HwpDecorationLineGeometryTests+LineWide.swift",
        "HwpDecorationLineGeometryTests+MsWordScript.swift",
        "HwpDecorationLineGeometryTests+MsWordShape.swift",
        "HwpDecorationLineGeometryTests+NoteReference.swift",
        "HwpDecorationLineGeometryTests+Script.swift",
        "HwpDecorationLineGeometryTests+Shape.swift",
        "HwpDecorationLineGeometryTests+Support.swift",
        "HwpDecorationLineGeometryTests.swift",
        "HwpDocumentAccessibilityStoreTests.swift",
        "HwpDocumentActorTests.swift",
        "HwpDocumentNSViewAccessibilityTests.swift",
        "HwpDocumentNSViewKeyboardTests.swift",
        "HwpDocumentNSViewLayerTreeTests.swift",
        "HwpDocumentNSViewSearchTests.swift",
        "HwpDocumentNSViewSelectionTests.swift",
        "HwpDocumentNSViewTests.swift",
        "HwpDocumentUIViewAccessibilityTests.swift",
        "HwpDocumentUIViewKeyboardTests.swift",
        "HwpDocumentUIViewLayerTreeTests.swift",
        "HwpDocumentUIViewSearchTests.swift",
        "HwpDocumentUIViewSelectionTests.swift",
        "HwpDocumentUIViewTests.swift",
        "HwpDocumentViewSupportTests.swift",
        "HwpImageCacheTests.swift",
        "HwpImageStyleRendererTests.swift",
        "HwpLayerTreeSnapshotSupport.swift",
        "HwpPDFRendererTests.swift",
        "HwpPageBitmapRendererBoundsTests.swift",
        "HwpPageBitmapRendererTests.swift",
        "HwpPageImageProviderTests.swift",
        "HwpPageLayerCacheTests.swift",
        "HwpPageLayerLetterSpacingTests.swift",
        "HwpPageLayerLineBreakTests.swift",
        "HwpPageLayerTests.swift",
        "HwpPageThumbnailRendererTests.swift",
        "HwpSelectionHandleGeometryTests.swift",
        "HwpSelectionRTFTests.swift",
        "HwpThumbnailCacheTests.swift",
        "HwpWordJustificationTests.swift",
        "ImageByteAccountingTests.swift",
        "ImagePruningTests.swift",
        "ImageSettleEpochTests.swift",
        "Platform/PlatformTypesTests.swift"
      ],
      "target_dependencies" : [
        "HwpKitNative",
        "CoreHwp"
      ],
      "type" : "test"
    },
    {
      "c99name" : "HwpKitNative",
      "module_type" : "SwiftTarget",
      "name" : "HwpKitNative",
      "path" : "Sources/HwpKitNative",
      "product_memberships" : [
        "HwpKitNative",
        "HwpKit"
      ],
      "sources" : [
        "Cache/HwpImageCache.swift",
        "Cache/HwpThumbnailCache.swift",
        "Concurrency/HwpDocumentActor.swift",
        "HwpDocumentAccessibility.swift",
        "HwpDocumentViewSupport.swift",
        "HwpSelectionHandleGeometry.swift",
        "HwpSelectionRTF.swift",
        "Platform/PlatformTypes.swift",
        "Rendering/HwpDecodeThrottle.swift",
        "Rendering/HwpImageStyleRenderer.swift",
        "Rendering/HwpPDFRenderer.swift",
        "Rendering/HwpPageBitmapRenderer.swift",
        "Rendering/HwpPageImageProvider.swift",
        "Rendering/HwpPageLayer.swift",
        "Rendering/HwpPageLayerDecorationLines.swift",
        "Rendering/HwpPageLayerDecorations.swift",
        "Rendering/HwpPageLayerLineEnd.swift",
        "Rendering/HwpPageLayerLineShapes.swift",
        "Rendering/HwpPageLayerShades.swift",
        "Rendering/HwpPageThumbnailRenderer.swift",
        "iOS/HwpDocumentUIView.swift",
        "iOS/HwpDocumentUIViewAccessibility.swift",
        "iOS/HwpDocumentUIViewGeometry.swift",
        "iOS/HwpDocumentUIViewKeyboard.swift",
        "iOS/HwpDocumentUIViewSearch.swift",
        "iOS/HwpDocumentUIViewSelection.swift",
        "iOS/HwpDocumentUIViewSelectionHandles.swift",
        "iOS/HwpDocumentUIViewZoom.swift",
        "macOS/HwpCenteringClipView.swift",
        "macOS/HwpDocumentNSView.swift",
        "macOS/HwpDocumentNSViewAccessibility.swift",
        "macOS/HwpDocumentNSViewGeometry.swift",
        "macOS/HwpDocumentNSViewKeyboard.swift",
        "macOS/HwpDocumentNSViewSearch.swift",
        "macOS/HwpDocumentNSViewSelection.swift",
        "macOS/HwpDocumentNSViewZoom.swift"
      ],
      "target_dependencies" : [
        "HwpKitCore",
        "CoreHwp"
      ],
      "type" : "library"
    },
    {
      "c99name" : "HwpKitCoreTests",
      "module_type" : "SwiftTarget",
      "name" : "HwpKitCoreTests",
      "path" : "Tests/HwpKitCoreTests",
      "product_dependencies" : [
        "Nimble"
      ],
      "sources" : [
        "CGRectCloseMatcher.swift",
        "FloatingTablePrecedesTextSupport.swift",
        "FootnoteContinuationSupport.swift",
        "HwpAbsoluteCachePageBreakTests.swift",
        "HwpAccessibilityContentTests.swift",
        "HwpBaselineAnchorTests.swift",
        "HwpBidiHyperlinkRegionTests.swift",
        "HwpBlockContentWalkerTests.swift",
        "HwpBorderBandsTests+Rules.swift",
        "HwpBorderBandsTests+Samples.swift",
        "HwpBorderBandsTests+Support.swift",
        "HwpBorderBandsTests.swift",
        "HwpBorderChainingTests+Support.swift",
        "HwpBorderChainingTests.swift",
        "HwpBorderCornerTests+Context.swift",
        "HwpBorderCornerTests.swift",
        "HwpBorderSetEdgeTests.swift",
        "HwpBorderSetSpacedCellTests.swift",
        "HwpColorTests.swift",
        "HwpColumnDividerCacheTests.swift",
        "HwpColumnDividerTests.swift",
        "HwpCombinedBlockStringTests.swift",
        "HwpContainerBlockLinkHitTests.swift",
        "HwpContainerContentExtentTests.swift",
        "HwpContainerLinkCoverageTests.swift",
        "HwpContainerNumberingRenderTests.swift",
        "HwpContinuedFragmentMarkerTests.swift",
        "HwpDecorationLineGeometryModelTests.swift",
        "HwpDecorationLineStrokeTests.swift",
        "HwpDocumentTests.swift",
        "HwpDrawnLineParagraphEndTests.swift",
        "HwpEmptyParagraphCopyTests.swift",
        "HwpEmptyParagraphSelectionTests.swift",
        "HwpFloatingTableBandTests.swift",
        "HwpFloatingTablePrecedesTextPageTests.swift",
        "HwpFloatingTablePrecedesTextReviewTests.swift",
        "HwpFloatingTablePrecedesTextTests.swift",
        "HwpFlowFragmentFootnoteTests.swift",
        "HwpFlowParagraphPageSplitTests.swift",
        "HwpFlowTableHorizontalPlacementTests.swift",
        "HwpFontResolverTests.swift",
        "HwpFootnoteContainerCollectionTests.swift",
        "HwpFootnoteContinuationBodyBottomTests.swift",
        "HwpFootnoteContinuationObjectTests.swift",
        "HwpFootnoteContinuationReservationTests.swift",
        "HwpFootnoteContinuationReviewTests.swift",
        "HwpFootnoteContinuationSourceLayoutTests.swift",
        "HwpFootnoteContinuationTests.swift",
        "HwpFootnoteFragmentAttributionTests.swift",
        "HwpFootnoteFragmentReservationTests.swift",
        "HwpFootnoteHyperlinkHitTests.swift",
        "HwpFootnoteLayoutTests.swift",
        "HwpFootnoteObjectLayoutTests.swift",
        "HwpFootnoteOcclusionHitTests.swift",
        "HwpFootnotePaintCoverageHitTests.swift",
        "HwpFootnotePaintListTests.swift",
        "HwpFootnoteRenumberAnchorTests.swift",
        "HwpFootnoteResolverTests.swift",
        "HwpFootnoteWideTableTests.swift",
        "HwpFootnoteWrapperLinkHitTests.swift",
        "HwpGlyphOffsetHitGeometryTests.swift",
        "HwpGlyphOffsetPaintedInkTests.swift",
        "HwpHitTesterTests.swift",
        "HwpHyperlinkClickBandClaimTests.swift",
        "HwpHyperlinkClickBandTests.swift",
        "HwpHyperlinkClickBandTextboxTests.swift",
        "HwpHyperlinkPipelineTests.swift",
        "HwpHyperlinkRunExtentSemanticsTests.swift",
        "HwpHyperlinkVisualSegmentTests.swift",
        "HwpImageAdapterTests.swift",
        "HwpImageRenderStyleTests.swift",
        "HwpIndexTests.swift",
        "HwpInlineControlFragmentColumnTests.swift",
        "HwpInlineControlFragmentFlowTests.swift",
        "HwpInlineControlFragmentTests.swift",
        "HwpInlineObjectBaselineTests.swift",
        "HwpInlineObjectMarginTests.swift",
        "HwpInlineObjectMarkerLineBoxTests.swift",
        "HwpInlineObjectMarkerSharedRuleTests.swift",
        "HwpInlineReservationTests.swift",
        "HwpInlineTableActualHeightContainerTests.swift",
        "HwpInlineTableActualHeightTests.swift",
        "HwpInlineTableRescaledWidthTests.swift",
        "HwpInlineTableStaleLineCacheGuardTests.swift",
        "HwpInlineTableStaleLineCachePageTests.swift",
        "HwpInlineTableStaleLineCacheTests.swift",
        "HwpKerningCoverageTests.swift",
        "HwpLayoutRenderParitySweepTests.swift",
        "HwpLetterSpacingEdgeCaseTests.swift",
        "HwpLetterSpacingTests.swift",
        "HwpLineBoxAdvanceTests.swift",
        "HwpLineEndFieldEndTests.swift",
        "HwpLineEndSpacingTests.swift",
        "HwpLineShapeGeometryTests+CharacterBands.swift",
        "HwpLineShapeGeometryTests+Circles.swift",
        "HwpLineShapeGeometryTests+Dashes.swift",
        "HwpLineShapeGeometryTests+ElementRange.swift",
        "HwpLineShapeGeometryTests+Hwp2007.swift",
        "HwpLineShapeGeometryTests+MsWord.swift",
        "HwpLineShapeGeometryTests+RunEnd.swift",
        "HwpLineShapeGeometryTests.swift",
        "HwpMeasuredLineFragmentCacheTests.swift",
        "HwpMeasuredLineFragmentRemeasureReviewTests.swift",
        "HwpMeasuredLineFragmentRemeasureTests.swift",
        "HwpMeasuredLineFragmentTests.swift",
        "HwpMeasurementInputContractTests.swift",
        "HwpMemoPanelPainterTests.swift",
        "HwpMsWordLineBoxTests.swift",
        "HwpMsWordLineEndBoxTests.swift",
        "HwpMsWordLineMetricsTests.swift",
        "HwpNumberingHeadingFixtureTests.swift",
        "HwpNumberingHeadingLayoutTests.swift",
        "HwpNumberingHeadingReferenceTests.swift",
        "HwpNumberingHeadingRenderTests.swift",
        "HwpNumberingScopeTests.swift",
        "HwpObjectAnchorGeometryTests.swift",
        "HwpObjectSizeResolverTests.swift",
        "HwpOutOfFrameTextClaimTests.swift",
        "HwpOutlineBoundedOutputTests.swift",
        "HwpOutlineCollectorTests.swift",
        "HwpOutlineColumnPageTests.swift",
        "HwpOutlineContainerDepthTests.swift",
        "HwpOutlineFixtureTests.swift",
        "HwpOutlineNavigationTests.swift",
        "HwpOutlineSyntheticFixtures.swift",
        "HwpOutlineTableTruncationTests.swift",
        "HwpOverflowLineStartTests.swift",
        "HwpOversizedGlyphLineTests.swift",
        "HwpPageChromeApplyScopeTests.swift",
        "HwpPageChromeEmptyParagraphTests.swift",
        "HwpPageEndFitBandReviewTests.swift",
        "HwpPageEndFitCacheExtentTests.swift",
        "HwpPageEndFitNegativeGapTests.swift",
        "HwpPageEndFitReviewTests.swift",
        "HwpPageEndFitRuleTests.swift",
        "HwpPageEndLineBoxFitTests.swift",
        "HwpPageEqualityContractTests.swift",
        "HwpPageGeometryTests.swift",
        "HwpPageNumberPlacementTests.swift",
        "HwpPaginatorAbsoluteCacheSkipTests.swift",
        "HwpPaginatorCancellationTests.swift",
        "HwpPaginatorCapTests.swift",
        "HwpPaginatorColumnCacheTests.swift",
        "HwpPaginatorEndnoteTests.swift",
        "HwpPaginatorFlowTests.swift",
        "HwpPaginatorNoteNumberTests.swift",
        "HwpPaginatorPageNumberTests.swift",
        "HwpPaginatorRecoveryPlaceholderTests.swift",
        "HwpPaginatorReviewRegressionTests.swift",
        "HwpPaginatorSweepImprovementTests.swift",
        "HwpPaginatorTests.swift",
        "HwpPaintListBuilderTests.swift",
        "HwpParagraphBoundaryCopyTests.swift",
        "HwpParagraphEndCharSizeTests.swift",
        "HwpParagraphLayoutTests.swift",
        "HwpParagraphNumberingFixtureTests.swift",
        "HwpParagraphNumberingLookupTests.swift",
        "HwpParagraphNumberingTests.swift",
        "HwpPayloadlessTextBlockEligibilityTests.swift",
        "HwpRenderTuningTests.swift",
        "HwpSectionChromeHidingTests.swift",
        "HwpSelectionCaretTests.swift",
        "HwpSelectionControllerTests.swift",
        "HwpSelectionGeometryAttributedTests.swift",
        "HwpSelectionGeometryTests.swift",
        "HwpSelectionMarkerStrippingTests.swift",
        "HwpShapeGeometryTests.swift",
        "HwpSpaceWidthTests.swift",
        "HwpSyntheticFixtures.swift",
        "HwpSyntheticNumberingFixtures.swift",
        "HwpTableCachedRowHeightTests.swift",
        "HwpTableCommandOrderTests.swift",
        "HwpTableFloatingObjectLayoutTests.swift",
        "HwpTableHitOrderTests.swift",
        "HwpTableLayoutTests.swift",
        "HwpTableWrapperLinkTests.swift",
        "HwpTextRunBuilderCompatTests.swift",
        "HwpTextRunBuilderControlCharacterTests.swift",
        "HwpTextRunBuilderScriptTests.swift",
        "HwpTextRunBuilderTests.swift",
        "HwpTextSelectionTests.swift",
        "HwpTextboxLayoutTests.swift",
        "HwpUnderlineReferenceTests.swift",
        "HwpUnitsTests.swift",
        "HwpUnsupportedDetectorTests.swift",
        "HwpWideTableWidthTests.swift",
        "InlineControlFragmentSupport.swift",
        "LineBoxFixtures.swift",
        "Performance/ContinuationFragmentPerformanceTests.swift",
        "Performance/NumberingPerformanceTests.swift",
        "Performance/ObjectCollectorPerformanceTests.swift",
        "Performance/PaginatorPerformanceTests.swift",
        "Performance/PaintListPerformanceTests.swift",
        "Search/HwpGeometryChangeTests.swift",
        "Search/HwpRepeatedHeaderCloneTests.swift",
        "Search/HwpSearchBudgetTests.swift",
        "Search/HwpSearchControllerTests.swift",
        "Search/HwpSearchNormalizationTests.swift",
        "Search/HwpSearchNotificationTests.swift",
        "Search/HwpSelectionGeometrySearchTests.swift",
        "Search/HwpTextSearcherTests.swift"
      ],
      "target_dependencies" : [
        "HwpKitCore",
        "CoreHwp"
      ],
      "type" : "test"
    },
    {
      "c99name" : "HwpKitCore",
      "module_type" : "SwiftTarget",
      "name" : "HwpKitCore",
      "path" : "Sources/HwpKitCore",
      "product_memberships" : [
        "HwpKitCore",
        "HwpKitNative",
        "HwpKit"
      ],
      "sources" : [
        "Accessibility/HwpAccessibilityContent.swift",
        "Fonts/HwpFontMap.swift",
        "Fonts/HwpFontResolver.swift",
        "Fonts/HwpInstalledHancomFonts.swift",
        "Fonts/HwpMsWordLineBox.swift",
        "Fonts/HwpScript.swift",
        "Index/HwpIndex.swift",
        "Layout/HwpAttributedStringKey.swift",
        "Layout/HwpBorderChaining.swift",
        "Layout/HwpBorderContext.swift",
        "Layout/HwpBorderGrid.swift",
        "Layout/HwpBorderSet+Edge.swift",
        "Layout/HwpBorderSet.swift",
        "Layout/HwpCellContentFrames.swift",
        "Layout/HwpChartParser.swift",
        "Layout/HwpContainerContentExtent.swift",
        "Layout/HwpEquationLayout.swift",
        "Layout/HwpFootnoteBlock.swift",
        "Layout/HwpFootnoteContinuation.swift",
        "Layout/HwpFootnoteFragment.swift",
        "Layout/HwpFootnoteLayout.swift",
        "Layout/HwpFootnoteNoteMeasurement.swift",
        "Layout/HwpFootnotePendingNotes.swift",
        "Layout/HwpHitCoverage.swift",
        "Layout/HwpHitTester.swift",
        "Layout/HwpHitTesterTextClaim.swift",
        "Layout/HwpInlineObjectReservation.swift",
        "Layout/HwpInlineTableReservation.swift",
        "Layout/HwpKerningCoverage.swift",
        "Layout/HwpKerningCoverageSubstitution.swift",
        "Layout/HwpObjectAnchorGeometry.swift",
        "Layout/HwpObjectSizeResolver.swift",
        "Layout/HwpPageGeometry.swift",
        "Layout/HwpPaginator.swift",
        "Layout/HwpParagraphFragmentLines.swift",
        "Layout/HwpParagraphFragmentStyle.swift",
        "Layout/HwpParagraphLayout.swift",
        "Layout/HwpParagraphMeasurer.swift",
        "Layout/HwpParagraphMetrics.swift",
        "Layout/HwpParagraphObjectCollector.swift",
        "Layout/HwpParagraphObjectPredicates.swift",
        "Layout/HwpScript+Detect.swift",
        "Layout/HwpShapeGeometry.swift",
        "Layout/HwpTableFrame.swift",
        "Layout/HwpTableLayout.swift",
        "Layout/HwpTableLayoutFrames.swift",
        "Layout/HwpTableLayoutWidths.swift",
        "Layout/HwpTextAttributeCache.swift",
        "Layout/HwpTextRunBuilder.swift",
        "Layout/HwpTextRunBuilderDecorations.swift",
        "Layout/HwpTextRunBuilderFontFallback.swift",
        "Layout/HwpTextRunBuilderFonts.swift",
        "Layout/HwpTextRunBuilderInlineObject.swift",
        "Layout/HwpTextRunBuilderLetterSpacing.swift",
        "Layout/HwpTextRunBuilderLineBreak.swift",
        "Layout/HwpTextRunBuilderMarks.swift",
        "Layout/HwpTextRunBuilderNoteNumbers.swift",
        "Layout/HwpTextRunBuilderNumbering.swift",
        "Layout/HwpTextRunBuilderParagraphEnd.swift",
        "Layout/HwpTextRunBuilderSpaces.swift",
        "Layout/HwpTextRunBuilderStandalone.swift",
        "Layout/HwpTextboxLayout.swift",
        "Layout/HwpUnsupportedDetector.swift",
        "Layout/Paginator/HwpAbsoluteCachePlacer.swift",
        "Layout/Paginator/HwpColumnBandController.swift",
        "Layout/Paginator/HwpCombinedBlockString.swift",
        "Layout/Paginator/HwpFlowFragmentFootnotes.swift",
        "Layout/Paginator/HwpFootnoteCoordinator.swift",
        "Layout/Paginator/HwpFootnoteCoordinatorMeasurement.swift",
        "Layout/Paginator/HwpFootnoteCoordinatorPlacement.swift",
        "Layout/Paginator/HwpFootnoteHeightKey.swift",
        "Layout/Paginator/HwpFragmentLineAdvances.swift",
        "Layout/Paginator/HwpNumberingHeadingReference.swift",
        "Layout/Paginator/HwpOutlineCollector.swift",
        "Layout/Paginator/HwpPageChromeBuilder.swift",
        "Layout/Paginator/HwpTableSplitter.swift",
        "Media/HwpImageAdapter.swift",
        "Model/HwpBlock.swift",
        "Model/HwpBlockPayload.swift",
        "Model/HwpDocument.swift",
        "Model/HwpDocumentMetadata.swift",
        "Model/HwpImageStore.swift",
        "Model/HwpOutlineItem.swift",
        "Model/HwpPDFExportProgress.swift",
        "Model/HwpPage.swift",
        "Model/HwpUnsupportedElement.swift",
        "Model/HwpZoomFit.swift",
        "Numbering/HwpNumberingCounter.swift",
        "Numbering/HwpNumberingLabelFormatter.swift",
        "Numbering/HwpNumberingScope.swift",
        "Numbering/HwpParagraphNumber.swift",
        "Numbering/HwpParagraphNumbering.swift",
        "Numbering/HwpParagraphPath.swift",
        "Paint/HwpChartPainter.swift",
        "Paint/HwpMemoPanelPainter.swift",
        "Paint/HwpPaintCommand.swift",
        "Paint/HwpPaintList.swift",
        "Paint/HwpPaintListBuilder.swift",
        "Paint/HwpPaintListBuilderObjects.swift",
        "Paint/HwpTableCommandBuffer.swift",
        "Search/HwpSearchController.swift",
        "Search/HwpSearchHighlightStyle.swift",
        "Search/HwpSearchMatch.swift",
        "Search/HwpSearchQuery.swift",
        "Search/HwpSearchScanState.swift",
        "Search/HwpTextSearcher.swift",
        "Selection/HwpBlockContentWalker.swift",
        "Selection/HwpBlockContentWalkerListed.swift",
        "Selection/HwpSelectableText.swift",
        "Selection/HwpSelectionCaret.swift",
        "Selection/HwpSelectionController.swift",
        "Selection/HwpSelectionGeometry+Attributed.swift",
        "Selection/HwpSelectionGeometry+Caret.swift",
        "Selection/HwpSelectionGeometry+Search.swift",
        "Selection/HwpSelectionGeometry.swift",
        "Selection/HwpTextPosition.swift",
        "Text/HwpDecorationLineGeometry.swift",
        "Text/HwpDrawnTextLayout.swift",
        "Text/HwpDrawnTextLayoutAnchor.swift",
        "Text/HwpDrawnTextLayoutGlyphOffset.swift",
        "Text/HwpDrawnTextLayoutHyperlinkRects.swift",
        "Text/HwpDrawnTextLayoutMetrics.swift",
        "Text/HwpLineAdvance.swift",
        "Text/HwpLineBreaker.swift",
        "Text/HwpLineBreakerLineEnd.swift",
        "Text/HwpLineShapeGeometry+Circles.swift",
        "Text/HwpLineShapeGeometry+Dashes.swift",
        "Text/HwpLineShapeGeometry+DeviceBands.swift",
        "Text/HwpLineShapeGeometry+Paths.swift",
        "Text/HwpLineShapeGeometry+Waves.swift",
        "Text/HwpLineShapeGeometry.swift",
        "Text/HwpWordJustification.swift",
        "Text/HwpWrapperLinkLookup.swift",
        "Tuning/HwpRenderTuning+Circle.swift",
        "Tuning/HwpRenderTuning+DeviceUnit.swift",
        "Tuning/HwpRenderTuning+Space.swift",
        "Tuning/HwpRenderTuning.swift",
        "Utils/HwpColor+CGColor.swift",
        "Utils/HwpNumberFormat.swift",
        "Utils/HwpUnits.swift"
      ],
      "target_dependencies" : [
        "CoreHwp"
      ],
      "type" : "library"
    },
    {
      "c99name" : "HwpKit",
      "module_type" : "SwiftTarget",
      "name" : "HwpKit",
      "path" : "Sources/HwpKit",
      "product_memberships" : [
        "HwpKit"
      ],
      "sources" : [
        "Export/HwpPDFExporter.swift",
        "HwpDocumentView.swift",
        "Loader/HwpDocumentLoader.swift",
        "Search/HwpSearchBar.swift",
        "Search/HwpSearchDisplay.swift",
        "Search/HwpSearchNavigator.swift",
        "Thumbnail/HwpPageThumbnails.swift",
        "Tools/HwpDocumentToolbar.swift",
        "Tools/HwpPageNavigator.swift",
        "Tools/HwpZoomControls.swift"
      ],
      "target_dependencies" : [
        "HwpKitNative",
        "CoreHwp"
      ],
      "type" : "library"
    },
    {
      "c99name" : "CoreHwpTests",
      "module_type" : "SwiftTarget",
      "name" : "CoreHwpTests",
      "path" : "Tests/CoreHwpTests",
      "product_dependencies" : [
        "OLEKit",
        "SWCompression",
        "Nimble"
      ],
      "sources" : [
        "Assembly/ControlObjects/HwpFileColumnControlAssemblyTests.swift",
        "Assembly/ControlObjects/HwpFileCommonShapeControlAssemblyTests.swift",
        "Assembly/ControlObjects/HwpFileGenShapeObjectAssemblyTests.swift",
        "Assembly/ControlObjects/HwpFilePreservedControlAssemblyTests.swift",
        "Assembly/ControlObjects/HwpFileSectionDefAssemblyTests.swift",
        "Assembly/ControlObjects/HwpFileShapeComponentRawAssemblyTests.swift",
        "Assembly/ControlObjects/HwpFileShapeControlAssemblyTests.swift",
        "Assembly/ControlObjects/HwpFileShapeControlFallbackAssemblyTests.swift",
        "Assembly/ControlObjects/HwpFileTableControlAssemblyTests.swift",
        "Assembly/ControlText/HwpFileFieldControlAssemblyTests.swift",
        "Assembly/ControlText/HwpFileHyperlinkControlAssemblyTests.swift",
        "Assembly/ControlText/HwpFileListControlAssemblyTests.swift",
        "Assembly/ControlText/HwpFileNumberingControlAssemblyTests.swift",
        "Assembly/ControlText/HwpFileOtherControlAssemblyTests.swift",
        "Assembly/ControlText/HwpFilePageNumberPositionAssemblyTests.swift",
        "Assembly/ControlText/HwpFileRemainingOtherControlAssemblyTests.swift",
        "Assembly/ControlText/HwpFileRevisionFieldControlAssemblyTests.swift",
        "Assembly/DocInfo/HwpFileCompatibleDocumentDuplicateAssemblyTests.swift",
        "Assembly/DocInfo/HwpFileDocInfoDuplicateAssemblyTests.swift",
        "Assembly/DocInfo/HwpFileDocInfoRawRecordAssemblyTests.swift",
        "Assembly/DocInfo/HwpFileDocInfoTrackChangeAssemblyTests.swift",
        "Assembly/Entrypoints/BodyTextFileWrapperStabilityTests.swift",
        "Assembly/Entrypoints/HwpFileDataEntrypointTests.swift",
        "Assembly/Records/HwpFileParagraphDuplicateAssemblyTests.swift",
        "Assembly/Records/HwpFileRepresentativeAssemblyTruncationTests.swift",
        "Assembly/Records/HwpFileRequiredRecordAssemblyTests.swift",
        "Assembly/Streams/BinaryDataStreamTestSupport.swift",
        "Assembly/Streams/HwpFileBinaryDataAssemblyTests.swift",
        "Assembly/Streams/HwpFileOptionalStreamAssemblyTests.swift",
        "Assembly/Streams/HwpFileRepresentativeStreamAssemblyTests.swift",
        "Assembly/Streams/HwpFileSectionCountAssemblyTests.swift",
        "Assembly/Streams/HwpFileStreamAssemblyTests.swift",
        "Blank/BlankTests.swift",
        "Blank/Create2014Tests.swift",
        "Blank/Create2018Tests.swift",
        "Controls/Common/CommonCtrlPropertyInfoBitPatternTests.swift",
        "Controls/Common/CommonCtrlPropertyRealFixtureTests.swift",
        "Controls/Common/CommonCtrlPropertyStabilityTests.swift",
        "Controls/Common/CommonShapeControlFallbackTests.swift",
        "Controls/Common/ControlHeaderStabilityTests.swift",
        "Controls/Common/ControlPreservationTests.swift",
        "Controls/Common/CtrlIdTests.swift",
        "Controls/Common/SpecializedControlValidationTests.swift",
        "Controls/Common/UnknownControlPreservationTests.swift",
        "Controls/Field/FieldControlFallbackTests.swift",
        "Controls/Field/FieldControlInvalidParameterTests.swift",
        "Controls/Field/FieldControlParameterStabilityTests.swift",
        "Controls/Field/FieldControlPreservationTests.swift",
        "Controls/Field/FieldControlRealFixturePreservationTests.swift",
        "Controls/Field/HyperlinkStabilityTests.swift",
        "Controls/Field/RevisionFieldControlPreservationTests.swift",
        "Controls/List/HeaderFooterApplyScopeTests.swift",
        "Controls/List/ListControlExtractionHelpers.swift",
        "Controls/List/ListControlFallbackTests.swift",
        "Controls/List/ListControlRealFixturePreservationTests.swift",
        "Controls/List/ListControlStabilityTests.swift",
        "Controls/List/TextBoxListInfoDecodeTests.swift",
        "Controls/Other/CtrlDataParameterSetStabilityTests.swift",
        "Controls/Other/OtherControlBookmarkTests.swift",
        "Controls/Other/OtherControlIndexmarkTests.swift",
        "Controls/Other/OtherControlNumberingTests.swift",
        "Controls/Other/OtherControlPageHideTests.swift",
        "Controls/Other/OtherControlPreservationTests.swift",
        "Controls/Other/OtherControlRealFixturePreservationTests.swift",
        "Controls/Other/PageNumberPositionFallbackTests.swift",
        "Controls/Other/PageNumberPositionRealFixtureTests.swift",
        "Controls/Other/PageNumberPositionStabilityTests.swift",
        "Controls/ShapeComponents/PicturePropertyDecodeTests.swift",
        "Controls/ShapeComponents/PicturePropertyRealFixtureTests.swift",
        "Controls/ShapeComponents/ShapeComponentDetailDecodeTests.swift",
        "Controls/ShapeComponents/ShapeComponentKindDetailDecodeTests.swift",
        "Controls/ShapeComponents/ShapeComponentRawRecordTests.swift",
        "Controls/ShapeComponents/ShapeComponentTextBoxStabilityTests.swift",
        "Controls/ShapeComponents/ShapeControlExtractionHelpers.swift",
        "Controls/ShapeObjects/GenShapeObjectPreservationTests.swift",
        "Controls/ShapeObjects/ObjectControlRealFixturePreservationTests.swift",
        "Controls/ShapeObjects/ShapeControlDirectLoaderTests.swift",
        "Controls/ShapeObjects/ShapeControlMalformedTests.swift",
        "Controls/ShapeObjects/ShapeControlOLEPreservationTests.swift",
        "Controls/ShapeObjects/ShapeControlPreservationTests.swift",
        "Controls/Table/ColumnControlFallbackTests.swift",
        "Controls/Table/ColumnControlStabilityTests.swift",
        "Controls/Table/FootnoteDividerInfoDecodeTests.swift",
        "Controls/Table/FootnoteShapeRawPayloadTests.swift",
        "Controls/Table/SectionDefFallbackTests.swift",
        "Controls/Table/SectionDefPropertyRealFixtureTests.swift",
        "Controls/Table/SectionDefStabilityTests.swift",
        "Controls/Table/TableCellHeaderPropertyRealFixtureTests.swift",
        "Controls/Table/TableCellPropertyDecodeTests.swift",
        "Controls/Table/TableCellPropertyRealFixtureTests.swift",
        "Controls/Table/TableControlFallbackTests.swift",
        "Controls/Table/TableControlStabilityTests.swift",
        "Controls/Table/TablePropertyDerivedValuesTests.swift",
        "DocInfo/BinData/BinDataTests.swift",
        "DocInfo/CharShape/CharShapeTests.swift",
        "DocInfo/CharShape/HwpUnderlineTypeTests.swift",
        "DocInfo/Core/DocInfoDuplicateRecordStabilityTests.swift",
        "DocInfo/Core/DocInfoRequiredRecordStabilityTests.swift",
        "DocInfo/Core/DocInfoStabilityTests.swift",
        "DocInfo/IdMappingRecords/BinDataInitializerRawPayloadTests.swift",
        "DocInfo/IdMappingRecords/BinDataRawPayloadTests.swift",
        "DocInfo/IdMappingRecords/DocInfoIdMappingCountStabilityTests.swift",
        "DocInfo/IdMappingRecords/DocInfoIdMappingsUnknownInterleavingTests.swift",
        "DocInfo/IdMappingShapes/BorderFillFillInfoTests.swift",
        "DocInfo/IdMappingShapes/BorderFillRawPayloadTests.swift",
        "DocInfo/IdMappingShapes/FaceNameRawPayloadTests.swift",
        "DocInfo/IdMappingShapes/NumberingFormatPatternTests.swift",
        "DocInfo/IdMappingShapes/NumberingStartingNumberTests.swift",
        "DocInfo/IdMappingShapes/ParaHeadInfoTests.swift",
        "DocInfo/IdMappingShapes/ParaShapePropertyInfoTests.swift",
        "DocInfo/IdMappingShapes/ParaShapeRawPayloadTests.swift",
        "DocInfo/IdMappingShapes/StyleRawPayloadTests.swift",
        "DocInfo/IdMappingShapes/TabDefRawPayloadTests.swift",
        "DocInfo/RawRecords/DocInfoRawRecordPreservationTests.swift",
        "DocInfo/RawRecords/DocInfoRawRecordTagValidationTests.swift",
        "DocInfo/RawRecords/DocInfoRawRecordViewerOptOutTests.swift",
        "DocInfo/TrackChanges/DocInfoDistributeDocDataStabilityTests.swift",
        "DocInfo/TrackChanges/DocInfoDocDataStabilityTests.swift",
        "DocInfo/TrackChanges/DocInfoMemoShapeStabilityTests.swift",
        "DocInfo/TrackChanges/DocInfoTopLevelTrackChangeTests.swift",
        "DocInfo/TrackChanges/DocInfoTrackChangeStabilityTests.swift",
        "Entries/DirectoryEntry/DirectoryEntryDataEntrypointStabilityTests.swift",
        "Entries/DirectoryEntry/DirectoryEntryFileWrapperStabilityTests.swift",
        "Entries/DirectoryEntry/DirectoryEntryMutationSupport.swift",
        "Entries/DirectoryEntry/DirectoryEntryTypeStabilityTests.swift",
        "Entries/FileHeader/FileHeaderHwpMutationTests.swift",
        "FileHeader/FileHeaderTests.swift",
        "FixtureDocInfoFeatureAssertions.swift",
        "FixtureDocInfoIdMappingManifestSupport.swift",
        "FixtureFieldControlManifestSupport.swift",
        "FixtureFileHeaderManifestSupport.swift",
        "FixtureHarness/DocInfoCore/FixtureCompatibleDocumentAssertions.swift",
        "FixtureHarness/DocInfoCore/FixtureCompatibleDocumentManifestTests.swift",
        "FixtureHarness/DocInfoCore/FixtureDocInfoAssertions.swift",
        "FixtureHarness/DocInfoCore/FixtureDocInfoFeatureGateTests.swift",
        "FixtureHarness/DocInfoCore/FixtureDocInfoForbiddenCharFeatureGateTests.swift",
        "FixtureHarness/DocInfoCore/FixtureDocInfoMemoShapeFeatureGateTests.swift",
        "FixtureHarness/DocInfoCore/FixtureDocInfoStreamAssertions.swift",
        "FixtureHarness/DocInfoCore/FixtureDocumentPropertiesAssertions.swift",
        "FixtureHarness/DocInfoRaw/FixtureDocInfoIdMappingsManifestTests.swift",
        "FixtureHarness/DocInfoRaw/FixtureDocInfoRawAssertions.swift",
        "FixtureHarness/DocInfoRaw/FixtureDocInfoRawFeatureAssertions.swift",
        "FixtureHarness/DocInfoRaw/FixtureDocInfoRawManifestTests.swift",
        "FixtureHarness/DocInfoRaw/FixtureDocInfoRawRecordCountTests.swift",
        "FixtureHarness/FieldControls/FixtureFieldControlAssertions.swift",
        "FixtureHarness/FieldControls/FixtureFieldControlFeatureAssertions.swift",
        "FixtureHarness/FieldControls/FixtureFieldControlFeatureGateTests.swift",
        "FixtureHarness/FixtureCore/FixtureArtifactSupport.swift",
        "FixtureHarness/FixtureCore/FixtureDocumentationSupport.swift",
        "FixtureHarness/FixtureCore/FixtureFeatureTagVocabulary.swift",
        "FixtureHarness/FixtureCore/FixtureSupport.swift",
        "FixtureHarness/FixtureCore/FixtureUnsupportedAssertions.swift",
        "FixtureHarness/FixtureRegression/FixtureCorruptionStabilityTests.swift",
        "FixtureHarness/FixtureRegression/FixtureDerivedValues.swift",
        "FixtureHarness/FixtureRegression/FixtureDerivedValuesTests.swift",
        "FixtureHarness/FixtureRegression/FixtureGuideTests.swift",
        "FixtureHarness/FixtureRegression/FixtureKnownMissingGoalTests.swift",
        "FixtureHarness/FixtureRegression/FixtureParseDiagnosticsTests.swift",
        "FixtureHarness/FixtureRegression/FixtureReadableFeatureCoverageTests.swift",
        "FixtureHarness/Hwpx/HwpxFixtureManifestTests.swift",
        "FixtureHarness/Hwpx/HwpxFixtureSupport.swift",
        "FixtureHarness/Hwpx/HwpxHwpEquivalenceCompatTargetTests.swift",
        "FixtureHarness/Hwpx/HwpxHwpEquivalenceLineShapeProjection.swift",
        "FixtureHarness/Hwpx/HwpxHwpEquivalenceLineShapeTests.swift",
        "FixtureHarness/Hwpx/HwpxHwpEquivalenceNoteProjection.swift",
        "FixtureHarness/Hwpx/HwpxHwpEquivalenceOleProjection.swift",
        "FixtureHarness/Hwpx/HwpxHwpEquivalenceSectionMarkProjection.swift",
        "FixtureHarness/Hwpx/HwpxHwpEquivalenceSectionSettingsProjection.swift",
        "FixtureHarness/Hwpx/HwpxHwpEquivalenceSectionSettingsTests.swift",
        "FixtureHarness/Hwpx/HwpxHwpEquivalenceTests.swift",
        "FixtureHarness/ListControls/FixtureListControlAssertions.swift",
        "FixtureHarness/ListControls/FixtureListControlFeatureAssertions.swift",
        "FixtureHarness/ListControls/FixtureListControlFeatureGateTests.swift",
        "FixtureHarness/ListControls/FixtureListControlUnknownChildManifestTests.swift",
        "FixtureHarness/Manifest/FixtureManifestCodingKeys.swift",
        "FixtureHarness/Manifest/FixtureManifestFeatureAssertions.swift",
        "FixtureHarness/Manifest/FixtureManifestJSONKeyTests.swift",
        "FixtureHarness/Manifest/FixtureManifestPayloadSampleFeatureAssertions.swift",
        "FixtureHarness/Manifest/FixtureManifestPrivacyTests.swift",
        "FixtureHarness/Manifest/FixturePayloadSampleAssertions.swift",
        "FixtureHarness/Manifest/FixturePayloadSampleDeclarationTests.swift",
        "FixtureHarness/OtherControls/FixtureControlUnknownChildManifestTests.swift",
        "FixtureHarness/OtherControls/FixtureOtherControlAssertions.swift",
        "FixtureHarness/OtherControls/FixtureOtherControlFeatureGateTests.swift",
        "FixtureHarness/OtherControls/FixturePreservedControlAlias.swift",
        "FixtureHarness/OtherControls/FixturePreservedControlAssertions.swift",
        "FixtureHarness/OtherControls/FixturePreservedControlFeatureAssertions.swift",
        "FixtureHarness/OtherControls/FixturePreservedControlManifestTests.swift",
        "FixtureHarness/PageControls/FixturePageNumberPositionAssertions.swift",
        "FixtureHarness/PageControls/FixturePageNumberPositionFeatureGateTests.swift",
        "FixtureHarness/PageControls/FixturePageNumberPositionUnknownChildManifestTests.swift",
        "FixtureHarness/Paragraphs/FixtureFootnoteEndnoteFeatureAssertions.swift",
        "FixtureHarness/Paragraphs/FixtureParagraphAssertions.swift",
        "FixtureHarness/Paragraphs/FixtureParagraphFeatureAssertions.swift",
        "FixtureHarness/Paragraphs/FixtureParagraphUnknownChildManifestTests.swift",
        "FixtureHarness/Paragraphs/FixtureSectionUnknownChildManifestTests.swift",
        "FixtureHarness/Paragraphs/FixtureSectionUnknownRecordAssertions.swift",
        "FixtureHarness/Paragraphs/FixtureSectionUnknownRecordManifestTests.swift",
        "FixtureHarness/Paragraphs/FixtureTextBodyFeatureAssertions.swift",
        "FixtureHarness/Paragraphs/FixtureTextBodyFeatureGateTests.swift",
        "FixtureHarness/ShapeObjects/FixtureGenShapeAssertions.swift",
        "FixtureHarness/ShapeObjects/FixtureHyperlinkAssertions.swift",
        "FixtureHarness/ShapeObjects/FixtureHyperlinkFeatureAssertions.swift",
        "FixtureHarness/ShapeObjects/FixtureHyperlinkFeatureGateTests.swift",
        "FixtureHarness/ShapeObjects/FixtureLargeOtherFeatureAssertions.swift",
        "FixtureHarness/ShapeObjects/FixtureObjectFeatureGateTests.swift",
        "FixtureHarness/ShapeObjects/FixtureObjectUnknownChildManifestTests.swift",
        "FixtureHarness/ShapeObjects/FixtureShapeComponentAssertions.swift",
        "FixtureHarness/ShapeObjects/FixtureShapeControlAssertions.swift",
        "FixtureHarness/Streams/FixtureFileHeaderAssertions.swift",
        "FixtureHarness/Streams/FixtureFileHeaderFeatureAssertions.swift",
        "FixtureHarness/Streams/FixtureFileWrapperEntrypointTests.swift",
        "FixtureHarness/Streams/FixtureHeaderEntrypointTests.swift",
        "FixtureHarness/Streams/FixtureRawDocInfoScanner.swift",
        "FixtureHarness/Streams/FixtureRawDocInfoScannerStabilityTests.swift",
        "FixtureHarness/Streams/FixtureStreamAssertions.swift",
        "FixtureHarness/Streams/FixtureStreamFeatureAssertions.swift",
        "FixtureHarness/TableColumn/FixtureColumnAssertions.swift",
        "FixtureHarness/TableColumn/FixtureColumnFeatureGateTests.swift",
        "FixtureHarness/TableColumn/FixtureTableAssertions.swift",
        "FixtureHarness/TableColumn/FixtureTableFeatureAssertions.swift",
        "FixtureHarness/TableColumn/FixtureTableFeatureGateTests.swift",
        "FixtureLoader.swift",
        "FixtureManifestObjectFeatureAssertions.swift",
        "FixtureManifestSupport.swift",
        "FixtureManifestTests.swift",
        "FixtureObjectControlManifestSupport.swift",
        "FixturePageNumberPositionManifestSupport.swift",
        "FixtureSectionManifestSupport.swift",
        "Hwpx/HwpxArchiveFixture.swift",
        "Hwpx/HwpxArchiveLimitTests.swift",
        "Hwpx/HwpxArchiveTests.swift",
        "Hwpx/HwpxContainerTests.swift",
        "Hwpx/HwpxDocumentPartMapperTests.swift",
        "Hwpx/HwpxDuplicateDefinitionTests.swift",
        "Hwpx/HwpxFileTests.swift",
        "Hwpx/HwpxFootnoteMapperTests.swift",
        "Hwpx/HwpxFootnoteShapeMapperTests.swift",
        "Hwpx/HwpxHeaderDiagnosticsTests.swift",
        "Hwpx/HwpxHeaderFixture.swift",
        "Hwpx/HwpxHeaderFooterMapperTests.swift",
        "Hwpx/HwpxHeaderMapperTests.swift",
        "Hwpx/HwpxHeaderResolutionTests.swift",
        "Hwpx/HwpxHeadingLevelDiagnosticTests.swift",
        "Hwpx/HwpxLineTypeMapperTests.swift",
        "Hwpx/HwpxNumberingMapperTests.swift",
        "Hwpx/HwpxObjectFixture.swift",
        "Hwpx/HwpxObjectMapperTests.swift",
        "Hwpx/HwpxObjectPositionTests.swift",
        "Hwpx/HwpxOleMapperTests.swift",
        "Hwpx/HwpxPageNumberMapperTests.swift",
        "Hwpx/HwpxSecPrOutlineReferenceTests.swift",
        "Hwpx/HwpxSecPrVisibilityTests.swift",
        "Hwpx/HwpxSectionFixture.swift",
        "Hwpx/HwpxSectionInvariantTests.swift",
        "Hwpx/HwpxSectionMapperTests.swift",
        "Hwpx/HwpxSectionMarkMapperTests.swift",
        "Hwpx/HwpxXMLDoctypeTests.swift",
        "Hwpx/HwpxXMLTreeParserTests.swift",
        "Hwpx/ZipBuilder.swift",
        "LoadOptions/RawPayloadOptOutTests.swift",
        "LoadOptions/ViewerPayloadDecouplingTests.swift",
        "Models/Document/DocumentPropertiesRawPayloadTests.swift",
        "Models/Document/ParseDiagnosticsFallbackTests.swift",
        "Models/Document/ParseDiagnosticsRecoveryTests.swift",
        "Models/Document/ParseDiagnosticsTestSupport.swift",
        "Models/Document/ParseDiagnosticsTests.swift",
        "Models/Layout/CompatibleDocumentStabilityTests.swift",
        "Models/Layout/CompatibleDocumentTargetTests.swift",
        "Models/Layout/EquationEditStabilityTests.swift",
        "Models/Layout/LayoutCompatibilityStabilityTests.swift",
        "Noori/NooriDocInfoTests.swift",
        "Noori/NooriPreviewTests.swift",
        "Noori/NooriSectionTests.swift",
        "Performance/ParserPerformanceTests.swift",
        "Performance/SyntheticLargeDocumentBuilder.swift",
        "Section/Column/ColumnTests.swift",
        "Section/SectionDef/HwpSectionPageStartsOnTests.swift",
        "SectionRecordBuilder.swift",
        "Stability/Core/ArrayExtensionStabilityTests.swift",
        "Stability/Core/DataReaderStabilityTests.swift",
        "Stability/Core/LoaderProtocolStabilityTests.swift",
        "Stability/Core/ModelPrimitiveTests.swift",
        "Stability/Core/TrackChangeAuthorMalformedTests.swift",
        "Stability/Core/UnknownRecordTestSupport.swift",
        "Stability/Formats/NumberingMalformedStabilityTests.swift",
        "Stability/Formats/StyleMalformedStabilityTests.swift",
        "Stability/Formats/TablePropertyMalformedStabilityTests.swift",
        "Stability/Formats/WCHARStringStabilityTests.swift",
        "Stability/Paragraphs/ParaTextWcharCountTests.swift",
        "Stability/Paragraphs/ParagraphDataStabilityTests.swift",
        "Stability/Paragraphs/ParagraphMemoRecursionTests.swift",
        "Stability/Paragraphs/ParagraphPreservationTests.swift",
        "Stability/Paragraphs/ParagraphRecoveryPlaceholderTests.swift",
        "Stability/Paragraphs/ParagraphRequiredRecordStabilityTests.swift",
        "Stability/Paragraphs/SectionRecordTagValidationTests.swift",
        "Stability/Parsing/ControlFallbackErrorSetSpecTests.swift",
        "Stability/Parsing/MalformedPayloadStabilityTests.swift",
        "Stability/Parsing/ParserStabilityTestSupport.swift",
        "Stability/Parsing/ParserStabilityTests.swift",
        "Stability/Parsing/RecordDepthLimitTests.swift",
        "Stability/Parsing/RecordParserStabilityTests.swift",
        "Stability/Parsing/SectionNestedAdversarialTests.swift",
        "Stability/Parsing/UnsupportedFeaturePrecedenceTests.swift",
        "Streams/BinaryData/BinaryDataStorageNameTests.swift",
        "Streams/BinaryData/OptionalStreamStabilityTests.swift",
        "Streams/BinaryData/RequiredStreamPresenceStabilityTests.swift",
        "Streams/HwpDocInfoClassificationTests.swift",
        "Streams/Preview/PreviewStreamHwpMutationTests.swift",
        "Streams/Preview/PreviewStreamPrimitiveTests.swift",
        "Streams/Preview/SummaryStreamPresenceStabilityTests.swift",
        "Streams/Readers/HwpInflateTests.swift",
        "Streams/Readers/StreamDecompressionStabilityTests.swift",
        "Streams/Readers/StreamRawPayloadInitializerTests.swift",
        "Streams/Readers/StreamReaderTests.swift",
        "Utils.swift",
        "Utils/Core/ExcludeEquatableTests.swift",
        "Utils/Core/HwpEmbeddedChartMalformedTests.swift",
        "Utils/Core/HwpErrorTests.swift",
        "Utils/Core/HwpUtilTests.swift",
        "Utils/Project/ChangelogDocumentationTests.swift",
        "Utils/Project/CoverageWorkflowTests.swift",
        "Utils/Project/ErrataAuditDocumentationTests.swift",
        "Utils/Project/ReadmeSupportDocumentationTests.swift",
        "Utils/Project/SourceSafetyTests.swift",
        "Utils/Readers/BitsReaderTests.swift",
        "Utils/Readers/DataExtensionPrimitiveTests.swift",
        "Versions/VersionTests.swift"
      ],
      "target_dependencies" : [
        "CoreHwp"
      ],
      "type" : "test"
    },
    {
      "c99name" : "CoreHwp",
      "module_type" : "SwiftTarget",
      "name" : "CoreHwp",
      "path" : "Sources/CoreHwp",
      "product_dependencies" : [
        "OLEKit"
      ],
      "product_memberships" : [
        "CoreHwp",
        "HwpKitCore",
        "HwpKitNative",
        "HwpKit"
      ],
      "sources" : [
        "Enums/CtrlId/HwpCommonCtrlId.swift",
        "Enums/CtrlId/HwpCtrlId.swift",
        "Enums/CtrlId/HwpFieldCtrlId.swift",
        "Enums/CtrlId/HwpOtherCtrlId.swift",
        "Enums/HwpBorderType.swift",
        "Enums/HwpDocInfoTag.swift",
        "Enums/HwpSectionTag.swift",
        "Enums/HwpStreamName.swift",
        "HwpError.swift",
        "HwpFile.swift",
        "HwpLoadOptions.swift",
        "HwpReadLimits.swift",
        "Hwpx/Container/HwpxArchive.swift",
        "Hwpx/Container/HwpxContainer.swift",
        "Hwpx/HwpxBinDataMapper.swift",
        "Hwpx/HwpxDocumentAssembler.swift",
        "Hwpx/HwpxFormatDetection.swift",
        "Hwpx/HwpxPreviewMapper.swift",
        "Hwpx/Owpml/HwpxCharShapeMapper.swift",
        "Hwpx/Owpml/HwpxCompatibleDocumentMapper.swift",
        "Hwpx/Owpml/HwpxControlMapper.swift",
        "Hwpx/Owpml/HwpxFootnoteMapper.swift",
        "Hwpx/Owpml/HwpxFootnoteShapeMapper.swift",
        "Hwpx/Owpml/HwpxHeaderFooterMapper.swift",
        "Hwpx/Owpml/HwpxHeaderMapper.swift",
        "Hwpx/Owpml/HwpxIdTables.swift",
        "Hwpx/Owpml/HwpxLineTypeMapper.swift",
        "Hwpx/Owpml/HwpxManifest.swift",
        "Hwpx/Owpml/HwpxNumberFormatMapper.swift",
        "Hwpx/Owpml/HwpxNumberingMapper.swift",
        "Hwpx/Owpml/HwpxObjectCommonMapper.swift",
        "Hwpx/Owpml/HwpxOleMapper.swift",
        "Hwpx/Owpml/HwpxPageNumberMapper.swift",
        "Hwpx/Owpml/HwpxParaShapeMapper.swift",
        "Hwpx/Owpml/HwpxParagraphMapper.swift",
        "Hwpx/Owpml/HwpxPictureMapper.swift",
        "Hwpx/Owpml/HwpxSecPrMapper.swift",
        "Hwpx/Owpml/HwpxSectionMapper.swift",
        "Hwpx/Owpml/HwpxSectionMarkMapper.swift",
        "Hwpx/Owpml/HwpxTableMapper.swift",
        "Hwpx/Owpml/HwpxVersionMapper.swift",
        "Hwpx/Xml/HwpxXMLNode.swift",
        "Hwpx/Xml/HwpxXMLTreeParser.swift",
        "Hwpx/Xml/HwpxXMLValues.swift",
        "Models/DocInfo/CompatibleDocument/HwpCompatibleDocument.swift",
        "Models/DocInfo/CompatibleDocument/HwpCompatibleDocumentTarget.swift",
        "Models/DocInfo/CompatibleDocument/HwpLayoutCompatibility.swift",
        "Models/DocInfo/HwpDocInfoRawRecords.swift",
        "Models/DocInfo/HwpIdMappings.swift",
        "Models/DocInfo/IdMappings/BinData/HwpBinData.swift",
        "Models/DocInfo/IdMappings/BinData/HwpBinDataProperty.swift",
        "Models/DocInfo/IdMappings/CharShape/HwpCharShape.swift",
        "Models/DocInfo/IdMappings/CharShape/HwpCharShapeProperty.swift",
        "Models/DocInfo/IdMappings/HwpBorderFill.swift",
        "Models/DocInfo/IdMappings/HwpBullet.swift",
        "Models/DocInfo/IdMappings/HwpFaceName.swift",
        "Models/DocInfo/IdMappings/HwpForbiddenChar.swift",
        "Models/DocInfo/IdMappings/HwpNumbering.swift",
        "Models/DocInfo/IdMappings/HwpNumberingFormat.swift",
        "Models/DocInfo/IdMappings/HwpNumberingFormatPattern.swift",
        "Models/DocInfo/IdMappings/HwpParaHeadInfo.swift",
        "Models/DocInfo/IdMappings/HwpParaShape.swift",
        "Models/DocInfo/IdMappings/HwpParaShapeProperty1.swift",
        "Models/DocInfo/IdMappings/HwpStyle.swift",
        "Models/DocInfo/IdMappings/HwpTabDef.swift",
        "Models/DocInfo/IdMappings/HwpTabInfo.swift",
        "Models/DocumentProperties/HwpCaratLocation.swift",
        "Models/DocumentProperties/HwpDocumentProperties.swift",
        "Models/DocumentProperties/HwpStartingIndex.swift",
        "Models/FileHeader/HwpFileLicense.swift",
        "Models/FileHeader/HwpFileProperty.swift",
        "Models/HwpParseDiagnostic.swift",
        "Models/HwpVersion.swift",
        "Models/Section/CtrlHeader/Column/HwpColumn.swift",
        "Models/Section/CtrlHeader/Column/HwpColumnProperty.swift",
        "Models/Section/CtrlHeader/Field/HwpFieldControl.swift",
        "Models/Section/CtrlHeader/Field/HwpFieldControlParsing.swift",
        "Models/Section/CtrlHeader/Field/HwpFieldControlProperty.swift",
        "Models/Section/CtrlHeader/Field/HwpHyperlink.swift",
        "Models/Section/CtrlHeader/HwpCommonCtrlProperty.swift",
        "Models/Section/CtrlHeader/HwpCommonCtrlPropertyInfo.swift",
        "Models/Section/CtrlHeader/HwpCtrlData.swift",
        "Models/Section/CtrlHeader/HwpCtrlDataParameterSet.swift",
        "Models/Section/CtrlHeader/HwpGenShapeObject.swift",
        "Models/Section/CtrlHeader/HwpPageNumberPosition.swift",
        "Models/Section/CtrlHeader/HwpPageNumberPositionProperty.swift",
        "Models/Section/CtrlHeader/List/HwpHeaderFooterProperty.swift",
        "Models/Section/CtrlHeader/List/HwpListControl.swift",
        "Models/Section/CtrlHeader/List/HwpTextBoxListInfo.swift",
        "Models/Section/CtrlHeader/Other/HwpOtherControl.swift",
        "Models/Section/CtrlHeader/SectionDef/HwpFootnoteDividerInfo.swift",
        "Models/Section/CtrlHeader/SectionDef/HwpFootnoteShape.swift",
        "Models/Section/CtrlHeader/SectionDef/HwpPageBorderFill.swift",
        "Models/Section/CtrlHeader/SectionDef/HwpPageDef.swift",
        "Models/Section/CtrlHeader/SectionDef/HwpSectionDef.swift",
        "Models/Section/CtrlHeader/SectionDef/HwpSectionDefProperty.swift",
        "Models/Section/CtrlHeader/SectionDef/HwpSectionPageStartsOn.swift",
        "Models/Section/CtrlHeader/Shape/HwpPictureProperty.swift",
        "Models/Section/CtrlHeader/Shape/HwpShapeComponent.swift",
        "Models/Section/CtrlHeader/Shape/HwpShapeComponentDetail.swift",
        "Models/Section/CtrlHeader/Shape/HwpShapeControl.swift",
        "Models/Section/CtrlHeader/Table/HwpTable.swift",
        "Models/Section/CtrlHeader/Table/HwpTableCellHeaderProperty.swift",
        "Models/Section/CtrlHeader/Table/HwpTableCellProperty.swift",
        "Models/Section/CtrlHeader/Table/HwpTableProperty.swift",
        "Models/Section/CtrlHeader/Table/HwpZoneProperty.swift",
        "Models/Section/HwpChar.swift",
        "Models/Section/HwpCtrlHeader.swift",
        "Models/Section/HwpListHeader.swift",
        "Models/Section/HwpListHeaderProperty.swift",
        "Models/Section/HwpParaCharShape.swift",
        "Models/Section/HwpParaHeader.swift",
        "Models/Section/HwpParaLineSeg.swift",
        "Models/Section/HwpParaLineSegInternal.swift",
        "Models/Section/HwpParaRangeTag.swift",
        "Models/Section/HwpParaText.swift",
        "Models/Section/HwpParagraph.swift",
        "Streams/HwpBinaryData.swift",
        "Streams/HwpDocInfo.swift",
        "Streams/HwpFileHeader.swift",
        "Streams/HwpPreviewImage.swift",
        "Streams/HwpPreviewText.swift",
        "Streams/HwpSection.swift",
        "Streams/HwpSummary.swift",
        "Utils/ExcludeEquatable.swift",
        "Utils/Extensions/Array+Extension.swift",
        "Utils/Extensions/BinaryInteger+Extension.swift",
        "Utils/Extensions/Data+Extension.swift",
        "Utils/Extensions/StringProtocol+Extension.swift",
        "Utils/Extensions/WCHAR+Extension.swift",
        "Utils/FileWrapperCompat.swift",
        "Utils/HwpColor.swift",
        "Utils/HwpEmbeddedChart.swift",
        "Utils/HwpOLEFileLoader.swift",
        "Utils/HwpRecord.swift",
        "Utils/Protocols/HwpFromData.swift",
        "Utils/Protocols/HwpFromDataWithVersion.swift",
        "Utils/Protocols/HwpFromRecord.swift",
        "Utils/Protocols/HwpFromRecordWithVersion.swift",
        "Utils/Protocols/HwpFromUInt.swift",
        "Utils/Protocols/HwpPrimitive.swift",
        "Utils/Protocols/HwpTagValidatedRecord.swift",
        "Utils/Readers/BitsReader.swift",
        "Utils/Readers/DataReader.swift",
        "Utils/Readers/HwpInflate.swift",
        "Utils/Readers/StreamReader.swift",
        "Utils/Type.swift"
      ],
      "target_dependencies" : [
        "CHwpZlib"
      ],
      "type" : "library"
    },
    {
      "c99name" : "CHwpZlib",
      "module_type" : "SystemLibraryTarget",
      "name" : "CHwpZlib",
      "path" : "Sources/CHwpZlib",
      "product_memberships" : [
        "CoreHwp",
        "HwpKitCore",
        "HwpKitNative",
        "HwpKit"
      ],
      "sources" : [
      ],
      "type" : "system-target"
    }
  ],
  "tools_version" : "5.9"
}
Done.