dba5170bd4cf5575501badefc471b92d bioinformatics_a2024m11v40n11.pdf c8decadb426b35bc773a2b2e782b6c70239ebcb1 bioinformatics_a2024m11v40n11.pdf 6c23efc7d48a7e993385e3a2d854e7191a4ff32dd7081a91d600f808259c1762 bioinformatics_a2024m11v40n11.pdf Title: BIMSA: accelerating long sequence alignment using processing-in-memory Subject: Doi: 10.1093/bioinformatics/btae631 Bioinformatics, 40, 11, 2024 Publication Date: 21/10/2024 Abstract Motivation Recent advances in sequencing technologies have stressed the critical role of sequence analysis algorithms and tools in genomics and healthcare research. In particular, sequence alignment is a fundamental building block in many sequence analysis pipelines and is frequently a performance bottleneck both in terms of execution time and memory usage. Classical sequence alignment algorithms are based on dynamic programming and often require quadratic time and memory with respect to the sequence length. As a result, classical sequence alignment algorithms fail to scale with increasing sequence lengths and quickly become memory-bound due to data-movement penalties.Results Processing-In-Memory (PIM) is an emerging architectural paradigm that seeks to accelerate memory-bound algorithms by bringing computation closer to the data to mitigate data-movement penalties. This work presents BIMSA (Bidirectional In-Memory Sequence Alignment), a PIM design and implementation for the state-of-the-art sequence alignment algorithm BiWFA (Bidirectional Wavefront Alignment), incorporating new hardware-aware optimizations for a production-ready PIM architecture (UPMEM). BIMSA supports aligning sequences up to 100K bases, exceeding the limitations of state-of-the-art PIM implementations. First, BIMSA achieves speedups up to 22.24× (11.95× on average) compared to state-of-the-art PIM-enabled implementations of sequence alignment algorithms. Second, achieves speedups up to 5.84× (2.83× on average) compared to the highest-performance multicore CPU implementation of BiWFA. Third, BIMSA exhibits linear scalability with the number of compute units in memory, enabling further performance improvements with upcoming PIM architectures equipped with more compute units and achieving speedups up to 9.56× (4.7× on average).Availability and implementation Code and documentation are publicly available at https://github.com/AlejandroAMarin/BIMSA. Creator: Servigistics Arbortext Advanced Print Publisher 11.1.4667/W Producer: PDFlib+PDI 9.0.7p3 (C++/Win32); modified using iTextSharp.LGPLv2.Core 3.7.4.0 CreationDate: Wed Nov 13 13:54:45 2024 CET ModDate: Tue Sep 23 11:53:35 2025 CEST Custom Metadata: yes Metadata Stream: yes Tagged: yes UserProperties: no Suspects: no Form: none JavaScript: no Pages: 10 Encrypted: no Page size: 612 x 792 pts (letter) Page rot: 0 File size: 1535053 bytes Optimized: no PDF version: 1.5 name type encoding emb sub uni object ID ------------------------------------ ----------------- ---------------- --- --- --- --------- SKLDNS+UniversLTStd-Cn Type 1C Custom yes yes yes 1011 0 TUMNHQ+UniversLTStd-Bold Type 1C Custom yes yes yes 26 0 TeX_CM_Roman Type 1 Builtin yes no yes 27 0 TeX_CM_Maths_Symbols Type 1 Builtin yes no yes 28 0 USAJFC+UniversLTStd-Light Type 1C Custom yes yes yes 81 0 DIDDFC+STIXTwoMath-Regular CID TrueType Identity-H yes yes yes 29 0 KWRDVQ+SabonLTPro-Roman Type 1C Custom yes yes yes 30 0 OBGYIM+SabonLTPro-Italic Type 1C Custom yes yes yes 31 0 EDYONS+SabonLTPro-Bold Type 1C Custom yes yes yes 32 0 ERQRSC+STIX-Regular Type 1C Custom yes yes yes 214 0 SFGEKO+UniversLTStd-CnObl Type 1C Custom yes yes yes 1012 0 QTIIVD+UniversLTStd-BoldCn Type 1C Custom yes yes yes 1013 0 IDXAXZ+ArialMT TrueType WinAnsi yes yes no 1 0 SDBGNP+UniversLTStd Type 1C Custom yes yes yes 33 0 TeX_CM_Maths_Italic Type 1 Builtin yes no yes 34 0 JFXJLN+STIX-Italic Type 1C Custom yes yes yes 35 0 TeX_CM_Maths_Extension Type 1 Builtin yes no yes 36 0 CNRXPH+UniversLTStd-Obl Type 1C Custom yes yes yes 37 0 ISSCAR+CourierStd Type 1C Custom yes yes yes 82 0 ZapfDingbats Type 1 Builtin yes no yes 83 0 VITZHQ+UniversLTStd-LightObl Type 1C Custom yes yes yes 114 0 JARGTM+Arial-BoldMT Type 1 Custom yes yes no 123 0 Jhove (Rel. 1.28.0, 2023-05-18) Date: 2025-09-24 03:50:39 CEST RepresentationInformation: bioinformatics_a2024m11v40n11.pdf ReportingModule: PDF-hul, Rel. 1.12.4 (2023-03-16) LastModified: 2025-09-23 11:54:24 CEST Size: 1535053 Format: PDF Version: 1.5 Status: Well-Formed and valid SignatureMatches: PDF-hul MIMEtype: application/pdf Profile: Tagged PDF PDFMetadata: Objects: 1083 FreeObjects: 1 IncrementalUpdates: 0 DocumentCatalog: ViewerPreferences: HideToolbar: false HideMenubar: false HideWindowUI: false FitWindow: false CenterWindow: false DisplayDocTitle: true NonFullScreenPageMode: UseNone Direction: L2R ViewArea: CropBox ViewClip: CropBox PrintArea: CropBox PageClip: CropBox PageLayout: SinglePage PageMode: UseOutlines Language: en Outlines: Item: Title: Active Content List Destination: mkchap_artid Children: Item: Title: 1 Introduction Destination: mkchap4__sec Item: Title: 2 Background and motivation Destination: mkchap5__sec Item: Title: 3 Methods Destination: mkchap10__sec Item: Title: 4 Results Destination: mkchap22__sec Item: Title: 5 Discussion Destination: mkchap26__sec Item: Title: Acknowledgements Destination: mkchap30_ack1_ack Item: Title: Supplementary data Destination: mkchap30__sec Item: Title: Funding Destination: mkchap31__sec Item: Title: Data availability Destination: mkchap32__sec Item: Title: References Destination: mkchap33_ref1_ref-list Info: Title: BIMSA: accelerating long sequence alignment using processing-in-memory Subject: Doi: 10.1093/bioinformatics/btae631 Bioinformatics, 40, 11, 2024 Publication Date: 21/10/2024 Abstract Motivation Recent advances in sequencing technologies have stressed the critical role of sequence analysis algorithms and tools in genomics and healthcare research. In particular, sequence alignment is a fundamental building block in many sequence analysis pipelines and is frequently a performance bottleneck both in terms of execution time and memory usage. Classical sequence alignment algorithms are based on dynamic programming and often require quadratic time and memory with respect to the sequence length. As a result, classical sequence alignment algorithms fail to scale with increasing sequence lengths and quickly become memory-bound due to data-movement penalties.Results Processing-In-Memory (PIM) is an emerging architectural paradigm that seeks to accelerate memory-bound algorithms by bringing computation closer to the data to mitigate data-movement penalties. This work presents BIMSA (Bidirectional In-Memory Sequence Alignment), a PIM design and implementation for the state-of-the-art sequence alignment algorithm BiWFA (Bidirectional Wavefront Alignment), incorporating new hardware-aware optimizations for a production-ready PIM architecture (UPMEM). BIMSA supports aligning sequences up to 100K bases, exceeding the limitations of state-of-the-art PIM implementations. First, BIMSA achieves speedups up to 22.24× (11.95× on average) compared to state-of-the-art PIM-enabled implementations of sequence alignment algorithms. Second, achieves speedups up to 5.84× (2.83× on average) compared to the highest-performance multicore CPU implementation of BiWFA. Third, BIMSA exhibits linear scalability with the number of compute units in memory, enabling further performance improvements with upcoming PIM architectures equipped with more compute units and achieving speedups up to 9.56× (4.7× on average).Availability and implementation Code and documentation are publicly available at https://github.com/AlejandroAMarin/BIMSA. Creator: Servigistics Arbortext Advanced Print Publisher 11.1.4667/W Producer: PDFlib+PDI 9.0.7p3 (C++/Win32); modified using iTextSharp.LGPLv2.Core 3.7.4.0 CreationDate: Wed Nov 13 14:24:45 CET 2024 ModDate: Tue Sep 23 11:53:35 CEST 2025 ID: 0x428682687005925baa9539264924aa72, 0x44d8c29735ebb32ed9ab0661fd64d73c Filters: FilterPipeline: FlateDecode FilterPipeline: DCTDecode Images: Image: NisoImageMetadata: FormatName: image/jpg CompressionScheme: JPEG ImageWidth: 2000 ImageHeight: 2261 ColorSpace: RGB BitsPerSample: 8 BitsPerSampleUnit: integer Fonts: Type0: Font: BaseFont: DIDDFC+STIXTwoMath-Regular Encoding: Identity-H ToUnicode: true Type1: Font: BaseFont: EDYONS+SabonLTPro-Bold FontSubset: true FirstChar: 1 LastChar: 54 FontDescriptor: FontName: EDYONS+SabonLTPro-Bold Flags: Nonsymbolic, ForceBold FontBBox: -163, -228, 1000, 977 FontFile3: true EncodingDictionary: BaseEncoding: WinAnsiEncoding Differences: true ToUnicode: true Font: BaseFont: SDBGNP+UniversLTStd FontSubset: true FirstChar: 1 LastChar: 46 FontDescriptor: FontName: SDBGNP+UniversLTStd Flags: Nonsymbolic FontBBox: -168, -250, 992, 947 FontFile3: true EncodingDictionary: BaseEncoding: WinAnsiEncoding Differences: true ToUnicode: true Font: BaseFont: TeX_CM_Maths_Italic FirstChar: 1 LastChar: 127 FontDescriptor: FontName: TeX_CM_Maths_Italic Flags: Symbolic FontBBox: -50, -180, 1000, 720 FontFile: true ToUnicode: true Font: BaseFont: JFXJLN+STIX-Italic FontSubset: true FirstChar: 1 LastChar: 1 FontDescriptor: FontName: JFXJLN+STIX-Italic Flags: Nonsymbolic, Italic FontBBox: -970, -305, 1429, 1023 FontFile3: true EncodingDictionary: BaseEncoding: WinAnsiEncoding Differences: true ToUnicode: true Font: BaseFont: TeX_CM_Maths_Extension FirstChar: 1 LastChar: 150 FontDescriptor: FontName: TeX_CM_Maths_Extension Flags: Symbolic FontBBox: -50, -180, 1000, 720 FontFile: true ToUnicode: true Font: BaseFont: CNRXPH+UniversLTStd-Obl FontSubset: true FirstChar: 1 LastChar: 6 FontDescriptor: FontName: CNRXPH+UniversLTStd-Obl Flags: Nonsymbolic, Italic FontBBox: -174, -272, 1145, 947 FontFile3: true EncodingDictionary: BaseEncoding: WinAnsiEncoding Differences: true ToUnicode: true Font: BaseFont: USAJFC+UniversLTStd-Light FontSubset: true FirstChar: 1 LastChar: 65 FontDescriptor: FontName: USAJFC+UniversLTStd-Light Flags: Nonsymbolic FontBBox: -151, -250, 1000, 957 FontFile3: true EncodingDictionary: BaseEncoding: WinAnsiEncoding Differences: true ToUnicode: true Font: BaseFont: ISSCAR+CourierStd FontSubset: true FirstChar: 23 LastChar: 23 FontDescriptor: FontName: ISSCAR+CourierStd Flags: FixedPitch, Nonsymbolic FontBBox: -56, -250, 678, 857 FontFile3: true EncodingDictionary: BaseEncoding: WinAnsiEncoding Differences: true ToUnicode: true Font: BaseFont: VITZHQ+UniversLTStd-LightObl FontSubset: true FirstChar: 1 LastChar: 6 FontDescriptor: FontName: VITZHQ+UniversLTStd-LightObl Flags: Nonsymbolic, Italic FontBBox: -151, -274, 1144, 957 FontFile3: true EncodingDictionary: BaseEncoding: WinAnsiEncoding Differences: true ToUnicode: true Font: BaseFont: SKLDNS+UniversLTStd-Cn FontSubset: true FirstChar: 1 LastChar: 61 FontDescriptor: FontName: SKLDNS+UniversLTStd-Cn Flags: Nonsymbolic FontBBox: -166, -250, 1000, 989 FontFile3: true EncodingDictionary: BaseEncoding: WinAnsiEncoding Differences: true ToUnicode: true Font: BaseFont: ZapfDingbats FirstChar: 32 LastChar: 254 FontDescriptor: FontName: ZapfDingbats Flags: Symbolic FontBBox: -50, -180, 1000, 720 FontFile: true ToUnicode: true Font: BaseFont: SFGEKO+UniversLTStd-CnObl FontSubset: true FirstChar: 1 LastChar: 11 FontDescriptor: FontName: SFGEKO+UniversLTStd-CnObl Flags: Nonsymbolic, Italic FontBBox: -172, -270, 1064, 989 FontFile3: true EncodingDictionary: BaseEncoding: WinAnsiEncoding Differences: true ToUnicode: true Font: BaseFont: QTIIVD+UniversLTStd-BoldCn FontSubset: true FirstChar: 1 LastChar: 14 FontDescriptor: FontName: QTIIVD+UniversLTStd-BoldCn Flags: Nonsymbolic, ForceBold FontBBox: -83, -250, 1000, 969 FontFile3: true EncodingDictionary: BaseEncoding: WinAnsiEncoding Differences: true ToUnicode: true Font: BaseFont: ERQRSC+STIX-Regular FontSubset: true FirstChar: 1 LastChar: 1 FontDescriptor: FontName: ERQRSC+STIX-Regular Flags: Nonsymbolic FontBBox: -970, -486, 2208, 1023 FontFile3: true EncodingDictionary: BaseEncoding: WinAnsiEncoding Differences: true ToUnicode: true Font: BaseFont: TUMNHQ+UniversLTStd-Bold FontSubset: true FirstChar: 1 LastChar: 56 FontDescriptor: FontName: TUMNHQ+UniversLTStd-Bold Flags: Nonsymbolic, ForceBold FontBBox: -167, -250, 995, 938 FontFile3: true EncodingDictionary: BaseEncoding: WinAnsiEncoding Differences: true ToUnicode: true Font: BaseFont: TeX_CM_Roman FirstChar: 1 LastChar: 127 FontDescriptor: FontName: TeX_CM_Roman Flags: Symbolic FontBBox: -50, -180, 1000, 720 FontFile: true ToUnicode: true Font: BaseFont: TeX_CM_Maths_Symbols FirstChar: 1 LastChar: 138 FontDescriptor: FontName: TeX_CM_Maths_Symbols Flags: Symbolic FontBBox: -50, -180, 1000, 720 FontFile: true ToUnicode: true Font: BaseFont: KWRDVQ+SabonLTPro-Roman FontSubset: true FirstChar: 1 LastChar: 78 FontDescriptor: FontName: KWRDVQ+SabonLTPro-Roman Flags: Nonsymbolic FontBBox: -165, -228, 1000, 976 FontFile3: true EncodingDictionary: BaseEncoding: WinAnsiEncoding Differences: true ToUnicode: true Font: BaseFont: OBGYIM+SabonLTPro-Italic FontSubset: true FirstChar: 1 LastChar: 66 FontDescriptor: FontName: OBGYIM+SabonLTPro-Italic Flags: Nonsymbolic, Italic FontBBox: -146, -229, 1059, 977 FontFile3: true EncodingDictionary: BaseEncoding: WinAnsiEncoding Differences: true ToUnicode: true TrueType: Font: BaseFont: IDXAXZ+ArialMT FontSubset: true FirstChar: 32 LastChar: 121 FontDescriptor: FontName: IDXAXZ+ArialMT Flags: Nonsymbolic FontBBox: -664, -324, 2000, 1039 FontFile2: true Encoding: WinAnsiEncoding CIDFontType2: Font: BaseFont: DIDDFC+STIXTwoMath-Regular CIDSystemInfo: Registry: Adobe Registry: Identity Supplement: 0 FontDescriptor: FontName: DIDDFC+STIXTwoMath-Regular Flags: Nonsymbolic FontBBox: -978, -1641, 3072, 2627 FontFile2: true XMP: uuid:14a3f008-cfc4-2acc-52e8-449441e8d68f uuid:E33AD58B-8E28-96A0-1133-A3447F19F486 2024-11-13T18:24:45+05:30 2025-09-23T09:53:35+00:00 Servigistics Arbortext Advanced Print Publisher 11.1.4667/W 2025-09-23T09:53:35+00:00 PDFlib+PDI 9.0.7p3 (C++/Win32); modified using iTextSharp.LGPLv2.Core 3.7.4.0 BIMSA: accelerating long sequence alignment using processing-in-memory Alejandro Alonso-Marín Ivan Fernandez Quim Aguado-Puig Juan Gómez-Luna Santiago Marco-Sola Onur Mutlu Miquel Moreto Doi: 10.1093/bioinformatics/btae631 Bioinformatics, 40, 11, 2024 Publication Date: 21/10/2024 Abstract Motivation Recent advances in sequencing technologies have stressed the critical role of sequence analysis algorithms and tools in genomics and healthcare research. In particular, sequence alignment is a fundamental building block in many sequence analysis pipelines and is frequently a performance bottleneck both in terms of execution time and memory usage. Classical sequence alignment algorithms are based on dynamic programming and often require quadratic time and memory with respect to the sequence length. As a result, classical sequence alignment algorithms fail to scale with increasing sequence lengths and quickly become memory-bound due to data-movement penalties.Results Processing-In-Memory (PIM) is an emerging architectural paradigm that seeks to accelerate memory-bound algorithms by bringing computation closer to the data to mitigate data-movement penalties. This work presents BIMSA (Bidirectional In-Memory Sequence Alignment), a PIM design and implementation for the state-of-the-art sequence alignment algorithm BiWFA (Bidirectional Wavefront Alignment), incorporating new hardware-aware optimizations for a production-ready PIM architecture (UPMEM). BIMSA supports aligning sequences up to 100K bases, exceeding the limitations of state-of-the-art PIM implementations. First, BIMSA achieves speedups up to 22.24× (11.95× on average) compared to state-of-the-art PIM-enabled implementations of sequence alignment algorithms. Second, achieves speedups up to 5.84× (2.83× on average) compared to the highest-performance multicore CPU implementation of BiWFA. Third, BIMSA exhibits linear scalability with the number of compute units in memory, enabling further performance improvements with upcoming PIM architectures equipped with more compute units and achieving speedups up to 9.56× (4.7× on average).Availability and implementation Code and documentation are publicly available at https://github.com/AlejandroAMarin/BIMSA. © The Author(s) 2024. Published by Oxford University Press. application/pdf PStill version 1.84.42 True 3 A http://ns.adobe.com/pdf/1.3/ pdf Adobe PDF Schema internal A name object indicating whether the document has been modified to include trapping information Trapped Text http://ns.adobe.com/xap/1.0/mm/ xmpMM XMP Media Management Schema internal UUID based identifier for specific incarnation of a document InstanceID URI internal The common identifier for all versions and renditions of a document. OriginalDocumentID URI http://www.aiim.org/pdfa/ns/id/ pdfaid PDF/A ID Schema internal Part of PDF/A standard part Integer internal Amendment of PDF/A standard amd Text internal Conformance level of PDF/A standard conformance Text Pages: Page: Sequence: 1 Annotations: Annotation: Subtype: Link Rect: 183, 595, 193, 605 Flags: Print Annotation: Subtype: Link Rect: 193, 593, 197, 604 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 199, 593, 204, 604 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 206, 593, 211, 604 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 213, 593, 219, 604 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 303, 593, 308, 604 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 310, 593, 315, 604 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 422, 595, 432, 605 Flags: Print Annotation: Subtype: Link Rect: 432, 593, 437, 604 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 439, 593, 443, 604 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 446, 593, 450, 604 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 551, 593, 555, 604 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 168, 580, 178, 590 Flags: Print Annotation: Subtype: Link Rect: 178, 578, 183, 589 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 185, 578, 189, 589 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 255, 578, 260, 589 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 342, 578, 347, 589 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 349, 578, 354, 589 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 354, 308, 508, 316 Flags: Print Annotation: Subtype: Link Rect: 161, 239, 234, 248 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 242, 239, 299, 248 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 56, 228, 76, 237 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 82, 228, 145, 237 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 219, 206, 297, 215 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 304, 206, 304, 215 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 56, 195, 107, 204 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 201, 173, 299, 182 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 56, 162, 76, 171 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 174, 162, 267, 171 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 274, 162, 299, 171 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 56, 151, 76, 160 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 476, 277, 542, 286 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 337, 243, 428, 252 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 448, 232, 543, 241 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 469, 153, 540, 162 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 320, 96, 397, 105 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 404, 96, 451, 105 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 458, 96, 558, 105 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 565, 96, 565, 105 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 317, 84, 409, 94 Flags: Print Destination: 213 Page: Sequence: 2 Annotations: Annotation: Subtype: Link Rect: 54, 729, 158, 738 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 165, 729, 186, 738 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 193, 729, 288, 738 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 240, 718, 294, 727 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 51, 707, 76, 716 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 83, 707, 109, 716 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 91, 695, 163, 705 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 168, 695, 239, 705 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 102, 662, 196, 671 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 116, 562, 162, 571 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 167, 562, 212, 571 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 217, 562, 291, 571 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 294, 562, 294, 571 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 51, 551, 56, 560 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 62, 551, 136, 560 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 142, 551, 216, 560 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 165, 495, 265, 505 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 271, 495, 291, 505 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 297, 495, 297, 505 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 51, 484, 110, 493 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 180, 417, 258, 427 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 223, 229, 294, 238 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 64, 217, 85, 227 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 147, 217, 242, 227 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 120, 184, 184, 193 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 67, 62, 161, 71 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 370, 684, 461, 693 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 315, 534, 436, 543 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 426, 478, 476, 487 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 424, 405, 523, 414 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 381, 271, 431, 280 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 332, 164, 381, 173 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 442, 73, 512, 83 Flags: Print Destination: 176 Page: Sequence: 3 Annotations: Annotation: Subtype: Link Rect: 102, 729, 198, 738 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 101, 585, 202, 594 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 172, 541, 217, 550 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 247, 541, 299, 550 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 56, 530, 102, 539 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 59, 507, 102, 517 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 65, 452, 100, 461 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 83, 341, 113, 351 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 235, 220, 266, 229 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 501, 588, 560, 597 Flags: Print Annotation: Subtype: Link Rect: 317, 577, 359, 586 Flags: Print Annotation: Subtype: Link Rect: 468, 317, 538, 326 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 320, 261, 368, 270 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 374, 261, 420, 270 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 455, 239, 558, 248 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 565, 239, 565, 248 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 317, 228, 338, 237 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 438, 228, 514, 237 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 521, 228, 560, 237 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 317, 217, 338, 226 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 432, 217, 490, 226 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 320, 206, 378, 215 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 481, 206, 540, 215 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 358, 162, 392, 171 Flags: Print Destination: 113 Page: Sequence: 4 Annotations: Annotation: Subtype: Link Rect: 346, 536, 450, 545 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 458, 536, 478, 545 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 486, 536, 555, 545 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 312, 525, 332, 534 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 510, 62, 555, 71 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 312, 51, 332, 60 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 294, 586, 294, 593 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 51, 577, 133, 584 Flags: Print Destination: 213 Page: Sequence: 5 Annotations: Annotation: Subtype: Link Rect: 187, 718, 252, 727 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 424, 693, 518, 703 Flags: Print Destination: 213 Page: Sequence: 6 Annotations: Annotation: Subtype: Link Rect: 264, 284, 294, 294 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 51, 273, 114, 283 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 54, 162, 154, 171 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 274, 162, 294, 171 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 51, 151, 95, 160 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 312, 662, 346, 671 Flags: Print Destination: 142 Annotation: Subtype: Link Rect: 369, 451, 473, 461 Flags: Print Page: Sequence: 7 Annotations: Annotation: Subtype: Link Rect: 148, 581, 170, 590 Flags: Print Destination: 154 Annotation: Subtype: Link Rect: 65, 547, 97, 557 Flags: Print Destination: 171 Annotation: Subtype: Link Rect: 161, 536, 185, 545 Flags: Print Destination: 142 Annotation: Subtype: Link Rect: 76, 313, 98, 322 Flags: Print Destination: 154 Annotation: Subtype: Link Rect: 67, 301, 91, 311 Flags: Print Destination: 142 Annotation: Subtype: Link Rect: 249, 256, 273, 265 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 126, 211, 149, 220 Flags: Print Destination: 171 Annotation: Subtype: Link Rect: 170, 200, 193, 209 Flags: Print Destination: 154 Annotation: Subtype: Link Rect: 421, 568, 518, 577 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 317, 359, 348, 368 Flags: Print Destination: 171 Annotation: Subtype: Link Rect: 374, 150, 479, 159 Flags: Print Page: Sequence: 8 Page: Sequence: 9 Annotations: Annotation: Subtype: Link Rect: 73, 383, 133, 392 Flags: Print Destination: 213 Annotation: Subtype: Link Rect: 317, 714, 396, 723 Flags: Print Annotation: Subtype: Link Rect: 317, 348, 560, 356 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 329, 337, 560, 345 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 329, 327, 392, 335 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 317, 317, 560, 325 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 329, 306, 510, 314 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 317, 297, 560, 305 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 329, 286, 528, 294 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 317, 276, 560, 284 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 329, 266, 560, 274 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 329, 255, 491, 263 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 317, 245, 560, 253 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 329, 235, 560, 243 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 329, 225, 560, 233 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 329, 214, 402, 222 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 317, 204, 560, 212 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 329, 194, 560, 202 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 329, 183, 450, 191 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 317, 173, 560, 181 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 329, 163, 510, 171 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 317, 153, 560, 161 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 329, 143, 560, 151 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 329, 132, 430, 140 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 317, 122, 560, 130 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 329, 112, 560, 120 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 329, 102, 560, 110 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 329, 91, 442, 99 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 317, 81, 560, 89 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 329, 71, 501, 79 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 317, 61, 560, 69 Flags: Print Destination: 113 Annotation: Subtype: Link Rect: 329, 50, 560, 58 Flags: Print Destination: 113 Annotation: Subtype: Link Rect: 329, 40, 517, 48 Flags: Print Destination: 113 Page: Sequence: 10 Annotations: Annotation: Subtype: Link Rect: 51, 730, 294, 738 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 62, 720, 294, 728 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 62, 710, 294, 718 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 62, 699, 237, 707 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 51, 690, 294, 697 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 62, 679, 112, 687 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 51, 669, 294, 677 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 62, 659, 294, 667 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 62, 649, 230, 657 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 51, 639, 294, 647 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 62, 629, 294, 637 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 62, 618, 294, 626 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 62, 608, 217, 616 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 51, 598, 294, 606 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 62, 588, 294, 596 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 62, 578, 294, 586 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 62, 567, 197, 575 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 51, 557, 294, 565 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 62, 547, 294, 555 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 62, 537, 294, 545 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 62, 527, 163, 535 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 51, 517, 294, 525 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 62, 506, 294, 514 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 62, 496, 148, 504 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 51, 486, 181, 494 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 187, 486, 294, 494 Flags: Print Annotation: Subtype: Link Rect: 62, 476, 292, 484 Flags: Print Annotation: Subtype: Link Rect: 62, 466, 199, 474 Flags: Print Annotation: Subtype: Link Rect: 51, 445, 294, 453 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 62, 435, 80, 443 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 51, 425, 294, 433 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 62, 415, 292, 423 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 51, 395, 294, 403 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 62, 384, 294, 392 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 62, 374, 294, 382 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 62, 364, 294, 372 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 62, 354, 204, 362 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 51, 344, 294, 352 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 62, 333, 294, 341 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 62, 323, 294, 331 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 62, 313, 244, 321 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 51, 303, 294, 311 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 62, 293, 294, 301 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 62, 283, 294, 290 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 62, 272, 294, 280 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 62, 262, 154, 270 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 312, 730, 555, 738 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 324, 720, 521, 728 Flags: Print Destination: 176 Annotation: Subtype: Link Rect: 312, 700, 555, 708 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 324, 690, 553, 698 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 312, 670, 555, 678 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 324, 660, 478, 668 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 312, 651, 555, 658 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 324, 641, 555, 649 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 324, 631, 539, 639 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 312, 621, 555, 629 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 324, 611, 555, 619 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 324, 601, 346, 609 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 312, 591, 555, 599 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 324, 581, 555, 589 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 324, 571, 490, 579 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 312, 561, 555, 569 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 324, 551, 555, 559 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 324, 541, 357, 549 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 312, 531, 428, 539 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 433, 531, 555, 539 Flags: Print Annotation: Subtype: Link Rect: 324, 521, 398, 529 Flags: Print Annotation: Subtype: Link Rect: 312, 511, 555, 519 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 324, 501, 555, 509 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 324, 491, 555, 499 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 324, 481, 488, 489 Flags: Print Destination: 80 Annotation: Subtype: Link Rect: 312, 471, 555, 479 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 324, 461, 405, 469 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 312, 451, 555, 459 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 324, 441, 555, 449 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 324, 431, 555, 439 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 324, 421, 508, 429 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 312, 411, 555, 419 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 324, 401, 380, 409 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 312, 391, 553, 399 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 312, 372, 442, 380 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 450, 372, 538, 380 Flags: Print Annotation: Subtype: Link Rect: 312, 352, 555, 360 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 324, 342, 555, 350 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 324, 332, 555, 340 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 324, 322, 397, 330 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 312, 312, 555, 320 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 324, 302, 555, 310 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 324, 292, 555, 300 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 324, 282, 399, 290 Flags: Print Destination: 25 Annotation: Subtype: Link Rect: 312, 272, 555, 280 Flags: Print Destination: 342 Annotation: Subtype: Link Rect: 324, 262, 378, 270 Flags: Print Destination: 342 Checksum: 35e705ac Type: CRC32 Checksum: dba5170bd4cf5575501badefc471b92d Type: MD5 Checksum: c8decadb426b35bc773a2b2e782b6c70239ebcb1 Type: SHA-1 Checksum: 6c23efc7d48a7e993385e3a2d854e7191a4ff32dd7081a91d600f808259c1762 Type: SHA-256