From c739c9dd2be09e0291ce3083352ee828b66212e3 Mon Sep 17 00:00:00 2001 From: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> Date: Sat, 11 Feb 2023 14:27:15 +0000 Subject: [PATCH] Metadata editting and local only JS and pdf to image change and format pages (#44) * Formatting * changeMeta * pdf to img fix * foramtting * new image * lang changes --- .github/workflows/codeql.yml | 17 +- docs/stirling-pdf.png | Bin 0 -> 54271 bytes images/stirling-home.png | Bin 70497 -> 94176 bytes .../software/SPDF/SPdfApplication.java | 6 +- .../stirling/software/SPDF/config/Beans.java | 4 +- .../SPDF/controller/CompressController.java | 66 +- .../SPDF/controller/MergeController.java | 78 +- .../controller/OverlayImageController.java | 41 +- .../SPDF/controller/PdfController.java | 38 +- .../RearrangePagesPDFController.java | 174 +- .../SPDF/controller/RotationController.java | 46 +- .../SPDF/controller/SplitPDFController.java | 180 +- .../converters/ConvertImgPDFController.java | 107 +- .../security/MetadataController.java | 134 + .../security/PasswordController.java | 105 +- .../security/WatermarkController.java | 91 +- .../software/SPDF/utils/PdfUtils.java | 260 +- src/main/resources/messages_ar_AR.properties | 34 +- src/main/resources/messages_de_DE.properties | 32 +- src/main/resources/messages_en_GB.properties | 61 +- src/main/resources/messages_en_US.properties | 34 +- src/main/resources/messages_fr_FR.properties | 35 +- .../resources/static/css/bootstrap-icons.css | 2018 +++++ .../resources/static/css/bootstrap.min.css | 6 + .../resources/static/{ => css}/dark-mode.css | 0 .../static/css/fonts/bootstrap-icons.woff | Bin 0 -> 97548 bytes .../static/css/fonts/bootstrap-icons.woff2 | Bin 0 -> 73508 bytes .../resources/static/{ => css}/general.css | 46 +- src/main/resources/static/images/docker.svg | 5 + src/main/resources/static/images/github.svg | 17 + src/main/resources/static/js/bootstrap.min.js | 6 + src/main/resources/static/js/jquery.min.js | 2 + src/main/resources/static/js/popper.min.js | 1 + src/main/resources/static/pdfjs/pdf.min.js | 22 + .../resources/static/pdfjs/pdf.worker.min.js | 22 + src/main/resources/static/pdfjs/pdf_viewer.js | 7702 +++++++++++++++++ .../resources/static/pdfjs/pdf_viewer.min.css | 7 + src/main/resources/templates/add-image.html | 72 +- .../resources/templates/compress-pdf.html | 58 +- .../templates/convert/img-to-pdf.html | 52 +- .../templates/convert/pdf-to-img.html | 82 +- .../resources/templates/fragments/card.html | 8 +- .../resources/templates/fragments/common.html | 74 +- .../resources/templates/fragments/footer.html | 6 +- .../resources/templates/fragments/navbar.html | 9 +- src/main/resources/templates/home.html | 93 +- src/main/resources/templates/merge-pdfs.html | 232 +- .../resources/templates/pdf-organizer.html | 56 +- .../resources/templates/remove-pages.html | 54 +- src/main/resources/templates/rotate-pdf.html | 133 +- .../templates/security/add-password.html | 156 +- .../templates/security/add-watermark.html | 92 +- .../templates/security/change-metadata.html | 254 + .../security/change-permissions.html | 135 +- .../templates/security/remove-password.html | 63 +- src/main/resources/templates/split-pdfs.html | 74 +- 56 files changed, 11691 insertions(+), 1409 deletions(-) create mode 100644 docs/stirling-pdf.png create mode 100644 src/main/java/stirling/software/SPDF/controller/security/MetadataController.java create mode 100644 src/main/resources/static/css/bootstrap-icons.css create mode 100644 src/main/resources/static/css/bootstrap.min.css rename src/main/resources/static/{ => css}/dark-mode.css (100%) create mode 100644 src/main/resources/static/css/fonts/bootstrap-icons.woff create mode 100644 src/main/resources/static/css/fonts/bootstrap-icons.woff2 rename src/main/resources/static/{ => css}/general.css (92%) create mode 100644 src/main/resources/static/images/docker.svg create mode 100644 src/main/resources/static/images/github.svg create mode 100644 src/main/resources/static/js/bootstrap.min.js create mode 100644 src/main/resources/static/js/jquery.min.js create mode 100644 src/main/resources/static/js/popper.min.js create mode 100644 src/main/resources/static/pdfjs/pdf.min.js create mode 100644 src/main/resources/static/pdfjs/pdf.worker.min.js create mode 100644 src/main/resources/static/pdfjs/pdf_viewer.js create mode 100644 src/main/resources/static/pdfjs/pdf_viewer.min.css create mode 100644 src/main/resources/templates/security/change-metadata.html diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 5d6c3da3..7c1c4c75 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -7,9 +7,8 @@ # ******** NOTE ******** # We have attempted to detect the languages in your repository. Please check # the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: "CodeQL" + +name: "Build repo" on: push: @@ -42,15 +41,15 @@ jobs: java-version: '17' distribution: 'temurin' - - name: Initialize CodeQL - uses: github/codeql-action/init@v2 - with: - languages: java + # - name: Initialize CodeQL + # uses: github/codeql-action/init@v2 + # with: + # languages: java - uses: gradle/gradle-build-action@v2.3.3 with: gradle-version: 7.6 arguments: assemble --no-build-cache - - name: Perform CodeQL analysis - uses: github/codeql-action/analyze@v2 + #- name: Perform CodeQL analysis + # uses: github/codeql-action/analyze@v2 diff --git a/docs/stirling-pdf.png b/docs/stirling-pdf.png new file mode 100644 index 0000000000000000000000000000000000000000..11695d86f155b96eaf281ef3d963f11c05356e64 GIT binary patch literal 54271 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 literal 0 HcmV?d00001 diff --git a/images/stirling-home.png b/images/stirling-home.png index 0409fae0763a3029cf94ffcf9415d65d1ff0bb9a..6690f1148faf0675c77e38537cf53bd7edc3edb3 100644 GIT binary patch literal 94176 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%0D_0vb5;+tWQg<2J;ec(IFie^0Dh~);4 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 Q1zh^KjBX2qkvt_R^xY6T1j8Ys4N!Q6o_! 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%0DZaa<~SRuTEh+ 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 compressPDF(@RequestParam("fileInput") MultipartFile pdfFile, - @RequestParam("imageCompressionLevel") String imageCompressionLevel) throws IOException { + @PostMapping("/compress-pdf") + public ResponseEntity compressPDF(@RequestParam("fileInput") MultipartFile pdfFile, @RequestParam("imageCompressionLevel") String imageCompressionLevel) + throws IOException { - // Load a sample PDF document - PdfDocument document = new PdfDocument(); - document.loadFromBytes(pdfFile.getBytes()); + // Load a sample PDF document + PdfDocument document = new PdfDocument(); + document.loadFromBytes(pdfFile.getBytes()); - // Compress PDF - document.getFileInfo().setIncrementalUpdate(false); - document.setCompressionLevel(PdfCompressionLevel.Best); + // Compress PDF + document.getFileInfo().setIncrementalUpdate(false); + document.setCompressionLevel(PdfCompressionLevel.Best); - // compress PDF Images - for (int i = 0; i < document.getPages().getCount(); i++) { + // compress PDF Images + for (int i = 0; i < document.getPages().getCount(); i++) { - PdfPageBase page = document.getPages().get(i); - PdfImageInfo[] images = page.getImagesInfo(); - if (images != null && images.length > 0) - for (int j = 0; j < images.length; j++) { - PdfImageInfo image = images[j]; - PdfBitmap bp = new PdfBitmap(image.getImage()); - // bp.setPngDirectToJpeg(true); - bp.setQuality(Integer.valueOf(imageCompressionLevel)); + PdfPageBase page = document.getPages().get(i); + PdfImageInfo[] images = page.getImagesInfo(); + if (images != null && images.length > 0) + for (int j = 0; j < images.length; j++) { + PdfImageInfo image = images[j]; + PdfBitmap bp = new PdfBitmap(image.getImage()); + // bp.setPngDirectToJpeg(true); + bp.setQuality(Integer.valueOf(imageCompressionLevel)); - page.replaceImage(j, bp); + page.replaceImage(j, bp); - } - } + } + } - return PdfUtils.pdfDocToWebResponse(document, pdfFile.getName() + "_compressed.pdf"); + return PdfUtils.pdfDocToWebResponse(document, pdfFile.getName() + "_compressed.pdf"); - } + } } diff --git a/src/main/java/stirling/software/SPDF/controller/MergeController.java b/src/main/java/stirling/software/SPDF/controller/MergeController.java index 1c0a2ec5..da672b27 100644 --- a/src/main/java/stirling/software/SPDF/controller/MergeController.java +++ b/src/main/java/stirling/software/SPDF/controller/MergeController.java @@ -24,54 +24,52 @@ import org.springframework.web.multipart.MultipartFile; @Controller public class MergeController { - private static final Logger logger = LoggerFactory.getLogger(MergeController.class); + private static final Logger logger = LoggerFactory.getLogger(MergeController.class); - @GetMapping("/merge-pdfs") - public String hello(Model model) { - model.addAttribute("currentPage", "merge-pdfs"); - return "merge-pdfs"; - } + @GetMapping("/merge-pdfs") + public String hello(Model model) { + model.addAttribute("currentPage", "merge-pdfs"); + return "merge-pdfs"; + } - @PostMapping("/merge-pdfs") - public ResponseEntity mergePdfs(@RequestParam("fileInput") MultipartFile[] files) - throws IOException { - // Read the input PDF files into PDDocument objects - List documents = new ArrayList<>(); + @PostMapping("/merge-pdfs") + public ResponseEntity mergePdfs(@RequestParam("fileInput") MultipartFile[] files) throws IOException { + // Read the input PDF files into PDDocument objects + List documents = new ArrayList<>(); - // Loop through the files array and read each file into a PDDocument - for (MultipartFile file : files) { - documents.add(PDDocument.load(file.getInputStream())); - } + // Loop through the files array and read each file into a PDDocument + for (MultipartFile file : files) { + documents.add(PDDocument.load(file.getInputStream())); + } - PDDocument mergedDoc = mergeDocuments(documents); - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - mergedDoc.save(byteArrayOutputStream); - mergedDoc.close(); + PDDocument mergedDoc = mergeDocuments(documents); + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + mergedDoc.save(byteArrayOutputStream); + mergedDoc.close(); - // Create an InputStreamResource from the merged PDF - InputStreamResource resource = new InputStreamResource( - new ByteArrayInputStream(byteArrayOutputStream.toByteArray())); + // Create an InputStreamResource from the merged PDF + InputStreamResource resource = new InputStreamResource(new ByteArrayInputStream(byteArrayOutputStream.toByteArray())); - // Return the merged PDF as a response - return ResponseEntity.ok().contentType(MediaType.APPLICATION_PDF).body(resource); - } + // Return the merged PDF as a response + return ResponseEntity.ok().contentType(MediaType.APPLICATION_PDF).body(resource); + } - private PDDocument mergeDocuments(List documents) throws IOException { - // Create a new empty document - PDDocument mergedDoc = new PDDocument(); + private PDDocument mergeDocuments(List documents) throws IOException { + // Create a new empty document + PDDocument mergedDoc = new PDDocument(); - // Iterate over the list of documents and add their pages to the merged document - for (PDDocument doc : documents) { - // Get all pages from the current document - PDPageTree pages = doc.getPages(); - // Iterate over the pages and add them to the merged document - for (PDPage page : pages) { - mergedDoc.addPage(page); - } - } + // Iterate over the list of documents and add their pages to the merged document + for (PDDocument doc : documents) { + // Get all pages from the current document + PDPageTree pages = doc.getPages(); + // Iterate over the pages and add them to the merged document + for (PDPage page : pages) { + mergedDoc.addPage(page); + } + } - // Return the merged document - return mergedDoc; - } + // Return the merged document + return mergedDoc; + } } \ No newline at end of file diff --git a/src/main/java/stirling/software/SPDF/controller/OverlayImageController.java b/src/main/java/stirling/software/SPDF/controller/OverlayImageController.java index 281b9112..15a0bd4f 100644 --- a/src/main/java/stirling/software/SPDF/controller/OverlayImageController.java +++ b/src/main/java/stirling/software/SPDF/controller/OverlayImageController.java @@ -4,9 +4,7 @@ import java.io.IOException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -20,27 +18,26 @@ import stirling.software.SPDF.utils.PdfUtils; @Controller public class OverlayImageController { - private static final Logger logger = LoggerFactory.getLogger(OverlayImageController.class); + private static final Logger logger = LoggerFactory.getLogger(OverlayImageController.class); - @GetMapping("/add-image") - public String overlayImage(Model model) { - model.addAttribute("currentPage", "add-image"); - return "add-image"; - } + @GetMapping("/add-image") + public String overlayImage(Model model) { + model.addAttribute("currentPage", "add-image"); + return "add-image"; + } - @PostMapping("/add-image") - public ResponseEntity overlayImage(@RequestParam("fileInput") MultipartFile pdfFile, - @RequestParam("fileInput2") MultipartFile imageFile, @RequestParam("x") float x, - @RequestParam("y") float y) { - try { - byte[] pdfBytes = pdfFile.getBytes(); - byte[] imageBytes = imageFile.getBytes(); - byte[] result = PdfUtils.overlayImage(pdfBytes, imageBytes, x, y); + @PostMapping("/add-image") + public ResponseEntity overlayImage(@RequestParam("fileInput") MultipartFile pdfFile, @RequestParam("fileInput2") MultipartFile imageFile, @RequestParam("x") float x, + @RequestParam("y") float y) { + try { + byte[] pdfBytes = pdfFile.getBytes(); + byte[] imageBytes = imageFile.getBytes(); + byte[] result = PdfUtils.overlayImage(pdfBytes, imageBytes, x, y); - return PdfUtils.bytesToWebResponse(result, pdfFile.getName() + "_overlayed.pdf"); - } catch (IOException e) { - logger.error("Failed to add image to PDF", e); - return new ResponseEntity<>(HttpStatus.BAD_REQUEST); - } - } + return PdfUtils.bytesToWebResponse(result, pdfFile.getName() + "_overlayed.pdf"); + } catch (IOException e) { + logger.error("Failed to add image to PDF", e); + return new ResponseEntity<>(HttpStatus.BAD_REQUEST); + } + } } diff --git a/src/main/java/stirling/software/SPDF/controller/PdfController.java b/src/main/java/stirling/software/SPDF/controller/PdfController.java index cff7df24..b0645a3a 100644 --- a/src/main/java/stirling/software/SPDF/controller/PdfController.java +++ b/src/main/java/stirling/software/SPDF/controller/PdfController.java @@ -1,43 +1,25 @@ package stirling.software.SPDF.controller; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import org.apache.pdfbox.pdmodel.PDDocument; -import org.apache.pdfbox.pdmodel.PDPage; -import org.apache.pdfbox.pdmodel.PDPageTree; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.core.io.InputStreamResource; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.multipart.MultipartFile; @Controller public class PdfController { - private static final Logger logger = LoggerFactory.getLogger(PdfController.class); + private static final Logger logger = LoggerFactory.getLogger(PdfController.class); - @GetMapping("/home") - public String root(Model model) { - return "redirect:/"; - } + @GetMapping("/home") + public String root(Model model) { + return "redirect:/"; + } - - @GetMapping("/") - public String home(Model model) { - model.addAttribute("currentPage", "home"); - return "home"; - } - - + @GetMapping("/") + public String home(Model model) { + model.addAttribute("currentPage", "home"); + return "home"; + } } \ No newline at end of file diff --git a/src/main/java/stirling/software/SPDF/controller/RearrangePagesPDFController.java b/src/main/java/stirling/software/SPDF/controller/RearrangePagesPDFController.java index b655ab69..6d3ff58c 100644 --- a/src/main/java/stirling/software/SPDF/controller/RearrangePagesPDFController.java +++ b/src/main/java/stirling/software/SPDF/controller/RearrangePagesPDFController.java @@ -1,6 +1,5 @@ package stirling.software.SPDF.controller; -import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -9,9 +8,6 @@ import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -25,104 +21,102 @@ import stirling.software.SPDF.utils.PdfUtils; @Controller public class RearrangePagesPDFController { - private static final Logger logger = LoggerFactory.getLogger(RearrangePagesPDFController.class); + private static final Logger logger = LoggerFactory.getLogger(RearrangePagesPDFController.class); - @GetMapping("/pdf-organizer") - public String pageOrganizer(Model model) { - model.addAttribute("currentPage", "pdf-organizer"); - return "pdf-organizer"; - } + @GetMapping("/pdf-organizer") + public String pageOrganizer(Model model) { + model.addAttribute("currentPage", "pdf-organizer"); + return "pdf-organizer"; + } - @GetMapping("/remove-pages") - public String pageDeleter(Model model) { - model.addAttribute("currentPage", "remove-pages"); - return "remove-pages"; - } + @GetMapping("/remove-pages") + public String pageDeleter(Model model) { + model.addAttribute("currentPage", "remove-pages"); + return "remove-pages"; + } - @PostMapping("/remove-pages") - public ResponseEntity deletePages(@RequestParam("fileInput") MultipartFile pdfFile, - @RequestParam("pagesToDelete") String pagesToDelete) throws IOException { - - PDDocument document = PDDocument.load(pdfFile.getBytes()); - - // Split the page order string into an array of page numbers or range of numbers - String[] pageOrderArr = pagesToDelete.split(","); - - List pagesToRemove = pageOrderToString(pageOrderArr, document.getNumberOfPages()); - - for (int i = pagesToRemove.size() - 1; i >= 0; i--) { - int pageIndex = pagesToRemove.get(i); - document.removePage(pageIndex); - } - - return PdfUtils.pdfDocToWebResponse(document, pdfFile.getName() + "_removed_pages.pdf"); + @PostMapping("/remove-pages") + public ResponseEntity deletePages(@RequestParam("fileInput") MultipartFile pdfFile, @RequestParam("pagesToDelete") String pagesToDelete) throws IOException { - } + PDDocument document = PDDocument.load(pdfFile.getBytes()); - private List pageOrderToString(String[] pageOrderArr, int totalPages) { - List newPageOrder = new ArrayList(); - // loop through the page order array - for (String element : pageOrderArr) { - // check if the element contains a range of pages - if (element.contains("-")) { - // split the range into start and end page - String[] range = element.split("-"); - int start = Integer.parseInt(range[0]); - int end = Integer.parseInt(range[1]); - // check if the end page is greater than total pages - if (end > totalPages) { - end = totalPages; - } - // loop through the range of pages - for (int j = start; j <= end; j++) { - // print the current index - newPageOrder.add(j - 1); - } - } else { - // if the element is a single page - newPageOrder.add(Integer.parseInt(element) - 1); - } - } + // Split the page order string into an array of page numbers or range of numbers + String[] pageOrderArr = pagesToDelete.split(","); - return newPageOrder; - } + List pagesToRemove = pageOrderToString(pageOrderArr, document.getNumberOfPages()); - @PostMapping("/rearrange-pages") - public ResponseEntity rearrangePages(@RequestParam("fileInput") MultipartFile pdfFile, - @RequestParam("pageOrder") String pageOrder) { - try { - // Load the input PDF - PDDocument document = PDDocument.load(pdfFile.getInputStream()); + for (int i = pagesToRemove.size() - 1; i >= 0; i--) { + int pageIndex = pagesToRemove.get(i); + document.removePage(pageIndex); + } - // Split the page order string into an array of page numbers or range of numbers - String[] pageOrderArr = pageOrder.split(","); - // int[] newPageOrder = new int[pageOrderArr.length]; - int totalPages = document.getNumberOfPages(); + return PdfUtils.pdfDocToWebResponse(document, pdfFile.getName() + "_removed_pages.pdf"); - List newPageOrder = pageOrderToString(pageOrderArr, totalPages); - - // Create a new list to hold the pages in the new order - List newPages = new ArrayList<>(); - for (int i = 0; i < newPageOrder.size(); i++) { - newPages.add(document.getPage(newPageOrder.get(i))); - } + } - // Remove all the pages from the original document - for (int i = document.getNumberOfPages() - 1; i >= 0; i--) { - document.removePage(i); - } + private List pageOrderToString(String[] pageOrderArr, int totalPages) { + List newPageOrder = new ArrayList<>(); + // loop through the page order array + for (String element : pageOrderArr) { + // check if the element contains a range of pages + if (element.contains("-")) { + // split the range into start and end page + String[] range = element.split("-"); + int start = Integer.parseInt(range[0]); + int end = Integer.parseInt(range[1]); + // check if the end page is greater than total pages + if (end > totalPages) { + end = totalPages; + } + // loop through the range of pages + for (int j = start; j <= end; j++) { + // print the current index + newPageOrder.add(j - 1); + } + } else { + // if the element is a single page + newPageOrder.add(Integer.parseInt(element) - 1); + } + } - // Add the pages in the new order - for (PDPage page : newPages) { - document.addPage(page); - } + return newPageOrder; + } - return PdfUtils.pdfDocToWebResponse(document, pdfFile.getName() + "_rearranged.pdf"); - } catch (IOException e) { + @PostMapping("/rearrange-pages") + public ResponseEntity rearrangePages(@RequestParam("fileInput") MultipartFile pdfFile, @RequestParam("pageOrder") String pageOrder) { + try { + // Load the input PDF + PDDocument document = PDDocument.load(pdfFile.getInputStream()); - logger.error("Failed rearranging documents", e); - return null; - } - } + // Split the page order string into an array of page numbers or range of numbers + String[] pageOrderArr = pageOrder.split(","); + // int[] newPageOrder = new int[pageOrderArr.length]; + int totalPages = document.getNumberOfPages(); + + List newPageOrder = pageOrderToString(pageOrderArr, totalPages); + + // Create a new list to hold the pages in the new order + List newPages = new ArrayList<>(); + for (int i = 0; i < newPageOrder.size(); i++) { + newPages.add(document.getPage(newPageOrder.get(i))); + } + + // Remove all the pages from the original document + for (int i = document.getNumberOfPages() - 1; i >= 0; i--) { + document.removePage(i); + } + + // Add the pages in the new order + for (PDPage page : newPages) { + document.addPage(page); + } + + return PdfUtils.pdfDocToWebResponse(document, pdfFile.getName() + "_rearranged.pdf"); + } catch (IOException e) { + + logger.error("Failed rearranging documents", e); + return null; + } + } } diff --git a/src/main/java/stirling/software/SPDF/controller/RotationController.java b/src/main/java/stirling/software/SPDF/controller/RotationController.java index 436dc484..2733397d 100644 --- a/src/main/java/stirling/software/SPDF/controller/RotationController.java +++ b/src/main/java/stirling/software/SPDF/controller/RotationController.java @@ -1,19 +1,12 @@ package stirling.software.SPDF.controller; -import java.io.ByteArrayOutputStream; -import java.io.FileOutputStream; import java.io.IOException; -import java.util.Iterator; -import java.util.ListIterator; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageTree; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -27,34 +20,29 @@ import stirling.software.SPDF.utils.PdfUtils; @Controller public class RotationController { - private static final Logger logger = LoggerFactory.getLogger(RotationController.class); + private static final Logger logger = LoggerFactory.getLogger(RotationController.class); - @GetMapping("/rotate-pdf") - public String rotatePdfForm(Model model) { - model.addAttribute("currentPage", "rotate-pdf"); - return "rotate-pdf"; - } + @GetMapping("/rotate-pdf") + public String rotatePdfForm(Model model) { + model.addAttribute("currentPage", "rotate-pdf"); + return "rotate-pdf"; + } - @PostMapping("/rotate-pdf") - public ResponseEntity rotatePDF(@RequestParam("fileInput") MultipartFile pdfFile, - @RequestParam("angle") Integer angle) throws IOException { + @PostMapping("/rotate-pdf") + public ResponseEntity rotatePDF(@RequestParam("fileInput") MultipartFile pdfFile, @RequestParam("angle") Integer angle) throws IOException { - // Load the PDF document - PDDocument document = PDDocument.load(pdfFile.getBytes()); + // Load the PDF document + PDDocument document = PDDocument.load(pdfFile.getBytes()); - // Get the list of pages in the document - PDPageTree pages = document.getPages(); + // Get the list of pages in the document + PDPageTree pages = document.getPages(); - // Rotate all pages by the specified angle - Iterator iterPage = pages.iterator(); + for (PDPage page : pages) { + page.setRotation(page.getRotation() + angle); + } - while (iterPage.hasNext()) { - PDPage page = iterPage.next(); - page.setRotation(page.getRotation() + angle); - } + return PdfUtils.pdfDocToWebResponse(document, pdfFile.getName() + "_rotated.pdf"); - return PdfUtils.pdfDocToWebResponse(document, pdfFile.getName() + "_rotated.pdf"); - - } + } } diff --git a/src/main/java/stirling/software/SPDF/controller/SplitPDFController.java b/src/main/java/stirling/software/SPDF/controller/SplitPDFController.java index c283e5b5..1c0fd155 100644 --- a/src/main/java/stirling/software/SPDF/controller/SplitPDFController.java +++ b/src/main/java/stirling/software/SPDF/controller/SplitPDFController.java @@ -37,106 +37,104 @@ import org.springframework.web.multipart.MultipartFile; @Controller public class SplitPDFController { - private static final Logger logger = LoggerFactory.getLogger(SplitPDFController.class); + private static final Logger logger = LoggerFactory.getLogger(SplitPDFController.class); - @GetMapping("/split-pdfs") - public String splitPdfForm(Model model) { - model.addAttribute("currentPage", "split-pdfs"); - return "split-pdfs"; - } + @GetMapping("/split-pdfs") + public String splitPdfForm(Model model) { + model.addAttribute("currentPage", "split-pdfs"); + return "split-pdfs"; + } - @PostMapping("/split-pages") - public ResponseEntity splitPdf(@RequestParam("fileInput") MultipartFile file, - @RequestParam("pages") String pages) throws IOException { - // parse user input + @PostMapping("/split-pages") + public ResponseEntity splitPdf(@RequestParam("fileInput") MultipartFile file, @RequestParam("pages") String pages) throws IOException { + // parse user input - // open the pdf document - InputStream inputStream = file.getInputStream(); - PDDocument document = PDDocument.load(inputStream); + // open the pdf document + InputStream inputStream = file.getInputStream(); + PDDocument document = PDDocument.load(inputStream); - List pageNumbers = new ArrayList<>(); - pages = pages.replaceAll("\\s+", ""); // remove whitespaces - if (pages.toLowerCase().equals("all")) { - for (int i = 0; i < document.getNumberOfPages(); i++) { - pageNumbers.add(i); - } - } else { - List pageNumbersStr = new ArrayList<>(Arrays.asList(pages.split(","))); - if (!pageNumbersStr.contains(String.valueOf(document.getNumberOfPages()))) { - String lastpage = String.valueOf(document.getNumberOfPages()); - pageNumbersStr.add(lastpage); - } - for (String page : pageNumbersStr) { - if (page.contains("-")) { - String[] range = page.split("-"); - int start = Integer.parseInt(range[0]); - int end = Integer.parseInt(range[1]); - for (int i = start; i <= end; i++) { - pageNumbers.add(i); - } - } else { - pageNumbers.add(Integer.parseInt(page)); - } - } - } + List pageNumbers = new ArrayList<>(); + pages = pages.replaceAll("\\s+", ""); // remove whitespaces + if (pages.toLowerCase().equals("all")) { + for (int i = 0; i < document.getNumberOfPages(); i++) { + pageNumbers.add(i); + } + } else { + List pageNumbersStr = new ArrayList<>(Arrays.asList(pages.split(","))); + if (!pageNumbersStr.contains(String.valueOf(document.getNumberOfPages()))) { + String lastpage = String.valueOf(document.getNumberOfPages()); + pageNumbersStr.add(lastpage); + } + for (String page : pageNumbersStr) { + if (page.contains("-")) { + String[] range = page.split("-"); + int start = Integer.parseInt(range[0]); + int end = Integer.parseInt(range[1]); + for (int i = start; i <= end; i++) { + pageNumbers.add(i); + } + } else { + pageNumbers.add(Integer.parseInt(page)); + } + } + } - logger.info("Splitting PDF into pages: {}", - pageNumbers.stream().map(String::valueOf).collect(Collectors.joining(","))); + logger.info("Splitting PDF into pages: {}", pageNumbers.stream().map(String::valueOf).collect(Collectors.joining(","))); - // split the document - List splitDocumentsBoas = new ArrayList<>(); - int currentPage = 0; - for (int pageNumber : pageNumbers) { - try (PDDocument splitDocument = new PDDocument()) { - for (int i = currentPage; i < pageNumber; i++) { - PDPage page = document.getPage(i); - splitDocument.addPage(page); - logger.debug("Adding page {} to split document", i); - } - currentPage = pageNumber; - logger.debug("Setting current page to {}", currentPage); + // split the document + List splitDocumentsBoas = new ArrayList<>(); + int currentPage = 0; + for (int pageNumber : pageNumbers) { + try (PDDocument splitDocument = new PDDocument()) { + for (int i = currentPage; i < pageNumber; i++) { + PDPage page = document.getPage(i); + splitDocument.addPage(page); + logger.debug("Adding page {} to split document", i); + } + currentPage = pageNumber; + logger.debug("Setting current page to {}", currentPage); - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - splitDocument.save(baos); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + splitDocument.save(baos); - splitDocumentsBoas.add(baos); - } catch (Exception e) { - logger.error("Failed splitting documents and saving them", e); - throw e; - } - } + splitDocumentsBoas.add(baos); + } catch (Exception e) { + logger.error("Failed splitting documents and saving them", e); + throw e; + } + } - // closing the original document - document.close(); + // closing the original document + document.close(); - // create the zip file - Path zipFile = Paths.get("split_documents.zip"); - URI uri = URI.create("jar:file:" + zipFile.toUri().getPath()); - Map env = new HashMap<>(); - env.put("create", "true"); - FileSystem zipfs = FileSystems.newFileSystem(uri, env); + // create the zip file + Path zipFile = Paths.get("split_documents.zip"); + URI uri = URI.create("jar:file:" + zipFile.toUri().getPath()); + Map env = new HashMap<>(); + env.put("create", "true"); + FileSystem zipfs = FileSystems.newFileSystem(uri, env); - // loop through the split documents and write them to the zip file - for (int i = 0; i < splitDocumentsBoas.size(); i++) { - String fileName = "split_document_" + (i + 1) + ".pdf"; - ByteArrayOutputStream baos = splitDocumentsBoas.get(i); - byte[] pdf = baos.toByteArray(); - Path pathInZipfile = zipfs.getPath(fileName); - try (OutputStream os = Files.newOutputStream(pathInZipfile)) { - os.write(pdf); - logger.info("Wrote split document {} to zip file", fileName); - } catch (Exception e) { - logger.error("Failed writing to zip", e); - throw e; - } - } - zipfs.close(); - logger.info("Successfully created zip file with split documents: {}", zipFile.toString()); - byte[] data = Files.readAllBytes(zipFile); - ByteArrayResource resource = new ByteArrayResource(data); - new File("split_documents.zip").delete(); - // return the Resource in the response - return ResponseEntity.ok().header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=split_documents.zip") - .contentType(MediaType.APPLICATION_OCTET_STREAM).contentLength(resource.contentLength()).body(resource); - } + // loop through the split documents and write them to the zip file + for (int i = 0; i < splitDocumentsBoas.size(); i++) { + String fileName = "split_document_" + (i + 1) + ".pdf"; + ByteArrayOutputStream baos = splitDocumentsBoas.get(i); + byte[] pdf = baos.toByteArray(); + Path pathInZipfile = zipfs.getPath(fileName); + try (OutputStream os = Files.newOutputStream(pathInZipfile)) { + os.write(pdf); + logger.info("Wrote split document {} to zip file", fileName); + } catch (Exception e) { + logger.error("Failed writing to zip", e); + throw e; + } + } + zipfs.close(); + logger.info("Successfully created zip file with split documents: {}", zipFile.toString()); + byte[] data = Files.readAllBytes(zipFile); + ByteArrayResource resource = new ByteArrayResource(data); + new File("split_documents.zip").delete(); + // return the Resource in the response + return ResponseEntity.ok().header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=split_documents.zip").contentType(MediaType.APPLICATION_OCTET_STREAM) + .contentLength(resource.contentLength()).body(resource); + } } diff --git a/src/main/java/stirling/software/SPDF/controller/converters/ConvertImgPDFController.java b/src/main/java/stirling/software/SPDF/controller/converters/ConvertImgPDFController.java index 5a943183..db0b2aa8 100644 --- a/src/main/java/stirling/software/SPDF/controller/converters/ConvertImgPDFController.java +++ b/src/main/java/stirling/software/SPDF/controller/converters/ConvertImgPDFController.java @@ -2,8 +2,11 @@ package stirling.software.SPDF.controller.converters; import java.io.IOException; +import org.apache.pdfbox.rendering.ImageType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.core.io.ByteArrayResource; +import org.springframework.core.io.Resource; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; @@ -20,51 +23,75 @@ import stirling.software.SPDF.utils.PdfUtils; @Controller public class ConvertImgPDFController { - private static final Logger logger = LoggerFactory.getLogger(ConvertImgPDFController.class); + private static final Logger logger = LoggerFactory.getLogger(ConvertImgPDFController.class); - @GetMapping("/img-to-pdf") - public String convertToPdfForm(Model model) { - model.addAttribute("currentPage", "img-to-pdf"); - return "convert/img-to-pdf"; - } + @GetMapping("/img-to-pdf") + public String convertToPdfForm(Model model) { + model.addAttribute("currentPage", "img-to-pdf"); + return "convert/img-to-pdf"; + } - @GetMapping("/pdf-to-img") - public String pdfToimgForm(Model model) { - model.addAttribute("currentPage", "pdf-to-img"); - return "convert/pdf-to-img"; - } + @GetMapping("/pdf-to-img") + public String pdfToimgForm(Model model) { + model.addAttribute("currentPage", "pdf-to-img"); + return "convert/pdf-to-img"; + } - @PostMapping("/img-to-pdf") - public ResponseEntity convertToPdf(@RequestParam("fileInput") MultipartFile file) throws IOException { - // Convert the file to PDF and get the resulting bytes - byte[] bytes = PdfUtils.convertToPdf(file.getInputStream()); - logger.info("File {} successfully converted to pdf", file.getOriginalFilename()); + @PostMapping("/img-to-pdf") + public ResponseEntity convertToPdf(@RequestParam("fileInput") MultipartFile file) throws IOException { + // Convert the file to PDF and get the resulting bytes + byte[] bytes = PdfUtils.convertToPdf(file.getInputStream()); + logger.info("File {} successfully converted to pdf", file.getOriginalFilename()); - return PdfUtils.bytesToWebResponse(bytes, file.getName() + "_coverted.pdf"); - } + return PdfUtils.bytesToWebResponse(bytes, file.getName() + "_coverted.pdf"); + } - @PostMapping("/pdf-to-img") - public ResponseEntity convertToImage(@RequestParam("fileInput") MultipartFile file, - @RequestParam("imageFormat") String imageFormat) throws IOException { - byte[] pdfBytes = file.getBytes(); - // returns bytes for image - byte[] result = PdfUtils.convertFromPdf(pdfBytes, imageFormat.toLowerCase()); - HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.parseMediaType(getMediaType(imageFormat))); - headers.setCacheControl("must-revalidate, post-check=0, pre-check=0"); - ResponseEntity response = new ResponseEntity<>(result, headers, HttpStatus.OK); - return response; - } + @PostMapping("/pdf-to-img") + public ResponseEntity convertToImage(@RequestParam("fileInput") MultipartFile file, @RequestParam("imageFormat") String imageFormat, + @RequestParam("singleOrMultiple") String singleOrMultiple, @RequestParam("colorType") String colorType, @RequestParam("dpi") String dpi) throws IOException { - private String getMediaType(String imageFormat) { - if (imageFormat.equalsIgnoreCase("PNG")) - return "image/png"; - else if (imageFormat.equalsIgnoreCase("JPEG") || imageFormat.equalsIgnoreCase("JPG")) - return "image/jpeg"; - else if (imageFormat.equalsIgnoreCase("GIF")) - return "image/gif"; - else - return "application/octet-stream"; - } + byte[] pdfBytes = file.getBytes(); + ImageType colorTypeResult = ImageType.RGB; + if ("greyscale".equals(colorType)) { + colorTypeResult = ImageType.GRAY; + } else if ("blackwhite".equals(colorType)) { + colorTypeResult = ImageType.BINARY; + } + // returns bytes for image + boolean singleImage = singleOrMultiple.equals("single"); + byte[] result = null; + try { + result = PdfUtils.convertFromPdf(pdfBytes, imageFormat.toLowerCase(), colorTypeResult, singleImage, Integer.valueOf(dpi)); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + if (singleImage) { + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.parseMediaType(getMediaType(imageFormat))); + headers.setCacheControl("must-revalidate, post-check=0, pre-check=0"); + ResponseEntity response = new ResponseEntity<>(new ByteArrayResource(result), headers, HttpStatus.OK); + return response; + } else { + ByteArrayResource resource = new ByteArrayResource(result); + // return the Resource in the response + return ResponseEntity.ok().header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=converted_documents.zip").contentType(MediaType.APPLICATION_OCTET_STREAM) + .contentLength(resource.contentLength()).body(resource); + } + } + + private String getMediaType(String imageFormat) { + if (imageFormat.equalsIgnoreCase("PNG")) + return "image/png"; + else if (imageFormat.equalsIgnoreCase("JPEG") || imageFormat.equalsIgnoreCase("JPG")) + return "image/jpeg"; + else if (imageFormat.equalsIgnoreCase("GIF")) + return "image/gif"; + else + return "application/octet-stream"; + } } diff --git a/src/main/java/stirling/software/SPDF/controller/security/MetadataController.java b/src/main/java/stirling/software/SPDF/controller/security/MetadataController.java new file mode 100644 index 00000000..fcab648e --- /dev/null +++ b/src/main/java/stirling/software/SPDF/controller/security/MetadataController.java @@ -0,0 +1,134 @@ +package stirling.software.SPDF.controller.security; + +import java.io.IOException; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Map; +import java.util.Map.Entry; + +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDDocumentInformation; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartFile; + +import stirling.software.SPDF.utils.PdfUtils; + +@Controller +public class MetadataController { + + @GetMapping("/change-metadata") + public String addWatermarkForm(Model model) { + model.addAttribute("currentPage", "change-metadata"); + return "security/change-metadata"; + } + + private String checkUndefined(String entry) { + // Check if the string is "undefined" + if("undefined".equals(entry)) { + // Return null if it is + return null; + } + // Return the original string if it's not "undefined" + return entry; + + } + @PostMapping("/update-metadata") + public ResponseEntity metadata(@RequestParam("fileInput") MultipartFile pdfFile, + @RequestParam(value = "deleteAll", required = false, defaultValue = "false") Boolean deleteAll, @RequestParam(value = "author", required = false) String author, + @RequestParam(value = "creationDate", required = false) String creationDate, @RequestParam(value = "creator", required = false) String creator, + @RequestParam(value = "keywords", required = false) String keywords, @RequestParam(value = "modificationDate", required = false) String modificationDate, + @RequestParam(value = "producer", required = false) String producer, @RequestParam(value = "subject", required = false) String subject, + @RequestParam(value = "title", required = false) String title, @RequestParam(value = "trapped", required = false) String trapped, + @RequestParam Map allRequestParams) throws IOException { + + // Load the PDF file into a PDDocument + PDDocument document = PDDocument.load(pdfFile.getBytes()); + + // Get the document information from the PDF + PDDocumentInformation info = document.getDocumentInformation(); + + // Check if each metadata value is "undefined" and set it to null if it is + author = checkUndefined(author); + creationDate = checkUndefined(creationDate); + creator = checkUndefined(creator); + keywords = checkUndefined(keywords); + modificationDate = checkUndefined(modificationDate); + producer = checkUndefined(producer); + subject = checkUndefined(subject); + title = checkUndefined(title); + trapped = checkUndefined(trapped); + + // If the "deleteAll" flag is set, remove all metadata from the document information + if (deleteAll) { + for (String key : info.getMetadataKeys()) { + info.setCustomMetadataValue(key, null); + } + author = null; + creationDate = null; + creator = null; + keywords = null; + modificationDate = null; + producer = null; + subject = null; + title = null; + trapped = null; + } else { + // Iterate through the request parameters and set the metadata values + for (Entry entry : allRequestParams.entrySet()) { + String key = entry.getKey(); + // Check if the key is a standard metadata key + if (!key.equalsIgnoreCase("Author") && !key.equalsIgnoreCase("CreationDate") && !key.equalsIgnoreCase("Creator") && !key.equalsIgnoreCase("Keywords") + && !key.equalsIgnoreCase("modificationDate") && !key.equalsIgnoreCase("Producer") && !key.equalsIgnoreCase("Subject") && !key.equalsIgnoreCase("Title") + && !key.equalsIgnoreCase("Trapped") && !key.contains("customKey") && !key.contains("customValue")) { + info.setCustomMetadataValue(key, entry.getValue()); + } else if (key.contains("customKey")) { + int number = Integer.parseInt(key.replaceAll("\\D", "")); + String customKey = entry.getValue(); + String customValue = allRequestParams.get("customValue" + number); + info.setCustomMetadataValue(customKey, customValue); + } + } + } + if (creationDate != null && creationDate.length() > 0) { + Calendar creationDateCal = Calendar.getInstance(); + try { + creationDateCal.setTime(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse(creationDate)); + } catch (ParseException e) { + e.printStackTrace(); + } + info.setCreationDate(creationDateCal); + } else { + info.setCreationDate(null); + } + if (modificationDate != null && modificationDate.length() > 0) { + Calendar modificationDateCal = Calendar.getInstance(); + try { + modificationDateCal.setTime(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse(modificationDate)); + } catch (ParseException e) { + e.printStackTrace(); + } + info.setModificationDate(modificationDateCal); + } else { + info.setModificationDate(null); + } + info.setCreator(creator); + info.setKeywords(keywords); + info.setAuthor(author); + info.setProducer(producer); + info.setSubject(subject); + info.setTitle(title); + info.setTrapped(trapped); + + document.setDocumentInformation(info); + return PdfUtils.pdfDocToWebResponse(document, pdfFile.getName() + "_metadata.pdf"); + } + + + +} diff --git a/src/main/java/stirling/software/SPDF/controller/security/PasswordController.java b/src/main/java/stirling/software/SPDF/controller/security/PasswordController.java index 1d7a79c5..5e678584 100644 --- a/src/main/java/stirling/software/SPDF/controller/security/PasswordController.java +++ b/src/main/java/stirling/software/SPDF/controller/security/PasswordController.java @@ -1,18 +1,12 @@ package stirling.software.SPDF.controller.security; -import java.io.ByteArrayOutputStream; -import java.io.FileOutputStream; import java.io.IOException; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.encryption.AccessPermission; -import org.apache.pdfbox.pdmodel.encryption.StandardDecryptionMaterial; import org.apache.pdfbox.pdmodel.encryption.StandardProtectionPolicy; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -26,67 +20,62 @@ import stirling.software.SPDF.utils.PdfUtils; @Controller public class PasswordController { - private static final Logger logger = LoggerFactory.getLogger(PasswordController.class); + private static final Logger logger = LoggerFactory.getLogger(PasswordController.class); - @GetMapping("/add-password") - public String addPasswordForm(Model model) { - model.addAttribute("currentPage", "add-password"); - return "security/add-password"; - } + @GetMapping("/add-password") + public String addPasswordForm(Model model) { + model.addAttribute("currentPage", "add-password"); + return "security/add-password"; + } - @GetMapping("/remove-password") - public String removePasswordForm(Model model) { - model.addAttribute("currentPage", "remove-password"); - return "security/remove-password"; - } + @GetMapping("/remove-password") + public String removePasswordForm(Model model) { + model.addAttribute("currentPage", "remove-password"); + return "security/remove-password"; + } - @GetMapping("/change-permissions") - public String permissionsForm(Model model) { - model.addAttribute("currentPage", "change-permissions"); - return "security/change-permissions"; - } + @GetMapping("/change-permissions") + public String permissionsForm(Model model) { + model.addAttribute("currentPage", "change-permissions"); + return "security/change-permissions"; + } - @PostMapping("/remove-password") - public ResponseEntity compressPDF(@RequestParam("fileInput") MultipartFile fileInput, - @RequestParam(name = "password") String password) throws IOException { - PDDocument document = PDDocument.load(fileInput.getBytes(), password); - document.setAllSecurityToBeRemoved(true); - return PdfUtils.pdfDocToWebResponse(document, fileInput.getName() + "_password_removed.pdf"); - } + @PostMapping("/remove-password") + public ResponseEntity compressPDF(@RequestParam("fileInput") MultipartFile fileInput, @RequestParam(name = "password") String password) throws IOException { + PDDocument document = PDDocument.load(fileInput.getBytes(), password); + document.setAllSecurityToBeRemoved(true); + return PdfUtils.pdfDocToWebResponse(document, fileInput.getName() + "_password_removed.pdf"); + } - @PostMapping("/add-password") - public ResponseEntity compressPDF(@RequestParam("fileInput") MultipartFile fileInput, - @RequestParam(defaultValue = "", name = "password") String password, - @RequestParam(defaultValue = "128", name = "keyLength") int keyLength, - @RequestParam(defaultValue = "false", name = "canAssembleDocument") boolean canAssembleDocument, - @RequestParam(defaultValue = "false", name = "canExtractContent") boolean canExtractContent, - @RequestParam(defaultValue = "false", name = "canExtractForAccessibility") boolean canExtractForAccessibility, - @RequestParam(defaultValue = "false", name = "canFillInForm") boolean canFillInForm, - @RequestParam(defaultValue = "false", name = "canModify") boolean canModify, - @RequestParam(defaultValue = "false", name = "canModifyAnnotations") boolean canModifyAnnotations, - @RequestParam(defaultValue = "false", name = "canPrint") boolean canPrint, - @RequestParam(defaultValue = "false", name = "canPrintFaithful") boolean canPrintFaithful) - throws IOException { + @PostMapping("/add-password") + public ResponseEntity compressPDF(@RequestParam("fileInput") MultipartFile fileInput, @RequestParam(defaultValue = "", name = "password") String password, + @RequestParam(defaultValue = "128", name = "keyLength") int keyLength, @RequestParam(defaultValue = "false", name = "canAssembleDocument") boolean canAssembleDocument, + @RequestParam(defaultValue = "false", name = "canExtractContent") boolean canExtractContent, + @RequestParam(defaultValue = "false", name = "canExtractForAccessibility") boolean canExtractForAccessibility, + @RequestParam(defaultValue = "false", name = "canFillInForm") boolean canFillInForm, @RequestParam(defaultValue = "false", name = "canModify") boolean canModify, + @RequestParam(defaultValue = "false", name = "canModifyAnnotations") boolean canModifyAnnotations, + @RequestParam(defaultValue = "false", name = "canPrint") boolean canPrint, @RequestParam(defaultValue = "false", name = "canPrintFaithful") boolean canPrintFaithful) + throws IOException { - PDDocument document = PDDocument.load(fileInput.getBytes()); - AccessPermission ap = new AccessPermission(); + PDDocument document = PDDocument.load(fileInput.getBytes()); + AccessPermission ap = new AccessPermission(); - ap.setCanAssembleDocument(!canAssembleDocument); - ap.setCanExtractContent(!canExtractContent); - ap.setCanExtractForAccessibility(!canExtractForAccessibility); - ap.setCanFillInForm(!canFillInForm); - ap.setCanModify(!canModify); - ap.setCanModifyAnnotations(!canModifyAnnotations); - ap.setCanPrint(!canPrint); - ap.setCanPrintFaithful(!canPrintFaithful); - StandardProtectionPolicy spp = new StandardProtectionPolicy(password, password, ap); - spp.setEncryptionKeyLength(keyLength); + ap.setCanAssembleDocument(!canAssembleDocument); + ap.setCanExtractContent(!canExtractContent); + ap.setCanExtractForAccessibility(!canExtractForAccessibility); + ap.setCanFillInForm(!canFillInForm); + ap.setCanModify(!canModify); + ap.setCanModifyAnnotations(!canModifyAnnotations); + ap.setCanPrint(!canPrint); + ap.setCanPrintFaithful(!canPrintFaithful); + StandardProtectionPolicy spp = new StandardProtectionPolicy(password, password, ap); + spp.setEncryptionKeyLength(keyLength); - spp.setPermissions(ap); + spp.setPermissions(ap); - document.protect(spp); + document.protect(spp); - return PdfUtils.pdfDocToWebResponse(document, fileInput.getName() + "_passworded.pdf"); - } + return PdfUtils.pdfDocToWebResponse(document, fileInput.getName() + "_passworded.pdf"); + } } diff --git a/src/main/java/stirling/software/SPDF/controller/security/WatermarkController.java b/src/main/java/stirling/software/SPDF/controller/security/WatermarkController.java index 6fd2c8cb..c8ca39fe 100644 --- a/src/main/java/stirling/software/SPDF/controller/security/WatermarkController.java +++ b/src/main/java/stirling/software/SPDF/controller/security/WatermarkController.java @@ -1,7 +1,6 @@ package stirling.software.SPDF.controller.security; import java.awt.Color; -import java.io.ByteArrayOutputStream; import java.io.IOException; import org.apache.pdfbox.pdmodel.PDDocument; @@ -9,11 +8,7 @@ import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.font.PDFont; import org.apache.pdfbox.pdmodel.font.PDType1Font; -import org.apache.pdfbox.pdmodel.graphics.state.PDExtendedGraphicsState; import org.apache.pdfbox.util.Matrix; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -27,57 +22,53 @@ import stirling.software.SPDF.utils.PdfUtils; @Controller public class WatermarkController { - @GetMapping("/add-watermark") - public String addWatermarkForm(Model model) { - model.addAttribute("currentPage", "add-watermark"); - return "security/add-watermark"; - } + @GetMapping("/add-watermark") + public String addWatermarkForm(Model model) { + model.addAttribute("currentPage", "add-watermark"); + return "security/add-watermark"; + } - @PostMapping("/add-watermark") - public ResponseEntity addWatermark(@RequestParam("fileInput") MultipartFile pdfFile, - @RequestParam("watermarkText") String watermarkText, - @RequestParam(defaultValue = "30", name = "fontSize") float fontSize, - @RequestParam(defaultValue = "0", name = "rotation") float rotation, - @RequestParam(defaultValue = "50", name = "widthSpacer") int widthSpacer, - @RequestParam(defaultValue = "50", name = "heightSpacer") int heightSpacer) throws IOException { + @PostMapping("/add-watermark") + public ResponseEntity addWatermark(@RequestParam("fileInput") MultipartFile pdfFile, @RequestParam("watermarkText") String watermarkText, + @RequestParam(defaultValue = "30", name = "fontSize") float fontSize, @RequestParam(defaultValue = "0", name = "rotation") float rotation, + @RequestParam(defaultValue = "50", name = "widthSpacer") int widthSpacer, @RequestParam(defaultValue = "50", name = "heightSpacer") int heightSpacer) + throws IOException { - // Load the input PDF - PDDocument document = PDDocument.load(pdfFile.getInputStream()); + // Load the input PDF + PDDocument document = PDDocument.load(pdfFile.getInputStream()); - // Create a page in the document - for (PDPage page : document.getPages()) { - // Get the page's content stream - PDPageContentStream contentStream = new PDPageContentStream(document, page, - PDPageContentStream.AppendMode.APPEND, true); + // Create a page in the document + for (PDPage page : document.getPages()) { + // Get the page's content stream + PDPageContentStream contentStream = new PDPageContentStream(document, page, PDPageContentStream.AppendMode.APPEND, true); - // Set font of watermark - PDFont font = PDType1Font.HELVETICA_BOLD; - contentStream.beginText(); - contentStream.setFont(font, fontSize); - contentStream.setNonStrokingColor(Color.LIGHT_GRAY); + // Set font of watermark + PDFont font = PDType1Font.HELVETICA_BOLD; + contentStream.beginText(); + contentStream.setFont(font, fontSize); + contentStream.setNonStrokingColor(Color.LIGHT_GRAY); - // Set size and location of watermark - float pageWidth = page.getMediaBox().getWidth(); - float pageHeight = page.getMediaBox().getHeight(); - float watermarkWidth = widthSpacer + font.getStringWidth(watermarkText) * fontSize / 1000; - float watermarkHeight = heightSpacer + fontSize; - int watermarkRows = (int) (pageHeight / watermarkHeight + 1); - int watermarkCols = (int) (pageWidth / watermarkWidth + 1); + // Set size and location of watermark + float pageWidth = page.getMediaBox().getWidth(); + float pageHeight = page.getMediaBox().getHeight(); + float watermarkWidth = widthSpacer + font.getStringWidth(watermarkText) * fontSize / 1000; + float watermarkHeight = heightSpacer + fontSize; + int watermarkRows = (int) (pageHeight / watermarkHeight + 1); + int watermarkCols = (int) (pageWidth / watermarkWidth + 1); - // Add the watermark text - for (int i = 0; i < watermarkRows; i++) { - for (int j = 0; j < watermarkCols; j++) { - contentStream.setTextMatrix(Matrix.getRotateInstance((float) Math.toRadians(rotation), - j * watermarkWidth, i * watermarkHeight)); - contentStream.showTextWithPositioning(new Object[] { watermarkText }); - } - } + // Add the watermark text + for (int i = 0; i < watermarkRows; i++) { + for (int j = 0; j < watermarkCols; j++) { + contentStream.setTextMatrix(Matrix.getRotateInstance((float) Math.toRadians(rotation), j * watermarkWidth, i * watermarkHeight)); + contentStream.showTextWithPositioning(new Object[] { watermarkText }); + } + } - contentStream.endText(); + contentStream.endText(); - // Close the content stream - contentStream.close(); - } - return PdfUtils.pdfDocToWebResponse(document, pdfFile.getName() + "_watermarked.pdf"); - } + // Close the content stream + contentStream.close(); + } + return PdfUtils.pdfDocToWebResponse(document, pdfFile.getName() + "_watermarked.pdf"); + } } diff --git a/src/main/java/stirling/software/SPDF/utils/PdfUtils.java b/src/main/java/stirling/software/SPDF/utils/PdfUtils.java index 43c235d6..da4a8023 100644 --- a/src/main/java/stirling/software/SPDF/utils/PdfUtils.java +++ b/src/main/java/stirling/software/SPDF/utils/PdfUtils.java @@ -1,5 +1,6 @@ package stirling.software.SPDF.utils; +import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -7,12 +8,13 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; -import java.util.Iterator; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; -import javax.imageio.IIOImage; import javax.imageio.ImageIO; -import javax.imageio.ImageWriter; -import javax.imageio.stream.ImageOutputStream; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; @@ -31,138 +33,164 @@ import com.spire.pdf.PdfDocument; public class PdfUtils { - private static final Logger logger = LoggerFactory.getLogger(PdfUtils.class); + private static final Logger logger = LoggerFactory.getLogger(PdfUtils.class); - public static byte[] convertToPdf(InputStream imageStream) throws IOException { + public static byte[] convertToPdf(InputStream imageStream) throws IOException { - // Create a File object for the image - File imageFile = new File("image.jpg"); + // Create a File object for the image + File imageFile = new File("image.jpg"); - try (FileOutputStream fos = new FileOutputStream(imageFile); InputStream input = imageStream) { - byte[] buffer = new byte[1024]; - int len; - // Read from the input stream and write to the file - while ((len = input.read(buffer)) != -1) { - fos.write(buffer, 0, len); - } - logger.info("Image successfully written to file: {}", imageFile.getAbsolutePath()); - } catch (IOException e) { - logger.error("Error writing image to file: {}", imageFile.getAbsolutePath(), e); - throw e; - } + try (FileOutputStream fos = new FileOutputStream(imageFile); InputStream input = imageStream) { + byte[] buffer = new byte[1024]; + int len; + // Read from the input stream and write to the file + while ((len = input.read(buffer)) != -1) { + fos.write(buffer, 0, len); + } + logger.info("Image successfully written to file: {}", imageFile.getAbsolutePath()); + } catch (IOException e) { + logger.error("Error writing image to file: {}", imageFile.getAbsolutePath(), e); + throw e; + } - try (PDDocument doc = new PDDocument()) { - // Create a new PDF page - PDPage page = new PDPage(); - doc.addPage(page); + try (PDDocument doc = new PDDocument()) { + // Create a new PDF page + PDPage page = new PDPage(); + doc.addPage(page); - // Create an image object from the image file - PDImageXObject image = PDImageXObject.createFromFileByContent(imageFile, doc); + // Create an image object from the image file + PDImageXObject image = PDImageXObject.createFromFileByContent(imageFile, doc); - try (PDPageContentStream contentStream = new PDPageContentStream(doc, page)) { - // Draw the image onto the page - contentStream.drawImage(image, 0, 0); - logger.info("Image successfully added to PDF"); - } catch (IOException e) { - logger.error("Error adding image to PDF", e); - throw e; - } + try (PDPageContentStream contentStream = new PDPageContentStream(doc, page)) { + // Draw the image onto the page + contentStream.drawImage(image, 0, 0); + logger.info("Image successfully added to PDF"); + } catch (IOException e) { + logger.error("Error adding image to PDF", e); + throw e; + } - // Create a ByteArrayOutputStream to save the PDF to - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - doc.save(byteArrayOutputStream); - logger.info("PDF successfully saved to byte array"); - return byteArrayOutputStream.toByteArray(); - } - } + // Create a ByteArrayOutputStream to save the PDF to + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + doc.save(byteArrayOutputStream); + logger.info("PDF successfully saved to byte array"); + return byteArrayOutputStream.toByteArray(); + } + } - public static byte[] convertFromPdf(byte[] inputStream, String imageType) throws IOException { - try (PDDocument document = PDDocument.load(new ByteArrayInputStream(inputStream))) { - // Create a PDFRenderer to convert the PDF to an image - PDFRenderer pdfRenderer = new PDFRenderer(document); - BufferedImage bim = pdfRenderer.renderImageWithDPI(0, 300, ImageType.RGB); + public static byte[] convertFromPdf(byte[] inputStream, String imageType, ImageType colorType, boolean singleImage, int DPI) + throws IOException, Exception { + try (PDDocument document = PDDocument.load(new ByteArrayInputStream(inputStream))) { + PDFRenderer pdfRenderer = new PDFRenderer(document); + int pageCount = document.getNumberOfPages(); + List images = new ArrayList<>(); - // Get an ImageWriter for the specified image type - Iterator writers = ImageIO.getImageWritersByFormatName(imageType); - ImageWriter writer = writers.next(); + // Create images of all pages + for (int i = 0; i < pageCount; i++) { + images.add(pdfRenderer.renderImageWithDPI(i, 300, colorType)); + } + + if (singleImage) { + // Combine all images into a single big image + BufferedImage combined = new BufferedImage(images.get(0).getWidth(), images.get(0).getHeight() * pageCount, BufferedImage.TYPE_INT_RGB); + Graphics g = combined.getGraphics(); + for (int i = 0; i < images.size(); i++) { + g.drawImage(images.get(i), 0, i * images.get(0).getHeight(), null); + } + images = Arrays.asList(combined); + } - // Create a ByteArrayOutputStream to save the image to - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - try (ImageOutputStream ios = ImageIO.createImageOutputStream(baos)) { - writer.setOutput(ios); - // Write the image to the output stream - writer.write(new IIOImage(bim, null, null)); - // Log that the image was successfully written to the byte array - logger.info("Image successfully written to byte array"); - } - return baos.toByteArray(); - } catch (IOException e) { - // Log an error message if there is an issue converting the PDF to an image - logger.error("Error converting PDF to image", e); - throw e; - } - } + // Create a ByteArrayOutputStream to save the image(s) to + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + if (singleImage) { + // Write the image to the output stream + ImageIO.write(images.get(0), "PNG", baos); - public static byte[] overlayImage(byte[] pdfBytes, byte[] imageBytes, float x, float y) throws IOException { + // Log that the image was successfully written to the byte array + logger.info("Image successfully written to byte array"); + } else { + // Zip the images and return as byte array + try (ZipOutputStream zos = new ZipOutputStream(baos)) { + for (int i = 0; i < images.size(); i++) { + BufferedImage image = images.get(i); + try (ByteArrayOutputStream baosImage = new ByteArrayOutputStream()) { + ImageIO.write(image, "PNG", baosImage); - try (PDDocument document = PDDocument.load(new ByteArrayInputStream(pdfBytes))) { - // Get the first page of the PDF - PDPage page = document.getPage(0); - try (PDPageContentStream contentStream = new PDPageContentStream(document, page, - PDPageContentStream.AppendMode.APPEND, true)) { - // Create an image object from the image bytes - PDImageXObject image = PDImageXObject.createFromByteArray(document, imageBytes, ""); - // Draw the image onto the page at the specified x and y coordinates - contentStream.drawImage(image, x, y); - logger.info("Image successfully overlayed onto PDF"); - } - // Create a ByteArrayOutputStream to save the PDF to - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - document.save(baos); - logger.info("PDF successfully saved to byte array"); - return baos.toByteArray(); - } catch (IOException e) { - // Log an error message if there is an issue overlaying the image onto the PDF - logger.error("Error overlaying image onto PDF", e); - throw e; - } - } + // Add the image to the zip file + zos.putNextEntry(new ZipEntry(String.format("page_%d.%s", i + 1, "png"))); + zos.write(baosImage.toByteArray()); + } + } + // Log that the images were successfully written to the byte array + logger.info("Images successfully written to byte array as a zip"); + } + } + return baos.toByteArray(); + } catch (IOException e) { + // Log an error message if there is an issue converting the PDF to an image + logger.error("Error converting PDF to image", e); + throw e; + } + } - public static ResponseEntity pdfDocToWebResponse(PdfDocument document, String docName) throws IOException { + public static byte[] overlayImage(byte[] pdfBytes, byte[] imageBytes, float x, float y) throws IOException { - // Open Byte Array and save document to it - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - document.saveToStream(baos); - // Close the document - document.close(); + try (PDDocument document = PDDocument.load(new ByteArrayInputStream(pdfBytes))) { + // Get the first page of the PDF + PDPage page = document.getPage(0); + try (PDPageContentStream contentStream = new PDPageContentStream(document, page, PDPageContentStream.AppendMode.APPEND, true)) { + // Create an image object from the image bytes + PDImageXObject image = PDImageXObject.createFromByteArray(document, imageBytes, ""); + // Draw the image onto the page at the specified x and y coordinates + contentStream.drawImage(image, x, y); + logger.info("Image successfully overlayed onto PDF"); + } + // Create a ByteArrayOutputStream to save the PDF to + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + document.save(baos); + logger.info("PDF successfully saved to byte array"); + return baos.toByteArray(); + } catch (IOException e) { + // Log an error message if there is an issue overlaying the image onto the PDF + logger.error("Error overlaying image onto PDF", e); + throw e; + } + } - return PdfUtils.boasToWebResponse(baos, docName); - } + public static ResponseEntity pdfDocToWebResponse(PdfDocument document, String docName) throws IOException { - public static ResponseEntity pdfDocToWebResponse(PDDocument document, String docName) throws IOException { + // Open Byte Array and save document to it + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + document.saveToStream(baos); + // Close the document + document.close(); - // Open Byte Array and save document to it - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - document.save(baos); - // Close the document - document.close(); + return PdfUtils.boasToWebResponse(baos, docName); + } - return PdfUtils.boasToWebResponse(baos, docName); - } + public static ResponseEntity pdfDocToWebResponse(PDDocument document, String docName) throws IOException { - public static ResponseEntity boasToWebResponse(ByteArrayOutputStream baos, String docName) - throws IOException { - return PdfUtils.bytesToWebResponse(baos.toByteArray(), docName); + // Open Byte Array and save document to it + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + document.save(baos); + // Close the document + document.close(); - } + return PdfUtils.boasToWebResponse(baos, docName); + } - public static ResponseEntity bytesToWebResponse(byte[] bytes, String docName) throws IOException { + public static ResponseEntity boasToWebResponse(ByteArrayOutputStream baos, String docName) throws IOException { + return PdfUtils.bytesToWebResponse(baos.toByteArray(), docName); - // Return the PDF as a response - HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_PDF); - headers.setContentLength(bytes.length); - headers.setContentDispositionFormData("attachment", docName); - return new ResponseEntity<>(bytes, headers, HttpStatus.OK); - } + } + + public static ResponseEntity bytesToWebResponse(byte[] bytes, String docName) throws IOException { + + // Return the PDF as a response + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_PDF); + headers.setContentLength(bytes.length); + headers.setContentDispositionFormData("attachment", docName); + return new ResponseEntity<>(bytes, headers, HttpStatus.OK); + } } diff --git a/src/main/resources/messages_ar_AR.properties b/src/main/resources/messages_ar_AR.properties index 50bda14e..9eea4c5c 100644 --- a/src/main/resources/messages_ar_AR.properties +++ b/src/main/resources/messages_ar_AR.properties @@ -16,6 +16,10 @@ genericSubmit=إرسال processTimeWarning=تحذير: يمكن أن تستغرق هذه العملية ما يصل إلى دقيقة حسب حجم المل٠pageOrderPrompt=ترتيب الصÙحات (أدخل قائمة بأرقام الصÙحات Ù…Ùصولة بÙواصل): goToPage=اذهب +true=\u0635\u062D\u064A\u062D +false=\u062E\u0637\u0623 +unknown=\u063A\u064A\u0631 \u0645\u0639\u0631\u0648\u0641 + ############# # HOME-PAGE # ############# @@ -65,7 +69,8 @@ home.removePassword.desc=إزالة الحماية بكلمة مرور من مس home.compressPdfs.title=ضغط ملÙات PDF home.compressPdfs.desc=ضغط ملÙات PDF لتقليل حجم الملÙ. - +home.changeMetadata.title = \u062A\u063A\u064A\u064A\u0631 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0627\u0644\u0648\u0635\u0641\u064A\u0629 +home.changeMetadata.desc = \u062A\u063A\u064A\u064A\u0631 / \u0625\u0632\u0627\u0644\u0629 / \u0625\u0636\u0627\u0641\u0629 \u0628\u064A\u0627\u0646\u0627\u062A \u0623\u0648\u0644\u064A\u0629 \u0645\u0646 \u0645\u0633\u062A\u0646\u062F PDF #Add image addImage.title=إضاÙØ© صورة @@ -129,6 +134,13 @@ imageToPDF.submit=تحول pdfToImage.title=تحويل PDF إلى صورة pdfToImage.header=تحويل PDF إلى صورة pdfToImage.selectText=تنسيق الصورة +pdfToImage.singleOrMultiple = \u0646\u0648\u0639 \u0646\u062A\u064A\u062C\u0629 \u0627\u0644\u0635\u0648\u0631\u0629 +pdfToImage.single = \u0635\u0648\u0631\u0629 \u0648\u0627\u062D\u062F\u0629 \u0643\u0628\u064A\u0631\u0629 +pdfToImage.multi = \u0635\u0648\u0631 \u0645\u062A\u0639\u062F\u062F\u0629 +pdfToImage.colorType = \u0646\u0648\u0639 \u0627\u0644\u0644\u0648\u0646 +pdfToImage.color = \u0627\u0644\u0644\u0648\u0646 +pdfToImage.grey = \u062A\u062F\u0631\u062C \u0627\u0644\u0631\u0645\u0627\u062F\u064A +pdfToImage.blackwhite = \u0623\u0628\u064A\u0636 \u0648\u0623\u0633\u0648\u062F (\u0642\u062F \u064A\u0641\u0642\u062F \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A!) pdfToImage.submit=تحول #addPassword @@ -182,4 +194,22 @@ removePassword.title=إزالة كلمة المرور removePassword.header=إزالة كلمة المرور (ÙÙƒ التشÙير) removePassword.selectText.1=حدد PDF Ù„ÙÙƒ التشÙير removePassword.selectText.2=كلمة المرور -removePassword.submit=إزالة \ No newline at end of file +removePassword.submit=إزالة + +changeMetadata.title = \u062A\u063A\u064A\u064A\u0631 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0627\u0644\u0648\u0635\u0641\u064A\u0629 +changeMetadata.header = \u062A\u063A\u064A\u064A\u0631 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0627\u0644\u0648\u0635\u0641\u064A\u0629 +changeMetadata.selectText.1 = \u064A\u0631\u062C\u0649 \u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u0645\u062A\u063A\u064A\u0631\u0627\u062A \u0627\u0644\u062A\u064A \u062A\u0631\u063A\u0628 \u0641\u064A \u062A\u063A\u064A\u064A\u0631\u0647\u0627 +changeMetadata.selectText.2 = \u062D\u0630\u0641 \u0643\u0644 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0627\u0644\u0623\u0648\u0644\u064A\u0629 +changeMetadata.selectText.3 = \u0625\u0638\u0647\u0627\u0631 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0627\u0644\u0623\u0648\u0644\u064A\u0629 \u0627\u0644\u0645\u062E\u0635\u0635\u0629: +changeMetadata.author = \u0627\u0644\u0645\u0624\u0644\u0641: +changeMetadata.creationDate = \u062A\u0627\u0631\u064A\u062E \u0627\u0644\u0625\u0646\u0634\u0627\u0621 (yyyy / MM / dd HH: mm: ss): +changeMetadata.creator = \u0627\u0644\u0645\u0646\u0634\u0626: +changeMetadata.keywords = \u0627\u0644\u0643\u0644\u0645\u0627\u062A \u0627\u0644\u0631\u0626\u064A\u0633\u064A\u0629: +changeMetadata.modDate = \u062A\u0627\u0631\u064A\u062E \u0627\u0644\u062A\u0639\u062F\u064A\u0644 (yyyy / MM / dd HH: mm: ss): +changeMetadata.producer = \u0627\u0644\u0645\u0646\u062A\u062C: +changeMetadata.subject = \u0627\u0644\u0645\u0648\u0636\u0648\u0639: +changeMetadata.title = \u0627\u0644\u0639\u0646\u0648\u0627\u0646: +changeMetadata.trapped = \u0645\u062D\u0627\u0635\u0631: +changeMetadata.selectText.4 = \u0628\u064A\u0627\u0646\u0627\u062A \u0648\u0635\u0641\u064A\u0629 \u0623\u062E\u0631\u0649: +changeMetadata.selectText.5 = \u0625\u0636\u0627\u0641\u0629 \u0625\u062F\u062E\u0627\u0644 \u0628\u064A\u0627\u0646\u0627\u062A \u0623\u0648\u0644\u064A\u0629 \u0645\u062E\u0635\u0635 +changeMetadata.submit = \u062A\u063A\u064A\u064A\u0631 diff --git a/src/main/resources/messages_de_DE.properties b/src/main/resources/messages_de_DE.properties index b5ce3c9d..b2972fb2 100644 --- a/src/main/resources/messages_de_DE.properties +++ b/src/main/resources/messages_de_DE.properties @@ -12,6 +12,10 @@ genericSubmit=Einreichen processTimeWarning=Achtung: Abhängig von der Dateigröße kann dieser Prozess bis zu einer Minute dauern pageOrderPrompt=Seitenreihenfolge (Geben Sie eine durch Komma getrennte Liste von Seitenzahlen ein): goToPage=Los +true=Wahr +false=Falsch +unknown=Unbekannt + ############# # HOME-PAGE # ############# @@ -61,7 +65,8 @@ home.removePassword.desc=Den Passwortschutz eines PDFs entfernen. home.compressPdfs.title=PDF komprimieren home.compressPdfs.desc=PDF komprimieren um die Dateigröße zu reduzieren. - +home.changeMetadata.title=Metadaten ändern +home.changeMetadata.desc=Ändern/Entfernen/Hinzufügen von Metadaten aus einem PDF-Dokument #Add image addImage.title=Bild hinzufügen @@ -126,6 +131,13 @@ imageToPDF.submit=Umwandeln pdfToImage.title=PDF zu Bild pdfToImage.header=PDF zu Bild pdfToImage.selectText=Bildformat +pdfToImage.singleOrMultiple=Bildergebnistyp +pdfToImage.single=Einzelnes großes Bild +pdfToImage.multi=Mehrere Bilder +pdfToImage.colorType=Farbtyp +pdfToImage.color=Farbe +pdfToImage.grey=Graustufen +pdfToImage.blackwhite=Schwarzweiß (Datenverlust möglich!) pdfToImage.submit=Umwandeln #addPassword @@ -182,7 +194,23 @@ removePassword.selectText.2=Passwort removePassword.submit=Entfernen - +changeMetadata.title=Metadaten ändern +changeMetadata.header=Metadaten ändern +changeMetadata.selectText.1=Bitte bearbeiten Sie die Variablen, die Sie ändern möchten +changeMetadata.selectText.2=Alle Metadaten löschen +changeMetadata.selectText.3=Benutzerdefinierte Metadaten anzeigen: +changeMetadata.author=Autor: +changeMetadata.creationDate=Erstellungsdatum (jjjj/MM/tt HH:mm:ss): +changeMetadata.creator=Ersteller: +changeMetadata.keywords=Schlüsselwörter: +changeMetadata.modDate=Änderungsdatum (JJJJ/MM/TT HH:mm:ss): +changeMetadata.producer=Produzent: +changeMetadata.subject=Betreff: +changeMetadata.title=Titel: +changeMetadata.trapped=Gefangen: +changeMetadata.selectText.4=Andere Metadaten: +changeMetadata.selectText.5=Benutzerdefinierten Metadateneintrag hinzufügen +changeMetadata.submit=Ändern diff --git a/src/main/resources/messages_en_GB.properties b/src/main/resources/messages_en_GB.properties index 42d64213..7f74c968 100644 --- a/src/main/resources/messages_en_GB.properties +++ b/src/main/resources/messages_en_GB.properties @@ -11,7 +11,10 @@ imgPrompt=Choose Image genericSubmit=Submit processTimeWarning=Warning: This process can take up to a minute depending on file-size pageOrderPrompt=Page Order (Enter a comma-separated list of page numbers) : -goToPage=go +goToPage=Go +true=True +false=False +unknown=Unknown ############# # HOME-PAGE # ############# @@ -61,6 +64,8 @@ home.removePassword.desc=Remove password protection from your PDF document. home.compressPdfs.title=Compress PDFs home.compressPdfs.desc=Compress PDFs to reduce their file size. +home.changeMetadata.title=Change Metadata +home.changeMetadata.desc=Change/Remove/Add metadata from a PDF document #Add image @@ -125,6 +130,13 @@ imageToPDF.submit=Convert pdfToImage.title=PDF to Image pdfToImage.header=PDF to Image pdfToImage.selectText=Image Format +pdfToImage.singleOrMultiple=Image result type +pdfToImage.single=Single Big Image +pdfToImage.multi=Multiple Images +pdfToImage.colorType=Colour type +pdfToImage.color=Colour +pdfToImage.grey=Greyscale +pdfToImage.blackwhite=Black and White (May lose data!) pdfToImage.submit=Convert #addPassword @@ -178,4 +190,49 @@ removePassword.title=Remove password removePassword.header=Remove password (Decrypt) removePassword.selectText.1=Select PDF to Decrypt removePassword.selectText.2=Password -removePassword.submit=Remove \ No newline at end of file +removePassword.submit=Remove + +changeMetadata.title=Change Metadata +changeMetadata.header=Change Metadata +changeMetadata.selectText.1=Please edit the variables you wish to change +changeMetadata.selectText.2=Delete all metadata +changeMetadata.selectText.3=Show Custom Metadata: +changeMetadata.author=Author: +changeMetadata.creationDate=Creation Date (yyyy/MM/dd HH:mm:ss): +changeMetadata.creator=Creator: +changeMetadata.keywords=Keywords: +changeMetadata.modDate=Modification Date (yyyy/MM/dd HH:mm:ss): +changeMetadata.producer=Producer: +changeMetadata.subject=Subject: +changeMetadata.title=Title: +changeMetadata.trapped=Trapped: +changeMetadata.selectText.4=Other Metadata: +changeMetadata.selectText.5=Add Custom Metadata Entry +changeMetadata.submit=Change + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/messages_en_US.properties b/src/main/resources/messages_en_US.properties index dab6e8b7..c469fc23 100644 --- a/src/main/resources/messages_en_US.properties +++ b/src/main/resources/messages_en_US.properties @@ -11,7 +11,10 @@ imgPrompt=Choose Image genericSubmit=Submit processTimeWarning=Warning: This process can take up to a minute depending on file-size pageOrderPrompt=Page Order (Enter a comma-separated list of page numbers) : -goToPage=go +goToPage=Go +true=True +false=False +unknown=Unknown ############# # HOME-PAGE # ############# @@ -61,6 +64,8 @@ home.removePassword.desc=Remove password protection from your PDF document. home.compressPdfs.title=Compress PDFs home.compressPdfs.desc=Compress PDFs to reduce their file size. +home.changeMetadata.title=Change Metadata +home.changeMetadata.desc=Change/Remove/Add metadata from a PDF document #Add image @@ -125,8 +130,16 @@ imageToPDF.submit=Convert pdfToImage.title=PDF to Image pdfToImage.header=PDF to Image pdfToImage.selectText=Image Format +pdfToImage.singleOrMultiple=Image result type +pdfToImage.single=Single Big Image +pdfToImage.multi=Multiple Images +pdfToImage.colorType=Color type +pdfToImage.color=Color +pdfToImage.grey=Grayscale +pdfToImage.blackwhite=Black and White (May lose data!) pdfToImage.submit=Convert + #addPassword addPassword.title=Add Password addPassword.header=Add password (Encrypt) @@ -180,8 +193,23 @@ removePassword.selectText.1=Select PDF to Decrypt removePassword.selectText.2=Password removePassword.submit=Remove - - +changeMetadata.title=Change Metadata +changeMetadata.header=Change Metadata +changeMetadata.selectText.1=Please edit the variables you wish to change +changeMetadata.selectText.2=Delete all metadata +changeMetadata.selectText.3=Show Custom Metadata: +changeMetadata.author=Author: +changeMetadata.creationDate=Creation Date (yyyy/MM/dd HH:mm:ss): +changeMetadata.creator=Creator: +changeMetadata.keywords=Keywords: +changeMetadata.modDate=Modification Date (yyyy/MM/dd HH:mm:ss): +changeMetadata.producer=Producer: +changeMetadata.subject=Subject: +changeMetadata.title=Title: +changeMetadata.trapped=Trapped: +changeMetadata.selectText.4=Other Metadata: +changeMetadata.selectText.5=Add Custom Metadata Entry +changeMetadata.submit=Change diff --git a/src/main/resources/messages_fr_FR.properties b/src/main/resources/messages_fr_FR.properties index a5089e32..9052ddbf 100644 --- a/src/main/resources/messages_fr_FR.properties +++ b/src/main/resources/messages_fr_FR.properties @@ -15,7 +15,11 @@ imgPrompt=Choisir une image genericSubmit=Soumettre processTimeWarning=Attention : ce processus peut prendre jusqu'à une minute en fonction de la taille du fichier pageOrderPrompt=Ordre des pages (Entrez une liste de numéros de page séparés par des virgules) : -goToPage=aller +goToPage=Aller +true=Vrai +false=Faux +unknown=Inconnu + ############# # HOME-PAGE # ############# @@ -65,6 +69,8 @@ home.removePassword.desc=Supprimez la protection par mot de passe de votre docum home.compressPdfs.title=Compresser les PDF home.compressPdfs.desc=Compressez les PDF pour réduire leur taille de fichier. +home.changeMetadata.title=Modifier les métadonnées +home.changeMetadata.desc=Modifier/Supprimer/Ajouter des métadonnées d'un document PDF #Add image @@ -129,6 +135,13 @@ imageToPDF.submit=Convertir pdfToImage.title=PDF vers image pdfToImage.header=PDF vers image pdfToImage.selectText=Format d'image +pdfToImage.singleOrMultiple=Type de résultat d'image +pdfToImage.single=Une seule grande image +pdfToImage.multi=Plusieurs images +pdfToImage.colorType=Type de couleur +pdfToImage.color=Couleur +pdfToImage.grey=Niveaux de gris +pdfToImage.blackwhite=Noir et Blanc (Peut perdre des données !) pdfToImage.submit=Convertir #addPassword @@ -182,4 +195,22 @@ removePassword.title=Supprimer le mot de passe removePassword.header=Supprimer le mot de passe (Déchiffrer) removePassword.selectText.1=Sélectionnez le PDF à déchiffrer removePassword.selectText.2=Mot de passe -removePassword.submit=Supprimer \ No newline at end of file +removePassword.submit=Supprimer + +changeMetadata.title=Modifier les métadonnées +changeMetadata.header=Modifier les métadonnées +changeMetadata.selectText.1=Veuillez modifier les variables que vous souhaitez modifier +changeMetadata.selectText.2=Supprimer toutes les métadonnées +changeMetadata.selectText.3=Afficher les métadonnées personnalisées: +changeMetadata.author=Auteur: +changeMetadata.creationDate=Date de création (aaaa/MM/jj HH:mm:ss): +changeMetadata.creator=Créateur: +changeMetadata.keywords=Mots clés: +changeMetadata.modDate=Date de modification (aaaa/MM/jj HH:mm:ss): +changeMetadata.producer=Producteur: +changeMetadata.subject=Objet: +changeMetadata.title=Titre: +changeMetadata.trapped=Piégé: +changeMetadata.selectText.4=Autres métadonnées: +changeMetadata.selectText.5=Ajouter une entrée de métadonnées personnalisées +changeMetadata.submit=Modifier diff --git a/src/main/resources/static/css/bootstrap-icons.css b/src/main/resources/static/css/bootstrap-icons.css new file mode 100644 index 00000000..7ebc9f1a --- /dev/null +++ b/src/main/resources/static/css/bootstrap-icons.css @@ -0,0 +1,2018 @@ +@font-face { + font-display: block; + font-family: "bootstrap-icons"; + src: url("./fonts/bootstrap-icons.woff2?24e3eb84d0bcaf83d77f904c78ac1f47") format("woff2"), +url("./fonts/bootstrap-icons.woff?24e3eb84d0bcaf83d77f904c78ac1f47") format("woff"); +} + +.bi::before, +[class^="bi-"]::before, +[class*=" bi-"]::before { + display: inline-block; + font-family: bootstrap-icons !important; + font-style: normal; + font-weight: normal !important; + font-variant: normal; + text-transform: none; + line-height: 1; + vertical-align: -.125em; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.bi-123::before { content: "\f67f"; } +.bi-alarm-fill::before { content: "\f101"; } +.bi-alarm::before { content: "\f102"; } +.bi-align-bottom::before { content: "\f103"; } +.bi-align-center::before { content: "\f104"; } +.bi-align-end::before { content: "\f105"; } +.bi-align-middle::before { content: "\f106"; } +.bi-align-start::before { content: "\f107"; } +.bi-align-top::before { content: "\f108"; } +.bi-alt::before { content: "\f109"; } +.bi-app-indicator::before { content: "\f10a"; } +.bi-app::before { content: "\f10b"; } +.bi-archive-fill::before { content: "\f10c"; } +.bi-archive::before { content: "\f10d"; } +.bi-arrow-90deg-down::before { content: "\f10e"; } +.bi-arrow-90deg-left::before { content: "\f10f"; } +.bi-arrow-90deg-right::before { content: "\f110"; } +.bi-arrow-90deg-up::before { content: "\f111"; } +.bi-arrow-bar-down::before { content: "\f112"; } +.bi-arrow-bar-left::before { content: "\f113"; } +.bi-arrow-bar-right::before { content: "\f114"; } +.bi-arrow-bar-up::before { content: "\f115"; } +.bi-arrow-clockwise::before { content: "\f116"; } +.bi-arrow-counterclockwise::before { content: "\f117"; } +.bi-arrow-down-circle-fill::before { content: "\f118"; } +.bi-arrow-down-circle::before { content: "\f119"; } +.bi-arrow-down-left-circle-fill::before { content: "\f11a"; } +.bi-arrow-down-left-circle::before { content: "\f11b"; } +.bi-arrow-down-left-square-fill::before { content: "\f11c"; } +.bi-arrow-down-left-square::before { content: "\f11d"; } +.bi-arrow-down-left::before { content: "\f11e"; } +.bi-arrow-down-right-circle-fill::before { content: "\f11f"; } +.bi-arrow-down-right-circle::before { content: "\f120"; } +.bi-arrow-down-right-square-fill::before { content: "\f121"; } +.bi-arrow-down-right-square::before { content: "\f122"; } +.bi-arrow-down-right::before { content: "\f123"; } +.bi-arrow-down-short::before { content: "\f124"; } +.bi-arrow-down-square-fill::before { content: "\f125"; } +.bi-arrow-down-square::before { content: "\f126"; } +.bi-arrow-down-up::before { content: "\f127"; } +.bi-arrow-down::before { content: "\f128"; } +.bi-arrow-left-circle-fill::before { content: "\f129"; } +.bi-arrow-left-circle::before { content: "\f12a"; } +.bi-arrow-left-right::before { content: "\f12b"; } +.bi-arrow-left-short::before { content: "\f12c"; } +.bi-arrow-left-square-fill::before { content: "\f12d"; } +.bi-arrow-left-square::before { content: "\f12e"; } +.bi-arrow-left::before { content: "\f12f"; } +.bi-arrow-repeat::before { content: "\f130"; } +.bi-arrow-return-left::before { content: "\f131"; } +.bi-arrow-return-right::before { content: "\f132"; } +.bi-arrow-right-circle-fill::before { content: "\f133"; } +.bi-arrow-right-circle::before { content: "\f134"; } +.bi-arrow-right-short::before { content: "\f135"; } +.bi-arrow-right-square-fill::before { content: "\f136"; } +.bi-arrow-right-square::before { content: "\f137"; } +.bi-arrow-right::before { content: "\f138"; } +.bi-arrow-up-circle-fill::before { content: "\f139"; } +.bi-arrow-up-circle::before { content: "\f13a"; } +.bi-arrow-up-left-circle-fill::before { content: "\f13b"; } +.bi-arrow-up-left-circle::before { content: "\f13c"; } +.bi-arrow-up-left-square-fill::before { content: "\f13d"; } +.bi-arrow-up-left-square::before { content: "\f13e"; } +.bi-arrow-up-left::before { content: "\f13f"; } +.bi-arrow-up-right-circle-fill::before { content: "\f140"; } +.bi-arrow-up-right-circle::before { content: "\f141"; } +.bi-arrow-up-right-square-fill::before { content: "\f142"; } +.bi-arrow-up-right-square::before { content: "\f143"; } +.bi-arrow-up-right::before { content: "\f144"; } +.bi-arrow-up-short::before { content: "\f145"; } +.bi-arrow-up-square-fill::before { content: "\f146"; } +.bi-arrow-up-square::before { content: "\f147"; } +.bi-arrow-up::before { content: "\f148"; } +.bi-arrows-angle-contract::before { content: "\f149"; } +.bi-arrows-angle-expand::before { content: "\f14a"; } +.bi-arrows-collapse::before { content: "\f14b"; } +.bi-arrows-expand::before { content: "\f14c"; } +.bi-arrows-fullscreen::before { content: "\f14d"; } +.bi-arrows-move::before { content: "\f14e"; } +.bi-aspect-ratio-fill::before { content: "\f14f"; } +.bi-aspect-ratio::before { content: "\f150"; } +.bi-asterisk::before { content: "\f151"; } +.bi-at::before { content: "\f152"; } +.bi-award-fill::before { content: "\f153"; } +.bi-award::before { content: "\f154"; } +.bi-back::before { content: "\f155"; } +.bi-backspace-fill::before { content: "\f156"; } +.bi-backspace-reverse-fill::before { content: "\f157"; } +.bi-backspace-reverse::before { content: "\f158"; } +.bi-backspace::before { content: "\f159"; } +.bi-badge-3d-fill::before { content: "\f15a"; } +.bi-badge-3d::before { content: "\f15b"; } +.bi-badge-4k-fill::before { content: "\f15c"; } +.bi-badge-4k::before { content: "\f15d"; } +.bi-badge-8k-fill::before { content: "\f15e"; } +.bi-badge-8k::before { content: "\f15f"; } +.bi-badge-ad-fill::before { content: "\f160"; } +.bi-badge-ad::before { content: "\f161"; } +.bi-badge-ar-fill::before { content: "\f162"; } +.bi-badge-ar::before { content: "\f163"; } +.bi-badge-cc-fill::before { content: "\f164"; } +.bi-badge-cc::before { content: "\f165"; } +.bi-badge-hd-fill::before { content: "\f166"; } +.bi-badge-hd::before { content: "\f167"; } +.bi-badge-tm-fill::before { content: "\f168"; } +.bi-badge-tm::before { content: "\f169"; } +.bi-badge-vo-fill::before { content: "\f16a"; } +.bi-badge-vo::before { content: "\f16b"; } +.bi-badge-vr-fill::before { content: "\f16c"; } +.bi-badge-vr::before { content: "\f16d"; } +.bi-badge-wc-fill::before { content: "\f16e"; } +.bi-badge-wc::before { content: "\f16f"; } +.bi-bag-check-fill::before { content: "\f170"; } +.bi-bag-check::before { content: "\f171"; } +.bi-bag-dash-fill::before { content: "\f172"; } +.bi-bag-dash::before { content: "\f173"; } +.bi-bag-fill::before { content: "\f174"; } +.bi-bag-plus-fill::before { content: "\f175"; } +.bi-bag-plus::before { content: "\f176"; } +.bi-bag-x-fill::before { content: "\f177"; } +.bi-bag-x::before { content: "\f178"; } +.bi-bag::before { content: "\f179"; } +.bi-bar-chart-fill::before { content: "\f17a"; } +.bi-bar-chart-line-fill::before { content: "\f17b"; } +.bi-bar-chart-line::before { content: "\f17c"; } +.bi-bar-chart-steps::before { content: "\f17d"; } +.bi-bar-chart::before { content: "\f17e"; } +.bi-basket-fill::before { content: "\f17f"; } +.bi-basket::before { content: "\f180"; } +.bi-basket2-fill::before { content: "\f181"; } +.bi-basket2::before { content: "\f182"; } +.bi-basket3-fill::before { content: "\f183"; } +.bi-basket3::before { content: "\f184"; } +.bi-battery-charging::before { content: "\f185"; } +.bi-battery-full::before { content: "\f186"; } +.bi-battery-half::before { content: "\f187"; } +.bi-battery::before { content: "\f188"; } +.bi-bell-fill::before { content: "\f189"; } +.bi-bell::before { content: "\f18a"; } +.bi-bezier::before { content: "\f18b"; } +.bi-bezier2::before { content: "\f18c"; } +.bi-bicycle::before { content: "\f18d"; } +.bi-binoculars-fill::before { content: "\f18e"; } +.bi-binoculars::before { content: "\f18f"; } +.bi-blockquote-left::before { content: "\f190"; } +.bi-blockquote-right::before { content: "\f191"; } +.bi-book-fill::before { content: "\f192"; } +.bi-book-half::before { content: "\f193"; } +.bi-book::before { content: "\f194"; } +.bi-bookmark-check-fill::before { content: "\f195"; } +.bi-bookmark-check::before { content: "\f196"; } +.bi-bookmark-dash-fill::before { content: "\f197"; } +.bi-bookmark-dash::before { content: "\f198"; } +.bi-bookmark-fill::before { content: "\f199"; } +.bi-bookmark-heart-fill::before { content: "\f19a"; } +.bi-bookmark-heart::before { content: "\f19b"; } +.bi-bookmark-plus-fill::before { content: "\f19c"; } +.bi-bookmark-plus::before { content: "\f19d"; } +.bi-bookmark-star-fill::before { content: "\f19e"; } +.bi-bookmark-star::before { content: "\f19f"; } +.bi-bookmark-x-fill::before { content: "\f1a0"; } +.bi-bookmark-x::before { content: "\f1a1"; } +.bi-bookmark::before { content: "\f1a2"; } +.bi-bookmarks-fill::before { content: "\f1a3"; } +.bi-bookmarks::before { content: "\f1a4"; } +.bi-bookshelf::before { content: "\f1a5"; } +.bi-bootstrap-fill::before { content: "\f1a6"; } +.bi-bootstrap-reboot::before { content: "\f1a7"; } +.bi-bootstrap::before { content: "\f1a8"; } +.bi-border-all::before { content: "\f1a9"; } +.bi-border-bottom::before { content: "\f1aa"; } +.bi-border-center::before { content: "\f1ab"; } +.bi-border-inner::before { content: "\f1ac"; } +.bi-border-left::before { content: "\f1ad"; } +.bi-border-middle::before { content: "\f1ae"; } +.bi-border-outer::before { content: "\f1af"; } +.bi-border-right::before { content: "\f1b0"; } +.bi-border-style::before { content: "\f1b1"; } +.bi-border-top::before { content: "\f1b2"; } +.bi-border-width::before { content: "\f1b3"; } +.bi-border::before { content: "\f1b4"; } +.bi-bounding-box-circles::before { content: "\f1b5"; } +.bi-bounding-box::before { content: "\f1b6"; } +.bi-box-arrow-down-left::before { content: "\f1b7"; } +.bi-box-arrow-down-right::before { content: "\f1b8"; } +.bi-box-arrow-down::before { content: "\f1b9"; } +.bi-box-arrow-in-down-left::before { content: "\f1ba"; } +.bi-box-arrow-in-down-right::before { content: "\f1bb"; } +.bi-box-arrow-in-down::before { content: "\f1bc"; } +.bi-box-arrow-in-left::before { content: "\f1bd"; } +.bi-box-arrow-in-right::before { content: "\f1be"; } +.bi-box-arrow-in-up-left::before { content: "\f1bf"; } +.bi-box-arrow-in-up-right::before { content: "\f1c0"; } +.bi-box-arrow-in-up::before { content: "\f1c1"; } +.bi-box-arrow-left::before { content: "\f1c2"; } +.bi-box-arrow-right::before { content: "\f1c3"; } +.bi-box-arrow-up-left::before { content: "\f1c4"; } +.bi-box-arrow-up-right::before { content: "\f1c5"; } +.bi-box-arrow-up::before { content: "\f1c6"; } +.bi-box-seam::before { content: "\f1c7"; } +.bi-box::before { content: "\f1c8"; } +.bi-braces::before { content: "\f1c9"; } +.bi-bricks::before { content: "\f1ca"; } +.bi-briefcase-fill::before { content: "\f1cb"; } +.bi-briefcase::before { content: "\f1cc"; } +.bi-brightness-alt-high-fill::before { content: "\f1cd"; } +.bi-brightness-alt-high::before { content: "\f1ce"; } +.bi-brightness-alt-low-fill::before { content: "\f1cf"; } +.bi-brightness-alt-low::before { content: "\f1d0"; } +.bi-brightness-high-fill::before { content: "\f1d1"; } +.bi-brightness-high::before { content: "\f1d2"; } +.bi-brightness-low-fill::before { content: "\f1d3"; } +.bi-brightness-low::before { content: "\f1d4"; } +.bi-broadcast-pin::before { content: "\f1d5"; } +.bi-broadcast::before { content: "\f1d6"; } +.bi-brush-fill::before { content: "\f1d7"; } +.bi-brush::before { content: "\f1d8"; } +.bi-bucket-fill::before { content: "\f1d9"; } +.bi-bucket::before { content: "\f1da"; } +.bi-bug-fill::before { content: "\f1db"; } +.bi-bug::before { content: "\f1dc"; } +.bi-building::before { content: "\f1dd"; } +.bi-bullseye::before { content: "\f1de"; } +.bi-calculator-fill::before { content: "\f1df"; } +.bi-calculator::before { content: "\f1e0"; } +.bi-calendar-check-fill::before { content: "\f1e1"; } +.bi-calendar-check::before { content: "\f1e2"; } +.bi-calendar-date-fill::before { content: "\f1e3"; } +.bi-calendar-date::before { content: "\f1e4"; } +.bi-calendar-day-fill::before { content: "\f1e5"; } +.bi-calendar-day::before { content: "\f1e6"; } +.bi-calendar-event-fill::before { content: "\f1e7"; } +.bi-calendar-event::before { content: "\f1e8"; } +.bi-calendar-fill::before { content: "\f1e9"; } +.bi-calendar-minus-fill::before { content: "\f1ea"; } +.bi-calendar-minus::before { content: "\f1eb"; } +.bi-calendar-month-fill::before { content: "\f1ec"; } +.bi-calendar-month::before { content: "\f1ed"; } +.bi-calendar-plus-fill::before { content: "\f1ee"; } +.bi-calendar-plus::before { content: "\f1ef"; } +.bi-calendar-range-fill::before { content: "\f1f0"; } +.bi-calendar-range::before { content: "\f1f1"; } +.bi-calendar-week-fill::before { content: "\f1f2"; } +.bi-calendar-week::before { content: "\f1f3"; } +.bi-calendar-x-fill::before { content: "\f1f4"; } +.bi-calendar-x::before { content: "\f1f5"; } +.bi-calendar::before { content: "\f1f6"; } +.bi-calendar2-check-fill::before { content: "\f1f7"; } +.bi-calendar2-check::before { content: "\f1f8"; } +.bi-calendar2-date-fill::before { content: "\f1f9"; } +.bi-calendar2-date::before { content: "\f1fa"; } +.bi-calendar2-day-fill::before { content: "\f1fb"; } +.bi-calendar2-day::before { content: "\f1fc"; } +.bi-calendar2-event-fill::before { content: "\f1fd"; } +.bi-calendar2-event::before { content: "\f1fe"; } +.bi-calendar2-fill::before { content: "\f1ff"; } +.bi-calendar2-minus-fill::before { content: "\f200"; } +.bi-calendar2-minus::before { content: "\f201"; } +.bi-calendar2-month-fill::before { content: "\f202"; } +.bi-calendar2-month::before { content: "\f203"; } +.bi-calendar2-plus-fill::before { content: "\f204"; } +.bi-calendar2-plus::before { content: "\f205"; } +.bi-calendar2-range-fill::before { content: "\f206"; } +.bi-calendar2-range::before { content: "\f207"; } +.bi-calendar2-week-fill::before { content: "\f208"; } +.bi-calendar2-week::before { content: "\f209"; } +.bi-calendar2-x-fill::before { content: "\f20a"; } +.bi-calendar2-x::before { content: "\f20b"; } +.bi-calendar2::before { content: "\f20c"; } +.bi-calendar3-event-fill::before { content: "\f20d"; } +.bi-calendar3-event::before { content: "\f20e"; } +.bi-calendar3-fill::before { content: "\f20f"; } +.bi-calendar3-range-fill::before { content: "\f210"; } +.bi-calendar3-range::before { content: "\f211"; } +.bi-calendar3-week-fill::before { content: "\f212"; } +.bi-calendar3-week::before { content: "\f213"; } +.bi-calendar3::before { content: "\f214"; } +.bi-calendar4-event::before { content: "\f215"; } +.bi-calendar4-range::before { content: "\f216"; } +.bi-calendar4-week::before { content: "\f217"; } +.bi-calendar4::before { content: "\f218"; } +.bi-camera-fill::before { content: "\f219"; } +.bi-camera-reels-fill::before { content: "\f21a"; } +.bi-camera-reels::before { content: "\f21b"; } +.bi-camera-video-fill::before { content: "\f21c"; } +.bi-camera-video-off-fill::before { content: "\f21d"; } +.bi-camera-video-off::before { content: "\f21e"; } +.bi-camera-video::before { content: "\f21f"; } +.bi-camera::before { content: "\f220"; } +.bi-camera2::before { content: "\f221"; } +.bi-capslock-fill::before { content: "\f222"; } +.bi-capslock::before { content: "\f223"; } +.bi-card-checklist::before { content: "\f224"; } +.bi-card-heading::before { content: "\f225"; } +.bi-card-image::before { content: "\f226"; } +.bi-card-list::before { content: "\f227"; } +.bi-card-text::before { content: "\f228"; } +.bi-caret-down-fill::before { content: "\f229"; } +.bi-caret-down-square-fill::before { content: "\f22a"; } +.bi-caret-down-square::before { content: "\f22b"; } +.bi-caret-down::before { content: "\f22c"; } +.bi-caret-left-fill::before { content: "\f22d"; } +.bi-caret-left-square-fill::before { content: "\f22e"; } +.bi-caret-left-square::before { content: "\f22f"; } +.bi-caret-left::before { content: "\f230"; } +.bi-caret-right-fill::before { content: "\f231"; } +.bi-caret-right-square-fill::before { content: "\f232"; } +.bi-caret-right-square::before { content: "\f233"; } +.bi-caret-right::before { content: "\f234"; } +.bi-caret-up-fill::before { content: "\f235"; } +.bi-caret-up-square-fill::before { content: "\f236"; } +.bi-caret-up-square::before { content: "\f237"; } +.bi-caret-up::before { content: "\f238"; } +.bi-cart-check-fill::before { content: "\f239"; } +.bi-cart-check::before { content: "\f23a"; } +.bi-cart-dash-fill::before { content: "\f23b"; } +.bi-cart-dash::before { content: "\f23c"; } +.bi-cart-fill::before { content: "\f23d"; } +.bi-cart-plus-fill::before { content: "\f23e"; } +.bi-cart-plus::before { content: "\f23f"; } +.bi-cart-x-fill::before { content: "\f240"; } +.bi-cart-x::before { content: "\f241"; } +.bi-cart::before { content: "\f242"; } +.bi-cart2::before { content: "\f243"; } +.bi-cart3::before { content: "\f244"; } +.bi-cart4::before { content: "\f245"; } +.bi-cash-stack::before { content: "\f246"; } +.bi-cash::before { content: "\f247"; } +.bi-cast::before { content: "\f248"; } +.bi-chat-dots-fill::before { content: "\f249"; } +.bi-chat-dots::before { content: "\f24a"; } +.bi-chat-fill::before { content: "\f24b"; } +.bi-chat-left-dots-fill::before { content: "\f24c"; } +.bi-chat-left-dots::before { content: "\f24d"; } +.bi-chat-left-fill::before { content: "\f24e"; } +.bi-chat-left-quote-fill::before { content: "\f24f"; } +.bi-chat-left-quote::before { content: "\f250"; } +.bi-chat-left-text-fill::before { content: "\f251"; } +.bi-chat-left-text::before { content: "\f252"; } +.bi-chat-left::before { content: "\f253"; } +.bi-chat-quote-fill::before { content: "\f254"; } +.bi-chat-quote::before { content: "\f255"; } +.bi-chat-right-dots-fill::before { content: "\f256"; } +.bi-chat-right-dots::before { content: "\f257"; } +.bi-chat-right-fill::before { content: "\f258"; } +.bi-chat-right-quote-fill::before { content: "\f259"; } +.bi-chat-right-quote::before { content: "\f25a"; } +.bi-chat-right-text-fill::before { content: "\f25b"; } +.bi-chat-right-text::before { content: "\f25c"; } +.bi-chat-right::before { content: "\f25d"; } +.bi-chat-square-dots-fill::before { content: "\f25e"; } +.bi-chat-square-dots::before { content: "\f25f"; } +.bi-chat-square-fill::before { content: "\f260"; } +.bi-chat-square-quote-fill::before { content: "\f261"; } +.bi-chat-square-quote::before { content: "\f262"; } +.bi-chat-square-text-fill::before { content: "\f263"; } +.bi-chat-square-text::before { content: "\f264"; } +.bi-chat-square::before { content: "\f265"; } +.bi-chat-text-fill::before { content: "\f266"; } +.bi-chat-text::before { content: "\f267"; } +.bi-chat::before { content: "\f268"; } +.bi-check-all::before { content: "\f269"; } +.bi-check-circle-fill::before { content: "\f26a"; } +.bi-check-circle::before { content: "\f26b"; } +.bi-check-square-fill::before { content: "\f26c"; } +.bi-check-square::before { content: "\f26d"; } +.bi-check::before { content: "\f26e"; } +.bi-check2-all::before { content: "\f26f"; } +.bi-check2-circle::before { content: "\f270"; } +.bi-check2-square::before { content: "\f271"; } +.bi-check2::before { content: "\f272"; } +.bi-chevron-bar-contract::before { content: "\f273"; } +.bi-chevron-bar-down::before { content: "\f274"; } +.bi-chevron-bar-expand::before { content: "\f275"; } +.bi-chevron-bar-left::before { content: "\f276"; } +.bi-chevron-bar-right::before { content: "\f277"; } +.bi-chevron-bar-up::before { content: "\f278"; } +.bi-chevron-compact-down::before { content: "\f279"; } +.bi-chevron-compact-left::before { content: "\f27a"; } +.bi-chevron-compact-right::before { content: "\f27b"; } +.bi-chevron-compact-up::before { content: "\f27c"; } +.bi-chevron-contract::before { content: "\f27d"; } +.bi-chevron-double-down::before { content: "\f27e"; } +.bi-chevron-double-left::before { content: "\f27f"; } +.bi-chevron-double-right::before { content: "\f280"; } +.bi-chevron-double-up::before { content: "\f281"; } +.bi-chevron-down::before { content: "\f282"; } +.bi-chevron-expand::before { content: "\f283"; } +.bi-chevron-left::before { content: "\f284"; } +.bi-chevron-right::before { content: "\f285"; } +.bi-chevron-up::before { content: "\f286"; } +.bi-circle-fill::before { content: "\f287"; } +.bi-circle-half::before { content: "\f288"; } +.bi-circle-square::before { content: "\f289"; } +.bi-circle::before { content: "\f28a"; } +.bi-clipboard-check::before { content: "\f28b"; } +.bi-clipboard-data::before { content: "\f28c"; } +.bi-clipboard-minus::before { content: "\f28d"; } +.bi-clipboard-plus::before { content: "\f28e"; } +.bi-clipboard-x::before { content: "\f28f"; } +.bi-clipboard::before { content: "\f290"; } +.bi-clock-fill::before { content: "\f291"; } +.bi-clock-history::before { content: "\f292"; } +.bi-clock::before { content: "\f293"; } +.bi-cloud-arrow-down-fill::before { content: "\f294"; } +.bi-cloud-arrow-down::before { content: "\f295"; } +.bi-cloud-arrow-up-fill::before { content: "\f296"; } +.bi-cloud-arrow-up::before { content: "\f297"; } +.bi-cloud-check-fill::before { content: "\f298"; } +.bi-cloud-check::before { content: "\f299"; } +.bi-cloud-download-fill::before { content: "\f29a"; } +.bi-cloud-download::before { content: "\f29b"; } +.bi-cloud-drizzle-fill::before { content: "\f29c"; } +.bi-cloud-drizzle::before { content: "\f29d"; } +.bi-cloud-fill::before { content: "\f29e"; } +.bi-cloud-fog-fill::before { content: "\f29f"; } +.bi-cloud-fog::before { content: "\f2a0"; } +.bi-cloud-fog2-fill::before { content: "\f2a1"; } +.bi-cloud-fog2::before { content: "\f2a2"; } +.bi-cloud-hail-fill::before { content: "\f2a3"; } +.bi-cloud-hail::before { content: "\f2a4"; } +.bi-cloud-haze-1::before { content: "\f2a5"; } +.bi-cloud-haze-fill::before { content: "\f2a6"; } +.bi-cloud-haze::before { content: "\f2a7"; } +.bi-cloud-haze2-fill::before { content: "\f2a8"; } +.bi-cloud-lightning-fill::before { content: "\f2a9"; } +.bi-cloud-lightning-rain-fill::before { content: "\f2aa"; } +.bi-cloud-lightning-rain::before { content: "\f2ab"; } +.bi-cloud-lightning::before { content: "\f2ac"; } +.bi-cloud-minus-fill::before { content: "\f2ad"; } +.bi-cloud-minus::before { content: "\f2ae"; } +.bi-cloud-moon-fill::before { content: "\f2af"; } +.bi-cloud-moon::before { content: "\f2b0"; } +.bi-cloud-plus-fill::before { content: "\f2b1"; } +.bi-cloud-plus::before { content: "\f2b2"; } +.bi-cloud-rain-fill::before { content: "\f2b3"; } +.bi-cloud-rain-heavy-fill::before { content: "\f2b4"; } +.bi-cloud-rain-heavy::before { content: "\f2b5"; } +.bi-cloud-rain::before { content: "\f2b6"; } +.bi-cloud-slash-fill::before { content: "\f2b7"; } +.bi-cloud-slash::before { content: "\f2b8"; } +.bi-cloud-sleet-fill::before { content: "\f2b9"; } +.bi-cloud-sleet::before { content: "\f2ba"; } +.bi-cloud-snow-fill::before { content: "\f2bb"; } +.bi-cloud-snow::before { content: "\f2bc"; } +.bi-cloud-sun-fill::before { content: "\f2bd"; } +.bi-cloud-sun::before { content: "\f2be"; } +.bi-cloud-upload-fill::before { content: "\f2bf"; } +.bi-cloud-upload::before { content: "\f2c0"; } +.bi-cloud::before { content: "\f2c1"; } +.bi-clouds-fill::before { content: "\f2c2"; } +.bi-clouds::before { content: "\f2c3"; } +.bi-cloudy-fill::before { content: "\f2c4"; } +.bi-cloudy::before { content: "\f2c5"; } +.bi-code-slash::before { content: "\f2c6"; } +.bi-code-square::before { content: "\f2c7"; } +.bi-code::before { content: "\f2c8"; } +.bi-collection-fill::before { content: "\f2c9"; } +.bi-collection-play-fill::before { content: "\f2ca"; } +.bi-collection-play::before { content: "\f2cb"; } +.bi-collection::before { content: "\f2cc"; } +.bi-columns-gap::before { content: "\f2cd"; } +.bi-columns::before { content: "\f2ce"; } +.bi-command::before { content: "\f2cf"; } +.bi-compass-fill::before { content: "\f2d0"; } +.bi-compass::before { content: "\f2d1"; } +.bi-cone-striped::before { content: "\f2d2"; } +.bi-cone::before { content: "\f2d3"; } +.bi-controller::before { content: "\f2d4"; } +.bi-cpu-fill::before { content: "\f2d5"; } +.bi-cpu::before { content: "\f2d6"; } +.bi-credit-card-2-back-fill::before { content: "\f2d7"; } +.bi-credit-card-2-back::before { content: "\f2d8"; } +.bi-credit-card-2-front-fill::before { content: "\f2d9"; } +.bi-credit-card-2-front::before { content: "\f2da"; } +.bi-credit-card-fill::before { content: "\f2db"; } +.bi-credit-card::before { content: "\f2dc"; } +.bi-crop::before { content: "\f2dd"; } +.bi-cup-fill::before { content: "\f2de"; } +.bi-cup-straw::before { content: "\f2df"; } +.bi-cup::before { content: "\f2e0"; } +.bi-cursor-fill::before { content: "\f2e1"; } +.bi-cursor-text::before { content: "\f2e2"; } +.bi-cursor::before { content: "\f2e3"; } +.bi-dash-circle-dotted::before { content: "\f2e4"; } +.bi-dash-circle-fill::before { content: "\f2e5"; } +.bi-dash-circle::before { content: "\f2e6"; } +.bi-dash-square-dotted::before { content: "\f2e7"; } +.bi-dash-square-fill::before { content: "\f2e8"; } +.bi-dash-square::before { content: "\f2e9"; } +.bi-dash::before { content: "\f2ea"; } +.bi-diagram-2-fill::before { content: "\f2eb"; } +.bi-diagram-2::before { content: "\f2ec"; } +.bi-diagram-3-fill::before { content: "\f2ed"; } +.bi-diagram-3::before { content: "\f2ee"; } +.bi-diamond-fill::before { content: "\f2ef"; } +.bi-diamond-half::before { content: "\f2f0"; } +.bi-diamond::before { content: "\f2f1"; } +.bi-dice-1-fill::before { content: "\f2f2"; } +.bi-dice-1::before { content: "\f2f3"; } +.bi-dice-2-fill::before { content: "\f2f4"; } +.bi-dice-2::before { content: "\f2f5"; } +.bi-dice-3-fill::before { content: "\f2f6"; } +.bi-dice-3::before { content: "\f2f7"; } +.bi-dice-4-fill::before { content: "\f2f8"; } +.bi-dice-4::before { content: "\f2f9"; } +.bi-dice-5-fill::before { content: "\f2fa"; } +.bi-dice-5::before { content: "\f2fb"; } +.bi-dice-6-fill::before { content: "\f2fc"; } +.bi-dice-6::before { content: "\f2fd"; } +.bi-disc-fill::before { content: "\f2fe"; } +.bi-disc::before { content: "\f2ff"; } +.bi-discord::before { content: "\f300"; } +.bi-display-fill::before { content: "\f301"; } +.bi-display::before { content: "\f302"; } +.bi-distribute-horizontal::before { content: "\f303"; } +.bi-distribute-vertical::before { content: "\f304"; } +.bi-door-closed-fill::before { content: "\f305"; } +.bi-door-closed::before { content: "\f306"; } +.bi-door-open-fill::before { content: "\f307"; } +.bi-door-open::before { content: "\f308"; } +.bi-dot::before { content: "\f309"; } +.bi-download::before { content: "\f30a"; } +.bi-droplet-fill::before { content: "\f30b"; } +.bi-droplet-half::before { content: "\f30c"; } +.bi-droplet::before { content: "\f30d"; } +.bi-earbuds::before { content: "\f30e"; } +.bi-easel-fill::before { content: "\f30f"; } +.bi-easel::before { content: "\f310"; } +.bi-egg-fill::before { content: "\f311"; } +.bi-egg-fried::before { content: "\f312"; } +.bi-egg::before { content: "\f313"; } +.bi-eject-fill::before { content: "\f314"; } +.bi-eject::before { content: "\f315"; } +.bi-emoji-angry-fill::before { content: "\f316"; } +.bi-emoji-angry::before { content: "\f317"; } +.bi-emoji-dizzy-fill::before { content: "\f318"; } +.bi-emoji-dizzy::before { content: "\f319"; } +.bi-emoji-expressionless-fill::before { content: "\f31a"; } +.bi-emoji-expressionless::before { content: "\f31b"; } +.bi-emoji-frown-fill::before { content: "\f31c"; } +.bi-emoji-frown::before { content: "\f31d"; } +.bi-emoji-heart-eyes-fill::before { content: "\f31e"; } +.bi-emoji-heart-eyes::before { content: "\f31f"; } +.bi-emoji-laughing-fill::before { content: "\f320"; } +.bi-emoji-laughing::before { content: "\f321"; } +.bi-emoji-neutral-fill::before { content: "\f322"; } +.bi-emoji-neutral::before { content: "\f323"; } +.bi-emoji-smile-fill::before { content: "\f324"; } +.bi-emoji-smile-upside-down-fill::before { content: "\f325"; } +.bi-emoji-smile-upside-down::before { content: "\f326"; } +.bi-emoji-smile::before { content: "\f327"; } +.bi-emoji-sunglasses-fill::before { content: "\f328"; } +.bi-emoji-sunglasses::before { content: "\f329"; } +.bi-emoji-wink-fill::before { content: "\f32a"; } +.bi-emoji-wink::before { content: "\f32b"; } +.bi-envelope-fill::before { content: "\f32c"; } +.bi-envelope-open-fill::before { content: "\f32d"; } +.bi-envelope-open::before { content: "\f32e"; } +.bi-envelope::before { content: "\f32f"; } +.bi-eraser-fill::before { content: "\f330"; } +.bi-eraser::before { content: "\f331"; } +.bi-exclamation-circle-fill::before { content: "\f332"; } +.bi-exclamation-circle::before { content: "\f333"; } +.bi-exclamation-diamond-fill::before { content: "\f334"; } +.bi-exclamation-diamond::before { content: "\f335"; } +.bi-exclamation-octagon-fill::before { content: "\f336"; } +.bi-exclamation-octagon::before { content: "\f337"; } +.bi-exclamation-square-fill::before { content: "\f338"; } +.bi-exclamation-square::before { content: "\f339"; } +.bi-exclamation-triangle-fill::before { content: "\f33a"; } +.bi-exclamation-triangle::before { content: "\f33b"; } +.bi-exclamation::before { content: "\f33c"; } +.bi-exclude::before { content: "\f33d"; } +.bi-eye-fill::before { content: "\f33e"; } +.bi-eye-slash-fill::before { content: "\f33f"; } +.bi-eye-slash::before { content: "\f340"; } +.bi-eye::before { content: "\f341"; } +.bi-eyedropper::before { content: "\f342"; } +.bi-eyeglasses::before { content: "\f343"; } +.bi-facebook::before { content: "\f344"; } +.bi-file-arrow-down-fill::before { content: "\f345"; } +.bi-file-arrow-down::before { content: "\f346"; } +.bi-file-arrow-up-fill::before { content: "\f347"; } +.bi-file-arrow-up::before { content: "\f348"; } +.bi-file-bar-graph-fill::before { content: "\f349"; } +.bi-file-bar-graph::before { content: "\f34a"; } +.bi-file-binary-fill::before { content: "\f34b"; } +.bi-file-binary::before { content: "\f34c"; } +.bi-file-break-fill::before { content: "\f34d"; } +.bi-file-break::before { content: "\f34e"; } +.bi-file-check-fill::before { content: "\f34f"; } +.bi-file-check::before { content: "\f350"; } +.bi-file-code-fill::before { content: "\f351"; } +.bi-file-code::before { content: "\f352"; } +.bi-file-diff-fill::before { content: "\f353"; } +.bi-file-diff::before { content: "\f354"; } +.bi-file-earmark-arrow-down-fill::before { content: "\f355"; } +.bi-file-earmark-arrow-down::before { content: "\f356"; } +.bi-file-earmark-arrow-up-fill::before { content: "\f357"; } +.bi-file-earmark-arrow-up::before { content: "\f358"; } +.bi-file-earmark-bar-graph-fill::before { content: "\f359"; } +.bi-file-earmark-bar-graph::before { content: "\f35a"; } +.bi-file-earmark-binary-fill::before { content: "\f35b"; } +.bi-file-earmark-binary::before { content: "\f35c"; } +.bi-file-earmark-break-fill::before { content: "\f35d"; } +.bi-file-earmark-break::before { content: "\f35e"; } +.bi-file-earmark-check-fill::before { content: "\f35f"; } +.bi-file-earmark-check::before { content: "\f360"; } +.bi-file-earmark-code-fill::before { content: "\f361"; } +.bi-file-earmark-code::before { content: "\f362"; } +.bi-file-earmark-diff-fill::before { content: "\f363"; } +.bi-file-earmark-diff::before { content: "\f364"; } +.bi-file-earmark-easel-fill::before { content: "\f365"; } +.bi-file-earmark-easel::before { content: "\f366"; } +.bi-file-earmark-excel-fill::before { content: "\f367"; } +.bi-file-earmark-excel::before { content: "\f368"; } +.bi-file-earmark-fill::before { content: "\f369"; } +.bi-file-earmark-font-fill::before { content: "\f36a"; } +.bi-file-earmark-font::before { content: "\f36b"; } +.bi-file-earmark-image-fill::before { content: "\f36c"; } +.bi-file-earmark-image::before { content: "\f36d"; } +.bi-file-earmark-lock-fill::before { content: "\f36e"; } +.bi-file-earmark-lock::before { content: "\f36f"; } +.bi-file-earmark-lock2-fill::before { content: "\f370"; } +.bi-file-earmark-lock2::before { content: "\f371"; } +.bi-file-earmark-medical-fill::before { content: "\f372"; } +.bi-file-earmark-medical::before { content: "\f373"; } +.bi-file-earmark-minus-fill::before { content: "\f374"; } +.bi-file-earmark-minus::before { content: "\f375"; } +.bi-file-earmark-music-fill::before { content: "\f376"; } +.bi-file-earmark-music::before { content: "\f377"; } +.bi-file-earmark-person-fill::before { content: "\f378"; } +.bi-file-earmark-person::before { content: "\f379"; } +.bi-file-earmark-play-fill::before { content: "\f37a"; } +.bi-file-earmark-play::before { content: "\f37b"; } +.bi-file-earmark-plus-fill::before { content: "\f37c"; } +.bi-file-earmark-plus::before { content: "\f37d"; } +.bi-file-earmark-post-fill::before { content: "\f37e"; } +.bi-file-earmark-post::before { content: "\f37f"; } +.bi-file-earmark-ppt-fill::before { content: "\f380"; } +.bi-file-earmark-ppt::before { content: "\f381"; } +.bi-file-earmark-richtext-fill::before { content: "\f382"; } +.bi-file-earmark-richtext::before { content: "\f383"; } +.bi-file-earmark-ruled-fill::before { content: "\f384"; } +.bi-file-earmark-ruled::before { content: "\f385"; } +.bi-file-earmark-slides-fill::before { content: "\f386"; } +.bi-file-earmark-slides::before { content: "\f387"; } +.bi-file-earmark-spreadsheet-fill::before { content: "\f388"; } +.bi-file-earmark-spreadsheet::before { content: "\f389"; } +.bi-file-earmark-text-fill::before { content: "\f38a"; } +.bi-file-earmark-text::before { content: "\f38b"; } +.bi-file-earmark-word-fill::before { content: "\f38c"; } +.bi-file-earmark-word::before { content: "\f38d"; } +.bi-file-earmark-x-fill::before { content: "\f38e"; } +.bi-file-earmark-x::before { content: "\f38f"; } +.bi-file-earmark-zip-fill::before { content: "\f390"; } +.bi-file-earmark-zip::before { content: "\f391"; } +.bi-file-earmark::before { content: "\f392"; } +.bi-file-easel-fill::before { content: "\f393"; } +.bi-file-easel::before { content: "\f394"; } +.bi-file-excel-fill::before { content: "\f395"; } +.bi-file-excel::before { content: "\f396"; } +.bi-file-fill::before { content: "\f397"; } +.bi-file-font-fill::before { content: "\f398"; } +.bi-file-font::before { content: "\f399"; } +.bi-file-image-fill::before { content: "\f39a"; } +.bi-file-image::before { content: "\f39b"; } +.bi-file-lock-fill::before { content: "\f39c"; } +.bi-file-lock::before { content: "\f39d"; } +.bi-file-lock2-fill::before { content: "\f39e"; } +.bi-file-lock2::before { content: "\f39f"; } +.bi-file-medical-fill::before { content: "\f3a0"; } +.bi-file-medical::before { content: "\f3a1"; } +.bi-file-minus-fill::before { content: "\f3a2"; } +.bi-file-minus::before { content: "\f3a3"; } +.bi-file-music-fill::before { content: "\f3a4"; } +.bi-file-music::before { content: "\f3a5"; } +.bi-file-person-fill::before { content: "\f3a6"; } +.bi-file-person::before { content: "\f3a7"; } +.bi-file-play-fill::before { content: "\f3a8"; } +.bi-file-play::before { content: "\f3a9"; } +.bi-file-plus-fill::before { content: "\f3aa"; } +.bi-file-plus::before { content: "\f3ab"; } +.bi-file-post-fill::before { content: "\f3ac"; } +.bi-file-post::before { content: "\f3ad"; } +.bi-file-ppt-fill::before { content: "\f3ae"; } +.bi-file-ppt::before { content: "\f3af"; } +.bi-file-richtext-fill::before { content: "\f3b0"; } +.bi-file-richtext::before { content: "\f3b1"; } +.bi-file-ruled-fill::before { content: "\f3b2"; } +.bi-file-ruled::before { content: "\f3b3"; } +.bi-file-slides-fill::before { content: "\f3b4"; } +.bi-file-slides::before { content: "\f3b5"; } +.bi-file-spreadsheet-fill::before { content: "\f3b6"; } +.bi-file-spreadsheet::before { content: "\f3b7"; } +.bi-file-text-fill::before { content: "\f3b8"; } +.bi-file-text::before { content: "\f3b9"; } +.bi-file-word-fill::before { content: "\f3ba"; } +.bi-file-word::before { content: "\f3bb"; } +.bi-file-x-fill::before { content: "\f3bc"; } +.bi-file-x::before { content: "\f3bd"; } +.bi-file-zip-fill::before { content: "\f3be"; } +.bi-file-zip::before { content: "\f3bf"; } +.bi-file::before { content: "\f3c0"; } +.bi-files-alt::before { content: "\f3c1"; } +.bi-files::before { content: "\f3c2"; } +.bi-film::before { content: "\f3c3"; } +.bi-filter-circle-fill::before { content: "\f3c4"; } +.bi-filter-circle::before { content: "\f3c5"; } +.bi-filter-left::before { content: "\f3c6"; } +.bi-filter-right::before { content: "\f3c7"; } +.bi-filter-square-fill::before { content: "\f3c8"; } +.bi-filter-square::before { content: "\f3c9"; } +.bi-filter::before { content: "\f3ca"; } +.bi-flag-fill::before { content: "\f3cb"; } +.bi-flag::before { content: "\f3cc"; } +.bi-flower1::before { content: "\f3cd"; } +.bi-flower2::before { content: "\f3ce"; } +.bi-flower3::before { content: "\f3cf"; } +.bi-folder-check::before { content: "\f3d0"; } +.bi-folder-fill::before { content: "\f3d1"; } +.bi-folder-minus::before { content: "\f3d2"; } +.bi-folder-plus::before { content: "\f3d3"; } +.bi-folder-symlink-fill::before { content: "\f3d4"; } +.bi-folder-symlink::before { content: "\f3d5"; } +.bi-folder-x::before { content: "\f3d6"; } +.bi-folder::before { content: "\f3d7"; } +.bi-folder2-open::before { content: "\f3d8"; } +.bi-folder2::before { content: "\f3d9"; } +.bi-fonts::before { content: "\f3da"; } +.bi-forward-fill::before { content: "\f3db"; } +.bi-forward::before { content: "\f3dc"; } +.bi-front::before { content: "\f3dd"; } +.bi-fullscreen-exit::before { content: "\f3de"; } +.bi-fullscreen::before { content: "\f3df"; } +.bi-funnel-fill::before { content: "\f3e0"; } +.bi-funnel::before { content: "\f3e1"; } +.bi-gear-fill::before { content: "\f3e2"; } +.bi-gear-wide-connected::before { content: "\f3e3"; } +.bi-gear-wide::before { content: "\f3e4"; } +.bi-gear::before { content: "\f3e5"; } +.bi-gem::before { content: "\f3e6"; } +.bi-geo-alt-fill::before { content: "\f3e7"; } +.bi-geo-alt::before { content: "\f3e8"; } +.bi-geo-fill::before { content: "\f3e9"; } +.bi-geo::before { content: "\f3ea"; } +.bi-gift-fill::before { content: "\f3eb"; } +.bi-gift::before { content: "\f3ec"; } +.bi-github::before { content: "\f3ed"; } +.bi-globe::before { content: "\f3ee"; } +.bi-globe2::before { content: "\f3ef"; } +.bi-google::before { content: "\f3f0"; } +.bi-graph-down::before { content: "\f3f1"; } +.bi-graph-up::before { content: "\f3f2"; } +.bi-grid-1x2-fill::before { content: "\f3f3"; } +.bi-grid-1x2::before { content: "\f3f4"; } +.bi-grid-3x2-gap-fill::before { content: "\f3f5"; } +.bi-grid-3x2-gap::before { content: "\f3f6"; } +.bi-grid-3x2::before { content: "\f3f7"; } +.bi-grid-3x3-gap-fill::before { content: "\f3f8"; } +.bi-grid-3x3-gap::before { content: "\f3f9"; } +.bi-grid-3x3::before { content: "\f3fa"; } +.bi-grid-fill::before { content: "\f3fb"; } +.bi-grid::before { content: "\f3fc"; } +.bi-grip-horizontal::before { content: "\f3fd"; } +.bi-grip-vertical::before { content: "\f3fe"; } +.bi-hammer::before { content: "\f3ff"; } +.bi-hand-index-fill::before { content: "\f400"; } +.bi-hand-index-thumb-fill::before { content: "\f401"; } +.bi-hand-index-thumb::before { content: "\f402"; } +.bi-hand-index::before { content: "\f403"; } +.bi-hand-thumbs-down-fill::before { content: "\f404"; } +.bi-hand-thumbs-down::before { content: "\f405"; } +.bi-hand-thumbs-up-fill::before { content: "\f406"; } +.bi-hand-thumbs-up::before { content: "\f407"; } +.bi-handbag-fill::before { content: "\f408"; } +.bi-handbag::before { content: "\f409"; } +.bi-hash::before { content: "\f40a"; } +.bi-hdd-fill::before { content: "\f40b"; } +.bi-hdd-network-fill::before { content: "\f40c"; } +.bi-hdd-network::before { content: "\f40d"; } +.bi-hdd-rack-fill::before { content: "\f40e"; } +.bi-hdd-rack::before { content: "\f40f"; } +.bi-hdd-stack-fill::before { content: "\f410"; } +.bi-hdd-stack::before { content: "\f411"; } +.bi-hdd::before { content: "\f412"; } +.bi-headphones::before { content: "\f413"; } +.bi-headset::before { content: "\f414"; } +.bi-heart-fill::before { content: "\f415"; } +.bi-heart-half::before { content: "\f416"; } +.bi-heart::before { content: "\f417"; } +.bi-heptagon-fill::before { content: "\f418"; } +.bi-heptagon-half::before { content: "\f419"; } +.bi-heptagon::before { content: "\f41a"; } +.bi-hexagon-fill::before { content: "\f41b"; } +.bi-hexagon-half::before { content: "\f41c"; } +.bi-hexagon::before { content: "\f41d"; } +.bi-hourglass-bottom::before { content: "\f41e"; } +.bi-hourglass-split::before { content: "\f41f"; } +.bi-hourglass-top::before { content: "\f420"; } +.bi-hourglass::before { content: "\f421"; } +.bi-house-door-fill::before { content: "\f422"; } +.bi-house-door::before { content: "\f423"; } +.bi-house-fill::before { content: "\f424"; } +.bi-house::before { content: "\f425"; } +.bi-hr::before { content: "\f426"; } +.bi-hurricane::before { content: "\f427"; } +.bi-image-alt::before { content: "\f428"; } +.bi-image-fill::before { content: "\f429"; } +.bi-image::before { content: "\f42a"; } +.bi-images::before { content: "\f42b"; } +.bi-inbox-fill::before { content: "\f42c"; } +.bi-inbox::before { content: "\f42d"; } +.bi-inboxes-fill::before { content: "\f42e"; } +.bi-inboxes::before { content: "\f42f"; } +.bi-info-circle-fill::before { content: "\f430"; } +.bi-info-circle::before { content: "\f431"; } +.bi-info-square-fill::before { content: "\f432"; } +.bi-info-square::before { content: "\f433"; } +.bi-info::before { content: "\f434"; } +.bi-input-cursor-text::before { content: "\f435"; } +.bi-input-cursor::before { content: "\f436"; } +.bi-instagram::before { content: "\f437"; } +.bi-intersect::before { content: "\f438"; } +.bi-journal-album::before { content: "\f439"; } +.bi-journal-arrow-down::before { content: "\f43a"; } +.bi-journal-arrow-up::before { content: "\f43b"; } +.bi-journal-bookmark-fill::before { content: "\f43c"; } +.bi-journal-bookmark::before { content: "\f43d"; } +.bi-journal-check::before { content: "\f43e"; } +.bi-journal-code::before { content: "\f43f"; } +.bi-journal-medical::before { content: "\f440"; } +.bi-journal-minus::before { content: "\f441"; } +.bi-journal-plus::before { content: "\f442"; } +.bi-journal-richtext::before { content: "\f443"; } +.bi-journal-text::before { content: "\f444"; } +.bi-journal-x::before { content: "\f445"; } +.bi-journal::before { content: "\f446"; } +.bi-journals::before { content: "\f447"; } +.bi-joystick::before { content: "\f448"; } +.bi-justify-left::before { content: "\f449"; } +.bi-justify-right::before { content: "\f44a"; } +.bi-justify::before { content: "\f44b"; } +.bi-kanban-fill::before { content: "\f44c"; } +.bi-kanban::before { content: "\f44d"; } +.bi-key-fill::before { content: "\f44e"; } +.bi-key::before { content: "\f44f"; } +.bi-keyboard-fill::before { content: "\f450"; } +.bi-keyboard::before { content: "\f451"; } +.bi-ladder::before { content: "\f452"; } +.bi-lamp-fill::before { content: "\f453"; } +.bi-lamp::before { content: "\f454"; } +.bi-laptop-fill::before { content: "\f455"; } +.bi-laptop::before { content: "\f456"; } +.bi-layer-backward::before { content: "\f457"; } +.bi-layer-forward::before { content: "\f458"; } +.bi-layers-fill::before { content: "\f459"; } +.bi-layers-half::before { content: "\f45a"; } +.bi-layers::before { content: "\f45b"; } +.bi-layout-sidebar-inset-reverse::before { content: "\f45c"; } +.bi-layout-sidebar-inset::before { content: "\f45d"; } +.bi-layout-sidebar-reverse::before { content: "\f45e"; } +.bi-layout-sidebar::before { content: "\f45f"; } +.bi-layout-split::before { content: "\f460"; } +.bi-layout-text-sidebar-reverse::before { content: "\f461"; } +.bi-layout-text-sidebar::before { content: "\f462"; } +.bi-layout-text-window-reverse::before { content: "\f463"; } +.bi-layout-text-window::before { content: "\f464"; } +.bi-layout-three-columns::before { content: "\f465"; } +.bi-layout-wtf::before { content: "\f466"; } +.bi-life-preserver::before { content: "\f467"; } +.bi-lightbulb-fill::before { content: "\f468"; } +.bi-lightbulb-off-fill::before { content: "\f469"; } +.bi-lightbulb-off::before { content: "\f46a"; } +.bi-lightbulb::before { content: "\f46b"; } +.bi-lightning-charge-fill::before { content: "\f46c"; } +.bi-lightning-charge::before { content: "\f46d"; } +.bi-lightning-fill::before { content: "\f46e"; } +.bi-lightning::before { content: "\f46f"; } +.bi-link-45deg::before { content: "\f470"; } +.bi-link::before { content: "\f471"; } +.bi-linkedin::before { content: "\f472"; } +.bi-list-check::before { content: "\f473"; } +.bi-list-nested::before { content: "\f474"; } +.bi-list-ol::before { content: "\f475"; } +.bi-list-stars::before { content: "\f476"; } +.bi-list-task::before { content: "\f477"; } +.bi-list-ul::before { content: "\f478"; } +.bi-list::before { content: "\f479"; } +.bi-lock-fill::before { content: "\f47a"; } +.bi-lock::before { content: "\f47b"; } +.bi-mailbox::before { content: "\f47c"; } +.bi-mailbox2::before { content: "\f47d"; } +.bi-map-fill::before { content: "\f47e"; } +.bi-map::before { content: "\f47f"; } +.bi-markdown-fill::before { content: "\f480"; } +.bi-markdown::before { content: "\f481"; } +.bi-mask::before { content: "\f482"; } +.bi-megaphone-fill::before { content: "\f483"; } +.bi-megaphone::before { content: "\f484"; } +.bi-menu-app-fill::before { content: "\f485"; } +.bi-menu-app::before { content: "\f486"; } +.bi-menu-button-fill::before { content: "\f487"; } +.bi-menu-button-wide-fill::before { content: "\f488"; } +.bi-menu-button-wide::before { content: "\f489"; } +.bi-menu-button::before { content: "\f48a"; } +.bi-menu-down::before { content: "\f48b"; } +.bi-menu-up::before { content: "\f48c"; } +.bi-mic-fill::before { content: "\f48d"; } +.bi-mic-mute-fill::before { content: "\f48e"; } +.bi-mic-mute::before { content: "\f48f"; } +.bi-mic::before { content: "\f490"; } +.bi-minecart-loaded::before { content: "\f491"; } +.bi-minecart::before { content: "\f492"; } +.bi-moisture::before { content: "\f493"; } +.bi-moon-fill::before { content: "\f494"; } +.bi-moon-stars-fill::before { content: "\f495"; } +.bi-moon-stars::before { content: "\f496"; } +.bi-moon::before { content: "\f497"; } +.bi-mouse-fill::before { content: "\f498"; } +.bi-mouse::before { content: "\f499"; } +.bi-mouse2-fill::before { content: "\f49a"; } +.bi-mouse2::before { content: "\f49b"; } +.bi-mouse3-fill::before { content: "\f49c"; } +.bi-mouse3::before { content: "\f49d"; } +.bi-music-note-beamed::before { content: "\f49e"; } +.bi-music-note-list::before { content: "\f49f"; } +.bi-music-note::before { content: "\f4a0"; } +.bi-music-player-fill::before { content: "\f4a1"; } +.bi-music-player::before { content: "\f4a2"; } +.bi-newspaper::before { content: "\f4a3"; } +.bi-node-minus-fill::before { content: "\f4a4"; } +.bi-node-minus::before { content: "\f4a5"; } +.bi-node-plus-fill::before { content: "\f4a6"; } +.bi-node-plus::before { content: "\f4a7"; } +.bi-nut-fill::before { content: "\f4a8"; } +.bi-nut::before { content: "\f4a9"; } +.bi-octagon-fill::before { content: "\f4aa"; } +.bi-octagon-half::before { content: "\f4ab"; } +.bi-octagon::before { content: "\f4ac"; } +.bi-option::before { content: "\f4ad"; } +.bi-outlet::before { content: "\f4ae"; } +.bi-paint-bucket::before { content: "\f4af"; } +.bi-palette-fill::before { content: "\f4b0"; } +.bi-palette::before { content: "\f4b1"; } +.bi-palette2::before { content: "\f4b2"; } +.bi-paperclip::before { content: "\f4b3"; } +.bi-paragraph::before { content: "\f4b4"; } +.bi-patch-check-fill::before { content: "\f4b5"; } +.bi-patch-check::before { content: "\f4b6"; } +.bi-patch-exclamation-fill::before { content: "\f4b7"; } +.bi-patch-exclamation::before { content: "\f4b8"; } +.bi-patch-minus-fill::before { content: "\f4b9"; } +.bi-patch-minus::before { content: "\f4ba"; } +.bi-patch-plus-fill::before { content: "\f4bb"; } +.bi-patch-plus::before { content: "\f4bc"; } +.bi-patch-question-fill::before { content: "\f4bd"; } +.bi-patch-question::before { content: "\f4be"; } +.bi-pause-btn-fill::before { content: "\f4bf"; } +.bi-pause-btn::before { content: "\f4c0"; } +.bi-pause-circle-fill::before { content: "\f4c1"; } +.bi-pause-circle::before { content: "\f4c2"; } +.bi-pause-fill::before { content: "\f4c3"; } +.bi-pause::before { content: "\f4c4"; } +.bi-peace-fill::before { content: "\f4c5"; } +.bi-peace::before { content: "\f4c6"; } +.bi-pen-fill::before { content: "\f4c7"; } +.bi-pen::before { content: "\f4c8"; } +.bi-pencil-fill::before { content: "\f4c9"; } +.bi-pencil-square::before { content: "\f4ca"; } +.bi-pencil::before { content: "\f4cb"; } +.bi-pentagon-fill::before { content: "\f4cc"; } +.bi-pentagon-half::before { content: "\f4cd"; } +.bi-pentagon::before { content: "\f4ce"; } +.bi-people-fill::before { content: "\f4cf"; } +.bi-people::before { content: "\f4d0"; } +.bi-percent::before { content: "\f4d1"; } +.bi-person-badge-fill::before { content: "\f4d2"; } +.bi-person-badge::before { content: "\f4d3"; } +.bi-person-bounding-box::before { content: "\f4d4"; } +.bi-person-check-fill::before { content: "\f4d5"; } +.bi-person-check::before { content: "\f4d6"; } +.bi-person-circle::before { content: "\f4d7"; } +.bi-person-dash-fill::before { content: "\f4d8"; } +.bi-person-dash::before { content: "\f4d9"; } +.bi-person-fill::before { content: "\f4da"; } +.bi-person-lines-fill::before { content: "\f4db"; } +.bi-person-plus-fill::before { content: "\f4dc"; } +.bi-person-plus::before { content: "\f4dd"; } +.bi-person-square::before { content: "\f4de"; } +.bi-person-x-fill::before { content: "\f4df"; } +.bi-person-x::before { content: "\f4e0"; } +.bi-person::before { content: "\f4e1"; } +.bi-phone-fill::before { content: "\f4e2"; } +.bi-phone-landscape-fill::before { content: "\f4e3"; } +.bi-phone-landscape::before { content: "\f4e4"; } +.bi-phone-vibrate-fill::before { content: "\f4e5"; } +.bi-phone-vibrate::before { content: "\f4e6"; } +.bi-phone::before { content: "\f4e7"; } +.bi-pie-chart-fill::before { content: "\f4e8"; } +.bi-pie-chart::before { content: "\f4e9"; } +.bi-pin-angle-fill::before { content: "\f4ea"; } +.bi-pin-angle::before { content: "\f4eb"; } +.bi-pin-fill::before { content: "\f4ec"; } +.bi-pin::before { content: "\f4ed"; } +.bi-pip-fill::before { content: "\f4ee"; } +.bi-pip::before { content: "\f4ef"; } +.bi-play-btn-fill::before { content: "\f4f0"; } +.bi-play-btn::before { content: "\f4f1"; } +.bi-play-circle-fill::before { content: "\f4f2"; } +.bi-play-circle::before { content: "\f4f3"; } +.bi-play-fill::before { content: "\f4f4"; } +.bi-play::before { content: "\f4f5"; } +.bi-plug-fill::before { content: "\f4f6"; } +.bi-plug::before { content: "\f4f7"; } +.bi-plus-circle-dotted::before { content: "\f4f8"; } +.bi-plus-circle-fill::before { content: "\f4f9"; } +.bi-plus-circle::before { content: "\f4fa"; } +.bi-plus-square-dotted::before { content: "\f4fb"; } +.bi-plus-square-fill::before { content: "\f4fc"; } +.bi-plus-square::before { content: "\f4fd"; } +.bi-plus::before { content: "\f4fe"; } +.bi-power::before { content: "\f4ff"; } +.bi-printer-fill::before { content: "\f500"; } +.bi-printer::before { content: "\f501"; } +.bi-puzzle-fill::before { content: "\f502"; } +.bi-puzzle::before { content: "\f503"; } +.bi-question-circle-fill::before { content: "\f504"; } +.bi-question-circle::before { content: "\f505"; } +.bi-question-diamond-fill::before { content: "\f506"; } +.bi-question-diamond::before { content: "\f507"; } +.bi-question-octagon-fill::before { content: "\f508"; } +.bi-question-octagon::before { content: "\f509"; } +.bi-question-square-fill::before { content: "\f50a"; } +.bi-question-square::before { content: "\f50b"; } +.bi-question::before { content: "\f50c"; } +.bi-rainbow::before { content: "\f50d"; } +.bi-receipt-cutoff::before { content: "\f50e"; } +.bi-receipt::before { content: "\f50f"; } +.bi-reception-0::before { content: "\f510"; } +.bi-reception-1::before { content: "\f511"; } +.bi-reception-2::before { content: "\f512"; } +.bi-reception-3::before { content: "\f513"; } +.bi-reception-4::before { content: "\f514"; } +.bi-record-btn-fill::before { content: "\f515"; } +.bi-record-btn::before { content: "\f516"; } +.bi-record-circle-fill::before { content: "\f517"; } +.bi-record-circle::before { content: "\f518"; } +.bi-record-fill::before { content: "\f519"; } +.bi-record::before { content: "\f51a"; } +.bi-record2-fill::before { content: "\f51b"; } +.bi-record2::before { content: "\f51c"; } +.bi-reply-all-fill::before { content: "\f51d"; } +.bi-reply-all::before { content: "\f51e"; } +.bi-reply-fill::before { content: "\f51f"; } +.bi-reply::before { content: "\f520"; } +.bi-rss-fill::before { content: "\f521"; } +.bi-rss::before { content: "\f522"; } +.bi-rulers::before { content: "\f523"; } +.bi-save-fill::before { content: "\f524"; } +.bi-save::before { content: "\f525"; } +.bi-save2-fill::before { content: "\f526"; } +.bi-save2::before { content: "\f527"; } +.bi-scissors::before { content: "\f528"; } +.bi-screwdriver::before { content: "\f529"; } +.bi-search::before { content: "\f52a"; } +.bi-segmented-nav::before { content: "\f52b"; } +.bi-server::before { content: "\f52c"; } +.bi-share-fill::before { content: "\f52d"; } +.bi-share::before { content: "\f52e"; } +.bi-shield-check::before { content: "\f52f"; } +.bi-shield-exclamation::before { content: "\f530"; } +.bi-shield-fill-check::before { content: "\f531"; } +.bi-shield-fill-exclamation::before { content: "\f532"; } +.bi-shield-fill-minus::before { content: "\f533"; } +.bi-shield-fill-plus::before { content: "\f534"; } +.bi-shield-fill-x::before { content: "\f535"; } +.bi-shield-fill::before { content: "\f536"; } +.bi-shield-lock-fill::before { content: "\f537"; } +.bi-shield-lock::before { content: "\f538"; } +.bi-shield-minus::before { content: "\f539"; } +.bi-shield-plus::before { content: "\f53a"; } +.bi-shield-shaded::before { content: "\f53b"; } +.bi-shield-slash-fill::before { content: "\f53c"; } +.bi-shield-slash::before { content: "\f53d"; } +.bi-shield-x::before { content: "\f53e"; } +.bi-shield::before { content: "\f53f"; } +.bi-shift-fill::before { content: "\f540"; } +.bi-shift::before { content: "\f541"; } +.bi-shop-window::before { content: "\f542"; } +.bi-shop::before { content: "\f543"; } +.bi-shuffle::before { content: "\f544"; } +.bi-signpost-2-fill::before { content: "\f545"; } +.bi-signpost-2::before { content: "\f546"; } +.bi-signpost-fill::before { content: "\f547"; } +.bi-signpost-split-fill::before { content: "\f548"; } +.bi-signpost-split::before { content: "\f549"; } +.bi-signpost::before { content: "\f54a"; } +.bi-sim-fill::before { content: "\f54b"; } +.bi-sim::before { content: "\f54c"; } +.bi-skip-backward-btn-fill::before { content: "\f54d"; } +.bi-skip-backward-btn::before { content: "\f54e"; } +.bi-skip-backward-circle-fill::before { content: "\f54f"; } +.bi-skip-backward-circle::before { content: "\f550"; } +.bi-skip-backward-fill::before { content: "\f551"; } +.bi-skip-backward::before { content: "\f552"; } +.bi-skip-end-btn-fill::before { content: "\f553"; } +.bi-skip-end-btn::before { content: "\f554"; } +.bi-skip-end-circle-fill::before { content: "\f555"; } +.bi-skip-end-circle::before { content: "\f556"; } +.bi-skip-end-fill::before { content: "\f557"; } +.bi-skip-end::before { content: "\f558"; } +.bi-skip-forward-btn-fill::before { content: "\f559"; } +.bi-skip-forward-btn::before { content: "\f55a"; } +.bi-skip-forward-circle-fill::before { content: "\f55b"; } +.bi-skip-forward-circle::before { content: "\f55c"; } +.bi-skip-forward-fill::before { content: "\f55d"; } +.bi-skip-forward::before { content: "\f55e"; } +.bi-skip-start-btn-fill::before { content: "\f55f"; } +.bi-skip-start-btn::before { content: "\f560"; } +.bi-skip-start-circle-fill::before { content: "\f561"; } +.bi-skip-start-circle::before { content: "\f562"; } +.bi-skip-start-fill::before { content: "\f563"; } +.bi-skip-start::before { content: "\f564"; } +.bi-slack::before { content: "\f565"; } +.bi-slash-circle-fill::before { content: "\f566"; } +.bi-slash-circle::before { content: "\f567"; } +.bi-slash-square-fill::before { content: "\f568"; } +.bi-slash-square::before { content: "\f569"; } +.bi-slash::before { content: "\f56a"; } +.bi-sliders::before { content: "\f56b"; } +.bi-smartwatch::before { content: "\f56c"; } +.bi-snow::before { content: "\f56d"; } +.bi-snow2::before { content: "\f56e"; } +.bi-snow3::before { content: "\f56f"; } +.bi-sort-alpha-down-alt::before { content: "\f570"; } +.bi-sort-alpha-down::before { content: "\f571"; } +.bi-sort-alpha-up-alt::before { content: "\f572"; } +.bi-sort-alpha-up::before { content: "\f573"; } +.bi-sort-down-alt::before { content: "\f574"; } +.bi-sort-down::before { content: "\f575"; } +.bi-sort-numeric-down-alt::before { content: "\f576"; } +.bi-sort-numeric-down::before { content: "\f577"; } +.bi-sort-numeric-up-alt::before { content: "\f578"; } +.bi-sort-numeric-up::before { content: "\f579"; } +.bi-sort-up-alt::before { content: "\f57a"; } +.bi-sort-up::before { content: "\f57b"; } +.bi-soundwave::before { content: "\f57c"; } +.bi-speaker-fill::before { content: "\f57d"; } +.bi-speaker::before { content: "\f57e"; } +.bi-speedometer::before { content: "\f57f"; } +.bi-speedometer2::before { content: "\f580"; } +.bi-spellcheck::before { content: "\f581"; } +.bi-square-fill::before { content: "\f582"; } +.bi-square-half::before { content: "\f583"; } +.bi-square::before { content: "\f584"; } +.bi-stack::before { content: "\f585"; } +.bi-star-fill::before { content: "\f586"; } +.bi-star-half::before { content: "\f587"; } +.bi-star::before { content: "\f588"; } +.bi-stars::before { content: "\f589"; } +.bi-stickies-fill::before { content: "\f58a"; } +.bi-stickies::before { content: "\f58b"; } +.bi-sticky-fill::before { content: "\f58c"; } +.bi-sticky::before { content: "\f58d"; } +.bi-stop-btn-fill::before { content: "\f58e"; } +.bi-stop-btn::before { content: "\f58f"; } +.bi-stop-circle-fill::before { content: "\f590"; } +.bi-stop-circle::before { content: "\f591"; } +.bi-stop-fill::before { content: "\f592"; } +.bi-stop::before { content: "\f593"; } +.bi-stoplights-fill::before { content: "\f594"; } +.bi-stoplights::before { content: "\f595"; } +.bi-stopwatch-fill::before { content: "\f596"; } +.bi-stopwatch::before { content: "\f597"; } +.bi-subtract::before { content: "\f598"; } +.bi-suit-club-fill::before { content: "\f599"; } +.bi-suit-club::before { content: "\f59a"; } +.bi-suit-diamond-fill::before { content: "\f59b"; } +.bi-suit-diamond::before { content: "\f59c"; } +.bi-suit-heart-fill::before { content: "\f59d"; } +.bi-suit-heart::before { content: "\f59e"; } +.bi-suit-spade-fill::before { content: "\f59f"; } +.bi-suit-spade::before { content: "\f5a0"; } +.bi-sun-fill::before { content: "\f5a1"; } +.bi-sun::before { content: "\f5a2"; } +.bi-sunglasses::before { content: "\f5a3"; } +.bi-sunrise-fill::before { content: "\f5a4"; } +.bi-sunrise::before { content: "\f5a5"; } +.bi-sunset-fill::before { content: "\f5a6"; } +.bi-sunset::before { content: "\f5a7"; } +.bi-symmetry-horizontal::before { content: "\f5a8"; } +.bi-symmetry-vertical::before { content: "\f5a9"; } +.bi-table::before { content: "\f5aa"; } +.bi-tablet-fill::before { content: "\f5ab"; } +.bi-tablet-landscape-fill::before { content: "\f5ac"; } +.bi-tablet-landscape::before { content: "\f5ad"; } +.bi-tablet::before { content: "\f5ae"; } +.bi-tag-fill::before { content: "\f5af"; } +.bi-tag::before { content: "\f5b0"; } +.bi-tags-fill::before { content: "\f5b1"; } +.bi-tags::before { content: "\f5b2"; } +.bi-telegram::before { content: "\f5b3"; } +.bi-telephone-fill::before { content: "\f5b4"; } +.bi-telephone-forward-fill::before { content: "\f5b5"; } +.bi-telephone-forward::before { content: "\f5b6"; } +.bi-telephone-inbound-fill::before { content: "\f5b7"; } +.bi-telephone-inbound::before { content: "\f5b8"; } +.bi-telephone-minus-fill::before { content: "\f5b9"; } +.bi-telephone-minus::before { content: "\f5ba"; } +.bi-telephone-outbound-fill::before { content: "\f5bb"; } +.bi-telephone-outbound::before { content: "\f5bc"; } +.bi-telephone-plus-fill::before { content: "\f5bd"; } +.bi-telephone-plus::before { content: "\f5be"; } +.bi-telephone-x-fill::before { content: "\f5bf"; } +.bi-telephone-x::before { content: "\f5c0"; } +.bi-telephone::before { content: "\f5c1"; } +.bi-terminal-fill::before { content: "\f5c2"; } +.bi-terminal::before { content: "\f5c3"; } +.bi-text-center::before { content: "\f5c4"; } +.bi-text-indent-left::before { content: "\f5c5"; } +.bi-text-indent-right::before { content: "\f5c6"; } +.bi-text-left::before { content: "\f5c7"; } +.bi-text-paragraph::before { content: "\f5c8"; } +.bi-text-right::before { content: "\f5c9"; } +.bi-textarea-resize::before { content: "\f5ca"; } +.bi-textarea-t::before { content: "\f5cb"; } +.bi-textarea::before { content: "\f5cc"; } +.bi-thermometer-half::before { content: "\f5cd"; } +.bi-thermometer-high::before { content: "\f5ce"; } +.bi-thermometer-low::before { content: "\f5cf"; } +.bi-thermometer-snow::before { content: "\f5d0"; } +.bi-thermometer-sun::before { content: "\f5d1"; } +.bi-thermometer::before { content: "\f5d2"; } +.bi-three-dots-vertical::before { content: "\f5d3"; } +.bi-three-dots::before { content: "\f5d4"; } +.bi-toggle-off::before { content: "\f5d5"; } +.bi-toggle-on::before { content: "\f5d6"; } +.bi-toggle2-off::before { content: "\f5d7"; } +.bi-toggle2-on::before { content: "\f5d8"; } +.bi-toggles::before { content: "\f5d9"; } +.bi-toggles2::before { content: "\f5da"; } +.bi-tools::before { content: "\f5db"; } +.bi-tornado::before { content: "\f5dc"; } +.bi-trash-fill::before { content: "\f5dd"; } +.bi-trash::before { content: "\f5de"; } +.bi-trash2-fill::before { content: "\f5df"; } +.bi-trash2::before { content: "\f5e0"; } +.bi-tree-fill::before { content: "\f5e1"; } +.bi-tree::before { content: "\f5e2"; } +.bi-triangle-fill::before { content: "\f5e3"; } +.bi-triangle-half::before { content: "\f5e4"; } +.bi-triangle::before { content: "\f5e5"; } +.bi-trophy-fill::before { content: "\f5e6"; } +.bi-trophy::before { content: "\f5e7"; } +.bi-tropical-storm::before { content: "\f5e8"; } +.bi-truck-flatbed::before { content: "\f5e9"; } +.bi-truck::before { content: "\f5ea"; } +.bi-tsunami::before { content: "\f5eb"; } +.bi-tv-fill::before { content: "\f5ec"; } +.bi-tv::before { content: "\f5ed"; } +.bi-twitch::before { content: "\f5ee"; } +.bi-twitter::before { content: "\f5ef"; } +.bi-type-bold::before { content: "\f5f0"; } +.bi-type-h1::before { content: "\f5f1"; } +.bi-type-h2::before { content: "\f5f2"; } +.bi-type-h3::before { content: "\f5f3"; } +.bi-type-italic::before { content: "\f5f4"; } +.bi-type-strikethrough::before { content: "\f5f5"; } +.bi-type-underline::before { content: "\f5f6"; } +.bi-type::before { content: "\f5f7"; } +.bi-ui-checks-grid::before { content: "\f5f8"; } +.bi-ui-checks::before { content: "\f5f9"; } +.bi-ui-radios-grid::before { content: "\f5fa"; } +.bi-ui-radios::before { content: "\f5fb"; } +.bi-umbrella-fill::before { content: "\f5fc"; } +.bi-umbrella::before { content: "\f5fd"; } +.bi-union::before { content: "\f5fe"; } +.bi-unlock-fill::before { content: "\f5ff"; } +.bi-unlock::before { content: "\f600"; } +.bi-upc-scan::before { content: "\f601"; } +.bi-upc::before { content: "\f602"; } +.bi-upload::before { content: "\f603"; } +.bi-vector-pen::before { content: "\f604"; } +.bi-view-list::before { content: "\f605"; } +.bi-view-stacked::before { content: "\f606"; } +.bi-vinyl-fill::before { content: "\f607"; } +.bi-vinyl::before { content: "\f608"; } +.bi-voicemail::before { content: "\f609"; } +.bi-volume-down-fill::before { content: "\f60a"; } +.bi-volume-down::before { content: "\f60b"; } +.bi-volume-mute-fill::before { content: "\f60c"; } +.bi-volume-mute::before { content: "\f60d"; } +.bi-volume-off-fill::before { content: "\f60e"; } +.bi-volume-off::before { content: "\f60f"; } +.bi-volume-up-fill::before { content: "\f610"; } +.bi-volume-up::before { content: "\f611"; } +.bi-vr::before { content: "\f612"; } +.bi-wallet-fill::before { content: "\f613"; } +.bi-wallet::before { content: "\f614"; } +.bi-wallet2::before { content: "\f615"; } +.bi-watch::before { content: "\f616"; } +.bi-water::before { content: "\f617"; } +.bi-whatsapp::before { content: "\f618"; } +.bi-wifi-1::before { content: "\f619"; } +.bi-wifi-2::before { content: "\f61a"; } +.bi-wifi-off::before { content: "\f61b"; } +.bi-wifi::before { content: "\f61c"; } +.bi-wind::before { content: "\f61d"; } +.bi-window-dock::before { content: "\f61e"; } +.bi-window-sidebar::before { content: "\f61f"; } +.bi-window::before { content: "\f620"; } +.bi-wrench::before { content: "\f621"; } +.bi-x-circle-fill::before { content: "\f622"; } +.bi-x-circle::before { content: "\f623"; } +.bi-x-diamond-fill::before { content: "\f624"; } +.bi-x-diamond::before { content: "\f625"; } +.bi-x-octagon-fill::before { content: "\f626"; } +.bi-x-octagon::before { content: "\f627"; } +.bi-x-square-fill::before { content: "\f628"; } +.bi-x-square::before { content: "\f629"; } +.bi-x::before { content: "\f62a"; } +.bi-youtube::before { content: "\f62b"; } +.bi-zoom-in::before { content: "\f62c"; } +.bi-zoom-out::before { content: "\f62d"; } +.bi-bank::before { content: "\f62e"; } +.bi-bank2::before { content: "\f62f"; } +.bi-bell-slash-fill::before { content: "\f630"; } +.bi-bell-slash::before { content: "\f631"; } +.bi-cash-coin::before { content: "\f632"; } +.bi-check-lg::before { content: "\f633"; } +.bi-coin::before { content: "\f634"; } +.bi-currency-bitcoin::before { content: "\f635"; } +.bi-currency-dollar::before { content: "\f636"; } +.bi-currency-euro::before { content: "\f637"; } +.bi-currency-exchange::before { content: "\f638"; } +.bi-currency-pound::before { content: "\f639"; } +.bi-currency-yen::before { content: "\f63a"; } +.bi-dash-lg::before { content: "\f63b"; } +.bi-exclamation-lg::before { content: "\f63c"; } +.bi-file-earmark-pdf-fill::before { content: "\f63d"; } +.bi-file-earmark-pdf::before { content: "\f63e"; } +.bi-file-pdf-fill::before { content: "\f63f"; } +.bi-file-pdf::before { content: "\f640"; } +.bi-gender-ambiguous::before { content: "\f641"; } +.bi-gender-female::before { content: "\f642"; } +.bi-gender-male::before { content: "\f643"; } +.bi-gender-trans::before { content: "\f644"; } +.bi-headset-vr::before { content: "\f645"; } +.bi-info-lg::before { content: "\f646"; } +.bi-mastodon::before { content: "\f647"; } +.bi-messenger::before { content: "\f648"; } +.bi-piggy-bank-fill::before { content: "\f649"; } +.bi-piggy-bank::before { content: "\f64a"; } +.bi-pin-map-fill::before { content: "\f64b"; } +.bi-pin-map::before { content: "\f64c"; } +.bi-plus-lg::before { content: "\f64d"; } +.bi-question-lg::before { content: "\f64e"; } +.bi-recycle::before { content: "\f64f"; } +.bi-reddit::before { content: "\f650"; } +.bi-safe-fill::before { content: "\f651"; } +.bi-safe2-fill::before { content: "\f652"; } +.bi-safe2::before { content: "\f653"; } +.bi-sd-card-fill::before { content: "\f654"; } +.bi-sd-card::before { content: "\f655"; } +.bi-skype::before { content: "\f656"; } +.bi-slash-lg::before { content: "\f657"; } +.bi-translate::before { content: "\f658"; } +.bi-x-lg::before { content: "\f659"; } +.bi-safe::before { content: "\f65a"; } +.bi-apple::before { content: "\f65b"; } +.bi-microsoft::before { content: "\f65d"; } +.bi-windows::before { content: "\f65e"; } +.bi-behance::before { content: "\f65c"; } +.bi-dribbble::before { content: "\f65f"; } +.bi-line::before { content: "\f660"; } +.bi-medium::before { content: "\f661"; } +.bi-paypal::before { content: "\f662"; } +.bi-pinterest::before { content: "\f663"; } +.bi-signal::before { content: "\f664"; } +.bi-snapchat::before { content: "\f665"; } +.bi-spotify::before { content: "\f666"; } +.bi-stack-overflow::before { content: "\f667"; } +.bi-strava::before { content: "\f668"; } +.bi-wordpress::before { content: "\f669"; } +.bi-vimeo::before { content: "\f66a"; } +.bi-activity::before { content: "\f66b"; } +.bi-easel2-fill::before { content: "\f66c"; } +.bi-easel2::before { content: "\f66d"; } +.bi-easel3-fill::before { content: "\f66e"; } +.bi-easel3::before { content: "\f66f"; } +.bi-fan::before { content: "\f670"; } +.bi-fingerprint::before { content: "\f671"; } +.bi-graph-down-arrow::before { content: "\f672"; } +.bi-graph-up-arrow::before { content: "\f673"; } +.bi-hypnotize::before { content: "\f674"; } +.bi-magic::before { content: "\f675"; } +.bi-person-rolodex::before { content: "\f676"; } +.bi-person-video::before { content: "\f677"; } +.bi-person-video2::before { content: "\f678"; } +.bi-person-video3::before { content: "\f679"; } +.bi-person-workspace::before { content: "\f67a"; } +.bi-radioactive::before { content: "\f67b"; } +.bi-webcam-fill::before { content: "\f67c"; } +.bi-webcam::before { content: "\f67d"; } +.bi-yin-yang::before { content: "\f67e"; } +.bi-bandaid-fill::before { content: "\f680"; } +.bi-bandaid::before { content: "\f681"; } +.bi-bluetooth::before { content: "\f682"; } +.bi-body-text::before { content: "\f683"; } +.bi-boombox::before { content: "\f684"; } +.bi-boxes::before { content: "\f685"; } +.bi-dpad-fill::before { content: "\f686"; } +.bi-dpad::before { content: "\f687"; } +.bi-ear-fill::before { content: "\f688"; } +.bi-ear::before { content: "\f689"; } +.bi-envelope-check-1::before { content: "\f68a"; } +.bi-envelope-check-fill::before { content: "\f68b"; } +.bi-envelope-check::before { content: "\f68c"; } +.bi-envelope-dash-1::before { content: "\f68d"; } +.bi-envelope-dash-fill::before { content: "\f68e"; } +.bi-envelope-dash::before { content: "\f68f"; } +.bi-envelope-exclamation-1::before { content: "\f690"; } +.bi-envelope-exclamation-fill::before { content: "\f691"; } +.bi-envelope-exclamation::before { content: "\f692"; } +.bi-envelope-plus-fill::before { content: "\f693"; } +.bi-envelope-plus::before { content: "\f694"; } +.bi-envelope-slash-1::before { content: "\f695"; } +.bi-envelope-slash-fill::before { content: "\f696"; } +.bi-envelope-slash::before { content: "\f697"; } +.bi-envelope-x-1::before { content: "\f698"; } +.bi-envelope-x-fill::before { content: "\f699"; } +.bi-envelope-x::before { content: "\f69a"; } +.bi-explicit-fill::before { content: "\f69b"; } +.bi-explicit::before { content: "\f69c"; } +.bi-git::before { content: "\f69d"; } +.bi-infinity::before { content: "\f69e"; } +.bi-list-columns-reverse::before { content: "\f69f"; } +.bi-list-columns::before { content: "\f6a0"; } +.bi-meta::before { content: "\f6a1"; } +.bi-mortorboard-fill::before { content: "\f6a2"; } +.bi-mortorboard::before { content: "\f6a3"; } +.bi-nintendo-switch::before { content: "\f6a4"; } +.bi-pc-display-horizontal::before { content: "\f6a5"; } +.bi-pc-display::before { content: "\f6a6"; } +.bi-pc-horizontal::before { content: "\f6a7"; } +.bi-pc::before { content: "\f6a8"; } +.bi-playstation::before { content: "\f6a9"; } +.bi-plus-slash-minus::before { content: "\f6aa"; } +.bi-projector-fill::before { content: "\f6ab"; } +.bi-projector::before { content: "\f6ac"; } +.bi-qr-code-scan::before { content: "\f6ad"; } +.bi-qr-code::before { content: "\f6ae"; } +.bi-quora::before { content: "\f6af"; } +.bi-quote::before { content: "\f6b0"; } +.bi-robot::before { content: "\f6b1"; } +.bi-send-check-fill::before { content: "\f6b2"; } +.bi-send-check::before { content: "\f6b3"; } +.bi-send-dash-fill::before { content: "\f6b4"; } +.bi-send-dash::before { content: "\f6b5"; } +.bi-send-exclamation-1::before { content: "\f6b6"; } +.bi-send-exclamation-fill::before { content: "\f6b7"; } +.bi-send-exclamation::before { content: "\f6b8"; } +.bi-send-fill::before { content: "\f6b9"; } +.bi-send-plus-fill::before { content: "\f6ba"; } +.bi-send-plus::before { content: "\f6bb"; } +.bi-send-slash-fill::before { content: "\f6bc"; } +.bi-send-slash::before { content: "\f6bd"; } +.bi-send-x-fill::before { content: "\f6be"; } +.bi-send-x::before { content: "\f6bf"; } +.bi-send::before { content: "\f6c0"; } +.bi-steam::before { content: "\f6c1"; } +.bi-terminal-dash-1::before { content: "\f6c2"; } +.bi-terminal-dash::before { content: "\f6c3"; } +.bi-terminal-plus::before { content: "\f6c4"; } +.bi-terminal-split::before { content: "\f6c5"; } +.bi-ticket-detailed-fill::before { content: "\f6c6"; } +.bi-ticket-detailed::before { content: "\f6c7"; } +.bi-ticket-fill::before { content: "\f6c8"; } +.bi-ticket-perforated-fill::before { content: "\f6c9"; } +.bi-ticket-perforated::before { content: "\f6ca"; } +.bi-ticket::before { content: "\f6cb"; } +.bi-tiktok::before { content: "\f6cc"; } +.bi-window-dash::before { content: "\f6cd"; } +.bi-window-desktop::before { content: "\f6ce"; } +.bi-window-fullscreen::before { content: "\f6cf"; } +.bi-window-plus::before { content: "\f6d0"; } +.bi-window-split::before { content: "\f6d1"; } +.bi-window-stack::before { content: "\f6d2"; } +.bi-window-x::before { content: "\f6d3"; } +.bi-xbox::before { content: "\f6d4"; } +.bi-ethernet::before { content: "\f6d5"; } +.bi-hdmi-fill::before { content: "\f6d6"; } +.bi-hdmi::before { content: "\f6d7"; } +.bi-usb-c-fill::before { content: "\f6d8"; } +.bi-usb-c::before { content: "\f6d9"; } +.bi-usb-fill::before { content: "\f6da"; } +.bi-usb-plug-fill::before { content: "\f6db"; } +.bi-usb-plug::before { content: "\f6dc"; } +.bi-usb-symbol::before { content: "\f6dd"; } +.bi-usb::before { content: "\f6de"; } +.bi-boombox-fill::before { content: "\f6df"; } +.bi-displayport-1::before { content: "\f6e0"; } +.bi-displayport::before { content: "\f6e1"; } +.bi-gpu-card::before { content: "\f6e2"; } +.bi-memory::before { content: "\f6e3"; } +.bi-modem-fill::before { content: "\f6e4"; } +.bi-modem::before { content: "\f6e5"; } +.bi-motherboard-fill::before { content: "\f6e6"; } +.bi-motherboard::before { content: "\f6e7"; } +.bi-optical-audio-fill::before { content: "\f6e8"; } +.bi-optical-audio::before { content: "\f6e9"; } +.bi-pci-card::before { content: "\f6ea"; } +.bi-router-fill::before { content: "\f6eb"; } +.bi-router::before { content: "\f6ec"; } +.bi-ssd-fill::before { content: "\f6ed"; } +.bi-ssd::before { content: "\f6ee"; } +.bi-thunderbolt-fill::before { content: "\f6ef"; } +.bi-thunderbolt::before { content: "\f6f0"; } +.bi-usb-drive-fill::before { content: "\f6f1"; } +.bi-usb-drive::before { content: "\f6f2"; } +.bi-usb-micro-fill::before { content: "\f6f3"; } +.bi-usb-micro::before { content: "\f6f4"; } +.bi-usb-mini-fill::before { content: "\f6f5"; } +.bi-usb-mini::before { content: "\f6f6"; } +.bi-cloud-haze2::before { content: "\f6f7"; } +.bi-device-hdd-fill::before { content: "\f6f8"; } +.bi-device-hdd::before { content: "\f6f9"; } +.bi-device-ssd-fill::before { content: "\f6fa"; } +.bi-device-ssd::before { content: "\f6fb"; } +.bi-displayport-fill::before { content: "\f6fc"; } +.bi-mortarboard-fill::before { content: "\f6fd"; } +.bi-mortarboard::before { content: "\f6fe"; } +.bi-terminal-x::before { content: "\f6ff"; } +.bi-arrow-through-heart-fill::before { content: "\f700"; } +.bi-arrow-through-heart::before { content: "\f701"; } +.bi-badge-sd-fill::before { content: "\f702"; } +.bi-badge-sd::before { content: "\f703"; } +.bi-bag-heart-fill::before { content: "\f704"; } +.bi-bag-heart::before { content: "\f705"; } +.bi-balloon-fill::before { content: "\f706"; } +.bi-balloon-heart-fill::before { content: "\f707"; } +.bi-balloon-heart::before { content: "\f708"; } +.bi-balloon::before { content: "\f709"; } +.bi-box2-fill::before { content: "\f70a"; } +.bi-box2-heart-fill::before { content: "\f70b"; } +.bi-box2-heart::before { content: "\f70c"; } +.bi-box2::before { content: "\f70d"; } +.bi-braces-asterisk::before { content: "\f70e"; } +.bi-calendar-heart-fill::before { content: "\f70f"; } +.bi-calendar-heart::before { content: "\f710"; } +.bi-calendar2-heart-fill::before { content: "\f711"; } +.bi-calendar2-heart::before { content: "\f712"; } +.bi-chat-heart-fill::before { content: "\f713"; } +.bi-chat-heart::before { content: "\f714"; } +.bi-chat-left-heart-fill::before { content: "\f715"; } +.bi-chat-left-heart::before { content: "\f716"; } +.bi-chat-right-heart-fill::before { content: "\f717"; } +.bi-chat-right-heart::before { content: "\f718"; } +.bi-chat-square-heart-fill::before { content: "\f719"; } +.bi-chat-square-heart::before { content: "\f71a"; } +.bi-clipboard-check-fill::before { content: "\f71b"; } +.bi-clipboard-data-fill::before { content: "\f71c"; } +.bi-clipboard-fill::before { content: "\f71d"; } +.bi-clipboard-heart-fill::before { content: "\f71e"; } +.bi-clipboard-heart::before { content: "\f71f"; } +.bi-clipboard-minus-fill::before { content: "\f720"; } +.bi-clipboard-plus-fill::before { content: "\f721"; } +.bi-clipboard-pulse::before { content: "\f722"; } +.bi-clipboard-x-fill::before { content: "\f723"; } +.bi-clipboard2-check-fill::before { content: "\f724"; } +.bi-clipboard2-check::before { content: "\f725"; } +.bi-clipboard2-data-fill::before { content: "\f726"; } +.bi-clipboard2-data::before { content: "\f727"; } +.bi-clipboard2-fill::before { content: "\f728"; } +.bi-clipboard2-heart-fill::before { content: "\f729"; } +.bi-clipboard2-heart::before { content: "\f72a"; } +.bi-clipboard2-minus-fill::before { content: "\f72b"; } +.bi-clipboard2-minus::before { content: "\f72c"; } +.bi-clipboard2-plus-fill::before { content: "\f72d"; } +.bi-clipboard2-plus::before { content: "\f72e"; } +.bi-clipboard2-pulse-fill::before { content: "\f72f"; } +.bi-clipboard2-pulse::before { content: "\f730"; } +.bi-clipboard2-x-fill::before { content: "\f731"; } +.bi-clipboard2-x::before { content: "\f732"; } +.bi-clipboard2::before { content: "\f733"; } +.bi-emoji-kiss-fill::before { content: "\f734"; } +.bi-emoji-kiss::before { content: "\f735"; } +.bi-envelope-heart-fill::before { content: "\f736"; } +.bi-envelope-heart::before { content: "\f737"; } +.bi-envelope-open-heart-fill::before { content: "\f738"; } +.bi-envelope-open-heart::before { content: "\f739"; } +.bi-envelope-paper-fill::before { content: "\f73a"; } +.bi-envelope-paper-heart-fill::before { content: "\f73b"; } +.bi-envelope-paper-heart::before { content: "\f73c"; } +.bi-envelope-paper::before { content: "\f73d"; } +.bi-filetype-aac::before { content: "\f73e"; } +.bi-filetype-ai::before { content: "\f73f"; } +.bi-filetype-bmp::before { content: "\f740"; } +.bi-filetype-cs::before { content: "\f741"; } +.bi-filetype-css::before { content: "\f742"; } +.bi-filetype-csv::before { content: "\f743"; } +.bi-filetype-doc::before { content: "\f744"; } +.bi-filetype-docx::before { content: "\f745"; } +.bi-filetype-exe::before { content: "\f746"; } +.bi-filetype-gif::before { content: "\f747"; } +.bi-filetype-heic::before { content: "\f748"; } +.bi-filetype-html::before { content: "\f749"; } +.bi-filetype-java::before { content: "\f74a"; } +.bi-filetype-jpg::before { content: "\f74b"; } +.bi-filetype-js::before { content: "\f74c"; } +.bi-filetype-jsx::before { content: "\f74d"; } +.bi-filetype-key::before { content: "\f74e"; } +.bi-filetype-m4p::before { content: "\f74f"; } +.bi-filetype-md::before { content: "\f750"; } +.bi-filetype-mdx::before { content: "\f751"; } +.bi-filetype-mov::before { content: "\f752"; } +.bi-filetype-mp3::before { content: "\f753"; } +.bi-filetype-mp4::before { content: "\f754"; } +.bi-filetype-otf::before { content: "\f755"; } +.bi-filetype-pdf::before { content: "\f756"; } +.bi-filetype-php::before { content: "\f757"; } +.bi-filetype-png::before { content: "\f758"; } +.bi-filetype-ppt-1::before { content: "\f759"; } +.bi-filetype-ppt::before { content: "\f75a"; } +.bi-filetype-psd::before { content: "\f75b"; } +.bi-filetype-py::before { content: "\f75c"; } +.bi-filetype-raw::before { content: "\f75d"; } +.bi-filetype-rb::before { content: "\f75e"; } +.bi-filetype-sass::before { content: "\f75f"; } +.bi-filetype-scss::before { content: "\f760"; } +.bi-filetype-sh::before { content: "\f761"; } +.bi-filetype-svg::before { content: "\f762"; } +.bi-filetype-tiff::before { content: "\f763"; } +.bi-filetype-tsx::before { content: "\f764"; } +.bi-filetype-ttf::before { content: "\f765"; } +.bi-filetype-txt::before { content: "\f766"; } +.bi-filetype-wav::before { content: "\f767"; } +.bi-filetype-woff::before { content: "\f768"; } +.bi-filetype-xls-1::before { content: "\f769"; } +.bi-filetype-xls::before { content: "\f76a"; } +.bi-filetype-xml::before { content: "\f76b"; } +.bi-filetype-yml::before { content: "\f76c"; } +.bi-heart-arrow::before { content: "\f76d"; } +.bi-heart-pulse-fill::before { content: "\f76e"; } +.bi-heart-pulse::before { content: "\f76f"; } +.bi-heartbreak-fill::before { content: "\f770"; } +.bi-heartbreak::before { content: "\f771"; } +.bi-hearts::before { content: "\f772"; } +.bi-hospital-fill::before { content: "\f773"; } +.bi-hospital::before { content: "\f774"; } +.bi-house-heart-fill::before { content: "\f775"; } +.bi-house-heart::before { content: "\f776"; } +.bi-incognito::before { content: "\f777"; } +.bi-magnet-fill::before { content: "\f778"; } +.bi-magnet::before { content: "\f779"; } +.bi-person-heart::before { content: "\f77a"; } +.bi-person-hearts::before { content: "\f77b"; } +.bi-phone-flip::before { content: "\f77c"; } +.bi-plugin::before { content: "\f77d"; } +.bi-postage-fill::before { content: "\f77e"; } +.bi-postage-heart-fill::before { content: "\f77f"; } +.bi-postage-heart::before { content: "\f780"; } +.bi-postage::before { content: "\f781"; } +.bi-postcard-fill::before { content: "\f782"; } +.bi-postcard-heart-fill::before { content: "\f783"; } +.bi-postcard-heart::before { content: "\f784"; } +.bi-postcard::before { content: "\f785"; } +.bi-search-heart-fill::before { content: "\f786"; } +.bi-search-heart::before { content: "\f787"; } +.bi-sliders2-vertical::before { content: "\f788"; } +.bi-sliders2::before { content: "\f789"; } +.bi-trash3-fill::before { content: "\f78a"; } +.bi-trash3::before { content: "\f78b"; } +.bi-valentine::before { content: "\f78c"; } +.bi-valentine2::before { content: "\f78d"; } +.bi-wrench-adjustable-circle-fill::before { content: "\f78e"; } +.bi-wrench-adjustable-circle::before { content: "\f78f"; } +.bi-wrench-adjustable::before { content: "\f790"; } +.bi-filetype-json::before { content: "\f791"; } +.bi-filetype-pptx::before { content: "\f792"; } +.bi-filetype-xlsx::before { content: "\f793"; } +.bi-1-circle-1::before { content: "\f794"; } +.bi-1-circle-fill-1::before { content: "\f795"; } +.bi-1-circle-fill::before { content: "\f796"; } +.bi-1-circle::before { content: "\f797"; } +.bi-1-square-fill::before { content: "\f798"; } +.bi-1-square::before { content: "\f799"; } +.bi-2-circle-1::before { content: "\f79a"; } +.bi-2-circle-fill-1::before { content: "\f79b"; } +.bi-2-circle-fill::before { content: "\f79c"; } +.bi-2-circle::before { content: "\f79d"; } +.bi-2-square-fill::before { content: "\f79e"; } +.bi-2-square::before { content: "\f79f"; } +.bi-3-circle-1::before { content: "\f7a0"; } +.bi-3-circle-fill-1::before { content: "\f7a1"; } +.bi-3-circle-fill::before { content: "\f7a2"; } +.bi-3-circle::before { content: "\f7a3"; } +.bi-3-square-fill::before { content: "\f7a4"; } +.bi-3-square::before { content: "\f7a5"; } +.bi-4-circle-1::before { content: "\f7a6"; } +.bi-4-circle-fill-1::before { content: "\f7a7"; } +.bi-4-circle-fill::before { content: "\f7a8"; } +.bi-4-circle::before { content: "\f7a9"; } +.bi-4-square-fill::before { content: "\f7aa"; } +.bi-4-square::before { content: "\f7ab"; } +.bi-5-circle-1::before { content: "\f7ac"; } +.bi-5-circle-fill-1::before { content: "\f7ad"; } +.bi-5-circle-fill::before { content: "\f7ae"; } +.bi-5-circle::before { content: "\f7af"; } +.bi-5-square-fill::before { content: "\f7b0"; } +.bi-5-square::before { content: "\f7b1"; } +.bi-6-circle-1::before { content: "\f7b2"; } +.bi-6-circle-fill-1::before { content: "\f7b3"; } +.bi-6-circle-fill::before { content: "\f7b4"; } +.bi-6-circle::before { content: "\f7b5"; } +.bi-6-square-fill::before { content: "\f7b6"; } +.bi-6-square::before { content: "\f7b7"; } +.bi-7-circle-1::before { content: "\f7b8"; } +.bi-7-circle-fill-1::before { content: "\f7b9"; } +.bi-7-circle-fill::before { content: "\f7ba"; } +.bi-7-circle::before { content: "\f7bb"; } +.bi-7-square-fill::before { content: "\f7bc"; } +.bi-7-square::before { content: "\f7bd"; } +.bi-8-circle-1::before { content: "\f7be"; } +.bi-8-circle-fill-1::before { content: "\f7bf"; } +.bi-8-circle-fill::before { content: "\f7c0"; } +.bi-8-circle::before { content: "\f7c1"; } +.bi-8-square-fill::before { content: "\f7c2"; } +.bi-8-square::before { content: "\f7c3"; } +.bi-9-circle-1::before { content: "\f7c4"; } +.bi-9-circle-fill-1::before { content: "\f7c5"; } +.bi-9-circle-fill::before { content: "\f7c6"; } +.bi-9-circle::before { content: "\f7c7"; } +.bi-9-square-fill::before { content: "\f7c8"; } +.bi-9-square::before { content: "\f7c9"; } +.bi-airplane-engines-fill::before { content: "\f7ca"; } +.bi-airplane-engines::before { content: "\f7cb"; } +.bi-airplane-fill::before { content: "\f7cc"; } +.bi-airplane::before { content: "\f7cd"; } +.bi-alexa::before { content: "\f7ce"; } +.bi-alipay::before { content: "\f7cf"; } +.bi-android::before { content: "\f7d0"; } +.bi-android2::before { content: "\f7d1"; } +.bi-box-fill::before { content: "\f7d2"; } +.bi-box-seam-fill::before { content: "\f7d3"; } +.bi-browser-chrome::before { content: "\f7d4"; } +.bi-browser-edge::before { content: "\f7d5"; } +.bi-browser-firefox::before { content: "\f7d6"; } +.bi-browser-safari::before { content: "\f7d7"; } +.bi-c-circle-1::before { content: "\f7d8"; } +.bi-c-circle-fill-1::before { content: "\f7d9"; } +.bi-c-circle-fill::before { content: "\f7da"; } +.bi-c-circle::before { content: "\f7db"; } +.bi-c-square-fill::before { content: "\f7dc"; } +.bi-c-square::before { content: "\f7dd"; } +.bi-capsule-pill::before { content: "\f7de"; } +.bi-capsule::before { content: "\f7df"; } +.bi-car-front-fill::before { content: "\f7e0"; } +.bi-car-front::before { content: "\f7e1"; } +.bi-cassette-fill::before { content: "\f7e2"; } +.bi-cassette::before { content: "\f7e3"; } +.bi-cc-circle-1::before { content: "\f7e4"; } +.bi-cc-circle-fill-1::before { content: "\f7e5"; } +.bi-cc-circle-fill::before { content: "\f7e6"; } +.bi-cc-circle::before { content: "\f7e7"; } +.bi-cc-square-fill::before { content: "\f7e8"; } +.bi-cc-square::before { content: "\f7e9"; } +.bi-cup-hot-fill::before { content: "\f7ea"; } +.bi-cup-hot::before { content: "\f7eb"; } +.bi-currency-rupee::before { content: "\f7ec"; } +.bi-dropbox::before { content: "\f7ed"; } +.bi-escape::before { content: "\f7ee"; } +.bi-fast-forward-btn-fill::before { content: "\f7ef"; } +.bi-fast-forward-btn::before { content: "\f7f0"; } +.bi-fast-forward-circle-fill::before { content: "\f7f1"; } +.bi-fast-forward-circle::before { content: "\f7f2"; } +.bi-fast-forward-fill::before { content: "\f7f3"; } +.bi-fast-forward::before { content: "\f7f4"; } +.bi-filetype-sql::before { content: "\f7f5"; } +.bi-fire::before { content: "\f7f6"; } +.bi-google-play::before { content: "\f7f7"; } +.bi-h-circle-1::before { content: "\f7f8"; } +.bi-h-circle-fill-1::before { content: "\f7f9"; } +.bi-h-circle-fill::before { content: "\f7fa"; } +.bi-h-circle::before { content: "\f7fb"; } +.bi-h-square-fill::before { content: "\f7fc"; } +.bi-h-square::before { content: "\f7fd"; } +.bi-indent::before { content: "\f7fe"; } +.bi-lungs-fill::before { content: "\f7ff"; } +.bi-lungs::before { content: "\f800"; } +.bi-microsoft-teams::before { content: "\f801"; } +.bi-p-circle-1::before { content: "\f802"; } +.bi-p-circle-fill-1::before { content: "\f803"; } +.bi-p-circle-fill::before { content: "\f804"; } +.bi-p-circle::before { content: "\f805"; } +.bi-p-square-fill::before { content: "\f806"; } +.bi-p-square::before { content: "\f807"; } +.bi-pass-fill::before { content: "\f808"; } +.bi-pass::before { content: "\f809"; } +.bi-prescription::before { content: "\f80a"; } +.bi-prescription2::before { content: "\f80b"; } +.bi-r-circle-1::before { content: "\f80c"; } +.bi-r-circle-fill-1::before { content: "\f80d"; } +.bi-r-circle-fill::before { content: "\f80e"; } +.bi-r-circle::before { content: "\f80f"; } +.bi-r-square-fill::before { content: "\f810"; } +.bi-r-square::before { content: "\f811"; } +.bi-repeat-1::before { content: "\f812"; } +.bi-repeat::before { content: "\f813"; } +.bi-rewind-btn-fill::before { content: "\f814"; } +.bi-rewind-btn::before { content: "\f815"; } +.bi-rewind-circle-fill::before { content: "\f816"; } +.bi-rewind-circle::before { content: "\f817"; } +.bi-rewind-fill::before { content: "\f818"; } +.bi-rewind::before { content: "\f819"; } +.bi-train-freight-front-fill::before { content: "\f81a"; } +.bi-train-freight-front::before { content: "\f81b"; } +.bi-train-front-fill::before { content: "\f81c"; } +.bi-train-front::before { content: "\f81d"; } +.bi-train-lightrail-front-fill::before { content: "\f81e"; } +.bi-train-lightrail-front::before { content: "\f81f"; } +.bi-truck-front-fill::before { content: "\f820"; } +.bi-truck-front::before { content: "\f821"; } +.bi-ubuntu::before { content: "\f822"; } +.bi-unindent::before { content: "\f823"; } +.bi-unity::before { content: "\f824"; } +.bi-universal-access-circle::before { content: "\f825"; } +.bi-universal-access::before { content: "\f826"; } +.bi-virus::before { content: "\f827"; } +.bi-virus2::before { content: "\f828"; } +.bi-wechat::before { content: "\f829"; } +.bi-yelp::before { content: "\f82a"; } +.bi-sign-stop-fill::before { content: "\f82b"; } +.bi-sign-stop-lights-fill::before { content: "\f82c"; } +.bi-sign-stop-lights::before { content: "\f82d"; } +.bi-sign-stop::before { content: "\f82e"; } +.bi-sign-turn-left-fill::before { content: "\f82f"; } +.bi-sign-turn-left::before { content: "\f830"; } +.bi-sign-turn-right-fill::before { content: "\f831"; } +.bi-sign-turn-right::before { content: "\f832"; } +.bi-sign-turn-slight-left-fill::before { content: "\f833"; } +.bi-sign-turn-slight-left::before { content: "\f834"; } +.bi-sign-turn-slight-right-fill::before { content: "\f835"; } +.bi-sign-turn-slight-right::before { content: "\f836"; } +.bi-sign-yield-fill::before { content: "\f837"; } +.bi-sign-yield::before { content: "\f838"; } +.bi-ev-station-fill::before { content: "\f839"; } +.bi-ev-station::before { content: "\f83a"; } +.bi-fuel-pump-diesel-fill::before { content: "\f83b"; } +.bi-fuel-pump-diesel::before { content: "\f83c"; } +.bi-fuel-pump-fill::before { content: "\f83d"; } +.bi-fuel-pump::before { content: "\f83e"; } +.bi-0-circle-fill::before { content: "\f83f"; } +.bi-0-circle::before { content: "\f840"; } +.bi-0-square-fill::before { content: "\f841"; } +.bi-0-square::before { content: "\f842"; } +.bi-rocket-fill::before { content: "\f843"; } +.bi-rocket-takeoff-fill::before { content: "\f844"; } +.bi-rocket-takeoff::before { content: "\f845"; } +.bi-rocket::before { content: "\f846"; } +.bi-stripe::before { content: "\f847"; } +.bi-subscript::before { content: "\f848"; } +.bi-superscript::before { content: "\f849"; } +.bi-trello::before { content: "\f84a"; } +.bi-envelope-at-fill::before { content: "\f84b"; } +.bi-envelope-at::before { content: "\f84c"; } +.bi-regex::before { content: "\f84d"; } +.bi-text-wrap::before { content: "\f84e"; } +.bi-sign-dead-end-fill::before { content: "\f84f"; } +.bi-sign-dead-end::before { content: "\f850"; } +.bi-sign-do-not-enter-fill::before { content: "\f851"; } +.bi-sign-do-not-enter::before { content: "\f852"; } +.bi-sign-intersection-fill::before { content: "\f853"; } +.bi-sign-intersection-side-fill::before { content: "\f854"; } +.bi-sign-intersection-side::before { content: "\f855"; } +.bi-sign-intersection-t-fill::before { content: "\f856"; } +.bi-sign-intersection-t::before { content: "\f857"; } +.bi-sign-intersection-y-fill::before { content: "\f858"; } +.bi-sign-intersection-y::before { content: "\f859"; } +.bi-sign-intersection::before { content: "\f85a"; } +.bi-sign-merge-left-fill::before { content: "\f85b"; } +.bi-sign-merge-left::before { content: "\f85c"; } +.bi-sign-merge-right-fill::before { content: "\f85d"; } +.bi-sign-merge-right::before { content: "\f85e"; } +.bi-sign-no-left-turn-fill::before { content: "\f85f"; } +.bi-sign-no-left-turn::before { content: "\f860"; } +.bi-sign-no-parking-fill::before { content: "\f861"; } +.bi-sign-no-parking::before { content: "\f862"; } +.bi-sign-no-right-turn-fill::before { content: "\f863"; } +.bi-sign-no-right-turn::before { content: "\f864"; } +.bi-sign-railroad-fill::before { content: "\f865"; } +.bi-sign-railroad::before { content: "\f866"; } +.bi-building-add::before { content: "\f867"; } +.bi-building-check::before { content: "\f868"; } +.bi-building-dash::before { content: "\f869"; } +.bi-building-down::before { content: "\f86a"; } +.bi-building-exclamation::before { content: "\f86b"; } +.bi-building-fill-add::before { content: "\f86c"; } +.bi-building-fill-check::before { content: "\f86d"; } +.bi-building-fill-dash::before { content: "\f86e"; } +.bi-building-fill-down::before { content: "\f86f"; } +.bi-building-fill-exclamation::before { content: "\f870"; } +.bi-building-fill-gear::before { content: "\f871"; } +.bi-building-fill-lock::before { content: "\f872"; } +.bi-building-fill-slash::before { content: "\f873"; } +.bi-building-fill-up::before { content: "\f874"; } +.bi-building-fill-x::before { content: "\f875"; } +.bi-building-fill::before { content: "\f876"; } +.bi-building-gear::before { content: "\f877"; } +.bi-building-lock::before { content: "\f878"; } +.bi-building-slash::before { content: "\f879"; } +.bi-building-up::before { content: "\f87a"; } +.bi-building-x::before { content: "\f87b"; } +.bi-buildings-fill::before { content: "\f87c"; } +.bi-buildings::before { content: "\f87d"; } +.bi-bus-front-fill::before { content: "\f87e"; } +.bi-bus-front::before { content: "\f87f"; } +.bi-ev-front-fill::before { content: "\f880"; } +.bi-ev-front::before { content: "\f881"; } +.bi-globe-americas::before { content: "\f882"; } +.bi-globe-asia-australia::before { content: "\f883"; } +.bi-globe-central-south-asia::before { content: "\f884"; } +.bi-globe-europe-africa::before { content: "\f885"; } +.bi-house-add-fill::before { content: "\f886"; } +.bi-house-add::before { content: "\f887"; } +.bi-house-check-fill::before { content: "\f888"; } +.bi-house-check::before { content: "\f889"; } +.bi-house-dash-fill::before { content: "\f88a"; } +.bi-house-dash::before { content: "\f88b"; } +.bi-house-down-fill::before { content: "\f88c"; } +.bi-house-down::before { content: "\f88d"; } +.bi-house-exclamation-fill::before { content: "\f88e"; } +.bi-house-exclamation::before { content: "\f88f"; } +.bi-house-gear-fill::before { content: "\f890"; } +.bi-house-gear::before { content: "\f891"; } +.bi-house-lock-fill::before { content: "\f892"; } +.bi-house-lock::before { content: "\f893"; } +.bi-house-slash-fill::before { content: "\f894"; } +.bi-house-slash::before { content: "\f895"; } +.bi-house-up-fill::before { content: "\f896"; } +.bi-house-up::before { content: "\f897"; } +.bi-house-x-fill::before { content: "\f898"; } +.bi-house-x::before { content: "\f899"; } +.bi-person-add::before { content: "\f89a"; } +.bi-person-down::before { content: "\f89b"; } +.bi-person-exclamation::before { content: "\f89c"; } +.bi-person-fill-add::before { content: "\f89d"; } +.bi-person-fill-check::before { content: "\f89e"; } +.bi-person-fill-dash::before { content: "\f89f"; } +.bi-person-fill-down::before { content: "\f8a0"; } +.bi-person-fill-exclamation::before { content: "\f8a1"; } +.bi-person-fill-gear::before { content: "\f8a2"; } +.bi-person-fill-lock::before { content: "\f8a3"; } +.bi-person-fill-slash::before { content: "\f8a4"; } +.bi-person-fill-up::before { content: "\f8a5"; } +.bi-person-fill-x::before { content: "\f8a6"; } +.bi-person-gear::before { content: "\f8a7"; } +.bi-person-lock::before { content: "\f8a8"; } +.bi-person-slash::before { content: "\f8a9"; } +.bi-person-up::before { content: "\f8aa"; } +.bi-scooter::before { content: "\f8ab"; } +.bi-taxi-front-fill::before { content: "\f8ac"; } +.bi-taxi-front::before { content: "\f8ad"; } +.bi-amd::before { content: "\f8ae"; } +.bi-database-add::before { content: "\f8af"; } +.bi-database-check::before { content: "\f8b0"; } +.bi-database-dash::before { content: "\f8b1"; } +.bi-database-down::before { content: "\f8b2"; } +.bi-database-exclamation::before { content: "\f8b3"; } +.bi-database-fill-add::before { content: "\f8b4"; } +.bi-database-fill-check::before { content: "\f8b5"; } +.bi-database-fill-dash::before { content: "\f8b6"; } +.bi-database-fill-down::before { content: "\f8b7"; } +.bi-database-fill-exclamation::before { content: "\f8b8"; } +.bi-database-fill-gear::before { content: "\f8b9"; } +.bi-database-fill-lock::before { content: "\f8ba"; } +.bi-database-fill-slash::before { content: "\f8bb"; } +.bi-database-fill-up::before { content: "\f8bc"; } +.bi-database-fill-x::before { content: "\f8bd"; } +.bi-database-fill::before { content: "\f8be"; } +.bi-database-gear::before { content: "\f8bf"; } +.bi-database-lock::before { content: "\f8c0"; } +.bi-database-slash::before { content: "\f8c1"; } +.bi-database-up::before { content: "\f8c2"; } +.bi-database-x::before { content: "\f8c3"; } +.bi-database::before { content: "\f8c4"; } +.bi-houses-fill::before { content: "\f8c5"; } +.bi-houses::before { content: "\f8c6"; } +.bi-nvidia::before { content: "\f8c7"; } +.bi-person-vcard-fill::before { content: "\f8c8"; } +.bi-person-vcard::before { content: "\f8c9"; } +.bi-sina-weibo::before { content: "\f8ca"; } +.bi-tencent-qq::before { content: "\f8cb"; } +.bi-wikipedia::before { content: "\f8cc"; } diff --git a/src/main/resources/static/css/bootstrap.min.css b/src/main/resources/static/css/bootstrap.min.css new file mode 100644 index 00000000..dd9f38e6 --- /dev/null +++ b/src/main/resources/static/css/bootstrap.min.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap v4.5.2 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors + * Copyright 2011-2020 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item,.nav-fill>.nav-link{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item{display:-ms-flexbox;display:flex}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{-ms-flex-preferred-size:350px;flex-basis:350px;max-width:350px;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;-ms-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} \ No newline at end of file diff --git a/src/main/resources/static/dark-mode.css b/src/main/resources/static/css/dark-mode.css similarity index 100% rename from src/main/resources/static/dark-mode.css rename to src/main/resources/static/css/dark-mode.css diff --git a/src/main/resources/static/css/fonts/bootstrap-icons.woff b/src/main/resources/static/css/fonts/bootstrap-icons.woff new file mode 100644 index 0000000000000000000000000000000000000000..74d52c2dd7321f470e9562e3ef6ae8eb75a2eca3 GIT binary patch literal 97548 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%0AEF$b(HS$?~SmKBv$p8GDi{pTiv9a-yvIkkb54 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 AkpKVy literal 0 HcmV?d00001 diff --git a/src/main/resources/static/css/fonts/bootstrap-icons.woff2 b/src/main/resources/static/css/fonts/bootstrap-icons.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..7bacd4d8052db50901a683796cf8949c32ed3774 GIT binary patch literal 73508 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

#G|O zkMoz6NNv>o+AQu|IktvZ`j7@y$@k#``5+B)C*P4as4T(>SM7@j+QO6-$ z-@140`u(vPe^`f_PxgvYVMV-j&gPs>vA#aE65aVQwbSSrN>oy)@Ib95F^$b8J~BAt zh5K`rUCP5TET6+<@?g^JZZH(*1rb;(9x_l;3EyA}KOt)}7Hr!Cuhp)GPp zDkSThw{6jBVWlb^JEr4n>mzrY8Z)*?FKKn+*9`H4ah@r$Rxl$Bs*?n~n$K#mi95Z1JYWjQ8i0kg|!Q*x!|KYALB*uR1Mo_91W(pVL`rfkMT6*q?qN*=8 zQB*l%fMP{xK~Z&kBz~{2X&o;Izo8Ydw0%0TA=dTT%Sk2cnD>G1!JS~ZH^M7og@_d*eP?a1&w@G@^bXh;NWTQ7nuOYXMGzJdb&aFpY|Xz5~=C5*c+Z|c>8g1M#eL%IGLyz8@p8#GKI`bsWUFj z4lCMDT|V5v<*2s5%ius^?=&_YmptjHSCqv=*QMr&U(6Y>9Rk>t*#CSaw;edwS?T2#fzQbmL3QOAbS@w|O zcHr9#0%s7_p(HFy^#U{tgIa6mV{-P}3#IuDv`^*ruOs2nz&gAO?G+qXyQ*mCO1tAq znP+|R5U08?2zu~Xcj03a+UM%tkUe$anGE1FP_Mdw!PD|$CCLv_Jo*BO3w^J{&`xva zL21sIuX>uX;*3!y(k%6_pWY>U+4R}7UDPjtpL!E=6iJZi;Iyl( z3xQlB*tlJiz^GBwi^a?$@|Cun&joCUJS(Cv9^5gioEp8(rpC;gsIIq|%_s<`3JnYwle?+`>36>GJz8fj7 z4$)}shz=r|axL=>28sTRT$>SZt>qI0k{VLCCFDb9zL3G-zX3+N4!0yMZWFF;u5*&O zMu70qE@^L(6$^t7MTW(~i0yTDh8=^3HzCW8)RA1yizh2VB8{vSz0yqBr<5F4t<44f*E6-$#m z*f8C~&F0E%-MX}~qM29put9p&;8QGUV)I9RTW}`iw&hj6wkRDGODe(2wXlO=ELdRd zy^5lFM*M{}J;GK`pWLsRgEv;m+FL@s*F3Vy7Cw=uOYmm zSRX36kiNKeGPfd6U&x!Wea!xB?7Fe|#<9iQGmCr-88L#D-gsPrr6dtY*no-~#V%{U zJ7)V-2+HlX8{g@^`8H)wyH<~D!kqHPBNPtuK@qX|z6kn(f;0hE7G_6Z)-|x{sx(1F z61`?_Ev;E4KRfrn&QH(WPYEAhP4n{O!L+@(_FekX?vB3kUWTiPRvpus1VKRG zRN}2bnW*ns`U`Pf{1`KcmH8+dP*g?o?K-6!_i@f&Exn9WmRN7G=fdm_LoR$hy8|XYyyWfLM|o9DU@EisF(yib^0k7#En}Zp-;$w_a(ri2Xy@$U#*@N3-isUTRtBH` zK(s3|dq>pJ=}e#UgaUA%;v_qRRI;j!vv;53WVtdV4|Q|IA+~CfA%kVxcMf3!>fpY| zzDRI_7_NiFqEO}OK`PDufY z>F+xwHD~hW7>p3TYYc_?=%8#ct#M;yvGC+ALkBdRSZ3bGl+Qi4Pq{Bs zxii)TO`Xcd;9x_C#xe)X$gB6j(512Cj&bK3qyd5p5T;;dO~@G}vBG~>yQzZXO)>%F!`wN;t1IZx)-Jd7a$?uk5M8l)__(yl3J@dQ`XZ?;T~58h z)j%nsXBsfzbBPIRw{^b-9TX-LXD3e1I12p$^;L2xC)}DlE_Ls?K8pMuBOG7umL4Bn z{M<%JgSs#)s7gt8s>V1N1sEd$Gcqe6K`}re4%gUgpDl$I_-qQ`_%ui@ zF(a%)dAFNJF-zgsgt;Ngr;FbA7&~AQ+DoNRL%P|B1KzCK>>{bULbtL6yd`!K!lDlgzZMV1gi_&8kYSK@X{QPJ(T zBn()>_W;?-XIOt!=B&gT2m8Hd0!Lxt0|4zLN+Bzi(p2fib>_tB(_O|auFgnlWoR$0 z)4?MI-jO8p>eB|4Y#3G^ z2o_!Ha`Q4cejA`Bf8XfvNjq^bXF zYpc{x%BEO~ z%(!OoaU2R&iXe>O$3%eFM5i?FaTWB80MyAO`(05r zO*BGTbU~9#_a>6W<^qHd@65#rk!x-oqEX37ql83XF2G(=&)=*=2um{tOt0C_U=xDh z#JoE}QyS&qg3g$L%Au(1R!mSL6sCnlaQEIB;77LehaZ52BMoc1M$U{nk!MB>0HHFO zsyR{sC4`<1KzgTWd|6hVcV1E%Zx{ElN} zMhFP6QFm${WcgC8p*+?8fbQOUZKF+_`iUr{ykTT2awLvFY@3&erD6YNtT188fM$4b7V@EGiNk zUmUfx6XTY<*(eWd$}0uv?j&9xs+Y7F4}HHATHHZWID4JpT(9U*NKzDc1sp}bDA;d3 zCt^j<+0O~Lb9aAZKw}6f`-^UIK8B#lUW5wUEysO|? zsw8rh>jb)AGYb=kD2Yhteaa(x2DcDrFyok($>rKz#ZHwZdxwH*$2AJU+4BOLu82M* z&Ip&IXT^<=aJDP zYRNM47mqBcjLGA~LW-cw!#R+DK+IR}>e|{eFUbq7SKKvaurn01QRg}(>65BS;=}2aiH3q2oOxYOj(WuHf;Z;ME6i2;!w&vDcj7%S`nZ@Mrz8|$L8)L>~f{=%@ z_AZ06P%Of!(O&7YT;yCq!hqH9xe)an)1Y% zoRM&5_>U@Uu^f%Ju)fi(>~#KBe5@x;>|O0M>4+)7qzR%^@S3$z)YT<20_LS) znz4n5{Wmf~>e6Zk>7ZUt3hEU))Q7+uoY1OB<@gxIgb`VV5}_nGrZ8;|-U=vYn#r8% zWqPevqZRT9fM`6yA9TzE5QL5@bUdZ*zBe?|L!~@h4d~LlJfk}Rq3VDrMys)=hv{W% zrt(pZzjVAClrHLNk%Ly;5lo0kYo`*J9VVBTD#?_>mjl}DqsX)h9l(%LHP)oF8uI%h zMI{TU=d@|>B>0MlU!Qjov?6>(v0L(x!bbtiBRVcYC91N30-1ysSntTJv1|Yav;BE{~SoEs)A_wpis;59+XjnO+SRDZR=fEDqBv7(mDw zCr1sDk5uabA|o*?jIQaT1Oq^PLy_lOl(Ij9XgFM#55FEmDLko5<{%0AqzoOBUB!h_$BHlQ<7bdlKHE)0GA5#JB5c9RT+WXQ-d z!?^ z7r6expjsp1<=J_4SL*Vz~MiBnBY ze^qc(^HmL?=HJ!C z>JW|oCnWP(qu_j^>k3Px0aDWCJl_0euy85ID?`4sF^0ML``ld_V>zb=X8pBmrGc;L zhK)}fEM2ku-w7e(dVJSCvmE(!_Nh4k3;D;&rWMEXz0nCq{;Z-A*?v*R`3-Acf9{jH z`bwc4O5)N<0#DMN%WEz}d8B*~E!>1QdyxR*+=y@m;BXSyf&p~HV#K5HhB2W|;^_1- zu57p!9jY3FBn#sd_p~!9em)6O*cCQc99VGOvkTj}7v)Xn?>*z-55PxlG5x9_zTrEmW}_RoXf!{MKO(SOGNdb@PV zYtr5ai-i$cGWj*&PyXI`L%O}GgZzJ=WZBZerk6ts5kS36KMy%q2X(-opsTLl;>y{Z z`F7k8rtd3~va>VvBcif(pvsZhuR0-#<%lS>90=%@^_PyROR9QD4s`A#V>gD~y zh2|p(7S?BpKWgd5;y&=qMHf$PoEpds_}e z4DCeC1a$$!W|&NGmJP|w`uYaL&yES>QBxf=hHve$t8d70`@gu4oW$T}g-w;6qLX|t z%F;!;^inKMt*4=Cs@ELJIikt={{2x88nwlcZXUxu0r%<;9h~>CN^Qcbkz?73B@aus zf@#X}y0K!v(Hw<+ulgFxbEQX}SO4SOcM@TXJYxrB;2|Xx+2=irB(k|*AGRs`3pT}O z61#dt^RofZxMAC#5~Wj$zL%u57g=b%T5R5MpaMF4<<pm8e|WSBplq}!^@+m~=? zmkg-f*bAs(jAFeyhpm^CvD{b{lDptWN%qcurgvk~5X!?{4n%5)!ye5)nl zsO3;a)=WMS1wkAEYl<1e2|>m<(T0?^5kzc=!aIjyj9p5Z~`V#!MjjtjP{TxsSqt#)LPzE}s!6}M`VUvU*rm6ac@(dhz- zZ>>n)u_EcMxZ;m4Q;6O9w2aW|sl9tQrdefRbe(R?X?q3SOZE7BVntHeub$S2 zc}IuPcru`+kW8O4l6W5U^7Mn{F#lp*w5V8@|Y-Mr43VO47NvnMiMs}4=_H4tUYzgXg5;EvqpY%v7Moq z+CP3f!w=sfwa{xfLL=wR`j)lFay5vFA}1JEeL1^~_4Qq?nLCm&dPxD}gA1H2iSN3|L;B!;CZn5{0;|B&#*5?E<(Au>T*Qnnp8 z#DwWPFG0lk0Z$BrAI0>DZ;tKWJ{0p<_Gyhc5siae7}U$fJ?rjGKwgeffxPPZWS7@~ z!HY!zSR_tf#BfxX?;#zI`o%+Kd~VdRwH?59=r&zKXz>FUZv>!<5)ywq=7;$M^PeDU z>SqECG}*n8j2JV1=LHZsTj_QaCT|T7xGhH$7J>TT;|Fo8@9UkE!G^uO$$RF?aC4fOzDa_oQIkAy^#%?Cqoqf>Nfns8NlJq( zuqlVz-(EiZ9}ik}`mfv4?q3=FZcMqK@I6Lam(~Zx21xmuqRA^MdK;S6wd(p++rT2m z+SuE+q{8*8sczQ3+n+R)@0Y@%zM;(9-rYV&wp z>ke+NF3E;Q#vvf;0p7#0J|3|DV90`sU!O^cVH&us$ z7d!FM0kc@py9{)^c88oG@7(MHO*er0i>=Fc&!>E&D_Sd50>+2d?_>nF-jb=v8bY>F z9#8=x)p=}8(AYWZqXdi-qE5zm1knx~iRH1CHUa_sk*bPTXhO5LfyYEBVXaewl1C{M zHt~FsnjM$Smv(4CP|KK_NKL>=g#H2lr%hk3wuw>sSBJ=QRcZPfUrcC6K(ogd{2iv_0X}J=<-^Ui7c^|VPl}o_0=m$igZwFa*zf) zMN;l+gOoUk*N1omNG`x%s=MY5#8lmx7%)7sQqwD)3|rNgcA9tgFMNJ)Z<l=jN-CweZLIKj%m~*$wdBWF)}Ltn109PpNB|T9Z!$4!*Q6ro&Cj)6!JAUm z0nA=N04GJAx%NGFGVePsKueYKH(ApZBOBOlduBfXAFXsG9xk?TiR zX%(LzSU`2j0tmtTNkJ^d9LOLQe*?f%?jB#Vov(k=OcLd{Nl|fPRpi~_<47peUrpR( zlyE{Zf4^pWhk~LX3Db1ZW{GT8&&Jsg6w0r&!$Vp!h#$lmdfMu+JU0H1%b%{;hd=fy8eA`JN|Rv~JQjL}b$+O%;QKSj}h)j|A4I{^J5wUQkFwcGg z$nPCxq8&6CbTAn4L50-=9X42`>4YeK^3Q6`1Y~%9fOS(%KFHK%Su|iwtf>v|Ck~*Y zh)lXw6I={UBYU=Gx%Js4SX_gu9Z?=MX2#f(gbDSfO_bnacV*kP>K6b-_R4qv|vx0omVzWdJ+e9P1Va!md6R7 zF2iGJRSC*-EQf{qMO2g;1kTi>*eLPW~Sv2`zlvOuxZm1)&3x$QUZek z!>#j=Xn?p zstTFvXo_2ro~FHezcy{rcG#v=zuA4MjVuj_?W&{$wVpQz{l1uM^q~u40@oX-e9B|bC`qHJULj|hK3`d zOoFLI#CAjyBB=+FMbLrg8qvfb2hu%_VU?ujOulfJ`}4O`9)(%cn4Nrqd-rvjb>cck zZ5*;6?;)<|a3;o}YAf z$3~J)5&Gy!!({a4!QuT9&#=*6p|L;0dT)<%NV*v^{~w5_nO38E+KxM*_FwV(F5>Q? z{loC84pljfLbns@2ot`T-ybs_gxY(V9X9?J{4aPxz!xCpDJXt^1q7rgR*P<&V8P#3 z2L)lvM=Y)yhrf*^52bD&+xZpy$?dCzVOD8w_hO9<6W+B1y+0Z09ZJdVNGb6vzi98oD#_4uzF(d$wCzhNxD{o)QGYTxsE*Qb;rpn{>rG!sU_{OLO!=z-KmVLpQvDzqk%H<4RnD zP3!@H5Fx}=QPmYigE40nz!rViAE^g)R_~sq3J`udaO|;)ZejDp*cn&oIcsFRYl$5* zD*Z0WK0dDWoF**qwv$bqF!iN^?-JNw2#UiRP_q1$Dwj~E02DHvfR9>#y_UA;p8+x%t}`sdA`3*j4zIudnSayP?Kg;j~i(GVl5~x{OJy;do7i=eiU6dp?gaFMAkc)%GNO8%Dk*9U=Kt2Y!0j}5UE7+yn?hZxu0cG`x z5P{=uJfVd6-jA!#;#B9*x^Qtu!x|ovNBFkuQz2Ha*JV6#2WoNOd>qoJF;Yh3#i;4K zD>sVX>9XzU?vVFkl@gy8nom3`T}D(^;Hat{nWyx5uwm2*XOBrudHRW)`j|L7jkFOr zE(b-P4PhgK$~s5$SS-LN0MBEmY-5znljer+oaRYeAsy-s&1`yc3rZqg?FKq_ zOSh2u2)`wAX04Dw4Qriryn?;|U!IfGKaxmPy=n7C*Vc5l(-QzDJ^wirHCxUh!J9^kPM`SK-jc<*5!v>ED@>e!?>$0eenyT}`JCwSckGuu z6#$6+hsUUiA|w^%$7y>PMJ>}>2oiDfrO{a{1s0t~C($>E!3i=i={hJ6C0)EouMH3f zkqSpetg)#gFC+a7wd?QDf~&&PSg(>qE4l9c8%f2It3In4abIbZC!&B7h0nkN{ai38 z4PxlG>>wfrbCmO70OZNyKJFd>{g!g!(~e_scs|ZFLW-2bVt7{jf0T5~_B!e7MjF%% zy~G#G;LK;mVnkxcKTLOX0~sSX>srIHn~ZONFF7*bYKN9q1XDq3;br5mc`;7_L$jBi9s&yHb;NUD63p7_$_DNyqy2Cj&k9~KXQOo z=rB(RLad;Rwx!-!nT$aa#tV>k!R$SCm`Ul3)@df8(RG}v_`7Fdte0G;NK+E2a?D;1 z9o(oz&Y$c!RB3MhX+T22g&8x*vEs(?_k39y2gpDDK*x#}tj#EQSEpg+oJGlBapxak zXu#>N_RZr}C%xOHd7UC3_Zm){x7l*0Q&cVuJYx$++_t^$wnelfsaHYDntt^)i^nRd zuLf-Ltg?7!_4Ncgs@0x9Pol85heRd2U9UcB39ntJLz|l*~E8d5N&xA?m4IAIks= ze&Fv#ZuWI%h#`QBZmT59?*)$YbTrv!XGuW#4Fid=4i&SVcI!|i9uWycES>V#vV!9E z(z7&?_`6E7n>pwZ*;@q%ONo^L(n%mhtaOTZS@yTkKk47kH;PB-&>c}ZvNIQBLX=L7 z!L+J%4JZfC@yd~MaLyhE>YgPVQWvLtm}9fZ<7K9%W}l9Mo~Z%2?A0pAZ{x|;lFwpQkjYzF6Mwff;K!AQM zttnV$1WyJa0$ZD?Y0&0Xda`eFI7kGfSv&SGJ;~>KKxf|-PY}Ze(jo!FB1(-5YWTKn zplRhA%3>hM2B)wazk6cabT;@l06~Jm!dMINs420tcIxi|o!=&rNfDQXa)*}}6QT&V zA4K|~-iD9oNd9=vQ|Mo&Xn;t0A^s&}clXfPDAqk=F0N7<0})2RsdY^#3S@19yr|00 zqn6|tvC=E}BdpD^v@1LyUqFaEC2BX*ZjL|DQR?fc`p15~AP~b9&Y~6rT1TysR;!TPtWzf}UD0FW_`!HWi ziEixOlzL=uvN^Ro)ba9xoaV2ZTPPWY)Ryz9KU=R6O@>w{yw>m_*NRkDMC$2>ovlAc z%7_dsU6(YEOOhnqo?V2>-W(7Zk-~dUS~Hr_)VZYcFEU!@G5mEEzbGD z{K&6H{uZ(7J2jQe6;5d^YUNa^^5n_x85>hD%X{HYE1F>!2sp1I^)7Cvbr%J-_1Czal5pF?d1uN}Rd+={40?zIG0jvN;l3h={I+}DZ( zEsGLdLvb9G>ihPHzvb{b15?XRs)f>J@B>1tJxpYdbm2in++ROP5@Bea#Ed^45)uhn zNP3eLAAxk}n6VT=EJhi$-iytaF62vh>?5CCZv>Sqo5go*P&84 z45-g;qfx1jMWXG#CG*XQWl-*4H47IRd6wClda$pIMERyofb-lmdTt>PtW12ZWP?Vj z2Hz4D#91+g&X=qi!d5bpXHbU&i+m7B2i|?$5#oo``Ra5hn}ub^mdA22;uAL~PnU`0 z!R?yyaLW7UZcKOCVh40u@u~ z?J-22%Hg|*T*RvTJG3g*%K}AkXyDzypURG}PD`uKC7@i(n;j_H8jX6N5*@n{MQh$X zxKoFOYlDdAN!_i79Qfv!(%e;ZSJfGkjMVYD>fisypHI{EFYug*QyVa75p-TVd9RIz z9HG(4=!_@(KmWlQU&P7%6NiBLeGucJFZw?7C!FK6fyCc~Q(rgxo8LI`zl8stc(QYQ z+SgOTzh?#n+H>Xp&jxK}%J!$qgApDBf6E?A^Y(A<&PqH@@e1P zI#b^|Rjd)=4+Rn{V@LioFV? z65@tz)M+Z}T#w|j7Q}c(UF5u@!gfP$D?T|f*`>yq?~r9ra~(BqH{_OxFHFwFNqVXt z>>AE!bUaYRr08*~c_akYM6w4mrj5jXYT@-~PlGl?1m1u#55-a`yo<8-E8!&jT5oOQ zUH9puAisG24p5XeQ>7%9=4aZYLAvv76qaGw!6AYrrm!oy2e7~4U|db=vFaH)7;bvv zgpU)+?;*kzO6w5^9kV#)e`80)$u1)v0%XV+vVmY{f|WBc8{{COF`T4reR`=xV{IZ* z?XOo2;vq?p$U-?1ueH-SLPplhyW!B4`-%|>&%zKOD*?GY{MF_SSz$^)Qn>~QUNB~N zyKDrsRQv=N^=aOHzz7i3hv|)kRY6b4W-OT6}aXEbqV)0uOU9v>JuA`!B;4+P5> zY2{_n5ZDTuC)O+L68si1-hKxg#-ch10Jl9m()!4VWiS;LObOQTTdM<7V5$q&g!Xog z9ALuW?%FNIVum7&#g&e`xJMZonw3{n*>4d0{8oGr?$hY=_PiJqZ){%qHI)+irej(@ z&FGO3t(kEuA~OBJOz4G>t}SHtb7^I4_zXM)`4KjXg;MAm4>AT@%Rub7o(vA^%wx>e zi-G-Z66nxjD4^NSc7$;vUqf(g?~_z^BJ1I1@&w#B#>1%6k_q~k20|bx*=M%!o=ub{ z@48*+YZ?o;MdHahNY;hNZXg(KwiV$UlQ~@kU?w|tuSY03^o2M|3T*wcoj@Q(p!WYJxLElfm4{54Y8OihoVbzEwbly`NMf2yZ${fFMh2L!1iyn|B<$TcXM5JxmGlm>gmlZjvcY+j~w&b zOG%5PY5Bpa^X)!Y^eaUb&?6762*Ui?xv0nzzlQD>V<$6X0VRT_!x z%Yn1P?2|(Tgj-o00%1skwYo$hZbJ<{84C9Ha%Ua){sr*^#)*VN;EVN=JS_hSU40Vz z0bsa7pw4omv#lxsVm(MBPjHN+(1c?@M5*SJKsw0}o4-(h#(bcNV@e%GeO@I|h57{j z6buEPH6U<&sdJ8m-mPuF!pPrf*Nm(&Gs`IKji{y2&M zj{o^H$B{kP?esz0>pK1M)?vk=@~(C7$RwX7%}x3?8m(P*mU^<`y{B32$BurB!++pE{3^c4>w-3*S!nPEWM}2t$zr0BR$$IV@gRzVqdbmv?U8cjBSTa6%QV zQ8YFj$H=y(^IZ%7C24p&?GG~Ov`NQ}$%dWt<+IG28}%Q?a={s?aQyYgi-LOwH`~x{ z^IlG0{Bh+cMK1XKh*yls832mZmv*E_ek{rny&ajp<5JJK6bg}1S}+mg$ottJcj^}j z>B30;KGz5XK*o<`|G6rHysA3s6Y>d^J3y^S`xV)c>PS`5a>V?Kd3a!MoQ^p)>6z7& z&rTZd?9vNohL8G_{YNRqvSK7;t3%Y83OZ$~03DGIK-l68Q-8^zN%TcvZ zh(zITf*NwhF|K6Go$~>hGH3ge?+Tw!kWD7vFb>tYn6kqe!}Z=3Nt@0LrU74QIQ)P{ z13=bP31|gb-dqZ)aL8ZXKqV{JY)Z6apxcXSi`b{2LgZgbQ@;G=|8kf!-n)G|C#!F9 zNmu$&f0F;Kv8$xCFM3ec8p_H!efzx(bIiZ$aVh2x+~ha4!Y=6LgG!}n=7IAarGkJM z*#sBcusB;UD!A~`*mhwbTC;<{P3ipIQ!oOV#i(dk7XW3UB_<80FfE!jRc-}|vdzEe zJac&^*m_DO3d_mVPD43csa+Ta#KEeN zYx5GjW{o>*hVZiRx~#RlrQ4R+H$%r-ddc3vtiB^c-TDdZ*Jnl8cx1=ywmEIHz}^NA zn^A;a#-^5N&#l)dg7%`mzQ8Pd9zVU!wqe7lNbqY@p^CJMba~JGF-$Rp48c*EJGNG& z1$!V0k2J%OUOk1Dx=yBNiV1jPZOQNou%dilz2V-J`qV4w&=~1#piHsdhGNw0jnbQ& zE5?w#22EIDy_`11HT2aQKAav9jReIq5E*GP=x*=a#2(uBF&eCfR8sQX-GCs`qLZQ= zuC^BxEcw6g^2X4@?P}cx+(~IRvUS&U3yJE2$11IZ*bQ%={>zM%QB;GDR%8t9M`Nna ze$#AMZ43iF54%!0AIXsI|JzpUgq@r?s^f$rsLp9eG6DcpCPcwS9=#l|kN#GVmP(vljG8$31y&xV@z8 z#}9Wbu87z?{l|{=eP7r;3uU~Qh;r*3%tC=? zWc?r02sg$tNQ|FAe^+zD&yF>3E5gC|tarE+ppO zEQ(vGQ?0(+QNy*oP=tJB2>ymn&i{^uPQrk@sPGVyF4p~e@LUQw=+0}ANhV2?@xl*e z-$i^EhZSBYqWLc*Zb%ey`!kaih$=;ynViXi{}>nty}ef)-8wc?MH9m7-}#@Yhd-7T zFxG|rConm$LLo|Yk=_S=IPEtzZ6p#`V7HiltOlV#ES{5l-VLo%eGL|JryEbDjEOpA z5<-$J?H2APQOpuY=_(S4Wo``$tP9nPa3bkmVxZc}R{f4;@}o!ej)YZ;l^Z^oMB=`s zj1I=Jq>)fAw`U;<+DT^=gA^pW#UPnOU(j*CkRwDYoT9=IBv^E8BZ|hjoaiC*_vrpe zrqhV3PIgeKrg_jARkdD9k}v<+%~UhWSx4QoxIED{nO3$mOT>)>YsU3i684yt)RQZE zdH@lhn}RgBWknoRN1XbtsvZ0E3gNCAKI~x87mOpwD|p#4o0eiV&qm3mfTR>vhI@a+ zFd$_NOOFce%XOjpjA=k=DxLq_{!F3uPRqo&RCLw%SZ{PAd+5IK{JsR!$Wy`uM-^*QqHP-P`-2@hZjk>8zyuppRwXZ!>62>onqMNp)?i)7a{HU;i>#Yd-{PNfiXQcpXn+k$WoS(ZHmBtjT&+(@EC zl?L|Ar6FbA#R*-kgfJ8u)_25I;!ppV5mfJD(Hj{=Wf`ZR4Ky&z_^c-Hs6@Mvyw?ex z!iVdSxr*iJc#U8>>Cy&f<9C0$y>2J;3%vAn$m>a&k|YLe&psI1TwE)*iT8hLAp@yUX&5 zIOCPRnLsq5nXcQ9ZR*Im&74A~Fo$Y4i%L(NFpD~CL)aDYw)Bb0T2e(_vN5+&3hN|M zgAsb1gF%^mwg4wU*uT_&0{9(O9g}v}GHw|ZdEjp2B(>M&4Ef(sbTS2~fc7W#H7H2> zbh4$PTAH3E2cI7mJRtaBlcA&wu5S}s0)v)CEfaeuAc%5p|5704XN$$({OW+j*qebn zGH4t_3OX-_^J!A*+kBDd)DYguoxU`XL>iDfBDTXQGQVG3nMs3aA}^PhS;XI4YiG=& zQhTf;1ZgviKu_&4*<&?TRAy%!gN9FcxWZ*h==3u;GZ#)L&&m=T5gZ|ducRLYozf5t zAa46dOOEH!+?hhmVoFF?Q)$0TN?^JSX zH(Y5WW6I_k+`y=0u6&2!KM*`}g~@W)Fu0{R=FTy3@;Pn7fz!}b2vr4_K>r{J3OW57 zr89!CE!q{uF&QZ-QyUdiKl+zQI&IFIHm7kBLPxbns%ji|i z4Qyf_)X0PLN$1jZTzKqVHrf=!dK7sJw_Ya&ojOL7FxbEj24yJ~WzV&9lck;;qX>#3 zqezna1DF^|si3(K$)YO3rE<4JG>J;fmy(Fe1p+S({sujFU5N?fySAhF_52$g5oRov z598_ljY(1pHVzi91ivGajHLeT0WuP7vStUa=HM+TJ6XCO?d=LS9|4Co;f=9^;4mIp zChHP>kf93q_@~La2)QbaMK7+FT`2h^R=GDwL@lb5=u?yI6Eph`wU!%>%(U#;L!!hZ zH*6q-EF$fgWM%HnbujX~0!}Un3a^Yy6T5vw4 z3b=RaIkOMCX)w?8jMMoRj`tl9)o-KAuKh!^>N+_YF?spixp8Z!zMJ+BJvkd&;wDbR zN-hc@sue~d(<5L0oS;Z#7Fn@BNpRnGx#YVy;Z6{uXB-govMh@12~&vrfgGnHA8y@* z_1+nRqe+ta)6CL1bC8tkNy8-nPsT_1VAq8 zl*ewumjzY+;raT7iJ30g+V8Swj)B6CRu{d*sKkK<^Vyr7FWHW)Xxlyc8Vp1Quz5eA zB)`pLd!>KWVWJ2e<3i;24C4DM>`~#xxC0V_G|x7vgjKU9w+u48n&#`f2cf^iq4uu1DikekjywNQYCe^+wvx52b zu8pW<>;7B{NMVP|yZxb_P?@oe#E=?aQ!2gUq+qSQn@I2=9TSv*bD8qdw9bo)A}~Juf!=_Cs zr*bVNuk23F{%CC++^A|p4&Ln1FD_?qORSmS!37NdpW)4I}cYG})l zKD6Lgw6D+@tcfYaHCIt^m?TON7_ofBxWe@&y~~S$>8adLCkvTxPNEkN#KDCmo+D-3j?iQXrRdB-|34d@qz>SF-U@? zW3oy^XH9~WHAg`6JP@w}43~*T-XtLF=lsW+-N4Z7!ZUAbhy&7=LE_ zS;g7C75qob4h#33UcA}otK}%FlHTNN;%b_jO|T)nEChFs7tY+lpC{>9t#%(sU7Kz6 zUcSy`>*8v)k&u*e?9} zsbu-@i9avOz9H}kd0%4l;GY6Nga|DPyOd>}rH@FJPVybS^K3sX->sJQdDnQ5bk}1-Ah&Js_Q}+{<%iq7GYbmxVWnELmgx0M zvaAitjJb{4-A8b(p=wPTUHYwTalQxE&ux6`EwR?Hq=ho)Dg$3ScNGjueABI`i*UR^ zuNlvx``Og1CTO+Oj(hS=Jww+(%w)@jtN#mgeyb(MN#+FK&(;w)7aC#wtSCy4#Yc!ZcaTdevL)27e*7~yz~dONa{O)#Gkck5Xg(p6)8(P zgoWMoM11+!^5I}h-CA^wX!#-j>e!ow4aZYg@-3*a=iQMnH|723NXCGK1MTtSW>3^?0hFEPpJ}4mim`zcc^I+w|qg z$2~%WguilKiEjew(B~3CCbKMk3+L)LMyhGXF{KiO4)`=UmFf4zM6D87c^EYg8_5Z7GbD>&^PBO$^v^6ZFIA-9{^mMaa zi|+&gXU)TDY}E5c3f<#h^Cvq=`+1dc4-3ZUqXgj9Tih9?l7@7q_aY)}%-={MCq++z zlg||Z!rD_i0ERHv`peQ$BOnKuHw>QDamL}!FjtCZ#od_>Z0{`C*a3n%P^_f}Lj~G9D2T?)da%b@;kEZfJFG7O6$9)ZG>imR%) zcI^sV6Mto^7PDIAx7jx>Teit=^Q+Wmi;sA($7b*G$H_q9K@P3b@7d%B*4SP+rM`5z zkrQ7sj~*}|7{!8B&WGu_m1Jf8UFTuyezglaQlY%_&P(b;KTk_30-Y;>s*(@TO#I1g@7+iTGyuZ7~-nhD^t6u@^GG z{w=j-5B|1X((O*}0~1W<6R9+0vk}FQg z$)@4YR9W5l3^s~Qy1i?}+ULFAC=81%?5=i&d*@SvWuQZhK_i2G%Gx0o_;wMFW}g8F z{0`qu;&sFS{KA$EY<+jzt+HqOG9It8r0<&CJs8>X;7@z3a!QVvtD$SS@rEo`c4O}f zm?;S8z`IGM3&b?=`&q3bFikg_Sv((6waZ&{>Cwu)-)s;X&S z)Hu(YtXb5WuU3uaqSa%Z#aS_~5h3% zuKTt98)SK)-;tT01>BXIRwwtkAnwIvTxuzWf?V`P+1EjQq{Vz->?-DjVrIrLlHmC!*fsd!J%9ELA{1NHMKP=e&o!;35?_c z$S@&HkRQ}w*xasq*{9N+aGOIupinb7TNC_Kjxl%#XftXyS!0X=FjsEgk@X?uWoWr_ zuHh8M$kZ4Naom~~dP8n8YY#F8AhT#QyHJP<^%8SmfXY=9J+&SOK=3$jk3@Hkp-5{M z#5Bo3Fct-qslapxBXElBO5q^PVngJeP55{{Bbta#7Y_7DOpws76){0H#z|X_wm_M= zp|Ommw`~dL3Wohf;>@0Puu;GpmNFm`EEoz5a^vZxQys-ftT7tmcxGPcjhT%req^{= zqhe8txdQ8#(_SJ%&;~~4L1OC!~cBp?*YuOT;#v)WxMR?$oAY;5gSX8fTjO?;SA z);9?Nm9?8cqFGHWFqh-GIk@l2|e`kxx1m?iFch_|Lve?tTBWsM<3M z-rcDBM;k3*c=p{1U>6h!J8h%R{Va^?&}%SVE_d+8U#I0@>9qxso_=$St93kU#rBNj z5!o>So<2e%aNHcEkDQjmkk&zWVz^DcM?GG5lSIA!$>hSN26(Mf@O+-YL;G1z9$W{F zG58vU=_11hDIjoEn9e!B>NV<)!8VITil8OyUh63N)0vk%e@X0JbS+&pKEF81u^6?O z$hrOdN#6LoA6;3LjI>iqJ!|uNQyN&R%BS@F_S>h&qQwJOgtLZJoJzllv`>Ff-_sA9 z+ij~KR*W9#KAKTKQB34;QyG%s3D#M0}bQy!f&!XSp!=V}-P@Y@@9+0S!HA*mD`T z#D4WV+!?ppT0oWN1t*@@gKe~R;@&G~rmoQk2UyuCiV2@Yp_t~H^Nf-VPRF@pgnw(u zjq1|dal#}1!rP^4a--%C;W&zEB2QC@N`sC?Ji=;;J8BA%)}}sbA{zWPhQK_bSld|1NcNSil{>>k=4U@@E8{d@KE_0re!H09|~dw`9n&P zQNS%60>O7Hk8mWskN~Y|y;M!1nHo-hWI{`S86ZsCr#m}muV_g4--?VI=pKG4!+gai z3g5n@1{=msM+Y0DXAlPbb3>Z+QLLi{pyM;E{Vnz~U5vEQw>p8Vt9c@ar&`ES40y2y zmg|1f2=MDGL``j0(h47*z{!?$Q4DDV*ZDMYk0s#2wY`>11PNsfz2+K6nk=n`0d9t3 zhOirg8qVtwHJ21T02IE9X`|G{J^jXW8MV(scTr^E4+`Ec0n-w8h=xNP?0j;ZZt&Pj zo>R68wkESiL{Kj_YZSYqd6U>mtY;)5C$lmbQ1jeC)mf5_`6y{J`9Tazu_yD9qI*7f zB@bG-V1k=#kh<wd0OjQ7ci_Ib3(jgZ$ zPB~=N?e5Vz%nI-pf8P^lKK&#T6#cwrNR@%GU;p*AcxtNt>HohL=rdG9YdkA|f9vV- z%-)S$-D{te&-TOk@-;BQ9pd4_b93eS#^)VLTJ%^Lc+eh5}E2!(5bLf;3O7{pQP{=YnI@GyA#YCw4`OP z8aO|xnJWvLnO2IrNrWOlH~c<%hm-40PYV0U`DhACDGos3LpcKF2=H2I2H$Rw9tFrkc%6LMrHKjL>Qr<9||Am*9M9fRHt#7A|r_ zUA>YIABd3w7TNG3{?a-`+%GSfK<;LdfCp(4SV+t=K!G)fA@6sA&b4JIkOoU6h3T>Cv54`>C8&mz05#oKJD1g#;(ck^VpDLp-MA10*Lyg%Y9tpHO;R}E&W64(&%ax zk}y>>X6~CIlUuSAvMmV)bAs967H@b_b7P%2<7UE5=;`av(#cTGQao*@djmicCUz-Q z0eS?AlqU$MioPVrNKh|M`_<_4Cjv{yP>7|3d#!Gw7dHUB)?;HtbSY##MF~U_s~3Sx z$Prxg#JlTm5ztU`#Q#-yPuDkf2G7~$+z8(fy(0ureS$rdz4SYo5lr!2~^d-HW7nj;gxuhrD7MJJorHdAn(y_J0Y*|0H0) zdN_x_!`PwkZd~_NO)wK&c1Su@J}=d??l^V5bT;j2&69Q)^a2S+2|d}Nc=q;tvk#NXIh4R`nXMz(?iKocQ?+W+ z9rbGk7jlhU8ZA1nl>3Up!?8>73t1G9$v(UqAMimA%ei;X4@AZvxV`U!6nZbstqLy{ zY%g{1%Y<$vVNqo&aS_{vI zAS-r0xe(fCA;;jRR_B+Xkc1BWAh9wR&#lTOOP$2g1BpSn)u-Sw*h%^D4Np#m&)i+`~c%w4D(a3l+#Td;JsRHT+C}IJwad z^H7{qCu$ccRiYBwB+8D@U(qdl5Q!DsDr`u@HTso033`%XtW4T9HuWyDj`@oPxZhnZHa^ z(_wCjF>19+PHRJtJGAYISh{HS0M}(>>2X7 zjftq_2_8VA6ytcfRzqq6s7fKa7=Xv2cn@P_%F!4Ppa@>ph&}s?b_c9M1p!i+S)0l- zD(BUY9&ol=jwU$|j5>!bSC1xX?T8HqpBFvk9JSsax`@s4%Xbfa-KLXs#ijFLUv=n^ zuGl-1`iez19ZKiV2&%ko%U^uZ)EBqycz4E^o40q(p8Z20R91$ZhqFSuJRbP+xYwxX&|dDvx><`^Hp zHL%rVJg*CY_j6S9@-;ta$kwE-^8MIHyz|O?vadzAU7j=#*C$cX^!29*~fDd%a+b>QAb)ey?ZkX%T@NykX&*Pg-({t&r&38B zo=2{3y64v*L6qTF>jpn;y3W~vT{LPboACVedix8!PY@JVa_`d5}%lJt0fUBQ=^`bl}FAtUXFoQN}X#lSd1RNn3#OE#2x;nF;1 z$>CcAOQWbt$W#k-Vch%BkP!Pmt2K^V5>>NNw1-BeZBF#?ZHcq43~sQ?cE%1J^dP~k z%q{RQ2#`LRj=oP>gV&k$m~sVgg&|yty;oNAusS42fTMn(VZh3IOtNB9SaGwTw&wwY zz^unn=Q6trs*2X-OcwiPZN{i%mbX@@C_u!|o8}YjX~_rzn)#P#Yn?+L;oLSALStsh zUf7cEU&Jb<6Gn+P#1#&@KOzHqC*z$K;-D=$j*I zR)Z^ZM1?}o@VWkUVMYKo5ZuhO?>i4yp5L5zB~hwu}gZ{I&Cd@|V< z6YofZsA+O?a7rjBPaPF#m~D`W?g#t*sG6Wfw~#CaNuO%^N7F|8HEsW_oPF)wf@s)d zm$D9c>;hxMP>I}Ph%;E^Z~0o62+Lm!Ui~z>O>qD1YDO)%yj1afC(aA68(K;%(>C^_ zrSfc~(9plZj5CydsBDaJ)FSFrgeY9PoEi0js6tZW1c`k`NL06@43upyL|y>;@#-5j4o935-1gh>@O`f=@V$?&j=wgq6E)rE;JVCDR$^)du z9GC$jbc3B&jHkd&Ew}qm!W=tSSxuzg=l}>DLyHo+q&~G>+V-2gB`?N{)i4PlBB~q; zY5TJ(D0Vy3N@KCGy=j!On3ax#XgL{>#qKtwavm@l^E+KzkP;fCZ?~(sxn+tMZu~R) zheOdfW=%AI0DT9yoD-ZE=#FyV?1}Kx44rf0g64d+`Xt&Ds!a7htB;=4Pm2r0L;6YR z3qhv@q^T>N&9D~t=S^p9$4~b&&}C4dp>** z@=M5piqU+lMh+HPKn=>1X^ zj?8T7TZznU!xY9R{gaDUAd;e9j(@zJf%O}w%oLOb1!Wbew9oRNRV;B+4=nev#W^uOLYVAWP;e|1~>ala>G`Q@rcxM4_}G%Vn3Wr(&+&zM;t z5jsfKoXwRx-5&x^6`0`4opV%V2PK(wx=~cE=;LiT8@AgbHV8Fvd9<%I6OS%wz;3JX zb)hFk+1IB2kyUub$v&FBP<5OtiUp!O+$jfmQ&F8%=0yoAvp3~QPTojr`7+YzKnl#P zwi$Sr0~P|`fdS2$I$5p+aLAit5-N119v!G$Sy{1h(}POc#(f9zV7}?Yr6+>2*gF>K z6xHpotdwrpSSQ>mtQ+DSV;&TEmXrhvrAzuT|7`B)UfWedRvm3Qd$x1N3=7=}w>@)( zAlziJpAX%fl=Bbm1j^nzk>_jKz0TsT9rAF)(sYP;`SL#xrBR1U(62Fi4-d`heB@Z* zlGEAM1sEq-qsA2h=-{maM#|9$gun%36DN!UzjT4a4-@DCd zsDW(Vhr*p<{?t3Vy7<^E#eY{CnVTCa)f#v|D)1bF3ZbsdS0`c^L_?fu6~n%B^bi_IG4@XyX?7?;-`cJjLvMyEXi$|$-q93kPo-};A2&9(Xlg# z4qhcl6=e#?TASag%lLGcSiUPdc^Rv>dK(k1BJ{@}oUmYQ%z1UTbB3FRkJX-e46h@0 zFuf_!hJqp|ndjHj6B>)Pm5IVNZ@Z5`Z3k22jx?0-Tt9TOds52x61*h~Q+?E!>~4&A z<3B*j2LH;)H8gIuaZU}xb3=UuD2Ph0`- z?R-}-9K@opmG3e)(B>O%TyVMU@`7W#f?HGkV9O|KW-i#lCK&wSg3G?k3(l1iH^&c7 zz`Y``r^|r3LUKxV4yqTd(~uiT(rTm%`xQvMOe$)=&#(%%!_fL50bT1IC4Ca{%th4SA_#BASI>5u+Fb@Eo{VXU?dR zV_^_gh&hlYvzZnR+9a!wL$=HRCIrxA-aoK-rqRlh&oLc10(_ zqU5wJxS6HDR797P-ulYFuos{uk7;Ne#@tOQ?NBCdVN%)LAiY!Muin}U?cAKtz(9hW zousIe0IUlSJGBiB;$=6(zXz#P8lcJcpwjYu<6Am5b*B?|P#`!AojNN8wI^?Ssu#si zFG`(rtrDJkfNmH^&(j|)5e^LM80w+pA;pxgARz+K+Fw${H=)#Xg?H2@hSwYp$Xbrb zRwk^Z8YVbm0|h>^p}|-i!c!m}2TPYW2{msmnMLI4nS8_T0~4c=kR9;*{~+Qip;Q;Q z_)GgWE#33XGsc=vPb;3PnEe~cHEYO?RaG~~G^q46U%^Foz@|z@Fqq$w3(AMIBqcg^ znrBOvc@Pe%dn@g?;bOM7<$gBH5e^va@mqFDp^jDfq8O&xH7|y~epBhh&JJh$KLmGZ zU$?KyD@o{6x@7K#HJ+8^%5$;lf4qf$Z-O*|N8qrg)TAT__3poFGHQ~<4MbM;PAYhF zyBMOYmeE@L;!;d6At$3qYd8@^$1B=1A>UU)otBZZ(^SehYD-pTJ*Q_ZwJAiMY}Pnh zQ$d!Fv9zXmJq4PU$m9p8tV8P46oaZU_cUD_OGVAH0?{c7 z@y_)RRPfcS;*}sEbA(Vn(o>3#^CAtF1Ss@4Cgt#Ya4&=uvQ=Rm0$3EC;hJ2E_JJ_% z*|~=5XT`<`e635@oEgPW7MSwg2zGL4vSrK@fTWM{;rO_%xee`Ltt+^-8~Wv@mZl+( z^l^9SWh{;n0X<5EAh-KQOs!6N6*iSWDXH^S&W((Wy=fSV&kNwW+YANF@Fg~ea@$lnwW zcq_cd)6g94Z=c6slZ%&*t!ou%xHOl;>I_ynwn*Br1=A7H zlLgb(`i)nox9TA?%U8T}Vop6c_Zn%!4^tIRHY1-GK;l=aA>Hd*OA4owBrqyaR& zkS{gWXPJULKt5hntw&RI&-pmoZMMsX3Awy8d^dZgAKBgTPG{{~|BavHy_mY4dg#s*J)d_2K{Mq(ENG1P9jV=bMsgtTY1BqPvFfTtiQeDdinQIqp4+s z0Mv&(Lvq*9I#Nbzs+CyG{pQzrNDqYjB$@rreuZSri+a8FYIoPE|2*6J?596gIqJJH zUMB>)C9RZSdGnP?{(;Ri=gi6ZUP}99MT|x~Xj`B4llc3_B8eAv9JeYU3m4)vJQLb+ zD0}L7&;M2nEP~P9cCg^p0E>b>MKipTremZWj%A0l0q=8*2N8}IfYl!rPhE!Pg(9wtTjh!mb zO$9F#ud=PdOtgZu-i}gJA&I|+9NVM+L-vP$&%i2B ztyuUu*myhI7789{h4Q+$=GakZg#8;}g)wWHXU7dp`Go~+vEv8!!QsN&_Hs~n<1Xui z#NQBrFJ|Anu&byCfAMuB;}AAn4b$d-{vl5X-;9I-&gs_p7frnl4ZTf4zVDuQ)Nd^P zovllDYn<_~&wmdRHWWJ|izAO4wq?(#;5Z#Os5-R6Ws{D@#Z9o!&%*GV=}#6fcl_II zv%ci2t(_&1kW28ehPg>+aCqd_9p!PdxbnwS?Km|8b3oLbQHXw2JQD3!%$tQ$a*YAf zm^u%bxrI`Fj9&s2;ojf|&j=5}R>Ls%8ZQS3o=Y5Voxo%2HkJ6t4p++6q^75Z zkIR99VE;OLDX@3#4J~Juf3zVjj+Si^BR&lVjlt;&L~qz%T}o%g<_a+w)$D%9^Un9* zX0rXAB*8BT@I)yB-8q7$mU0Z11&qU)rmDV0)t{qu^XATWD6XULGL)3t-T`A@@It?uz_p}08QBwkvMk*eA zi*psJ(TVdLn*%!W>(SxXWBE-}jSVD*Vhhb~IXW!+qsvecr3{0?XVYuFNb@H&Dh7ij zN}VKU$%UpycqY$(i1(Ds}I^)0Fj8 zcyK`o`*L?}qJvAn;XkE#ore!|%16rez=cwQ!utpJZr?xV(cKuSJ&K>CjZ;ZjFh>m(-W^9|LQ}YOIh8B0Px3 zF$hORI5ND8L|B^&O4`iz4BX*sSu*)qTL~jKt{8S?=-V2Az89Kbs(W5O6YytqJjGh# zF2jtnZ)(<6CCDag#~_;}C#tI>M=(s+p;#=>cB+oKoPH#?)(O(^xb%n@576cqsf2y4 zAD26(Yulw6UAYhNEh&l%s2~~OOar8^PB#Vf)E6v)_<7k+rG~HZGhp`6>hLwc zVYIDi1AN|4#lG}y)|{KBDeWxjbJ@LMrGW^F=06L`BU5KW5?vSp%p`e5jNzB~3a8)^ zvb9doEsGNtA(N3VpEOLGWYuxFE7Z@D>GEwp zcj4$CNjS!^mKnjczVktk&6H-!#MTU{@N0%ss_IqYDY5^c1WDa2ddYoBY!JV=oTAoq z%u2g-p)ncDQi}~+h*e2rB4SG5sIis>p?>5Vp-F>TJDF@r=JDhwdl5597VUJ1%H1`F zD`}5znf-<9?Zt*O5-2@@Vj`xaQH!S%&0yAD7L@ST?}9Dmskv!0>Z-89Vk0Kk124d) zjZCx8mCR7LXG#*F1)q7{n(ssluB`U)+&O;C2Th|BZ2j%rbSI6~Dc(kpz#XKsUxOwG zv4IEDv~yV%Hcu`v1Ycj?X!U|Jn@13+^V`8$B{Et=q}H?U#RfM^t3 ztM8bzV6~{#7(O!)IOOFu*mZSM<5ry2@S^;xM=PFr3{<;iYkD(3}|zKBGtZ9*riw?bU7fCR0Q z!q?`OLoUz>-1=70omNE@W{J;pvf)#xUle^+62|O(QAu9}w^9xgl`{`>K(hY9gRxx( zOE9hkwD}VLwjfY6@FWSXInu z&JFdH!PuwX``FVH(VKVeNwA+%eFGubi^F1%c?^hb-zdxdftoJhO}yZIAs2YN%E33t z!b3^>j)_?;hlK!t-IioAA`lvp{Lvh_>)tsJlKXDM-LH!}DmVR1%czNMl48h!)YjDG@{-HY<4|8t!RhTtMsyy+EEq+8% zy6=jvzEnZ>3|{2`+j#tr!`|mWCc9qOwNuQW`2+G7i7Sb5DCjo?A6(a#5j~1d;l%Ka zHA^Z!#}E8Gr(T%JrX{Aa3Yf8zRpqtFad5@{ijFd}th&=M=UXN4WS9~PzSUeE7sjc$ zVn^Bq>_j!&RZf-@a~lm2EYq80GSfD(Zy{6cPe1SY{gyvNj}~P3Z~eaGr=Ma?dWgQt z+1e$s)$F z4rqh!hn8?Z-MRBq&am#jbT}VtLHV7XMfbZfbJrI|JMYLx=68OG3Vge0$rnS;RsG*8 zDE#v@#i!{}qlk|Z!_q&6(R(qJ;@kdJ&Y}A)BD;G<1vwm-|HS z^IVBL$p^V7L%fuKKn|dVksu3Ru%&7*^2j7Yo)-x&_mvR4WbR0J+;(~71i%~$NjgqV zqugI2?79Udr1KQ8Tp{o0zJe9a98wI;Ov36p#t_W&)uxa4X%XhAfrQZ*ymdIas<+398d3FETlF|F3q|{PLN^4Ry}eF!It4S`hUsm+tgj~n z66;Y=n*(G4=*aYxkOcY$#y`69>CNGv-}BmPx1Cw@zg;(PkvqfA`ihS)J$p*DvvB{( zYdNZx7FA9`+kS{^4!^Zi<4RTxE1dV7_1o(outzRMhUxJ2Pu%KYQ0<<-B>Xi&qwo=p zijPFAa#fYpujS4DO^1RTP@2eF=ueGR<+Qfus8&#ZI!)xcKD%W5azH=#*_6ZbG)ESA z)7XttsdcDSFh8xPDtk<0UVS<;f^&WWje=Ng#Xkl^D%{OusGK(FgTo95e|sS362df% z$Kh{KfatQ*odxr|UH;9OUyuf9s!~T_8p9%A2pA&PdCv8OFN#|;C`{iDxx$f9$bM5G z3QG<|X#h(Q&ciT_uUE zC!SCfIAZm}=a?uHHLE`L^2=_UGQQ!EW3@`N$NBkews>t8ym(R*MSRL?BmNg z?)O*IL@Dr!ZX%lQ;I=XFknIY~{#6m+k1T)1*$@1x`Sq-Kju#f`@s-fNSUgu345fTF z_Ag)m_fcoJ49#u(br5OeMbDtOpwBd+Z8Z36TLcOn(x8DVUx&|%F21KqRK0gsbaw_- zsYfZhJF%fh+p}Tfu9@FMY5_+A5;u{wwH=?+63gj+7TVDxU7*+}HXoo@v_h9sA|j#0 z4&eBKZpdX@43JwRGZQnD56yD%WMtP}?pE&{(F8Rk_+>Vvm~#-aMgvDeT}s^CIFE#z z0!qrx*x^u*?Bomt&kdz@|LUX4-8P(re7JkU%PINbRlqzGD4CW{NeaY6(mv_5xIi)} z4c?g^JfyQHz!$=MTU|znHN*QN_U$jDey&~@)k_BA`y%0Qa3DBD__VC4vxK*{$wi$% zzai+L;wcAGru%wL0U}L@;||ZORxzbs?@LSz|eZt!3GZ-)E8n?T*x4V25>aq$}&xFKz!65>wGCRt~;ZA4< ztJsAq1)UMB8w8Od+}j3jN6%1?+1Wc1s0Bb}OU=VNdvF!NqY>O=9roC}bk%JM2_Che zAjj==&Pa?fnJg!6y+TsADTx0i=8Z_ZWO{zp(DmpR{xbcS7s=9dUsim1u9Q9ZMa38A zeA<}!Y1vf#-1te^op|UfBjPmt#DcQAQ*cv9UyfzazBN59917R&$R^FQr}CqNrKYHY zOje%{YpRW!sXtK_`~m(<_a~k%zo?q~2L!z2;=h>`Ce$O)m2$QDVGl=_7yR+ekFq>C z#S_lwYg(NL(z!EMZ91Wx?V3lw8=Q=+GHu$X2NJo1#{b*EiGOK0I6vpT2m2n~dJuoY z?ojLGvTR;bdV_ME+F?Ht|KQf6eGlHtnSZe1m$dX>&?!eByzqL=gFS`lm3R=}L>G!A zX2aVr{uwqhEK1>yg+tu*OMRCJZggQ6TnZ?RqyK&JoB^{yB?BNBDM`lz<-!~KpVv#U zS|?FUurVz0LfPeZGay&?=nl0XISX1^l`Ak7xHj^v6cmDQCB~A-ZG&=7!bdc>c8`DC z)q=KhYLlSm+}!q!0vey&h^XiByR{mVaiS3LXGy*=Qk{qb{hS*-KfUW8PTT6dD_;?Z z6`e8jH*BbQE={aiegHu7zfMn7 za$g&{!|A)?w3K(r{5mI7kQWi7AtVr@<0H4AoxQ4D)$SgkJAEfqu9{Nkst>OKVBfIl zYNaxIckFUCE>QMynP$FYU4#P3DzMIhv!Y83brSYSISgU2;Mc6x(TkjmqE{v-V z1ASFr*hg^@AC!2nCvu@s_`(t=jY4_@3N=0m#SGF`M}!Um{M0ZfDk3U4YJ^L|x-CQK z19B8gHk4Es{Av6G6((nAI{2Nnv0HJ-LL8z5wCZo-#f%*ov*N z8X6IH;AKCPMz42*UwmK{o<8zA`NHWJyBZtF|3HvFbW7B{uoVU`SA_)uN!HG>?Ha!B zJ(C`iMo;=D45W)NeN7Izx6285i`jcU5(G2$ zmCMI(z>9 z=BP$KSz*lm3*Do9wMSn+Wh|jO)*4?}(?7vU6dAmWTS_D_)j7!ZT+5 z|3#i`HS)y&4J?RyV;?795(Dqc3YGf%yKG(lTjuO6FMSiL8x#qB{*NaKPwsy`ew)6% zCi~c??4FuQ=}i4uFlR#&QAW8Q$Ia`78LVyDYl?&#g z;mvF=Jpm>i+2Vo+&efE^Wqzw%(-IV4fLbp2KM7fVMpWhNACQwvxEi^8Pw0ptlM_62 zQnco^I3F{Os^T>Nwhhbr$rp@x#YMaI(Zgf-vA$IOD-8uer+ z!1X-Stgew>HGdB<`}s_h0{=EH!g7uBjA*V4lLD|PE~e4agEJ4Nq7sDM`R>PcS_C?2 zSnQMa>0s$5&HEAYzxPY1IME8_IRq`xwbZugki{{oeEid9jWI{@sZOAbI`@PoxnlZ6 z?8uMOobV@#|G)2|$&M#z6^u}J)xH1z7TEK9Rr?Kh6Qo>qzP(O<@4e^80X4o(3&c-z z6mHigi9LO|}^AN>;-V9*p3bw?Fv0{yAPR6*k)i-TTDs{3pvL>95|iRs7>g zdq?t;-|KhhPG)>HCEt)Ac4euwDlU{t=S&}>=9Yg#$BA(vog zTGvO)P-@aLbpLW$QYEI8$dl!uW`UUez}6k*DOMU?hH;O1NSxBA`rFP9D9ehqE@B$skB!#hUZ zXWjM`j{+$eE^ElFDn7!Mbie<-`n~4bAB~tv?aJqWe@fP+>hXxWg&->VZE0^B2n#0r z2A|*2X4w_}-{8NiOC8dIsIr}YX2&~LPU0Hd7MB7m#ct(5k9S|+|7WpEEjDtv?>DWC zN=lkg+$Vuwt@u$b7$C+fJ3pYS&8BA{^xl8~)Wf+iH6#G{j7(=tZCd(;Rk#GT3s8b1 zQV!~Q2SL&`93m7s+zvBTx$GiM$axN?E~?tu=!+oLlv6pp#DMf*fIgk@!KUU5>t2H( zHKzdvb4e6H)Ebd#q80$OWrG%T8S9|xT(q-z{V7nRKDD_<>|8fw?IAo0fu=Z~ z{1^?jG~ml~VIT1zTw7(_d(n{ACac;a{>oITRa~^$jBF8FMyQg)nh~6&6w)){q0(9O zoKp%duwGcMh~+vU95z3^Laog)Quksr4h-2ODMy4737r2k5JqYwO0_JRFgB}Tt%}7; zBg(jkhmfkt06sXyIE+|e@MaYO!Oo*x{g6YPI^lq0r8fzd$PbQIqGa2QtaZ~8EKOh% zg4T=Dh{jn80VToIDu8mRVU~-^X;~u=+J6;!?$~TF<-WZi!9vpPquwQ*Nc%ubeR$Ui zaPs3Iz!^E;f-{ZulOON4HcqWDdKz+&38sz{jB(ZNWDfvxc)fl}ZU#9mB+mqPggrp!4l25vC}bI{e`{)N&1MNdAYK(zv3OJ)Lx2e!~E zhaH#m*C7*ttDds6Ji{Kp0~ihDm|9HZVg%GP*vndBwE@tyFg16S<0plfJ(wTFL;OP) zC5?*G9sfuc1bzo_uh~+dGk$QLeQej(td#h;88iL?Vj#Q18k0=*rl}>&`#fhN}B4Lj8e%o%y`+%MHOkb~aS% zplZc@b}oZE9`-CpT3!1wMa$hFIoe}u0;mNQHr>5}7%9HD`zeE!obLkp%B4E0Nf1h@ zHtv}@;4CARL}=i@qIqc)^9=$=;4{aR7nQ)vgYTexdcFc&Q8df|wKE0%=m=6rxEukm zI#MgnXGYyFz|N8@Sf?XK(H6&Y6GDNF0Q1f_-++!hhuGb4ZP=iRV%Qz!LklrJxRyHp zCjdi1GvhHgiP=^0Sw8GSsuf8)vEU!UZwm41tf{WF&#J~~Ijf&RtF_sR7X&5CnBBIn zk69@w`Kb{*hf|Kzg*@(zwHFJ&R)iGGCw`8wGFa8BRF7J9z?>qWk;qa-5Bco7jM-hI z8$0K-ywVg`FRe;JRT@e`+L9RL6nf|8)ORW80D7n=>WVeVrRDKmBlFL0Xkcn!JA0)O zR4bu*=YnuQOHx^l(hF6x54JB2s&eaPmgRkE#rr#*dE$b9sx^&t1Y^PJ-Ht>2-H`H* zs4cf$O>o-razAh!>Bd9gN{NwtT&Nw%V|o)f8Y}3e5LyekH(5%xf>DA`(r!f`AazF zfV;uK5O`{MUHRFF+SsxkmPSKCU&`^MbZP{_+QDR&_PDF4uV(;e2h^;Ca`MQj?`VT) zPq>SYcap1)rI~;NI!m)`z;{^vOAsCR;A|UYIXT(R1#*L+PP}7A+)>e&CVzDy0Ab!= z_#wr>HRlh$%~i~|yWctJIoQvJNNsbCW!z6Y`p+!_B8)E*Oy4jr z(|1R{`GQv4r=FMuZPJj;WuX!Azh|0#Z8trs;cHWnY5)q1<{2-4Msa5>UWvBT#SL>; z3wj$Twx;nOB*L*)tvw~t##0i$wV*SmhQRTAN~GV@t~c}e&$VtDWs~r=q&EDN)gqq~ zQtk9H>(}Q0phttVAMd)%Qc9WH&1lK=sG@kEetnpsG@NK|?WxnJjllDN1;^A9hg$Uw z*@YK3-s}nmBWOJz0dN z=bZm(UxPr$b2lh7)pxd++a%JPOp@?P>j^(dq1zuqgT*!OKh9&X9|wxJk0V!w_s@E| z@aO^!+Cu-Ak2A7AVndCWh(qINALlhs+JFs%@Z-q$kon2P4#S46=5iL6s>;S6Iq`3@ zEvWiP^!t+RE-NCctn;m4E&UB95t&>m)xhtIygtB#8%FS+P zj;JjCVp)WAeYOCa@(8(@p1E0|7ZE1<^7GC z|AQ`o#{IRNRQu-{bK2iSa@t?Rf$f(RKNV5)0Qh@~*D3oI!iOB!`z6AE2M(h+Nwd5t ztGa2sei)~DS-1T-ef|6aK{1>lDVkw9K{PC)|46sm><*{P?eY5jI6+c0!*aYJO0uGA zx?x(j<9Y!4K^VnJn&m}V)lJ*=!#K?g075W=VmLukG{bVdAWE{LYPw-sw&Qw!5Jqv5 zW_eLob<=kJFi!KbZu@aw_w)XI0T6-_6vGLUq8XOs1yPa}RnraAvK`m+A3+$!Nt)$F zS=CM3^}{&L%ew8ydEL*~+iXEl3@1p6W>}6FM61p2aJt+cuWxd5V}!;A2jJ0BWpFpC9>^xu80}Ub9|t3v*SpJb zg)twO3sP>(>lNxi&)+_3>0gqYuoAGqRSo<9_3-~gBL!Oz>EArLJSE8@H;@bLJUndWQ|AjtQ*(Qn{L?+Fa43UV0txa2iT|rI9Kn3HZ*753*t4`{zi-b;ibdeCdfRDINay~6* zr`gZV?iyBw3rspZXW8K!tJ26D=wi<$ap(snj?6V9z^?DMbh3|z&2T@ysFBFbjs}Gc zOms5oaUI@}GJkE5fc%0;T;;mvKYPc#W+c(!@z~?zQX;_5XjZH)tc|eHjQ85d4t}YZ za-jDSn8Mzy0)9Eb`o9hCFF@wg_-oxvA)3Q$%nKs;BlQr`y#9Ygf?7%k5auKY$DHRj zKd~vm%>T6S8edl@(aC;d^>vC{5pj^~3i=&yM52>XZ2HQ^t%y8l#9Jc=-$TCUgXW8G zj!ux|FD+PM?LvKLUG|rbb2? zPmIRD*56Y6z4s?=WnVf z$js{;PIPiKv5C)=2oWcOayiu#I704)gQJX2^+e!9XLYJaeD*rC6P=9XK-rz@35+_! z6P-*3ge<30@ZVjXRLe(RRC-i+w0xwm(&M`xAbZa0Bi-M`FfSq^9fU_c_V>+#9Z<)d zkM4>}@VR;+NqK!Z%R-DVFp{r}qT&!Wx~mvhTU*}WAyW3y3V|lH^vVbGv2uzCNro2_4-DmVx^jvL$qgFJCb$vZ z1Z=dJR8)$tb^BWt8)@Rush%hp&q+#+0TF0BM-QMpXTg>wje)LXp0idW)CgCZ=F@+s z1bhGY!AJIYw$J2E@z$)dH*fzOhdNxEls3hwSg@gG<{&av2T61?W+78Fz%UcAguqeq zVp0lR_8j0y6cG_TBm_50pIfRY0v>7#0u*C%Pz3Sn6sCHD2!tqQNzf@t4vJ8K@{9qU zOM0Zj$o1JI2L+V~`Kg0>&YA)lECusYDj{y;d3)4I(hH|JYS5Nwh0%21sPL@=A(aJ& zt04P&TJVN3ti`E0cr*~a?njdVv+nTl&jJ@3VYD3R1Fe#2K<`PLR;8Ta(IhV*qDoH2 zv{u6hob@Afo%Zqc@L4MJ*i&Z^dTKPLwQ4>F-osacFR#@+u18uC$s=NVD|s80`>}&x zT6HCaxo(f)(la*mq%+$!NPCIV0S0J+Gz_fY-2s6;iEH&uoH9lHEI+f0+2gPi9Vp0U zif9&OvzzEF85}jNR0=XIkEZJ5(ng|_ozQU7Xk0|4;Cfd#!9?&fOg~2pPNm>R9B7qz z)JV46EE8x8L7jBOtucjhtRC$>7;-VRu86Oe7#OB{f(T@z9m5}c$jTzsE{ps2y&!cN zO*&spUNfxZp9E06(Iv1Q46FX>I~)0kfiQXx$gqwhvyi=uQ25>W4Osd3p zanf`Qz0DM4G{}&*Xxm(1$HcH;7`|VPH|qBjEtfc$=RnH*NccgO9lG40mS6!qaC=83 zngWl|Y3UX9u7*#~Sxr_LA0OY2?J*Pq#eD4Gm%3hR8Bo2at8@^XIy5*oIyHITxfi>* zvS+gqz!bKrH$xFE`dqT|n#nHl|4Hbc2Z3@%_Z0(aKP#?fCXzGS584qGM$B-%uwXm4 zmJ34OC~L(@n^>i6YIMis=e?SNi~=}AO~B`2vmj*fL2T(vF#5AbEB1@qfjv=^pub=! z2se&4&>8>dl*$#qB$a~n__5a4mjL$zj!BP%kh6=yLk((q-pY9TO}BDX3hsiiDmF?_ zh$A^D+$=N(9P8%7r6oGcO>9HrL8vn$Zbcd47@w}RN56&rw93vxQ@lMl4=PnM<-dR@ ztX}7gHm--UMPc-d_)S~NH}Elm?x&3|8*wWZ3^%#a!+5>x_Aa>hGKDJoE(Z0l)l7yy zm*<1@+UT~LF-$=)k(fdi{lHOa_f3P)rc_c%nA&YVEHHY)E#LhKeU0aAcJi6n%Pc0o*p5D z*hQBpG|d88)tc;jj`lZ>5OC%9ctRIk$YJ}4K*CZxoHMB)fA7Ga?{%5#~?YA31rhQ4rhC? zyqUE8k8F6u!kU;SZL5jBwa zjH0J{VWJXZ2qDF#Hs3H-;OIlYP zA`r3#R}?A*I73}AJZBXtlkprSs)Fx1x)xo%6pVv%85Zog6(QZIAQQm@;(|-10EM8m zpe6?eoU1;q=PZ!AAbO6FfLwh97tU4{w1RQ>7Z#4H%Sr{6HYdz}!G9va;al8_x#X4y zF4Vlis*E)7m@95YS8-$9#DfE-u(zm9#CO2|?jF83Ki(R93wObC$v~+BT@)Qfif@!8 zO!9O0quN9#=Zu}be%Z@-?0p=Y*UW0qj05Fzk57W+HQI9aOZtaQ_M_)vqB)w zK?<4AdQH)4;d0JTuq{AHp}8*bISsb^C1db3&K zkT>SuQelRDQzE@bT$#dxY2E&cJ1)vJ-CnHI3zg?=b~+qZIBJ`=7$Db9TLu!(Q%LyG z!7pW7>zHOQ$l?bJ1`8X<4^!)0&udsZI3GBlkk5ybUYN(_-4a?~C{Fy12N}trX7`Xf z%}a+X9xNxmx#oRCn+g)Wge^5&8O>Sve8vwIM^_7d{o4=O@a45$aN>adN1sbv=fMJa z1c=cTIBV3N4pQq!QDd+r`Z6u>cxm^jzTyT6FoU7?-~)s9O2zZoCr(d15`#G2>hcyo zLz5g7I#SVK`G%Xch5ki$hrYGArTvM;O9iTv(FZv52(PYR?VRnhO!Gf8xsztYW-p&B z(uxs~*G9cOB0P22x@t4Zj_gRYlgnBKOUPU*7_AVN43UuuDKSDVgEb^ zmX%gB^?gFCPs{|iex04e>r1>fWzkCA8eQ1$)&5!z_f)| zPst0$ZP`YKL#axX1UoE`sRZxT4}fC0g$C1RktwtymlZns#4{LvTXLWhb_@ zj|y;ab?snn!7~1cMRW{h^pTU)30rd{Hm-Y$DB;KS?TZ$+&zk&20 zdE$FcIsx{{c07wVwsX+%Q?nB+4P`cSQL~bz8PUc|SW@L8_g~$R2jWT2Gu|cNhq@=9 z)f*?XEiX(DFL`%ygO#kkoA9GThL;zi0RRAuY2gLyCTH?AkfTj>BEyCwgMxi=o`W0h z;JeL0a)RNi2g`9$_}r~6or0}HW+#_PRW)vDRl0Jl2_`3ShpSP50yaT4rZaJsySOey zQGX7Hng%0F86i5jVB8R+Vyp`SRQ(o!y0sTjwD!lJGOUCgKy)CnLX z6bBu3!N7glTQPnSnmaq21q7RoPDG{NwfrWto~Q}RxAv|G9_{tqsIj7StwxmE>6$7K z1>@|n4+aBR@O+AA3Y(>$Io2+$-}fC^3*ZrqBQWw~kC4macfh9f&_I}Z&8(DVzP<{C z&~qjZ^j}LoK542a{DlvexRZkd`3ahXWlzt2E#eDIAK+QnN|HBCg?^dNOJyMAuQt$^gQz{b^A%hby^QcJ&ksDp>}9W( z5>(X5K@oo!a1yO%G9G1=R=ENHD|u_A#1frMuPja|JyNun;EL-_W67b-Yb;|yUmi%( zD|l8ZKwIKn)*Q|PX2GXMde>yOnT@1Wq)p!|+M5dMWjgY`tq#Vm37iV)IoON6Zkip? znM3JO5zi9Dp6X32O;G2x%N9BQ5$wBugN6(At5cCoCgR!NkLrVdNxEW=1mO7}R)EcE zQ-EzJdAS<|6pXWS4^5=2EY@kan0i~q*p-#NF-sQt>i(4|LNe&8E z31dv~L_c#GS8&Ouu=nYN9>z-a%Hpb+9x3dr&*w<76r@JZfFBAkBgl=PmWQHhF{#LG zphv??WHPYwk#21I@9w--hzrZ*{ep3YtJlrQG4 z@WPy(wN}k+x7z)gIQsrYcdfS6to&C#76fkZD@hEB4fApPkOAVvG(-U#@m5k)AR&eawE0eybt$HZk5~}nXUfs3i0Wc$AWHGJp{wsV@w literal 0 HcmV?d00001 diff --git a/src/main/resources/static/general.css b/src/main/resources/static/css/general.css similarity index 92% rename from src/main/resources/static/general.css rename to src/main/resources/static/css/general.css index 4a5a669a..47465094 100644 --- a/src/main/resources/static/general.css +++ b/src/main/resources/static/css/general.css @@ -1,23 +1,23 @@ -#page-container { - min-height: 100vh; - display: flex; - flex-direction: column; -} - -#content-wrap { - flex: 1; -} - -#footer { - bottom: 0; - width: 100%; -} - -html[lang-direction=ltr] * { - direction: ltr; -} - -html[lang-direction=rtl] * { - direction: rtl; - text-align: right; -} +#page-container { + min-height: 100vh; + display: flex; + flex-direction: column; +} + +#content-wrap { + flex: 1; +} + +#footer { + bottom: 0; + width: 100%; +} + +html[lang-direction=ltr] * { + direction: ltr; +} + +html[lang-direction=rtl] * { + direction: rtl; + text-align: right; +} diff --git a/src/main/resources/static/images/docker.svg b/src/main/resources/static/images/docker.svg new file mode 100644 index 00000000..7a761dd0 --- /dev/null +++ b/src/main/resources/static/images/docker.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/images/github.svg b/src/main/resources/static/images/github.svg new file mode 100644 index 00000000..c3d5f08e --- /dev/null +++ b/src/main/resources/static/images/github.svg @@ -0,0 +1,17 @@ + + + + + Github-color + Created with Sketch. + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/bootstrap.min.js b/src/main/resources/static/js/bootstrap.min.js new file mode 100644 index 00000000..cbf856fa --- /dev/null +++ b/src/main/resources/static/js/bootstrap.min.js @@ -0,0 +1,6 @@ +/*! + * Bootstrap v4.5.2 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap={},t.jQuery,t.Popper)}(this,(function(t,e,n){"use strict";function i(t,e){for(var n=0;n=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};a.jQueryDetection(),e.fn.emulateTransitionEnd=r,e.event.special[a.TRANSITION_END]={bindType:"transitionend",delegateType:"transitionend",handle:function(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var l="alert",c=e.fn[l],h=function(){function t(t){this._element=t}var n=t.prototype;return n.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},n.dispose=function(){e.removeData(this._element,"bs.alert"),this._element=null},n._getRootElement=function(t){var n=a.getSelectorFromElement(t),i=!1;return n&&(i=document.querySelector(n)),i||(i=e(t).closest(".alert")[0]),i},n._triggerCloseEvent=function(t){var n=e.Event("close.bs.alert");return e(t).trigger(n),n},n._removeElement=function(t){var n=this;if(e(t).removeClass("show"),e(t).hasClass("fade")){var i=a.getTransitionDurationFromElement(t);e(t).one(a.TRANSITION_END,(function(e){return n._destroyElement(t,e)})).emulateTransitionEnd(i)}else this._destroyElement(t)},n._destroyElement=function(t){e(t).detach().trigger("closed.bs.alert").remove()},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),o=i.data("bs.alert");o||(o=new t(this),i.data("bs.alert",o)),"close"===n&&o[n](this)}))},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}}]),t}();e(document).on("click.bs.alert.data-api",'[data-dismiss="alert"]',h._handleDismiss(new h)),e.fn[l]=h._jQueryInterface,e.fn[l].Constructor=h,e.fn[l].noConflict=function(){return e.fn[l]=c,h._jQueryInterface};var u=e.fn.button,d=function(){function t(t){this._element=t}var n=t.prototype;return n.toggle=function(){var t=!0,n=!0,i=e(this._element).closest('[data-toggle="buttons"]')[0];if(i){var o=this._element.querySelector('input:not([type="hidden"])');if(o){if("radio"===o.type)if(o.checked&&this._element.classList.contains("active"))t=!1;else{var s=i.querySelector(".active");s&&e(s).removeClass("active")}t&&("checkbox"!==o.type&&"radio"!==o.type||(o.checked=!this._element.classList.contains("active")),e(o).trigger("change")),o.focus(),n=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(n&&this._element.setAttribute("aria-pressed",!this._element.classList.contains("active")),t&&e(this._element).toggleClass("active"))},n.dispose=function(){e.removeData(this._element,"bs.button"),this._element=null},t._jQueryInterface=function(n){return this.each((function(){var i=e(this).data("bs.button");i||(i=new t(this),e(this).data("bs.button",i)),"toggle"===n&&i[n]()}))},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}}]),t}();e(document).on("click.bs.button.data-api",'[data-toggle^="button"]',(function(t){var n=t.target,i=n;if(e(n).hasClass("btn")||(n=e(n).closest(".btn")[0]),!n||n.hasAttribute("disabled")||n.classList.contains("disabled"))t.preventDefault();else{var o=n.querySelector('input:not([type="hidden"])');if(o&&(o.hasAttribute("disabled")||o.classList.contains("disabled")))return void t.preventDefault();("LABEL"!==i.tagName||o&&"checkbox"!==o.type)&&d._jQueryInterface.call(e(n),"toggle")}})).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',(function(t){var n=e(t.target).closest(".btn")[0];e(n).toggleClass("focus",/^focus(in)?$/.test(t.type))})),e(window).on("load.bs.button.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn')),e=0,n=t.length;e0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var n=t.prototype;return n.next=function(){this._isSliding||this._slide("next")},n.nextWhenVisible=function(){!document.hidden&&e(this._element).is(":visible")&&"hidden"!==e(this._element).css("visibility")&&this.next()},n.prev=function(){this._isSliding||this._slide("prev")},n.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(".carousel-item-next, .carousel-item-prev")&&(a.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},n.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},n.to=function(t){var n=this;this._activeElement=this._element.querySelector(".active.carousel-item");var i=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)e(this._element).one("slid.bs.carousel",(function(){return n.to(t)}));else{if(i===t)return this.pause(),void this.cycle();var o=t>i?"next":"prev";this._slide(o,this._items[t])}},n.dispose=function(){e(this._element).off(g),e.removeData(this._element,"bs.carousel"),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},n._getConfig=function(t){return t=s({},p,t),a.typeCheckConfig(f,t,_),t},n._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},n._addEventListeners=function(){var t=this;this._config.keyboard&&e(this._element).on("keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&e(this._element).on("mouseenter.bs.carousel",(function(e){return t.pause(e)})).on("mouseleave.bs.carousel",(function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},n._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var n=function(e){t._pointerEvent&&v[e.originalEvent.pointerType.toUpperCase()]?t.touchStartX=e.originalEvent.clientX:t._pointerEvent||(t.touchStartX=e.originalEvent.touches[0].clientX)},i=function(e){t._pointerEvent&&v[e.originalEvent.pointerType.toUpperCase()]&&(t.touchDeltaX=e.originalEvent.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(e){return t.cycle(e)}),500+t._config.interval))};e(this._element.querySelectorAll(".carousel-item img")).on("dragstart.bs.carousel",(function(t){return t.preventDefault()})),this._pointerEvent?(e(this._element).on("pointerdown.bs.carousel",(function(t){return n(t)})),e(this._element).on("pointerup.bs.carousel",(function(t){return i(t)})),this._element.classList.add("pointer-event")):(e(this._element).on("touchstart.bs.carousel",(function(t){return n(t)})),e(this._element).on("touchmove.bs.carousel",(function(e){return function(e){e.originalEvent.touches&&e.originalEvent.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.originalEvent.touches[0].clientX-t.touchStartX}(e)})),e(this._element).on("touchend.bs.carousel",(function(t){return i(t)})))}},n._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},n._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(".carousel-item")):[],this._items.indexOf(t)},n._getItemByDirection=function(t,e){var n="next"===t,i="prev"===t,o=this._getItemIndex(e),s=this._items.length-1;if((i&&0===o||n&&o===s)&&!this._config.wrap)return e;var r=(o+("prev"===t?-1:1))%this._items.length;return-1===r?this._items[this._items.length-1]:this._items[r]},n._triggerSlideEvent=function(t,n){var i=this._getItemIndex(t),o=this._getItemIndex(this._element.querySelector(".active.carousel-item")),s=e.Event("slide.bs.carousel",{relatedTarget:t,direction:n,from:o,to:i});return e(this._element).trigger(s),s},n._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var n=[].slice.call(this._indicatorsElement.querySelectorAll(".active"));e(n).removeClass("active");var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&e(i).addClass("active")}},n._slide=function(t,n){var i,o,s,r=this,l=this._element.querySelector(".active.carousel-item"),c=this._getItemIndex(l),h=n||l&&this._getItemByDirection(t,l),u=this._getItemIndex(h),d=Boolean(this._interval);if("next"===t?(i="carousel-item-left",o="carousel-item-next",s="left"):(i="carousel-item-right",o="carousel-item-prev",s="right"),h&&e(h).hasClass("active"))this._isSliding=!1;else if(!this._triggerSlideEvent(h,s).isDefaultPrevented()&&l&&h){this._isSliding=!0,d&&this.pause(),this._setActiveIndicatorElement(h);var f=e.Event("slid.bs.carousel",{relatedTarget:h,direction:s,from:c,to:u});if(e(this._element).hasClass("slide")){e(h).addClass(o),a.reflow(h),e(l).addClass(i),e(h).addClass(i);var g=parseInt(h.getAttribute("data-interval"),10);g?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=g):this._config.interval=this._config.defaultInterval||this._config.interval;var m=a.getTransitionDurationFromElement(l);e(l).one(a.TRANSITION_END,(function(){e(h).removeClass(i+" "+o).addClass("active"),e(l).removeClass("active "+o+" "+i),r._isSliding=!1,setTimeout((function(){return e(r._element).trigger(f)}),0)})).emulateTransitionEnd(m)}else e(l).removeClass("active"),e(h).addClass("active"),this._isSliding=!1,e(this._element).trigger(f);d&&this.cycle()}},t._jQueryInterface=function(n){return this.each((function(){var i=e(this).data("bs.carousel"),o=s({},p,e(this).data());"object"==typeof n&&(o=s({},o,n));var r="string"==typeof n?n:o.slide;if(i||(i=new t(this,o),e(this).data("bs.carousel",i)),"number"==typeof n)i.to(n);else if("string"==typeof r){if("undefined"==typeof i[r])throw new TypeError('No method named "'+r+'"');i[r]()}else o.interval&&o.ride&&(i.pause(),i.cycle())}))},t._dataApiClickHandler=function(n){var i=a.getSelectorFromElement(this);if(i){var o=e(i)[0];if(o&&e(o).hasClass("carousel")){var r=s({},e(o).data(),e(this).data()),l=this.getAttribute("data-slide-to");l&&(r.interval=!1),t._jQueryInterface.call(e(o),r),l&&e(o).data("bs.carousel").to(l),n.preventDefault()}}},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return p}}]),t}();e(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",b._dataApiClickHandler),e(window).on("load.bs.carousel.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-ride="carousel"]')),n=0,i=t.length;n0&&(this._selector=r,this._triggerArray.push(s))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var n=t.prototype;return n.toggle=function(){e(this._element).hasClass("show")?this.hide():this.show()},n.show=function(){var n,i,o=this;if(!this._isTransitioning&&!e(this._element).hasClass("show")&&(this._parent&&0===(n=[].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter((function(t){return"string"==typeof o._config.parent?t.getAttribute("data-parent")===o._config.parent:t.classList.contains("collapse")}))).length&&(n=null),!(n&&(i=e(n).not(this._selector).data("bs.collapse"))&&i._isTransitioning))){var s=e.Event("show.bs.collapse");if(e(this._element).trigger(s),!s.isDefaultPrevented()){n&&(t._jQueryInterface.call(e(n).not(this._selector),"hide"),i||e(n).data("bs.collapse",null));var r=this._getDimension();e(this._element).removeClass("collapse").addClass("collapsing"),this._element.style[r]=0,this._triggerArray.length&&e(this._triggerArray).removeClass("collapsed").attr("aria-expanded",!0),this.setTransitioning(!0);var l="scroll"+(r[0].toUpperCase()+r.slice(1)),c=a.getTransitionDurationFromElement(this._element);e(this._element).one(a.TRANSITION_END,(function(){e(o._element).removeClass("collapsing").addClass("collapse show"),o._element.style[r]="",o.setTransitioning(!1),e(o._element).trigger("shown.bs.collapse")})).emulateTransitionEnd(c),this._element.style[r]=this._element[l]+"px"}}},n.hide=function(){var t=this;if(!this._isTransitioning&&e(this._element).hasClass("show")){var n=e.Event("hide.bs.collapse");if(e(this._element).trigger(n),!n.isDefaultPrevented()){var i=this._getDimension();this._element.style[i]=this._element.getBoundingClientRect()[i]+"px",a.reflow(this._element),e(this._element).addClass("collapsing").removeClass("collapse show");var o=this._triggerArray.length;if(o>0)for(var s=0;s0},i._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=s({},e.offsets,t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},i._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),s({},t,this._config.popperConfig)},t._jQueryInterface=function(n){return this.each((function(){var i=e(this).data("bs.dropdown");if(i||(i=new t(this,"object"==typeof n?n:null),e(this).data("bs.dropdown",i)),"string"==typeof n){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}}))},t._clearMenus=function(n){if(!n||3!==n.which&&("keyup"!==n.type||9===n.which))for(var i=[].slice.call(document.querySelectorAll('[data-toggle="dropdown"]')),o=0,s=i.length;o0&&r--,40===n.which&&rdocument.documentElement.clientHeight;i||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static");var o=a.getTransitionDurationFromElement(this._dialog);e(this._element).off(a.TRANSITION_END),e(this._element).one(a.TRANSITION_END,(function(){t._element.classList.remove("modal-static"),i||e(t._element).one(a.TRANSITION_END,(function(){t._element.style.overflowY=""})).emulateTransitionEnd(t._element,o)})).emulateTransitionEnd(o),this._element.focus()}else this.hide()},n._showElement=function(t){var n=this,i=e(this._element).hasClass("fade"),o=this._dialog?this._dialog.querySelector(".modal-body"):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),e(this._dialog).hasClass("modal-dialog-scrollable")&&o?o.scrollTop=0:this._element.scrollTop=0,i&&a.reflow(this._element),e(this._element).addClass("show"),this._config.focus&&this._enforceFocus();var s=e.Event("shown.bs.modal",{relatedTarget:t}),r=function(){n._config.focus&&n._element.focus(),n._isTransitioning=!1,e(n._element).trigger(s)};if(i){var l=a.getTransitionDurationFromElement(this._dialog);e(this._dialog).one(a.TRANSITION_END,r).emulateTransitionEnd(l)}else r()},n._enforceFocus=function(){var t=this;e(document).off("focusin.bs.modal").on("focusin.bs.modal",(function(n){document!==n.target&&t._element!==n.target&&0===e(t._element).has(n.target).length&&t._element.focus()}))},n._setEscapeEvent=function(){var t=this;this._isShown?e(this._element).on("keydown.dismiss.bs.modal",(function(e){t._config.keyboard&&27===e.which?(e.preventDefault(),t.hide()):t._config.keyboard||27!==e.which||t._triggerBackdropTransition()})):this._isShown||e(this._element).off("keydown.dismiss.bs.modal")},n._setResizeEvent=function(){var t=this;this._isShown?e(window).on("resize.bs.modal",(function(e){return t.handleUpdate(e)})):e(window).off("resize.bs.modal")},n._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((function(){e(document.body).removeClass("modal-open"),t._resetAdjustments(),t._resetScrollbar(),e(t._element).trigger("hidden.bs.modal")}))},n._removeBackdrop=function(){this._backdrop&&(e(this._backdrop).remove(),this._backdrop=null)},n._showBackdrop=function(t){var n=this,i=e(this._element).hasClass("fade")?"fade":"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",i&&this._backdrop.classList.add(i),e(this._backdrop).appendTo(document.body),e(this._element).on("click.dismiss.bs.modal",(function(t){n._ignoreBackdropClick?n._ignoreBackdropClick=!1:t.target===t.currentTarget&&n._triggerBackdropTransition()})),i&&a.reflow(this._backdrop),e(this._backdrop).addClass("show"),!t)return;if(!i)return void t();var o=a.getTransitionDurationFromElement(this._backdrop);e(this._backdrop).one(a.TRANSITION_END,t).emulateTransitionEnd(o)}else if(!this._isShown&&this._backdrop){e(this._backdrop).removeClass("show");var s=function(){n._removeBackdrop(),t&&t()};if(e(this._element).hasClass("fade")){var r=a.getTransitionDurationFromElement(this._backdrop);e(this._backdrop).one(a.TRANSITION_END,s).emulateTransitionEnd(r)}else s()}else t&&t()},n._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},n._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},n._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)

',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:L,popperConfig:null},K={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},X=function(){function t(t,e){if("undefined"==typeof n)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var i=t.prototype;return i.enable=function(){this._isEnabled=!0},i.disable=function(){this._isEnabled=!1},i.toggleEnabled=function(){this._isEnabled=!this._isEnabled},i.toggle=function(t){if(this._isEnabled)if(t){var n=this.constructor.DATA_KEY,i=e(t.currentTarget).data(n);i||(i=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(e(this.getTipElement()).hasClass("show"))return void this._leave(null,this);this._enter(null,this)}},i.dispose=function(){clearTimeout(this._timeout),e.removeData(this.element,this.constructor.DATA_KEY),e(this.element).off(this.constructor.EVENT_KEY),e(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&e(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},i.show=function(){var t=this;if("none"===e(this.element).css("display"))throw new Error("Please use show on visible elements");var i=e.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){e(this.element).trigger(i);var o=a.findShadowRoot(this.element),s=e.contains(null!==o?o:this.element.ownerDocument.documentElement,this.element);if(i.isDefaultPrevented()||!s)return;var r=this.getTipElement(),l=a.getUID(this.constructor.NAME);r.setAttribute("id",l),this.element.setAttribute("aria-describedby",l),this.setContent(),this.config.animation&&e(r).addClass("fade");var c="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,h=this._getAttachment(c);this.addAttachmentClass(h);var u=this._getContainer();e(r).data(this.constructor.DATA_KEY,this),e.contains(this.element.ownerDocument.documentElement,this.tip)||e(r).appendTo(u),e(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new n(this.element,r,this._getPopperConfig(h)),e(r).addClass("show"),"ontouchstart"in document.documentElement&&e(document.body).children().on("mouseover",null,e.noop);var d=function(){t.config.animation&&t._fixTransition();var n=t._hoverState;t._hoverState=null,e(t.element).trigger(t.constructor.Event.SHOWN),"out"===n&&t._leave(null,t)};if(e(this.tip).hasClass("fade")){var f=a.getTransitionDurationFromElement(this.tip);e(this.tip).one(a.TRANSITION_END,d).emulateTransitionEnd(f)}else d()}},i.hide=function(t){var n=this,i=this.getTipElement(),o=e.Event(this.constructor.Event.HIDE),s=function(){"show"!==n._hoverState&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),e(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),t&&t()};if(e(this.element).trigger(o),!o.isDefaultPrevented()){if(e(i).removeClass("show"),"ontouchstart"in document.documentElement&&e(document.body).children().off("mouseover",null,e.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,e(this.tip).hasClass("fade")){var r=a.getTransitionDurationFromElement(i);e(i).one(a.TRANSITION_END,s).emulateTransitionEnd(r)}else s();this._hoverState=""}},i.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},i.isWithContent=function(){return Boolean(this.getTitle())},i.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-tooltip-"+t)},i.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},i.setContent=function(){var t=this.getTipElement();this.setElementContent(e(t.querySelectorAll(".tooltip-inner")),this.getTitle()),e(t).removeClass("fade show")},i.setElementContent=function(t,n){"object"!=typeof n||!n.nodeType&&!n.jquery?this.config.html?(this.config.sanitize&&(n=Q(n,this.config.whiteList,this.config.sanitizeFn)),t.html(n)):t.text(n):this.config.html?e(n).parent().is(t)||t.empty().append(n):t.text(e(n).text())},i.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},i._getPopperConfig=function(t){var e=this;return s({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},this.config.popperConfig)},i._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=s({},e.offsets,t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},i._getContainer=function(){return!1===this.config.container?document.body:a.isElement(this.config.container)?e(this.config.container):e(document).find(this.config.container)},i._getAttachment=function(t){return V[t.toUpperCase()]},i._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(n){if("click"===n)e(t.element).on(t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==n){var i="hover"===n?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,o="hover"===n?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;e(t.element).on(i,t.config.selector,(function(e){return t._enter(e)})).on(o,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},e(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=s({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},i._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},i._enter=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e(n.getTipElement()).hasClass("show")||"show"===n._hoverState?n._hoverState="show":(clearTimeout(n._timeout),n._hoverState="show",n.config.delay&&n.config.delay.show?n._timeout=setTimeout((function(){"show"===n._hoverState&&n.show()}),n.config.delay.show):n.show())},i._leave=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState="out",n.config.delay&&n.config.delay.hide?n._timeout=setTimeout((function(){"out"===n._hoverState&&n.hide()}),n.config.delay.hide):n.hide())},i._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},i._getConfig=function(t){var n=e(this.element).data();return Object.keys(n).forEach((function(t){-1!==M.indexOf(t)&&delete n[t]})),"number"==typeof(t=s({},this.constructor.Default,n,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),a.typeCheckConfig(B,t,this.constructor.DefaultType),t.sanitize&&(t.template=Q(t.template,t.whiteList,t.sanitizeFn)),t},i._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},i._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(U);null!==n&&n.length&&t.removeClass(n.join(""))},i._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},i._fixTransition=function(){var t=this.getTipElement(),n=this.config.animation;null===t.getAttribute("x-placement")&&(e(t).removeClass("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},t._jQueryInterface=function(n){return this.each((function(){var i=e(this).data("bs.tooltip"),o="object"==typeof n&&n;if((i||!/dispose|hide/.test(n))&&(i||(i=new t(this,o),e(this).data("bs.tooltip",i)),"string"==typeof n)){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}}))},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return z}},{key:"NAME",get:function(){return B}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return K}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return W}}]),t}();e.fn[B]=X._jQueryInterface,e.fn[B].Constructor=X,e.fn[B].noConflict=function(){return e.fn[B]=H,X._jQueryInterface};var Y="popover",$=e.fn[Y],J=new RegExp("(^|\\s)bs-popover\\S+","g"),G=s({},X.Default,{placement:"right",trigger:"click",content:"",template:''}),Z=s({},X.DefaultType,{content:"(string|element|function)"}),tt={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},et=function(t){var n,i;function s(){return t.apply(this,arguments)||this}i=t,(n=s).prototype=Object.create(i.prototype),n.prototype.constructor=n,n.__proto__=i;var r=s.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-popover-"+t)},r.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},r.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(".popover-header"),this.getTitle());var n=this._getContent();"function"==typeof n&&(n=n.call(this.element)),this.setElementContent(t.find(".popover-body"),n),t.removeClass("fade show")},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(J);null!==n&&n.length>0&&t.removeClass(n.join(""))},s._jQueryInterface=function(t){return this.each((function(){var n=e(this).data("bs.popover"),i="object"==typeof t?t:null;if((n||!/dispose|hide/.test(t))&&(n||(n=new s(this,i),e(this).data("bs.popover",n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},o(s,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return G}},{key:"NAME",get:function(){return Y}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return tt}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return Z}}]),s}(X);e.fn[Y]=et._jQueryInterface,e.fn[Y].Constructor=et,e.fn[Y].noConflict=function(){return e.fn[Y]=$,et._jQueryInterface};var nt="scrollspy",it=e.fn[nt],ot={offset:10,method:"auto",target:""},st={offset:"number",method:"string",target:"(string|element)"},rt=function(){function t(t,n){var i=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(n),this._selector=this._config.target+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,e(this._scrollElement).on("scroll.bs.scrollspy",(function(t){return i._process(t)})),this.refresh(),this._process()}var n=t.prototype;return n.refresh=function(){var t=this,n=this._scrollElement===this._scrollElement.window?"offset":"position",i="auto"===this._config.method?n:this._config.method,o="position"===i?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map((function(t){var n,s=a.getSelectorFromElement(t);if(s&&(n=document.querySelector(s)),n){var r=n.getBoundingClientRect();if(r.width||r.height)return[e(n)[i]().top+o,s]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},n.dispose=function(){e.removeData(this._element,"bs.scrollspy"),e(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},n._getConfig=function(t){if("string"!=typeof(t=s({},ot,"object"==typeof t&&t?t:{})).target&&a.isElement(t.target)){var n=e(t.target).attr("id");n||(n=a.getUID(nt),e(t.target).attr("id",n)),t.target="#"+n}return a.typeCheckConfig(nt,t,st),t},n._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},n._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},n._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},n._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t li > .active":".active";i=(i=e.makeArray(e(o).find(r)))[i.length-1]}var l=e.Event("hide.bs.tab",{relatedTarget:this._element}),c=e.Event("show.bs.tab",{relatedTarget:i});if(i&&e(i).trigger(l),e(this._element).trigger(c),!c.isDefaultPrevented()&&!l.isDefaultPrevented()){s&&(n=document.querySelector(s)),this._activate(this._element,o);var h=function(){var n=e.Event("hidden.bs.tab",{relatedTarget:t._element}),o=e.Event("shown.bs.tab",{relatedTarget:i});e(i).trigger(n),e(t._element).trigger(o)};n?this._activate(n,n.parentNode,h):h()}}},n.dispose=function(){e.removeData(this._element,"bs.tab"),this._element=null},n._activate=function(t,n,i){var o=this,s=(!n||"UL"!==n.nodeName&&"OL"!==n.nodeName?e(n).children(".active"):e(n).find("> li > .active"))[0],r=i&&s&&e(s).hasClass("fade"),l=function(){return o._transitionComplete(t,s,i)};if(s&&r){var c=a.getTransitionDurationFromElement(s);e(s).removeClass("show").one(a.TRANSITION_END,l).emulateTransitionEnd(c)}else l()},n._transitionComplete=function(t,n,i){if(n){e(n).removeClass("active");var o=e(n.parentNode).find("> .dropdown-menu .active")[0];o&&e(o).removeClass("active"),"tab"===n.getAttribute("role")&&n.setAttribute("aria-selected",!1)}if(e(t).addClass("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),a.reflow(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&e(t.parentNode).hasClass("dropdown-menu")){var s=e(t).closest(".dropdown")[0];if(s){var r=[].slice.call(s.querySelectorAll(".dropdown-toggle"));e(r).addClass("active")}t.setAttribute("aria-expanded",!0)}i&&i()},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),o=i.data("bs.tab");if(o||(o=new t(this),i.data("bs.tab",o)),"string"==typeof n){if("undefined"==typeof o[n])throw new TypeError('No method named "'+n+'"');o[n]()}}))},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}}]),t}();e(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),lt._jQueryInterface.call(e(this),"show")})),e.fn.tab=lt._jQueryInterface,e.fn.tab.Constructor=lt,e.fn.tab.noConflict=function(){return e.fn.tab=at,lt._jQueryInterface};var ct=e.fn.toast,ht={animation:"boolean",autohide:"boolean",delay:"number"},ut={animation:!0,autohide:!0,delay:500},dt=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var n=t.prototype;return n.show=function(){var t=this,n=e.Event("show.bs.toast");if(e(this._element).trigger(n),!n.isDefaultPrevented()){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var i=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),e(t._element).trigger("shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),a.reflow(this._element),this._element.classList.add("showing"),this._config.animation){var o=a.getTransitionDurationFromElement(this._element);e(this._element).one(a.TRANSITION_END,i).emulateTransitionEnd(o)}else i()}},n.hide=function(){if(this._element.classList.contains("show")){var t=e.Event("hide.bs.toast");e(this._element).trigger(t),t.isDefaultPrevented()||this._close()}},n.dispose=function(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),e(this._element).off("click.dismiss.bs.toast"),e.removeData(this._element,"bs.toast"),this._element=null,this._config=null},n._getConfig=function(t){return t=s({},ut,e(this._element).data(),"object"==typeof t&&t?t:{}),a.typeCheckConfig("toast",t,this.constructor.DefaultType),t},n._setListeners=function(){var t=this;e(this._element).on("click.dismiss.bs.toast",'[data-dismiss="toast"]',(function(){return t.hide()}))},n._close=function(){var t=this,n=function(){t._element.classList.add("hide"),e(t._element).trigger("hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var i=a.getTransitionDurationFromElement(this._element);e(this._element).one(a.TRANSITION_END,n).emulateTransitionEnd(i)}else n()},n._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),o=i.data("bs.toast");if(o||(o=new t(this,"object"==typeof n&&n),i.data("bs.toast",o)),"string"==typeof n){if("undefined"==typeof o[n])throw new TypeError('No method named "'+n+'"');o[n](this)}}))},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"DefaultType",get:function(){return ht}},{key:"Default",get:function(){return ut}}]),t}();e.fn.toast=dt._jQueryInterface,e.fn.toast.Constructor=dt,e.fn.toast.noConflict=function(){return e.fn.toast=ct,dt._jQueryInterface},t.Alert=h,t.Button=d,t.Carousel=b,t.Collapse=C,t.Dropdown=I,t.Modal=P,t.Popover=et,t.Scrollspy=rt,t.Tab=lt,t.Toast=dt,t.Tooltip=X,t.Util=a,Object.defineProperty(t,"__esModule",{value:!0})})); \ No newline at end of file diff --git a/src/main/resources/static/js/jquery.min.js b/src/main/resources/static/js/jquery.min.js new file mode 100644 index 00000000..2c69bc90 --- /dev/null +++ b/src/main/resources/static/js/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",v.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0w[j]&&(I=getOppositePlacement(I));var L=getOppositePlacement(I),C=[];if(i&&C.push(T[M]<=0),s&&C.push(T[I]<=0,T[L]<=0),C.every(function(e){return e})){x=R,P=!1;break}E.set(R,C)}if(P)for(var A=function(n){var e=y.find(function(e){var t=E.get(e);if(t)return t.slice(0,n).every(function(e){return e})});if(e)return x=e,"break"},B=m?3:1;0(()=>{"use strict";var __webpack_modules__=[,(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0});e.VerbosityLevel=e.Util=e.UnknownErrorException=e.UnexpectedResponseException=e.UNSUPPORTED_FEATURES=e.TextRenderingMode=e.RenderingIntentFlag=e.PermissionFlag=e.PasswordResponses=e.PasswordException=e.PageActionEventType=e.OPS=e.MissingPDFException=e.LINE_FACTOR=e.LINE_DESCENT_FACTOR=e.InvalidPDFException=e.ImageKind=e.IDENTITY_MATRIX=e.FormatError=e.FeatureTest=e.FONT_IDENTITY_MATRIX=e.DocumentActionEventType=e.CMapCompressionType=e.BaseException=e.BASELINE_FACTOR=e.AnnotationType=e.AnnotationStateModelType=e.AnnotationReviewState=e.AnnotationReplyType=e.AnnotationMode=e.AnnotationMarkedState=e.AnnotationFlag=e.AnnotationFieldFlag=e.AnnotationEditorType=e.AnnotationEditorPrefix=e.AnnotationEditorParamsType=e.AnnotationBorderStyleType=e.AnnotationActionEventType=e.AbortException=void 0;e.arrayByteLength=arrayByteLength;e.arraysToBytes=function arraysToBytes(t){const e=t.length;if(1===e&&t[0]instanceof Uint8Array)return t[0];let s=0;for(let n=0;ne});t.promise=new Promise((function(s,n){t.resolve=function(t){e=!0;s(t)};t.reject=function(t){e=!0;n(t)}}));return t};e.createValidAbsoluteUrl=function createValidAbsoluteUrl(t,e=null,s=null){if(!t)return null;try{if(s&&"string"==typeof t){if(s.addDefaultProtocol&&t.startsWith("www.")){const e=t.match(/\./g);e&&e.length>=2&&(t=`http://${t}`)}if(s.tryConvertEncoding)try{t=stringToUTF8String(t)}catch(t){}}const n=e?new URL(t,e):new URL(t);if(function _isValidProtocol(t){if(!t)return!1;switch(t.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}(n))return n}catch(t){}return null};e.getModificationDate=function getModificationDate(t=new Date){return[t.getUTCFullYear().toString(),(t.getUTCMonth()+1).toString().padStart(2,"0"),t.getUTCDate().toString().padStart(2,"0"),t.getUTCHours().toString().padStart(2,"0"),t.getUTCMinutes().toString().padStart(2,"0"),t.getUTCSeconds().toString().padStart(2,"0")].join("")};e.getVerbosityLevel=function getVerbosityLevel(){return n};e.info=function info(t){n>=s.INFOS&&console.log(`Info: ${t}`)};e.isArrayBuffer=function isArrayBuffer(t){return"object"==typeof t&&null!==t&&void 0!==t.byteLength};e.isArrayEqual=function isArrayEqual(t,e){if(t.length!==e.length)return!1;for(let s=0,n=t.length;s>24&255,t>>16&255,t>>8&255,255&t)};e.stringToBytes=stringToBytes;e.stringToPDFString=function stringToPDFString(t){if(t[0]>="ï"){let e;"þ"===t[0]&&"ÿ"===t[1]?e="utf-16be":"ÿ"===t[0]&&"þ"===t[1]?e="utf-16le":"ï"===t[0]&&"»"===t[1]&&"¿"===t[2]&&(e="utf-8");if(e)try{const s=new TextDecoder(e,{fatal:!0}),n=stringToBytes(t);return s.decode(n)}catch(t){warn(`stringToPDFString: "${t}".`)}}const e=[];for(let s=0,n=t.length;s=s.WARNINGS&&console.log(`Warning: ${t}`)}function unreachable(t){throw new Error(t)}function shadow(t,e,s,n=!1){Object.defineProperty(t,e,{value:s,enumerable:!n,configurable:!0,writable:!1});return s}const i=function BaseExceptionClosure(){function BaseException(t,e){this.constructor===BaseException&&unreachable("Cannot initialize BaseException.");this.message=t;this.name=e}BaseException.prototype=new Error;BaseException.constructor=BaseException;return BaseException}();e.BaseException=i;e.PasswordException=class PasswordException extends i{constructor(t,e){super(t,"PasswordException");this.code=e}};e.UnknownErrorException=class UnknownErrorException extends i{constructor(t,e){super(t,"UnknownErrorException");this.details=e}};e.InvalidPDFException=class InvalidPDFException extends i{constructor(t){super(t,"InvalidPDFException")}};e.MissingPDFException=class MissingPDFException extends i{constructor(t){super(t,"MissingPDFException")}};e.UnexpectedResponseException=class UnexpectedResponseException extends i{constructor(t,e){super(t,"UnexpectedResponseException");this.status=e}};e.FormatError=class FormatError extends i{constructor(t){super(t,"FormatError")}};e.AbortException=class AbortException extends i{constructor(t){super(t,"AbortException")}};function stringToBytes(t){"string"!=typeof t&&unreachable("Invalid argument for stringToBytes");const e=t.length,s=new Uint8Array(e);for(let n=0;nt.toString(16).padStart(2,"0")));class Util{static makeHexColor(t,e,s){return`#${a[t]}${a[e]}${a[s]}`}static scaleMinMax(t,e){let s;if(t[0]){if(t[0]<0){s=e[0];e[0]=e[1];e[1]=s}e[0]*=t[0];e[1]*=t[0];if(t[3]<0){s=e[2];e[2]=e[3];e[3]=s}e[2]*=t[3];e[3]*=t[3]}else{s=e[0];e[0]=e[2];e[2]=s;s=e[1];e[1]=e[3];e[3]=s;if(t[1]<0){s=e[2];e[2]=e[3];e[3]=s}e[2]*=t[1];e[3]*=t[1];if(t[2]<0){s=e[0];e[0]=e[1];e[1]=s}e[0]*=t[2];e[1]*=t[2]}e[0]+=t[4];e[1]+=t[4];e[2]+=t[5];e[3]+=t[5]}static transform(t,e){return[t[0]*e[0]+t[2]*e[1],t[1]*e[0]+t[3]*e[1],t[0]*e[2]+t[2]*e[3],t[1]*e[2]+t[3]*e[3],t[0]*e[4]+t[2]*e[5]+t[4],t[1]*e[4]+t[3]*e[5]+t[5]]}static applyTransform(t,e){return[t[0]*e[0]+t[1]*e[2]+e[4],t[0]*e[1]+t[1]*e[3]+e[5]]}static applyInverseTransform(t,e){const s=e[0]*e[3]-e[1]*e[2];return[(t[0]*e[3]-t[1]*e[2]+e[2]*e[5]-e[4]*e[3])/s,(-t[0]*e[1]+t[1]*e[0]+e[4]*e[1]-e[5]*e[0])/s]}static getAxialAlignedBoundingBox(t,e){const s=Util.applyTransform(t,e),n=Util.applyTransform(t.slice(2,4),e),i=Util.applyTransform([t[0],t[3]],e),a=Util.applyTransform([t[2],t[1]],e);return[Math.min(s[0],n[0],i[0],a[0]),Math.min(s[1],n[1],i[1],a[1]),Math.max(s[0],n[0],i[0],a[0]),Math.max(s[1],n[1],i[1],a[1])]}static inverseTransform(t){const e=t[0]*t[3]-t[1]*t[2];return[t[3]/e,-t[1]/e,-t[2]/e,t[0]/e,(t[2]*t[5]-t[4]*t[3])/e,(t[4]*t[1]-t[5]*t[0])/e]}static singularValueDecompose2dScale(t){const e=[t[0],t[2],t[1],t[3]],s=t[0]*e[0]+t[1]*e[2],n=t[0]*e[1]+t[1]*e[3],i=t[2]*e[0]+t[3]*e[2],a=t[2]*e[1]+t[3]*e[3],r=(s+a)/2,o=Math.sqrt((s+a)**2-4*(s*a-i*n))/2,l=r+o||1,c=r-o||1;return[Math.sqrt(l),Math.sqrt(c)]}static normalizeRect(t){const e=t.slice(0);if(t[0]>t[2]){e[0]=t[2];e[2]=t[0]}if(t[1]>t[3]){e[1]=t[3];e[3]=t[1]}return e}static intersect(t,e){const s=Math.max(Math.min(t[0],t[2]),Math.min(e[0],e[2])),n=Math.min(Math.max(t[0],t[2]),Math.max(e[0],e[2]));if(s>n)return null;const i=Math.max(Math.min(t[1],t[3]),Math.min(e[1],e[3])),a=Math.min(Math.max(t[1],t[3]),Math.max(e[1],e[3]));return i>a?null:[s,i,n,a]}static bezierBoundingBox(t,e,s,n,i,a,r,o){const l=[],c=[[],[]];let h,d,u,p,g,f,m,b;for(let c=0;c<2;++c){if(0===c){d=6*t-12*s+6*i;h=-3*t+9*s-9*i+3*r;u=3*s-3*t}else{d=6*e-12*n+6*a;h=-3*e+9*n-9*a+3*o;u=3*n-3*e}if(Math.abs(h)<1e-12){if(Math.abs(d)<1e-12)continue;p=-u/d;0{Object.defineProperty(exports,"__esModule",{value:!0});exports.build=exports.RenderTask=exports.PDFWorkerUtil=exports.PDFWorker=exports.PDFPageProxy=exports.PDFDocumentProxy=exports.PDFDocumentLoadingTask=exports.PDFDataRangeTransport=exports.LoopbackPort=exports.DefaultStandardFontDataFactory=exports.DefaultCanvasFactory=exports.DefaultCMapReaderFactory=void 0;exports.getDocument=getDocument;exports.version=void 0;var _util=__w_pdfjs_require__(1),_annotation_storage=__w_pdfjs_require__(3),_display_utils=__w_pdfjs_require__(6),_font_loader=__w_pdfjs_require__(9),_canvas=__w_pdfjs_require__(11),_worker_options=__w_pdfjs_require__(14),_is_node=__w_pdfjs_require__(10),_message_handler=__w_pdfjs_require__(15),_metadata=__w_pdfjs_require__(16),_optional_content_config=__w_pdfjs_require__(17),_transport_stream=__w_pdfjs_require__(18),_xfa_text=__w_pdfjs_require__(19);const DEFAULT_RANGE_CHUNK_SIZE=65536,RENDERING_CANCELLED_TIMEOUT=100;let DefaultCanvasFactory=_display_utils.DOMCanvasFactory;exports.DefaultCanvasFactory=DefaultCanvasFactory;let DefaultCMapReaderFactory=_display_utils.DOMCMapReaderFactory;exports.DefaultCMapReaderFactory=DefaultCMapReaderFactory;let DefaultStandardFontDataFactory=_display_utils.DOMStandardFontDataFactory,createPDFNetworkStream;exports.DefaultStandardFontDataFactory=DefaultStandardFontDataFactory;if(_is_node.isNodeJS){const{NodeCanvasFactory:t,NodeCMapReaderFactory:e,NodeStandardFontDataFactory:s}=__w_pdfjs_require__(20);exports.DefaultCanvasFactory=DefaultCanvasFactory=t;exports.DefaultCMapReaderFactory=DefaultCMapReaderFactory=e;exports.DefaultStandardFontDataFactory=DefaultStandardFontDataFactory=s}if(_is_node.isNodeJS){const{PDFNodeStream:t}=__w_pdfjs_require__(21);createPDFNetworkStream=e=>new t(e)}else{const{PDFNetworkStream:t}=__w_pdfjs_require__(24),{PDFFetchStream:e}=__w_pdfjs_require__(25);createPDFNetworkStream=s=>(0,_display_utils.isValidFetchUrl)(s.url)?new e(s):new t(s)}function getDocument(t){if("string"==typeof t||t instanceof URL)t={url:t};else if((0,_util.isArrayBuffer)(t))t={data:t};else if(t instanceof PDFDataRangeTransport){(0,_display_utils.deprecated)("`PDFDataRangeTransport`-instance, please use a parameter object with `range`-property instead.");t={range:t}}else if("object"!=typeof t)throw new Error("Invalid parameter in getDocument, need either string, URL, TypedArray, or parameter object.");if(!t.url&&!t.data&&!t.range)throw new Error("Invalid parameter object: need either .data, .range or .url");const e=new PDFDocumentLoadingTask,s=Object.create(null);let n=null,i=null;for(const e in t){const a=t[e];switch(e){case"url":if(a instanceof URL){s[e]=a.href;continue}try{s[e]=new URL(a,window.location).href;continue}catch(t){if(_is_node.isNodeJS&&"string"==typeof a)break}throw new Error("Invalid PDF url data: either string or URL-object is expected in the url property.");case"range":n=a;continue;case"worker":i=a;continue;case"data":if(_is_node.isNodeJS&&"undefined"!=typeof Buffer&&a instanceof Buffer)s[e]=new Uint8Array(a);else{if(a instanceof Uint8Array&&a.byteLength===a.buffer.byteLength)break;if("string"==typeof a)s[e]=(0,_util.stringToBytes)(a);else{if(("object"!=typeof a||null===a||isNaN(a.length))&&!(0,_util.isArrayBuffer)(a))throw new Error("Invalid PDF binary data: either TypedArray, string, or array-like object is expected in the data property.");s[e]=new Uint8Array(a)}}continue}s[e]=a}s.CMapReaderFactory=s.CMapReaderFactory||DefaultCMapReaderFactory;s.StandardFontDataFactory=s.StandardFontDataFactory||DefaultStandardFontDataFactory;s.ignoreErrors=!0!==s.stopAtErrors;s.fontExtraProperties=!0===s.fontExtraProperties;s.pdfBug=!0===s.pdfBug;s.enableXfa=!0===s.enableXfa;(!Number.isInteger(s.rangeChunkSize)||s.rangeChunkSize<1)&&(s.rangeChunkSize=DEFAULT_RANGE_CHUNK_SIZE);("string"!=typeof s.docBaseUrl||(0,_display_utils.isDataScheme)(s.docBaseUrl))&&(s.docBaseUrl=null);(!Number.isInteger(s.maxImageSize)||s.maxImageSize<-1)&&(s.maxImageSize=-1);"string"!=typeof s.cMapUrl&&(s.cMapUrl=null);"string"!=typeof s.standardFontDataUrl&&(s.standardFontDataUrl=null);"boolean"!=typeof s.useWorkerFetch&&(s.useWorkerFetch=s.CMapReaderFactory===_display_utils.DOMCMapReaderFactory&&s.StandardFontDataFactory===_display_utils.DOMStandardFontDataFactory&&(0,_display_utils.isValidFetchUrl)(s.cMapUrl,document.baseURI)&&(0,_display_utils.isValidFetchUrl)(s.standardFontDataUrl,document.baseURI));"boolean"!=typeof s.isEvalSupported&&(s.isEvalSupported=!0);"boolean"!=typeof s.isOffscreenCanvasSupported&&(s.isOffscreenCanvasSupported=!_is_node.isNodeJS);"boolean"!=typeof s.disableFontFace&&(s.disableFontFace=_is_node.isNodeJS);"boolean"!=typeof s.useSystemFonts&&(s.useSystemFonts=!_is_node.isNodeJS&&!s.disableFontFace);"object"==typeof s.ownerDocument&&null!==s.ownerDocument||(s.ownerDocument=globalThis.document);"boolean"!=typeof s.disableRange&&(s.disableRange=!1);"boolean"!=typeof s.disableStream&&(s.disableStream=!1);"boolean"!=typeof s.disableAutoFetch&&(s.disableAutoFetch=!1);(0,_util.setVerbosityLevel)(s.verbosity);if(!i){const t={verbosity:s.verbosity,port:_worker_options.GlobalWorkerOptions.workerPort};i=t.port?PDFWorker.fromPort(t):new PDFWorker(t);e._worker=i}const a=e.docId;i.promise.then((function(){if(e.destroyed)throw new Error("Loading aborted");const t=_fetchDocument(i,s,n,a),r=new Promise((function(t){let e;n?e=new _transport_stream.PDFDataTransportStream({length:s.length,initialData:s.initialData,progressiveDone:s.progressiveDone,contentDispositionFilename:s.contentDispositionFilename,disableRange:s.disableRange,disableStream:s.disableStream},n):s.data||(e=createPDFNetworkStream({url:s.url,length:s.length,httpHeaders:s.httpHeaders,withCredentials:s.withCredentials,rangeChunkSize:s.rangeChunkSize,disableRange:s.disableRange,disableStream:s.disableStream}));t(e)}));return Promise.all([t,r]).then((function([t,n]){if(e.destroyed)throw new Error("Loading aborted");const r=new _message_handler.MessageHandler(a,t,i.port),o=new WorkerTransport(r,e,n,s);e._transport=o;r.send("Ready",null)}))})).catch(e._capability.reject);return e}async function _fetchDocument(t,e,s,n){if(t.destroyed)throw new Error("Worker was destroyed");if(s){e.length=s.length;e.initialData=s.initialData;e.progressiveDone=s.progressiveDone;e.contentDispositionFilename=s.contentDispositionFilename}const i=e.data?[e.data.buffer]:null,a=await t.messageHandler.sendWithPromise("GetDocRequest",{docId:n,apiVersion:"3.3.122",data:e.data,password:e.password,disableAutoFetch:e.disableAutoFetch,rangeChunkSize:e.rangeChunkSize,length:e.length,docBaseUrl:e.docBaseUrl,enableXfa:e.enableXfa,evaluatorOptions:{maxImageSize:e.maxImageSize,disableFontFace:e.disableFontFace,ignoreErrors:e.ignoreErrors,isEvalSupported:e.isEvalSupported,isOffscreenCanvasSupported:e.isOffscreenCanvasSupported,fontExtraProperties:e.fontExtraProperties,useSystemFonts:e.useSystemFonts,cMapUrl:e.useWorkerFetch?e.cMapUrl:null,standardFontDataUrl:e.useWorkerFetch?e.standardFontDataUrl:null}},i);if(t.destroyed)throw new Error("Worker was destroyed");return a}class PDFDocumentLoadingTask{static#t=0;#e=null;constructor(){this._capability=(0,_util.createPromiseCapability)();this._transport=null;this._worker=null;this.docId="d"+PDFDocumentLoadingTask.#t++;this.destroyed=!1;this.onPassword=null;this.onProgress=null}get onUnsupportedFeature(){return this.#e}set onUnsupportedFeature(t){(0,_display_utils.deprecated)("The PDFDocumentLoadingTask onUnsupportedFeature property will be removed in the future.");this.#e=t}get promise(){return this._capability.promise}async destroy(){this.destroyed=!0;await(this._transport?.destroy());this._transport=null;if(this._worker){this._worker.destroy();this._worker=null}}}exports.PDFDocumentLoadingTask=PDFDocumentLoadingTask;class PDFDataRangeTransport{constructor(t,e,s=!1,n=null){this.length=t;this.initialData=e;this.progressiveDone=s;this.contentDispositionFilename=n;this._rangeListeners=[];this._progressListeners=[];this._progressiveReadListeners=[];this._progressiveDoneListeners=[];this._readyCapability=(0,_util.createPromiseCapability)()}addRangeListener(t){this._rangeListeners.push(t)}addProgressListener(t){this._progressListeners.push(t)}addProgressiveReadListener(t){this._progressiveReadListeners.push(t)}addProgressiveDoneListener(t){this._progressiveDoneListeners.push(t)}onDataRange(t,e){for(const s of this._rangeListeners)s(t,e)}onDataProgress(t,e){this._readyCapability.promise.then((()=>{for(const s of this._progressListeners)s(t,e)}))}onDataProgressiveRead(t){this._readyCapability.promise.then((()=>{for(const e of this._progressiveReadListeners)e(t)}))}onDataProgressiveDone(){this._readyCapability.promise.then((()=>{for(const t of this._progressiveDoneListeners)t()}))}transportReady(){this._readyCapability.resolve()}requestDataRange(t,e){(0,_util.unreachable)("Abstract method PDFDataRangeTransport.requestDataRange")}abort(){}}exports.PDFDataRangeTransport=PDFDataRangeTransport;class PDFDocumentProxy{constructor(t,e){this._pdfInfo=t;this._transport=e}get annotationStorage(){return this._transport.annotationStorage}get numPages(){return this._pdfInfo.numPages}get fingerprints(){return this._pdfInfo.fingerprints}get isPureXfa(){return(0,_util.shadow)(this,"isPureXfa",!!this._transport._htmlForXfa)}get allXfaHtml(){return this._transport._htmlForXfa}getPage(t){return this._transport.getPage(t)}getPageIndex(t){return this._transport.getPageIndex(t)}getDestinations(){return this._transport.getDestinations()}getDestination(t){return this._transport.getDestination(t)}getPageLabels(){return this._transport.getPageLabels()}getPageLayout(){return this._transport.getPageLayout()}getPageMode(){return this._transport.getPageMode()}getViewerPreferences(){return this._transport.getViewerPreferences()}getOpenAction(){return this._transport.getOpenAction()}getAttachments(){return this._transport.getAttachments()}getJavaScript(){return this._transport.getJavaScript()}getJSActions(){return this._transport.getDocJSActions()}getOutline(){return this._transport.getOutline()}getOptionalContentConfig(){return this._transport.getOptionalContentConfig()}getPermissions(){return this._transport.getPermissions()}getMetadata(){return this._transport.getMetadata()}getMarkInfo(){return this._transport.getMarkInfo()}getData(){return this._transport.getData()}saveDocument(){return this._transport.saveDocument()}getDownloadInfo(){return this._transport.downloadInfoCapability.promise}cleanup(t=!1){return this._transport.startCleanup(t||this.isPureXfa)}destroy(){return this.loadingTask.destroy()}get loadingParams(){return this._transport.loadingParams}get loadingTask(){return this._transport.loadingTask}getFieldObjects(){return this._transport.getFieldObjects()}hasJSActions(){return this._transport.hasJSActions()}getCalculationOrderIds(){return this._transport.getCalculationOrderIds()}}exports.PDFDocumentProxy=PDFDocumentProxy;class PDFPageProxy{constructor(t,e,s,n,i=!1){this._pageIndex=t;this._pageInfo=e;this._ownerDocument=n;this._transport=s;this._stats=i?new _display_utils.StatTimer:null;this._pdfBug=i;this.commonObjs=s.commonObjs;this.objs=new PDFObjects;this._bitmaps=new Set;this.cleanupAfterRender=!1;this.pendingCleanup=!1;this._intentStates=new Map;this.destroyed=!1}get pageNumber(){return this._pageIndex+1}get rotate(){return this._pageInfo.rotate}get ref(){return this._pageInfo.ref}get userUnit(){return this._pageInfo.userUnit}get view(){return this._pageInfo.view}getViewport({scale:t,rotation:e=this.rotate,offsetX:s=0,offsetY:n=0,dontFlip:i=!1}={}){return new _display_utils.PageViewport({viewBox:this.view,scale:t,rotation:e,offsetX:s,offsetY:n,dontFlip:i})}getAnnotations({intent:t="display"}={}){const e=this._transport.getRenderingIntent(t);return this._transport.getAnnotations(this._pageIndex,e.renderingIntent)}getJSActions(){return this._transport.getPageJSActions(this._pageIndex)}get isPureXfa(){return(0,_util.shadow)(this,"isPureXfa",!!this._transport._htmlForXfa)}async getXfa(){return this._transport._htmlForXfa?.children[this._pageIndex]||null}render({canvasContext:t,viewport:e,intent:s="display",annotationMode:n=_util.AnnotationMode.ENABLE,transform:i=null,canvasFactory:a=null,background:r=null,optionalContentConfigPromise:o=null,annotationCanvasMap:l=null,pageColors:c=null,printAnnotationStorage:h=null}){this._stats?.time("Overall");const d=this._transport.getRenderingIntent(s,n,h);this.pendingCleanup=!1;o||(o=this._transport.getOptionalContentConfig());let u=this._intentStates.get(d.cacheKey);if(!u){u=Object.create(null);this._intentStates.set(d.cacheKey,u)}if(u.streamReaderCancelTimeout){clearTimeout(u.streamReaderCancelTimeout);u.streamReaderCancelTimeout=null}const p=a||new DefaultCanvasFactory({ownerDocument:this._ownerDocument}),g=!!(d.renderingIntent&_util.RenderingIntentFlag.PRINT);if(!u.displayReadyCapability){u.displayReadyCapability=(0,_util.createPromiseCapability)();u.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null};this._stats?.time("Page Request");this._pumpOperatorList(d)}const complete=t=>{u.renderTasks.delete(f);(this.cleanupAfterRender||g)&&(this.pendingCleanup=!0);this._tryCleanup();if(t){f.capability.reject(t);this._abortOperatorList({intentState:u,reason:t instanceof Error?t:new Error(t)})}else f.capability.resolve();this._stats?.timeEnd("Rendering");this._stats?.timeEnd("Overall")},f=new InternalRenderTask({callback:complete,params:{canvasContext:t,viewport:e,transform:i,background:r},objs:this.objs,commonObjs:this.commonObjs,annotationCanvasMap:l,operatorList:u.operatorList,pageIndex:this._pageIndex,canvasFactory:p,useRequestAnimationFrame:!g,pdfBug:this._pdfBug,pageColors:c});(u.renderTasks||=new Set).add(f);const m=f.task;Promise.all([u.displayReadyCapability.promise,o]).then((([t,e])=>{if(this.pendingCleanup)complete();else{this._stats?.time("Rendering");f.initializeGraphics({transparency:t,optionalContentConfig:e});f.operatorListChanged()}})).catch(complete);return m}getOperatorList({intent:t="display",annotationMode:e=_util.AnnotationMode.ENABLE,printAnnotationStorage:s=null}={}){const n=this._transport.getRenderingIntent(t,e,s,!0);let i,a=this._intentStates.get(n.cacheKey);if(!a){a=Object.create(null);this._intentStates.set(n.cacheKey,a)}if(!a.opListReadCapability){i=Object.create(null);i.operatorListChanged=function operatorListChanged(){if(a.operatorList.lastChunk){a.opListReadCapability.resolve(a.operatorList);a.renderTasks.delete(i)}};a.opListReadCapability=(0,_util.createPromiseCapability)();(a.renderTasks||=new Set).add(i);a.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null};this._stats?.time("Page Request");this._pumpOperatorList(n)}return a.opListReadCapability.promise}streamTextContent({disableCombineTextItems:t=!1,includeMarkedContent:e=!1}={}){return this._transport.messageHandler.sendWithStream("GetTextContent",{pageIndex:this._pageIndex,combineTextItems:!0!==t,includeMarkedContent:!0===e},{highWaterMark:100,size:t=>t.items.length})}getTextContent(t={}){if(this._transport._htmlForXfa)return this.getXfa().then((t=>_xfa_text.XfaText.textContent(t)));const e=this.streamTextContent(t);return new Promise((function(t,s){const n=e.getReader(),i={items:[],styles:Object.create(null)};!function pump(){n.read().then((function({value:e,done:s}){if(s)t(i);else{Object.assign(i.styles,e.styles);i.items.push(...e.items);pump()}}),s)}()}))}getStructTree(){return this._transport.getStructTree(this._pageIndex)}_destroy(){this.destroyed=!0;const t=[];for(const e of this._intentStates.values()){this._abortOperatorList({intentState:e,reason:new Error("Page was destroyed."),force:!0});if(!e.opListReadCapability)for(const s of e.renderTasks){t.push(s.completed);s.cancel()}}this.objs.clear();for(const t of this._bitmaps)t.close();this._bitmaps.clear();this.pendingCleanup=!1;return Promise.all(t)}cleanup(t=!1){this.pendingCleanup=!0;return this._tryCleanup(t)}_tryCleanup(t=!1){if(!this.pendingCleanup)return!1;for(const{renderTasks:t,operatorList:e}of this._intentStates.values())if(t.size>0||!e.lastChunk)return!1;this._intentStates.clear();this.objs.clear();t&&this._stats&&(this._stats=new _display_utils.StatTimer);for(const t of this._bitmaps)t.close();this._bitmaps.clear();this.pendingCleanup=!1;return!0}_startRenderPage(t,e){const s=this._intentStates.get(e);if(s){this._stats?.timeEnd("Page Request");s.displayReadyCapability?.resolve(t)}}_renderPageChunk(t,e){for(let s=0,n=t.length;s{n.read().then((({value:t,done:e})=>{if(e)i.streamReader=null;else if(!this._transport.destroyed){this._renderPageChunk(t,i);pump()}}),(t=>{i.streamReader=null;if(!this._transport.destroyed){if(i.operatorList){i.operatorList.lastChunk=!0;for(const t of i.renderTasks)t.operatorListChanged();this._tryCleanup()}if(i.displayReadyCapability)i.displayReadyCapability.reject(t);else{if(!i.opListReadCapability)throw t;i.opListReadCapability.reject(t)}}}))};pump()}_abortOperatorList({intentState:t,reason:e,force:s=!1}){if(t.streamReader){if(t.streamReaderCancelTimeout){clearTimeout(t.streamReaderCancelTimeout);t.streamReaderCancelTimeout=null}if(!s){if(t.renderTasks.size>0)return;if(e instanceof _display_utils.RenderingCancelledException){let s=RENDERING_CANCELLED_TIMEOUT;e.extraDelay>0&&e.extraDelay<1e3&&(s+=e.extraDelay);t.streamReaderCancelTimeout=setTimeout((()=>{t.streamReaderCancelTimeout=null;this._abortOperatorList({intentState:t,reason:e,force:!0})}),s);return}}t.streamReader.cancel(new _util.AbortException(e.message)).catch((()=>{}));t.streamReader=null;if(!this._transport.destroyed){for(const[e,s]of this._intentStates)if(s===t){this._intentStates.delete(e);break}this.cleanup()}}}get stats(){return this._stats}}exports.PDFPageProxy=PDFPageProxy;class LoopbackPort{#s=[];#n=Promise.resolve();postMessage(t,e){const s={data:structuredClone(t,e)};this.#n.then((()=>{for(const t of this.#s)t.call(this,s)}))}addEventListener(t,e){this.#s.push(e)}removeEventListener(t,e){const s=this.#s.indexOf(e);this.#s.splice(s,1)}terminate(){this.#s.length=0}}exports.LoopbackPort=LoopbackPort;const PDFWorkerUtil={isWorkerDisabled:!1,fallbackWorkerSrc:null,fakeWorkerId:0};exports.PDFWorkerUtil=PDFWorkerUtil;if(_is_node.isNodeJS&&"function"==typeof require){PDFWorkerUtil.isWorkerDisabled=!0;PDFWorkerUtil.fallbackWorkerSrc="./pdf.worker.js"}else if("object"==typeof document){const t=document?.currentScript?.src;t&&(PDFWorkerUtil.fallbackWorkerSrc=t.replace(/(\.(?:min\.)?js)(\?.*)?$/i,".worker$1$2"))}PDFWorkerUtil.isSameOrigin=function(t,e){let s;try{s=new URL(t);if(!s.origin||"null"===s.origin)return!1}catch(t){return!1}const n=new URL(e,s);return s.origin===n.origin};PDFWorkerUtil.createCDNWrapper=function(t){const e=`importScripts("${t}");`;return URL.createObjectURL(new Blob([e]))};class PDFWorker{static#i=new WeakMap;constructor({name:t=null,port:e=null,verbosity:s=(0,_util.getVerbosityLevel)()}={}){if(e&&PDFWorker.#i.has(e))throw new Error("Cannot use more than one PDFWorker per port.");this.name=t;this.destroyed=!1;this.verbosity=s;this._readyCapability=(0,_util.createPromiseCapability)();this._port=null;this._webWorker=null;this._messageHandler=null;if(e){PDFWorker.#i.set(e,this);this._initializeFromPort(e)}else this._initialize()}get promise(){return this._readyCapability.promise}get port(){return this._port}get messageHandler(){return this._messageHandler}_initializeFromPort(t){this._port=t;this._messageHandler=new _message_handler.MessageHandler("main","worker",t);this._messageHandler.on("ready",(function(){}));this._readyCapability.resolve();this._messageHandler.send("configure",{verbosity:this.verbosity})}_initialize(){if(!PDFWorkerUtil.isWorkerDisabled&&!PDFWorker._mainThreadWorkerMessageHandler){let{workerSrc:t}=PDFWorker;try{PDFWorkerUtil.isSameOrigin(window.location.href,t)||(t=PDFWorkerUtil.createCDNWrapper(new URL(t,window.location).href));const e=new Worker(t),s=new _message_handler.MessageHandler("main","worker",e),terminateEarly=()=>{e.removeEventListener("error",onWorkerError);s.destroy();e.terminate();this.destroyed?this._readyCapability.reject(new Error("Worker was destroyed")):this._setupFakeWorker()},onWorkerError=()=>{this._webWorker||terminateEarly()};e.addEventListener("error",onWorkerError);s.on("test",(t=>{e.removeEventListener("error",onWorkerError);if(this.destroyed)terminateEarly();else if(t){this._messageHandler=s;this._port=e;this._webWorker=e;this._readyCapability.resolve();s.send("configure",{verbosity:this.verbosity})}else{this._setupFakeWorker();s.destroy();e.terminate()}}));s.on("ready",(t=>{e.removeEventListener("error",onWorkerError);if(this.destroyed)terminateEarly();else try{sendTest()}catch(t){this._setupFakeWorker()}}));const sendTest=()=>{const t=new Uint8Array;s.send("test",t,[t.buffer])};sendTest();return}catch(t){(0,_util.info)("The worker has been disabled.")}}this._setupFakeWorker()}_setupFakeWorker(){if(!PDFWorkerUtil.isWorkerDisabled){(0,_util.warn)("Setting up fake worker.");PDFWorkerUtil.isWorkerDisabled=!0}PDFWorker._setupFakeWorkerGlobal.then((t=>{if(this.destroyed){this._readyCapability.reject(new Error("Worker was destroyed"));return}const e=new LoopbackPort;this._port=e;const s="fake"+PDFWorkerUtil.fakeWorkerId++,n=new _message_handler.MessageHandler(s+"_worker",s,e);t.setup(n,e);const i=new _message_handler.MessageHandler(s,s+"_worker",e);this._messageHandler=i;this._readyCapability.resolve();i.send("configure",{verbosity:this.verbosity})})).catch((t=>{this._readyCapability.reject(new Error(`Setting up fake worker failed: "${t.message}".`))}))}destroy(){this.destroyed=!0;if(this._webWorker){this._webWorker.terminate();this._webWorker=null}PDFWorker.#i.delete(this._port);this._port=null;if(this._messageHandler){this._messageHandler.destroy();this._messageHandler=null}}static fromPort(t){if(!t?.port)throw new Error("PDFWorker.fromPort - invalid method signature.");return this.#i.has(t.port)?this.#i.get(t.port):new PDFWorker(t)}static get workerSrc(){if(_worker_options.GlobalWorkerOptions.workerSrc)return _worker_options.GlobalWorkerOptions.workerSrc;if(null!==PDFWorkerUtil.fallbackWorkerSrc){_is_node.isNodeJS||(0,_display_utils.deprecated)('No "GlobalWorkerOptions.workerSrc" specified.');return PDFWorkerUtil.fallbackWorkerSrc}throw new Error('No "GlobalWorkerOptions.workerSrc" specified.')}static get _mainThreadWorkerMessageHandler(){try{return globalThis.pdfjsWorker?.WorkerMessageHandler||null}catch(t){return null}}static get _setupFakeWorkerGlobal(){const loader=async()=>{const mainWorkerMessageHandler=this._mainThreadWorkerMessageHandler;if(mainWorkerMessageHandler)return mainWorkerMessageHandler;if(_is_node.isNodeJS&&"function"==typeof require){const worker=eval("require")(this.workerSrc);return worker.WorkerMessageHandler}await(0,_display_utils.loadScript)(this.workerSrc);return window.pdfjsWorker.WorkerMessageHandler};return(0,_util.shadow)(this,"_setupFakeWorkerGlobal",loader())}}exports.PDFWorker=PDFWorker;class WorkerTransport{#a=new Map;#r=new Map;#o=null;constructor(t,e,s,n){this.messageHandler=t;this.loadingTask=e;this.commonObjs=new PDFObjects;this.fontLoader=new _font_loader.FontLoader({onUnsupportedFeature:this._onUnsupportedFeature.bind(this),ownerDocument:n.ownerDocument,styleElement:n.styleElement});this._params=n;if(!n.useWorkerFetch){this.CMapReaderFactory=new n.CMapReaderFactory({baseUrl:n.cMapUrl,isCompressed:n.cMapPacked});this.StandardFontDataFactory=new n.StandardFontDataFactory({baseUrl:n.standardFontDataUrl})}this.destroyed=!1;this.destroyCapability=null;this._passwordCapability=null;this._networkStream=s;this._fullReader=null;this._lastProgress=null;this.downloadInfoCapability=(0,_util.createPromiseCapability)();this.setupMessageHandler()}get annotationStorage(){return(0,_util.shadow)(this,"annotationStorage",new _annotation_storage.AnnotationStorage)}getRenderingIntent(t,e=_util.AnnotationMode.ENABLE,s=null,n=!1){let i=_util.RenderingIntentFlag.DISPLAY,a=null;switch(t){case"any":i=_util.RenderingIntentFlag.ANY;break;case"display":break;case"print":i=_util.RenderingIntentFlag.PRINT;break;default:(0,_util.warn)(`getRenderingIntent - invalid intent: ${t}`)}switch(e){case _util.AnnotationMode.DISABLE:i+=_util.RenderingIntentFlag.ANNOTATIONS_DISABLE;break;case _util.AnnotationMode.ENABLE:break;case _util.AnnotationMode.ENABLE_FORMS:i+=_util.RenderingIntentFlag.ANNOTATIONS_FORMS;break;case _util.AnnotationMode.ENABLE_STORAGE:i+=_util.RenderingIntentFlag.ANNOTATIONS_STORAGE;a=(i&_util.RenderingIntentFlag.PRINT&&s instanceof _annotation_storage.PrintAnnotationStorage?s:this.annotationStorage).serializable;break;default:(0,_util.warn)(`getRenderingIntent - invalid annotationMode: ${e}`)}n&&(i+=_util.RenderingIntentFlag.OPLIST);return{renderingIntent:i,cacheKey:`${i}_${_annotation_storage.AnnotationStorage.getHash(a)}`,annotationStorageMap:a}}destroy(){if(this.destroyCapability)return this.destroyCapability.promise;this.destroyed=!0;this.destroyCapability=(0,_util.createPromiseCapability)();this._passwordCapability&&this._passwordCapability.reject(new Error("Worker was destroyed during onPassword callback"));const t=[];for(const e of this.#a.values())t.push(e._destroy());this.#a.clear();this.#r.clear();this.hasOwnProperty("annotationStorage")&&this.annotationStorage.resetModified();const e=this.messageHandler.sendWithPromise("Terminate",null);t.push(e);Promise.all(t).then((()=>{this.commonObjs.clear();this.fontLoader.clear();this.#o=null;this._getFieldObjectsPromise=null;this._hasJSActionsPromise=null;this._networkStream&&this._networkStream.cancelAllRequests(new _util.AbortException("Worker was terminated."));if(this.messageHandler){this.messageHandler.destroy();this.messageHandler=null}this.destroyCapability.resolve()}),this.destroyCapability.reject);return this.destroyCapability.promise}setupMessageHandler(){const{messageHandler:t,loadingTask:e}=this;t.on("GetReader",((t,e)=>{(0,_util.assert)(this._networkStream,"GetReader - no `IPDFStream` instance available.");this._fullReader=this._networkStream.getFullReader();this._fullReader.onProgress=t=>{this._lastProgress={loaded:t.loaded,total:t.total}};e.onPull=()=>{this._fullReader.read().then((function({value:t,done:s}){if(s)e.close();else{(0,_util.assert)(t instanceof ArrayBuffer,"GetReader - expected an ArrayBuffer.");e.enqueue(new Uint8Array(t),1,[t])}})).catch((t=>{e.error(t)}))};e.onCancel=t=>{this._fullReader.cancel(t);e.ready.catch((t=>{if(!this.destroyed)throw t}))}}));t.on("ReaderHeadersReady",(t=>{const s=(0,_util.createPromiseCapability)(),n=this._fullReader;n.headersReady.then((()=>{if(!n.isStreamingSupported||!n.isRangeSupported){this._lastProgress&&e.onProgress?.(this._lastProgress);n.onProgress=t=>{e.onProgress?.({loaded:t.loaded,total:t.total})}}s.resolve({isStreamingSupported:n.isStreamingSupported,isRangeSupported:n.isRangeSupported,contentLength:n.contentLength})}),s.reject);return s.promise}));t.on("GetRangeReader",((t,e)=>{(0,_util.assert)(this._networkStream,"GetRangeReader - no `IPDFStream` instance available.");const s=this._networkStream.getRangeReader(t.begin,t.end);if(s){e.onPull=()=>{s.read().then((function({value:t,done:s}){if(s)e.close();else{(0,_util.assert)(t instanceof ArrayBuffer,"GetRangeReader - expected an ArrayBuffer.");e.enqueue(new Uint8Array(t),1,[t])}})).catch((t=>{e.error(t)}))};e.onCancel=t=>{s.cancel(t);e.ready.catch((t=>{if(!this.destroyed)throw t}))}}else e.close()}));t.on("GetDoc",(({pdfInfo:t})=>{this._numPages=t.numPages;this._htmlForXfa=t.htmlForXfa;delete t.htmlForXfa;e._capability.resolve(new PDFDocumentProxy(t,this))}));t.on("DocException",(function(t){let s;switch(t.name){case"PasswordException":s=new _util.PasswordException(t.message,t.code);break;case"InvalidPDFException":s=new _util.InvalidPDFException(t.message);break;case"MissingPDFException":s=new _util.MissingPDFException(t.message);break;case"UnexpectedResponseException":s=new _util.UnexpectedResponseException(t.message,t.status);break;case"UnknownErrorException":s=new _util.UnknownErrorException(t.message,t.details);break;default:(0,_util.unreachable)("DocException - expected a valid Error.")}e._capability.reject(s)}));t.on("PasswordRequest",(t=>{this._passwordCapability=(0,_util.createPromiseCapability)();if(e.onPassword){const updatePassword=t=>{t instanceof Error?this._passwordCapability.reject(t):this._passwordCapability.resolve({password:t})};try{e.onPassword(updatePassword,t.code)}catch(t){this._passwordCapability.reject(t)}}else this._passwordCapability.reject(new _util.PasswordException(t.message,t.code));return this._passwordCapability.promise}));t.on("DataLoaded",(t=>{e.onProgress?.({loaded:t.length,total:t.length});this.downloadInfoCapability.resolve(t)}));t.on("StartRenderPage",(t=>{if(this.destroyed)return;this.#a.get(t.pageIndex)._startRenderPage(t.transparency,t.cacheKey)}));t.on("commonobj",(([e,s,n])=>{if(!this.destroyed&&!this.commonObjs.has(e))switch(s){case"Font":const i=this._params;if("error"in n){const t=n.error;(0,_util.warn)(`Error during font loading: ${t}`);this.commonObjs.resolve(e,t);break}let a=null;i.pdfBug&&globalThis.FontInspector?.enabled&&(a={registerFont(t,e){globalThis.FontInspector.fontAdded(t,e)}});const r=new _font_loader.FontFaceObject(n,{isEvalSupported:i.isEvalSupported,disableFontFace:i.disableFontFace,ignoreErrors:i.ignoreErrors,onUnsupportedFeature:this._onUnsupportedFeature.bind(this),fontRegistry:a});this.fontLoader.bind(r).catch((s=>t.sendWithPromise("FontFallback",{id:e}))).finally((()=>{!i.fontExtraProperties&&r.data&&(r.data=null);this.commonObjs.resolve(e,r)}));break;case"FontPath":case"Image":this.commonObjs.resolve(e,n);break;default:throw new Error(`Got unknown common object type ${s}`)}}));t.on("obj",(([t,e,s,n])=>{if(this.destroyed)return;const i=this.#a.get(e);if(!i.objs.has(t))switch(s){case"Image":i.objs.resolve(t,n);const e=8e6;if(n){let t;if(n.bitmap){const{bitmap:e,width:s,height:a}=n;t=s*a*4;i._bitmaps.add(e)}else t=n.data?.length||0;t>e&&(i.cleanupAfterRender=!0)}break;case"Pattern":i.objs.resolve(t,n);break;default:throw new Error(`Got unknown object type ${s}`)}}));t.on("DocProgress",(t=>{this.destroyed||e.onProgress?.({loaded:t.loaded,total:t.total})}));t.on("UnsupportedFeature",this._onUnsupportedFeature.bind(this));t.on("FetchBuiltInCMap",(t=>this.destroyed?Promise.reject(new Error("Worker was destroyed.")):this.CMapReaderFactory?this.CMapReaderFactory.fetch(t):Promise.reject(new Error("CMapReaderFactory not initialized, see the `useWorkerFetch` parameter."))));t.on("FetchStandardFontData",(t=>this.destroyed?Promise.reject(new Error("Worker was destroyed.")):this.StandardFontDataFactory?this.StandardFontDataFactory.fetch(t):Promise.reject(new Error("StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter."))))}_onUnsupportedFeature({featureId:t}){this.destroyed||this.loadingTask.onUnsupportedFeature?.(t)}getData(){return this.messageHandler.sendWithPromise("GetData",null)}saveDocument(){this.annotationStorage.size<=0&&(0,_util.warn)("saveDocument called while `annotationStorage` is empty, please use the getData-method instead.");return this.messageHandler.sendWithPromise("SaveDocument",{isPureXfa:!!this._htmlForXfa,numPages:this._numPages,annotationStorage:this.annotationStorage.serializable,filename:this._fullReader?.filename??null}).finally((()=>{this.annotationStorage.resetModified()}))}getPage(t){if(!Number.isInteger(t)||t<=0||t>this._numPages)return Promise.reject(new Error("Invalid page request."));const e=t-1,s=this.#r.get(e);if(s)return s;const n=this.messageHandler.sendWithPromise("GetPage",{pageIndex:e}).then((t=>{if(this.destroyed)throw new Error("Transport destroyed");const s=new PDFPageProxy(e,t,this,this._params.ownerDocument,this._params.pdfBug);this.#a.set(e,s);return s}));this.#r.set(e,n);return n}getPageIndex(t){return"object"!=typeof t||null===t||!Number.isInteger(t.num)||t.num<0||!Number.isInteger(t.gen)||t.gen<0?Promise.reject(new Error("Invalid pageIndex request.")):this.messageHandler.sendWithPromise("GetPageIndex",{num:t.num,gen:t.gen})}getAnnotations(t,e){return this.messageHandler.sendWithPromise("GetAnnotations",{pageIndex:t,intent:e})}getFieldObjects(){return this._getFieldObjectsPromise||=this.messageHandler.sendWithPromise("GetFieldObjects",null)}hasJSActions(){return this._hasJSActionsPromise||=this.messageHandler.sendWithPromise("HasJSActions",null)}getCalculationOrderIds(){return this.messageHandler.sendWithPromise("GetCalculationOrderIds",null)}getDestinations(){return this.messageHandler.sendWithPromise("GetDestinations",null)}getDestination(t){return"string"!=typeof t?Promise.reject(new Error("Invalid destination request.")):this.messageHandler.sendWithPromise("GetDestination",{id:t})}getPageLabels(){return this.messageHandler.sendWithPromise("GetPageLabels",null)}getPageLayout(){return this.messageHandler.sendWithPromise("GetPageLayout",null)}getPageMode(){return this.messageHandler.sendWithPromise("GetPageMode",null)}getViewerPreferences(){return this.messageHandler.sendWithPromise("GetViewerPreferences",null)}getOpenAction(){return this.messageHandler.sendWithPromise("GetOpenAction",null)}getAttachments(){return this.messageHandler.sendWithPromise("GetAttachments",null)}getJavaScript(){return this.messageHandler.sendWithPromise("GetJavaScript",null)}getDocJSActions(){return this.messageHandler.sendWithPromise("GetDocJSActions",null)}getPageJSActions(t){return this.messageHandler.sendWithPromise("GetPageJSActions",{pageIndex:t})}getStructTree(t){return this.messageHandler.sendWithPromise("GetStructTree",{pageIndex:t})}getOutline(){return this.messageHandler.sendWithPromise("GetOutline",null)}getOptionalContentConfig(){return this.messageHandler.sendWithPromise("GetOptionalContentConfig",null).then((t=>new _optional_content_config.OptionalContentConfig(t)))}getPermissions(){return this.messageHandler.sendWithPromise("GetPermissions",null)}getMetadata(){return this.#o||=this.messageHandler.sendWithPromise("GetMetadata",null).then((t=>({info:t[0],metadata:t[1]?new _metadata.Metadata(t[1]):null,contentDispositionFilename:this._fullReader?.filename??null,contentLength:this._fullReader?.contentLength??null})))}getMarkInfo(){return this.messageHandler.sendWithPromise("GetMarkInfo",null)}async startCleanup(t=!1){if(!this.destroyed){await this.messageHandler.sendWithPromise("Cleanup",null);for(const t of this.#a.values()){if(!t.cleanup())throw new Error(`startCleanup: Page ${t.pageNumber} is currently rendering.`)}this.commonObjs.clear();t||this.fontLoader.clear();this.#o=null;this._getFieldObjectsPromise=null;this._hasJSActionsPromise=null}}get loadingParams(){const t=this._params;return(0,_util.shadow)(this,"loadingParams",{disableAutoFetch:t.disableAutoFetch,enableXfa:t.enableXfa})}}class PDFObjects{#l=Object.create(null);#c(t){const e=this.#l[t];return e||(this.#l[t]={capability:(0,_util.createPromiseCapability)(),data:null})}get(t,e=null){if(e){const s=this.#c(t);s.capability.promise.then((()=>e(s.data)));return null}const s=this.#l[t];if(!s?.capability.settled)throw new Error(`Requesting object that isn't resolved yet ${t}.`);return s.data}has(t){return this.#l[t]?.capability.settled||!1}resolve(t,e=null){const s=this.#c(t);s.data=e;s.capability.resolve()}clear(){this.#l=Object.create(null)}}class RenderTask{#h=null;constructor(t){this.#h=t;this.onContinue=null}get promise(){return this.#h.capability.promise}cancel(t=0){this.#h.cancel(null,t)}get separateAnnots(){const{separateAnnots:t}=this.#h.operatorList;if(!t)return!1;const{annotationCanvasMap:e}=this.#h;return t.form||t.canvas&&e?.size>0}}exports.RenderTask=RenderTask;class InternalRenderTask{static#d=new WeakSet;constructor({callback:t,params:e,objs:s,commonObjs:n,annotationCanvasMap:i,operatorList:a,pageIndex:r,canvasFactory:o,useRequestAnimationFrame:l=!1,pdfBug:c=!1,pageColors:h=null}){this.callback=t;this.params=e;this.objs=s;this.commonObjs=n;this.annotationCanvasMap=i;this.operatorListIdx=null;this.operatorList=a;this._pageIndex=r;this.canvasFactory=o;this._pdfBug=c;this.pageColors=h;this.running=!1;this.graphicsReadyCallback=null;this.graphicsReady=!1;this._useRequestAnimationFrame=!0===l&&"undefined"!=typeof window;this.cancelled=!1;this.capability=(0,_util.createPromiseCapability)();this.task=new RenderTask(this);this._cancelBound=this.cancel.bind(this);this._continueBound=this._continue.bind(this);this._scheduleNextBound=this._scheduleNext.bind(this);this._nextBound=this._next.bind(this);this._canvas=e.canvasContext.canvas}get completed(){return this.capability.promise.catch((function(){}))}initializeGraphics({transparency:t=!1,optionalContentConfig:e}){if(this.cancelled)return;if(this._canvas){if(InternalRenderTask.#d.has(this._canvas))throw new Error("Cannot use the same canvas during multiple render() operations. Use different canvas or ensure previous operations were cancelled or completed.");InternalRenderTask.#d.add(this._canvas)}if(this._pdfBug&&globalThis.StepperManager?.enabled){this.stepper=globalThis.StepperManager.create(this._pageIndex);this.stepper.init(this.operatorList);this.stepper.nextBreakPoint=this.stepper.getNextBreakPoint()}const{canvasContext:s,viewport:n,transform:i,background:a}=this.params;this.gfx=new _canvas.CanvasGraphics(s,this.commonObjs,this.objs,this.canvasFactory,{optionalContentConfig:e},this.annotationCanvasMap,this.pageColors);this.gfx.beginDrawing({transform:i,viewport:n,transparency:t,background:a});this.operatorListIdx=0;this.graphicsReady=!0;this.graphicsReadyCallback?.()}cancel(t=null,e=0){this.running=!1;this.cancelled=!0;this.gfx?.endDrawing();this._canvas&&InternalRenderTask.#d.delete(this._canvas);this.callback(t||new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex+1}`,"canvas",e))}operatorListChanged(){if(this.graphicsReady){this.stepper?.updateOperatorList(this.operatorList);this.running||this._continue()}else this.graphicsReadyCallback||(this.graphicsReadyCallback=this._continueBound)}_continue(){this.running=!0;this.cancelled||(this.task.onContinue?this.task.onContinue(this._scheduleNextBound):this._scheduleNext())}_scheduleNext(){this._useRequestAnimationFrame?window.requestAnimationFrame((()=>{this._nextBound().catch(this._cancelBound)})):Promise.resolve().then(this._nextBound).catch(this._cancelBound)}async _next(){if(!this.cancelled){this.operatorListIdx=this.gfx.executeOperatorList(this.operatorList,this.operatorListIdx,this._continueBound,this.stepper);if(this.operatorListIdx===this.operatorList.argsArray.length){this.running=!1;if(this.operatorList.lastChunk){this.gfx.endDrawing();this._canvas&&InternalRenderTask.#d.delete(this._canvas);this.callback()}}}}}const version="3.3.122";exports.version=version;const build="562045607";exports.build=build},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.PrintAnnotationStorage=e.AnnotationStorage=void 0;var n=s(1),i=s(4),a=s(8);class AnnotationStorage{#u=!1;#p=new Map;constructor(){this.onSetModified=null;this.onResetModified=null;this.onAnnotationEditor=null}getValue(t,e){const s=this.#p.get(t);return void 0===s?e:Object.assign(e,s)}getRawValue(t){return this.#p.get(t)}remove(t){this.#p.delete(t);0===this.#p.size&&this.resetModified();if("function"==typeof this.onAnnotationEditor){for(const t of this.#p.values())if(t instanceof i.AnnotationEditor)return;this.onAnnotationEditor(null)}}setValue(t,e){const s=this.#p.get(t);let n=!1;if(void 0!==s){for(const[t,i]of Object.entries(e))if(s[t]!==i){n=!0;s[t]=i}}else{n=!0;this.#p.set(t,e)}n&&this.#g();e instanceof i.AnnotationEditor&&"function"==typeof this.onAnnotationEditor&&this.onAnnotationEditor(e.constructor._type)}has(t){return this.#p.has(t)}getAll(){return this.#p.size>0?(0,n.objectFromMap)(this.#p):null}get size(){return this.#p.size}#g(){if(!this.#u){this.#u=!0;"function"==typeof this.onSetModified&&this.onSetModified()}}resetModified(){if(this.#u){this.#u=!1;"function"==typeof this.onResetModified&&this.onResetModified()}}get print(){return new PrintAnnotationStorage(this)}get serializable(){if(0===this.#p.size)return null;const t=new Map;for(const[e,s]of this.#p){const n=s instanceof i.AnnotationEditor?s.serialize():s;n&&t.set(e,n)}return t}static getHash(t){if(!t)return"";const e=new a.MurmurHash3_64;for(const[s,n]of t)e.update(`${s}:${JSON.stringify(n)}`);return e.hexdigest()}}e.AnnotationStorage=AnnotationStorage;class PrintAnnotationStorage extends AnnotationStorage{#f=null;constructor(t){super();this.#f=structuredClone(t.serializable)}get print(){(0,n.unreachable)("Should not call PrintAnnotationStorage.print")}get serializable(){return this.#f}}e.PrintAnnotationStorage=PrintAnnotationStorage},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.AnnotationEditor=void 0;var n=s(5),i=s(1);class AnnotationEditor{#m=this.focusin.bind(this);#b=this.focusout.bind(this);#A=!1;#_=!1;#y=!1;_uiManager=null;#v=AnnotationEditor._zIndex++;static _colorManager=new n.ColorManager;static _zIndex=1;constructor(t){this.constructor===AnnotationEditor&&(0,i.unreachable)("Cannot initialize AnnotationEditor.");this.parent=t.parent;this.id=t.id;this.width=this.height=null;this.pageIndex=t.parent.pageIndex;this.name=t.name;this.div=null;this._uiManager=t.uiManager;const{rotation:e,rawDims:{pageWidth:s,pageHeight:n,pageX:a,pageY:r}}=this.parent.viewport;this.rotation=e;this.pageDimensions=[s,n];this.pageTranslation=[a,r];const[o,l]=this.parentDimensions;this.x=t.x/o;this.y=t.y/l;this.isAttachedToDOM=!1}static get _defaultLineColor(){return(0,i.shadow)(this,"_defaultLineColor",this._colorManager.getHexCode("CanvasText"))}addCommands(t){this._uiManager.addCommands(t)}get currentLayer(){return this._uiManager.currentLayer}setInBackground(){this.div.style.zIndex=0}setInForeground(){this.div.style.zIndex=this.#v}setParent(t){if(null!==t){this.pageIndex=t.pageIndex;this.pageDimensions=t.pageDimensions}this.parent=t}focusin(t){this.#A?this.#A=!1:this.parent.setSelected(this)}focusout(t){if(!this.isAttachedToDOM)return;if(!t.relatedTarget?.closest(`#${this.id}`)){t.preventDefault();this.parent?.isMultipleSelection||this.commitOrRemove()}}commitOrRemove(){this.isEmpty()?this.remove():this.commit()}commit(){this.addToAnnotationStorage()}addToAnnotationStorage(){this._uiManager.addToAnnotationStorage(this)}dragstart(t){const e=this.parent.div.getBoundingClientRect();this.startX=t.clientX-e.x;this.startY=t.clientY-e.y;t.dataTransfer.setData("text/plain",this.id);t.dataTransfer.effectAllowed="move"}setAt(t,e,s,n){const[i,a]=this.parentDimensions;[s,n]=this.screenToPageTranslation(s,n);this.x=(t+s)/i;this.y=(e+n)/a;this.div.style.left=100*this.x+"%";this.div.style.top=100*this.y+"%"}translate(t,e){const[s,n]=this.parentDimensions;[t,e]=this.screenToPageTranslation(t,e);this.x+=t/s;this.y+=e/n;this.div.style.left=100*this.x+"%";this.div.style.top=100*this.y+"%"}screenToPageTranslation(t,e){switch(this.parentRotation){case 90:return[e,-t];case 180:return[-t,-e];case 270:return[-e,t];default:return[t,e]}}get parentScale(){return this._uiManager.viewParameters.realScale}get parentRotation(){return this._uiManager.viewParameters.rotation}get parentDimensions(){const{realScale:t}=this._uiManager.viewParameters,[e,s]=this.pageDimensions;return[e*t,s*t]}setDims(t,e){const[s,n]=this.parentDimensions;this.div.style.width=100*t/s+"%";this.div.style.height=100*e/n+"%"}fixDims(){const{style:t}=this.div,{height:e,width:s}=t,n=s.endsWith("%"),i=e.endsWith("%");if(n&&i)return;const[a,r]=this.parentDimensions;n||(t.width=100*parseFloat(s)/a+"%");i||(t.height=100*parseFloat(e)/r+"%")}getInitialTranslation(){return[0,0]}render(){this.div=document.createElement("div");this.div.setAttribute("data-editor-rotation",(360-this.rotation)%360);this.div.className=this.name;this.div.setAttribute("id",this.id);this.div.setAttribute("tabIndex",0);this.setInForeground();this.div.addEventListener("focusin",this.#m);this.div.addEventListener("focusout",this.#b);const[t,e]=this.getInitialTranslation();this.translate(t,e);(0,n.bindEvents)(this,this.div,["dragstart","pointerdown"]);return this.div}pointerdown(t){const{isMac:e}=i.FeatureTest.platform;if(0!==t.button||t.ctrlKey&&e)t.preventDefault();else{t.ctrlKey&&!e||t.shiftKey||t.metaKey&&e?this.parent.toggleSelected(this):this.parent.setSelected(this);this.#A=!0}}getRect(t,e){const s=this.parentScale,[n,i]=this.pageDimensions,[a,r]=this.pageTranslation,o=t/s,l=e/s,c=this.x*n,h=this.y*i,d=this.width*n,u=this.height*i;switch(this.rotation){case 0:return[c+o+a,i-h-l-u+r,c+o+d+a,i-h-l+r];case 90:return[c+l+a,i-h+o+r,c+l+u+a,i-h+o+d+r];case 180:return[c-o-d+a,i-h+l+r,c-o+a,i-h+l+u+r];case 270:return[c-l-u+a,i-h-o-d+r,c-l+a,i-h-o+r];default:throw new Error("Invalid rotation")}}getRectInCurrentCoords(t,e){const[s,n,i,a]=t,r=i-s,o=a-n;switch(this.rotation){case 0:return[s,e-a,r,o];case 90:return[s,e-n,o,r];case 180:return[i,e-n,r,o];case 270:return[i,e-a,o,r];default:throw new Error("Invalid rotation")}}onceAdded(){}isEmpty(){return!1}enableEditMode(){this.#y=!0}disableEditMode(){this.#y=!1}isInEditMode(){return this.#y}shouldGetKeyboardEvents(){return!1}needsToBeRebuilt(){return this.div&&!this.isAttachedToDOM}rebuild(){this.div?.addEventListener("focusin",this.#m)}serialize(){(0,i.unreachable)("An editor must be serializable")}static deserialize(t,e,s){const n=new this.prototype.constructor({parent:e,id:e.getNextId(),uiManager:s});n.rotation=t.rotation;const[i,a]=n.pageDimensions,[r,o,l,c]=n.getRectInCurrentCoords(t.rect,a);n.x=r/i;n.y=o/a;n.width=l/i;n.height=c/a;return n}remove(){this.div.removeEventListener("focusin",this.#m);this.div.removeEventListener("focusout",this.#b);this.isEmpty()||this.commit();this.parent.remove(this)}select(){this.div?.classList.add("selectedEditor")}unselect(){this.div?.classList.remove("selectedEditor")}updateParams(t,e){}disableEditing(){}enableEditing(){}get propertiesToUpdate(){return{}}get contentDiv(){return this.div}get isEditing(){return this.#_}set isEditing(t){this.#_=t;if(t){this.parent.setSelected(this);this.parent.setActiveEditor(this)}else this.parent.setActiveEditor(null)}}e.AnnotationEditor=AnnotationEditor},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.KeyboardManager=e.CommandManager=e.ColorManager=e.AnnotationEditorUIManager=void 0;e.bindEvents=function bindEvents(t,e,s){for(const n of s)e.addEventListener(n,t[n].bind(t))};e.opacityToHex=function opacityToHex(t){return Math.round(Math.min(255,Math.max(1,255*t))).toString(16).padStart(2,"0")};var n=s(1),i=s(6);class IdManager{#S=0;getId(){return`${n.AnnotationEditorPrefix}${this.#S++}`}}class CommandManager{#x=[];#E=!1;#C;#P=-1;constructor(t=128){this.#C=t}add({cmd:t,undo:e,mustExec:s,type:n=NaN,overwriteIfSameType:i=!1,keepUndo:a=!1}){s&&t();if(this.#E)return;const r={cmd:t,undo:e,type:n};if(-1===this.#P){this.#x.length>0&&(this.#x.length=0);this.#P=0;this.#x.push(r);return}if(i&&this.#x[this.#P].type===n){a&&(r.undo=this.#x[this.#P].undo);this.#x[this.#P]=r;return}const o=this.#P+1;if(o===this.#C)this.#x.splice(0,1);else{this.#P=o;ot===e[s])))return ColorManager._colorsMapping.get(t);return e}getHexCode(t){const e=this._colors.get(t);return e?n.Util.makeHexColor(...e):t}}e.ColorManager=ColorManager;class AnnotationEditorUIManager{#w=null;#k=new Map;#F=new Map;#R=null;#M=new CommandManager;#D=0;#I=null;#O=new Set;#L=null;#N=new IdManager;#j=!1;#U=n.AnnotationEditorType.NONE;#B=new Set;#q=this.copy.bind(this);#W=this.cut.bind(this);#H=this.paste.bind(this);#G=this.keydown.bind(this);#z=this.onEditingAction.bind(this);#V=this.onPageChanging.bind(this);#X=this.onScaleChanging.bind(this);#$=this.onRotationChanging.bind(this);#Y={isEditing:!1,isEmpty:!0,hasSomethingToUndo:!1,hasSomethingToRedo:!1,hasSelectedEditor:!1};#K=null;static _keyboardManager=new KeyboardManager([[["ctrl+a","mac+meta+a"],AnnotationEditorUIManager.prototype.selectAll],[["ctrl+z","mac+meta+z"],AnnotationEditorUIManager.prototype.undo],[["ctrl+y","ctrl+shift+Z","mac+meta+shift+Z"],AnnotationEditorUIManager.prototype.redo],[["Backspace","alt+Backspace","ctrl+Backspace","shift+Backspace","mac+Backspace","mac+alt+Backspace","mac+ctrl+Backspace","Delete","ctrl+Delete","shift+Delete"],AnnotationEditorUIManager.prototype.delete],[["Escape","mac+Escape"],AnnotationEditorUIManager.prototype.unselectAll]]);constructor(t,e,s){this.#K=t;this.#L=e;this.#L._on("editingaction",this.#z);this.#L._on("pagechanging",this.#V);this.#L._on("scalechanging",this.#X);this.#L._on("rotationchanging",this.#$);this.#R=s;this.viewParameters={realScale:i.PixelsPerInch.PDF_TO_CSS_UNITS,rotation:0}}destroy(){this.#J();this.#L._off("editingaction",this.#z);this.#L._off("pagechanging",this.#V);this.#L._off("scalechanging",this.#X);this.#L._off("rotationchanging",this.#$);for(const t of this.#F.values())t.destroy();this.#F.clear();this.#k.clear();this.#O.clear();this.#w=null;this.#B.clear();this.#M.destroy()}onPageChanging({pageNumber:t}){this.#D=t-1}focusMainContainer(){this.#K.focus()}addShouldRescale(t){this.#O.add(t)}removeShouldRescale(t){this.#O.delete(t)}onScaleChanging({scale:t}){this.commitOrRemove();this.viewParameters.realScale=t*i.PixelsPerInch.PDF_TO_CSS_UNITS;for(const t of this.#O)t.onScaleChanging()}onRotationChanging({pagesRotation:t}){this.commitOrRemove();this.viewParameters.rotation=t}addToAnnotationStorage(t){t.isEmpty()||!this.#R||this.#R.has(t.id)||this.#R.setValue(t.id,t)}#Q(){this.#K.addEventListener("keydown",this.#G)}#J(){this.#K.removeEventListener("keydown",this.#G)}#Z(){document.addEventListener("copy",this.#q);document.addEventListener("cut",this.#W);document.addEventListener("paste",this.#H)}#tt(){document.removeEventListener("copy",this.#q);document.removeEventListener("cut",this.#W);document.removeEventListener("paste",this.#H)}copy(t){t.preventDefault();this.#w&&this.#w.commitOrRemove();if(!this.hasSelection)return;const e=[];for(const t of this.#B)t.isEmpty()||e.push(t.serialize());0!==e.length&&t.clipboardData.setData("application/pdfjs",JSON.stringify(e))}cut(t){this.copy(t);this.delete()}paste(t){t.preventDefault();let e=t.clipboardData.getData("application/pdfjs");if(!e)return;try{e=JSON.parse(e)}catch(t){(0,n.warn)(`paste: "${t.message}".`);return}if(!Array.isArray(e))return;this.unselectAll();const s=this.#F.get(this.#D);try{const t=[];for(const n of e){const e=s.deserialize(n);if(!e)return;t.push(e)}const cmd=()=>{for(const e of t)this.#et(e);this.#st(t)},undo=()=>{for(const e of t)e.remove()};this.addCommands({cmd:cmd,undo:undo,mustExec:!0})}catch(t){(0,n.warn)(`paste: "${t.message}".`)}}keydown(t){this.getActive()?.shouldGetKeyboardEvents()||AnnotationEditorUIManager._keyboardManager.exec(this,t)}onEditingAction(t){["undo","redo","delete","selectAll"].includes(t.name)&&this[t.name]()}#nt(t){Object.entries(t).some((([t,e])=>this.#Y[t]!==e))&&this.#L.dispatch("annotationeditorstateschanged",{source:this,details:Object.assign(this.#Y,t)})}#it(t){this.#L.dispatch("annotationeditorparamschanged",{source:this,details:t})}setEditingState(t){if(t){this.#Q();this.#Z();this.#nt({isEditing:this.#U!==n.AnnotationEditorType.NONE,isEmpty:this.#at(),hasSomethingToUndo:this.#M.hasSomethingToUndo(),hasSomethingToRedo:this.#M.hasSomethingToRedo(),hasSelectedEditor:!1})}else{this.#J();this.#tt();this.#nt({isEditing:!1})}}registerEditorTypes(t){if(!this.#I){this.#I=t;for(const t of this.#I)this.#it(t.defaultPropertiesToUpdate)}}getId(){return this.#N.getId()}get currentLayer(){return this.#F.get(this.#D)}get currentPageIndex(){return this.#D}addLayer(t){this.#F.set(t.pageIndex,t);this.#j?t.enable():t.disable()}removeLayer(t){this.#F.delete(t.pageIndex)}updateMode(t){this.#U=t;if(t===n.AnnotationEditorType.NONE){this.setEditingState(!1);this.#rt()}else{this.setEditingState(!0);this.#ot();for(const e of this.#F.values())e.updateMode(t)}}updateToolbar(t){t!==this.#U&&this.#L.dispatch("switchannotationeditormode",{source:this,mode:t})}updateParams(t,e){if(this.#I){for(const s of this.#B)s.updateParams(t,e);for(const s of this.#I)s.updateDefaultParams(t,e)}}#ot(){if(!this.#j){this.#j=!0;for(const t of this.#F.values())t.enable()}}#rt(){this.unselectAll();if(this.#j){this.#j=!1;for(const t of this.#F.values())t.disable()}}getEditors(t){const e=[];for(const s of this.#k.values())s.pageIndex===t&&e.push(s);return e}getEditor(t){return this.#k.get(t)}addEditor(t){this.#k.set(t.id,t)}removeEditor(t){this.#k.delete(t.id);this.unselect(t);this.#R?.remove(t.id)}#et(t){const e=this.#F.get(t.pageIndex);e?e.addOrRebuild(t):this.addEditor(t)}setActiveEditor(t){if(this.#w!==t){this.#w=t;t&&this.#it(t.propertiesToUpdate)}}toggleSelected(t){if(this.#B.has(t)){this.#B.delete(t);t.unselect();this.#nt({hasSelectedEditor:this.hasSelection})}else{this.#B.add(t);t.select();this.#it(t.propertiesToUpdate);this.#nt({hasSelectedEditor:!0})}}setSelected(t){for(const e of this.#B)e!==t&&e.unselect();this.#B.clear();this.#B.add(t);t.select();this.#it(t.propertiesToUpdate);this.#nt({hasSelectedEditor:!0})}isSelected(t){return this.#B.has(t)}unselect(t){t.unselect();this.#B.delete(t);this.#nt({hasSelectedEditor:this.hasSelection})}get hasSelection(){return 0!==this.#B.size}undo(){this.#M.undo();this.#nt({hasSomethingToUndo:this.#M.hasSomethingToUndo(),hasSomethingToRedo:!0,isEmpty:this.#at()})}redo(){this.#M.redo();this.#nt({hasSomethingToUndo:!0,hasSomethingToRedo:this.#M.hasSomethingToRedo(),isEmpty:this.#at()})}addCommands(t){this.#M.add(t);this.#nt({hasSomethingToUndo:!0,hasSomethingToRedo:!1,isEmpty:this.#at()})}#at(){if(0===this.#k.size)return!0;if(1===this.#k.size)for(const t of this.#k.values())return t.isEmpty();return!1}delete(){this.commitOrRemove();if(!this.hasSelection)return;const t=[...this.#B];this.addCommands({cmd:()=>{for(const e of t)e.remove()},undo:()=>{for(const e of t)this.#et(e)},mustExec:!0})}commitOrRemove(){this.#w?.commitOrRemove()}#st(t){this.#B.clear();for(const e of t)if(!e.isEmpty()){this.#B.add(e);e.select()}this.#nt({hasSelectedEditor:!0})}selectAll(){for(const t of this.#B)t.commit();this.#st(this.#k.values())}unselectAll(){if(this.#w)this.#w.commitOrRemove();else if(0!==this.#B.size){for(const t of this.#B)t.unselect();this.#B.clear();this.#nt({hasSelectedEditor:!1})}}isActive(t){return this.#w===t}getActive(){return this.#w}getMode(){return this.#U}}e.AnnotationEditorUIManager=AnnotationEditorUIManager},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.StatTimer=e.RenderingCancelledException=e.PixelsPerInch=e.PageViewport=e.PDFDateString=e.DOMStandardFontDataFactory=e.DOMSVGFactory=e.DOMCanvasFactory=e.DOMCMapReaderFactory=e.AnnotationPrefix=void 0;e.deprecated=function deprecated(t){console.log("Deprecated API usage: "+t)};e.getColorValues=function getColorValues(t){const e=document.createElement("span");e.style.visibility="hidden";document.body.append(e);for(const s of t.keys()){e.style.color=s;const n=window.getComputedStyle(e).color;t.set(s,getRGB(n))}e.remove()};e.getCurrentTransform=function getCurrentTransform(t){const{a:e,b:s,c:n,d:i,e:a,f:r}=t.getTransform();return[e,s,n,i,a,r]};e.getCurrentTransformInverse=function getCurrentTransformInverse(t){const{a:e,b:s,c:n,d:i,e:a,f:r}=t.getTransform().invertSelf();return[e,s,n,i,a,r]};e.getFilenameFromUrl=function getFilenameFromUrl(t,e=!1){e||([t]=t.split(/[#?]/,1));return t.substring(t.lastIndexOf("/")+1)};e.getPdfFilenameFromUrl=function getPdfFilenameFromUrl(t,e="document.pdf"){if("string"!=typeof t)return e;if(isDataScheme(t)){(0,i.warn)('getPdfFilenameFromUrl: ignore "data:"-URL for performance reasons.');return e}const s=/[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i,n=/^(?:(?:[^:]+:)?\/\/[^/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/.exec(t);let a=s.exec(n[1])||s.exec(n[2])||s.exec(n[3]);if(a){a=a[0];if(a.includes("%"))try{a=s.exec(decodeURIComponent(a))[0]}catch(t){}}return a||e};e.getRGB=getRGB;e.getXfaPageViewport=function getXfaPageViewport(t,{scale:e=1,rotation:s=0}){const{width:n,height:i}=t.attributes.style,a=[0,0,parseInt(n),parseInt(i)];return new PageViewport({viewBox:a,scale:e,rotation:s})};e.isDataScheme=isDataScheme;e.isPdfFile=function isPdfFile(t){return"string"==typeof t&&/\.pdf$/i.test(t)};e.isValidFetchUrl=isValidFetchUrl;e.loadScript=function loadScript(t,e=!1){return new Promise(((s,n)=>{const i=document.createElement("script");i.src=t;i.onload=function(t){e&&i.remove();s(t)};i.onerror=function(){n(new Error(`Cannot load script at: ${i.src}`))};(document.head||document.documentElement).append(i)}))};e.setLayerDimensions=function setLayerDimensions(t,e,s=!1,n=!0){if(e instanceof PageViewport){const{pageWidth:n,pageHeight:i}=e.rawDims,{style:a}=t,r=`calc(var(--scale-factor) * ${n}px)`,o=`calc(var(--scale-factor) * ${i}px)`;if(s&&e.rotation%180!=0){a.width=o;a.height=r}else{a.width=r;a.height=o}}n&&t.setAttribute("data-main-rotation",e.rotation)};var n=s(7),i=s(1);e.AnnotationPrefix="pdfjs_internal_id_";class PixelsPerInch{static CSS=96;static PDF=72;static PDF_TO_CSS_UNITS=this.CSS/this.PDF}e.PixelsPerInch=PixelsPerInch;class DOMCanvasFactory extends n.BaseCanvasFactory{constructor({ownerDocument:t=globalThis.document}={}){super();this._document=t}_createCanvas(t,e){const s=this._document.createElement("canvas");s.width=t;s.height=e;return s}}e.DOMCanvasFactory=DOMCanvasFactory;async function fetchData(t,e=!1){if(isValidFetchUrl(t,document.baseURI)){const s=await fetch(t);if(!s.ok)throw new Error(s.statusText);return e?new Uint8Array(await s.arrayBuffer()):(0,i.stringToBytes)(await s.text())}return new Promise(((s,n)=>{const a=new XMLHttpRequest;a.open("GET",t,!0);e&&(a.responseType="arraybuffer");a.onreadystatechange=()=>{if(a.readyState===XMLHttpRequest.DONE){if(200===a.status||0===a.status){let t;e&&a.response?t=new Uint8Array(a.response):!e&&a.responseText&&(t=(0,i.stringToBytes)(a.responseText));if(t){s(t);return}}n(new Error(a.statusText))}};a.send(null)}))}class DOMCMapReaderFactory extends n.BaseCMapReaderFactory{_fetchData(t,e){return fetchData(t,this.isCompressed).then((t=>({cMapData:t,compressionType:e})))}}e.DOMCMapReaderFactory=DOMCMapReaderFactory;class DOMStandardFontDataFactory extends n.BaseStandardFontDataFactory{_fetchData(t){return fetchData(t,!0)}}e.DOMStandardFontDataFactory=DOMStandardFontDataFactory;class DOMSVGFactory extends n.BaseSVGFactory{_createSVG(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}}e.DOMSVGFactory=DOMSVGFactory;class PageViewport{constructor({viewBox:t,scale:e,rotation:s,offsetX:n=0,offsetY:i=0,dontFlip:a=!1}){this.viewBox=t;this.scale=e;this.rotation=s;this.offsetX=n;this.offsetY=i;const r=(t[2]+t[0])/2,o=(t[3]+t[1])/2;let l,c,h,d,u,p,g,f;(s%=360)<0&&(s+=360);switch(s){case 180:l=-1;c=0;h=0;d=1;break;case 90:l=0;c=1;h=1;d=0;break;case 270:l=0;c=-1;h=-1;d=0;break;case 0:l=1;c=0;h=0;d=-1;break;default:throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.")}if(a){h=-h;d=-d}if(0===l){u=Math.abs(o-t[1])*e+n;p=Math.abs(r-t[0])*e+i;g=(t[3]-t[1])*e;f=(t[2]-t[0])*e}else{u=Math.abs(r-t[0])*e+n;p=Math.abs(o-t[1])*e+i;g=(t[2]-t[0])*e;f=(t[3]-t[1])*e}this.transform=[l*e,c*e,h*e,d*e,u-l*e*r-h*e*o,p-c*e*r-d*e*o];this.width=g;this.height=f}get rawDims(){const{viewBox:t}=this;return(0,i.shadow)(this,"rawDims",{pageWidth:t[2]-t[0],pageHeight:t[3]-t[1],pageX:t[0],pageY:t[1]})}clone({scale:t=this.scale,rotation:e=this.rotation,offsetX:s=this.offsetX,offsetY:n=this.offsetY,dontFlip:i=!1}={}){return new PageViewport({viewBox:this.viewBox.slice(),scale:t,rotation:e,offsetX:s,offsetY:n,dontFlip:i})}convertToViewportPoint(t,e){return i.Util.applyTransform([t,e],this.transform)}convertToViewportRectangle(t){const e=i.Util.applyTransform([t[0],t[1]],this.transform),s=i.Util.applyTransform([t[2],t[3]],this.transform);return[e[0],e[1],s[0],s[1]]}convertToPdfPoint(t,e){return i.Util.applyInverseTransform([t,e],this.transform)}}e.PageViewport=PageViewport;class RenderingCancelledException extends i.BaseException{constructor(t,e,s=0){super(t,"RenderingCancelledException");this.type=e;this.extraDelay=s}}e.RenderingCancelledException=RenderingCancelledException;function isDataScheme(t){const e=t.length;let s=0;for(;s=1&&n<=12?n-1:0;let i=parseInt(e[3],10);i=i>=1&&i<=31?i:1;let r=parseInt(e[4],10);r=r>=0&&r<=23?r:0;let o=parseInt(e[5],10);o=o>=0&&o<=59?o:0;let l=parseInt(e[6],10);l=l>=0&&l<=59?l:0;const c=e[7]||"Z";let h=parseInt(e[8],10);h=h>=0&&h<=23?h:0;let d=parseInt(e[9],10)||0;d=d>=0&&d<=59?d:0;if("-"===c){r+=h;o+=d}else if("+"===c){r-=h;o-=d}return new Date(Date.UTC(s,n,i,r,o,l))}};function getRGB(t){if(t.startsWith("#")){const e=parseInt(t.slice(1),16);return[(16711680&e)>>16,(65280&e)>>8,255&e]}if(t.startsWith("rgb("))return t.slice(4,-1).split(",").map((t=>parseInt(t)));if(t.startsWith("rgba("))return t.slice(5,-1).split(",").map((t=>parseInt(t))).slice(0,3);(0,i.warn)(`Not a valid color format: "${t}"`);return[0,0,0]}},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.BaseStandardFontDataFactory=e.BaseSVGFactory=e.BaseCanvasFactory=e.BaseCMapReaderFactory=void 0;var n=s(1);class BaseCanvasFactory{constructor(){this.constructor===BaseCanvasFactory&&(0,n.unreachable)("Cannot initialize BaseCanvasFactory.")}create(t,e){if(t<=0||e<=0)throw new Error("Invalid canvas size");const s=this._createCanvas(t,e);return{canvas:s,context:s.getContext("2d")}}reset(t,e,s){if(!t.canvas)throw new Error("Canvas is not specified");if(e<=0||s<=0)throw new Error("Invalid canvas size");t.canvas.width=e;t.canvas.height=s}destroy(t){if(!t.canvas)throw new Error("Canvas is not specified");t.canvas.width=0;t.canvas.height=0;t.canvas=null;t.context=null}_createCanvas(t,e){(0,n.unreachable)("Abstract method `_createCanvas` called.")}}e.BaseCanvasFactory=BaseCanvasFactory;class BaseCMapReaderFactory{constructor({baseUrl:t=null,isCompressed:e=!1}){this.constructor===BaseCMapReaderFactory&&(0,n.unreachable)("Cannot initialize BaseCMapReaderFactory.");this.baseUrl=t;this.isCompressed=e}async fetch({name:t}){if(!this.baseUrl)throw new Error('The CMap "baseUrl" parameter must be specified, ensure that the "cMapUrl" and "cMapPacked" API parameters are provided.');if(!t)throw new Error("CMap name must be specified.");const e=this.baseUrl+t+(this.isCompressed?".bcmap":""),s=this.isCompressed?n.CMapCompressionType.BINARY:n.CMapCompressionType.NONE;return this._fetchData(e,s).catch((t=>{throw new Error(`Unable to load ${this.isCompressed?"binary ":""}CMap at: ${e}`)}))}_fetchData(t,e){(0,n.unreachable)("Abstract method `_fetchData` called.")}}e.BaseCMapReaderFactory=BaseCMapReaderFactory;class BaseStandardFontDataFactory{constructor({baseUrl:t=null}){this.constructor===BaseStandardFontDataFactory&&(0,n.unreachable)("Cannot initialize BaseStandardFontDataFactory.");this.baseUrl=t}async fetch({filename:t}){if(!this.baseUrl)throw new Error('The standard font "baseUrl" parameter must be specified, ensure that the "standardFontDataUrl" API parameter is provided.');if(!t)throw new Error("Font filename must be specified.");const e=`${this.baseUrl}${t}`;return this._fetchData(e).catch((t=>{throw new Error(`Unable to load font data at: ${e}`)}))}_fetchData(t){(0,n.unreachable)("Abstract method `_fetchData` called.")}}e.BaseStandardFontDataFactory=BaseStandardFontDataFactory;class BaseSVGFactory{constructor(){this.constructor===BaseSVGFactory&&(0,n.unreachable)("Cannot initialize BaseSVGFactory.")}create(t,e,s=!1){if(t<=0||e<=0)throw new Error("Invalid SVG dimensions");const n=this._createSVG("svg:svg");n.setAttribute("version","1.1");if(!s){n.setAttribute("width",`${t}px`);n.setAttribute("height",`${e}px`)}n.setAttribute("preserveAspectRatio","none");n.setAttribute("viewBox",`0 0 ${t} ${e}`);return n}createElement(t){if("string"!=typeof t)throw new Error("Invalid SVG element type");return this._createSVG(t)}_createSVG(t){(0,n.unreachable)("Abstract method `_createSVG` called.")}}e.BaseSVGFactory=BaseSVGFactory},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.MurmurHash3_64=void 0;var n=s(1);const i=3285377520,a=4294901760,r=65535;e.MurmurHash3_64=class MurmurHash3_64{constructor(t){this.h1=t?4294967295&t:i;this.h2=t?4294967295&t:i}update(t){let e,s;if("string"==typeof t){e=new Uint8Array(2*t.length);s=0;for(let n=0,i=t.length;n>>8;e[s++]=255&i}}}else{if(!(0,n.isArrayBuffer)(t))throw new Error("Wrong data format in MurmurHash3_64_update. Input must be a string or array.");e=t.slice();s=e.byteLength}const i=s>>2,o=s-4*i,l=new Uint32Array(e.buffer,0,i);let c=0,h=0,d=this.h1,u=this.h2;const p=3432918353,g=461845907,f=11601,m=13715;for(let t=0;t>>17;c=c*g&a|c*m&r;d^=c;d=d<<13|d>>>19;d=5*d+3864292196}else{h=l[t];h=h*p&a|h*f&r;h=h<<15|h>>>17;h=h*g&a|h*m&r;u^=h;u=u<<13|u>>>19;u=5*u+3864292196}c=0;switch(o){case 3:c^=e[4*i+2]<<16;case 2:c^=e[4*i+1]<<8;case 1:c^=e[4*i];c=c*p&a|c*f&r;c=c<<15|c>>>17;c=c*g&a|c*m&r;1&i?d^=c:u^=c}this.h1=d;this.h2=u}hexdigest(){let t=this.h1,e=this.h2;t^=e>>>1;t=3981806797*t&a|36045*t&r;e=4283543511*e&a|(2950163797*(e<<16|t>>>16)&a)>>>16;t^=e>>>1;t=444984403*t&a|60499*t&r;e=3301882366*e&a|(3120437893*(e<<16|t>>>16)&a)>>>16;t^=e>>>1;return(t>>>0).toString(16).padStart(8,"0")+(e>>>0).toString(16).padStart(8,"0")}}},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.FontLoader=e.FontFaceObject=void 0;var n=s(1),i=s(10);e.FontLoader=class FontLoader{constructor({onUnsupportedFeature:t,ownerDocument:e=globalThis.document,styleElement:s=null}){this._onUnsupportedFeature=t;this._document=e;this.nativeFontFaces=[];this.styleElement=null;this.loadingRequests=[];this.loadTestFontId=0}addNativeFontFace(t){this.nativeFontFaces.push(t);this._document.fonts.add(t)}insertRule(t){if(!this.styleElement){this.styleElement=this._document.createElement("style");this._document.documentElement.getElementsByTagName("head")[0].append(this.styleElement)}const e=this.styleElement.sheet;e.insertRule(t,e.cssRules.length)}clear(){for(const t of this.nativeFontFaces)this._document.fonts.delete(t);this.nativeFontFaces.length=0;if(this.styleElement){this.styleElement.remove();this.styleElement=null}}async bind(t){if(t.attached||t.missingFile)return;t.attached=!0;if(this.isFontLoadingAPISupported){const e=t.createNativeFontFace();if(e){this.addNativeFontFace(e);try{await e.loaded}catch(s){this._onUnsupportedFeature({featureId:n.UNSUPPORTED_FEATURES.errorFontLoadNative});(0,n.warn)(`Failed to load font '${e.family}': '${s}'.`);t.disableFontFace=!0;throw s}}return}const e=t.createFontFaceRule();if(e){this.insertRule(e);if(this.isSyncFontLoadingSupported)return;await new Promise((e=>{const s=this._queueLoadingCallback(e);this._prepareFontLoadEvent(t,s)}))}}get isFontLoadingAPISupported(){const t=!!this._document?.fonts;return(0,n.shadow)(this,"isFontLoadingAPISupported",t)}get isSyncFontLoadingSupported(){let t=!1;(i.isNodeJS||"undefined"!=typeof navigator&&/Mozilla\/5.0.*?rv:\d+.*? Gecko/.test(navigator.userAgent))&&(t=!0);return(0,n.shadow)(this,"isSyncFontLoadingSupported",t)}_queueLoadingCallback(t){const{loadingRequests:e}=this,s={done:!1,complete:function completeRequest(){(0,n.assert)(!s.done,"completeRequest() cannot be called twice.");s.done=!0;for(;e.length>0&&e[0].done;){const t=e.shift();setTimeout(t.callback,0)}},callback:t};e.push(s);return s}get _loadTestFont(){const t=atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==");return(0,n.shadow)(this,"_loadTestFont",t)}_prepareFontLoadEvent(t,e){function int32(t,e){return t.charCodeAt(e)<<24|t.charCodeAt(e+1)<<16|t.charCodeAt(e+2)<<8|255&t.charCodeAt(e+3)}function spliceString(t,e,s,n){return t.substring(0,e)+n+t.substring(e+s)}let s,i;const a=this._document.createElement("canvas");a.width=1;a.height=1;const r=a.getContext("2d");let o=0;const l=`lt${Date.now()}${this.loadTestFontId++}`;let c=this._loadTestFont;c=spliceString(c,976,l.length,l);const h=1482184792;let d=int32(c,16);for(s=0,i=l.length-3;s30){(0,n.warn)("Load test font never loaded.");e();return}r.font="30px "+t;r.fillText(".",0,20);r.getImageData(0,0,1,1).data[3]>0?e():setTimeout(isFontReady.bind(null,t,e))}(l,(()=>{p.remove();e.complete()}))}};e.FontFaceObject=class FontFaceObject{constructor(t,{isEvalSupported:e=!0,disableFontFace:s=!1,ignoreErrors:n=!1,onUnsupportedFeature:i,fontRegistry:a=null}){this.compiledGlyphs=Object.create(null);for(const e in t)this[e]=t[e];this.isEvalSupported=!1!==e;this.disableFontFace=!0===s;this.ignoreErrors=!0===n;this._onUnsupportedFeature=i;this.fontRegistry=a}createNativeFontFace(){if(!this.data||this.disableFontFace)return null;let t;if(this.cssFontInfo){const e={weight:this.cssFontInfo.fontWeight};this.cssFontInfo.italicAngle&&(e.style=`oblique ${this.cssFontInfo.italicAngle}deg`);t=new FontFace(this.cssFontInfo.fontFamily,this.data,e)}else t=new FontFace(this.loadedName,this.data,{});this.fontRegistry?.registerFont(this);return t}createFontFaceRule(){if(!this.data||this.disableFontFace)return null;const t=(0,n.bytesToString)(this.data),e=`url(data:${this.mimetype};base64,${btoa(t)});`;let s;if(this.cssFontInfo){let t=`font-weight: ${this.cssFontInfo.fontWeight};`;this.cssFontInfo.italicAngle&&(t+=`font-style: oblique ${this.cssFontInfo.italicAngle}deg;`);s=`@font-face {font-family:"${this.cssFontInfo.fontFamily}";${t}src:${e}}`}else s=`@font-face {font-family:"${this.loadedName}";src:${e}}`;this.fontRegistry?.registerFont(this,e);return s}getPathGenerator(t,e){if(void 0!==this.compiledGlyphs[e])return this.compiledGlyphs[e];let s;try{s=t.get(this.loadedName+"_path_"+e)}catch(t){if(!this.ignoreErrors)throw t;this._onUnsupportedFeature({featureId:n.UNSUPPORTED_FEATURES.errorFontGetPath});(0,n.warn)(`getPathGenerator - ignoring character: "${t}".`);return this.compiledGlyphs[e]=function(t,e){}}if(this.isEvalSupported&&n.FeatureTest.isEvalSupported){const t=[];for(const e of s){const s=void 0!==e.args?e.args.join(","):"";t.push("c.",e.cmd,"(",s,");\n")}return this.compiledGlyphs[e]=new Function("c","size",t.join(""))}return this.compiledGlyphs[e]=function(t,e){for(const n of s){"scale"===n.cmd&&(n.args=[e,-e]);t[n.cmd].apply(t,n.args)}}}}},(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0});e.isNodeJS=void 0;const s=!("object"!=typeof process||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&"browser"!==process.type);e.isNodeJS=s},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.CanvasGraphics=void 0;var n=s(1),i=s(6),a=s(12),r=s(13);const o=4096,l=16;class CachedCanvases{constructor(t){this.canvasFactory=t;this.cache=Object.create(null)}getCanvas(t,e,s){let n;if(void 0!==this.cache[t]){n=this.cache[t];this.canvasFactory.reset(n,e,s)}else{n=this.canvasFactory.create(e,s);this.cache[t]=n}return n}delete(t){delete this.cache[t]}clear(){for(const t in this.cache){const e=this.cache[t];this.canvasFactory.destroy(e);delete this.cache[t]}}}function drawImageAtIntegerCoords(t,e,s,n,a,r,o,l,c,h){const[d,u,p,g,f,m]=(0,i.getCurrentTransform)(t);if(0===u&&0===p){const i=o*d+f,b=Math.round(i),A=l*g+m,_=Math.round(A),y=(o+c)*d+f,v=Math.abs(Math.round(y)-b)||1,S=(l+h)*g+m,x=Math.abs(Math.round(S)-_)||1;t.setTransform(Math.sign(d),0,0,Math.sign(g),b,_);t.drawImage(e,s,n,a,r,0,0,v,x);t.setTransform(d,u,p,g,f,m);return[v,x]}if(0===d&&0===g){const i=l*p+f,b=Math.round(i),A=o*u+m,_=Math.round(A),y=(l+h)*p+f,v=Math.abs(Math.round(y)-b)||1,S=(o+c)*u+m,x=Math.abs(Math.round(S)-_)||1;t.setTransform(0,Math.sign(u),Math.sign(p),0,b,_);t.drawImage(e,s,n,a,r,0,0,x,v);t.setTransform(d,u,p,g,f,m);return[x,v]}t.drawImage(e,s,n,a,r,o,l,c,h);return[Math.hypot(d,u)*c,Math.hypot(p,g)*h]}class CanvasExtraState{constructor(t,e){this.alphaIsShape=!1;this.fontSize=0;this.fontSizeScale=1;this.textMatrix=n.IDENTITY_MATRIX;this.textMatrixScale=1;this.fontMatrix=n.FONT_IDENTITY_MATRIX;this.leading=0;this.x=0;this.y=0;this.lineX=0;this.lineY=0;this.charSpacing=0;this.wordSpacing=0;this.textHScale=1;this.textRenderingMode=n.TextRenderingMode.FILL;this.textRise=0;this.fillColor="#000000";this.strokeColor="#000000";this.patternFill=!1;this.fillAlpha=1;this.strokeAlpha=1;this.lineWidth=1;this.activeSMask=null;this.transferMaps=null;this.startNewPathAndClipBox([0,0,t,e])}clone(){const t=Object.create(this);t.clipBox=this.clipBox.slice();return t}setCurrentPoint(t,e){this.x=t;this.y=e}updatePathMinMax(t,e,s){[e,s]=n.Util.applyTransform([e,s],t);this.minX=Math.min(this.minX,e);this.minY=Math.min(this.minY,s);this.maxX=Math.max(this.maxX,e);this.maxY=Math.max(this.maxY,s)}updateRectMinMax(t,e){const s=n.Util.applyTransform(e,t),i=n.Util.applyTransform(e.slice(2),t);this.minX=Math.min(this.minX,s[0],i[0]);this.minY=Math.min(this.minY,s[1],i[1]);this.maxX=Math.max(this.maxX,s[0],i[0]);this.maxY=Math.max(this.maxY,s[1],i[1])}updateScalingPathMinMax(t,e){n.Util.scaleMinMax(t,e);this.minX=Math.min(this.minX,e[0]);this.maxX=Math.max(this.maxX,e[1]);this.minY=Math.min(this.minY,e[2]);this.maxY=Math.max(this.maxY,e[3])}updateCurvePathMinMax(t,e,s,i,a,r,o,l,c,h){const d=n.Util.bezierBoundingBox(e,s,i,a,r,o,l,c);if(h){h[0]=Math.min(h[0],d[0],d[2]);h[1]=Math.max(h[1],d[0],d[2]);h[2]=Math.min(h[2],d[1],d[3]);h[3]=Math.max(h[3],d[1],d[3])}else this.updateRectMinMax(t,d)}getPathBoundingBox(t=a.PathType.FILL,e=null){const s=[this.minX,this.minY,this.maxX,this.maxY];if(t===a.PathType.STROKE){e||(0,n.unreachable)("Stroke bounding box must include transform.");const t=n.Util.singularValueDecompose2dScale(e),i=t[0]*this.lineWidth/2,a=t[1]*this.lineWidth/2;s[0]-=i;s[1]-=a;s[2]+=i;s[3]+=a}return s}updateClipFromPath(){const t=n.Util.intersect(this.clipBox,this.getPathBoundingBox());this.startNewPathAndClipBox(t||[0,0,0,0])}isEmptyClip(){return this.minX===1/0}startNewPathAndClipBox(t){this.clipBox=t;this.minX=1/0;this.minY=1/0;this.maxX=0;this.maxY=0}getClippedPathBoundingBox(t=a.PathType.FILL,e=null){return n.Util.intersect(this.clipBox,this.getPathBoundingBox(t,e))}}function putBinaryImageData(t,e,s=null){if("undefined"!=typeof ImageData&&e instanceof ImageData){t.putImageData(e,0,0);return}const i=e.height,a=e.width,r=i%l,o=(i-r)/l,c=0===r?o:o+1,h=t.createImageData(a,l);let d,u=0;const p=e.data,g=h.data;let f,m,b,A,_,y,v,S;if(s)switch(s.length){case 1:_=s[0];y=s[0];v=s[0];S=s[0];break;case 4:_=s[0];y=s[1];v=s[2];S=s[3]}if(e.kind===n.ImageKind.GRAYSCALE_1BPP){const e=p.byteLength,s=new Uint32Array(g.buffer,0,g.byteLength>>2),i=s.length,A=a+7>>3;let _=4294967295,y=n.FeatureTest.isLittleEndian?4278190080:255;S&&255===S[0]&&0===S[255]&&([_,y]=[y,_]);for(f=0;fA?a:8*t-7,r=-8&i;let o=0,l=0;for(;n>=1}}for(;d=o){b=r;A=a*b}d=0;for(m=A;m--;){g[d++]=p[u++];g[d++]=p[u++];g[d++]=p[u++];g[d++]=255}if(e)for(let t=0;t>8;t[a-2]=t[a-2]*i+s*r>>8;t[a-1]=t[a-1]*i+n*r>>8}}}function composeSMaskAlpha(t,e,s){const n=t.length;for(let i=3;i>8]>>8:e[i]*n>>16}}function composeSMask(t,e,s,n){const i=n[0],a=n[1],r=n[2]-i,o=n[3]-a;if(0!==r&&0!==o){!function genericComposeSMask(t,e,s,n,i,a,r,o,l,c,h){const d=!!a,u=d?a[0]:0,p=d?a[1]:0,g=d?a[2]:0;let f;f="Luminosity"===i?composeSMaskLuminosity:composeSMaskAlpha;const m=Math.min(n,Math.ceil(1048576/s));for(let i=0;i(t/=255)<=.03928?t/12.92:((t+.055)/1.055)**2.4,o=Math.round(.2126*newComp(s)+.7152*newComp(a)+.0722*newComp(r));this.selectColor=(s,n,i)=>{const a=.2126*newComp(s)+.7152*newComp(n)+.0722*newComp(i);return Math.round(a)===o?e:t}}}this.ctx.fillStyle=this.backgroundColor||o;this.ctx.fillRect(0,0,a,r);this.ctx.restore();if(s){const t=this.cachedCanvases.getCanvas("transparent",a,r);this.compositeCtx=this.ctx;this.transparentCanvas=t.canvas;this.ctx=t.context;this.ctx.save();this.ctx.transform(...(0,i.getCurrentTransform)(this.compositeCtx))}this.ctx.save();resetCtxToDefault(this.ctx,this.foregroundColor);if(t){this.ctx.transform(...t);this.outputScaleX=t[0];this.outputScaleY=t[0]}this.ctx.transform(...e.transform);this.viewportScale=e.scale;this.baseTransform=(0,i.getCurrentTransform)(this.ctx)}executeOperatorList(t,e,s,i){const a=t.argsArray,r=t.fnArray;let o=e||0;const l=a.length;if(l===o)return o;const c=l-o>10&&"function"==typeof s,h=c?Date.now()+15:0;let d=0;const u=this.commonObjs,p=this.objs;let g;for(;;){if(void 0!==i&&o===i.nextBreakPoint){i.breakIt(o,s);return o}g=r[o];if(g!==n.OPS.dependency)this[g].apply(this,a[o]);else for(const t of a[o]){const e=t.startsWith("g_")?u:p;if(!e.has(t)){e.get(t,s);return o}}o++;if(o===l)return o;if(c&&++d>10){if(Date.now()>h){s();return o}d=0}}}#lt(){for(;this.stateStack.length||this.inSMaskMode;)this.restore();this.ctx.restore();if(this.transparentCanvas){this.ctx=this.compositeCtx;this.ctx.save();this.ctx.setTransform(1,0,0,1,0,0);this.ctx.drawImage(this.transparentCanvas,0,0);this.ctx.restore();this.transparentCanvas=null}}endDrawing(){this.#lt();this.cachedCanvases.clear();this.cachedPatterns.clear();for(const t of this._cachedBitmapsMap.values()){for(const e of t.values())"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement&&(e.width=e.height=0);t.clear()}this._cachedBitmapsMap.clear()}_scaleImage(t,e){const s=t.width,n=t.height;let i,a,r=Math.max(Math.hypot(e[0],e[1]),1),o=Math.max(Math.hypot(e[2],e[3]),1),l=s,c=n,h="prescale1";for(;r>2&&l>1||o>2&&c>1;){let e=l,s=c;if(r>2&&l>1){e=Math.ceil(l/2);r/=l/e}if(o>2&&c>1){s=Math.ceil(c/2);o/=c/s}i=this.cachedCanvases.getCanvas(h,e,s);a=i.context;a.clearRect(0,0,e,s);a.drawImage(t,0,0,l,c,0,0,e,s);t=i.canvas;l=e;c=s;h="prescale1"===h?"prescale2":"prescale1"}return{img:t,paintWidth:l,paintHeight:c}}_createMaskCanvas(t){const e=this.ctx,{width:s,height:r}=t,o=this.current.fillColor,l=this.current.patternFill,c=(0,i.getCurrentTransform)(e);let h,d,u,p;if((t.bitmap||t.data)&&t.count>1){const e=t.bitmap||t.data.buffer;d=JSON.stringify(l?c:[c.slice(0,4),o]);h=this._cachedBitmapsMap.get(e);if(!h){h=new Map;this._cachedBitmapsMap.set(e,h)}const s=h.get(d);if(s&&!l){return{canvas:s,offsetX:Math.round(Math.min(c[0],c[2])+c[4]),offsetY:Math.round(Math.min(c[1],c[3])+c[5])}}u=s}if(!u){p=this.cachedCanvases.getCanvas("maskCanvas",s,r);putBinaryImageMask(p.context,t)}let g=n.Util.transform(c,[1/s,0,0,-1/r,0,0]);g=n.Util.transform(g,[1,0,0,1,0,-r]);const f=n.Util.applyTransform([0,0],g),m=n.Util.applyTransform([s,r],g),b=n.Util.normalizeRect([f[0],f[1],m[0],m[1]]),A=Math.round(b[2]-b[0])||1,_=Math.round(b[3]-b[1])||1,y=this.cachedCanvases.getCanvas("fillCanvas",A,_),v=y.context,S=Math.min(f[0],m[0]),x=Math.min(f[1],m[1]);v.translate(-S,-x);v.transform(...g);if(!u){u=this._scaleImage(p.canvas,(0,i.getCurrentTransformInverse)(v));u=u.img;h&&l&&h.set(d,u)}v.imageSmoothingEnabled=getImageSmoothingEnabled((0,i.getCurrentTransform)(v),t.interpolate);drawImageAtIntegerCoords(v,u,0,0,u.width,u.height,0,0,s,r);v.globalCompositeOperation="source-in";const E=n.Util.transform((0,i.getCurrentTransformInverse)(v),[1,0,0,1,-S,-x]);v.fillStyle=l?o.getPattern(e,this,E,a.PathType.FILL):o;v.fillRect(0,0,s,r);if(h&&!l){this.cachedCanvases.delete("fillCanvas");h.set(d,y.canvas)}return{canvas:y.canvas,offsetX:Math.round(S),offsetY:Math.round(x)}}setLineWidth(t){t!==this.current.lineWidth&&(this._cachedScaleForStroking=null);this.current.lineWidth=t;this.ctx.lineWidth=t}setLineCap(t){this.ctx.lineCap=c[t]}setLineJoin(t){this.ctx.lineJoin=h[t]}setMiterLimit(t){this.ctx.miterLimit=t}setDash(t,e){const s=this.ctx;if(void 0!==s.setLineDash){s.setLineDash(t);s.lineDashOffset=e}}setRenderingIntent(t){}setFlatness(t){}setGState(t){for(const[e,s]of t)switch(e){case"LW":this.setLineWidth(s);break;case"LC":this.setLineCap(s);break;case"LJ":this.setLineJoin(s);break;case"ML":this.setMiterLimit(s);break;case"D":this.setDash(s[0],s[1]);break;case"RI":this.setRenderingIntent(s);break;case"FL":this.setFlatness(s);break;case"Font":this.setFont(s[0],s[1]);break;case"CA":this.current.strokeAlpha=s;break;case"ca":this.current.fillAlpha=s;this.ctx.globalAlpha=s;break;case"BM":this.ctx.globalCompositeOperation=s;break;case"SMask":this.current.activeSMask=s?this.tempSMask:null;this.tempSMask=null;this.checkSMaskState();break;case"TR":this.current.transferMaps=s}}get inSMaskMode(){return!!this.suspendedCtx}checkSMaskState(){const t=this.inSMaskMode;this.current.activeSMask&&!t?this.beginSMaskMode():!this.current.activeSMask&&t&&this.endSMaskMode()}beginSMaskMode(){if(this.inSMaskMode)throw new Error("beginSMaskMode called while already in smask mode");const t=this.ctx.canvas.width,e=this.ctx.canvas.height,s="smaskGroupAt"+this.groupLevel,n=this.cachedCanvases.getCanvas(s,t,e);this.suspendedCtx=this.ctx;this.ctx=n.context;const a=this.ctx;a.setTransform(...(0,i.getCurrentTransform)(this.suspendedCtx));copyCtxState(this.suspendedCtx,a);!function mirrorContextOperations(t,e){if(t._removeMirroring)throw new Error("Context is already forwarding operations.");t.__originalSave=t.save;t.__originalRestore=t.restore;t.__originalRotate=t.rotate;t.__originalScale=t.scale;t.__originalTranslate=t.translate;t.__originalTransform=t.transform;t.__originalSetTransform=t.setTransform;t.__originalResetTransform=t.resetTransform;t.__originalClip=t.clip;t.__originalMoveTo=t.moveTo;t.__originalLineTo=t.lineTo;t.__originalBezierCurveTo=t.bezierCurveTo;t.__originalRect=t.rect;t.__originalClosePath=t.closePath;t.__originalBeginPath=t.beginPath;t._removeMirroring=()=>{t.save=t.__originalSave;t.restore=t.__originalRestore;t.rotate=t.__originalRotate;t.scale=t.__originalScale;t.translate=t.__originalTranslate;t.transform=t.__originalTransform;t.setTransform=t.__originalSetTransform;t.resetTransform=t.__originalResetTransform;t.clip=t.__originalClip;t.moveTo=t.__originalMoveTo;t.lineTo=t.__originalLineTo;t.bezierCurveTo=t.__originalBezierCurveTo;t.rect=t.__originalRect;t.closePath=t.__originalClosePath;t.beginPath=t.__originalBeginPath;delete t._removeMirroring};t.save=function ctxSave(){e.save();this.__originalSave()};t.restore=function ctxRestore(){e.restore();this.__originalRestore()};t.translate=function ctxTranslate(t,s){e.translate(t,s);this.__originalTranslate(t,s)};t.scale=function ctxScale(t,s){e.scale(t,s);this.__originalScale(t,s)};t.transform=function ctxTransform(t,s,n,i,a,r){e.transform(t,s,n,i,a,r);this.__originalTransform(t,s,n,i,a,r)};t.setTransform=function ctxSetTransform(t,s,n,i,a,r){e.setTransform(t,s,n,i,a,r);this.__originalSetTransform(t,s,n,i,a,r)};t.resetTransform=function ctxResetTransform(){e.resetTransform();this.__originalResetTransform()};t.rotate=function ctxRotate(t){e.rotate(t);this.__originalRotate(t)};t.clip=function ctxRotate(t){e.clip(t);this.__originalClip(t)};t.moveTo=function(t,s){e.moveTo(t,s);this.__originalMoveTo(t,s)};t.lineTo=function(t,s){e.lineTo(t,s);this.__originalLineTo(t,s)};t.bezierCurveTo=function(t,s,n,i,a,r){e.bezierCurveTo(t,s,n,i,a,r);this.__originalBezierCurveTo(t,s,n,i,a,r)};t.rect=function(t,s,n,i){e.rect(t,s,n,i);this.__originalRect(t,s,n,i)};t.closePath=function(){e.closePath();this.__originalClosePath()};t.beginPath=function(){e.beginPath();this.__originalBeginPath()}}(a,this.suspendedCtx);this.setGState([["BM","source-over"],["ca",1],["CA",1]])}endSMaskMode(){if(!this.inSMaskMode)throw new Error("endSMaskMode called while not in smask mode");this.ctx._removeMirroring();copyCtxState(this.ctx,this.suspendedCtx);this.ctx=this.suspendedCtx;this.suspendedCtx=null}compose(t){if(!this.current.activeSMask)return;if(t){t[0]=Math.floor(t[0]);t[1]=Math.floor(t[1]);t[2]=Math.ceil(t[2]);t[3]=Math.ceil(t[3])}else t=[0,0,this.ctx.canvas.width,this.ctx.canvas.height];const e=this.current.activeSMask;composeSMask(this.suspendedCtx,e,this.ctx,t);this.ctx.save();this.ctx.setTransform(1,0,0,1,0,0);this.ctx.clearRect(0,0,this.ctx.canvas.width,this.ctx.canvas.height);this.ctx.restore()}save(){if(this.inSMaskMode){copyCtxState(this.ctx,this.suspendedCtx);this.suspendedCtx.save()}else this.ctx.save();const t=this.current;this.stateStack.push(t);this.current=t.clone()}restore(){0===this.stateStack.length&&this.inSMaskMode&&this.endSMaskMode();if(0!==this.stateStack.length){this.current=this.stateStack.pop();if(this.inSMaskMode){this.suspendedCtx.restore();copyCtxState(this.suspendedCtx,this.ctx)}else this.ctx.restore();this.checkSMaskState();this.pendingClip=null;this._cachedScaleForStroking=null;this._cachedGetSinglePixelWidth=null}}transform(t,e,s,n,i,a){this.ctx.transform(t,e,s,n,i,a);this._cachedScaleForStroking=null;this._cachedGetSinglePixelWidth=null}constructPath(t,e,s){const a=this.ctx,r=this.current;let o,l,c=r.x,h=r.y;const d=(0,i.getCurrentTransform)(a),u=0===d[0]&&0===d[3]||0===d[1]&&0===d[2],p=u?s.slice(0):null;for(let s=0,i=0,g=t.length;s100&&(c=100);this.current.fontSizeScale=e/c;this.ctx.font=`${o} ${r} ${c}px ${l}`}setTextRenderingMode(t){this.current.textRenderingMode=t}setTextRise(t){this.current.textRise=t}moveText(t,e){this.current.x=this.current.lineX+=t;this.current.y=this.current.lineY+=e}setLeadingMoveText(t,e){this.setLeading(-e);this.moveText(t,e)}setTextMatrix(t,e,s,n,i,a){this.current.textMatrix=[t,e,s,n,i,a];this.current.textMatrixScale=Math.hypot(t,e);this.current.x=this.current.lineX=0;this.current.y=this.current.lineY=0}nextLine(){this.moveText(0,this.current.leading)}paintChar(t,e,s,a){const r=this.ctx,o=this.current,l=o.font,c=o.textRenderingMode,h=o.fontSize/o.fontSizeScale,d=c&n.TextRenderingMode.FILL_STROKE_MASK,u=!!(c&n.TextRenderingMode.ADD_TO_PATH_FLAG),p=o.patternFill&&!l.missingFile;let g;(l.disableFontFace||u||p)&&(g=l.getPathGenerator(this.commonObjs,t));if(l.disableFontFace||p){r.save();r.translate(e,s);r.beginPath();g(r,h);a&&r.setTransform(...a);d!==n.TextRenderingMode.FILL&&d!==n.TextRenderingMode.FILL_STROKE||r.fill();d!==n.TextRenderingMode.STROKE&&d!==n.TextRenderingMode.FILL_STROKE||r.stroke();r.restore()}else{d!==n.TextRenderingMode.FILL&&d!==n.TextRenderingMode.FILL_STROKE||r.fillText(t,e,s);d!==n.TextRenderingMode.STROKE&&d!==n.TextRenderingMode.FILL_STROKE||r.strokeText(t,e,s)}if(u){(this.pendingTextPaths||(this.pendingTextPaths=[])).push({transform:(0,i.getCurrentTransform)(r),x:e,y:s,fontSize:h,addToPath:g})}}get isFontSubpixelAAEnabled(){const{context:t}=this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled",10,10);t.scale(1.5,1);t.fillText("I",0,10);const e=t.getImageData(0,0,10,10).data;let s=!1;for(let t=3;t0&&e[t]<255){s=!0;break}return(0,n.shadow)(this,"isFontSubpixelAAEnabled",s)}showText(t){const e=this.current,s=e.font;if(s.isType3Font)return this.showType3Text(t);const r=e.fontSize;if(0===r)return;const o=this.ctx,l=e.fontSizeScale,c=e.charSpacing,h=e.wordSpacing,d=e.fontDirection,u=e.textHScale*d,p=t.length,g=s.vertical,f=g?1:-1,m=s.defaultVMetrics,b=r*e.fontMatrix[0],A=e.textRenderingMode===n.TextRenderingMode.FILL&&!s.disableFontFace&&!e.patternFill;o.save();o.transform(...e.textMatrix);o.translate(e.x,e.y+e.textRise);d>0?o.scale(u,-1):o.scale(u,1);let _;if(e.patternFill){o.save();const t=e.fillColor.getPattern(o,this,(0,i.getCurrentTransformInverse)(o),a.PathType.FILL);_=(0,i.getCurrentTransform)(o);o.restore();o.fillStyle=t}let y=e.lineWidth;const v=e.textMatrixScale;if(0===v||0===y){const t=e.textRenderingMode&n.TextRenderingMode.FILL_STROKE_MASK;t!==n.TextRenderingMode.STROKE&&t!==n.TextRenderingMode.FILL_STROKE||(y=this.getSinglePixelWidth())}else y/=v;if(1!==l){o.scale(l,l);y/=l}o.lineWidth=y;if(s.isInvalidPDFjsFont){const s=[];let n=0;for(const e of t){s.push(e.unicode);n+=e.width}o.fillText(s.join(""),0,0);e.x+=n*b*u;o.restore();this.compose();return}let S,x=0;for(S=0;S0){const t=1e3*o.measureText(a).width/r*l;if(Enew CanvasGraphics(t,this.commonObjs,this.objs,this.canvasFactory,{optionalContentConfig:this.optionalContentConfig,markedContentStack:this.markedContentStack})};e=new a.TilingPattern(t,s,this.ctx,r,n)}else e=this._getPattern(t[1],t[2]);return e}setStrokeColorN(){this.current.strokeColor=this.getColorN_Pattern(arguments)}setFillColorN(){this.current.fillColor=this.getColorN_Pattern(arguments);this.current.patternFill=!0}setStrokeRGBColor(t,e,s){const i=this.selectColor?.(t,e,s)||n.Util.makeHexColor(t,e,s);this.ctx.strokeStyle=i;this.current.strokeColor=i}setFillRGBColor(t,e,s){const i=this.selectColor?.(t,e,s)||n.Util.makeHexColor(t,e,s);this.ctx.fillStyle=i;this.current.fillColor=i;this.current.patternFill=!1}_getPattern(t,e=null){let s;if(this.cachedPatterns.has(t))s=this.cachedPatterns.get(t);else{s=(0,a.getShadingPattern)(this.objs.get(t));this.cachedPatterns.set(t,s)}e&&(s.matrix=e);return s}shadingFill(t){if(!this.contentVisible)return;const e=this.ctx;this.save();const s=this._getPattern(t);e.fillStyle=s.getPattern(e,this,(0,i.getCurrentTransformInverse)(e),a.PathType.SHADING);const r=(0,i.getCurrentTransformInverse)(e);if(r){const t=e.canvas,s=t.width,i=t.height,a=n.Util.applyTransform([0,0],r),o=n.Util.applyTransform([0,i],r),l=n.Util.applyTransform([s,0],r),c=n.Util.applyTransform([s,i],r),h=Math.min(a[0],o[0],l[0],c[0]),d=Math.min(a[1],o[1],l[1],c[1]),u=Math.max(a[0],o[0],l[0],c[0]),p=Math.max(a[1],o[1],l[1],c[1]);this.ctx.fillRect(h,d,u-h,p-d)}else this.ctx.fillRect(-1e10,-1e10,2e10,2e10);this.compose(this.current.getClippedPathBoundingBox());this.restore()}beginInlineImage(){(0,n.unreachable)("Should not call beginInlineImage")}beginImageData(){(0,n.unreachable)("Should not call beginImageData")}paintFormXObjectBegin(t,e){if(this.contentVisible){this.save();this.baseTransformStack.push(this.baseTransform);Array.isArray(t)&&6===t.length&&this.transform(...t);this.baseTransform=(0,i.getCurrentTransform)(this.ctx);if(e){const t=e[2]-e[0],s=e[3]-e[1];this.ctx.rect(e[0],e[1],t,s);this.current.updateRectMinMax((0,i.getCurrentTransform)(this.ctx),e);this.clip();this.endPath()}}}paintFormXObjectEnd(){if(this.contentVisible){this.restore();this.baseTransform=this.baseTransformStack.pop()}}beginGroup(t){if(!this.contentVisible)return;this.save();if(this.inSMaskMode){this.endSMaskMode();this.current.activeSMask=null}const e=this.ctx;t.isolated||(0,n.info)("TODO: Support non-isolated groups.");t.knockout&&(0,n.warn)("Knockout groups not supported.");const s=(0,i.getCurrentTransform)(e);t.matrix&&e.transform(...t.matrix);if(!t.bbox)throw new Error("Bounding box is required.");let a=n.Util.getAxialAlignedBoundingBox(t.bbox,(0,i.getCurrentTransform)(e));const r=[0,0,e.canvas.width,e.canvas.height];a=n.Util.intersect(a,r)||[0,0,0,0];const l=Math.floor(a[0]),c=Math.floor(a[1]);let h=Math.max(Math.ceil(a[2])-l,1),d=Math.max(Math.ceil(a[3])-c,1),u=1,p=1;if(h>o){u=h/o;h=o}if(d>o){p=d/o;d=o}this.current.startNewPathAndClipBox([0,0,h,d]);let g="groupAt"+this.groupLevel;t.smask&&(g+="_smask_"+this.smaskCounter++%2);const f=this.cachedCanvases.getCanvas(g,h,d),m=f.context;m.scale(1/u,1/p);m.translate(-l,-c);m.transform(...s);if(t.smask)this.smaskStack.push({canvas:f.canvas,context:m,offsetX:l,offsetY:c,scaleX:u,scaleY:p,subtype:t.smask.subtype,backdrop:t.smask.backdrop,transferMap:t.smask.transferMap||null,startTransformInverse:null});else{e.setTransform(1,0,0,1,0,0);e.translate(l,c);e.scale(u,p);e.save()}copyCtxState(e,m);this.ctx=m;this.setGState([["BM","source-over"],["ca",1],["CA",1]]);this.groupStack.push(e);this.groupLevel++}endGroup(t){if(!this.contentVisible)return;this.groupLevel--;const e=this.ctx,s=this.groupStack.pop();this.ctx=s;this.ctx.imageSmoothingEnabled=!1;if(t.smask){this.tempSMask=this.smaskStack.pop();this.restore()}else{this.ctx.restore();const t=(0,i.getCurrentTransform)(this.ctx);this.restore();this.ctx.save();this.ctx.setTransform(...t);const s=n.Util.getAxialAlignedBoundingBox([0,0,e.canvas.width,e.canvas.height],t);this.ctx.drawImage(e.canvas,0,0);this.ctx.restore();this.compose(s)}}beginAnnotation(t,e,s,a,r){this.#lt();resetCtxToDefault(this.ctx,this.foregroundColor);this.ctx.save();this.save();this.baseTransform&&this.ctx.setTransform(...this.baseTransform);if(Array.isArray(e)&&4===e.length){const a=e[2]-e[0],o=e[3]-e[1];if(r&&this.annotationCanvasMap){(s=s.slice())[4]-=e[0];s[5]-=e[1];(e=e.slice())[0]=e[1]=0;e[2]=a;e[3]=o;const[r,l]=n.Util.singularValueDecompose2dScale((0,i.getCurrentTransform)(this.ctx)),{viewportScale:c}=this,h=Math.ceil(a*this.outputScaleX*c),d=Math.ceil(o*this.outputScaleY*c);this.annotationCanvas=this.canvasFactory.create(h,d);const{canvas:u,context:p}=this.annotationCanvas;this.annotationCanvasMap.set(t,u);this.annotationCanvas.savedCtx=this.ctx;this.ctx=p;this.ctx.setTransform(r,0,0,-l,0,o*l);resetCtxToDefault(this.ctx,this.foregroundColor)}else{resetCtxToDefault(this.ctx,this.foregroundColor);this.ctx.rect(e[0],e[1],a,o);this.ctx.clip();this.endPath()}}this.current=new CanvasExtraState(this.ctx.canvas.width,this.ctx.canvas.height);this.transform(...s);this.transform(...a)}endAnnotation(){if(this.annotationCanvas){this.ctx=this.annotationCanvas.savedCtx;delete this.annotationCanvas.savedCtx;delete this.annotationCanvas}}paintImageMaskXObject(t){if(!this.contentVisible)return;const e=t.count;(t=this.getObject(t.data,t)).count=e;const s=this.ctx,n=this.processingType3;if(n){void 0===n.compiled&&(n.compiled=function compileType3Glyph(t){const{width:e,height:s}=t;if(e>1e3||s>1e3)return null;const n=new Uint8Array([0,2,4,0,1,0,5,4,8,10,0,8,0,2,1,0]),i=e+1;let a,r,o,l=new Uint8Array(i*(s+1));const c=e+7&-8;let h=new Uint8Array(c*s),d=0;for(const e of t.data){let t=128;for(;t>0;){h[d++]=e&t?0:255;t>>=1}}let u=0;d=0;if(0!==h[d]){l[0]=1;++u}for(r=1;r>2)+(h[d+1]?4:0)+(h[d-c+1]?8:0);if(n[t]){l[o+r]=n[t];++u}d++}if(h[d-c]!==h[d]){l[o+r]=h[d]?2:4;++u}if(u>1e3)return null}d=c*(s-1);o=a*i;if(0!==h[d]){l[o]=8;++u}for(r=1;r1e3)return null;const p=new Int32Array([0,i,-1,0,-i,0,0,0,1]),g=new Path2D;for(a=0;u&&a<=s;a++){let t=a*i;const s=t+e;for(;t>4;l[t]&=r>>2|r<<2}g.lineTo(t%i,t/i|0);l[t]||--u}while(n!==t);--a}h=null;l=null;return function(t){t.save();t.scale(1/e,-1/s);t.translate(0,-s);t.fill(g);t.beginPath();t.restore()}}(t));if(n.compiled){n.compiled(s);return}}const i=this._createMaskCanvas(t),a=i.canvas;s.save();s.setTransform(1,0,0,1,0,0);s.drawImage(a,i.offsetX,i.offsetY);s.restore();this.compose()}paintImageMaskXObjectRepeat(t,e,s=0,a=0,r,o){if(!this.contentVisible)return;t=this.getObject(t.data,t);const l=this.ctx;l.save();const c=(0,i.getCurrentTransform)(l);l.transform(e,s,a,r,0,0);const h=this._createMaskCanvas(t);l.setTransform(1,0,0,1,h.offsetX-c[4],h.offsetY-c[5]);for(let t=0,i=o.length;te?r/e:1;n=a>e?a/e:1}}this._cachedScaleForStroking=[s,n]}return this._cachedScaleForStroking}rescaleAndStroke(t){const{ctx:e}=this,{lineWidth:s}=this.current,[n,a]=this.getScaleForStroking();e.lineWidth=s||1;if(1===n&&1===a){e.stroke();return}let r,o,l;if(t){r=(0,i.getCurrentTransform)(e);o=e.getLineDash().slice();l=e.lineDashOffset}e.scale(n,a);const c=Math.max(n,a);e.setLineDash(e.getLineDash().map((t=>t/c)));e.lineDashOffset/=c;e.stroke();if(t){e.setTransform(...r);e.setLineDash(o);e.lineDashOffset=l}}isContentVisible(){for(let t=this.markedContentStack.length-1;t>=0;t--)if(!this.markedContentStack[t].visible)return!1;return!0}}e.CanvasGraphics=CanvasGraphics;for(const t in n.OPS)void 0!==CanvasGraphics.prototype[t]&&(CanvasGraphics.prototype[n.OPS[t]]=CanvasGraphics.prototype[t])},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.TilingPattern=e.PathType=void 0;e.getShadingPattern=function getShadingPattern(t){switch(t[0]){case"RadialAxial":return new RadialAxialShadingPattern(t);case"Mesh":return new MeshShadingPattern(t);case"Dummy":return new DummyShadingPattern}throw new Error(`Unknown IR type: ${t[0]}`)};var n=s(1),i=s(6);const a={FILL:"Fill",STROKE:"Stroke",SHADING:"Shading"};e.PathType=a;function applyBoundingBox(t,e){if(!e)return;const s=e[2]-e[0],n=e[3]-e[1],i=new Path2D;i.rect(e[0],e[1],s,n);t.clip(i)}class BaseShadingPattern{constructor(){this.constructor===BaseShadingPattern&&(0,n.unreachable)("Cannot initialize BaseShadingPattern.")}getPattern(){(0,n.unreachable)("Abstract method `getPattern` called.")}}class RadialAxialShadingPattern extends BaseShadingPattern{constructor(t){super();this._type=t[1];this._bbox=t[2];this._colorStops=t[3];this._p0=t[4];this._p1=t[5];this._r0=t[6];this._r1=t[7];this.matrix=null}_createGradient(t){let e;"axial"===this._type?e=t.createLinearGradient(this._p0[0],this._p0[1],this._p1[0],this._p1[1]):"radial"===this._type&&(e=t.createRadialGradient(this._p0[0],this._p0[1],this._r0,this._p1[0],this._p1[1],this._r1));for(const t of this._colorStops)e.addColorStop(t[0],t[1]);return e}getPattern(t,e,s,r){let o;if(r===a.STROKE||r===a.FILL){const a=e.current.getClippedPathBoundingBox(r,(0,i.getCurrentTransform)(t))||[0,0,0,0],l=Math.ceil(a[2]-a[0])||1,c=Math.ceil(a[3]-a[1])||1,h=e.cachedCanvases.getCanvas("pattern",l,c,!0),d=h.context;d.clearRect(0,0,d.canvas.width,d.canvas.height);d.beginPath();d.rect(0,0,d.canvas.width,d.canvas.height);d.translate(-a[0],-a[1]);s=n.Util.transform(s,[1,0,0,1,a[0],a[1]]);d.transform(...e.baseTransform);this.matrix&&d.transform(...this.matrix);applyBoundingBox(d,this._bbox);d.fillStyle=this._createGradient(d);d.fill();o=t.createPattern(h.canvas,"no-repeat");const u=new DOMMatrix(s);o.setTransform(u)}else{applyBoundingBox(t,this._bbox);o=this._createGradient(t)}return o}}function drawTriangle(t,e,s,n,i,a,r,o){const l=e.coords,c=e.colors,h=t.data,d=4*t.width;let u;if(l[s+1]>l[n+1]){u=s;s=n;n=u;u=a;a=r;r=u}if(l[n+1]>l[i+1]){u=n;n=i;i=u;u=r;r=o;o=u}if(l[s+1]>l[n+1]){u=s;s=n;n=u;u=a;a=r;r=u}const p=(l[s]+e.offsetX)*e.scaleX,g=(l[s+1]+e.offsetY)*e.scaleY,f=(l[n]+e.offsetX)*e.scaleX,m=(l[n+1]+e.offsetY)*e.scaleY,b=(l[i]+e.offsetX)*e.scaleX,A=(l[i+1]+e.offsetY)*e.scaleY;if(g>=A)return;const _=c[a],y=c[a+1],v=c[a+2],S=c[r],x=c[r+1],E=c[r+2],C=c[o],P=c[o+1],T=c[o+2],w=Math.round(g),k=Math.round(A);let F,R,M,D,I,O,L,N;for(let t=w;t<=k;t++){if(tA?1:m===A?0:(m-t)/(m-A);F=f-(f-b)*e;R=S-(S-C)*e;M=x-(x-P)*e;D=E-(E-T)*e}let e;e=tA?1:(g-t)/(g-A);I=p-(p-b)*e;O=_-(_-C)*e;L=y-(y-P)*e;N=v-(v-T)*e;const s=Math.round(Math.min(F,I)),n=Math.round(Math.max(F,I));let i=d*t+4*s;for(let t=s;t<=n;t++){e=(F-t)/(F-I);e<0?e=0:e>1&&(e=1);h[i++]=R-(R-O)*e|0;h[i++]=M-(M-L)*e|0;h[i++]=D-(D-N)*e|0;h[i++]=255}}}function drawFigure(t,e,s){const n=e.coords,i=e.colors;let a,r;switch(e.type){case"lattice":const o=e.verticesPerRow,l=Math.floor(n.length/o)-1,c=o-1;for(a=0;a=n?i=n:s=i/t;return{scale:s,size:i}}clipBbox(t,e,s,n,a){const r=n-e,o=a-s;t.ctx.rect(e,s,r,o);t.current.updateRectMinMax((0,i.getCurrentTransform)(t.ctx),[e,s,n,a]);t.clip();t.endPath()}setFillAndStrokeStyleToContext(t,e,s){const i=t.ctx,a=t.current;switch(e){case r:const t=this.ctx;i.fillStyle=t.fillStyle;i.strokeStyle=t.strokeStyle;a.fillColor=t.fillStyle;a.strokeColor=t.strokeStyle;break;case o:const l=n.Util.makeHexColor(s[0],s[1],s[2]);i.fillStyle=l;i.strokeStyle=l;a.fillColor=l;a.strokeColor=l;break;default:throw new n.FormatError(`Unsupported paint type: ${e}`)}}getPattern(t,e,s,i){let r=s;if(i!==a.SHADING){r=n.Util.transform(r,e.baseTransform);this.matrix&&(r=n.Util.transform(r,this.matrix))}const o=this.createPatternCanvas(e);let l=new DOMMatrix(r);l=l.translate(o.offsetX,o.offsetY);l=l.scale(1/o.scaleX,1/o.scaleY);const c=t.createPattern(o.canvas,"repeat");c.setTransform(l);return c}}e.TilingPattern=TilingPattern},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.applyMaskImageData=function applyMaskImageData({src:t,srcPos:e=0,dest:s,destPos:i=0,width:a,height:r,inverseDecode:o=!1}){const l=n.FeatureTest.isLittleEndian?4278190080:255,[c,h]=o?[0,l]:[l,0],d=a>>3,u=7&a,p=t.length;s=new Uint32Array(s.buffer);for(let n=0;n{Object.defineProperty(e,"__esModule",{value:!0});e.GlobalWorkerOptions=void 0;const s=Object.create(null);e.GlobalWorkerOptions=s;s.workerPort=null;s.workerSrc=""},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.MessageHandler=void 0;var n=s(1);const i=1,a=2,r=1,o=2,l=3,c=4,h=5,d=6,u=7,p=8;function wrapReason(t){t instanceof Error||"object"==typeof t&&null!==t||(0,n.unreachable)('wrapReason: Expected "reason" to be a (possibly cloned) Error.');switch(t.name){case"AbortException":return new n.AbortException(t.message);case"MissingPDFException":return new n.MissingPDFException(t.message);case"PasswordException":return new n.PasswordException(t.message,t.code);case"UnexpectedResponseException":return new n.UnexpectedResponseException(t.message,t.status);case"UnknownErrorException":return new n.UnknownErrorException(t.message,t.details);default:return new n.UnknownErrorException(t.message,t.toString())}}e.MessageHandler=class MessageHandler{constructor(t,e,s){this.sourceName=t;this.targetName=e;this.comObj=s;this.callbackId=1;this.streamId=1;this.streamSinks=Object.create(null);this.streamControllers=Object.create(null);this.callbackCapabilities=Object.create(null);this.actionHandler=Object.create(null);this._onComObjOnMessage=t=>{const e=t.data;if(e.targetName!==this.sourceName)return;if(e.stream){this._processStreamMessage(e);return}if(e.callback){const t=e.callbackId,s=this.callbackCapabilities[t];if(!s)throw new Error(`Cannot resolve callback ${t}`);delete this.callbackCapabilities[t];if(e.callback===i)s.resolve(e.data);else{if(e.callback!==a)throw new Error("Unexpected callback case");s.reject(wrapReason(e.reason))}return}const n=this.actionHandler[e.action];if(!n)throw new Error(`Unknown action from worker: ${e.action}`);if(e.callbackId){const t=this.sourceName,r=e.sourceName;new Promise((function(t){t(n(e.data))})).then((function(n){s.postMessage({sourceName:t,targetName:r,callback:i,callbackId:e.callbackId,data:n})}),(function(n){s.postMessage({sourceName:t,targetName:r,callback:a,callbackId:e.callbackId,reason:wrapReason(n)})}))}else e.streamId?this._createStreamSink(e):n(e.data)};s.addEventListener("message",this._onComObjOnMessage)}on(t,e){const s=this.actionHandler;if(s[t])throw new Error(`There is already an actionName called "${t}"`);s[t]=e}send(t,e,s){this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:t,data:e},s)}sendWithPromise(t,e,s){const i=this.callbackId++,a=(0,n.createPromiseCapability)();this.callbackCapabilities[i]=a;try{this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:t,callbackId:i,data:e},s)}catch(t){a.reject(t)}return a.promise}sendWithStream(t,e,s,i){const a=this.streamId++,o=this.sourceName,l=this.targetName,c=this.comObj;return new ReadableStream({start:s=>{const r=(0,n.createPromiseCapability)();this.streamControllers[a]={controller:s,startCall:r,pullCall:null,cancelCall:null,isClosed:!1};c.postMessage({sourceName:o,targetName:l,action:t,streamId:a,data:e,desiredSize:s.desiredSize},i);return r.promise},pull:t=>{const e=(0,n.createPromiseCapability)();this.streamControllers[a].pullCall=e;c.postMessage({sourceName:o,targetName:l,stream:d,streamId:a,desiredSize:t.desiredSize});return e.promise},cancel:t=>{(0,n.assert)(t instanceof Error,"cancel must have a valid reason");const e=(0,n.createPromiseCapability)();this.streamControllers[a].cancelCall=e;this.streamControllers[a].isClosed=!0;c.postMessage({sourceName:o,targetName:l,stream:r,streamId:a,reason:wrapReason(t)});return e.promise}},s)}_createStreamSink(t){const e=t.streamId,s=this.sourceName,i=t.sourceName,a=this.comObj,r=this,o=this.actionHandler[t.action],d={enqueue(t,r=1,o){if(this.isCancelled)return;const l=this.desiredSize;this.desiredSize-=r;if(l>0&&this.desiredSize<=0){this.sinkCapability=(0,n.createPromiseCapability)();this.ready=this.sinkCapability.promise}a.postMessage({sourceName:s,targetName:i,stream:c,streamId:e,chunk:t},o)},close(){if(!this.isCancelled){this.isCancelled=!0;a.postMessage({sourceName:s,targetName:i,stream:l,streamId:e});delete r.streamSinks[e]}},error(t){(0,n.assert)(t instanceof Error,"error must have a valid reason");if(!this.isCancelled){this.isCancelled=!0;a.postMessage({sourceName:s,targetName:i,stream:h,streamId:e,reason:wrapReason(t)})}},sinkCapability:(0,n.createPromiseCapability)(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:t.desiredSize,ready:null};d.sinkCapability.resolve();d.ready=d.sinkCapability.promise;this.streamSinks[e]=d;new Promise((function(e){e(o(t.data,d))})).then((function(){a.postMessage({sourceName:s,targetName:i,stream:p,streamId:e,success:!0})}),(function(t){a.postMessage({sourceName:s,targetName:i,stream:p,streamId:e,reason:wrapReason(t)})}))}_processStreamMessage(t){const e=t.streamId,s=this.sourceName,i=t.sourceName,a=this.comObj,g=this.streamControllers[e],f=this.streamSinks[e];switch(t.stream){case p:t.success?g.startCall.resolve():g.startCall.reject(wrapReason(t.reason));break;case u:t.success?g.pullCall.resolve():g.pullCall.reject(wrapReason(t.reason));break;case d:if(!f){a.postMessage({sourceName:s,targetName:i,stream:u,streamId:e,success:!0});break}f.desiredSize<=0&&t.desiredSize>0&&f.sinkCapability.resolve();f.desiredSize=t.desiredSize;new Promise((function(t){t(f.onPull&&f.onPull())})).then((function(){a.postMessage({sourceName:s,targetName:i,stream:u,streamId:e,success:!0})}),(function(t){a.postMessage({sourceName:s,targetName:i,stream:u,streamId:e,reason:wrapReason(t)})}));break;case c:(0,n.assert)(g,"enqueue should have stream controller");if(g.isClosed)break;g.controller.enqueue(t.chunk);break;case l:(0,n.assert)(g,"close should have stream controller");if(g.isClosed)break;g.isClosed=!0;g.controller.close();this._deleteStreamController(g,e);break;case h:(0,n.assert)(g,"error should have stream controller");g.controller.error(wrapReason(t.reason));this._deleteStreamController(g,e);break;case o:t.success?g.cancelCall.resolve():g.cancelCall.reject(wrapReason(t.reason));this._deleteStreamController(g,e);break;case r:if(!f)break;new Promise((function(e){e(f.onCancel&&f.onCancel(wrapReason(t.reason)))})).then((function(){a.postMessage({sourceName:s,targetName:i,stream:o,streamId:e,success:!0})}),(function(t){a.postMessage({sourceName:s,targetName:i,stream:o,streamId:e,reason:wrapReason(t)})}));f.sinkCapability.reject(wrapReason(t.reason));f.isCancelled=!0;delete this.streamSinks[e];break;default:throw new Error("Unexpected stream case")}}async _deleteStreamController(t,e){await Promise.allSettled([t.startCall&&t.startCall.promise,t.pullCall&&t.pullCall.promise,t.cancelCall&&t.cancelCall.promise]);delete this.streamControllers[e]}destroy(){this.comObj.removeEventListener("message",this._onComObjOnMessage)}}},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.Metadata=void 0;var n=s(1);e.Metadata=class Metadata{#ct;#ht;constructor({parsedData:t,rawData:e}){this.#ct=t;this.#ht=e}getRaw(){return this.#ht}get(t){return this.#ct.get(t)??null}getAll(){return(0,n.objectFromMap)(this.#ct)}has(t){return this.#ct.has(t)}}},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.OptionalContentConfig=void 0;var n=s(1),i=s(8);const a=Symbol("INTERNAL");class OptionalContentGroup{#dt=!0;constructor(t,e){this.name=t;this.intent=e}get visible(){return this.#dt}_setVisible(t,e){t!==a&&(0,n.unreachable)("Internal method `_setVisible` called.");this.#dt=e}}e.OptionalContentConfig=class OptionalContentConfig{#ut=null;#pt=new Map;#gt=null;#ft=null;constructor(t){this.name=null;this.creator=null;if(null!==t){this.name=t.name;this.creator=t.creator;this.#ft=t.order;for(const e of t.groups)this.#pt.set(e.id,new OptionalContentGroup(e.name,e.intent));if("OFF"===t.baseState)for(const t of this.#pt.values())t._setVisible(a,!1);for(const e of t.on)this.#pt.get(e)._setVisible(a,!0);for(const e of t.off)this.#pt.get(e)._setVisible(a,!1);this.#gt=this.getHash()}}#mt(t){const e=t.length;if(e<2)return!0;const s=t[0];for(let i=1;i0?(0,n.objectFromMap)(this.#pt):null}getGroup(t){return this.#pt.get(t)||null}getHash(){if(null!==this.#ut)return this.#ut;const t=new i.MurmurHash3_64;for(const[e,s]of this.#pt)t.update(`${e}:${s.visible}`);return this.#ut=t.hexdigest()}}},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.PDFDataTransportStream=void 0;var n=s(1),i=s(6);e.PDFDataTransportStream=class PDFDataTransportStream{constructor({length:t,initialData:e,progressiveDone:s=!1,contentDispositionFilename:i=null,disableRange:a=!1,disableStream:r=!1},o){(0,n.assert)(o,'PDFDataTransportStream - missing required "pdfDataRangeTransport" argument.');this._queuedChunks=[];this._progressiveDone=s;this._contentDispositionFilename=i;if(e?.length>0){const t=e instanceof Uint8Array&&e.byteLength===e.buffer.byteLength?e.buffer:new Uint8Array(e).buffer;this._queuedChunks.push(t)}this._pdfDataRangeTransport=o;this._isStreamingSupported=!r;this._isRangeSupported=!a;this._contentLength=t;this._fullRequestReader=null;this._rangeReaders=[];this._pdfDataRangeTransport.addRangeListener(((t,e)=>{this._onReceiveData({begin:t,chunk:e})}));this._pdfDataRangeTransport.addProgressListener(((t,e)=>{this._onProgress({loaded:t,total:e})}));this._pdfDataRangeTransport.addProgressiveReadListener((t=>{this._onReceiveData({chunk:t})}));this._pdfDataRangeTransport.addProgressiveDoneListener((()=>{this._onProgressiveDone()}));this._pdfDataRangeTransport.transportReady()}_onReceiveData({begin:t,chunk:e}){const s=e instanceof Uint8Array&&e.byteLength===e.buffer.byteLength?e.buffer:new Uint8Array(e).buffer;if(void 0===t)this._fullRequestReader?this._fullRequestReader._enqueue(s):this._queuedChunks.push(s);else{const e=this._rangeReaders.some((function(e){if(e._begin!==t)return!1;e._enqueue(s);return!0}));(0,n.assert)(e,"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.")}}get _progressiveDataLength(){return this._fullRequestReader?._loaded??0}_onProgress(t){void 0===t.total?this._rangeReaders[0]?.onProgress?.({loaded:t.loaded}):this._fullRequestReader?.onProgress?.({loaded:t.loaded,total:t.total})}_onProgressiveDone(){this._fullRequestReader?.progressiveDone();this._progressiveDone=!0}_removeRangeReader(t){const e=this._rangeReaders.indexOf(t);e>=0&&this._rangeReaders.splice(e,1)}getFullReader(){(0,n.assert)(!this._fullRequestReader,"PDFDataTransportStream.getFullReader can only be called once.");const t=this._queuedChunks;this._queuedChunks=null;return new PDFDataTransportStreamReader(this,t,this._progressiveDone,this._contentDispositionFilename)}getRangeReader(t,e){if(e<=this._progressiveDataLength)return null;const s=new PDFDataTransportStreamRangeReader(this,t,e);this._pdfDataRangeTransport.requestDataRange(t,e);this._rangeReaders.push(s);return s}cancelAllRequests(t){this._fullRequestReader?.cancel(t);for(const e of this._rangeReaders.slice(0))e.cancel(t);this._pdfDataRangeTransport.abort()}};class PDFDataTransportStreamReader{constructor(t,e,s=!1,n=null){this._stream=t;this._done=s||!1;this._filename=(0,i.isPdfFile)(n)?n:null;this._queuedChunks=e||[];this._loaded=0;for(const t of this._queuedChunks)this._loaded+=t.byteLength;this._requests=[];this._headersReady=Promise.resolve();t._fullRequestReader=this;this.onProgress=null}_enqueue(t){if(!this._done){if(this._requests.length>0){this._requests.shift().resolve({value:t,done:!1})}else this._queuedChunks.push(t);this._loaded+=t.byteLength}}get headersReady(){return this._headersReady}get filename(){return this._filename}get isRangeSupported(){return this._stream._isRangeSupported}get isStreamingSupported(){return this._stream._isStreamingSupported}get contentLength(){return this._stream._contentLength}async read(){if(this._queuedChunks.length>0){return{value:this._queuedChunks.shift(),done:!1}}if(this._done)return{value:void 0,done:!0};const t=(0,n.createPromiseCapability)();this._requests.push(t);return t.promise}cancel(t){this._done=!0;for(const t of this._requests)t.resolve({value:void 0,done:!0});this._requests.length=0}progressiveDone(){this._done||(this._done=!0)}}class PDFDataTransportStreamRangeReader{constructor(t,e,s){this._stream=t;this._begin=e;this._end=s;this._queuedChunk=null;this._requests=[];this._done=!1;this.onProgress=null}_enqueue(t){if(!this._done){if(0===this._requests.length)this._queuedChunk=t;else{this._requests.shift().resolve({value:t,done:!1});for(const t of this._requests)t.resolve({value:void 0,done:!0});this._requests.length=0}this._done=!0;this._stream._removeRangeReader(this)}}get isStreamingSupported(){return!1}async read(){if(this._queuedChunk){const t=this._queuedChunk;this._queuedChunk=null;return{value:t,done:!1}}if(this._done)return{value:void 0,done:!0};const t=(0,n.createPromiseCapability)();this._requests.push(t);return t.promise}cancel(t){this._done=!0;for(const t of this._requests)t.resolve({value:void 0,done:!0});this._requests.length=0;this._stream._removeRangeReader(this)}}},(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0});e.XfaText=void 0;class XfaText{static textContent(t){const e=[],s={items:e,styles:Object.create(null)};!function walk(t){if(!t)return;let s=null;const n=t.name;if("#text"===n)s=t.value;else{if(!XfaText.shouldBuildText(n))return;t?.attributes?.textContent?s=t.attributes.textContent:t.value&&(s=t.value)}null!==s&&e.push({str:s});if(t.children)for(const e of t.children)walk(e)}(t);return s}static shouldBuildText(t){return!("textarea"===t||"input"===t||"option"===t||"select"===t)}}e.XfaText=XfaText},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.NodeStandardFontDataFactory=e.NodeCanvasFactory=e.NodeCMapReaderFactory=void 0;var n=s(7);const fetchData=function(t){return new Promise(((e,s)=>{require("fs").readFile(t,((t,n)=>{!t&&n?e(new Uint8Array(n)):s(new Error(t))}))}))};class NodeCanvasFactory extends n.BaseCanvasFactory{_createCanvas(t,e){return require("canvas").createCanvas(t,e)}}e.NodeCanvasFactory=NodeCanvasFactory;class NodeCMapReaderFactory extends n.BaseCMapReaderFactory{_fetchData(t,e){return fetchData(t).then((t=>({cMapData:t,compressionType:e})))}}e.NodeCMapReaderFactory=NodeCMapReaderFactory;class NodeStandardFontDataFactory extends n.BaseStandardFontDataFactory{_fetchData(t){return fetchData(t)}}e.NodeStandardFontDataFactory=NodeStandardFontDataFactory},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.PDFNodeStream=void 0;var n=s(1),i=s(22);const a=require("fs"),r=require("http"),o=require("https"),l=require("url"),c=/^file:\/\/\/[a-zA-Z]:\//;e.PDFNodeStream=class PDFNodeStream{constructor(t){this.source=t;this.url=function parseUrl(t){const e=l.parse(t);if("file:"===e.protocol||e.host)return e;if(/^[a-z]:[/\\]/i.test(t))return l.parse(`file:///${t}`);e.host||(e.protocol="file:");return e}(t.url);this.isHttp="http:"===this.url.protocol||"https:"===this.url.protocol;this.isFsUrl="file:"===this.url.protocol;this.httpHeaders=this.isHttp&&t.httpHeaders||{};this._fullRequestReader=null;this._rangeRequestReaders=[]}get _progressiveDataLength(){return this._fullRequestReader?._loaded??0}getFullReader(){(0,n.assert)(!this._fullRequestReader,"PDFNodeStream.getFullReader can only be called once.");this._fullRequestReader=this.isFsUrl?new PDFNodeStreamFsFullReader(this):new PDFNodeStreamFullReader(this);return this._fullRequestReader}getRangeReader(t,e){if(e<=this._progressiveDataLength)return null;const s=this.isFsUrl?new PDFNodeStreamFsRangeReader(this,t,e):new PDFNodeStreamRangeReader(this,t,e);this._rangeRequestReaders.push(s);return s}cancelAllRequests(t){this._fullRequestReader?.cancel(t);for(const e of this._rangeRequestReaders.slice(0))e.cancel(t)}};class BaseFullReader{constructor(t){this._url=t.url;this._done=!1;this._storedError=null;this.onProgress=null;const e=t.source;this._contentLength=e.length;this._loaded=0;this._filename=null;this._disableRange=e.disableRange||!1;this._rangeChunkSize=e.rangeChunkSize;this._rangeChunkSize||this._disableRange||(this._disableRange=!0);this._isStreamingSupported=!e.disableStream;this._isRangeSupported=!e.disableRange;this._readableStream=null;this._readCapability=(0,n.createPromiseCapability)();this._headersCapability=(0,n.createPromiseCapability)()}get headersReady(){return this._headersCapability.promise}get filename(){return this._filename}get contentLength(){return this._contentLength}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}async read(){await this._readCapability.promise;if(this._done)return{value:void 0,done:!0};if(this._storedError)throw this._storedError;const t=this._readableStream.read();if(null===t){this._readCapability=(0,n.createPromiseCapability)();return this.read()}this._loaded+=t.length;this.onProgress?.({loaded:this._loaded,total:this._contentLength});return{value:new Uint8Array(t).buffer,done:!1}}cancel(t){this._readableStream?this._readableStream.destroy(t):this._error(t)}_error(t){this._storedError=t;this._readCapability.resolve()}_setReadableStream(t){this._readableStream=t;t.on("readable",(()=>{this._readCapability.resolve()}));t.on("end",(()=>{t.destroy();this._done=!0;this._readCapability.resolve()}));t.on("error",(t=>{this._error(t)}));!this._isStreamingSupported&&this._isRangeSupported&&this._error(new n.AbortException("streaming is disabled"));this._storedError&&this._readableStream.destroy(this._storedError)}}class BaseRangeReader{constructor(t){this._url=t.url;this._done=!1;this._storedError=null;this.onProgress=null;this._loaded=0;this._readableStream=null;this._readCapability=(0,n.createPromiseCapability)();const e=t.source;this._isStreamingSupported=!e.disableStream}get isStreamingSupported(){return this._isStreamingSupported}async read(){await this._readCapability.promise;if(this._done)return{value:void 0,done:!0};if(this._storedError)throw this._storedError;const t=this._readableStream.read();if(null===t){this._readCapability=(0,n.createPromiseCapability)();return this.read()}this._loaded+=t.length;this.onProgress?.({loaded:this._loaded});return{value:new Uint8Array(t).buffer,done:!1}}cancel(t){this._readableStream?this._readableStream.destroy(t):this._error(t)}_error(t){this._storedError=t;this._readCapability.resolve()}_setReadableStream(t){this._readableStream=t;t.on("readable",(()=>{this._readCapability.resolve()}));t.on("end",(()=>{t.destroy();this._done=!0;this._readCapability.resolve()}));t.on("error",(t=>{this._error(t)}));this._storedError&&this._readableStream.destroy(this._storedError)}}function createRequestOptions(t,e){return{protocol:t.protocol,auth:t.auth,host:t.hostname,port:t.port,path:t.path,method:"GET",headers:e}}class PDFNodeStreamFullReader extends BaseFullReader{constructor(t){super(t);const handleResponse=e=>{if(404===e.statusCode){const t=new n.MissingPDFException(`Missing PDF "${this._url}".`);this._storedError=t;this._headersCapability.reject(t);return}this._headersCapability.resolve();this._setReadableStream(e);const getResponseHeader=t=>this._readableStream.headers[t.toLowerCase()],{allowRangeRequests:s,suggestedLength:a}=(0,i.validateRangeRequestCapabilities)({getResponseHeader:getResponseHeader,isHttp:t.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});this._isRangeSupported=s;this._contentLength=a||this._contentLength;this._filename=(0,i.extractFilenameFromHeader)(getResponseHeader)};this._request=null;"http:"===this._url.protocol?this._request=r.request(createRequestOptions(this._url,t.httpHeaders),handleResponse):this._request=o.request(createRequestOptions(this._url,t.httpHeaders),handleResponse);this._request.on("error",(t=>{this._storedError=t;this._headersCapability.reject(t)}));this._request.end()}}class PDFNodeStreamRangeReader extends BaseRangeReader{constructor(t,e,s){super(t);this._httpHeaders={};for(const e in t.httpHeaders){const s=t.httpHeaders[e];void 0!==s&&(this._httpHeaders[e]=s)}this._httpHeaders.Range=`bytes=${e}-${s-1}`;const handleResponse=t=>{if(404!==t.statusCode)this._setReadableStream(t);else{const t=new n.MissingPDFException(`Missing PDF "${this._url}".`);this._storedError=t}};this._request=null;"http:"===this._url.protocol?this._request=r.request(createRequestOptions(this._url,this._httpHeaders),handleResponse):this._request=o.request(createRequestOptions(this._url,this._httpHeaders),handleResponse);this._request.on("error",(t=>{this._storedError=t}));this._request.end()}}class PDFNodeStreamFsFullReader extends BaseFullReader{constructor(t){super(t);let e=decodeURIComponent(this._url.path);c.test(this._url.href)&&(e=e.replace(/^\//,""));a.lstat(e,((t,s)=>{if(t){"ENOENT"===t.code&&(t=new n.MissingPDFException(`Missing PDF "${e}".`));this._storedError=t;this._headersCapability.reject(t)}else{this._contentLength=s.size;this._setReadableStream(a.createReadStream(e));this._headersCapability.resolve()}}))}}class PDFNodeStreamFsRangeReader extends BaseRangeReader{constructor(t,e,s){super(t);let n=decodeURIComponent(this._url.path);c.test(this._url.href)&&(n=n.replace(/^\//,""));this._setReadableStream(a.createReadStream(n,{start:e,end:s-1}))}}},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.createResponseStatusError=function createResponseStatusError(t,e){if(404===t||0===t&&e.startsWith("file:"))return new n.MissingPDFException('Missing PDF "'+e+'".');return new n.UnexpectedResponseException(`Unexpected server response (${t}) while retrieving PDF "${e}".`,t)};e.extractFilenameFromHeader=function extractFilenameFromHeader(t){const e=t("Content-Disposition");if(e){let t=(0,i.getFilenameFromContentDispositionHeader)(e);if(t.includes("%"))try{t=decodeURIComponent(t)}catch(t){}if((0,a.isPdfFile)(t))return t}return null};e.validateRangeRequestCapabilities=function validateRangeRequestCapabilities({getResponseHeader:t,isHttp:e,rangeChunkSize:s,disableRange:n}){const i={allowRangeRequests:!1,suggestedLength:void 0},a=parseInt(t("Content-Length"),10);if(!Number.isInteger(a))return i;i.suggestedLength=a;if(a<=2*s)return i;if(n||!e)return i;if("bytes"!==t("Accept-Ranges"))return i;if("identity"!==(t("Content-Encoding")||"identity"))return i;i.allowRangeRequests=!0;return i};e.validateResponseStatus=function validateResponseStatus(t){return 200===t||206===t};var n=s(1),i=s(23),a=s(6)},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.getFilenameFromContentDispositionHeader=function getFilenameFromContentDispositionHeader(t){let e=!0,s=toParamRegExp("filename\\*","i").exec(t);if(s){s=s[1];let t=rfc2616unquote(s);t=unescape(t);t=rfc5987decode(t);t=rfc2047decode(t);return fixupEncoding(t)}s=function rfc2231getparam(t){const e=[];let s;const n=toParamRegExp("filename\\*((?!0\\d)\\d+)(\\*?)","ig");for(;null!==(s=n.exec(t));){let[,t,n,i]=s;t=parseInt(t,10);if(t in e){if(0===t)break}else e[t]=[n,i]}const i=[];for(let t=0;t{Object.defineProperty(e,"__esModule",{value:!0});e.PDFNetworkStream=void 0;var n=s(1),i=s(22);class NetworkManager{constructor(t,e={}){this.url=t;this.isHttp=/^https?:/i.test(t);this.httpHeaders=this.isHttp&&e.httpHeaders||Object.create(null);this.withCredentials=e.withCredentials||!1;this.getXhr=e.getXhr||function NetworkManager_getXhr(){return new XMLHttpRequest};this.currXhrId=0;this.pendingRequests=Object.create(null)}requestRange(t,e,s){const n={begin:t,end:e};for(const t in s)n[t]=s[t];return this.request(n)}requestFull(t){return this.request(t)}request(t){const e=this.getXhr(),s=this.currXhrId++,n=this.pendingRequests[s]={xhr:e};e.open("GET",this.url);e.withCredentials=this.withCredentials;for(const t in this.httpHeaders){const s=this.httpHeaders[t];void 0!==s&&e.setRequestHeader(t,s)}if(this.isHttp&&"begin"in t&&"end"in t){e.setRequestHeader("Range",`bytes=${t.begin}-${t.end-1}`);n.expectedStatus=206}else n.expectedStatus=200;e.responseType="arraybuffer";t.onError&&(e.onerror=function(s){t.onError(e.status)});e.onreadystatechange=this.onStateChange.bind(this,s);e.onprogress=this.onProgress.bind(this,s);n.onHeadersReceived=t.onHeadersReceived;n.onDone=t.onDone;n.onError=t.onError;n.onProgress=t.onProgress;e.send(null);return s}onProgress(t,e){const s=this.pendingRequests[t];s&&s.onProgress?.(e)}onStateChange(t,e){const s=this.pendingRequests[t];if(!s)return;const i=s.xhr;if(i.readyState>=2&&s.onHeadersReceived){s.onHeadersReceived();delete s.onHeadersReceived}if(4!==i.readyState)return;if(!(t in this.pendingRequests))return;delete this.pendingRequests[t];if(0===i.status&&this.isHttp){s.onError?.(i.status);return}const a=i.status||200;if(!(200===a&&206===s.expectedStatus)&&a!==s.expectedStatus){s.onError?.(i.status);return}const r=function getArrayBuffer(t){const e=t.response;return"string"!=typeof e?e:(0,n.stringToBytes)(e).buffer}(i);if(206===a){const t=i.getResponseHeader("Content-Range"),e=/bytes (\d+)-(\d+)\/(\d+)/.exec(t);s.onDone({begin:parseInt(e[1],10),chunk:r})}else r?s.onDone({begin:0,chunk:r}):s.onError?.(i.status)}getRequestXhr(t){return this.pendingRequests[t].xhr}isPendingRequest(t){return t in this.pendingRequests}abortRequest(t){const e=this.pendingRequests[t].xhr;delete this.pendingRequests[t];e.abort()}}e.PDFNetworkStream=class PDFNetworkStream{constructor(t){this._source=t;this._manager=new NetworkManager(t.url,{httpHeaders:t.httpHeaders,withCredentials:t.withCredentials});this._rangeChunkSize=t.rangeChunkSize;this._fullRequestReader=null;this._rangeRequestReaders=[]}_onRangeRequestReaderClosed(t){const e=this._rangeRequestReaders.indexOf(t);e>=0&&this._rangeRequestReaders.splice(e,1)}getFullReader(){(0,n.assert)(!this._fullRequestReader,"PDFNetworkStream.getFullReader can only be called once.");this._fullRequestReader=new PDFNetworkStreamFullRequestReader(this._manager,this._source);return this._fullRequestReader}getRangeReader(t,e){const s=new PDFNetworkStreamRangeRequestReader(this._manager,t,e);s.onClosed=this._onRangeRequestReaderClosed.bind(this);this._rangeRequestReaders.push(s);return s}cancelAllRequests(t){this._fullRequestReader?.cancel(t);for(const e of this._rangeRequestReaders.slice(0))e.cancel(t)}};class PDFNetworkStreamFullRequestReader{constructor(t,e){this._manager=t;const s={onHeadersReceived:this._onHeadersReceived.bind(this),onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)};this._url=e.url;this._fullRequestId=t.requestFull(s);this._headersReceivedCapability=(0,n.createPromiseCapability)();this._disableRange=e.disableRange||!1;this._contentLength=e.length;this._rangeChunkSize=e.rangeChunkSize;this._rangeChunkSize||this._disableRange||(this._disableRange=!0);this._isStreamingSupported=!1;this._isRangeSupported=!1;this._cachedChunks=[];this._requests=[];this._done=!1;this._storedError=void 0;this._filename=null;this.onProgress=null}_onHeadersReceived(){const t=this._fullRequestId,e=this._manager.getRequestXhr(t),getResponseHeader=t=>e.getResponseHeader(t),{allowRangeRequests:s,suggestedLength:n}=(0,i.validateRangeRequestCapabilities)({getResponseHeader:getResponseHeader,isHttp:this._manager.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});s&&(this._isRangeSupported=!0);this._contentLength=n||this._contentLength;this._filename=(0,i.extractFilenameFromHeader)(getResponseHeader);this._isRangeSupported&&this._manager.abortRequest(t);this._headersReceivedCapability.resolve()}_onDone(t){if(t)if(this._requests.length>0){this._requests.shift().resolve({value:t.chunk,done:!1})}else this._cachedChunks.push(t.chunk);this._done=!0;if(!(this._cachedChunks.length>0)){for(const t of this._requests)t.resolve({value:void 0,done:!0});this._requests.length=0}}_onError(t){this._storedError=(0,i.createResponseStatusError)(t,this._url);this._headersReceivedCapability.reject(this._storedError);for(const t of this._requests)t.reject(this._storedError);this._requests.length=0;this._cachedChunks.length=0}_onProgress(t){this.onProgress?.({loaded:t.loaded,total:t.lengthComputable?t.total:this._contentLength})}get filename(){return this._filename}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}get contentLength(){return this._contentLength}get headersReady(){return this._headersReceivedCapability.promise}async read(){if(this._storedError)throw this._storedError;if(this._cachedChunks.length>0){return{value:this._cachedChunks.shift(),done:!1}}if(this._done)return{value:void 0,done:!0};const t=(0,n.createPromiseCapability)();this._requests.push(t);return t.promise}cancel(t){this._done=!0;this._headersReceivedCapability.reject(t);for(const t of this._requests)t.resolve({value:void 0,done:!0});this._requests.length=0;this._manager.isPendingRequest(this._fullRequestId)&&this._manager.abortRequest(this._fullRequestId);this._fullRequestReader=null}}class PDFNetworkStreamRangeRequestReader{constructor(t,e,s){this._manager=t;const n={onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)};this._url=t.url;this._requestId=t.requestRange(e,s,n);this._requests=[];this._queuedChunk=null;this._done=!1;this._storedError=void 0;this.onProgress=null;this.onClosed=null}_close(){this.onClosed?.(this)}_onDone(t){const e=t.chunk;if(this._requests.length>0){this._requests.shift().resolve({value:e,done:!1})}else this._queuedChunk=e;this._done=!0;for(const t of this._requests)t.resolve({value:void 0,done:!0});this._requests.length=0;this._close()}_onError(t){this._storedError=(0,i.createResponseStatusError)(t,this._url);for(const t of this._requests)t.reject(this._storedError);this._requests.length=0;this._queuedChunk=null}_onProgress(t){this.isStreamingSupported||this.onProgress?.({loaded:t.loaded})}get isStreamingSupported(){return!1}async read(){if(this._storedError)throw this._storedError;if(null!==this._queuedChunk){const t=this._queuedChunk;this._queuedChunk=null;return{value:t,done:!1}}if(this._done)return{value:void 0,done:!0};const t=(0,n.createPromiseCapability)();this._requests.push(t);return t.promise}cancel(t){this._done=!0;for(const t of this._requests)t.resolve({value:void 0,done:!0});this._requests.length=0;this._manager.isPendingRequest(this._requestId)&&this._manager.abortRequest(this._requestId);this._close()}}},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.PDFFetchStream=void 0;var n=s(1),i=s(22);function createFetchOptions(t,e,s){return{method:"GET",headers:t,signal:s.signal,mode:"cors",credentials:e?"include":"same-origin",redirect:"follow"}}function createHeaders(t){const e=new Headers;for(const s in t){const n=t[s];void 0!==n&&e.append(s,n)}return e}function getArrayBuffer(t){if(t instanceof Uint8Array)return t.buffer;if(t instanceof ArrayBuffer)return t;(0,n.warn)(`getArrayBuffer - unexpected data format: ${t}`);return new Uint8Array(t).buffer}e.PDFFetchStream=class PDFFetchStream{constructor(t){this.source=t;this.isHttp=/^https?:/i.test(t.url);this.httpHeaders=this.isHttp&&t.httpHeaders||{};this._fullRequestReader=null;this._rangeRequestReaders=[]}get _progressiveDataLength(){return this._fullRequestReader?._loaded??0}getFullReader(){(0,n.assert)(!this._fullRequestReader,"PDFFetchStream.getFullReader can only be called once.");this._fullRequestReader=new PDFFetchStreamReader(this);return this._fullRequestReader}getRangeReader(t,e){if(e<=this._progressiveDataLength)return null;const s=new PDFFetchStreamRangeReader(this,t,e);this._rangeRequestReaders.push(s);return s}cancelAllRequests(t){this._fullRequestReader?.cancel(t);for(const e of this._rangeRequestReaders.slice(0))e.cancel(t)}};class PDFFetchStreamReader{constructor(t){this._stream=t;this._reader=null;this._loaded=0;this._filename=null;const e=t.source;this._withCredentials=e.withCredentials||!1;this._contentLength=e.length;this._headersCapability=(0,n.createPromiseCapability)();this._disableRange=e.disableRange||!1;this._rangeChunkSize=e.rangeChunkSize;this._rangeChunkSize||this._disableRange||(this._disableRange=!0);this._abortController=new AbortController;this._isStreamingSupported=!e.disableStream;this._isRangeSupported=!e.disableRange;this._headers=createHeaders(this._stream.httpHeaders);const s=e.url;fetch(s,createFetchOptions(this._headers,this._withCredentials,this._abortController)).then((t=>{if(!(0,i.validateResponseStatus)(t.status))throw(0,i.createResponseStatusError)(t.status,s);this._reader=t.body.getReader();this._headersCapability.resolve();const getResponseHeader=e=>t.headers.get(e),{allowRangeRequests:e,suggestedLength:a}=(0,i.validateRangeRequestCapabilities)({getResponseHeader:getResponseHeader,isHttp:this._stream.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});this._isRangeSupported=e;this._contentLength=a||this._contentLength;this._filename=(0,i.extractFilenameFromHeader)(getResponseHeader);!this._isStreamingSupported&&this._isRangeSupported&&this.cancel(new n.AbortException("Streaming is disabled."))})).catch(this._headersCapability.reject);this.onProgress=null}get headersReady(){return this._headersCapability.promise}get filename(){return this._filename}get contentLength(){return this._contentLength}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}async read(){await this._headersCapability.promise;const{value:t,done:e}=await this._reader.read();if(e)return{value:t,done:e};this._loaded+=t.byteLength;this.onProgress?.({loaded:this._loaded,total:this._contentLength});return{value:getArrayBuffer(t),done:!1}}cancel(t){this._reader?.cancel(t);this._abortController.abort()}}class PDFFetchStreamRangeReader{constructor(t,e,s){this._stream=t;this._reader=null;this._loaded=0;const a=t.source;this._withCredentials=a.withCredentials||!1;this._readCapability=(0,n.createPromiseCapability)();this._isStreamingSupported=!a.disableStream;this._abortController=new AbortController;this._headers=createHeaders(this._stream.httpHeaders);this._headers.append("Range",`bytes=${e}-${s-1}`);const r=a.url;fetch(r,createFetchOptions(this._headers,this._withCredentials,this._abortController)).then((t=>{if(!(0,i.validateResponseStatus)(t.status))throw(0,i.createResponseStatusError)(t.status,r);this._readCapability.resolve();this._reader=t.body.getReader()})).catch(this._readCapability.reject);this.onProgress=null}get isStreamingSupported(){return this._isStreamingSupported}async read(){await this._readCapability.promise;const{value:t,done:e}=await this._reader.read();if(e)return{value:t,done:e};this._loaded+=t.byteLength;this.onProgress?.({loaded:this._loaded});return{value:getArrayBuffer(t),done:!1}}cancel(t){this._reader?.cancel(t);this._abortController.abort()}}},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.TextLayerRenderTask=void 0;e.renderTextLayer=function renderTextLayer(t){if(!t.textContentSource&&(t.textContent||t.textContentStream)){(0,i.deprecated)("The TextLayerRender `textContent`/`textContentStream` parameters will be removed in the future, please use `textContentSource` instead.");t.textContentSource=t.textContent||t.textContentStream}const e=new TextLayerRenderTask(t);e._render();return e};e.updateTextLayer=function updateTextLayer({container:t,viewport:e,textDivs:s,textDivProperties:n,isOffscreenCanvasSupported:a,mustRotate:r=!0,mustRescale:o=!0}){r&&(0,i.setLayerDimensions)(t,{rotation:e.rotation});if(o){const t=getCtx(0,a),i={prevFontSize:null,prevFontFamily:null,div:null,scale:e.scale*(globalThis.devicePixelRatio||1),properties:null,ctx:t};for(const t of s){i.properties=n.get(t);i.div=t;layout(i)}}};var n=s(1),i=s(6);const a=30,r=new Map;function getCtx(t,e){let s;if(e&&n.FeatureTest.isOffscreenCanvasSupported)s=new OffscreenCanvas(t,t).getContext("2d",{alpha:!1});else{const e=document.createElement("canvas");e.width=e.height=t;s=e.getContext("2d",{alpha:!1})}return s}function appendText(t,e,s){const i=document.createElement("span"),o={angle:0,canvasWidth:0,hasText:""!==e.str,hasEOL:e.hasEOL,fontSize:0};t._textDivs.push(i);const l=n.Util.transform(t._transform,e.transform);let c=Math.atan2(l[1],l[0]);const h=s[e.fontName];h.vertical&&(c+=Math.PI/2);const d=Math.hypot(l[2],l[3]),u=d*function getAscent(t,e){const s=r.get(t);if(s)return s;const n=getCtx(a,e);n.font=`30px ${t}`;const i=n.measureText("");let o=i.fontBoundingBoxAscent,l=Math.abs(i.fontBoundingBoxDescent);if(o){const e=o/(o+l);r.set(t,e);n.canvas.width=n.canvas.height=0;return e}n.strokeStyle="red";n.clearRect(0,0,a,a);n.strokeText("g",0,0);let c=n.getImageData(0,0,a,a).data;l=0;for(let t=c.length-1-3;t>=0;t-=4)if(c[t]>0){l=Math.ceil(t/4/a);break}n.clearRect(0,0,a,a);n.strokeText("A",0,a);c=n.getImageData(0,0,a,a).data;o=0;for(let t=0,e=c.length;t0){o=a-Math.floor(t/4/a);break}n.canvas.width=n.canvas.height=0;if(o){const e=o/(o+l);r.set(t,e);return e}r.set(t,.8);return.8}(h.fontFamily,t._isOffscreenCanvasSupported);let p,g;if(0===c){p=l[4];g=l[5]-u}else{p=l[4]+u*Math.sin(c);g=l[5]-u*Math.cos(c)}const f="calc(var(--scale-factor)*",m=i.style;if(t._container===t._rootContainer){m.left=`${(100*p/t._pageWidth).toFixed(2)}%`;m.top=`${(100*g/t._pageHeight).toFixed(2)}%`}else{m.left=`${f}${p.toFixed(2)}px)`;m.top=`${f}${g.toFixed(2)}px)`}m.fontSize=`${f}${d.toFixed(2)}px)`;m.fontFamily=h.fontFamily;o.fontSize=d;i.setAttribute("role","presentation");i.textContent=e.str;i.dir=e.dir;t._fontInspectorEnabled&&(i.dataset.fontName=e.fontName);0!==c&&(o.angle=c*(180/Math.PI));let b=!1;if(e.str.length>1)b=!0;else if(" "!==e.str&&e.transform[0]!==e.transform[3]){const t=Math.abs(e.transform[0]),s=Math.abs(e.transform[3]);t!==s&&Math.max(t,s)/Math.min(t,s)>1.5&&(b=!0)}b&&(o.canvasWidth=h.vertical?e.height:e.width);t._textDivProperties.set(i,o);t._isReadableStream&&t._layoutText(i)}function layout(t){const{div:e,scale:s,properties:n,ctx:i,prevFontSize:a,prevFontFamily:r}=t,{style:o}=e;let l="";if(0!==n.canvasWidth&&n.hasText){const{fontFamily:c}=o,{canvasWidth:h,fontSize:d}=n;if(a!==d||r!==c){i.font=`${d*s}px ${c}`;t.prevFontSize=d;t.prevFontFamily=c}const{width:u}=i.measureText(e.textContent);u>0&&(l=`scaleX(${h*s/u})`)}0!==n.angle&&(l=`rotate(${n.angle}deg) ${l}`);l.length>0&&(o.transform=l)}class TextLayerRenderTask{constructor({textContentSource:t,container:e,viewport:s,textDivs:a,textDivProperties:r,textContentItemsStr:o,isOffscreenCanvasSupported:l}){this._textContentSource=t;this._isReadableStream=t instanceof ReadableStream;this._container=this._rootContainer=e;this._textDivs=a||[];this._textContentItemsStr=o||[];this._fontInspectorEnabled=!!globalThis.FontInspector?.enabled;this._reader=null;this._textDivProperties=r||new WeakMap;this._canceled=!1;this._capability=(0,n.createPromiseCapability)();this._layoutTextParams={prevFontSize:null,prevFontFamily:null,div:null,scale:s.scale*(globalThis.devicePixelRatio||1),properties:null,ctx:getCtx(0,l)};const{pageWidth:c,pageHeight:h,pageX:d,pageY:u}=s.rawDims;this._transform=[1,0,0,-1,-d,u+h];this._pageWidth=c;this._pageHeight=h;(0,i.setLayerDimensions)(e,s);this._capability.promise.finally((()=>{this._layoutTextParams=null})).catch((()=>{}))}get promise(){return this._capability.promise}cancel(){this._canceled=!0;if(this._reader){this._reader.cancel(new n.AbortException("TextLayer task cancelled.")).catch((()=>{}));this._reader=null}this._capability.reject(new n.AbortException("TextLayer task cancelled."))}_processItems(t,e){for(const s of t)if(void 0!==s.str){this._textContentItemsStr.push(s.str);appendText(this,s,e)}else if("beginMarkedContentProps"===s.type||"beginMarkedContent"===s.type){const t=this._container;this._container=document.createElement("span");this._container.classList.add("markedContent");null!==s.id&&this._container.setAttribute("id",`${s.id}`);t.append(this._container)}else"endMarkedContent"===s.type&&(this._container=this._container.parentNode)}_layoutText(t){const e=this._layoutTextParams.properties=this._textDivProperties.get(t);this._layoutTextParams.div=t;layout(this._layoutTextParams);e.hasText&&this._container.append(t);if(e.hasEOL){const t=document.createElement("br");t.setAttribute("role","presentation");this._container.append(t)}}_render(){const t=(0,n.createPromiseCapability)();let e=Object.create(null);if(this._isReadableStream){const pump=()=>{this._reader.read().then((({value:s,done:n})=>{if(n)t.resolve();else{Object.assign(e,s.styles);this._processItems(s.items,e);pump()}}),t.reject)};this._reader=this._textContentSource.getReader();pump()}else{if(!this._textContentSource)throw new Error('No "textContentSource" parameter specified.');{const{items:e,styles:s}=this._textContentSource;this._processItems(e,s);t.resolve()}}t.promise.then((()=>{e=null;!function render(t){if(t._canceled)return;const e=t._textDivs,s=t._capability;if(e.length>1e5)s.resolve();else{if(!t._isReadableStream)for(const s of e)t._layoutText(s);s.resolve()}}(this)}),this._capability.reject)}}e.TextLayerRenderTask=TextLayerRenderTask},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.AnnotationEditorLayer=void 0;var n=s(1),i=s(5),a=s(28),r=s(29),o=s(6);class AnnotationEditorLayer{#bt;#At=!1;#_t=this.pointerup.bind(this);#yt=this.pointerdown.bind(this);#vt=new Map;#St=!1;#xt=!1;#Et;static _initialized=!1;constructor(t){if(!AnnotationEditorLayer._initialized){AnnotationEditorLayer._initialized=!0;a.FreeTextEditor.initialize(t.l10n);r.InkEditor.initialize(t.l10n)}t.uiManager.registerEditorTypes([a.FreeTextEditor,r.InkEditor]);this.#Et=t.uiManager;this.pageIndex=t.pageIndex;this.div=t.div;this.#bt=t.accessibilityManager;this.#Et.addLayer(this)}updateToolbar(t){this.#Et.updateToolbar(t)}updateMode(t=this.#Et.getMode()){this.#Ct();if(t===n.AnnotationEditorType.INK){this.addInkEditorIfNeeded(!1);this.disableClick()}else this.enableClick();this.#Et.unselectAll();this.div.classList.toggle("freeTextEditing",t===n.AnnotationEditorType.FREETEXT);this.div.classList.toggle("inkEditing",t===n.AnnotationEditorType.INK)}addInkEditorIfNeeded(t){if(!t&&this.#Et.getMode()!==n.AnnotationEditorType.INK)return;if(!t)for(const t of this.#vt.values())if(t.isEmpty()){t.setInBackground();return}this.#Pt({offsetX:0,offsetY:0}).setInBackground()}setEditingState(t){this.#Et.setEditingState(t)}addCommands(t){this.#Et.addCommands(t)}enable(){this.div.style.pointerEvents="auto";for(const t of this.#vt.values())t.enableEditing()}disable(){this.div.style.pointerEvents="none";for(const t of this.#vt.values())t.disableEditing()}setActiveEditor(t){this.#Et.getActive()!==t&&this.#Et.setActiveEditor(t)}enableClick(){this.div.addEventListener("pointerdown",this.#yt);this.div.addEventListener("pointerup",this.#_t)}disableClick(){this.div.removeEventListener("pointerdown",this.#yt);this.div.removeEventListener("pointerup",this.#_t)}attach(t){this.#vt.set(t.id,t)}detach(t){this.#vt.delete(t.id);this.#bt?.removePointerInTextLayer(t.contentDiv)}remove(t){this.#Et.removeEditor(t);this.detach(t);t.div.style.display="none";setTimeout((()=>{t.div.style.display="";t.div.remove();t.isAttachedToDOM=!1;document.activeElement===document.body&&this.#Et.focusMainContainer()}),0);this.#xt||this.addInkEditorIfNeeded(!1)}#Tt(t){if(t.parent!==this){this.attach(t);t.parent?.detach(t);t.setParent(this);if(t.div&&t.isAttachedToDOM){t.div.remove();this.div.append(t.div)}}}add(t){this.#Tt(t);this.#Et.addEditor(t);this.attach(t);if(!t.isAttachedToDOM){const e=t.render();this.div.append(e);t.isAttachedToDOM=!0}this.moveEditorInDOM(t);t.onceAdded();this.#Et.addToAnnotationStorage(t)}moveEditorInDOM(t){this.#bt?.moveElementInDOM(this.div,t.div,t.contentDiv,!0)}addOrRebuild(t){t.needsToBeRebuilt()?t.rebuild():this.add(t)}addANewEditor(t){this.addCommands({cmd:()=>{this.addOrRebuild(t)},undo:()=>{t.remove()},mustExec:!0})}addUndoableEditor(t){this.addCommands({cmd:()=>{this.addOrRebuild(t)},undo:()=>{t.remove()},mustExec:!1})}getNextId(){return this.#Et.getId()}#wt(t){switch(this.#Et.getMode()){case n.AnnotationEditorType.FREETEXT:return new a.FreeTextEditor(t);case n.AnnotationEditorType.INK:return new r.InkEditor(t)}return null}deserialize(t){switch(t.annotationType){case n.AnnotationEditorType.FREETEXT:return a.FreeTextEditor.deserialize(t,this,this.#Et);case n.AnnotationEditorType.INK:return r.InkEditor.deserialize(t,this,this.#Et)}return null}#Pt(t){const e=this.getNextId(),s=this.#wt({parent:this,id:e,x:t.offsetX,y:t.offsetY,uiManager:this.#Et});s&&this.add(s);return s}setSelected(t){this.#Et.setSelected(t)}toggleSelected(t){this.#Et.toggleSelected(t)}isSelected(t){return this.#Et.isSelected(t)}unselect(t){this.#Et.unselect(t)}pointerup(t){const{isMac:e}=n.FeatureTest.platform;if(!(0!==t.button||t.ctrlKey&&e)&&t.target===this.div&&this.#St){this.#St=!1;this.#At?this.#Pt(t):this.#At=!0}}pointerdown(t){const{isMac:e}=n.FeatureTest.platform;if(0!==t.button||t.ctrlKey&&e)return;if(t.target!==this.div)return;this.#St=!0;const s=this.#Et.getActive();this.#At=!s||s.isEmpty()}drop(t){const e=t.dataTransfer.getData("text/plain"),s=this.#Et.getEditor(e);if(!s)return;t.preventDefault();t.dataTransfer.dropEffect="move";this.#Tt(s);const n=this.div.getBoundingClientRect(),i=t.clientX-n.x,a=t.clientY-n.y;s.translate(i-s.startX,a-s.startY);this.moveEditorInDOM(s);s.div.focus()}dragover(t){t.preventDefault()}destroy(){this.#Et.getActive()?.parent===this&&this.#Et.setActiveEditor(null);for(const t of this.#vt.values()){this.#bt?.removePointerInTextLayer(t.contentDiv);t.setParent(null);t.isAttachedToDOM=!1;t.div.remove()}this.div=null;this.#vt.clear();this.#Et.removeLayer(this)}#Ct(){this.#xt=!0;for(const t of this.#vt.values())t.isEmpty()&&t.remove();this.#xt=!1}render({viewport:t}){this.viewport=t;(0,o.setLayerDimensions)(this.div,t);(0,i.bindEvents)(this,this.div,["dragover","drop"]);for(const t of this.#Et.getEditors(this.pageIndex))this.add(t);this.updateMode()}update({viewport:t}){this.#Et.commitOrRemove();this.viewport=t;(0,o.setLayerDimensions)(this.div,{rotation:t.rotation});this.updateMode()}get pageDimensions(){const{pageWidth:t,pageHeight:e}=this.viewport.rawDims;return[t,e]}}e.AnnotationEditorLayer=AnnotationEditorLayer},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.FreeTextEditor=void 0;var n=s(1),i=s(5),a=s(4);class FreeTextEditor extends a.AnnotationEditor{#kt=this.editorDivBlur.bind(this);#Ft=this.editorDivFocus.bind(this);#Rt=this.editorDivInput.bind(this);#Mt=this.editorDivKeydown.bind(this);#Dt;#It="";#Ot=`${this.id}-editor`;#Lt=!1;#Nt;static _freeTextDefaultContent="";static _l10nPromise;static _internalPadding=0;static _defaultColor=null;static _defaultFontSize=10;static _keyboardManager=new i.KeyboardManager([[["ctrl+Enter","mac+meta+Enter","Escape","mac+Escape"],FreeTextEditor.prototype.commitOrRemove]]);static _type="freetext";constructor(t){super({...t,name:"freeTextEditor"});this.#Dt=t.color||FreeTextEditor._defaultColor||a.AnnotationEditor._defaultLineColor;this.#Nt=t.fontSize||FreeTextEditor._defaultFontSize}static initialize(t){this._l10nPromise=new Map(["free_text2_default_content","editor_free_text2_aria_label"].map((e=>[e,t.get(e)])));const e=getComputedStyle(document.documentElement);this._internalPadding=parseFloat(e.getPropertyValue("--freetext-padding"))}static updateDefaultParams(t,e){switch(t){case n.AnnotationEditorParamsType.FREETEXT_SIZE:FreeTextEditor._defaultFontSize=e;break;case n.AnnotationEditorParamsType.FREETEXT_COLOR:FreeTextEditor._defaultColor=e}}updateParams(t,e){switch(t){case n.AnnotationEditorParamsType.FREETEXT_SIZE:this.#jt(e);break;case n.AnnotationEditorParamsType.FREETEXT_COLOR:this.#Ut(e)}}static get defaultPropertiesToUpdate(){return[[n.AnnotationEditorParamsType.FREETEXT_SIZE,FreeTextEditor._defaultFontSize],[n.AnnotationEditorParamsType.FREETEXT_COLOR,FreeTextEditor._defaultColor||a.AnnotationEditor._defaultLineColor]]}get propertiesToUpdate(){return[[n.AnnotationEditorParamsType.FREETEXT_SIZE,this.#Nt],[n.AnnotationEditorParamsType.FREETEXT_COLOR,this.#Dt]]}#jt(t){const setFontsize=t=>{this.editorDiv.style.fontSize=`calc(${t}px * var(--scale-factor))`;this.translate(0,-(t-this.#Nt)*this.parentScale);this.#Nt=t;this.#Bt()},e=this.#Nt;this.addCommands({cmd:()=>{setFontsize(t)},undo:()=>{setFontsize(e)},mustExec:!0,type:n.AnnotationEditorParamsType.FREETEXT_SIZE,overwriteIfSameType:!0,keepUndo:!0})}#Ut(t){const e=this.#Dt;this.addCommands({cmd:()=>{this.#Dt=this.editorDiv.style.color=t},undo:()=>{this.#Dt=this.editorDiv.style.color=e},mustExec:!0,type:n.AnnotationEditorParamsType.FREETEXT_COLOR,overwriteIfSameType:!0,keepUndo:!0})}getInitialTranslation(){const t=this.parentScale;return[-FreeTextEditor._internalPadding*t,-(FreeTextEditor._internalPadding+this.#Nt)*t]}rebuild(){super.rebuild();null!==this.div&&(this.isAttachedToDOM||this.parent.add(this))}enableEditMode(){if(!this.isInEditMode()){this.parent.setEditingState(!1);this.parent.updateToolbar(n.AnnotationEditorType.FREETEXT);super.enableEditMode();this.overlayDiv.classList.remove("enabled");this.editorDiv.contentEditable=!0;this.div.draggable=!1;this.div.removeAttribute("aria-activedescendant");this.editorDiv.addEventListener("keydown",this.#Mt);this.editorDiv.addEventListener("focus",this.#Ft);this.editorDiv.addEventListener("blur",this.#kt);this.editorDiv.addEventListener("input",this.#Rt)}}disableEditMode(){if(this.isInEditMode()){this.parent.setEditingState(!0);super.disableEditMode();this.overlayDiv.classList.add("enabled");this.editorDiv.contentEditable=!1;this.div.setAttribute("aria-activedescendant",this.#Ot);this.div.draggable=!0;this.editorDiv.removeEventListener("keydown",this.#Mt);this.editorDiv.removeEventListener("focus",this.#Ft);this.editorDiv.removeEventListener("blur",this.#kt);this.editorDiv.removeEventListener("input",this.#Rt);this.div.focus({preventScroll:!0});this.isEditing=!1;this.parent.div.classList.add("freeTextEditing")}}focusin(t){super.focusin(t);t.target!==this.editorDiv&&this.editorDiv.focus()}onceAdded(){if(!this.width){this.enableEditMode();this.editorDiv.focus()}}isEmpty(){return!this.editorDiv||""===this.editorDiv.innerText.trim()}remove(){this.isEditing=!1;this.parent.setEditingState(!0);this.parent.div.classList.add("freeTextEditing");super.remove()}#qt(){const t=this.editorDiv.getElementsByTagName("div");if(0===t.length)return this.editorDiv.innerText;const e=[];for(const s of t)e.push(s.innerText.replace(/\r\n?|\n/,""));return e.join("\n")}#Bt(){const[t,e]=this.parentDimensions;let s;if(this.isAttachedToDOM)s=this.div.getBoundingClientRect();else{const{currentLayer:t,div:e}=this,n=e.style.display;e.style.display="hidden";t.div.append(this.div);s=e.getBoundingClientRect();e.remove();e.style.display=n}this.width=s.width/t;this.height=s.height/e}commit(){if(this.isInEditMode()){super.commit();if(!this.#Lt){this.#Lt=!0;this.parent.addUndoableEditor(this)}this.disableEditMode();this.#It=this.#qt().trimEnd();this.#Bt()}}shouldGetKeyboardEvents(){return this.isInEditMode()}dblclick(t){this.enableEditMode();this.editorDiv.focus()}keydown(t){if(t.target===this.div&&"Enter"===t.key){this.enableEditMode();this.editorDiv.focus()}}editorDivKeydown(t){FreeTextEditor._keyboardManager.exec(this,t)}editorDivFocus(t){this.isEditing=!0}editorDivBlur(t){this.isEditing=!1}editorDivInput(t){this.parent.div.classList.toggle("freeTextEditing",this.isEmpty())}disableEditing(){this.editorDiv.setAttribute("role","comment");this.editorDiv.removeAttribute("aria-multiline")}enableEditing(){this.editorDiv.setAttribute("role","textbox");this.editorDiv.setAttribute("aria-multiline",!0)}render(){if(this.div)return this.div;let t,e;if(this.width){t=this.x;e=this.y}super.render();this.editorDiv=document.createElement("div");this.editorDiv.className="internal";this.editorDiv.setAttribute("id",this.#Ot);this.enableEditing();FreeTextEditor._l10nPromise.get("editor_free_text2_aria_label").then((t=>this.editorDiv?.setAttribute("aria-label",t)));FreeTextEditor._l10nPromise.get("free_text2_default_content").then((t=>this.editorDiv?.setAttribute("default-content",t)));this.editorDiv.contentEditable=!0;const{style:s}=this.editorDiv;s.fontSize=`calc(${this.#Nt}px * var(--scale-factor))`;s.color=this.#Dt;this.div.append(this.editorDiv);this.overlayDiv=document.createElement("div");this.overlayDiv.classList.add("overlay","enabled");this.div.append(this.overlayDiv);(0,i.bindEvents)(this,this.div,["dblclick","keydown"]);if(this.width){const[s,n]=this.parentDimensions;this.setAt(t*s,e*n,this.width*s,this.height*n);for(const t of this.#It.split("\n")){const e=document.createElement("div");e.append(t?document.createTextNode(t):document.createElement("br"));this.editorDiv.append(e)}this.div.draggable=!0;this.editorDiv.contentEditable=!1}else{this.div.draggable=!1;this.editorDiv.contentEditable=!0}return this.div}get contentDiv(){return this.editorDiv}static deserialize(t,e,s){const i=super.deserialize(t,e,s);i.#Nt=t.fontSize;i.#Dt=n.Util.makeHexColor(...t.color);i.#It=t.value;return i}serialize(){if(this.isEmpty())return null;const t=FreeTextEditor._internalPadding*this.parentScale,e=this.getRect(t,t),s=a.AnnotationEditor._colorManager.convert(this.isAttachedToDOM?getComputedStyle(this.editorDiv).color:this.#Dt);return{annotationType:n.AnnotationEditorType.FREETEXT,color:s,fontSize:this.#Nt,value:this.#It,pageIndex:this.pageIndex,rect:e,rotation:this.rotation}}}e.FreeTextEditor=FreeTextEditor},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.InkEditor=void 0;Object.defineProperty(e,"fitCurve",{enumerable:!0,get:function(){return a.fitCurve}});var n=s(1),i=s(4),a=s(30),r=s(5);const o=16;class InkEditor extends i.AnnotationEditor{#Wt=0;#Ht=0;#Gt=0;#zt=this.canvasPointermove.bind(this);#Vt=this.canvasPointerleave.bind(this);#Xt=this.canvasPointerup.bind(this);#$t=this.canvasPointerdown.bind(this);#Yt=!1;#Kt=!1;#Jt=null;#Qt=null;#Zt=0;#te=0;#ee=null;static _defaultColor=null;static _defaultOpacity=1;static _defaultThickness=1;static _l10nPromise;static _type="ink";constructor(t){super({...t,name:"inkEditor"});this.color=t.color||null;this.thickness=t.thickness||null;this.opacity=t.opacity||null;this.paths=[];this.bezierPath2D=[];this.currentPath=[];this.scaleFactor=1;this.translationX=this.translationY=0;this.x=0;this.y=0}static initialize(t){this._l10nPromise=new Map(["editor_ink_canvas_aria_label","editor_ink2_aria_label"].map((e=>[e,t.get(e)])))}static updateDefaultParams(t,e){switch(t){case n.AnnotationEditorParamsType.INK_THICKNESS:InkEditor._defaultThickness=e;break;case n.AnnotationEditorParamsType.INK_COLOR:InkEditor._defaultColor=e;break;case n.AnnotationEditorParamsType.INK_OPACITY:InkEditor._defaultOpacity=e/100}}updateParams(t,e){switch(t){case n.AnnotationEditorParamsType.INK_THICKNESS:this.#se(e);break;case n.AnnotationEditorParamsType.INK_COLOR:this.#Ut(e);break;case n.AnnotationEditorParamsType.INK_OPACITY:this.#ne(e)}}static get defaultPropertiesToUpdate(){return[[n.AnnotationEditorParamsType.INK_THICKNESS,InkEditor._defaultThickness],[n.AnnotationEditorParamsType.INK_COLOR,InkEditor._defaultColor||i.AnnotationEditor._defaultLineColor],[n.AnnotationEditorParamsType.INK_OPACITY,Math.round(100*InkEditor._defaultOpacity)]]}get propertiesToUpdate(){return[[n.AnnotationEditorParamsType.INK_THICKNESS,this.thickness||InkEditor._defaultThickness],[n.AnnotationEditorParamsType.INK_COLOR,this.color||InkEditor._defaultColor||i.AnnotationEditor._defaultLineColor],[n.AnnotationEditorParamsType.INK_OPACITY,Math.round(100*(this.opacity??InkEditor._defaultOpacity))]]}#se(t){const e=this.thickness;this.addCommands({cmd:()=>{this.thickness=t;this.#ie()},undo:()=>{this.thickness=e;this.#ie()},mustExec:!0,type:n.AnnotationEditorParamsType.INK_THICKNESS,overwriteIfSameType:!0,keepUndo:!0})}#Ut(t){const e=this.color;this.addCommands({cmd:()=>{this.color=t;this.#ae()},undo:()=>{this.color=e;this.#ae()},mustExec:!0,type:n.AnnotationEditorParamsType.INK_COLOR,overwriteIfSameType:!0,keepUndo:!0})}#ne(t){t/=100;const e=this.opacity;this.addCommands({cmd:()=>{this.opacity=t;this.#ae()},undo:()=>{this.opacity=e;this.#ae()},mustExec:!0,type:n.AnnotationEditorParamsType.INK_OPACITY,overwriteIfSameType:!0,keepUndo:!0})}rebuild(){super.rebuild();if(null!==this.div){if(!this.canvas){this.#re();this.#oe()}if(!this.isAttachedToDOM){this.parent.add(this);this.#le()}this.#ie()}}remove(){if(null!==this.canvas){this.isEmpty()||this.commit();this.canvas.width=this.canvas.height=0;this.canvas.remove();this.canvas=null;this.#Qt.disconnect();this.#Qt=null;super.remove()}}setParent(t){!this.parent&&t?this._uiManager.removeShouldRescale(this):this.parent&&null===t&&this._uiManager.addShouldRescale(this);super.setParent(t)}onScaleChanging(){const[t,e]=this.parentDimensions,s=this.width*t,n=this.height*e;this.setDimensions(s,n)}enableEditMode(){if(!this.#Yt&&null!==this.canvas){super.enableEditMode();this.div.draggable=!1;this.canvas.addEventListener("pointerdown",this.#$t);this.canvas.addEventListener("pointerup",this.#Xt)}}disableEditMode(){if(this.isInEditMode()&&null!==this.canvas){super.disableEditMode();this.div.draggable=!this.isEmpty();this.div.classList.remove("editing");this.canvas.removeEventListener("pointerdown",this.#$t);this.canvas.removeEventListener("pointerup",this.#Xt)}}onceAdded(){this.div.draggable=!this.isEmpty()}isEmpty(){return 0===this.paths.length||1===this.paths.length&&0===this.paths[0].length}#ce(){const{parentRotation:t,parentDimensions:[e,s]}=this;switch(t){case 90:return[0,s,s,e];case 180:return[e,s,e,s];case 270:return[e,0,s,e];default:return[0,0,e,s]}}#he(){const{ctx:t,color:e,opacity:s,thickness:n,parentScale:i,scaleFactor:a}=this;t.lineWidth=n*i/a;t.lineCap="round";t.lineJoin="round";t.miterLimit=10;t.strokeStyle=`${e}${(0,r.opacityToHex)(s)}`}#de(t,e){this.isEditing=!0;if(!this.#Kt){this.#Kt=!0;this.#le();this.thickness||=InkEditor._defaultThickness;this.color||=InkEditor._defaultColor||i.AnnotationEditor._defaultLineColor;this.opacity??=InkEditor._defaultOpacity}this.currentPath.push([t,e]);this.#Jt=null;this.#he();this.ctx.beginPath();this.ctx.moveTo(t,e);this.#ee=()=>{if(this.#ee){if(this.#Jt){if(this.isEmpty()){this.ctx.setTransform(1,0,0,1,0,0);this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height)}else this.#ae();this.ctx.lineTo(...this.#Jt);this.#Jt=null;this.ctx.stroke()}window.requestAnimationFrame(this.#ee)}};window.requestAnimationFrame(this.#ee)}#ue(t,e){const[s,n]=this.currentPath.at(-1);if(t!==s||e!==n){this.currentPath.push([t,e]);this.#Jt=[t,e]}}#pe(t,e){this.ctx.closePath();this.#ee=null;t=Math.min(Math.max(t,0),this.canvas.width);e=Math.min(Math.max(e,0),this.canvas.height);const[s,n]=this.currentPath.at(-1);t===s&&e===n||this.currentPath.push([t,e]);let i;if(1!==this.currentPath.length)i=(0,a.fitCurve)(this.currentPath,30,null);else{const s=[t,e];i=[[s,s.slice(),s.slice(),s]]}const r=InkEditor.#ge(i);this.currentPath.length=0;this.addCommands({cmd:()=>{this.paths.push(i);this.bezierPath2D.push(r);this.rebuild()},undo:()=>{this.paths.pop();this.bezierPath2D.pop();if(0===this.paths.length)this.remove();else{if(!this.canvas){this.#re();this.#oe()}this.#ie()}},mustExec:!0})}#ae(){if(this.isEmpty()){this.#fe();return}this.#he();const{canvas:t,ctx:e}=this;e.setTransform(1,0,0,1,0,0);e.clearRect(0,0,t.width,t.height);this.#fe();for(const t of this.bezierPath2D)e.stroke(t)}commit(){if(!this.#Yt){super.commit();this.isEditing=!1;this.disableEditMode();this.setInForeground();this.#Yt=!0;this.div.classList.add("disabled");this.#ie(!0);this.parent.addInkEditorIfNeeded(!0);this.parent.moveEditorInDOM(this);this.div.focus({preventScroll:!0})}}focusin(t){super.focusin(t);this.enableEditMode()}canvasPointerdown(t){if(0===t.button&&this.isInEditMode()&&!this.#Yt){this.setInForeground();"mouse"!==t.type&&this.div.focus();t.stopPropagation();this.canvas.addEventListener("pointerleave",this.#Vt);this.canvas.addEventListener("pointermove",this.#zt);this.#de(t.offsetX,t.offsetY)}}canvasPointermove(t){t.stopPropagation();this.#ue(t.offsetX,t.offsetY)}canvasPointerup(t){if(0===t.button&&this.isInEditMode()&&0!==this.currentPath.length){t.stopPropagation();this.#me(t);this.setInBackground()}}canvasPointerleave(t){this.#me(t);this.setInBackground()}#me(t){this.#pe(t.offsetX,t.offsetY);this.canvas.removeEventListener("pointerleave",this.#Vt);this.canvas.removeEventListener("pointermove",this.#zt);this.addToAnnotationStorage()}#re(){this.canvas=document.createElement("canvas");this.canvas.width=this.canvas.height=0;this.canvas.className="inkEditorCanvas";InkEditor._l10nPromise.get("editor_ink_canvas_aria_label").then((t=>this.canvas?.setAttribute("aria-label",t)));this.div.append(this.canvas);this.ctx=this.canvas.getContext("2d")}#oe(){let t=null;this.#Qt=new ResizeObserver((e=>{const s=e[0].contentRect;if(s.width&&s.height){null!==t&&clearTimeout(t);t=setTimeout((()=>{this.fixDims();t=null}),100);this.setDimensions(s.width,s.height)}}));this.#Qt.observe(this.div)}render(){if(this.div)return this.div;let t,e;if(this.width){t=this.x;e=this.y}super.render();InkEditor._l10nPromise.get("editor_ink2_aria_label").then((t=>this.div?.setAttribute("aria-label",t)));const[s,n,i,a]=this.#ce();this.setAt(s,n,0,0);this.setDims(i,a);this.#re();if(this.width){const[s,n]=this.parentDimensions;this.setAt(t*s,e*n,this.width*s,this.height*n);this.#Kt=!0;this.#le();this.setDims(this.width*s,this.height*n);this.#ae();this.#be();this.div.classList.add("disabled")}else{this.div.classList.add("editing");this.enableEditMode()}this.#oe();return this.div}#le(){if(!this.#Kt)return;const[t,e]=this.parentDimensions;this.canvas.width=Math.ceil(this.width*t);this.canvas.height=Math.ceil(this.height*e);this.#fe()}setDimensions(t,e){const s=Math.round(t),n=Math.round(e);if(this.#Zt===s&&this.#te===n)return;this.#Zt=s;this.#te=n;this.canvas.style.visibility="hidden";if(this.#Wt&&Math.abs(this.#Wt-t/e)>.01){e=Math.ceil(t/this.#Wt);this.setDims(t,e)}const[i,a]=this.parentDimensions;this.width=t/i;this.height=e/a;this.#Yt&&this.#Ae(t,e);this.#le();this.#ae();this.canvas.style.visibility="visible"}#Ae(t,e){const s=this.#_e(),n=(t-s)/this.#Gt,i=(e-s)/this.#Ht;this.scaleFactor=Math.min(n,i)}#fe(){const t=this.#_e()/2;this.ctx.setTransform(this.scaleFactor,0,0,this.scaleFactor,this.translationX*this.scaleFactor+t,this.translationY*this.scaleFactor+t)}static#ge(t){const e=new Path2D;for(let s=0,n=t.length;s=1){t.minHeight="16px";t.minWidth=`${Math.round(this.#Wt*o)}px`}else{t.minWidth="16px";t.minHeight=`${Math.round(o/this.#Wt)}px`}}static deserialize(t,e,s){const i=super.deserialize(t,e,s);i.thickness=t.thickness;i.color=n.Util.makeHexColor(...t.color);i.opacity=t.opacity;const[a,r]=i.pageDimensions,l=i.width*a,c=i.height*r,h=i.parentScale,d=t.thickness/2;i.#Wt=l/c;i.#Yt=!0;i.#Zt=Math.round(l);i.#te=Math.round(c);for(const{bezier:e}of t.paths){const t=[];i.paths.push(t);let s=h*(e[0]-d),n=h*(c-e[1]-d);for(let i=2,a=e.length;i{Object.defineProperty(e,"__esModule",{value:!0});e.fitCurve=void 0;const n=s(31);e.fitCurve=n},t=>{function fitCubic(t,e,s,n,i){var a,r,o,l,c,h,d,u,p,g,f,m,b;if(2===t.length){m=maths.vectorLen(maths.subtract(t[0],t[1]))/3;return[a=[t[0],maths.addArrays(t[0],maths.mulItems(e,m)),maths.addArrays(t[1],maths.mulItems(s,m)),t[1]]]}r=function chordLengthParameterize(t){var e,s,n,i=[];t.forEach(((t,a)=>{e=a?s+maths.vectorLen(maths.subtract(t,n)):0;i.push(e);s=e;n=t}));i=i.map((t=>t/s));return i}(t);[a,l,h]=generateAndReport(t,r,r,e,s,i);if(0===l||l.9999&&t<1.0001)break}c=l;d=h}}f=[];if((u=maths.subtract(t[h-1],t[h+1])).every((t=>0===t))){u=maths.subtract(t[h-1],t[h]);[u[0],u[1]]=[-u[1],u[0]]}p=maths.normalize(u);g=maths.mulItems(p,-1);return f=(f=f.concat(fitCubic(t.slice(0,h+1),e,p,n,i))).concat(fitCubic(t.slice(h),g,s,n,i))}function generateAndReport(t,e,s,n,i,a){var r,o,l;r=function generateBezier(t,e,s,n){var i,a,r,o,l,c,h,d,u,p,g,f,m,b,A,_,y,v=t[0],S=t[t.length-1];i=[v,null,null,S];a=maths.zeros_Xx2x2(e.length);for(m=0,b=e.length;mi){i=n;a=o}}return[i,a]}(t,r,e);a&&a({bez:r,points:t,params:e,maxErr:o,maxPoint:l});return[r,o,l]}function reparameterize(t,e,s){return s.map(((s,n)=>newtonRaphsonRootFind(t,e[n],s)))}function newtonRaphsonRootFind(t,e,s){var n=maths.subtract(bezier.q(t,s),e),i=bezier.qprime(t,s),a=maths.mulMatrix(n,i),r=maths.sum(maths.squareItems(i))+2*maths.mulMatrix(n,bezier.qprimeprime(t,s));return 0===r?s:s-a/r}var mapTtoRelativeDistances=function(t,e){for(var s,n=[0],i=t[0],a=0,r=1;r<=e;r++){s=bezier.q(t,r/e);a+=maths.vectorLen(maths.subtract(s,i));n.push(a);i=s}return n=n.map((t=>t/a))};function find_t(t,e,s,n){if(e<0)return 0;if(e>1)return 1;for(var i,a,r,o,l=1;l<=n;l++)if(e<=s[l]){r=(l-1)/n;a=l/n;o=(e-(i=s[l-1]))/(s[l]-i)*(a-r)+r;break}return o}function createTangent(t,e){return maths.normalize(maths.subtract(t,e))}class maths{static zeros_Xx2x2(t){for(var e=[];t--;)e.push([0,0]);return e}static mulItems(t,e){return t.map((t=>t*e))}static mulMatrix(t,e){return t.reduce(((t,s,n)=>t+s*e[n]),0)}static subtract(t,e){return t.map(((t,s)=>t-e[s]))}static addArrays(t,e){return t.map(((t,s)=>t+e[s]))}static addItems(t,e){return t.map((t=>t+e))}static sum(t){return t.reduce(((t,e)=>t+e))}static dot(t,e){return maths.mulMatrix(t,e)}static vectorLen(t){return Math.hypot(...t)}static divItems(t,e){return t.map((t=>t/e))}static squareItems(t){return t.map((t=>t*t))}static normalize(t){return this.divItems(t,this.vectorLen(t))}}class bezier{static q(t,e){var s=1-e,n=maths.mulItems(t[0],s*s*s),i=maths.mulItems(t[1],3*s*s*e),a=maths.mulItems(t[2],3*s*e*e),r=maths.mulItems(t[3],e*e*e);return maths.addArrays(maths.addArrays(n,i),maths.addArrays(a,r))}static qprime(t,e){var s=1-e,n=maths.mulItems(maths.subtract(t[1],t[0]),3*s*s),i=maths.mulItems(maths.subtract(t[2],t[1]),6*s*e),a=maths.mulItems(maths.subtract(t[3],t[2]),3*e*e);return maths.addArrays(maths.addArrays(n,i),a)}static qprimeprime(t,e){return maths.addArrays(maths.mulItems(maths.addArrays(maths.subtract(t[2],maths.mulItems(t[1],2)),t[0]),6*(1-e)),maths.mulItems(maths.addArrays(maths.subtract(t[3],maths.mulItems(t[2],2)),t[1]),6*e))}}t.exports=function fitCurve(t,e,s){if(!Array.isArray(t))throw new TypeError("First argument should be an array");t.forEach((e=>{if(!Array.isArray(e)||e.some((t=>"number"!=typeof t))||e.length!==t[0].length)throw Error("Each point should be an array of numbers. Each point should have the same amount of numbers.")}));if((t=t.filter(((e,s)=>0===s||!e.every(((e,n)=>e===t[s-1][n]))))).length<2)return[];const n=t.length,i=createTangent(t[1],t[0]),a=createTangent(t[n-2],t[n-1]);return fitCubic(t,i,a,e,s)};t.exports.fitCubic=fitCubic;t.exports.createTangent=createTangent},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.AnnotationLayer=void 0;var n=s(1),i=s(6),a=s(3),r=s(33),o=s(34);const l=1e3,c=new WeakSet;function getRectDims(t){return{width:t[2]-t[0],height:t[3]-t[1]}}class AnnotationElementFactory{static create(t){switch(t.data.annotationType){case n.AnnotationType.LINK:return new LinkAnnotationElement(t);case n.AnnotationType.TEXT:return new TextAnnotationElement(t);case n.AnnotationType.WIDGET:switch(t.data.fieldType){case"Tx":return new TextWidgetAnnotationElement(t);case"Btn":return t.data.radioButton?new RadioButtonWidgetAnnotationElement(t):t.data.checkBox?new CheckboxWidgetAnnotationElement(t):new PushButtonWidgetAnnotationElement(t);case"Ch":return new ChoiceWidgetAnnotationElement(t)}return new WidgetAnnotationElement(t);case n.AnnotationType.POPUP:return new PopupAnnotationElement(t);case n.AnnotationType.FREETEXT:return new FreeTextAnnotationElement(t);case n.AnnotationType.LINE:return new LineAnnotationElement(t);case n.AnnotationType.SQUARE:return new SquareAnnotationElement(t);case n.AnnotationType.CIRCLE:return new CircleAnnotationElement(t);case n.AnnotationType.POLYLINE:return new PolylineAnnotationElement(t);case n.AnnotationType.CARET:return new CaretAnnotationElement(t);case n.AnnotationType.INK:return new InkAnnotationElement(t);case n.AnnotationType.POLYGON:return new PolygonAnnotationElement(t);case n.AnnotationType.HIGHLIGHT:return new HighlightAnnotationElement(t);case n.AnnotationType.UNDERLINE:return new UnderlineAnnotationElement(t);case n.AnnotationType.SQUIGGLY:return new SquigglyAnnotationElement(t);case n.AnnotationType.STRIKEOUT:return new StrikeOutAnnotationElement(t);case n.AnnotationType.STAMP:return new StampAnnotationElement(t);case n.AnnotationType.FILEATTACHMENT:return new FileAttachmentAnnotationElement(t);default:return new AnnotationElement(t)}}}class AnnotationElement{constructor(t,{isRenderable:e=!1,ignoreBorder:s=!1,createQuadrilaterals:n=!1}={}){this.isRenderable=e;this.data=t.data;this.layer=t.layer;this.page=t.page;this.viewport=t.viewport;this.linkService=t.linkService;this.downloadManager=t.downloadManager;this.imageResourcesPath=t.imageResourcesPath;this.renderForms=t.renderForms;this.svgFactory=t.svgFactory;this.annotationStorage=t.annotationStorage;this.enableScripting=t.enableScripting;this.hasJSActions=t.hasJSActions;this._fieldObjects=t.fieldObjects;e&&(this.container=this._createContainer(s));n&&(this.quadrilaterals=this._createQuadrilaterals(s))}_createContainer(t=!1){const{data:e,page:s,viewport:i}=this,a=document.createElement("section");a.setAttribute("data-annotation-id",e.id);const{pageWidth:r,pageHeight:o,pageX:l,pageY:c}=i.rawDims,{width:h,height:d}=getRectDims(e.rect),u=n.Util.normalizeRect([e.rect[0],s.view[3]-e.rect[1]+s.view[1],e.rect[2],s.view[3]-e.rect[3]+s.view[1]]);if(!t&&e.borderStyle.width>0){a.style.borderWidth=`${e.borderStyle.width}px`;const t=e.borderStyle.horizontalCornerRadius,s=e.borderStyle.verticalCornerRadius;if(t>0||s>0){const e=`calc(${t}px * var(--scale-factor)) / calc(${s}px * var(--scale-factor))`;a.style.borderRadius=e}else if(this instanceof RadioButtonWidgetAnnotationElement){const t=`calc(${h}px * var(--scale-factor)) / calc(${d}px * var(--scale-factor))`;a.style.borderRadius=t}switch(e.borderStyle.style){case n.AnnotationBorderStyleType.SOLID:a.style.borderStyle="solid";break;case n.AnnotationBorderStyleType.DASHED:a.style.borderStyle="dashed";break;case n.AnnotationBorderStyleType.BEVELED:(0,n.warn)("Unimplemented border style: beveled");break;case n.AnnotationBorderStyleType.INSET:(0,n.warn)("Unimplemented border style: inset");break;case n.AnnotationBorderStyleType.UNDERLINE:a.style.borderBottomStyle="solid"}const i=e.borderColor||null;i?a.style.borderColor=n.Util.makeHexColor(0|i[0],0|i[1],0|i[2]):a.style.borderWidth=0}a.style.left=100*(u[0]-l)/r+"%";a.style.top=100*(u[1]-c)/o+"%";const{rotation:p}=e;if(e.hasOwnCanvas||0===p){a.style.width=100*h/r+"%";a.style.height=100*d/o+"%"}else this.setRotation(p,a);return a}setRotation(t,e=this.container){const{pageWidth:s,pageHeight:n}=this.viewport.rawDims,{width:i,height:a}=getRectDims(this.data.rect);let r,o;if(t%180==0){r=100*i/s;o=100*a/n}else{r=100*a/s;o=100*i/n}e.style.width=`${r}%`;e.style.height=`${o}%`;e.setAttribute("data-main-rotation",(360-t)%360)}get _commonActions(){const setColor=(t,e,s)=>{const n=s.detail[t];s.target.style[e]=r.ColorConverters[`${n[0]}_HTML`](n.slice(1))};return(0,n.shadow)(this,"_commonActions",{display:t=>{const e=t.detail.display%2==1;this.container.style.visibility=e?"hidden":"visible";this.annotationStorage.setValue(this.data.id,{hidden:e,print:0===t.detail.display||3===t.detail.display})},print:t=>{this.annotationStorage.setValue(this.data.id,{print:t.detail.print})},hidden:t=>{this.container.style.visibility=t.detail.hidden?"hidden":"visible";this.annotationStorage.setValue(this.data.id,{hidden:t.detail.hidden})},focus:t=>{setTimeout((()=>t.target.focus({preventScroll:!1})),0)},userName:t=>{t.target.title=t.detail.userName},readonly:t=>{t.detail.readonly?t.target.setAttribute("readonly",""):t.target.removeAttribute("readonly")},required:t=>{this._setRequired(t.target,t.detail.required)},bgColor:t=>{setColor("bgColor","backgroundColor",t)},fillColor:t=>{setColor("fillColor","backgroundColor",t)},fgColor:t=>{setColor("fgColor","color",t)},textColor:t=>{setColor("textColor","color",t)},borderColor:t=>{setColor("borderColor","borderColor",t)},strokeColor:t=>{setColor("strokeColor","borderColor",t)},rotation:t=>{const e=t.detail.rotation;this.setRotation(e);this.annotationStorage.setValue(this.data.id,{rotation:e})}})}_dispatchEventFromSandbox(t,e){const s=this._commonActions;for(const n of Object.keys(e.detail)){(t[n]||s[n])?.(e)}}_setDefaultPropertiesFromJS(t){if(!this.enableScripting)return;const e=this.annotationStorage.getRawValue(this.data.id);if(!e)return;const s=this._commonActions;for(const[n,i]of Object.entries(e)){const a=s[n];if(a){a({detail:{[n]:i},target:t});delete e[n]}}}_createQuadrilaterals(t=!1){if(!this.data.quadPoints)return null;const e=[],s=this.data.rect;for(const s of this.data.quadPoints){this.data.rect=[s[2].x,s[2].y,s[1].x,s[1].y];e.push(this._createContainer(t))}this.data.rect=s;return e}_createPopup(t,e){let s=this.container;if(this.quadrilaterals){t=t||this.quadrilaterals;s=this.quadrilaterals[0]}if(!t){(t=document.createElement("div")).className="popupTriggerArea";s.append(t)}const n=new PopupElement({container:s,trigger:t,color:e.color,titleObj:e.titleObj,modificationDate:e.modificationDate,contentsObj:e.contentsObj,richText:e.richText,hideWrapper:!0}).render();n.style.left="100%";s.append(n)}_renderQuadrilaterals(t){for(const e of this.quadrilaterals)e.className=t;return this.quadrilaterals}render(){(0,n.unreachable)("Abstract method `AnnotationElement.render` called")}_getElementsByName(t,e=null){const s=[];if(this._fieldObjects){const i=this._fieldObjects[t];if(i)for(const{page:t,id:a,exportValues:r}of i){if(-1===t)continue;if(a===e)continue;const i="string"==typeof r?r:null,o=document.querySelector(`[data-element-id="${a}"]`);!o||c.has(o)?s.push({id:a,exportValue:i,domElement:o}):(0,n.warn)(`_getElementsByName - element not allowed: ${a}`)}return s}for(const n of document.getElementsByName(t)){const{exportValue:t}=n,i=n.getAttribute("data-element-id");i!==e&&(c.has(n)&&s.push({id:i,exportValue:t,domElement:n}))}return s}}class LinkAnnotationElement extends AnnotationElement{constructor(t,e=null){super(t,{isRenderable:!0,ignoreBorder:!!e?.ignoreBorder,createQuadrilaterals:!0});this.isTooltipOnly=t.data.isTooltipOnly}render(){const{data:t,linkService:e}=this,s=document.createElement("a");s.setAttribute("data-element-id",t.id);let n=!1;if(t.url){e.addLinkAttributes(s,t.url,t.newWindow);n=!0}else if(t.action){this._bindNamedAction(s,t.action);n=!0}else if(t.attachment){this._bindAttachment(s,t.attachment);n=!0}else if(t.setOCGState){this.#Ee(s,t.setOCGState);n=!0}else if(t.dest){this._bindLink(s,t.dest);n=!0}else{if(t.actions&&(t.actions.Action||t.actions["Mouse Up"]||t.actions["Mouse Down"])&&this.enableScripting&&this.hasJSActions){this._bindJSAction(s,t);n=!0}if(t.resetForm){this._bindResetFormAction(s,t.resetForm);n=!0}else if(this.isTooltipOnly&&!n){this._bindLink(s,"");n=!0}}if(this.quadrilaterals)return this._renderQuadrilaterals("linkAnnotation").map(((t,e)=>{const n=0===e?s:s.cloneNode();t.append(n);return t}));this.container.className="linkAnnotation";n&&this.container.append(s);return this.container}#Ce(){this.container.setAttribute("data-internal-link","")}_bindLink(t,e){t.href=this.linkService.getDestinationHash(e);t.onclick=()=>{e&&this.linkService.goToDestination(e);return!1};(e||""===e)&&this.#Ce()}_bindNamedAction(t,e){t.href=this.linkService.getAnchorUrl("");t.onclick=()=>{this.linkService.executeNamedAction(e);return!1};this.#Ce()}_bindAttachment(t,e){t.href=this.linkService.getAnchorUrl("");t.onclick=()=>{this.downloadManager?.openOrDownloadData(this.container,e.content,e.filename);return!1};this.#Ce()}#Ee(t,e){t.href=this.linkService.getAnchorUrl("");t.onclick=()=>{this.linkService.executeSetOCGState(e);return!1};this.#Ce()}_bindJSAction(t,e){t.href=this.linkService.getAnchorUrl("");const s=new Map([["Action","onclick"],["Mouse Up","onmouseup"],["Mouse Down","onmousedown"]]);for(const n of Object.keys(e.actions)){const i=s.get(n);i&&(t[i]=()=>{this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:e.id,name:n}});return!1})}t.onclick||(t.onclick=()=>!1);this.#Ce()}_bindResetFormAction(t,e){const s=t.onclick;s||(t.href=this.linkService.getAnchorUrl(""));this.#Ce();if(this._fieldObjects)t.onclick=()=>{s?.();const{fields:t,refs:i,include:a}=e,r=[];if(0!==t.length||0!==i.length){const e=new Set(i);for(const s of t){const t=this._fieldObjects[s]||[];for(const{id:s}of t)e.add(s)}for(const t of Object.values(this._fieldObjects))for(const s of t)e.has(s.id)===a&&r.push(s)}else for(const t of Object.values(this._fieldObjects))r.push(...t);const o=this.annotationStorage,l=[];for(const t of r){const{id:e}=t;l.push(e);switch(t.type){case"text":{const s=t.defaultValue||"";o.setValue(e,{value:s});break}case"checkbox":case"radiobutton":{const s=t.defaultValue===t.exportValues;o.setValue(e,{value:s});break}case"combobox":case"listbox":{const s=t.defaultValue||"";o.setValue(e,{value:s});break}default:continue}const s=document.querySelector(`[data-element-id="${e}"]`);s&&(c.has(s)?s.dispatchEvent(new Event("resetform")):(0,n.warn)(`_bindResetFormAction - element not allowed: ${e}`))}this.enableScripting&&this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:"app",ids:l,name:"ResetForm"}});return!1};else{(0,n.warn)('_bindResetFormAction - "resetForm" action not supported, ensure that the `fieldObjects` parameter is provided.');s||(t.onclick=()=>!1)}}}class TextAnnotationElement extends AnnotationElement{constructor(t){super(t,{isRenderable:!!(t.data.hasPopup||t.data.titleObj?.str||t.data.contentsObj?.str||t.data.richText?.str)})}render(){this.container.className="textAnnotation";const t=document.createElement("img");t.src=this.imageResourcesPath+"annotation-"+this.data.name.toLowerCase()+".svg";t.alt="[{{type}} Annotation]";t.dataset.l10nId="text_annotation_type";t.dataset.l10nArgs=JSON.stringify({type:this.data.name});this.data.hasPopup||this._createPopup(t,this.data);this.container.append(t);return this.container}}class WidgetAnnotationElement extends AnnotationElement{render(){this.data.alternativeText&&(this.container.title=this.data.alternativeText);return this.container}_getKeyModifier(t){const{isWin:e,isMac:s}=n.FeatureTest.platform;return e&&t.ctrlKey||s&&t.metaKey}_setEventListener(t,e,s,n){e.includes("mouse")?t.addEventListener(e,(t=>{this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:s,value:n(t),shift:t.shiftKey,modifier:this._getKeyModifier(t)}})})):t.addEventListener(e,(t=>{this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:s,value:n(t)}})}))}_setEventListeners(t,e,s){for(const[n,i]of e)("Action"===i||this.data.actions?.[i])&&this._setEventListener(t,n,i,s)}_setBackgroundColor(t){const e=this.data.backgroundColor||null;t.style.backgroundColor=null===e?"transparent":n.Util.makeHexColor(e[0],e[1],e[2])}_setTextStyle(t){const e=["left","center","right"],{fontColor:s}=this.data.defaultAppearanceData,i=this.data.defaultAppearanceData.fontSize||9,a=t.style;let r;const roundToOneDecimal=t=>Math.round(10*t)/10;if(this.data.multiLine){const t=Math.abs(this.data.rect[3]-this.data.rect[1]-2),e=t/(Math.round(t/(n.LINE_FACTOR*i))||1);r=Math.min(i,roundToOneDecimal(e/n.LINE_FACTOR))}else{const t=Math.abs(this.data.rect[3]-this.data.rect[1]-2);r=Math.min(i,roundToOneDecimal(t/n.LINE_FACTOR))}a.fontSize=`calc(${r}px * var(--scale-factor))`;a.color=n.Util.makeHexColor(s[0],s[1],s[2]);null!==this.data.textAlignment&&(a.textAlign=e[this.data.textAlignment])}_setRequired(t,e){e?t.setAttribute("required",!0):t.removeAttribute("required");t.setAttribute("aria-required",e)}}class TextWidgetAnnotationElement extends WidgetAnnotationElement{constructor(t){super(t,{isRenderable:t.renderForms||!t.data.hasAppearance&&!!t.data.fieldValue})}setPropertyOnSiblings(t,e,s,n){const i=this.annotationStorage;for(const a of this._getElementsByName(t.name,t.id)){a.domElement&&(a.domElement[e]=s);i.setValue(a.id,{[n]:s})}}render(){const t=this.annotationStorage,e=this.data.id;this.container.className="textWidgetAnnotation";let s=null;if(this.renderForms){const n=t.getValue(e,{value:this.data.fieldValue});let i=n.formattedValue||n.value||"";const a=t.getValue(e,{charLimit:this.data.maxLen}).charLimit;a&&i.length>a&&(i=i.slice(0,a));const r={userValue:i,formattedValue:null,lastCommittedValue:null,commitKey:1};if(this.data.multiLine){s=document.createElement("textarea");s.textContent=i;this.data.doNotScroll&&(s.style.overflowY="hidden")}else{s=document.createElement("input");s.type="text";s.setAttribute("value",i);this.data.doNotScroll&&(s.style.overflowX="hidden")}c.add(s);s.setAttribute("data-element-id",e);s.disabled=this.data.readOnly;s.name=this.data.fieldName;s.tabIndex=l;this._setRequired(s,this.data.required);a&&(s.maxLength=a);s.addEventListener("input",(n=>{t.setValue(e,{value:n.target.value});this.setPropertyOnSiblings(s,"value",n.target.value,"value")}));s.addEventListener("resetform",(t=>{const e=this.data.defaultFieldValue??"";s.value=r.userValue=e;r.formattedValue=null}));let blurListener=t=>{const{formattedValue:e}=r;null!=e&&(t.target.value=e);t.target.scrollLeft=0};if(this.enableScripting&&this.hasJSActions){s.addEventListener("focus",(t=>{const{target:e}=t;r.userValue&&(e.value=r.userValue);r.lastCommittedValue=e.value;r.commitKey=1}));s.addEventListener("updatefromsandbox",(s=>{const n={value(s){r.userValue=s.detail.value??"";t.setValue(e,{value:r.userValue.toString()});s.target.value=r.userValue},formattedValue(s){const{formattedValue:n}=s.detail;r.formattedValue=n;null!=n&&s.target!==document.activeElement&&(s.target.value=n);t.setValue(e,{formattedValue:n})},selRange(t){t.target.setSelectionRange(...t.detail.selRange)},charLimit:s=>{const{charLimit:n}=s.detail,{target:i}=s;if(0===n){i.removeAttribute("maxLength");return}i.setAttribute("maxLength",n);let a=r.userValue;if(a&&!(a.length<=n)){a=a.slice(0,n);i.value=r.userValue=a;t.setValue(e,{value:a});this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:e,name:"Keystroke",value:a,willCommit:!0,commitKey:1,selStart:i.selectionStart,selEnd:i.selectionEnd}})}}};this._dispatchEventFromSandbox(n,s)}));s.addEventListener("keydown",(t=>{r.commitKey=1;let s=-1;"Escape"===t.key?s=0:"Enter"!==t.key||this.data.multiLine?"Tab"===t.key&&(r.commitKey=3):s=2;if(-1===s)return;const{value:n}=t.target;if(r.lastCommittedValue!==n){r.lastCommittedValue=n;r.userValue=n;this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:e,name:"Keystroke",value:n,willCommit:!0,commitKey:s,selStart:t.target.selectionStart,selEnd:t.target.selectionEnd}})}}));const n=blurListener;blurListener=null;s.addEventListener("blur",(t=>{if(!t.relatedTarget)return;const{value:s}=t.target;r.userValue=s;r.lastCommittedValue!==s&&this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:e,name:"Keystroke",value:s,willCommit:!0,commitKey:r.commitKey,selStart:t.target.selectionStart,selEnd:t.target.selectionEnd}});n(t)}));this.data.actions?.Keystroke&&s.addEventListener("beforeinput",(t=>{r.lastCommittedValue=null;const{data:s,target:n}=t,{value:i,selectionStart:a,selectionEnd:o}=n;let l=a,c=o;switch(t.inputType){case"deleteWordBackward":{const t=i.substring(0,a).match(/\w*[^\w]*$/);t&&(l-=t[0].length);break}case"deleteWordForward":{const t=i.substring(a).match(/^[^\w]*\w*/);t&&(c+=t[0].length);break}case"deleteContentBackward":a===o&&(l-=1);break;case"deleteContentForward":a===o&&(c+=1)}t.preventDefault();this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:e,name:"Keystroke",value:i,change:s||"",willCommit:!1,selStart:l,selEnd:c}})}));this._setEventListeners(s,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],(t=>t.target.value))}blurListener&&s.addEventListener("blur",blurListener);if(this.data.comb){const t=(this.data.rect[2]-this.data.rect[0])/a;s.classList.add("comb");s.style.letterSpacing=`calc(${t}px * var(--scale-factor) - 1ch)`}}else{s=document.createElement("div");s.textContent=this.data.fieldValue;s.style.verticalAlign="middle";s.style.display="table-cell"}this._setTextStyle(s);this._setBackgroundColor(s);this._setDefaultPropertiesFromJS(s);this.container.append(s);return this.container}}class CheckboxWidgetAnnotationElement extends WidgetAnnotationElement{constructor(t){super(t,{isRenderable:t.renderForms})}render(){const t=this.annotationStorage,e=this.data,s=e.id;let n=t.getValue(s,{value:e.exportValue===e.fieldValue}).value;if("string"==typeof n){n="Off"!==n;t.setValue(s,{value:n})}this.container.className="buttonWidgetAnnotation checkBox";const i=document.createElement("input");c.add(i);i.setAttribute("data-element-id",s);i.disabled=e.readOnly;this._setRequired(i,this.data.required);i.type="checkbox";i.name=e.fieldName;n&&i.setAttribute("checked",!0);i.setAttribute("exportValue",e.exportValue);i.tabIndex=l;i.addEventListener("change",(n=>{const{name:i,checked:a}=n.target;for(const n of this._getElementsByName(i,s)){const s=a&&n.exportValue===e.exportValue;n.domElement&&(n.domElement.checked=s);t.setValue(n.id,{value:s})}t.setValue(s,{value:a})}));i.addEventListener("resetform",(t=>{const s=e.defaultFieldValue||"Off";t.target.checked=s===e.exportValue}));if(this.enableScripting&&this.hasJSActions){i.addEventListener("updatefromsandbox",(e=>{const n={value(e){e.target.checked="Off"!==e.detail.value;t.setValue(s,{value:e.target.checked})}};this._dispatchEventFromSandbox(n,e)}));this._setEventListeners(i,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],(t=>t.target.checked))}this._setBackgroundColor(i);this._setDefaultPropertiesFromJS(i);this.container.append(i);return this.container}}class RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement{constructor(t){super(t,{isRenderable:t.renderForms})}render(){this.container.className="buttonWidgetAnnotation radioButton";const t=this.annotationStorage,e=this.data,s=e.id;let n=t.getValue(s,{value:e.fieldValue===e.buttonValue}).value;if("string"==typeof n){n=n!==e.buttonValue;t.setValue(s,{value:n})}const i=document.createElement("input");c.add(i);i.setAttribute("data-element-id",s);i.disabled=e.readOnly;this._setRequired(i,this.data.required);i.type="radio";i.name=e.fieldName;n&&i.setAttribute("checked",!0);i.tabIndex=l;i.addEventListener("change",(e=>{const{name:n,checked:i}=e.target;for(const e of this._getElementsByName(n,s))t.setValue(e.id,{value:!1});t.setValue(s,{value:i})}));i.addEventListener("resetform",(t=>{const s=e.defaultFieldValue;t.target.checked=null!=s&&s===e.buttonValue}));if(this.enableScripting&&this.hasJSActions){const n=e.buttonValue;i.addEventListener("updatefromsandbox",(e=>{const i={value:e=>{const i=n===e.detail.value;for(const n of this._getElementsByName(e.target.name)){const e=i&&n.id===s;n.domElement&&(n.domElement.checked=e);t.setValue(n.id,{value:e})}}};this._dispatchEventFromSandbox(i,e)}));this._setEventListeners(i,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],(t=>t.target.checked))}this._setBackgroundColor(i);this._setDefaultPropertiesFromJS(i);this.container.append(i);return this.container}}class PushButtonWidgetAnnotationElement extends LinkAnnotationElement{constructor(t){super(t,{ignoreBorder:t.data.hasAppearance})}render(){const t=super.render();t.className="buttonWidgetAnnotation pushButton";this.data.alternativeText&&(t.title=this.data.alternativeText);const e=t.lastChild;if(this.enableScripting&&this.hasJSActions&&e){this._setDefaultPropertiesFromJS(e);e.addEventListener("updatefromsandbox",(t=>{this._dispatchEventFromSandbox({},t)}))}return t}}class ChoiceWidgetAnnotationElement extends WidgetAnnotationElement{constructor(t){super(t,{isRenderable:t.renderForms})}render(){this.container.className="choiceWidgetAnnotation";const t=this.annotationStorage,e=this.data.id,s=t.getValue(e,{value:this.data.fieldValue}),n=document.createElement("select");c.add(n);n.setAttribute("data-element-id",e);n.disabled=this.data.readOnly;this._setRequired(n,this.data.required);n.name=this.data.fieldName;n.tabIndex=l;let i=this.data.combo&&this.data.options.length>0;if(!this.data.combo){n.size=this.data.options.length;this.data.multiSelect&&(n.multiple=!0)}n.addEventListener("resetform",(t=>{const e=this.data.defaultFieldValue;for(const t of n.options)t.selected=t.value===e}));for(const t of this.data.options){const e=document.createElement("option");e.textContent=t.displayValue;e.value=t.exportValue;if(s.value.includes(t.exportValue)){e.setAttribute("selected",!0);i=!1}n.append(e)}let a=null;if(i){const t=document.createElement("option");t.value=" ";t.setAttribute("hidden",!0);t.setAttribute("selected",!0);n.prepend(t);a=()=>{t.remove();n.removeEventListener("input",a);a=null};n.addEventListener("input",a)}const getValue=t=>{const e=t?"value":"textContent",{options:s,multiple:i}=n;return i?Array.prototype.filter.call(s,(t=>t.selected)).map((t=>t[e])):-1===s.selectedIndex?null:s[s.selectedIndex][e]};let r=getValue(!1);const getItems=t=>{const e=t.target.options;return Array.prototype.map.call(e,(t=>({displayValue:t.textContent,exportValue:t.value})))};if(this.enableScripting&&this.hasJSActions){n.addEventListener("updatefromsandbox",(s=>{const i={value(s){a?.();const i=s.detail.value,o=new Set(Array.isArray(i)?i:[i]);for(const t of n.options)t.selected=o.has(t.value);t.setValue(e,{value:getValue(!0)});r=getValue(!1)},multipleSelection(t){n.multiple=!0},remove(s){const i=n.options,a=s.detail.remove;i[a].selected=!1;n.remove(a);if(i.length>0){-1===Array.prototype.findIndex.call(i,(t=>t.selected))&&(i[0].selected=!0)}t.setValue(e,{value:getValue(!0),items:getItems(s)});r=getValue(!1)},clear(s){for(;0!==n.length;)n.remove(0);t.setValue(e,{value:null,items:[]});r=getValue(!1)},insert(s){const{index:i,displayValue:a,exportValue:o}=s.detail.insert,l=n.children[i],c=document.createElement("option");c.textContent=a;c.value=o;l?l.before(c):n.append(c);t.setValue(e,{value:getValue(!0),items:getItems(s)});r=getValue(!1)},items(s){const{items:i}=s.detail;for(;0!==n.length;)n.remove(0);for(const t of i){const{displayValue:e,exportValue:s}=t,i=document.createElement("option");i.textContent=e;i.value=s;n.append(i)}n.options.length>0&&(n.options[0].selected=!0);t.setValue(e,{value:getValue(!0),items:getItems(s)});r=getValue(!1)},indices(s){const n=new Set(s.detail.indices);for(const t of s.target.options)t.selected=n.has(t.index);t.setValue(e,{value:getValue(!0)});r=getValue(!1)},editable(t){t.target.disabled=!t.detail.editable}};this._dispatchEventFromSandbox(i,s)}));n.addEventListener("input",(s=>{const n=getValue(!0);t.setValue(e,{value:n});s.preventDefault();this.linkService.eventBus?.dispatch("dispatcheventinsandbox",{source:this,detail:{id:e,name:"Keystroke",value:r,changeEx:n,willCommit:!1,commitKey:1,keyDown:!1}})}));this._setEventListeners(n,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"],["input","Action"]],(t=>t.target.checked))}else n.addEventListener("input",(function(s){t.setValue(e,{value:getValue(!0)})}));this.data.combo&&this._setTextStyle(n);this._setBackgroundColor(n);this._setDefaultPropertiesFromJS(n);this.container.append(n);return this.container}}class PopupAnnotationElement extends AnnotationElement{static IGNORE_TYPES=new Set(["Line","Square","Circle","PolyLine","Polygon","Ink"]);constructor(t){const{data:e}=t;super(t,{isRenderable:!PopupAnnotationElement.IGNORE_TYPES.has(e.parentType)&&!!(e.titleObj?.str||e.contentsObj?.str||e.richText?.str)})}render(){this.container.className="popupAnnotation";const t=this.layer.querySelectorAll(`[data-annotation-id="${this.data.parentId}"]`);if(0===t.length)return this.container;const e=new PopupElement({container:this.container,trigger:Array.from(t),color:this.data.color,titleObj:this.data.titleObj,modificationDate:this.data.modificationDate,contentsObj:this.data.contentsObj,richText:this.data.richText}),s=this.page,i=n.Util.normalizeRect([this.data.parentRect[0],s.view[3]-this.data.parentRect[1]+s.view[1],this.data.parentRect[2],s.view[3]-this.data.parentRect[3]+s.view[1]]),a=i[0]+this.data.parentRect[2]-this.data.parentRect[0],r=i[1],{pageWidth:o,pageHeight:l,pageX:c,pageY:h}=this.viewport.rawDims;this.container.style.left=100*(a-c)/o+"%";this.container.style.top=100*(r-h)/l+"%";this.container.append(e.render());return this.container}}class PopupElement{constructor(t){this.container=t.container;this.trigger=t.trigger;this.color=t.color;this.titleObj=t.titleObj;this.modificationDate=t.modificationDate;this.contentsObj=t.contentsObj;this.richText=t.richText;this.hideWrapper=t.hideWrapper||!1;this.pinned=!1}render(){const t=document.createElement("div");t.className="popupWrapper";this.hideElement=this.hideWrapper?t:this.container;this.hideElement.hidden=!0;const e=document.createElement("div");e.className="popup";const s=this.color;if(s){const t=.7*(255-s[0])+s[0],i=.7*(255-s[1])+s[1],a=.7*(255-s[2])+s[2];e.style.backgroundColor=n.Util.makeHexColor(0|t,0|i,0|a)}const a=document.createElement("h1");a.dir=this.titleObj.dir;a.textContent=this.titleObj.str;e.append(a);const r=i.PDFDateString.toDateObject(this.modificationDate);if(r){const t=document.createElement("span");t.className="popupDate";t.textContent="{{date}}, {{time}}";t.dataset.l10nId="annotation_date_string";t.dataset.l10nArgs=JSON.stringify({date:r.toLocaleDateString(),time:r.toLocaleTimeString()});e.append(t)}if(!this.richText?.str||this.contentsObj?.str&&this.contentsObj.str!==this.richText.str){const t=this._formatContents(this.contentsObj);e.append(t)}else{o.XfaLayer.render({xfaHtml:this.richText.html,intent:"richText",div:e});e.lastChild.className="richText popupContent"}Array.isArray(this.trigger)||(this.trigger=[this.trigger]);for(const t of this.trigger){t.addEventListener("click",this._toggle.bind(this));t.addEventListener("mouseover",this._show.bind(this,!1));t.addEventListener("mouseout",this._hide.bind(this,!1))}e.addEventListener("click",this._hide.bind(this,!0));t.append(e);return t}_formatContents({str:t,dir:e}){const s=document.createElement("p");s.className="popupContent";s.dir=e;const n=t.split(/(?:\r\n?|\n)/);for(let t=0,e=n.length;t{Object.defineProperty(e,"__esModule",{value:!0});e.ColorConverters=void 0;function makeColorComp(t){return Math.floor(255*Math.max(0,Math.min(1,t))).toString(16).padStart(2,"0")}e.ColorConverters=class ColorConverters{static CMYK_G([t,e,s,n]){return["G",1-Math.min(1,.3*t+.59*s+.11*e+n)]}static G_CMYK([t]){return["CMYK",0,0,0,1-t]}static G_RGB([t]){return["RGB",t,t,t]}static G_HTML([t]){const e=makeColorComp(t);return`#${e}${e}${e}`}static RGB_G([t,e,s]){return["G",.3*t+.59*e+.11*s]}static RGB_HTML([t,e,s]){return`#${makeColorComp(t)}${makeColorComp(e)}${makeColorComp(s)}`}static T_HTML(){return"#00000000"}static CMYK_RGB([t,e,s,n]){return["RGB",1-Math.min(1,t+n),1-Math.min(1,s+n),1-Math.min(1,e+n)]}static CMYK_HTML(t){const e=this.CMYK_RGB(t).slice(1);return this.RGB_HTML(e)}static RGB_CMYK([t,e,s]){const n=1-t,i=1-e,a=1-s;return["CMYK",n,i,a,Math.min(n,i,a)]}}},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.XfaLayer=void 0;var n=s(19);e.XfaLayer=class XfaLayer{static setupStorage(t,e,s,n,i){const a=n.getValue(e,{value:null});switch(s.name){case"textarea":null!==a.value&&(t.textContent=a.value);if("print"===i)break;t.addEventListener("input",(t=>{n.setValue(e,{value:t.target.value})}));break;case"input":if("radio"===s.attributes.type||"checkbox"===s.attributes.type){a.value===s.attributes.xfaOn?t.setAttribute("checked",!0):a.value===s.attributes.xfaOff&&t.removeAttribute("checked");if("print"===i)break;t.addEventListener("change",(t=>{n.setValue(e,{value:t.target.checked?t.target.getAttribute("xfaOn"):t.target.getAttribute("xfaOff")})}))}else{null!==a.value&&t.setAttribute("value",a.value);if("print"===i)break;t.addEventListener("input",(t=>{n.setValue(e,{value:t.target.value})}))}break;case"select":if(null!==a.value)for(const t of s.children)t.attributes.value===a.value&&(t.attributes.selected=!0);t.addEventListener("input",(t=>{const s=t.target.options,i=-1===s.selectedIndex?"":s[s.selectedIndex].value;n.setValue(e,{value:i})}))}}static setAttributes({html:t,element:e,storage:s=null,intent:n,linkService:i}){const{attributes:a}=e,r=t instanceof HTMLAnchorElement;"radio"===a.type&&(a.name=`${a.name}-${n}`);for(const[e,s]of Object.entries(a))if(null!=s)switch(e){case"class":s.length&&t.setAttribute(e,s.join(" "));break;case"dataId":break;case"id":t.setAttribute("data-element-id",s);break;case"style":Object.assign(t.style,s);break;case"textContent":t.textContent=s;break;default:(!r||"href"!==e&&"newWindow"!==e)&&t.setAttribute(e,s)}r&&i.addLinkAttributes(t,a.href,a.newWindow);s&&a.dataId&&this.setupStorage(t,a.dataId,e,s)}static render(t){const e=t.annotationStorage,s=t.linkService,i=t.xfaHtml,a=t.intent||"display",r=document.createElement(i.name);i.attributes&&this.setAttributes({html:r,element:i,intent:a,linkService:s});const o=[[i,-1,r]],l=t.div;l.append(r);if(t.viewport){const e=`matrix(${t.viewport.transform.join(",")})`;l.style.transform=e}"richText"!==a&&l.setAttribute("class","xfaLayer xfaFont");const c=[];for(;o.length>0;){const[t,i,r]=o.at(-1);if(i+1===t.children.length){o.pop();continue}const l=t.children[++o.at(-1)[1]];if(null===l)continue;const{name:h}=l;if("#text"===h){const t=document.createTextNode(l.value);c.push(t);r.append(t);continue}let d;d=l?.attributes?.xmlns?document.createElementNS(l.attributes.xmlns,h):document.createElement(h);r.append(d);l.attributes&&this.setAttributes({html:d,element:l,storage:e,intent:a,linkService:s});if(l.children&&l.children.length>0)o.push([l,-1,d]);else if(l.value){const t=document.createTextNode(l.value);n.XfaText.shouldBuildText(h)&&c.push(t);d.append(t)}}for(const t of l.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea"))t.setAttribute("readOnly",!0);return{textDivs:c}}static update(t){const e=`matrix(${t.viewport.transform.join(",")})`;t.div.style.transform=e;t.div.hidden=!1}}},(t,e,s)=>{Object.defineProperty(e,"__esModule",{value:!0});e.SVGGraphics=void 0;var n=s(6),i=s(1),a=s(10);let r=class{constructor(){(0,i.unreachable)("Not implemented: SVGGraphics")}};e.SVGGraphics=r;{const o={fontStyle:"normal",fontWeight:"normal",fillColor:"#000000"},l="http://www.w3.org/XML/1998/namespace",c="http://www.w3.org/1999/xlink",h=["butt","round","square"],d=["miter","round","bevel"],createObjectURL=function(t,e="",s=!1){if(URL.createObjectURL&&"undefined"!=typeof Blob&&!s)return URL.createObjectURL(new Blob([t],{type:e}));const n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";let i=`data:${e};base64,`;for(let e=0,s=t.length;e>2]+n[(3&a)<<4|r>>4]+n[e+1>6:64]+n[e+2>1&2147483647:s>>1&2147483647;e[t]=s}function writePngChunk(t,s,n,i){let a=i;const r=s.length;n[a]=r>>24&255;n[a+1]=r>>16&255;n[a+2]=r>>8&255;n[a+3]=255&r;a+=4;n[a]=255&t.charCodeAt(0);n[a+1]=255&t.charCodeAt(1);n[a+2]=255&t.charCodeAt(2);n[a+3]=255&t.charCodeAt(3);a+=4;n.set(s,a);a+=s.length;const o=function crc32(t,s,n){let i=-1;for(let a=s;a>>8^e[s]}return-1^i}(n,i+4,a);n[a]=o>>24&255;n[a+1]=o>>16&255;n[a+2]=o>>8&255;n[a+3]=255&o}function deflateSyncUncompressed(t){let e=t.length;const s=65535,n=Math.ceil(e/s),i=new Uint8Array(2+e+5*n+4);let a=0;i[a++]=120;i[a++]=156;let r=0;for(;e>s;){i[a++]=0;i[a++]=255;i[a++]=255;i[a++]=0;i[a++]=0;i.set(t.subarray(r,r+s),a);a+=s;r+=s;e-=s}i[a++]=1;i[a++]=255&e;i[a++]=e>>8&255;i[a++]=255&~e;i[a++]=(65535&~e)>>8&255;i.set(t.subarray(r),a);a+=t.length-r;const o=function adler32(t,e,s){let n=1,i=0;for(let a=e;a>24&255;i[a++]=o>>16&255;i[a++]=o>>8&255;i[a++]=255&o;return i}function encode(e,s,n,r){const o=e.width,l=e.height;let c,h,d;const u=e.data;switch(s){case i.ImageKind.GRAYSCALE_1BPP:h=0;c=1;d=o+7>>3;break;case i.ImageKind.RGB_24BPP:h=2;c=8;d=3*o;break;case i.ImageKind.RGBA_32BPP:h=6;c=8;d=4*o;break;default:throw new Error("invalid format")}const p=new Uint8Array((1+d)*l);let g=0,f=0;for(let t=0;t>24&255,o>>16&255,o>>8&255,255&o,l>>24&255,l>>16&255,l>>8&255,255&l,c,h,0,0,0]),b=function deflateSync(t){if(!a.isNodeJS)return deflateSyncUncompressed(t);try{let e;e=parseInt(process.versions.node)>=8?t:Buffer.from(t);const s=require("zlib").deflateSync(e,{level:9});return s instanceof Uint8Array?s:new Uint8Array(s)}catch(t){(0,i.warn)("Not compressing PNG because zlib.deflateSync is unavailable: "+t)}return deflateSyncUncompressed(t)}(p),A=t.length+36+m.length+b.length,_=new Uint8Array(A);let y=0;_.set(t,y);y+=t.length;writePngChunk("IHDR",m,_,y);y+=12+m.length;writePngChunk("IDATA",b,_,y);y+=12+b.length;writePngChunk("IEND",new Uint8Array(0),_,y);return createObjectURL(_,"image/png",n)}return function convertImgDataToPng(t,e,s){return encode(t,void 0===t.kind?i.ImageKind.GRAYSCALE_1BPP:t.kind,e,s)}}();class SVGExtraState{constructor(){this.fontSizeScale=1;this.fontWeight=o.fontWeight;this.fontSize=0;this.textMatrix=i.IDENTITY_MATRIX;this.fontMatrix=i.FONT_IDENTITY_MATRIX;this.leading=0;this.textRenderingMode=i.TextRenderingMode.FILL;this.textMatrixScale=1;this.x=0;this.y=0;this.lineX=0;this.lineY=0;this.charSpacing=0;this.wordSpacing=0;this.textHScale=1;this.textRise=0;this.fillColor=o.fillColor;this.strokeColor="#000000";this.fillAlpha=1;this.strokeAlpha=1;this.lineWidth=1;this.lineJoin="";this.lineCap="";this.miterLimit=0;this.dashArray=[];this.dashPhase=0;this.dependencies=[];this.activeClipUrl=null;this.clipGroup=null;this.maskId=""}clone(){return Object.create(this)}setCurrentPoint(t,e){this.x=t;this.y=e}}function opListToTree(t){let e=[];const s=[];for(const n of t)if("save"!==n.fn)"restore"===n.fn?e=s.pop():e.push(n);else{e.push({fnId:92,fn:"group",items:[]});s.push(e);e=e.at(-1).items}return e}function pf(t){if(Number.isInteger(t))return t.toString();const e=t.toFixed(10);let s=e.length-1;if("0"!==e[s])return e;do{s--}while("0"===e[s]);return e.substring(0,"."===e[s]?s:s+1)}function pm(t){if(0===t[4]&&0===t[5]){if(0===t[1]&&0===t[2])return 1===t[0]&&1===t[3]?"":`scale(${pf(t[0])} ${pf(t[3])})`;if(t[0]===t[3]&&t[1]===-t[2]){return`rotate(${pf(180*Math.acos(t[0])/Math.PI)})`}}else if(1===t[0]&&0===t[1]&&0===t[2]&&1===t[3])return`translate(${pf(t[4])} ${pf(t[5])})`;return`matrix(${pf(t[0])} ${pf(t[1])} ${pf(t[2])} ${pf(t[3])} ${pf(t[4])} ${pf(t[5])})`}let p=0,g=0,f=0;e.SVGGraphics=r=class{constructor(t,e,s=!1){(0,n.deprecated)("The SVG back-end is no longer maintained and *may* be removed in the future.");this.svgFactory=new n.DOMSVGFactory;this.current=new SVGExtraState;this.transformMatrix=i.IDENTITY_MATRIX;this.transformStack=[];this.extraStack=[];this.commonObjs=t;this.objs=e;this.pendingClip=null;this.pendingEOFill=!1;this.embedFonts=!1;this.embeddedFonts=Object.create(null);this.cssStyle=null;this.forceDataSchema=!!s;this._operatorIdMapping=[];for(const t in i.OPS)this._operatorIdMapping[i.OPS[t]]=t}getObject(t,e=null){return"string"==typeof t?t.startsWith("g_")?this.commonObjs.get(t):this.objs.get(t):e}save(){this.transformStack.push(this.transformMatrix);const t=this.current;this.extraStack.push(t);this.current=t.clone()}restore(){this.transformMatrix=this.transformStack.pop();this.current=this.extraStack.pop();this.pendingClip=null;this.tgrp=null}group(t){this.save();this.executeOpTree(t);this.restore()}loadDependencies(t){const e=t.fnArray,s=t.argsArray;for(let t=0,n=e.length;t{t.get(e,s)}));this.current.dependencies.push(s)}return Promise.all(this.current.dependencies)}transform(t,e,s,n,a,r){const o=[t,e,s,n,a,r];this.transformMatrix=i.Util.transform(this.transformMatrix,o);this.tgrp=null}getSVG(t,e){this.viewport=e;const s=this._initialize(e);return this.loadDependencies(t).then((()=>{this.transformMatrix=i.IDENTITY_MATRIX;this.executeOpTree(this.convertOpList(t));return s}))}convertOpList(t){const e=this._operatorIdMapping,s=t.argsArray,n=t.fnArray,i=[];for(let t=0,a=n.length;t0&&(this.current.lineWidth=t)}setLineCap(t){this.current.lineCap=h[t]}setLineJoin(t){this.current.lineJoin=d[t]}setMiterLimit(t){this.current.miterLimit=t}setStrokeAlpha(t){this.current.strokeAlpha=t}setStrokeRGBColor(t,e,s){this.current.strokeColor=i.Util.makeHexColor(t,e,s)}setFillAlpha(t){this.current.fillAlpha=t}setFillRGBColor(t,e,s){this.current.fillColor=i.Util.makeHexColor(t,e,s);this.current.tspan=this.svgFactory.createElement("svg:tspan");this.current.xcoords=[];this.current.ycoords=[]}setStrokeColorN(t){this.current.strokeColor=this._makeColorN_Pattern(t)}setFillColorN(t){this.current.fillColor=this._makeColorN_Pattern(t)}shadingFill(t){const e=this.viewport.width,s=this.viewport.height,n=i.Util.inverseTransform(this.transformMatrix),a=i.Util.applyTransform([0,0],n),r=i.Util.applyTransform([0,s],n),o=i.Util.applyTransform([e,0],n),l=i.Util.applyTransform([e,s],n),c=Math.min(a[0],r[0],o[0],l[0]),h=Math.min(a[1],r[1],o[1],l[1]),d=Math.max(a[0],r[0],o[0],l[0]),u=Math.max(a[1],r[1],o[1],l[1]),p=this.svgFactory.createElement("svg:rect");p.setAttributeNS(null,"x",c);p.setAttributeNS(null,"y",h);p.setAttributeNS(null,"width",d-c);p.setAttributeNS(null,"height",u-h);p.setAttributeNS(null,"fill",this._makeShadingPattern(t));this.current.fillAlpha<1&&p.setAttributeNS(null,"fill-opacity",this.current.fillAlpha);this._ensureTransformGroup().append(p)}_makeColorN_Pattern(t){return"TilingPattern"===t[0]?this._makeTilingPattern(t):this._makeShadingPattern(t)}_makeTilingPattern(t){const e=t[1],s=t[2],n=t[3]||i.IDENTITY_MATRIX,[a,r,o,l]=t[4],c=t[5],h=t[6],d=t[7],u="shading"+f++,[p,g,m,b]=i.Util.normalizeRect([...i.Util.applyTransform([a,r],n),...i.Util.applyTransform([o,l],n)]),[A,_]=i.Util.singularValueDecompose2dScale(n),y=c*A,v=h*_,S=this.svgFactory.createElement("svg:pattern");S.setAttributeNS(null,"id",u);S.setAttributeNS(null,"patternUnits","userSpaceOnUse");S.setAttributeNS(null,"width",y);S.setAttributeNS(null,"height",v);S.setAttributeNS(null,"x",`${p}`);S.setAttributeNS(null,"y",`${g}`);const x=this.svg,E=this.transformMatrix,C=this.current.fillColor,P=this.current.strokeColor,T=this.svgFactory.create(m-p,b-g);this.svg=T;this.transformMatrix=n;if(2===d){const t=i.Util.makeHexColor(...e);this.current.fillColor=t;this.current.strokeColor=t}this.executeOpTree(this.convertOpList(s));this.svg=x;this.transformMatrix=E;this.current.fillColor=C;this.current.strokeColor=P;S.append(T.childNodes[0]);this.defs.append(S);return`url(#${u})`}_makeShadingPattern(t){"string"==typeof t&&(t=this.objs.get(t));switch(t[0]){case"RadialAxial":const e="shading"+f++,s=t[3];let n;switch(t[1]){case"axial":const s=t[4],i=t[5];n=this.svgFactory.createElement("svg:linearGradient");n.setAttributeNS(null,"id",e);n.setAttributeNS(null,"gradientUnits","userSpaceOnUse");n.setAttributeNS(null,"x1",s[0]);n.setAttributeNS(null,"y1",s[1]);n.setAttributeNS(null,"x2",i[0]);n.setAttributeNS(null,"y2",i[1]);break;case"radial":const a=t[4],r=t[5],o=t[6],l=t[7];n=this.svgFactory.createElement("svg:radialGradient");n.setAttributeNS(null,"id",e);n.setAttributeNS(null,"gradientUnits","userSpaceOnUse");n.setAttributeNS(null,"cx",r[0]);n.setAttributeNS(null,"cy",r[1]);n.setAttributeNS(null,"r",l);n.setAttributeNS(null,"fx",a[0]);n.setAttributeNS(null,"fy",a[1]);n.setAttributeNS(null,"fr",o);break;default:throw new Error(`Unknown RadialAxial type: ${t[1]}`)}for(const t of s){const e=this.svgFactory.createElement("svg:stop");e.setAttributeNS(null,"offset",t[0]);e.setAttributeNS(null,"stop-color",t[1]);n.append(e)}this.defs.append(n);return`url(#${e})`;case"Mesh":(0,i.warn)("Unimplemented pattern Mesh");return null;case"Dummy":return"hotpink";default:throw new Error(`Unknown IR type: ${t[0]}`)}}setDash(t,e){this.current.dashArray=t;this.current.dashPhase=e}constructPath(t,e){const s=this.current;let n=s.x,a=s.y,r=[],o=0;for(const s of t)switch(0|s){case i.OPS.rectangle:n=e[o++];a=e[o++];const t=n+e[o++],s=a+e[o++];r.push("M",pf(n),pf(a),"L",pf(t),pf(a),"L",pf(t),pf(s),"L",pf(n),pf(s),"Z");break;case i.OPS.moveTo:n=e[o++];a=e[o++];r.push("M",pf(n),pf(a));break;case i.OPS.lineTo:n=e[o++];a=e[o++];r.push("L",pf(n),pf(a));break;case i.OPS.curveTo:n=e[o+4];a=e[o+5];r.push("C",pf(e[o]),pf(e[o+1]),pf(e[o+2]),pf(e[o+3]),pf(n),pf(a));o+=6;break;case i.OPS.curveTo2:r.push("C",pf(n),pf(a),pf(e[o]),pf(e[o+1]),pf(e[o+2]),pf(e[o+3]));n=e[o+2];a=e[o+3];o+=4;break;case i.OPS.curveTo3:n=e[o+2];a=e[o+3];r.push("C",pf(e[o]),pf(e[o+1]),pf(n),pf(a),pf(n),pf(a));o+=4;break;case i.OPS.closePath:r.push("Z")}r=r.join(" ");if(s.path&&t.length>0&&t[0]!==i.OPS.rectangle&&t[0]!==i.OPS.moveTo)r=s.path.getAttributeNS(null,"d")+r;else{s.path=this.svgFactory.createElement("svg:path");this._ensureTransformGroup().append(s.path)}s.path.setAttributeNS(null,"d",r);s.path.setAttributeNS(null,"fill","none");s.element=s.path;s.setCurrentPoint(n,a)}endPath(){const t=this.current;t.path=null;if(!this.pendingClip)return;if(!t.element){this.pendingClip=null;return}const e="clippath"+p++,s=this.svgFactory.createElement("svg:clipPath");s.setAttributeNS(null,"id",e);s.setAttributeNS(null,"transform",pm(this.transformMatrix));const n=t.element.cloneNode(!0);"evenodd"===this.pendingClip?n.setAttributeNS(null,"clip-rule","evenodd"):n.setAttributeNS(null,"clip-rule","nonzero");this.pendingClip=null;s.append(n);this.defs.append(s);if(t.activeClipUrl){t.clipGroup=null;for(const t of this.extraStack)t.clipGroup=null;s.setAttributeNS(null,"clip-path",t.activeClipUrl)}t.activeClipUrl=`url(#${e})`;this.tgrp=null}clip(t){this.pendingClip=t}closePath(){const t=this.current;if(t.path){const e=`${t.path.getAttributeNS(null,"d")}Z`;t.path.setAttributeNS(null,"d",e)}}setLeading(t){this.current.leading=-t}setTextRise(t){this.current.textRise=t}setTextRenderingMode(t){this.current.textRenderingMode=t}setHScale(t){this.current.textHScale=t/100}setRenderingIntent(t){}setFlatness(t){}setGState(t){for(const[e,s]of t)switch(e){case"LW":this.setLineWidth(s);break;case"LC":this.setLineCap(s);break;case"LJ":this.setLineJoin(s);break;case"ML":this.setMiterLimit(s);break;case"D":this.setDash(s[0],s[1]);break;case"RI":this.setRenderingIntent(s);break;case"FL":this.setFlatness(s);break;case"Font":this.setFont(s);break;case"CA":this.setStrokeAlpha(s);break;case"ca":this.setFillAlpha(s);break;default:(0,i.warn)(`Unimplemented graphic state operator ${e}`)}}fill(){const t=this.current;if(t.element){t.element.setAttributeNS(null,"fill",t.fillColor);t.element.setAttributeNS(null,"fill-opacity",t.fillAlpha);this.endPath()}}stroke(){const t=this.current;if(t.element){this._setStrokeAttributes(t.element);t.element.setAttributeNS(null,"fill","none");this.endPath()}}_setStrokeAttributes(t,e=1){const s=this.current;let n=s.dashArray;1!==e&&n.length>0&&(n=n.map((function(t){return e*t})));t.setAttributeNS(null,"stroke",s.strokeColor);t.setAttributeNS(null,"stroke-opacity",s.strokeAlpha);t.setAttributeNS(null,"stroke-miterlimit",pf(s.miterLimit));t.setAttributeNS(null,"stroke-linecap",s.lineCap);t.setAttributeNS(null,"stroke-linejoin",s.lineJoin);t.setAttributeNS(null,"stroke-width",pf(e*s.lineWidth)+"px");t.setAttributeNS(null,"stroke-dasharray",n.map(pf).join(" "));t.setAttributeNS(null,"stroke-dashoffset",pf(e*s.dashPhase)+"px")}eoFill(){this.current.element?.setAttributeNS(null,"fill-rule","evenodd");this.fill()}fillStroke(){this.stroke();this.fill()}eoFillStroke(){this.current.element?.setAttributeNS(null,"fill-rule","evenodd");this.fillStroke()}closeStroke(){this.closePath();this.stroke()}closeFillStroke(){this.closePath();this.fillStroke()}closeEOFillStroke(){this.closePath();this.eoFillStroke()}paintSolidColorImageMask(){const t=this.svgFactory.createElement("svg:rect");t.setAttributeNS(null,"x","0");t.setAttributeNS(null,"y","0");t.setAttributeNS(null,"width","1px");t.setAttributeNS(null,"height","1px");t.setAttributeNS(null,"fill",this.current.fillColor);this._ensureTransformGroup().append(t)}paintImageXObject(t){const e=this.getObject(t);e?this.paintInlineImageXObject(e):(0,i.warn)(`Dependent image with object ID ${t} is not ready yet`)}paintInlineImageXObject(t,e){const s=t.width,n=t.height,i=u(t,this.forceDataSchema,!!e),a=this.svgFactory.createElement("svg:rect");a.setAttributeNS(null,"x","0");a.setAttributeNS(null,"y","0");a.setAttributeNS(null,"width",pf(s));a.setAttributeNS(null,"height",pf(n));this.current.element=a;this.clip("nonzero");const r=this.svgFactory.createElement("svg:image");r.setAttributeNS(c,"xlink:href",i);r.setAttributeNS(null,"x","0");r.setAttributeNS(null,"y",pf(-n));r.setAttributeNS(null,"width",pf(s)+"px");r.setAttributeNS(null,"height",pf(n)+"px");r.setAttributeNS(null,"transform",`scale(${pf(1/s)} ${pf(-1/n)})`);e?e.append(r):this._ensureTransformGroup().append(r)}paintImageMaskXObject(t){const e=this.getObject(t.data,t);if(e.bitmap){(0,i.warn)("paintImageMaskXObject: ImageBitmap support is not implemented, ensure that the `isOffscreenCanvasSupported` API parameter is disabled.");return}const s=this.current,n=e.width,a=e.height,r=s.fillColor;s.maskId="mask"+g++;const o=this.svgFactory.createElement("svg:mask");o.setAttributeNS(null,"id",s.maskId);const l=this.svgFactory.createElement("svg:rect");l.setAttributeNS(null,"x","0");l.setAttributeNS(null,"y","0");l.setAttributeNS(null,"width",pf(n));l.setAttributeNS(null,"height",pf(a));l.setAttributeNS(null,"fill",r);l.setAttributeNS(null,"mask",`url(#${s.maskId})`);this.defs.append(o);this._ensureTransformGroup().append(l);this.paintInlineImageXObject(e,o)}paintFormXObjectBegin(t,e){Array.isArray(t)&&6===t.length&&this.transform(t[0],t[1],t[2],t[3],t[4],t[5]);if(e){const t=e[2]-e[0],s=e[3]-e[1],n=this.svgFactory.createElement("svg:rect");n.setAttributeNS(null,"x",e[0]);n.setAttributeNS(null,"y",e[1]);n.setAttributeNS(null,"width",pf(t));n.setAttributeNS(null,"height",pf(s));this.current.element=n;this.clip("nonzero");this.endPath()}}paintFormXObjectEnd(){}_initialize(t){const e=this.svgFactory.create(t.width,t.height),s=this.svgFactory.createElement("svg:defs");e.append(s);this.defs=s;const n=this.svgFactory.createElement("svg:g");n.setAttributeNS(null,"transform",pm(t.transform));e.append(n);this.svg=n;return e}_ensureClipGroup(){if(!this.current.clipGroup){const t=this.svgFactory.createElement("svg:g");t.setAttributeNS(null,"clip-path",this.current.activeClipUrl);this.svg.append(t);this.current.clipGroup=t}return this.current.clipGroup}_ensureTransformGroup(){if(!this.tgrp){this.tgrp=this.svgFactory.createElement("svg:g");this.tgrp.setAttributeNS(null,"transform",pm(this.transformMatrix));this.current.activeClipUrl?this._ensureClipGroup().append(this.tgrp):this.svg.append(this.tgrp)}return this.tgrp}}}}],__webpack_module_cache__={};function __w_pdfjs_require__(t){var e=__webpack_module_cache__[t];if(void 0!==e)return e.exports;var s=__webpack_module_cache__[t]={exports:{}};__webpack_modules__[t](s,s.exports,__w_pdfjs_require__);return s.exports}var __webpack_exports__={};(()=>{var t=__webpack_exports__;Object.defineProperty(t,"__esModule",{value:!0});Object.defineProperty(t,"AbortException",{enumerable:!0,get:function(){return e.AbortException}});Object.defineProperty(t,"AnnotationEditorLayer",{enumerable:!0,get:function(){return a.AnnotationEditorLayer}});Object.defineProperty(t,"AnnotationEditorParamsType",{enumerable:!0,get:function(){return e.AnnotationEditorParamsType}});Object.defineProperty(t,"AnnotationEditorType",{enumerable:!0,get:function(){return e.AnnotationEditorType}});Object.defineProperty(t,"AnnotationEditorUIManager",{enumerable:!0,get:function(){return r.AnnotationEditorUIManager}});Object.defineProperty(t,"AnnotationLayer",{enumerable:!0,get:function(){return o.AnnotationLayer}});Object.defineProperty(t,"AnnotationMode",{enumerable:!0,get:function(){return e.AnnotationMode}});Object.defineProperty(t,"CMapCompressionType",{enumerable:!0,get:function(){return e.CMapCompressionType}});Object.defineProperty(t,"GlobalWorkerOptions",{enumerable:!0,get:function(){return l.GlobalWorkerOptions}});Object.defineProperty(t,"InvalidPDFException",{enumerable:!0,get:function(){return e.InvalidPDFException}});Object.defineProperty(t,"MissingPDFException",{enumerable:!0,get:function(){return e.MissingPDFException}});Object.defineProperty(t,"OPS",{enumerable:!0,get:function(){return e.OPS}});Object.defineProperty(t,"PDFDataRangeTransport",{enumerable:!0,get:function(){return s.PDFDataRangeTransport}});Object.defineProperty(t,"PDFDateString",{enumerable:!0,get:function(){return n.PDFDateString}});Object.defineProperty(t,"PDFWorker",{enumerable:!0,get:function(){return s.PDFWorker}});Object.defineProperty(t,"PasswordResponses",{enumerable:!0,get:function(){return e.PasswordResponses}});Object.defineProperty(t,"PermissionFlag",{enumerable:!0,get:function(){return e.PermissionFlag}});Object.defineProperty(t,"PixelsPerInch",{enumerable:!0,get:function(){return n.PixelsPerInch}});Object.defineProperty(t,"RenderingCancelledException",{enumerable:!0,get:function(){return n.RenderingCancelledException}});Object.defineProperty(t,"SVGGraphics",{enumerable:!0,get:function(){return c.SVGGraphics}});Object.defineProperty(t,"UNSUPPORTED_FEATURES",{enumerable:!0,get:function(){return e.UNSUPPORTED_FEATURES}});Object.defineProperty(t,"UnexpectedResponseException",{enumerable:!0,get:function(){return e.UnexpectedResponseException}});Object.defineProperty(t,"Util",{enumerable:!0,get:function(){return e.Util}});Object.defineProperty(t,"VerbosityLevel",{enumerable:!0,get:function(){return e.VerbosityLevel}});Object.defineProperty(t,"XfaLayer",{enumerable:!0,get:function(){return h.XfaLayer}});Object.defineProperty(t,"build",{enumerable:!0,get:function(){return s.build}});Object.defineProperty(t,"createPromiseCapability",{enumerable:!0,get:function(){return e.createPromiseCapability}});Object.defineProperty(t,"createValidAbsoluteUrl",{enumerable:!0,get:function(){return e.createValidAbsoluteUrl}});Object.defineProperty(t,"getDocument",{enumerable:!0,get:function(){return s.getDocument}});Object.defineProperty(t,"getFilenameFromUrl",{enumerable:!0,get:function(){return n.getFilenameFromUrl}});Object.defineProperty(t,"getPdfFilenameFromUrl",{enumerable:!0,get:function(){return n.getPdfFilenameFromUrl}});Object.defineProperty(t,"getXfaPageViewport",{enumerable:!0,get:function(){return n.getXfaPageViewport}});Object.defineProperty(t,"isDataScheme",{enumerable:!0,get:function(){return n.isDataScheme}});Object.defineProperty(t,"isPdfFile",{enumerable:!0,get:function(){return n.isPdfFile}});Object.defineProperty(t,"loadScript",{enumerable:!0,get:function(){return n.loadScript}});Object.defineProperty(t,"renderTextLayer",{enumerable:!0,get:function(){return i.renderTextLayer}});Object.defineProperty(t,"setLayerDimensions",{enumerable:!0,get:function(){return n.setLayerDimensions}});Object.defineProperty(t,"shadow",{enumerable:!0,get:function(){return e.shadow}});Object.defineProperty(t,"updateTextLayer",{enumerable:!0,get:function(){return i.updateTextLayer}});Object.defineProperty(t,"version",{enumerable:!0,get:function(){return s.version}});var e=__w_pdfjs_require__(1),s=__w_pdfjs_require__(2),n=__w_pdfjs_require__(6),i=__w_pdfjs_require__(26),a=__w_pdfjs_require__(27),r=__w_pdfjs_require__(5),o=__w_pdfjs_require__(32),l=__w_pdfjs_require__(14),c=__w_pdfjs_require__(35),h=__w_pdfjs_require__(34)})();return __webpack_exports__})())); \ No newline at end of file diff --git a/src/main/resources/static/pdfjs/pdf.worker.min.js b/src/main/resources/static/pdfjs/pdf.worker.min.js new file mode 100644 index 00000000..d2460ca1 --- /dev/null +++ b/src/main/resources/static/pdfjs/pdf.worker.min.js @@ -0,0 +1,22 @@ +/** + * @licstart The following is the entire license notice for the + * JavaScript code in this page + * + * Copyright 2023 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @licend The above is the entire license notice for the + * JavaScript code in this page + */ +!function webpackUniversalModuleDefinition(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("pdfjs-dist/build/pdf.worker",[],t):"object"==typeof exports?exports["pdfjs-dist/build/pdf.worker"]=t():e["pdfjs-dist/build/pdf.worker"]=e.pdfjsWorker=t()}(globalThis,(()=>(()=>{"use strict";var e=[,(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.WorkerTask=t.WorkerMessageHandler=void 0;var r=a(2),n=a(3),i=a(4),s=a(6),o=a(69),c=a(63),l=a(100),h=a(101),u=a(102);class WorkerTask{constructor(e){this.name=e;this.terminated=!1;this._capability=(0,r.createPromiseCapability)()}get finished(){return this._capability.promise}finish(){this._capability.resolve()}terminate(){this.terminated=!0}ensureNotTerminated(){if(this.terminated)throw new Error("Worker task was terminated")}}t.WorkerTask=WorkerTask;class WorkerMessageHandler{static setup(e,t){let a=!1;e.on("test",(function(t){if(!a){a=!0;e.send("test",t instanceof Uint8Array)}}));e.on("configure",(function(e){(0,r.setVerbosityLevel)(e.verbosity)}));e.on("GetDocRequest",(function(e){return WorkerMessageHandler.createDocumentHandler(e,t)}))}static createDocumentHandler(e,t){let a,d=!1,f=null;const g=[],p=(0,r.getVerbosityLevel)(),{docId:m,apiVersion:b}=e,y="3.3.122";if(b!==y)throw new Error(`The API version "${b}" does not match the Worker version "${y}".`);const w=[];for(const e in[])w.push(e);if(w.length)throw new Error("The `Array.prototype` contains unexpected enumerable properties: "+w.join(", ")+"; thus breaking e.g. `for...in` iteration of `Array`s.");if("undefined"==typeof ReadableStream){const e="The browser/environment lacks native support for critical functionality used by the PDF.js library (e.g. `ReadableStream`); ";if(l.isNodeJS)throw new Error(e+"please use a `legacy`-build instead.");throw new Error(e+"please update to a supported browser.")}const S=m+"_worker";let x=new h.MessageHandler(S,m,t);function ensureNotTerminated(){if(d)throw new Error("Worker was terminated")}function startWorkerTask(e){g.push(e)}function finishWorkerTask(e){e.finish();const t=g.indexOf(e);g.splice(t,1)}async function loadDocument(e){await a.ensureDoc("checkHeader");await a.ensureDoc("parseStartXRef");await a.ensureDoc("parse",[e]);await a.ensureDoc("checkFirstPage",[e]);await a.ensureDoc("checkLastPage",[e]);const t=await a.ensureDoc("isPureXfa");if(t){const e=new WorkerTask("loadXfaFonts");startWorkerTask(e);await Promise.all([a.loadXfaFonts(x,e).catch((e=>{})).then((()=>finishWorkerTask(e))),a.loadXfaImages()])}const[r,n]=await Promise.all([a.ensureDoc("numPages"),a.ensureDoc("fingerprints")]);return{numPages:r,fingerprints:n,htmlForXfa:t?await a.ensureDoc("htmlForXfa"):null}}function getPdfManager({data:e,password:t,disableAutoFetch:a,rangeChunkSize:n,length:i,docBaseUrl:o,enableXfa:c,evaluatorOptions:l}){const h=(0,r.createPromiseCapability)();let d;if(e){try{d=new s.LocalPdfManager(m,e,t,x,l,c,o);h.resolve(d)}catch(e){h.reject(e)}return h.promise}let g,p=[];try{g=new u.PDFWorkerStream(x)}catch(e){h.reject(e);return h.promise}const b=g.getFullReader();b.headersReady.then((function(){if(b.isRangeSupported){a=a||b.isStreamingSupported;d=new s.NetworkPdfManager(m,g,{msgHandler:x,password:t,length:b.contentLength,disableAutoFetch:a,rangeChunkSize:n},l,c,o);for(const e of p)d.sendProgressiveData(e);p=[];h.resolve(d);f=null}})).catch((function(e){h.reject(e);f=null}));let y=0;new Promise((function(e,a){const readChunk=function({value:e,done:n}){try{ensureNotTerminated();if(n){d||function(){const e=(0,r.arraysToBytes)(p);i&&e.length!==i&&(0,r.warn)("reported HTTP length is different from actual");try{d=new s.LocalPdfManager(m,e,t,x,l,c,o);h.resolve(d)}catch(e){h.reject(e)}p=[]}();f=null;return}y+=(0,r.arrayByteLength)(e);b.isStreamingSupported||x.send("DocProgress",{loaded:y,total:Math.max(y,b.contentLength||0)});d?d.sendProgressiveData(e):p.push(e);b.read().then(readChunk,a)}catch(e){a(e)}};b.read().then(readChunk,a)})).catch((function(e){h.reject(e);f=null}));f=function(e){g.cancelAllRequests(e)};return h.promise}x.on("GetPage",(function(e){return a.getPage(e.pageIndex).then((function(e){return Promise.all([a.ensure(e,"rotate"),a.ensure(e,"ref"),a.ensure(e,"userUnit"),a.ensure(e,"view")]).then((function([e,t,a,r]){return{rotate:e,ref:t,userUnit:a,view:r}}))}))}));x.on("GetPageIndex",(function(e){const t=n.Ref.get(e.num,e.gen);return a.ensureCatalog("getPageIndex",[t])}));x.on("GetDestinations",(function(e){return a.ensureCatalog("destinations")}));x.on("GetDestination",(function(e){return a.ensureCatalog("getDestination",[e.id])}));x.on("GetPageLabels",(function(e){return a.ensureCatalog("pageLabels")}));x.on("GetPageLayout",(function(e){return a.ensureCatalog("pageLayout")}));x.on("GetPageMode",(function(e){return a.ensureCatalog("pageMode")}));x.on("GetViewerPreferences",(function(e){return a.ensureCatalog("viewerPreferences")}));x.on("GetOpenAction",(function(e){return a.ensureCatalog("openAction")}));x.on("GetAttachments",(function(e){return a.ensureCatalog("attachments")}));x.on("GetJavaScript",(function(e){return a.ensureCatalog("javaScript")}));x.on("GetDocJSActions",(function(e){return a.ensureCatalog("jsActions")}));x.on("GetPageJSActions",(function({pageIndex:e}){return a.getPage(e).then((function(e){return a.ensure(e,"jsActions")}))}));x.on("GetOutline",(function(e){return a.ensureCatalog("documentOutline")}));x.on("GetOptionalContentConfig",(function(e){return a.ensureCatalog("optionalContentConfig")}));x.on("GetPermissions",(function(e){return a.ensureCatalog("permissions")}));x.on("GetMetadata",(function(e){return Promise.all([a.ensureDoc("documentInfo"),a.ensureCatalog("metadata")])}));x.on("GetMarkInfo",(function(e){return a.ensureCatalog("markInfo")}));x.on("GetData",(function(e){return a.requestLoadedStream().then((function(e){return e.bytes}))}));x.on("GetAnnotations",(function({pageIndex:e,intent:t}){return a.getPage(e).then((function(a){const r=new WorkerTask(`GetAnnotations: page ${e}`);startWorkerTask(r);return a.getAnnotationsData(x,r,t).then((e=>{finishWorkerTask(r);return e}),(e=>{finishWorkerTask(r)}))}))}));x.on("GetFieldObjects",(function(e){return a.ensureDoc("fieldObjects")}));x.on("HasJSActions",(function(e){return a.ensureDoc("hasJSActions")}));x.on("GetCalculationOrderIds",(function(e){return a.ensureDoc("calculationOrderIds")}));x.on("SaveDocument",(function({isPureXfa:e,numPages:t,annotationStorage:s,filename:o}){const l=[a.requestLoadedStream(),a.ensureCatalog("acroForm"),a.ensureCatalog("acroFormRef"),a.ensureDoc("xref"),a.ensureDoc("startXRef")],h=e?null:(0,i.getNewAnnotationsMap)(s);if(h)for(const[e,t]of h)l.push(a.getPage(e).then((a=>{const r=new WorkerTask(`Save (editor): page ${e}`);return a.saveNewAnnotations(x,r,t).finally((function(){finishWorkerTask(r)}))})));if(e)l.push(a.serializeXfaData(s));else for(let e=0;ee.needAppearances)),g=a instanceof n.Dict&&a.get("XFA")||null;let p=null,m=!1;if(Array.isArray(g)){for(let e=0,t=g.length;e{"string"==typeof a&&(e[t]=(0,r.stringToPDFString)(a))}));b={rootRef:s.trailer.getRaw("Root")||null,encryptRef:s.trailer.getRaw("Encrypt")||null,newRef:s.getNewTemporaryRef(),infoRef:s.trailer.getRaw("Info")||null,info:e,fileIds:s.trailer.get("ID")||null,startXRef:l,filename:o}}try{return(0,c.incrementalUpdate)({originalData:t.bytes,xrefInfo:b,newRefs:u,xref:s,hasXfa:!!g,xfaDatasetsRef:p,hasXfaDatasetsEntry:m,needAppearances:f,acroFormRef:i,acroForm:a,xfaData:d})}finally{s.resetNewTemporaryRef()}}))}));x.on("GetOperatorList",(function(e,t){const n=e.pageIndex;a.getPage(n).then((function(a){const i=new WorkerTask(`GetOperatorList: page ${n}`);startWorkerTask(i);const s=p>=r.VerbosityLevel.INFOS?Date.now():0;a.getOperatorList({handler:x,sink:t,task:i,intent:e.intent,cacheKey:e.cacheKey,annotationStorage:e.annotationStorage}).then((function(e){finishWorkerTask(i);s&&(0,r.info)(`page=${n+1} - getOperatorList: time=${Date.now()-s}ms, len=${e.length}`);t.close()}),(function(e){finishWorkerTask(i);i.terminated||t.error(e)}))}))}));x.on("GetTextContent",(function(e,t){const n=e.pageIndex;a.getPage(n).then((function(a){const i=new WorkerTask("GetTextContent: page "+n);startWorkerTask(i);const s=p>=r.VerbosityLevel.INFOS?Date.now():0;a.extractTextContent({handler:x,task:i,sink:t,includeMarkedContent:e.includeMarkedContent,combineTextItems:e.combineTextItems}).then((function(){finishWorkerTask(i);s&&(0,r.info)(`page=${n+1} - getTextContent: time=`+(Date.now()-s)+"ms");t.close()}),(function(e){finishWorkerTask(i);i.terminated||t.error(e)}))}))}));x.on("GetStructTree",(function(e){return a.getPage(e.pageIndex).then((function(e){return a.ensure(e,"getStructTree")}))}));x.on("FontFallback",(function(e){return a.fontFallback(e.id,x)}));x.on("Cleanup",(function(e){return a.cleanup(!0)}));x.on("Terminate",(function(e){d=!0;const t=[];if(a){a.terminate(new r.AbortException("Worker was terminated."));const e=a.cleanup();t.push(e);a=null}else(0,o.clearGlobalCaches)();f&&f(new r.AbortException("Worker was terminated."));for(const e of g){t.push(e.finished);e.terminate()}return Promise.all(t).then((function(){x.destroy();x=null}))}));x.on("Ready",(function(t){!function setupDoc(e){function onSuccess(e){ensureNotTerminated();x.send("GetDoc",{pdfInfo:e})}function onFailure(e){ensureNotTerminated();if(e instanceof r.PasswordException){const t=new WorkerTask(`PasswordException: response ${e.code}`);startWorkerTask(t);x.sendWithPromise("PasswordRequest",e).then((function({password:e}){finishWorkerTask(t);a.updatePassword(e);pdfManagerReady()})).catch((function(){finishWorkerTask(t);x.send("DocException",e)}))}else e instanceof r.InvalidPDFException||e instanceof r.MissingPDFException||e instanceof r.UnexpectedResponseException||e instanceof r.UnknownErrorException?x.send("DocException",e):x.send("DocException",new r.UnknownErrorException(e.message,e.toString()))}function pdfManagerReady(){ensureNotTerminated();loadDocument(!1).then(onSuccess,(function(e){ensureNotTerminated();e instanceof i.XRefParseException?a.requestLoadedStream().then((function(){ensureNotTerminated();loadDocument(!0).then(onSuccess,onFailure)})):onFailure(e)}))}ensureNotTerminated();getPdfManager(e).then((function(e){if(d){e.terminate(new r.AbortException("Worker was terminated."));throw new Error("Worker was terminated")}a=e;a.requestLoadedStream(!0).then((e=>{x.send("DataLoaded",{length:e.bytes.byteLength})}))})).then(pdfManagerReady,onFailure)}(e);e=null}));return S}static initializeFromPort(e){const t=new h.MessageHandler("worker","main",e);WorkerMessageHandler.setup(t,e);t.send("ready",null)}}t.WorkerMessageHandler=WorkerMessageHandler;"undefined"==typeof window&&!l.isNodeJS&&"undefined"!=typeof self&&function isMessagePort(e){return"function"==typeof e.postMessage&&"onmessage"in e}(self)&&WorkerMessageHandler.initializeFromPort(self)},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.VerbosityLevel=t.Util=t.UnknownErrorException=t.UnexpectedResponseException=t.UNSUPPORTED_FEATURES=t.TextRenderingMode=t.RenderingIntentFlag=t.PermissionFlag=t.PasswordResponses=t.PasswordException=t.PageActionEventType=t.OPS=t.MissingPDFException=t.LINE_FACTOR=t.LINE_DESCENT_FACTOR=t.InvalidPDFException=t.ImageKind=t.IDENTITY_MATRIX=t.FormatError=t.FeatureTest=t.FONT_IDENTITY_MATRIX=t.DocumentActionEventType=t.CMapCompressionType=t.BaseException=t.BASELINE_FACTOR=t.AnnotationType=t.AnnotationStateModelType=t.AnnotationReviewState=t.AnnotationReplyType=t.AnnotationMode=t.AnnotationMarkedState=t.AnnotationFlag=t.AnnotationFieldFlag=t.AnnotationEditorType=t.AnnotationEditorPrefix=t.AnnotationEditorParamsType=t.AnnotationBorderStyleType=t.AnnotationActionEventType=t.AbortException=void 0;t.arrayByteLength=arrayByteLength;t.arraysToBytes=function arraysToBytes(e){const t=e.length;if(1===t&&e[0]instanceof Uint8Array)return e[0];let a=0;for(let r=0;rt});e.promise=new Promise((function(a,r){e.resolve=function(e){t=!0;a(e)};e.reject=function(e){t=!0;r(e)}}));return e};t.createValidAbsoluteUrl=function createValidAbsoluteUrl(e,t=null,a=null){if(!e)return null;try{if(a&&"string"==typeof e){if(a.addDefaultProtocol&&e.startsWith("www.")){const t=e.match(/\./g);t&&t.length>=2&&(e=`http://${e}`)}if(a.tryConvertEncoding)try{e=stringToUTF8String(e)}catch(e){}}const r=t?new URL(e,t):new URL(e);if(function _isValidProtocol(e){if(!e)return!1;switch(e.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}(r))return r}catch(e){}return null};t.getModificationDate=function getModificationDate(e=new Date){return[e.getUTCFullYear().toString(),(e.getUTCMonth()+1).toString().padStart(2,"0"),e.getUTCDate().toString().padStart(2,"0"),e.getUTCHours().toString().padStart(2,"0"),e.getUTCMinutes().toString().padStart(2,"0"),e.getUTCSeconds().toString().padStart(2,"0")].join("")};t.getVerbosityLevel=function getVerbosityLevel(){return r};t.info=function info(e){r>=a.INFOS&&console.log(`Info: ${e}`)};t.isArrayBuffer=function isArrayBuffer(e){return"object"==typeof e&&null!==e&&void 0!==e.byteLength};t.isArrayEqual=function isArrayEqual(e,t){if(e.length!==t.length)return!1;for(let a=0,r=e.length;a>24&255,e>>16&255,e>>8&255,255&e)};t.stringToBytes=stringToBytes;t.stringToPDFString=function stringToPDFString(e){if(e[0]>="ï"){let t;"þ"===e[0]&&"ÿ"===e[1]?t="utf-16be":"ÿ"===e[0]&&"þ"===e[1]?t="utf-16le":"ï"===e[0]&&"»"===e[1]&&"¿"===e[2]&&(t="utf-8");if(t)try{const a=new TextDecoder(t,{fatal:!0}),r=stringToBytes(e);return a.decode(r)}catch(e){warn(`stringToPDFString: "${e}".`)}}const t=[];for(let a=0,r=e.length;a=a.WARNINGS&&console.log(`Warning: ${e}`)}function unreachable(e){throw new Error(e)}function shadow(e,t,a,r=!1){Object.defineProperty(e,t,{value:a,enumerable:!r,configurable:!0,writable:!1});return a}const n=function BaseExceptionClosure(){function BaseException(e,t){this.constructor===BaseException&&unreachable("Cannot initialize BaseException.");this.message=e;this.name=t}BaseException.prototype=new Error;BaseException.constructor=BaseException;return BaseException}();t.BaseException=n;t.PasswordException=class PasswordException extends n{constructor(e,t){super(e,"PasswordException");this.code=t}};t.UnknownErrorException=class UnknownErrorException extends n{constructor(e,t){super(e,"UnknownErrorException");this.details=t}};t.InvalidPDFException=class InvalidPDFException extends n{constructor(e){super(e,"InvalidPDFException")}};t.MissingPDFException=class MissingPDFException extends n{constructor(e){super(e,"MissingPDFException")}};t.UnexpectedResponseException=class UnexpectedResponseException extends n{constructor(e,t){super(e,"UnexpectedResponseException");this.status=t}};t.FormatError=class FormatError extends n{constructor(e){super(e,"FormatError")}};t.AbortException=class AbortException extends n{constructor(e){super(e,"AbortException")}};function stringToBytes(e){"string"!=typeof e&&unreachable("Invalid argument for stringToBytes");const t=e.length,a=new Uint8Array(t);for(let r=0;re.toString(16).padStart(2,"0")));class Util{static makeHexColor(e,t,a){return`#${i[e]}${i[t]}${i[a]}`}static scaleMinMax(e,t){let a;if(e[0]){if(e[0]<0){a=t[0];t[0]=t[1];t[1]=a}t[0]*=e[0];t[1]*=e[0];if(e[3]<0){a=t[2];t[2]=t[3];t[3]=a}t[2]*=e[3];t[3]*=e[3]}else{a=t[0];t[0]=t[2];t[2]=a;a=t[1];t[1]=t[3];t[3]=a;if(e[1]<0){a=t[2];t[2]=t[3];t[3]=a}t[2]*=e[1];t[3]*=e[1];if(e[2]<0){a=t[0];t[0]=t[1];t[1]=a}t[0]*=e[2];t[1]*=e[2]}t[0]+=e[4];t[1]+=e[4];t[2]+=e[5];t[3]+=e[5]}static transform(e,t){return[e[0]*t[0]+e[2]*t[1],e[1]*t[0]+e[3]*t[1],e[0]*t[2]+e[2]*t[3],e[1]*t[2]+e[3]*t[3],e[0]*t[4]+e[2]*t[5]+e[4],e[1]*t[4]+e[3]*t[5]+e[5]]}static applyTransform(e,t){return[e[0]*t[0]+e[1]*t[2]+t[4],e[0]*t[1]+e[1]*t[3]+t[5]]}static applyInverseTransform(e,t){const a=t[0]*t[3]-t[1]*t[2];return[(e[0]*t[3]-e[1]*t[2]+t[2]*t[5]-t[4]*t[3])/a,(-e[0]*t[1]+e[1]*t[0]+t[4]*t[1]-t[5]*t[0])/a]}static getAxialAlignedBoundingBox(e,t){const a=Util.applyTransform(e,t),r=Util.applyTransform(e.slice(2,4),t),n=Util.applyTransform([e[0],e[3]],t),i=Util.applyTransform([e[2],e[1]],t);return[Math.min(a[0],r[0],n[0],i[0]),Math.min(a[1],r[1],n[1],i[1]),Math.max(a[0],r[0],n[0],i[0]),Math.max(a[1],r[1],n[1],i[1])]}static inverseTransform(e){const t=e[0]*e[3]-e[1]*e[2];return[e[3]/t,-e[1]/t,-e[2]/t,e[0]/t,(e[2]*e[5]-e[4]*e[3])/t,(e[4]*e[1]-e[5]*e[0])/t]}static singularValueDecompose2dScale(e){const t=[e[0],e[2],e[1],e[3]],a=e[0]*t[0]+e[1]*t[2],r=e[0]*t[1]+e[1]*t[3],n=e[2]*t[0]+e[3]*t[2],i=e[2]*t[1]+e[3]*t[3],s=(a+i)/2,o=Math.sqrt((a+i)**2-4*(a*i-n*r))/2,c=s+o||1,l=s-o||1;return[Math.sqrt(c),Math.sqrt(l)]}static normalizeRect(e){const t=e.slice(0);if(e[0]>e[2]){t[0]=e[2];t[2]=e[0]}if(e[1]>e[3]){t[1]=e[3];t[3]=e[1]}return t}static intersect(e,t){const a=Math.max(Math.min(e[0],e[2]),Math.min(t[0],t[2])),r=Math.min(Math.max(e[0],e[2]),Math.max(t[0],t[2]));if(a>r)return null;const n=Math.max(Math.min(e[1],e[3]),Math.min(t[1],t[3])),i=Math.min(Math.max(e[1],e[3]),Math.max(t[1],t[3]));return n>i?null:[a,n,r,i]}static bezierBoundingBox(e,t,a,r,n,i,s,o){const c=[],l=[[],[]];let h,u,d,f,g,p,m,b;for(let l=0;l<2;++l){if(0===l){u=6*e-12*a+6*n;h=-3*e+9*a-9*n+3*s;d=3*a-3*e}else{u=6*t-12*r+6*i;h=-3*t+9*r-9*i+3*o;d=3*r-3*t}if(Math.abs(h)<1e-12){if(Math.abs(u)<1e-12)continue;f=-d/u;0{Object.defineProperty(t,"__esModule",{value:!0});t.RefSetCache=t.RefSet=t.Ref=t.Name=t.EOF=t.Dict=t.Cmd=t.CIRCULAR_REF=void 0;t.clearPrimitiveCaches=function clearPrimitiveCaches(){o._clearCache();s._clearCache();l._clearCache()};t.isCmd=function isCmd(e,t){return e instanceof o&&(void 0===t||e.cmd===t)};t.isDict=function isDict(e,t){return e instanceof Dict&&(void 0===t||isName(e.get("Type"),t))};t.isName=isName;t.isRefsEqual=function isRefsEqual(e,t){return e.num===t.num&&e.gen===t.gen};var r=a(2);const n=Symbol("CIRCULAR_REF");t.CIRCULAR_REF=n;const i=Symbol("EOF");t.EOF=i;const s=function NameClosure(){let e=Object.create(null);class Name{constructor(e){this.name=e}static get(t){return e[t]||(e[t]=new Name(t))}static _clearCache(){e=Object.create(null)}}return Name}();t.Name=s;const o=function CmdClosure(){let e=Object.create(null);class Cmd{constructor(e){this.cmd=e}static get(t){return e[t]||(e[t]=new Cmd(t))}static _clearCache(){e=Object.create(null)}}return Cmd}();t.Cmd=o;const c=function nonSerializableClosure(){return c};class Dict{constructor(e=null){this._map=Object.create(null);this.xref=e;this.objId=null;this.suppressEncryption=!1;this.__nonSerializable__=c}assignXref(e){this.xref=e}get size(){return Object.keys(this._map).length}get(e,t,a){let r=this._map[e];if(void 0===r&&void 0!==t){r=this._map[t];void 0===r&&void 0!==a&&(r=this._map[a])}return r instanceof l&&this.xref?this.xref.fetch(r,this.suppressEncryption):r}async getAsync(e,t,a){let r=this._map[e];if(void 0===r&&void 0!==t){r=this._map[t];void 0===r&&void 0!==a&&(r=this._map[a])}return r instanceof l&&this.xref?this.xref.fetchAsync(r,this.suppressEncryption):r}getArray(e,t,a){let r=this._map[e];if(void 0===r&&void 0!==t){r=this._map[t];void 0===r&&void 0!==a&&(r=this._map[a])}r instanceof l&&this.xref&&(r=this.xref.fetch(r,this.suppressEncryption));if(Array.isArray(r)){r=r.slice();for(let e=0,t=r.length;e{(0,r.unreachable)("Should not call `set` on the empty dictionary.")};return(0,r.shadow)(this,"empty",e)}static merge({xref:e,dictArray:t,mergeSubDicts:a=!1}){const r=new Dict(e),n=new Map;for(const e of t)if(e instanceof Dict)for(const[t,r]of Object.entries(e._map)){let e=n.get(t);if(void 0===e){e=[];n.set(t,e)}else if(!(a&&r instanceof Dict))continue;e.push(r)}for(const[t,a]of n){if(1===a.length||!(a[0]instanceof Dict)){r._map[t]=a[0];continue}const n=new Dict(e);for(const e of a)for(const[t,a]of Object.entries(e._map))void 0===n._map[t]&&(n._map[t]=a);n.size>0&&(r._map[t]=n)}n.clear();return r.size>0?r:Dict.empty}}t.Dict=Dict;const l=function RefClosure(){let e=Object.create(null);class Ref{constructor(e,t){this.num=e;this.gen=t}toString(){return 0===this.gen?`${this.num}R`:`${this.num}R${this.gen}`}static get(t,a){const r=0===a?`${t}R`:`${t}R${a}`;return e[r]||(e[r]=new Ref(t,a))}static _clearCache(){e=Object.create(null)}}return Ref}();t.Ref=l;class RefSet{constructor(e=null){this._set=new Set(e&&e._set)}has(e){return this._set.has(e.toString())}put(e){this._set.add(e.toString())}remove(e){this._set.delete(e.toString())}[Symbol.iterator](){return this._set.values()}clear(){this._set.clear()}}t.RefSet=RefSet;class RefSetCache{constructor(){this._map=new Map}get size(){return this._map.size}get(e){return this._map.get(e.toString())}has(e){return this._map.has(e.toString())}put(e,t){this._map.set(e.toString(),t)}putAlias(e,t){this._map.set(e.toString(),this.get(t))}[Symbol.iterator](){return this._map.values()}clear(){this._map.clear()}}t.RefSetCache=RefSetCache;function isName(e,t){return e instanceof s&&(void 0===t||e.name===t)}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XRefParseException=t.XRefEntryException=t.ParserEOFException=t.PDF_VERSION_REGEXP=t.MissingDataException=void 0;t.collectActions=function collectActions(e,t,a){const i=Object.create(null),s=getInheritableProperty({dict:t,key:"AA",stopWhenFound:!1});if(s)for(let t=s.length-1;t>=0;t--){const r=s[t];if(r instanceof n.Dict)for(const t of r.getKeys()){const s=a[t];if(!s)continue;const o=[];_collectJS(r.getRaw(t),e,o,new n.RefSet);o.length>0&&(i[s]=o)}}if(t.has("A")){const a=[];_collectJS(t.get("A"),e,a,new n.RefSet);a.length>0&&(i.Action=a)}return(0,r.objectSize)(i)>0?i:null};t.encodeToXmlString=function encodeToXmlString(e){const t=[];let a=0;for(let r=0,n=e.length;r55295&&(n<57344||n>65533)&&r++;a=r+1}}if(0===t.length)return e;a126||35===n||40===n||41===n||60===n||62===n||91===n||93===n||123===n||125===n||47===n||37===n){a"\n"===e?"\\n":"\r"===e?"\\r":`\\${e}`))};t.getArrayLookupTableFactory=function getArrayLookupTableFactory(e){let t;return function(){if(e){let a=e();e=null;t=Object.create(null);for(let e=0,r=a.length;e0?t:null};t.getRotationMatrix=function getRotationMatrix(e,t,a){switch(e){case 90:return[0,1,-1,0,t,0];case 180:return[-1,0,0,-1,t,a];case 270:return[0,-1,1,0,0,a];default:throw new Error("Invalid rotation")}};t.isAscii=function isAscii(e){return/^[\x00-\x7F]*$/.test(e)};t.isWhiteSpace=function isWhiteSpace(e){return 32===e||9===e||13===e||10===e};t.log2=function log2(e){if(e<=0)return 0;return Math.ceil(Math.log2(e))};t.numberToString=function numberToString(e){if(Number.isInteger(e))return e.toString();const t=Math.round(100*e);if(t%100==0)return(t/100).toString();if(t%10==0)return e.toFixed(1);return e.toFixed(2)};t.parseXFAPath=function parseXFAPath(e){const t=/(.+)\[(\d+)\]$/;return e.split(".").map((e=>{const a=e.match(t);return a?{name:a[1],pos:parseInt(a[2],10)}:{name:e,pos:0}}))};t.readInt8=function readInt8(e,t){return e[t]<<24>>24};t.readUint16=function readUint16(e,t){return e[t]<<8|e[t+1]};t.readUint32=function readUint32(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0};t.recoverJsURL=function recoverJsURL(e){const t=new RegExp("^\\s*("+["app.launchURL","window.open","xfa.host.gotoURL"].join("|").split(".").join("\\.")+")\\((?:'|\")([^'\"]*)(?:'|\")(?:,\\s*(\\w+)\\)|\\))","i").exec(e);if(t&&t[2]){const e=t[2];let a=!1;"true"===t[3]&&"app.launchURL"===t[1]&&(a=!0);return{url:e,newWindow:a}}return null};t.stringToUTF16HexString=function stringToUTF16HexString(e){const t=[];for(let a=0,r=e.length;a>8&255).toString(16).padStart(2,"0"),(255&r).toString(16).padStart(2,"0"))}return t.join("")};t.stringToUTF16String=function stringToUTF16String(e,t=!1){const a=[];t&&a.push("þÿ");for(let t=0,r=e.length;t>8&255),String.fromCharCode(255&r))}return a.join("")};t.toRomanNumerals=function toRomanNumerals(e,t=!1){(0,r.assert)(Number.isInteger(e)&&e>0,"The number should be a positive integer.");const a=[];let n;for(;e>=1e3;){e-=1e3;a.push("M")}n=e/100|0;e%=100;a.push(s[n]);n=e/10|0;e%=10;a.push(s[10+n]);a.push(s[20+e]);const i=a.join("");return t?i.toLowerCase():i};t.validateCSSFont=function validateCSSFont(e){const t=new Set(["100","200","300","400","500","600","700","800","900","1000","normal","bold","bolder","lighter"]),{fontFamily:a,fontWeight:n,italicAngle:i}=e;if(/^".*"$/.test(a)){if(/[^\\]"/.test(a.slice(1,a.length-1))){(0,r.warn)(`XFA - FontFamily contains some unescaped ": ${a}.`);return!1}}else if(/^'.*'$/.test(a)){if(/[^\\]'/.test(a.slice(1,a.length-1))){(0,r.warn)(`XFA - FontFamily contains some unescaped ': ${a}.`);return!1}}else for(const e of a.split(/[ \t]+/))if(/^(\d|(-(\d|-)))/.test(e)||!/^[\w-\\]+$/.test(e)){(0,r.warn)(`XFA - FontFamily contains some invalid : ${a}.`);return!1}const s=n?n.toString():"";e.fontWeight=t.has(s)?s:"400";const o=parseFloat(i);e.italicAngle=isNaN(o)||o<-90||o>90?"14":i.toString();return!0};var r=a(2),n=a(3),i=a(5);t.PDF_VERSION_REGEXP=/^[1-9]\.\d$/;class MissingDataException extends r.BaseException{constructor(e,t){super(`Missing data [${e}, ${t})`,"MissingDataException");this.begin=e;this.end=t}}t.MissingDataException=MissingDataException;class ParserEOFException extends r.BaseException{constructor(e){super(e,"ParserEOFException")}}t.ParserEOFException=ParserEOFException;class XRefEntryException extends r.BaseException{constructor(e){super(e,"XRefEntryException")}}t.XRefEntryException=XRefEntryException;class XRefParseException extends r.BaseException{constructor(e){super(e,"XRefParseException")}}t.XRefParseException=XRefParseException;function getInheritableProperty({dict:e,key:t,getArray:a=!1,stopWhenFound:r=!0}){let i;const s=new n.RefSet;for(;e instanceof n.Dict&&(!e.objId||!s.has(e.objId));){e.objId&&s.put(e.objId);const n=a?e.getArray(t):e.get(t);if(void 0!==n){if(r)return n;i||(i=[]);i.push(n)}e=e.get("Parent")}return i}const s=["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM","","X","XX","XXX","XL","L","LX","LXX","LXXX","XC","","I","II","III","IV","V","VI","VII","VIII","IX"];function _collectJS(e,t,a,s){if(!e)return;let o=null;if(e instanceof n.Ref){if(s.has(e))return;o=e;s.put(o);e=t.fetch(e)}if(Array.isArray(e))for(const r of e)_collectJS(r,t,a,s);else if(e instanceof n.Dict){if((0,n.isName)(e.get("S"),"JavaScript")){const t=e.get("JS");let n;t instanceof i.BaseStream?n=t.getString():"string"==typeof t&&(n=t);n=n&&(0,r.stringToPDFString)(n).replace(/\u0000/g,"");n&&a.push(n)}_collectJS(e.getRaw("Next"),t,a,s)}o&&s.remove(o)}const o={60:"<",62:">",38:"&",34:""",39:"'"}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.BaseStream=void 0;var r=a(2);class BaseStream{constructor(){this.constructor===BaseStream&&(0,r.unreachable)("Cannot initialize BaseStream.")}get length(){(0,r.unreachable)("Abstract getter `length` accessed")}get isEmpty(){(0,r.unreachable)("Abstract getter `isEmpty` accessed")}get isDataLoaded(){return(0,r.shadow)(this,"isDataLoaded",!0)}getByte(){(0,r.unreachable)("Abstract method `getByte` called")}getBytes(e){(0,r.unreachable)("Abstract method `getBytes` called")}peekByte(){const e=this.getByte();-1!==e&&this.pos--;return e}peekBytes(e){const t=this.getBytes(e);this.pos-=t.length;return t}getUint16(){const e=this.getByte(),t=this.getByte();return-1===e||-1===t?-1:(e<<8)+t}getInt32(){return(this.getByte()<<24)+(this.getByte()<<16)+(this.getByte()<<8)+this.getByte()}getByteRange(e,t){(0,r.unreachable)("Abstract method `getByteRange` called")}getString(e){return(0,r.bytesToString)(this.getBytes(e))}skip(e){this.pos+=e||1}reset(){(0,r.unreachable)("Abstract method `reset` called")}moveStart(){(0,r.unreachable)("Abstract method `moveStart` called")}makeSubStream(e,t,a=null){(0,r.unreachable)("Abstract method `makeSubStream` called")}getBaseStreams(){return null}}t.BaseStream=BaseStream},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.NetworkPdfManager=t.LocalPdfManager=void 0;var r=a(2),n=a(7),i=a(4),s=a(9),o=a(8);function parseDocBaseUrl(e){if(e){const t=(0,r.createValidAbsoluteUrl)(e);if(t)return t.href;(0,r.warn)(`Invalid absolute docBaseUrl: "${e}".`)}return null}class BasePdfManager{constructor(){this.constructor===BasePdfManager&&(0,r.unreachable)("Cannot initialize BasePdfManager.")}get docId(){return this._docId}get password(){return this._password}get docBaseUrl(){const e=this.pdfDocument.catalog;return(0,r.shadow)(this,"docBaseUrl",e.baseUrl||this._docBaseUrl)}ensureDoc(e,t){return this.ensure(this.pdfDocument,e,t)}ensureXRef(e,t){return this.ensure(this.pdfDocument.xref,e,t)}ensureCatalog(e,t){return this.ensure(this.pdfDocument.catalog,e,t)}getPage(e){return this.pdfDocument.getPage(e)}fontFallback(e,t){return this.pdfDocument.fontFallback(e,t)}loadXfaFonts(e,t){return this.pdfDocument.loadXfaFonts(e,t)}loadXfaImages(){return this.pdfDocument.loadXfaImages()}serializeXfaData(e){return this.pdfDocument.serializeXfaData(e)}cleanup(e=!1){return this.pdfDocument.cleanup(e)}async ensure(e,t,a){(0,r.unreachable)("Abstract method `ensure` called")}requestRange(e,t){(0,r.unreachable)("Abstract method `requestRange` called")}requestLoadedStream(e=!1){(0,r.unreachable)("Abstract method `requestLoadedStream` called")}sendProgressiveData(e){(0,r.unreachable)("Abstract method `sendProgressiveData` called")}updatePassword(e){this._password=e}terminate(e){(0,r.unreachable)("Abstract method `terminate` called")}}t.LocalPdfManager=class LocalPdfManager extends BasePdfManager{constructor(e,t,a,r,n,i,c){super();this._docId=e;this._password=a;this._docBaseUrl=parseDocBaseUrl(c);this.msgHandler=r;this.evaluatorOptions=n;this.enableXfa=i;const l=new o.Stream(t);this.pdfDocument=new s.PDFDocument(this,l);this._loadedStreamPromise=Promise.resolve(l)}async ensure(e,t,a){const r=e[t];return"function"==typeof r?r.apply(e,a):r}requestRange(e,t){return Promise.resolve()}requestLoadedStream(e=!1){return this._loadedStreamPromise}terminate(e){}};t.NetworkPdfManager=class NetworkPdfManager extends BasePdfManager{constructor(e,t,a,r,i,o){super();this._docId=e;this._password=a.password;this._docBaseUrl=parseDocBaseUrl(o);this.msgHandler=a.msgHandler;this.evaluatorOptions=r;this.enableXfa=i;this.streamManager=new n.ChunkedStreamManager(t,{msgHandler:a.msgHandler,length:a.length,disableAutoFetch:a.disableAutoFetch,rangeChunkSize:a.rangeChunkSize});this.pdfDocument=new s.PDFDocument(this,this.streamManager.getStream())}async ensure(e,t,a){try{const r=e[t];return"function"==typeof r?r.apply(e,a):r}catch(r){if(!(r instanceof i.MissingDataException))throw r;await this.requestRange(r.begin,r.end);return this.ensure(e,t,a)}}requestRange(e,t){return this.streamManager.requestRange(e,t)}requestLoadedStream(e=!1){return this.streamManager.requestAllChunks(e)}sendProgressiveData(e){this.streamManager.onReceiveData({chunk:e})}terminate(e){this.streamManager.abort(e)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ChunkedStreamManager=t.ChunkedStream=void 0;var r=a(2),n=a(4),i=a(8);class ChunkedStream extends i.Stream{constructor(e,t,a){super(new Uint8Array(e),0,e,null);this.chunkSize=t;this._loadedChunks=new Set;this.numChunks=Math.ceil(e/t);this.manager=a;this.progressiveDataLength=0;this.lastSuccessfulEnsureByteChunk=-1}getMissingChunks(){const e=[];for(let t=0,a=this.numChunks;t=this.end?this.numChunks:Math.floor(t/this.chunkSize);for(let e=a;ethis.numChunks)&&t!==this.lastSuccessfulEnsureByteChunk){if(!this._loadedChunks.has(t))throw new n.MissingDataException(e,e+1);this.lastSuccessfulEnsureByteChunk=t}}ensureRange(e,t){if(e>=t)return;if(t<=this.progressiveDataLength)return;const a=Math.floor(e/this.chunkSize);if(a>this.numChunks)return;const r=Math.min(Math.floor((t-1)/this.chunkSize)+1,this.numChunks);for(let i=a;i=this.end)return-1;e>=this.progressiveDataLength&&this.ensureByte(e);return this.bytes[this.pos++]}getBytes(e){const t=this.bytes,a=this.pos,r=this.end;if(!e){r>this.progressiveDataLength&&this.ensureRange(a,r);return t.subarray(a,r)}let n=a+e;n>r&&(n=r);n>this.progressiveDataLength&&this.ensureRange(a,n);this.pos=n;return t.subarray(a,n)}getByteRange(e,t){e<0&&(e=0);t>this.end&&(t=this.end);t>this.progressiveDataLength&&this.ensureRange(e,t);return this.bytes.subarray(e,t)}makeSubStream(e,t,a=null){t?e+t>this.progressiveDataLength&&this.ensureRange(e,e+t):e>=this.progressiveDataLength&&this.ensureByte(e);function ChunkedStreamSubstream(){}ChunkedStreamSubstream.prototype=Object.create(this);ChunkedStreamSubstream.prototype.getMissingChunks=function(){const e=this.chunkSize,t=Math.floor(this.start/e),a=Math.floor((this.end-1)/e)+1,r=[];for(let e=t;e{const readChunk=s=>{try{if(!s.done){const e=s.value;n.push(e);i+=(0,r.arrayByteLength)(e);a.isStreamingSupported&&this.onProgress({loaded:i});a.read().then(readChunk,t);return}const o=(0,r.arraysToBytes)(n);n=null;e(o)}catch(e){t(e)}};a.read().then(readChunk,t)})).then((t=>{this.aborted||this.onReceiveData({chunk:t,begin:e})}))}requestAllChunks(e=!1){if(!e){const e=this.stream.getMissingChunks();this._requestChunks(e)}return this._loadedStreamCapability.promise}_requestChunks(e){const t=this.currRequestId++,a=new Set;this._chunksNeededByRequest.set(t,a);for(const t of e)this.stream.hasChunk(t)||a.add(t);if(0===a.size)return Promise.resolve();const n=(0,r.createPromiseCapability)();this._promisesByRequest.set(t,n);const i=[];for(const e of a){let a=this._requestsByChunk.get(e);if(!a){a=[];this._requestsByChunk.set(e,a);i.push(e)}a.push(t)}if(i.length>0){const e=this.groupChunks(i);for(const t of e){const e=t.beginChunk*this.chunkSize,a=Math.min(t.endChunk*this.chunkSize,this.length);this.sendRequest(e,a).catch(n.reject)}}return n.promise.catch((e=>{if(!this.aborted)throw e}))}getStream(){return this.stream}requestRange(e,t){t=Math.min(t,this.length);const a=this.getBeginChunk(e),r=this.getEndChunk(t),n=[];for(let e=a;e=0&&r+1!==i){t.push({beginChunk:a,endChunk:r+1});a=i}n+1===e.length&&t.push({beginChunk:a,endChunk:i+1});r=i}return t}onProgress(e){this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize+e.loaded,total:this.length})}onReceiveData(e){const t=e.chunk,a=void 0===e.begin,r=a?this.progressiveDataLength:e.begin,n=r+t.byteLength,i=Math.floor(r/this.chunkSize),s=n0||o.push(a)}}}if(!this.disableAutoFetch&&0===this._requestsByChunk.size){let e;if(1===this.stream.numChunksLoaded){const t=this.stream.numChunks-1;this.stream.hasChunk(t)||(e=t)}else e=this.stream.nextEmptyChunk(s);Number.isInteger(e)&&this._requestChunks([e])}for(const e of o){const t=this._promisesByRequest.get(e);this._promisesByRequest.delete(e);t.resolve()}this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize,total:this.length})}onError(e){this._loadedStreamCapability.reject(e)}getBeginChunk(e){return Math.floor(e/this.chunkSize)}getEndChunk(e){return Math.floor((e-1)/this.chunkSize)+1}abort(e){this.aborted=!0;this.pdfNetworkStream&&this.pdfNetworkStream.cancelAllRequests(e);for(const t of this._promisesByRequest.values())t.reject(e)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.StringStream=t.Stream=t.NullStream=void 0;var r=a(5),n=a(2);class Stream extends r.BaseStream{constructor(e,t,a,r){super();this.bytes=e instanceof Uint8Array?e:new Uint8Array(e);this.start=t||0;this.pos=this.start;this.end=t+a||this.bytes.length;this.dict=r}get length(){return this.end-this.start}get isEmpty(){return 0===this.length}getByte(){return this.pos>=this.end?-1:this.bytes[this.pos++]}getBytes(e){const t=this.bytes,a=this.pos,r=this.end;if(!e)return t.subarray(a,r);let n=a+e;n>r&&(n=r);this.pos=n;return t.subarray(a,n)}getByteRange(e,t){e<0&&(e=0);t>this.end&&(t=this.end);return this.bytes.subarray(e,t)}reset(){this.pos=this.start}moveStart(){this.start=this.pos}makeSubStream(e,t,a=null){return new Stream(this.bytes.buffer,e,t,a)}}t.Stream=Stream;t.StringStream=class StringStream extends Stream{constructor(e){super((0,n.stringToBytes)(e))}};t.NullStream=class NullStream extends Stream{constructor(){super(new Uint8Array(0))}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Page=t.PDFDocument=void 0;var r=a(10),n=a(2),i=a(4),s=a(3),o=a(49),c=a(5),l=a(65),h=a(67),u=a(69),d=a(98),f=a(15),g=a(8),p=a(73),m=a(60),b=a(13),y=a(17),w=a(72),S=a(63),x=a(74),C=a(99);const k=[0,0,612,792];class Page{constructor({pdfManager:e,xref:t,pageIndex:a,pageDict:r,ref:n,globalIdFactory:i,fontCache:s,builtInCMapCache:o,standardFontDataCache:c,globalImageCache:l,nonBlendModesSet:h,xfaFactory:u}){this.pdfManager=e;this.pageIndex=a;this.pageDict=r;this.xref=t;this.ref=n;this.fontCache=s;this.builtInCMapCache=o;this.standardFontDataCache=c;this.globalImageCache=l;this.nonBlendModesSet=h;this.evaluatorOptions=e.evaluatorOptions;this.resourcesPromise=null;this.xfaFactory=u;const d={obj:0};this._localIdFactory=class extends i{static createObjId(){return`p${a}_${++d.obj}`}static getPageObjId(){return`page${n.toString()}`}}}_getInheritableProperty(e,t=!1){const a=(0,i.getInheritableProperty)({dict:this.pageDict,key:e,getArray:t,stopWhenFound:!1});return Array.isArray(a)?1!==a.length&&a[0]instanceof s.Dict?s.Dict.merge({xref:this.xref,dictArray:a}):a[0]:a}get content(){return this.pageDict.getArray("Contents")}get resources(){const e=this._getInheritableProperty("Resources");return(0,n.shadow)(this,"resources",e instanceof s.Dict?e:s.Dict.empty)}_getBoundingBox(e){if(this.xfaData)return this.xfaData.bbox;let t=this._getInheritableProperty(e,!0);if(Array.isArray(t)&&4===t.length){t=n.Util.normalizeRect(t);if(t[2]-t[0]>0&&t[3]-t[1]>0)return t;(0,n.warn)(`Empty, or invalid, /${e} entry.`)}return null}get mediaBox(){return(0,n.shadow)(this,"mediaBox",this._getBoundingBox("MediaBox")||k)}get cropBox(){return(0,n.shadow)(this,"cropBox",this._getBoundingBox("CropBox")||this.mediaBox)}get userUnit(){let e=this.pageDict.get("UserUnit");("number"!=typeof e||e<=0)&&(e=1);return(0,n.shadow)(this,"userUnit",e)}get view(){const{cropBox:e,mediaBox:t}=this;if(e!==t&&!(0,n.isArrayEqual)(e,t)){const a=n.Util.intersect(e,t);if(a&&a[2]-a[0]>0&&a[3]-a[1]>0)return(0,n.shadow)(this,"view",a);(0,n.warn)("Empty /CropBox and /MediaBox intersection.")}return(0,n.shadow)(this,"view",t)}get rotate(){let e=this._getInheritableProperty("Rotate")||0;e%90!=0?e=0:e>=360?e%=360:e<0&&(e=(e%360+360)%360);return(0,n.shadow)(this,"rotate",e)}_onSubStreamError(e,t,a){if(!this.evaluatorOptions.ignoreErrors)throw t;e.send("UnsupportedFeature",{featureId:n.UNSUPPORTED_FEATURES.errorContentSubStream});(0,n.warn)(`getContentStream - ignoring sub-stream (${a}): "${t}".`)}getContentStream(e){return this.pdfManager.ensure(this,"content").then((t=>t instanceof c.BaseStream?t:Array.isArray(t)?new y.StreamsSequenceStream(t,this._onSubStreamError.bind(this,e)):new g.NullStream))}get xfaData(){return(0,n.shadow)(this,"xfaData",this.xfaFactory?{bbox:this.xfaFactory.getBoundingBox(this.pageIndex)}:null)}async saveNewAnnotations(e,t,a){if(this.xfaFactory)throw new Error("XFA: Cannot save new annotations.");const n=new b.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions}),i=this.pageDict,s=this.annotations.slice(),o=await r.AnnotationFactory.saveNewAnnotations(n,t,a);for(const{ref:e}of o.annotations)s.push(e);const c=i.get("Annots");i.set("Annots",s);const l=[];let h=null;this.xref.encrypt&&(h=this.xref.encrypt.createCipherTransform(this.ref.num,this.ref.gen));(0,S.writeObject)(this.ref,i,l,h);c&&i.set("Annots",c);const u=o.dependencies;u.push({ref:this.ref,data:l.join("")},...o.annotations);return u}save(e,t,a){const r=new b.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions});return this._parsedAnnotations.then((function(e){const i=[];for(const s of e)s.mustBePrinted(a)&&i.push(s.save(r,t,a).catch((function(e){(0,n.warn)(`save - ignoring annotation data during "${t.name}" task: "${e}".`);return null})));return Promise.all(i).then((function(e){return e.filter((e=>!!e))}))}))}loadResources(e){this.resourcesPromise||(this.resourcesPromise=this.pdfManager.ensure(this,"resources"));return this.resourcesPromise.then((()=>new p.ObjectLoader(this.resources,e,this.xref).load()))}getOperatorList({handler:e,sink:t,task:a,intent:s,cacheKey:o,annotationStorage:c=null}){const l=this.getContentStream(e),h=this.loadResources(["ColorSpace","ExtGState","Font","Pattern","Properties","Shading","XObject"]),u=new b.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions}),d=this.xfaFactory?null:(0,i.getNewAnnotationsMap)(c);let f=Promise.resolve(null);if(d){const e=d.get(this.pageIndex);e&&(f=r.AnnotationFactory.printNewAnnotations(u,a,e))}const g=Promise.all([l,h]).then((([r])=>{const n=new m.OperatorList(s,t);e.send("StartRenderPage",{transparency:u.hasBlendModes(this.resources,this.nonBlendModesSet),pageIndex:this.pageIndex,cacheKey:o});return u.getOperatorList({stream:r,task:a,resources:this.resources,operatorList:n}).then((function(){return n}))}));return Promise.all([g,this._parsedAnnotations,f]).then((function([e,t,r]){r&&(t=t.concat(r));if(0===t.length||s&n.RenderingIntentFlag.ANNOTATIONS_DISABLE){e.flush(!0);return{length:e.totalLength}}const i=!!(s&n.RenderingIntentFlag.ANNOTATIONS_FORMS),o=!!(s&n.RenderingIntentFlag.ANY),l=!!(s&n.RenderingIntentFlag.DISPLAY),h=!!(s&n.RenderingIntentFlag.PRINT),d=[];for(const e of t)(o||l&&e.mustBeViewed(c)||h&&e.mustBePrinted(c))&&d.push(e.getOperatorList(u,a,s,i,c).catch((function(e){(0,n.warn)(`getOperatorList - ignoring annotation data during "${a.name}" task: "${e}".`);return{opList:null,separateForm:!1,separateCanvas:!1}})));return Promise.all(d).then((function(t){let a=!1,r=!1;for(const{opList:n,separateForm:i,separateCanvas:s}of t){e.addOpList(n);i&&(a=i);s&&(r=s)}e.flush(!0,{form:a,canvas:r});return{length:e.totalLength}}))}))}extractTextContent({handler:e,task:t,includeMarkedContent:a,sink:r,combineTextItems:n}){const i=this.getContentStream(e),s=this.loadResources(["ExtGState","Font","Properties","XObject"]);return Promise.all([i,s]).then((([i])=>new b.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions}).getTextContent({stream:i,task:t,resources:this.resources,includeMarkedContent:a,combineTextItems:n,sink:r,viewBox:this.view})))}async getStructTree(){const e=await this.pdfManager.ensureCatalog("structTreeRoot");if(!e)return null;return(await this.pdfManager.ensure(this,"_parseStructTree",[e])).serializable}_parseStructTree(e){const t=new w.StructTreePage(e,this.pageDict);t.parse();return t}async getAnnotationsData(e,t,a){const r=await this._parsedAnnotations;if(0===r.length)return[];const i=[],s=[];let o;const c=!!(a&n.RenderingIntentFlag.ANY),l=!!(a&n.RenderingIntentFlag.DISPLAY),h=!!(a&n.RenderingIntentFlag.PRINT);for(const a of r){const r=c||l&&a.viewable;(r||h&&a.printable)&&s.push(a.data);if(a.hasTextContent&&r){o||(o=new b.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions}));i.push(a.extractTextContent(o,t,this.view).catch((function(e){(0,n.warn)(`getAnnotationsData - ignoring textContent during "${t.name}" task: "${e}".`)})))}}await Promise.all(i);return s}get annotations(){const e=this._getInheritableProperty("Annots");return(0,n.shadow)(this,"annotations",Array.isArray(e)?e:[])}get _parsedAnnotations(){const e=this.pdfManager.ensure(this,"annotations").then((()=>{const e=[];for(const t of this.annotations)e.push(r.AnnotationFactory.create(this.xref,t,this.pdfManager,this._localIdFactory,!1).catch((function(e){(0,n.warn)(`_parsedAnnotations: "${e}".`);return null})));return Promise.all(e).then((function(e){if(0===e.length)return e;const t=[];let a;for(const n of e)if(n)if(n instanceof r.PopupAnnotation){a||(a=[]);a.push(n)}else t.push(n);a&&t.push(...a);return t}))}));return(0,n.shadow)(this,"_parsedAnnotations",e)}get jsActions(){const e=(0,i.collectActions)(this.xref,this.pageDict,n.PageActionEventType);return(0,n.shadow)(this,"jsActions",e)}}t.Page=Page;const v=new Uint8Array([37,80,68,70,45]),F=new Uint8Array([115,116,97,114,116,120,114,101,102]),O=new Uint8Array([101,110,100,111,98,106]);function find(e,t,a=1024,r=!1){const n=t.length,i=e.peekBytes(a),s=i.length-n;if(s<=0)return!1;if(r){const a=n-1;let r=i.length-1;for(;r>=a;){let s=0;for(;s=n){e.pos+=r-a;return!0}r--}}else{let a=0;for(;a<=s;){let r=0;for(;r=n){e.pos+=a;return!0}a++}}return!1}t.PDFDocument=class PDFDocument{constructor(e,t){if(t.length<=0)throw new n.InvalidPDFException("The PDF file is empty, i.e. its size is zero bytes.");this.pdfManager=e;this.stream=t;this.xref=new C.XRef(t,e);this._pagePromises=new Map;this._version=null;const a={font:0};this._globalIdFactory=class{static getDocId(){return`g_${e.docId}`}static createFontId(){return"f"+ ++a.font}static createObjId(){(0,n.unreachable)("Abstract method `createObjId` called.")}static getPageObjId(){(0,n.unreachable)("Abstract method `getPageObjId` called.")}}}parse(e){this.xref.parse(e);this.catalog=new h.Catalog(this.pdfManager,this.xref)}get linearization(){let e=null;try{e=f.Linearization.create(this.stream)}catch(e){if(e instanceof i.MissingDataException)throw e;(0,n.info)(e)}return(0,n.shadow)(this,"linearization",e)}get startXRef(){const e=this.stream;let t=0;if(this.linearization){e.reset();find(e,O)&&(t=e.pos+6-e.start)}else{const a=1024,r=F.length;let n=!1,s=e.end;for(;!n&&s>0;){s-=a-r;s<0&&(s=0);e.pos=s;n=find(e,F,a,!0)}if(n){e.skip(9);let a;do{a=e.getByte()}while((0,i.isWhiteSpace)(a));let r="";for(;a>=32&&a<=57;){r+=String.fromCharCode(a);a=e.getByte()}t=parseInt(r,10);isNaN(t)&&(t=0)}}return(0,n.shadow)(this,"startXRef",t)}checkHeader(){const e=this.stream;e.reset();if(!find(e,v))return;e.moveStart();e.skip(v.length);let t,a="";for(;(t=e.getByte())>32&&a.length<7;)a+=String.fromCharCode(t);i.PDF_VERSION_REGEXP.test(a)?this._version=a:(0,n.warn)(`Invalid PDF header version: ${a}`)}parseStartXRef(){this.xref.setStartXRef(this.startXRef)}get numPages(){let e=0;e=this.catalog.hasActualNumPages?this.catalog.numPages:this.xfaFactory?this.xfaFactory.getNumPages():this.linearization?this.linearization.numPages:this.catalog.numPages;return(0,n.shadow)(this,"numPages",e)}_hasOnlyDocumentSignatures(e,t=0){return!!Array.isArray(e)&&e.every((e=>{if(!((e=this.xref.fetchIfRef(e))instanceof s.Dict))return!1;if(e.has("Kids")){if(++t>10){(0,n.warn)("_hasOnlyDocumentSignatures: maximum recursion depth reached");return!1}return this._hasOnlyDocumentSignatures(e.get("Kids"),t)}const a=(0,s.isName)(e.get("FT"),"Sig"),r=e.get("Rect"),i=Array.isArray(r)&&r.every((e=>0===e));return a&&i}))}get _xfaStreams(){const e=this.catalog.acroForm;if(!e)return null;const t=e.get("XFA"),a={"xdp:xdp":"",template:"",datasets:"",config:"",connectionSet:"",localeSet:"",stylesheet:"","/xdp:xdp":""};if(t instanceof c.BaseStream&&!t.isEmpty){a["xdp:xdp"]=t;return a}if(!Array.isArray(t)||0===t.length)return null;for(let e=0,r=t.length;e{y.set(e,t)}));const w=[];for(const[e,a]of y){const o=a.get("FontDescriptor");if(!(o instanceof s.Dict))continue;let c=o.get("FontFamily");c=c.replace(/[ ]+(\d)/g,"$1");const l={fontFamily:c,fontWeight:o.get("FontWeight"),italicAngle:-o.get("ItalicAngle")};(0,i.validateCSSFont)(l)&&w.push(u.handleSetFont(r,[s.Name.get(e),1],null,d,t,g,null,l).catch((function(e){(0,n.warn)(`loadXfaFonts: "${e}".`);return null})))}await Promise.all(w);const S=this.xfaFactory.setFonts(f);if(!S)return;h.ignoreErrors=!0;w.length=0;f.length=0;const x=new Set;for(const e of S)(0,o.getXfaFontName)(`${e}-Regular`)||x.add(e);x.size&&S.push("PdfJS-Fallback");for(const e of S)if(!x.has(e))for(const a of[{name:"Regular",fontWeight:400,italicAngle:0},{name:"Bold",fontWeight:700,italicAngle:0},{name:"Italic",fontWeight:400,italicAngle:12},{name:"BoldItalic",fontWeight:700,italicAngle:12}]){const i=`${e}-${a.name}`,c=(0,o.getXfaFontDict)(i);w.push(u.handleSetFont(r,[s.Name.get(i),1],null,d,t,g,c,{fontFamily:e,fontWeight:a.fontWeight,italicAngle:a.italicAngle}).catch((function(e){(0,n.warn)(`loadXfaFonts: "${e}".`);return null})))}await Promise.all(w);this.xfaFactory.appendFonts(f,x)}async serializeXfaData(e){return this.xfaFactory?this.xfaFactory.serializeData(e):null}get version(){return this.catalog.version||this._version}get formInfo(){const e={hasFields:!1,hasAcroForm:!1,hasXfa:!1,hasSignatures:!1},t=this.catalog.acroForm;if(!t)return(0,n.shadow)(this,"formInfo",e);try{const a=t.get("Fields"),r=Array.isArray(a)&&a.length>0;e.hasFields=r;const n=t.get("XFA");e.hasXfa=Array.isArray(n)&&n.length>0||n instanceof c.BaseStream&&!n.isEmpty;const i=!!(1&t.get("SigFlags")),s=i&&this._hasOnlyDocumentSignatures(a);e.hasAcroForm=r&&!s;e.hasSignatures=i}catch(e){if(e instanceof i.MissingDataException)throw e;(0,n.warn)(`Cannot fetch form information: "${e}".`)}return(0,n.shadow)(this,"formInfo",e)}get documentInfo(){const e={PDFFormatVersion:this.version,Language:this.catalog.lang,EncryptFilterName:this.xref.encrypt?this.xref.encrypt.filterName:null,IsLinearized:!!this.linearization,IsAcroFormPresent:this.formInfo.hasAcroForm,IsXFAPresent:this.formInfo.hasXfa,IsCollectionPresent:!!this.catalog.collection,IsSignaturesPresent:this.formInfo.hasSignatures};let t;try{t=this.xref.trailer.get("Info")}catch(e){if(e instanceof i.MissingDataException)throw e;(0,n.info)("The document information dictionary is invalid.")}if(!(t instanceof s.Dict))return(0,n.shadow)(this,"documentInfo",e);for(const a of t.getKeys()){const r=t.get(a);switch(a){case"Title":case"Author":case"Subject":case"Keywords":case"Creator":case"Producer":case"CreationDate":case"ModDate":if("string"==typeof r){e[a]=(0,n.stringToPDFString)(r);continue}break;case"Trapped":if(r instanceof s.Name){e[a]=r;continue}break;default:let t;switch(typeof r){case"string":t=(0,n.stringToPDFString)(r);break;case"number":case"boolean":t=r;break;default:r instanceof s.Name&&(t=r)}if(void 0===t){(0,n.warn)(`Bad value, for custom key "${a}", in Info: ${r}.`);continue}e.Custom||(e.Custom=Object.create(null));e.Custom[a]=t;continue}(0,n.warn)(`Bad value, for key "${a}", in Info: ${r}.`)}return(0,n.shadow)(this,"documentInfo",e)}get fingerprints(){function validate(e){return"string"==typeof e&&e.length>0&&"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"!==e}function hexString(e){const t=[];for(const a of e){const e=a.toString(16);t.push(e.padStart(2,"0"))}return t.join("")}const e=this.xref.trailer.get("ID");let t,a;if(Array.isArray(e)&&validate(e[0])){t=(0,n.stringToBytes)(e[0]);e[1]!==e[0]&&validate(e[1])&&(a=(0,n.stringToBytes)(e[1]))}else t=(0,l.calculateMD5)(this.stream.getByteRange(0,1024),0,1024);return(0,n.shadow)(this,"fingerprints",[hexString(t),a?hexString(a):null])}async _getLinearizationPage(e){const{catalog:t,linearization:a,xref:r}=this,i=s.Ref.get(a.objectNumberFirst,0);try{const e=await r.fetchAsync(i);if(e instanceof s.Dict){let a=e.getRaw("Type");a instanceof s.Ref&&(a=await r.fetchAsync(a));if((0,s.isName)(a,"Page")||!e.has("Type")&&!e.has("Kids")){t.pageKidsCountCache.has(i)||t.pageKidsCountCache.put(i,1);t.pageIndexCache.has(i)||t.pageIndexCache.put(i,0);return[e,i]}}throw new n.FormatError("The Linearization dictionary doesn't point to a valid Page dictionary.")}catch(a){(0,n.warn)(`_getLinearizationPage: "${a.message}".`);return t.getPageDict(e)}}getPage(e){const t=this._pagePromises.get(e);if(t)return t;const{catalog:a,linearization:r,xfaFactory:n}=this;let i;i=n?Promise.resolve([s.Dict.empty,null]):r&&r.pageFirst===e?this._getLinearizationPage(e):a.getPageDict(e);i=i.then((([t,r])=>new Page({pdfManager:this.pdfManager,xref:this.xref,pageIndex:e,pageDict:t,ref:r,globalIdFactory:this._globalIdFactory,fontCache:a.fontCache,builtInCMapCache:a.builtInCMapCache,standardFontDataCache:a.standardFontDataCache,globalImageCache:a.globalImageCache,nonBlendModesSet:a.nonBlendModesSet,xfaFactory:n})));this._pagePromises.set(e,i);return i}async checkFirstPage(e=!1){if(!e)try{await this.getPage(0)}catch(e){if(e instanceof i.XRefEntryException){this._pagePromises.delete(0);await this.cleanup();throw new i.XRefParseException}}}async checkLastPage(e=!1){const{catalog:t,pdfManager:a}=this;t.setActualNumPages();let r;try{await Promise.all([a.ensureDoc("xfaFactory"),a.ensureDoc("linearization"),a.ensureCatalog("numPages")]);if(this.xfaFactory)return;r=this.linearization?this.linearization.numPages:t.numPages;if(!Number.isInteger(r))throw new n.FormatError("Page count is not an integer.");if(r<=1)return;await this.getPage(r-1)}catch(s){this._pagePromises.delete(r-1);await this.cleanup();if(s instanceof i.XRefEntryException&&!e)throw new i.XRefParseException;(0,n.warn)(`checkLastPage - invalid /Pages tree /Count: ${r}.`);let o;try{o=await t.getAllPageDicts(e)}catch(a){if(a instanceof i.XRefEntryException&&!e)throw new i.XRefParseException;t.setActualNumPages(1);return}for(const[e,[r,n]]of o){let i;if(r instanceof Error){i=Promise.reject(r);i.catch((()=>{}))}else i=Promise.resolve(new Page({pdfManager:a,xref:this.xref,pageIndex:e,pageDict:r,ref:n,globalIdFactory:this._globalIdFactory,fontCache:t.fontCache,builtInCMapCache:t.builtInCMapCache,standardFontDataCache:t.standardFontDataCache,globalImageCache:t.globalImageCache,nonBlendModesSet:t.nonBlendModesSet,xfaFactory:null}));this._pagePromises.set(e,i)}t.setActualNumPages(o.size)}}fontFallback(e,t){return this.catalog.fontFallback(e,t)}async cleanup(e=!1){return this.catalog?this.catalog.cleanup(e):(0,u.clearGlobalCaches)()}_collectFieldObjects(e,t,a){const i=this.xref.fetchIfRef(t);if(i.has("T")){const t=(0,n.stringToPDFString)(i.get("T"));e=""===e?t:`${e}.${t}`}a.has(e)||a.set(e,[]);a.get(e).push(r.AnnotationFactory.create(this.xref,t,this.pdfManager,this._localIdFactory,!0).then((e=>e&&e.getFieldObject())).catch((function(e){(0,n.warn)(`_collectFieldObjects: "${e}".`);return null})));if(i.has("Kids")){const t=i.get("Kids");for(const r of t)this._collectFieldObjects(e,r,a)}}get fieldObjects(){if(!this.formInfo.hasFields)return(0,n.shadow)(this,"fieldObjects",Promise.resolve(null));const e=Object.create(null),t=new Map;for(const e of this.catalog.acroForm.get("Fields"))this._collectFieldObjects("",e,t);const a=[];for(const[r,n]of t)a.push(Promise.all(n).then((t=>{(t=t.filter((e=>!!e))).length>0&&(e[r]=t)})));return(0,n.shadow)(this,"fieldObjects",Promise.all(a).then((()=>e)))}get hasJSActions(){const e=this.pdfManager.ensureDoc("_parseHasJSActions");return(0,n.shadow)(this,"hasJSActions",e)}async _parseHasJSActions(){const[e,t]=await Promise.all([this.pdfManager.ensureCatalog("jsActions"),this.pdfManager.ensureDoc("fieldObjects")]);return!!e||!!t&&Object.values(t).some((e=>e.some((e=>null!==e.actions))))}get calculationOrderIds(){const e=this.catalog.acroForm;if(!e||!e.has("CO"))return(0,n.shadow)(this,"calculationOrderIds",null);const t=e.get("CO");if(!Array.isArray(t)||0===t.length)return(0,n.shadow)(this,"calculationOrderIds",null);const a=[];for(const e of t)e instanceof s.Ref&&a.push(e.toString());return 0===a.length?(0,n.shadow)(this,"calculationOrderIds",null):(0,n.shadow)(this,"calculationOrderIds",a)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.PopupAnnotation=t.MarkupAnnotation=t.AnnotationFactory=t.AnnotationBorderStyle=t.Annotation=void 0;t.getQuadPoints=getQuadPoints;var r=a(2),n=a(4),i=a(11),s=a(3),o=a(63),c=a(5),l=a(58),h=a(67),u=a(12),d=a(70),f=a(73),g=a(60),p=a(8),m=a(74);t.AnnotationFactory=class AnnotationFactory{static create(e,t,a,r,n){return Promise.all([a.ensureCatalog("acroForm"),a.ensureCatalog("baseUrl"),a.ensureCatalog("attachments"),a.ensureDoc("xfaDatasets"),n?this._getPageIndex(e,t,a):-1]).then((([i,s,o,c,l])=>a.ensure(this,"_create",[e,t,a,r,i,o,c,n,l])))}static _create(e,t,a,i,o,c=null,l,h,u=-1){const d=e.fetchIfRef(t);if(!(d instanceof s.Dict))return;const f=t instanceof s.Ref?t.toString():`annot_${i.createObjId()}`;let g=d.get("Subtype");g=g instanceof s.Name?g.name:null;const p=o instanceof s.Dict?o:s.Dict.empty,m={xref:e,ref:t,dict:d,subtype:g,id:f,pdfManager:a,acroForm:p,attachments:c,xfaDatasets:l,collectFields:h,needAppearances:!h&&!0===p.get("NeedAppearances"),pageIndex:u,isOffscreenCanvasSupported:r.FeatureTest.isOffscreenCanvasSupported&&a.evaluatorOptions.isOffscreenCanvasSupported};switch(g){case"Link":return new LinkAnnotation(m);case"Text":return new TextAnnotation(m);case"Widget":let e=(0,n.getInheritableProperty)({dict:d,key:"FT"});e=e instanceof s.Name?e.name:null;switch(e){case"Tx":return new TextWidgetAnnotation(m);case"Btn":return new ButtonWidgetAnnotation(m);case"Ch":return new ChoiceWidgetAnnotation(m);case"Sig":return new SignatureWidgetAnnotation(m)}(0,r.warn)(`Unimplemented widget field type "${e}", falling back to base field type.`);return new WidgetAnnotation(m);case"Popup":return new PopupAnnotation(m);case"FreeText":return new FreeTextAnnotation(m);case"Line":return new LineAnnotation(m);case"Square":return new SquareAnnotation(m);case"Circle":return new CircleAnnotation(m);case"PolyLine":return new PolylineAnnotation(m);case"Polygon":return new PolygonAnnotation(m);case"Caret":return new CaretAnnotation(m);case"Ink":return new InkAnnotation(m);case"Highlight":return new HighlightAnnotation(m);case"Underline":return new UnderlineAnnotation(m);case"Squiggly":return new SquigglyAnnotation(m);case"StrikeOut":return new StrikeOutAnnotation(m);case"Stamp":return new StampAnnotation(m);case"FileAttachment":return new FileAttachmentAnnotation(m);default:h||(g?(0,r.warn)(`Unimplemented annotation type "${g}", falling back to base annotation.`):(0,r.warn)("Annotation is missing the required /Subtype."));return new Annotation(m)}}static async _getPageIndex(e,t,a){try{const r=await e.fetchIfRefAsync(t);if(!(r instanceof s.Dict))return-1;const n=r.getRaw("P");if(!(n instanceof s.Ref))return-1;return await a.ensureCatalog("getPageIndex",[n])}catch(e){(0,r.warn)(`_getPageIndex: "${e}".`);return-1}}static async saveNewAnnotations(e,t,a){const n=e.xref;let i;const c=[],l=[];for(const h of a)switch(h.annotationType){case r.AnnotationEditorType.FREETEXT:if(!i){const e=new s.Dict(n);e.set("BaseFont",s.Name.get("Helvetica"));e.set("Type",s.Name.get("Font"));e.set("Subtype",s.Name.get("Type1"));e.set("Encoding",s.Name.get("WinAnsiEncoding"));const t=[];i=n.getNewTemporaryRef();(0,o.writeObject)(i,e,t,null);c.push({ref:i,data:t.join("")})}l.push(FreeTextAnnotation.createNewAnnotation(n,h,c,{evaluator:e,task:t,baseFontRef:i}));break;case r.AnnotationEditorType.INK:l.push(InkAnnotation.createNewAnnotation(n,h,c))}return{annotations:await Promise.all(l),dependencies:c}}static async printNewAnnotations(e,t,a){if(!a)return null;const n=e.xref,i=[],s=r.FeatureTest.isOffscreenCanvasSupported&&e.options.isOffscreenCanvasSupported;for(const o of a)switch(o.annotationType){case r.AnnotationEditorType.FREETEXT:i.push(FreeTextAnnotation.createNewPrintAnnotation(n,o,{evaluator:e,task:t,isOffscreenCanvasSupported:s}));break;case r.AnnotationEditorType.INK:i.push(InkAnnotation.createNewPrintAnnotation(n,o,{isOffscreenCanvasSupported:s}))}return Promise.all(i)}};function getRgbColor(e,t=new Uint8ClampedArray(3)){if(!Array.isArray(e))return t;const a=t||new Uint8ClampedArray(3);switch(e.length){case 0:return null;case 1:u.ColorSpace.singletons.gray.getRgbItem(e,0,a,0);return a;case 3:u.ColorSpace.singletons.rgb.getRgbItem(e,0,a,0);return a;case 4:u.ColorSpace.singletons.cmyk.getRgbItem(e,0,a,0);return a;default:return t}}function getPdfColorArray(e){return Array.from(e,(e=>e/255))}function getQuadPoints(e,t){const a=e.getArray("QuadPoints");if(!Array.isArray(a)||0===a.length||a.length%8>0)return null;const r=[];for(let e=0,n=a.length/8;et[2]||st[3]))return null;r.push([{x:n,y:o},{x:i,y:o},{x:n,y:s},{x:i,y:s}])}return r}function getTransformMatrix(e,t,a){const[n,i,s,o]=r.Util.getAxialAlignedBoundingBox(t,a);if(n===s||i===o)return[1,0,0,1,e[0],e[1]];const c=(e[2]-e[0])/(s-n),l=(e[3]-e[1])/(o-i);return[c,0,0,l,e[0]-n*c,e[1]-i*l]}class Annotation{constructor(e){const{dict:t,xref:a}=e;this.setTitle(t.get("T"));this.setContents(t.get("Contents"));this.setModificationDate(t.get("M"));this.setFlags(t.get("F"));this.setRectangle(t.getArray("Rect"));this.setColor(t.getArray("C"));this.setBorderStyle(t);this.setAppearance(t);this.setOptionalContent(t);const i=t.get("MK");this.setBorderAndBackgroundColors(i);this.setRotation(i);this._streams=[];this.appearance&&this._streams.push(this.appearance);this.data={annotationFlags:this.flags,borderStyle:this.borderStyle,color:this.color,backgroundColor:this.backgroundColor,borderColor:this.borderColor,rotation:this.rotation,contentsObj:this._contents,hasAppearance:!!this.appearance,id:e.id,modificationDate:this.modificationDate,rect:this.rectangle,subtype:e.subtype,hasOwnCanvas:!1};if(e.collectFields){const i=t.get("Kids");if(Array.isArray(i)){const e=[];for(const t of i)t instanceof s.Ref&&e.push(t.toString());0!==e.length&&(this.data.kidIds=e)}this.data.actions=(0,n.collectActions)(a,t,r.AnnotationActionEventType);this.data.fieldName=this._constructFieldName(t);this.data.pageIndex=e.pageIndex}this._isOffscreenCanvasSupported=e.isOffscreenCanvasSupported;this._fallbackFontDict=null;this._needAppearances=!1}_hasFlag(e,t){return!!(e&t)}_isViewable(e){return!this._hasFlag(e,r.AnnotationFlag.INVISIBLE)&&!this._hasFlag(e,r.AnnotationFlag.NOVIEW)}_isPrintable(e){return this._hasFlag(e,r.AnnotationFlag.PRINT)&&!this._hasFlag(e,r.AnnotationFlag.INVISIBLE)}mustBeViewed(e){const t=e&&e.get(this.data.id);return t&&void 0!==t.hidden?!t.hidden:this.viewable&&!this._hasFlag(this.flags,r.AnnotationFlag.HIDDEN)}mustBePrinted(e){const t=e&&e.get(this.data.id);return t&&void 0!==t.print?t.print:this.printable}get viewable(){return null!==this.data.quadPoints&&(0===this.flags||this._isViewable(this.flags))}get printable(){return null!==this.data.quadPoints&&(0!==this.flags&&this._isPrintable(this.flags))}_parseStringHelper(e){const t="string"==typeof e?(0,r.stringToPDFString)(e):"";return{str:t,dir:t&&"rtl"===(0,l.bidi)(t).dir?"rtl":"ltr"}}setDefaultAppearance(e){const t=(0,n.getInheritableProperty)({dict:e.dict,key:"DA"})||e.acroForm.get("DA");this._defaultAppearance="string"==typeof t?t:"";this.data.defaultAppearanceData=(0,i.parseDefaultAppearance)(this._defaultAppearance)}setTitle(e){this._title=this._parseStringHelper(e)}setContents(e){this._contents=this._parseStringHelper(e)}setModificationDate(e){this.modificationDate="string"==typeof e?e:null}setFlags(e){this.flags=Number.isInteger(e)&&e>0?e:0}hasFlag(e){return this._hasFlag(this.flags,e)}setRectangle(e){Array.isArray(e)&&4===e.length?this.rectangle=r.Util.normalizeRect(e):this.rectangle=[0,0,0,0]}setColor(e){this.color=getRgbColor(e)}setLineEndings(e){this.lineEndings=["None","None"];if(Array.isArray(e)&&2===e.length)for(let t=0;t<2;t++){const a=e[t];if(a instanceof s.Name)switch(a.name){case"None":continue;case"Square":case"Circle":case"Diamond":case"OpenArrow":case"ClosedArrow":case"Butt":case"ROpenArrow":case"RClosedArrow":case"Slash":this.lineEndings[t]=a.name;continue}(0,r.warn)(`Ignoring invalid lineEnding: ${a}`)}}setRotation(e){this.rotation=0;if(e instanceof s.Dict){let t=e.get("R")||0;if(Number.isInteger(t)&&0!==t){t%=360;t<0&&(t+=360);t%90==0&&(this.rotation=t)}}}setBorderAndBackgroundColors(e){if(e instanceof s.Dict){this.borderColor=getRgbColor(e.getArray("BC"),null);this.backgroundColor=getRgbColor(e.getArray("BG"),null)}else this.borderColor=this.backgroundColor=null}setBorderStyle(e){this.borderStyle=new AnnotationBorderStyle;if(e instanceof s.Dict)if(e.has("BS")){const t=e.get("BS"),a=t.get("Type");if(!a||(0,s.isName)(a,"Border")){this.borderStyle.setWidth(t.get("W"),this.rectangle);this.borderStyle.setStyle(t.get("S"));this.borderStyle.setDashArray(t.getArray("D"))}}else if(e.has("Border")){const t=e.getArray("Border");if(Array.isArray(t)&&t.length>=3){this.borderStyle.setHorizontalCornerRadius(t[0]);this.borderStyle.setVerticalCornerRadius(t[1]);this.borderStyle.setWidth(t[2],this.rectangle);4===t.length&&this.borderStyle.setDashArray(t[3],!0)}}else this.borderStyle.setWidth(0)}setAppearance(e){this.appearance=null;const t=e.get("AP");if(!(t instanceof s.Dict))return;const a=t.get("N");if(a instanceof c.BaseStream){this.appearance=a;return}if(!(a instanceof s.Dict))return;const r=e.get("AS");if(!(r instanceof s.Name&&a.has(r.name)))return;const n=a.get(r.name);n instanceof c.BaseStream&&(this.appearance=n)}setOptionalContent(e){this.oc=null;const t=e.get("OC");t instanceof s.Name?(0,r.warn)("setOptionalContent: Support for /Name-entry is not implemented."):t instanceof s.Dict&&(this.oc=t)}loadResources(e,t){return t.dict.getAsync("Resources").then((t=>{if(!t)return;return new f.ObjectLoader(t,e,t.xref).load().then((function(){return t}))}))}async getOperatorList(e,t,a,n,i){const o=this.data;let c=this.appearance;const l=!!(this.data.hasOwnCanvas&&a&r.RenderingIntentFlag.DISPLAY);if(!c){if(!l)return{opList:new g.OperatorList,separateForm:!1,separateCanvas:!1};c=new p.StringStream("");c.dict=new s.Dict}const h=c.dict,u=await this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"],c),d=h.getArray("BBox")||[0,0,1,1],f=h.getArray("Matrix")||[1,0,0,1,0,0],m=getTransformMatrix(o.rect,d,f),b=new g.OperatorList;let y;this.oc&&(y=await e.parseMarkedContentProps(this.oc,null));void 0!==y&&b.addOp(r.OPS.beginMarkedContentProps,["OC",y]);b.addOp(r.OPS.beginAnnotation,[o.id,o.rect,m,f,l]);await e.getOperatorList({stream:c,task:t,resources:u,operatorList:b,fallbackFontDict:this._fallbackFontDict});b.addOp(r.OPS.endAnnotation,[]);void 0!==y&&b.addOp(r.OPS.endMarkedContent,[]);this.reset();return{opList:b,separateForm:!1,separateCanvas:l}}async save(e,t,a){return null}get hasTextContent(){return!1}async extractTextContent(e,t,a){if(!this.appearance)return;const r=await this.loadResources(["ExtGState","Font","Properties","XObject"],this.appearance),n=[],i=[],s={desiredSize:Math.Infinity,ready:!0,enqueue(e,t){for(const t of e.items){i.push(t.str);if(t.hasEOL){n.push(i.join(""));i.length=0}}}};await e.getTextContent({stream:this.appearance,task:t,resources:r,includeMarkedContent:!0,combineTextItems:!0,sink:s,viewBox:a});this.reset();i.length&&n.push(i.join(""));n.length>0&&(this.data.textContent=n)}getFieldObject(){return this.data.kidIds?{id:this.data.id,actions:this.data.actions,name:this.data.fieldName,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:"",kidIds:this.data.kidIds,page:this.data.pageIndex,rotation:this.rotation}:null}reset(){for(const e of this._streams)e.reset()}_constructFieldName(e){if(!e.has("T")&&!e.has("Parent")){(0,r.warn)("Unknown field name, falling back to empty field name.");return""}if(!e.has("Parent"))return(0,r.stringToPDFString)(e.get("T"));const t=[];e.has("T")&&t.unshift((0,r.stringToPDFString)(e.get("T")));let a=e;const n=new s.RefSet;e.objId&&n.put(e.objId);for(;a.has("Parent");){a=a.get("Parent");if(!(a instanceof s.Dict)||a.objId&&n.has(a.objId))break;a.objId&&n.put(a.objId);a.has("T")&&t.unshift((0,r.stringToPDFString)(a.get("T")))}return t.join(".")}}t.Annotation=Annotation;class AnnotationBorderStyle{constructor(){this.width=1;this.style=r.AnnotationBorderStyleType.SOLID;this.dashArray=[3];this.horizontalCornerRadius=0;this.verticalCornerRadius=0}setWidth(e,t=[0,0,0,0]){if(e instanceof s.Name)this.width=0;else if("number"==typeof e){if(e>0){const a=(t[2]-t[0])/2,n=(t[3]-t[1])/2;if(a>0&&n>0&&(e>a||e>n)){(0,r.warn)(`AnnotationBorderStyle.setWidth - ignoring width: ${e}`);e=1}}this.width=e}}setStyle(e){if(e instanceof s.Name)switch(e.name){case"S":this.style=r.AnnotationBorderStyleType.SOLID;break;case"D":this.style=r.AnnotationBorderStyleType.DASHED;break;case"B":this.style=r.AnnotationBorderStyleType.BEVELED;break;case"I":this.style=r.AnnotationBorderStyleType.INSET;break;case"U":this.style=r.AnnotationBorderStyleType.UNDERLINE}}setDashArray(e,t=!1){if(Array.isArray(e)&&e.length>0){let a=!0,r=!0;for(const t of e){if(!(+t>=0)){a=!1;break}t>0&&(r=!1)}if(a&&!r){this.dashArray=e;t&&this.setStyle(s.Name.get("D"))}else this.width=0}else e&&(this.width=0)}setHorizontalCornerRadius(e){Number.isInteger(e)&&(this.horizontalCornerRadius=e)}setVerticalCornerRadius(e){Number.isInteger(e)&&(this.verticalCornerRadius=e)}}t.AnnotationBorderStyle=AnnotationBorderStyle;class MarkupAnnotation extends Annotation{constructor(e){super(e);const{dict:t}=e;if(t.has("IRT")){const e=t.getRaw("IRT");this.data.inReplyTo=e instanceof s.Ref?e.toString():null;const a=t.get("RT");this.data.replyType=a instanceof s.Name?a.name:r.AnnotationReplyType.REPLY}if(this.data.replyType===r.AnnotationReplyType.GROUP){const e=t.get("IRT");this.setTitle(e.get("T"));this.data.titleObj=this._title;this.setContents(e.get("Contents"));this.data.contentsObj=this._contents;if(e.has("CreationDate")){this.setCreationDate(e.get("CreationDate"));this.data.creationDate=this.creationDate}else this.data.creationDate=null;if(e.has("M")){this.setModificationDate(e.get("M"));this.data.modificationDate=this.modificationDate}else this.data.modificationDate=null;this.data.hasPopup=e.has("Popup");if(e.has("C")){this.setColor(e.getArray("C"));this.data.color=this.color}else this.data.color=null}else{this.data.titleObj=this._title;this.setCreationDate(t.get("CreationDate"));this.data.creationDate=this.creationDate;this.data.hasPopup=t.has("Popup");t.has("C")||(this.data.color=null)}t.has("RC")&&(this.data.richText=m.XFAFactory.getRichTextAsHtml(t.get("RC")))}setCreationDate(e){this.creationDate="string"==typeof e?e:null}_setDefaultAppearance({xref:e,extra:t,strokeColor:a,fillColor:r,blendMode:n,strokeAlpha:i,fillAlpha:o,pointsCallback:c}){let l=Number.MAX_VALUE,h=Number.MAX_VALUE,u=Number.MIN_VALUE,d=Number.MIN_VALUE;const f=["q"];t&&f.push(t);a&&f.push(`${a[0]} ${a[1]} ${a[2]} RG`);r&&f.push(`${r[0]} ${r[1]} ${r[2]} rg`);let g=this.data.quadPoints;g||(g=[[{x:this.rectangle[0],y:this.rectangle[3]},{x:this.rectangle[2],y:this.rectangle[3]},{x:this.rectangle[0],y:this.rectangle[1]},{x:this.rectangle[2],y:this.rectangle[1]}]]);for(const e of g){const[t,a,r,n]=c(f,e);l=Math.min(l,t);u=Math.max(u,a);h=Math.min(h,r);d=Math.max(d,n)}f.push("Q");const m=new s.Dict(e),b=new s.Dict(e);b.set("Subtype",s.Name.get("Form"));const y=new p.StringStream(f.join(" "));y.dict=b;m.set("Fm0",y);const w=new s.Dict(e);n&&w.set("BM",s.Name.get(n));"number"==typeof i&&w.set("CA",i);"number"==typeof o&&w.set("ca",o);const S=new s.Dict(e);S.set("GS0",w);const x=new s.Dict(e);x.set("ExtGState",S);x.set("XObject",m);const C=new s.Dict(e);C.set("Resources",x);const k=this.data.rect=[l,h,u,d];C.set("BBox",k);this.appearance=new p.StringStream("/GS0 gs /Fm0 Do");this.appearance.dict=C;this._streams.push(this.appearance,y)}static async createNewAnnotation(e,t,a,r){const n=e.getNewTemporaryRef(),i=await this.createNewAppearanceStream(t,e,r),s=[];let c;if(i){const r=e.getNewTemporaryRef();c=this.createNewDict(t,e,{apRef:r});const n=e.encrypt?e.encrypt.createCipherTransform(r.num,r.gen):null;(0,o.writeObject)(r,i,s,n);a.push({ref:r,data:s.join("")})}else c=this.createNewDict(t,e,{});s.length=0;const l=e.encrypt?e.encrypt.createCipherTransform(n.num,n.gen):null;(0,o.writeObject)(n,c,s,l);return{ref:n,data:s.join("")}}static async createNewPrintAnnotation(e,t,a){const r=await this.createNewAppearanceStream(t,e,a),n=this.createNewDict(t,e,{ap:r});return new this.prototype.constructor({dict:n,xref:e,isOffscreenCanvasSupported:a.isOffscreenCanvasSupported})}}t.MarkupAnnotation=MarkupAnnotation;class WidgetAnnotation extends Annotation{constructor(e){super(e);const{dict:t,xref:a}=e,i=this.data;this.ref=e.ref;this._needAppearances=e.needAppearances;i.annotationType=r.AnnotationType.WIDGET;void 0===i.fieldName&&(i.fieldName=this._constructFieldName(t));void 0===i.actions&&(i.actions=(0,n.collectActions)(a,t,r.AnnotationActionEventType));let o=(0,n.getInheritableProperty)({dict:t,key:"V",getArray:!0});i.fieldValue=this._decodeFormValue(o);const c=(0,n.getInheritableProperty)({dict:t,key:"DV",getArray:!0});i.defaultFieldValue=this._decodeFormValue(c);if(void 0===o&&e.xfaDatasets){const t=this._title.str;if(t){this._hasValueFromXFA=!0;i.fieldValue=o=e.xfaDatasets.getValue(t)}}void 0===o&&null!==i.defaultFieldValue&&(i.fieldValue=i.defaultFieldValue);i.alternativeText=(0,r.stringToPDFString)(t.get("TU")||"");this.setDefaultAppearance(e);i.hasAppearance=this._needAppearances&&void 0!==i.fieldValue&&null!==i.fieldValue||i.hasAppearance;const l=(0,n.getInheritableProperty)({dict:t,key:"FT"});i.fieldType=l instanceof s.Name?l.name:null;const h=(0,n.getInheritableProperty)({dict:t,key:"DR"}),u=e.acroForm.get("DR"),d=this.appearance&&this.appearance.dict.get("Resources");this._fieldResources={localResources:h,acroFormResources:u,appearanceResources:d,mergedResources:s.Dict.merge({xref:a,dictArray:[h,d,u],mergeSubDicts:!0})};i.fieldFlags=(0,n.getInheritableProperty)({dict:t,key:"Ff"});(!Number.isInteger(i.fieldFlags)||i.fieldFlags<0)&&(i.fieldFlags=0);i.readOnly=this.hasFieldFlag(r.AnnotationFieldFlag.READONLY);i.required=this.hasFieldFlag(r.AnnotationFieldFlag.REQUIRED);i.hidden=this._hasFlag(i.annotationFlags,r.AnnotationFlag.HIDDEN)}_decodeFormValue(e){return Array.isArray(e)?e.filter((e=>"string"==typeof e)).map((e=>(0,r.stringToPDFString)(e))):e instanceof s.Name?(0,r.stringToPDFString)(e.name):"string"==typeof e?(0,r.stringToPDFString)(e):null}hasFieldFlag(e){return!!(this.data.fieldFlags&e)}getRotationMatrix(e){const t=e?e.get(this.data.id):void 0;let a=t&&t.rotation;void 0===a&&(a=this.rotation);if(0===a)return r.IDENTITY_MATRIX;const i=this.data.rect[2]-this.data.rect[0],s=this.data.rect[3]-this.data.rect[1];return(0,n.getRotationMatrix)(a,i,s)}getBorderAndBackgroundAppearances(e){const t=e?e.get(this.data.id):void 0;let a=t&&t.rotation;void 0===a&&(a=this.rotation);if(!this.backgroundColor&&!this.borderColor)return"";const r=this.data.rect[2]-this.data.rect[0],n=this.data.rect[3]-this.data.rect[1],s=0===a||180===a?`0 0 ${r} ${n} re`:`0 0 ${n} ${r} re`;let o="";this.backgroundColor&&(o=`${(0,i.getPdfColor)(this.backgroundColor,!0)} ${s} f `);if(this.borderColor){o+=`${this.borderStyle.width||1} w ${(0,i.getPdfColor)(this.borderColor,!1)} ${s} S `}return o}async getOperatorList(e,t,a,n,i){if(n&&!(this instanceof SignatureWidgetAnnotation))return{opList:new g.OperatorList,separateForm:!0,separateCanvas:!1};if(!this._hasText)return super.getOperatorList(e,t,a,n,i);const s=await this._getAppearance(e,t,a,i);if(this.appearance&&null===s)return super.getOperatorList(e,t,a,n,i);const o=new g.OperatorList;if(!this._defaultAppearance||null===s)return{opList:o,separateForm:!1,separateCanvas:!1};const c=[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]],l=getTransformMatrix(this.data.rect,c,[1,0,0,1,0,0]);let h;this.oc&&(h=await e.parseMarkedContentProps(this.oc,null));void 0!==h&&o.addOp(r.OPS.beginMarkedContentProps,["OC",h]);o.addOp(r.OPS.beginAnnotation,[this.data.id,this.data.rect,l,this.getRotationMatrix(i),!1]);const u=new p.StringStream(s);await e.getOperatorList({stream:u,task:t,resources:this._fieldResources.mergedResources,operatorList:o});o.addOp(r.OPS.endAnnotation,[]);void 0!==h&&o.addOp(r.OPS.endMarkedContent,[]);return{opList:o,separateForm:!1,separateCanvas:!1}}_getMKDict(e){const t=new s.Dict(null);e&&t.set("R",e);this.borderColor&&t.set("BC",getPdfColorArray(this.borderColor));this.backgroundColor&&t.set("BG",getPdfColorArray(this.backgroundColor));return t.size>0?t:null}async save(e,t,a){const i=a?a.get(this.data.id):void 0;let c=i&&i.value,l=i&&i.rotation;if(c===this.data.fieldValue||void 0===c){if(!this._hasValueFromXFA&&void 0===l)return null;c=c||this.data.fieldValue}if(void 0===l&&!this._hasValueFromXFA&&Array.isArray(c)&&Array.isArray(this.data.fieldValue)&&c.length===this.data.fieldValue.length&&c.every(((e,t)=>e===this.data.fieldValue[t])))return null;void 0===l&&(l=this.rotation);let h=null;if(!this._needAppearances){h=await this._getAppearance(e,t,r.RenderingIntentFlag.SAVE,a);if(null===h)return null}let u=!1;if(h&&h.needAppearances){u=!0;h=null}const{xref:d}=e,f=d.fetchIfRef(this.ref);if(!(f instanceof s.Dict))return null;const g=new s.Dict(d);for(const e of f.getKeys())"AP"!==e&&g.set(e,f.getRaw(e));const m={path:(0,r.stringToPDFString)(g.get("T")||""),value:c},encoder=e=>(0,n.isAscii)(e)?e:(0,n.stringToUTF16String)(e,!0);g.set("V",Array.isArray(c)?c.map(encoder):encoder(c));const b=this._getMKDict(l);b&&g.set("MK",b);const y=d.encrypt,w=y?y.createCipherTransform(this.ref.num,this.ref.gen):null,S=[],x=[{ref:this.ref,data:"",xfa:m,needAppearances:u}];if(null!==h){const e=d.getNewTemporaryRef(),t=new s.Dict(d);g.set("AP",t);t.set("N",e);let n=null;if(y){n=y.createCipherTransform(e.num,e.gen);h=n.encryptString(h)}const i=this._getSaveFieldResources(d),c=new p.StringStream(h),l=c.dict=new s.Dict(d);l.set("Length",h.length);l.set("Subtype",s.Name.get("Form"));l.set("Resources",i);l.set("BBox",[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]]);const u=this.getRotationMatrix(a);u!==r.IDENTITY_MATRIX&&l.set("Matrix",u);(0,o.writeObject)(e,c,S,n);x.push({ref:e,data:S.join(""),xfa:null,needAppearances:!1});S.length=0}g.set("M",`D:${(0,r.getModificationDate)()}`);(0,o.writeObject)(this.ref,g,S,w);x[0].data=S.join("");return x}async _getAppearance(e,t,a,s){if(this.hasFieldFlag(r.AnnotationFieldFlag.PASSWORD))return null;const o=s?s.get(this.data.id):void 0;let c,l;if(o){c=o.formattedValue||o.value;l=o.rotation}if(void 0===l&&void 0===c&&!this._needAppearances&&(!this._hasValueFromXFA||this.appearance))return null;const h=this.getBorderAndBackgroundAppearances(s);if(void 0===c){c=this.data.fieldValue;if(!c)return`/Tx BMC q ${h}Q EMC`}Array.isArray(c)&&1===c.length&&(c=c[0]);(0,r.assert)("string"==typeof c,"Expected `value` to be a string.");if(this.data.combo){const e=this.data.options.find((({exportValue:e})=>c===e))||this.data.options[0];c=e&&e.displayValue||""}else c=c.trim();if(""===c)return`/Tx BMC q ${h}Q EMC`;void 0===l&&(l=this.rotation);let u,d=-1;if(this.data.multiLine){u=c.split(/\r\n?|\n/).map((e=>e.normalize("NFC")));d=u.length}else u=[c.replace(/\r\n?|\n/,"").normalize("NFC")];let f=this.data.rect[3]-this.data.rect[1],g=this.data.rect[2]-this.data.rect[0];90!==l&&270!==l||([g,f]=[f,g]);this._defaultAppearance||(this.data.defaultAppearanceData=(0,i.parseDefaultAppearance)(this._defaultAppearance="/Helvetica 0 Tf 0 g"));let p,m,b,y=await WidgetAnnotation._getFontData(e,t,this.data.defaultAppearanceData,this._fieldResources.mergedResources);const w=[];let S=!1;for(const e of u){const t=y.encodeString(e);t.length>1&&(S=!0);w.push(t.join(""))}if(S&&a&r.RenderingIntentFlag.SAVE)return{needAppearances:!0};if(S&&this._isOffscreenCanvasSupported){const a=this.data.comb?"monospace":"sans-serif",r=new i.FakeUnicodeFont(e.xref,a),s=r.createFontResources(u.join("")),o=s.getRaw("Font");if(this._fieldResources.mergedResources.has("Font")){const e=this._fieldResources.mergedResources.get("Font");for(const t of o.getKeys())e.set(t,o.getRaw(t))}else this._fieldResources.mergedResources.set("Font",o);const l=r.fontName.name;y=await WidgetAnnotation._getFontData(e,t,{fontName:l,fontSize:0},s);for(let e=0,t=w.length;e2)return`/Tx BMC q ${h}BT `+p+` 1 0 0 1 ${(0,n.numberToString)(2)} ${(0,n.numberToString)(v)} Tm (${(0,n.escapeString)(w[0])}) Tj ET Q EMC`;return`/Tx BMC q ${h}BT `+p+` 1 0 0 1 0 0 Tm ${this._renderText(w[0],y,m,g,k,{shift:0},2,v)} ET Q EMC`}static async _getFontData(e,t,a,r){const n=new g.OperatorList,i={font:null,clone(){return this}},{fontName:o,fontSize:c}=a;await e.handleSetFont(r,[o&&s.Name.get(o),c],null,n,t,i,null);return i.font}_getTextWidth(e,t){return t.charsToGlyphs(e).reduce(((e,t)=>e+t.width),0)/1e3}_computeFontSize(e,t,a,n,s){let{fontSize:o}=this.data.defaultAppearanceData,c=(o||12)*r.LINE_FACTOR,l=Math.round(e/c);if(!o){const roundWithTwoDigits=e=>Math.floor(100*e)/100;if(-1===s){const i=this._getTextWidth(a,n);o=roundWithTwoDigits(Math.min(e/r.LINE_FACTOR,i>t?t/i:1/0));l=1}else{const i=a.split(/\r\n?|\n/),h=[];for(const e of i){const t=n.encodeString(e).join(""),a=n.charsToGlyphs(t),r=n.getCharPositions(t);h.push({line:t,glyphs:a,positions:r})}const isTooBig=a=>{let r=0;for(const i of h){r+=this._splitLine(null,n,a,t,i).length*a;if(r>e)return!0}return!1};l=Math.max(l,s);for(;;){c=e/l;o=roundWithTwoDigits(c/r.LINE_FACTOR);if(!isTooBig(o))break;l++}}const{fontName:h,fontColor:u}=this.data.defaultAppearanceData;this._defaultAppearance=(0,i.createDefaultAppearance)({fontSize:o,fontName:h,fontColor:u})}return[this._defaultAppearance,o,e/l]}_renderText(e,t,a,r,i,s,o,c){let l;if(1===i){l=(r-this._getTextWidth(e,t)*a)/2}else if(2===i){l=r-this._getTextWidth(e,t)*a-o}else l=o;const h=(0,n.numberToString)(l-s.shift);s.shift=l;return`${h} ${c=(0,n.numberToString)(c)} Td (${(0,n.escapeString)(e)}) Tj`}_getSaveFieldResources(e){const{localResources:t,appearanceResources:a,acroFormResources:r}=this._fieldResources,n=this.data.defaultAppearanceData&&this.data.defaultAppearanceData.fontName;if(!n)return t||s.Dict.empty;for(const e of[t,a])if(e instanceof s.Dict){const t=e.get("Font");if(t instanceof s.Dict&&t.has(n))return e}if(r instanceof s.Dict){const a=r.get("Font");if(a instanceof s.Dict&&a.has(n)){const r=new s.Dict(e);r.set(n,a.getRaw(n));const i=new s.Dict(e);i.set("Font",r);return s.Dict.merge({xref:e,dictArray:[i,t],mergeSubDicts:!0})}}return t||s.Dict.empty}getFieldObject(){return null}}class TextWidgetAnnotation extends WidgetAnnotation{constructor(e){super(e);this._hasText=!0;const t=e.dict;"string"!=typeof this.data.fieldValue&&(this.data.fieldValue="");let a=(0,n.getInheritableProperty)({dict:t,key:"Q"});(!Number.isInteger(a)||a<0||a>2)&&(a=null);this.data.textAlignment=a;let i=(0,n.getInheritableProperty)({dict:t,key:"MaxLen"});(!Number.isInteger(i)||i<0)&&(i=0);this.data.maxLen=i;this.data.multiLine=this.hasFieldFlag(r.AnnotationFieldFlag.MULTILINE);this.data.comb=this.hasFieldFlag(r.AnnotationFieldFlag.COMB)&&!this.hasFieldFlag(r.AnnotationFieldFlag.MULTILINE)&&!this.hasFieldFlag(r.AnnotationFieldFlag.PASSWORD)&&!this.hasFieldFlag(r.AnnotationFieldFlag.FILESELECT)&&0!==this.data.maxLen;this.data.doNotScroll=this.hasFieldFlag(r.AnnotationFieldFlag.DONOTSCROLL)}_getCombAppearance(e,t,a,r,i,s,o,c,l,h,u){const d=i/this.data.maxLen,f=this.getBorderAndBackgroundAppearances(u),g=[],p=t.getCharPositions(a);for(const[e,t]of p)g.push(`(${(0,n.escapeString)(a.substring(e,t))}) Tj`);const m=g.join(` ${(0,n.numberToString)(d)} 0 Td `);return`/Tx BMC q ${f}BT `+e+` 1 0 0 1 ${(0,n.numberToString)(o)} ${(0,n.numberToString)(c+l)} Tm ${m} ET Q EMC`}_getMultilineAppearance(e,t,a,r,i,s,o,c,l,h,u,d){const f=[],g=i-2*c,p={shift:0};for(let e=0,n=t.length;er){c.push(e.substring(d,a));d=a;f=p;l=-1;u=-1}else{f+=p;l=a;h=n;u=t}else if(f+p>r)if(-1!==l){c.push(e.substring(d,h));d=h;t=u+1;l=-1;f=0}else{c.push(e.substring(d,a));d=a;f=p}else f+=p}d"Off"!==e));i.length=0;i.push("Off",e)}i.includes(this.data.fieldValue)||(this.data.fieldValue="Off");this.data.exportValue=i[1];const o=a.get(this.data.exportValue);this.checkedAppearance=o instanceof c.BaseStream?o:null;const l=a.get("Off");this.uncheckedAppearance=l instanceof c.BaseStream?l:null;this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(e,"check");this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance);this._fallbackFontDict=this.fallbackFontDict}_processRadioButton(e){this.data.fieldValue=this.data.buttonValue=null;const t=e.dict.get("Parent");if(t instanceof s.Dict){this.parent=e.dict.getRaw("Parent");const a=t.get("V");a instanceof s.Name&&(this.data.fieldValue=this._decodeFormValue(a))}const a=e.dict.get("AP");if(!(a instanceof s.Dict))return;const r=a.get("N");if(!(r instanceof s.Dict))return;for(const e of r.getKeys())if("Off"!==e){this.data.buttonValue=this._decodeFormValue(e);break}const n=r.get(this.data.buttonValue);this.checkedAppearance=n instanceof c.BaseStream?n:null;const i=r.get("Off");this.uncheckedAppearance=i instanceof c.BaseStream?i:null;this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(e,"disc");this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance);this._fallbackFontDict=this.fallbackFontDict}_processPushButton(e){if(e.dict.has("A")||e.dict.has("AA")||this.data.alternativeText){this.data.isTooltipOnly=!e.dict.has("A")&&!e.dict.has("AA");h.Catalog.parseDestDictionary({destDict:e.dict,resultObj:this.data,docBaseUrl:e.pdfManager.docBaseUrl,docAttachments:e.attachments})}else(0,r.warn)("Push buttons without action dictionaries are not supported")}getFieldObject(){let e,t="button";if(this.data.checkBox){t="checkbox";e=this.data.exportValue}else if(this.data.radioButton){t="radiobutton";e=this.data.buttonValue}return{id:this.data.id,value:this.data.fieldValue||"Off",defaultValue:this.data.defaultFieldValue,exportValues:e,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,hidden:this.data.hidden,actions:this.data.actions,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,rotation:this.rotation,type:t}}get fallbackFontDict(){const e=new s.Dict;e.set("BaseFont",s.Name.get("ZapfDingbats"));e.set("Type",s.Name.get("FallbackType"));e.set("Subtype",s.Name.get("FallbackType"));e.set("Encoding",s.Name.get("ZapfDingbatsEncoding"));return(0,r.shadow)(this,"fallbackFontDict",e)}}class ChoiceWidgetAnnotation extends WidgetAnnotation{constructor(e){super(e);const{dict:t,xref:a}=e;this.data.options=[];const i=(0,n.getInheritableProperty)({dict:t,key:"Opt"});if(Array.isArray(i))for(let e=0,t=i.length;e0?this.data.fieldValue[0]:null;return{id:this.data.id,value:t,defaultValue:this.data.defaultFieldValue,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,numItems:this.data.fieldValue.length,multipleSelection:this.data.multiSelect,hidden:this.data.hidden,actions:this.data.actions,items:this.data.options,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,rotation:this.rotation,type:e}}async _getAppearance(e,t,a,n){if(this.data.combo)return super._getAppearance(e,t,a,n);let s,o;const c=n?n.get(this.data.id):void 0;if(c){o=c.rotation;s=c.value}if(void 0===o&&void 0===s&&!this._needAppearances)return null;void 0===s?s=this.data.fieldValue:Array.isArray(s)||(s=[s]);let l=this.data.rect[3]-this.data.rect[1],h=this.data.rect[2]-this.data.rect[0];90!==o&&270!==o||([h,l]=[l,h]);const u=this.data.options.length,d=[];for(let e=0;ea){a=r;t=e}}[g,p]=this._computeFontSize(e,h-4,t,f,-1)}const m=p*r.LINE_FACTOR,b=(m-p)/2,y=Math.floor(l/m);let w;if(1===d.length){const e=d[0];w=e-e%y}else w=d.length?d[0]:0;const S=Math.min(w+y+1,u),x=["/Tx BMC q",`1 1 ${h} ${l} re W n`];if(d.length){x.push("0.600006 0.756866 0.854904 rg");for(const e of d)w<=e&&e1)return null;e=t.join("");M.push(e);let a=0;const r=y.charsToGlyphs(e);for(const e of r)a+=e.width*O;T=Math.max(T,a)}let E=1;T>k&&(E=k/T);let D=1;const N=r.LINE_FACTOR*u,R=r.LINE_DESCENT_FACTOR*u,L=N*F.length;L>v&&(D=v/L);const j=u*Math.min(E,D),$=["q",`0 0 ${(0,n.numberToString)(k)} ${(0,n.numberToString)(v)} re W n`,"BT",`1 0 0 1 0 ${(0,n.numberToString)(v+R)} Tm 0 Tc ${(0,i.getPdfColor)(h,!0)}`,`/Helv ${(0,n.numberToString)(j)} Tf`],_=(0,n.numberToString)(N);for(const e of M)$.push(`0 -${_} Td (${(0,n.escapeString)(e)}) Tj`);$.push("ET","Q");const U=$.join("\n"),X=new s.Dict(t);X.set("FormType",1);X.set("Subtype",s.Name.get("Form"));X.set("Type",s.Name.get("XObject"));X.set("BBox",[0,0,k,v]);X.set("Length",U.length);X.set("Resources",m);if(f){const e=(0,n.getRotationMatrix)(f,k,v);X.set("Matrix",e)}const H=new p.StringStream(U);H.dict=X;return H}}class LineAnnotation extends MarkupAnnotation{constructor(e){super(e);const{dict:t,xref:a}=e;this.data.annotationType=r.AnnotationType.LINE;const n=t.getArray("L");this.data.lineCoordinates=r.Util.normalizeRect(n);this.setLineEndings(t.getArray("LE"));this.data.lineEndings=this.lineEndings;if(!this.appearance){const e=this.color?getPdfColorArray(this.color):[0,0,0],i=t.get("CA"),s=getRgbColor(t.getArray("IC"),null),o=s?getPdfColorArray(s):null,c=o?i:null,l=this.borderStyle.width||1,h=2*l,u=[this.data.lineCoordinates[0]-h,this.data.lineCoordinates[1]-h,this.data.lineCoordinates[2]+h,this.data.lineCoordinates[3]+h];r.Util.intersect(this.rectangle,u)||(this.rectangle=u);this._setDefaultAppearance({xref:a,extra:`${l} w`,strokeColor:e,fillColor:o,strokeAlpha:i,fillAlpha:c,pointsCallback:(e,t)=>{e.push(`${n[0]} ${n[1]} m`,`${n[2]} ${n[3]} l`,"S");return[t[0].x-l,t[1].x+l,t[3].y-l,t[1].y+l]}})}}}class SquareAnnotation extends MarkupAnnotation{constructor(e){super(e);const{dict:t,xref:a}=e;this.data.annotationType=r.AnnotationType.SQUARE;if(!this.appearance){const e=this.color?getPdfColorArray(this.color):[0,0,0],r=t.get("CA"),n=getRgbColor(t.getArray("IC"),null),i=n?getPdfColorArray(n):null,s=i?r:null;if(0===this.borderStyle.width&&!i)return;this._setDefaultAppearance({xref:a,extra:`${this.borderStyle.width} w`,strokeColor:e,fillColor:i,strokeAlpha:r,fillAlpha:s,pointsCallback:(e,t)=>{const a=t[2].x+this.borderStyle.width/2,r=t[2].y+this.borderStyle.width/2,n=t[3].x-t[2].x-this.borderStyle.width,s=t[1].y-t[3].y-this.borderStyle.width;e.push(`${a} ${r} ${n} ${s} re`);i?e.push("B"):e.push("S");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}}class CircleAnnotation extends MarkupAnnotation{constructor(e){super(e);const{dict:t,xref:a}=e;this.data.annotationType=r.AnnotationType.CIRCLE;if(!this.appearance){const e=this.color?getPdfColorArray(this.color):[0,0,0],r=t.get("CA"),n=getRgbColor(t.getArray("IC"),null),i=n?getPdfColorArray(n):null,s=i?r:null;if(0===this.borderStyle.width&&!i)return;const o=4/3*Math.tan(Math.PI/8);this._setDefaultAppearance({xref:a,extra:`${this.borderStyle.width} w`,strokeColor:e,fillColor:i,strokeAlpha:r,fillAlpha:s,pointsCallback:(e,t)=>{const a=t[0].x+this.borderStyle.width/2,r=t[0].y-this.borderStyle.width/2,n=t[3].x-this.borderStyle.width/2,s=t[3].y+this.borderStyle.width/2,c=a+(n-a)/2,l=r+(s-r)/2,h=(n-a)/2*o,u=(s-r)/2*o;e.push(`${c} ${s} m`,`${c+h} ${s} ${n} ${l+u} ${n} ${l} c`,`${n} ${l-u} ${c+h} ${r} ${c} ${r} c`,`${c-h} ${r} ${a} ${l-u} ${a} ${l} c`,`${a} ${l+u} ${c-h} ${s} ${c} ${s} c`,"h");i?e.push("B"):e.push("S");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}}class PolylineAnnotation extends MarkupAnnotation{constructor(e){super(e);const{dict:t,xref:a}=e;this.data.annotationType=r.AnnotationType.POLYLINE;this.data.vertices=[];if(!(this instanceof PolygonAnnotation)){this.setLineEndings(t.getArray("LE"));this.data.lineEndings=this.lineEndings}const n=t.getArray("Vertices");if(Array.isArray(n)){for(let e=0,t=n.length;e{const a=this.data.vertices;for(let t=0,r=a.length;t{for(const t of this.data.inkLists){for(let a=0,r=t.length;ae.points)));l.set("F",4);l.set("Border",[0,0,0]);l.set("Rotate",c);const h=new s.Dict(t);l.set("AP",h);a?h.set("N",a):h.set("N",n);return l}static async createNewAppearanceStream(e,t,a){const{color:r,rect:o,rotation:c,paths:l,thickness:h,opacity:u}=e,[d,f,g,m]=o;let b=g-d,y=m-f;c%180!=0&&([b,y]=[y,b]);const w=[`${h} w 1 J 1 j`,`${(0,i.getPdfColor)(r,!1)}`];1!==u&&w.push("/R0 gs");const S=[];for(const{bezier:e}of l){S.length=0;S.push(`${(0,n.numberToString)(e[0])} ${(0,n.numberToString)(e[1])} m`);for(let t=2,a=e.length;t{e.push(`${t[0].x} ${t[0].y} m`,`${t[1].x} ${t[1].y} l`,`${t[3].x} ${t[3].y} l`,`${t[2].x} ${t[2].y} l`,"f");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}else this.data.hasPopup=!1}}class UnderlineAnnotation extends MarkupAnnotation{constructor(e){super(e);const{dict:t,xref:a}=e;this.data.annotationType=r.AnnotationType.UNDERLINE;if(this.data.quadPoints=getQuadPoints(t,null)){if(!this.appearance){const e=this.color?getPdfColorArray(this.color):[0,0,0],r=t.get("CA");this._setDefaultAppearance({xref:a,extra:"[] 0 d 1 w",strokeColor:e,strokeAlpha:r,pointsCallback:(e,t)=>{e.push(`${t[2].x} ${t[2].y} m`,`${t[3].x} ${t[3].y} l`,"S");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}else this.data.hasPopup=!1}}class SquigglyAnnotation extends MarkupAnnotation{constructor(e){super(e);const{dict:t,xref:a}=e;this.data.annotationType=r.AnnotationType.SQUIGGLY;if(this.data.quadPoints=getQuadPoints(t,null)){if(!this.appearance){const e=this.color?getPdfColorArray(this.color):[0,0,0],r=t.get("CA");this._setDefaultAppearance({xref:a,extra:"[] 0 d 1 w",strokeColor:e,strokeAlpha:r,pointsCallback:(e,t)=>{const a=(t[0].y-t[2].y)/6;let r=a,n=t[2].x;const i=t[2].y,s=t[3].x;e.push(`${n} ${i+r} m`);do{n+=2;r=0===r?a:0;e.push(`${n} ${i+r} l`)}while(n{e.push((t[0].x+t[2].x)/2+" "+(t[0].y+t[2].y)/2+" m",(t[1].x+t[3].x)/2+" "+(t[1].y+t[3].y)/2+" l","S");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}else this.data.hasPopup=!1}}class StampAnnotation extends MarkupAnnotation{constructor(e){super(e);this.data.annotationType=r.AnnotationType.STAMP}}class FileAttachmentAnnotation extends MarkupAnnotation{constructor(e){super(e);const{dict:t,xref:a}=e,n=new d.FileSpec(t.get("FS"),a);this.data.annotationType=r.AnnotationType.FILEATTACHMENT;this.data.file=n.serializable;const i=t.get("Name");this.data.name=i instanceof s.Name?(0,r.stringToPDFString)(i.name):"PushPin"}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.FakeUnicodeFont=void 0;t.createDefaultAppearance=function createDefaultAppearance({fontSize:e,fontName:t,fontColor:a}){return`/${(0,n.escapePDFName)(t)} ${e} Tf ${getPdfColor(a,!0)}`};t.getPdfColor=getPdfColor;t.parseDefaultAppearance=function parseDefaultAppearance(e){return new DefaultAppearanceEvaluator(e).parse()};var r=a(3),n=a(4),i=a(2),s=a(12),o=a(13),c=a(8);class DefaultAppearanceEvaluator extends o.EvaluatorPreprocessor{constructor(e){super(new c.StringStream(e))}parse(){const e={fn:0,args:[]},t={fontSize:0,fontName:"",fontColor:new Uint8ClampedArray(3)};try{for(;;){e.args.length=0;if(!this.read(e))break;if(0!==this.savedStatesDepth)continue;const{fn:a,args:n}=e;switch(0|a){case i.OPS.setFont:const[e,a]=n;e instanceof r.Name&&(t.fontName=e.name);"number"==typeof a&&a>0&&(t.fontSize=a);break;case i.OPS.setFillRGBColor:s.ColorSpace.singletons.rgb.getRgbItem(n,0,t.fontColor,0);break;case i.OPS.setFillGray:s.ColorSpace.singletons.gray.getRgbItem(n,0,t.fontColor,0);break;case i.OPS.setFillColorSpace:s.ColorSpace.singletons.cmyk.getRgbItem(n,0,t.fontColor,0)}}}catch(e){(0,i.warn)(`parseDefaultAppearance - ignoring errors: "${e}".`)}return t}}function getPdfColor(e,t){if(e[0]===e[1]&&e[1]===e[2]){const a=e[0]/255;return`${(0,n.numberToString)(a)} ${t?"g":"G"}`}return Array.from(e,(e=>(0,n.numberToString)(e/255))).join(" ")+" "+(t?"rg":"RG")}class FakeUnicodeFont{constructor(e,t){this.xref=e;this.widths=null;this.firstChar=1/0;this.lastChar=-1/0;this.fontFamily=t;const a=new OffscreenCanvas(1,1);this.ctxMeasure=a.getContext("2d");FakeUnicodeFont._fontNameId||(FakeUnicodeFont._fontNameId=1);this.fontName=r.Name.get(`InvalidPDFjsFont_${t}_${FakeUnicodeFont._fontNameId++}`)}get toUnicodeRef(){if(!FakeUnicodeFont._toUnicodeRef){const e="/CIDInit /ProcSet findresource begin\n12 dict begin\nbegincmap\n/CIDSystemInfo\n<< /Registry (Adobe)\n/Ordering (UCS) /Supplement 0 >> def\n/CMapName /Adobe-Identity-UCS def\n/CMapType 2 def\n1 begincodespacerange\n<0000> \nendcodespacerange\n1 beginbfrange\n<0000> <0000>\nendbfrange\nendcmap CMapName currentdict /CMap defineresource pop end end",t=FakeUnicodeFont.toUnicodeStream=new c.StringStream(e),a=new r.Dict(this.xref);t.dict=a;a.set("Length",e.length);FakeUnicodeFont._toUnicodeRef=this.xref.getNewPersistentRef(t)}return FakeUnicodeFont._toUnicodeRef}get fontDescriptorRef(){if(!FakeUnicodeFont._fontDescriptorRef){const e=new r.Dict(this.xref);e.set("Type",r.Name.get("FontDescriptor"));e.set("FontName",this.fontName);e.set("FontFamily","MyriadPro Regular");e.set("FontBBox",[0,0,0,0]);e.set("FontStretch",r.Name.get("Normal"));e.set("FontWeight",400);e.set("ItalicAngle",0);FakeUnicodeFont._fontDescriptorRef=this.xref.getNewPersistentRef(e)}return FakeUnicodeFont._fontDescriptorRef}get descendantFontRef(){const e=new r.Dict(this.xref);e.set("BaseFont",this.fontName);e.set("Type",r.Name.get("Font"));e.set("Subtype",r.Name.get("CIDFontType0"));e.set("CIDToGIDMap",r.Name.get("Identity"));e.set("FirstChar",this.firstChar);e.set("LastChar",this.lastChar);e.set("FontDescriptor",this.fontDescriptorRef);e.set("DW",1e3);const t=[],a=[...this.widths.entries()].sort();let n=null,i=null;for(const[e,r]of a)if(n)if(e===n+i.length)i.push(r);else{t.push(n,i);n=e;i=[r]}else{n=e;i=[r]}n&&t.push(n,i);e.set("W",t);const s=new r.Dict(this.xref);s.set("Ordering","Identity");s.set("Registry","Adobe");s.set("Supplement",0);e.set("CIDSystemInfo",s);return this.xref.getNewPersistentRef(e)}get baseFontRef(){const e=new r.Dict(this.xref);e.set("BaseFont",this.fontName);e.set("Type",r.Name.get("Font"));e.set("Subtype",r.Name.get("Type0"));e.set("Encoding",r.Name.get("Identity-H"));e.set("DescendantFonts",[this.descendantFontRef]);e.set("ToUnicode",this.toUnicodeRef);return this.xref.getNewPersistentRef(e)}get resources(){const e=new r.Dict(this.xref),t=new r.Dict(this.xref);t.set(this.fontName.name,this.baseFontRef);e.set("Font",t);return e}_createContext(){this.widths=new Map;this.ctxMeasure.font=`1000px ${this.fontFamily}`;return this.ctxMeasure}createFontResources(e){const t=this._createContext();for(const a of e.split(/\r\n?|\n/))for(const e of a.split("")){const a=e.charCodeAt(0);if(this.widths.has(a))continue;const r=t.measureText(e),n=Math.ceil(r.width);this.widths.set(a,n);this.firstChar=Math.min(a,this.firstChar);this.lastChar=Math.max(a,this.lastChar)}return this.resources}createAppearance(e,t,a,s,o){const l=this._createContext(),h=[];let u=-1/0;for(const t of e.split(/\r\n?|\n/)){h.push(t);const e=l.measureText(t).width;u=Math.max(u,e);for(const e of t.split("")){const t=e.charCodeAt(0);let a=this.widths.get(t);if(void 0===a){const r=l.measureText(e);a=Math.ceil(r.width);this.widths.set(t,a);this.firstChar=Math.min(t,this.firstChar);this.lastChar=Math.max(t,this.lastChar)}}}u*=s/1e3;const[d,f,g,p]=t;let m=g-d,b=p-f;a%180!=0&&([m,b]=[b,m]);let y=1;u>m&&(y=m/u);let w=1;const S=i.LINE_FACTOR*s,x=i.LINE_DESCENT_FACTOR*s,C=S*h.length;C>b&&(w=b/C);const k=s*Math.min(y,w),v=["q",`0 0 ${(0,n.numberToString)(m)} ${(0,n.numberToString)(b)} re W n`,"BT",`1 0 0 1 0 ${(0,n.numberToString)(b+x)} Tm 0 Tc ${getPdfColor(o,!0)}`,`/${this.fontName.name} ${(0,n.numberToString)(k)} Tf`],F=(0,n.numberToString)(S);for(const e of h)v.push(`0 -${F} Td <${(0,n.stringToUTF16HexString)(e)}> Tj`);v.push("ET","Q");const O=v.join("\n"),T=new r.Dict(this.xref);T.set("Subtype",r.Name.get("Form"));T.set("Type",r.Name.get("XObject"));T.set("BBox",[0,0,m,b]);T.set("Length",O.length);T.set("Resources",this.resources);if(a){const e=(0,n.getRotationMatrix)(a,m,b);T.set("Matrix",e)}const M=new c.StringStream(O);M.dict=T;return M}}t.FakeUnicodeFont=FakeUnicodeFont},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ColorSpace=void 0;var r=a(2),n=a(3),i=a(5),s=a(4);class ColorSpace{constructor(e,t){this.constructor===ColorSpace&&(0,r.unreachable)("Cannot initialize ColorSpace.");this.name=e;this.numComps=t}getRgb(e,t){const a=new Uint8ClampedArray(3);this.getRgbItem(e,t,a,0);return a}getRgbItem(e,t,a,n){(0,r.unreachable)("Should not call ColorSpace.getRgbItem")}getRgbBuffer(e,t,a,n,i,s,o){(0,r.unreachable)("Should not call ColorSpace.getRgbBuffer")}getOutputLength(e,t){(0,r.unreachable)("Should not call ColorSpace.getOutputLength")}isPassthrough(e){return!1}isDefaultDecode(e,t){return ColorSpace.isDefaultDecode(e,this.numComps)}fillRgb(e,t,a,r,n,i,s,o,c){const l=t*a;let h=null;const u=1<u&&"DeviceGray"!==this.name&&"DeviceRGB"!==this.name){const t=s<=8?new Uint8Array(u):new Uint16Array(u);for(let e=0;e=.99554525?1:adjustToRange(0,1,1.055*e**(1/2.4)-.055)}function adjustToRange(e,t,a){return Math.max(e,Math.min(t,a))}function decodeL(e){return e<0?-decodeL(-e):e>8?((e+16)/116)**3:.0011070564598794539*e}function convertToRgb(r,c,l,h,u,d){const f=adjustToRange(0,1,c[l]*d),g=adjustToRange(0,1,c[l+1]*d),p=adjustToRange(0,1,c[l+2]*d),m=1===f?1:f**r.GR,b=1===g?1:g**r.GG,y=1===p?1:p**r.GB,w=r.MXA*m+r.MXB*b+r.MXC*y,S=r.MYA*m+r.MYB*b+r.MYC*y,x=r.MZA*m+r.MZB*b+r.MZC*y,C=s;C[0]=w;C[1]=S;C[2]=x;const k=o;!function normalizeWhitePointToFlat(a,r,n){if(1===a[0]&&1===a[2]){n[0]=r[0];n[1]=r[1];n[2]=r[2];return}const s=n;matrixProduct(e,r,s);const o=i;!function convertToFlat(e,t,a){a[0]=1*t[0]/e[0];a[1]=1*t[1]/e[1];a[2]=1*t[2]/e[2]}(a,s,o);matrixProduct(t,o,n)}(r.whitePoint,C,k);const v=s;!function compensateBlackPoint(e,t,a){if(0===e[0]&&0===e[1]&&0===e[2]){a[0]=t[0];a[1]=t[1];a[2]=t[2];return}const r=decodeL(0),n=(1-r)/(1-decodeL(e[0])),i=1-n,s=(1-r)/(1-decodeL(e[1])),o=1-s,c=(1-r)/(1-decodeL(e[2])),l=1-c;a[0]=t[0]*n+i;a[1]=t[1]*s+o;a[2]=t[2]*c+l}(r.blackPoint,k,v);const F=o;!function normalizeWhitePointToD65(a,r,n){const s=n;matrixProduct(e,r,s);const o=i;!function convertToD65(e,t,a){a[0]=.95047*t[0]/e[0];a[1]=1*t[1]/e[1];a[2]=1.08883*t[2]/e[2]}(a,s,o);matrixProduct(t,o,n)}(n,v,F);const O=s;matrixProduct(a,F,O);h[u]=255*sRGBTransferFunction(O[0]);h[u+1]=255*sRGBTransferFunction(O[1]);h[u+2]=255*sRGBTransferFunction(O[2])}return class CalRGBCS extends ColorSpace{constructor(e,t,a,n){super("CalRGB",3);if(!e)throw new r.FormatError("WhitePoint missing - required for color space CalRGB");t=t||new Float32Array(3);a=a||new Float32Array([1,1,1]);n=n||new Float32Array([1,0,0,0,1,0,0,0,1]);const i=e[0],s=e[1],o=e[2];this.whitePoint=e;const c=t[0],l=t[1],h=t[2];this.blackPoint=t;this.GR=a[0];this.GG=a[1];this.GB=a[2];this.MXA=n[0];this.MYA=n[1];this.MZA=n[2];this.MXB=n[3];this.MYB=n[4];this.MZB=n[5];this.MXC=n[6];this.MYC=n[7];this.MZC=n[8];if(i<0||o<0||1!==s)throw new r.FormatError(`Invalid WhitePoint components for ${this.name}, no fallback available`);if(c<0||l<0||h<0){(0,r.info)(`Invalid BlackPoint for ${this.name} [${c}, ${l}, ${h}], falling back to default.`);this.blackPoint=new Float32Array(3)}if(this.GR<0||this.GG<0||this.GB<0){(0,r.info)(`Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ${this.name}, falling back to default.`);this.GR=this.GG=this.GB=1}}getRgbItem(e,t,a,r){convertToRgb(this,e,t,a,r,1)}getRgbBuffer(e,t,a,r,n,i,s){const o=1/((1<=6/29?e**3:108/841*(e-4/29);return t}function decode(e,t,a,r){return a+e*(r-a)/t}function convertToRgb(e,t,a,r,n,i){let s=t[a],o=t[a+1],c=t[a+2];if(!1!==r){s=decode(s,r,0,100);o=decode(o,r,e.amin,e.amax);c=decode(c,r,e.bmin,e.bmax)}o>e.amax?o=e.amax:oe.bmax?c=e.bmax:cthis.amax||this.bmin>this.bmax){(0,r.info)("Invalid Range, falling back to defaults");this.amin=-100;this.amax=100;this.bmin=-100;this.bmax=100}}getRgbItem(e,t,a,r){convertToRgb(this,e,t,!1,a,r)}getRgbBuffer(e,t,a,r,n,i,s){const o=(1<{Object.defineProperty(t,"__esModule",{value:!0});t.PartialEvaluator=t.EvaluatorPreprocessor=void 0;var r=a(2),n=a(14),i=a(3),s=a(32),o=a(35),c=a(39),l=a(48),h=a(49),u=a(40),d=a(55),f=a(15),g=a(57),p=a(8),m=a(5),b=a(58),y=a(12),w=a(17),S=a(36),x=a(37),C=a(4),k=a(43),v=a(38),F=a(59),O=a(60),T=a(61);const M=Object.freeze({maxImageSize:-1,disableFontFace:!1,ignoreErrors:!1,isEvalSupported:!0,isOffscreenCanvasSupported:!0,fontExtraProperties:!1,useSystemFonts:!0,cMapUrl:null,standardFontDataUrl:null}),E=1,D=2,N=Promise.resolve();function normalizeBlendMode(e,t=!1){if(Array.isArray(e)){for(const t of e){const e=normalizeBlendMode(t,!0);if(e)return e}(0,r.warn)(`Unsupported blend mode Array: ${e}`);return"source-over"}if(!(e instanceof i.Name))return t?null:"source-over";switch(e.name){case"Normal":case"Compatible":return"source-over";case"Multiply":return"multiply";case"Screen":return"screen";case"Overlay":return"overlay";case"Darken":return"darken";case"Lighten":return"lighten";case"ColorDodge":return"color-dodge";case"ColorBurn":return"color-burn";case"HardLight":return"hard-light";case"SoftLight":return"soft-light";case"Difference":return"difference";case"Exclusion":return"exclusion";case"Hue":return"hue";case"Saturation":return"saturation";case"Color":return"color";case"Luminosity":return"luminosity"}if(t)return null;(0,r.warn)(`Unsupported blend mode: ${e.name}`);return"source-over"}function incrementCachedImageMaskCount(e){e.fn===r.OPS.paintImageMaskXObject&&e.args[0]&&e.args[0].count>0&&e.args[0].count++}class TimeSlotManager{static get TIME_SLOT_DURATION_MS(){return(0,r.shadow)(this,"TIME_SLOT_DURATION_MS",20)}static get CHECK_TIME_EVERY(){return(0,r.shadow)(this,"CHECK_TIME_EVERY",100)}constructor(){this.reset()}check(){if(++this.checkedd){const e="Image exceeded maximum allowed size and was removed.";if(this.options.ignoreErrors){(0,r.warn)(e);return}throw new Error(e)}let f;c.has("OC")&&(f=await this.parseMarkedContentProps(c.get("OC"),e));let g,p;if(c.get("IM","ImageMask")||!1){const e=c.get("I","Interpolate"),a=h+7>>3,o=t.getBytes(a*u),d=c.getArray("D","Decode");if(this.parsingType3Font){g=T.PDFImage.createRawMask({imgArray:o,width:h,height:u,imageIsFromDecodeStream:t instanceof w.DecodeStream,inverseDecode:!!d&&d[0]>0,interpolate:e});g.cached=!!i;p=[g];n.addImageOps(r.OPS.paintImageMaskXObject,p,f);i&&s.set(i,l,{fn:r.OPS.paintImageMaskXObject,args:p,optionalContent:f});return}g=T.PDFImage.createMask({imgArray:o,width:h,height:u,imageIsFromDecodeStream:t instanceof w.DecodeStream,inverseDecode:!!d&&d[0]>0,interpolate:e,isOffscreenCanvasSupported:this.options.isOffscreenCanvasSupported});if(g.isSingleOpaquePixel){n.addImageOps(r.OPS.paintSolidColorImageMask,[],f);i&&s.set(i,l,{fn:r.OPS.paintSolidColorImageMask,args:[],optionalContent:f});return}const m=`mask_${this.idFactory.createObjId()}`;n.addDependency(m);this._sendImgData(m,g);p=[{data:m,width:g.width,height:g.height,interpolate:g.interpolate,count:1}];n.addImageOps(r.OPS.paintImageMaskXObject,p,f);i&&s.set(i,l,{fn:r.OPS.paintImageMaskXObject,args:p,optionalContent:f});return}const m=c.get("SM","SMask")||!1,b=c.get("Mask")||!1;if(a&&!m&&!b&&h+u<200){const i=new T.PDFImage({xref:this.xref,res:e,image:t,isInline:a,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:o});g=i.createImageData(!0);n.addImageOps(r.OPS.paintInlineImageXObject,[g],f);return}let y=`img_${this.idFactory.createObjId()}`,S=!1;if(this.parsingType3Font)y=`${this.idFactory.getDocId()}_type3_${y}`;else if(l){S=this.globalImageCache.shouldCache(l,this.pageIndex);S&&(y=`${this.idFactory.getDocId()}_${y}`)}n.addDependency(y);p=[y,h,u];T.PDFImage.buildImage({xref:this.xref,res:e,image:t,isInline:a,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:o}).then((e=>{g=e.createImageData(!1);i&&l&&S&&this.globalImageCache.addByteSize(l,g.data.length);return this._sendImgData(y,g,S)})).catch((e=>{(0,r.warn)(`Unable to decode image "${y}": "${e}".`);return this._sendImgData(y,null,S)}));n.addImageOps(r.OPS.paintImageXObject,p,f);if(i){s.set(i,l,{fn:r.OPS.paintImageXObject,args:p,optionalContent:f});if(l){(0,r.assert)(!a,"Cannot cache an inline image globally.");this.globalImageCache.addPageIndex(l,this.pageIndex);S&&this.globalImageCache.setData(l,{objId:y,fn:r.OPS.paintImageXObject,args:p,optionalContent:f,byteSize:0})}}}handleSMask(e,t,a,r,n,i){const s=e.get("G"),o={subtype:e.get("S").name,backdrop:e.get("BC")},c=e.get("TR");if((0,d.isPDFFunction)(c)){const e=this._pdfFunctionFactory.create(c),t=new Uint8Array(256),a=new Float32Array(1);for(let r=0;r<256;r++){a[0]=r/255;e(a,0,a,0);t[r]=255*a[0]|0}o.transferMap=t}return this.buildFormXObject(t,s,o,a,r,n.state.clone(),i)}handleTransferFunction(e){let t;if(Array.isArray(e))t=e;else{if(!(0,d.isPDFFunction)(e))return null;t=[e]}const a=[];let r=0,n=0;for(const e of t){const t=this.xref.fetchIfRef(e);r++;if((0,i.isName)(t,"Identity")){a.push(null);continue}if(!(0,d.isPDFFunction)(t))return null;const s=this._pdfFunctionFactory.create(t),o=new Uint8Array(256),c=new Float32Array(1);for(let e=0;e<256;e++){c[0]=e/255;s(c,0,c,0);o[e]=255*c[0]|0}a.push(o);n++}return 1!==r&&4!==r||0===n?null:a}handleTilingType(e,t,a,n,s,o,c,h){const u=new O.OperatorList,d=i.Dict.merge({xref:this.xref,dictArray:[s.get("Resources"),a]});return this.getOperatorList({stream:n,task:c,resources:d,operatorList:u}).then((function(){const a=u.getIR(),r=(0,l.getTilingPatternIR)(a,s,t);o.addDependencies(u.dependencies);o.addOp(e,r);s.objId&&h.set(null,s.objId,{operatorListIR:a,dict:s})})).catch((e=>{if(!(e instanceof r.AbortException)){if(!this.options.ignoreErrors)throw e;this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorTilingPattern});(0,r.warn)(`handleTilingType - ignoring pattern: "${e}".`)}}))}handleSetFont(e,t,a,n,o,c,l=null,h=null){const u=t&&t[0]instanceof i.Name?t[0].name:null;return this.loadFont(u,a,e,l,h).then((t=>t.font.isType3Font?t.loadType3Data(this,e,o).then((function(){n.addDependencies(t.type3Dependencies);return t})).catch((e=>{this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontLoadType3});return new TranslatedFont({loadedName:"g_font_error",font:new s.ErrorFont(`Type3 font load error: ${e}`),dict:t.font,evaluatorOptions:this.options})})):t)).then((e=>{c.font=e.font;e.send(this.handler);return e.loadedName}))}handleText(e,t){const a=t.font,n=a.charsToGlyphs(e);if(a.data){(!!(t.textRenderingMode&r.TextRenderingMode.ADD_TO_PATH_FLAG)||"Pattern"===t.fillColorSpace.name||a.disableFontFace||this.options.disableFontFace)&&PartialEvaluator.buildFontPaths(a,n,this.handler,this.options)}return n}ensureStateFont(e){if(e.font)return;const t=new r.FormatError("Missing setFont (Tf) operator before text rendering operator.");if(!this.options.ignoreErrors)throw t;this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontState});(0,r.warn)(`ensureStateFont: "${t}".`)}async setGState({resources:e,gState:t,operatorList:a,cacheKey:n,task:s,stateManager:o,localGStateCache:c,localColorSpaceCache:l}){const h=t.objId;let u=!0;const d=[];let f=Promise.resolve();for(const n of t.getKeys()){const c=t.get(n);switch(n){case"Type":break;case"LW":case"LC":case"LJ":case"ML":case"D":case"RI":case"FL":case"CA":case"ca":d.push([n,c]);break;case"Font":u=!1;f=f.then((()=>this.handleSetFont(e,null,c[0],a,s,o.state).then((function(e){a.addDependency(e);d.push([n,[e,c[1]]])}))));break;case"BM":d.push([n,normalizeBlendMode(c)]);break;case"SMask":if((0,i.isName)(c,"None")){d.push([n,!1]);break}if(c instanceof i.Dict){u=!1;f=f.then((()=>this.handleSMask(c,e,a,s,o,l)));d.push([n,!0])}else(0,r.warn)("Unsupported SMask type");break;case"TR":const t=this.handleTransferFunction(c);d.push([n,t]);break;case"OP":case"op":case"OPM":case"BG":case"BG2":case"UCR":case"UCR2":case"TR2":case"HT":case"SM":case"SA":case"AIS":case"TK":(0,r.info)("graphic state operator "+n);break;default:(0,r.info)("Unknown graphic state operator "+n)}}return f.then((function(){d.length>0&&a.addOp(r.OPS.setGState,[d]);u&&c.set(n,h,d)}))}loadFont(e,t,a,n=null,o=null){const errorFont=async()=>new TranslatedFont({loadedName:"g_font_error",font:new s.ErrorFont(`Font "${e}" is not available.`),dict:t,evaluatorOptions:this.options}),c=this.xref;let l;if(t)t instanceof i.Ref&&(l=t);else{const t=a.get("Font");t&&(l=t.getRaw(e))}if(!l){const a=`Font "${e||t&&t.toString()}" is not available`;if(!this.options.ignoreErrors&&!this.parsingType3Font){(0,r.warn)(`${a}.`);return errorFont()}this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontMissing});(0,r.warn)(`${a} -- attempting to fallback to a default font.`);l=n||PartialEvaluator.fallbackFontDict}if(this.parsingType3Font&&this.type3FontRefs.has(l))return errorFont();if(this.fontCache.has(l))return this.fontCache.get(l);if(!((t=c.fetchIfRef(l))instanceof i.Dict))return errorFont();if(t.cacheKey&&this.fontCache.has(t.cacheKey))return this.fontCache.get(t.cacheKey);const h=(0,r.createPromiseCapability)();let u;try{u=this.preEvaluateFont(t);u.cssFontInfo=o}catch(e){(0,r.warn)(`loadFont - preEvaluateFont failed: "${e}".`);return errorFont()}const{descriptor:d,hash:f}=u,g=l instanceof i.Ref;let p;g&&(p=`f${l.toString()}`);if(f&&d instanceof i.Dict){d.fontAliases||(d.fontAliases=Object.create(null));const e=d.fontAliases;if(e[f]){const t=e[f].aliasRef;if(g&&t&&this.fontCache.has(t)){this.fontCache.putAlias(l,t);return this.fontCache.get(l)}}else e[f]={fontID:this.idFactory.createFontId()};g&&(e[f].aliasRef=l);p=e[f].fontID}if(g)this.fontCache.put(l,h.promise);else{p||(p=this.idFactory.createFontId());t.cacheKey=`cacheKey_${p}`;this.fontCache.put(t.cacheKey,h.promise)}(0,r.assert)(p&&p.startsWith("f"),'The "fontID" must be (correctly) defined.');t.loadedName=`${this.idFactory.getDocId()}_${p}`;this.translateFont(u).then((e=>{h.resolve(new TranslatedFont({loadedName:t.loadedName,font:e,dict:t,evaluatorOptions:this.options}))})).catch((e=>{this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontTranslate});(0,r.warn)(`loadFont - translateFont failed: "${e}".`);h.resolve(new TranslatedFont({loadedName:t.loadedName,font:new s.ErrorFont(e instanceof Error?e.message:e),dict:t,evaluatorOptions:this.options}))}));return h.promise}buildPath(e,t,a,n=!1){const i=e.length-1;a||(a=[]);if(i<0||e.fnArray[i]!==r.OPS.constructPath){if(n){(0,r.warn)(`Encountered path operator "${t}" inside of a text object.`);e.addOp(r.OPS.save,null)}let i;switch(t){case r.OPS.rectangle:const e=a[0]+a[2],t=a[1]+a[3];i=[Math.min(a[0],e),Math.max(a[0],e),Math.min(a[1],t),Math.max(a[1],t)];break;case r.OPS.moveTo:case r.OPS.lineTo:i=[a[0],a[0],a[1],a[1]];break;default:i=[1/0,-1/0,1/0,-1/0]}e.addOp(r.OPS.constructPath,[[t],a,i]);n&&e.addOp(r.OPS.restore,null)}else{const n=e.argsArray[i];n[0].push(t);n[1].push(...a);const s=n[2];switch(t){case r.OPS.rectangle:const e=a[0]+a[2],t=a[1]+a[3];s[0]=Math.min(s[0],a[0],e);s[1]=Math.max(s[1],a[0],e);s[2]=Math.min(s[2],a[1],t);s[3]=Math.max(s[3],a[1],t);break;case r.OPS.moveTo:case r.OPS.lineTo:s[0]=Math.min(s[0],a[0]);s[1]=Math.max(s[1],a[0]);s[2]=Math.min(s[2],a[1]);s[3]=Math.max(s[3],a[1])}}}parseColorSpace({cs:e,resources:t,localColorSpaceCache:a}){return y.ColorSpace.parseAsync({cs:e,xref:this.xref,resources:t,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:a}).catch((e=>{if(e instanceof r.AbortException)return null;if(this.options.ignoreErrors){this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorColorSpace});(0,r.warn)(`parseColorSpace - ignoring ColorSpace: "${e}".`);return null}throw e}))}parseShading({shading:e,resources:t,localColorSpaceCache:a,localShadingPatternCache:r}){let n=r.get(e);if(!n){const i=l.Pattern.parseShading(e,this.xref,t,this.handler,this._pdfFunctionFactory,a).getIR();n=`pattern_${this.idFactory.createObjId()}`;r.set(e,n);this.handler.send("obj",[n,this.pageIndex,"Pattern",i])}return n}handleColorN(e,t,a,n,s,o,c,h,u,d){const f=a.pop();if(f instanceof i.Name){const g=s.getRaw(f.name),p=g instanceof i.Ref&&u.getByRef(g);if(p)try{const r=n.base?n.base.getRgb(a,0):null,i=(0,l.getTilingPatternIR)(p.operatorListIR,p.dict,r);e.addOp(t,i);return}catch(e){}const b=this.xref.fetchIfRef(g);if(b){const i=b instanceof m.BaseStream?b.dict:b,s=i.get("PatternType");if(s===E){const r=n.base?n.base.getRgb(a,0):null;return this.handleTilingType(t,r,o,b,i,e,c,u)}if(s===D){const a=i.get("Shading"),r=i.getArray("Matrix"),n=this.parseShading({shading:a,resources:o,localColorSpaceCache:h,localShadingPatternCache:d});e.addOp(t,["Shading",n,r]);return}throw new r.FormatError(`Unknown PatternType: ${s}`)}}throw new r.FormatError(`Unknown PatternName: ${f}`)}_parseVisibilityExpression(e,t,a){if(++t>10){(0,r.warn)("Visibility expression is too deeply nested");return}const n=e.length,s=this.xref.fetchIfRef(e[0]);if(!(n<2)&&s instanceof i.Name){switch(s.name){case"And":case"Or":case"Not":a.push(s.name);break;default:(0,r.warn)(`Invalid operator ${s.name} in visibility expression`);return}for(let r=1;r0)return{type:"OCMD",expression:t}}const t=a.get("OCGs");if(Array.isArray(t)||t instanceof i.Dict){const e=[];if(Array.isArray(t))for(const a of t)e.push(a.toString());else e.push(t.objId);return{type:n,ids:e,policy:a.get("P")instanceof i.Name?a.get("P").name:null,expression:null}}if(t instanceof i.Ref)return{type:n,id:t.toString()}}return null}getOperatorList({stream:e,task:t,resources:a,operatorList:n,initialState:s=null,fallbackFontDict:o=null}){a=a||i.Dict.empty;s=s||new EvalState;if(!n)throw new Error('getOperatorList: missing "operatorList" parameter');const c=this,l=this.xref;let h=!1;const u=new g.LocalImageCache,d=new g.LocalColorSpaceCache,f=new g.LocalGStateCache,p=new g.LocalTilingPatternCache,b=new Map,w=a.get("XObject")||i.Dict.empty,S=a.get("Pattern")||i.Dict.empty,x=new StateManager(s),C=new EvaluatorPreprocessor(e,l,x),k=new TimeSlotManager;function closePendingRestoreOPS(e){for(let e=0,t=C.savedStatesDepth;e0&&n.addOp(r.OPS.setGState,[t]);e=null;continue}}next(new Promise((function(e,s){if(!E)throw new r.FormatError("GState must be referred to by name.");const o=a.get("ExtGState");if(!(o instanceof i.Dict))throw new r.FormatError("ExtGState should be a dictionary.");const l=o.get(M);if(!(l instanceof i.Dict))throw new r.FormatError("GState should be a dictionary.");c.setGState({resources:a,gState:l,operatorList:n,cacheKey:M,task:t,stateManager:x,localGStateCache:f,localColorSpaceCache:d}).then(e,s)})).catch((function(e){if(!(e instanceof r.AbortException)){if(!c.options.ignoreErrors)throw e;c.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorExtGState});(0,r.warn)(`getOperatorList - ignoring ExtGState: "${e}".`)}})));return;case r.OPS.moveTo:case r.OPS.lineTo:case r.OPS.curveTo:case r.OPS.curveTo2:case r.OPS.curveTo3:case r.OPS.closePath:case r.OPS.rectangle:c.buildPath(n,s,e,h);continue;case r.OPS.markPoint:case r.OPS.markPointProps:case r.OPS.beginCompat:case r.OPS.endCompat:continue;case r.OPS.beginMarkedContentProps:if(!(e[0]instanceof i.Name)){(0,r.warn)(`Expected name for beginMarkedContentProps arg0=${e[0]}`);continue}if("OC"===e[0].name){next(c.parseMarkedContentProps(e[1],a).then((e=>{n.addOp(r.OPS.beginMarkedContentProps,["OC",e])})).catch((e=>{if(!(e instanceof r.AbortException)){if(!c.options.ignoreErrors)throw e;c.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorMarkedContent});(0,r.warn)(`getOperatorList - ignoring beginMarkedContentProps: "${e}".`)}})));return}e=[e[0].name,e[1]instanceof i.Dict?e[1].get("MCID"):null];break;case r.OPS.beginMarkedContent:case r.OPS.endMarkedContent:default:if(null!==e){for(F=0,O=e.length;F{if(!(e instanceof r.AbortException)){if(!this.options.ignoreErrors)throw e;this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorOperatorList});(0,r.warn)(`getOperatorList - ignoring errors during "${t.name}" task: "${e}".`);closePendingRestoreOPS()}}))}getTextContent({stream:e,task:t,resources:a,stateManager:n=null,combineTextItems:s=!1,includeMarkedContent:o=!1,sink:c,seenStyles:l=new Set,viewBox:h,markedContentData:u=null}){a=a||i.Dict.empty;n=n||new StateManager(new TextState);o&&(u=u||{level:0});const d={items:[],styles:Object.create(null)},f={initialized:!1,str:[],totalWidth:0,totalHeight:0,width:0,height:0,vertical:!1,prevTransform:null,textAdvanceScale:0,spaceInFlowMin:0,spaceInFlowMax:0,trackingSpaceMin:1/0,negativeSpaceMax:-1/0,notASpace:-1/0,transform:null,fontName:null,hasEOL:!1},p=[" "," "];let y=0;function saveLastChar(e){const t=(y+1)%2,a=" "!==p[y]&&" "===p[t];p[y]=e;y=t;return a}function resetLastChars(){p[0]=p[1]=" ";y=0}const w=this,S=this.xref,x=[];let C=null;const k=new g.LocalImageCache,v=new g.LocalGStateCache,F=new EvaluatorPreprocessor(e,S,n);let O;function getCurrentTextTransform(){const e=O.font,t=[O.fontSize*O.textHScale,0,0,O.fontSize,0,O.textRise];if(e.isType3Font&&(O.fontSize<=1||e.isCharBBox)&&!(0,r.isArrayEqual)(O.fontMatrix,r.FONT_IDENTITY_MATRIX)){const a=e.bbox[3]-e.bbox[1];a>0&&(t[3]*=a*O.fontMatrix[3])}return r.Util.transform(O.ctm,r.Util.transform(O.textMatrix,t))}function ensureTextContentItem(){if(f.initialized)return f;const{font:e,loadedName:t}=O;if(!l.has(t)){l.add(t);d.styles[t]={fontFamily:e.fallbackName,ascent:e.ascent,descent:e.descent,vertical:e.vertical}}f.fontName=t;const a=f.transform=getCurrentTextTransform();if(e.vertical){f.width=f.totalWidth=Math.hypot(a[0],a[1]);f.height=f.totalHeight=0;f.vertical=!0}else{f.width=f.totalWidth=0;f.height=f.totalHeight=Math.hypot(a[2],a[3]);f.vertical=!1}const r=Math.hypot(O.textLineMatrix[0],O.textLineMatrix[1]),n=Math.hypot(O.ctm[0],O.ctm[1]);f.textAdvanceScale=n*r;f.trackingSpaceMin=.1*O.fontSize;f.notASpace=.03*O.fontSize;f.negativeSpaceMax=-.2*O.fontSize;f.spaceInFlowMin=.1*O.fontSize;f.spaceInFlowMax=.6*O.fontSize;f.hasEOL=!1;f.initialized=!0;return f}function updateAdvanceScale(){if(!f.initialized)return;const e=Math.hypot(O.textLineMatrix[0],O.textLineMatrix[1]),t=Math.hypot(O.ctm[0],O.ctm[1])*e;if(t!==f.textAdvanceScale){if(f.vertical){f.totalHeight+=f.height*f.textAdvanceScale;f.height=0}else{f.totalWidth+=f.width*f.textAdvanceScale;f.width=0}f.textAdvanceScale=t}}function handleSetFont(e,n){return w.loadFont(e,n,a).then((function(e){return e.font.isType3Font?e.loadType3Data(w,a,t).catch((function(){})).then((function(){return e})):e})).then((function(e){O.loadedName=e.loadedName;O.font=e.font;O.fontMatrix=e.font.fontMatrix||r.FONT_IDENTITY_MATRIX}))}function applyInverseRotation(e,t,a){const r=Math.hypot(a[0],a[1]);return[(a[0]*e+a[1]*t)/r,(a[2]*e+a[3]*t)/r]}function compareWithLastPosition(){const e=getCurrentTextTransform();let t=e[4],a=e[5];const r=t-h[0],n=a-h[1];if(r<0||r>h[2]||n<0||n>h[3])return!1;if(!s||!O.font||!f.prevTransform)return!0;let i=f.prevTransform[4],o=f.prevTransform[5];if(i===t&&o===a)return!0;let c=-1;e[0]&&0===e[1]&&0===e[2]?c=e[0]>0?0:180:e[1]&&0===e[0]&&0===e[3]&&(c=e[1]>0?90:270);switch(c){case 0:break;case 90:[t,a]=[a,t];[i,o]=[o,i];break;case 180:[t,a,i,o]=[-t,-a,-i,-o];break;case 270:[t,a]=[-a,-t];[i,o]=[-o,-i];break;default:[t,a]=applyInverseRotation(t,a,e);[i,o]=applyInverseRotation(i,o,f.prevTransform)}if(O.font.vertical){const e=(o-a)/f.textAdvanceScale,r=t-i,n=Math.sign(f.height);if(e.5*f.width){appendEOL();return!0}resetLastChars();flushTextContentItem();return!0}if(Math.abs(r)>f.width){appendEOL();return!0}e<=n*f.notASpace&&resetLastChars();if(e<=n*f.trackingSpaceMin)f.height+=e;else if(!addFakeSpaces(e,f.prevTransform,n))if(0===f.str.length){resetLastChars();d.items.push({str:" ",dir:"ltr",width:0,height:Math.abs(e),transform:f.prevTransform,fontName:f.fontName,hasEOL:!1})}else f.height+=e;return!0}const l=(t-i)/f.textAdvanceScale,u=a-o,g=Math.sign(f.width);if(l.5*f.height){appendEOL();return!0}resetLastChars();flushTextContentItem();return!0}if(Math.abs(u)>f.height){appendEOL();return!0}l<=g*f.notASpace&&resetLastChars();if(l<=g*f.trackingSpaceMin)f.width+=l;else if(!addFakeSpaces(l,f.prevTransform,g))if(0===f.str.length){resetLastChars();d.items.push({str:" ",dir:"ltr",width:Math.abs(l),height:0,transform:f.prevTransform,fontName:f.fontName,hasEOL:!1})}else f.width+=l;return!0}function buildTextContentItem({chars:e,extraSpacing:t}){const a=O.font;if(!e){const e=O.charSpacing+t;e&&(a.vertical?O.translateTextMatrix(0,-e):O.translateTextMatrix(e*O.textHScale,0));return}const r=a.charsToGlyphs(e),n=O.fontMatrix[0]*O.fontSize;for(let e=0,i=r.length;e0){const e=x.join("");x.length=0;buildTextContentItem({chars:e,extraSpacing:0})}break;case r.OPS.showText:if(!n.state.font){w.ensureStateFont(n.state);continue}buildTextContentItem({chars:b[0],extraSpacing:0});break;case r.OPS.nextLineShowText:if(!n.state.font){w.ensureStateFont(n.state);continue}O.carriageReturn();buildTextContentItem({chars:b[0],extraSpacing:0});break;case r.OPS.nextLineSetSpacingShowText:if(!n.state.font){w.ensureStateFont(n.state);continue}O.wordSpacing=b[0];O.charSpacing=b[1];O.carriageReturn();buildTextContentItem({chars:b[2],extraSpacing:0});break;case r.OPS.paintXObject:flushTextContentItem();C||(C=a.get("XObject")||i.Dict.empty);var E=b[0]instanceof i.Name,D=b[0].name;if(E&&k.getByName(D))break;next(new Promise((function(e,d){if(!E)throw new r.FormatError("XObject must be referred to by name.");let f=C.getRaw(D);if(f instanceof i.Ref){if(k.getByRef(f)){e();return}if(w.globalImageCache.getData(f,w.pageIndex)){e();return}f=S.fetch(f)}if(!(f instanceof m.BaseStream))throw new r.FormatError("XObject should be a stream");const g=f.dict.get("Subtype");if(!(g instanceof i.Name))throw new r.FormatError("XObject should have a Name subtype");if("Form"!==g.name){k.set(D,f.dict.objId,!0);e();return}const p=n.state.clone(),b=new StateManager(p),y=f.dict.getArray("Matrix");Array.isArray(y)&&6===y.length&&b.transform(y);enqueueChunk();const x={enqueueInvoked:!1,enqueue(e,t){this.enqueueInvoked=!0;c.enqueue(e,t)},get desiredSize(){return c.desiredSize},get ready(){return c.ready}};w.getTextContent({stream:f,task:t,resources:f.dict.get("Resources")||a,stateManager:b,combineTextItems:s,includeMarkedContent:o,sink:x,seenStyles:l,viewBox:h,markedContentData:u}).then((function(){x.enqueueInvoked||k.set(D,f.dict.objId,!0);e()}),d)})).catch((function(e){if(!(e instanceof r.AbortException)){if(!w.options.ignoreErrors)throw e;(0,r.warn)(`getTextContent - ignoring XObject: "${e}".`)}})));return;case r.OPS.setGState:E=b[0]instanceof i.Name;D=b[0].name;if(E&&v.getByName(D))break;next(new Promise((function(e,t){if(!E)throw new r.FormatError("GState must be referred to by name.");const n=a.get("ExtGState");if(!(n instanceof i.Dict))throw new r.FormatError("ExtGState should be a dictionary.");const s=n.get(D);if(!(s instanceof i.Dict))throw new r.FormatError("GState should be a dictionary.");const o=s.get("Font");if(o){flushTextContentItem();O.fontName=null;O.fontSize=o[1];handleSetFont(null,o[0]).then(e,t)}else{v.set(D,s.objId,!0);e()}})).catch((function(e){if(!(e instanceof r.AbortException)){if(!w.options.ignoreErrors)throw e;(0,r.warn)(`getTextContent - ignoring ExtGState: "${e}".`)}})));return;case r.OPS.beginMarkedContent:flushTextContentItem();if(o){u.level++;d.items.push({type:"beginMarkedContent",tag:b[0]instanceof i.Name?b[0].name:null})}break;case r.OPS.beginMarkedContentProps:flushTextContentItem();if(o){u.level++;let e=null;b[1]instanceof i.Dict&&(e=b[1].get("MCID"));d.items.push({type:"beginMarkedContentProps",id:Number.isInteger(e)?`${w.idFactory.getPageObjId()}_mcid${e}`:null,tag:b[0]instanceof i.Name?b[0].name:null})}break;case r.OPS.endMarkedContent:flushTextContentItem();if(o){if(0===u.level)break;u.level--;d.items.push({type:"endMarkedContent"})}}if(d.items.length>=c.desiredSize){p=!0;break}}if(p)next(N);else{flushTextContentItem();enqueueChunk();e()}})).catch((e=>{if(!(e instanceof r.AbortException)){if(!this.options.ignoreErrors)throw e;(0,r.warn)(`getTextContent - ignoring errors during "${t.name}" task: "${e}".`);flushTextContentItem();enqueueChunk()}}))}extractDataStructures(e,t,a){const n=this.xref;let s;const c=this.readToUnicode(a.toUnicode||e.get("ToUnicode")||t.get("ToUnicode"));if(a.composite){const t=e.get("CIDSystemInfo");t instanceof i.Dict&&(a.cidSystemInfo={registry:(0,r.stringToPDFString)(t.get("Registry")),ordering:(0,r.stringToPDFString)(t.get("Ordering")),supplement:t.get("Supplement")});try{const t=e.get("CIDToGIDMap");t instanceof m.BaseStream&&(s=t.getBytes())}catch(e){if(!this.options.ignoreErrors)throw e;(0,r.warn)(`extractDataStructures - ignoring CIDToGIDMap data: "${e}".`)}}const l=[];let h,u=null;if(e.has("Encoding")){h=e.get("Encoding");if(h instanceof i.Dict){u=h.get("BaseEncoding");u=u instanceof i.Name?u.name:null;if(h.has("Differences")){const e=h.get("Differences");let t=0;for(const a of e){const e=n.fetchIfRef(a);if("number"==typeof e)t=e;else{if(!(e instanceof i.Name))throw new r.FormatError(`Invalid entry in 'Differences' array: ${e}`);l[t++]=e.name}}}}else if(h instanceof i.Name)u=h.name;else{const e="Encoding is not a Name nor a Dict";if(!this.options.ignoreErrors)throw new r.FormatError(e);(0,r.warn)(e)}"MacRomanEncoding"!==u&&"MacExpertEncoding"!==u&&"WinAnsiEncoding"!==u&&(u=null)}if(u)a.defaultEncoding=(0,o.getEncoding)(u);else{const e=!!(a.flags&S.FontFlags.Symbolic),t=!!(a.flags&S.FontFlags.Nonsymbolic);h=o.StandardEncoding;"TrueType"!==a.type||t||(h=o.WinAnsiEncoding);if(e){h=o.MacRomanEncoding;a.file&&!a.isInternalFont||(/Symbol/i.test(a.name)?h=o.SymbolSetEncoding:/Dingbats|Wingdings/i.test(a.name)&&(h=o.ZapfDingbatsEncoding))}a.defaultEncoding=h}a.differences=l;a.baseEncodingName=u;a.hasEncoding=!!u||l.length>0;a.dict=e;return c.then((e=>{a.toUnicode=e;return this.buildToUnicode(a)})).then((e=>{a.toUnicode=e;s&&(a.cidToGidMap=this.readCidToGidMap(s,e));return a}))}_simpleFontToUnicode(e,t=!1){(0,r.assert)(!e.composite,"Must be a simple font.");const a=[],n=e.defaultEncoding.slice(),i=e.baseEncodingName,s=e.differences;for(const e in s){const t=s[e];".notdef"!==t&&(n[e]=t)}const c=(0,x.getGlyphsUnicode)();for(const r in n){let s=n[r];if(""===s)continue;let l=c[s];if(void 0!==l){a[r]=String.fromCharCode(l);continue}let h=0;switch(s[0]){case"G":3===s.length&&(h=parseInt(s.substring(1),16));break;case"g":5===s.length&&(h=parseInt(s.substring(1),16));break;case"C":case"c":if(s.length>=3&&s.length<=4){const a=s.substring(1);if(t){h=parseInt(a,16);break}h=+a;if(Number.isNaN(h)&&Number.isInteger(parseInt(a,16)))return this._simpleFontToUnicode(e,!0)}break;case"u":l=(0,v.getUnicodeForGlyph)(s,c);-1!==l&&(h=l)}if(h>0&&h<=1114111&&Number.isInteger(h)){if(i&&h===+r){const e=(0,o.getEncoding)(i);if(e&&(s=e[r])){a[r]=String.fromCharCode(c[s]);continue}}a[r]=String.fromCodePoint(h)}}return a}async buildToUnicode(e){e.hasIncludedToUnicodeMap=!!e.toUnicode&&e.toUnicode.length>0;if(e.hasIncludedToUnicodeMap){!e.composite&&e.hasEncoding&&(e.fallbackToUnicode=this._simpleFontToUnicode(e));return e.toUnicode}if(!e.composite)return new u.ToUnicodeMap(this._simpleFontToUnicode(e));if(e.composite&&(e.cMap.builtInCMap&&!(e.cMap instanceof n.IdentityCMap)||"Adobe"===e.cidSystemInfo.registry&&("GB1"===e.cidSystemInfo.ordering||"CNS1"===e.cidSystemInfo.ordering||"Japan1"===e.cidSystemInfo.ordering||"Korea1"===e.cidSystemInfo.ordering))){const{registry:t,ordering:a}=e.cidSystemInfo,s=i.Name.get(`${t}-${a}-UCS2`),o=await n.CMapFactory.create({encoding:s,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}),c=[];e.cMap.forEach((function(e,t){if(t>65535)throw new r.FormatError("Max size of CID is 65,535");const a=o.lookup(t);a&&(c[e]=String.fromCharCode((a.charCodeAt(0)<<8)+a.charCodeAt(1)))}));return new u.ToUnicodeMap(c)}return new u.IdentityToUnicodeMap(e.firstChar,e.lastChar)}readToUnicode(e){return e?e instanceof i.Name?n.CMapFactory.create({encoding:e,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then((function(e){return e instanceof n.IdentityCMap?new u.IdentityToUnicodeMap(0,65535):new u.ToUnicodeMap(e.getMap())})):e instanceof m.BaseStream?n.CMapFactory.create({encoding:e,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then((function(e){if(e instanceof n.IdentityCMap)return new u.IdentityToUnicodeMap(0,65535);const t=new Array(e.length);e.forEach((function(e,a){if("number"==typeof a){t[e]=String.fromCodePoint(a);return}const r=[];for(let e=0;e{if(e instanceof r.AbortException)return null;if(this.options.ignoreErrors){this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontToUnicode});(0,r.warn)(`readToUnicode - ignoring ToUnicode data: "${e}".`);return null}throw e})):Promise.resolve(null):Promise.resolve(null)}readCidToGidMap(e,t){const a=[];for(let r=0,n=e.length;r>1;(0!==n||t.has(i))&&(a[i]=n)}return a}extractWidths(e,t,a){const r=this.xref;let n=[],s=0;const o=[];let c,l,h,u,d,f,g,p;if(a.composite){s=e.has("DW")?e.get("DW"):1e3;p=e.get("W");if(p)for(l=0,h=p.length;l{if(g){const e=[];let a=u;for(const t of g)e[a++]=this.xref.fetchIfRef(t);t.widths=e}else t.widths=this.buildCharCodeToWidth(n.widths,t);return new s.Font(e,y,t)}))}(e=new i.Dict(null)).set("FontName",i.Name.get(l));e.set("FontBBox",t.getArray("FontBBox")||[0,0,0,0])}let y,w,x,C,k,v=e.get("FontName"),F=t.get("BaseFont");"string"==typeof v&&(v=i.Name.get(v));"string"==typeof F&&(F=i.Name.get(F));if(!m){const e=v&&v.name,t=F&&F.name;if(e!==t){(0,r.info)(`The FontDescriptor's FontName is "${e}" but should be the same as the Font's BaseFont "${t}".`);e&&t&&t.startsWith(e)&&(v=F)}}v=v||F;if(!(v instanceof i.Name))throw new r.FormatError("invalid font name");try{y=e.get("FontFile","FontFile2","FontFile3")}catch(e){if(!this.options.ignoreErrors)throw e;(0,r.warn)(`translateFont - fetching "${v.name}" font file: "${e}".`);y=new p.NullStream}let O=!1,T=!1,M=null;if(y){if(y.dict){const e=y.dict.get("Subtype");e instanceof i.Name&&(w=e.name);x=y.dict.get("Length1");C=y.dict.get("Length2");k=y.dict.get("Length3")}}else if(g){const e=(0,h.getXfaFontName)(v.name);if(e){g.fontFamily=`${g.fontFamily}-PdfJS-XFA`;g.metrics=e.metrics||null;M=e.factors||null;y=await this.fetchStandardFontData(e.name);T=!!y;a=t=(0,h.getXfaFontDict)(v.name);o=!0}}else if(!m){const e=(0,c.getStandardFontName)(v.name);if(e){O=!0;y=await this.fetchStandardFontData(e);T=!!y}}b={type:l,name:v.name,subtype:w,file:y,length1:x,length2:C,length3:k,isStandardFont:O,isInternalFont:T,loadedName:a.loadedName,composite:o,fixedPitch:!1,fontMatrix:t.getArray("FontMatrix")||r.FONT_IDENTITY_MATRIX,firstChar:u,lastChar:d,toUnicode:f,bbox:e.getArray("FontBBox")||t.getArray("FontBBox"),ascent:e.get("Ascent"),descent:e.get("Descent"),xHeight:e.get("XHeight")||0,capHeight:e.get("CapHeight")||0,flags:e.get("Flags"),italicAngle:e.get("ItalicAngle")||0,isType3Font:m,cssFontInfo:g,scaleFactors:M};if(o){const e=a.get("Encoding");e instanceof i.Name&&(b.cidEncoding=e.name);const t=await n.CMapFactory.create({encoding:e,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null});b.cMap=t;b.vertical=b.cMap.vertical}return this.extractDataStructures(t,a,b).then((a=>{this.extractWidths(t,e,a);return new s.Font(v.name,y,a)}))}static buildFontPaths(e,t,a,n){function buildPath(t){const i=`${e.loadedName}_path_${t}`;try{if(e.renderer.hasBuiltPath(t))return;a.send("commonobj",[i,"FontPath",e.renderer.getPathJs(t)])}catch(e){if(n.ignoreErrors){a.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontBuildPath});(0,r.warn)(`buildFontPaths - ignoring ${i} glyph: "${e}".`);return}throw e}}for(const e of t){buildPath(e.fontChar);const t=e.accent;t&&t.fontChar&&buildPath(t.fontChar)}}static get fallbackFontDict(){const e=new i.Dict;e.set("BaseFont",i.Name.get("PDFJS-FallbackFont"));e.set("Type",i.Name.get("FallbackType"));e.set("Subtype",i.Name.get("FallbackType"));e.set("Encoding",i.Name.get("WinAnsiEncoding"));return(0,r.shadow)(this,"fallbackFontDict",e)}}t.PartialEvaluator=PartialEvaluator;class TranslatedFont{constructor({loadedName:e,font:t,dict:a,evaluatorOptions:r}){this.loadedName=e;this.font=t;this.dict=a;this._evaluatorOptions=r||M;this.type3Loaded=null;this.type3Dependencies=t.isType3Font?new Set:null;this.sent=!1}send(e){if(!this.sent){this.sent=!0;e.send("commonobj",[this.loadedName,"Font",this.font.exportData(this._evaluatorOptions.fontExtraProperties)])}}fallback(e){if(this.font.data){this.font.disableFontFace=!0;PartialEvaluator.buildFontPaths(this.font,this.font.glyphCacheValues,e,this._evaluatorOptions)}}loadType3Data(e,t,a){if(this.type3Loaded)return this.type3Loaded;if(!this.font.isType3Font)throw new Error("Must be a Type3 font.");const n=e.clone({ignoreErrors:!1});n.parsingType3Font=!0;const s=new i.RefSet(e.type3FontRefs);this.dict.objId&&!s.has(this.dict.objId)&&s.put(this.dict.objId);n.type3FontRefs=s;const o=this.font,c=this.type3Dependencies;let l=Promise.resolve();const h=this.dict.get("CharProcs"),u=this.dict.get("Resources")||t,d=Object.create(null),f=r.Util.normalizeRect(o.bbox||[0,0,0,0]),g=f[2]-f[0],p=f[3]-f[1],m=Math.hypot(g,p);for(const e of h.getKeys())l=l.then((()=>{const t=h.get(e),i=new O.OperatorList;return n.getOperatorList({stream:t,task:a,resources:u,operatorList:i}).then((()=>{i.fnArray[0]===r.OPS.setCharWidthAndBounds&&this._removeType3ColorOperators(i,m);d[e]=i.getIR();for(const e of i.dependencies)c.add(e)})).catch((function(t){(0,r.warn)(`Type3 font resource "${e}" is not available.`);const a=new O.OperatorList;d[e]=a.getIR()}))}));this.type3Loaded=l.then((()=>{o.charProcOperatorList=d;if(this._bbox){o.isCharBBox=!0;o.bbox=this._bbox}}));return this.type3Loaded}_removeType3ColorOperators(e,t=NaN){const a=r.Util.normalizeRect(e.argsArray[0].slice(2)),n=a[2]-a[0],i=a[3]-a[1],s=Math.hypot(n,i);if(0===n||0===i){e.fnArray.splice(0,1);e.argsArray.splice(0,1)}else if(0===t||Math.round(s/t)>=10){this._bbox||(this._bbox=[1/0,1/0,-1/0,-1/0]);this._bbox[0]=Math.min(this._bbox[0],a[0]);this._bbox[1]=Math.min(this._bbox[1],a[1]);this._bbox[2]=Math.max(this._bbox[2],a[2]);this._bbox[3]=Math.max(this._bbox[3],a[3])}let o=0,c=e.length;for(;o=r.OPS.moveTo&&s<=r.OPS.endPath;if(i.variableArgs)c>o&&(0,r.info)(`Command ${n}: expected [0, ${o}] args, but received ${c} args.`);else{if(c!==o){const e=this.nonProcessedArgs;for(;c>o;){e.push(t.shift());c--}for(;cEvaluatorPreprocessor.MAX_INVALID_PATH_OPS)throw new r.FormatError(`Invalid ${e}`);(0,r.warn)(`Skipping ${e}`);null!==t&&(t.length=0);continue}}this.preprocessCommand(s,t);e.fn=s;e.args=t;return!0}if(a===i.EOF)return!1;if(null!==a){null===t&&(t=[]);t.push(a);if(t.length>33)throw new r.FormatError("Too many arguments")}}}preprocessCommand(e,t){switch(0|e){case r.OPS.save:this.stateManager.save();break;case r.OPS.restore:this.stateManager.restore();break;case r.OPS.transform:this.stateManager.transform(t)}}}t.EvaluatorPreprocessor=EvaluatorPreprocessor},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.IdentityCMap=t.CMapFactory=t.CMap=void 0;var r=a(2),n=a(3),i=a(5),s=a(15),o=a(4),c=a(8);const l=["Adobe-GB1-UCS2","Adobe-CNS1-UCS2","Adobe-Japan1-UCS2","Adobe-Korea1-UCS2","78-EUC-H","78-EUC-V","78-H","78-RKSJ-H","78-RKSJ-V","78-V","78ms-RKSJ-H","78ms-RKSJ-V","83pv-RKSJ-H","90ms-RKSJ-H","90ms-RKSJ-V","90msp-RKSJ-H","90msp-RKSJ-V","90pv-RKSJ-H","90pv-RKSJ-V","Add-H","Add-RKSJ-H","Add-RKSJ-V","Add-V","Adobe-CNS1-0","Adobe-CNS1-1","Adobe-CNS1-2","Adobe-CNS1-3","Adobe-CNS1-4","Adobe-CNS1-5","Adobe-CNS1-6","Adobe-GB1-0","Adobe-GB1-1","Adobe-GB1-2","Adobe-GB1-3","Adobe-GB1-4","Adobe-GB1-5","Adobe-Japan1-0","Adobe-Japan1-1","Adobe-Japan1-2","Adobe-Japan1-3","Adobe-Japan1-4","Adobe-Japan1-5","Adobe-Japan1-6","Adobe-Korea1-0","Adobe-Korea1-1","Adobe-Korea1-2","B5-H","B5-V","B5pc-H","B5pc-V","CNS-EUC-H","CNS-EUC-V","CNS1-H","CNS1-V","CNS2-H","CNS2-V","ETHK-B5-H","ETHK-B5-V","ETen-B5-H","ETen-B5-V","ETenms-B5-H","ETenms-B5-V","EUC-H","EUC-V","Ext-H","Ext-RKSJ-H","Ext-RKSJ-V","Ext-V","GB-EUC-H","GB-EUC-V","GB-H","GB-V","GBK-EUC-H","GBK-EUC-V","GBK2K-H","GBK2K-V","GBKp-EUC-H","GBKp-EUC-V","GBT-EUC-H","GBT-EUC-V","GBT-H","GBT-V","GBTpc-EUC-H","GBTpc-EUC-V","GBpc-EUC-H","GBpc-EUC-V","H","HKdla-B5-H","HKdla-B5-V","HKdlb-B5-H","HKdlb-B5-V","HKgccs-B5-H","HKgccs-B5-V","HKm314-B5-H","HKm314-B5-V","HKm471-B5-H","HKm471-B5-V","HKscs-B5-H","HKscs-B5-V","Hankaku","Hiragana","KSC-EUC-H","KSC-EUC-V","KSC-H","KSC-Johab-H","KSC-Johab-V","KSC-V","KSCms-UHC-H","KSCms-UHC-HW-H","KSCms-UHC-HW-V","KSCms-UHC-V","KSCpc-EUC-H","KSCpc-EUC-V","Katakana","NWP-H","NWP-V","RKSJ-H","RKSJ-V","Roman","UniCNS-UCS2-H","UniCNS-UCS2-V","UniCNS-UTF16-H","UniCNS-UTF16-V","UniCNS-UTF32-H","UniCNS-UTF32-V","UniCNS-UTF8-H","UniCNS-UTF8-V","UniGB-UCS2-H","UniGB-UCS2-V","UniGB-UTF16-H","UniGB-UTF16-V","UniGB-UTF32-H","UniGB-UTF32-V","UniGB-UTF8-H","UniGB-UTF8-V","UniJIS-UCS2-H","UniJIS-UCS2-HW-H","UniJIS-UCS2-HW-V","UniJIS-UCS2-V","UniJIS-UTF16-H","UniJIS-UTF16-V","UniJIS-UTF32-H","UniJIS-UTF32-V","UniJIS-UTF8-H","UniJIS-UTF8-V","UniJIS2004-UTF16-H","UniJIS2004-UTF16-V","UniJIS2004-UTF32-H","UniJIS2004-UTF32-V","UniJIS2004-UTF8-H","UniJIS2004-UTF8-V","UniJISPro-UCS2-HW-V","UniJISPro-UCS2-V","UniJISPro-UTF8-V","UniJISX0213-UTF32-H","UniJISX0213-UTF32-V","UniJISX02132004-UTF32-H","UniJISX02132004-UTF32-V","UniKS-UCS2-H","UniKS-UCS2-V","UniKS-UTF16-H","UniKS-UTF16-V","UniKS-UTF32-H","UniKS-UTF32-V","UniKS-UTF8-H","UniKS-UTF8-V","V","WP-Symbol"],h=2**24-1;class CMap{constructor(e=!1){this.codespaceRanges=[[],[],[],[]];this.numCodespaceRanges=0;this._map=[];this.name="";this.vertical=!1;this.useCMap=null;this.builtInCMap=e}addCodespaceRange(e,t,a){this.codespaceRanges[e-1].push(t,a);this.numCodespaceRanges++}mapCidRange(e,t,a){if(t-e>h)throw new Error("mapCidRange - ignoring data above MAX_MAP_RANGE.");for(;e<=t;)this._map[e++]=a++}mapBfRange(e,t,a){if(t-e>h)throw new Error("mapBfRange - ignoring data above MAX_MAP_RANGE.");const r=a.length-1;for(;e<=t;){this._map[e++]=a;const t=a.charCodeAt(r)+1;t>255?a=a.substring(0,r-1)+String.fromCharCode(a.charCodeAt(r-1)+1)+"\0":a=a.substring(0,r)+String.fromCharCode(t)}}mapBfRangeToArray(e,t,a){if(t-e>h)throw new Error("mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.");const r=a.length;let n=0;for(;e<=t&&n>>0;const s=n[i];for(let e=0,t=s.length;e=t&&r<=n){a.charcode=r;a.length=i+1;return}}}a.charcode=0;a.length=1}getCharCodeLength(e){const t=this.codespaceRanges;for(let a=0,r=t.length;a=n&&e<=i)return a+1}}return 1}get length(){return this._map.length}get isIdentityCMap(){if("Identity-H"!==this.name&&"Identity-V"!==this.name)return!1;if(65536!==this._map.length)return!1;for(let e=0;e<65536;e++)if(this._map[e]!==e)return!1;return!0}}t.CMap=CMap;class IdentityCMap extends CMap{constructor(e,t){super();this.vertical=e;this.addCodespaceRange(t,0,65535)}mapCidRange(e,t,a){(0,r.unreachable)("should not call mapCidRange")}mapBfRange(e,t,a){(0,r.unreachable)("should not call mapBfRange")}mapBfRangeToArray(e,t,a){(0,r.unreachable)("should not call mapBfRangeToArray")}mapOne(e,t){(0,r.unreachable)("should not call mapCidOne")}lookup(e){return Number.isInteger(e)&&e<=65535?e:void 0}contains(e){return Number.isInteger(e)&&e<=65535}forEach(e){for(let t=0;t<=65535;t++)e(t,t)}charCodeOf(e){return Number.isInteger(e)&&e<=65535?e:-1}getMap(){const e=new Array(65536);for(let t=0;t<=65535;t++)e[t]=t;return e}get length(){return 65536}get isIdentityCMap(){(0,r.unreachable)("should not access .isIdentityCMap")}}t.IdentityCMap=IdentityCMap;const u=function BinaryCMapReaderClosure(){function hexToInt(e,t){let a=0;for(let r=0;r<=t;r++)a=a<<8|e[r];return a>>>0}function hexToStr(e,t){return 1===t?String.fromCharCode(e[0],e[1]):3===t?String.fromCharCode(e[0],e[1],e[2],e[3]):String.fromCharCode.apply(null,e.subarray(0,t+1))}function addHex(e,t,a){let r=0;for(let n=a;n>=0;n--){r+=e[n]+t[n];e[n]=255&r;r>>=8}}function incHex(e,t){let a=1;for(let r=t;r>=0&&a>0;r--){a+=e[r];e[r]=255&a;a>>=8}}const e=16;class BinaryCMapStream{constructor(e){this.buffer=e;this.pos=0;this.end=e.length;this.tmpBuf=new Uint8Array(19)}readByte(){return this.pos>=this.end?-1:this.buffer[this.pos++]}readNumber(){let e,t=0;do{const a=this.readByte();if(a<0)throw new r.FormatError("unexpected EOF in bcmap");e=!(128&a);t=t<<7|127&a}while(!e);return t}readSigned(){const e=this.readNumber();return 1&e?~(e>>>1):e>>>1}readHex(e,t){e.set(this.buffer.subarray(this.pos,this.pos+t+1));this.pos+=t+1}readHexNumber(e,t){let a;const n=this.tmpBuf;let i=0;do{const e=this.readByte();if(e<0)throw new r.FormatError("unexpected EOF in bcmap");a=!(128&e);n[i++]=127&e}while(!a);let s=t,o=0,c=0;for(;s>=0;){for(;c<8&&n.length>0;){o|=n[--i]<>=8;c-=8}}readHexSigned(e,t){this.readHexNumber(e,t);const a=1&e[t]?255:0;let r=0;for(let n=0;n<=t;n++){r=(1&r)<<8|e[n];e[n]=r>>1^a}}readString(){const e=this.readNumber();let t="";for(let a=0;a=0;){const t=f>>5;if(7===t){switch(31&f){case 0:n.readString();break;case 1:s=n.readString()}continue}const r=!!(16&f),i=15&f;if(i+1>e)throw new Error("BinaryCMapReader.process: Invalid dataSize.");const g=1,p=n.readNumber();switch(t){case 0:n.readHex(o,i);n.readHexNumber(c,i);addHex(c,o,i);a.addCodespaceRange(i+1,hexToInt(o,i),hexToInt(c,i));for(let e=1;e>>0}function expectString(e){if("string"!=typeof e)throw new r.FormatError("Malformed CMap: expected string.")}function expectInt(e){if(!Number.isInteger(e))throw new r.FormatError("Malformed CMap: expected int.")}function parseBfChar(e,t){for(;;){let a=t.getObj();if(a===n.EOF)break;if((0,n.isCmd)(a,"endbfchar"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectString(a);const i=a;e.mapOne(r,i)}}function parseBfRange(e,t){for(;;){let a=t.getObj();if(a===n.EOF)break;if((0,n.isCmd)(a,"endbfrange"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectString(a);const i=strToInt(a);a=t.getObj();if(Number.isInteger(a)||"string"==typeof a){const t=Number.isInteger(a)?String.fromCharCode(a):a;e.mapBfRange(r,i,t)}else{if(!(0,n.isCmd)(a,"["))break;{a=t.getObj();const s=[];for(;!(0,n.isCmd)(a,"]")&&a!==n.EOF;){s.push(a);a=t.getObj()}e.mapBfRangeToArray(r,i,s)}}}throw new r.FormatError("Invalid bf range.")}function parseCidChar(e,t){for(;;){let a=t.getObj();if(a===n.EOF)break;if((0,n.isCmd)(a,"endcidchar"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectInt(a);const i=a;e.mapOne(r,i)}}function parseCidRange(e,t){for(;;){let a=t.getObj();if(a===n.EOF)break;if((0,n.isCmd)(a,"endcidrange"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectString(a);const i=strToInt(a);a=t.getObj();expectInt(a);const s=a;e.mapCidRange(r,i,s)}}function parseCodespaceRange(e,t){for(;;){let a=t.getObj();if(a===n.EOF)break;if((0,n.isCmd)(a,"endcodespacerange"))return;if("string"!=typeof a)break;const r=strToInt(a);a=t.getObj();if("string"!=typeof a)break;const i=strToInt(a);e.addCodespaceRange(a.length,r,i)}throw new r.FormatError("Invalid codespace range.")}function parseWMode(e,t){const a=t.getObj();Number.isInteger(a)&&(e.vertical=!!a)}function parseCMapName(e,t){const a=t.getObj();a instanceof n.Name&&(e.name=a.name)}async function parseCMap(e,t,a,i){let s,c;e:for(;;)try{const a=t.getObj();if(a===n.EOF)break;if(a instanceof n.Name){"WMode"===a.name?parseWMode(e,t):"CMapName"===a.name&&parseCMapName(e,t);s=a}else if(a instanceof n.Cmd)switch(a.cmd){case"endcmap":break e;case"usecmap":s instanceof n.Name&&(c=s.name);break;case"begincodespacerange":parseCodespaceRange(e,t);break;case"beginbfchar":parseBfChar(e,t);break;case"begincidchar":parseCidChar(e,t);break;case"beginbfrange":parseBfRange(e,t);break;case"begincidrange":parseCidRange(e,t)}}catch(e){if(e instanceof o.MissingDataException)throw e;(0,r.warn)("Invalid cMap data: "+e);continue}!i&&c&&(i=c);return i?extendCMap(e,a,i):e}async function extendCMap(e,t,a){e.useCMap=await createBuiltInCMap(a,t);if(0===e.numCodespaceRanges){const t=e.useCMap.codespaceRanges;for(let a=0;aextendCMap(i,t,e)));if(n===r.CMapCompressionType.NONE){const e=new s.Lexer(new c.Stream(a));return parseCMap(i,e,t,null)}throw new Error(`Invalid CMap "compressionType" value: ${n}`)}return{async create(e){const t=e.encoding,a=e.fetchBuiltInCMap,r=e.useCMap;if(t instanceof n.Name)return createBuiltInCMap(t.name,a);if(t instanceof i.BaseStream){const e=await parseCMap(new CMap,new s.Lexer(t),a,r);return e.isIdentityCMap?createBuiltInCMap(e.name,a):e}throw new Error("Encoding required.")}}}();t.CMapFactory=d},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Parser=t.Linearization=t.Lexer=void 0;var r=a(2),n=a(3),i=a(4),s=a(16),o=a(18),c=a(19),l=a(21),h=a(22),u=a(25),d=a(27),f=a(29),g=a(8),p=a(30),m=a(31);class Parser{constructor({lexer:e,xref:t,allowStreams:a=!1,recoveryMode:r=!1}){this.lexer=e;this.xref=t;this.allowStreams=a;this.recoveryMode=r;this.imageCache=Object.create(null);this._imageId=0;this.refill()}refill(){this.buf1=this.lexer.getObj();this.buf2=this.lexer.getObj()}shift(){if(this.buf2 instanceof n.Cmd&&"ID"===this.buf2.cmd){this.buf1=this.buf2;this.buf2=null}else{this.buf1=this.buf2;this.buf2=this.lexer.getObj()}}tryShift(){try{this.shift();return!0}catch(e){if(e instanceof i.MissingDataException)throw e;return!1}}getObj(e=null){const t=this.buf1;this.shift();if(t instanceof n.Cmd)switch(t.cmd){case"BI":return this.makeInlineImage(e);case"[":const a=[];for(;!(0,n.isCmd)(this.buf1,"]")&&this.buf1!==n.EOF;)a.push(this.getObj(e));if(this.buf1===n.EOF){if(this.recoveryMode)return a;throw new i.ParserEOFException("End of file inside array.")}this.shift();return a;case"<<":const s=new n.Dict(this.xref);for(;!(0,n.isCmd)(this.buf1,">>")&&this.buf1!==n.EOF;){if(!(this.buf1 instanceof n.Name)){(0,r.info)("Malformed dictionary: key must be a name object");this.shift();continue}const t=this.buf1.name;this.shift();if(this.buf1===n.EOF)break;s.set(t,this.getObj(e))}if(this.buf1===n.EOF){if(this.recoveryMode)return s;throw new i.ParserEOFException("End of file inside dictionary.")}if((0,n.isCmd)(this.buf2,"stream"))return this.allowStreams?this.makeStream(s,e):s;this.shift();return s;default:return t}if(Number.isInteger(t)){if(Number.isInteger(this.buf1)&&(0,n.isCmd)(this.buf2,"R")){const e=n.Ref.get(t,this.buf1);this.shift();this.shift();return e}return t}return"string"==typeof t&&e?e.decryptString(t):t}findDefaultInlineStreamEnd(e){const t=this.lexer,a=e.pos;let s,o,c=0;for(;-1!==(s=e.getByte());)if(0===c)c=69===s?1:0;else if(1===c)c=73===s?2:0;else if(32===s||10===s||13===s){o=e.pos;const a=e.peekBytes(10);for(let e=0,t=a.length;e127))){c=0;break}}if(2!==c)continue;if(t.knownCommands){const e=t.peekObj();e instanceof n.Cmd&&!t.knownCommands[e.cmd]&&(c=0)}else(0,r.warn)("findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.");if(2===c)break}else c=0;if(-1===s){(0,r.warn)("findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker");if(o){(0,r.warn)('... trying to recover by using the last "EI" occurrence.');e.skip(-(e.pos-o))}}let l=4;e.skip(-l);s=e.peekByte();e.skip(l);(0,i.isWhiteSpace)(s)||l--;return e.pos-l-a}findDCTDecodeInlineStreamEnd(e){const t=e.pos;let a,n,i=!1;for(;-1!==(a=e.getByte());)if(255===a){switch(e.getByte()){case 0:break;case 255:e.skip(-1);break;case 217:i=!0;break;case 192:case 193:case 194:case 195:case 197:case 198:case 199:case 201:case 202:case 203:case 205:case 206:case 207:case 196:case 204:case 218:case 219:case 220:case 221:case 222:case 223:case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:case 239:case 254:n=e.getUint16();n>2?e.skip(n-2):e.skip(-2)}if(i)break}const s=e.pos-t;if(-1===a){(0,r.warn)("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead.");e.skip(-s);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return s}findASCII85DecodeInlineStreamEnd(e){const t=e.pos;let a;for(;-1!==(a=e.getByte());)if(126===a){const t=e.pos;a=e.peekByte();for(;(0,i.isWhiteSpace)(a);){e.skip();a=e.peekByte()}if(62===a){e.skip();break}if(e.pos>t){const t=e.peekBytes(2);if(69===t[0]&&73===t[1])break}}const n=e.pos-t;if(-1===a){(0,r.warn)("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead.");e.skip(-n);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return n}findASCIIHexDecodeInlineStreamEnd(e){const t=e.pos;let a;for(;-1!==(a=e.getByte())&&62!==a;);const n=e.pos-t;if(-1===a){(0,r.warn)("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead.");e.skip(-n);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return n}inlineStreamSkipEI(e){let t,a=0;for(;-1!==(t=e.getByte());)if(0===a)a=69===t?1:0;else if(1===a)a=73===t?2:0;else if(2===a)break}makeInlineImage(e){const t=this.lexer,a=t.stream,i=Object.create(null);let s;for(;!(0,n.isCmd)(this.buf1,"ID")&&this.buf1!==n.EOF;){if(!(this.buf1 instanceof n.Name))throw new r.FormatError("Dictionary key must be a name object");const t=this.buf1.name;this.shift();if(this.buf1===n.EOF)break;i[t]=this.getObj(e)}-1!==t.beginInlineImagePos&&(s=a.pos-t.beginInlineImagePos);const o=this.xref.fetchIfRef(i.F||i.Filter);let c;if(o instanceof n.Name)c=o.name;else if(Array.isArray(o)){const e=this.xref.fetchIfRef(o[0]);e instanceof n.Name&&(c=e.name)}const l=a.pos;let h,u;switch(c){case"DCT":case"DCTDecode":h=this.findDCTDecodeInlineStreamEnd(a);break;case"A85":case"ASCII85Decode":h=this.findASCII85DecodeInlineStreamEnd(a);break;case"AHx":case"ASCIIHexDecode":h=this.findASCIIHexDecodeInlineStreamEnd(a);break;default:h=this.findDefaultInlineStreamEnd(a)}if(h<1e3&&s>0){const e=a.pos;a.pos=t.beginInlineImagePos;u=function getInlineImageCacheKey(e){const t=[],a=e.length;let r=0;for(;r=r){a.pos+=s;return a.pos-e}s++}a.pos+=i}return-1}makeStream(e,t){const a=this.lexer;let s=a.stream;a.skipToNextLine();const o=s.pos-1;let c=e.get("Length");if(!Number.isInteger(c)){(0,r.info)(`Bad length "${c&&c.toString()}" in stream.`);c=0}s.pos=o+c;a.nextChar();if(this.tryShift()&&(0,n.isCmd)(this.buf2,"endstream"))this.shift();else{const e=new Uint8Array([101,110,100,115,116,114,101,97,109]);let t=this._findStreamLength(o,e);if(t<0){const a=1;for(let n=1;n<=a;n++){const a=e.length-n,c=e.slice(0,a),l=this._findStreamLength(o,c);if(l>=0){const e=s.peekBytes(a+1)[a];if(!(0,i.isWhiteSpace)(e))break;(0,r.info)(`Found "${(0,r.bytesToString)(c)}" when searching for endstream command.`);t=l;break}}if(t<0)throw new r.FormatError("Missing endstream command.")}c=t;a.nextChar();this.shift();this.shift()}this.shift();s=s.makeSubStream(o,c,e);t&&(s=t.createStream(s,c));s=this.filter(s,e,c);s.dict=e;return s}filter(e,t,a){let i=t.get("F","Filter"),s=t.get("DP","DecodeParms");if(i instanceof n.Name){Array.isArray(s)&&(0,r.warn)("/DecodeParms should not be an Array, when /Filter is a Name.");return this.makeFilter(e,i.name,a,s)}let o=a;if(Array.isArray(i)){const t=i,a=s;for(let c=0,l=t.length;c=48&&e<=57?15&e:e>=65&&e<=70||e>=97&&e<=102?9+(15&e):-1}class Lexer{constructor(e,t=null){this.stream=e;this.nextChar();this.strBuf=[];this.knownCommands=t;this._hexStringNumWarn=0;this.beginInlineImagePos=-1}nextChar(){return this.currentChar=this.stream.getByte()}peekChar(){return this.stream.peekByte()}getNumber(){let e=this.currentChar,t=!1,a=0,n=0;if(45===e){n=-1;e=this.nextChar();45===e&&(e=this.nextChar())}else if(43===e){n=1;e=this.nextChar()}if(10===e||13===e)do{e=this.nextChar()}while(10===e||13===e);if(46===e){a=10;e=this.nextChar()}if(e<48||e>57){const t=`Invalid number: ${String.fromCharCode(e)} (charCode ${e})`;if((0,i.isWhiteSpace)(e)||-1===e){(0,r.info)(`Lexer.getNumber - "${t}".`);return 0}throw new r.FormatError(t)}n=n||1;let s=e-48,o=0,c=1;for(;(e=this.nextChar())>=0;)if(e>=48&&e<=57){const r=e-48;if(t)o=10*o+r;else{0!==a&&(a*=10);s=10*s+r}}else if(46===e){if(0!==a)break;a=1}else if(45===e)(0,r.warn)("Badly formatted number: minus sign in the middle");else{if(69!==e&&101!==e)break;e=this.peekChar();if(43===e||45===e){c=45===e?-1:1;this.nextChar()}else if(e<48||e>57)break;t=!0}0!==a&&(s/=a);t&&(s*=10**(c*o));return n*s}getString(){let e=1,t=!1;const a=this.strBuf;a.length=0;let n=this.nextChar();for(;;){let i=!1;switch(0|n){case-1:(0,r.warn)("Unterminated string");t=!0;break;case 40:++e;a.push("(");break;case 41:if(0==--e){this.nextChar();t=!0}else a.push(")");break;case 92:n=this.nextChar();switch(n){case-1:(0,r.warn)("Unterminated string");t=!0;break;case 110:a.push("\n");break;case 114:a.push("\r");break;case 116:a.push("\t");break;case 98:a.push("\b");break;case 102:a.push("\f");break;case 92:case 40:case 41:a.push(String.fromCharCode(n));break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:let e=15&n;n=this.nextChar();i=!0;if(n>=48&&n<=55){e=(e<<3)+(15&n);n=this.nextChar();if(n>=48&&n<=55){i=!1;e=(e<<3)+(15&n)}}a.push(String.fromCharCode(e));break;case 13:10===this.peekChar()&&this.nextChar();break;case 10:break;default:a.push(String.fromCharCode(n))}break;default:a.push(String.fromCharCode(n))}if(t)break;i||(n=this.nextChar())}return a.join("")}getName(){let e,t;const a=this.strBuf;a.length=0;for(;(e=this.nextChar())>=0&&!b[e];)if(35===e){e=this.nextChar();if(b[e]){(0,r.warn)("Lexer_getName: NUMBER SIGN (#) should be followed by a hexadecimal number.");a.push("#");break}const n=toHexDigit(e);if(-1!==n){t=e;e=this.nextChar();const i=toHexDigit(e);if(-1===i){(0,r.warn)(`Lexer_getName: Illegal digit (${String.fromCharCode(e)}) in hexadecimal number.`);a.push("#",String.fromCharCode(t));if(b[e])break;a.push(String.fromCharCode(e));continue}a.push(String.fromCharCode(n<<4|i))}else a.push("#",String.fromCharCode(e))}else a.push(String.fromCharCode(e));a.length>127&&(0,r.warn)(`Name token is longer than allowed by the spec: ${a.length}`);return n.Name.get(a.join(""))}_hexStringWarn(e){5!=this._hexStringNumWarn++?this._hexStringNumWarn>5||(0,r.warn)(`getHexString - ignoring invalid character: ${e}`):(0,r.warn)("getHexString - ignoring additional invalid characters.")}getHexString(){const e=this.strBuf;e.length=0;let t,a,n=this.currentChar,i=!0;this._hexStringNumWarn=0;for(;;){if(n<0){(0,r.warn)("Unterminated hex string");break}if(62===n){this.nextChar();break}if(1!==b[n]){if(i){t=toHexDigit(n);if(-1===t){this._hexStringWarn(n);n=this.nextChar();continue}}else{a=toHexDigit(n);if(-1===a){this._hexStringWarn(n);n=this.nextChar();continue}e.push(String.fromCharCode(t<<4|a))}i=!i;n=this.nextChar()}else n=this.nextChar()}return e.join("")}getObj(){let e=!1,t=this.currentChar;for(;;){if(t<0)return n.EOF;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(1!==b[t])break;t=this.nextChar()}switch(0|t){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return this.getNumber();case 40:return this.getString();case 47:return this.getName();case 91:this.nextChar();return n.Cmd.get("[");case 93:this.nextChar();return n.Cmd.get("]");case 60:t=this.nextChar();if(60===t){this.nextChar();return n.Cmd.get("<<")}return this.getHexString();case 62:t=this.nextChar();if(62===t){this.nextChar();return n.Cmd.get(">>")}return n.Cmd.get(">");case 123:this.nextChar();return n.Cmd.get("{");case 125:this.nextChar();return n.Cmd.get("}");case 41:this.nextChar();throw new r.FormatError(`Illegal character: ${t}`)}let a=String.fromCharCode(t);if(t<32||t>127){const e=this.peekChar();if(e>=32&&e<=127){this.nextChar();return n.Cmd.get(a)}}const i=this.knownCommands;let s=i&&void 0!==i[a];for(;(t=this.nextChar())>=0&&!b[t];){const e=a+String.fromCharCode(t);if(s&&void 0===i[e])break;if(128===a.length)throw new r.FormatError(`Command token too long: ${a.length}`);a=e;s=i&&void 0!==i[a]}if("true"===a)return!0;if("false"===a)return!1;if("null"===a)return null;"BI"===a&&(this.beginInlineImagePos=this.stream.pos);return n.Cmd.get(a)}peekObj(){const e=this.stream.pos,t=this.currentChar,a=this.beginInlineImagePos;let n;try{n=this.getObj()}catch(e){if(e instanceof i.MissingDataException)throw e;(0,r.warn)(`peekObj: ${e}`)}this.stream.pos=e;this.currentChar=t;this.beginInlineImagePos=a;return n}skipToNextLine(){let e=this.currentChar;for(;e>=0;){if(13===e){e=this.nextChar();10===e&&this.nextChar();break}if(10===e){this.nextChar();break}e=this.nextChar()}}}t.Lexer=Lexer;t.Linearization=class Linearization{static create(e){function getInt(e,t,a=!1){const r=e.get(t);if(Number.isInteger(r)&&(a?r>=0:r>0))return r;throw new Error(`The "${t}" parameter in the linearization dictionary is invalid.`)}const t=new Parser({lexer:new Lexer(e),xref:null}),a=t.getObj(),r=t.getObj(),i=t.getObj(),s=t.getObj();let o,c;if(!(Number.isInteger(a)&&Number.isInteger(r)&&(0,n.isCmd)(i,"obj")&&s instanceof n.Dict&&"number"==typeof(o=s.get("Linearized"))&&o>0))return null;if((c=getInt(s,"L"))!==e.length)throw new Error('The "L" parameter in the linearization dictionary does not equal the stream length.');return{length:c,hints:function getHints(e){const t=e.get("H");let a;if(Array.isArray(t)&&(2===(a=t.length)||4===a)){for(let e=0;e0))throw new Error(`Hint (${e}) in the linearization dictionary is invalid.`)}return t}throw new Error("Hint array in the linearization dictionary is invalid.")}(s),objectNumberFirst:getInt(s,"O"),endFirst:getInt(s,"E"),numPages:getInt(s,"N"),mainXRefEntriesOffset:getInt(s,"T"),pageFirst:s.has("P")?getInt(s,"P",!0):0}}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Ascii85Stream=void 0;var r=a(17),n=a(4);class Ascii85Stream extends r.DecodeStream{constructor(e,t){t&&(t*=.8);super(t);this.str=e;this.dict=e.dict;this.input=new Uint8Array(5)}readBlock(){const e=this.str;let t=e.getByte();for(;(0,n.isWhiteSpace)(t);)t=e.getByte();if(-1===t||126===t){this.eof=!0;return}const a=this.bufferLength;let r,i;if(122===t){r=this.ensureBuffer(a+4);for(i=0;i<4;++i)r[a+i]=0;this.bufferLength+=4}else{const s=this.input;s[0]=t;for(i=1;i<5;++i){t=e.getByte();for(;(0,n.isWhiteSpace)(t);)t=e.getByte();s[i]=t;if(-1===t||126===t)break}r=this.ensureBuffer(a+i-1);this.bufferLength+=i-1;if(i<5){for(;i<5;++i)s[i]=117;this.eof=!0}let o=0;for(i=0;i<5;++i)o=85*o+(s[i]-33);for(i=3;i>=0;--i){r[a+i]=255&o;o>>=8}}}}t.Ascii85Stream=Ascii85Stream},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.StreamsSequenceStream=t.DecodeStream=void 0;var r=a(5),n=a(8);const i=new Uint8Array(0);class DecodeStream extends r.BaseStream{constructor(e){super();this._rawMinBufferLength=e||0;this.pos=0;this.bufferLength=0;this.eof=!1;this.buffer=i;this.minBufferLength=512;if(e)for(;this.minBufferLengthr&&(a=r)}else{for(;!this.eof;)this.readBlock();a=this.bufferLength}this.pos=a;return this.buffer.subarray(t,a)}reset(){this.pos=0}makeSubStream(e,t,a=null){if(void 0===t)for(;!this.eof;)this.readBlock();else{const a=e+t;for(;this.bufferLength<=a&&!this.eof;)this.readBlock()}return new n.Stream(this.buffer,e,t,a)}getBaseStreams(){return this.str?this.str.getBaseStreams():null}}t.DecodeStream=DecodeStream;t.StreamsSequenceStream=class StreamsSequenceStream extends DecodeStream{constructor(e,t=null){let a=0;for(const t of e)a+=t instanceof DecodeStream?t._rawMinBufferLength:t.length;super(a);this.streams=e;this._onError=t}readBlock(){const e=this.streams;if(0===e.length){this.eof=!0;return}const t=e.shift();let a;try{a=t.getBytes()}catch(e){if(this._onError){this._onError(e,t.dict&&t.dict.objId);return}throw e}const r=this.bufferLength,n=r+a.length;this.ensureBuffer(n).set(a,r);this.bufferLength=n}getBaseStreams(){const e=[];for(const t of this.streams){const a=t.getBaseStreams();a&&e.push(...a)}return e.length>0?e:null}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.AsciiHexStream=void 0;var r=a(17);class AsciiHexStream extends r.DecodeStream{constructor(e,t){t&&(t*=.5);super(t);this.str=e;this.dict=e.dict;this.firstDigit=-1}readBlock(){const e=this.str.getBytes(8e3);if(!e.length){this.eof=!0;return}const t=e.length+1>>1,a=this.ensureBuffer(this.bufferLength+t);let r=this.bufferLength,n=this.firstDigit;for(const t of e){let e;if(t>=48&&t<=57)e=15&t;else{if(!(t>=65&&t<=70||t>=97&&t<=102)){if(62===t){this.eof=!0;break}continue}e=9+(15&t)}if(n<0)n=e;else{a[r++]=n<<4|e;n=-1}}if(n>=0&&this.eof){a[r++]=n<<4;n=-1}this.firstDigit=n;this.bufferLength=r}}t.AsciiHexStream=AsciiHexStream},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CCITTFaxStream=void 0;var r=a(20),n=a(17),i=a(3);class CCITTFaxStream extends n.DecodeStream{constructor(e,t,a){super(t);this.str=e;this.dict=e.dict;a instanceof i.Dict||(a=i.Dict.empty);const n={next:()=>e.getByte()};this.ccittFaxDecoder=new r.CCITTFaxDecoder(n,{K:a.get("K"),EndOfLine:a.get("EndOfLine"),EncodedByteAlign:a.get("EncodedByteAlign"),Columns:a.get("Columns"),Rows:a.get("Rows"),EndOfBlock:a.get("EndOfBlock"),BlackIs1:a.get("BlackIs1")})}readBlock(){for(;!this.eof;){const e=this.ccittFaxDecoder.readNextChar();if(-1===e){this.eof=!0;return}this.ensureBuffer(this.bufferLength+1);this.buffer[this.bufferLength++]=e}}}t.CCITTFaxStream=CCITTFaxStream},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CCITTFaxDecoder=void 0;var r=a(2);const n=-1,i=[[-1,-1],[-1,-1],[7,8],[7,7],[6,6],[6,6],[6,5],[6,5],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2]],s=[[-1,-1],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[12,1984],[12,2048],[12,2112],[12,2176],[12,2240],[12,2304],[11,1856],[11,1856],[11,1920],[11,1920],[12,2368],[12,2432],[12,2496],[12,2560]],o=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[8,29],[8,29],[8,30],[8,30],[8,45],[8,45],[8,46],[8,46],[7,22],[7,22],[7,22],[7,22],[7,23],[7,23],[7,23],[7,23],[8,47],[8,47],[8,48],[8,48],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[7,20],[7,20],[7,20],[7,20],[8,33],[8,33],[8,34],[8,34],[8,35],[8,35],[8,36],[8,36],[8,37],[8,37],[8,38],[8,38],[7,19],[7,19],[7,19],[7,19],[8,31],[8,31],[8,32],[8,32],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[8,53],[8,53],[8,54],[8,54],[7,26],[7,26],[7,26],[7,26],[8,39],[8,39],[8,40],[8,40],[8,41],[8,41],[8,42],[8,42],[8,43],[8,43],[8,44],[8,44],[7,21],[7,21],[7,21],[7,21],[7,28],[7,28],[7,28],[7,28],[8,61],[8,61],[8,62],[8,62],[8,63],[8,63],[8,0],[8,0],[8,320],[8,320],[8,384],[8,384],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[7,27],[7,27],[7,27],[7,27],[8,59],[8,59],[8,60],[8,60],[9,1472],[9,1536],[9,1600],[9,1728],[7,18],[7,18],[7,18],[7,18],[7,24],[7,24],[7,24],[7,24],[8,49],[8,49],[8,50],[8,50],[8,51],[8,51],[8,52],[8,52],[7,25],[7,25],[7,25],[7,25],[8,55],[8,55],[8,56],[8,56],[8,57],[8,57],[8,58],[8,58],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[8,448],[8,448],[8,512],[8,512],[9,704],[9,768],[8,640],[8,640],[8,576],[8,576],[9,832],[9,896],[9,960],[9,1024],[9,1088],[9,1152],[9,1216],[9,1280],[9,1344],[9,1408],[7,256],[7,256],[7,256],[7,256],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7]],c=[[-1,-1],[-1,-1],[12,-2],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[11,1792],[11,1792],[12,1984],[12,1984],[12,2048],[12,2048],[12,2112],[12,2112],[12,2176],[12,2176],[12,2240],[12,2240],[12,2304],[12,2304],[11,1856],[11,1856],[11,1856],[11,1856],[11,1920],[11,1920],[11,1920],[11,1920],[12,2368],[12,2368],[12,2432],[12,2432],[12,2496],[12,2496],[12,2560],[12,2560],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[12,52],[12,52],[13,640],[13,704],[13,768],[13,832],[12,55],[12,55],[12,56],[12,56],[13,1280],[13,1344],[13,1408],[13,1472],[12,59],[12,59],[12,60],[12,60],[13,1536],[13,1600],[11,24],[11,24],[11,24],[11,24],[11,25],[11,25],[11,25],[11,25],[13,1664],[13,1728],[12,320],[12,320],[12,384],[12,384],[12,448],[12,448],[13,512],[13,576],[12,53],[12,53],[12,54],[12,54],[13,896],[13,960],[13,1024],[13,1088],[13,1152],[13,1216],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64]],l=[[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[11,23],[11,23],[12,50],[12,51],[12,44],[12,45],[12,46],[12,47],[12,57],[12,58],[12,61],[12,256],[10,16],[10,16],[10,16],[10,16],[10,17],[10,17],[10,17],[10,17],[12,48],[12,49],[12,62],[12,63],[12,30],[12,31],[12,32],[12,33],[12,40],[12,41],[11,22],[11,22],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[12,128],[12,192],[12,26],[12,27],[12,28],[12,29],[11,19],[11,19],[11,20],[11,20],[12,34],[12,35],[12,36],[12,37],[12,38],[12,39],[11,21],[11,21],[12,42],[12,43],[10,0],[10,0],[10,0],[10,0],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12]],h=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[6,9],[6,8],[5,7],[5,7],[4,6],[4,6],[4,6],[4,6],[4,5],[4,5],[4,5],[4,5],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2]];t.CCITTFaxDecoder=class CCITTFaxDecoder{constructor(e,t={}){if(!e||"function"!=typeof e.next)throw new Error('CCITTFaxDecoder - invalid "source" parameter.');this.source=e;this.eof=!1;this.encoding=t.K||0;this.eoline=t.EndOfLine||!1;this.byteAlign=t.EncodedByteAlign||!1;this.columns=t.Columns||1728;this.rows=t.Rows||0;let a,r=t.EndOfBlock;null==r&&(r=!0);this.eoblock=r;this.black=t.BlackIs1||!1;this.codingLine=new Uint32Array(this.columns+1);this.refLine=new Uint32Array(this.columns+2);this.codingLine[0]=this.columns;this.codingPos=0;this.row=0;this.nextLine2D=this.encoding<0;this.inputBits=0;this.inputBuf=0;this.outputBits=0;this.rowsDone=!1;for(;0===(a=this._lookBits(12));)this._eatBits(1);1===a&&this._eatBits(12);if(this.encoding>0){this.nextLine2D=!this._lookBits(1);this._eatBits(1)}}readNextChar(){if(this.eof)return-1;const e=this.refLine,t=this.codingLine,a=this.columns;let i,s,o,c,l;if(0===this.outputBits){this.rowsDone&&(this.eof=!0);if(this.eof)return-1;this.err=!1;let o,l,h;if(this.nextLine2D){for(c=0;t[c]=64);do{l+=h=this._getWhiteCode()}while(h>=64)}else{do{o+=h=this._getWhiteCode()}while(h>=64);do{l+=h=this._getBlackCode()}while(h>=64)}this._addPixels(t[this.codingPos]+o,s);t[this.codingPos]0?--i:++i;for(;e[i]<=t[this.codingPos]&&e[i]0?--i:++i;for(;e[i]<=t[this.codingPos]&&e[i]0?--i:++i;for(;e[i]<=t[this.codingPos]&&e[i]=64);else do{o+=h=this._getWhiteCode()}while(h>=64);this._addPixels(t[this.codingPos]+o,s);s^=1}}let u=!1;this.byteAlign&&(this.inputBits&=-8);if(this.eoblock||this.row!==this.rows-1){o=this._lookBits(12);if(this.eoline)for(;o!==n&&1!==o;){this._eatBits(1);o=this._lookBits(12)}else for(;0===o;){this._eatBits(1);o=this._lookBits(12)}if(1===o){this._eatBits(12);u=!0}else o===n&&(this.eof=!0)}else this.rowsDone=!0;if(!this.eof&&this.encoding>0&&!this.rowsDone){this.nextLine2D=!this._lookBits(1);this._eatBits(1)}if(this.eoblock&&u&&this.byteAlign){o=this._lookBits(12);if(1===o){this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1)}if(this.encoding>=0)for(c=0;c<4;++c){o=this._lookBits(12);1!==o&&(0,r.info)("bad rtc code: "+o);this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1)}}this.eof=!0}}else if(this.err&&this.eoline){for(;;){o=this._lookBits(13);if(o===n){this.eof=!0;return-1}if(o>>1==1)break;this._eatBits(1)}this._eatBits(12);if(this.encoding>0){this._eatBits(1);this.nextLine2D=!(1&o)}}t[0]>0?this.outputBits=t[this.codingPos=0]:this.outputBits=t[this.codingPos=1];this.row++}if(this.outputBits>=8){l=1&this.codingPos?0:255;this.outputBits-=8;if(0===this.outputBits&&t[this.codingPos]o){l<<=o;1&this.codingPos||(l|=255>>8-o);this.outputBits-=o;o=0}else{l<<=this.outputBits;1&this.codingPos||(l|=255>>8-this.outputBits);o-=this.outputBits;this.outputBits=0;if(t[this.codingPos]0){l<<=o;o=0}}}while(o)}this.black&&(l^=255);return l}_addPixels(e,t){const a=this.codingLine;let n=this.codingPos;if(e>a[n]){if(e>this.columns){(0,r.info)("row is wrong length");this.err=!0;e=this.columns}1&n^t&&++n;a[n]=e}this.codingPos=n}_addPixelsNeg(e,t){const a=this.codingLine;let n=this.codingPos;if(e>a[n]){if(e>this.columns){(0,r.info)("row is wrong length");this.err=!0;e=this.columns}1&n^t&&++n;a[n]=e}else if(e0&&e=i){const t=a[e-i];if(t[0]===r){this._eatBits(r);return[!0,t[1],!0]}}}return[!1,0,!1]}_getTwoDimCode(){let e,t=0;if(this.eoblock){t=this._lookBits(7);e=i[t];if(e&&e[0]>0){this._eatBits(e[0]);return e[1]}}else{const e=this._findTableCode(1,7,i);if(e[0]&&e[2])return e[1]}(0,r.info)("Bad two dim code");return n}_getWhiteCode(){let e,t=0;if(this.eoblock){t=this._lookBits(12);if(t===n)return 1;e=t>>5==0?s[t]:o[t>>3];if(e[0]>0){this._eatBits(e[0]);return e[1]}}else{let e=this._findTableCode(1,9,o);if(e[0])return e[1];e=this._findTableCode(11,12,s);if(e[0])return e[1]}(0,r.info)("bad white code");this._eatBits(1);return 1}_getBlackCode(){let e,t;if(this.eoblock){e=this._lookBits(13);if(e===n)return 1;t=e>>7==0?c[e]:e>>9==0&&e>>7!=0?l[(e>>1)-64]:h[e>>7];if(t[0]>0){this._eatBits(t[0]);return t[1]}}else{let e=this._findTableCode(2,6,h);if(e[0])return e[1];e=this._findTableCode(7,12,l,64);if(e[0])return e[1];e=this._findTableCode(10,13,c);if(e[0])return e[1]}(0,r.info)("bad black code");this._eatBits(1);return 1}_lookBits(e){let t;for(;this.inputBits>16-e;this.inputBuf=this.inputBuf<<8|t;this.inputBits+=8}return this.inputBuf>>this.inputBits-e&65535>>16-e}_eatBits(e){(this.inputBits-=e)<0&&(this.inputBits=0)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.FlateStream=void 0;var r=a(17),n=a(2);const i=new Int32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),s=new Int32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]),o=new Int32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721,868353,876545]),c=[new Int32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,59e4,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306,524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321,589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315,589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328,590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9],l=[new Int32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5];class FlateStream extends r.DecodeStream{constructor(e,t){super(t);this.str=e;this.dict=e.dict;const a=e.getByte(),r=e.getByte();if(-1===a||-1===r)throw new n.FormatError(`Invalid header in flate stream: ${a}, ${r}`);if(8!=(15&a))throw new n.FormatError(`Unknown compression method in flate stream: ${a}, ${r}`);if(((a<<8)+r)%31!=0)throw new n.FormatError(`Bad FCHECK in flate stream: ${a}, ${r}`);if(32&r)throw new n.FormatError(`FDICT bit set in flate stream: ${a}, ${r}`);this.codeSize=0;this.codeBuf=0}getBits(e){const t=this.str;let a,r=this.codeSize,i=this.codeBuf;for(;r>e;this.codeSize=r-=e;return a}getCode(e){const t=this.str,a=e[0],r=e[1];let i,s=this.codeSize,o=this.codeBuf;for(;s>16,h=65535&c;if(l<1||s>l;this.codeSize=s-l;return h}generateHuffmanTable(e){const t=e.length;let a,r=0;for(a=0;ar&&(r=e[a]);const n=1<>=1}for(a=e;a>=1;if(0===u){let t;if(-1===(t=a.getByte()))throw new n.FormatError("Bad block header in flate stream");let r=t;if(-1===(t=a.getByte()))throw new n.FormatError("Bad block header in flate stream");r|=t<<8;if(-1===(t=a.getByte()))throw new n.FormatError("Bad block header in flate stream");let i=t;if(-1===(t=a.getByte()))throw new n.FormatError("Bad block header in flate stream");i|=t<<8;if(i!==(65535&~r)&&(0!==r||0!==i))throw new n.FormatError("Bad uncompressed block length in flate stream");this.codeBuf=0;this.codeSize=0;const s=this.bufferLength,o=s+r;e=this.ensureBuffer(o);this.bufferLength=o;if(0===r)-1===a.peekByte()&&(this.eof=!0);else{const t=a.getBytes(r);e.set(t,s);t.length0;)u[o++]=g}r=this.generateHuffmanTable(u.subarray(0,e));h=this.generateHuffmanTable(u.subarray(e,l))}}e=this.buffer;let d=e?e.length:0,f=this.bufferLength;for(;;){let a=this.getCode(r);if(a<256){if(f+1>=d){e=this.ensureBuffer(f+1);d=e.length}e[f++]=a;continue}if(256===a){this.bufferLength=f;return}a-=257;a=s[a];let n=a>>16;n>0&&(n=this.getBits(n));t=(65535&a)+n;a=this.getCode(h);a=o[a];n=a>>16;n>0&&(n=this.getBits(n));const i=(65535&a)+n;if(f+t>=d){e=this.ensureBuffer(f+t);d=e.length}for(let a=0;a{Object.defineProperty(t,"__esModule",{value:!0});t.Jbig2Stream=void 0;var r=a(5),n=a(17),i=a(3),s=a(23),o=a(2);class Jbig2Stream extends n.DecodeStream{constructor(e,t,a){super(t);this.stream=e;this.dict=e.dict;this.maybeLength=t;this.params=a}get bytes(){return(0,o.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(e){}readBlock(){if(this.eof)return;const e=new s.Jbig2Image,t=[];if(this.params instanceof i.Dict){const e=this.params.get("JBIG2Globals");if(e instanceof r.BaseStream){const a=e.getBytes();t.push({data:a,start:0,end:a.length})}}t.push({data:this.bytes,start:0,end:this.bytes.length});const a=e.parseChunks(t),n=a.length;for(let e=0;e{Object.defineProperty(t,"__esModule",{value:!0});t.Jbig2Image=void 0;var r=a(2),n=a(4),i=a(24),s=a(20);class Jbig2Error extends r.BaseException{constructor(e){super(`JBIG2 error: ${e}`,"Jbig2Error")}}class ContextCache{getContexts(e){return e in this?this[e]:this[e]=new Int8Array(65536)}}class DecodingContext{constructor(e,t,a){this.data=e;this.start=t;this.end=a}get decoder(){const e=new i.ArithmeticDecoder(this.data,this.start,this.end);return(0,r.shadow)(this,"decoder",e)}get contextCache(){const e=new ContextCache;return(0,r.shadow)(this,"contextCache",e)}}function decodeInteger(e,t,a){const r=e.getContexts(t);let n=1;function readBits(e){let t=0;for(let i=0;i>>0}const i=readBits(1),s=readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(32)+4436:readBits(12)+340:readBits(8)+84:readBits(6)+20:readBits(4)+4:readBits(2);let o;0===i?o=s:s>0&&(o=-s);return o>=-2147483648&&o<=2147483647?o:null}function decodeIAID(e,t,a){const r=e.getContexts("IAID");let n=1;for(let e=0;e=O&&j=T){q=q<<1&y;for(b=0;b=0&&_=0){U=N[$][_];U&&(q|=U<=e?l<<=1:l=l<<1|k[o][c]}for(p=0;p=x||c<0||c>=S?l<<=1:l=l<<1|r[o][c]}const h=v.readBit(F,l);t[s]=h}}return k}function decodeTextRegion(e,t,a,r,n,i,s,o,c,l,h,u,d,f,g,p,m,b,y){if(e&&t)throw new Jbig2Error("refinement with Huffman is not supported");const w=[];let S,x;for(S=0;S1&&(n=e?y.readBits(b):decodeInteger(k,"IAIT",C));const i=s*v+n,F=e?f.symbolIDTable.decode(y):decodeIAID(k,C,c),O=t&&(e?y.readBit():decodeInteger(k,"IARI",C));let T=o[F],M=T[0].length,E=T.length;if(O){const e=decodeInteger(k,"IARDW",C),t=decodeInteger(k,"IARDH",C);M+=e;E+=t;T=decodeRefinement(M,E,g,T,(e>>1)+decodeInteger(k,"IARDX",C),(t>>1)+decodeInteger(k,"IARDY",C),!1,p,m)}const D=i-(1&u?0:E-1),N=r-(2&u?M-1:0);let R,L,j;if(l){for(R=0;R>5&7;const h=[31&c];let u=t+6;if(7===c){l=536870911&(0,n.readUint32)(e,u-1);u+=3;let t=l+7>>3;h[0]=e[u++];for(;--t>0;)h.push(e[u++])}else if(5===c||6===c)throw new Jbig2Error("invalid referred-to flags");a.retainBits=h;let f=4;a.number<=256?f=1:a.number<=65536&&(f=2);const g=[];let p,m;for(p=0;p>>24&255;i[3]=t.height>>16&255;i[4]=t.height>>8&255;i[5]=255&t.height;for(p=u,m=e.length;p>2&3;e.huffmanDWSelector=t>>4&3;e.bitmapSizeSelector=t>>6&1;e.aggregationInstancesSelector=t>>7&1;e.bitmapCodingContextUsed=!!(256&t);e.bitmapCodingContextRetained=!!(512&t);e.template=t>>10&3;e.refinementTemplate=t>>12&1;h+=2;if(!e.huffman){l=0===e.template?4:1;o=[];for(c=0;c>2&3;u.stripSize=1<>4&3;u.transposed=!!(64&f);u.combinationOperator=f>>7&3;u.defaultPixelValue=f>>9&1;u.dsOffset=f<<17>>27;u.refinementTemplate=f>>15&1;if(u.huffman){const e=(0,n.readUint16)(r,h);h+=2;u.huffmanFS=3&e;u.huffmanDS=e>>2&3;u.huffmanDT=e>>4&3;u.huffmanRefinementDW=e>>6&3;u.huffmanRefinementDH=e>>8&3;u.huffmanRefinementDX=e>>10&3;u.huffmanRefinementDY=e>>12&3;u.huffmanRefinementSizeSelector=!!(16384&e)}if(u.refinement&&!u.refinementTemplate){o=[];for(c=0;c<2;c++){o.push({x:(0,n.readInt8)(r,h),y:(0,n.readInt8)(r,h+1)});h+=2}u.refinementAt=o}u.numberOfSymbolInstances=(0,n.readUint32)(r,h);h+=4;s=[u,a.referredTo,r,h,i];break;case 16:const g={},p=r[h++];g.mmr=!!(1&p);g.template=p>>1&3;g.patternWidth=r[h++];g.patternHeight=r[h++];g.maxPatternIndex=(0,n.readUint32)(r,h);h+=4;s=[g,a.number,r,h,i];break;case 22:case 23:const m={};m.info=readRegionSegmentInformation(r,h);h+=d;const b=r[h++];m.mmr=!!(1&b);m.template=b>>1&3;m.enableSkip=!!(8&b);m.combinationOperator=b>>4&7;m.defaultPixelValue=b>>7&1;m.gridWidth=(0,n.readUint32)(r,h);h+=4;m.gridHeight=(0,n.readUint32)(r,h);h+=4;m.gridOffsetX=4294967295&(0,n.readUint32)(r,h);h+=4;m.gridOffsetY=4294967295&(0,n.readUint32)(r,h);h+=4;m.gridVectorX=(0,n.readUint16)(r,h);h+=2;m.gridVectorY=(0,n.readUint16)(r,h);h+=2;s=[m,a.referredTo,r,h,i];break;case 38:case 39:const y={};y.info=readRegionSegmentInformation(r,h);h+=d;const w=r[h++];y.mmr=!!(1&w);y.template=w>>1&3;y.prediction=!!(8&w);if(!y.mmr){l=0===y.template?4:1;o=[];for(c=0;c>2&1;S.combinationOperator=x>>3&3;S.requiresBuffer=!!(32&x);S.combinationOperatorOverride=!!(64&x);s=[S];break;case 49:case 50:case 51:case 62:break;case 53:s=[a.number,r,h,i];break;default:throw new Jbig2Error(`segment type ${a.typeName}(${a.type}) is not implemented`)}const u="on"+a.typeName;u in t&&t[u].apply(t,s)}function processSegments(e,t){for(let a=0,r=e.length;a>3,a=new Uint8ClampedArray(t*e.height);e.defaultPixelValue&&a.fill(255);this.buffer=a}drawBitmap(e,t){const a=this.currentPageInfo,r=e.width,n=e.height,i=a.width+7>>3,s=a.combinationOperatorOverride?e.combinationOperator:a.combinationOperator,o=this.buffer,c=128>>(7&e.x);let l,h,u,d,f=e.y*i+(e.x>>3);switch(s){case 0:for(l=0;l>=1;if(!u){u=128;d++}}f+=i}break;case 2:for(l=0;l>=1;if(!u){u=128;d++}}f+=i}break;default:throw new Jbig2Error(`operator ${s} is not supported`)}}onImmediateGenericRegion(e,t,a,r){const n=e.info,i=new DecodingContext(t,a,r),s=decodeBitmap(e.mmr,n.width,n.height,e.template,e.prediction,null,e.at,i);this.drawBitmap(n,s)}onImmediateLosslessGenericRegion(){this.onImmediateGenericRegion(...arguments)}onSymbolDictionary(e,t,a,r,i,s){let o,c;if(e.huffman){o=function getSymbolDictionaryHuffmanTables(e,t,a){let r,n,i,s,o=0;switch(e.huffmanDHSelector){case 0:case 1:r=getStandardTable(e.huffmanDHSelector+4);break;case 3:r=getCustomHuffmanTable(o,t,a);o++;break;default:throw new Jbig2Error("invalid Huffman DH selector")}switch(e.huffmanDWSelector){case 0:case 1:n=getStandardTable(e.huffmanDWSelector+2);break;case 3:n=getCustomHuffmanTable(o,t,a);o++;break;default:throw new Jbig2Error("invalid Huffman DW selector")}if(e.bitmapSizeSelector){i=getCustomHuffmanTable(o,t,a);o++}else i=getStandardTable(1);s=e.aggregationInstancesSelector?getCustomHuffmanTable(o,t,a):getStandardTable(1);return{tableDeltaHeight:r,tableDeltaWidth:n,tableBitmapSize:i,tableAggregateInstances:s}}(e,a,this.customTables);c=new Reader(r,i,s)}let l=this.symbols;l||(this.symbols=l={});const h=[];for(const e of a){const t=l[e];t&&h.push(...t)}const u=new DecodingContext(r,i,s);l[t]=function decodeSymbolDictionary(e,t,a,r,i,s,o,c,l,h,u,d){if(e&&t)throw new Jbig2Error("symbol refinement with Huffman is not supported");const f=[];let g=0,p=(0,n.log2)(a.length+r);const m=u.decoder,b=u.contextCache;let y,w;if(e){y=getStandardTable(1);w=[];p=Math.max(p,1)}for(;f.length1)y=decodeTextRegion(e,t,r,g,0,n,1,a.concat(f),p,0,0,1,0,s,l,h,u,0,d);else{const e=decodeIAID(b,m,p),t=decodeInteger(b,"IARDX",m),n=decodeInteger(b,"IARDY",m);y=decodeRefinement(r,g,l,e=32){let a,r,s;switch(t){case 32:if(0===e)throw new Jbig2Error("no previous value in symbol ID table");r=n.readBits(2)+3;a=i[e-1].prefixLength;break;case 33:r=n.readBits(3)+3;a=0;break;case 34:r=n.readBits(7)+11;a=0;break;default:throw new Jbig2Error("invalid code length in symbol ID table")}for(s=0;s=0;b--){M=e?decodeMMRBitmap(T,l,h,!0):decodeBitmap(!1,l,h,a,!1,null,F,p);O[b]=M}for(E=0;E=0;y--){N^=O[y][E][D];R|=N<>8;$=d+E*f-D*g>>8;if(j>=0&&j+C<=r&&$>=0&&$+k<=i)for(b=0;b=i)){U=m[t];_=L[b];for(y=0;y=0&&e>1&7),l=1+(r>>4&7),h=[];let u,d,f=i;do{u=o.readBits(c);d=o.readBits(l);h.push(new HuffmanLine([f,u,d,0]));f+=1<>t&1;if(t<=0)this.children[a]=new HuffmanTreeNode(e);else{let r=this.children[a];r||(this.children[a]=r=new HuffmanTreeNode(null));r.buildTree(e,t-1)}}decodeNode(e){if(this.isLeaf){if(this.isOOB)return null;const t=e.readBits(this.rangeLength);return this.rangeLow+(this.isLowerRange?-t:t)}const t=this.children[e.readBit()];if(!t)throw new Jbig2Error("invalid Huffman data");return t.decodeNode(e)}}class HuffmanTable{constructor(e,t){t||this.assignPrefixCodes(e);this.rootNode=new HuffmanTreeNode(null);for(let t=0,a=e.length;t0&&this.rootNode.buildTree(a,a.prefixLength-1)}}decode(e){return this.rootNode.decodeNode(e)}assignPrefixCodes(e){const t=e.length;let a=0;for(let r=0;r=this.end)throw new Jbig2Error("end of data while reading bit");this.currentByte=this.data[this.position++];this.shift=7}const e=this.currentByte>>this.shift&1;this.shift--;return e}readBits(e){let t,a=0;for(t=e-1;t>=0;t--)a|=this.readBit()<=this.end?-1:this.data[this.position++]}}function getCustomHuffmanTable(e,t,a){let r=0;for(let n=0,i=t.length;n>a&1;a--}}if(r&&!l){const e=5;for(let t=0;t{Object.defineProperty(t,"__esModule",{value:!0});t.ArithmeticDecoder=void 0;const a=[{qe:22017,nmps:1,nlps:1,switchFlag:1},{qe:13313,nmps:2,nlps:6,switchFlag:0},{qe:6145,nmps:3,nlps:9,switchFlag:0},{qe:2753,nmps:4,nlps:12,switchFlag:0},{qe:1313,nmps:5,nlps:29,switchFlag:0},{qe:545,nmps:38,nlps:33,switchFlag:0},{qe:22017,nmps:7,nlps:6,switchFlag:1},{qe:21505,nmps:8,nlps:14,switchFlag:0},{qe:18433,nmps:9,nlps:14,switchFlag:0},{qe:14337,nmps:10,nlps:14,switchFlag:0},{qe:12289,nmps:11,nlps:17,switchFlag:0},{qe:9217,nmps:12,nlps:18,switchFlag:0},{qe:7169,nmps:13,nlps:20,switchFlag:0},{qe:5633,nmps:29,nlps:21,switchFlag:0},{qe:22017,nmps:15,nlps:14,switchFlag:1},{qe:21505,nmps:16,nlps:14,switchFlag:0},{qe:20737,nmps:17,nlps:15,switchFlag:0},{qe:18433,nmps:18,nlps:16,switchFlag:0},{qe:14337,nmps:19,nlps:17,switchFlag:0},{qe:13313,nmps:20,nlps:18,switchFlag:0},{qe:12289,nmps:21,nlps:19,switchFlag:0},{qe:10241,nmps:22,nlps:19,switchFlag:0},{qe:9217,nmps:23,nlps:20,switchFlag:0},{qe:8705,nmps:24,nlps:21,switchFlag:0},{qe:7169,nmps:25,nlps:22,switchFlag:0},{qe:6145,nmps:26,nlps:23,switchFlag:0},{qe:5633,nmps:27,nlps:24,switchFlag:0},{qe:5121,nmps:28,nlps:25,switchFlag:0},{qe:4609,nmps:29,nlps:26,switchFlag:0},{qe:4353,nmps:30,nlps:27,switchFlag:0},{qe:2753,nmps:31,nlps:28,switchFlag:0},{qe:2497,nmps:32,nlps:29,switchFlag:0},{qe:2209,nmps:33,nlps:30,switchFlag:0},{qe:1313,nmps:34,nlps:31,switchFlag:0},{qe:1089,nmps:35,nlps:32,switchFlag:0},{qe:673,nmps:36,nlps:33,switchFlag:0},{qe:545,nmps:37,nlps:34,switchFlag:0},{qe:321,nmps:38,nlps:35,switchFlag:0},{qe:273,nmps:39,nlps:36,switchFlag:0},{qe:133,nmps:40,nlps:37,switchFlag:0},{qe:73,nmps:41,nlps:38,switchFlag:0},{qe:37,nmps:42,nlps:39,switchFlag:0},{qe:21,nmps:43,nlps:40,switchFlag:0},{qe:9,nmps:44,nlps:41,switchFlag:0},{qe:5,nmps:45,nlps:42,switchFlag:0},{qe:1,nmps:45,nlps:43,switchFlag:0},{qe:22017,nmps:46,nlps:46,switchFlag:0}];t.ArithmeticDecoder=class ArithmeticDecoder{constructor(e,t,a){this.data=e;this.bp=t;this.dataEnd=a;this.chigh=e[t];this.clow=0;this.byteIn();this.chigh=this.chigh<<7&65535|this.clow>>9&127;this.clow=this.clow<<7&65535;this.ct-=7;this.a=32768}byteIn(){const e=this.data;let t=this.bp;if(255===e[t])if(e[t+1]>143){this.clow+=65280;this.ct=8}else{t++;this.clow+=e[t]<<9;this.ct=7;this.bp=t}else{t++;this.clow+=t65535){this.chigh+=this.clow>>16;this.clow&=65535}}readBit(e,t){let r=e[t]>>1,n=1&e[t];const i=a[r],s=i.qe;let o,c=this.a-s;if(this.chigh>15&1;this.clow=this.clow<<1&65535;this.ct--}while(0==(32768&c));this.a=c;e[t]=r<<1|n;return o}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.JpegStream=void 0;var r=a(17),n=a(3),i=a(26),s=a(2);class JpegStream extends r.DecodeStream{constructor(e,t,a){let r;for(;-1!==(r=e.getByte());)if(255===r){e.skip(-1);break}super(t);this.stream=e;this.dict=e.dict;this.maybeLength=t;this.params=a}get bytes(){return(0,s.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(e){}readBlock(){if(this.eof)return;const e={decodeTransform:void 0,colorTransform:void 0},t=this.dict.getArray("D","Decode");if(this.forceRGB&&Array.isArray(t)){const a=this.dict.get("BPC","BitsPerComponent")||8,r=t.length,n=new Int32Array(r);let i=!1;const s=(1<{Object.defineProperty(t,"__esModule",{value:!0});t.JpegImage=void 0;var r=a(2),n=a(4);class JpegError extends r.BaseException{constructor(e){super(`JPEG error: ${e}`,"JpegError")}}class DNLMarkerError extends r.BaseException{constructor(e,t){super(e,"DNLMarkerError");this.scanLines=t}}class EOIMarkerError extends r.BaseException{constructor(e){super(e,"EOIMarkerError")}}const i=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),s=4017,o=799,c=3406,l=2276,h=1567,u=3784,d=5793,f=2896;function buildHuffmanTable(e,t){let a,r,n=0,i=16;for(;i>0&&!e[i-1];)i--;const s=[{children:[],index:0}];let o,c=s[0];for(a=0;a0;)c=s.pop();c.index++;s.push(c);for(;s.length<=a;){s.push(o={children:[],index:0});c.children[c.index]=o.children;c=o}n++}if(a+10){b--;return m>>b&1}m=e[t++];if(255===m){const r=e[t++];if(r){if(220===r&&d){t+=2;const r=(0,n.readUint16)(e,t);t+=2;if(r>0&&r!==a.scanLines)throw new DNLMarkerError("Found DNL marker (0xFFDC) while parsing scan data",r)}else if(217===r){if(d){const e=x*(8===a.precision?8:0);if(e>0&&Math.round(a.scanLines/e)>=5)throw new DNLMarkerError("Found EOI marker (0xFFD9) while parsing scan data, possibly caused by incorrect `scanLines` parameter",e)}throw new EOIMarkerError("Found EOI marker (0xFFD9) while parsing scan data")}throw new JpegError(`unexpected marker ${(m<<8|r).toString(16)}`)}}b=7;return m>>>7}function decodeHuffman(e){let t=e;for(;;){t=t[readBit()];switch(typeof t){case"number":return t;case"object":continue}throw new JpegError("invalid huffman sequence")}}function receive(e){let t=0;for(;e>0;){t=t<<1|readBit();e--}return t}function receiveAndExtend(e){if(1===e)return 1===readBit()?1:-1;const t=receive(e);return t>=1<0){y--;return}let a=c;const r=l;for(;a<=r;){const r=decodeHuffman(e.huffmanTableAC),n=15&r,s=r>>4;if(0===n){if(s<15){y=receive(s)+(1<>4;if(0===n)if(o<15){y=receive(o)+(1<>4;if(0===r){if(s<15)break;n+=16;continue}n+=s;const o=i[n];e.blockData[t+o]=receiveAndExtend(r);n++}};let E,D,N,R,L=0;D=1===C?s[0].blocksPerLine*s[0].blocksPerColumn:f*a.mcusPerColumn;for(;L<=D;){const a=o?Math.min(D-L,o):D;if(a>0){for(v=0;v0?"unexpected":"excessive";(0,r.warn)(`decodeScan - ${e} MCU data, current marker is: ${E.invalid}`);t=E.offset}if(!(E.marker>=65488&&E.marker<=65495))break;t+=2}return t-p}function quantizeAndInverse(e,t,a){const r=e.quantizationTable,n=e.blockData;let i,g,p,m,b,y,w,S,x,C,k,v,F,O,T,M,E;if(!r)throw new JpegError("missing required Quantization Table.");for(let e=0;e<64;e+=8){x=n[t+e];C=n[t+e+1];k=n[t+e+2];v=n[t+e+3];F=n[t+e+4];O=n[t+e+5];T=n[t+e+6];M=n[t+e+7];x*=r[e];if(0!=(C|k|v|F|O|T|M)){C*=r[e+1];k*=r[e+2];v*=r[e+3];F*=r[e+4];O*=r[e+5];T*=r[e+6];M*=r[e+7];i=d*x+128>>8;g=d*F+128>>8;p=k;m=T;b=f*(C-M)+128>>8;S=f*(C+M)+128>>8;y=v<<4;w=O<<4;i=i+g+1>>1;g=i-g;E=p*u+m*h+128>>8;p=p*h-m*u+128>>8;m=E;b=b+w+1>>1;w=b-w;S=S+y+1>>1;y=S-y;i=i+m+1>>1;m=i-m;g=g+p+1>>1;p=g-p;E=b*l+S*c+2048>>12;b=b*c-S*l+2048>>12;S=E;E=y*o+w*s+2048>>12;y=y*s-w*o+2048>>12;w=E;a[e]=i+S;a[e+7]=i-S;a[e+1]=g+w;a[e+6]=g-w;a[e+2]=p+y;a[e+5]=p-y;a[e+3]=m+b;a[e+4]=m-b}else{E=d*x+512>>10;a[e]=E;a[e+1]=E;a[e+2]=E;a[e+3]=E;a[e+4]=E;a[e+5]=E;a[e+6]=E;a[e+7]=E}}for(let e=0;e<8;++e){x=a[e];C=a[e+8];k=a[e+16];v=a[e+24];F=a[e+32];O=a[e+40];T=a[e+48];M=a[e+56];if(0!=(C|k|v|F|O|T|M)){i=d*x+2048>>12;g=d*F+2048>>12;p=k;m=T;b=f*(C-M)+2048>>12;S=f*(C+M)+2048>>12;y=v;w=O;i=4112+(i+g+1>>1);g=i-g;E=p*u+m*h+2048>>12;p=p*h-m*u+2048>>12;m=E;b=b+w+1>>1;w=b-w;S=S+y+1>>1;y=S-y;i=i+m+1>>1;m=i-m;g=g+p+1>>1;p=g-p;E=b*l+S*c+2048>>12;b=b*c-S*l+2048>>12;S=E;E=y*o+w*s+2048>>12;y=y*s-w*o+2048>>12;w=E;x=i+S;M=i-S;C=g+w;T=g-w;k=p+y;O=p-y;v=m+b;F=m-b;x<16?x=0:x>=4080?x=255:x>>=4;C<16?C=0:C>=4080?C=255:C>>=4;k<16?k=0:k>=4080?k=255:k>>=4;v<16?v=0:v>=4080?v=255:v>>=4;F<16?F=0:F>=4080?F=255:F>>=4;O<16?O=0:O>=4080?O=255:O>>=4;T<16?T=0:T>=4080?T=255:T>>=4;M<16?M=0:M>=4080?M=255:M>>=4;n[t+e]=x;n[t+e+8]=C;n[t+e+16]=k;n[t+e+24]=v;n[t+e+32]=F;n[t+e+40]=O;n[t+e+48]=T;n[t+e+56]=M}else{E=d*x+8192>>14;E=E<-2040?0:E>=2024?255:E+2056>>4;n[t+e]=E;n[t+e+8]=E;n[t+e+16]=E;n[t+e+24]=E;n[t+e+32]=E;n[t+e+40]=E;n[t+e+48]=E;n[t+e+56]=E}}}function buildComponentData(e,t){const a=t.blocksPerLine,r=t.blocksPerColumn,n=new Int16Array(64);for(let e=0;e=r)return null;const s=(0,n.readUint16)(e,t);if(s>=65472&&s<=65534)return{invalid:null,marker:s,offset:t};let o=(0,n.readUint16)(e,i);for(;!(o>=65472&&o<=65534);){if(++i>=r)return null;o=(0,n.readUint16)(e,i)}return{invalid:s.toString(16),marker:o,offset:i}}t.JpegImage=class JpegImage{constructor({decodeTransform:e=null,colorTransform:t=-1}={}){this._decodeTransform=e;this._colorTransform=t}parse(e,{dnlScanLines:t=null}={}){function readDataBlock(){const t=(0,n.readUint16)(e,o);o+=2;let a=o+t-2;const i=findNextFileMarker(e,a,o);if(i&&i.invalid){(0,r.warn)("readDataBlock - incorrect length, current marker is: "+i.invalid);a=i.offset}const s=e.subarray(o,a);o+=s.length;return s}function prepareComponents(e){const t=Math.ceil(e.samplesPerLine/8/e.maxH),a=Math.ceil(e.scanLines/8/e.maxV);for(const r of e.components){const n=Math.ceil(Math.ceil(e.samplesPerLine/8)*r.h/e.maxH),i=Math.ceil(Math.ceil(e.scanLines/8)*r.v/e.maxV),s=t*r.h,o=64*(a*r.v)*(s+1);r.blockData=new Int16Array(o);r.blocksPerLine=n;r.blocksPerColumn=i}e.mcusPerLine=t;e.mcusPerColumn=a}let a,s,o=0,c=null,l=null,h=0;const u=[],d=[],f=[];let g=(0,n.readUint16)(e,o);o+=2;if(65496!==g)throw new JpegError("SOI not found");g=(0,n.readUint16)(e,o);o+=2;e:for(;65497!==g;){let p,m,b;switch(g){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:const y=readDataBlock();65504===g&&74===y[0]&&70===y[1]&&73===y[2]&&70===y[3]&&0===y[4]&&(c={version:{major:y[5],minor:y[6]},densityUnits:y[7],xDensity:y[8]<<8|y[9],yDensity:y[10]<<8|y[11],thumbWidth:y[12],thumbHeight:y[13],thumbData:y.subarray(14,14+3*y[12]*y[13])});65518===g&&65===y[0]&&100===y[1]&&111===y[2]&&98===y[3]&&101===y[4]&&(l={version:y[5]<<8|y[6],flags0:y[7]<<8|y[8],flags1:y[9]<<8|y[10],transformCode:y[11]});break;case 65499:const w=(0,n.readUint16)(e,o);o+=2;const S=w+o-2;let x;for(;o>4==0)for(m=0;m<64;m++){x=i[m];a[x]=e[o++]}else{if(t>>4!=1)throw new JpegError("DQT - invalid table spec");for(m=0;m<64;m++){x=i[m];a[x]=(0,n.readUint16)(e,o);o+=2}}u[15&t]=a}break;case 65472:case 65473:case 65474:if(a)throw new JpegError("Only single frame JPEGs supported");o+=2;a={};a.extended=65473===g;a.progressive=65474===g;a.precision=e[o++];const C=(0,n.readUint16)(e,o);o+=2;a.scanLines=t||C;a.samplesPerLine=(0,n.readUint16)(e,o);o+=2;a.components=[];a.componentIds={};const k=e[o++];let v=0,F=0;for(p=0;p>4,n=15&e[o+1];v>4==0?f:d)[15&t]=buildHuffmanTable(a,n)}break;case 65501:o+=2;s=(0,n.readUint16)(e,o);o+=2;break;case 65498:const T=1==++h&&!t;o+=2;const M=e[o++],E=[];for(p=0;p>4];n.huffmanTableAC=d[15&i];E.push(n)}const D=e[o++],N=e[o++],R=e[o++];try{const t=decodeScan(e,o,a,E,s,D,N,R>>4,15&R,T);o+=t}catch(t){if(t instanceof DNLMarkerError){(0,r.warn)(`${t.message} -- attempting to re-parse the JPEG image.`);return this.parse(e,{dnlScanLines:t.scanLines})}if(t instanceof EOIMarkerError){(0,r.warn)(`${t.message} -- ignoring the rest of the image data.`);break e}throw t}break;case 65500:o+=4;break;case 65535:255!==e[o]&&o--;break;default:const L=findNextFileMarker(e,o-2,o-3);if(L&&L.invalid){(0,r.warn)("JpegImage.parse - unexpected data, current marker is: "+L.invalid);o=L.offset;break}if(!L||o>=e.length-1){(0,r.warn)("JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).");break e}throw new JpegError("JpegImage.parse - unknown marker: "+g.toString(16))}g=(0,n.readUint16)(e,o);o+=2}this.width=a.samplesPerLine;this.height=a.scanLines;this.jfif=c;this.adobe=l;this.components=[];for(const e of a.components){const t=u[e.quantizationId];t&&(e.quantizationTable=t);this.components.push({index:e.index,output:buildComponentData(0,e),scaleX:e.h/a.maxH,scaleY:e.v/a.maxV,blocksPerLine:e.blocksPerLine,blocksPerColumn:e.blocksPerColumn})}this.numComponents=this.components.length}_getLinearizedBlockData(e,t,a=!1){const r=this.width/e,n=this.height/t;let i,s,o,c,l,h,u,d,f,g,p,m=0;const b=this.components.length,y=e*t*b,w=new Uint8ClampedArray(y),S=new Uint32Array(e),x=4294967288;let C;for(u=0;u>8)+k[f+1];return w}get _isColorConversionNeeded(){return this.adobe?!!this.adobe.transformCode:3===this.numComponents?0!==this._colorTransform&&(82!==this.components[0].index||71!==this.components[1].index||66!==this.components[2].index):1===this._colorTransform}_convertYccToRgb(e){let t,a,r;for(let n=0,i=e.length;n4)throw new JpegError("Unsupported color mode");const n=this._getLinearizedBlockData(e,t,r);if(1===this.numComponents&&a){const e=new Uint8ClampedArray(3*n.length);let t=0;for(const a of n){e[t++]=a;e[t++]=a;e[t++]=a}return e}if(3===this.numComponents&&this._isColorConversionNeeded)return this._convertYccToRgb(n);if(4===this.numComponents){if(this._isColorConversionNeeded)return a?this._convertYcckToRgb(n):this._convertYcckToCmyk(n);if(a)return this._convertCmykToRgb(n)}return n}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.JpxStream=void 0;var r=a(17),n=a(28),i=a(2);class JpxStream extends r.DecodeStream{constructor(e,t,a){super(t);this.stream=e;this.dict=e.dict;this.maybeLength=t;this.params=a}get bytes(){return(0,i.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(e){}readBlock(){if(this.eof)return;const e=new n.JpxImage;e.parse(this.bytes);const t=e.width,a=e.height,r=e.componentsCount,i=e.tiles.length;if(1===i)this.buffer=e.tiles[0].items;else{const n=new Uint8ClampedArray(t*a*r);for(let a=0;a{Object.defineProperty(t,"__esModule",{value:!0});t.JpxImage=void 0;var r=a(2),n=a(4),i=a(24);class JpxError extends r.BaseException{constructor(e){super(`JPX error: ${e}`,"JpxError")}}const s={LL:0,LH:1,HL:1,HH:2};t.JpxImage=class JpxImage{constructor(){this.failOnCorruptedImage=!1}parse(e){if(65359===(0,n.readUint16)(e,0)){this.parseCodestream(e,0,e.length);return}const t=e.length;let a=0;for(;a>24&255,o>>16&255,o>>8&255,255&o);(0,r.warn)(`Unsupported header type ${o} (${i}).`)}l&&(a+=c)}}parseImageProperties(e){let t=e.getByte();for(;t>=0;){const a=t;t=e.getByte();if(65361===(a<<8|t)){e.skip(4);const t=e.getInt32()>>>0,a=e.getInt32()>>>0,r=e.getInt32()>>>0,n=e.getInt32()>>>0;e.skip(16);const i=e.getUint16();this.width=t-r;this.height=a-n;this.componentsCount=i;this.bitsPerComponent=8;return}}throw new JpxError("No size marker found in JPX stream")}parseCodestream(e,t,a){const i={};let s=!1;try{let o=t;for(;o+1>5;l=[];for(;a>3;t.mu=0}else{t.epsilon=e[a]>>3;t.mu=(7&e[a])<<8|e[a+1];a+=2}l.push(t)}b.SPqcds=l;if(i.mainHeader)i.QCD=b;else{i.currentTile.QCD=b;i.currentTile.QCC=[]}break;case 65373:f=(0,n.readUint16)(e,o);const y={};a=o+2;let w;if(i.SIZ.Csiz<257)w=e[a++];else{w=(0,n.readUint16)(e,a);a+=2}c=e[a++];switch(31&c){case 0:h=8;u=!0;break;case 1:h=16;u=!1;break;case 2:h=16;u=!0;break;default:throw new Error("Invalid SQcd value "+c)}y.noQuantization=8===h;y.scalarExpounded=u;y.guardBits=c>>5;l=[];for(;a>3;t.mu=0}else{t.epsilon=e[a]>>3;t.mu=(7&e[a])<<8|e[a+1];a+=2}l.push(t)}y.SPqcds=l;i.mainHeader?i.QCC[w]=y:i.currentTile.QCC[w]=y;break;case 65362:f=(0,n.readUint16)(e,o);const S={};a=o+2;const x=e[a++];S.entropyCoderWithCustomPrecincts=!!(1&x);S.sopMarkerUsed=!!(2&x);S.ephMarkerUsed=!!(4&x);S.progressionOrder=e[a++];S.layersCount=(0,n.readUint16)(e,a);a+=2;S.multipleComponentTransform=e[a++];S.decompositionLevelsCount=e[a++];S.xcb=2+(15&e[a++]);S.ycb=2+(15&e[a++]);const C=e[a++];S.selectiveArithmeticCodingBypass=!!(1&C);S.resetContextProbabilities=!!(2&C);S.terminationOnEachCodingPass=!!(4&C);S.verticallyStripe=!!(8&C);S.predictableTermination=!!(16&C);S.segmentationSymbolUsed=!!(32&C);S.reversibleTransformation=e[a++];if(S.entropyCoderWithCustomPrecincts){const t=[];for(;a>4})}S.precinctsSizes=t}const k=[];S.selectiveArithmeticCodingBypass&&k.push("selectiveArithmeticCodingBypass");S.terminationOnEachCodingPass&&k.push("terminationOnEachCodingPass");S.verticallyStripe&&k.push("verticallyStripe");S.predictableTermination&&k.push("predictableTermination");if(k.length>0){s=!0;(0,r.warn)(`JPX: Unsupported COD options (${k.join(", ")}).`)}if(i.mainHeader)i.COD=S;else{i.currentTile.COD=S;i.currentTile.COC=[]}break;case 65424:f=(0,n.readUint16)(e,o);d={};d.index=(0,n.readUint16)(e,o+2);d.length=(0,n.readUint32)(e,o+4);d.dataEnd=d.length+o-2;d.partIndex=e[o+8];d.partsCount=e[o+9];i.mainHeader=!1;if(0===d.partIndex){d.COD=i.COD;d.COC=i.COC.slice(0);d.QCD=i.QCD;d.QCC=i.QCC.slice(0)}i.currentTile=d;break;case 65427:d=i.currentTile;if(0===d.partIndex){initializeTile(i,d.index);buildPackets(i)}f=d.dataEnd-o;parseTilePackets(i,e,o,f);break;case 65363:(0,r.warn)("JPX: Codestream code 0xFF53 (COC) is not implemented.");case 65365:case 65367:case 65368:case 65380:f=(0,n.readUint16)(e,o);break;default:throw new Error("Unknown codestream code: "+t.toString(16))}o+=f}}catch(e){if(s||this.failOnCorruptedImage)throw new JpxError(e.message);(0,r.warn)(`JPX: Trying to recover from: "${e.message}".`)}this.tiles=function transformComponents(e){const t=e.SIZ,a=e.components,r=t.Csiz,n=[];for(let t=0,i=e.tiles.length;t>2);c[b++]=e+m>>h;c[b++]=e>>h;c[b++]=e+p>>h}else for(d=0;d>h;c[b++]=g-.34413*p-.71414*m>>h;c[b++]=g+1.772*p>>h}if(e)for(d=0,b=3;d>h}else for(let e=0;e>h;b+=r}}n.push(l)}return n}(i);this.width=i.SIZ.Xsiz-i.SIZ.XOsiz;this.height=i.SIZ.Ysiz-i.SIZ.YOsiz;this.componentsCount=i.SIZ.Csiz}};function calculateComponentDimensions(e,t){e.x0=Math.ceil(t.XOsiz/e.XRsiz);e.x1=Math.ceil(t.Xsiz/e.XRsiz);e.y0=Math.ceil(t.YOsiz/e.YRsiz);e.y1=Math.ceil(t.Ysiz/e.YRsiz);e.width=e.x1-e.x0;e.height=e.y1-e.y0}function calculateTileGrids(e,t){const a=e.SIZ,r=[];let n;const i=Math.ceil((a.Xsiz-a.XTOsiz)/a.XTsiz),s=Math.ceil((a.Ysiz-a.YTOsiz)/a.YTsiz);for(let e=0;e0?Math.min(r.xcb,n.PPx-1):Math.min(r.xcb,n.PPx);n.ycb_=a>0?Math.min(r.ycb,n.PPy-1):Math.min(r.ycb,n.PPy);return n}function buildPrecincts(e,t,a){const r=1<t.trx0?Math.ceil(t.trx1/r)-Math.floor(t.trx0/r):0,l=t.try1>t.try0?Math.ceil(t.try1/n)-Math.floor(t.try0/n):0,h=c*l;t.precinctParameters={precinctWidth:r,precinctHeight:n,numprecinctswide:c,numprecinctshigh:l,numprecincts:h,precinctWidthInSubband:s,precinctHeightInSubband:o}}function buildCodeblocks(e,t,a){const r=a.xcb_,n=a.ycb_,i=1<>r,c=t.tby0>>n,l=t.tbx1+i-1>>r,h=t.tby1+s-1>>n,u=t.resolution.precinctParameters,d=[],f=[];let g,p,m,b;for(p=c;pe.cbxMax&&(e.cbxMax=g);pe.cbyMax&&(e.cbyMax=p)}else f[b]=e={cbxMin:g,cbyMin:p,cbxMax:g,cbyMax:p};m.precinct=e}t.codeblockParameters={codeblockWidth:r,codeblockHeight:n,numcodeblockwide:l-o+1,numcodeblockhigh:h-c+1};t.codeblocks=d;t.precincts=f}function createPacket(e,t,a){const r=[],n=e.subbands;for(let e=0,a=n.length;ee.codingStyleParameters.decompositionLevelsCount)continue;const t=e.resolutions[c],a=t.precinctParameters.numprecincts;for(;he.codingStyleParameters.decompositionLevelsCount)continue;const t=e.resolutions[o],a=t.precinctParameters.numprecincts;for(;he.codingStyleParameters.decompositionLevelsCount)continue;const t=e.resolutions[o],a=t.precinctParameters.numprecincts;if(!(l>=a)){for(;s=0;--e){const a=t.resolutions[e],r=g*a.precinctParameters.precinctWidth,n=g*a.precinctParameters.precinctHeight;h=Math.min(h,r);u=Math.min(u,n);d=Math.max(d,a.precinctParameters.numprecinctswide);f=Math.max(f,a.precinctParameters.numprecinctshigh);l[e]={width:r,height:n};g<<=1}a=Math.min(a,h);r=Math.min(r,u);n=Math.max(n,d);i=Math.max(i,f);s[o]={resolutions:l,minWidth:h,minHeight:u,maxNumWide:d,maxNumHigh:f}}return{components:s,minWidth:a,minHeight:r,maxNumWide:n,maxNumHigh:i}}function buildPackets(e){const t=e.SIZ,a=e.currentTile.index,r=e.tiles[a],n=t.Csiz;for(let e=0;e>>o&(1<0;){const e=i.shift();o=e.codeblock;void 0===o.data&&(o.data=[]);o.data.push({data:t,start:a+s,end:a+s+e.dataLength,codingpasses:e.codingpasses});s+=e.dataLength}}return s}function copyCoefficients(e,t,a,r,n,s,c,l,h){const u=r.tbx0,d=r.tby0,f=r.tbx1-r.tbx0,g=r.codeblocks,p="H"===r.type.charAt(0)?1:0,m="H"===r.type.charAt(1)?t:0;for(let a=0,b=g.length;a=s?U:U*(1<0?1-e:0)}const p=t.subbands[r],m=s[p.type];copyCoefficients(i,a,0,p,g?1:2**(f+m-o)*(1+n/2048),h+o-1,g,u,d)}m.push({width:a,height:n,items:i})}const y=p.calculate(m,r.tcx0,r.tcy0);return{left:r.tcx0,top:r.tcy0,width:y.width,height:y.height,items:y.items}}function initializeTile(e,t){const a=e.SIZ.Csiz,r=e.tiles[t];for(let t=0;t>=1;t>>=1;r++}r--;a=this.levels[r];a.items[a.index]=n;this.currentLevel=r;delete this.value}incrementValue(){const e=this.levels[this.currentLevel];e.items[e.index]++}nextLevel(){let e=this.currentLevel,t=this.levels[e];const a=t.items[t.index];e--;if(e<0){this.value=a;return!1}this.currentLevel=e;t=this.levels[e];t.items[t.index]=a;return!0}}class InclusionTree{constructor(e,t,a){const r=(0,n.log2)(Math.max(e,t))+1;this.levels=[];for(let n=0;na){this.currentLevel=r;this.propagateValues();return!1}e>>=1;t>>=1;r++}this.currentLevel=r-1;return!0}incrementValue(e){const t=this.levels[this.currentLevel];t.items[t.index]=e+1;this.propagateValues()}propagateValues(){let e=this.currentLevel,t=this.levels[e];const a=t.items[t.index];for(;--e>=0;){t=this.levels[e];t.items[t.index]=a}}nextLevel(){let e=this.currentLevel,t=this.levels[e];const a=t.items[t.index];t.items[t.index]=255;e--;if(e<0)return!1;this.currentLevel=e;t=this.levels[e];t.items[t.index]=a;return!0}}const o=function BitModelClosure(){const e=17,t=new Uint8Array([0,5,8,0,3,7,8,0,4,7,8,0,0,0,0,0,1,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8]),a=new Uint8Array([0,3,4,0,5,7,7,0,8,8,8,0,0,0,0,0,1,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8]),r=new Uint8Array([0,1,2,0,1,2,2,0,2,2,2,0,0,0,0,0,3,4,5,0,4,5,5,0,5,5,5,0,0,0,0,0,6,7,7,0,7,7,7,0,7,7,7,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8]);return class BitModel{constructor(e,n,i,s,o){this.width=e;this.height=n;let c;c="HH"===i?r:"HL"===i?a:t;this.contextLabelTable=c;const l=e*n;this.neighborsSignificance=new Uint8Array(l);this.coefficentsSign=new Uint8Array(l);let h;h=o>14?new Uint32Array(l):o>6?new Uint16Array(l):new Uint8Array(l);this.coefficentsMagnitude=h;this.processingFlags=new Uint8Array(l);const u=new Uint8Array(l);if(0!==s)for(let e=0;e0,o=t+10){c=a-n;s&&(r[c-1]+=16);o&&(r[c+1]+=16);r[c]+=4}if(e+1=a)break;s[d]&=-2;if(r[d]||!i[d])continue;const g=c[i[d]];if(e.readBit(o,g)){const e=this.decodeSignBit(t,u,d);n[d]=e;r[d]=1;this.setNeighborsSignificance(t,u,d);s[d]|=2}l[d]++;s[d]|=1}}}decodeSignBit(e,t,a){const r=this.width,n=this.height,i=this.coefficentsMagnitude,s=this.coefficentsSign;let o,c,l,h,u,d;h=t>0&&0!==i[a-1];if(t+10&&0!==i[a-r];if(e+1=0){u=9+o;d=this.decoder.readBit(this.contexts,u)}else{u=9-o;d=1^this.decoder.readBit(this.contexts,u)}return d}runMagnitudeRefinementPass(){const e=this.decoder,t=this.width,a=this.height,r=this.coefficentsMagnitude,n=this.neighborsSignificance,i=this.contexts,s=this.bitsDecoded,o=this.processingFlags,c=t*a,l=4*t;for(let a,h=0;h>1;let n,i,s,o;const c=-1.586134342059924,l=-.052980118572961,h=.882911075530934,u=.443506852043971,d=1.230174104914001;n=(t|=0)-3;for(i=r+4;i--;n+=2)e[n]*=.8128930661159609;n=t-2;s=u*e[n-1];for(i=r+3;i--;n+=2){o=u*e[n+1];e[n]=d*e[n]-s-o;if(!i--)break;n+=2;s=u*e[n+1];e[n]=d*e[n]-s-o}n=t-1;s=h*e[n-1];for(i=r+2;i--;n+=2){o=h*e[n+1];e[n]-=s+o;if(!i--)break;n+=2;s=h*e[n+1];e[n]-=s+o}n=t;s=l*e[n-1];for(i=r+1;i--;n+=2){o=l*e[n+1];e[n]-=s+o;if(!i--)break;n+=2;s=l*e[n+1];e[n]-=s+o}if(0!==r){n=t+1;s=c*e[n-1];for(i=r;i--;n+=2){o=c*e[n+1];e[n]-=s+o;if(!i--)break;n+=2;s=c*e[n+1];e[n]-=s+o}}}}class ReversibleTransform extends Transform{filter(e,t,a){const r=a>>1;let n,i;for(n=t|=0,i=r+1;i--;n+=2)e[n]-=e[n-1]+e[n+1]+2>>2;for(n=t+1,i=r;i--;n+=2)e[n]+=e[n-1]+e[n+1]>>1}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.LZWStream=void 0;var r=a(17);class LZWStream extends r.DecodeStream{constructor(e,t,a){super(t);this.str=e;this.dict=e.dict;this.cachedData=0;this.bitsCached=0;const r=4096,n={earlyChange:a,codeLength:9,nextCode:258,dictionaryValues:new Uint8Array(r),dictionaryLengths:new Uint16Array(r),dictionaryPrevCodes:new Uint16Array(r),currentSequence:new Uint8Array(r),currentSequenceLength:0};for(let e=0;e<256;++e){n.dictionaryValues[e]=e;n.dictionaryLengths[e]=1}this.lzwState=n}readBits(e){let t=this.bitsCached,a=this.cachedData;for(;t>>t&(1<0;if(e<256){d[0]=e;f=1}else{if(!(e>=258)){if(256===e){h=9;s=258;f=0;continue}this.eof=!0;delete this.lzwState;break}if(e=0;t--){d[t]=o[a];a=l[a]}}else d[f++]=d[0]}if(n){l[s]=u;c[s]=c[u]+1;o[s]=d[0];s++;h=s+i&s+i-1?h:0|Math.min(Math.log(s+i)/.6931471805599453+1,12)}u=e;g+=f;if(r{Object.defineProperty(t,"__esModule",{value:!0});t.PredictorStream=void 0;var r=a(17),n=a(3),i=a(2);class PredictorStream extends r.DecodeStream{constructor(e,t,a){super(t);if(!(a instanceof n.Dict))return e;const r=this.predictor=a.get("Predictor")||1;if(r<=1)return e;if(2!==r&&(r<10||r>15))throw new i.FormatError(`Unsupported predictor: ${r}`);this.readBlock=2===r?this.readBlockTiff:this.readBlockPng;this.str=e;this.dict=e.dict;const s=this.colors=a.get("Colors")||1,o=this.bits=a.get("BPC","BitsPerComponent")||8,c=this.columns=a.get("Columns")||1;this.pixBytes=s*o+7>>3;this.rowBytes=c*s*o+7>>3;return this}readBlockTiff(){const e=this.rowBytes,t=this.bufferLength,a=this.ensureBuffer(t+e),r=this.bits,n=this.colors,i=this.str.getBytes(e);this.eof=!i.length;if(this.eof)return;let s,o=0,c=0,l=0,h=0,u=t;if(1===r&&1===n)for(s=0;s>1;e^=e>>2;e^=e>>4;o=(1&e)<<7;a[u++]=e}else if(8===r){for(s=0;s>8&255;a[u++]=255&e}}else{const e=new Uint8Array(n+1),u=(1<>l-r)&u;l-=r;c=c<=8){a[f++]=c>>h-8&255;h-=8}}h>0&&(a[f++]=(c<<8-h)+(o&(1<<8-h)-1))}this.bufferLength+=e}readBlockPng(){const e=this.rowBytes,t=this.pixBytes,a=this.str.getByte(),r=this.str.getBytes(e);this.eof=!r.length;if(this.eof)return;const n=this.bufferLength,s=this.ensureBuffer(n+e);let o=s.subarray(n-e,n);0===o.length&&(o=new Uint8Array(e));let c,l,h,u=n;switch(a){case 0:for(c=0;c>1)+r[c];for(;c>1)+r[c]&255;u++}break;case 4:for(c=0;c{Object.defineProperty(t,"__esModule",{value:!0});t.RunLengthStream=void 0;var r=a(17);class RunLengthStream extends r.DecodeStream{constructor(e,t){super(t);this.str=e;this.dict=e.dict}readBlock(){const e=this.str.getBytes(2);if(!e||e.length<2||128===e[0]){this.eof=!0;return}let t,a=this.bufferLength,r=e[0];if(r<128){t=this.ensureBuffer(a+r+1);t[a++]=e[1];if(r>0){const e=this.str.getBytes(r);t.set(e,a);a+=r}}else{r=257-r;const n=e[1];t=this.ensureBuffer(a+r+1);for(let e=0;e{Object.defineProperty(t,"__esModule",{value:!0});t.Font=t.ErrorFont=void 0;var r=a(2),n=a(33),i=a(36),s=a(38),o=a(37),c=a(35),l=a(39),h=a(40),u=a(41),d=a(42),f=a(43),g=a(44),p=a(14),m=a(45),b=a(4),y=a(8),w=a(46);const S=[[57344,63743],[1048576,1114109]],x=1e3,C=["ascent","bbox","black","bold","charProcOperatorList","composite","cssFontInfo","data","defaultVMetrics","defaultWidth","descent","fallbackName","fontMatrix","isInvalidPDFjsFont","isType3Font","italic","loadedName","mimetype","missingFile","name","remeasure","subtype","type","vertical"],k=["cMap","defaultEncoding","differences","isMonospace","isSerifFont","isSymbolicFont","seacMap","toFontChar","toUnicode","vmetrics","widths"];function adjustWidths(e){if(!e.fontMatrix)return;if(e.fontMatrix[0]===r.FONT_IDENTITY_MATRIX[0])return;const t=.001/e.fontMatrix[0],a=e.widths;for(const e in a)a[e]*=t;e.defaultWidth*=t}function amendFallbackToUnicode(e){if(!e.fallbackToUnicode)return;if(e.toUnicode instanceof h.IdentityToUnicodeMap)return;const t=[];for(const a in e.fallbackToUnicode)e.toUnicode.has(a)||(t[a]=e.fallbackToUnicode[a]);t.length>0&&e.toUnicode.amend(t)}class Glyph{constructor(e,t,a,r,n,i,s,o,c){this.originalCharCode=e;this.fontChar=t;this.unicode=a;this.accent=r;this.width=n;this.vmetric=i;this.operatorListId=s;this.isSpace=o;this.isInFont=c}get category(){return(0,r.shadow)(this,"category",(0,s.getCharUnicodeCategory)(this.unicode),!0)}get normalizedUnicode(){return(0,r.shadow)(this,"normalizedUnicode",(0,s.reverseIfRtl)(Glyph._NormalizedUnicodes[this.unicode]||this.unicode),!0)}static get _NormalizedUnicodes(){return(0,r.shadow)(this,"_NormalizedUnicodes",(0,s.getNormalizedUnicodes)())}}function int16(e,t){return(e<<8)+t}function writeSignedInt16(e,t,a){e[t+1]=a;e[t]=a>>>8}function signedInt16(e,t){const a=(e<<8)+t;return 32768&a?a-65536:a}function string16(e){return String.fromCharCode(e>>8&255,255&e)}function safeString16(e){e>32767?e=32767:e<-32768&&(e=-32768);return String.fromCharCode(e>>8&255,255&e)}function isTrueTypeCollectionFile(e){const t=e.peekBytes(4);return"ttcf"===(0,r.bytesToString)(t)}function getFontFileType(e,{type:t,subtype:a,composite:n}){let i,s;if(function isTrueTypeFile(e){const t=e.peekBytes(4);return 65536===(0,b.readUint32)(t,0)||"true"===(0,r.bytesToString)(t)}(e)||isTrueTypeCollectionFile(e))i=n?"CIDFontType2":"TrueType";else if(function isOpenTypeFile(e){const t=e.peekBytes(4);return"OTTO"===(0,r.bytesToString)(t)}(e))i=n?"CIDFontType2":"OpenType";else if(function isType1File(e){const t=e.peekBytes(2);return 37===t[0]&&33===t[1]||128===t[0]&&1===t[1]}(e))i=n?"CIDFontType0":"MMType1"===t?"MMType1":"Type1";else if(function isCFFFile(e){const t=e.peekBytes(4);return t[0]>=1&&t[3]>=1&&t[3]<=4}(e))if(n){i="CIDFontType0";s="CIDFontType0C"}else{i="MMType1"===t?"MMType1":"Type1";s="Type1C"}else{(0,r.warn)("getFontFileType: Unable to detect correct font file Type/Subtype.");i=t;s=a}return[i,s]}function applyStandardFontGlyphMap(e,t){for(const a in t)e[+a]=t[a]}function buildToFontChar(e,t,a){const r=[];let n;for(let a=0,i=e.length;ad){l++;if(l>=S.length){(0,r.warn)("Ran out of space in font private use area.");break}u=S[l][0];d=S[l][1]}const p=u++;0===g&&(g=a);let m=n.get(f);"string"==typeof m&&(m=m.codePointAt(0));if(m&&m=a||r.push({fontCharCode:0|t,glyphId:e[t]});if(t)for(const[e,n]of t)n>=a||r.push({fontCharCode:e,glyphId:n});0===r.length&&r.push({fontCharCode:0,glyphId:0});r.sort((function fontGetRangesSort(e,t){return e.fontCharCode-t.fontCharCode}));const n=[],i=r.length;for(let e=0;e65535?2:1;let s,o,c,l,h="\0\0"+string16(i)+"\0\0"+(0,r.string32)(4+8*i);for(s=n.length-1;s>=0&&!(n[s][0]<=65535);--s);const u=s+1;n[s][0]<65535&&65535===n[s][1]&&(n[s][1]=65534);const d=n[s][1]<65535?1:0,f=u+d,g=m.OpenTypeFileBuilder.getSearchParams(f,2);let p,b,y,w,S="",x="",C="",k="",v="",F=0;for(s=0,o=u;s0){x+="ÿÿ";S+="ÿÿ";C+="\0";k+="\0\0"}const O="\0\0"+string16(2*f)+string16(g.range)+string16(g.entry)+string16(g.rangeShift)+x+"\0\0"+S+C+k+v;let T="",M="";if(i>1){h+="\0\0\n"+(0,r.string32)(4+8*i+4+O.length);T="";for(s=0,o=n.length;se||!l)&&(l=e);h 123 are reserved for internal usage");c|=1<65535&&(h=65535)}else{l=0;h=255}const u=e.bbox||[0,0,0,0],d=a.unitsPerEm||1/(e.fontMatrix||r.FONT_IDENTITY_MATRIX)[0],f=e.ascentScaled?1:d/x,g=a.ascent||Math.round(f*(e.ascent||u[3]));let p=a.descent||Math.round(f*(e.descent||u[1]));p>0&&e.descent>0&&u[1]<0&&(p=-p);const m=a.yMax||g,b=-a.yMin||-p;return"\0$ô\0\0\0Š»\0\0\0ŒŠ»\0\0ß\x001\0\0\0\0"+String.fromCharCode(e.fixedPitch?9:0)+"\0\0\0\0\0\0"+(0,r.string32)(n)+(0,r.string32)(i)+(0,r.string32)(o)+(0,r.string32)(c)+"*21*"+string16(e.italicAngle?1:0)+string16(l||e.firstChar)+string16(h||e.lastChar)+string16(g)+string16(p)+"\0d"+string16(m)+string16(b)+"\0\0\0\0\0\0\0\0"+string16(e.xHeight)+string16(e.capHeight)+string16(0)+string16(l||e.firstChar)+"\0"}function createPostTable(e){const t=Math.floor(65536*e.italicAngle);return"\0\0\0"+(0,r.string32)(t)+"\0\0\0\0"+(0,r.string32)(e.fixedPitch?1:0)+"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}function createPostscriptName(e){return e.replace(/[^\x21-\x7E]|[[\](){}<>/%]/g,"").slice(0,63)}function createNameTable(e,t){t||(t=[[],[]]);const a=[t[0][0]||"Original licence",t[0][1]||e,t[0][2]||"Unknown",t[0][3]||"uniqueID",t[0][4]||e,t[0][5]||"Version 0.11",t[0][6]||createPostscriptName(e),t[0][7]||"Unknown",t[0][8]||"Unknown",t[0][9]||"Unknown"],r=[];let n,i,s,o,c;for(n=0,i=a.length;n0;if((g||p)&&"CIDFontType2"===a&&this.cidEncoding.startsWith("Identity-")){const a=e.cidToGidMap,r=[];applyStandardFontGlyphMap(r,(0,l.getGlyphMapForStandardFonts)());/Arial-?Black/i.test(t)?applyStandardFontGlyphMap(r,(0,l.getSupplementalGlyphMapForArialBlack)()):/Calibri/i.test(t)&&applyStandardFontGlyphMap(r,(0,l.getSupplementalGlyphMapForCalibri)());if(a){for(const e in r){const t=r[e];void 0!==a[t]&&(r[+e]=a[t])}a.length!==this.toUnicode.length&&e.hasIncludedToUnicodeMap&&this.toUnicode instanceof h.IdentityToUnicodeMap&&this.toUnicode.forEach((function(e,t){const n=r[e];void 0===a[n]&&(r[+e]=t)}))}this.toUnicode instanceof h.IdentityToUnicodeMap||this.toUnicode.forEach((function(e,t){r[+e]=t}));this.toFontChar=r;this.toUnicode=new h.ToUnicodeMap(r)}else if(/Symbol/i.test(n))this.toFontChar=buildToFontChar(c.SymbolSetEncoding,(0,o.getGlyphsUnicode)(),this.differences);else if(/Dingbats/i.test(n)){/Wingdings/i.test(t)&&(0,r.warn)("Non-embedded Wingdings font, falling back to ZapfDingbats.");this.toFontChar=buildToFontChar(c.ZapfDingbatsEncoding,(0,o.getDingbatsGlyphsUnicode)(),this.differences)}else if(g){const e=buildToFontChar(this.defaultEncoding,(0,o.getGlyphsUnicode)(),this.differences);"CIDFontType2"!==a||this.cidEncoding.startsWith("Identity-")||this.toUnicode instanceof h.IdentityToUnicodeMap||this.toUnicode.forEach((function(t,a){e[+t]=a}));this.toFontChar=e}else{const e=(0,o.getGlyphsUnicode)(),a=[];this.toUnicode.forEach(((t,r)=>{if(!this.composite){const a=this.differences[t]||this.defaultEncoding[t],n=(0,s.getUnicodeForGlyph)(a,e);-1!==n&&(r=n)}a[+t]=r}));this.composite&&this.toUnicode instanceof h.IdentityToUnicodeMap&&/Tahoma|Verdana/i.test(t)&&applyStandardFontGlyphMap(a,(0,l.getGlyphMapForStandardFonts)());this.toFontChar=a}amendFallbackToUnicode(e);this.loadedName=n.split("-")[0]}checkAndRepair(e,t,a){const s=["OS/2","cmap","head","hhea","hmtx","maxp","name","post","loca","glyf","fpgm","prep","cvt ","CFF "];function readTables(e,t){const a=Object.create(null);a["OS/2"]=null;a.cmap=null;a.head=null;a.hhea=null;a.hmtx=null;a.maxp=null;a.name=null;a.post=null;for(let r=0;r>>0,r=e.getInt32()>>>0,n=e.getInt32()>>>0,i=e.pos;e.pos=e.start||0;e.skip(r);const s=e.getBytes(n);e.pos=i;if("head"===t){s[8]=s[9]=s[10]=s[11]=0;s[17]|=32}return{tag:t,checksum:a,length:n,offset:r,data:s}}function readOpenTypeHeader(e){return{version:e.getString(4),numTables:e.getUint16(),searchRange:e.getUint16(),entrySelector:e.getUint16(),rangeShift:e.getUint16()}}function sanitizeGlyph(e,t,a,r,n,i){const s={length:0,sizeOfInstructions:0};if(a-t<=12)return s;const o=e.subarray(t,a);let c=signedInt16(o[0],o[1]);if(c<0){c=-1;writeSignedInt16(o,0,c);r.set(o,n);s.length=o.length;return s}let l,h=10,u=0;for(l=0;lo.length)return s;if(!i&&f>0){r.set(o.subarray(0,d),n);r.set([0,0],n+d);r.set(o.subarray(g,m),n+d+2);m-=f;o.length-m>3&&(m=m+3&-4);s.length=m;return s}if(o.length-m>3){m=m+3&-4;r.set(o.subarray(0,m),n);s.length=m;return s}r.set(o,n);s.length=o.length;return s}function readNameTable(e){const a=(t.start||0)+e.offset;t.pos=a;const r=[[],[]],n=[],i=e.length,s=a+i;if(0!==t.getUint16()||i<6)return[r,n];const o=t.getUint16(),c=t.getUint16();let l,h;for(l=0;ls)continue;t.pos=i;const o=e.name;if(e.encoding){let a="";for(let r=0,n=e.length;r0&&(h+=e-1)}}else{if(b||w){(0,r.warn)("TT: nested FDEFs not allowed");m=!0}b=!0;d=h;s=f.pop();t.functionsDefined[s]={data:c,i:h}}else if(!b&&!w){s=f.at(-1);if(isNaN(s))(0,r.info)("TT: CALL empty stack (or invalid entry).");else{t.functionsUsed[s]=!0;if(s in t.functionsStackDeltas){const e=f.length+t.functionsStackDeltas[s];if(e<0){(0,r.warn)("TT: CALL invalid functions stack delta.");t.hintsValid=!1;return}f.length=e}else if(s in t.functionsDefined&&!p.includes(s)){g.push({data:c,i:h,stackTop:f.length-1});p.push(s);o=t.functionsDefined[s];if(!o){(0,r.warn)("TT: CALL non-existent function");t.hintsValid=!1;return}c=o.data;h=o.i}}}if(!b&&!w){let t=0;e<=142?t=l[e]:e>=192&&e<=223?t=-1:e>=224&&(t=-2);if(e>=113&&e<=117){n=f.pop();isNaN(n)||(t=2*-n)}for(;t<0&&f.length>0;){f.pop();t++}for(;t>0;){f.push(NaN);t--}}}t.tooComplexToFollowFunctions=m;const S=[c];h>c.length&&S.push(new Uint8Array(h-c.length));if(d>u){(0,r.warn)("TT: complementing a missing function tail");S.push(new Uint8Array([34,45]))}!function foldTTTable(e,t){if(t.length>1){let a,r,n=0;for(a=0,r=t.length;a>>0,s=[];for(let t=0;t>>0);const o={ttcTag:t,majorVersion:a,minorVersion:n,numFonts:i,offsetTable:s};switch(a){case 1:return o;case 2:o.dsigTag=e.getInt32()>>>0;o.dsigLength=e.getInt32()>>>0;o.dsigOffset=e.getInt32()>>>0;return o}throw new r.FormatError(`Invalid TrueType Collection majorVersion: ${a}.`)}(e),i=t.split("+");let s;for(let o=0;o0||!(a.cMap instanceof p.IdentityCMap));if("OTTO"===d.version&&!t||!f.head||!f.hhea||!f.maxp||!f.post){w=new y.Stream(f["CFF "].data);b=new u.CFFFont(w,a);adjustWidths(a);return this.convert(e,b,a)}delete f.glyf;delete f.loca;delete f.fpgm;delete f.prep;delete f["cvt "];this.isOpenType=!0}if(!f.maxp)throw new r.FormatError('Required "maxp" table is not found');t.pos=(t.start||0)+f.maxp.offset;const x=t.getInt32(),C=t.getUint16();if(a.scaleFactors&&a.scaleFactors.length===C&&S){const{scaleFactors:e}=a,t=int16(f.head.data[50],f.head.data[51]),r=new g.GlyfTable({glyfTable:f.glyf.data,isGlyphLocationsLong:t,locaTable:f.loca.data,numGlyphs:C});r.scale(e);const{glyf:n,loca:i,isLocationLong:s}=r.write();f.glyf.data=n;f.loca.data=i;if(s!==!!t){f.head.data[50]=0;f.head.data[51]=s?1:0}const o=f.hmtx.data;for(let t=0;t>8&255;o[a+1]=255&r;writeSignedInt16(o,a+2,Math.round(e[t]*signedInt16(o[a+2],o[a+3])))}}let k=C+1,v=!0;if(k>65535){v=!1;k=C;(0,r.warn)("Not enough space in glyfs to duplicate first glyph.")}let F=0,O=0;if(x>=65536&&f.maxp.length>=22){t.pos+=8;if(t.getUint16()>2){f.maxp.data[14]=0;f.maxp.data[15]=2}t.pos+=4;F=t.getUint16();t.pos+=4;O=t.getUint16()}f.maxp.data[4]=k>>8;f.maxp.data[5]=255&k;const T=function sanitizeTTPrograms(e,t,a,n){const i={functionsDefined:[],functionsUsed:[],functionsStackDeltas:[],tooComplexToFollowFunctions:!1,hintsValid:!0};e&&sanitizeTTProgram(e,i);t&&sanitizeTTProgram(t,i);e&&function checkInvalidFunctions(e,t){if(!e.tooComplexToFollowFunctions)if(e.functionsDefined.length>t){(0,r.warn)("TT: more functions defined than expected");e.hintsValid=!1}else for(let a=0,n=e.functionsUsed.length;at){(0,r.warn)("TT: invalid function id: "+a);e.hintsValid=!1;return}if(e.functionsUsed[a]&&!e.functionsDefined[a]){(0,r.warn)("TT: undefined function: "+a);e.hintsValid=!1;return}}}(i,n);if(a&&1&a.length){const e=new Uint8Array(a.length+1);e.set(a.data);a.data=e}return i.hintsValid}(f.fpgm,f.prep,f["cvt "],F);if(!T){delete f.fpgm;delete f.prep;delete f["cvt "]}!function sanitizeMetrics(e,t,a,n,i,s){if(!t){a&&(a.data=null);return}e.pos=(e.start||0)+t.offset;e.pos+=4;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;const o=e.getUint16();e.pos+=8;e.pos+=2;let c=e.getUint16();if(0!==o){if(!(2&int16(n.data[44],n.data[45]))){t.data[22]=0;t.data[23]=0}}if(c>i){(0,r.info)(`The numOfMetrics (${c}) should not be greater than the numGlyphs (${i}).`);c=i;t.data[34]=(65280&c)>>8;t.data[35]=255&c}const l=i-c-(a.length-4*c>>1);if(l>0){const e=new Uint8Array(a.length+2*l);e.set(a.data);if(s){e[a.length]=a.data[2];e[a.length+1]=a.data[3]}a.data=e}}(t,f.hhea,f.hmtx,f.head,k,v);if(!f.head)throw new r.FormatError('Required "head" table is not found');!function sanitizeHead(e,t,a){const n=e.data,i=function int32(e,t,a,r){return(e<<24)+(t<<16)+(a<<8)+r}(n[0],n[1],n[2],n[3]);if(i>>16!=1){(0,r.info)("Attempting to fix invalid version in head table: "+i);n[0]=0;n[1]=1;n[2]=0;n[3]=0}const s=int16(n[50],n[51]);if(s<0||s>1){(0,r.info)("Attempting to fix invalid indexToLocFormat in head table: "+s);const e=t+1;if(a===e<<1){n[50]=0;n[51]=0}else{if(a!==e<<2)throw new r.FormatError("Could not fix indexToLocFormat: "+s);n[50]=0;n[51]=1}}}(f.head,C,S?f.loca.length:0);let M=Object.create(null);if(S){const e=int16(f.head.data[50],f.head.data[51]),t=function sanitizeGlyphLocations(e,t,a,r,n,i,s){let o,c,l;if(r){o=4;c=function fontItemDecodeLong(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]};l=function fontItemEncodeLong(e,t,a){e[t]=a>>>24&255;e[t+1]=a>>16&255;e[t+2]=a>>8&255;e[t+3]=255&a}}else{o=2;c=function fontItemDecode(e,t){return e[t]<<9|e[t+1]<<1};l=function fontItemEncode(e,t,a){e[t]=a>>9&255;e[t+1]=a>>1&255}}const h=i?a+1:a,u=o*(1+h),d=new Uint8Array(u);d.set(e.data.subarray(0,u));e.data=d;const f=t.data,g=f.length,p=new Uint8Array(g);let m,b;const y=[];for(m=0,b=0;mg&&(e=g);y.push({index:m,offset:e,endOffset:0})}y.sort(((e,t)=>e.offset-t.offset));for(m=0;me.index-t.index));for(m=0;ms&&(s=e.sizeOfInstructions);S+=t;l(d,b,S)}if(0===S){const e=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]);for(m=0,b=o;ma+S)t.data=p.subarray(0,a+S);else{t.data=new Uint8Array(a+S);t.data.set(p.subarray(0,S))}t.data.set(p.subarray(0,a),S);l(e.data,d.length-o,S+a)}else t.data=p.subarray(0,S);return{missingGlyphs:w,maxSizeOfInstructions:s}}(f.loca,f.glyf,C,e,T,v,O);M=t.missingGlyphs;if(x>=65536&&f.maxp.length>=22){f.maxp.data[26]=t.maxSizeOfInstructions>>8;f.maxp.data[27]=255&t.maxSizeOfInstructions}}if(!f.hhea)throw new r.FormatError('Required "hhea" table is not found');if(0===f.hhea.data[10]&&0===f.hhea.data[11]){f.hhea.data[10]=255;f.hhea.data[11]=255}const E={unitsPerEm:int16(f.head.data[18],f.head.data[19]),yMax:int16(f.head.data[42],f.head.data[43]),yMin:signedInt16(f.head.data[38],f.head.data[39]),ascent:signedInt16(f.hhea.data[4],f.hhea.data[5]),descent:signedInt16(f.hhea.data[6],f.hhea.data[7]),lineGap:signedInt16(f.hhea.data[8],f.hhea.data[9])};this.ascent=E.ascent/E.unitsPerEm;this.descent=E.descent/E.unitsPerEm;this.lineGap=E.lineGap/E.unitsPerEm;if(this.cssFontInfo&&this.cssFontInfo.lineHeight){this.lineHeight=this.cssFontInfo.metrics.lineHeight;this.lineGap=this.cssFontInfo.metrics.lineGap}else this.lineHeight=this.ascent-this.descent+this.lineGap;f.post&&function readPostScriptTable(e,a,n){const s=(t.start||0)+e.offset;t.pos=s;const o=s+e.length,c=t.getInt32();t.skip(28);let l,h,u=!0;switch(c){case 65536:l=i.MacStandardGlyphOrdering;break;case 131072:const e=t.getUint16();if(e!==n){u=!1;break}const s=[];for(h=0;h=32768){u=!1;break}s.push(e)}if(!u)break;const d=[],f=[];for(;t.pos65535)throw new r.FormatError("Max size of CID is 65,535");let i=-1;t?i=n:void 0!==e[n]&&(i=e[n]);i>=0&&i>>0;let h=!1;if(!c||c.platformId!==r||c.encodingId!==i){if(0!==r||0!==i&&1!==i&&3!==i)if(1===r&&0===i)h=!0;else if(3!==r||1!==i||!n&&c){if(a&&3===r&&0===i){h=!0;let a=!0;if(e>3;e.push(r);a=Math.max(r,a)}const r=[];for(let e=0;e<=a;e++)r.push({firstCode:t.getUint16(),entryCount:t.getUint16(),idDelta:signedInt16(t.getByte(),t.getByte()),idRangePos:t.pos+t.getUint16()});for(let a=0;a<256;a++)if(0===e[a]){t.pos=r[0].idRangePos+2*a;g=t.getUint16();d.push({charCode:a,glyphId:g})}else{const n=r[e[a]];for(f=0;f>1;t.skip(6);const a=[];let r;for(r=0;r>1)-(e-r);i.offsetIndex=n;o=Math.max(o,n+i.end-i.start+1)}else i.offsetIndex=-1}const c=[];for(f=0;f>>0;for(f=0;f>>0,a=t.getInt32()>>>0;let r=t.getInt32()>>>0;for(let t=e;t<=a;t++)d.push({charCode:t,glyphId:r++})}}}d.sort((function(e,t){return e.charCode-t.charCode}));for(let e=1;e=61440&&t<=61695&&(t&=255);D[t]=e.glyphId}if(a.glyphNames&&(u.length||this.differences.length))for(let e=0;e<256;++e){if(!d&&void 0!==D[e])continue;const t=this.differences[e]||u[e];if(!t)continue;const r=a.glyphNames.indexOf(t);r>0&&hasGlyph(r)&&(D[e]=r)}}0===D.length&&(D[0]=0);let N=k-1;v||(N=0);if(!a.cssFontInfo){const e=adjustMapping(D,hasGlyph,N,this.toUnicode);this.toFontChar=e.toFontChar;f.cmap={tag:"cmap",data:createCmapTable(e.charCodeToGlyphId,e.toUnicodeExtraMap,k)};f["OS/2"]&&function validateOS2Table(e,t){t.pos=(t.start||0)+e.offset;const a=t.getUint16();t.skip(60);const r=t.getUint16();if(a<4&&768&r)return!1;if(t.getUint16()>t.getUint16())return!1;t.skip(6);if(0===t.getUint16())return!1;e.data[8]=e.data[9]=0;return!0}(f["OS/2"],t)||(f["OS/2"]={tag:"OS/2",data:createOS2Table(a,e.charCodeToGlyphId,E)})}if(!S)try{w=new y.Stream(f["CFF "].data);b=new n.CFFParser(w,a,i.SEAC_ANALYSIS_ENABLED).parse();b.duplicateFirstGlyph();const e=new n.CFFCompiler(b);f["CFF "].data=e.compile()}catch(e){(0,r.warn)("Failed to compile font "+a.loadedName)}if(f.name){const[t,r]=readNameTable(f.name);f.name.data=createNameTable(e,t);this.psName=t[0][6]||null;a.composite||function adjustTrueTypeToUnicode(e,t,a){if(e.isInternalFont)return;if(e.hasIncludedToUnicodeMap)return;if(e.hasEncoding)return;if(e.toUnicode instanceof h.IdentityToUnicodeMap)return;if(!t)return;if(0===a.length)return;if(e.defaultEncoding===c.WinAnsiEncoding)return;for(const e of a)if(!isWinNameRecord(e))return;const r=c.WinAnsiEncoding,n=[],i=(0,o.getGlyphsUnicode)();for(const e in r){const t=r[e];if(""===t)continue;const a=i[t];void 0!==a&&(n[e]=String.fromCharCode(a))}n.length>0&&e.toUnicode.amend(n)}(a,this.isSymbolicFont,r)}else f.name={tag:"name",data:createNameTable(this.name)};const R=new m.OpenTypeFileBuilder(d.version);for(const e in f)R.addTable(e,f[e].data);return R.toArray()}convert(e,t,a){a.fixedPitch=!1;a.builtInEncoding&&function adjustType1ToUnicode(e,t){if(e.isInternalFont)return;if(e.hasIncludedToUnicodeMap)return;if(t===e.defaultEncoding)return;if(e.toUnicode instanceof h.IdentityToUnicodeMap)return;const a=[],r=(0,o.getGlyphsUnicode)();for(const n in t){if(e.hasEncoding&&(e.baseEncodingName||void 0!==e.differences[n]))continue;const i=t[n],o=(0,s.getUnicodeForGlyph)(i,r);-1!==o&&(a[n]=String.fromCharCode(o))}a.length>0&&e.toUnicode.amend(a)}(a,a.builtInEncoding);let n=1;t instanceof u.CFFFont&&(n=t.numGlyphs-1);const l=t.getGlyphMapping(a);let d=null,f=l,g=null;if(!a.cssFontInfo){d=adjustMapping(l,t.hasGlyphId.bind(t),n,this.toUnicode);this.toFontChar=d.toFontChar;f=d.charCodeToGlyphId;g=d.toUnicodeExtraMap}const p=t.numGlyphs;function getCharCodes(e,t){let a=null;for(const r in e)if(t===e[r]){a||(a=[]);a.push(0|r)}return a}function createCharCode(e,t){for(const a in e)if(t===e[a])return 0|a;d.charCodeToGlyphId[d.nextAvailableFontCharCode]=t;return d.nextAvailableFontCharCode++}const b=t.seacs;if(d&&i.SEAC_ANALYSIS_ENABLED&&b&&b.length){const e=a.fontMatrix||r.FONT_IDENTITY_MATRIX,n=t.getCharset(),i=Object.create(null);for(let t in b){t|=0;const a=b[t],r=c.StandardEncoding[a[2]],s=c.StandardEncoding[a[3]],o=n.indexOf(r),h=n.indexOf(s);if(o<0||h<0)continue;const u={x:a[0]*e[0]+a[1]*e[2]+e[4],y:a[0]*e[1]+a[1]*e[3]+e[5]},f=getCharCodes(l,t);if(f)for(const e of f){const t=d.charCodeToGlyphId,a=createCharCode(t,o),r=createCharCode(t,h);i[e]={baseFontCharCode:a,accentFontCharCode:r,accentOffset:u}}}a.seacMap=i}const y=1/(a.fontMatrix||r.FONT_IDENTITY_MATRIX)[0],w=new m.OpenTypeFileBuilder("OTTO");w.addTable("CFF ",t.data);w.addTable("OS/2",createOS2Table(a,f));w.addTable("cmap",createCmapTable(f,g,p));w.addTable("head","\0\0\0\0\0\0\0\0\0\0_<õ\0\0"+safeString16(y)+"\0\0\0\0ž\v~'\0\0\0\0ž\v~'\0\0"+safeString16(a.descent)+"ÿ"+safeString16(a.ascent)+string16(a.italicAngle?2:0)+"\0\0\0\0\0\0\0");w.addTable("hhea","\0\0\0"+safeString16(a.ascent)+safeString16(a.descent)+"\0\0ÿÿ\0\0\0\0\0\0"+safeString16(a.capHeight)+safeString16(Math.tan(a.italicAngle)*a.xHeight)+"\0\0\0\0\0\0\0\0\0\0\0\0"+string16(p));w.addTable("hmtx",function fontFieldsHmtx(){const e=t.charstrings,a=t.cff?t.cff.widths:null;let r="\0\0\0\0";for(let t=1,n=p;tt.length%2==1,r=this.toUnicode instanceof h.IdentityToUnicodeMap?e=>this.toUnicode.charCodeOf(e):e=>this.toUnicode.charCodeOf(String.fromCodePoint(e));for(let n=0,i=e.length;n55295&&(i<57344||i>65533)&&n++;if(this.toUnicode){const e=r(i);if(-1!==e){if(hasCurrentBufErrors()){t.push(a.join(""));a.length=0}for(let t=(this.cMap?this.cMap.getCharCodeLength(e):1)-1;t>=0;t--)a.push(String.fromCharCode(e>>8*t&255));continue}}if(!hasCurrentBufErrors()){t.push(a.join(""));a.length=0}a.push(String.fromCodePoint(i))}t.push(a.join(""));return t}};t.ErrorFont=class ErrorFont{constructor(e){this.error=e;this.loadedName="g_font_error";this.missingFile=!0}charsToGlyphs(){return[]}encodeString(e){return[e]}exportData(e=!1){return{error:this.error}}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CFFTopDict=t.CFFStrings=t.CFFStandardStrings=t.CFFPrivateDict=t.CFFParser=t.CFFIndex=t.CFFHeader=t.CFFFDSelect=t.CFFCompiler=t.CFFCharset=t.CFF=void 0;var r=a(2),n=a(34),i=a(35);const s=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"];t.CFFStandardStrings=s;const o=391,c=[null,{id:"hstem",min:2,stackClearing:!0,stem:!0},null,{id:"vstem",min:2,stackClearing:!0,stem:!0},{id:"vmoveto",min:1,stackClearing:!0},{id:"rlineto",min:2,resetStack:!0},{id:"hlineto",min:1,resetStack:!0},{id:"vlineto",min:1,resetStack:!0},{id:"rrcurveto",min:6,resetStack:!0},null,{id:"callsubr",min:1,undefStack:!0},{id:"return",min:0,undefStack:!0},null,null,{id:"endchar",min:0,stackClearing:!0},null,null,null,{id:"hstemhm",min:2,stackClearing:!0,stem:!0},{id:"hintmask",min:0,stackClearing:!0},{id:"cntrmask",min:0,stackClearing:!0},{id:"rmoveto",min:2,stackClearing:!0},{id:"hmoveto",min:1,stackClearing:!0},{id:"vstemhm",min:2,stackClearing:!0,stem:!0},{id:"rcurveline",min:8,resetStack:!0},{id:"rlinecurve",min:8,resetStack:!0},{id:"vvcurveto",min:4,resetStack:!0},{id:"hhcurveto",min:4,resetStack:!0},null,{id:"callgsubr",min:1,undefStack:!0},{id:"vhcurveto",min:4,resetStack:!0},{id:"hvcurveto",min:4,resetStack:!0}],l=[null,null,null,{id:"and",min:2,stackDelta:-1},{id:"or",min:2,stackDelta:-1},{id:"not",min:1,stackDelta:0},null,null,null,{id:"abs",min:1,stackDelta:0},{id:"add",min:2,stackDelta:-1,stackFn(e,t){e[t-2]=e[t-2]+e[t-1]}},{id:"sub",min:2,stackDelta:-1,stackFn(e,t){e[t-2]=e[t-2]-e[t-1]}},{id:"div",min:2,stackDelta:-1,stackFn(e,t){e[t-2]=e[t-2]/e[t-1]}},null,{id:"neg",min:1,stackDelta:0,stackFn(e,t){e[t-1]=-e[t-1]}},{id:"eq",min:2,stackDelta:-1},null,null,{id:"drop",min:1,stackDelta:-1},null,{id:"put",min:2,stackDelta:-2},{id:"get",min:1,stackDelta:0},{id:"ifelse",min:4,stackDelta:-3},{id:"random",min:0,stackDelta:1},{id:"mul",min:2,stackDelta:-1,stackFn(e,t){e[t-2]=e[t-2]*e[t-1]}},null,{id:"sqrt",min:1,stackDelta:0},{id:"dup",min:1,stackDelta:1},{id:"exch",min:2,stackDelta:0},{id:"index",min:2,stackDelta:0},{id:"roll",min:3,stackDelta:-2},null,null,null,{id:"hflex",min:7,resetStack:!0},{id:"flex",min:13,resetStack:!0},{id:"hflex1",min:9,resetStack:!0},{id:"flex1",min:11,resetStack:!0}];t.CFFParser=class CFFParser{constructor(e,t,a){this.bytes=e.getBytes();this.properties=t;this.seacAnalysisEnabled=!!a}parse(){const e=this.properties,t=new CFF;this.cff=t;const a=this.parseHeader(),r=this.parseIndex(a.endPos),n=this.parseIndex(r.endPos),i=this.parseIndex(n.endPos),s=this.parseIndex(i.endPos),o=this.parseDict(n.obj.get(0)),c=this.createDict(CFFTopDict,o,t.strings);t.header=a.obj;t.names=this.parseNameIndex(r.obj);t.strings=this.parseStringIndex(i.obj);t.topDict=c;t.globalSubrIndex=s.obj;this.parsePrivateDict(t.topDict);t.isCIDFont=c.hasName("ROS");const l=c.getByName("CharStrings"),h=this.parseIndex(l).obj,u=c.getByName("FontMatrix");u&&(e.fontMatrix=u);const d=c.getByName("FontBBox");if(d){e.ascent=Math.max(d[3],d[1]);e.descent=Math.min(d[1],d[3]);e.ascentScaled=!0}let f,g;if(t.isCIDFont){const e=this.parseIndex(c.getByName("FDArray")).obj;for(let a=0,r=e.count;a=t)throw new r.FormatError("Invalid CFF header");if(0!==a){(0,r.info)("cff data is shifted");e=e.subarray(a);this.bytes=e}const n=e[0],i=e[1],s=e[2],o=e[3];return{obj:new CFFHeader(n,i,s,o),endPos:s}}parseDict(e){let t=0;function parseOperand(){let a=e[t++];if(30===a)return function parseFloatOperand(){let a="";const r=15,n=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"],i=e.length;for(;t>4,o=15&i;if(s===r)break;a+=n[s];if(o===r)break;a+=n[o]}return parseFloat(a)}();if(28===a){a=e[t++];a=(a<<24|e[t++]<<16)>>16;return a}if(29===a){a=e[t++];a=a<<8|e[t++];a=a<<8|e[t++];a=a<<8|e[t++];return a}if(a>=32&&a<=246)return a-139;if(a>=247&&a<=250)return 256*(a-247)+e[t++]+108;if(a>=251&&a<=254)return-256*(a-251)-e[t++]-108;(0,r.warn)('CFFParser_parseDict: "'+a+'" is a reserved command.');return NaN}let a=[];const n=[];t=0;const i=e.length;for(;t10)return!1;let i=e.stackSize;const s=e.stack;let o=t.length;for(let h=0;h>16;h+=2;i++}else if(14===u){if(i>=4){i-=4;if(this.seacAnalysisEnabled){e.seac=s.slice(i,i+4);return!1}}d=c[u]}else if(u>=32&&u<=246){s[i]=u-139;i++}else if(u>=247&&u<=254){s[i]=u<251?(u-247<<8)+t[h]+108:-(u-251<<8)-t[h]-108;h++;i++}else if(255===u){s[i]=(t[h]<<24|t[h+1]<<16|t[h+2]<<8|t[h+3])/65536;h+=4;i++}else if(19===u||20===u){e.hints+=i>>1;h+=e.hints+7>>3;i%=2;d=c[u]}else{if(10===u||29===u){let t;t=10===u?a:n;if(!t){d=c[u];(0,r.warn)("Missing subrsIndex for "+d.id);return!1}let o=32768;t.count<1240?o=107:t.count<33900&&(o=1131);const l=s[--i]+o;if(l<0||l>=t.count||isNaN(l)){d=c[u];(0,r.warn)("Out of bounds subrIndex for "+d.id);return!1}e.stackSize=i;e.callDepth++;if(!this.parseCharString(e,t.get(l),a,n))return!1;e.callDepth--;i=e.stackSize;continue}if(11===u){e.stackSize=i;return!0}if(0===u&&h===t.length){t[h-1]=14;d=c[14]}else{if(9===u){t.copyWithin(h-1,h,-1);h-=1;o-=1;continue}d=c[u]}}if(d){if(d.stem){e.hints+=i>>1;if(3===u||23===u)e.hasVStems=!0;else if(e.hasVStems&&(1===u||18===u)){(0,r.warn)("CFF stem hints are in wrong order");t[h-1]=1===u?3:23}}if("min"in d&&!e.undefStack&&i=2&&d.stem?i%=2:i>1&&(0,r.warn)("Found too many parameters for stack-clearing command");i>0&&(e.width=s[i-1])}if("stackDelta"in d){"stackFn"in d&&d.stackFn(s,i);i+=d.stackDelta}else if(d.stackClearing)i=0;else if(d.resetStack){i=0;e.undefStack=!1}else if(d.undefStack){i=0;e.undefStack=!0;e.firstStackClearing=!1}}}o=i.length){(0,r.warn)("Invalid fd index for glyph index.");d=!1}if(d){g=i[e].privateDict;f=g.subrsIndex}}else t&&(f=t);d&&(d=this.parseCharString(u,l,f,a));if(null!==u.width){const e=g.getByName("nominalWidthX");c[h]=e+u.width}else{const e=g.getByName("defaultWidthX");c[h]=e}null!==u.seac&&(o[h]=u.seac);d||e.set(h,new Uint8Array([14]))}return{charStrings:e,seacs:o,widths:c}}emptyPrivateDictionary(e){const t=this.createDict(CFFPrivateDict,[],e.strings);e.setByKey(18,[0,0]);e.privateDict=t}parsePrivateDict(e){if(!e.hasName("Private")){this.emptyPrivateDictionary(e);return}const t=e.getByName("Private");if(!Array.isArray(t)||2!==t.length){e.removeByName("Private");return}const a=t[0],r=t[1];if(0===a||r>=this.bytes.length){this.emptyPrivateDictionary(e);return}const n=r+a,i=this.bytes.subarray(r,n),s=this.parseDict(i),o=this.createDict(CFFPrivateDict,s,e.strings);e.privateDict=o;0===o.getByName("ExpansionFactor")&&o.setByName("ExpansionFactor",.06);if(!o.getByName("Subrs"))return;const c=o.getByName("Subrs"),l=r+c;if(0===c||l>=this.bytes.length){this.emptyPrivateDictionary(e);return}const h=this.parseIndex(l);o.subrsIndex=h.obj}parseCharsets(e,t,a,i){if(0===e)return new CFFCharset(!0,d.ISO_ADOBE,n.ISOAdobeCharset);if(1===e)return new CFFCharset(!0,d.EXPERT,n.ExpertCharset);if(2===e)return new CFFCharset(!0,d.EXPERT_SUBSET,n.ExpertSubsetCharset);const s=this.bytes,o=e,c=s[e++],l=[i?0:".notdef"];let h,u,f;t-=1;switch(c){case 0:for(f=0;f=65535){(0,r.warn)("Not enough space in charstrings to duplicate first glyph.");return}const e=this.charStrings.get(0);this.charStrings.add(e);this.isCIDFont&&this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0])}hasGlyphId(e){if(e<0||e>=this.charStrings.count)return!1;return this.charStrings.get(e).length>0}}t.CFF=CFF;class CFFHeader{constructor(e,t,a,r){this.major=e;this.minor=t;this.hdrSize=a;this.offSize=r}}t.CFFHeader=CFFHeader;class CFFStrings{constructor(){this.strings=[]}get(e){return e>=0&&e<=390?s[e]:e-o<=this.strings.length?this.strings[e-o]:s[0]}getSID(e){let t=s.indexOf(e);if(-1!==t)return t;t=this.strings.indexOf(e);return-1!==t?t+o:-1}add(e){this.strings.push(e)}get count(){return this.strings.length}}t.CFFStrings=CFFStrings;class CFFIndex{constructor(){this.objects=[];this.length=0}add(e){this.length+=e.length;this.objects.push(e)}set(e,t){this.length+=t.length-this.objects[e].length;this.objects[e]=t}get(e){return this.objects[e]}get count(){return this.objects.length}}t.CFFIndex=CFFIndex;class CFFDict{constructor(e,t){this.keyToNameMap=e.keyToNameMap;this.nameToKeyMap=e.nameToKeyMap;this.defaults=e.defaults;this.types=e.types;this.opcodes=e.opcodes;this.order=e.order;this.strings=t;this.values=Object.create(null)}setByKey(e,t){if(!(e in this.keyToNameMap))return!1;if(0===t.length)return!0;for(const a of t)if(isNaN(a)){(0,r.warn)(`Invalid CFFDict value: "${t}" for key "${e}".`);return!0}const a=this.types[e];"num"!==a&&"sid"!==a&&"offset"!==a||(t=t[0]);this.values[e]=t;return!0}setByName(e,t){if(!(e in this.nameToKeyMap))throw new r.FormatError(`Invalid dictionary name "${e}"`);this.values[this.nameToKeyMap[e]]=t}hasName(e){return this.nameToKeyMap[e]in this.values}getByName(e){if(!(e in this.nameToKeyMap))throw new r.FormatError(`Invalid dictionary name ${e}"`);const t=this.nameToKeyMap[e];return t in this.values?this.values[t]:this.defaults[t]}removeByName(e){delete this.values[this.nameToKeyMap[e]]}static createTables(e){const t={keyToNameMap:{},nameToKeyMap:{},defaults:{},types:{},opcodes:{},order:[]};for(const a of e){const e=Array.isArray(a[0])?(a[0][0]<<8)+a[0][1]:a[0];t.keyToNameMap[e]=a[1];t.nameToKeyMap[a[1]]=e;t.types[e]=a[2];t.defaults[e]=a[3];t.opcodes[e]=Array.isArray(a[0])?a[0]:[a[0]];t.order.push(e)}return t}}const h=[[[12,30],"ROS",["sid","sid","num"],null],[[12,20],"SyntheticBase","num",null],[0,"version","sid",null],[1,"Notice","sid",null],[[12,0],"Copyright","sid",null],[2,"FullName","sid",null],[3,"FamilyName","sid",null],[4,"Weight","sid",null],[[12,1],"isFixedPitch","num",0],[[12,2],"ItalicAngle","num",0],[[12,3],"UnderlinePosition","num",-100],[[12,4],"UnderlineThickness","num",50],[[12,5],"PaintType","num",0],[[12,6],"CharstringType","num",2],[[12,7],"FontMatrix",["num","num","num","num","num","num"],[.001,0,0,.001,0,0]],[13,"UniqueID","num",null],[5,"FontBBox",["num","num","num","num"],[0,0,0,0]],[[12,8],"StrokeWidth","num",0],[14,"XUID","array",null],[15,"charset","offset",0],[16,"Encoding","offset",0],[17,"CharStrings","offset",0],[18,"Private",["offset","offset"],null],[[12,21],"PostScript","sid",null],[[12,22],"BaseFontName","sid",null],[[12,23],"BaseFontBlend","delta",null],[[12,31],"CIDFontVersion","num",0],[[12,32],"CIDFontRevision","num",0],[[12,33],"CIDFontType","num",0],[[12,34],"CIDCount","num",8720],[[12,35],"UIDBase","num",null],[[12,37],"FDSelect","offset",null],[[12,36],"FDArray","offset",null],[[12,38],"FontName","sid",null]];class CFFTopDict extends CFFDict{static get tables(){return(0,r.shadow)(this,"tables",this.createTables(h))}constructor(e){super(CFFTopDict.tables,e);this.privateDict=null}}t.CFFTopDict=CFFTopDict;const u=[[6,"BlueValues","delta",null],[7,"OtherBlues","delta",null],[8,"FamilyBlues","delta",null],[9,"FamilyOtherBlues","delta",null],[[12,9],"BlueScale","num",.039625],[[12,10],"BlueShift","num",7],[[12,11],"BlueFuzz","num",1],[10,"StdHW","num",null],[11,"StdVW","num",null],[[12,12],"StemSnapH","delta",null],[[12,13],"StemSnapV","delta",null],[[12,14],"ForceBold","num",0],[[12,17],"LanguageGroup","num",0],[[12,18],"ExpansionFactor","num",.06],[[12,19],"initialRandomSeed","num",0],[20,"defaultWidthX","num",0],[21,"nominalWidthX","num",0],[19,"Subrs","offset",null]];class CFFPrivateDict extends CFFDict{static get tables(){return(0,r.shadow)(this,"tables",this.createTables(u))}constructor(e){super(CFFPrivateDict.tables,e);this.subrsIndex=null}}t.CFFPrivateDict=CFFPrivateDict;const d={ISO_ADOBE:0,EXPERT:1,EXPERT_SUBSET:2};class CFFCharset{constructor(e,t,a,r){this.predefined=e;this.format=t;this.charset=a;this.raw=r}}t.CFFCharset=CFFCharset;class CFFEncoding{constructor(e,t,a,r){this.predefined=e;this.format=t;this.encoding=a;this.raw=r}}class CFFFDSelect{constructor(e,t){this.format=e;this.fdSelect=t}getFDIndex(e){return e<0||e>=this.fdSelect.length?-1:this.fdSelect[e]}}t.CFFFDSelect=CFFFDSelect;class CFFOffsetTracker{constructor(){this.offsets=Object.create(null)}isTracking(e){return e in this.offsets}track(e,t){if(e in this.offsets)throw new r.FormatError(`Already tracking location of ${e}`);this.offsets[e]=t}offset(e){for(const t in this.offsets)this.offsets[t]+=e}setEntryLocation(e,t,a){if(!(e in this.offsets))throw new r.FormatError(`Not tracking location of ${e}`);const n=a.data,i=this.offsets[e];for(let e=0,a=t.length;e>24&255;n[o]=h>>16&255;n[c]=h>>8&255;n[l]=255&h}}}class CFFCompiler{constructor(e){this.cff=e}compile(){const e=this.cff,t={data:[],length:0,add(e){this.data=this.data.concat(e);this.length=this.data.length}},a=this.compileHeader(e.header);t.add(a);const n=this.compileNameIndex(e.names);t.add(n);if(e.isCIDFont&&e.topDict.hasName("FontMatrix")){const t=e.topDict.getByName("FontMatrix");e.topDict.removeByName("FontMatrix");for(const a of e.fdArray){let e=t.slice(0);a.hasName("FontMatrix")&&(e=r.Util.transform(e,a.getByName("FontMatrix")));a.setByName("FontMatrix",e)}}const i=e.topDict.getByName("XUID");i&&i.length>16&&e.topDict.removeByName("XUID");e.topDict.setByName("charset",0);let s=this.compileTopDicts([e.topDict],t.length,e.isCIDFont);t.add(s.output);const o=s.trackers[0],c=this.compileStringIndex(e.strings.strings);t.add(c);const l=this.compileIndex(e.globalSubrIndex);t.add(l);if(e.encoding&&e.topDict.hasName("Encoding"))if(e.encoding.predefined)o.setEntryLocation("Encoding",[e.encoding.format],t);else{const a=this.compileEncoding(e.encoding);o.setEntryLocation("Encoding",[t.length],t);t.add(a)}const h=this.compileCharset(e.charset,e.charStrings.count,e.strings,e.isCIDFont);o.setEntryLocation("charset",[t.length],t);t.add(h);const u=this.compileCharStrings(e.charStrings);o.setEntryLocation("CharStrings",[t.length],t);t.add(u);if(e.isCIDFont){o.setEntryLocation("FDSelect",[t.length],t);const a=this.compileFDSelect(e.fdSelect);t.add(a);s=this.compileTopDicts(e.fdArray,t.length,!0);o.setEntryLocation("FDArray",[t.length],t);t.add(s.output);const r=s.trackers;this.compilePrivateDicts(e.fdArray,r,t)}this.compilePrivateDicts([e.topDict],[o],t);t.add([0]);return t.data}encodeNumber(e){return Number.isInteger(e)?this.encodeInteger(e):this.encodeFloat(e)}static get EncodeFloatRegExp(){return(0,r.shadow)(this,"EncodeFloatRegExp",/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/)}encodeFloat(e){let t=e.toString();const a=CFFCompiler.EncodeFloatRegExp.exec(t);if(a){const r=parseFloat("1e"+((a[2]?+a[2]:0)+a[1].length));t=(Math.round(e*r)/r).toString()}let r,n,i="";for(r=0,n=t.length;r=-107&&e<=107?[e+139]:e>=108&&e<=1131?[247+((e-=108)>>8),255&e]:e>=-1131&&e<=-108?[251+((e=-e-108)>>8),255&e]:e>=-32768&&e<=32767?[28,e>>8&255,255&e]:[29,e>>24&255,e>>16&255,e>>8&255,255&e];return t}compileHeader(e){return[e.major,e.minor,4,e.offSize]}compileNameIndex(e){const t=new CFFIndex;for(const a of e){const e=Math.min(a.length,127);let n=new Array(e);for(let t=0;t"~"||"["===e||"]"===e||"("===e||")"===e||"{"===e||"}"===e||"<"===e||">"===e||"/"===e||"%"===e)&&(e="_");n[t]=e}n=n.join("");""===n&&(n="Bad_Font_Name");t.add((0,r.stringToBytes)(n))}return this.compileIndex(t)}compileTopDicts(e,t,a){const r=[];let n=new CFFIndex;for(const i of e){if(a){i.removeByName("CIDFontVersion");i.removeByName("CIDFontRevision");i.removeByName("CIDFontType");i.removeByName("CIDCount");i.removeByName("UIDBase")}const e=new CFFOffsetTracker,s=this.compileDict(i,e);r.push(e);n.add(s);e.offset(t)}n=this.compileIndex(n,r);return{trackers:r,output:n}}compilePrivateDicts(e,t,a){for(let n=0,i=e.length;n>8&255,255&s]);else{i=new Uint8Array(1+2*s);i[0]=0;let t=0;const n=e.charset.length;let o=!1;for(let s=1;s>8&255;i[s+1]=255&c}}return this.compileTypedArray(i)}compileEncoding(e){return this.compileTypedArray(e.raw)}compileFDSelect(e){const t=e.format;let a,r;switch(t){case 0:a=new Uint8Array(1+e.fdSelect.length);a[0]=t;for(r=0;r>8&255,255&n,i];for(r=1;r>8&255,255&r,t);i=t}}const o=(s.length-3)/3;s[1]=o>>8&255;s[2]=255&o;s.push(r>>8&255,255&r);a=new Uint8Array(s)}return this.compileTypedArray(a)}compileTypedArray(e){const t=[];for(let a=0,r=e.length;a>8&255,255&r];let i,s,o=1;for(i=0;i>8&255,255&c):3===s?n.push(c>>16&255,c>>8&255,255&c):n.push(c>>>24&255,c>>16&255,c>>8&255,255&c);a[i]&&(c+=a[i].length)}for(i=0;i{Object.defineProperty(t,"__esModule",{value:!0});t.ISOAdobeCharset=t.ExpertSubsetCharset=t.ExpertCharset=void 0;t.ISOAdobeCharset=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"];t.ExpertCharset=[".notdef","space","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"];t.ExpertSubsetCharset=[".notdef","space","dollaroldstyle","dollarsuperior","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","hyphensuperior","colonmonetary","onefitted","rupiah","centoldstyle","figuredash","hypheninferior","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior"]},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ZapfDingbatsEncoding=t.WinAnsiEncoding=t.SymbolSetEncoding=t.StandardEncoding=t.MacRomanEncoding=t.ExpertEncoding=void 0;t.getEncoding=function getEncoding(e){switch(e){case"WinAnsiEncoding":return s;case"StandardEncoding":return i;case"MacRomanEncoding":return n;case"SymbolSetEncoding":return o;case"ZapfDingbatsEncoding":return c;case"ExpertEncoding":return a;case"MacExpertEncoding":return r;default:return null}};const a=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"];t.ExpertEncoding=a;const r=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","centoldstyle","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","","threequartersemdash","","questionsmall","","","","","Ethsmall","","","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","","","","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hypheninferior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","asuperior","centsuperior","","","","","Aacutesmall","Agravesmall","Acircumflexsmall","Adieresissmall","Atildesmall","Aringsmall","Ccedillasmall","Eacutesmall","Egravesmall","Ecircumflexsmall","Edieresissmall","Iacutesmall","Igravesmall","Icircumflexsmall","Idieresissmall","Ntildesmall","Oacutesmall","Ogravesmall","Ocircumflexsmall","Odieresissmall","Otildesmall","Uacutesmall","Ugravesmall","Ucircumflexsmall","Udieresissmall","","eightsuperior","fourinferior","threeinferior","sixinferior","eightinferior","seveninferior","Scaronsmall","","centinferior","twoinferior","","Dieresissmall","","Caronsmall","osuperior","fiveinferior","","commainferior","periodinferior","Yacutesmall","","dollarinferior","","","Thornsmall","","nineinferior","zeroinferior","Zcaronsmall","AEsmall","Oslashsmall","questiondownsmall","oneinferior","Lslashsmall","","","","","","","Cedillasmall","","","","","","OEsmall","figuredash","hyphensuperior","","","","","exclamdownsmall","","Ydieresissmall","","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","ninesuperior","zerosuperior","","esuperior","rsuperior","tsuperior","","","isuperior","ssuperior","dsuperior","","","","","","lsuperior","Ogoneksmall","Brevesmall","Macronsmall","bsuperior","nsuperior","msuperior","commasuperior","periodsuperior","Dotaccentsmall","Ringsmall","","","",""],n=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","space","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron"];t.MacRomanEncoding=n;const i=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls","","","",""];t.StandardEncoding=i;const s=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","bullet","Euro","bullet","quotesinglbase","florin","quotedblbase","ellipsis","dagger","daggerdbl","circumflex","perthousand","Scaron","guilsinglleft","OE","bullet","Zcaron","bullet","bullet","quoteleft","quoteright","quotedblleft","quotedblright","bullet","endash","emdash","tilde","trademark","scaron","guilsinglright","oe","bullet","zcaron","Ydieresis","space","exclamdown","cent","sterling","currency","yen","brokenbar","section","dieresis","copyright","ordfeminine","guillemotleft","logicalnot","hyphen","registered","macron","degree","plusminus","twosuperior","threesuperior","acute","mu","paragraph","periodcentered","cedilla","onesuperior","ordmasculine","guillemotright","onequarter","onehalf","threequarters","questiondown","Agrave","Aacute","Acircumflex","Atilde","Adieresis","Aring","AE","Ccedilla","Egrave","Eacute","Ecircumflex","Edieresis","Igrave","Iacute","Icircumflex","Idieresis","Eth","Ntilde","Ograve","Oacute","Ocircumflex","Otilde","Odieresis","multiply","Oslash","Ugrave","Uacute","Ucircumflex","Udieresis","Yacute","Thorn","germandbls","agrave","aacute","acircumflex","atilde","adieresis","aring","ae","ccedilla","egrave","eacute","ecircumflex","edieresis","igrave","iacute","icircumflex","idieresis","eth","ntilde","ograve","oacute","ocircumflex","otilde","odieresis","divide","oslash","ugrave","uacute","ucircumflex","udieresis","yacute","thorn","ydieresis"];t.WinAnsiEncoding=s;const o=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","universal","numbersign","existential","percent","ampersand","suchthat","parenleft","parenright","asteriskmath","plus","comma","minus","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","congruent","Alpha","Beta","Chi","Delta","Epsilon","Phi","Gamma","Eta","Iota","theta1","Kappa","Lambda","Mu","Nu","Omicron","Pi","Theta","Rho","Sigma","Tau","Upsilon","sigma1","Omega","Xi","Psi","Zeta","bracketleft","therefore","bracketright","perpendicular","underscore","radicalex","alpha","beta","chi","delta","epsilon","phi","gamma","eta","iota","phi1","kappa","lambda","mu","nu","omicron","pi","theta","rho","sigma","tau","upsilon","omega1","omega","xi","psi","zeta","braceleft","bar","braceright","similar","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Euro","Upsilon1","minute","lessequal","fraction","infinity","florin","club","diamond","heart","spade","arrowboth","arrowleft","arrowup","arrowright","arrowdown","degree","plusminus","second","greaterequal","multiply","proportional","partialdiff","bullet","divide","notequal","equivalence","approxequal","ellipsis","arrowvertex","arrowhorizex","carriagereturn","aleph","Ifraktur","Rfraktur","weierstrass","circlemultiply","circleplus","emptyset","intersection","union","propersuperset","reflexsuperset","notsubset","propersubset","reflexsubset","element","notelement","angle","gradient","registerserif","copyrightserif","trademarkserif","product","radical","dotmath","logicalnot","logicaland","logicalor","arrowdblboth","arrowdblleft","arrowdblup","arrowdblright","arrowdbldown","lozenge","angleleft","registersans","copyrightsans","trademarksans","summation","parenlefttp","parenleftex","parenleftbt","bracketlefttp","bracketleftex","bracketleftbt","bracelefttp","braceleftmid","braceleftbt","braceex","","angleright","integral","integraltp","integralex","integralbt","parenrighttp","parenrightex","parenrightbt","bracketrighttp","bracketrightex","bracketrightbt","bracerighttp","bracerightmid","bracerightbt",""];t.SymbolSetEncoding=o;const c=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","a1","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","","","","","","","","","","","","","","","","","","","","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191",""];t.ZapfDingbatsEncoding=c},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.SEAC_ANALYSIS_ENABLED=t.MacStandardGlyphOrdering=t.FontFlags=void 0;t.normalizeFontName=function normalizeFontName(e){return e.replace(/[,_]/g,"-").replace(/\s/g,"")};t.recoverGlyphName=recoverGlyphName;t.type1FontGlyphMapping=function type1FontGlyphMapping(e,t,a){const i=Object.create(null);let s,c,l;const h=!!(e.flags&o.Symbolic);if(e.isInternalFont){l=t;for(c=0;c=0?s:0}}else if(e.baseEncodingName){l=(0,r.getEncoding)(e.baseEncodingName);for(c=0;c=0?s:0}}else if(h)for(c in t)i[c]=t[c];else{l=r.StandardEncoding;for(c=0;c=0?s:0}}const u=e.differences;let d;if(u)for(c in u){const e=u[c];s=a.indexOf(e);if(-1===s){d||(d=(0,n.getGlyphsUnicode)());const t=recoverGlyphName(e,d);t!==e&&(s=a.indexOf(t))}i[c]=s>=0?s:0}return i};var r=a(35),n=a(37),i=a(38),s=a(2);t.SEAC_ANALYSIS_ENABLED=!0;const o={FixedPitch:1,Serif:2,Symbolic:4,Script:8,Nonsymbolic:32,Italic:64,AllCap:65536,SmallCap:131072,ForceBold:262144};t.FontFlags=o;t.MacStandardGlyphOrdering=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"];function recoverGlyphName(e,t){if(void 0!==t[e])return e;const a=(0,i.getUnicodeForGlyph)(e,t);if(-1!==a)for(const e in t)if(t[e]===a)return e;(0,s.info)("Unable to recover a standard glyph name for: "+e);return e}},(e,t,a)=>{a.r(t);a.d(t,{getDingbatsGlyphsUnicode:()=>i,getGlyphsUnicode:()=>n});var r=a(4);const n=(0,r.getArrayLookupTableFactory)((function(){return["A",65,"AE",198,"AEacute",508,"AEmacron",482,"AEsmall",63462,"Aacute",193,"Aacutesmall",63457,"Abreve",258,"Abreveacute",7854,"Abrevecyrillic",1232,"Abrevedotbelow",7862,"Abrevegrave",7856,"Abrevehookabove",7858,"Abrevetilde",7860,"Acaron",461,"Acircle",9398,"Acircumflex",194,"Acircumflexacute",7844,"Acircumflexdotbelow",7852,"Acircumflexgrave",7846,"Acircumflexhookabove",7848,"Acircumflexsmall",63458,"Acircumflextilde",7850,"Acute",63177,"Acutesmall",63412,"Acyrillic",1040,"Adblgrave",512,"Adieresis",196,"Adieresiscyrillic",1234,"Adieresismacron",478,"Adieresissmall",63460,"Adotbelow",7840,"Adotmacron",480,"Agrave",192,"Agravesmall",63456,"Ahookabove",7842,"Aiecyrillic",1236,"Ainvertedbreve",514,"Alpha",913,"Alphatonos",902,"Amacron",256,"Amonospace",65313,"Aogonek",260,"Aring",197,"Aringacute",506,"Aringbelow",7680,"Aringsmall",63461,"Asmall",63329,"Atilde",195,"Atildesmall",63459,"Aybarmenian",1329,"B",66,"Bcircle",9399,"Bdotaccent",7682,"Bdotbelow",7684,"Becyrillic",1041,"Benarmenian",1330,"Beta",914,"Bhook",385,"Blinebelow",7686,"Bmonospace",65314,"Brevesmall",63220,"Bsmall",63330,"Btopbar",386,"C",67,"Caarmenian",1342,"Cacute",262,"Caron",63178,"Caronsmall",63221,"Ccaron",268,"Ccedilla",199,"Ccedillaacute",7688,"Ccedillasmall",63463,"Ccircle",9400,"Ccircumflex",264,"Cdot",266,"Cdotaccent",266,"Cedillasmall",63416,"Chaarmenian",1353,"Cheabkhasiancyrillic",1212,"Checyrillic",1063,"Chedescenderabkhasiancyrillic",1214,"Chedescendercyrillic",1206,"Chedieresiscyrillic",1268,"Cheharmenian",1347,"Chekhakassiancyrillic",1227,"Cheverticalstrokecyrillic",1208,"Chi",935,"Chook",391,"Circumflexsmall",63222,"Cmonospace",65315,"Coarmenian",1361,"Csmall",63331,"D",68,"DZ",497,"DZcaron",452,"Daarmenian",1332,"Dafrican",393,"Dcaron",270,"Dcedilla",7696,"Dcircle",9401,"Dcircumflexbelow",7698,"Dcroat",272,"Ddotaccent",7690,"Ddotbelow",7692,"Decyrillic",1044,"Deicoptic",1006,"Delta",8710,"Deltagreek",916,"Dhook",394,"Dieresis",63179,"DieresisAcute",63180,"DieresisGrave",63181,"Dieresissmall",63400,"Digammagreek",988,"Djecyrillic",1026,"Dlinebelow",7694,"Dmonospace",65316,"Dotaccentsmall",63223,"Dslash",272,"Dsmall",63332,"Dtopbar",395,"Dz",498,"Dzcaron",453,"Dzeabkhasiancyrillic",1248,"Dzecyrillic",1029,"Dzhecyrillic",1039,"E",69,"Eacute",201,"Eacutesmall",63465,"Ebreve",276,"Ecaron",282,"Ecedillabreve",7708,"Echarmenian",1333,"Ecircle",9402,"Ecircumflex",202,"Ecircumflexacute",7870,"Ecircumflexbelow",7704,"Ecircumflexdotbelow",7878,"Ecircumflexgrave",7872,"Ecircumflexhookabove",7874,"Ecircumflexsmall",63466,"Ecircumflextilde",7876,"Ecyrillic",1028,"Edblgrave",516,"Edieresis",203,"Edieresissmall",63467,"Edot",278,"Edotaccent",278,"Edotbelow",7864,"Efcyrillic",1060,"Egrave",200,"Egravesmall",63464,"Eharmenian",1335,"Ehookabove",7866,"Eightroman",8551,"Einvertedbreve",518,"Eiotifiedcyrillic",1124,"Elcyrillic",1051,"Elevenroman",8554,"Emacron",274,"Emacronacute",7702,"Emacrongrave",7700,"Emcyrillic",1052,"Emonospace",65317,"Encyrillic",1053,"Endescendercyrillic",1186,"Eng",330,"Enghecyrillic",1188,"Enhookcyrillic",1223,"Eogonek",280,"Eopen",400,"Epsilon",917,"Epsilontonos",904,"Ercyrillic",1056,"Ereversed",398,"Ereversedcyrillic",1069,"Escyrillic",1057,"Esdescendercyrillic",1194,"Esh",425,"Esmall",63333,"Eta",919,"Etarmenian",1336,"Etatonos",905,"Eth",208,"Ethsmall",63472,"Etilde",7868,"Etildebelow",7706,"Euro",8364,"Ezh",439,"Ezhcaron",494,"Ezhreversed",440,"F",70,"Fcircle",9403,"Fdotaccent",7710,"Feharmenian",1366,"Feicoptic",996,"Fhook",401,"Fitacyrillic",1138,"Fiveroman",8548,"Fmonospace",65318,"Fourroman",8547,"Fsmall",63334,"G",71,"GBsquare",13191,"Gacute",500,"Gamma",915,"Gammaafrican",404,"Gangiacoptic",1002,"Gbreve",286,"Gcaron",486,"Gcedilla",290,"Gcircle",9404,"Gcircumflex",284,"Gcommaaccent",290,"Gdot",288,"Gdotaccent",288,"Gecyrillic",1043,"Ghadarmenian",1346,"Ghemiddlehookcyrillic",1172,"Ghestrokecyrillic",1170,"Gheupturncyrillic",1168,"Ghook",403,"Gimarmenian",1331,"Gjecyrillic",1027,"Gmacron",7712,"Gmonospace",65319,"Grave",63182,"Gravesmall",63328,"Gsmall",63335,"Gsmallhook",667,"Gstroke",484,"H",72,"H18533",9679,"H18543",9642,"H18551",9643,"H22073",9633,"HPsquare",13259,"Haabkhasiancyrillic",1192,"Hadescendercyrillic",1202,"Hardsigncyrillic",1066,"Hbar",294,"Hbrevebelow",7722,"Hcedilla",7720,"Hcircle",9405,"Hcircumflex",292,"Hdieresis",7718,"Hdotaccent",7714,"Hdotbelow",7716,"Hmonospace",65320,"Hoarmenian",1344,"Horicoptic",1e3,"Hsmall",63336,"Hungarumlaut",63183,"Hungarumlautsmall",63224,"Hzsquare",13200,"I",73,"IAcyrillic",1071,"IJ",306,"IUcyrillic",1070,"Iacute",205,"Iacutesmall",63469,"Ibreve",300,"Icaron",463,"Icircle",9406,"Icircumflex",206,"Icircumflexsmall",63470,"Icyrillic",1030,"Idblgrave",520,"Idieresis",207,"Idieresisacute",7726,"Idieresiscyrillic",1252,"Idieresissmall",63471,"Idot",304,"Idotaccent",304,"Idotbelow",7882,"Iebrevecyrillic",1238,"Iecyrillic",1045,"Ifraktur",8465,"Igrave",204,"Igravesmall",63468,"Ihookabove",7880,"Iicyrillic",1048,"Iinvertedbreve",522,"Iishortcyrillic",1049,"Imacron",298,"Imacroncyrillic",1250,"Imonospace",65321,"Iniarmenian",1339,"Iocyrillic",1025,"Iogonek",302,"Iota",921,"Iotaafrican",406,"Iotadieresis",938,"Iotatonos",906,"Ismall",63337,"Istroke",407,"Itilde",296,"Itildebelow",7724,"Izhitsacyrillic",1140,"Izhitsadblgravecyrillic",1142,"J",74,"Jaarmenian",1345,"Jcircle",9407,"Jcircumflex",308,"Jecyrillic",1032,"Jheharmenian",1355,"Jmonospace",65322,"Jsmall",63338,"K",75,"KBsquare",13189,"KKsquare",13261,"Kabashkircyrillic",1184,"Kacute",7728,"Kacyrillic",1050,"Kadescendercyrillic",1178,"Kahookcyrillic",1219,"Kappa",922,"Kastrokecyrillic",1182,"Kaverticalstrokecyrillic",1180,"Kcaron",488,"Kcedilla",310,"Kcircle",9408,"Kcommaaccent",310,"Kdotbelow",7730,"Keharmenian",1364,"Kenarmenian",1343,"Khacyrillic",1061,"Kheicoptic",998,"Khook",408,"Kjecyrillic",1036,"Klinebelow",7732,"Kmonospace",65323,"Koppacyrillic",1152,"Koppagreek",990,"Ksicyrillic",1134,"Ksmall",63339,"L",76,"LJ",455,"LL",63167,"Lacute",313,"Lambda",923,"Lcaron",317,"Lcedilla",315,"Lcircle",9409,"Lcircumflexbelow",7740,"Lcommaaccent",315,"Ldot",319,"Ldotaccent",319,"Ldotbelow",7734,"Ldotbelowmacron",7736,"Liwnarmenian",1340,"Lj",456,"Ljecyrillic",1033,"Llinebelow",7738,"Lmonospace",65324,"Lslash",321,"Lslashsmall",63225,"Lsmall",63340,"M",77,"MBsquare",13190,"Macron",63184,"Macronsmall",63407,"Macute",7742,"Mcircle",9410,"Mdotaccent",7744,"Mdotbelow",7746,"Menarmenian",1348,"Mmonospace",65325,"Msmall",63341,"Mturned",412,"Mu",924,"N",78,"NJ",458,"Nacute",323,"Ncaron",327,"Ncedilla",325,"Ncircle",9411,"Ncircumflexbelow",7754,"Ncommaaccent",325,"Ndotaccent",7748,"Ndotbelow",7750,"Nhookleft",413,"Nineroman",8552,"Nj",459,"Njecyrillic",1034,"Nlinebelow",7752,"Nmonospace",65326,"Nowarmenian",1350,"Nsmall",63342,"Ntilde",209,"Ntildesmall",63473,"Nu",925,"O",79,"OE",338,"OEsmall",63226,"Oacute",211,"Oacutesmall",63475,"Obarredcyrillic",1256,"Obarreddieresiscyrillic",1258,"Obreve",334,"Ocaron",465,"Ocenteredtilde",415,"Ocircle",9412,"Ocircumflex",212,"Ocircumflexacute",7888,"Ocircumflexdotbelow",7896,"Ocircumflexgrave",7890,"Ocircumflexhookabove",7892,"Ocircumflexsmall",63476,"Ocircumflextilde",7894,"Ocyrillic",1054,"Odblacute",336,"Odblgrave",524,"Odieresis",214,"Odieresiscyrillic",1254,"Odieresissmall",63478,"Odotbelow",7884,"Ogoneksmall",63227,"Ograve",210,"Ogravesmall",63474,"Oharmenian",1365,"Ohm",8486,"Ohookabove",7886,"Ohorn",416,"Ohornacute",7898,"Ohorndotbelow",7906,"Ohorngrave",7900,"Ohornhookabove",7902,"Ohorntilde",7904,"Ohungarumlaut",336,"Oi",418,"Oinvertedbreve",526,"Omacron",332,"Omacronacute",7762,"Omacrongrave",7760,"Omega",8486,"Omegacyrillic",1120,"Omegagreek",937,"Omegaroundcyrillic",1146,"Omegatitlocyrillic",1148,"Omegatonos",911,"Omicron",927,"Omicrontonos",908,"Omonospace",65327,"Oneroman",8544,"Oogonek",490,"Oogonekmacron",492,"Oopen",390,"Oslash",216,"Oslashacute",510,"Oslashsmall",63480,"Osmall",63343,"Ostrokeacute",510,"Otcyrillic",1150,"Otilde",213,"Otildeacute",7756,"Otildedieresis",7758,"Otildesmall",63477,"P",80,"Pacute",7764,"Pcircle",9413,"Pdotaccent",7766,"Pecyrillic",1055,"Peharmenian",1354,"Pemiddlehookcyrillic",1190,"Phi",934,"Phook",420,"Pi",928,"Piwrarmenian",1363,"Pmonospace",65328,"Psi",936,"Psicyrillic",1136,"Psmall",63344,"Q",81,"Qcircle",9414,"Qmonospace",65329,"Qsmall",63345,"R",82,"Raarmenian",1356,"Racute",340,"Rcaron",344,"Rcedilla",342,"Rcircle",9415,"Rcommaaccent",342,"Rdblgrave",528,"Rdotaccent",7768,"Rdotbelow",7770,"Rdotbelowmacron",7772,"Reharmenian",1360,"Rfraktur",8476,"Rho",929,"Ringsmall",63228,"Rinvertedbreve",530,"Rlinebelow",7774,"Rmonospace",65330,"Rsmall",63346,"Rsmallinverted",641,"Rsmallinvertedsuperior",694,"S",83,"SF010000",9484,"SF020000",9492,"SF030000",9488,"SF040000",9496,"SF050000",9532,"SF060000",9516,"SF070000",9524,"SF080000",9500,"SF090000",9508,"SF100000",9472,"SF110000",9474,"SF190000",9569,"SF200000",9570,"SF210000",9558,"SF220000",9557,"SF230000",9571,"SF240000",9553,"SF250000",9559,"SF260000",9565,"SF270000",9564,"SF280000",9563,"SF360000",9566,"SF370000",9567,"SF380000",9562,"SF390000",9556,"SF400000",9577,"SF410000",9574,"SF420000",9568,"SF430000",9552,"SF440000",9580,"SF450000",9575,"SF460000",9576,"SF470000",9572,"SF480000",9573,"SF490000",9561,"SF500000",9560,"SF510000",9554,"SF520000",9555,"SF530000",9579,"SF540000",9578,"Sacute",346,"Sacutedotaccent",7780,"Sampigreek",992,"Scaron",352,"Scarondotaccent",7782,"Scaronsmall",63229,"Scedilla",350,"Schwa",399,"Schwacyrillic",1240,"Schwadieresiscyrillic",1242,"Scircle",9416,"Scircumflex",348,"Scommaaccent",536,"Sdotaccent",7776,"Sdotbelow",7778,"Sdotbelowdotaccent",7784,"Seharmenian",1357,"Sevenroman",8550,"Shaarmenian",1351,"Shacyrillic",1064,"Shchacyrillic",1065,"Sheicoptic",994,"Shhacyrillic",1210,"Shimacoptic",1004,"Sigma",931,"Sixroman",8549,"Smonospace",65331,"Softsigncyrillic",1068,"Ssmall",63347,"Stigmagreek",986,"T",84,"Tau",932,"Tbar",358,"Tcaron",356,"Tcedilla",354,"Tcircle",9417,"Tcircumflexbelow",7792,"Tcommaaccent",354,"Tdotaccent",7786,"Tdotbelow",7788,"Tecyrillic",1058,"Tedescendercyrillic",1196,"Tenroman",8553,"Tetsecyrillic",1204,"Theta",920,"Thook",428,"Thorn",222,"Thornsmall",63486,"Threeroman",8546,"Tildesmall",63230,"Tiwnarmenian",1359,"Tlinebelow",7790,"Tmonospace",65332,"Toarmenian",1337,"Tonefive",444,"Tonesix",388,"Tonetwo",423,"Tretroflexhook",430,"Tsecyrillic",1062,"Tshecyrillic",1035,"Tsmall",63348,"Twelveroman",8555,"Tworoman",8545,"U",85,"Uacute",218,"Uacutesmall",63482,"Ubreve",364,"Ucaron",467,"Ucircle",9418,"Ucircumflex",219,"Ucircumflexbelow",7798,"Ucircumflexsmall",63483,"Ucyrillic",1059,"Udblacute",368,"Udblgrave",532,"Udieresis",220,"Udieresisacute",471,"Udieresisbelow",7794,"Udieresiscaron",473,"Udieresiscyrillic",1264,"Udieresisgrave",475,"Udieresismacron",469,"Udieresissmall",63484,"Udotbelow",7908,"Ugrave",217,"Ugravesmall",63481,"Uhookabove",7910,"Uhorn",431,"Uhornacute",7912,"Uhorndotbelow",7920,"Uhorngrave",7914,"Uhornhookabove",7916,"Uhorntilde",7918,"Uhungarumlaut",368,"Uhungarumlautcyrillic",1266,"Uinvertedbreve",534,"Ukcyrillic",1144,"Umacron",362,"Umacroncyrillic",1262,"Umacrondieresis",7802,"Umonospace",65333,"Uogonek",370,"Upsilon",933,"Upsilon1",978,"Upsilonacutehooksymbolgreek",979,"Upsilonafrican",433,"Upsilondieresis",939,"Upsilondieresishooksymbolgreek",980,"Upsilonhooksymbol",978,"Upsilontonos",910,"Uring",366,"Ushortcyrillic",1038,"Usmall",63349,"Ustraightcyrillic",1198,"Ustraightstrokecyrillic",1200,"Utilde",360,"Utildeacute",7800,"Utildebelow",7796,"V",86,"Vcircle",9419,"Vdotbelow",7806,"Vecyrillic",1042,"Vewarmenian",1358,"Vhook",434,"Vmonospace",65334,"Voarmenian",1352,"Vsmall",63350,"Vtilde",7804,"W",87,"Wacute",7810,"Wcircle",9420,"Wcircumflex",372,"Wdieresis",7812,"Wdotaccent",7814,"Wdotbelow",7816,"Wgrave",7808,"Wmonospace",65335,"Wsmall",63351,"X",88,"Xcircle",9421,"Xdieresis",7820,"Xdotaccent",7818,"Xeharmenian",1341,"Xi",926,"Xmonospace",65336,"Xsmall",63352,"Y",89,"Yacute",221,"Yacutesmall",63485,"Yatcyrillic",1122,"Ycircle",9422,"Ycircumflex",374,"Ydieresis",376,"Ydieresissmall",63487,"Ydotaccent",7822,"Ydotbelow",7924,"Yericyrillic",1067,"Yerudieresiscyrillic",1272,"Ygrave",7922,"Yhook",435,"Yhookabove",7926,"Yiarmenian",1349,"Yicyrillic",1031,"Yiwnarmenian",1362,"Ymonospace",65337,"Ysmall",63353,"Ytilde",7928,"Yusbigcyrillic",1130,"Yusbigiotifiedcyrillic",1132,"Yuslittlecyrillic",1126,"Yuslittleiotifiedcyrillic",1128,"Z",90,"Zaarmenian",1334,"Zacute",377,"Zcaron",381,"Zcaronsmall",63231,"Zcircle",9423,"Zcircumflex",7824,"Zdot",379,"Zdotaccent",379,"Zdotbelow",7826,"Zecyrillic",1047,"Zedescendercyrillic",1176,"Zedieresiscyrillic",1246,"Zeta",918,"Zhearmenian",1338,"Zhebrevecyrillic",1217,"Zhecyrillic",1046,"Zhedescendercyrillic",1174,"Zhedieresiscyrillic",1244,"Zlinebelow",7828,"Zmonospace",65338,"Zsmall",63354,"Zstroke",437,"a",97,"aabengali",2438,"aacute",225,"aadeva",2310,"aagujarati",2694,"aagurmukhi",2566,"aamatragurmukhi",2622,"aarusquare",13059,"aavowelsignbengali",2494,"aavowelsigndeva",2366,"aavowelsigngujarati",2750,"abbreviationmarkarmenian",1375,"abbreviationsigndeva",2416,"abengali",2437,"abopomofo",12570,"abreve",259,"abreveacute",7855,"abrevecyrillic",1233,"abrevedotbelow",7863,"abrevegrave",7857,"abrevehookabove",7859,"abrevetilde",7861,"acaron",462,"acircle",9424,"acircumflex",226,"acircumflexacute",7845,"acircumflexdotbelow",7853,"acircumflexgrave",7847,"acircumflexhookabove",7849,"acircumflextilde",7851,"acute",180,"acutebelowcmb",791,"acutecmb",769,"acutecomb",769,"acutedeva",2388,"acutelowmod",719,"acutetonecmb",833,"acyrillic",1072,"adblgrave",513,"addakgurmukhi",2673,"adeva",2309,"adieresis",228,"adieresiscyrillic",1235,"adieresismacron",479,"adotbelow",7841,"adotmacron",481,"ae",230,"aeacute",509,"aekorean",12624,"aemacron",483,"afii00208",8213,"afii08941",8356,"afii10017",1040,"afii10018",1041,"afii10019",1042,"afii10020",1043,"afii10021",1044,"afii10022",1045,"afii10023",1025,"afii10024",1046,"afii10025",1047,"afii10026",1048,"afii10027",1049,"afii10028",1050,"afii10029",1051,"afii10030",1052,"afii10031",1053,"afii10032",1054,"afii10033",1055,"afii10034",1056,"afii10035",1057,"afii10036",1058,"afii10037",1059,"afii10038",1060,"afii10039",1061,"afii10040",1062,"afii10041",1063,"afii10042",1064,"afii10043",1065,"afii10044",1066,"afii10045",1067,"afii10046",1068,"afii10047",1069,"afii10048",1070,"afii10049",1071,"afii10050",1168,"afii10051",1026,"afii10052",1027,"afii10053",1028,"afii10054",1029,"afii10055",1030,"afii10056",1031,"afii10057",1032,"afii10058",1033,"afii10059",1034,"afii10060",1035,"afii10061",1036,"afii10062",1038,"afii10063",63172,"afii10064",63173,"afii10065",1072,"afii10066",1073,"afii10067",1074,"afii10068",1075,"afii10069",1076,"afii10070",1077,"afii10071",1105,"afii10072",1078,"afii10073",1079,"afii10074",1080,"afii10075",1081,"afii10076",1082,"afii10077",1083,"afii10078",1084,"afii10079",1085,"afii10080",1086,"afii10081",1087,"afii10082",1088,"afii10083",1089,"afii10084",1090,"afii10085",1091,"afii10086",1092,"afii10087",1093,"afii10088",1094,"afii10089",1095,"afii10090",1096,"afii10091",1097,"afii10092",1098,"afii10093",1099,"afii10094",1100,"afii10095",1101,"afii10096",1102,"afii10097",1103,"afii10098",1169,"afii10099",1106,"afii10100",1107,"afii10101",1108,"afii10102",1109,"afii10103",1110,"afii10104",1111,"afii10105",1112,"afii10106",1113,"afii10107",1114,"afii10108",1115,"afii10109",1116,"afii10110",1118,"afii10145",1039,"afii10146",1122,"afii10147",1138,"afii10148",1140,"afii10192",63174,"afii10193",1119,"afii10194",1123,"afii10195",1139,"afii10196",1141,"afii10831",63175,"afii10832",63176,"afii10846",1241,"afii299",8206,"afii300",8207,"afii301",8205,"afii57381",1642,"afii57388",1548,"afii57392",1632,"afii57393",1633,"afii57394",1634,"afii57395",1635,"afii57396",1636,"afii57397",1637,"afii57398",1638,"afii57399",1639,"afii57400",1640,"afii57401",1641,"afii57403",1563,"afii57407",1567,"afii57409",1569,"afii57410",1570,"afii57411",1571,"afii57412",1572,"afii57413",1573,"afii57414",1574,"afii57415",1575,"afii57416",1576,"afii57417",1577,"afii57418",1578,"afii57419",1579,"afii57420",1580,"afii57421",1581,"afii57422",1582,"afii57423",1583,"afii57424",1584,"afii57425",1585,"afii57426",1586,"afii57427",1587,"afii57428",1588,"afii57429",1589,"afii57430",1590,"afii57431",1591,"afii57432",1592,"afii57433",1593,"afii57434",1594,"afii57440",1600,"afii57441",1601,"afii57442",1602,"afii57443",1603,"afii57444",1604,"afii57445",1605,"afii57446",1606,"afii57448",1608,"afii57449",1609,"afii57450",1610,"afii57451",1611,"afii57452",1612,"afii57453",1613,"afii57454",1614,"afii57455",1615,"afii57456",1616,"afii57457",1617,"afii57458",1618,"afii57470",1607,"afii57505",1700,"afii57506",1662,"afii57507",1670,"afii57508",1688,"afii57509",1711,"afii57511",1657,"afii57512",1672,"afii57513",1681,"afii57514",1722,"afii57519",1746,"afii57534",1749,"afii57636",8362,"afii57645",1470,"afii57658",1475,"afii57664",1488,"afii57665",1489,"afii57666",1490,"afii57667",1491,"afii57668",1492,"afii57669",1493,"afii57670",1494,"afii57671",1495,"afii57672",1496,"afii57673",1497,"afii57674",1498,"afii57675",1499,"afii57676",1500,"afii57677",1501,"afii57678",1502,"afii57679",1503,"afii57680",1504,"afii57681",1505,"afii57682",1506,"afii57683",1507,"afii57684",1508,"afii57685",1509,"afii57686",1510,"afii57687",1511,"afii57688",1512,"afii57689",1513,"afii57690",1514,"afii57694",64298,"afii57695",64299,"afii57700",64331,"afii57705",64287,"afii57716",1520,"afii57717",1521,"afii57718",1522,"afii57723",64309,"afii57793",1460,"afii57794",1461,"afii57795",1462,"afii57796",1467,"afii57797",1464,"afii57798",1463,"afii57799",1456,"afii57800",1458,"afii57801",1457,"afii57802",1459,"afii57803",1474,"afii57804",1473,"afii57806",1465,"afii57807",1468,"afii57839",1469,"afii57841",1471,"afii57842",1472,"afii57929",700,"afii61248",8453,"afii61289",8467,"afii61352",8470,"afii61573",8236,"afii61574",8237,"afii61575",8238,"afii61664",8204,"afii63167",1645,"afii64937",701,"agrave",224,"agujarati",2693,"agurmukhi",2565,"ahiragana",12354,"ahookabove",7843,"aibengali",2448,"aibopomofo",12574,"aideva",2320,"aiecyrillic",1237,"aigujarati",2704,"aigurmukhi",2576,"aimatragurmukhi",2632,"ainarabic",1593,"ainfinalarabic",65226,"aininitialarabic",65227,"ainmedialarabic",65228,"ainvertedbreve",515,"aivowelsignbengali",2504,"aivowelsigndeva",2376,"aivowelsigngujarati",2760,"akatakana",12450,"akatakanahalfwidth",65393,"akorean",12623,"alef",1488,"alefarabic",1575,"alefdageshhebrew",64304,"aleffinalarabic",65166,"alefhamzaabovearabic",1571,"alefhamzaabovefinalarabic",65156,"alefhamzabelowarabic",1573,"alefhamzabelowfinalarabic",65160,"alefhebrew",1488,"aleflamedhebrew",64335,"alefmaddaabovearabic",1570,"alefmaddaabovefinalarabic",65154,"alefmaksuraarabic",1609,"alefmaksurafinalarabic",65264,"alefmaksurainitialarabic",65267,"alefmaksuramedialarabic",65268,"alefpatahhebrew",64302,"alefqamatshebrew",64303,"aleph",8501,"allequal",8780,"alpha",945,"alphatonos",940,"amacron",257,"amonospace",65345,"ampersand",38,"ampersandmonospace",65286,"ampersandsmall",63270,"amsquare",13250,"anbopomofo",12578,"angbopomofo",12580,"angbracketleft",12296,"angbracketright",12297,"angkhankhuthai",3674,"angle",8736,"anglebracketleft",12296,"anglebracketleftvertical",65087,"anglebracketright",12297,"anglebracketrightvertical",65088,"angleleft",9001,"angleright",9002,"angstrom",8491,"anoteleia",903,"anudattadeva",2386,"anusvarabengali",2434,"anusvaradeva",2306,"anusvaragujarati",2690,"aogonek",261,"apaatosquare",13056,"aparen",9372,"apostrophearmenian",1370,"apostrophemod",700,"apple",63743,"approaches",8784,"approxequal",8776,"approxequalorimage",8786,"approximatelyequal",8773,"araeaekorean",12686,"araeakorean",12685,"arc",8978,"arighthalfring",7834,"aring",229,"aringacute",507,"aringbelow",7681,"arrowboth",8596,"arrowdashdown",8675,"arrowdashleft",8672,"arrowdashright",8674,"arrowdashup",8673,"arrowdblboth",8660,"arrowdbldown",8659,"arrowdblleft",8656,"arrowdblright",8658,"arrowdblup",8657,"arrowdown",8595,"arrowdownleft",8601,"arrowdownright",8600,"arrowdownwhite",8681,"arrowheaddownmod",709,"arrowheadleftmod",706,"arrowheadrightmod",707,"arrowheadupmod",708,"arrowhorizex",63719,"arrowleft",8592,"arrowleftdbl",8656,"arrowleftdblstroke",8653,"arrowleftoverright",8646,"arrowleftwhite",8678,"arrowright",8594,"arrowrightdblstroke",8655,"arrowrightheavy",10142,"arrowrightoverleft",8644,"arrowrightwhite",8680,"arrowtableft",8676,"arrowtabright",8677,"arrowup",8593,"arrowupdn",8597,"arrowupdnbse",8616,"arrowupdownbase",8616,"arrowupleft",8598,"arrowupleftofdown",8645,"arrowupright",8599,"arrowupwhite",8679,"arrowvertex",63718,"asciicircum",94,"asciicircummonospace",65342,"asciitilde",126,"asciitildemonospace",65374,"ascript",593,"ascriptturned",594,"asmallhiragana",12353,"asmallkatakana",12449,"asmallkatakanahalfwidth",65383,"asterisk",42,"asteriskaltonearabic",1645,"asteriskarabic",1645,"asteriskmath",8727,"asteriskmonospace",65290,"asterisksmall",65121,"asterism",8258,"asuperior",63209,"asymptoticallyequal",8771,"at",64,"atilde",227,"atmonospace",65312,"atsmall",65131,"aturned",592,"aubengali",2452,"aubopomofo",12576,"audeva",2324,"augujarati",2708,"augurmukhi",2580,"aulengthmarkbengali",2519,"aumatragurmukhi",2636,"auvowelsignbengali",2508,"auvowelsigndeva",2380,"auvowelsigngujarati",2764,"avagrahadeva",2365,"aybarmenian",1377,"ayin",1506,"ayinaltonehebrew",64288,"ayinhebrew",1506,"b",98,"babengali",2476,"backslash",92,"backslashmonospace",65340,"badeva",2348,"bagujarati",2732,"bagurmukhi",2604,"bahiragana",12400,"bahtthai",3647,"bakatakana",12496,"bar",124,"barmonospace",65372,"bbopomofo",12549,"bcircle",9425,"bdotaccent",7683,"bdotbelow",7685,"beamedsixteenthnotes",9836,"because",8757,"becyrillic",1073,"beharabic",1576,"behfinalarabic",65168,"behinitialarabic",65169,"behiragana",12409,"behmedialarabic",65170,"behmeeminitialarabic",64671,"behmeemisolatedarabic",64520,"behnoonfinalarabic",64621,"bekatakana",12505,"benarmenian",1378,"bet",1489,"beta",946,"betasymbolgreek",976,"betdagesh",64305,"betdageshhebrew",64305,"bethebrew",1489,"betrafehebrew",64332,"bhabengali",2477,"bhadeva",2349,"bhagujarati",2733,"bhagurmukhi",2605,"bhook",595,"bihiragana",12403,"bikatakana",12499,"bilabialclick",664,"bindigurmukhi",2562,"birusquare",13105,"blackcircle",9679,"blackdiamond",9670,"blackdownpointingtriangle",9660,"blackleftpointingpointer",9668,"blackleftpointingtriangle",9664,"blacklenticularbracketleft",12304,"blacklenticularbracketleftvertical",65083,"blacklenticularbracketright",12305,"blacklenticularbracketrightvertical",65084,"blacklowerlefttriangle",9699,"blacklowerrighttriangle",9698,"blackrectangle",9644,"blackrightpointingpointer",9658,"blackrightpointingtriangle",9654,"blacksmallsquare",9642,"blacksmilingface",9787,"blacksquare",9632,"blackstar",9733,"blackupperlefttriangle",9700,"blackupperrighttriangle",9701,"blackuppointingsmalltriangle",9652,"blackuppointingtriangle",9650,"blank",9251,"blinebelow",7687,"block",9608,"bmonospace",65346,"bobaimaithai",3610,"bohiragana",12412,"bokatakana",12508,"bparen",9373,"bqsquare",13251,"braceex",63732,"braceleft",123,"braceleftbt",63731,"braceleftmid",63730,"braceleftmonospace",65371,"braceleftsmall",65115,"bracelefttp",63729,"braceleftvertical",65079,"braceright",125,"bracerightbt",63742,"bracerightmid",63741,"bracerightmonospace",65373,"bracerightsmall",65116,"bracerighttp",63740,"bracerightvertical",65080,"bracketleft",91,"bracketleftbt",63728,"bracketleftex",63727,"bracketleftmonospace",65339,"bracketlefttp",63726,"bracketright",93,"bracketrightbt",63739,"bracketrightex",63738,"bracketrightmonospace",65341,"bracketrighttp",63737,"breve",728,"brevebelowcmb",814,"brevecmb",774,"breveinvertedbelowcmb",815,"breveinvertedcmb",785,"breveinverteddoublecmb",865,"bridgebelowcmb",810,"bridgeinvertedbelowcmb",826,"brokenbar",166,"bstroke",384,"bsuperior",63210,"btopbar",387,"buhiragana",12406,"bukatakana",12502,"bullet",8226,"bulletinverse",9688,"bulletoperator",8729,"bullseye",9678,"c",99,"caarmenian",1390,"cabengali",2458,"cacute",263,"cadeva",2330,"cagujarati",2714,"cagurmukhi",2586,"calsquare",13192,"candrabindubengali",2433,"candrabinducmb",784,"candrabindudeva",2305,"candrabindugujarati",2689,"capslock",8682,"careof",8453,"caron",711,"caronbelowcmb",812,"caroncmb",780,"carriagereturn",8629,"cbopomofo",12568,"ccaron",269,"ccedilla",231,"ccedillaacute",7689,"ccircle",9426,"ccircumflex",265,"ccurl",597,"cdot",267,"cdotaccent",267,"cdsquare",13253,"cedilla",184,"cedillacmb",807,"cent",162,"centigrade",8451,"centinferior",63199,"centmonospace",65504,"centoldstyle",63394,"centsuperior",63200,"chaarmenian",1401,"chabengali",2459,"chadeva",2331,"chagujarati",2715,"chagurmukhi",2587,"chbopomofo",12564,"cheabkhasiancyrillic",1213,"checkmark",10003,"checyrillic",1095,"chedescenderabkhasiancyrillic",1215,"chedescendercyrillic",1207,"chedieresiscyrillic",1269,"cheharmenian",1395,"chekhakassiancyrillic",1228,"cheverticalstrokecyrillic",1209,"chi",967,"chieuchacirclekorean",12919,"chieuchaparenkorean",12823,"chieuchcirclekorean",12905,"chieuchkorean",12618,"chieuchparenkorean",12809,"chochangthai",3594,"chochanthai",3592,"chochingthai",3593,"chochoethai",3596,"chook",392,"cieucacirclekorean",12918,"cieucaparenkorean",12822,"cieuccirclekorean",12904,"cieuckorean",12616,"cieucparenkorean",12808,"cieucuparenkorean",12828,"circle",9675,"circlecopyrt",169,"circlemultiply",8855,"circleot",8857,"circleplus",8853,"circlepostalmark",12342,"circlewithlefthalfblack",9680,"circlewithrighthalfblack",9681,"circumflex",710,"circumflexbelowcmb",813,"circumflexcmb",770,"clear",8999,"clickalveolar",450,"clickdental",448,"clicklateral",449,"clickretroflex",451,"club",9827,"clubsuitblack",9827,"clubsuitwhite",9831,"cmcubedsquare",13220,"cmonospace",65347,"cmsquaredsquare",13216,"coarmenian",1409,"colon",58,"colonmonetary",8353,"colonmonospace",65306,"colonsign",8353,"colonsmall",65109,"colontriangularhalfmod",721,"colontriangularmod",720,"comma",44,"commaabovecmb",787,"commaaboverightcmb",789,"commaaccent",63171,"commaarabic",1548,"commaarmenian",1373,"commainferior",63201,"commamonospace",65292,"commareversedabovecmb",788,"commareversedmod",701,"commasmall",65104,"commasuperior",63202,"commaturnedabovecmb",786,"commaturnedmod",699,"compass",9788,"congruent",8773,"contourintegral",8750,"control",8963,"controlACK",6,"controlBEL",7,"controlBS",8,"controlCAN",24,"controlCR",13,"controlDC1",17,"controlDC2",18,"controlDC3",19,"controlDC4",20,"controlDEL",127,"controlDLE",16,"controlEM",25,"controlENQ",5,"controlEOT",4,"controlESC",27,"controlETB",23,"controlETX",3,"controlFF",12,"controlFS",28,"controlGS",29,"controlHT",9,"controlLF",10,"controlNAK",21,"controlNULL",0,"controlRS",30,"controlSI",15,"controlSO",14,"controlSOT",2,"controlSTX",1,"controlSUB",26,"controlSYN",22,"controlUS",31,"controlVT",11,"copyright",169,"copyrightsans",63721,"copyrightserif",63193,"cornerbracketleft",12300,"cornerbracketlefthalfwidth",65378,"cornerbracketleftvertical",65089,"cornerbracketright",12301,"cornerbracketrighthalfwidth",65379,"cornerbracketrightvertical",65090,"corporationsquare",13183,"cosquare",13255,"coverkgsquare",13254,"cparen",9374,"cruzeiro",8354,"cstretched",663,"curlyand",8911,"curlyor",8910,"currency",164,"cyrBreve",63185,"cyrFlex",63186,"cyrbreve",63188,"cyrflex",63189,"d",100,"daarmenian",1380,"dabengali",2470,"dadarabic",1590,"dadeva",2342,"dadfinalarabic",65214,"dadinitialarabic",65215,"dadmedialarabic",65216,"dagesh",1468,"dageshhebrew",1468,"dagger",8224,"daggerdbl",8225,"dagujarati",2726,"dagurmukhi",2598,"dahiragana",12384,"dakatakana",12480,"dalarabic",1583,"dalet",1491,"daletdagesh",64307,"daletdageshhebrew",64307,"dalethebrew",1491,"dalfinalarabic",65194,"dammaarabic",1615,"dammalowarabic",1615,"dammatanaltonearabic",1612,"dammatanarabic",1612,"danda",2404,"dargahebrew",1447,"dargalefthebrew",1447,"dasiapneumatacyrilliccmb",1157,"dblGrave",63187,"dblanglebracketleft",12298,"dblanglebracketleftvertical",65085,"dblanglebracketright",12299,"dblanglebracketrightvertical",65086,"dblarchinvertedbelowcmb",811,"dblarrowleft",8660,"dblarrowright",8658,"dbldanda",2405,"dblgrave",63190,"dblgravecmb",783,"dblintegral",8748,"dbllowline",8215,"dbllowlinecmb",819,"dbloverlinecmb",831,"dblprimemod",698,"dblverticalbar",8214,"dblverticallineabovecmb",782,"dbopomofo",12553,"dbsquare",13256,"dcaron",271,"dcedilla",7697,"dcircle",9427,"dcircumflexbelow",7699,"dcroat",273,"ddabengali",2465,"ddadeva",2337,"ddagujarati",2721,"ddagurmukhi",2593,"ddalarabic",1672,"ddalfinalarabic",64393,"dddhadeva",2396,"ddhabengali",2466,"ddhadeva",2338,"ddhagujarati",2722,"ddhagurmukhi",2594,"ddotaccent",7691,"ddotbelow",7693,"decimalseparatorarabic",1643,"decimalseparatorpersian",1643,"decyrillic",1076,"degree",176,"dehihebrew",1453,"dehiragana",12391,"deicoptic",1007,"dekatakana",12487,"deleteleft",9003,"deleteright",8998,"delta",948,"deltaturned",397,"denominatorminusonenumeratorbengali",2552,"dezh",676,"dhabengali",2471,"dhadeva",2343,"dhagujarati",2727,"dhagurmukhi",2599,"dhook",599,"dialytikatonos",901,"dialytikatonoscmb",836,"diamond",9830,"diamondsuitwhite",9826,"dieresis",168,"dieresisacute",63191,"dieresisbelowcmb",804,"dieresiscmb",776,"dieresisgrave",63192,"dieresistonos",901,"dihiragana",12386,"dikatakana",12482,"dittomark",12291,"divide",247,"divides",8739,"divisionslash",8725,"djecyrillic",1106,"dkshade",9619,"dlinebelow",7695,"dlsquare",13207,"dmacron",273,"dmonospace",65348,"dnblock",9604,"dochadathai",3598,"dodekthai",3604,"dohiragana",12393,"dokatakana",12489,"dollar",36,"dollarinferior",63203,"dollarmonospace",65284,"dollaroldstyle",63268,"dollarsmall",65129,"dollarsuperior",63204,"dong",8363,"dorusquare",13094,"dotaccent",729,"dotaccentcmb",775,"dotbelowcmb",803,"dotbelowcomb",803,"dotkatakana",12539,"dotlessi",305,"dotlessj",63166,"dotlessjstrokehook",644,"dotmath",8901,"dottedcircle",9676,"doubleyodpatah",64287,"doubleyodpatahhebrew",64287,"downtackbelowcmb",798,"downtackmod",725,"dparen",9375,"dsuperior",63211,"dtail",598,"dtopbar",396,"duhiragana",12389,"dukatakana",12485,"dz",499,"dzaltone",675,"dzcaron",454,"dzcurl",677,"dzeabkhasiancyrillic",1249,"dzecyrillic",1109,"dzhecyrillic",1119,"e",101,"eacute",233,"earth",9793,"ebengali",2447,"ebopomofo",12572,"ebreve",277,"ecandradeva",2317,"ecandragujarati",2701,"ecandravowelsigndeva",2373,"ecandravowelsigngujarati",2757,"ecaron",283,"ecedillabreve",7709,"echarmenian",1381,"echyiwnarmenian",1415,"ecircle",9428,"ecircumflex",234,"ecircumflexacute",7871,"ecircumflexbelow",7705,"ecircumflexdotbelow",7879,"ecircumflexgrave",7873,"ecircumflexhookabove",7875,"ecircumflextilde",7877,"ecyrillic",1108,"edblgrave",517,"edeva",2319,"edieresis",235,"edot",279,"edotaccent",279,"edotbelow",7865,"eegurmukhi",2575,"eematragurmukhi",2631,"efcyrillic",1092,"egrave",232,"egujarati",2703,"eharmenian",1383,"ehbopomofo",12573,"ehiragana",12360,"ehookabove",7867,"eibopomofo",12575,"eight",56,"eightarabic",1640,"eightbengali",2542,"eightcircle",9319,"eightcircleinversesansserif",10129,"eightdeva",2414,"eighteencircle",9329,"eighteenparen",9349,"eighteenperiod",9369,"eightgujarati",2798,"eightgurmukhi",2670,"eighthackarabic",1640,"eighthangzhou",12328,"eighthnotebeamed",9835,"eightideographicparen",12839,"eightinferior",8328,"eightmonospace",65304,"eightoldstyle",63288,"eightparen",9339,"eightperiod",9359,"eightpersian",1784,"eightroman",8567,"eightsuperior",8312,"eightthai",3672,"einvertedbreve",519,"eiotifiedcyrillic",1125,"ekatakana",12456,"ekatakanahalfwidth",65396,"ekonkargurmukhi",2676,"ekorean",12628,"elcyrillic",1083,"element",8712,"elevencircle",9322,"elevenparen",9342,"elevenperiod",9362,"elevenroman",8570,"ellipsis",8230,"ellipsisvertical",8942,"emacron",275,"emacronacute",7703,"emacrongrave",7701,"emcyrillic",1084,"emdash",8212,"emdashvertical",65073,"emonospace",65349,"emphasismarkarmenian",1371,"emptyset",8709,"enbopomofo",12579,"encyrillic",1085,"endash",8211,"endashvertical",65074,"endescendercyrillic",1187,"eng",331,"engbopomofo",12581,"enghecyrillic",1189,"enhookcyrillic",1224,"enspace",8194,"eogonek",281,"eokorean",12627,"eopen",603,"eopenclosed",666,"eopenreversed",604,"eopenreversedclosed",606,"eopenreversedhook",605,"eparen",9376,"epsilon",949,"epsilontonos",941,"equal",61,"equalmonospace",65309,"equalsmall",65126,"equalsuperior",8316,"equivalence",8801,"erbopomofo",12582,"ercyrillic",1088,"ereversed",600,"ereversedcyrillic",1101,"escyrillic",1089,"esdescendercyrillic",1195,"esh",643,"eshcurl",646,"eshortdeva",2318,"eshortvowelsigndeva",2374,"eshreversedloop",426,"eshsquatreversed",645,"esmallhiragana",12359,"esmallkatakana",12455,"esmallkatakanahalfwidth",65386,"estimated",8494,"esuperior",63212,"eta",951,"etarmenian",1384,"etatonos",942,"eth",240,"etilde",7869,"etildebelow",7707,"etnahtafoukhhebrew",1425,"etnahtafoukhlefthebrew",1425,"etnahtahebrew",1425,"etnahtalefthebrew",1425,"eturned",477,"eukorean",12641,"euro",8364,"evowelsignbengali",2503,"evowelsigndeva",2375,"evowelsigngujarati",2759,"exclam",33,"exclamarmenian",1372,"exclamdbl",8252,"exclamdown",161,"exclamdownsmall",63393,"exclammonospace",65281,"exclamsmall",63265,"existential",8707,"ezh",658,"ezhcaron",495,"ezhcurl",659,"ezhreversed",441,"ezhtail",442,"f",102,"fadeva",2398,"fagurmukhi",2654,"fahrenheit",8457,"fathaarabic",1614,"fathalowarabic",1614,"fathatanarabic",1611,"fbopomofo",12552,"fcircle",9429,"fdotaccent",7711,"feharabic",1601,"feharmenian",1414,"fehfinalarabic",65234,"fehinitialarabic",65235,"fehmedialarabic",65236,"feicoptic",997,"female",9792,"ff",64256,"f_f",64256,"ffi",64259,"f_f_i",64259,"ffl",64260,"f_f_l",64260,"fi",64257,"f_i",64257,"fifteencircle",9326,"fifteenparen",9346,"fifteenperiod",9366,"figuredash",8210,"filledbox",9632,"filledrect",9644,"finalkaf",1498,"finalkafdagesh",64314,"finalkafdageshhebrew",64314,"finalkafhebrew",1498,"finalmem",1501,"finalmemhebrew",1501,"finalnun",1503,"finalnunhebrew",1503,"finalpe",1507,"finalpehebrew",1507,"finaltsadi",1509,"finaltsadihebrew",1509,"firsttonechinese",713,"fisheye",9673,"fitacyrillic",1139,"five",53,"fivearabic",1637,"fivebengali",2539,"fivecircle",9316,"fivecircleinversesansserif",10126,"fivedeva",2411,"fiveeighths",8541,"fivegujarati",2795,"fivegurmukhi",2667,"fivehackarabic",1637,"fivehangzhou",12325,"fiveideographicparen",12836,"fiveinferior",8325,"fivemonospace",65301,"fiveoldstyle",63285,"fiveparen",9336,"fiveperiod",9356,"fivepersian",1781,"fiveroman",8564,"fivesuperior",8309,"fivethai",3669,"fl",64258,"f_l",64258,"florin",402,"fmonospace",65350,"fmsquare",13209,"fofanthai",3615,"fofathai",3613,"fongmanthai",3663,"forall",8704,"four",52,"fourarabic",1636,"fourbengali",2538,"fourcircle",9315,"fourcircleinversesansserif",10125,"fourdeva",2410,"fourgujarati",2794,"fourgurmukhi",2666,"fourhackarabic",1636,"fourhangzhou",12324,"fourideographicparen",12835,"fourinferior",8324,"fourmonospace",65300,"fournumeratorbengali",2551,"fouroldstyle",63284,"fourparen",9335,"fourperiod",9355,"fourpersian",1780,"fourroman",8563,"foursuperior",8308,"fourteencircle",9325,"fourteenparen",9345,"fourteenperiod",9365,"fourthai",3668,"fourthtonechinese",715,"fparen",9377,"fraction",8260,"franc",8355,"g",103,"gabengali",2455,"gacute",501,"gadeva",2327,"gafarabic",1711,"gaffinalarabic",64403,"gafinitialarabic",64404,"gafmedialarabic",64405,"gagujarati",2711,"gagurmukhi",2583,"gahiragana",12364,"gakatakana",12460,"gamma",947,"gammalatinsmall",611,"gammasuperior",736,"gangiacoptic",1003,"gbopomofo",12557,"gbreve",287,"gcaron",487,"gcedilla",291,"gcircle",9430,"gcircumflex",285,"gcommaaccent",291,"gdot",289,"gdotaccent",289,"gecyrillic",1075,"gehiragana",12370,"gekatakana",12466,"geometricallyequal",8785,"gereshaccenthebrew",1436,"gereshhebrew",1523,"gereshmuqdamhebrew",1437,"germandbls",223,"gershayimaccenthebrew",1438,"gershayimhebrew",1524,"getamark",12307,"ghabengali",2456,"ghadarmenian",1394,"ghadeva",2328,"ghagujarati",2712,"ghagurmukhi",2584,"ghainarabic",1594,"ghainfinalarabic",65230,"ghaininitialarabic",65231,"ghainmedialarabic",65232,"ghemiddlehookcyrillic",1173,"ghestrokecyrillic",1171,"gheupturncyrillic",1169,"ghhadeva",2394,"ghhagurmukhi",2650,"ghook",608,"ghzsquare",13203,"gihiragana",12366,"gikatakana",12462,"gimarmenian",1379,"gimel",1490,"gimeldagesh",64306,"gimeldageshhebrew",64306,"gimelhebrew",1490,"gjecyrillic",1107,"glottalinvertedstroke",446,"glottalstop",660,"glottalstopinverted",662,"glottalstopmod",704,"glottalstopreversed",661,"glottalstopreversedmod",705,"glottalstopreversedsuperior",740,"glottalstopstroke",673,"glottalstopstrokereversed",674,"gmacron",7713,"gmonospace",65351,"gohiragana",12372,"gokatakana",12468,"gparen",9378,"gpasquare",13228,"gradient",8711,"grave",96,"gravebelowcmb",790,"gravecmb",768,"gravecomb",768,"gravedeva",2387,"gravelowmod",718,"gravemonospace",65344,"gravetonecmb",832,"greater",62,"greaterequal",8805,"greaterequalorless",8923,"greatermonospace",65310,"greaterorequivalent",8819,"greaterorless",8823,"greateroverequal",8807,"greatersmall",65125,"gscript",609,"gstroke",485,"guhiragana",12368,"guillemotleft",171,"guillemotright",187,"guilsinglleft",8249,"guilsinglright",8250,"gukatakana",12464,"guramusquare",13080,"gysquare",13257,"h",104,"haabkhasiancyrillic",1193,"haaltonearabic",1729,"habengali",2489,"hadescendercyrillic",1203,"hadeva",2361,"hagujarati",2745,"hagurmukhi",2617,"haharabic",1581,"hahfinalarabic",65186,"hahinitialarabic",65187,"hahiragana",12399,"hahmedialarabic",65188,"haitusquare",13098,"hakatakana",12495,"hakatakanahalfwidth",65418,"halantgurmukhi",2637,"hamzaarabic",1569,"hamzalowarabic",1569,"hangulfiller",12644,"hardsigncyrillic",1098,"harpoonleftbarbup",8636,"harpoonrightbarbup",8640,"hasquare",13258,"hatafpatah",1458,"hatafpatah16",1458,"hatafpatah23",1458,"hatafpatah2f",1458,"hatafpatahhebrew",1458,"hatafpatahnarrowhebrew",1458,"hatafpatahquarterhebrew",1458,"hatafpatahwidehebrew",1458,"hatafqamats",1459,"hatafqamats1b",1459,"hatafqamats28",1459,"hatafqamats34",1459,"hatafqamatshebrew",1459,"hatafqamatsnarrowhebrew",1459,"hatafqamatsquarterhebrew",1459,"hatafqamatswidehebrew",1459,"hatafsegol",1457,"hatafsegol17",1457,"hatafsegol24",1457,"hatafsegol30",1457,"hatafsegolhebrew",1457,"hatafsegolnarrowhebrew",1457,"hatafsegolquarterhebrew",1457,"hatafsegolwidehebrew",1457,"hbar",295,"hbopomofo",12559,"hbrevebelow",7723,"hcedilla",7721,"hcircle",9431,"hcircumflex",293,"hdieresis",7719,"hdotaccent",7715,"hdotbelow",7717,"he",1492,"heart",9829,"heartsuitblack",9829,"heartsuitwhite",9825,"hedagesh",64308,"hedageshhebrew",64308,"hehaltonearabic",1729,"heharabic",1607,"hehebrew",1492,"hehfinalaltonearabic",64423,"hehfinalalttwoarabic",65258,"hehfinalarabic",65258,"hehhamzaabovefinalarabic",64421,"hehhamzaaboveisolatedarabic",64420,"hehinitialaltonearabic",64424,"hehinitialarabic",65259,"hehiragana",12408,"hehmedialaltonearabic",64425,"hehmedialarabic",65260,"heiseierasquare",13179,"hekatakana",12504,"hekatakanahalfwidth",65421,"hekutaarusquare",13110,"henghook",615,"herutusquare",13113,"het",1495,"hethebrew",1495,"hhook",614,"hhooksuperior",689,"hieuhacirclekorean",12923,"hieuhaparenkorean",12827,"hieuhcirclekorean",12909,"hieuhkorean",12622,"hieuhparenkorean",12813,"hihiragana",12402,"hikatakana",12498,"hikatakanahalfwidth",65419,"hiriq",1460,"hiriq14",1460,"hiriq21",1460,"hiriq2d",1460,"hiriqhebrew",1460,"hiriqnarrowhebrew",1460,"hiriqquarterhebrew",1460,"hiriqwidehebrew",1460,"hlinebelow",7830,"hmonospace",65352,"hoarmenian",1392,"hohipthai",3627,"hohiragana",12411,"hokatakana",12507,"hokatakanahalfwidth",65422,"holam",1465,"holam19",1465,"holam26",1465,"holam32",1465,"holamhebrew",1465,"holamnarrowhebrew",1465,"holamquarterhebrew",1465,"holamwidehebrew",1465,"honokhukthai",3630,"hookabovecomb",777,"hookcmb",777,"hookpalatalizedbelowcmb",801,"hookretroflexbelowcmb",802,"hoonsquare",13122,"horicoptic",1001,"horizontalbar",8213,"horncmb",795,"hotsprings",9832,"house",8962,"hparen",9379,"hsuperior",688,"hturned",613,"huhiragana",12405,"huiitosquare",13107,"hukatakana",12501,"hukatakanahalfwidth",65420,"hungarumlaut",733,"hungarumlautcmb",779,"hv",405,"hyphen",45,"hypheninferior",63205,"hyphenmonospace",65293,"hyphensmall",65123,"hyphensuperior",63206,"hyphentwo",8208,"i",105,"iacute",237,"iacyrillic",1103,"ibengali",2439,"ibopomofo",12583,"ibreve",301,"icaron",464,"icircle",9432,"icircumflex",238,"icyrillic",1110,"idblgrave",521,"ideographearthcircle",12943,"ideographfirecircle",12939,"ideographicallianceparen",12863,"ideographiccallparen",12858,"ideographiccentrecircle",12965,"ideographicclose",12294,"ideographiccomma",12289,"ideographiccommaleft",65380,"ideographiccongratulationparen",12855,"ideographiccorrectcircle",12963,"ideographicearthparen",12847,"ideographicenterpriseparen",12861,"ideographicexcellentcircle",12957,"ideographicfestivalparen",12864,"ideographicfinancialcircle",12950,"ideographicfinancialparen",12854,"ideographicfireparen",12843,"ideographichaveparen",12850,"ideographichighcircle",12964,"ideographiciterationmark",12293,"ideographiclaborcircle",12952,"ideographiclaborparen",12856,"ideographicleftcircle",12967,"ideographiclowcircle",12966,"ideographicmedicinecircle",12969,"ideographicmetalparen",12846,"ideographicmoonparen",12842,"ideographicnameparen",12852,"ideographicperiod",12290,"ideographicprintcircle",12958,"ideographicreachparen",12867,"ideographicrepresentparen",12857,"ideographicresourceparen",12862,"ideographicrightcircle",12968,"ideographicsecretcircle",12953,"ideographicselfparen",12866,"ideographicsocietyparen",12851,"ideographicspace",12288,"ideographicspecialparen",12853,"ideographicstockparen",12849,"ideographicstudyparen",12859,"ideographicsunparen",12848,"ideographicsuperviseparen",12860,"ideographicwaterparen",12844,"ideographicwoodparen",12845,"ideographiczero",12295,"ideographmetalcircle",12942,"ideographmooncircle",12938,"ideographnamecircle",12948,"ideographsuncircle",12944,"ideographwatercircle",12940,"ideographwoodcircle",12941,"ideva",2311,"idieresis",239,"idieresisacute",7727,"idieresiscyrillic",1253,"idotbelow",7883,"iebrevecyrillic",1239,"iecyrillic",1077,"ieungacirclekorean",12917,"ieungaparenkorean",12821,"ieungcirclekorean",12903,"ieungkorean",12615,"ieungparenkorean",12807,"igrave",236,"igujarati",2695,"igurmukhi",2567,"ihiragana",12356,"ihookabove",7881,"iibengali",2440,"iicyrillic",1080,"iideva",2312,"iigujarati",2696,"iigurmukhi",2568,"iimatragurmukhi",2624,"iinvertedbreve",523,"iishortcyrillic",1081,"iivowelsignbengali",2496,"iivowelsigndeva",2368,"iivowelsigngujarati",2752,"ij",307,"ikatakana",12452,"ikatakanahalfwidth",65394,"ikorean",12643,"ilde",732,"iluyhebrew",1452,"imacron",299,"imacroncyrillic",1251,"imageorapproximatelyequal",8787,"imatragurmukhi",2623,"imonospace",65353,"increment",8710,"infinity",8734,"iniarmenian",1387,"integral",8747,"integralbottom",8993,"integralbt",8993,"integralex",63733,"integraltop",8992,"integraltp",8992,"intersection",8745,"intisquare",13061,"invbullet",9688,"invcircle",9689,"invsmileface",9787,"iocyrillic",1105,"iogonek",303,"iota",953,"iotadieresis",970,"iotadieresistonos",912,"iotalatin",617,"iotatonos",943,"iparen",9380,"irigurmukhi",2674,"ismallhiragana",12355,"ismallkatakana",12451,"ismallkatakanahalfwidth",65384,"issharbengali",2554,"istroke",616,"isuperior",63213,"iterationhiragana",12445,"iterationkatakana",12541,"itilde",297,"itildebelow",7725,"iubopomofo",12585,"iucyrillic",1102,"ivowelsignbengali",2495,"ivowelsigndeva",2367,"ivowelsigngujarati",2751,"izhitsacyrillic",1141,"izhitsadblgravecyrillic",1143,"j",106,"jaarmenian",1393,"jabengali",2460,"jadeva",2332,"jagujarati",2716,"jagurmukhi",2588,"jbopomofo",12560,"jcaron",496,"jcircle",9433,"jcircumflex",309,"jcrossedtail",669,"jdotlessstroke",607,"jecyrillic",1112,"jeemarabic",1580,"jeemfinalarabic",65182,"jeeminitialarabic",65183,"jeemmedialarabic",65184,"jeharabic",1688,"jehfinalarabic",64395,"jhabengali",2461,"jhadeva",2333,"jhagujarati",2717,"jhagurmukhi",2589,"jheharmenian",1403,"jis",12292,"jmonospace",65354,"jparen",9381,"jsuperior",690,"k",107,"kabashkircyrillic",1185,"kabengali",2453,"kacute",7729,"kacyrillic",1082,"kadescendercyrillic",1179,"kadeva",2325,"kaf",1499,"kafarabic",1603,"kafdagesh",64315,"kafdageshhebrew",64315,"kaffinalarabic",65242,"kafhebrew",1499,"kafinitialarabic",65243,"kafmedialarabic",65244,"kafrafehebrew",64333,"kagujarati",2709,"kagurmukhi",2581,"kahiragana",12363,"kahookcyrillic",1220,"kakatakana",12459,"kakatakanahalfwidth",65398,"kappa",954,"kappasymbolgreek",1008,"kapyeounmieumkorean",12657,"kapyeounphieuphkorean",12676,"kapyeounpieupkorean",12664,"kapyeounssangpieupkorean",12665,"karoriisquare",13069,"kashidaautoarabic",1600,"kashidaautonosidebearingarabic",1600,"kasmallkatakana",12533,"kasquare",13188,"kasraarabic",1616,"kasratanarabic",1613,"kastrokecyrillic",1183,"katahiraprolongmarkhalfwidth",65392,"kaverticalstrokecyrillic",1181,"kbopomofo",12558,"kcalsquare",13193,"kcaron",489,"kcedilla",311,"kcircle",9434,"kcommaaccent",311,"kdotbelow",7731,"keharmenian",1412,"kehiragana",12369,"kekatakana",12465,"kekatakanahalfwidth",65401,"kenarmenian",1391,"kesmallkatakana",12534,"kgreenlandic",312,"khabengali",2454,"khacyrillic",1093,"khadeva",2326,"khagujarati",2710,"khagurmukhi",2582,"khaharabic",1582,"khahfinalarabic",65190,"khahinitialarabic",65191,"khahmedialarabic",65192,"kheicoptic",999,"khhadeva",2393,"khhagurmukhi",2649,"khieukhacirclekorean",12920,"khieukhaparenkorean",12824,"khieukhcirclekorean",12906,"khieukhkorean",12619,"khieukhparenkorean",12810,"khokhaithai",3586,"khokhonthai",3589,"khokhuatthai",3587,"khokhwaithai",3588,"khomutthai",3675,"khook",409,"khorakhangthai",3590,"khzsquare",13201,"kihiragana",12365,"kikatakana",12461,"kikatakanahalfwidth",65399,"kiroguramusquare",13077,"kiromeetorusquare",13078,"kirosquare",13076,"kiyeokacirclekorean",12910,"kiyeokaparenkorean",12814,"kiyeokcirclekorean",12896,"kiyeokkorean",12593,"kiyeokparenkorean",12800,"kiyeoksioskorean",12595,"kjecyrillic",1116,"klinebelow",7733,"klsquare",13208,"kmcubedsquare",13222,"kmonospace",65355,"kmsquaredsquare",13218,"kohiragana",12371,"kohmsquare",13248,"kokaithai",3585,"kokatakana",12467,"kokatakanahalfwidth",65402,"kooposquare",13086,"koppacyrillic",1153,"koreanstandardsymbol",12927,"koroniscmb",835,"kparen",9382,"kpasquare",13226,"ksicyrillic",1135,"ktsquare",13263,"kturned",670,"kuhiragana",12367,"kukatakana",12463,"kukatakanahalfwidth",65400,"kvsquare",13240,"kwsquare",13246,"l",108,"labengali",2482,"lacute",314,"ladeva",2354,"lagujarati",2738,"lagurmukhi",2610,"lakkhangyaothai",3653,"lamaleffinalarabic",65276,"lamalefhamzaabovefinalarabic",65272,"lamalefhamzaaboveisolatedarabic",65271,"lamalefhamzabelowfinalarabic",65274,"lamalefhamzabelowisolatedarabic",65273,"lamalefisolatedarabic",65275,"lamalefmaddaabovefinalarabic",65270,"lamalefmaddaaboveisolatedarabic",65269,"lamarabic",1604,"lambda",955,"lambdastroke",411,"lamed",1500,"lameddagesh",64316,"lameddageshhebrew",64316,"lamedhebrew",1500,"lamfinalarabic",65246,"lamhahinitialarabic",64714,"laminitialarabic",65247,"lamjeeminitialarabic",64713,"lamkhahinitialarabic",64715,"lamlamhehisolatedarabic",65010,"lammedialarabic",65248,"lammeemhahinitialarabic",64904,"lammeeminitialarabic",64716,"largecircle",9711,"lbar",410,"lbelt",620,"lbopomofo",12556,"lcaron",318,"lcedilla",316,"lcircle",9435,"lcircumflexbelow",7741,"lcommaaccent",316,"ldot",320,"ldotaccent",320,"ldotbelow",7735,"ldotbelowmacron",7737,"leftangleabovecmb",794,"lefttackbelowcmb",792,"less",60,"lessequal",8804,"lessequalorgreater",8922,"lessmonospace",65308,"lessorequivalent",8818,"lessorgreater",8822,"lessoverequal",8806,"lesssmall",65124,"lezh",622,"lfblock",9612,"lhookretroflex",621,"lira",8356,"liwnarmenian",1388,"lj",457,"ljecyrillic",1113,"ll",63168,"lladeva",2355,"llagujarati",2739,"llinebelow",7739,"llladeva",2356,"llvocalicbengali",2529,"llvocalicdeva",2401,"llvocalicvowelsignbengali",2531,"llvocalicvowelsigndeva",2403,"lmiddletilde",619,"lmonospace",65356,"lmsquare",13264,"lochulathai",3628,"logicaland",8743,"logicalnot",172,"logicalnotreversed",8976,"logicalor",8744,"lolingthai",3621,"longs",383,"lowlinecenterline",65102,"lowlinecmb",818,"lowlinedashed",65101,"lozenge",9674,"lparen",9383,"lslash",322,"lsquare",8467,"lsuperior",63214,"ltshade",9617,"luthai",3622,"lvocalicbengali",2444,"lvocalicdeva",2316,"lvocalicvowelsignbengali",2530,"lvocalicvowelsigndeva",2402,"lxsquare",13267,"m",109,"mabengali",2478,"macron",175,"macronbelowcmb",817,"macroncmb",772,"macronlowmod",717,"macronmonospace",65507,"macute",7743,"madeva",2350,"magujarati",2734,"magurmukhi",2606,"mahapakhhebrew",1444,"mahapakhlefthebrew",1444,"mahiragana",12414,"maichattawalowleftthai",63637,"maichattawalowrightthai",63636,"maichattawathai",3659,"maichattawaupperleftthai",63635,"maieklowleftthai",63628,"maieklowrightthai",63627,"maiekthai",3656,"maiekupperleftthai",63626,"maihanakatleftthai",63620,"maihanakatthai",3633,"maitaikhuleftthai",63625,"maitaikhuthai",3655,"maitholowleftthai",63631,"maitholowrightthai",63630,"maithothai",3657,"maithoupperleftthai",63629,"maitrilowleftthai",63634,"maitrilowrightthai",63633,"maitrithai",3658,"maitriupperleftthai",63632,"maiyamokthai",3654,"makatakana",12510,"makatakanahalfwidth",65423,"male",9794,"mansyonsquare",13127,"maqafhebrew",1470,"mars",9794,"masoracirclehebrew",1455,"masquare",13187,"mbopomofo",12551,"mbsquare",13268,"mcircle",9436,"mcubedsquare",13221,"mdotaccent",7745,"mdotbelow",7747,"meemarabic",1605,"meemfinalarabic",65250,"meeminitialarabic",65251,"meemmedialarabic",65252,"meemmeeminitialarabic",64721,"meemmeemisolatedarabic",64584,"meetorusquare",13133,"mehiragana",12417,"meizierasquare",13182,"mekatakana",12513,"mekatakanahalfwidth",65426,"mem",1502,"memdagesh",64318,"memdageshhebrew",64318,"memhebrew",1502,"menarmenian",1396,"merkhahebrew",1445,"merkhakefulahebrew",1446,"merkhakefulalefthebrew",1446,"merkhalefthebrew",1445,"mhook",625,"mhzsquare",13202,"middledotkatakanahalfwidth",65381,"middot",183,"mieumacirclekorean",12914,"mieumaparenkorean",12818,"mieumcirclekorean",12900,"mieumkorean",12609,"mieumpansioskorean",12656,"mieumparenkorean",12804,"mieumpieupkorean",12654,"mieumsioskorean",12655,"mihiragana",12415,"mikatakana",12511,"mikatakanahalfwidth",65424,"minus",8722,"minusbelowcmb",800,"minuscircle",8854,"minusmod",727,"minusplus",8723,"minute",8242,"miribaarusquare",13130,"mirisquare",13129,"mlonglegturned",624,"mlsquare",13206,"mmcubedsquare",13219,"mmonospace",65357,"mmsquaredsquare",13215,"mohiragana",12418,"mohmsquare",13249,"mokatakana",12514,"mokatakanahalfwidth",65427,"molsquare",13270,"momathai",3617,"moverssquare",13223,"moverssquaredsquare",13224,"mparen",9384,"mpasquare",13227,"mssquare",13235,"msuperior",63215,"mturned",623,"mu",181,"mu1",181,"muasquare",13186,"muchgreater",8811,"muchless",8810,"mufsquare",13196,"mugreek",956,"mugsquare",13197,"muhiragana",12416,"mukatakana",12512,"mukatakanahalfwidth",65425,"mulsquare",13205,"multiply",215,"mumsquare",13211,"munahhebrew",1443,"munahlefthebrew",1443,"musicalnote",9834,"musicalnotedbl",9835,"musicflatsign",9837,"musicsharpsign",9839,"mussquare",13234,"muvsquare",13238,"muwsquare",13244,"mvmegasquare",13241,"mvsquare",13239,"mwmegasquare",13247,"mwsquare",13245,"n",110,"nabengali",2472,"nabla",8711,"nacute",324,"nadeva",2344,"nagujarati",2728,"nagurmukhi",2600,"nahiragana",12394,"nakatakana",12490,"nakatakanahalfwidth",65413,"napostrophe",329,"nasquare",13185,"nbopomofo",12555,"nbspace",160,"ncaron",328,"ncedilla",326,"ncircle",9437,"ncircumflexbelow",7755,"ncommaaccent",326,"ndotaccent",7749,"ndotbelow",7751,"nehiragana",12397,"nekatakana",12493,"nekatakanahalfwidth",65416,"newsheqelsign",8362,"nfsquare",13195,"ngabengali",2457,"ngadeva",2329,"ngagujarati",2713,"ngagurmukhi",2585,"ngonguthai",3591,"nhiragana",12435,"nhookleft",626,"nhookretroflex",627,"nieunacirclekorean",12911,"nieunaparenkorean",12815,"nieuncieuckorean",12597,"nieuncirclekorean",12897,"nieunhieuhkorean",12598,"nieunkorean",12596,"nieunpansioskorean",12648,"nieunparenkorean",12801,"nieunsioskorean",12647,"nieuntikeutkorean",12646,"nihiragana",12395,"nikatakana",12491,"nikatakanahalfwidth",65414,"nikhahitleftthai",63641,"nikhahitthai",3661,"nine",57,"ninearabic",1641,"ninebengali",2543,"ninecircle",9320,"ninecircleinversesansserif",10130,"ninedeva",2415,"ninegujarati",2799,"ninegurmukhi",2671,"ninehackarabic",1641,"ninehangzhou",12329,"nineideographicparen",12840,"nineinferior",8329,"ninemonospace",65305,"nineoldstyle",63289,"nineparen",9340,"nineperiod",9360,"ninepersian",1785,"nineroman",8568,"ninesuperior",8313,"nineteencircle",9330,"nineteenparen",9350,"nineteenperiod",9370,"ninethai",3673,"nj",460,"njecyrillic",1114,"nkatakana",12531,"nkatakanahalfwidth",65437,"nlegrightlong",414,"nlinebelow",7753,"nmonospace",65358,"nmsquare",13210,"nnabengali",2467,"nnadeva",2339,"nnagujarati",2723,"nnagurmukhi",2595,"nnnadeva",2345,"nohiragana",12398,"nokatakana",12494,"nokatakanahalfwidth",65417,"nonbreakingspace",160,"nonenthai",3603,"nonuthai",3609,"noonarabic",1606,"noonfinalarabic",65254,"noonghunnaarabic",1722,"noonghunnafinalarabic",64415,"nooninitialarabic",65255,"noonjeeminitialarabic",64722,"noonjeemisolatedarabic",64587,"noonmedialarabic",65256,"noonmeeminitialarabic",64725,"noonmeemisolatedarabic",64590,"noonnoonfinalarabic",64653,"notcontains",8716,"notelement",8713,"notelementof",8713,"notequal",8800,"notgreater",8815,"notgreaternorequal",8817,"notgreaternorless",8825,"notidentical",8802,"notless",8814,"notlessnorequal",8816,"notparallel",8742,"notprecedes",8832,"notsubset",8836,"notsucceeds",8833,"notsuperset",8837,"nowarmenian",1398,"nparen",9385,"nssquare",13233,"nsuperior",8319,"ntilde",241,"nu",957,"nuhiragana",12396,"nukatakana",12492,"nukatakanahalfwidth",65415,"nuktabengali",2492,"nuktadeva",2364,"nuktagujarati",2748,"nuktagurmukhi",2620,"numbersign",35,"numbersignmonospace",65283,"numbersignsmall",65119,"numeralsigngreek",884,"numeralsignlowergreek",885,"numero",8470,"nun",1504,"nundagesh",64320,"nundageshhebrew",64320,"nunhebrew",1504,"nvsquare",13237,"nwsquare",13243,"nyabengali",2462,"nyadeva",2334,"nyagujarati",2718,"nyagurmukhi",2590,"o",111,"oacute",243,"oangthai",3629,"obarred",629,"obarredcyrillic",1257,"obarreddieresiscyrillic",1259,"obengali",2451,"obopomofo",12571,"obreve",335,"ocandradeva",2321,"ocandragujarati",2705,"ocandravowelsigndeva",2377,"ocandravowelsigngujarati",2761,"ocaron",466,"ocircle",9438,"ocircumflex",244,"ocircumflexacute",7889,"ocircumflexdotbelow",7897,"ocircumflexgrave",7891,"ocircumflexhookabove",7893,"ocircumflextilde",7895,"ocyrillic",1086,"odblacute",337,"odblgrave",525,"odeva",2323,"odieresis",246,"odieresiscyrillic",1255,"odotbelow",7885,"oe",339,"oekorean",12634,"ogonek",731,"ogonekcmb",808,"ograve",242,"ogujarati",2707,"oharmenian",1413,"ohiragana",12362,"ohookabove",7887,"ohorn",417,"ohornacute",7899,"ohorndotbelow",7907,"ohorngrave",7901,"ohornhookabove",7903,"ohorntilde",7905,"ohungarumlaut",337,"oi",419,"oinvertedbreve",527,"okatakana",12458,"okatakanahalfwidth",65397,"okorean",12631,"olehebrew",1451,"omacron",333,"omacronacute",7763,"omacrongrave",7761,"omdeva",2384,"omega",969,"omega1",982,"omegacyrillic",1121,"omegalatinclosed",631,"omegaroundcyrillic",1147,"omegatitlocyrillic",1149,"omegatonos",974,"omgujarati",2768,"omicron",959,"omicrontonos",972,"omonospace",65359,"one",49,"onearabic",1633,"onebengali",2535,"onecircle",9312,"onecircleinversesansserif",10122,"onedeva",2407,"onedotenleader",8228,"oneeighth",8539,"onefitted",63196,"onegujarati",2791,"onegurmukhi",2663,"onehackarabic",1633,"onehalf",189,"onehangzhou",12321,"oneideographicparen",12832,"oneinferior",8321,"onemonospace",65297,"onenumeratorbengali",2548,"oneoldstyle",63281,"oneparen",9332,"oneperiod",9352,"onepersian",1777,"onequarter",188,"oneroman",8560,"onesuperior",185,"onethai",3665,"onethird",8531,"oogonek",491,"oogonekmacron",493,"oogurmukhi",2579,"oomatragurmukhi",2635,"oopen",596,"oparen",9386,"openbullet",9702,"option",8997,"ordfeminine",170,"ordmasculine",186,"orthogonal",8735,"oshortdeva",2322,"oshortvowelsigndeva",2378,"oslash",248,"oslashacute",511,"osmallhiragana",12361,"osmallkatakana",12457,"osmallkatakanahalfwidth",65387,"ostrokeacute",511,"osuperior",63216,"otcyrillic",1151,"otilde",245,"otildeacute",7757,"otildedieresis",7759,"oubopomofo",12577,"overline",8254,"overlinecenterline",65098,"overlinecmb",773,"overlinedashed",65097,"overlinedblwavy",65100,"overlinewavy",65099,"overscore",175,"ovowelsignbengali",2507,"ovowelsigndeva",2379,"ovowelsigngujarati",2763,"p",112,"paampssquare",13184,"paasentosquare",13099,"pabengali",2474,"pacute",7765,"padeva",2346,"pagedown",8671,"pageup",8670,"pagujarati",2730,"pagurmukhi",2602,"pahiragana",12401,"paiyannoithai",3631,"pakatakana",12497,"palatalizationcyrilliccmb",1156,"palochkacyrillic",1216,"pansioskorean",12671,"paragraph",182,"parallel",8741,"parenleft",40,"parenleftaltonearabic",64830,"parenleftbt",63725,"parenleftex",63724,"parenleftinferior",8333,"parenleftmonospace",65288,"parenleftsmall",65113,"parenleftsuperior",8317,"parenlefttp",63723,"parenleftvertical",65077,"parenright",41,"parenrightaltonearabic",64831,"parenrightbt",63736,"parenrightex",63735,"parenrightinferior",8334,"parenrightmonospace",65289,"parenrightsmall",65114,"parenrightsuperior",8318,"parenrighttp",63734,"parenrightvertical",65078,"partialdiff",8706,"paseqhebrew",1472,"pashtahebrew",1433,"pasquare",13225,"patah",1463,"patah11",1463,"patah1d",1463,"patah2a",1463,"patahhebrew",1463,"patahnarrowhebrew",1463,"patahquarterhebrew",1463,"patahwidehebrew",1463,"pazerhebrew",1441,"pbopomofo",12550,"pcircle",9439,"pdotaccent",7767,"pe",1508,"pecyrillic",1087,"pedagesh",64324,"pedageshhebrew",64324,"peezisquare",13115,"pefinaldageshhebrew",64323,"peharabic",1662,"peharmenian",1402,"pehebrew",1508,"pehfinalarabic",64343,"pehinitialarabic",64344,"pehiragana",12410,"pehmedialarabic",64345,"pekatakana",12506,"pemiddlehookcyrillic",1191,"perafehebrew",64334,"percent",37,"percentarabic",1642,"percentmonospace",65285,"percentsmall",65130,"period",46,"periodarmenian",1417,"periodcentered",183,"periodhalfwidth",65377,"periodinferior",63207,"periodmonospace",65294,"periodsmall",65106,"periodsuperior",63208,"perispomenigreekcmb",834,"perpendicular",8869,"perthousand",8240,"peseta",8359,"pfsquare",13194,"phabengali",2475,"phadeva",2347,"phagujarati",2731,"phagurmukhi",2603,"phi",966,"phi1",981,"phieuphacirclekorean",12922,"phieuphaparenkorean",12826,"phieuphcirclekorean",12908,"phieuphkorean",12621,"phieuphparenkorean",12812,"philatin",632,"phinthuthai",3642,"phisymbolgreek",981,"phook",421,"phophanthai",3614,"phophungthai",3612,"phosamphaothai",3616,"pi",960,"pieupacirclekorean",12915,"pieupaparenkorean",12819,"pieupcieuckorean",12662,"pieupcirclekorean",12901,"pieupkiyeokkorean",12658,"pieupkorean",12610,"pieupparenkorean",12805,"pieupsioskiyeokkorean",12660,"pieupsioskorean",12612,"pieupsiostikeutkorean",12661,"pieupthieuthkorean",12663,"pieuptikeutkorean",12659,"pihiragana",12404,"pikatakana",12500,"pisymbolgreek",982,"piwrarmenian",1411,"plus",43,"plusbelowcmb",799,"pluscircle",8853,"plusminus",177,"plusmod",726,"plusmonospace",65291,"plussmall",65122,"plussuperior",8314,"pmonospace",65360,"pmsquare",13272,"pohiragana",12413,"pointingindexdownwhite",9759,"pointingindexleftwhite",9756,"pointingindexrightwhite",9758,"pointingindexupwhite",9757,"pokatakana",12509,"poplathai",3611,"postalmark",12306,"postalmarkface",12320,"pparen",9387,"precedes",8826,"prescription",8478,"primemod",697,"primereversed",8245,"product",8719,"projective",8965,"prolongedkana",12540,"propellor",8984,"propersubset",8834,"propersuperset",8835,"proportion",8759,"proportional",8733,"psi",968,"psicyrillic",1137,"psilipneumatacyrilliccmb",1158,"pssquare",13232,"puhiragana",12407,"pukatakana",12503,"pvsquare",13236,"pwsquare",13242,"q",113,"qadeva",2392,"qadmahebrew",1448,"qafarabic",1602,"qaffinalarabic",65238,"qafinitialarabic",65239,"qafmedialarabic",65240,"qamats",1464,"qamats10",1464,"qamats1a",1464,"qamats1c",1464,"qamats27",1464,"qamats29",1464,"qamats33",1464,"qamatsde",1464,"qamatshebrew",1464,"qamatsnarrowhebrew",1464,"qamatsqatanhebrew",1464,"qamatsqatannarrowhebrew",1464,"qamatsqatanquarterhebrew",1464,"qamatsqatanwidehebrew",1464,"qamatsquarterhebrew",1464,"qamatswidehebrew",1464,"qarneyparahebrew",1439,"qbopomofo",12561,"qcircle",9440,"qhook",672,"qmonospace",65361,"qof",1511,"qofdagesh",64327,"qofdageshhebrew",64327,"qofhebrew",1511,"qparen",9388,"quarternote",9833,"qubuts",1467,"qubuts18",1467,"qubuts25",1467,"qubuts31",1467,"qubutshebrew",1467,"qubutsnarrowhebrew",1467,"qubutsquarterhebrew",1467,"qubutswidehebrew",1467,"question",63,"questionarabic",1567,"questionarmenian",1374,"questiondown",191,"questiondownsmall",63423,"questiongreek",894,"questionmonospace",65311,"questionsmall",63295,"quotedbl",34,"quotedblbase",8222,"quotedblleft",8220,"quotedblmonospace",65282,"quotedblprime",12318,"quotedblprimereversed",12317,"quotedblright",8221,"quoteleft",8216,"quoteleftreversed",8219,"quotereversed",8219,"quoteright",8217,"quoterightn",329,"quotesinglbase",8218,"quotesingle",39,"quotesinglemonospace",65287,"r",114,"raarmenian",1404,"rabengali",2480,"racute",341,"radeva",2352,"radical",8730,"radicalex",63717,"radoverssquare",13230,"radoverssquaredsquare",13231,"radsquare",13229,"rafe",1471,"rafehebrew",1471,"ragujarati",2736,"ragurmukhi",2608,"rahiragana",12425,"rakatakana",12521,"rakatakanahalfwidth",65431,"ralowerdiagonalbengali",2545,"ramiddlediagonalbengali",2544,"ramshorn",612,"ratio",8758,"rbopomofo",12566,"rcaron",345,"rcedilla",343,"rcircle",9441,"rcommaaccent",343,"rdblgrave",529,"rdotaccent",7769,"rdotbelow",7771,"rdotbelowmacron",7773,"referencemark",8251,"reflexsubset",8838,"reflexsuperset",8839,"registered",174,"registersans",63720,"registerserif",63194,"reharabic",1585,"reharmenian",1408,"rehfinalarabic",65198,"rehiragana",12428,"rekatakana",12524,"rekatakanahalfwidth",65434,"resh",1512,"reshdageshhebrew",64328,"reshhebrew",1512,"reversedtilde",8765,"reviahebrew",1431,"reviamugrashhebrew",1431,"revlogicalnot",8976,"rfishhook",638,"rfishhookreversed",639,"rhabengali",2525,"rhadeva",2397,"rho",961,"rhook",637,"rhookturned",635,"rhookturnedsuperior",693,"rhosymbolgreek",1009,"rhotichookmod",734,"rieulacirclekorean",12913,"rieulaparenkorean",12817,"rieulcirclekorean",12899,"rieulhieuhkorean",12608,"rieulkiyeokkorean",12602,"rieulkiyeoksioskorean",12649,"rieulkorean",12601,"rieulmieumkorean",12603,"rieulpansioskorean",12652,"rieulparenkorean",12803,"rieulphieuphkorean",12607,"rieulpieupkorean",12604,"rieulpieupsioskorean",12651,"rieulsioskorean",12605,"rieulthieuthkorean",12606,"rieultikeutkorean",12650,"rieulyeorinhieuhkorean",12653,"rightangle",8735,"righttackbelowcmb",793,"righttriangle",8895,"rihiragana",12426,"rikatakana",12522,"rikatakanahalfwidth",65432,"ring",730,"ringbelowcmb",805,"ringcmb",778,"ringhalfleft",703,"ringhalfleftarmenian",1369,"ringhalfleftbelowcmb",796,"ringhalfleftcentered",723,"ringhalfright",702,"ringhalfrightbelowcmb",825,"ringhalfrightcentered",722,"rinvertedbreve",531,"rittorusquare",13137,"rlinebelow",7775,"rlongleg",636,"rlonglegturned",634,"rmonospace",65362,"rohiragana",12429,"rokatakana",12525,"rokatakanahalfwidth",65435,"roruathai",3619,"rparen",9389,"rrabengali",2524,"rradeva",2353,"rragurmukhi",2652,"rreharabic",1681,"rrehfinalarabic",64397,"rrvocalicbengali",2528,"rrvocalicdeva",2400,"rrvocalicgujarati",2784,"rrvocalicvowelsignbengali",2500,"rrvocalicvowelsigndeva",2372,"rrvocalicvowelsigngujarati",2756,"rsuperior",63217,"rtblock",9616,"rturned",633,"rturnedsuperior",692,"ruhiragana",12427,"rukatakana",12523,"rukatakanahalfwidth",65433,"rupeemarkbengali",2546,"rupeesignbengali",2547,"rupiah",63197,"ruthai",3620,"rvocalicbengali",2443,"rvocalicdeva",2315,"rvocalicgujarati",2699,"rvocalicvowelsignbengali",2499,"rvocalicvowelsigndeva",2371,"rvocalicvowelsigngujarati",2755,"s",115,"sabengali",2488,"sacute",347,"sacutedotaccent",7781,"sadarabic",1589,"sadeva",2360,"sadfinalarabic",65210,"sadinitialarabic",65211,"sadmedialarabic",65212,"sagujarati",2744,"sagurmukhi",2616,"sahiragana",12373,"sakatakana",12469,"sakatakanahalfwidth",65403,"sallallahoualayhewasallamarabic",65018,"samekh",1505,"samekhdagesh",64321,"samekhdageshhebrew",64321,"samekhhebrew",1505,"saraaathai",3634,"saraaethai",3649,"saraaimaimalaithai",3652,"saraaimaimuanthai",3651,"saraamthai",3635,"saraathai",3632,"saraethai",3648,"saraiileftthai",63622,"saraiithai",3637,"saraileftthai",63621,"saraithai",3636,"saraothai",3650,"saraueeleftthai",63624,"saraueethai",3639,"saraueleftthai",63623,"sarauethai",3638,"sarauthai",3640,"sarauuthai",3641,"sbopomofo",12569,"scaron",353,"scarondotaccent",7783,"scedilla",351,"schwa",601,"schwacyrillic",1241,"schwadieresiscyrillic",1243,"schwahook",602,"scircle",9442,"scircumflex",349,"scommaaccent",537,"sdotaccent",7777,"sdotbelow",7779,"sdotbelowdotaccent",7785,"seagullbelowcmb",828,"second",8243,"secondtonechinese",714,"section",167,"seenarabic",1587,"seenfinalarabic",65202,"seeninitialarabic",65203,"seenmedialarabic",65204,"segol",1462,"segol13",1462,"segol1f",1462,"segol2c",1462,"segolhebrew",1462,"segolnarrowhebrew",1462,"segolquarterhebrew",1462,"segoltahebrew",1426,"segolwidehebrew",1462,"seharmenian",1405,"sehiragana",12379,"sekatakana",12475,"sekatakanahalfwidth",65406,"semicolon",59,"semicolonarabic",1563,"semicolonmonospace",65307,"semicolonsmall",65108,"semivoicedmarkkana",12444,"semivoicedmarkkanahalfwidth",65439,"sentisquare",13090,"sentosquare",13091,"seven",55,"sevenarabic",1639,"sevenbengali",2541,"sevencircle",9318,"sevencircleinversesansserif",10128,"sevendeva",2413,"seveneighths",8542,"sevengujarati",2797,"sevengurmukhi",2669,"sevenhackarabic",1639,"sevenhangzhou",12327,"sevenideographicparen",12838,"seveninferior",8327,"sevenmonospace",65303,"sevenoldstyle",63287,"sevenparen",9338,"sevenperiod",9358,"sevenpersian",1783,"sevenroman",8566,"sevensuperior",8311,"seventeencircle",9328,"seventeenparen",9348,"seventeenperiod",9368,"seventhai",3671,"sfthyphen",173,"shaarmenian",1399,"shabengali",2486,"shacyrillic",1096,"shaddaarabic",1617,"shaddadammaarabic",64609,"shaddadammatanarabic",64606,"shaddafathaarabic",64608,"shaddakasraarabic",64610,"shaddakasratanarabic",64607,"shade",9618,"shadedark",9619,"shadelight",9617,"shademedium",9618,"shadeva",2358,"shagujarati",2742,"shagurmukhi",2614,"shalshelethebrew",1427,"shbopomofo",12565,"shchacyrillic",1097,"sheenarabic",1588,"sheenfinalarabic",65206,"sheeninitialarabic",65207,"sheenmedialarabic",65208,"sheicoptic",995,"sheqel",8362,"sheqelhebrew",8362,"sheva",1456,"sheva115",1456,"sheva15",1456,"sheva22",1456,"sheva2e",1456,"shevahebrew",1456,"shevanarrowhebrew",1456,"shevaquarterhebrew",1456,"shevawidehebrew",1456,"shhacyrillic",1211,"shimacoptic",1005,"shin",1513,"shindagesh",64329,"shindageshhebrew",64329,"shindageshshindot",64300,"shindageshshindothebrew",64300,"shindageshsindot",64301,"shindageshsindothebrew",64301,"shindothebrew",1473,"shinhebrew",1513,"shinshindot",64298,"shinshindothebrew",64298,"shinsindot",64299,"shinsindothebrew",64299,"shook",642,"sigma",963,"sigma1",962,"sigmafinal",962,"sigmalunatesymbolgreek",1010,"sihiragana",12375,"sikatakana",12471,"sikatakanahalfwidth",65404,"siluqhebrew",1469,"siluqlefthebrew",1469,"similar",8764,"sindothebrew",1474,"siosacirclekorean",12916,"siosaparenkorean",12820,"sioscieuckorean",12670,"sioscirclekorean",12902,"sioskiyeokkorean",12666,"sioskorean",12613,"siosnieunkorean",12667,"siosparenkorean",12806,"siospieupkorean",12669,"siostikeutkorean",12668,"six",54,"sixarabic",1638,"sixbengali",2540,"sixcircle",9317,"sixcircleinversesansserif",10127,"sixdeva",2412,"sixgujarati",2796,"sixgurmukhi",2668,"sixhackarabic",1638,"sixhangzhou",12326,"sixideographicparen",12837,"sixinferior",8326,"sixmonospace",65302,"sixoldstyle",63286,"sixparen",9337,"sixperiod",9357,"sixpersian",1782,"sixroman",8565,"sixsuperior",8310,"sixteencircle",9327,"sixteencurrencydenominatorbengali",2553,"sixteenparen",9347,"sixteenperiod",9367,"sixthai",3670,"slash",47,"slashmonospace",65295,"slong",383,"slongdotaccent",7835,"smileface",9786,"smonospace",65363,"sofpasuqhebrew",1475,"softhyphen",173,"softsigncyrillic",1100,"sohiragana",12381,"sokatakana",12477,"sokatakanahalfwidth",65407,"soliduslongoverlaycmb",824,"solidusshortoverlaycmb",823,"sorusithai",3625,"sosalathai",3624,"sosothai",3595,"sosuathai",3626,"space",32,"spacehackarabic",32,"spade",9824,"spadesuitblack",9824,"spadesuitwhite",9828,"sparen",9390,"squarebelowcmb",827,"squarecc",13252,"squarecm",13213,"squarediagonalcrosshatchfill",9641,"squarehorizontalfill",9636,"squarekg",13199,"squarekm",13214,"squarekmcapital",13262,"squareln",13265,"squarelog",13266,"squaremg",13198,"squaremil",13269,"squaremm",13212,"squaremsquared",13217,"squareorthogonalcrosshatchfill",9638,"squareupperlefttolowerrightfill",9639,"squareupperrighttolowerleftfill",9640,"squareverticalfill",9637,"squarewhitewithsmallblack",9635,"srsquare",13275,"ssabengali",2487,"ssadeva",2359,"ssagujarati",2743,"ssangcieuckorean",12617,"ssanghieuhkorean",12677,"ssangieungkorean",12672,"ssangkiyeokkorean",12594,"ssangnieunkorean",12645,"ssangpieupkorean",12611,"ssangsioskorean",12614,"ssangtikeutkorean",12600,"ssuperior",63218,"sterling",163,"sterlingmonospace",65505,"strokelongoverlaycmb",822,"strokeshortoverlaycmb",821,"subset",8834,"subsetnotequal",8842,"subsetorequal",8838,"succeeds",8827,"suchthat",8715,"suhiragana",12377,"sukatakana",12473,"sukatakanahalfwidth",65405,"sukunarabic",1618,"summation",8721,"sun",9788,"superset",8835,"supersetnotequal",8843,"supersetorequal",8839,"svsquare",13276,"syouwaerasquare",13180,"t",116,"tabengali",2468,"tackdown",8868,"tackleft",8867,"tadeva",2340,"tagujarati",2724,"tagurmukhi",2596,"taharabic",1591,"tahfinalarabic",65218,"tahinitialarabic",65219,"tahiragana",12383,"tahmedialarabic",65220,"taisyouerasquare",13181,"takatakana",12479,"takatakanahalfwidth",65408,"tatweelarabic",1600,"tau",964,"tav",1514,"tavdages",64330,"tavdagesh",64330,"tavdageshhebrew",64330,"tavhebrew",1514,"tbar",359,"tbopomofo",12554,"tcaron",357,"tccurl",680,"tcedilla",355,"tcheharabic",1670,"tchehfinalarabic",64379,"tchehinitialarabic",64380,"tchehmedialarabic",64381,"tcircle",9443,"tcircumflexbelow",7793,"tcommaaccent",355,"tdieresis",7831,"tdotaccent",7787,"tdotbelow",7789,"tecyrillic",1090,"tedescendercyrillic",1197,"teharabic",1578,"tehfinalarabic",65174,"tehhahinitialarabic",64674,"tehhahisolatedarabic",64524,"tehinitialarabic",65175,"tehiragana",12390,"tehjeeminitialarabic",64673,"tehjeemisolatedarabic",64523,"tehmarbutaarabic",1577,"tehmarbutafinalarabic",65172,"tehmedialarabic",65176,"tehmeeminitialarabic",64676,"tehmeemisolatedarabic",64526,"tehnoonfinalarabic",64627,"tekatakana",12486,"tekatakanahalfwidth",65411,"telephone",8481,"telephoneblack",9742,"telishagedolahebrew",1440,"telishaqetanahebrew",1449,"tencircle",9321,"tenideographicparen",12841,"tenparen",9341,"tenperiod",9361,"tenroman",8569,"tesh",679,"tet",1496,"tetdagesh",64312,"tetdageshhebrew",64312,"tethebrew",1496,"tetsecyrillic",1205,"tevirhebrew",1435,"tevirlefthebrew",1435,"thabengali",2469,"thadeva",2341,"thagujarati",2725,"thagurmukhi",2597,"thalarabic",1584,"thalfinalarabic",65196,"thanthakhatlowleftthai",63640,"thanthakhatlowrightthai",63639,"thanthakhatthai",3660,"thanthakhatupperleftthai",63638,"theharabic",1579,"thehfinalarabic",65178,"thehinitialarabic",65179,"thehmedialarabic",65180,"thereexists",8707,"therefore",8756,"theta",952,"theta1",977,"thetasymbolgreek",977,"thieuthacirclekorean",12921,"thieuthaparenkorean",12825,"thieuthcirclekorean",12907,"thieuthkorean",12620,"thieuthparenkorean",12811,"thirteencircle",9324,"thirteenparen",9344,"thirteenperiod",9364,"thonangmonthothai",3601,"thook",429,"thophuthaothai",3602,"thorn",254,"thothahanthai",3607,"thothanthai",3600,"thothongthai",3608,"thothungthai",3606,"thousandcyrillic",1154,"thousandsseparatorarabic",1644,"thousandsseparatorpersian",1644,"three",51,"threearabic",1635,"threebengali",2537,"threecircle",9314,"threecircleinversesansserif",10124,"threedeva",2409,"threeeighths",8540,"threegujarati",2793,"threegurmukhi",2665,"threehackarabic",1635,"threehangzhou",12323,"threeideographicparen",12834,"threeinferior",8323,"threemonospace",65299,"threenumeratorbengali",2550,"threeoldstyle",63283,"threeparen",9334,"threeperiod",9354,"threepersian",1779,"threequarters",190,"threequartersemdash",63198,"threeroman",8562,"threesuperior",179,"threethai",3667,"thzsquare",13204,"tihiragana",12385,"tikatakana",12481,"tikatakanahalfwidth",65409,"tikeutacirclekorean",12912,"tikeutaparenkorean",12816,"tikeutcirclekorean",12898,"tikeutkorean",12599,"tikeutparenkorean",12802,"tilde",732,"tildebelowcmb",816,"tildecmb",771,"tildecomb",771,"tildedoublecmb",864,"tildeoperator",8764,"tildeoverlaycmb",820,"tildeverticalcmb",830,"timescircle",8855,"tipehahebrew",1430,"tipehalefthebrew",1430,"tippigurmukhi",2672,"titlocyrilliccmb",1155,"tiwnarmenian",1407,"tlinebelow",7791,"tmonospace",65364,"toarmenian",1385,"tohiragana",12392,"tokatakana",12488,"tokatakanahalfwidth",65412,"tonebarextrahighmod",741,"tonebarextralowmod",745,"tonebarhighmod",742,"tonebarlowmod",744,"tonebarmidmod",743,"tonefive",445,"tonesix",389,"tonetwo",424,"tonos",900,"tonsquare",13095,"topatakthai",3599,"tortoiseshellbracketleft",12308,"tortoiseshellbracketleftsmall",65117,"tortoiseshellbracketleftvertical",65081,"tortoiseshellbracketright",12309,"tortoiseshellbracketrightsmall",65118,"tortoiseshellbracketrightvertical",65082,"totaothai",3605,"tpalatalhook",427,"tparen",9391,"trademark",8482,"trademarksans",63722,"trademarkserif",63195,"tretroflexhook",648,"triagdn",9660,"triaglf",9668,"triagrt",9658,"triagup",9650,"ts",678,"tsadi",1510,"tsadidagesh",64326,"tsadidageshhebrew",64326,"tsadihebrew",1510,"tsecyrillic",1094,"tsere",1461,"tsere12",1461,"tsere1e",1461,"tsere2b",1461,"tserehebrew",1461,"tserenarrowhebrew",1461,"tserequarterhebrew",1461,"tserewidehebrew",1461,"tshecyrillic",1115,"tsuperior",63219,"ttabengali",2463,"ttadeva",2335,"ttagujarati",2719,"ttagurmukhi",2591,"tteharabic",1657,"ttehfinalarabic",64359,"ttehinitialarabic",64360,"ttehmedialarabic",64361,"tthabengali",2464,"tthadeva",2336,"tthagujarati",2720,"tthagurmukhi",2592,"tturned",647,"tuhiragana",12388,"tukatakana",12484,"tukatakanahalfwidth",65410,"tusmallhiragana",12387,"tusmallkatakana",12483,"tusmallkatakanahalfwidth",65391,"twelvecircle",9323,"twelveparen",9343,"twelveperiod",9363,"twelveroman",8571,"twentycircle",9331,"twentyhangzhou",21316,"twentyparen",9351,"twentyperiod",9371,"two",50,"twoarabic",1634,"twobengali",2536,"twocircle",9313,"twocircleinversesansserif",10123,"twodeva",2408,"twodotenleader",8229,"twodotleader",8229,"twodotleadervertical",65072,"twogujarati",2792,"twogurmukhi",2664,"twohackarabic",1634,"twohangzhou",12322,"twoideographicparen",12833,"twoinferior",8322,"twomonospace",65298,"twonumeratorbengali",2549,"twooldstyle",63282,"twoparen",9333,"twoperiod",9353,"twopersian",1778,"tworoman",8561,"twostroke",443,"twosuperior",178,"twothai",3666,"twothirds",8532,"u",117,"uacute",250,"ubar",649,"ubengali",2441,"ubopomofo",12584,"ubreve",365,"ucaron",468,"ucircle",9444,"ucircumflex",251,"ucircumflexbelow",7799,"ucyrillic",1091,"udattadeva",2385,"udblacute",369,"udblgrave",533,"udeva",2313,"udieresis",252,"udieresisacute",472,"udieresisbelow",7795,"udieresiscaron",474,"udieresiscyrillic",1265,"udieresisgrave",476,"udieresismacron",470,"udotbelow",7909,"ugrave",249,"ugujarati",2697,"ugurmukhi",2569,"uhiragana",12358,"uhookabove",7911,"uhorn",432,"uhornacute",7913,"uhorndotbelow",7921,"uhorngrave",7915,"uhornhookabove",7917,"uhorntilde",7919,"uhungarumlaut",369,"uhungarumlautcyrillic",1267,"uinvertedbreve",535,"ukatakana",12454,"ukatakanahalfwidth",65395,"ukcyrillic",1145,"ukorean",12636,"umacron",363,"umacroncyrillic",1263,"umacrondieresis",7803,"umatragurmukhi",2625,"umonospace",65365,"underscore",95,"underscoredbl",8215,"underscoremonospace",65343,"underscorevertical",65075,"underscorewavy",65103,"union",8746,"universal",8704,"uogonek",371,"uparen",9392,"upblock",9600,"upperdothebrew",1476,"upsilon",965,"upsilondieresis",971,"upsilondieresistonos",944,"upsilonlatin",650,"upsilontonos",973,"uptackbelowcmb",797,"uptackmod",724,"uragurmukhi",2675,"uring",367,"ushortcyrillic",1118,"usmallhiragana",12357,"usmallkatakana",12453,"usmallkatakanahalfwidth",65385,"ustraightcyrillic",1199,"ustraightstrokecyrillic",1201,"utilde",361,"utildeacute",7801,"utildebelow",7797,"uubengali",2442,"uudeva",2314,"uugujarati",2698,"uugurmukhi",2570,"uumatragurmukhi",2626,"uuvowelsignbengali",2498,"uuvowelsigndeva",2370,"uuvowelsigngujarati",2754,"uvowelsignbengali",2497,"uvowelsigndeva",2369,"uvowelsigngujarati",2753,"v",118,"vadeva",2357,"vagujarati",2741,"vagurmukhi",2613,"vakatakana",12535,"vav",1493,"vavdagesh",64309,"vavdagesh65",64309,"vavdageshhebrew",64309,"vavhebrew",1493,"vavholam",64331,"vavholamhebrew",64331,"vavvavhebrew",1520,"vavyodhebrew",1521,"vcircle",9445,"vdotbelow",7807,"vecyrillic",1074,"veharabic",1700,"vehfinalarabic",64363,"vehinitialarabic",64364,"vehmedialarabic",64365,"vekatakana",12537,"venus",9792,"verticalbar",124,"verticallineabovecmb",781,"verticallinebelowcmb",809,"verticallinelowmod",716,"verticallinemod",712,"vewarmenian",1406,"vhook",651,"vikatakana",12536,"viramabengali",2509,"viramadeva",2381,"viramagujarati",2765,"visargabengali",2435,"visargadeva",2307,"visargagujarati",2691,"vmonospace",65366,"voarmenian",1400,"voicediterationhiragana",12446,"voicediterationkatakana",12542,"voicedmarkkana",12443,"voicedmarkkanahalfwidth",65438,"vokatakana",12538,"vparen",9393,"vtilde",7805,"vturned",652,"vuhiragana",12436,"vukatakana",12532,"w",119,"wacute",7811,"waekorean",12633,"wahiragana",12431,"wakatakana",12527,"wakatakanahalfwidth",65436,"wakorean",12632,"wasmallhiragana",12430,"wasmallkatakana",12526,"wattosquare",13143,"wavedash",12316,"wavyunderscorevertical",65076,"wawarabic",1608,"wawfinalarabic",65262,"wawhamzaabovearabic",1572,"wawhamzaabovefinalarabic",65158,"wbsquare",13277,"wcircle",9446,"wcircumflex",373,"wdieresis",7813,"wdotaccent",7815,"wdotbelow",7817,"wehiragana",12433,"weierstrass",8472,"wekatakana",12529,"wekorean",12638,"weokorean",12637,"wgrave",7809,"whitebullet",9702,"whitecircle",9675,"whitecircleinverse",9689,"whitecornerbracketleft",12302,"whitecornerbracketleftvertical",65091,"whitecornerbracketright",12303,"whitecornerbracketrightvertical",65092,"whitediamond",9671,"whitediamondcontainingblacksmalldiamond",9672,"whitedownpointingsmalltriangle",9663,"whitedownpointingtriangle",9661,"whiteleftpointingsmalltriangle",9667,"whiteleftpointingtriangle",9665,"whitelenticularbracketleft",12310,"whitelenticularbracketright",12311,"whiterightpointingsmalltriangle",9657,"whiterightpointingtriangle",9655,"whitesmallsquare",9643,"whitesmilingface",9786,"whitesquare",9633,"whitestar",9734,"whitetelephone",9743,"whitetortoiseshellbracketleft",12312,"whitetortoiseshellbracketright",12313,"whiteuppointingsmalltriangle",9653,"whiteuppointingtriangle",9651,"wihiragana",12432,"wikatakana",12528,"wikorean",12639,"wmonospace",65367,"wohiragana",12434,"wokatakana",12530,"wokatakanahalfwidth",65382,"won",8361,"wonmonospace",65510,"wowaenthai",3623,"wparen",9394,"wring",7832,"wsuperior",695,"wturned",653,"wynn",447,"x",120,"xabovecmb",829,"xbopomofo",12562,"xcircle",9447,"xdieresis",7821,"xdotaccent",7819,"xeharmenian",1389,"xi",958,"xmonospace",65368,"xparen",9395,"xsuperior",739,"y",121,"yaadosquare",13134,"yabengali",2479,"yacute",253,"yadeva",2351,"yaekorean",12626,"yagujarati",2735,"yagurmukhi",2607,"yahiragana",12420,"yakatakana",12516,"yakatakanahalfwidth",65428,"yakorean",12625,"yamakkanthai",3662,"yasmallhiragana",12419,"yasmallkatakana",12515,"yasmallkatakanahalfwidth",65388,"yatcyrillic",1123,"ycircle",9448,"ycircumflex",375,"ydieresis",255,"ydotaccent",7823,"ydotbelow",7925,"yeharabic",1610,"yehbarreearabic",1746,"yehbarreefinalarabic",64431,"yehfinalarabic",65266,"yehhamzaabovearabic",1574,"yehhamzaabovefinalarabic",65162,"yehhamzaaboveinitialarabic",65163,"yehhamzaabovemedialarabic",65164,"yehinitialarabic",65267,"yehmedialarabic",65268,"yehmeeminitialarabic",64733,"yehmeemisolatedarabic",64600,"yehnoonfinalarabic",64660,"yehthreedotsbelowarabic",1745,"yekorean",12630,"yen",165,"yenmonospace",65509,"yeokorean",12629,"yeorinhieuhkorean",12678,"yerahbenyomohebrew",1450,"yerahbenyomolefthebrew",1450,"yericyrillic",1099,"yerudieresiscyrillic",1273,"yesieungkorean",12673,"yesieungpansioskorean",12675,"yesieungsioskorean",12674,"yetivhebrew",1434,"ygrave",7923,"yhook",436,"yhookabove",7927,"yiarmenian",1397,"yicyrillic",1111,"yikorean",12642,"yinyang",9775,"yiwnarmenian",1410,"ymonospace",65369,"yod",1497,"yoddagesh",64313,"yoddageshhebrew",64313,"yodhebrew",1497,"yodyodhebrew",1522,"yodyodpatahhebrew",64287,"yohiragana",12424,"yoikorean",12681,"yokatakana",12520,"yokatakanahalfwidth",65430,"yokorean",12635,"yosmallhiragana",12423,"yosmallkatakana",12519,"yosmallkatakanahalfwidth",65390,"yotgreek",1011,"yoyaekorean",12680,"yoyakorean",12679,"yoyakthai",3618,"yoyingthai",3597,"yparen",9396,"ypogegrammeni",890,"ypogegrammenigreekcmb",837,"yr",422,"yring",7833,"ysuperior",696,"ytilde",7929,"yturned",654,"yuhiragana",12422,"yuikorean",12684,"yukatakana",12518,"yukatakanahalfwidth",65429,"yukorean",12640,"yusbigcyrillic",1131,"yusbigiotifiedcyrillic",1133,"yuslittlecyrillic",1127,"yuslittleiotifiedcyrillic",1129,"yusmallhiragana",12421,"yusmallkatakana",12517,"yusmallkatakanahalfwidth",65389,"yuyekorean",12683,"yuyeokorean",12682,"yyabengali",2527,"yyadeva",2399,"z",122,"zaarmenian",1382,"zacute",378,"zadeva",2395,"zagurmukhi",2651,"zaharabic",1592,"zahfinalarabic",65222,"zahinitialarabic",65223,"zahiragana",12374,"zahmedialarabic",65224,"zainarabic",1586,"zainfinalarabic",65200,"zakatakana",12470,"zaqefgadolhebrew",1429,"zaqefqatanhebrew",1428,"zarqahebrew",1432,"zayin",1494,"zayindagesh",64310,"zayindageshhebrew",64310,"zayinhebrew",1494,"zbopomofo",12567,"zcaron",382,"zcircle",9449,"zcircumflex",7825,"zcurl",657,"zdot",380,"zdotaccent",380,"zdotbelow",7827,"zecyrillic",1079,"zedescendercyrillic",1177,"zedieresiscyrillic",1247,"zehiragana",12380,"zekatakana",12476,"zero",48,"zeroarabic",1632,"zerobengali",2534,"zerodeva",2406,"zerogujarati",2790,"zerogurmukhi",2662,"zerohackarabic",1632,"zeroinferior",8320,"zeromonospace",65296,"zerooldstyle",63280,"zeropersian",1776,"zerosuperior",8304,"zerothai",3664,"zerowidthjoiner",65279,"zerowidthnonjoiner",8204,"zerowidthspace",8203,"zeta",950,"zhbopomofo",12563,"zhearmenian",1386,"zhebrevecyrillic",1218,"zhecyrillic",1078,"zhedescendercyrillic",1175,"zhedieresiscyrillic",1245,"zihiragana",12376,"zikatakana",12472,"zinorhebrew",1454,"zlinebelow",7829,"zmonospace",65370,"zohiragana",12382,"zokatakana",12478,"zparen",9397,"zretroflexhook",656,"zstroke",438,"zuhiragana",12378,"zukatakana",12474,".notdef",0,"angbracketleftbig",9001,"angbracketleftBig",9001,"angbracketleftbigg",9001,"angbracketleftBigg",9001,"angbracketrightBig",9002,"angbracketrightbig",9002,"angbracketrightBigg",9002,"angbracketrightbigg",9002,"arrowhookleft",8618,"arrowhookright",8617,"arrowlefttophalf",8636,"arrowleftbothalf",8637,"arrownortheast",8599,"arrownorthwest",8598,"arrowrighttophalf",8640,"arrowrightbothalf",8641,"arrowsoutheast",8600,"arrowsouthwest",8601,"backslashbig",8726,"backslashBig",8726,"backslashBigg",8726,"backslashbigg",8726,"bardbl",8214,"bracehtipdownleft",65079,"bracehtipdownright",65079,"bracehtipupleft",65080,"bracehtipupright",65080,"braceleftBig",123,"braceleftbig",123,"braceleftbigg",123,"braceleftBigg",123,"bracerightBig",125,"bracerightbig",125,"bracerightbigg",125,"bracerightBigg",125,"bracketleftbig",91,"bracketleftBig",91,"bracketleftbigg",91,"bracketleftBigg",91,"bracketrightBig",93,"bracketrightbig",93,"bracketrightbigg",93,"bracketrightBigg",93,"ceilingleftbig",8968,"ceilingleftBig",8968,"ceilingleftBigg",8968,"ceilingleftbigg",8968,"ceilingrightbig",8969,"ceilingrightBig",8969,"ceilingrightbigg",8969,"ceilingrightBigg",8969,"circledotdisplay",8857,"circledottext",8857,"circlemultiplydisplay",8855,"circlemultiplytext",8855,"circleplusdisplay",8853,"circleplustext",8853,"contintegraldisplay",8750,"contintegraltext",8750,"coproductdisplay",8720,"coproducttext",8720,"floorleftBig",8970,"floorleftbig",8970,"floorleftbigg",8970,"floorleftBigg",8970,"floorrightbig",8971,"floorrightBig",8971,"floorrightBigg",8971,"floorrightbigg",8971,"hatwide",770,"hatwider",770,"hatwidest",770,"intercal",7488,"integraldisplay",8747,"integraltext",8747,"intersectiondisplay",8898,"intersectiontext",8898,"logicalanddisplay",8743,"logicalandtext",8743,"logicalordisplay",8744,"logicalortext",8744,"parenleftBig",40,"parenleftbig",40,"parenleftBigg",40,"parenleftbigg",40,"parenrightBig",41,"parenrightbig",41,"parenrightBigg",41,"parenrightbigg",41,"prime",8242,"productdisplay",8719,"producttext",8719,"radicalbig",8730,"radicalBig",8730,"radicalBigg",8730,"radicalbigg",8730,"radicalbt",8730,"radicaltp",8730,"radicalvertex",8730,"slashbig",47,"slashBig",47,"slashBigg",47,"slashbigg",47,"summationdisplay",8721,"summationtext",8721,"tildewide",732,"tildewider",732,"tildewidest",732,"uniondisplay",8899,"unionmultidisplay",8846,"unionmultitext",8846,"unionsqdisplay",8852,"unionsqtext",8852,"uniontext",8899,"vextenddouble",8741,"vextendsingle",8739]})),i=(0,r.getArrayLookupTableFactory)((function(){return["space",32,"a1",9985,"a2",9986,"a202",9987,"a3",9988,"a4",9742,"a5",9990,"a119",9991,"a118",9992,"a117",9993,"a11",9755,"a12",9758,"a13",9996,"a14",9997,"a15",9998,"a16",9999,"a105",1e4,"a17",10001,"a18",10002,"a19",10003,"a20",10004,"a21",10005,"a22",10006,"a23",10007,"a24",10008,"a25",10009,"a26",10010,"a27",10011,"a28",10012,"a6",10013,"a7",10014,"a8",10015,"a9",10016,"a10",10017,"a29",10018,"a30",10019,"a31",10020,"a32",10021,"a33",10022,"a34",10023,"a35",9733,"a36",10025,"a37",10026,"a38",10027,"a39",10028,"a40",10029,"a41",10030,"a42",10031,"a43",10032,"a44",10033,"a45",10034,"a46",10035,"a47",10036,"a48",10037,"a49",10038,"a50",10039,"a51",10040,"a52",10041,"a53",10042,"a54",10043,"a55",10044,"a56",10045,"a57",10046,"a58",10047,"a59",10048,"a60",10049,"a61",10050,"a62",10051,"a63",10052,"a64",10053,"a65",10054,"a66",10055,"a67",10056,"a68",10057,"a69",10058,"a70",10059,"a71",9679,"a72",10061,"a73",9632,"a74",10063,"a203",10064,"a75",10065,"a204",10066,"a76",9650,"a77",9660,"a78",9670,"a79",10070,"a81",9687,"a82",10072,"a83",10073,"a84",10074,"a97",10075,"a98",10076,"a99",10077,"a100",10078,"a101",10081,"a102",10082,"a103",10083,"a104",10084,"a106",10085,"a107",10086,"a108",10087,"a112",9827,"a111",9830,"a110",9829,"a109",9824,"a120",9312,"a121",9313,"a122",9314,"a123",9315,"a124",9316,"a125",9317,"a126",9318,"a127",9319,"a128",9320,"a129",9321,"a130",10102,"a131",10103,"a132",10104,"a133",10105,"a134",10106,"a135",10107,"a136",10108,"a137",10109,"a138",10110,"a139",10111,"a140",10112,"a141",10113,"a142",10114,"a143",10115,"a144",10116,"a145",10117,"a146",10118,"a147",10119,"a148",10120,"a149",10121,"a150",10122,"a151",10123,"a152",10124,"a153",10125,"a154",10126,"a155",10127,"a156",10128,"a157",10129,"a158",10130,"a159",10131,"a160",10132,"a161",8594,"a163",8596,"a164",8597,"a196",10136,"a165",10137,"a192",10138,"a166",10139,"a167",10140,"a168",10141,"a169",10142,"a170",10143,"a171",10144,"a172",10145,"a173",10146,"a162",10147,"a174",10148,"a175",10149,"a176",10150,"a177",10151,"a178",10152,"a179",10153,"a193",10154,"a180",10155,"a199",10156,"a181",10157,"a200",10158,"a182",10159,"a201",10161,"a183",10162,"a184",10163,"a197",10164,"a185",10165,"a194",10166,"a198",10167,"a186",10168,"a195",10169,"a187",10170,"a188",10171,"a189",10172,"a190",10173,"a191",10174,"a89",10088,"a90",10089,"a93",10090,"a94",10091,"a91",10092,"a92",10093,"a205",10094,"a85",10095,"a206",10096,"a86",10097,"a87",10098,"a88",10099,"a95",10100,"a96",10101,".notdef",0]}))},(e,t,a)=>{a.r(t);a.d(t,{clearUnicodeCaches:()=>clearUnicodeCaches,getCharUnicodeCategory:()=>getCharUnicodeCategory,getNormalizedUnicodes:()=>s,getUnicodeForGlyph:()=>getUnicodeForGlyph,getUnicodeRangeFor:()=>getUnicodeRangeFor,mapSpecialUnicodeValues:()=>mapSpecialUnicodeValues,reverseIfRtl:()=>reverseIfRtl});var r=a(4);const n=(0,r.getLookupTableFactory)((function(e){e[63721]=169;e[63193]=169;e[63720]=174;e[63194]=174;e[63722]=8482;e[63195]=8482;e[63729]=9127;e[63730]=9128;e[63731]=9129;e[63740]=9131;e[63741]=9132;e[63742]=9133;e[63726]=9121;e[63727]=9122;e[63728]=9123;e[63737]=9124;e[63738]=9125;e[63739]=9126;e[63723]=9115;e[63724]=9116;e[63725]=9117;e[63734]=9118;e[63735]=9119;e[63736]=9120}));function mapSpecialUnicodeValues(e){return e>=65520&&e<=65535?0:e>=62976&&e<=63743?n()[e]||e:173===e?45:e}function getUnicodeForGlyph(e,t){let a=t[e];if(void 0!==a)return a;if(!e)return-1;if("u"===e[0]){const t=e.length;let r;if(7===t&&"n"===e[1]&&"i"===e[2])r=e.substring(3);else{if(!(t>=5&&t<=7))return-1;r=e.substring(1)}if(r===r.toUpperCase()){a=parseInt(r,16);if(a>=0)return a}}return-1}const i=[{begin:0,end:127},{begin:128,end:255},{begin:256,end:383},{begin:384,end:591},{begin:592,end:687},{begin:688,end:767},{begin:768,end:879},{begin:880,end:1023},{begin:11392,end:11519},{begin:1024,end:1279},{begin:1328,end:1423},{begin:1424,end:1535},{begin:42240,end:42559},{begin:1536,end:1791},{begin:1984,end:2047},{begin:2304,end:2431},{begin:2432,end:2559},{begin:2560,end:2687},{begin:2688,end:2815},{begin:2816,end:2943},{begin:2944,end:3071},{begin:3072,end:3199},{begin:3200,end:3327},{begin:3328,end:3455},{begin:3584,end:3711},{begin:3712,end:3839},{begin:4256,end:4351},{begin:6912,end:7039},{begin:4352,end:4607},{begin:7680,end:7935},{begin:7936,end:8191},{begin:8192,end:8303},{begin:8304,end:8351},{begin:8352,end:8399},{begin:8400,end:8447},{begin:8448,end:8527},{begin:8528,end:8591},{begin:8592,end:8703},{begin:8704,end:8959},{begin:8960,end:9215},{begin:9216,end:9279},{begin:9280,end:9311},{begin:9312,end:9471},{begin:9472,end:9599},{begin:9600,end:9631},{begin:9632,end:9727},{begin:9728,end:9983},{begin:9984,end:10175},{begin:12288,end:12351},{begin:12352,end:12447},{begin:12448,end:12543},{begin:12544,end:12591},{begin:12592,end:12687},{begin:43072,end:43135},{begin:12800,end:13055},{begin:13056,end:13311},{begin:44032,end:55215},{begin:55296,end:57343},{begin:67840,end:67871},{begin:19968,end:40959},{begin:57344,end:63743},{begin:12736,end:12783},{begin:64256,end:64335},{begin:64336,end:65023},{begin:65056,end:65071},{begin:65040,end:65055},{begin:65104,end:65135},{begin:65136,end:65279},{begin:65280,end:65519},{begin:65520,end:65535},{begin:3840,end:4095},{begin:1792,end:1871},{begin:1920,end:1983},{begin:3456,end:3583},{begin:4096,end:4255},{begin:4608,end:4991},{begin:5024,end:5119},{begin:5120,end:5759},{begin:5760,end:5791},{begin:5792,end:5887},{begin:6016,end:6143},{begin:6144,end:6319},{begin:10240,end:10495},{begin:40960,end:42127},{begin:5888,end:5919},{begin:66304,end:66351},{begin:66352,end:66383},{begin:66560,end:66639},{begin:118784,end:119039},{begin:119808,end:120831},{begin:1044480,end:1048573},{begin:65024,end:65039},{begin:917504,end:917631},{begin:6400,end:6479},{begin:6480,end:6527},{begin:6528,end:6623},{begin:6656,end:6687},{begin:11264,end:11359},{begin:11568,end:11647},{begin:19904,end:19967},{begin:43008,end:43055},{begin:65536,end:65663},{begin:65856,end:65935},{begin:66432,end:66463},{begin:66464,end:66527},{begin:66640,end:66687},{begin:66688,end:66735},{begin:67584,end:67647},{begin:68096,end:68191},{begin:119552,end:119647},{begin:73728,end:74751},{begin:119648,end:119679},{begin:7040,end:7103},{begin:7168,end:7247},{begin:7248,end:7295},{begin:43136,end:43231},{begin:43264,end:43311},{begin:43312,end:43359},{begin:43520,end:43615},{begin:65936,end:65999},{begin:66e3,end:66047},{begin:66208,end:66271},{begin:127024,end:127135}];function getUnicodeRangeFor(e){for(let t=0,a=i.length;t=a.begin&&e=t.begin&&e=t.begin&&e=0;r--)a.push(e[r]);return a.join("")}const o=new RegExp("^(\\s)|(\\p{Mn})|(\\p{Cf})$","u"),c=new Map;function getCharUnicodeCategory(e){const t=c.get(e);if(t)return t;const a=e.match(o),r={isWhitespace:!(!a||!a[1]),isZeroWidthDiacritic:!(!a||!a[2]),isInvisibleFormatMark:!(!a||!a[3])};c.set(e,r);return r}function clearUnicodeCaches(){c.clear()}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.getSerifFonts=t.getNonStdFontMap=t.getGlyphMapForStandardFonts=t.getFontNameToFileMap=void 0;t.getStandardFontName=function getStandardFontName(e){const t=(0,n.normalizeFontName)(e);return i()[t]};t.getSymbolsFonts=t.getSupplementalGlyphMapForCalibri=t.getSupplementalGlyphMapForArialBlack=t.getStdFontMap=void 0;var r=a(4),n=a(36);const i=(0,r.getLookupTableFactory)((function(e){e["Times-Roman"]="Times-Roman";e.Helvetica="Helvetica";e.Courier="Courier";e.Symbol="Symbol";e["Times-Bold"]="Times-Bold";e["Helvetica-Bold"]="Helvetica-Bold";e["Courier-Bold"]="Courier-Bold";e.ZapfDingbats="ZapfDingbats";e["Times-Italic"]="Times-Italic";e["Helvetica-Oblique"]="Helvetica-Oblique";e["Courier-Oblique"]="Courier-Oblique";e["Times-BoldItalic"]="Times-BoldItalic";e["Helvetica-BoldOblique"]="Helvetica-BoldOblique";e["Courier-BoldOblique"]="Courier-BoldOblique";e.ArialNarrow="Helvetica";e["ArialNarrow-Bold"]="Helvetica-Bold";e["ArialNarrow-BoldItalic"]="Helvetica-BoldOblique";e["ArialNarrow-Italic"]="Helvetica-Oblique";e.ArialBlack="Helvetica";e["ArialBlack-Bold"]="Helvetica-Bold";e["ArialBlack-BoldItalic"]="Helvetica-BoldOblique";e["ArialBlack-Italic"]="Helvetica-Oblique";e["Arial-Black"]="Helvetica";e["Arial-Black-Bold"]="Helvetica-Bold";e["Arial-Black-BoldItalic"]="Helvetica-BoldOblique";e["Arial-Black-Italic"]="Helvetica-Oblique";e.Arial="Helvetica";e["Arial-Bold"]="Helvetica-Bold";e["Arial-BoldItalic"]="Helvetica-BoldOblique";e["Arial-Italic"]="Helvetica-Oblique";e.ArialMT="Helvetica";e["Arial-BoldItalicMT"]="Helvetica-BoldOblique";e["Arial-BoldMT"]="Helvetica-Bold";e["Arial-ItalicMT"]="Helvetica-Oblique";e.ArialUnicodeMS="Helvetica";e["ArialUnicodeMS-Bold"]="Helvetica-Bold";e["ArialUnicodeMS-BoldItalic"]="Helvetica-BoldOblique";e["ArialUnicodeMS-Italic"]="Helvetica-Oblique";e["Courier-BoldItalic"]="Courier-BoldOblique";e["Courier-Italic"]="Courier-Oblique";e.CourierNew="Courier";e["CourierNew-Bold"]="Courier-Bold";e["CourierNew-BoldItalic"]="Courier-BoldOblique";e["CourierNew-Italic"]="Courier-Oblique";e["CourierNewPS-BoldItalicMT"]="Courier-BoldOblique";e["CourierNewPS-BoldMT"]="Courier-Bold";e["CourierNewPS-ItalicMT"]="Courier-Oblique";e.CourierNewPSMT="Courier";e["Helvetica-BoldItalic"]="Helvetica-BoldOblique";e["Helvetica-Italic"]="Helvetica-Oblique";e["Symbol-Bold"]="Symbol";e["Symbol-BoldItalic"]="Symbol";e["Symbol-Italic"]="Symbol";e.TimesNewRoman="Times-Roman";e["TimesNewRoman-Bold"]="Times-Bold";e["TimesNewRoman-BoldItalic"]="Times-BoldItalic";e["TimesNewRoman-Italic"]="Times-Italic";e.TimesNewRomanPS="Times-Roman";e["TimesNewRomanPS-Bold"]="Times-Bold";e["TimesNewRomanPS-BoldItalic"]="Times-BoldItalic";e["TimesNewRomanPS-BoldItalicMT"]="Times-BoldItalic";e["TimesNewRomanPS-BoldMT"]="Times-Bold";e["TimesNewRomanPS-Italic"]="Times-Italic";e["TimesNewRomanPS-ItalicMT"]="Times-Italic";e.TimesNewRomanPSMT="Times-Roman";e["TimesNewRomanPSMT-Bold"]="Times-Bold";e["TimesNewRomanPSMT-BoldItalic"]="Times-BoldItalic";e["TimesNewRomanPSMT-Italic"]="Times-Italic"}));t.getStdFontMap=i;const s=(0,r.getLookupTableFactory)((function(e){e.Courier="FoxitFixed.pfb";e["Courier-Bold"]="FoxitFixedBold.pfb";e["Courier-BoldOblique"]="FoxitFixedBoldItalic.pfb";e["Courier-Oblique"]="FoxitFixedItalic.pfb";e.Helvetica="FoxitSans.pfb";e["Helvetica-Bold"]="FoxitSansBold.pfb";e["Helvetica-BoldOblique"]="FoxitSansBoldItalic.pfb";e["Helvetica-Oblique"]="FoxitSansItalic.pfb";e["Times-Roman"]="FoxitSerif.pfb";e["Times-Bold"]="FoxitSerifBold.pfb";e["Times-BoldItalic"]="FoxitSerifBoldItalic.pfb";e["Times-Italic"]="FoxitSerifItalic.pfb";e.Symbol="FoxitSymbol.pfb";e.ZapfDingbats="FoxitDingbats.pfb";e["LiberationSans-Regular"]="LiberationSans-Regular.ttf";e["LiberationSans-Bold"]="LiberationSans-Bold.ttf";e["LiberationSans-Italic"]="LiberationSans-Italic.ttf";e["LiberationSans-BoldItalic"]="LiberationSans-BoldItalic.ttf"}));t.getFontNameToFileMap=s;const o=(0,r.getLookupTableFactory)((function(e){e.Calibri="Helvetica";e["Calibri-Bold"]="Helvetica-Bold";e["Calibri-BoldItalic"]="Helvetica-BoldOblique";e["Calibri-Italic"]="Helvetica-Oblique";e.CenturyGothic="Helvetica";e["CenturyGothic-Bold"]="Helvetica-Bold";e["CenturyGothic-BoldItalic"]="Helvetica-BoldOblique";e["CenturyGothic-Italic"]="Helvetica-Oblique";e.ComicSansMS="Comic Sans MS";e["ComicSansMS-Bold"]="Comic Sans MS-Bold";e["ComicSansMS-BoldItalic"]="Comic Sans MS-BoldItalic";e["ComicSansMS-Italic"]="Comic Sans MS-Italic";e["ItcSymbol-Bold"]="Helvetica-Bold";e["ItcSymbol-BoldItalic"]="Helvetica-BoldOblique";e["ItcSymbol-Book"]="Helvetica";e["ItcSymbol-BookItalic"]="Helvetica-Oblique";e["ItcSymbol-Medium"]="Helvetica";e["ItcSymbol-MediumItalic"]="Helvetica-Oblique";e.LucidaConsole="Courier";e["LucidaConsole-Bold"]="Courier-Bold";e["LucidaConsole-BoldItalic"]="Courier-BoldOblique";e["LucidaConsole-Italic"]="Courier-Oblique";e["LucidaSans-Demi"]="Helvetica-Bold";e["MS-Gothic"]="MS Gothic";e["MS-Gothic-Bold"]="MS Gothic-Bold";e["MS-Gothic-BoldItalic"]="MS Gothic-BoldItalic";e["MS-Gothic-Italic"]="MS Gothic-Italic";e["MS-Mincho"]="MS Mincho";e["MS-Mincho-Bold"]="MS Mincho-Bold";e["MS-Mincho-BoldItalic"]="MS Mincho-BoldItalic";e["MS-Mincho-Italic"]="MS Mincho-Italic";e["MS-PGothic"]="MS PGothic";e["MS-PGothic-Bold"]="MS PGothic-Bold";e["MS-PGothic-BoldItalic"]="MS PGothic-BoldItalic";e["MS-PGothic-Italic"]="MS PGothic-Italic";e["MS-PMincho"]="MS PMincho";e["MS-PMincho-Bold"]="MS PMincho-Bold";e["MS-PMincho-BoldItalic"]="MS PMincho-BoldItalic";e["MS-PMincho-Italic"]="MS PMincho-Italic";e.NuptialScript="Times-Italic";e.SegoeUISymbol="Helvetica";e.Wingdings="ZapfDingbats";e["Wingdings-Regular"]="ZapfDingbats"}));t.getNonStdFontMap=o;const c=(0,r.getLookupTableFactory)((function(e){e["Adobe Jenson"]=!0;e["Adobe Text"]=!0;e.Albertus=!0;e.Aldus=!0;e.Alexandria=!0;e.Algerian=!0;e["American Typewriter"]=!0;e.Antiqua=!0;e.Apex=!0;e.Arno=!0;e.Aster=!0;e.Aurora=!0;e.Baskerville=!0;e.Bell=!0;e.Bembo=!0;e["Bembo Schoolbook"]=!0;e.Benguiat=!0;e["Berkeley Old Style"]=!0;e["Bernhard Modern"]=!0;e["Berthold City"]=!0;e.Bodoni=!0;e["Bauer Bodoni"]=!0;e["Book Antiqua"]=!0;e.Bookman=!0;e["Bordeaux Roman"]=!0;e["Californian FB"]=!0;e.Calisto=!0;e.Calvert=!0;e.Capitals=!0;e.Cambria=!0;e.Cartier=!0;e.Caslon=!0;e.Catull=!0;e.Centaur=!0;e["Century Old Style"]=!0;e["Century Schoolbook"]=!0;e.Chaparral=!0;e["Charis SIL"]=!0;e.Cheltenham=!0;e["Cholla Slab"]=!0;e.Clarendon=!0;e.Clearface=!0;e.Cochin=!0;e.Colonna=!0;e["Computer Modern"]=!0;e["Concrete Roman"]=!0;e.Constantia=!0;e["Cooper Black"]=!0;e.Corona=!0;e.Ecotype=!0;e.Egyptienne=!0;e.Elephant=!0;e.Excelsior=!0;e.Fairfield=!0;e["FF Scala"]=!0;e.Folkard=!0;e.Footlight=!0;e.FreeSerif=!0;e["Friz Quadrata"]=!0;e.Garamond=!0;e.Gentium=!0;e.Georgia=!0;e.Gloucester=!0;e["Goudy Old Style"]=!0;e["Goudy Schoolbook"]=!0;e["Goudy Pro Font"]=!0;e.Granjon=!0;e["Guardian Egyptian"]=!0;e.Heather=!0;e.Hercules=!0;e["High Tower Text"]=!0;e.Hiroshige=!0;e["Hoefler Text"]=!0;e["Humana Serif"]=!0;e.Imprint=!0;e["Ionic No. 5"]=!0;e.Janson=!0;e.Joanna=!0;e.Korinna=!0;e.Lexicon=!0;e.LiberationSerif=!0;e["Liberation Serif"]=!0;e["Linux Libertine"]=!0;e.Literaturnaya=!0;e.Lucida=!0;e["Lucida Bright"]=!0;e.Melior=!0;e.Memphis=!0;e.Miller=!0;e.Minion=!0;e.Modern=!0;e["Mona Lisa"]=!0;e["Mrs Eaves"]=!0;e["MS Serif"]=!0;e["Museo Slab"]=!0;e["New York"]=!0;e["Nimbus Roman"]=!0;e["NPS Rawlinson Roadway"]=!0;e.NuptialScript=!0;e.Palatino=!0;e.Perpetua=!0;e.Plantin=!0;e["Plantin Schoolbook"]=!0;e.Playbill=!0;e["Poor Richard"]=!0;e["Rawlinson Roadway"]=!0;e.Renault=!0;e.Requiem=!0;e.Rockwell=!0;e.Roman=!0;e["Rotis Serif"]=!0;e.Sabon=!0;e.Scala=!0;e.Seagull=!0;e.Sistina=!0;e.Souvenir=!0;e.STIX=!0;e["Stone Informal"]=!0;e["Stone Serif"]=!0;e.Sylfaen=!0;e.Times=!0;e.Trajan=!0;e["Trinité"]=!0;e["Trump Mediaeval"]=!0;e.Utopia=!0;e["Vale Type"]=!0;e["Bitstream Vera"]=!0;e["Vera Serif"]=!0;e.Versailles=!0;e.Wanted=!0;e.Weiss=!0;e["Wide Latin"]=!0;e.Windsor=!0;e.XITS=!0}));t.getSerifFonts=c;const l=(0,r.getLookupTableFactory)((function(e){e.Dingbats=!0;e.Symbol=!0;e.ZapfDingbats=!0}));t.getSymbolsFonts=l;const h=(0,r.getLookupTableFactory)((function(e){e[2]=10;e[3]=32;e[4]=33;e[5]=34;e[6]=35;e[7]=36;e[8]=37;e[9]=38;e[10]=39;e[11]=40;e[12]=41;e[13]=42;e[14]=43;e[15]=44;e[16]=45;e[17]=46;e[18]=47;e[19]=48;e[20]=49;e[21]=50;e[22]=51;e[23]=52;e[24]=53;e[25]=54;e[26]=55;e[27]=56;e[28]=57;e[29]=58;e[30]=894;e[31]=60;e[32]=61;e[33]=62;e[34]=63;e[35]=64;e[36]=65;e[37]=66;e[38]=67;e[39]=68;e[40]=69;e[41]=70;e[42]=71;e[43]=72;e[44]=73;e[45]=74;e[46]=75;e[47]=76;e[48]=77;e[49]=78;e[50]=79;e[51]=80;e[52]=81;e[53]=82;e[54]=83;e[55]=84;e[56]=85;e[57]=86;e[58]=87;e[59]=88;e[60]=89;e[61]=90;e[62]=91;e[63]=92;e[64]=93;e[65]=94;e[66]=95;e[67]=96;e[68]=97;e[69]=98;e[70]=99;e[71]=100;e[72]=101;e[73]=102;e[74]=103;e[75]=104;e[76]=105;e[77]=106;e[78]=107;e[79]=108;e[80]=109;e[81]=110;e[82]=111;e[83]=112;e[84]=113;e[85]=114;e[86]=115;e[87]=116;e[88]=117;e[89]=118;e[90]=119;e[91]=120;e[92]=121;e[93]=122;e[94]=123;e[95]=124;e[96]=125;e[97]=126;e[98]=196;e[99]=197;e[100]=199;e[101]=201;e[102]=209;e[103]=214;e[104]=220;e[105]=225;e[106]=224;e[107]=226;e[108]=228;e[109]=227;e[110]=229;e[111]=231;e[112]=233;e[113]=232;e[114]=234;e[115]=235;e[116]=237;e[117]=236;e[118]=238;e[119]=239;e[120]=241;e[121]=243;e[122]=242;e[123]=244;e[124]=246;e[125]=245;e[126]=250;e[127]=249;e[128]=251;e[129]=252;e[130]=8224;e[131]=176;e[132]=162;e[133]=163;e[134]=167;e[135]=8226;e[136]=182;e[137]=223;e[138]=174;e[139]=169;e[140]=8482;e[141]=180;e[142]=168;e[143]=8800;e[144]=198;e[145]=216;e[146]=8734;e[147]=177;e[148]=8804;e[149]=8805;e[150]=165;e[151]=181;e[152]=8706;e[153]=8721;e[154]=8719;e[156]=8747;e[157]=170;e[158]=186;e[159]=8486;e[160]=230;e[161]=248;e[162]=191;e[163]=161;e[164]=172;e[165]=8730;e[166]=402;e[167]=8776;e[168]=8710;e[169]=171;e[170]=187;e[171]=8230;e[179]=8220;e[180]=8221;e[181]=8216;e[182]=8217;e[200]=193;e[203]=205;e[210]=218;e[223]=711;e[224]=321;e[225]=322;e[226]=352;e[227]=353;e[228]=381;e[229]=382;e[233]=221;e[234]=253;e[252]=263;e[253]=268;e[254]=269;e[258]=258;e[260]=260;e[261]=261;e[265]=280;e[266]=281;e[267]=282;e[268]=283;e[269]=313;e[275]=323;e[276]=324;e[278]=328;e[283]=344;e[284]=345;e[285]=346;e[286]=347;e[292]=367;e[295]=377;e[296]=378;e[298]=380;e[305]=963;e[306]=964;e[307]=966;e[308]=8215;e[309]=8252;e[310]=8319;e[311]=8359;e[312]=8592;e[313]=8593;e[337]=9552;e[493]=1039;e[494]=1040;e[672]=1488;e[673]=1489;e[674]=1490;e[675]=1491;e[676]=1492;e[677]=1493;e[678]=1494;e[679]=1495;e[680]=1496;e[681]=1497;e[682]=1498;e[683]=1499;e[684]=1500;e[685]=1501;e[686]=1502;e[687]=1503;e[688]=1504;e[689]=1505;e[690]=1506;e[691]=1507;e[692]=1508;e[693]=1509;e[694]=1510;e[695]=1511;e[696]=1512;e[697]=1513;e[698]=1514;e[705]=1524;e[706]=8362;e[710]=64288;e[711]=64298;e[759]=1617;e[761]=1776;e[763]=1778;e[775]=1652;e[777]=1764;e[778]=1780;e[779]=1781;e[780]=1782;e[782]=771;e[783]=64726;e[786]=8363;e[788]=8532;e[790]=768;e[791]=769;e[792]=768;e[795]=803;e[797]=64336;e[798]=64337;e[799]=64342;e[800]=64343;e[801]=64344;e[802]=64345;e[803]=64362;e[804]=64363;e[805]=64364;e[2424]=7821;e[2425]=7822;e[2426]=7823;e[2427]=7824;e[2428]=7825;e[2429]=7826;e[2430]=7827;e[2433]=7682;e[2678]=8045;e[2679]=8046;e[2830]=1552;e[2838]=686;e[2840]=751;e[2842]=753;e[2843]=754;e[2844]=755;e[2846]=757;e[2856]=767;e[2857]=848;e[2858]=849;e[2862]=853;e[2863]=854;e[2864]=855;e[2865]=861;e[2866]=862;e[2906]=7460;e[2908]=7462;e[2909]=7463;e[2910]=7464;e[2912]=7466;e[2913]=7467;e[2914]=7468;e[2916]=7470;e[2917]=7471;e[2918]=7472;e[2920]=7474;e[2921]=7475;e[2922]=7476;e[2924]=7478;e[2925]=7479;e[2926]=7480;e[2928]=7482;e[2929]=7483;e[2930]=7484;e[2932]=7486;e[2933]=7487;e[2934]=7488;e[2936]=7490;e[2937]=7491;e[2938]=7492;e[2940]=7494;e[2941]=7495;e[2942]=7496;e[2944]=7498;e[2946]=7500;e[2948]=7502;e[2950]=7504;e[2951]=7505;e[2952]=7506;e[2954]=7508;e[2955]=7509;e[2956]=7510;e[2958]=7512;e[2959]=7513;e[2960]=7514;e[2962]=7516;e[2963]=7517;e[2964]=7518;e[2966]=7520;e[2967]=7521;e[2968]=7522;e[2970]=7524;e[2971]=7525;e[2972]=7526;e[2974]=7528;e[2975]=7529;e[2976]=7530;e[2978]=1537;e[2979]=1538;e[2980]=1539;e[2982]=1549;e[2983]=1551;e[2984]=1552;e[2986]=1554;e[2987]=1555;e[2988]=1556;e[2990]=1623;e[2991]=1624;e[2995]=1775;e[2999]=1791;e[3002]=64290;e[3003]=64291;e[3004]=64292;e[3006]=64294;e[3007]=64295;e[3008]=64296;e[3011]=1900;e[3014]=8223;e[3015]=8244;e[3017]=7532;e[3018]=7533;e[3019]=7534;e[3075]=7590;e[3076]=7591;e[3079]=7594;e[3080]=7595;e[3083]=7598;e[3084]=7599;e[3087]=7602;e[3088]=7603;e[3091]=7606;e[3092]=7607;e[3095]=7610;e[3096]=7611;e[3099]=7614;e[3100]=7615;e[3103]=7618;e[3104]=7619;e[3107]=8337;e[3108]=8338;e[3116]=1884;e[3119]=1885;e[3120]=1885;e[3123]=1886;e[3124]=1886;e[3127]=1887;e[3128]=1887;e[3131]=1888;e[3132]=1888;e[3135]=1889;e[3136]=1889;e[3139]=1890;e[3140]=1890;e[3143]=1891;e[3144]=1891;e[3147]=1892;e[3148]=1892;e[3153]=580;e[3154]=581;e[3157]=584;e[3158]=585;e[3161]=588;e[3162]=589;e[3165]=891;e[3166]=892;e[3169]=1274;e[3170]=1275;e[3173]=1278;e[3174]=1279;e[3181]=7622;e[3182]=7623;e[3282]=11799;e[3316]=578;e[3379]=42785;e[3393]=1159;e[3416]=8377}));t.getGlyphMapForStandardFonts=h;const u=(0,r.getLookupTableFactory)((function(e){e[227]=322;e[264]=261;e[291]=346}));t.getSupplementalGlyphMapForArialBlack=u;const d=(0,r.getLookupTableFactory)((function(e){e[1]=32;e[4]=65;e[5]=192;e[6]=193;e[9]=196;e[17]=66;e[18]=67;e[21]=268;e[24]=68;e[28]=69;e[29]=200;e[30]=201;e[32]=282;e[38]=70;e[39]=71;e[44]=72;e[47]=73;e[48]=204;e[49]=205;e[58]=74;e[60]=75;e[62]=76;e[68]=77;e[69]=78;e[75]=79;e[76]=210;e[80]=214;e[87]=80;e[89]=81;e[90]=82;e[92]=344;e[94]=83;e[97]=352;e[100]=84;e[104]=85;e[109]=220;e[115]=86;e[116]=87;e[121]=88;e[122]=89;e[124]=221;e[127]=90;e[129]=381;e[258]=97;e[259]=224;e[260]=225;e[263]=228;e[268]=261;e[271]=98;e[272]=99;e[273]=263;e[275]=269;e[282]=100;e[286]=101;e[287]=232;e[288]=233;e[290]=283;e[295]=281;e[296]=102;e[336]=103;e[346]=104;e[349]=105;e[350]=236;e[351]=237;e[361]=106;e[364]=107;e[367]=108;e[371]=322;e[373]=109;e[374]=110;e[381]=111;e[382]=242;e[383]=243;e[386]=246;e[393]=112;e[395]=113;e[396]=114;e[398]=345;e[400]=115;e[401]=347;e[403]=353;e[410]=116;e[437]=117;e[442]=252;e[448]=118;e[449]=119;e[454]=120;e[455]=121;e[457]=253;e[460]=122;e[462]=382;e[463]=380;e[853]=44;e[855]=58;e[856]=46;e[876]=47;e[878]=45;e[882]=45;e[894]=40;e[895]=41;e[896]=91;e[897]=93;e[923]=64;e[1004]=48;e[1005]=49;e[1006]=50;e[1007]=51;e[1008]=52;e[1009]=53;e[1010]=54;e[1011]=55;e[1012]=56;e[1013]=57;e[1081]=37;e[1085]=43;e[1086]=45}));t.getSupplementalGlyphMapForCalibri=d},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ToUnicodeMap=t.IdentityToUnicodeMap=void 0;var r=a(2);t.ToUnicodeMap=class ToUnicodeMap{constructor(e=[]){this._map=e}get length(){return this._map.length}forEach(e){for(const t in this._map)e(t,this._map[t].charCodeAt(0))}has(e){return void 0!==this._map[e]}get(e){return this._map[e]}charCodeOf(e){const t=this._map;if(t.length<=65536)return t.indexOf(e);for(const a in t)if(t[a]===e)return 0|a;return-1}amend(e){for(const t in e)this._map[t]=e[t]}};t.IdentityToUnicodeMap=class IdentityToUnicodeMap{constructor(e,t){this.firstChar=e;this.lastChar=t}get length(){return this.lastChar+1-this.firstChar}forEach(e){for(let t=this.firstChar,a=this.lastChar;t<=a;t++)e(t,t)}has(e){return this.firstChar<=e&&e<=this.lastChar}get(e){if(this.firstChar<=e&&e<=this.lastChar)return String.fromCharCode(e)}charCodeOf(e){return Number.isInteger(e)&&e>=this.firstChar&&e<=this.lastChar?e:-1}amend(e){(0,r.unreachable)("Should not call amend()")}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CFFFont=void 0;var r=a(33),n=a(36),i=a(2);t.CFFFont=class CFFFont{constructor(e,t){this.properties=t;const a=new r.CFFParser(e,t,n.SEAC_ANALYSIS_ENABLED);this.cff=a.parse();this.cff.duplicateFirstGlyph();const s=new r.CFFCompiler(this.cff);this.seacs=this.cff.seacs;try{this.data=s.compile()}catch(a){(0,i.warn)("Failed to compile font "+t.loadedName);this.data=e}this._createBuiltInEncoding()}get numGlyphs(){return this.cff.charStrings.count}getCharset(){return this.cff.charset.charset}getGlyphMapping(){const e=this.cff,t=this.properties,{cidToGidMap:a,cMap:r}=t,i=e.charset.charset;let s,o;if(t.composite){let t,n;if(a&&a.length>0){t=Object.create(null);for(let e=0,r=a.length;e=0){const r=a[t];r&&(n[e]=r)}}n.length>0&&(this.properties.builtInEncoding=n)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.FontRendererFactory=void 0;var r=a(2),n=a(33),i=a(37),s=a(35),o=a(8);function getUint32(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}function getUint16(e,t){return e[t]<<8|e[t+1]}function getInt16(e,t){return(e[t]<<24|e[t+1]<<16)>>16}function getInt8(e,t){return e[t]<<24>>24}function getFloat214(e,t){return getInt16(e,t)/16384}function getSubroutineBias(e){const t=e.length;let a=32768;t<1240?a=107:t<33900&&(a=1131);return a}function parseCmap(e,t,a){const n=1===getUint16(e,t+2)?getUint32(e,t+8):getUint32(e,t+16),i=getUint16(e,t+n);let s,o,c;if(4===i){getUint16(e,t+n+2);const a=getUint16(e,t+n+6)>>1;o=t+n+14;s=[];for(c=0;c>1;a0;)h.push({flags:i})}for(a=0;a>1;S=!0;break;case 4:c+=i.pop();moveTo(o,c);S=!0;break;case 5:for(;i.length>0;){o+=i.shift();c+=i.shift();lineTo(o,c)}break;case 6:for(;i.length>0;){o+=i.shift();lineTo(o,c);if(0===i.length)break;c+=i.shift();lineTo(o,c)}break;case 7:for(;i.length>0;){c+=i.shift();lineTo(o,c);if(0===i.length)break;o+=i.shift();lineTo(o,c)}break;case 8:for(;i.length>0;){u=o+i.shift();f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g+i.shift();bezierCurveTo(u,f,d,g,o,c)}break;case 10:y=i.pop();w=null;if(a.isCFFCIDFont){const e=a.fdSelect.getFDIndex(n);if(e>=0&&eMath.abs(c-t)?o+=i.shift():c+=i.shift();bezierCurveTo(u,f,d,g,o,c);break;default:throw new r.FormatError(`unknown operator: 12 ${x}`)}break;case 14:if(i.length>=4){const e=i.pop(),r=i.pop();c=i.pop();o=i.pop();t.push({cmd:"save"},{cmd:"translate",args:[o,c]});let n=lookupCmap(a.cmap,String.fromCharCode(a.glyphNameMap[s.StandardEncoding[e]]));compileCharString(a.glyphs[n.glyphId],t,a,n.glyphId);t.push({cmd:"restore"});n=lookupCmap(a.cmap,String.fromCharCode(a.glyphNameMap[s.StandardEncoding[r]]));compileCharString(a.glyphs[n.glyphId],t,a,n.glyphId)}return;case 19:case 20:l+=i.length>>1;h+=l+7>>3;S=!0;break;case 21:c+=i.pop();o+=i.pop();moveTo(o,c);S=!0;break;case 22:o+=i.pop();moveTo(o,c);S=!0;break;case 24:for(;i.length>2;){u=o+i.shift();f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g+i.shift();bezierCurveTo(u,f,d,g,o,c)}o+=i.shift();c+=i.shift();lineTo(o,c);break;case 25:for(;i.length>6;){o+=i.shift();c+=i.shift();lineTo(o,c)}u=o+i.shift();f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g+i.shift();bezierCurveTo(u,f,d,g,o,c);break;case 26:i.length%2&&(o+=i.shift());for(;i.length>0;){u=o;f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d;c=g+i.shift();bezierCurveTo(u,f,d,g,o,c)}break;case 27:i.length%2&&(c+=i.shift());for(;i.length>0;){u=o+i.shift();f=c;d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g;bezierCurveTo(u,f,d,g,o,c)}break;case 28:i.push((e[h]<<24|e[h+1]<<16)>>16);h+=2;break;case 29:y=i.pop()+a.gsubrsBias;w=a.gsubrs[y];w&&parse(w);break;case 30:for(;i.length>0;){u=o;f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g+(1===i.length?i.shift():0);bezierCurveTo(u,f,d,g,o,c);if(0===i.length)break;u=o+i.shift();f=c;d=u+i.shift();g=f+i.shift();c=g+i.shift();o=d+(1===i.length?i.shift():0);bezierCurveTo(u,f,d,g,o,c)}break;case 31:for(;i.length>0;){u=o+i.shift();f=c;d=u+i.shift();g=f+i.shift();c=g+i.shift();o=d+(1===i.length?i.shift():0);bezierCurveTo(u,f,d,g,o,c);if(0===i.length)break;u=o;f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g+(1===i.length?i.shift():0);bezierCurveTo(u,f,d,g,o,c)}break;default:if(x<32)throw new r.FormatError(`unknown operator: ${x}`);if(x<247)i.push(x-139);else if(x<251)i.push(256*(x-247)+e[h++]+108);else if(x<255)i.push(256*-(x-251)-e[h++]-108);else{i.push((e[h]<<24|e[h+1]<<16|e[h+2]<<8|e[h+3])/65536);h+=4}}S&&(i.length=0)}}(e)}const c=[];class CompiledFont{constructor(e){this.constructor===CompiledFont&&(0,r.unreachable)("Cannot initialize CompiledFont.");this.fontMatrix=e;this.compiledGlyphs=Object.create(null);this.compiledCharCodeToGlyphId=Object.create(null)}getPathJs(e){const{charCode:t,glyphId:a}=lookupCmap(this.cmap,e);let r=this.compiledGlyphs[a];if(!r)try{r=this.compileGlyph(this.glyphs[a],a);this.compiledGlyphs[a]=r}catch(e){this.compiledGlyphs[a]=c;void 0===this.compiledCharCodeToGlyphId[t]&&(this.compiledCharCodeToGlyphId[t]=a);throw e}void 0===this.compiledCharCodeToGlyphId[t]&&(this.compiledCharCodeToGlyphId[t]=a);return r}compileGlyph(e,t){if(!e||0===e.length||14===e[0])return c;let a=this.fontMatrix;if(this.isCFFCIDFont){const e=this.fdSelect.getFDIndex(t);if(e>=0&&e2*getUint16(e,t)}const i=[];let s=n(t,0);for(let a=r;a{Object.defineProperty(t,"__esModule",{value:!0});t.getMetrics=t.getFontBasicMetrics=void 0;var r=a(4);const n=(0,r.getLookupTableFactory)((function(e){e.Courier=600;e["Courier-Bold"]=600;e["Courier-BoldOblique"]=600;e["Courier-Oblique"]=600;e.Helvetica=(0,r.getLookupTableFactory)((function(e){e.space=278;e.exclam=278;e.quotedbl=355;e.numbersign=556;e.dollar=556;e.percent=889;e.ampersand=667;e.quoteright=222;e.parenleft=333;e.parenright=333;e.asterisk=389;e.plus=584;e.comma=278;e.hyphen=333;e.period=278;e.slash=278;e.zero=556;e.one=556;e.two=556;e.three=556;e.four=556;e.five=556;e.six=556;e.seven=556;e.eight=556;e.nine=556;e.colon=278;e.semicolon=278;e.less=584;e.equal=584;e.greater=584;e.question=556;e.at=1015;e.A=667;e.B=667;e.C=722;e.D=722;e.E=667;e.F=611;e.G=778;e.H=722;e.I=278;e.J=500;e.K=667;e.L=556;e.M=833;e.N=722;e.O=778;e.P=667;e.Q=778;e.R=722;e.S=667;e.T=611;e.U=722;e.V=667;e.W=944;e.X=667;e.Y=667;e.Z=611;e.bracketleft=278;e.backslash=278;e.bracketright=278;e.asciicircum=469;e.underscore=556;e.quoteleft=222;e.a=556;e.b=556;e.c=500;e.d=556;e.e=556;e.f=278;e.g=556;e.h=556;e.i=222;e.j=222;e.k=500;e.l=222;e.m=833;e.n=556;e.o=556;e.p=556;e.q=556;e.r=333;e.s=500;e.t=278;e.u=556;e.v=500;e.w=722;e.x=500;e.y=500;e.z=500;e.braceleft=334;e.bar=260;e.braceright=334;e.asciitilde=584;e.exclamdown=333;e.cent=556;e.sterling=556;e.fraction=167;e.yen=556;e.florin=556;e.section=556;e.currency=556;e.quotesingle=191;e.quotedblleft=333;e.guillemotleft=556;e.guilsinglleft=333;e.guilsinglright=333;e.fi=500;e.fl=500;e.endash=556;e.dagger=556;e.daggerdbl=556;e.periodcentered=278;e.paragraph=537;e.bullet=350;e.quotesinglbase=222;e.quotedblbase=333;e.quotedblright=333;e.guillemotright=556;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=611;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=1e3;e.ordfeminine=370;e.Lslash=556;e.Oslash=778;e.OE=1e3;e.ordmasculine=365;e.ae=889;e.dotlessi=278;e.lslash=222;e.oslash=611;e.oe=944;e.germandbls=611;e.Idieresis=278;e.eacute=556;e.abreve=556;e.uhungarumlaut=556;e.ecaron=556;e.Ydieresis=667;e.divide=584;e.Yacute=667;e.Acircumflex=667;e.aacute=556;e.Ucircumflex=722;e.yacute=500;e.scommaaccent=500;e.ecircumflex=556;e.Uring=722;e.Udieresis=722;e.aogonek=556;e.Uacute=722;e.uogonek=556;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=737;e.Emacron=667;e.ccaron=500;e.aring=556;e.Ncommaaccent=722;e.lacute=222;e.agrave=556;e.Tcommaaccent=611;e.Cacute=722;e.atilde=556;e.Edotaccent=667;e.scaron=500;e.scedilla=500;e.iacute=278;e.lozenge=471;e.Rcaron=722;e.Gcommaaccent=778;e.ucircumflex=556;e.acircumflex=556;e.Amacron=667;e.rcaron=333;e.ccedilla=500;e.Zdotaccent=611;e.Thorn=667;e.Omacron=778;e.Racute=722;e.Sacute=667;e.dcaron=643;e.Umacron=722;e.uring=556;e.threesuperior=333;e.Ograve=778;e.Agrave=667;e.Abreve=667;e.multiply=584;e.uacute=556;e.Tcaron=611;e.partialdiff=476;e.ydieresis=500;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=556;e.edieresis=556;e.cacute=500;e.nacute=556;e.umacron=556;e.Ncaron=722;e.Iacute=278;e.plusminus=584;e.brokenbar=260;e.registered=737;e.Gbreve=778;e.Idotaccent=278;e.summation=600;e.Egrave=667;e.racute=333;e.omacron=556;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=722;e.lcommaaccent=222;e.tcaron=317;e.eogonek=556;e.Uogonek=722;e.Aacute=667;e.Adieresis=667;e.egrave=556;e.zacute=500;e.iogonek=222;e.Oacute=778;e.oacute=556;e.amacron=556;e.sacute=500;e.idieresis=278;e.Ocircumflex=778;e.Ugrave=722;e.Delta=612;e.thorn=556;e.twosuperior=333;e.Odieresis=778;e.mu=556;e.igrave=278;e.ohungarumlaut=556;e.Eogonek=667;e.dcroat=556;e.threequarters=834;e.Scedilla=667;e.lcaron=299;e.Kcommaaccent=667;e.Lacute=556;e.trademark=1e3;e.edotaccent=556;e.Igrave=278;e.Imacron=278;e.Lcaron=556;e.onehalf=834;e.lessequal=549;e.ocircumflex=556;e.ntilde=556;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=556;e.gbreve=556;e.onequarter=834;e.Scaron=667;e.Scommaaccent=667;e.Ohungarumlaut=778;e.degree=400;e.ograve=556;e.Ccaron=722;e.ugrave=556;e.radical=453;e.Dcaron=722;e.rcommaaccent=333;e.Ntilde=722;e.otilde=556;e.Rcommaaccent=722;e.Lcommaaccent=556;e.Atilde=667;e.Aogonek=667;e.Aring=667;e.Otilde=778;e.zdotaccent=500;e.Ecaron=667;e.Iogonek=278;e.kcommaaccent=500;e.minus=584;e.Icircumflex=278;e.ncaron=556;e.tcommaaccent=278;e.logicalnot=584;e.odieresis=556;e.udieresis=556;e.notequal=549;e.gcommaaccent=556;e.eth=556;e.zcaron=500;e.ncommaaccent=556;e.onesuperior=333;e.imacron=278;e.Euro=556}));e["Helvetica-Bold"]=(0,r.getLookupTableFactory)((function(e){e.space=278;e.exclam=333;e.quotedbl=474;e.numbersign=556;e.dollar=556;e.percent=889;e.ampersand=722;e.quoteright=278;e.parenleft=333;e.parenright=333;e.asterisk=389;e.plus=584;e.comma=278;e.hyphen=333;e.period=278;e.slash=278;e.zero=556;e.one=556;e.two=556;e.three=556;e.four=556;e.five=556;e.six=556;e.seven=556;e.eight=556;e.nine=556;e.colon=333;e.semicolon=333;e.less=584;e.equal=584;e.greater=584;e.question=611;e.at=975;e.A=722;e.B=722;e.C=722;e.D=722;e.E=667;e.F=611;e.G=778;e.H=722;e.I=278;e.J=556;e.K=722;e.L=611;e.M=833;e.N=722;e.O=778;e.P=667;e.Q=778;e.R=722;e.S=667;e.T=611;e.U=722;e.V=667;e.W=944;e.X=667;e.Y=667;e.Z=611;e.bracketleft=333;e.backslash=278;e.bracketright=333;e.asciicircum=584;e.underscore=556;e.quoteleft=278;e.a=556;e.b=611;e.c=556;e.d=611;e.e=556;e.f=333;e.g=611;e.h=611;e.i=278;e.j=278;e.k=556;e.l=278;e.m=889;e.n=611;e.o=611;e.p=611;e.q=611;e.r=389;e.s=556;e.t=333;e.u=611;e.v=556;e.w=778;e.x=556;e.y=556;e.z=500;e.braceleft=389;e.bar=280;e.braceright=389;e.asciitilde=584;e.exclamdown=333;e.cent=556;e.sterling=556;e.fraction=167;e.yen=556;e.florin=556;e.section=556;e.currency=556;e.quotesingle=238;e.quotedblleft=500;e.guillemotleft=556;e.guilsinglleft=333;e.guilsinglright=333;e.fi=611;e.fl=611;e.endash=556;e.dagger=556;e.daggerdbl=556;e.periodcentered=278;e.paragraph=556;e.bullet=350;e.quotesinglbase=278;e.quotedblbase=500;e.quotedblright=500;e.guillemotright=556;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=611;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=1e3;e.ordfeminine=370;e.Lslash=611;e.Oslash=778;e.OE=1e3;e.ordmasculine=365;e.ae=889;e.dotlessi=278;e.lslash=278;e.oslash=611;e.oe=944;e.germandbls=611;e.Idieresis=278;e.eacute=556;e.abreve=556;e.uhungarumlaut=611;e.ecaron=556;e.Ydieresis=667;e.divide=584;e.Yacute=667;e.Acircumflex=722;e.aacute=556;e.Ucircumflex=722;e.yacute=556;e.scommaaccent=556;e.ecircumflex=556;e.Uring=722;e.Udieresis=722;e.aogonek=556;e.Uacute=722;e.uogonek=611;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=737;e.Emacron=667;e.ccaron=556;e.aring=556;e.Ncommaaccent=722;e.lacute=278;e.agrave=556;e.Tcommaaccent=611;e.Cacute=722;e.atilde=556;e.Edotaccent=667;e.scaron=556;e.scedilla=556;e.iacute=278;e.lozenge=494;e.Rcaron=722;e.Gcommaaccent=778;e.ucircumflex=611;e.acircumflex=556;e.Amacron=722;e.rcaron=389;e.ccedilla=556;e.Zdotaccent=611;e.Thorn=667;e.Omacron=778;e.Racute=722;e.Sacute=667;e.dcaron=743;e.Umacron=722;e.uring=611;e.threesuperior=333;e.Ograve=778;e.Agrave=722;e.Abreve=722;e.multiply=584;e.uacute=611;e.Tcaron=611;e.partialdiff=494;e.ydieresis=556;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=556;e.edieresis=556;e.cacute=556;e.nacute=611;e.umacron=611;e.Ncaron=722;e.Iacute=278;e.plusminus=584;e.brokenbar=280;e.registered=737;e.Gbreve=778;e.Idotaccent=278;e.summation=600;e.Egrave=667;e.racute=389;e.omacron=611;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=722;e.lcommaaccent=278;e.tcaron=389;e.eogonek=556;e.Uogonek=722;e.Aacute=722;e.Adieresis=722;e.egrave=556;e.zacute=500;e.iogonek=278;e.Oacute=778;e.oacute=611;e.amacron=556;e.sacute=556;e.idieresis=278;e.Ocircumflex=778;e.Ugrave=722;e.Delta=612;e.thorn=611;e.twosuperior=333;e.Odieresis=778;e.mu=611;e.igrave=278;e.ohungarumlaut=611;e.Eogonek=667;e.dcroat=611;e.threequarters=834;e.Scedilla=667;e.lcaron=400;e.Kcommaaccent=722;e.Lacute=611;e.trademark=1e3;e.edotaccent=556;e.Igrave=278;e.Imacron=278;e.Lcaron=611;e.onehalf=834;e.lessequal=549;e.ocircumflex=611;e.ntilde=611;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=556;e.gbreve=611;e.onequarter=834;e.Scaron=667;e.Scommaaccent=667;e.Ohungarumlaut=778;e.degree=400;e.ograve=611;e.Ccaron=722;e.ugrave=611;e.radical=549;e.Dcaron=722;e.rcommaaccent=389;e.Ntilde=722;e.otilde=611;e.Rcommaaccent=722;e.Lcommaaccent=611;e.Atilde=722;e.Aogonek=722;e.Aring=722;e.Otilde=778;e.zdotaccent=500;e.Ecaron=667;e.Iogonek=278;e.kcommaaccent=556;e.minus=584;e.Icircumflex=278;e.ncaron=611;e.tcommaaccent=333;e.logicalnot=584;e.odieresis=611;e.udieresis=611;e.notequal=549;e.gcommaaccent=611;e.eth=611;e.zcaron=500;e.ncommaaccent=611;e.onesuperior=333;e.imacron=278;e.Euro=556}));e["Helvetica-BoldOblique"]=(0,r.getLookupTableFactory)((function(e){e.space=278;e.exclam=333;e.quotedbl=474;e.numbersign=556;e.dollar=556;e.percent=889;e.ampersand=722;e.quoteright=278;e.parenleft=333;e.parenright=333;e.asterisk=389;e.plus=584;e.comma=278;e.hyphen=333;e.period=278;e.slash=278;e.zero=556;e.one=556;e.two=556;e.three=556;e.four=556;e.five=556;e.six=556;e.seven=556;e.eight=556;e.nine=556;e.colon=333;e.semicolon=333;e.less=584;e.equal=584;e.greater=584;e.question=611;e.at=975;e.A=722;e.B=722;e.C=722;e.D=722;e.E=667;e.F=611;e.G=778;e.H=722;e.I=278;e.J=556;e.K=722;e.L=611;e.M=833;e.N=722;e.O=778;e.P=667;e.Q=778;e.R=722;e.S=667;e.T=611;e.U=722;e.V=667;e.W=944;e.X=667;e.Y=667;e.Z=611;e.bracketleft=333;e.backslash=278;e.bracketright=333;e.asciicircum=584;e.underscore=556;e.quoteleft=278;e.a=556;e.b=611;e.c=556;e.d=611;e.e=556;e.f=333;e.g=611;e.h=611;e.i=278;e.j=278;e.k=556;e.l=278;e.m=889;e.n=611;e.o=611;e.p=611;e.q=611;e.r=389;e.s=556;e.t=333;e.u=611;e.v=556;e.w=778;e.x=556;e.y=556;e.z=500;e.braceleft=389;e.bar=280;e.braceright=389;e.asciitilde=584;e.exclamdown=333;e.cent=556;e.sterling=556;e.fraction=167;e.yen=556;e.florin=556;e.section=556;e.currency=556;e.quotesingle=238;e.quotedblleft=500;e.guillemotleft=556;e.guilsinglleft=333;e.guilsinglright=333;e.fi=611;e.fl=611;e.endash=556;e.dagger=556;e.daggerdbl=556;e.periodcentered=278;e.paragraph=556;e.bullet=350;e.quotesinglbase=278;e.quotedblbase=500;e.quotedblright=500;e.guillemotright=556;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=611;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=1e3;e.ordfeminine=370;e.Lslash=611;e.Oslash=778;e.OE=1e3;e.ordmasculine=365;e.ae=889;e.dotlessi=278;e.lslash=278;e.oslash=611;e.oe=944;e.germandbls=611;e.Idieresis=278;e.eacute=556;e.abreve=556;e.uhungarumlaut=611;e.ecaron=556;e.Ydieresis=667;e.divide=584;e.Yacute=667;e.Acircumflex=722;e.aacute=556;e.Ucircumflex=722;e.yacute=556;e.scommaaccent=556;e.ecircumflex=556;e.Uring=722;e.Udieresis=722;e.aogonek=556;e.Uacute=722;e.uogonek=611;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=737;e.Emacron=667;e.ccaron=556;e.aring=556;e.Ncommaaccent=722;e.lacute=278;e.agrave=556;e.Tcommaaccent=611;e.Cacute=722;e.atilde=556;e.Edotaccent=667;e.scaron=556;e.scedilla=556;e.iacute=278;e.lozenge=494;e.Rcaron=722;e.Gcommaaccent=778;e.ucircumflex=611;e.acircumflex=556;e.Amacron=722;e.rcaron=389;e.ccedilla=556;e.Zdotaccent=611;e.Thorn=667;e.Omacron=778;e.Racute=722;e.Sacute=667;e.dcaron=743;e.Umacron=722;e.uring=611;e.threesuperior=333;e.Ograve=778;e.Agrave=722;e.Abreve=722;e.multiply=584;e.uacute=611;e.Tcaron=611;e.partialdiff=494;e.ydieresis=556;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=556;e.edieresis=556;e.cacute=556;e.nacute=611;e.umacron=611;e.Ncaron=722;e.Iacute=278;e.plusminus=584;e.brokenbar=280;e.registered=737;e.Gbreve=778;e.Idotaccent=278;e.summation=600;e.Egrave=667;e.racute=389;e.omacron=611;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=722;e.lcommaaccent=278;e.tcaron=389;e.eogonek=556;e.Uogonek=722;e.Aacute=722;e.Adieresis=722;e.egrave=556;e.zacute=500;e.iogonek=278;e.Oacute=778;e.oacute=611;e.amacron=556;e.sacute=556;e.idieresis=278;e.Ocircumflex=778;e.Ugrave=722;e.Delta=612;e.thorn=611;e.twosuperior=333;e.Odieresis=778;e.mu=611;e.igrave=278;e.ohungarumlaut=611;e.Eogonek=667;e.dcroat=611;e.threequarters=834;e.Scedilla=667;e.lcaron=400;e.Kcommaaccent=722;e.Lacute=611;e.trademark=1e3;e.edotaccent=556;e.Igrave=278;e.Imacron=278;e.Lcaron=611;e.onehalf=834;e.lessequal=549;e.ocircumflex=611;e.ntilde=611;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=556;e.gbreve=611;e.onequarter=834;e.Scaron=667;e.Scommaaccent=667;e.Ohungarumlaut=778;e.degree=400;e.ograve=611;e.Ccaron=722;e.ugrave=611;e.radical=549;e.Dcaron=722;e.rcommaaccent=389;e.Ntilde=722;e.otilde=611;e.Rcommaaccent=722;e.Lcommaaccent=611;e.Atilde=722;e.Aogonek=722;e.Aring=722;e.Otilde=778;e.zdotaccent=500;e.Ecaron=667;e.Iogonek=278;e.kcommaaccent=556;e.minus=584;e.Icircumflex=278;e.ncaron=611;e.tcommaaccent=333;e.logicalnot=584;e.odieresis=611;e.udieresis=611;e.notequal=549;e.gcommaaccent=611;e.eth=611;e.zcaron=500;e.ncommaaccent=611;e.onesuperior=333;e.imacron=278;e.Euro=556}));e["Helvetica-Oblique"]=(0,r.getLookupTableFactory)((function(e){e.space=278;e.exclam=278;e.quotedbl=355;e.numbersign=556;e.dollar=556;e.percent=889;e.ampersand=667;e.quoteright=222;e.parenleft=333;e.parenright=333;e.asterisk=389;e.plus=584;e.comma=278;e.hyphen=333;e.period=278;e.slash=278;e.zero=556;e.one=556;e.two=556;e.three=556;e.four=556;e.five=556;e.six=556;e.seven=556;e.eight=556;e.nine=556;e.colon=278;e.semicolon=278;e.less=584;e.equal=584;e.greater=584;e.question=556;e.at=1015;e.A=667;e.B=667;e.C=722;e.D=722;e.E=667;e.F=611;e.G=778;e.H=722;e.I=278;e.J=500;e.K=667;e.L=556;e.M=833;e.N=722;e.O=778;e.P=667;e.Q=778;e.R=722;e.S=667;e.T=611;e.U=722;e.V=667;e.W=944;e.X=667;e.Y=667;e.Z=611;e.bracketleft=278;e.backslash=278;e.bracketright=278;e.asciicircum=469;e.underscore=556;e.quoteleft=222;e.a=556;e.b=556;e.c=500;e.d=556;e.e=556;e.f=278;e.g=556;e.h=556;e.i=222;e.j=222;e.k=500;e.l=222;e.m=833;e.n=556;e.o=556;e.p=556;e.q=556;e.r=333;e.s=500;e.t=278;e.u=556;e.v=500;e.w=722;e.x=500;e.y=500;e.z=500;e.braceleft=334;e.bar=260;e.braceright=334;e.asciitilde=584;e.exclamdown=333;e.cent=556;e.sterling=556;e.fraction=167;e.yen=556;e.florin=556;e.section=556;e.currency=556;e.quotesingle=191;e.quotedblleft=333;e.guillemotleft=556;e.guilsinglleft=333;e.guilsinglright=333;e.fi=500;e.fl=500;e.endash=556;e.dagger=556;e.daggerdbl=556;e.periodcentered=278;e.paragraph=537;e.bullet=350;e.quotesinglbase=222;e.quotedblbase=333;e.quotedblright=333;e.guillemotright=556;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=611;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=1e3;e.ordfeminine=370;e.Lslash=556;e.Oslash=778;e.OE=1e3;e.ordmasculine=365;e.ae=889;e.dotlessi=278;e.lslash=222;e.oslash=611;e.oe=944;e.germandbls=611;e.Idieresis=278;e.eacute=556;e.abreve=556;e.uhungarumlaut=556;e.ecaron=556;e.Ydieresis=667;e.divide=584;e.Yacute=667;e.Acircumflex=667;e.aacute=556;e.Ucircumflex=722;e.yacute=500;e.scommaaccent=500;e.ecircumflex=556;e.Uring=722;e.Udieresis=722;e.aogonek=556;e.Uacute=722;e.uogonek=556;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=737;e.Emacron=667;e.ccaron=500;e.aring=556;e.Ncommaaccent=722;e.lacute=222;e.agrave=556;e.Tcommaaccent=611;e.Cacute=722;e.atilde=556;e.Edotaccent=667;e.scaron=500;e.scedilla=500;e.iacute=278;e.lozenge=471;e.Rcaron=722;e.Gcommaaccent=778;e.ucircumflex=556;e.acircumflex=556;e.Amacron=667;e.rcaron=333;e.ccedilla=500;e.Zdotaccent=611;e.Thorn=667;e.Omacron=778;e.Racute=722;e.Sacute=667;e.dcaron=643;e.Umacron=722;e.uring=556;e.threesuperior=333;e.Ograve=778;e.Agrave=667;e.Abreve=667;e.multiply=584;e.uacute=556;e.Tcaron=611;e.partialdiff=476;e.ydieresis=500;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=556;e.edieresis=556;e.cacute=500;e.nacute=556;e.umacron=556;e.Ncaron=722;e.Iacute=278;e.plusminus=584;e.brokenbar=260;e.registered=737;e.Gbreve=778;e.Idotaccent=278;e.summation=600;e.Egrave=667;e.racute=333;e.omacron=556;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=722;e.lcommaaccent=222;e.tcaron=317;e.eogonek=556;e.Uogonek=722;e.Aacute=667;e.Adieresis=667;e.egrave=556;e.zacute=500;e.iogonek=222;e.Oacute=778;e.oacute=556;e.amacron=556;e.sacute=500;e.idieresis=278;e.Ocircumflex=778;e.Ugrave=722;e.Delta=612;e.thorn=556;e.twosuperior=333;e.Odieresis=778;e.mu=556;e.igrave=278;e.ohungarumlaut=556;e.Eogonek=667;e.dcroat=556;e.threequarters=834;e.Scedilla=667;e.lcaron=299;e.Kcommaaccent=667;e.Lacute=556;e.trademark=1e3;e.edotaccent=556;e.Igrave=278;e.Imacron=278;e.Lcaron=556;e.onehalf=834;e.lessequal=549;e.ocircumflex=556;e.ntilde=556;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=556;e.gbreve=556;e.onequarter=834;e.Scaron=667;e.Scommaaccent=667;e.Ohungarumlaut=778;e.degree=400;e.ograve=556;e.Ccaron=722;e.ugrave=556;e.radical=453;e.Dcaron=722;e.rcommaaccent=333;e.Ntilde=722;e.otilde=556;e.Rcommaaccent=722;e.Lcommaaccent=556;e.Atilde=667;e.Aogonek=667;e.Aring=667;e.Otilde=778;e.zdotaccent=500;e.Ecaron=667;e.Iogonek=278;e.kcommaaccent=500;e.minus=584;e.Icircumflex=278;e.ncaron=556;e.tcommaaccent=278;e.logicalnot=584;e.odieresis=556;e.udieresis=556;e.notequal=549;e.gcommaaccent=556;e.eth=556;e.zcaron=500;e.ncommaaccent=556;e.onesuperior=333;e.imacron=278;e.Euro=556}));e.Symbol=(0,r.getLookupTableFactory)((function(e){e.space=250;e.exclam=333;e.universal=713;e.numbersign=500;e.existential=549;e.percent=833;e.ampersand=778;e.suchthat=439;e.parenleft=333;e.parenright=333;e.asteriskmath=500;e.plus=549;e.comma=250;e.minus=549;e.period=250;e.slash=278;e.zero=500;e.one=500;e.two=500;e.three=500;e.four=500;e.five=500;e.six=500;e.seven=500;e.eight=500;e.nine=500;e.colon=278;e.semicolon=278;e.less=549;e.equal=549;e.greater=549;e.question=444;e.congruent=549;e.Alpha=722;e.Beta=667;e.Chi=722;e.Delta=612;e.Epsilon=611;e.Phi=763;e.Gamma=603;e.Eta=722;e.Iota=333;e.theta1=631;e.Kappa=722;e.Lambda=686;e.Mu=889;e.Nu=722;e.Omicron=722;e.Pi=768;e.Theta=741;e.Rho=556;e.Sigma=592;e.Tau=611;e.Upsilon=690;e.sigma1=439;e.Omega=768;e.Xi=645;e.Psi=795;e.Zeta=611;e.bracketleft=333;e.therefore=863;e.bracketright=333;e.perpendicular=658;e.underscore=500;e.radicalex=500;e.alpha=631;e.beta=549;e.chi=549;e.delta=494;e.epsilon=439;e.phi=521;e.gamma=411;e.eta=603;e.iota=329;e.phi1=603;e.kappa=549;e.lambda=549;e.mu=576;e.nu=521;e.omicron=549;e.pi=549;e.theta=521;e.rho=549;e.sigma=603;e.tau=439;e.upsilon=576;e.omega1=713;e.omega=686;e.xi=493;e.psi=686;e.zeta=494;e.braceleft=480;e.bar=200;e.braceright=480;e.similar=549;e.Euro=750;e.Upsilon1=620;e.minute=247;e.lessequal=549;e.fraction=167;e.infinity=713;e.florin=500;e.club=753;e.diamond=753;e.heart=753;e.spade=753;e.arrowboth=1042;e.arrowleft=987;e.arrowup=603;e.arrowright=987;e.arrowdown=603;e.degree=400;e.plusminus=549;e.second=411;e.greaterequal=549;e.multiply=549;e.proportional=713;e.partialdiff=494;e.bullet=460;e.divide=549;e.notequal=549;e.equivalence=549;e.approxequal=549;e.ellipsis=1e3;e.arrowvertex=603;e.arrowhorizex=1e3;e.carriagereturn=658;e.aleph=823;e.Ifraktur=686;e.Rfraktur=795;e.weierstrass=987;e.circlemultiply=768;e.circleplus=768;e.emptyset=823;e.intersection=768;e.union=768;e.propersuperset=713;e.reflexsuperset=713;e.notsubset=713;e.propersubset=713;e.reflexsubset=713;e.element=713;e.notelement=713;e.angle=768;e.gradient=713;e.registerserif=790;e.copyrightserif=790;e.trademarkserif=890;e.product=823;e.radical=549;e.dotmath=250;e.logicalnot=713;e.logicaland=603;e.logicalor=603;e.arrowdblboth=1042;e.arrowdblleft=987;e.arrowdblup=603;e.arrowdblright=987;e.arrowdbldown=603;e.lozenge=494;e.angleleft=329;e.registersans=790;e.copyrightsans=790;e.trademarksans=786;e.summation=713;e.parenlefttp=384;e.parenleftex=384;e.parenleftbt=384;e.bracketlefttp=384;e.bracketleftex=384;e.bracketleftbt=384;e.bracelefttp=494;e.braceleftmid=494;e.braceleftbt=494;e.braceex=494;e.angleright=329;e.integral=274;e.integraltp=686;e.integralex=686;e.integralbt=686;e.parenrighttp=384;e.parenrightex=384;e.parenrightbt=384;e.bracketrighttp=384;e.bracketrightex=384;e.bracketrightbt=384;e.bracerighttp=494;e.bracerightmid=494;e.bracerightbt=494;e.apple=790}));e["Times-Roman"]=(0,r.getLookupTableFactory)((function(e){e.space=250;e.exclam=333;e.quotedbl=408;e.numbersign=500;e.dollar=500;e.percent=833;e.ampersand=778;e.quoteright=333;e.parenleft=333;e.parenright=333;e.asterisk=500;e.plus=564;e.comma=250;e.hyphen=333;e.period=250;e.slash=278;e.zero=500;e.one=500;e.two=500;e.three=500;e.four=500;e.five=500;e.six=500;e.seven=500;e.eight=500;e.nine=500;e.colon=278;e.semicolon=278;e.less=564;e.equal=564;e.greater=564;e.question=444;e.at=921;e.A=722;e.B=667;e.C=667;e.D=722;e.E=611;e.F=556;e.G=722;e.H=722;e.I=333;e.J=389;e.K=722;e.L=611;e.M=889;e.N=722;e.O=722;e.P=556;e.Q=722;e.R=667;e.S=556;e.T=611;e.U=722;e.V=722;e.W=944;e.X=722;e.Y=722;e.Z=611;e.bracketleft=333;e.backslash=278;e.bracketright=333;e.asciicircum=469;e.underscore=500;e.quoteleft=333;e.a=444;e.b=500;e.c=444;e.d=500;e.e=444;e.f=333;e.g=500;e.h=500;e.i=278;e.j=278;e.k=500;e.l=278;e.m=778;e.n=500;e.o=500;e.p=500;e.q=500;e.r=333;e.s=389;e.t=278;e.u=500;e.v=500;e.w=722;e.x=500;e.y=500;e.z=444;e.braceleft=480;e.bar=200;e.braceright=480;e.asciitilde=541;e.exclamdown=333;e.cent=500;e.sterling=500;e.fraction=167;e.yen=500;e.florin=500;e.section=500;e.currency=500;e.quotesingle=180;e.quotedblleft=444;e.guillemotleft=500;e.guilsinglleft=333;e.guilsinglright=333;e.fi=556;e.fl=556;e.endash=500;e.dagger=500;e.daggerdbl=500;e.periodcentered=250;e.paragraph=453;e.bullet=350;e.quotesinglbase=333;e.quotedblbase=444;e.quotedblright=444;e.guillemotright=500;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=444;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=889;e.ordfeminine=276;e.Lslash=611;e.Oslash=722;e.OE=889;e.ordmasculine=310;e.ae=667;e.dotlessi=278;e.lslash=278;e.oslash=500;e.oe=722;e.germandbls=500;e.Idieresis=333;e.eacute=444;e.abreve=444;e.uhungarumlaut=500;e.ecaron=444;e.Ydieresis=722;e.divide=564;e.Yacute=722;e.Acircumflex=722;e.aacute=444;e.Ucircumflex=722;e.yacute=500;e.scommaaccent=389;e.ecircumflex=444;e.Uring=722;e.Udieresis=722;e.aogonek=444;e.Uacute=722;e.uogonek=500;e.Edieresis=611;e.Dcroat=722;e.commaaccent=250;e.copyright=760;e.Emacron=611;e.ccaron=444;e.aring=444;e.Ncommaaccent=722;e.lacute=278;e.agrave=444;e.Tcommaaccent=611;e.Cacute=667;e.atilde=444;e.Edotaccent=611;e.scaron=389;e.scedilla=389;e.iacute=278;e.lozenge=471;e.Rcaron=667;e.Gcommaaccent=722;e.ucircumflex=500;e.acircumflex=444;e.Amacron=722;e.rcaron=333;e.ccedilla=444;e.Zdotaccent=611;e.Thorn=556;e.Omacron=722;e.Racute=667;e.Sacute=556;e.dcaron=588;e.Umacron=722;e.uring=500;e.threesuperior=300;e.Ograve=722;e.Agrave=722;e.Abreve=722;e.multiply=564;e.uacute=500;e.Tcaron=611;e.partialdiff=476;e.ydieresis=500;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=611;e.adieresis=444;e.edieresis=444;e.cacute=444;e.nacute=500;e.umacron=500;e.Ncaron=722;e.Iacute=333;e.plusminus=564;e.brokenbar=200;e.registered=760;e.Gbreve=722;e.Idotaccent=333;e.summation=600;e.Egrave=611;e.racute=333;e.omacron=500;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=667;e.lcommaaccent=278;e.tcaron=326;e.eogonek=444;e.Uogonek=722;e.Aacute=722;e.Adieresis=722;e.egrave=444;e.zacute=444;e.iogonek=278;e.Oacute=722;e.oacute=500;e.amacron=444;e.sacute=389;e.idieresis=278;e.Ocircumflex=722;e.Ugrave=722;e.Delta=612;e.thorn=500;e.twosuperior=300;e.Odieresis=722;e.mu=500;e.igrave=278;e.ohungarumlaut=500;e.Eogonek=611;e.dcroat=500;e.threequarters=750;e.Scedilla=556;e.lcaron=344;e.Kcommaaccent=722;e.Lacute=611;e.trademark=980;e.edotaccent=444;e.Igrave=333;e.Imacron=333;e.Lcaron=611;e.onehalf=750;e.lessequal=549;e.ocircumflex=500;e.ntilde=500;e.Uhungarumlaut=722;e.Eacute=611;e.emacron=444;e.gbreve=500;e.onequarter=750;e.Scaron=556;e.Scommaaccent=556;e.Ohungarumlaut=722;e.degree=400;e.ograve=500;e.Ccaron=667;e.ugrave=500;e.radical=453;e.Dcaron=722;e.rcommaaccent=333;e.Ntilde=722;e.otilde=500;e.Rcommaaccent=667;e.Lcommaaccent=611;e.Atilde=722;e.Aogonek=722;e.Aring=722;e.Otilde=722;e.zdotaccent=444;e.Ecaron=611;e.Iogonek=333;e.kcommaaccent=500;e.minus=564;e.Icircumflex=333;e.ncaron=500;e.tcommaaccent=278;e.logicalnot=564;e.odieresis=500;e.udieresis=500;e.notequal=549;e.gcommaaccent=500;e.eth=500;e.zcaron=444;e.ncommaaccent=500;e.onesuperior=300;e.imacron=278;e.Euro=500}));e["Times-Bold"]=(0,r.getLookupTableFactory)((function(e){e.space=250;e.exclam=333;e.quotedbl=555;e.numbersign=500;e.dollar=500;e.percent=1e3;e.ampersand=833;e.quoteright=333;e.parenleft=333;e.parenright=333;e.asterisk=500;e.plus=570;e.comma=250;e.hyphen=333;e.period=250;e.slash=278;e.zero=500;e.one=500;e.two=500;e.three=500;e.four=500;e.five=500;e.six=500;e.seven=500;e.eight=500;e.nine=500;e.colon=333;e.semicolon=333;e.less=570;e.equal=570;e.greater=570;e.question=500;e.at=930;e.A=722;e.B=667;e.C=722;e.D=722;e.E=667;e.F=611;e.G=778;e.H=778;e.I=389;e.J=500;e.K=778;e.L=667;e.M=944;e.N=722;e.O=778;e.P=611;e.Q=778;e.R=722;e.S=556;e.T=667;e.U=722;e.V=722;e.W=1e3;e.X=722;e.Y=722;e.Z=667;e.bracketleft=333;e.backslash=278;e.bracketright=333;e.asciicircum=581;e.underscore=500;e.quoteleft=333;e.a=500;e.b=556;e.c=444;e.d=556;e.e=444;e.f=333;e.g=500;e.h=556;e.i=278;e.j=333;e.k=556;e.l=278;e.m=833;e.n=556;e.o=500;e.p=556;e.q=556;e.r=444;e.s=389;e.t=333;e.u=556;e.v=500;e.w=722;e.x=500;e.y=500;e.z=444;e.braceleft=394;e.bar=220;e.braceright=394;e.asciitilde=520;e.exclamdown=333;e.cent=500;e.sterling=500;e.fraction=167;e.yen=500;e.florin=500;e.section=500;e.currency=500;e.quotesingle=278;e.quotedblleft=500;e.guillemotleft=500;e.guilsinglleft=333;e.guilsinglright=333;e.fi=556;e.fl=556;e.endash=500;e.dagger=500;e.daggerdbl=500;e.periodcentered=250;e.paragraph=540;e.bullet=350;e.quotesinglbase=333;e.quotedblbase=500;e.quotedblright=500;e.guillemotright=500;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=500;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=1e3;e.ordfeminine=300;e.Lslash=667;e.Oslash=778;e.OE=1e3;e.ordmasculine=330;e.ae=722;e.dotlessi=278;e.lslash=278;e.oslash=500;e.oe=722;e.germandbls=556;e.Idieresis=389;e.eacute=444;e.abreve=500;e.uhungarumlaut=556;e.ecaron=444;e.Ydieresis=722;e.divide=570;e.Yacute=722;e.Acircumflex=722;e.aacute=500;e.Ucircumflex=722;e.yacute=500;e.scommaaccent=389;e.ecircumflex=444;e.Uring=722;e.Udieresis=722;e.aogonek=500;e.Uacute=722;e.uogonek=556;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=747;e.Emacron=667;e.ccaron=444;e.aring=500;e.Ncommaaccent=722;e.lacute=278;e.agrave=500;e.Tcommaaccent=667;e.Cacute=722;e.atilde=500;e.Edotaccent=667;e.scaron=389;e.scedilla=389;e.iacute=278;e.lozenge=494;e.Rcaron=722;e.Gcommaaccent=778;e.ucircumflex=556;e.acircumflex=500;e.Amacron=722;e.rcaron=444;e.ccedilla=444;e.Zdotaccent=667;e.Thorn=611;e.Omacron=778;e.Racute=722;e.Sacute=556;e.dcaron=672;e.Umacron=722;e.uring=556;e.threesuperior=300;e.Ograve=778;e.Agrave=722;e.Abreve=722;e.multiply=570;e.uacute=556;e.Tcaron=667;e.partialdiff=494;e.ydieresis=500;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=500;e.edieresis=444;e.cacute=444;e.nacute=556;e.umacron=556;e.Ncaron=722;e.Iacute=389;e.plusminus=570;e.brokenbar=220;e.registered=747;e.Gbreve=778;e.Idotaccent=389;e.summation=600;e.Egrave=667;e.racute=444;e.omacron=500;e.Zacute=667;e.Zcaron=667;e.greaterequal=549;e.Eth=722;e.Ccedilla=722;e.lcommaaccent=278;e.tcaron=416;e.eogonek=444;e.Uogonek=722;e.Aacute=722;e.Adieresis=722;e.egrave=444;e.zacute=444;e.iogonek=278;e.Oacute=778;e.oacute=500;e.amacron=500;e.sacute=389;e.idieresis=278;e.Ocircumflex=778;e.Ugrave=722;e.Delta=612;e.thorn=556;e.twosuperior=300;e.Odieresis=778;e.mu=556;e.igrave=278;e.ohungarumlaut=500;e.Eogonek=667;e.dcroat=556;e.threequarters=750;e.Scedilla=556;e.lcaron=394;e.Kcommaaccent=778;e.Lacute=667;e.trademark=1e3;e.edotaccent=444;e.Igrave=389;e.Imacron=389;e.Lcaron=667;e.onehalf=750;e.lessequal=549;e.ocircumflex=500;e.ntilde=556;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=444;e.gbreve=500;e.onequarter=750;e.Scaron=556;e.Scommaaccent=556;e.Ohungarumlaut=778;e.degree=400;e.ograve=500;e.Ccaron=722;e.ugrave=556;e.radical=549;e.Dcaron=722;e.rcommaaccent=444;e.Ntilde=722;e.otilde=500;e.Rcommaaccent=722;e.Lcommaaccent=667;e.Atilde=722;e.Aogonek=722;e.Aring=722;e.Otilde=778;e.zdotaccent=444;e.Ecaron=667;e.Iogonek=389;e.kcommaaccent=556;e.minus=570;e.Icircumflex=389;e.ncaron=556;e.tcommaaccent=333;e.logicalnot=570;e.odieresis=500;e.udieresis=556;e.notequal=549;e.gcommaaccent=500;e.eth=500;e.zcaron=444;e.ncommaaccent=556;e.onesuperior=300;e.imacron=278;e.Euro=500}));e["Times-BoldItalic"]=(0,r.getLookupTableFactory)((function(e){e.space=250;e.exclam=389;e.quotedbl=555;e.numbersign=500;e.dollar=500;e.percent=833;e.ampersand=778;e.quoteright=333;e.parenleft=333;e.parenright=333;e.asterisk=500;e.plus=570;e.comma=250;e.hyphen=333;e.period=250;e.slash=278;e.zero=500;e.one=500;e.two=500;e.three=500;e.four=500;e.five=500;e.six=500;e.seven=500;e.eight=500;e.nine=500;e.colon=333;e.semicolon=333;e.less=570;e.equal=570;e.greater=570;e.question=500;e.at=832;e.A=667;e.B=667;e.C=667;e.D=722;e.E=667;e.F=667;e.G=722;e.H=778;e.I=389;e.J=500;e.K=667;e.L=611;e.M=889;e.N=722;e.O=722;e.P=611;e.Q=722;e.R=667;e.S=556;e.T=611;e.U=722;e.V=667;e.W=889;e.X=667;e.Y=611;e.Z=611;e.bracketleft=333;e.backslash=278;e.bracketright=333;e.asciicircum=570;e.underscore=500;e.quoteleft=333;e.a=500;e.b=500;e.c=444;e.d=500;e.e=444;e.f=333;e.g=500;e.h=556;e.i=278;e.j=278;e.k=500;e.l=278;e.m=778;e.n=556;e.o=500;e.p=500;e.q=500;e.r=389;e.s=389;e.t=278;e.u=556;e.v=444;e.w=667;e.x=500;e.y=444;e.z=389;e.braceleft=348;e.bar=220;e.braceright=348;e.asciitilde=570;e.exclamdown=389;e.cent=500;e.sterling=500;e.fraction=167;e.yen=500;e.florin=500;e.section=500;e.currency=500;e.quotesingle=278;e.quotedblleft=500;e.guillemotleft=500;e.guilsinglleft=333;e.guilsinglright=333;e.fi=556;e.fl=556;e.endash=500;e.dagger=500;e.daggerdbl=500;e.periodcentered=250;e.paragraph=500;e.bullet=350;e.quotesinglbase=333;e.quotedblbase=500;e.quotedblright=500;e.guillemotright=500;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=500;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=944;e.ordfeminine=266;e.Lslash=611;e.Oslash=722;e.OE=944;e.ordmasculine=300;e.ae=722;e.dotlessi=278;e.lslash=278;e.oslash=500;e.oe=722;e.germandbls=500;e.Idieresis=389;e.eacute=444;e.abreve=500;e.uhungarumlaut=556;e.ecaron=444;e.Ydieresis=611;e.divide=570;e.Yacute=611;e.Acircumflex=667;e.aacute=500;e.Ucircumflex=722;e.yacute=444;e.scommaaccent=389;e.ecircumflex=444;e.Uring=722;e.Udieresis=722;e.aogonek=500;e.Uacute=722;e.uogonek=556;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=747;e.Emacron=667;e.ccaron=444;e.aring=500;e.Ncommaaccent=722;e.lacute=278;e.agrave=500;e.Tcommaaccent=611;e.Cacute=667;e.atilde=500;e.Edotaccent=667;e.scaron=389;e.scedilla=389;e.iacute=278;e.lozenge=494;e.Rcaron=667;e.Gcommaaccent=722;e.ucircumflex=556;e.acircumflex=500;e.Amacron=667;e.rcaron=389;e.ccedilla=444;e.Zdotaccent=611;e.Thorn=611;e.Omacron=722;e.Racute=667;e.Sacute=556;e.dcaron=608;e.Umacron=722;e.uring=556;e.threesuperior=300;e.Ograve=722;e.Agrave=667;e.Abreve=667;e.multiply=570;e.uacute=556;e.Tcaron=611;e.partialdiff=494;e.ydieresis=444;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=500;e.edieresis=444;e.cacute=444;e.nacute=556;e.umacron=556;e.Ncaron=722;e.Iacute=389;e.plusminus=570;e.brokenbar=220;e.registered=747;e.Gbreve=722;e.Idotaccent=389;e.summation=600;e.Egrave=667;e.racute=389;e.omacron=500;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=667;e.lcommaaccent=278;e.tcaron=366;e.eogonek=444;e.Uogonek=722;e.Aacute=667;e.Adieresis=667;e.egrave=444;e.zacute=389;e.iogonek=278;e.Oacute=722;e.oacute=500;e.amacron=500;e.sacute=389;e.idieresis=278;e.Ocircumflex=722;e.Ugrave=722;e.Delta=612;e.thorn=500;e.twosuperior=300;e.Odieresis=722;e.mu=576;e.igrave=278;e.ohungarumlaut=500;e.Eogonek=667;e.dcroat=500;e.threequarters=750;e.Scedilla=556;e.lcaron=382;e.Kcommaaccent=667;e.Lacute=611;e.trademark=1e3;e.edotaccent=444;e.Igrave=389;e.Imacron=389;e.Lcaron=611;e.onehalf=750;e.lessequal=549;e.ocircumflex=500;e.ntilde=556;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=444;e.gbreve=500;e.onequarter=750;e.Scaron=556;e.Scommaaccent=556;e.Ohungarumlaut=722;e.degree=400;e.ograve=500;e.Ccaron=667;e.ugrave=556;e.radical=549;e.Dcaron=722;e.rcommaaccent=389;e.Ntilde=722;e.otilde=500;e.Rcommaaccent=667;e.Lcommaaccent=611;e.Atilde=667;e.Aogonek=667;e.Aring=667;e.Otilde=722;e.zdotaccent=389;e.Ecaron=667;e.Iogonek=389;e.kcommaaccent=500;e.minus=606;e.Icircumflex=389;e.ncaron=556;e.tcommaaccent=278;e.logicalnot=606;e.odieresis=500;e.udieresis=556;e.notequal=549;e.gcommaaccent=500;e.eth=500;e.zcaron=389;e.ncommaaccent=556;e.onesuperior=300;e.imacron=278;e.Euro=500}));e["Times-Italic"]=(0,r.getLookupTableFactory)((function(e){e.space=250;e.exclam=333;e.quotedbl=420;e.numbersign=500;e.dollar=500;e.percent=833;e.ampersand=778;e.quoteright=333;e.parenleft=333;e.parenright=333;e.asterisk=500;e.plus=675;e.comma=250;e.hyphen=333;e.period=250;e.slash=278;e.zero=500;e.one=500;e.two=500;e.three=500;e.four=500;e.five=500;e.six=500;e.seven=500;e.eight=500;e.nine=500;e.colon=333;e.semicolon=333;e.less=675;e.equal=675;e.greater=675;e.question=500;e.at=920;e.A=611;e.B=611;e.C=667;e.D=722;e.E=611;e.F=611;e.G=722;e.H=722;e.I=333;e.J=444;e.K=667;e.L=556;e.M=833;e.N=667;e.O=722;e.P=611;e.Q=722;e.R=611;e.S=500;e.T=556;e.U=722;e.V=611;e.W=833;e.X=611;e.Y=556;e.Z=556;e.bracketleft=389;e.backslash=278;e.bracketright=389;e.asciicircum=422;e.underscore=500;e.quoteleft=333;e.a=500;e.b=500;e.c=444;e.d=500;e.e=444;e.f=278;e.g=500;e.h=500;e.i=278;e.j=278;e.k=444;e.l=278;e.m=722;e.n=500;e.o=500;e.p=500;e.q=500;e.r=389;e.s=389;e.t=278;e.u=500;e.v=444;e.w=667;e.x=444;e.y=444;e.z=389;e.braceleft=400;e.bar=275;e.braceright=400;e.asciitilde=541;e.exclamdown=389;e.cent=500;e.sterling=500;e.fraction=167;e.yen=500;e.florin=500;e.section=500;e.currency=500;e.quotesingle=214;e.quotedblleft=556;e.guillemotleft=500;e.guilsinglleft=333;e.guilsinglright=333;e.fi=500;e.fl=500;e.endash=500;e.dagger=500;e.daggerdbl=500;e.periodcentered=250;e.paragraph=523;e.bullet=350;e.quotesinglbase=333;e.quotedblbase=556;e.quotedblright=556;e.guillemotright=500;e.ellipsis=889;e.perthousand=1e3;e.questiondown=500;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=889;e.AE=889;e.ordfeminine=276;e.Lslash=556;e.Oslash=722;e.OE=944;e.ordmasculine=310;e.ae=667;e.dotlessi=278;e.lslash=278;e.oslash=500;e.oe=667;e.germandbls=500;e.Idieresis=333;e.eacute=444;e.abreve=500;e.uhungarumlaut=500;e.ecaron=444;e.Ydieresis=556;e.divide=675;e.Yacute=556;e.Acircumflex=611;e.aacute=500;e.Ucircumflex=722;e.yacute=444;e.scommaaccent=389;e.ecircumflex=444;e.Uring=722;e.Udieresis=722;e.aogonek=500;e.Uacute=722;e.uogonek=500;e.Edieresis=611;e.Dcroat=722;e.commaaccent=250;e.copyright=760;e.Emacron=611;e.ccaron=444;e.aring=500;e.Ncommaaccent=667;e.lacute=278;e.agrave=500;e.Tcommaaccent=556;e.Cacute=667;e.atilde=500;e.Edotaccent=611;e.scaron=389;e.scedilla=389;e.iacute=278;e.lozenge=471;e.Rcaron=611;e.Gcommaaccent=722;e.ucircumflex=500;e.acircumflex=500;e.Amacron=611;e.rcaron=389;e.ccedilla=444;e.Zdotaccent=556;e.Thorn=611;e.Omacron=722;e.Racute=611;e.Sacute=500;e.dcaron=544;e.Umacron=722;e.uring=500;e.threesuperior=300;e.Ograve=722;e.Agrave=611;e.Abreve=611;e.multiply=675;e.uacute=500;e.Tcaron=556;e.partialdiff=476;e.ydieresis=444;e.Nacute=667;e.icircumflex=278;e.Ecircumflex=611;e.adieresis=500;e.edieresis=444;e.cacute=444;e.nacute=500;e.umacron=500;e.Ncaron=667;e.Iacute=333;e.plusminus=675;e.brokenbar=275;e.registered=760;e.Gbreve=722;e.Idotaccent=333;e.summation=600;e.Egrave=611;e.racute=389;e.omacron=500;e.Zacute=556;e.Zcaron=556;e.greaterequal=549;e.Eth=722;e.Ccedilla=667;e.lcommaaccent=278;e.tcaron=300;e.eogonek=444;e.Uogonek=722;e.Aacute=611;e.Adieresis=611;e.egrave=444;e.zacute=389;e.iogonek=278;e.Oacute=722;e.oacute=500;e.amacron=500;e.sacute=389;e.idieresis=278;e.Ocircumflex=722;e.Ugrave=722;e.Delta=612;e.thorn=500;e.twosuperior=300;e.Odieresis=722;e.mu=500;e.igrave=278;e.ohungarumlaut=500;e.Eogonek=611;e.dcroat=500;e.threequarters=750;e.Scedilla=500;e.lcaron=300;e.Kcommaaccent=667;e.Lacute=556;e.trademark=980;e.edotaccent=444;e.Igrave=333;e.Imacron=333;e.Lcaron=611;e.onehalf=750;e.lessequal=549;e.ocircumflex=500;e.ntilde=500;e.Uhungarumlaut=722;e.Eacute=611;e.emacron=444;e.gbreve=500;e.onequarter=750;e.Scaron=500;e.Scommaaccent=500;e.Ohungarumlaut=722;e.degree=400;e.ograve=500;e.Ccaron=667;e.ugrave=500;e.radical=453;e.Dcaron=722;e.rcommaaccent=389;e.Ntilde=667;e.otilde=500;e.Rcommaaccent=611;e.Lcommaaccent=556;e.Atilde=611;e.Aogonek=611;e.Aring=611;e.Otilde=722;e.zdotaccent=389;e.Ecaron=611;e.Iogonek=333;e.kcommaaccent=444;e.minus=675;e.Icircumflex=333;e.ncaron=500;e.tcommaaccent=278;e.logicalnot=675;e.odieresis=500;e.udieresis=500;e.notequal=549;e.gcommaaccent=500;e.eth=500;e.zcaron=389;e.ncommaaccent=500;e.onesuperior=300;e.imacron=278;e.Euro=500}));e.ZapfDingbats=(0,r.getLookupTableFactory)((function(e){e.space=278;e.a1=974;e.a2=961;e.a202=974;e.a3=980;e.a4=719;e.a5=789;e.a119=790;e.a118=791;e.a117=690;e.a11=960;e.a12=939;e.a13=549;e.a14=855;e.a15=911;e.a16=933;e.a105=911;e.a17=945;e.a18=974;e.a19=755;e.a20=846;e.a21=762;e.a22=761;e.a23=571;e.a24=677;e.a25=763;e.a26=760;e.a27=759;e.a28=754;e.a6=494;e.a7=552;e.a8=537;e.a9=577;e.a10=692;e.a29=786;e.a30=788;e.a31=788;e.a32=790;e.a33=793;e.a34=794;e.a35=816;e.a36=823;e.a37=789;e.a38=841;e.a39=823;e.a40=833;e.a41=816;e.a42=831;e.a43=923;e.a44=744;e.a45=723;e.a46=749;e.a47=790;e.a48=792;e.a49=695;e.a50=776;e.a51=768;e.a52=792;e.a53=759;e.a54=707;e.a55=708;e.a56=682;e.a57=701;e.a58=826;e.a59=815;e.a60=789;e.a61=789;e.a62=707;e.a63=687;e.a64=696;e.a65=689;e.a66=786;e.a67=787;e.a68=713;e.a69=791;e.a70=785;e.a71=791;e.a72=873;e.a73=761;e.a74=762;e.a203=762;e.a75=759;e.a204=759;e.a76=892;e.a77=892;e.a78=788;e.a79=784;e.a81=438;e.a82=138;e.a83=277;e.a84=415;e.a97=392;e.a98=392;e.a99=668;e.a100=668;e.a89=390;e.a90=390;e.a93=317;e.a94=317;e.a91=276;e.a92=276;e.a205=509;e.a85=509;e.a206=410;e.a86=410;e.a87=234;e.a88=234;e.a95=334;e.a96=334;e.a101=732;e.a102=544;e.a103=544;e.a104=910;e.a106=667;e.a107=760;e.a108=760;e.a112=776;e.a111=595;e.a110=694;e.a109=626;e.a120=788;e.a121=788;e.a122=788;e.a123=788;e.a124=788;e.a125=788;e.a126=788;e.a127=788;e.a128=788;e.a129=788;e.a130=788;e.a131=788;e.a132=788;e.a133=788;e.a134=788;e.a135=788;e.a136=788;e.a137=788;e.a138=788;e.a139=788;e.a140=788;e.a141=788;e.a142=788;e.a143=788;e.a144=788;e.a145=788;e.a146=788;e.a147=788;e.a148=788;e.a149=788;e.a150=788;e.a151=788;e.a152=788;e.a153=788;e.a154=788;e.a155=788;e.a156=788;e.a157=788;e.a158=788;e.a159=788;e.a160=894;e.a161=838;e.a163=1016;e.a164=458;e.a196=748;e.a165=924;e.a192=748;e.a166=918;e.a167=927;e.a168=928;e.a169=928;e.a170=834;e.a171=873;e.a172=828;e.a173=924;e.a162=924;e.a174=917;e.a175=930;e.a176=931;e.a177=463;e.a178=883;e.a179=836;e.a193=836;e.a180=867;e.a199=867;e.a181=696;e.a200=696;e.a182=874;e.a201=874;e.a183=760;e.a184=946;e.a197=771;e.a185=865;e.a194=771;e.a198=888;e.a186=967;e.a195=888;e.a187=831;e.a188=873;e.a189=927;e.a190=970;e.a191=918}))}));t.getMetrics=n;const i=(0,r.getLookupTableFactory)((function(e){e.Courier={ascent:629,descent:-157,capHeight:562,xHeight:-426};e["Courier-Bold"]={ascent:629,descent:-157,capHeight:562,xHeight:439};e["Courier-Oblique"]={ascent:629,descent:-157,capHeight:562,xHeight:426};e["Courier-BoldOblique"]={ascent:629,descent:-157,capHeight:562,xHeight:426};e.Helvetica={ascent:718,descent:-207,capHeight:718,xHeight:523};e["Helvetica-Bold"]={ascent:718,descent:-207,capHeight:718,xHeight:532};e["Helvetica-Oblique"]={ascent:718,descent:-207,capHeight:718,xHeight:523};e["Helvetica-BoldOblique"]={ascent:718,descent:-207,capHeight:718,xHeight:532};e["Times-Roman"]={ascent:683,descent:-217,capHeight:662,xHeight:450};e["Times-Bold"]={ascent:683,descent:-217,capHeight:676,xHeight:461};e["Times-Italic"]={ascent:683,descent:-217,capHeight:653,xHeight:441};e["Times-BoldItalic"]={ascent:683,descent:-217,capHeight:669,xHeight:462};e.Symbol={ascent:Math.NaN,descent:Math.NaN,capHeight:Math.NaN,xHeight:Math.NaN};e.ZapfDingbats={ascent:Math.NaN,descent:Math.NaN,capHeight:Math.NaN,xHeight:Math.NaN}}));t.getFontBasicMetrics=i},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.GlyfTable=void 0;t.GlyfTable=class GlyfTable{constructor({glyfTable:e,isGlyphLocationsLong:t,locaTable:a,numGlyphs:r}){this.glyphs=[];const n=new DataView(a.buffer,a.byteOffset,a.byteLength),i=new DataView(e.buffer,e.byteOffset,e.byteLength),s=t?4:2;let o=t?n.getUint32(0):2*n.getUint16(0),c=0;for(let e=0;ee+(t.getSize()+3&-4)),0)}write(){const e=this.getSize(),t=new DataView(new ArrayBuffer(e)),a=e>131070,r=a?4:2,n=new DataView(new ArrayBuffer((this.glyphs.length+1)*r));a?n.setUint32(0,0):n.setUint16(0,0);let i=0,s=0;for(const e of this.glyphs){i+=e.write(i,t);i=i+3&-4;s+=r;a?n.setUint32(s,i):n.setUint16(s,i>>1)}return{isLocationLong:a,loca:new Uint8Array(n.buffer),glyf:new Uint8Array(t.buffer)}}scale(e){for(let t=0,a=this.glyphs.length;te+t.getSize()),0);return this.header.getSize()+e}write(e,t){if(!this.header)return 0;const a=e;e+=this.header.write(e,t);if(this.simple)e+=this.simple.write(e,t);else for(const a of this.composites)e+=a.write(e,t);return e-a}scale(e){if(!this.header)return;const t=(this.header.xMin+this.header.xMax)/2;this.header.scale(t,e);if(this.simple)this.simple.scale(t,e);else for(const a of this.composites)a.scale(t,e)}}class GlyphHeader{constructor({numberOfContours:e,xMin:t,yMin:a,xMax:r,yMax:n}){this.numberOfContours=e;this.xMin=t;this.yMin=a;this.xMax=r;this.yMax=n}static parse(e,t){return[10,new GlyphHeader({numberOfContours:t.getInt16(e),xMin:t.getInt16(e+2),yMin:t.getInt16(e+4),xMax:t.getInt16(e+6),yMax:t.getInt16(e+8)})]}getSize(){return 10}write(e,t){t.setInt16(e,this.numberOfContours);t.setInt16(e+2,this.xMin);t.setInt16(e+4,this.yMin);t.setInt16(e+6,this.xMax);t.setInt16(e+8,this.yMax);return 10}scale(e,t){this.xMin=Math.round(e+(this.xMin-e)*t);this.xMax=Math.round(e+(this.xMax-e)*t)}}class Contour{constructor({flags:e,xCoordinates:t,yCoordinates:a}){this.xCoordinates=t;this.yCoordinates=a;this.flags=e}}class SimpleGlyph{constructor({contours:e,instructions:t}){this.contours=e;this.instructions=t}static parse(e,t,a){const r=[];for(let n=0;n255?e+=2:o>0&&(e+=1);t=i;o=Math.abs(s-a);o>255?e+=2:o>0&&(e+=1);a=s}}return e}write(e,t){const a=e,r=[],n=[],i=[];let s=0,o=0;for(const a of this.contours){for(let e=0,t=a.xCoordinates.length;e=0?18:2;r.push(e)}else r.push(l)}s=c;const h=a.yCoordinates[e];l=h-o;if(0===l){t|=32;n.push(0)}else{const e=Math.abs(l);if(e<=255){t|=l>=0?36:4;n.push(e)}else n.push(l)}o=h;i.push(t)}t.setUint16(e,r.length-1);e+=2}t.setUint16(e,this.instructions.length);e+=2;if(this.instructions.length){new Uint8Array(t.buffer,0,t.buffer.byteLength).set(this.instructions,e);e+=this.instructions.length}for(const a of i)t.setUint8(e++,a);for(let a=0,n=r.length;a=-128&&this.argument1<=127&&this.argument2>=-128&&this.argument2<=127||(e+=2):this.argument1>=0&&this.argument1<=255&&this.argument2>=0&&this.argument2<=255||(e+=2);return e}write(e,t){const a=e;2&this.flags?this.argument1>=-128&&this.argument1<=127&&this.argument2>=-128&&this.argument2<=127||(this.flags|=1):this.argument1>=0&&this.argument1<=255&&this.argument2>=0&&this.argument2<=255||(this.flags|=1);t.setUint16(e,this.flags);t.setUint16(e+2,this.glyphIndex);e+=4;if(1&this.flags){if(2&this.flags){t.setInt16(e,this.argument1);t.setInt16(e+2,this.argument2)}else{t.setUint16(e,this.argument1);t.setUint16(e+2,this.argument2)}e+=4}else{t.setUint8(e,this.argument1);t.setUint8(e+1,this.argument2);e+=2}if(256&this.flags){t.setUint16(e,this.instructions.length);e+=2;if(this.instructions.length){new Uint8Array(t.buffer,0,t.buffer.byteLength).set(this.instructions,e);e+=this.instructions.length}}return e-a}scale(e,t){}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.OpenTypeFileBuilder=void 0;var r=a(4),n=a(2);function writeInt16(e,t,a){e[t]=a>>8&255;e[t+1]=255&a}function writeInt32(e,t,a){e[t]=a>>24&255;e[t+1]=a>>16&255;e[t+2]=a>>8&255;e[t+3]=255&a}function writeData(e,t,a){if(a instanceof Uint8Array)e.set(a,t);else if("string"==typeof a)for(let r=0,n=a.length;ra;){a<<=1;r++}const n=a*t;return{range:n,entry:r,rangeShift:t*e-n}}toArray(){let e=this.sfnt;const t=this.tables,a=Object.keys(t);a.sort();const i=a.length;let s,o,c,l,h,u=12+16*i;const d=[u];for(s=0;s>>0;d.push(u)}const f=new Uint8Array(u);for(s=0;s>>0}writeInt32(f,u+4,e);writeInt32(f,u+8,d[s]);writeInt32(f,u+12,t[h].length);u+=16}return f}addTable(e,t){if(e in this.tables)throw new Error("Table "+e+" already exists");this.tables[e]=t}}t.OpenTypeFileBuilder=OpenTypeFileBuilder},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Type1Font=void 0;var r=a(33),n=a(2),i=a(36),s=a(4),o=a(8),c=a(47);function findBlock(e,t,a){const r=e.length,n=t.length,i=r-n;let o=a,c=!1;for(;o=n){o+=a;for(;o=0&&(r[e]=n)}}return(0,i.type1FontGlyphMapping)(e,r,a)}hasGlyphId(e){if(e<0||e>=this.numGlyphs)return!1;if(0===e)return!0;return this.charstrings[e-1].charstring.length>0}getSeacs(e){const t=[];for(let a=0,r=e.length;a0;e--)t[e]-=t[e-1];g.setByName(e,t)}s.topDict.privateDict=g;const m=new r.CFFIndex;for(u=0,d=n.length;u{Object.defineProperty(t,"__esModule",{value:!0});t.Type1Parser=void 0;var r=a(35),n=a(4),i=a(8),s=a(2);const o=[4],c=[5],l=[6],h=[7],u=[8],d=[12,35],f=[14],g=[21],p=[22],m=[30],b=[31];class Type1CharString{constructor(){this.width=0;this.lsb=0;this.flexing=!1;this.output=[];this.stack=[]}convert(e,t,a){const r=e.length;let n,i,y,w=!1;for(let S=0;Sr)return!0;const n=r-e;for(let e=n;e>8&255,255&t);else{t=65536*t|0;this.output.push(255,t>>24&255,t>>16&255,t>>8&255,255&t)}}this.output.push(...t);a?this.stack.splice(n,e):this.stack.length=0;return!1}}function isHexDigit(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function decrypt(e,t,a){if(a>=e.length)return new Uint8Array(0);let r,n,i=0|t;for(r=0;r>8;i=52845*(t+i)+22719&65535}return o}function isSpecial(e){return 47===e||91===e||93===e||123===e||125===e||40===e||41===e}t.Type1Parser=class Type1Parser{constructor(e,t,a){if(t){const t=e.getBytes(),a=!((isHexDigit(t[0])||(0,n.isWhiteSpace)(t[0]))&&isHexDigit(t[1])&&isHexDigit(t[2])&&isHexDigit(t[3])&&isHexDigit(t[4])&&isHexDigit(t[5])&&isHexDigit(t[6])&&isHexDigit(t[7]));e=new i.Stream(a?decrypt(t,55665,4):function decryptAscii(e,t,a){let r=0|t;const n=e.length,i=new Uint8Array(n>>>1);let s,o;for(s=0,o=0;s>8;r=52845*(e+r)+22719&65535}}return i.slice(a,o)}(t,55665,4))}this.seacAnalysisEnabled=!!a;this.stream=e;this.nextChar()}readNumberArray(){this.getToken();const e=[];for(;;){const t=this.getToken();if(null===t||"]"===t||"}"===t)break;e.push(parseFloat(t||0))}return e}readNumber(){const e=this.getToken();return parseFloat(e||0)}readInt(){const e=this.getToken();return 0|parseInt(e||0,10)}readBoolean(){return"true"===this.getToken()?1:0}nextChar(){return this.currentChar=this.stream.getByte()}prevChar(){this.stream.skip(-2);return this.currentChar=this.stream.getByte()}getToken(){let e=!1,t=this.currentChar;for(;;){if(-1===t)return null;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(!(0,n.isWhiteSpace)(t))break;t=this.nextChar()}if(isSpecial(t)){this.nextChar();return String.fromCharCode(t)}let a="";do{a+=String.fromCharCode(t);t=this.nextChar()}while(t>=0&&!(0,n.isWhiteSpace)(t)&&!isSpecial(t));return a}readCharStrings(e,t){return-1===t?e:decrypt(e,4330,t)}extractFontProgram(e){const t=this.stream,a=[],r=[],n=Object.create(null);n.lenIV=4;const i={subrs:[],charstrings:[],properties:{privateData:n}};let s,o,c,l;for(;null!==(s=this.getToken());)if("/"===s){s=this.getToken();switch(s){case"CharStrings":this.getToken();this.getToken();this.getToken();this.getToken();for(;;){s=this.getToken();if(null===s||"end"===s)break;if("/"!==s)continue;const e=this.getToken();o=this.readInt();this.getToken();c=o>0?t.getBytes(o):new Uint8Array(0);l=i.properties.privateData.lenIV;const a=this.readCharStrings(c,l);this.nextChar();s=this.getToken();"noaccess"===s?this.getToken():"/"===s&&this.prevChar();r.push({glyph:e,encoded:a})}break;case"Subrs":this.readInt();this.getToken();for(;"dup"===this.getToken();){const e=this.readInt();o=this.readInt();this.getToken();c=o>0?t.getBytes(o):new Uint8Array(0);l=i.properties.privateData.lenIV;const r=this.readCharStrings(c,l);this.nextChar();s=this.getToken();"noaccess"===s&&this.getToken();a[e]=r}break;case"BlueValues":case"OtherBlues":case"FamilyBlues":case"FamilyOtherBlues":const e=this.readNumberArray();e.length>0&&e.length,0;break;case"StemSnapH":case"StemSnapV":i.properties.privateData[s]=this.readNumberArray();break;case"StdHW":case"StdVW":i.properties.privateData[s]=this.readNumberArray()[0];break;case"BlueShift":case"lenIV":case"BlueFuzz":case"BlueScale":case"LanguageGroup":i.properties.privateData[s]=this.readNumber();break;case"ExpansionFactor":i.properties.privateData[s]=this.readNumber()||.06;break;case"ForceBold":i.properties.privateData[s]=this.readBoolean()}}for(const{encoded:t,glyph:n}of r){const r=new Type1CharString,s=r.convert(t,a,this.seacAnalysisEnabled);let o=r.output;s&&(o=[14]);const c={glyphName:n,charstring:o,width:r.width,lsb:r.lsb,seac:r.seac};".notdef"===n?i.charstrings.unshift(c):i.charstrings.push(c);if(e.builtInEncoding){const t=e.builtInEncoding.indexOf(n);t>-1&&void 0===e.widths[t]&&t>=e.firstChar&&t<=e.lastChar&&(e.widths[t]=r.width)}}return i}extractFontHeader(e){let t;for(;null!==(t=this.getToken());)if("/"===t){t=this.getToken();switch(t){case"FontMatrix":const a=this.readNumberArray();e.fontMatrix=a;break;case"Encoding":const n=this.getToken();let i;if(/^\d+$/.test(n)){i=[];const e=0|parseInt(n,10);this.getToken();for(let a=0;a{Object.defineProperty(t,"__esModule",{value:!0});t.Pattern=void 0;t.getTilingPatternIR=function getTilingPatternIR(e,t,a){const n=t.getArray("Matrix"),i=r.Util.normalizeRect(t.getArray("BBox")),s=t.get("XStep"),o=t.get("YStep"),c=t.get("PaintType"),l=t.get("TilingType");if(i[2]-i[0]==0||i[3]-i[1]==0)throw new r.FormatError(`Invalid getTilingPatternIR /BBox array: [${i}].`);return["TilingPattern",a,e,n,i,s,o,c,l]};var r=a(2),n=a(5),i=a(12),s=a(4);const o=2,c=3,l=4,h=5,u=6,d=7;t.Pattern=class Pattern{constructor(){(0,r.unreachable)("Cannot initialize Pattern.")}static parseShading(e,t,a,i,f,g){const p=e instanceof n.BaseStream?e.dict:e,m=p.get("ShadingType");try{switch(m){case o:case c:return new RadialAxialShading(p,t,a,f,g);case l:case h:case u:case d:return new MeshShading(e,t,a,f,g);default:throw new r.FormatError("Unsupported ShadingType: "+m)}}catch(e){if(e instanceof s.MissingDataException)throw e;i.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.shadingPattern});(0,r.warn)(e);return new DummyShading}}};class BaseShading{static get SMALL_NUMBER(){return(0,r.shadow)(this,"SMALL_NUMBER",1e-6)}constructor(){this.constructor===BaseShading&&(0,r.unreachable)("Cannot initialize BaseShading.")}getIR(){(0,r.unreachable)("Abstract method `getIR` called.")}}class RadialAxialShading extends BaseShading{constructor(e,t,a,n,s){super();this.coordsArr=e.getArray("Coords");this.shadingType=e.get("ShadingType");const o=i.ColorSpace.parse({cs:e.getRaw("CS")||e.getRaw("ColorSpace"),xref:t,resources:a,pdfFunctionFactory:n,localColorSpaceCache:s}),l=e.getArray("BBox");Array.isArray(l)&&4===l.length?this.bbox=r.Util.normalizeRect(l):this.bbox=null;let h=0,u=1;if(e.has("Domain")){const t=e.getArray("Domain");h=t[0];u=t[1]}let d=!1,f=!1;if(e.has("Extend")){const t=e.getArray("Extend");d=t[0];f=t[1]}if(!(this.shadingType!==c||d&&f)){const[e,t,a,n,i,s]=this.coordsArr,o=Math.hypot(e-n,t-i);a<=s+o&&s<=a+o&&(0,r.warn)("Unsupported radial gradient.")}this.extendStart=d;this.extendEnd=f;const g=e.getRaw("Function"),p=n.createFromArray(g),m=(u-h)/10,b=this.colorStops=[];if(h>=u||m<=0){(0,r.info)("Bad shading domain.");return}const y=new Float32Array(o.numComps),w=new Float32Array(1);let S;for(let e=0;e<=10;e++){w[0]=h+e*m;p(w,0,y,0);S=o.getRgb(y,0);const t=r.Util.makeHexColor(S[0],S[1],S[2]);b.push([e/10,t])}let x="transparent";if(e.has("Background")){S=o.getRgb(e.get("Background"),0);x=r.Util.makeHexColor(S[0],S[1],S[2])}if(!d){b.unshift([0,x]);b[1][0]+=BaseShading.SMALL_NUMBER}if(!f){b.at(-1)[0]-=BaseShading.SMALL_NUMBER;b.push([1,x])}this.colorStops=b}getIR(){const e=this.coordsArr,t=this.shadingType;let a,n,i,s,l;if(t===o){n=[e[0],e[1]];i=[e[2],e[3]];s=null;l=null;a="axial"}else if(t===c){n=[e[0],e[1]];i=[e[3],e[4]];s=e[2];l=e[5];a="radial"}else(0,r.unreachable)(`getPattern type unknown: ${t}`);return["RadialAxial",a,this.bbox,this.colorStops,n,i,s,l]}}class MeshStreamReader{constructor(e,t){this.stream=e;this.context=t;this.buffer=0;this.bufferLength=0;const a=t.numComps;this.tmpCompsBuf=new Float32Array(a);const r=t.colorSpace.numComps;this.tmpCsCompsBuf=t.colorFn?new Float32Array(r):this.tmpCompsBuf}get hasData(){if(this.stream.end)return this.stream.pos0)return!0;const e=this.stream.getByte();if(e<0)return!1;this.buffer=e;this.bufferLength=8;return!0}readBits(e){let t=this.buffer,a=this.bufferLength;if(32===e){if(0===a)return(this.stream.getByte()<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte())>>>0;t=t<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte();const e=this.stream.getByte();this.buffer=e&(1<>a)>>>0}if(8===e&&0===a)return this.stream.getByte();for(;a>a}align(){this.buffer=0;this.bufferLength=0}readFlag(){return this.readBits(this.context.bitsPerFlag)}readCoordinate(){const e=this.context.bitsPerCoordinate,t=this.readBits(e),a=this.readBits(e),r=this.context.decode,n=e<32?1/((1<i?i:e;t=t>s?s:t;a=a{Object.defineProperty(t,"__esModule",{value:!0});t.getXfaFontDict=function getXfaFontDict(e){const t=function getXfaFontWidths(e){const t=getXfaFontName(e);if(!t)return null;const{baseWidths:a,baseMapping:r,factors:n}=t;let i;i=n?a.map(((e,t)=>e*n[t])):a;let s,o=-2;const c=[];for(const[e,t]of r.map(((e,t)=>[e,t])).sort((([e],[t])=>e-t)))if(-1!==e)if(e===o+1){s.push(i[t]);o+=1}else{o=e;s=[i[t]];c.push(e,s)}return c}(e),a=new n.Dict(null);a.set("BaseFont",n.Name.get(e));a.set("Type",n.Name.get("Font"));a.set("Subtype",n.Name.get("CIDFontType2"));a.set("Encoding",n.Name.get("Identity-H"));a.set("CIDToGIDMap",n.Name.get("Identity"));a.set("W",t);a.set("FirstChar",t[0]);a.set("LastChar",t.at(-2)+t.at(-1).length-1);const r=new n.Dict(null);a.set("FontDescriptor",r);const i=new n.Dict(null);i.set("Ordering","Identity");i.set("Registry","Adobe");i.set("Supplement",0);a.set("CIDSystemInfo",i);return a};t.getXfaFontName=getXfaFontName;var r=a(50),n=a(3),i=a(51),s=a(52),o=a(53),c=a(54),l=a(4),h=a(36);const u=(0,l.getLookupTableFactory)((function(e){e["MyriadPro-Regular"]=e["PdfJS-Fallback-Regular"]={name:"LiberationSans-Regular",factors:o.MyriadProRegularFactors,baseWidths:s.LiberationSansRegularWidths,baseMapping:s.LiberationSansRegularMapping,metrics:o.MyriadProRegularMetrics};e["MyriadPro-Bold"]=e["PdfJS-Fallback-Bold"]={name:"LiberationSans-Bold",factors:o.MyriadProBoldFactors,baseWidths:s.LiberationSansBoldWidths,baseMapping:s.LiberationSansBoldMapping,metrics:o.MyriadProBoldMetrics};e["MyriadPro-It"]=e["MyriadPro-Italic"]=e["PdfJS-Fallback-Italic"]={name:"LiberationSans-Italic",factors:o.MyriadProItalicFactors,baseWidths:s.LiberationSansItalicWidths,baseMapping:s.LiberationSansItalicMapping,metrics:o.MyriadProItalicMetrics};e["MyriadPro-BoldIt"]=e["MyriadPro-BoldItalic"]=e["PdfJS-Fallback-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:o.MyriadProBoldItalicFactors,baseWidths:s.LiberationSansBoldItalicWidths,baseMapping:s.LiberationSansBoldItalicMapping,metrics:o.MyriadProBoldItalicMetrics};e.ArialMT=e.Arial=e["Arial-Regular"]={name:"LiberationSans-Regular",baseWidths:s.LiberationSansRegularWidths,baseMapping:s.LiberationSansRegularMapping};e["Arial-BoldMT"]=e["Arial-Bold"]={name:"LiberationSans-Bold",baseWidths:s.LiberationSansBoldWidths,baseMapping:s.LiberationSansBoldMapping};e["Arial-ItalicMT"]=e["Arial-Italic"]={name:"LiberationSans-Italic",baseWidths:s.LiberationSansItalicWidths,baseMapping:s.LiberationSansItalicMapping};e["Arial-BoldItalicMT"]=e["Arial-BoldItalic"]={name:"LiberationSans-BoldItalic",baseWidths:s.LiberationSansBoldItalicWidths,baseMapping:s.LiberationSansBoldItalicMapping};e["Calibri-Regular"]={name:"LiberationSans-Regular",factors:r.CalibriRegularFactors,baseWidths:s.LiberationSansRegularWidths,baseMapping:s.LiberationSansRegularMapping,metrics:r.CalibriRegularMetrics};e["Calibri-Bold"]={name:"LiberationSans-Bold",factors:r.CalibriBoldFactors,baseWidths:s.LiberationSansBoldWidths,baseMapping:s.LiberationSansBoldMapping,metrics:r.CalibriBoldMetrics};e["Calibri-Italic"]={name:"LiberationSans-Italic",factors:r.CalibriItalicFactors,baseWidths:s.LiberationSansItalicWidths,baseMapping:s.LiberationSansItalicMapping,metrics:r.CalibriItalicMetrics};e["Calibri-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:r.CalibriBoldItalicFactors,baseWidths:s.LiberationSansBoldItalicWidths,baseMapping:s.LiberationSansBoldItalicMapping,metrics:r.CalibriBoldItalicMetrics};e["Segoeui-Regular"]={name:"LiberationSans-Regular",factors:c.SegoeuiRegularFactors,baseWidths:s.LiberationSansRegularWidths,baseMapping:s.LiberationSansRegularMapping,metrics:c.SegoeuiRegularMetrics};e["Segoeui-Bold"]={name:"LiberationSans-Bold",factors:c.SegoeuiBoldFactors,baseWidths:s.LiberationSansBoldWidths,baseMapping:s.LiberationSansBoldMapping,metrics:c.SegoeuiBoldMetrics};e["Segoeui-Italic"]={name:"LiberationSans-Italic",factors:c.SegoeuiItalicFactors,baseWidths:s.LiberationSansItalicWidths,baseMapping:s.LiberationSansItalicMapping,metrics:c.SegoeuiItalicMetrics};e["Segoeui-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:c.SegoeuiBoldItalicFactors,baseWidths:s.LiberationSansBoldItalicWidths,baseMapping:s.LiberationSansBoldItalicMapping,metrics:c.SegoeuiBoldItalicMetrics};e["Helvetica-Regular"]=e.Helvetica={name:"LiberationSans-Regular",factors:i.HelveticaRegularFactors,baseWidths:s.LiberationSansRegularWidths,baseMapping:s.LiberationSansRegularMapping,metrics:i.HelveticaRegularMetrics};e["Helvetica-Bold"]={name:"LiberationSans-Bold",factors:i.HelveticaBoldFactors,baseWidths:s.LiberationSansBoldWidths,baseMapping:s.LiberationSansBoldMapping,metrics:i.HelveticaBoldMetrics};e["Helvetica-Italic"]={name:"LiberationSans-Italic",factors:i.HelveticaItalicFactors,baseWidths:s.LiberationSansItalicWidths,baseMapping:s.LiberationSansItalicMapping,metrics:i.HelveticaItalicMetrics};e["Helvetica-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:i.HelveticaBoldItalicFactors,baseWidths:s.LiberationSansBoldItalicWidths,baseMapping:s.LiberationSansBoldItalicMapping,metrics:i.HelveticaBoldItalicMetrics}}));function getXfaFontName(e){const t=(0,h.normalizeFontName)(e);return u()[t]}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CalibriRegularMetrics=t.CalibriRegularFactors=t.CalibriItalicMetrics=t.CalibriItalicFactors=t.CalibriBoldMetrics=t.CalibriBoldItalicMetrics=t.CalibriBoldItalicFactors=t.CalibriBoldFactors=void 0;t.CalibriBoldFactors=[1.3877,1,1,1,.97801,.92482,.89552,.91133,.81988,.97566,.98152,.93548,.93548,1.2798,.85284,.92794,1,.96134,1.54657,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.82845,.82845,.85284,.85284,.85284,.75859,.92138,.83908,.7762,.73293,.87289,.73133,.7514,.81921,.87356,.95958,.59526,.75727,.69225,1.04924,.9121,.86943,.79795,.88198,.77958,.70864,.81055,.90399,.88653,.96017,.82577,.77892,.78257,.97507,1.54657,.97507,.85284,.89552,.90176,.88762,.8785,.75241,.8785,.90518,.95015,.77618,.8785,.88401,.91916,.86304,.88401,.91488,.8785,.8801,.8785,.8785,.91343,.7173,1.04106,.8785,.85075,.95794,.82616,.85162,.79492,.88331,1.69808,.88331,.85284,.97801,.89552,.91133,.89552,.91133,1.7801,.89552,1.24487,1.13254,1.12401,.96839,.85284,.68787,.70645,.85592,.90747,1.01466,1.0088,.90323,1,1.07463,1,.91056,.75806,1.19118,.96839,.78864,.82845,.84133,.75859,.83908,.83908,.83908,.83908,.83908,.83908,.77539,.73293,.73133,.73133,.73133,.73133,.95958,.95958,.95958,.95958,.88506,.9121,.86943,.86943,.86943,.86943,.86943,.85284,.87508,.90399,.90399,.90399,.90399,.77892,.79795,.90807,.88762,.88762,.88762,.88762,.88762,.88762,.8715,.75241,.90518,.90518,.90518,.90518,.88401,.88401,.88401,.88401,.8785,.8785,.8801,.8801,.8801,.8801,.8801,.90747,.89049,.8785,.8785,.8785,.8785,.85162,.8785,.85162,.83908,.88762,.83908,.88762,.83908,.88762,.73293,.75241,.73293,.75241,.73293,.75241,.73293,.75241,.87289,.83016,.88506,.93125,.73133,.90518,.73133,.90518,.73133,.90518,.73133,.90518,.73133,.90518,.81921,.77618,.81921,.77618,.81921,.77618,1,1,.87356,.8785,.91075,.89608,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.76229,.90167,.59526,.91916,1,1,.86304,.69225,.88401,1,1,.70424,.79468,.91926,.88175,.70823,.94903,.9121,.8785,1,1,.9121,.8785,.87802,.88656,.8785,.86943,.8801,.86943,.8801,.86943,.8801,.87402,.89291,.77958,.91343,1,1,.77958,.91343,.70864,.7173,.70864,.7173,.70864,.7173,.70864,.7173,1,1,.81055,.75841,.81055,1.06452,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.96017,.95794,.77892,.85162,.77892,.78257,.79492,.78257,.79492,.78257,.79492,.9297,.56892,.83908,.88762,.77539,.8715,.87508,.89049,1,1,.81055,1.04106,1.20528,1.20528,1,1.15543,.70674,.98387,.94721,1.33431,1.45894,.95161,1.06303,.83908,.80352,.57184,.6965,.56289,.82001,.56029,.81235,1.02988,.83908,.7762,.68156,.80367,.73133,.78257,.87356,.86943,.95958,.75727,.89019,1.04924,.9121,.7648,.86943,.87356,.79795,.78275,.81055,.77892,.9762,.82577,.99819,.84896,.95958,.77892,.96108,1.01407,.89049,1.02988,.94211,.96108,.8936,.84021,.87842,.96399,.79109,.89049,1.00813,1.02988,.86077,.87445,.92099,.84723,.86513,.8801,.75638,.85714,.78216,.79586,.87965,.94211,.97747,.78287,.97926,.84971,1.02988,.94211,.8801,.94211,.84971,.73133,1,1,1,1,1,1,1,1,1,1,1,1,.90264,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.90518,1,1,1,1,1,1,1,1,1,1,1,1,.90548,1,1,1,1,1,1,.96017,.95794,.96017,.95794,.96017,.95794,.77892,.85162,1,1,.89552,.90527,1,.90363,.92794,.92794,.92794,.92794,.87012,.87012,.87012,.89552,.89552,1.42259,.71143,1.06152,1,1,1.03372,1.03372,.97171,1.4956,2.2807,.93835,.83406,.91133,.84107,.91133,1,1,1,.72021,1,1.23108,.83489,.88525,.88525,.81499,.90527,1.81055,.90527,1.81055,1.31006,1.53711,.94434,1.08696,1,.95018,.77192,.85284,.90747,1.17534,.69825,.9716,1.37077,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.08004,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,.90727,.90727,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.CalibriBoldMetrics={lineHeight:1.2207,lineGap:.2207};t.CalibriBoldItalicFactors=[1.3877,1,1,1,.97801,.92482,.89552,.91133,.81988,.97566,.98152,.93548,.93548,1.2798,.85284,.92794,1,.96134,1.56239,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.82845,.82845,.85284,.85284,.85284,.75859,.92138,.83908,.7762,.71805,.87289,.73133,.7514,.81921,.87356,.95958,.59526,.75727,.69225,1.04924,.90872,.85938,.79795,.87068,.77958,.69766,.81055,.90399,.88653,.96068,.82577,.77892,.78257,.97507,1.529,.97507,.85284,.89552,.90176,.94908,.86411,.74012,.86411,.88323,.95015,.86411,.86331,.88401,.91916,.86304,.88401,.9039,.86331,.86331,.86411,.86411,.90464,.70852,1.04106,.86331,.84372,.95794,.82616,.84548,.79492,.88331,1.69808,.88331,.85284,.97801,.89552,.91133,.89552,.91133,1.7801,.89552,1.24487,1.13254,1.19129,.96839,.85284,.68787,.70645,.85592,.90747,1.01466,1.0088,.90323,1,1.07463,1,.91056,.75806,1.19118,.96839,.78864,.82845,.84133,.75859,.83908,.83908,.83908,.83908,.83908,.83908,.77539,.71805,.73133,.73133,.73133,.73133,.95958,.95958,.95958,.95958,.88506,.90872,.85938,.85938,.85938,.85938,.85938,.85284,.87068,.90399,.90399,.90399,.90399,.77892,.79795,.90807,.94908,.94908,.94908,.94908,.94908,.94908,.85887,.74012,.88323,.88323,.88323,.88323,.88401,.88401,.88401,.88401,.8785,.86331,.86331,.86331,.86331,.86331,.86331,.90747,.89049,.86331,.86331,.86331,.86331,.84548,.86411,.84548,.83908,.94908,.83908,.94908,.83908,.94908,.71805,.74012,.71805,.74012,.71805,.74012,.71805,.74012,.87289,.79538,.88506,.92726,.73133,.88323,.73133,.88323,.73133,.88323,.73133,.88323,.73133,.88323,.81921,.86411,.81921,.86411,.81921,.86411,1,1,.87356,.86331,.91075,.8777,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.76467,.90167,.59526,.91916,1,1,.86304,.69225,.88401,1,1,.70424,.77312,.91926,.88175,.70823,.94903,.90872,.86331,1,1,.90872,.86331,.86906,.88116,.86331,.85938,.86331,.85938,.86331,.85938,.86331,.87402,.86549,.77958,.90464,1,1,.77958,.90464,.69766,.70852,.69766,.70852,.69766,.70852,.69766,.70852,1,1,.81055,.75841,.81055,1.06452,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.96068,.95794,.77892,.84548,.77892,.78257,.79492,.78257,.79492,.78257,.79492,.9297,.56892,.83908,.94908,.77539,.85887,.87068,.89049,1,1,.81055,1.04106,1.20528,1.20528,1,1.15543,.70088,.98387,.94721,1.33431,1.45894,.95161,1.48387,.83908,.80352,.57118,.6965,.56347,.79179,.55853,.80346,1.02988,.83908,.7762,.67174,.86036,.73133,.78257,.87356,.86441,.95958,.75727,.89019,1.04924,.90872,.74889,.85938,.87891,.79795,.7957,.81055,.77892,.97447,.82577,.97466,.87179,.95958,.77892,.94252,.95612,.8753,1.02988,.92733,.94252,.87411,.84021,.8728,.95612,.74081,.8753,1.02189,1.02988,.84814,.87445,.91822,.84723,.85668,.86331,.81344,.87581,.76422,.82046,.96057,.92733,.99375,.78022,.95452,.86015,1.02988,.92733,.86331,.92733,.86015,.73133,1,1,1,1,1,1,1,1,1,1,1,1,.90631,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.88323,1,1,1,1,1,1,1,1,1,1,1,1,.85174,1,1,1,1,1,1,.96068,.95794,.96068,.95794,.96068,.95794,.77892,.84548,1,1,.89552,.90527,1,.90363,.92794,.92794,.92794,.89807,.87012,.87012,.87012,.89552,.89552,1.42259,.71094,1.06152,1,1,1.03372,1.03372,.97171,1.4956,2.2807,.92972,.83406,.91133,.83326,.91133,1,1,1,.72021,1,1.23108,.83489,.88525,.88525,.81499,.90616,1.81055,.90527,1.81055,1.3107,1.53711,.94434,1.08696,1,.95018,.77192,.85284,.90747,1.17534,.69825,.9716,1.37077,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.08004,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,.90727,.90727,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.CalibriBoldItalicMetrics={lineHeight:1.2207,lineGap:.2207};t.CalibriItalicFactors=[1.3877,1,1,1,1.17223,1.1293,.89552,.91133,.80395,1.02269,1.15601,.91056,.91056,1.2798,.85284,.89807,1,.90861,1.39543,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.96309,.96309,.85284,.85284,.85284,.83319,.88071,.8675,.81552,.72346,.85193,.73206,.7522,.81105,.86275,.90685,.6377,.77892,.75593,1.02638,.89249,.84118,.77452,.85374,.75186,.67789,.79776,.88844,.85066,.94309,.77818,.7306,.76659,1.10369,1.38313,1.10369,1.06139,.89552,.8739,.9245,.9245,.83203,.9245,.85865,1.09842,.9245,.9245,1.03297,1.07692,.90918,1.03297,.94959,.9245,.92274,.9245,.9245,1.02933,.77832,1.20562,.9245,.8916,.98986,.86621,.89453,.79004,.94152,1.77256,.94152,.85284,.97801,.89552,.91133,.89552,.91133,1.91729,.89552,1.17889,1.13254,1.16359,.92098,.85284,.68787,.71353,.84737,.90747,1.0088,1.0044,.87683,1,1.09091,1,.92229,.739,1.15642,.92098,.76288,.80504,.80972,.75859,.8675,.8675,.8675,.8675,.8675,.8675,.76318,.72346,.73206,.73206,.73206,.73206,.90685,.90685,.90685,.90685,.86477,.89249,.84118,.84118,.84118,.84118,.84118,.85284,.84557,.88844,.88844,.88844,.88844,.7306,.77452,.86331,.9245,.9245,.9245,.9245,.9245,.9245,.84843,.83203,.85865,.85865,.85865,.85865,.82601,.82601,.82601,.82601,.94469,.9245,.92274,.92274,.92274,.92274,.92274,.90747,.86651,.9245,.9245,.9245,.9245,.89453,.9245,.89453,.8675,.9245,.8675,.9245,.8675,.9245,.72346,.83203,.72346,.83203,.72346,.83203,.72346,.83203,.85193,.8875,.86477,.99034,.73206,.85865,.73206,.85865,.73206,.85865,.73206,.85865,.73206,.85865,.81105,.9245,.81105,.9245,.81105,.9245,1,1,.86275,.9245,.90872,.93591,.90685,.82601,.90685,.82601,.90685,.82601,.90685,1.03297,.90685,.82601,.77896,1.05611,.6377,1.07692,1,1,.90918,.75593,1.03297,1,1,.76032,.9375,.98156,.93407,.77261,1.11429,.89249,.9245,1,1,.89249,.9245,.92534,.86698,.9245,.84118,.92274,.84118,.92274,.84118,.92274,.8667,.86291,.75186,1.02933,1,1,.75186,1.02933,.67789,.77832,.67789,.77832,.67789,.77832,.67789,.77832,1,1,.79776,.97655,.79776,1.23023,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.94309,.98986,.7306,.89453,.7306,.76659,.79004,.76659,.79004,.76659,.79004,1.09231,.54873,.8675,.9245,.76318,.84843,.84557,.86651,1,1,.79776,1.20562,1.18622,1.18622,1,1.1437,.67009,.96334,.93695,1.35191,1.40909,.95161,1.48387,.8675,.90861,.6192,.7363,.64824,.82411,.56321,.85696,1.23516,.8675,.81552,.7286,.84134,.73206,.76659,.86275,.84369,.90685,.77892,.85871,1.02638,.89249,.75828,.84118,.85984,.77452,.76466,.79776,.7306,.90782,.77818,.903,.87291,.90685,.7306,.99058,1.03667,.94635,1.23516,.9849,.99058,.92393,.8916,.942,1.03667,.75026,.94635,1.0297,1.23516,.90918,.94048,.98217,.89746,.84153,.92274,.82507,.88832,.84438,.88178,1.03525,.9849,1.00225,.78086,.97248,.89404,1.23516,.9849,.92274,.9849,.89404,.73206,1,1,1,1,1,1,1,1,1,1,1,1,.89693,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.85865,1,1,1,1,1,1,1,1,1,1,1,1,.90933,1,1,1,1,1,1,.94309,.98986,.94309,.98986,.94309,.98986,.7306,.89453,1,1,.89552,.90527,1,.90186,1.12308,1.12308,1.12308,1.12308,1.2566,1.2566,1.2566,.89552,.89552,1.42259,.68994,1.03809,1,1,1.0176,1.0176,1.11523,1.4956,2.01462,.97858,.82616,.91133,.83437,.91133,1,1,1,.70508,1,1.23108,.79801,.84426,.84426,.774,.90572,1.81055,.90749,1.81055,1.28809,1.55469,.94434,1.07806,1,.97094,.7589,.85284,.90747,1.19658,.69825,.97622,1.33512,.90747,.90747,.85284,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.0336,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,1.05859,1.05859,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.CalibriItalicMetrics={lineHeight:1.2207,lineGap:.2207};t.CalibriRegularFactors=[1.3877,1,1,1,1.17223,1.1293,.89552,.91133,.80395,1.02269,1.15601,.91056,.91056,1.2798,.85284,.89807,1,.90861,1.39016,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.96309,.96309,.85284,.85284,.85284,.83319,.88071,.8675,.81552,.73834,.85193,.73206,.7522,.81105,.86275,.90685,.6377,.77892,.75593,1.02638,.89385,.85122,.77452,.86503,.75186,.68887,.79776,.88844,.85066,.94258,.77818,.7306,.76659,1.10369,1.39016,1.10369,1.06139,.89552,.8739,.86128,.94469,.8457,.94469,.89464,1.09842,.84636,.94469,1.03297,1.07692,.90918,1.03297,.95897,.94469,.9482,.94469,.94469,1.04692,.78223,1.20562,.94469,.90332,.98986,.86621,.90527,.79004,.94152,1.77256,.94152,.85284,.97801,.89552,.91133,.89552,.91133,1.91729,.89552,1.17889,1.13254,1.08707,.92098,.85284,.68787,.71353,.84737,.90747,1.0088,1.0044,.87683,1,1.09091,1,.92229,.739,1.15642,.92098,.76288,.80504,.80972,.75859,.8675,.8675,.8675,.8675,.8675,.8675,.76318,.73834,.73206,.73206,.73206,.73206,.90685,.90685,.90685,.90685,.86477,.89385,.85122,.85122,.85122,.85122,.85122,.85284,.85311,.88844,.88844,.88844,.88844,.7306,.77452,.86331,.86128,.86128,.86128,.86128,.86128,.86128,.8693,.8457,.89464,.89464,.89464,.89464,.82601,.82601,.82601,.82601,.94469,.94469,.9482,.9482,.9482,.9482,.9482,.90747,.86651,.94469,.94469,.94469,.94469,.90527,.94469,.90527,.8675,.86128,.8675,.86128,.8675,.86128,.73834,.8457,.73834,.8457,.73834,.8457,.73834,.8457,.85193,.92454,.86477,.9921,.73206,.89464,.73206,.89464,.73206,.89464,.73206,.89464,.73206,.89464,.81105,.84636,.81105,.84636,.81105,.84636,1,1,.86275,.94469,.90872,.95786,.90685,.82601,.90685,.82601,.90685,.82601,.90685,1.03297,.90685,.82601,.77741,1.05611,.6377,1.07692,1,1,.90918,.75593,1.03297,1,1,.76032,.90452,.98156,1.11842,.77261,1.11429,.89385,.94469,1,1,.89385,.94469,.95877,.86901,.94469,.85122,.9482,.85122,.9482,.85122,.9482,.8667,.90016,.75186,1.04692,1,1,.75186,1.04692,.68887,.78223,.68887,.78223,.68887,.78223,.68887,.78223,1,1,.79776,.92188,.79776,1.23023,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.94258,.98986,.7306,.90527,.7306,.76659,.79004,.76659,.79004,.76659,.79004,1.09231,.54873,.8675,.86128,.76318,.8693,.85311,.86651,1,1,.79776,1.20562,1.18622,1.18622,1,1.1437,.67742,.96334,.93695,1.35191,1.40909,.95161,1.48387,.86686,.90861,.62267,.74359,.65649,.85498,.56963,.88254,1.23516,.8675,.81552,.75443,.84503,.73206,.76659,.86275,.85122,.90685,.77892,.85746,1.02638,.89385,.75657,.85122,.86275,.77452,.74171,.79776,.7306,.95165,.77818,.89772,.88831,.90685,.7306,.98142,1.02191,.96576,1.23516,.99018,.98142,.9236,.89258,.94035,1.02191,.78848,.96576,.9561,1.23516,.90918,.92578,.95424,.89746,.83969,.9482,.80113,.89442,.85208,.86155,.98022,.99018,1.00452,.81209,.99247,.89181,1.23516,.99018,.9482,.99018,.89181,.73206,1,1,1,1,1,1,1,1,1,1,1,1,.88844,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.89464,1,1,1,1,1,1,1,1,1,1,1,1,.96766,1,1,1,1,1,1,.94258,.98986,.94258,.98986,.94258,.98986,.7306,.90527,1,1,.89552,.90527,1,.90186,1.12308,1.12308,1.12308,1.12308,1.2566,1.2566,1.2566,.89552,.89552,1.42259,.69043,1.03809,1,1,1.0176,1.0176,1.11523,1.4956,2.01462,.99331,.82616,.91133,.84286,.91133,1,1,1,.70508,1,1.23108,.79801,.84426,.84426,.774,.90527,1.81055,.90527,1.81055,1.28809,1.55469,.94434,1.07806,1,.97094,.7589,.85284,.90747,1.19658,.69825,.97622,1.33512,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.0336,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,1.05859,1.05859,1,1,1,1.07185,.99413,.96334,1.08065,1,1,1,1,1,1,1,1,1,1,1];t.CalibriRegularMetrics={lineHeight:1.2207,lineGap:.2207}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.HelveticaRegularMetrics=t.HelveticaRegularFactors=t.HelveticaItalicMetrics=t.HelveticaItalicFactors=t.HelveticaBoldMetrics=t.HelveticaBoldItalicMetrics=t.HelveticaBoldItalicFactors=t.HelveticaBoldFactors=void 0;t.HelveticaBoldFactors=[.76116,1,1,1.0006,.99998,.99974,.99973,.99973,.99982,.99977,1.00087,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99998,1,1.00003,1.00003,1.00003,1.00026,.9999,.99977,.99977,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,.99973,.99977,1.00026,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,.99998,1.0006,.99998,1.00003,.99973,.99998,.99973,1.00026,.99973,1.00026,.99973,.99998,1.00026,1.00026,1.0006,1.0006,.99973,1.0006,.99982,1.00026,1.00026,1.00026,1.00026,.99959,.99973,.99998,1.00026,.99973,1.00022,.99973,.99973,1,.99959,1.00077,.99959,1.00003,.99998,.99973,.99973,.99973,.99973,1.00077,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.99973,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,.99977,.99977,.99977,.99977,.99977,.99977,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,.99973,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.06409,1.00026,1.00026,1.00026,1.00026,1.00026,.99973,1.00026,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,1.03374,.99977,1.00026,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,.99977,1.00026,.99977,1.00026,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.00042,.99973,.99973,1.0006,.99977,.99973,.99973,1.00026,1.0006,1.00026,1.0006,1.00026,1.03828,1.00026,.99999,1.00026,1.0006,.99977,1.00026,.99977,1.00026,.99977,1.00026,.9993,.9998,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1,1.00016,.99977,.99959,.99977,.99959,.99977,.99959,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00026,.99998,1.00026,.8121,1.00026,.99998,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,1.00016,1.00022,1.00001,.99973,1.00001,1.00026,1,1.00026,1,1.00026,1,1.0006,.99973,.99977,.99973,1,.99982,1.00022,1.00026,1.00001,.99973,1.00026,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,1.00034,.99977,1,.99997,1.00026,1.00078,1.00036,.99973,1.00013,1.0006,.99977,.99977,.99988,.85148,1.00001,1.00026,.99977,1.00022,1.0006,.99977,1.00001,.99999,.99977,1.00069,1.00022,.99977,1.00001,.99984,1.00026,1.00001,1.00024,1.00001,.9999,1,1.0006,1.00001,1.00041,.99962,1.00026,1.0006,.99995,1.00041,.99942,.99973,.99927,1.00082,.99902,1.00026,1.00087,1.0006,1.00069,.99973,.99867,.99973,.9993,1.00026,1.00049,1.00056,1,.99988,.99935,.99995,.99954,1.00055,.99945,1.00032,1.0006,.99995,1.00026,.99995,1.00032,1.00001,1.00008,.99971,1.00019,.9994,1.00001,1.0006,1.00044,.99973,1.00023,1.00047,1,.99942,.99561,.99989,1.00035,.99977,1.00035,.99977,1.00019,.99944,1.00001,1.00021,.99926,1.00035,1.00035,.99942,1.00048,.99999,.99977,1.00022,1.00035,1.00001,.99977,1.00026,.99989,1.00057,1.00001,.99936,1.00052,1.00012,.99996,1.00043,1,1.00035,.9994,.99976,1.00035,.99973,1.00052,1.00041,1.00119,1.00037,.99973,1.00002,.99986,1.00041,1.00041,.99902,.9996,1.00034,.99999,1.00026,.99999,1.00026,.99973,1.00052,.99973,1,.99973,1.00041,1.00075,.9994,1.0003,.99999,1,1.00041,.99955,1,.99915,.99973,.99973,1.00026,1.00119,.99955,.99973,1.0006,.99911,1.0006,1.00026,.99972,1.00026,.99902,1.00041,.99973,.99999,1,1,1.00038,1.0005,1.00016,1.00022,1.00016,1.00022,1.00016,1.00022,1.00001,.99973,1,1,.99973,1,1,.99955,1.0006,1.0006,1.0006,1.0006,1,1,1,.99973,.99973,.99972,1,1,1.00106,.99999,.99998,.99998,.99999,.99998,1.66475,1,.99973,.99973,1.00023,.99973,.99971,1.00047,1.00023,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1,1,1,1,1,1,1,.99972,1,1.20985,1.39713,1.00003,1.00031,1.00015,1,.99561,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.99972,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1];t.HelveticaBoldMetrics={lineHeight:1.2,lineGap:.2};t.HelveticaBoldItalicFactors=[.76116,1,1,1.0006,.99998,.99974,.99973,.99973,.99982,.99977,1.00087,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99998,1,1.00003,1.00003,1.00003,1.00026,.9999,.99977,.99977,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,.99973,.99977,1.00026,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,.99998,1.0006,.99998,1.00003,.99973,.99998,.99973,1.00026,.99973,1.00026,.99973,.99998,1.00026,1.00026,1.0006,1.0006,.99973,1.0006,.99982,1.00026,1.00026,1.00026,1.00026,.99959,.99973,.99998,1.00026,.99973,1.00022,.99973,.99973,1,.99959,1.00077,.99959,1.00003,.99998,.99973,.99973,.99973,.99973,1.00077,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.99973,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,.99977,.99977,.99977,.99977,.99977,.99977,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,.99973,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.06409,1.00026,1.00026,1.00026,1.00026,1.00026,.99973,1.00026,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,1.0044,.99977,1.00026,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,.99977,1.00026,.99977,1.00026,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99971,.99973,.99973,1.0006,.99977,.99973,.99973,1.00026,1.0006,1.00026,1.0006,1.00026,1.01011,1.00026,.99999,1.00026,1.0006,.99977,1.00026,.99977,1.00026,.99977,1.00026,.9993,.9998,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1,1.00016,.99977,.99959,.99977,.99959,.99977,.99959,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00026,.99998,1.00026,.8121,1.00026,.99998,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,1.00016,1.00022,1.00001,.99973,1.00001,1.00026,1,1.00026,1,1.00026,1,1.0006,.99973,.99977,.99973,1,.99982,1.00022,1.00026,1.00001,.99973,1.00026,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99977,1,1,1.00026,.99969,.99972,.99981,.9998,1.0006,.99977,.99977,1.00022,.91155,1.00001,1.00026,.99977,1.00022,1.0006,.99977,1.00001,.99999,.99977,.99966,1.00022,1.00032,1.00001,.99944,1.00026,1.00001,.99968,1.00001,1.00047,1,1.0006,1.00001,.99981,1.00101,1.00026,1.0006,.99948,.99981,1.00064,.99973,.99942,1.00101,1.00061,1.00026,1.00069,1.0006,1.00014,.99973,1.01322,.99973,1.00065,1.00026,1.00012,.99923,1,1.00064,1.00076,.99948,1.00055,1.00063,1.00007,.99943,1.0006,.99948,1.00026,.99948,.99943,1.00001,1.00001,1.00029,1.00038,1.00035,1.00001,1.0006,1.0006,.99973,.99978,1.00001,1.00057,.99989,.99967,.99964,.99967,.99977,.99999,.99977,1.00038,.99977,1.00001,.99973,1.00066,.99967,.99967,1.00041,.99998,.99999,.99977,1.00022,.99967,1.00001,.99977,1.00026,.99964,1.00031,1.00001,.99999,.99999,1,1.00023,1,1,.99999,1.00035,1.00001,.99999,.99973,.99977,.99999,1.00058,.99973,.99973,.99955,.9995,1.00026,1.00026,1.00032,.99989,1.00034,.99999,1.00026,1.00026,1.00026,.99973,.45998,.99973,1.00026,.99973,1.00001,.99999,.99982,.99994,.99996,1,1.00042,1.00044,1.00029,1.00023,.99973,.99973,1.00026,.99949,1.00002,.99973,1.0006,1.0006,1.0006,.99975,1.00026,1.00026,1.00032,.98685,.99973,1.00026,1,1,.99966,1.00044,1.00016,1.00022,1.00016,1.00022,1.00016,1.00022,1.00001,.99973,1,1,.99973,1,1,.99955,1.0006,1.0006,1.0006,1.0006,1,1,1,.99973,.99973,.99972,1,1,1.00106,.99999,.99998,.99998,.99999,.99998,1.66475,1,.99973,.99973,1,.99973,.99971,.99978,1,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1.00098,1,1,1,1.00049,1,1,.99972,1,1.20985,1.39713,1.00003,1.00031,1.00015,1,.99561,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.99972,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1];t.HelveticaBoldItalicMetrics={lineHeight:1.35,lineGap:.2};t.HelveticaItalicFactors=[.76116,1,1,1.0006,1.0006,1.00006,.99973,.99973,.99982,1.00001,1.00043,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.0006,1,1.00003,1.00003,1.00003,.99973,.99987,1.00001,1.00001,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,1,1.00001,.99973,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,1.0006,1.0006,1.0006,.99949,.99973,.99998,.99973,.99973,1,.99973,.99973,1.0006,.99973,.99973,.99924,.99924,1,.99924,.99999,.99973,.99973,.99973,.99973,.99998,1,1.0006,.99973,1,.99977,1,1,1,1.00005,1.0009,1.00005,1.00003,.99998,.99973,.99973,.99973,.99973,1.0009,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.9998,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,1.00001,1.00001,1.00001,1.00001,1.00001,1.00001,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,1,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.06409,1.00026,.99973,.99973,.99973,.99973,1,.99973,1,1.00001,.99973,1.00001,.99973,1.00001,.99973,.99977,1,.99977,1,.99977,1,.99977,1,.99977,1.0288,.99977,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,.99977,.99973,.99977,.99973,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99924,1.0006,1.0006,.99946,1.00034,1,.99924,1.00001,1,1,.99973,.99924,.99973,.99924,.99973,1.06311,.99973,1.00024,.99973,.99924,.99977,.99973,.99977,.99973,.99977,.99973,1.00041,.9998,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1,1.00016,.99977,.99998,.99977,.99998,.99977,.99998,1.00001,1,1.00001,1,1.00001,1,1.00001,1,1.00026,1.0006,1.00026,.89547,1.00026,1.0006,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,1.00016,.99977,1.00001,1,1.00001,1.00026,1,1.00026,1,1.00026,1,.99924,.99973,1.00001,.99973,1,.99982,1.00022,1.00026,1.00001,1,1.00026,1.0006,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,1.00001,1,1.00054,.99977,1.00084,1.00007,.99973,1.00013,.99924,1.00001,1.00001,.99945,.91221,1.00001,1.00026,.99977,1.00022,1.0006,1.00001,1.00001,.99999,.99977,.99933,1.00022,1.00054,1.00001,1.00065,1.00026,1.00001,1.0001,1.00001,1.00052,1,1.0006,1.00001,.99945,.99897,.99968,.99924,1.00036,.99945,.99949,1,1.0006,.99897,.99918,.99968,.99911,.99924,1,.99962,1.01487,1,1.0005,.99973,1.00012,1.00043,1,.99995,.99994,1.00036,.99947,1.00019,1.00063,1.00025,.99924,1.00036,.99973,1.00036,1.00025,1.00001,1.00001,1.00027,1.0001,1.00068,1.00001,1.0006,1.0006,1,1.00008,.99957,.99972,.9994,.99954,.99975,1.00051,1.00001,1.00019,1.00001,1.0001,.99986,1.00001,1.00001,1.00038,.99954,.99954,.9994,1.00066,.99999,.99977,1.00022,1.00054,1.00001,.99977,1.00026,.99975,1.0001,1.00001,.99993,.9995,.99955,1.00016,.99978,.99974,1.00019,1.00022,.99955,1.00053,.99973,1.00089,1.00005,.99967,1.00048,.99973,1.00002,1.00034,.99973,.99973,.99964,1.00006,1.00066,.99947,.99973,.98894,.99973,1,.44898,1,.99946,1,1.00039,1.00082,.99991,.99991,.99985,1.00022,1.00023,1.00061,1.00006,.99966,.99973,.99973,.99973,1.00019,1.0008,1,.99924,.99924,.99924,.99983,1.00044,.99973,.99964,.98332,1,.99973,1,1,.99962,.99895,1.00016,.99977,1.00016,.99977,1.00016,.99977,1.00001,1,1,1,.99973,1,1,.99955,.99924,.99924,.99924,.99924,.99998,.99998,.99998,.99973,.99973,.99972,1,1,1.00267,.99999,.99998,.99998,1,.99998,1.66475,1,.99973,.99973,1.00023,.99973,1.00423,.99925,.99999,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1.00049,1,1.00245,1,1,1,1,.96329,1,1.20985,1.39713,1.00003,.8254,1.00015,1,1.00035,1.00027,1.00031,1.00031,1.00003,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.95317,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1];t.HelveticaItalicMetrics={lineHeight:1.35,lineGap:.2};t.HelveticaRegularFactors=[.76116,1,1,1.0006,1.0006,1.00006,.99973,.99973,.99982,1.00001,1.00043,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.0006,1,1.00003,1.00003,1.00003,.99973,.99987,1.00001,1.00001,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,1,1.00001,.99973,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,1.0006,1.0006,1.0006,.99949,.99973,.99998,.99973,.99973,1,.99973,.99973,1.0006,.99973,.99973,.99924,.99924,1,.99924,.99999,.99973,.99973,.99973,.99973,.99998,1,1.0006,.99973,1,.99977,1,1,1,1.00005,1.0009,1.00005,1.00003,.99998,.99973,.99973,.99973,.99973,1.0009,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.9998,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,1.00001,1.00001,1.00001,1.00001,1.00001,1.00001,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,1,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.06409,1.00026,.99973,.99973,.99973,.99973,1,.99973,1,1.00001,.99973,1.00001,.99973,1.00001,.99973,.99977,1,.99977,1,.99977,1,.99977,1,.99977,1.04596,.99977,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,.99977,.99973,.99977,.99973,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99924,1.0006,1.0006,1.00019,1.00034,1,.99924,1.00001,1,1,.99973,.99924,.99973,.99924,.99973,1.02572,.99973,1.00005,.99973,.99924,.99977,.99973,.99977,.99973,.99977,.99973,.99999,.9998,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1,1.00016,.99977,.99998,.99977,.99998,.99977,.99998,1.00001,1,1.00001,1,1.00001,1,1.00001,1,1.00026,1.0006,1.00026,.84533,1.00026,1.0006,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,1.00016,.99977,1.00001,1,1.00001,1.00026,1,1.00026,1,1.00026,1,.99924,.99973,1.00001,.99973,1,.99982,1.00022,1.00026,1.00001,1,1.00026,1.0006,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99928,1,.99977,1.00013,1.00055,.99947,.99945,.99941,.99924,1.00001,1.00001,1.0004,.91621,1.00001,1.00026,.99977,1.00022,1.0006,1.00001,1.00005,.99999,.99977,1.00015,1.00022,.99977,1.00001,.99973,1.00026,1.00001,1.00019,1.00001,.99946,1,1.0006,1.00001,.99978,1.00045,.99973,.99924,1.00023,.99978,.99966,1,1.00065,1.00045,1.00019,.99973,.99973,.99924,1,1,.96499,1,1.00055,.99973,1.00008,1.00027,1,.9997,.99995,1.00023,.99933,1.00019,1.00015,1.00031,.99924,1.00023,.99973,1.00023,1.00031,1.00001,.99928,1.00029,1.00092,1.00035,1.00001,1.0006,1.0006,1,.99988,.99975,1,1.00082,.99561,.9996,1.00035,1.00001,.99962,1.00001,1.00092,.99964,1.00001,.99963,.99999,1.00035,1.00035,1.00082,.99962,.99999,.99977,1.00022,1.00035,1.00001,.99977,1.00026,.9996,.99967,1.00001,1.00034,1.00074,1.00054,1.00053,1.00063,.99971,.99962,1.00035,.99975,.99977,.99973,1.00043,.99953,1.0007,.99915,.99973,1.00008,.99892,1.00073,1.00073,1.00114,.99915,1.00073,.99955,.99973,1.00092,.99973,1,.99998,1,1.0003,1,1.00043,1.00001,.99969,1.0003,1,1.00035,1.00001,.9995,1,1.00092,.99973,.99973,.99973,1.0007,.9995,1,.99924,1.0006,.99924,.99972,1.00062,.99973,1.00114,1.00073,1,.99955,1,1,1.00047,.99968,1.00016,.99977,1.00016,.99977,1.00016,.99977,1.00001,1,1,1,.99973,1,1,.99955,.99924,.99924,.99924,.99924,.99998,.99998,.99998,.99973,.99973,.99972,1,1,1.00267,.99999,.99998,.99998,1,.99998,1.66475,1,.99973,.99973,1.00023,.99973,.99971,.99925,1.00023,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1,1,1,1,1,1,1,.96329,1,1.20985,1.39713,1.00003,.8254,1.00015,1,1.00035,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.95317,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.HelveticaRegularMetrics={lineHeight:1.2,lineGap:.2}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.LiberationSansRegularWidths=t.LiberationSansRegularMapping=t.LiberationSansItalicWidths=t.LiberationSansItalicMapping=t.LiberationSansBoldWidths=t.LiberationSansBoldMapping=t.LiberationSansBoldItalicWidths=t.LiberationSansBoldItalicMapping=void 0;t.LiberationSansBoldWidths=[365,0,333,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,333,556,556,556,556,280,556,333,737,370,556,584,737,552,400,549,333,333,333,576,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,549,611,611,611,611,611,556,611,556,722,556,722,556,722,556,722,556,722,556,722,556,722,556,722,719,722,611,667,556,667,556,667,556,667,556,667,556,778,611,778,611,778,611,778,611,722,611,722,611,278,278,278,278,278,278,278,278,278,278,785,556,556,278,722,556,556,611,278,611,278,611,385,611,479,611,278,722,611,722,611,722,611,708,723,611,778,611,778,611,778,611,1e3,944,722,389,722,389,722,389,667,556,667,556,667,556,667,556,611,333,611,479,611,333,722,611,722,611,722,611,722,611,722,611,722,611,944,778,667,556,667,611,500,611,500,611,500,278,556,722,556,1e3,889,778,611,667,556,611,333,333,333,333,333,333,333,333,333,333,333,465,722,333,853,906,474,825,927,838,278,722,722,601,719,667,611,722,778,278,722,667,833,722,644,778,722,667,600,611,667,821,667,809,802,278,667,615,451,611,278,582,615,610,556,606,475,460,611,541,278,558,556,612,556,445,611,766,619,520,684,446,582,715,576,753,845,278,582,611,582,845,667,669,885,567,711,667,278,276,556,1094,1062,875,610,722,622,719,722,719,722,567,712,667,904,626,719,719,610,702,833,722,778,719,667,722,611,622,854,667,730,703,1005,1019,870,979,719,711,1031,719,556,618,615,417,635,556,709,497,615,615,500,635,740,604,611,604,611,556,490,556,875,556,615,581,833,844,729,854,615,552,854,583,556,556,611,417,552,556,278,281,278,969,906,611,500,615,556,604,778,611,487,447,944,778,944,778,944,778,667,556,333,333,556,1e3,1e3,552,278,278,278,278,500,500,500,556,556,350,1e3,1e3,240,479,333,333,604,333,167,396,556,556,1094,556,885,489,1115,1e3,768,600,834,834,834,834,1e3,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,722,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,611,611,333,333,333,333,333,333,333,333,222,222,333,333,333,333,333,333,333,333];t.LiberationSansBoldMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];t.LiberationSansBoldItalicWidths=[365,0,333,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,333,556,556,556,556,280,556,333,737,370,556,584,737,552,400,549,333,333,333,576,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,549,611,611,611,611,611,556,611,556,722,556,722,556,722,556,722,556,722,556,722,556,722,556,722,740,722,611,667,556,667,556,667,556,667,556,667,556,778,611,778,611,778,611,778,611,722,611,722,611,278,278,278,278,278,278,278,278,278,278,782,556,556,278,722,556,556,611,278,611,278,611,396,611,479,611,278,722,611,722,611,722,611,708,723,611,778,611,778,611,778,611,1e3,944,722,389,722,389,722,389,667,556,667,556,667,556,667,556,611,333,611,479,611,333,722,611,722,611,722,611,722,611,722,611,722,611,944,778,667,556,667,611,500,611,500,611,500,278,556,722,556,1e3,889,778,611,667,556,611,333,333,333,333,333,333,333,333,333,333,333,333,722,333,854,906,473,844,930,847,278,722,722,610,671,667,611,722,778,278,722,667,833,722,657,778,718,667,590,611,667,822,667,829,781,278,667,620,479,611,278,591,620,621,556,610,479,492,611,558,278,566,556,603,556,450,611,712,605,532,664,409,591,704,578,773,834,278,591,611,591,834,667,667,886,614,719,667,278,278,556,1094,1042,854,622,719,677,719,722,708,722,614,722,667,927,643,719,719,615,687,833,722,778,719,667,722,611,677,781,667,729,708,979,989,854,1e3,708,719,1042,729,556,619,604,534,618,556,736,510,611,611,507,622,740,604,611,611,611,556,889,556,885,556,646,583,889,935,707,854,594,552,865,589,556,556,611,469,563,556,278,278,278,969,906,611,507,619,556,611,778,611,575,467,944,778,944,778,944,778,667,556,333,333,556,1e3,1e3,552,278,278,278,278,500,500,500,556,556,350,1e3,1e3,240,479,333,333,604,333,167,396,556,556,1104,556,885,516,1146,1e3,768,600,834,834,834,834,999,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,722,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,611,611,333,333,333,333,333,333,333,333,222,222,333,333,333,333,333,333,333,333];t.LiberationSansBoldItalicMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];t.LiberationSansItalicWidths=[365,0,333,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,333,556,556,556,556,260,556,333,737,370,556,584,737,552,400,549,333,333,333,576,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,549,611,556,556,556,556,500,556,500,667,556,667,556,667,556,722,500,722,500,722,500,722,500,722,625,722,556,667,556,667,556,667,556,667,556,667,556,778,556,778,556,778,556,778,556,722,556,722,556,278,278,278,278,278,278,278,222,278,278,733,444,500,222,667,500,500,556,222,556,222,556,281,556,400,556,222,722,556,722,556,722,556,615,723,556,778,556,778,556,778,556,1e3,944,722,333,722,333,722,333,667,500,667,500,667,500,667,500,611,278,611,354,611,278,722,556,722,556,722,556,722,556,722,556,722,556,944,722,667,500,667,611,500,611,500,611,500,222,556,667,556,1e3,889,778,611,667,500,611,278,333,333,333,333,333,333,333,333,333,333,333,667,278,789,846,389,794,865,775,222,667,667,570,671,667,611,722,778,278,667,667,833,722,648,778,725,667,600,611,667,837,667,831,761,278,667,570,439,555,222,550,570,571,500,556,439,463,555,542,222,500,492,548,500,447,556,670,573,486,603,374,550,652,546,728,779,222,550,556,550,779,667,667,843,544,708,667,278,278,500,1066,982,844,589,715,639,724,667,651,667,544,704,667,917,614,715,715,589,686,833,722,778,725,667,722,611,639,795,667,727,673,920,923,805,886,651,694,1022,682,556,562,522,493,553,556,688,465,556,556,472,564,686,550,556,556,556,500,833,500,835,500,572,518,830,851,621,736,526,492,752,534,556,556,556,378,496,500,222,222,222,910,828,556,472,565,500,556,778,556,492,339,944,722,944,722,944,722,667,500,333,333,556,1e3,1e3,552,222,222,222,222,333,333,333,556,556,350,1e3,1e3,188,354,333,333,500,333,167,365,556,556,1094,556,885,323,1083,1e3,768,600,834,834,834,834,1e3,500,998,500,1e3,500,500,494,612,823,713,584,549,713,979,719,274,549,549,584,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,500,500,333,333,333,333,333,333,333,333,222,222,294,294,324,324,316,328,398,285];t.LiberationSansItalicMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];t.LiberationSansRegularWidths=[365,0,333,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,333,556,556,556,556,260,556,333,737,370,556,584,737,552,400,549,333,333,333,576,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,549,611,556,556,556,556,500,556,500,667,556,667,556,667,556,722,500,722,500,722,500,722,500,722,615,722,556,667,556,667,556,667,556,667,556,667,556,778,556,778,556,778,556,778,556,722,556,722,556,278,278,278,278,278,278,278,222,278,278,735,444,500,222,667,500,500,556,222,556,222,556,292,556,334,556,222,722,556,722,556,722,556,604,723,556,778,556,778,556,778,556,1e3,944,722,333,722,333,722,333,667,500,667,500,667,500,667,500,611,278,611,375,611,278,722,556,722,556,722,556,722,556,722,556,722,556,944,722,667,500,667,611,500,611,500,611,500,222,556,667,556,1e3,889,778,611,667,500,611,278,333,333,333,333,333,333,333,333,333,333,333,667,278,784,838,384,774,855,752,222,667,667,551,668,667,611,722,778,278,667,668,833,722,650,778,722,667,618,611,667,798,667,835,748,278,667,578,446,556,222,547,578,575,500,557,446,441,556,556,222,500,500,576,500,448,556,690,569,482,617,395,547,648,525,713,781,222,547,556,547,781,667,667,865,542,719,667,278,278,500,1057,1010,854,583,722,635,719,667,656,667,542,677,667,923,604,719,719,583,656,833,722,778,719,667,722,611,635,760,667,740,667,917,938,792,885,656,719,1010,722,556,573,531,365,583,556,669,458,559,559,438,583,688,552,556,542,556,500,458,500,823,500,573,521,802,823,625,719,521,510,750,542,556,556,556,365,510,500,222,278,222,906,812,556,438,559,500,552,778,556,489,411,944,722,944,722,944,722,667,500,333,333,556,1e3,1e3,552,222,222,222,222,333,333,333,556,556,350,1e3,1e3,188,354,333,333,500,333,167,365,556,556,1094,556,885,323,1073,1e3,768,600,834,834,834,834,1e3,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,719,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,500,500,333,333,333,333,333,333,333,333,222,222,294,294,324,324,316,328,398,285];t.LiberationSansRegularMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.MyriadProRegularMetrics=t.MyriadProRegularFactors=t.MyriadProItalicMetrics=t.MyriadProItalicFactors=t.MyriadProBoldMetrics=t.MyriadProBoldItalicMetrics=t.MyriadProBoldItalicFactors=t.MyriadProBoldFactors=void 0;t.MyriadProBoldFactors=[1.36898,1,1,.72706,.80479,.83734,.98894,.99793,.9897,.93884,.86209,.94292,.94292,1.16661,1.02058,.93582,.96694,.93582,1.19137,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.78076,.78076,1.02058,1.02058,1.02058,.72851,.78966,.90838,.83637,.82391,.96376,.80061,.86275,.8768,.95407,1.0258,.73901,.85022,.83655,1.0156,.95546,.92179,.87107,.92179,.82114,.8096,.89713,.94438,.95353,.94083,.91905,.90406,.9446,.94292,1.18777,.94292,1.02058,.89903,.90088,.94938,.97898,.81093,.97571,.94938,1.024,.9577,.95933,.98621,1.0474,.97455,.98981,.9672,.95933,.9446,.97898,.97407,.97646,.78036,1.10208,.95442,.95298,.97579,.9332,.94039,.938,.80687,1.01149,.80687,1.02058,.80479,.99793,.99793,.99793,.99793,1.01149,1.00872,.90088,.91882,1.0213,.8361,1.02058,.62295,.54324,.89022,1.08595,1,1,.90088,1,.97455,.93582,.90088,1,1.05686,.8361,.99642,.99642,.99642,.72851,.90838,.90838,.90838,.90838,.90838,.90838,.868,.82391,.80061,.80061,.80061,.80061,1.0258,1.0258,1.0258,1.0258,.97484,.95546,.92179,.92179,.92179,.92179,.92179,1.02058,.92179,.94438,.94438,.94438,.94438,.90406,.86958,.98225,.94938,.94938,.94938,.94938,.94938,.94938,.9031,.81093,.94938,.94938,.94938,.94938,.98621,.98621,.98621,.98621,.93969,.95933,.9446,.9446,.9446,.9446,.9446,1.08595,.9446,.95442,.95442,.95442,.95442,.94039,.97898,.94039,.90838,.94938,.90838,.94938,.90838,.94938,.82391,.81093,.82391,.81093,.82391,.81093,.82391,.81093,.96376,.84313,.97484,.97571,.80061,.94938,.80061,.94938,.80061,.94938,.80061,.94938,.80061,.94938,.8768,.9577,.8768,.9577,.8768,.9577,1,1,.95407,.95933,.97069,.95933,1.0258,.98621,1.0258,.98621,1.0258,.98621,1.0258,.98621,1.0258,.98621,.887,1.01591,.73901,1.0474,1,1,.97455,.83655,.98981,1,1,.83655,.73977,.83655,.73903,.84638,1.033,.95546,.95933,1,1,.95546,.95933,.8271,.95417,.95933,.92179,.9446,.92179,.9446,.92179,.9446,.936,.91964,.82114,.97646,1,1,.82114,.97646,.8096,.78036,.8096,.78036,1,1,.8096,.78036,1,1,.89713,.77452,.89713,1.10208,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94083,.97579,.90406,.94039,.90406,.9446,.938,.9446,.938,.9446,.938,1,.99793,.90838,.94938,.868,.9031,.92179,.9446,1,1,.89713,1.10208,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90989,.9358,.91945,.83181,.75261,.87992,.82976,.96034,.83689,.97268,1.0078,.90838,.83637,.8019,.90157,.80061,.9446,.95407,.92436,1.0258,.85022,.97153,1.0156,.95546,.89192,.92179,.92361,.87107,.96318,.89713,.93704,.95638,.91905,.91709,.92796,1.0258,.93704,.94836,1.0373,.95933,1.0078,.95871,.94836,.96174,.92601,.9498,.98607,.95776,.95933,1.05453,1.0078,.98275,.9314,.95617,.91701,1.05993,.9446,.78367,.9553,1,.86832,1.0128,.95871,.99394,.87548,.96361,.86774,1.0078,.95871,.9446,.95871,.86774,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.94083,.97579,.94083,.97579,.94083,.97579,.90406,.94039,.96694,1,.89903,1,1,1,.93582,.93582,.93582,1,.908,.908,.918,.94219,.94219,.96544,1,1.285,1,1,.81079,.81079,1,1,.74854,1,1,1,1,.99793,1,1,1,.65,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.17173,1,.80535,.76169,1.02058,1.0732,1.05486,1,1,1.30692,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.16161,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.MyriadProBoldMetrics={lineHeight:1.2,lineGap:.2};t.MyriadProBoldItalicFactors=[1.36898,1,1,.66227,.80779,.81625,.97276,.97276,.97733,.92222,.83266,.94292,.94292,1.16148,1.02058,.93582,.96694,.93582,1.17337,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.78076,.78076,1.02058,1.02058,1.02058,.71541,.76813,.85576,.80591,.80729,.94299,.77512,.83655,.86523,.92222,.98621,.71743,.81698,.79726,.98558,.92222,.90637,.83809,.90637,.80729,.76463,.86275,.90699,.91605,.9154,.85308,.85458,.90531,.94292,1.21296,.94292,1.02058,.89903,1.18616,.99613,.91677,.78216,.91677,.90083,.98796,.9135,.92168,.95381,.98981,.95298,.95381,.93459,.92168,.91513,.92004,.91677,.95077,.748,1.04502,.91677,.92061,.94236,.89544,.89364,.9,.80687,.8578,.80687,1.02058,.80779,.97276,.97276,.97276,.97276,.8578,.99973,1.18616,.91339,1.08074,.82891,1.02058,.55509,.71526,.89022,1.08595,1,1,1.18616,1,.96736,.93582,1.18616,1,1.04864,.82711,.99043,.99043,.99043,.71541,.85576,.85576,.85576,.85576,.85576,.85576,.845,.80729,.77512,.77512,.77512,.77512,.98621,.98621,.98621,.98621,.95961,.92222,.90637,.90637,.90637,.90637,.90637,1.02058,.90251,.90699,.90699,.90699,.90699,.85458,.83659,.94951,.99613,.99613,.99613,.99613,.99613,.99613,.85811,.78216,.90083,.90083,.90083,.90083,.95381,.95381,.95381,.95381,.9135,.92168,.91513,.91513,.91513,.91513,.91513,1.08595,.91677,.91677,.91677,.91677,.91677,.89364,.92332,.89364,.85576,.99613,.85576,.99613,.85576,.99613,.80729,.78216,.80729,.78216,.80729,.78216,.80729,.78216,.94299,.76783,.95961,.91677,.77512,.90083,.77512,.90083,.77512,.90083,.77512,.90083,.77512,.90083,.86523,.9135,.86523,.9135,.86523,.9135,1,1,.92222,.92168,.92222,.92168,.98621,.95381,.98621,.95381,.98621,.95381,.98621,.95381,.98621,.95381,.86036,.97096,.71743,.98981,1,1,.95298,.79726,.95381,1,1,.79726,.6894,.79726,.74321,.81691,1.0006,.92222,.92168,1,1,.92222,.92168,.79464,.92098,.92168,.90637,.91513,.90637,.91513,.90637,.91513,.909,.87514,.80729,.95077,1,1,.80729,.95077,.76463,.748,.76463,.748,1,1,.76463,.748,1,1,.86275,.72651,.86275,1.04502,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.9154,.94236,.85458,.89364,.85458,.90531,.9,.90531,.9,.90531,.9,1,.97276,.85576,.99613,.845,.85811,.90251,.91677,1,1,.86275,1.04502,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.00899,1.30628,.85576,.80178,.66862,.7927,.69323,.88127,.72459,.89711,.95381,.85576,.80591,.7805,.94729,.77512,.90531,.92222,.90637,.98621,.81698,.92655,.98558,.92222,.85359,.90637,.90976,.83809,.94523,.86275,.83509,.93157,.85308,.83392,.92346,.98621,.83509,.92886,.91324,.92168,.95381,.90646,.92886,.90557,.86847,.90276,.91324,.86842,.92168,.99531,.95381,.9224,.85408,.92699,.86847,1.0051,.91513,.80487,.93481,1,.88159,1.05214,.90646,.97355,.81539,.89398,.85923,.95381,.90646,.91513,.90646,.85923,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.9154,.94236,.9154,.94236,.9154,.94236,.85458,.89364,.96694,1,.89903,1,1,1,.91782,.91782,.91782,1,.896,.896,.896,.9332,.9332,.95973,1,1.26,1,1,.80479,.80178,1,1,.85633,1,1,1,1,.97276,1,1,1,.698,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.14542,1,.79199,.78694,1.02058,1.03493,1.05486,1,1,1.23026,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.20006,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.MyriadProBoldItalicMetrics={lineHeight:1.2,lineGap:.2};t.MyriadProItalicFactors=[1.36898,1,1,.65507,.84943,.85639,.88465,.88465,.86936,.88307,.86948,.85283,.85283,1.06383,1.02058,.75945,.9219,.75945,1.17337,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.75945,.75945,1.02058,1.02058,1.02058,.69046,.70926,.85158,.77812,.76852,.89591,.70466,.76125,.80094,.86822,.83864,.728,.77212,.79475,.93637,.87514,.8588,.76013,.8588,.72421,.69866,.77598,.85991,.80811,.87832,.78112,.77512,.8562,1.0222,1.18417,1.0222,1.27014,.89903,1.15012,.93859,.94399,.846,.94399,.81453,1.0186,.94219,.96017,1.03075,1.02175,.912,1.03075,.96998,.96017,.93859,.94399,.94399,.95493,.746,1.12658,.94578,.91,.979,.882,.882,.83,.85034,.83537,.85034,1.02058,.70869,.88465,.88465,.88465,.88465,.83537,.90083,1.15012,.9161,.94565,.73541,1.02058,.53609,.69353,.79519,1.08595,1,1,1.15012,1,.91974,.75945,1.15012,1,.9446,.73361,.9005,.9005,.9005,.62864,.85158,.85158,.85158,.85158,.85158,.85158,.773,.76852,.70466,.70466,.70466,.70466,.83864,.83864,.83864,.83864,.90561,.87514,.8588,.8588,.8588,.8588,.8588,1.02058,.85751,.85991,.85991,.85991,.85991,.77512,.76013,.88075,.93859,.93859,.93859,.93859,.93859,.93859,.8075,.846,.81453,.81453,.81453,.81453,.82424,.82424,.82424,.82424,.9278,.96017,.93859,.93859,.93859,.93859,.93859,1.08595,.8562,.94578,.94578,.94578,.94578,.882,.94578,.882,.85158,.93859,.85158,.93859,.85158,.93859,.76852,.846,.76852,.846,.76852,.846,.76852,.846,.89591,.8544,.90561,.94399,.70466,.81453,.70466,.81453,.70466,.81453,.70466,.81453,.70466,.81453,.80094,.94219,.80094,.94219,.80094,.94219,1,1,.86822,.96017,.86822,.96017,.83864,.82424,.83864,.82424,.83864,.82424,.83864,1.03075,.83864,.82424,.81402,1.02738,.728,1.02175,1,1,.912,.79475,1.03075,1,1,.79475,.83911,.79475,.66266,.80553,1.06676,.87514,.96017,1,1,.87514,.96017,.86865,.87396,.96017,.8588,.93859,.8588,.93859,.8588,.93859,.867,.84759,.72421,.95493,1,1,.72421,.95493,.69866,.746,.69866,.746,1,1,.69866,.746,1,1,.77598,.88417,.77598,1.12658,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.87832,.979,.77512,.882,.77512,.8562,.83,.8562,.83,.8562,.83,1,.88465,.85158,.93859,.773,.8075,.85751,.8562,1,1,.77598,1.12658,1.15012,1.15012,1.15012,1.15012,1.15012,1.15313,1.15012,1.15012,1.15012,1.08106,1.03901,.85158,.77025,.62264,.7646,.65351,.86026,.69461,.89947,1.03075,.85158,.77812,.76449,.88836,.70466,.8562,.86822,.8588,.83864,.77212,.85308,.93637,.87514,.82352,.8588,.85701,.76013,.89058,.77598,.8156,.82565,.78112,.77899,.89386,.83864,.8156,.9486,.92388,.96186,1.03075,.91123,.9486,.93298,.878,.93942,.92388,.84596,.96186,.95119,1.03075,.922,.88787,.95829,.88,.93559,.93859,.78815,.93758,1,.89217,1.03737,.91123,.93969,.77487,.85769,.86799,1.03075,.91123,.93859,.91123,.86799,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.87832,.979,.87832,.979,.87832,.979,.77512,.882,.9219,1,.89903,1,1,1,.87321,.87321,.87321,1,1.027,1.027,1.027,.86847,.86847,.79121,1,1.124,1,1,.73572,.73572,1,1,.85034,1,1,1,1,.88465,1,1,1,.669,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.04828,1,.74948,.75187,1.02058,.98391,1.02119,1,1,1.06233,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.05233,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.MyriadProItalicMetrics={lineHeight:1.2,lineGap:.2};t.MyriadProRegularFactors=[1.36898,1,1,.76305,.82784,.94935,.89364,.92241,.89073,.90706,.98472,.85283,.85283,1.0664,1.02058,.74505,.9219,.74505,1.23456,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.74505,.74505,1.02058,1.02058,1.02058,.73002,.72601,.91755,.8126,.80314,.92222,.73764,.79726,.83051,.90284,.86023,.74,.8126,.84869,.96518,.91115,.8858,.79761,.8858,.74498,.73914,.81363,.89591,.83659,.89633,.85608,.8111,.90531,1.0222,1.22736,1.0222,1.27014,.89903,.90088,.86667,1.0231,.896,1.01411,.90083,1.05099,1.00512,.99793,1.05326,1.09377,.938,1.06226,1.00119,.99793,.98714,1.0231,1.01231,.98196,.792,1.19137,.99074,.962,1.01915,.926,.942,.856,.85034,.92006,.85034,1.02058,.69067,.92241,.92241,.92241,.92241,.92006,.9332,.90088,.91882,.93484,.75339,1.02058,.56866,.54324,.79519,1.08595,1,1,.90088,1,.95325,.74505,.90088,1,.97198,.75339,.91009,.91009,.91009,.66466,.91755,.91755,.91755,.91755,.91755,.91755,.788,.80314,.73764,.73764,.73764,.73764,.86023,.86023,.86023,.86023,.92915,.91115,.8858,.8858,.8858,.8858,.8858,1.02058,.8858,.89591,.89591,.89591,.89591,.8111,.79611,.89713,.86667,.86667,.86667,.86667,.86667,.86667,.86936,.896,.90083,.90083,.90083,.90083,.84224,.84224,.84224,.84224,.97276,.99793,.98714,.98714,.98714,.98714,.98714,1.08595,.89876,.99074,.99074,.99074,.99074,.942,1.0231,.942,.91755,.86667,.91755,.86667,.91755,.86667,.80314,.896,.80314,.896,.80314,.896,.80314,.896,.92222,.93372,.92915,1.01411,.73764,.90083,.73764,.90083,.73764,.90083,.73764,.90083,.73764,.90083,.83051,1.00512,.83051,1.00512,.83051,1.00512,1,1,.90284,.99793,.90976,.99793,.86023,.84224,.86023,.84224,.86023,.84224,.86023,1.05326,.86023,.84224,.82873,1.07469,.74,1.09377,1,1,.938,.84869,1.06226,1,1,.84869,.83704,.84869,.81441,.85588,1.08927,.91115,.99793,1,1,.91115,.99793,.91887,.90991,.99793,.8858,.98714,.8858,.98714,.8858,.98714,.894,.91434,.74498,.98196,1,1,.74498,.98196,.73914,.792,.73914,.792,1,1,.73914,.792,1,1,.81363,.904,.81363,1.19137,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89633,1.01915,.8111,.942,.8111,.90531,.856,.90531,.856,.90531,.856,1,.92241,.91755,.86667,.788,.86936,.8858,.89876,1,1,.81363,1.19137,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90388,1.03901,.92138,.78105,.7154,.86169,.80513,.94007,.82528,.98612,1.06226,.91755,.8126,.81884,.92819,.73764,.90531,.90284,.8858,.86023,.8126,.91172,.96518,.91115,.83089,.8858,.87791,.79761,.89297,.81363,.88157,.89992,.85608,.81992,.94307,.86023,.88157,.95308,.98699,.99793,1.06226,.95817,.95308,.97358,.928,.98088,.98699,.92761,.99793,.96017,1.06226,.986,.944,.95978,.938,.96705,.98714,.80442,.98972,1,.89762,1.04552,.95817,.99007,.87064,.91879,.88888,1.06226,.95817,.98714,.95817,.88888,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.89633,1.01915,.89633,1.01915,.89633,1.01915,.8111,.942,.9219,1,.89903,1,1,1,.93173,.93173,.93173,1,1.06304,1.06304,1.06904,.89903,.89903,.80549,1,1.156,1,1,.76575,.76575,1,1,.72458,1,1,1,1,.92241,1,1,1,.619,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.07257,1,.74705,.71119,1.02058,1.024,1.02119,1,1,1.1536,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.05638,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.MyriadProRegularMetrics={lineHeight:1.2,lineGap:.2}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.SegoeuiRegularMetrics=t.SegoeuiRegularFactors=t.SegoeuiItalicMetrics=t.SegoeuiItalicFactors=t.SegoeuiBoldMetrics=t.SegoeuiBoldItalicMetrics=t.SegoeuiBoldItalicFactors=t.SegoeuiBoldFactors=void 0;t.SegoeuiBoldFactors=[1.76738,1,1,.99297,.9824,1.04016,1.06497,1.03424,.97529,1.17647,1.23203,1.1085,1.1085,1.16939,1.2107,.9754,1.21408,.9754,1.59578,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,.81378,.81378,1.2107,1.2107,1.2107,.71703,.97847,.97363,.88776,.8641,1.02096,.79795,.85132,.914,1.06085,1.1406,.8007,.89858,.83693,1.14889,1.09398,.97489,.92094,.97489,.90399,.84041,.95923,1.00135,1,1.06467,.98243,.90996,.99361,1.1085,1.56942,1.1085,1.2107,.74627,.94282,.96752,1.01519,.86304,1.01359,.97278,1.15103,1.01359,.98561,1.02285,1.02285,1.00527,1.02285,1.0302,.99041,1.0008,1.01519,1.01359,1.02258,.79104,1.16862,.99041,.97454,1.02511,.99298,.96752,.95801,.94856,1.16579,.94856,1.2107,.9824,1.03424,1.03424,1,1.03424,1.16579,.8727,1.3871,1.18622,1.10818,1.04478,1.2107,1.18622,.75155,.94994,1.28826,1.21408,1.21408,.91056,1,.91572,.9754,.64663,1.18328,1.24866,1.04478,1.14169,1.15749,1.17389,.71703,.97363,.97363,.97363,.97363,.97363,.97363,.93506,.8641,.79795,.79795,.79795,.79795,1.1406,1.1406,1.1406,1.1406,1.02096,1.09398,.97426,.97426,.97426,.97426,.97426,1.2107,.97489,1.00135,1.00135,1.00135,1.00135,.90996,.92094,1.02798,.96752,.96752,.96752,.96752,.96752,.96752,.93136,.86304,.97278,.97278,.97278,.97278,1.02285,1.02285,1.02285,1.02285,.97122,.99041,1,1,1,1,1,1.28826,1.0008,.99041,.99041,.99041,.99041,.96752,1.01519,.96752,.97363,.96752,.97363,.96752,.97363,.96752,.8641,.86304,.8641,.86304,.8641,.86304,.8641,.86304,1.02096,1.03057,1.02096,1.03517,.79795,.97278,.79795,.97278,.79795,.97278,.79795,.97278,.79795,.97278,.914,1.01359,.914,1.01359,.914,1.01359,1,1,1.06085,.98561,1.06085,1.00879,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,.97138,1.08692,.8007,1.02285,1,1,1.00527,.83693,1.02285,1,1,.83693,.9455,.83693,.90418,.83693,1.13005,1.09398,.99041,1,1,1.09398,.99041,.96692,1.09251,.99041,.97489,1.0008,.97489,1.0008,.97489,1.0008,.93994,.97931,.90399,1.02258,1,1,.90399,1.02258,.84041,.79104,.84041,.79104,.84041,.79104,.84041,.79104,1,1,.95923,1.07034,.95923,1.16862,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.06467,1.02511,.90996,.96752,.90996,.99361,.95801,.99361,.95801,.99361,.95801,1.07733,1.03424,.97363,.96752,.93506,.93136,.97489,1.0008,1,1,.95923,1.16862,1.15103,1.15103,1.01173,1.03959,.75953,.81378,.79912,1.15103,1.21994,.95161,.87815,1.01149,.81525,.7676,.98167,1.01134,1.02546,.84097,1.03089,1.18102,.97363,.88776,.85134,.97826,.79795,.99361,1.06085,.97489,1.1406,.89858,1.0388,1.14889,1.09398,.86039,.97489,1.0595,.92094,.94793,.95923,.90996,.99346,.98243,1.02112,.95493,1.1406,.90996,1.03574,1.02597,1.0008,1.18102,1.06628,1.03574,1.0192,1.01932,1.00886,.97531,1.0106,1.0008,1.13189,1.18102,1.02277,.98683,1.0016,.99561,1.07237,1.0008,.90434,.99921,.93803,.8965,1.23085,1.06628,1.04983,.96268,1.0499,.98439,1.18102,1.06628,1.0008,1.06628,.98439,.79795,1,1,1,1,1,1,1,1,1,1,1,1,1.09466,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.97278,1,1,1,1,1,1,1,1,1,1,1,1,1.02065,1,1,1,1,1,1,1.06467,1.02511,1.06467,1.02511,1.06467,1.02511,.90996,.96752,1,1.21408,.89903,1,1,.75155,1.04394,1.04394,1.04394,1.04394,.98633,.98633,.98633,.73047,.73047,1.20642,.91211,1.25635,1.222,1.02956,1.03372,1.03372,.96039,1.24633,1,1.12454,.93503,1.03424,1.19687,1.03424,1,1,1,.771,1,1,1.15749,1.15749,1.15749,1.10948,.86279,.94434,.86279,.94434,.86182,1,1,1.16897,1,.96085,.90137,1.2107,1.18416,1.13973,.69825,.9716,2.10339,1.29004,1.29004,1.21172,1.29004,1.29004,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18874,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.09193,1.09193,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.SegoeuiBoldMetrics={lineHeight:1.33008,lineGap:0};t.SegoeuiBoldItalicFactors=[1.76738,1,1,.98946,1.03959,1.04016,1.02809,1.036,.97639,1.10953,1.23203,1.11144,1.11144,1.16939,1.21237,.9754,1.21261,.9754,1.59754,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,.81378,.81378,1.21237,1.21237,1.21237,.73541,.97847,.97363,.89723,.87897,1.0426,.79429,.85292,.91149,1.05815,1.1406,.79631,.90128,.83853,1.04396,1.10615,.97552,.94436,.97552,.88641,.80527,.96083,1.00135,1,1.06777,.9817,.91142,.99361,1.11144,1.57293,1.11144,1.21237,.74627,1.31818,1.06585,.97042,.83055,.97042,.93503,1.1261,.97042,.97922,1.14236,.94552,1.01054,1.14236,1.02471,.97922,.94165,.97042,.97042,1.0276,.78929,1.1261,.97922,.95874,1.02197,.98507,.96752,.97168,.95107,1.16579,.95107,1.21237,1.03959,1.036,1.036,1,1.036,1.16579,.87357,1.31818,1.18754,1.26781,1.05356,1.21237,1.18622,.79487,.94994,1.29004,1.24047,1.24047,1.31818,1,.91484,.9754,1.31818,1.1349,1.24866,1.05356,1.13934,1.15574,1.17389,.73541,.97363,.97363,.97363,.97363,.97363,.97363,.94385,.87897,.79429,.79429,.79429,.79429,1.1406,1.1406,1.1406,1.1406,1.0426,1.10615,.97552,.97552,.97552,.97552,.97552,1.21237,.97552,1.00135,1.00135,1.00135,1.00135,.91142,.94436,.98721,1.06585,1.06585,1.06585,1.06585,1.06585,1.06585,.96705,.83055,.93503,.93503,.93503,.93503,1.14236,1.14236,1.14236,1.14236,.93125,.97922,.94165,.94165,.94165,.94165,.94165,1.29004,.94165,.97922,.97922,.97922,.97922,.96752,.97042,.96752,.97363,1.06585,.97363,1.06585,.97363,1.06585,.87897,.83055,.87897,.83055,.87897,.83055,.87897,.83055,1.0426,1.0033,1.0426,.97042,.79429,.93503,.79429,.93503,.79429,.93503,.79429,.93503,.79429,.93503,.91149,.97042,.91149,.97042,.91149,.97042,1,1,1.05815,.97922,1.05815,.97922,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,.97441,1.04302,.79631,1.01582,1,1,1.01054,.83853,1.14236,1,1,.83853,1.09125,.83853,.90418,.83853,1.19508,1.10615,.97922,1,1,1.10615,.97922,1.01034,1.10466,.97922,.97552,.94165,.97552,.94165,.97552,.94165,.91602,.91981,.88641,1.0276,1,1,.88641,1.0276,.80527,.78929,.80527,.78929,.80527,.78929,.80527,.78929,1,1,.96083,1.05403,.95923,1.16862,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.06777,1.02197,.91142,.96752,.91142,.99361,.97168,.99361,.97168,.99361,.97168,1.23199,1.036,.97363,1.06585,.94385,.96705,.97552,.94165,1,1,.96083,1.1261,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,.95161,1.27126,1.00811,.83284,.77702,.99137,.95253,1.0347,.86142,1.07205,1.14236,.97363,.89723,.86869,1.09818,.79429,.99361,1.05815,.97552,1.1406,.90128,1.06662,1.04396,1.10615,.84918,.97552,1.04694,.94436,.98015,.96083,.91142,1.00356,.9817,1.01945,.98999,1.1406,.91142,1.04961,.9898,1.00639,1.14236,1.07514,1.04961,.99607,1.02897,1.008,.9898,.95134,1.00639,1.11121,1.14236,1.00518,.97981,1.02186,1,1.08578,.94165,.99314,.98387,.93028,.93377,1.35125,1.07514,1.10687,.93491,1.04232,1.00351,1.14236,1.07514,.94165,1.07514,1.00351,.79429,1,1,1,1,1,1,1,1,1,1,1,1,1.09097,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.93503,1,1,1,1,1,1,1,1,1,1,1,1,.96609,1,1,1,1,1,1,1.06777,1.02197,1.06777,1.02197,1.06777,1.02197,.91142,.96752,1,1.21261,.89903,1,1,.75155,1.04745,1.04745,1.04745,1.04394,.98633,.98633,.98633,.72959,.72959,1.20502,.91406,1.26514,1.222,1.02956,1.03372,1.03372,.96039,1.24633,1,1.09125,.93327,1.03336,1.16541,1.036,1,1,1,.771,1,1,1.15574,1.15574,1.15574,1.15574,.86364,.94434,.86279,.94434,.86224,1,1,1.16798,1,.96085,.90068,1.21237,1.18416,1.13904,.69825,.9716,2.10339,1.29004,1.29004,1.21339,1.29004,1.29004,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18775,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.13269,1.13269,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.SegoeuiBoldItalicMetrics={lineHeight:1.33008,lineGap:0};t.SegoeuiItalicFactors=[1.76738,1,1,.98946,1.14763,1.05365,1.06234,.96927,.92586,1.15373,1.18414,.91349,.91349,1.07403,1.17308,.78383,1.20088,.78383,1.42531,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.78383,.78383,1.17308,1.17308,1.17308,.77349,.94565,.94729,.85944,.88506,.9858,.74817,.80016,.88449,.98039,.95782,.69238,.89898,.83231,.98183,1.03989,.96924,.86237,.96924,.80595,.74524,.86091,.95402,.94143,.98448,.8858,.83089,.93285,1.0949,1.39016,1.0949,1.45994,.74627,1.04839,.97454,.97454,.87207,.97454,.87533,1.06151,.97454,1.00176,1.16484,1.08132,.98047,1.16484,1.02989,1.01054,.96225,.97454,.97454,1.06598,.79004,1.16344,1.00351,.94629,.9973,.91016,.96777,.9043,.91082,.92481,.91082,1.17308,.95748,.96927,.96927,1,.96927,.92481,.80597,1.04839,1.23393,1.1781,.9245,1.17308,1.20808,.63218,.94261,1.24822,1.09971,1.09971,1.04839,1,.85273,.78032,1.04839,1.09971,1.22326,.9245,1.09836,1.13525,1.15222,.70424,.94729,.94729,.94729,.94729,.94729,.94729,.85498,.88506,.74817,.74817,.74817,.74817,.95782,.95782,.95782,.95782,.9858,1.03989,.96924,.96924,.96924,.96924,.96924,1.17308,.96924,.95402,.95402,.95402,.95402,.83089,.86237,.88409,.97454,.97454,.97454,.97454,.97454,.97454,.92916,.87207,.87533,.87533,.87533,.87533,.93146,.93146,.93146,.93146,.93854,1.01054,.96225,.96225,.96225,.96225,.96225,1.24822,.8761,1.00351,1.00351,1.00351,1.00351,.96777,.97454,.96777,.94729,.97454,.94729,.97454,.94729,.97454,.88506,.87207,.88506,.87207,.88506,.87207,.88506,.87207,.9858,.95391,.9858,.97454,.74817,.87533,.74817,.87533,.74817,.87533,.74817,.87533,.74817,.87533,.88449,.97454,.88449,.97454,.88449,.97454,1,1,.98039,1.00176,.98039,1.00176,.95782,.93146,.95782,.93146,.95782,.93146,.95782,1.16484,.95782,.93146,.84421,1.12761,.69238,1.08132,1,1,.98047,.83231,1.16484,1,1,.84723,1.04861,.84723,.78755,.83231,1.23736,1.03989,1.01054,1,1,1.03989,1.01054,.9857,1.03849,1.01054,.96924,.96225,.96924,.96225,.96924,.96225,.92383,.90171,.80595,1.06598,1,1,.80595,1.06598,.74524,.79004,.74524,.79004,.74524,.79004,.74524,.79004,1,1,.86091,1.02759,.85771,1.16344,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.98448,.9973,.83089,.96777,.83089,.93285,.9043,.93285,.9043,.93285,.9043,1.31868,.96927,.94729,.97454,.85498,.92916,.96924,.8761,1,1,.86091,1.16344,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,.81965,.81965,.94729,.78032,.71022,.90883,.84171,.99877,.77596,1.05734,1.2,.94729,.85944,.82791,.9607,.74817,.93285,.98039,.96924,.95782,.89898,.98316,.98183,1.03989,.78614,.96924,.97642,.86237,.86075,.86091,.83089,.90082,.8858,.97296,1.01284,.95782,.83089,1.0976,1.04,1.03342,1.2,1.0675,1.0976,.98205,1.03809,1.05097,1.04,.95364,1.03342,1.05401,1.2,1.02148,1.0119,1.04724,1.0127,1.02732,.96225,.8965,.97783,.93574,.94818,1.30679,1.0675,1.11826,.99821,1.0557,1.0326,1.2,1.0675,.96225,1.0675,1.0326,.74817,1,1,1,1,1,1,1,1,1,1,1,1,1.03754,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.87533,1,1,1,1,1,1,1,1,1,1,1,1,.98705,1,1,1,1,1,1,.98448,.9973,.98448,.9973,.98448,.9973,.83089,.96777,1,1.20088,.89903,1,1,.75155,.94945,.94945,.94945,.94945,1.12317,1.12317,1.12317,.67603,.67603,1.15621,.73584,1.21191,1.22135,1.06483,.94868,.94868,.95996,1.24633,1,1.07497,.87709,.96927,1.01473,.96927,1,1,1,.77295,1,1,1.09836,1.09836,1.09836,1.01522,.86321,.94434,.8649,.94434,.86182,1,1,1.083,1,.91578,.86438,1.17308,1.18416,1.14589,.69825,.97622,1.96791,1.24822,1.24822,1.17308,1.24822,1.24822,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.17984,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.10742,1.10742,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.SegoeuiItalicMetrics={lineHeight:1.33008,lineGap:0};t.SegoeuiRegularFactors=[1.76738,1,1,.98594,1.02285,1.10454,1.06234,.96927,.92037,1.19985,1.2046,.90616,.90616,1.07152,1.1714,.78032,1.20088,.78032,1.40246,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.78032,.78032,1.1714,1.1714,1.1714,.80597,.94084,.96706,.85944,.85734,.97093,.75842,.79936,.88198,.9831,.95782,.71387,.86969,.84636,1.07796,1.03584,.96924,.83968,.96924,.82826,.79649,.85771,.95132,.93119,.98965,.88433,.8287,.93365,1.08612,1.3638,1.08612,1.45786,.74627,.80499,.91484,1.05707,.92383,1.05882,.9403,1.12654,1.05882,1.01756,1.09011,1.09011,.99414,1.09011,1.034,1.01756,1.05356,1.05707,1.05882,1.04399,.84863,1.21968,1.01756,.95801,1.00068,.91797,.96777,.9043,.90351,.92105,.90351,1.1714,.85337,.96927,.96927,.99912,.96927,.92105,.80597,1.2434,1.20808,1.05937,.90957,1.1714,1.20808,.75155,.94261,1.24644,1.09971,1.09971,.84751,1,.85273,.78032,.61584,1.05425,1.17914,.90957,1.08665,1.11593,1.14169,.73381,.96706,.96706,.96706,.96706,.96706,.96706,.86035,.85734,.75842,.75842,.75842,.75842,.95782,.95782,.95782,.95782,.97093,1.03584,.96924,.96924,.96924,.96924,.96924,1.1714,.96924,.95132,.95132,.95132,.95132,.8287,.83968,.89049,.91484,.91484,.91484,.91484,.91484,.91484,.93575,.92383,.9403,.9403,.9403,.9403,.8717,.8717,.8717,.8717,1.00527,1.01756,1.05356,1.05356,1.05356,1.05356,1.05356,1.24644,.95923,1.01756,1.01756,1.01756,1.01756,.96777,1.05707,.96777,.96706,.91484,.96706,.91484,.96706,.91484,.85734,.92383,.85734,.92383,.85734,.92383,.85734,.92383,.97093,1.0969,.97093,1.05882,.75842,.9403,.75842,.9403,.75842,.9403,.75842,.9403,.75842,.9403,.88198,1.05882,.88198,1.05882,.88198,1.05882,1,1,.9831,1.01756,.9831,1.01756,.95782,.8717,.95782,.8717,.95782,.8717,.95782,1.09011,.95782,.8717,.84784,1.11551,.71387,1.09011,1,1,.99414,.84636,1.09011,1,1,.84636,1.0536,.84636,.94298,.84636,1.23297,1.03584,1.01756,1,1,1.03584,1.01756,1.00323,1.03444,1.01756,.96924,1.05356,.96924,1.05356,.96924,1.05356,.93066,.98293,.82826,1.04399,1,1,.82826,1.04399,.79649,.84863,.79649,.84863,.79649,.84863,.79649,.84863,1,1,.85771,1.17318,.85771,1.21968,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.98965,1.00068,.8287,.96777,.8287,.93365,.9043,.93365,.9043,.93365,.9043,1.08571,.96927,.96706,.91484,.86035,.93575,.96924,.95923,1,1,.85771,1.21968,1.11437,1.11437,.93109,.91202,.60411,.84164,.55572,1.01173,.97361,.81818,.81818,.96635,.78032,.72727,.92366,.98601,1.03405,.77968,1.09799,1.2,.96706,.85944,.85638,.96491,.75842,.93365,.9831,.96924,.95782,.86969,.94152,1.07796,1.03584,.78437,.96924,.98715,.83968,.83491,.85771,.8287,.94492,.88433,.9287,1.0098,.95782,.8287,1.0625,.98248,1.03424,1.2,1.01071,1.0625,.95246,1.03809,1.04912,.98248,1.00221,1.03424,1.05443,1.2,1.04785,.99609,1.00169,1.05176,.99346,1.05356,.9087,1.03004,.95542,.93117,1.23362,1.01071,1.07831,1.02512,1.05205,1.03502,1.2,1.01071,1.05356,1.01071,1.03502,.75842,1,1,1,1,1,1,1,1,1,1,1,1,1.03719,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.9403,1,1,1,1,1,1,1,1,1,1,1,1,1.04021,1,1,1,1,1,1,.98965,1.00068,.98965,1.00068,.98965,1.00068,.8287,.96777,1,1.20088,.89903,1,1,.75155,1.03077,1.03077,1.03077,1.03077,1.13196,1.13196,1.13196,.67428,.67428,1.16039,.73291,1.20996,1.22135,1.06483,.94868,.94868,.95996,1.24633,1,1.07497,.87796,.96927,1.01518,.96927,1,1,1,.77295,1,1,1.10539,1.10539,1.11358,1.06967,.86279,.94434,.86279,.94434,.86182,1,1,1.083,1,.91578,.86507,1.1714,1.18416,1.14589,.69825,.97622,1.9697,1.24822,1.24822,1.17238,1.24822,1.24822,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18083,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.10938,1.10938,1,1,1,1.05425,1.09971,1.09971,1.09971,1,1,1,1,1,1,1,1,1,1,1];t.SegoeuiRegularMetrics={lineHeight:1.33008,lineGap:0}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.PostScriptEvaluator=t.PostScriptCompiler=t.PDFFunctionFactory=void 0;t.isPDFFunction=function isPDFFunction(e){let t;if("object"!=typeof e)return!1;if(e instanceof r.Dict)t=e;else{if(!(e instanceof s.BaseStream))return!1;t=e.dict}return t.has("FunctionType")};var r=a(3),n=a(2),i=a(56),s=a(5),o=a(57);t.PDFFunctionFactory=class PDFFunctionFactory{constructor({xref:e,isEvalSupported:t=!0}){this.xref=e;this.isEvalSupported=!1!==t}create(e){const t=this.getCached(e);if(t)return t;const a=PDFFunction.parse({xref:this.xref,isEvalSupported:this.isEvalSupported,fn:e instanceof r.Ref?this.xref.fetch(e):e});this._cache(e,a);return a}createFromArray(e){const t=this.getCached(e);if(t)return t;const a=PDFFunction.parseArray({xref:this.xref,isEvalSupported:this.isEvalSupported,fnObj:e instanceof r.Ref?this.xref.fetch(e):e});this._cache(e,a);return a}getCached(e){let t;e instanceof r.Ref?t=e:e instanceof r.Dict?t=e.objId:e instanceof s.BaseStream&&(t=e.dict&&e.dict.objId);if(t){const e=this._localFunctionCache.getByRef(t);if(e)return e}return null}_cache(e,t){if(!t)throw new Error('PDFFunctionFactory._cache - expected "parsedFunction" argument.');let a;e instanceof r.Ref?a=e:e instanceof r.Dict?a=e.objId:e instanceof s.BaseStream&&(a=e.dict&&e.dict.objId);a&&this._localFunctionCache.set(null,a,t)}get _localFunctionCache(){return(0,n.shadow)(this,"_localFunctionCache",new o.LocalFunctionCache)}};function toNumberArray(e){if(!Array.isArray(e))return null;const t=e.length;for(let a=0;a>c)*h;l&=(1<a?e=a:e0&&(d=s[u-1]);let f=r[1];u>1,u=s.length>>1,d=new PostScriptEvaluator(l),f=Object.create(null);let g=8192;const p=new Float32Array(u);return function constructPostScriptFn(e,t,a,r){let n,i,s="";const c=p;for(n=0;ne&&(i=e)}m[n]=i}if(g>0){g--;f[s]=m}a.set(m,r)}}}class PostScriptStack{static get MAX_STACK_SIZE(){return(0,n.shadow)(this,"MAX_STACK_SIZE",100)}constructor(e){this.stack=e?Array.from(e):[]}push(e){if(this.stack.length>=PostScriptStack.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");this.stack.push(e)}pop(){if(this.stack.length<=0)throw new Error("PostScript function stack underflow.");return this.stack.pop()}copy(e){if(this.stack.length+e>=PostScriptStack.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");const t=this.stack;for(let a=t.length-e,r=e-1;r>=0;r--,a++)t.push(t[a])}index(e){this.push(this.stack[this.stack.length-e-1])}roll(e,t){const a=this.stack,r=a.length-e,n=a.length-1,i=r+(t-Math.floor(t/e)*e);for(let e=r,t=n;e0?t.push(o<>c);break;case"ceiling":o=t.pop();t.push(Math.ceil(o));break;case"copy":o=t.pop();t.copy(o);break;case"cos":o=t.pop();t.push(Math.cos(o));break;case"cvi":o=0|t.pop();t.push(o);break;case"cvr":break;case"div":c=t.pop();o=t.pop();t.push(o/c);break;case"dup":t.copy(1);break;case"eq":c=t.pop();o=t.pop();t.push(o===c);break;case"exch":t.roll(2,1);break;case"exp":c=t.pop();o=t.pop();t.push(o**c);break;case"false":t.push(!1);break;case"floor":o=t.pop();t.push(Math.floor(o));break;case"ge":c=t.pop();o=t.pop();t.push(o>=c);break;case"gt":c=t.pop();o=t.pop();t.push(o>c);break;case"idiv":c=t.pop();o=t.pop();t.push(o/c|0);break;case"index":o=t.pop();t.index(o);break;case"le":c=t.pop();o=t.pop();t.push(o<=c);break;case"ln":o=t.pop();t.push(Math.log(o));break;case"log":o=t.pop();t.push(Math.log(o)/Math.LN10);break;case"lt":c=t.pop();o=t.pop();t.push(o=t?new AstLiteral(t):e.max<=t?e:new AstMin(e,t)}class PostScriptCompiler{compile(e,t,a){const r=[],n=[],i=t.length>>1,s=a.length>>1;let o,c,l,h,u,d,f,g,p=0;for(let e=0;et.min){o.unshift("Math.max(",i,", ");o.push(")")}if(s{Object.defineProperty(t,"__esModule",{value:!0});t.PostScriptParser=t.PostScriptLexer=void 0;var r=a(2),n=a(3),i=a(4);t.PostScriptParser=class PostScriptParser{constructor(e){this.lexer=e;this.operators=[];this.token=null;this.prev=null}nextToken(){this.prev=this.token;this.token=this.lexer.getToken()}accept(e){if(this.token.type===e){this.nextToken();return!0}return!1}expect(e){if(this.accept(e))return!0;throw new r.FormatError(`Unexpected symbol: found ${this.token.type} expected ${e}.`)}parse(){this.nextToken();this.expect(s.LBRACE);this.parseBlock();this.expect(s.RBRACE);return this.operators}parseBlock(){for(;;)if(this.accept(s.NUMBER))this.operators.push(this.prev.value);else if(this.accept(s.OPERATOR))this.operators.push(this.prev.value);else{if(!this.accept(s.LBRACE))return;this.parseCondition()}}parseCondition(){const e=this.operators.length;this.operators.push(null,null);this.parseBlock();this.expect(s.RBRACE);if(this.accept(s.IF)){this.operators[e]=this.operators.length;this.operators[e+1]="jz"}else{if(!this.accept(s.LBRACE))throw new r.FormatError("PS Function: error parsing conditional.");{const t=this.operators.length;this.operators.push(null,null);const a=this.operators.length;this.parseBlock();this.expect(s.RBRACE);this.expect(s.IFELSE);this.operators[t]=this.operators.length;this.operators[t+1]="j";this.operators[e]=a;this.operators[e+1]="jz"}}}};const s={LBRACE:0,RBRACE:1,NUMBER:2,OPERATOR:3,IF:4,IFELSE:5};class PostScriptToken{static get opCache(){return(0,r.shadow)(this,"opCache",Object.create(null))}constructor(e,t){this.type=e;this.value=t}static getOperator(e){const t=PostScriptToken.opCache[e];return t||(PostScriptToken.opCache[e]=new PostScriptToken(s.OPERATOR,e))}static get LBRACE(){return(0,r.shadow)(this,"LBRACE",new PostScriptToken(s.LBRACE,"{"))}static get RBRACE(){return(0,r.shadow)(this,"RBRACE",new PostScriptToken(s.RBRACE,"}"))}static get IF(){return(0,r.shadow)(this,"IF",new PostScriptToken(s.IF,"IF"))}static get IFELSE(){return(0,r.shadow)(this,"IFELSE",new PostScriptToken(s.IFELSE,"IFELSE"))}}t.PostScriptLexer=class PostScriptLexer{constructor(e){this.stream=e;this.nextChar();this.strBuf=[]}nextChar(){return this.currentChar=this.stream.getByte()}getToken(){let e=!1,t=this.currentChar;for(;;){if(t<0)return n.EOF;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(!(0,i.isWhiteSpace)(t))break;t=this.nextChar()}switch(0|t){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return new PostScriptToken(s.NUMBER,this.getNumber());case 123:this.nextChar();return PostScriptToken.LBRACE;case 125:this.nextChar();return PostScriptToken.RBRACE}const a=this.strBuf;a.length=0;a[0]=String.fromCharCode(t);for(;(t=this.nextChar())>=0&&(t>=65&&t<=90||t>=97&&t<=122);)a.push(String.fromCharCode(t));const r=a.join("");switch(r.toLowerCase()){case"if":return PostScriptToken.IF;case"ifelse":return PostScriptToken.IFELSE;default:return PostScriptToken.getOperator(r)}}getNumber(){let e=this.currentChar;const t=this.strBuf;t.length=0;t[0]=String.fromCharCode(e);for(;(e=this.nextChar())>=0&&(e>=48&&e<=57||45===e||46===e);)t.push(String.fromCharCode(e));const a=parseFloat(t.join(""));if(isNaN(a))throw new r.FormatError(`Invalid floating point number: ${a}`);return a}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.LocalTilingPatternCache=t.LocalImageCache=t.LocalGStateCache=t.LocalFunctionCache=t.LocalColorSpaceCache=t.GlobalImageCache=void 0;var r=a(2),n=a(3);class BaseLocalCache{constructor(e){this.constructor===BaseLocalCache&&(0,r.unreachable)("Cannot initialize BaseLocalCache.");this._onlyRefs=!0===(e&&e.onlyRefs);if(!this._onlyRefs){this._nameRefMap=new Map;this._imageMap=new Map}this._imageCache=new n.RefSetCache}getByName(e){this._onlyRefs&&(0,r.unreachable)("Should not call `getByName` method.");const t=this._nameRefMap.get(e);return t?this.getByRef(t):this._imageMap.get(e)||null}getByRef(e){return this._imageCache.get(e)||null}set(e,t,a){(0,r.unreachable)("Abstract method `set` called.")}}t.LocalImageCache=class LocalImageCache extends BaseLocalCache{set(e,t=null,a){if("string"!=typeof e)throw new Error('LocalImageCache.set - expected "name" argument.');if(t){if(this._imageCache.has(t))return;this._nameRefMap.set(e,t);this._imageCache.put(t,a)}else this._imageMap.has(e)||this._imageMap.set(e,a)}};t.LocalColorSpaceCache=class LocalColorSpaceCache extends BaseLocalCache{set(e=null,t=null,a){if("string"!=typeof e&&!t)throw new Error('LocalColorSpaceCache.set - expected "name" and/or "ref" argument.');if(t){if(this._imageCache.has(t))return;null!==e&&this._nameRefMap.set(e,t);this._imageCache.put(t,a)}else this._imageMap.has(e)||this._imageMap.set(e,a)}};t.LocalFunctionCache=class LocalFunctionCache extends BaseLocalCache{constructor(e){super({onlyRefs:!0})}set(e=null,t,a){if(!t)throw new Error('LocalFunctionCache.set - expected "ref" argument.');this._imageCache.has(t)||this._imageCache.put(t,a)}};t.LocalGStateCache=class LocalGStateCache extends BaseLocalCache{set(e,t=null,a){if("string"!=typeof e)throw new Error('LocalGStateCache.set - expected "name" argument.');if(t){if(this._imageCache.has(t))return;this._nameRefMap.set(e,t);this._imageCache.put(t,a)}else this._imageMap.has(e)||this._imageMap.set(e,a)}};t.LocalTilingPatternCache=class LocalTilingPatternCache extends BaseLocalCache{constructor(e){super({onlyRefs:!0})}set(e=null,t,a){if(!t)throw new Error('LocalTilingPatternCache.set - expected "ref" argument.');this._imageCache.has(t)||this._imageCache.put(t,a)}};class GlobalImageCache{static get NUM_PAGES_THRESHOLD(){return(0,r.shadow)(this,"NUM_PAGES_THRESHOLD",2)}static get MIN_IMAGES_TO_CACHE(){return(0,r.shadow)(this,"MIN_IMAGES_TO_CACHE",10)}static get MAX_BYTE_SIZE(){return(0,r.shadow)(this,"MAX_BYTE_SIZE",4e7)}constructor(){this._refCache=new n.RefSetCache;this._imageCache=new n.RefSetCache}get _byteSize(){let e=0;for(const t of this._imageCache)e+=t.byteSize;return e}get _cacheLimitReached(){return!(this._imageCache.size{Object.defineProperty(t,"__esModule",{value:!0});t.bidi=function bidi(e,t=-1,a=!1){let c=!0;const l=e.length;if(0===l||a)return createBidiText(e,c,a);s.length=l;o.length=l;let h,u,d=0;for(h=0;h4){c=!0;t=0}else{c=!1;t=1}const f=[];for(h=0;h=0&&"ET"===o[e];--e)o[e]="EN";for(let e=h+1;e0&&(t=o[h-1]);let a=m;e+1w&&isOdd(w)&&(x=w)}for(w=S;w>=x;--w){let e=-1;for(h=0,u=f.length;h=0){reverseValues(s,e,h);e=-1}}else e<0&&(e=h);e>=0&&reverseValues(s,e,f.length)}for(h=0,u=s.length;h"!==e||(s[h]="")}return createBidiText(s.join(""),c)};var r=a(2);const n=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],i=["AN","AN","AN","AN","AN","AN","ON","ON","AL","ET","ET","AL","CS","AL","ON","ON","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","AN","AN","AN","AN","AN","AN","AN","AN","AN","ET","AN","AN","AL","AL","AL","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","ON","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","NSM","NSM","ON","NSM","NSM","NSM","NSM","AL","AL","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","AL","AL","AL","AL","AL","AL"];function isOdd(e){return 0!=(1&e)}function isEven(e){return 0==(1&e)}function findUnequal(e,t,a){let r,n;for(r=t,n=e.length;r{Object.defineProperty(t,"__esModule",{value:!0});t.MurmurHash3_64=void 0;var r=a(2);const n=3285377520,i=4294901760,s=65535;t.MurmurHash3_64=class MurmurHash3_64{constructor(e){this.h1=e?4294967295&e:n;this.h2=e?4294967295&e:n}update(e){let t,a;if("string"==typeof e){t=new Uint8Array(2*e.length);a=0;for(let r=0,n=e.length;r>>8;t[a++]=255&n}}}else{if(!(0,r.isArrayBuffer)(e))throw new Error("Wrong data format in MurmurHash3_64_update. Input must be a string or array.");t=e.slice();a=t.byteLength}const n=a>>2,o=a-4*n,c=new Uint32Array(t.buffer,0,n);let l=0,h=0,u=this.h1,d=this.h2;const f=3432918353,g=461845907,p=11601,m=13715;for(let e=0;e>>17;l=l*g&i|l*m&s;u^=l;u=u<<13|u>>>19;u=5*u+3864292196}else{h=c[e];h=h*f&i|h*p&s;h=h<<15|h>>>17;h=h*g&i|h*m&s;d^=h;d=d<<13|d>>>19;d=5*d+3864292196}l=0;switch(o){case 3:l^=t[4*n+2]<<16;case 2:l^=t[4*n+1]<<8;case 1:l^=t[4*n];l=l*f&i|l*p&s;l=l<<15|l>>>17;l=l*g&i|l*m&s;1&n?u^=l:d^=l}this.h1=u;this.h2=d}hexdigest(){let e=this.h1,t=this.h2;e^=t>>>1;e=3981806797*e&i|36045*e&s;t=4283543511*t&i|(2950163797*(t<<16|e>>>16)&i)>>>16;e^=t>>>1;e=444984403*e&i|60499*e&s;t=3301882366*t&i|(3120437893*(t<<16|e>>>16)&i)>>>16;e^=t>>>1;return(e>>>0).toString(16).padStart(8,"0")+(t>>>0).toString(16).padStart(8,"0")}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.OperatorList=void 0;var r=a(2);function addState(e,t,a,r,n){let i=e;for(let e=0,a=t.length-1;e1e3){h=Math.max(h,f);g+=d+2;f=0;d=0}u.push({transform:t,x:f,y:g,w:a.width,h:a.height});f+=a.width+2;d=Math.max(d,a.height)}const p=Math.max(h,f)+1,m=g+d+1,b=new Uint8Array(p*m*4),y=p<<2;for(let e=0;e=0;){t[i-4]=t[i];t[i-3]=t[i+1];t[i-2]=t[i+2];t[i-1]=t[i+3];t[i+a]=t[i+a-4];t[i+a+1]=t[i+a-3];t[i+a+2]=t[i+a-2];t[i+a+3]=t[i+a-1];i-=y}}a.splice(s,4*l,r.OPS.paintInlineImageXObjectGroup);n.splice(s,4*l,[{width:p,height:m,kind:r.ImageKind.RGBA_32BPP,data:b},u]);return s+1}));addState(n,[r.OPS.save,r.OPS.transform,r.OPS.paintImageMaskXObject,r.OPS.restore],null,(function iterateImageMaskGroup(e,t){const a=e.fnArray,n=(t-(e.iCurr-3))%4;switch(n){case 0:return a[t]===r.OPS.save;case 1:return a[t]===r.OPS.transform;case 2:return a[t]===r.OPS.paintImageMaskXObject;case 3:return a[t]===r.OPS.restore}throw new Error(`iterateImageMaskGroup - invalid pos: ${n}`)}),(function foundImageMaskGroup(e,t){const a=e.fnArray,n=e.argsArray,i=e.iCurr,s=i-3,o=i-2,c=i-1;let l=Math.floor((t-s)/4);if(l<10)return t-(t-s)%4;let h,u,d=!1;const f=n[c][0],g=n[o][0],p=n[o][1],m=n[o][2],b=n[o][3];if(p===m){d=!0;h=o+4;let e=c+4;for(let t=1;t=4&&a[i-4]===a[s]&&a[i-3]===a[o]&&a[i-2]===a[c]&&a[i-1]===a[l]&&r[i-4][0]===h&&r[i-4][1]===u){d++;f-=5}let g=f+4;for(let e=1;e=a)break}r=(r||n)[e[t]];if(r&&!Array.isArray(r)){s.iCurr=t;t++;if(!r.checkFn||(0,r.checkFn)(s)){i=r;r=null}else r=null}else t++}this.state=r;this.match=i;this.lastProcessed=t}flush(){for(;this.match;){const e=this.queue.fnArray.length;this.lastProcessed=(0,this.match.processFn)(this.context,e);this.match=null;this.state=null;this._optimize()}}reset(){this.state=null;this.match=null;this.lastProcessed=0}}class OperatorList{static get CHUNK_SIZE(){return(0,r.shadow)(this,"CHUNK_SIZE",1e3)}static get CHUNK_SIZE_ABOUT(){return(0,r.shadow)(this,"CHUNK_SIZE_ABOUT",this.CHUNK_SIZE-5)}constructor(e=0,t){this._streamSink=t;this.fnArray=[];this.argsArray=[];!t||e&r.RenderingIntentFlag.OPLIST?this.optimizer=new NullOptimizer(this):this.optimizer=new QueueOptimizer(this);this.dependencies=new Set;this._totalLength=0;this.weight=0;this._resolved=t?null:Promise.resolve()}get length(){return this.argsArray.length}get ready(){return this._resolved||this._streamSink.ready}get totalLength(){return this._totalLength+this.length}addOp(e,t){this.optimizer.push(e,t);this.weight++;this._streamSink&&(this.weight>=OperatorList.CHUNK_SIZE||this.weight>=OperatorList.CHUNK_SIZE_ABOUT&&(e===r.OPS.restore||e===r.OPS.endText))&&this.flush()}addImageOps(e,t,a){void 0!==a&&this.addOp(r.OPS.beginMarkedContentProps,["OC",a]);this.addOp(e,t);void 0!==a&&this.addOp(r.OPS.endMarkedContent,[])}addDependency(e){if(!this.dependencies.has(e)){this.dependencies.add(e);this.addOp(r.OPS.dependency,[e])}}addDependencies(e){for(const t of e)this.addDependency(t)}addOpList(e){if(e instanceof OperatorList){for(const t of e.dependencies)this.dependencies.add(t);for(let t=0,a=e.length;t{Object.defineProperty(t,"__esModule",{value:!0});t.PDFImage=void 0;var r=a(2),n=a(62),i=a(5),s=a(12),o=a(17),c=a(25),l=a(28),h=a(3);function decodeAndClamp(e,t,a,r){(e=t+e*a)<0?e=0:e>r&&(e=r);return e}function resizeImageMask(e,t,a,r,n,i){const s=n*i;let o;o=t<=8?new Uint8Array(s):t<=16?new Uint16Array(s):new Uint32Array(s);const c=a/n,l=r/i;let h,u,d,f,g=0;const p=new Uint16Array(n),m=a;for(h=0;h0&&Number.isInteger(a.height)&&a.height>0&&(a.width!==b||a.height!==y)){(0,r.warn)("PDFImage - using the Width/Height of the image data, rather than the image dictionary.");b=a.width;y=a.height}if(b<1||y<1)throw new r.FormatError(`Invalid image width: ${b} or height: ${y}`);this.width=b;this.height=y;this.interpolate=g.get("I","Interpolate");this.imageMask=g.get("IM","ImageMask")||!1;this.matte=g.get("Matte")||!1;let w=a.bitsPerComponent;if(!w){w=g.get("BPC","BitsPerComponent");if(!w){if(!this.imageMask)throw new r.FormatError(`Bits per component missing in image: ${this.imageMask}`);w=1}}this.bpc=w;if(!this.imageMask){let i=g.getRaw("CS")||g.getRaw("ColorSpace");if(!i){(0,r.info)("JPX images (which do not require color spaces)");switch(a.numComps){case 1:i=h.Name.get("DeviceGray");break;case 3:i=h.Name.get("DeviceRGB");break;case 4:i=h.Name.get("DeviceCMYK");break;default:throw new Error(`JPX images with ${a.numComps} color components not supported.`)}}this.colorSpace=s.ColorSpace.parse({cs:i,xref:e,resources:n?t:null,pdfFunctionFactory:d,localColorSpaceCache:f});this.numComps=this.colorSpace.numComps}this.decode=g.getArray("D","Decode");this.needsDecode=!1;if(this.decode&&(this.colorSpace&&!this.colorSpace.isDefaultDecode(this.decode,w)||u&&!s.ColorSpace.isDefaultDecode(this.decode,1))){this.needsDecode=!0;const e=(1<>3)*a,o=e.byteLength;let c,l;if(!r||n&&!(s===o))if(n){c=new Uint8Array(s);c.set(e);c.fill(255,o)}else c=new Uint8Array(e);else c=e;if(n)for(l=0;l>7&1;s[d+1]=u>>6&1;s[d+2]=u>>5&1;s[d+3]=u>>4&1;s[d+4]=u>>3&1;s[d+5]=u>>2&1;s[d+6]=u>>1&1;s[d+7]=1&u;d+=8}if(d>=1}}}}else{let a=0;u=0;for(d=0,h=i;d>r;n<0?n=0:n>l&&(n=l);s[d]=n;u&=(1<o[r+1]){t=255;break}}c[u]=t}}}if(c)for(u=0,f=3,d=t*n;u>3;if(!e){let e;"DeviceGray"===this.colorSpace.name&&1===l?e=r.ImageKind.GRAYSCALE_1BPP:"DeviceRGB"!==this.colorSpace.name||8!==l||this.needsDecode||(e=r.ImageKind.RGB_24BPP);if(e&&!this.smask&&!this.mask&&t===s&&a===o){n.kind=e;n.data=this.getImageBytes(o*h,{});if(this.needsDecode){(0,r.assert)(e===r.ImageKind.GRAYSCALE_1BPP,"PDFImage.createImageData: The image must be grayscale.");const t=n.data;for(let e=0,a=t.length;e>3,o=this.getImageBytes(n*s,{internal:!0}),c=this.getComponents(o);let l,h;if(1===i){h=a*n;if(this.needsDecode)for(l=0;l{Object.defineProperty(t,"__esModule",{value:!0});t.applyMaskImageData=function applyMaskImageData({src:e,srcPos:t=0,dest:a,destPos:n=0,width:i,height:s,inverseDecode:o=!1}){const c=r.FeatureTest.isLittleEndian?4278190080:255,[l,h]=o?[0,c]:[c,0],u=i>>3,d=7&i,f=e.length;a=new Uint32Array(a.buffer);for(let r=0;r{Object.defineProperty(t,"__esModule",{value:!0});t.incrementalUpdate=function incrementalUpdate({originalData:e,xrefInfo:t,newRefs:a,xref:o=null,hasXfa:l=!1,xfaDatasetsRef:h=null,hasXfaDatasetsEntry:u=!1,needAppearances:d,acroFormRef:f=null,acroForm:g=null,xfaData:p=null}){!function updateAcroform({xref:e,acroForm:t,acroFormRef:a,hasXfa:i,hasXfaDatasetsEntry:s,xfaDatasetsRef:o,needAppearances:c,newRefs:l}){!i||s||o||(0,r.warn)("XFA - Cannot save it");if(!(c||i&&o))return;const h=new n.Dict(e);for(const e of t.getKeys())h.set(e,t.getRaw(e));if(i&&!s){const e=t.get("XFA").slice();e.splice(2,0,"datasets");e.splice(3,0,o);h.set("XFA",e)}c&&h.set("NeedAppearances",!0);const u=e.encrypt;let d=null;u&&(d=u.createCipherTransform(a.num,a.gen));const f=[];writeObject(a,h,f,d);l.push({ref:a,data:f.join("")})}({xref:o,acroForm:g,acroFormRef:f,hasXfa:l,hasXfaDatasetsEntry:u,xfaDatasetsRef:h,needAppearances:d,newRefs:a});l&&function updateXFA({xfaData:e,xfaDatasetsRef:t,newRefs:a,xref:n}){if(null===e){e=function writeXFADataForAcroform(e,t){const a=new s.SimpleXMLParser({hasAttributes:!0}).parseFromString(e);for(const{xfa:e}of t){if(!e)continue;const{path:t,value:n}=e;if(!t)continue;const o=a.documentElement.searchNode((0,i.parseXFAPath)(t),0);o?Array.isArray(n)?o.childNodes=n.map((e=>new s.SimpleDOMNode("value",e))):o.childNodes=[new s.SimpleDOMNode("#text",n)]:(0,r.warn)(`Node not found for path: ${t}`)}const n=[];a.documentElement.dump(n);return n.join("")}(n.fetchIfRef(t).getString(),a)}const o=n.encrypt;if(o){e=o.createCipherTransform(t.num,t.gen).encryptString(e)}const c=`${t.num} ${t.gen} obj\n<< /Type /EmbeddedFile /Length ${e.length}>>\nstream\n`+e+"\nendstream\nendobj\n";a.push({ref:t,data:c})}({xfaData:p,xfaDatasetsRef:h,newRefs:a,xref:o});const m=new n.Dict(null),b=t.newRef;let y,w;const S=e.at(-1);if(10===S||13===S){y=[];w=e.length}else{y=["\n"];w=e.length+1}m.set("Size",b.num+1);m.set("Prev",t.startXRef);m.set("Type",n.Name.get("XRef"));null!==t.rootRef&&m.set("Root",t.rootRef);null!==t.infoRef&&m.set("Info",t.infoRef);null!==t.encryptRef&&m.set("Encrypt",t.encryptRef);a.push({ref:b,data:""});a=a.sort(((e,t)=>e.ref.num-t.ref.num));const x=[[0,1,65535]],C=[0,1];let k=0;for(const{ref:e,data:t}of a){k=Math.max(k,w);x.push([1,w,Math.min(e.gen,65535)]);w+=t.length;C.push(e.num,1);y.push(t)}m.set("Index",C);if(Array.isArray(t.fileIds)&&t.fileIds.length>0){const e=function computeMD5(e,t){const a=Math.floor(Date.now()/1e3),n=t.filename||"",i=[a.toString(),n,e.toString()];let s=i.reduce(((e,t)=>e+t.length),0);for(const e of Object.values(t.info)){i.push(e);s+=e.length}const o=new Uint8Array(s);let l=0;for(const e of i){writeString(e,l,o);l+=e.length}return(0,r.bytesToString)((0,c.calculateMD5)(o))}(w,t);m.set("ID",[t.fileIds[0],e])}const v=[1,Math.ceil(Math.log2(k)/8),2],F=(v[0]+v[1]+v[2])*x.length;m.set("W",v);m.set("Length",F);y.push(`${b.num} ${b.gen} obj\n`);writeDict(m,y,null);y.push(" stream\n");const O=y.reduce(((e,t)=>e+t.length),0),T=`\nendstream\nendobj\nstartxref\n${w}\n%%EOF\n`,M=new Uint8Array(e.length+O+F+T.length);M.set(e);let E=e.length;for(const e of y){writeString(e,E,M);E+=e.length}for(const[e,t,a]of x){E=writeInt(e,v[0],E,M);E=writeInt(t,v[1],E,M);E=writeInt(a,v[2],E,M)}writeString(T,E,M);return M};t.writeDict=writeDict;t.writeObject=writeObject;var r=a(2),n=a(3),i=a(4),s=a(64),o=a(5),c=a(65);function writeObject(e,t,a,r){a.push(`${e.num} ${e.gen} obj\n`);t instanceof n.Dict?writeDict(t,a,r):t instanceof o.BaseStream&&writeStream(t,a,r);a.push("\nendobj\n")}function writeDict(e,t,a){t.push("<<");for(const r of e.getKeys()){t.push(` /${(0,i.escapePDFName)(r)} `);writeValue(e.getRaw(r),t,a)}t.push(">>")}function writeStream(e,t,a){writeDict(e.dict,t,a);t.push(" stream\n");let r=e.getString();null!==a&&(r=a.encryptString(r));t.push(r,"\nendstream")}function writeValue(e,t,a){if(e instanceof n.Name)t.push(`/${(0,i.escapePDFName)(e.name)}`);else if(e instanceof n.Ref)t.push(`${e.num} ${e.gen} R`);else if(Array.isArray(e))!function writeArray(e,t,a){t.push("[");let r=!0;for(const n of e){r?r=!1:t.push(" ");writeValue(n,t,a)}t.push("]")}(e,t,a);else if("string"==typeof e){null!==a&&(e=a.encryptString(e));t.push(`(${(0,i.escapeString)(e)})`)}else"number"==typeof e?t.push((0,i.numberToString)(e)):"boolean"==typeof e?t.push(e.toString()):e instanceof n.Dict?writeDict(e,t,a):e instanceof o.BaseStream?writeStream(e,t,a):null===e?t.push("null"):(0,r.warn)(`Unhandled value in writer: ${typeof e}, please file a bug.`)}function writeInt(e,t,a,r){for(let n=t+a-1;n>a-1;n--){r[n]=255&e;e>>=8}return a+t}function writeString(e,t,a){for(let r=0,n=e.length;r{Object.defineProperty(t,"__esModule",{value:!0});t.XMLParserErrorCode=t.XMLParserBase=t.SimpleXMLParser=t.SimpleDOMNode=void 0;var r=a(4);const n={NoError:0,EndOfDocument:-1,UnterminatedCdat:-2,UnterminatedXmlDeclaration:-3,UnterminatedDoctypeDeclaration:-4,UnterminatedComment:-5,MalformedElement:-6,OutOfMemory:-7,UnterminatedAttributeValue:-8,UnterminatedElement:-9,ElementNeverBegun:-10};t.XMLParserErrorCode=n;function isWhitespace(e,t){const a=e[t];return" "===a||"\n"===a||"\r"===a||"\t"===a}class XMLParserBase{_resolveEntities(e){return e.replace(/&([^;]+);/g,((e,t)=>{if("#x"===t.substring(0,2))return String.fromCodePoint(parseInt(t.substring(2),16));if("#"===t.substring(0,1))return String.fromCodePoint(parseInt(t.substring(1),10));switch(t){case"lt":return"<";case"gt":return">";case"amp":return"&";case"quot":return'"';case"apos":return"'"}return this.onResolveEntity(t)}))}_parseContent(e,t){const a=[];let r=t;function skipWs(){for(;r"!==e[r]&&"/"!==e[r];)++r;const n=e.substring(t,r);skipWs();for(;r"!==e[r]&&"/"!==e[r]&&"?"!==e[r];){skipWs();let t="",n="";for(;r"!==e[a]&&"?"!==e[a]&&"/"!==e[a];)++a;const r=e.substring(t,a);!function skipWs(){for(;a"!==e[a+1]);)++a;return{name:r,value:e.substring(n,a),parsed:a-t}}parseXml(e){let t=0;for(;t",a);if(t<0){this.onError(n.UnterminatedElement);return}this.onEndElement(e.substring(a,t));a=t+1;break;case"?":++a;const r=this._parseProcessingInstruction(e,a);if("?>"!==e.substring(a+r.parsed,a+r.parsed+2)){this.onError(n.UnterminatedXmlDeclaration);return}this.onPi(r.name,r.value);a+=r.parsed+2;break;case"!":if("--"===e.substring(a+1,a+3)){t=e.indexOf("--\x3e",a+3);if(t<0){this.onError(n.UnterminatedComment);return}this.onComment(e.substring(a+3,t));a=t+3}else if("[CDATA["===e.substring(a+1,a+8)){t=e.indexOf("]]>",a+8);if(t<0){this.onError(n.UnterminatedCdat);return}this.onCdata(e.substring(a+8,t));a=t+3}else{if("DOCTYPE"!==e.substring(a+1,a+8)){this.onError(n.MalformedElement);return}{const r=e.indexOf("[",a+8);let i=!1;t=e.indexOf(">",a+8);if(t<0){this.onError(n.UnterminatedDoctypeDeclaration);return}if(r>0&&t>r){t=e.indexOf("]>",a+8);if(t<0){this.onError(n.UnterminatedDoctypeDeclaration);return}i=!0}const s=e.substring(a+8,t+(i?1:0));this.onDoctype(s);a=t+(i?2:1)}}break;default:const i=this._parseContent(e,a);if(null===i){this.onError(n.MalformedElement);return}let s=!1;if("/>"===e.substring(a+i.parsed,a+i.parsed+2))s=!0;else if(">"!==e.substring(a+i.parsed,a+i.parsed+1)){this.onError(n.UnterminatedElement);return}this.onBeginElement(i.name,i.attributes,s);a+=i.parsed+(s?2:1)}}else{for(;a0}searchNode(e,t){if(t>=e.length)return this;const a=e[t],r=[];let n=this;for(;;){if(a.name===n.nodeName){if(0!==a.pos){if(0===r.length)return null;{const[i]=r.pop();let s=0;for(const r of i.childNodes)if(a.name===r.nodeName){if(s===a.pos)return r.searchNode(e,t+1);s++}return n.searchNode(e,t+1)}}{const a=n.searchNode(e,t+1);if(null!==a)return a}}if(n.childNodes&&0!==n.childNodes.length){r.push([n,0]);n=n.childNodes[0]}else{if(0===r.length)return null;for(;0!==r.length;){const[e,t]=r.pop(),a=t+1;if(a");for(const t of this.childNodes)t.dump(e);e.push(``)}else this.nodeValue?e.push(`>${(0,r.encodeToXmlString)(this.nodeValue)}`):e.push("/>")}else e.push((0,r.encodeToXmlString)(this.nodeValue))}}t.SimpleDOMNode=SimpleDOMNode;t.SimpleXMLParser=class SimpleXMLParser extends XMLParserBase{constructor({hasAttributes:e=!1,lowerCaseName:t=!1}){super();this._currentFragment=null;this._stack=null;this._errorCode=n.NoError;this._hasAttributes=e;this._lowerCaseName=t}parseFromString(e){this._currentFragment=[];this._stack=[];this._errorCode=n.NoError;this.parseXml(e);if(this._errorCode!==n.NoError)return;const[t]=this._currentFragment;return t?{documentElement:t}:void 0}onText(e){if(function isWhitespaceString(e){for(let t=0,a=e.length;t{Object.defineProperty(t,"__esModule",{value:!0});t.calculateSHA256=t.calculateMD5=t.PDF20=t.PDF17=t.CipherTransformFactory=t.ARCFourCipher=t.AES256Cipher=t.AES128Cipher=void 0;t.calculateSHA384=calculateSHA384;t.calculateSHA512=void 0;var r=a(2),n=a(3),i=a(66);class ARCFourCipher{constructor(e){this.a=0;this.b=0;const t=new Uint8Array(256),a=e.length;for(let e=0;e<256;++e)t[e]=e;for(let r=0,n=0;r<256;++r){const i=t[r];n=n+i+e[r%a]&255;t[r]=t[n];t[n]=i}this.s=t}encryptBlock(e){let t=this.a,a=this.b;const r=this.s,n=e.length,i=new Uint8Array(n);for(let s=0;s>5&255;h[u++]=n>>13&255;h[u++]=n>>21&255;h[u++]=n>>>29&255;h[u++]=0;h[u++]=0;h[u++]=0;const g=new Int32Array(16);for(u=0;u>>32-o)|0;n=i}i=i+n|0;s=s+l|0;o=o+f|0;c=c+p|0}return new Uint8Array([255&i,i>>8&255,i>>16&255,i>>>24&255,255&s,s>>8&255,s>>16&255,s>>>24&255,255&o,o>>8&255,o>>16&255,o>>>24&255,255&c,c>>8&255,c>>16&255,c>>>24&255])}}();t.calculateMD5=s;class Word64{constructor(e,t){this.high=0|e;this.low=0|t}and(e){this.high&=e.high;this.low&=e.low}xor(e){this.high^=e.high;this.low^=e.low}or(e){this.high|=e.high;this.low|=e.low}shiftRight(e){if(e>=32){this.low=this.high>>>e-32|0;this.high=0}else{this.low=this.low>>>e|this.high<<32-e;this.high=this.high>>>e|0}}shiftLeft(e){if(e>=32){this.high=this.low<>>32-e;this.low<<=e}}rotateRight(e){let t,a;if(32&e){a=this.low;t=this.high}else{t=this.low;a=this.high}e&=31;this.low=t>>>e|a<<32-e;this.high=a>>>e|t<<32-e}not(){this.high=~this.high;this.low=~this.low}add(e){const t=(this.low>>>0)+(e.low>>>0);let a=(this.high>>>0)+(e.high>>>0);t>4294967295&&(a+=1);this.low=0|t;this.high=0|a}copyTo(e,t){e[t]=this.high>>>24&255;e[t+1]=this.high>>16&255;e[t+2]=this.high>>8&255;e[t+3]=255&this.high;e[t+4]=this.low>>>24&255;e[t+5]=this.low>>16&255;e[t+6]=this.low>>8&255;e[t+7]=255&this.low}assign(e){this.high=e.high;this.low=e.low}}const o=function calculateSHA256Closure(){function rotr(e,t){return e>>>t|e<<32-t}function ch(e,t,a){return e&t^~e&a}function maj(e,t,a){return e&t^e&a^t&a}function sigma(e){return rotr(e,2)^rotr(e,13)^rotr(e,22)}function sigmaPrime(e){return rotr(e,6)^rotr(e,11)^rotr(e,25)}function littleSigma(e){return rotr(e,7)^rotr(e,18)^e>>>3}const e=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];return function hash(t,a,r){let n=1779033703,i=3144134277,s=1013904242,o=2773480762,c=1359893119,l=2600822924,h=528734635,u=1541459225;const d=64*Math.ceil((r+9)/64),f=new Uint8Array(d);let g,p;for(g=0;g>>29&255;f[g++]=r>>21&255;f[g++]=r>>13&255;f[g++]=r>>5&255;f[g++]=r<<3&255;const b=new Uint32Array(64);for(g=0;g>>10)+b[p-7]+littleSigma(b[p-15])+b[p-16]|0;let t,a,r=n,d=i,m=s,w=o,S=c,x=l,C=h,k=u;for(p=0;p<64;++p){t=k+sigmaPrime(S)+ch(S,x,C)+e[p]+b[p];a=sigma(r)+maj(r,d,m);k=C;C=x;x=S;S=w+t|0;w=m;m=d;d=r;r=t+a|0}n=n+r|0;i=i+d|0;s=s+m|0;o=o+w|0;c=c+S|0;l=l+x|0;h=h+C|0;u=u+k|0}var y;return new Uint8Array([n>>24&255,n>>16&255,n>>8&255,255&n,i>>24&255,i>>16&255,i>>8&255,255&i,s>>24&255,s>>16&255,s>>8&255,255&s,o>>24&255,o>>16&255,o>>8&255,255&o,c>>24&255,c>>16&255,c>>8&255,255&c,l>>24&255,l>>16&255,l>>8&255,255&l,h>>24&255,h>>16&255,h>>8&255,255&h,u>>24&255,u>>16&255,u>>8&255,255&u])}}();t.calculateSHA256=o;const c=function calculateSHA512Closure(){function ch(e,t,a,r,n){e.assign(t);e.and(a);n.assign(t);n.not();n.and(r);e.xor(n)}function maj(e,t,a,r,n){e.assign(t);e.and(a);n.assign(t);n.and(r);e.xor(n);n.assign(a);n.and(r);e.xor(n)}function sigma(e,t,a){e.assign(t);e.rotateRight(28);a.assign(t);a.rotateRight(34);e.xor(a);a.assign(t);a.rotateRight(39);e.xor(a)}function sigmaPrime(e,t,a){e.assign(t);e.rotateRight(14);a.assign(t);a.rotateRight(18);e.xor(a);a.assign(t);a.rotateRight(41);e.xor(a)}function littleSigma(e,t,a){e.assign(t);e.rotateRight(1);a.assign(t);a.rotateRight(8);e.xor(a);a.assign(t);a.shiftRight(7);e.xor(a)}function littleSigmaPrime(e,t,a){e.assign(t);e.rotateRight(19);a.assign(t);a.rotateRight(61);e.xor(a);a.assign(t);a.shiftRight(6);e.xor(a)}const e=[new Word64(1116352408,3609767458),new Word64(1899447441,602891725),new Word64(3049323471,3964484399),new Word64(3921009573,2173295548),new Word64(961987163,4081628472),new Word64(1508970993,3053834265),new Word64(2453635748,2937671579),new Word64(2870763221,3664609560),new Word64(3624381080,2734883394),new Word64(310598401,1164996542),new Word64(607225278,1323610764),new Word64(1426881987,3590304994),new Word64(1925078388,4068182383),new Word64(2162078206,991336113),new Word64(2614888103,633803317),new Word64(3248222580,3479774868),new Word64(3835390401,2666613458),new Word64(4022224774,944711139),new Word64(264347078,2341262773),new Word64(604807628,2007800933),new Word64(770255983,1495990901),new Word64(1249150122,1856431235),new Word64(1555081692,3175218132),new Word64(1996064986,2198950837),new Word64(2554220882,3999719339),new Word64(2821834349,766784016),new Word64(2952996808,2566594879),new Word64(3210313671,3203337956),new Word64(3336571891,1034457026),new Word64(3584528711,2466948901),new Word64(113926993,3758326383),new Word64(338241895,168717936),new Word64(666307205,1188179964),new Word64(773529912,1546045734),new Word64(1294757372,1522805485),new Word64(1396182291,2643833823),new Word64(1695183700,2343527390),new Word64(1986661051,1014477480),new Word64(2177026350,1206759142),new Word64(2456956037,344077627),new Word64(2730485921,1290863460),new Word64(2820302411,3158454273),new Word64(3259730800,3505952657),new Word64(3345764771,106217008),new Word64(3516065817,3606008344),new Word64(3600352804,1432725776),new Word64(4094571909,1467031594),new Word64(275423344,851169720),new Word64(430227734,3100823752),new Word64(506948616,1363258195),new Word64(659060556,3750685593),new Word64(883997877,3785050280),new Word64(958139571,3318307427),new Word64(1322822218,3812723403),new Word64(1537002063,2003034995),new Word64(1747873779,3602036899),new Word64(1955562222,1575990012),new Word64(2024104815,1125592928),new Word64(2227730452,2716904306),new Word64(2361852424,442776044),new Word64(2428436474,593698344),new Word64(2756734187,3733110249),new Word64(3204031479,2999351573),new Word64(3329325298,3815920427),new Word64(3391569614,3928383900),new Word64(3515267271,566280711),new Word64(3940187606,3454069534),new Word64(4118630271,4000239992),new Word64(116418474,1914138554),new Word64(174292421,2731055270),new Word64(289380356,3203993006),new Word64(460393269,320620315),new Word64(685471733,587496836),new Word64(852142971,1086792851),new Word64(1017036298,365543100),new Word64(1126000580,2618297676),new Word64(1288033470,3409855158),new Word64(1501505948,4234509866),new Word64(1607167915,987167468),new Word64(1816402316,1246189591)];return function hash(t,a,r,n=!1){let i,s,o,c,l,h,u,d;if(n){i=new Word64(3418070365,3238371032);s=new Word64(1654270250,914150663);o=new Word64(2438529370,812702999);c=new Word64(355462360,4144912697);l=new Word64(1731405415,4290775857);h=new Word64(2394180231,1750603025);u=new Word64(3675008525,1694076839);d=new Word64(1203062813,3204075428)}else{i=new Word64(1779033703,4089235720);s=new Word64(3144134277,2227873595);o=new Word64(1013904242,4271175723);c=new Word64(2773480762,1595750129);l=new Word64(1359893119,2917565137);h=new Word64(2600822924,725511199);u=new Word64(528734635,4215389547);d=new Word64(1541459225,327033209)}const f=128*Math.ceil((r+17)/128),g=new Uint8Array(f);let p,m;for(p=0;p>>29&255;g[p++]=r>>21&255;g[p++]=r>>13&255;g[p++]=r>>5&255;g[p++]=r<<3&255;const y=new Array(80);for(p=0;p<80;p++)y[p]=new Word64(0,0);let w=new Word64(0,0),S=new Word64(0,0),x=new Word64(0,0),C=new Word64(0,0),k=new Word64(0,0),v=new Word64(0,0),F=new Word64(0,0),O=new Word64(0,0);const T=new Word64(0,0),M=new Word64(0,0),E=new Word64(0,0),D=new Word64(0,0);let N,R;for(p=0;p=1;--e){a=i[13];i[13]=i[9];i[9]=i[5];i[5]=i[1];i[1]=a;a=i[14];r=i[10];i[14]=i[6];i[10]=i[2];i[6]=a;i[2]=r;a=i[15];r=i[11];n=i[7];i[15]=i[3];i[11]=a;i[7]=r;i[3]=n;for(let e=0;e<16;++e)i[e]=this._inv_s[i[e]];for(let a=0,r=16*e;a<16;++a,++r)i[a]^=t[r];for(let e=0;e<16;e+=4){const t=this._mix[i[e]],r=this._mix[i[e+1]],n=this._mix[i[e+2]],s=this._mix[i[e+3]];a=t^r>>>8^r<<24^n>>>16^n<<16^s>>>24^s<<8;i[e]=a>>>24&255;i[e+1]=a>>16&255;i[e+2]=a>>8&255;i[e+3]=255&a}}a=i[13];i[13]=i[9];i[9]=i[5];i[5]=i[1];i[1]=a;a=i[14];r=i[10];i[14]=i[6];i[10]=i[2];i[6]=a;i[2]=r;a=i[15];r=i[11];n=i[7];i[15]=i[3];i[11]=a;i[7]=r;i[3]=n;for(let e=0;e<16;++e){i[e]=this._inv_s[i[e]];i[e]^=t[e]}return i}_encrypt(e,t){const a=this._s;let r,n,i;const s=new Uint8Array(16);s.set(e);for(let e=0;e<16;++e)s[e]^=t[e];for(let e=1;e=r;--a)if(e[a]!==t){t=0;break}o-=t;i[i.length-1]=e.subarray(0,16-t)}}const c=new Uint8Array(o);for(let e=0,t=0,a=i.length;e=256&&(o=255&(27^o))}for(let t=0;t<4;++t){a[e]=r^=a[e-32];e++;a[e]=n^=a[e-32];e++;a[e]=i^=a[e-32];e++;a[e]=s^=a[e-32];e++}}return a}}t.AES256Cipher=AES256Cipher;class PDF17{checkOwnerPassword(e,t,a,n){const i=new Uint8Array(e.length+56);i.set(e,0);i.set(t,e.length);i.set(a,e.length+t.length);const s=o(i,0,i.length);return(0,r.isArrayEqual)(s,n)}checkUserPassword(e,t,a){const n=new Uint8Array(e.length+8);n.set(e,0);n.set(t,e.length);const i=o(n,0,n.length);return(0,r.isArrayEqual)(i,a)}getOwnerKey(e,t,a,r){const n=new Uint8Array(e.length+56);n.set(e,0);n.set(t,e.length);n.set(a,e.length+t.length);const i=o(n,0,n.length);return new AES256Cipher(i).decryptBlock(r,!1,new Uint8Array(16))}getUserKey(e,t,a){const r=new Uint8Array(e.length+8);r.set(e,0);r.set(t,e.length);const n=o(r,0,r.length);return new AES256Cipher(n).decryptBlock(a,!1,new Uint8Array(16))}}t.PDF17=PDF17;const l=function PDF20Closure(){function calculatePDF20Hash(e,t,a){let r=o(t,0,t.length).subarray(0,32),n=[0],i=0;for(;i<64||n.at(-1)>i-32;){const t=e.length+r.length+a.length,s=new Uint8Array(t);let l=0;s.set(e,l);l+=e.length;s.set(r,l);l+=r.length;s.set(a,l);const h=new Uint8Array(64*t);for(let e=0,a=0;e<64;e++,a+=t)h.set(s,a);n=new AES128Cipher(r.subarray(0,16)).encrypt(h,r.subarray(16,32));const u=n.slice(0,16).reduce(((e,t)=>e+t),0)%3;0===u?r=o(n,0,n.length):1===u?r=calculateSHA384(n,0,n.length):2===u&&(r=c(n,0,n.length));i++}return r.subarray(0,32)}return class PDF20{hash(e,t,a){return calculatePDF20Hash(e,t,a)}checkOwnerPassword(e,t,a,n){const i=new Uint8Array(e.length+56);i.set(e,0);i.set(t,e.length);i.set(a,e.length+t.length);const s=calculatePDF20Hash(e,i,a);return(0,r.isArrayEqual)(s,n)}checkUserPassword(e,t,a){const n=new Uint8Array(e.length+8);n.set(e,0);n.set(t,e.length);const i=calculatePDF20Hash(e,n,[]);return(0,r.isArrayEqual)(i,a)}getOwnerKey(e,t,a,r){const n=new Uint8Array(e.length+56);n.set(e,0);n.set(t,e.length);n.set(a,e.length+t.length);const i=calculatePDF20Hash(e,n,a);return new AES256Cipher(i).decryptBlock(r,!1,new Uint8Array(16))}getUserKey(e,t,a){const r=new Uint8Array(e.length+8);r.set(e,0);r.set(t,e.length);const n=calculatePDF20Hash(e,r,[]);return new AES256Cipher(n).decryptBlock(a,!1,new Uint8Array(16))}}}();t.PDF20=l;class CipherTransform{constructor(e,t){this.StringCipherConstructor=e;this.StreamCipherConstructor=t}createStream(e,t){const a=new this.StreamCipherConstructor;return new i.DecryptStream(e,t,(function cipherTransformDecryptStream(e,t){return a.decryptBlock(e,t)}))}decryptString(e){const t=new this.StringCipherConstructor;let a=(0,r.stringToBytes)(e);a=t.decryptBlock(a,!0);return(0,r.bytesToString)(a)}encryptString(e){const t=new this.StringCipherConstructor;if(t instanceof AESBaseCipher){const a=16-e.length%16;e+=String.fromCharCode(a).repeat(a);const n=new Uint8Array(16);if("undefined"!=typeof crypto)crypto.getRandomValues(n);else for(let e=0;e<16;e++)n[e]=Math.floor(256*Math.random());let i=(0,r.stringToBytes)(e);i=t.encrypt(i,n);const s=new Uint8Array(16+i.length);s.set(n);s.set(i,16);return(0,r.bytesToString)(s)}let a=(0,r.stringToBytes)(e);a=t.encrypt(a);return(0,r.bytesToString)(a)}}const h=function CipherTransformFactoryClosure(){const e=new Uint8Array([40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122]);function prepareKeyData(t,a,r,n,i,o,c,l){const h=40+r.length+t.length,u=new Uint8Array(h);let d,f,g=0;if(a){f=Math.min(32,a.length);for(;g>8&255;u[g++]=i>>16&255;u[g++]=i>>>24&255;for(d=0,f=t.length;d=4&&!l){u[g++]=255;u[g++]=255;u[g++]=255;u[g++]=255}let p=s(u,0,g);const m=c>>3;if(o>=3)for(d=0;d<50;++d)p=s(p,0,m);const b=p.subarray(0,m);let y,w;if(o>=3){for(g=0;g<32;++g)u[g]=e[g];for(d=0,f=t.length;d>8&255;n[o++]=e>>16&255;n[o++]=255&t;n[o++]=t>>8&255;if(r){n[o++]=115;n[o++]=65;n[o++]=108;n[o++]=84}return s(n,0,o).subarray(0,Math.min(a.length+5,16))}function buildCipherConstructor(e,t,a,i,s){if(!(t instanceof n.Name))throw new r.FormatError("Invalid crypt filter name.");const o=e.get(t.name);let c;null!=o&&(c=o.get("CFM"));if(!c||"None"===c.name)return function cipherTransformFactoryBuildCipherConstructorNone(){return new NullCipher};if("V2"===c.name)return function cipherTransformFactoryBuildCipherConstructorV2(){return new ARCFourCipher(buildObjectKey(a,i,s,!1))};if("AESV2"===c.name)return function cipherTransformFactoryBuildCipherConstructorAESV2(){return new AES128Cipher(buildObjectKey(a,i,s,!0))};if("AESV3"===c.name)return function cipherTransformFactoryBuildCipherConstructorAESV3(){return new AES256Cipher(s)};throw new r.FormatError("Unknown crypto method")}return class CipherTransformFactory{constructor(a,i,o){const c=a.get("Filter");if(!(0,n.isName)(c,"Standard"))throw new r.FormatError("unknown encryption method");this.filterName=c.name;this.dict=a;const h=a.get("V");if(!Number.isInteger(h)||1!==h&&2!==h&&4!==h&&5!==h)throw new r.FormatError("unsupported encryption algorithm");this.algorithm=h;let u=a.get("Length");if(!u)if(h<=3)u=40;else{const e=a.get("CF"),t=a.get("StmF");if(e instanceof n.Dict&&t instanceof n.Name){e.suppressEncryption=!0;const a=e.get(t.name);u=a&&a.get("Length")||128;u<40&&(u<<=3)}}if(!Number.isInteger(u)||u<40||u%8!=0)throw new r.FormatError("invalid key length");const d=(0,r.stringToBytes)(a.get("O")).subarray(0,32),f=(0,r.stringToBytes)(a.get("U")).subarray(0,32),g=a.get("P"),p=a.get("R"),m=(4===h||5===h)&&!1!==a.get("EncryptMetadata");this.encryptMetadata=m;const b=(0,r.stringToBytes)(i);let y,w;if(o){if(6===p)try{o=(0,r.utf8StringToString)(o)}catch(e){(0,r.warn)("CipherTransformFactory: Unable to convert UTF8 encoded password.")}y=(0,r.stringToBytes)(o)}if(5!==h)w=prepareKeyData(b,y,d,f,g,p,u,m);else{const e=(0,r.stringToBytes)(a.get("O")).subarray(32,40),t=(0,r.stringToBytes)(a.get("O")).subarray(40,48),n=(0,r.stringToBytes)(a.get("U")).subarray(0,48),i=(0,r.stringToBytes)(a.get("U")).subarray(32,40),s=(0,r.stringToBytes)(a.get("U")).subarray(40,48),o=(0,r.stringToBytes)(a.get("OE")),c=(0,r.stringToBytes)(a.get("UE"));(0,r.stringToBytes)(a.get("Perms"));w=function createEncryptionKey20(e,t,a,r,n,i,s,o,c,h,u,d){if(t){const e=Math.min(127,t.length);t=t.subarray(0,e)}else t=[];let f;f=6===e?new l:new PDF17;return f.checkUserPassword(t,o,s)?f.getUserKey(t,c,u):t.length&&f.checkOwnerPassword(t,r,i,a)?f.getOwnerKey(t,n,i,h):null}(p,y,d,e,t,n,f,i,s,o,c)}if(!w&&!o)throw new r.PasswordException("No password given",r.PasswordResponses.NEED_PASSWORD);if(!w&&o){const t=function decodeUserPassword(t,a,r,n){const i=new Uint8Array(32);let o=0;const c=Math.min(32,t.length);for(;o>3;if(r>=3)for(l=0;l<50;++l)h=s(h,0,h.length);let d,f;if(r>=3){f=a;const e=new Uint8Array(u);for(l=19;l>=0;l--){for(let t=0;t=4){const e=a.get("CF");e instanceof n.Dict&&(e.suppressEncryption=!0);this.cf=e;this.stmf=a.get("StmF")||t;this.strf=a.get("StrF")||t;this.eff=a.get("EFF")||this.stmf}}createCipherTransform(e,t){if(4===this.algorithm||5===this.algorithm)return new CipherTransform(buildCipherConstructor(this.cf,this.strf,e,t,this.encryptionKey),buildCipherConstructor(this.cf,this.stmf,e,t,this.encryptionKey));const a=buildObjectKey(e,t,this.encryptionKey,!1),r=function buildCipherCipherConstructor(){return new ARCFourCipher(a)};return new CipherTransform(r,r)}}}();t.CipherTransformFactory=h},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.DecryptStream=void 0;var r=a(17);class DecryptStream extends r.DecodeStream{constructor(e,t,a){super(t);this.str=e;this.dict=e.dict;this.decrypt=a;this.nextChunk=null;this.initialized=!1}readBlock(){let e;if(this.initialized)e=this.nextChunk;else{e=this.str.getBytes(512);this.initialized=!0}if(!e||0===e.length){this.eof=!0;return}this.nextChunk=this.str.getBytes(512);const t=this.nextChunk&&this.nextChunk.length>0;e=(0,this.decrypt)(e,!t);const a=this.bufferLength,r=a+e.length;this.ensureBuffer(r).set(e,a);this.bufferLength=r}}t.DecryptStream=DecryptStream},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Catalog=void 0;var r=a(4),n=a(2),i=a(3),s=a(68),o=a(5),c=a(69),l=a(12),h=a(70),u=a(57),d=a(71),f=a(72);function fetchDestination(e){e instanceof i.Dict&&(e=e.get("D"));return Array.isArray(e)?e:null}class Catalog{constructor(e,t){this.pdfManager=e;this.xref=t;this._catDict=t.getCatalogObj();if(!(this._catDict instanceof i.Dict))throw new n.FormatError("Catalog object is not a dictionary.");this.toplevelPagesDict;this._actualNumPages=null;this.fontCache=new i.RefSetCache;this.builtInCMapCache=new Map;this.standardFontDataCache=new Map;this.globalImageCache=new u.GlobalImageCache;this.pageKidsCountCache=new i.RefSetCache;this.pageIndexCache=new i.RefSetCache;this.nonBlendModesSet=new i.RefSet}get version(){const e=this._catDict.get("Version");if(e instanceof i.Name){if(r.PDF_VERSION_REGEXP.test(e.name))return(0,n.shadow)(this,"version",e.name);(0,n.warn)(`Invalid PDF catalog version: ${e.name}`)}return(0,n.shadow)(this,"version",null)}get lang(){const e=this._catDict.get("Lang");return(0,n.shadow)(this,"lang","string"==typeof e?(0,n.stringToPDFString)(e):null)}get needsRendering(){const e=this._catDict.get("NeedsRendering");return(0,n.shadow)(this,"needsRendering","boolean"==typeof e&&e)}get collection(){let e=null;try{const t=this._catDict.get("Collection");t instanceof i.Dict&&t.size>0&&(e=t)}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.info)("Cannot fetch Collection entry; assuming no collection is present.")}return(0,n.shadow)(this,"collection",e)}get acroForm(){let e=null;try{const t=this._catDict.get("AcroForm");t instanceof i.Dict&&t.size>0&&(e=t)}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.info)("Cannot fetch AcroForm entry; assuming no forms are present.")}return(0,n.shadow)(this,"acroForm",e)}get acroFormRef(){const e=this._catDict.getRaw("AcroForm");return(0,n.shadow)(this,"acroFormRef",e instanceof i.Ref?e:null)}get metadata(){const e=this._catDict.getRaw("Metadata");if(!(e instanceof i.Ref))return(0,n.shadow)(this,"metadata",null);let t=null;try{const a=!(this.xref.encrypt&&this.xref.encrypt.encryptMetadata),r=this.xref.fetch(e,a);if(r instanceof o.BaseStream&&r.dict instanceof i.Dict){const e=r.dict.get("Type"),a=r.dict.get("Subtype");if((0,i.isName)(e,"Metadata")&&(0,i.isName)(a,"XML")){const e=(0,n.stringToUTF8String)(r.getString());e&&(t=new d.MetadataParser(e).serializable)}}}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.info)(`Skipping invalid Metadata: "${e}".`)}return(0,n.shadow)(this,"metadata",t)}get markInfo(){let e=null;try{e=this._readMarkInfo()}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)("Unable to read mark info.")}return(0,n.shadow)(this,"markInfo",e)}_readMarkInfo(){const e=this._catDict.get("MarkInfo");if(!(e instanceof i.Dict))return null;const t={Marked:!1,UserProperties:!1,Suspects:!1};for(const a in t){const r=e.get(a);"boolean"==typeof r&&(t[a]=r)}return t}get structTreeRoot(){let e=null;try{e=this._readStructTreeRoot()}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)("Unable read to structTreeRoot info.")}return(0,n.shadow)(this,"structTreeRoot",e)}_readStructTreeRoot(){const e=this._catDict.get("StructTreeRoot");if(!(e instanceof i.Dict))return null;const t=new f.StructTreeRoot(e);t.init();return t}get toplevelPagesDict(){const e=this._catDict.get("Pages");if(!(e instanceof i.Dict))throw new n.FormatError("Invalid top-level pages dictionary.");return(0,n.shadow)(this,"toplevelPagesDict",e)}get documentOutline(){let e=null;try{e=this._readDocumentOutline()}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)("Unable to read document outline.")}return(0,n.shadow)(this,"documentOutline",e)}_readDocumentOutline(){let e=this._catDict.get("Outlines");if(!(e instanceof i.Dict))return null;e=e.getRaw("First");if(!(e instanceof i.Ref))return null;const t={items:[]},a=[{obj:e,parent:t}],r=new i.RefSet;r.put(e);const s=this.xref,o=new Uint8ClampedArray(3);for(;a.length>0;){const t=a.shift(),c=s.fetchIfRef(t.obj);if(null===c)continue;if(!c.has("Title"))throw new n.FormatError("Invalid outline item encountered.");const h={url:null,dest:null,action:null};Catalog.parseDestDictionary({destDict:c,resultObj:h,docBaseUrl:this.pdfManager.docBaseUrl,docAttachments:this.attachments});const u=c.get("Title"),d=c.get("F")||0,f=c.getArray("C"),g=c.get("Count");let p=o;!Array.isArray(f)||3!==f.length||0===f[0]&&0===f[1]&&0===f[2]||(p=l.ColorSpace.singletons.rgb.getRgb(f,0));const m={action:h.action,attachment:h.attachment,dest:h.dest,url:h.url,unsafeUrl:h.unsafeUrl,newWindow:h.newWindow,setOCGState:h.setOCGState,title:(0,n.stringToPDFString)(u),color:p,count:Number.isInteger(g)?g:void 0,bold:!!(2&d),italic:!!(1&d),items:[]};t.parent.items.push(m);e=c.getRaw("First");if(e instanceof i.Ref&&!r.has(e)){a.push({obj:e,parent:m});r.put(e)}e=c.getRaw("Next");if(e instanceof i.Ref&&!r.has(e)){a.push({obj:e,parent:t.parent});r.put(e)}}return t.items.length>0?t.items:null}get permissions(){let e=null;try{e=this._readPermissions()}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)("Unable to read permissions.")}return(0,n.shadow)(this,"permissions",e)}_readPermissions(){const e=this.xref.trailer.get("Encrypt");if(!(e instanceof i.Dict))return null;let t=e.get("P");if("number"!=typeof t)return null;t+=2**32;const a=[];for(const e in n.PermissionFlag){const r=n.PermissionFlag[e];t&r&&a.push(r)}return a}get optionalContentConfig(){let e=null;try{const t=this._catDict.get("OCProperties");if(!t)return(0,n.shadow)(this,"optionalContentConfig",null);const a=t.get("D");if(!a)return(0,n.shadow)(this,"optionalContentConfig",null);const r=t.get("OCGs");if(!Array.isArray(r))return(0,n.shadow)(this,"optionalContentConfig",null);const s=[],o=[];for(const e of r){if(!(e instanceof i.Ref))continue;o.push(e);const t=this.xref.fetchIfRef(e);s.push({id:e.toString(),name:"string"==typeof t.get("Name")?(0,n.stringToPDFString)(t.get("Name")):null,intent:"string"==typeof t.get("Intent")?(0,n.stringToPDFString)(t.get("Intent")):null})}e=this._readOptionalContentConfig(a,o);e.groups=s}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)(`Unable to read optional content config: ${e}`)}return(0,n.shadow)(this,"optionalContentConfig",e)}_readOptionalContentConfig(e,t){function parseOnOff(e){const a=[];if(Array.isArray(e))for(const r of e)r instanceof i.Ref&&t.includes(r)&&a.push(r.toString());return a}function parseOrder(e,a=0){if(!Array.isArray(e))return null;const n=[];for(const s of e){if(s instanceof i.Ref&&t.includes(s)){r.put(s);n.push(s.toString());continue}const e=parseNestedOrder(s,a);e&&n.push(e)}if(a>0)return n;const s=[];for(const e of t)r.has(e)||s.push(e.toString());s.length&&n.push({name:null,order:s});return n}function parseNestedOrder(e,t){if(++t>s){(0,n.warn)("parseNestedOrder - reached MAX_NESTED_LEVELS.");return null}const r=a.fetchIfRef(e);if(!Array.isArray(r))return null;const i=a.fetchIfRef(r[0]);if("string"!=typeof i)return null;const o=parseOrder(r.slice(1),t);return o&&o.length?{name:(0,n.stringToPDFString)(i),order:o}:null}const a=this.xref,r=new i.RefSet,s=10;return{name:"string"==typeof e.get("Name")?(0,n.stringToPDFString)(e.get("Name")):null,creator:"string"==typeof e.get("Creator")?(0,n.stringToPDFString)(e.get("Creator")):null,baseState:e.get("BaseState")instanceof i.Name?e.get("BaseState").name:null,on:parseOnOff(e.get("ON")),off:parseOnOff(e.get("OFF")),order:parseOrder(e.get("Order")),groups:null}}setActualNumPages(e=null){this._actualNumPages=e}get hasActualNumPages(){return null!==this._actualNumPages}get _pagesCount(){const e=this.toplevelPagesDict.get("Count");if(!Number.isInteger(e))throw new n.FormatError("Page count in top-level pages dictionary is not an integer.");return(0,n.shadow)(this,"_pagesCount",e)}get numPages(){return this.hasActualNumPages?this._actualNumPages:this._pagesCount}get destinations(){const e=this._readDests(),t=Object.create(null);if(e instanceof s.NameTree)for(const[a,r]of e.getAll()){const e=fetchDestination(r);e&&(t[(0,n.stringToPDFString)(a)]=e)}else e instanceof i.Dict&&e.forEach((function(e,a){const r=fetchDestination(a);r&&(t[e]=r)}));return(0,n.shadow)(this,"destinations",t)}getDestination(e){const t=this._readDests();if(t instanceof s.NameTree){const a=fetchDestination(t.get(e));if(a)return a;const r=this.destinations[e];if(r){(0,n.warn)(`Found "${e}" at an incorrect position in the NameTree.`);return r}}else if(t instanceof i.Dict){const a=fetchDestination(t.get(e));if(a)return a}return null}_readDests(){const e=this._catDict.get("Names");return e&&e.has("Dests")?new s.NameTree(e.getRaw("Dests"),this.xref):this._catDict.has("Dests")?this._catDict.get("Dests"):void 0}get pageLabels(){let e=null;try{e=this._readPageLabels()}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)("Unable to read page labels.")}return(0,n.shadow)(this,"pageLabels",e)}_readPageLabels(){const e=this._catDict.getRaw("PageLabels");if(!e)return null;const t=new Array(this.numPages);let a=null,o="";const c=new s.NumberTree(e,this.xref).getAll();let l="",h=1;for(let e=0,s=this.numPages;e=1))throw new n.FormatError("Invalid start in PageLabel dictionary.");h=e}else h=1}switch(a){case"D":l=h;break;case"R":case"r":l=(0,r.toRomanNumerals)(h,"r"===a);break;case"A":case"a":const e=26,t="a"===a?97:65,i=h-1;l=String.fromCharCode(t+i%e).repeat(Math.floor(i/e)+1);break;default:if(a)throw new n.FormatError(`Invalid style "${a}" in PageLabel dictionary.`);l=""}t[e]=o+l;h++}return t}get pageLayout(){const e=this._catDict.get("PageLayout");let t="";if(e instanceof i.Name)switch(e.name){case"SinglePage":case"OneColumn":case"TwoColumnLeft":case"TwoColumnRight":case"TwoPageLeft":case"TwoPageRight":t=e.name}return(0,n.shadow)(this,"pageLayout",t)}get pageMode(){const e=this._catDict.get("PageMode");let t="UseNone";if(e instanceof i.Name)switch(e.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"FullScreen":case"UseOC":case"UseAttachments":t=e.name}return(0,n.shadow)(this,"pageMode",t)}get viewerPreferences(){const e=this._catDict.get("ViewerPreferences");if(!(e instanceof i.Dict))return(0,n.shadow)(this,"viewerPreferences",null);let t=null;for(const a of e.getKeys()){const r=e.get(a);let s;switch(a){case"HideToolbar":case"HideMenubar":case"HideWindowUI":case"FitWindow":case"CenterWindow":case"DisplayDocTitle":case"PickTrayByPDFSize":"boolean"==typeof r&&(s=r);break;case"NonFullScreenPageMode":if(r instanceof i.Name)switch(r.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"UseOC":s=r.name;break;default:s="UseNone"}break;case"Direction":if(r instanceof i.Name)switch(r.name){case"L2R":case"R2L":s=r.name;break;default:s="L2R"}break;case"ViewArea":case"ViewClip":case"PrintArea":case"PrintClip":if(r instanceof i.Name)switch(r.name){case"MediaBox":case"CropBox":case"BleedBox":case"TrimBox":case"ArtBox":s=r.name;break;default:s="CropBox"}break;case"PrintScaling":if(r instanceof i.Name)switch(r.name){case"None":case"AppDefault":s=r.name;break;default:s="AppDefault"}break;case"Duplex":if(r instanceof i.Name)switch(r.name){case"Simplex":case"DuplexFlipShortEdge":case"DuplexFlipLongEdge":s=r.name;break;default:s="None"}break;case"PrintPageRange":if(Array.isArray(r)&&r.length%2==0){r.every(((e,t,a)=>Number.isInteger(e)&&e>0&&(0===t||e>=a[t-1])&&e<=this.numPages))&&(s=r)}break;case"NumCopies":Number.isInteger(r)&&r>0&&(s=r);break;default:(0,n.warn)(`Ignoring non-standard key in ViewerPreferences: ${a}.`);continue}if(void 0!==s){t||(t=Object.create(null));t[a]=s}else(0,n.warn)(`Bad value, for key "${a}", in ViewerPreferences: ${r}.`)}return(0,n.shadow)(this,"viewerPreferences",t)}get openAction(){const e=this._catDict.get("OpenAction"),t=Object.create(null);if(e instanceof i.Dict){const a=new i.Dict(this.xref);a.set("A",e);const r={url:null,dest:null,action:null};Catalog.parseDestDictionary({destDict:a,resultObj:r});Array.isArray(r.dest)?t.dest=r.dest:r.action&&(t.action=r.action)}else Array.isArray(e)&&(t.dest=e);return(0,n.shadow)(this,"openAction",(0,n.objectSize)(t)>0?t:null)}get attachments(){const e=this._catDict.get("Names");let t=null;if(e instanceof i.Dict&&e.has("EmbeddedFiles")){const a=new s.NameTree(e.getRaw("EmbeddedFiles"),this.xref);for(const[e,r]of a.getAll()){const a=new h.FileSpec(r,this.xref);t||(t=Object.create(null));t[(0,n.stringToPDFString)(e)]=a.serializable}}return(0,n.shadow)(this,"attachments",t)}get xfaImages(){const e=this._catDict.get("Names");let t=null;if(e instanceof i.Dict&&e.has("XFAImages")){const a=new s.NameTree(e.getRaw("XFAImages"),this.xref);for(const[e,r]of a.getAll()){t||(t=new i.Dict(this.xref));t.set((0,n.stringToPDFString)(e),r)}}return(0,n.shadow)(this,"xfaImages",t)}_collectJavaScript(){const e=this._catDict.get("Names");let t=null;function appendIfJavaScriptDict(e,a){if(!(a instanceof i.Dict))return;if(!(0,i.isName)(a.get("S"),"JavaScript"))return;let r=a.get("JS");if(r instanceof o.BaseStream)r=r.getString();else if("string"!=typeof r)return;null===t&&(t=new Map);r=(0,n.stringToPDFString)(r).replace(/\u0000/g,"");t.set(e,r)}if(e instanceof i.Dict&&e.has("JavaScript")){const t=new s.NameTree(e.getRaw("JavaScript"),this.xref);for(const[e,a]of t.getAll())appendIfJavaScriptDict((0,n.stringToPDFString)(e),a)}const a=this._catDict.get("OpenAction");a&&appendIfJavaScriptDict("OpenAction",a);return t}get javaScript(){const e=this._collectJavaScript();return(0,n.shadow)(this,"javaScript",e?[...e.values()]:null)}get jsActions(){const e=this._collectJavaScript();let t=(0,r.collectActions)(this.xref,this._catDict,n.DocumentActionEventType);if(e){t||(t=Object.create(null));for(const[a,r]of e)a in t?t[a].push(r):t[a]=[r]}return(0,n.shadow)(this,"jsActions",t)}async fontFallback(e,t){const a=await Promise.all(this.fontCache);for(const r of a)if(r.loadedName===e){r.fallback(t);return}}async cleanup(e=!1){(0,c.clearGlobalCaches)();this.globalImageCache.clear(e);this.pageKidsCountCache.clear();this.pageIndexCache.clear();this.nonBlendModesSet.clear();const t=await Promise.all(this.fontCache);for(const{dict:e}of t)delete e.cacheKey;this.fontCache.clear();this.builtInCMapCache.clear();this.standardFontDataCache.clear()}async getPageDict(e){const t=[this.toplevelPagesDict],a=new i.RefSet,r=this._catDict.getRaw("Pages");r instanceof i.Ref&&a.put(r);const s=this.xref,o=this.pageKidsCountCache,c=this.pageIndexCache;let l=0;for(;t.length;){const r=t.pop();if(r instanceof i.Ref){const h=o.get(r);if(h>=0&&l+h<=e){l+=h;continue}if(a.has(r))throw new n.FormatError("Pages tree contains circular reference.");a.put(r);const u=await s.fetchAsync(r);if(u instanceof i.Dict){let t=u.getRaw("Type");t instanceof i.Ref&&(t=await s.fetchAsync(t));if((0,i.isName)(t,"Page")||!u.has("Kids")){o.has(r)||o.put(r,1);c.has(r)||c.put(r,l);if(l===e)return[u,r];l++;continue}}t.push(u);continue}if(!(r instanceof i.Dict))throw new n.FormatError("Page dictionary kid reference points to wrong type of object.");const{objId:h}=r;let u=r.getRaw("Count");u instanceof i.Ref&&(u=await s.fetchAsync(u));if(Number.isInteger(u)&&u>=0){h&&!o.has(h)&&o.put(h,u);if(l+u<=e){l+=u;continue}}let d=r.getRaw("Kids");d instanceof i.Ref&&(d=await s.fetchAsync(d));if(!Array.isArray(d)){let t=r.getRaw("Type");t instanceof i.Ref&&(t=await s.fetchAsync(t));if((0,i.isName)(t,"Page")||!r.has("Kids")){if(l===e)return[r,null];l++;continue}throw new n.FormatError("Page dictionary kids object is not an array.")}for(let e=d.length-1;e>=0;e--)t.push(d[e])}throw new Error(`Page index ${e} not found.`)}async getAllPageDicts(e=!1){const{ignoreErrors:t}=this.pdfManager.evaluatorOptions,a=[{currentNode:this.toplevelPagesDict,posInKids:0}],s=new i.RefSet,o=this._catDict.getRaw("Pages");o instanceof i.Ref&&s.put(o);const c=new Map,l=this.xref,h=this.pageIndexCache;let u=0;function addPageDict(e,t){t&&!h.has(t)&&h.put(t,u);c.set(u++,[e,t])}function addPageError(a){if(a instanceof r.XRefEntryException&&!e)throw a;if(e&&t&&0===u){(0,n.warn)(`getAllPageDicts - Skipping invalid first page: "${a}".`);a=i.Dict.empty}c.set(u++,[a,null])}for(;a.length>0;){const e=a.at(-1),{currentNode:t,posInKids:r}=e;let o=t.getRaw("Kids");if(o instanceof i.Ref)try{o=await l.fetchAsync(o)}catch(e){addPageError(e);break}if(!Array.isArray(o)){addPageError(new n.FormatError("Page dictionary kids object is not an array."));break}if(r>=o.length){a.pop();continue}const c=o[r];let h;if(c instanceof i.Ref){if(s.has(c)){addPageError(new n.FormatError("Pages tree contains circular reference."));break}s.put(c);try{h=await l.fetchAsync(c)}catch(e){addPageError(e);break}}else h=c;if(!(h instanceof i.Dict)){addPageError(new n.FormatError("Page dictionary kid reference points to wrong type of object."));break}let u=h.getRaw("Type");if(u instanceof i.Ref)try{u=await l.fetchAsync(u)}catch(e){addPageError(e);break}(0,i.isName)(u,"Page")||!h.has("Kids")?addPageDict(h,c instanceof i.Ref?c:null):a.push({currentNode:h,posInKids:0});e.posInKids++}return c}getPageIndex(e){const t=this.pageIndexCache.get(e);if(void 0!==t)return Promise.resolve(t);const a=this.xref;let r=0;const next=t=>function pagesBeforeRef(t){let r,s=0;return a.fetchAsync(t).then((function(a){if((0,i.isRefsEqual)(t,e)&&!(0,i.isDict)(a,"Page")&&!(a instanceof i.Dict&&!a.has("Type")&&a.has("Contents")))throw new n.FormatError("The reference does not point to a /Page dictionary.");if(!a)return null;if(!(a instanceof i.Dict))throw new n.FormatError("Node must be a dictionary.");r=a.getRaw("Parent");return a.getAsync("Parent")})).then((function(e){if(!e)return null;if(!(e instanceof i.Dict))throw new n.FormatError("Parent must be a dictionary.");return e.getAsync("Kids")})).then((function(e){if(!e)return null;const o=[];let c=!1;for(const r of e){if(!(r instanceof i.Ref))throw new n.FormatError("Kid must be a reference.");if((0,i.isRefsEqual)(r,t)){c=!0;break}o.push(a.fetchAsync(r).then((function(e){if(!(e instanceof i.Dict))throw new n.FormatError("Kid node must be a dictionary.");e.has("Count")?s+=e.get("Count"):s++})))}if(!c)throw new n.FormatError("Kid reference not found in parent's kids.");return Promise.all(o).then((function(){return[s,r]}))}))}(t).then((t=>{if(!t){this.pageIndexCache.put(e,r);return r}const[a,n]=t;r+=a;return next(n)}));return next(e)}get baseUrl(){const e=this._catDict.get("URI");if(e instanceof i.Dict){const t=e.get("Base");if("string"==typeof t){const e=(0,n.createValidAbsoluteUrl)(t,null,{tryConvertEncoding:!0});if(e)return(0,n.shadow)(this,"baseUrl",e.href)}}return(0,n.shadow)(this,"baseUrl",null)}static parseDestDictionary(e){const t=e.destDict;if(!(t instanceof i.Dict)){(0,n.warn)("parseDestDictionary: `destDict` must be a dictionary.");return}const a=e.resultObj;if("object"!=typeof a){(0,n.warn)("parseDestDictionary: `resultObj` must be an object.");return}const s=e.docBaseUrl||null,c=e.docAttachments||null;let l,h,u=t.get("A");if(!(u instanceof i.Dict))if(t.has("Dest"))u=t.get("Dest");else{u=t.get("AA");u instanceof i.Dict&&(u.has("D")?u=u.get("D"):u.has("U")&&(u=u.get("U")))}if(u instanceof i.Dict){const e=u.get("S");if(!(e instanceof i.Name)){(0,n.warn)("parseDestDictionary: Invalid type in Action dictionary.");return}const t=e.name;switch(t){case"ResetForm":const e=u.get("Flags"),s=0==(1&("number"==typeof e?e:0)),d=[],f=[];for(const e of u.get("Fields")||[])e instanceof i.Ref?f.push(e.toString()):"string"==typeof e&&d.push((0,n.stringToPDFString)(e));a.resetForm={fields:d,refs:f,include:s};break;case"URI":l=u.get("URI");l instanceof i.Name&&(l="/"+l.name);break;case"GoTo":h=u.get("D");break;case"Launch":case"GoToR":const g=u.get("F");g instanceof i.Dict?l=g.get("F")||null:"string"==typeof g&&(l=g);let p=u.get("D");if(p){p instanceof i.Name&&(p=p.name);if("string"==typeof l){const e=l.split("#")[0];"string"==typeof p?l=e+"#"+p:Array.isArray(p)&&(l=e+"#"+JSON.stringify(p))}}const m=u.get("NewWindow");"boolean"==typeof m&&(a.newWindow=m);break;case"GoToE":const b=u.get("T");let y;if(c&&b instanceof i.Dict){const e=b.get("R"),t=b.get("N");(0,i.isName)(e,"C")&&"string"==typeof t&&(y=c[(0,n.stringToPDFString)(t)])}y?a.attachment=y:(0,n.warn)('parseDestDictionary - unimplemented "GoToE" action.');break;case"Named":const w=u.get("N");w instanceof i.Name&&(a.action=w.name);break;case"SetOCGState":const S=u.get("State"),x=u.get("PreserveRB");if(!Array.isArray(S)||0===S.length)break;const C=[];for(const e of S)if(e instanceof i.Name)switch(e.name){case"ON":case"OFF":case"Toggle":C.push(e.name)}else e instanceof i.Ref&&C.push(e.toString());if(C.length!==S.length)break;a.setOCGState={state:C,preserveRB:"boolean"!=typeof x||x};break;case"JavaScript":const k=u.get("JS");let v;k instanceof o.BaseStream?v=k.getString():"string"==typeof k&&(v=k);const F=v&&(0,r.recoverJsURL)((0,n.stringToPDFString)(v));if(F){l=F.url;a.newWindow=F.newWindow;break}default:if("JavaScript"===t||"SubmitForm"===t)break;(0,n.warn)(`parseDestDictionary - unsupported action: "${t}".`)}}else t.has("Dest")&&(h=t.get("Dest"));if("string"==typeof l){const e=(0,n.createValidAbsoluteUrl)(l,s,{addDefaultProtocol:!0,tryConvertEncoding:!0});e&&(a.url=e.href);a.unsafeUrl=l}if(h){h instanceof i.Name&&(h=h.name);"string"==typeof h?a.dest=(0,n.stringToPDFString)(h):Array.isArray(h)&&(a.dest=h)}}}t.Catalog=Catalog},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.NumberTree=t.NameTree=void 0;var r=a(3),n=a(2);class NameOrNumberTree{constructor(e,t,a){this.constructor===NameOrNumberTree&&(0,n.unreachable)("Cannot initialize NameOrNumberTree.");this.root=e;this.xref=t;this._type=a}getAll(){const e=new Map;if(!this.root)return e;const t=this.xref,a=new r.RefSet;a.put(this.root);const i=[this.root];for(;i.length>0;){const s=t.fetchIfRef(i.shift());if(!(s instanceof r.Dict))continue;if(s.has("Kids")){const e=s.get("Kids");if(!Array.isArray(e))continue;for(const t of e){if(a.has(t))throw new n.FormatError(`Duplicate entry in "${this._type}" tree.`);i.push(t);a.put(t)}continue}const o=s.get(this._type);if(Array.isArray(o))for(let a=0,r=o.length;a10){(0,n.warn)(`Search depth limit reached for "${this._type}" tree.`);return null}const i=a.get("Kids");if(!Array.isArray(i))return null;let s=0,o=i.length-1;for(;s<=o;){const r=s+o>>1,n=t.fetchIfRef(i[r]),c=n.get("Limits");if(et.fetchIfRef(c[1]))){a=n;break}s=r+1}}if(s>o)return null}const i=a.get(this._type);if(Array.isArray(i)){let a=0,r=i.length-2;for(;a<=r;){const n=a+r>>1,s=n+(1&n),o=t.fetchIfRef(i[s]);if(eo))return t.fetchIfRef(i[s+1]);a=s+2}}}return null}}t.NameTree=class NameTree extends NameOrNumberTree{constructor(e,t){super(e,t,"Names")}};t.NumberTree=class NumberTree extends NameOrNumberTree{constructor(e,t){super(e,t,"Nums")}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.clearGlobalCaches=function clearGlobalCaches(){(0,r.clearPrimitiveCaches)();(0,n.clearUnicodeCaches)()};var r=a(3),n=a(38)},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.FileSpec=void 0;var r=a(2),n=a(5),i=a(3);function pickPlatformItem(e){return e.has("UF")?e.get("UF"):e.has("F")?e.get("F"):e.has("Unix")?e.get("Unix"):e.has("Mac")?e.get("Mac"):e.has("DOS")?e.get("DOS"):null}t.FileSpec=class FileSpec{constructor(e,t){if(e instanceof i.Dict){this.xref=t;this.root=e;e.has("FS")&&(this.fs=e.get("FS"));this.description=e.has("Desc")?(0,r.stringToPDFString)(e.get("Desc")):"";e.has("RF")&&(0,r.warn)("Related file specifications are not supported");this.contentAvailable=!0;if(!e.has("EF")){this.contentAvailable=!1;(0,r.warn)("Non-embedded file specifications are not supported")}}}get filename(){if(!this._filename&&this.root){const e=pickPlatformItem(this.root)||"unnamed";this._filename=(0,r.stringToPDFString)(e).replace(/\\\\/g,"\\").replace(/\\\//g,"/").replace(/\\/g,"/")}return this._filename}get content(){if(!this.contentAvailable)return null;!this.contentRef&&this.root&&(this.contentRef=pickPlatformItem(this.root.get("EF")));let e=null;if(this.contentRef){const t=this.xref.fetchIfRef(this.contentRef);t instanceof n.BaseStream?e=t.getBytes():(0,r.warn)("Embedded file specification points to non-existing/invalid content")}else(0,r.warn)("Embedded file specification does not have a content");return e}get serializable(){return{filename:this.filename,content:this.content}}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.MetadataParser=void 0;var r=a(64);t.MetadataParser=class MetadataParser{constructor(e){e=this._repair(e);const t=new r.SimpleXMLParser({lowerCaseName:!0}).parseFromString(e);this._metadataMap=new Map;this._data=e;t&&this._parse(t)}_repair(e){return e.replace(/^[^<]+/,"").replace(/>\\376\\377([^<]+)/g,(function(e,t){const a=t.replace(/\\([0-3])([0-7])([0-7])/g,(function(e,t,a,r){return String.fromCharCode(64*t+8*a+1*r)})).replace(/&(amp|apos|gt|lt|quot);/g,(function(e,t){switch(t){case"amp":return"&";case"apos":return"'";case"gt":return">";case"lt":return"<";case"quot":return'"'}throw new Error(`_repair: ${t} isn't defined.`)})),r=[];for(let e=0,t=a.length;e=32&&t<127&&60!==t&&62!==t&&38!==t?r.push(String.fromCharCode(t)):r.push("&#x"+(65536+t).toString(16).substring(1)+";")}return">"+r.join("")}))}_getSequence(e){const t=e.nodeName;return"rdf:bag"!==t&&"rdf:seq"!==t&&"rdf:alt"!==t?null:e.childNodes.filter((e=>"rdf:li"===e.nodeName))}_parseArray(e){if(!e.hasChildNodes())return;const[t]=e.childNodes,a=this._getSequence(t)||[];this._metadataMap.set(e.nodeName,a.map((e=>e.textContent.trim())))}_parse(e){let t=e.documentElement;if("rdf:rdf"!==t.nodeName){t=t.firstChild;for(;t&&"rdf:rdf"!==t.nodeName;)t=t.nextSibling}if(t&&"rdf:rdf"===t.nodeName&&t.hasChildNodes())for(const e of t.childNodes)if("rdf:description"===e.nodeName)for(const t of e.childNodes){const e=t.nodeName;switch(e){case"#text":continue;case"dc:creator":case"dc:subject":this._parseArray(t);continue}this._metadataMap.set(e,t.textContent.trim())}}get serializable(){return{parsedData:this._metadataMap,rawData:this._data}}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.StructTreeRoot=t.StructTreePage=void 0;var r=a(3),n=a(2),i=a(68);const s="PAGE_CONTENT",o="STREAM_CONTENT",c="OBJECT",l="ELEMENT";t.StructTreeRoot=class StructTreeRoot{constructor(e){this.dict=e;this.roleMap=new Map}init(){this.readRoleMap()}readRoleMap(){const e=this.dict.get("RoleMap");e instanceof r.Dict&&e.forEach(((e,t)=>{t instanceof r.Name&&this.roleMap.set(e,t.name)}))}};class StructElementNode{constructor(e,t){this.tree=e;this.dict=t;this.kids=[];this.parseKids()}get role(){const e=this.dict.get("S"),t=e instanceof r.Name?e.name:"",{root:a}=this.tree;return a.roleMap.has(t)?a.roleMap.get(t):t}parseKids(){let e=null;const t=this.dict.getRaw("Pg");t instanceof r.Ref&&(e=t.toString());const a=this.dict.get("K");if(Array.isArray(a))for(const t of a){const a=this.parseKid(e,t);a&&this.kids.push(a)}else{const t=this.parseKid(e,a);t&&this.kids.push(t)}}parseKid(e,t){if(Number.isInteger(t))return this.tree.pageDict.objId!==e?null:new StructElement({type:s,mcid:t,pageObjId:e});let a=null;t instanceof r.Ref?a=this.dict.xref.fetch(t):t instanceof r.Dict&&(a=t);if(!a)return null;const n=a.getRaw("Pg");n instanceof r.Ref&&(e=n.toString());const i=a.get("Type")instanceof r.Name?a.get("Type").name:null;return"MCR"===i?this.tree.pageDict.objId!==e?null:new StructElement({type:o,refObjId:a.getRaw("Stm")instanceof r.Ref?a.getRaw("Stm").toString():null,pageObjId:e,mcid:a.get("MCID")}):"OBJR"===i?this.tree.pageDict.objId!==e?null:new StructElement({type:c,refObjId:a.getRaw("Obj")instanceof r.Ref?a.getRaw("Obj").toString():null,pageObjId:e}):new StructElement({type:l,dict:a})}}class StructElement{constructor({type:e,dict:t=null,mcid:a=null,pageObjId:r=null,refObjId:n=null}){this.type=e;this.dict=t;this.mcid=a;this.pageObjId=r;this.refObjId=n;this.parentNode=null}}t.StructTreePage=class StructTreePage{constructor(e,t){this.root=e;this.rootDict=e?e.dict:null;this.pageDict=t;this.nodes=[]}parse(){if(!this.root||!this.rootDict)return;const e=this.rootDict.get("ParentTree");if(!e)return;const t=this.pageDict.get("StructParents");if(!Number.isInteger(t))return;const a=new i.NumberTree(e,this.rootDict.xref).get(t);if(!Array.isArray(a))return;const n=new Map;for(const e of a)e instanceof r.Ref&&this.addNode(this.rootDict.xref.fetch(e),n)}addNode(e,t,a=0){if(a>40){(0,n.warn)("StructTree MAX_DEPTH reached.");return null}if(t.has(e))return t.get(e);const i=new StructElementNode(this,e);t.set(e,i);const s=e.get("P");if(!s||(0,r.isName)(s.get("Type"),"StructTreeRoot")){this.addTopLevelNode(e,i)||t.delete(e);return i}const o=this.addNode(s,t,a+1);if(!o)return i;let c=!1;for(const t of o.kids)if(t.type===l&&t.dict===e){t.parentNode=i;c=!0}c||t.delete(e);return i}addTopLevelNode(e,t){const a=this.rootDict.get("K");if(!a)return!1;if(a instanceof r.Dict){if(a.objId!==e.objId)return!1;this.nodes[0]=t;return!0}if(!Array.isArray(a))return!0;let n=!1;for(let r=0;r40){(0,n.warn)("StructTree too deep to be fully serialized.");return}const r=Object.create(null);r.role=e.role;r.children=[];t.children.push(r);const i=e.dict.get("Alt");"string"==typeof i&&(r.alt=(0,n.stringToPDFString)(i));const h=e.dict.get("Lang");"string"==typeof h&&(r.lang=(0,n.stringToPDFString)(h));for(const t of e.kids){const e=t.type===l?t.parentNode:null;e?nodeToSerializable(e,r,a+1):t.type===s||t.type===o?r.children.push({type:"content",id:`page${t.pageObjId}_mcid${t.mcid}`}):t.type===c&&r.children.push({type:"object",id:t.refObjId})}}const e=Object.create(null);e.children=[];e.role="Root";for(const t of this.nodes)t&&nodeToSerializable(t,e);return e}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ObjectLoader=void 0;var r=a(3),n=a(5),i=a(4),s=a(2);function addChildren(e,t){if(e instanceof r.Dict)e=e.getRawValues();else if(e instanceof n.BaseStream)e=e.dict.getRawValues();else if(!Array.isArray(e))return;for(const i of e)((a=i)instanceof r.Ref||a instanceof r.Dict||a instanceof n.BaseStream||Array.isArray(a))&&t.push(i);var a}t.ObjectLoader=class ObjectLoader{constructor(e,t,a){this.dict=e;this.keys=t;this.xref=a;this.refSet=null}async load(){if(this.xref.stream.isDataLoaded)return;const{keys:e,dict:t}=this;this.refSet=new r.RefSet;const a=[];for(const r of e){const e=t.getRaw(r);void 0!==e&&a.push(e)}return this._walk(a)}async _walk(e){const t=[],a=[];for(;e.length;){let o=e.pop();if(o instanceof r.Ref){if(this.refSet.has(o))continue;try{this.refSet.put(o);o=this.xref.fetch(o)}catch(e){if(!(e instanceof i.MissingDataException)){(0,s.warn)(`ObjectLoader._walk - requesting all data: "${e}".`);this.refSet=null;const{manager:t}=this.xref.stream;return t.requestAllChunks()}t.push(o);a.push({begin:e.begin,end:e.end})}}if(o instanceof n.BaseStream){const e=o.getBaseStreams();if(e){let r=!1;for(const t of e)if(!t.isDataLoaded){r=!0;a.push({begin:t.start,end:t.end})}r&&t.push(o)}}addChildren(o,e)}if(a.length){await this.xref.stream.manager.requestRanges(a);for(const e of t)e instanceof r.Ref&&this.refSet.remove(e);return this._walk(t)}this.refSet=null}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XFAFactory=void 0;var r=a(75),n=a(79),i=a(85),s=a(83),o=a(76),c=a(2),l=a(86),h=a(96);class XFAFactory{constructor(e){try{this.root=(new l.XFAParser).parse(XFAFactory._createDocument(e));const t=new n.Binder(this.root);this.form=t.bind();this.dataHandler=new i.DataHandler(this.root,t.getData());this.form[r.$globalData].template=this.form}catch(e){(0,c.warn)(`XFA - an error occurred during parsing and binding: ${e}`)}}isValid(){return this.root&&this.form}_createPagesHelper(){const e=this.form[r.$toPages]();return new Promise(((t,a)=>{const nextIteration=()=>{try{const a=e.next();a.done?t(a.value):setTimeout(nextIteration,0)}catch(e){a(e)}};setTimeout(nextIteration,0)}))}async _createPages(){try{this.pages=await this._createPagesHelper();this.dims=this.pages.children.map((e=>{const{width:t,height:a}=e.attributes.style;return[0,0,parseInt(t),parseInt(a)]}))}catch(e){(0,c.warn)(`XFA - an error occurred during layout: ${e}`)}}getBoundingBox(e){return this.dims[e]}async getNumPages(){this.pages||await this._createPages();return this.dims.length}setImages(e){this.form[r.$globalData].images=e}setFonts(e){this.form[r.$globalData].fontFinder=new s.FontFinder(e);const t=[];for(let e of this.form[r.$globalData].usedTypefaces){e=(0,o.stripQuotes)(e);this.form[r.$globalData].fontFinder.find(e)||t.push(e)}return t.length>0?t:null}appendFonts(e,t){this.form[r.$globalData].fontFinder.add(e,t)}async getPages(){this.pages||await this._createPages();const e=this.pages;this.pages=null;return e}serializeData(e){return this.dataHandler.serialize(e)}static _createDocument(e){return e["/xdp:xdp"]?Object.values(e).join(""):e["xdp:xdp"]}static getRichTextAsHtml(e){if(!e||"string"!=typeof e)return null;try{let t=new l.XFAParser(h.XhtmlNamespace,!0).parse(e);if(!["body","xhtml"].includes(t[r.$nodeName])){const e=h.XhtmlNamespace.body({});e[r.$appendChild](t);t=e}const a=t[r.$toHTML]();if(!a.success)return null;const{html:n}=a,{attributes:i}=n;if(i){i.class&&(i.class=i.class.filter((e=>!e.startsWith("xfa"))));i.dir="auto"}return{html:n,str:t[r.$text]()}}catch(e){(0,c.warn)(`XFA - an error occurred during parsing of rich text: ${e}`)}return null}}t.XFAFactory=XFAFactory},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XmlObject=t.XFAObjectArray=t.XFAObject=t.XFAAttribute=t.StringObject=t.OptionObject=t.Option10=t.Option01=t.IntegerObject=t.ContentObject=t.$uid=t.$toStyle=t.$toString=t.$toPages=t.$toHTML=t.$text=t.$tabIndex=t.$setValue=t.$setSetAttributes=t.$setId=t.$searchNode=t.$root=t.$resolvePrototypes=t.$removeChild=t.$pushPara=t.$pushGlyphs=t.$popPara=t.$onText=t.$onChildCheck=t.$onChild=t.$nsAttributes=t.$nodeName=t.$namespaceId=t.$isUsable=t.$isTransparent=t.$isThereMoreWidth=t.$isSplittable=t.$isNsAgnostic=t.$isDescendent=t.$isDataValue=t.$isCDATAXml=t.$isBindable=t.$insertAt=t.$indexOf=t.$ids=t.$hasSettableValue=t.$globalData=t.$getTemplateRoot=t.$getSubformParent=t.$getRealChildrenByNameIt=t.$getParent=t.$getNextPage=t.$getExtra=t.$getDataValue=t.$getContainedChildren=t.$getChildrenByNameIt=t.$getChildrenByName=t.$getChildrenByClass=t.$getChildren=t.$getAvailableSpace=t.$getAttributes=t.$getAttributeIt=t.$flushHTML=t.$finalize=t.$extra=t.$dump=t.$data=t.$content=t.$consumed=t.$clone=t.$cleanup=t.$cleanPage=t.$clean=t.$childrenToHTML=t.$appendChild=t.$addHTML=t.$acceptWhitespace=void 0;var r=a(76),n=a(2),i=a(4),s=a(77),o=a(78);const c=Symbol();t.$acceptWhitespace=c;const l=Symbol();t.$addHTML=l;const h=Symbol();t.$appendChild=h;const u=Symbol();t.$childrenToHTML=u;const d=Symbol();t.$clean=d;const f=Symbol();t.$cleanPage=f;const g=Symbol();t.$cleanup=g;const p=Symbol();t.$clone=p;const m=Symbol();t.$consumed=m;const b=Symbol("content");t.$content=b;const y=Symbol("data");t.$data=y;const w=Symbol();t.$dump=w;const S=Symbol("extra");t.$extra=S;const x=Symbol();t.$finalize=x;const C=Symbol();t.$flushHTML=C;const k=Symbol();t.$getAttributeIt=k;const v=Symbol();t.$getAttributes=v;const F=Symbol();t.$getAvailableSpace=F;const O=Symbol();t.$getChildrenByClass=O;const T=Symbol();t.$getChildrenByName=T;const M=Symbol();t.$getChildrenByNameIt=M;const E=Symbol();t.$getDataValue=E;const D=Symbol();t.$getExtra=D;const N=Symbol();t.$getRealChildrenByNameIt=N;const R=Symbol();t.$getChildren=R;const L=Symbol();t.$getContainedChildren=L;const j=Symbol();t.$getNextPage=j;const $=Symbol();t.$getSubformParent=$;const _=Symbol();t.$getParent=_;const U=Symbol();t.$getTemplateRoot=U;const X=Symbol();t.$globalData=X;const H=Symbol();t.$hasSettableValue=H;const q=Symbol();t.$ids=q;const z=Symbol();t.$indexOf=z;const W=Symbol();t.$insertAt=W;const G=Symbol();t.$isCDATAXml=G;const V=Symbol();t.$isBindable=V;const K=Symbol();t.$isDataValue=K;const J=Symbol();t.$isDescendent=J;const Y=Symbol();t.$isNsAgnostic=Y;const Z=Symbol();t.$isSplittable=Z;const Q=Symbol();t.$isThereMoreWidth=Q;const ee=Symbol();t.$isTransparent=ee;const te=Symbol();t.$isUsable=te;const ae=Symbol(),re=Symbol("namespaceId");t.$namespaceId=re;const ne=Symbol("nodeName");t.$nodeName=ne;const ie=Symbol();t.$nsAttributes=ie;const se=Symbol();t.$onChild=se;const oe=Symbol();t.$onChildCheck=oe;const ce=Symbol();t.$onText=ce;const le=Symbol();t.$pushGlyphs=le;const he=Symbol();t.$popPara=he;const ue=Symbol();t.$pushPara=ue;const de=Symbol();t.$removeChild=de;const fe=Symbol("root");t.$root=fe;const ge=Symbol();t.$resolvePrototypes=ge;const pe=Symbol();t.$searchNode=pe;const me=Symbol();t.$setId=me;const be=Symbol();t.$setSetAttributes=be;const ye=Symbol();t.$setValue=ye;const we=Symbol();t.$tabIndex=we;const Se=Symbol();t.$text=Se;const xe=Symbol();t.$toPages=xe;const Ae=Symbol();t.$toHTML=Ae;const Ce=Symbol();t.$toString=Ce;const ke=Symbol();t.$toStyle=ke;const ve=Symbol("uid");t.$uid=ve;const Fe=Symbol(),Oe=Symbol(),Te=Symbol(),Ie=Symbol("_children"),Me=Symbol(),Pe=Symbol(),Ee=Symbol(),De=Symbol(),Ne=Symbol(),Be=Symbol(),Re=Symbol(),Le=Symbol(),je=Symbol(),$e=Symbol("parent"),_e=Symbol(),Ue=Symbol(),Xe=Symbol();let He=0;const qe=s.NamespaceIds.datasets.id;class XFAObject{constructor(e,t,a=!1){this[re]=e;this[ne]=t;this[Re]=a;this[$e]=null;this[Ie]=[];this[ve]=`${t}${He++}`;this[X]=null}[se](e){if(!this[Re]||!this[oe](e))return!1;const t=e[ne],a=this[t];if(!(a instanceof XFAObjectArray)){null!==a&&this[de](a);this[t]=e;this[h](e);return!0}if(a.push(e)){this[h](e);return!0}let r="";this.id?r=` (id: ${this.id})`:this.name&&(r=` (name: ${this.name} ${this.h.value})`);(0,n.warn)(`XFA - node "${this[ne]}"${r} has already enough "${t}"!`);return!1}[oe](e){return this.hasOwnProperty(e[ne])&&e[re]===this[re]}[Y](){return!1}[c](){return!1}[G](){return!1}[V](){return!1}[he](){this.para&&this[U]()[S].paraStack.pop()}[ue](){this[U]()[S].paraStack.push(this.para)}[me](e){this.id&&this[re]===s.NamespaceIds.template.id&&e.set(this.id,this)}[U](){return this[X].template}[Z](){return!1}[Q](){return!1}[h](e){e[$e]=this;this[Ie].push(e);!e[X]&&this[X]&&(e[X]=this[X])}[de](e){const t=this[Ie].indexOf(e);this[Ie].splice(t,1)}[H](){return this.hasOwnProperty("value")}[ye](e){}[ce](e){}[x](){}[d](e){delete this[Re];if(this[g]){e.clean(this[g]);delete this[g]}}[z](e){return this[Ie].indexOf(e)}[W](e,t){t[$e]=this;this[Ie].splice(e,0,t);!t[X]&&this[X]&&(t[X]=this[X])}[ee](){return!this.name}[ae](){return""}[Se](){return 0===this[Ie].length?this[b]:this[Ie].map((e=>e[Se]())).join("")}get[Te](){const e=Object.getPrototypeOf(this);if(!e._attributes){const t=e._attributes=new Set;for(const e of Object.getOwnPropertyNames(this)){if(null===this[e]||this[e]instanceof XFAObject||this[e]instanceof XFAObjectArray)break;t.add(e)}}return(0,n.shadow)(this,Te,e._attributes)}[J](e){let t=this;for(;t;){if(t===e)return!0;t=t[_]()}return!1}[_](){return this[$e]}[$](){return this[_]()}[R](e=null){return e?this[e]:this[Ie]}[w](){const e=Object.create(null);this[b]&&(e.$content=this[b]);for(const t of Object.getOwnPropertyNames(this)){const a=this[t];null!==a&&(a instanceof XFAObject?e[t]=a[w]():a instanceof XFAObjectArray?a.isEmpty()||(e[t]=a.dump()):e[t]=a)}return e}[ke](){return null}[Ae](){return r.HTMLResult.EMPTY}*[L](){for(const e of this[R]())yield e}*[De](e,t){for(const a of this[L]())if(!e||t===e.has(a[ne])){const e=this[F](),t=a[Ae](e);t.success||(this[S].failingNode=a);yield t}}[C](){return null}[l](e,t){this[S].children.push(e)}[F](){}[u]({filter:e=null,include:t=!0}){if(this[S].generator){const e=this[F](),t=this[S].failingNode[Ae](e);if(!t.success)return t;t.html&&this[l](t.html,t.bbox);delete this[S].failingNode}else this[S].generator=this[De](e,t);for(;;){const e=this[S].generator.next();if(e.done)break;const t=e.value;if(!t.success)return t;t.html&&this[l](t.html,t.bbox)}this[S].generator=null;return r.HTMLResult.EMPTY}[be](e){this[Ue]=new Set(Object.keys(e))}[Be](e){const t=this[Te],a=this[Ue];return[...e].filter((e=>t.has(e)&&!a.has(e)))}[ge](e,t=new Set){for(const a of this[Ie])a[_e](e,t)}[_e](e,t){const a=this[Ne](e,t);a?this[Fe](a,e,t):this[ge](e,t)}[Ne](e,t){const{use:a,usehref:r}=this;if(!a&&!r)return null;let i=null,s=null,c=null,l=a;if(r){l=r;r.startsWith("#som(")&&r.endsWith(")")?s=r.slice("#som(".length,r.length-1):r.startsWith(".#som(")&&r.endsWith(")")?s=r.slice(".#som(".length,r.length-1):r.startsWith("#")?c=r.slice(1):r.startsWith(".#")&&(c=r.slice(2))}else a.startsWith("#")?c=a.slice(1):s=a;this.use=this.usehref="";if(c)i=e.get(c);else{i=(0,o.searchNode)(e.get(fe),this,s,!0,!1);i&&(i=i[0])}if(!i){(0,n.warn)(`XFA - Invalid prototype reference: ${l}.`);return null}if(i[ne]!==this[ne]){(0,n.warn)(`XFA - Incompatible prototype: ${i[ne]} !== ${this[ne]}.`);return null}if(t.has(i)){(0,n.warn)("XFA - Cycle detected in prototypes use.");return null}t.add(i);const h=i[Ne](e,t);h&&i[Fe](h,e,t);i[ge](e,t);t.delete(i);return i}[Fe](e,t,a){if(a.has(e)){(0,n.warn)("XFA - Cycle detected in prototypes use.");return}!this[b]&&e[b]&&(this[b]=e[b]);new Set(a).add(e);for(const t of this[Be](e[Ue])){this[t]=e[t];this[Ue]&&this[Ue].add(t)}for(const r of Object.getOwnPropertyNames(this)){if(this[Te].has(r))continue;const n=this[r],i=e[r];if(n instanceof XFAObjectArray){for(const e of n[Ie])e[_e](t,a);for(let r=n[Ie].length,s=i[Ie].length;rXFAObject[Me](e))):"object"==typeof e&&null!==e?Object.assign({},e):e}[p](){const e=Object.create(Object.getPrototypeOf(this));for(const t of Object.getOwnPropertySymbols(this))try{e[t]=this[t]}catch(a){(0,n.shadow)(e,t,this[t])}e[ve]=`${e[ne]}${He++}`;e[Ie]=[];for(const t of Object.getOwnPropertyNames(this)){if(this[Te].has(t)){e[t]=XFAObject[Me](this[t]);continue}const a=this[t];e[t]=a instanceof XFAObjectArray?new XFAObjectArray(a[Le]):null}for(const t of this[Ie]){const a=t[ne],r=t[p]();e[Ie].push(r);r[$e]=e;null===e[a]?e[a]=r:e[a][Ie].push(r)}return e}[R](e=null){return e?this[Ie].filter((t=>t[ne]===e)):this[Ie]}[O](e){return this[e]}[T](e,t,a=!0){return Array.from(this[M](e,t,a))}*[M](e,t,a=!0){if("parent"!==e){for(const a of this[Ie]){a[ne]===e&&(yield a);a.name===e&&(yield a);(t||a[ee]())&&(yield*a[M](e,t,!1))}a&&this[Te].has(e)&&(yield new XFAAttribute(this,e,this[e]))}else yield this[$e]}}t.XFAObject=XFAObject;class XFAObjectArray{constructor(e=1/0){this[Le]=e;this[Ie]=[]}push(e){if(this[Ie].length<=this[Le]){this[Ie].push(e);return!0}(0,n.warn)(`XFA - node "${e[ne]}" accepts no more than ${this[Le]} children`);return!1}isEmpty(){return 0===this[Ie].length}dump(){return 1===this[Ie].length?this[Ie][0][w]():this[Ie].map((e=>e[w]()))}[p](){const e=new XFAObjectArray(this[Le]);e[Ie]=this[Ie].map((e=>e[p]()));return e}get children(){return this[Ie]}clear(){this[Ie].length=0}}t.XFAObjectArray=XFAObjectArray;class XFAAttribute{constructor(e,t,a){this[$e]=e;this[ne]=t;this[b]=a;this[m]=!1;this[ve]="attribute"+He++}[_](){return this[$e]}[K](){return!0}[E](){return this[b].trim()}[ye](e){e=e.value||"";this[b]=e.toString()}[Se](){return this[b]}[J](e){return this[$e]===e||this[$e][J](e)}}t.XFAAttribute=XFAAttribute;class XmlObject extends XFAObject{constructor(e,t,a={}){super(e,t);this[b]="";this[Pe]=null;if("#text"!==t){const e=new Map;this[Oe]=e;for(const[t,r]of Object.entries(a))e.set(t,new XFAAttribute(this,t,r));if(a.hasOwnProperty(ie)){const e=a[ie].xfa.dataNode;void 0!==e&&("dataGroup"===e?this[Pe]=!1:"dataValue"===e&&(this[Pe]=!0))}}this[m]=!1}[Ce](e){const t=this[ne];if("#text"===t){e.push((0,i.encodeToXmlString)(this[b]));return}const a=(0,n.utf8StringToString)(t),r=this[re]===qe?"xfa:":"";e.push(`<${r}${a}`);for(const[t,a]of this[Oe].entries()){const r=(0,n.utf8StringToString)(t);e.push(` ${r}="${(0,i.encodeToXmlString)(a[b])}"`)}null!==this[Pe]&&(this[Pe]?e.push(' xfa:dataNode="dataValue"'):e.push(' xfa:dataNode="dataGroup"'));if(this[b]||0!==this[Ie].length){e.push(">");if(this[b])"string"==typeof this[b]?e.push((0,i.encodeToXmlString)(this[b])):this[b][Ce](e);else for(const t of this[Ie])t[Ce](e);e.push(``)}else e.push("/>")}[se](e){if(this[b]){const e=new XmlObject(this[re],"#text");this[h](e);e[b]=this[b];this[b]=""}this[h](e);return!0}[ce](e){this[b]+=e}[x](){if(this[b]&&this[Ie].length>0){const e=new XmlObject(this[re],"#text");this[h](e);e[b]=this[b];delete this[b]}}[Ae](){return"#text"===this[ne]?r.HTMLResult.success({name:"#text",value:this[b]}):r.HTMLResult.EMPTY}[R](e=null){return e?this[Ie].filter((t=>t[ne]===e)):this[Ie]}[v](){return this[Oe]}[O](e){const t=this[Oe].get(e);return void 0!==t?t:this[R](e)}*[M](e,t){const a=this[Oe].get(e);a&&(yield a);for(const a of this[Ie]){a[ne]===e&&(yield a);t&&(yield*a[M](e,t))}}*[k](e,t){const a=this[Oe].get(e);!a||t&&a[m]||(yield a);for(const a of this[Ie])yield*a[k](e,t)}*[N](e,t,a){for(const r of this[Ie]){r[ne]!==e||a&&r[m]||(yield r);t&&(yield*r[N](e,t,a))}}[K](){return null===this[Pe]?0===this[Ie].length||this[Ie][0][re]===s.NamespaceIds.xhtml.id:this[Pe]}[E](){return null===this[Pe]?0===this[Ie].length?this[b].trim():this[Ie][0][re]===s.NamespaceIds.xhtml.id?this[Ie][0][Se]().trim():null:this[b].trim()}[ye](e){e=e.value||"";this[b]=e.toString()}[w](e=!1){const t=Object.create(null);e&&(t.$ns=this[re]);this[b]&&(t.$content=this[b]);t.$name=this[ne];t.children=[];for(const a of this[Ie])t.children.push(a[w](e));t.attributes=Object.create(null);for(const[e,a]of this[Oe])t.attributes[e]=a[b];return t}}t.XmlObject=XmlObject;class ContentObject extends XFAObject{constructor(e,t){super(e,t);this[b]=""}[ce](e){this[b]+=e}[x](){}}t.ContentObject=ContentObject;t.OptionObject=class OptionObject extends ContentObject{constructor(e,t,a){super(e,t);this[je]=a}[x](){this[b]=(0,r.getKeyword)({data:this[b],defaultValue:this[je][0],validate:e=>this[je].includes(e)})}[d](e){super[d](e);delete this[je]}};t.StringObject=class StringObject extends ContentObject{[x](){this[b]=this[b].trim()}};class IntegerObject extends ContentObject{constructor(e,t,a,r){super(e,t);this[Ee]=a;this[Xe]=r}[x](){this[b]=(0,r.getInteger)({data:this[b],defaultValue:this[Ee],validate:this[Xe]})}[d](e){super[d](e);delete this[Ee];delete this[Xe]}}t.IntegerObject=IntegerObject;t.Option01=class Option01 extends IntegerObject{constructor(e,t){super(e,t,0,(e=>1===e))}};t.Option10=class Option10 extends IntegerObject{constructor(e,t){super(e,t,1,(e=>0===e))}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.HTMLResult=void 0;t.getBBox=function getBBox(e){const t=-1;if(!e)return{x:t,y:t,width:t,height:t};const a=e.trim().split(/\s*,\s*/).map((e=>getMeasurement(e,"-1")));if(a.length<4||a[2]<0||a[3]<0)return{x:t,y:t,width:t,height:t};const[r,n,i,s]=a;return{x:r,y:n,width:i,height:s}};t.getColor=function getColor(e,t=[0,0,0]){let[a,r,n]=t;if(!e)return{r:a,g:r,b:n};const i=e.trim().split(/\s*,\s*/).map((e=>Math.min(Math.max(0,parseInt(e.trim(),10)),255))).map((e=>isNaN(e)?0:e));if(i.length<3)return{r:a,g:r,b:n};[a,r,n]=i;return{r:a,g:r,b:n}};t.getFloat=function getFloat({data:e,defaultValue:t,validate:a}){if(!e)return t;e=e.trim();const r=parseFloat(e);if(!isNaN(r)&&a(r))return r;return t};t.getInteger=function getInteger({data:e,defaultValue:t,validate:a}){if(!e)return t;e=e.trim();const r=parseInt(e,10);if(!isNaN(r)&&a(r))return r;return t};t.getKeyword=getKeyword;t.getMeasurement=getMeasurement;t.getRatio=function getRatio(e){if(!e)return{num:1,den:1};const t=e.trim().split(/\s*:\s*/).map((e=>parseFloat(e))).filter((e=>!isNaN(e)));1===t.length&&t.push(1);if(0===t.length)return{num:1,den:1};const[a,r]=t;return{num:a,den:r}};t.getRelevant=function getRelevant(e){if(!e)return[];return e.trim().split(/\s+/).map((e=>({excluded:"-"===e[0],viewname:e.substring(1)})))};t.getStringOption=function getStringOption(e,t){return getKeyword({data:e,defaultValue:t[0],validate:e=>t.includes(e)})};t.stripQuotes=function stripQuotes(e){if(e.startsWith("'")||e.startsWith('"'))return e.slice(1,e.length-1);return e};var r=a(2);const n={pt:e=>e,cm:e=>e/2.54*72,mm:e=>e/25.4*72,in:e=>72*e,px:e=>e},i=/([+-]?\d+\.?\d*)(.*)/;function getKeyword({data:e,defaultValue:t,validate:a}){return e&&a(e=e.trim())?e:t}function getMeasurement(e,t="0"){t=t||"0";if(!e)return getMeasurement(t);const a=e.trim().match(i);if(!a)return getMeasurement(t);const[,r,s]=a,o=parseFloat(r);if(isNaN(o))return getMeasurement(t);if(0===o)return 0;const c=n[s];return c?c(o):o}class HTMLResult{static get FAILURE(){return(0,r.shadow)(this,"FAILURE",new HTMLResult(!1,null,null,null))}static get EMPTY(){return(0,r.shadow)(this,"EMPTY",new HTMLResult(!0,null,null,null))}constructor(e,t,a,r){this.success=e;this.html=t;this.bbox=a;this.breakNode=r}isBreak(){return!!this.breakNode}static breakNode(e){return new HTMLResult(!1,null,null,e)}static success(e,t=null){return new HTMLResult(!0,e,t,null)}}t.HTMLResult=HTMLResult},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.NamespaceIds=t.$buildXFAObject=void 0;const a=Symbol();t.$buildXFAObject=a;t.NamespaceIds={config:{id:0,check:e=>e.startsWith("http://www.xfa.org/schema/xci/")},connectionSet:{id:1,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-connection-set/")},datasets:{id:2,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-data/")},form:{id:3,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-form/")},localeSet:{id:4,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-locale-set/")},pdf:{id:5,check:e=>"http://ns.adobe.com/xdp/pdf/"===e},signature:{id:6,check:e=>"http://www.w3.org/2000/09/xmldsig#"===e},sourceSet:{id:7,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-source-set/")},stylesheet:{id:8,check:e=>"http://www.w3.org/1999/XSL/Transform"===e},template:{id:9,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-template/")},xdc:{id:10,check:e=>e.startsWith("http://www.xfa.org/schema/xdc/")},xdp:{id:11,check:e=>"http://ns.adobe.com/xdp/"===e},xfdf:{id:12,check:e=>"http://ns.adobe.com/xfdf/"===e},xhtml:{id:13,check:e=>"http://www.w3.org/1999/xhtml"===e},xmpmeta:{id:14,check:e=>"http://ns.adobe.com/xmpmeta/"===e}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.createDataNode=function createDataNode(e,t,a){const n=parseExpression(a);if(!n)return null;if(n.some((e=>e.operator===l)))return null;const s=f.get(n[0].name);let o=0;if(s){e=s(e,t);o=1}else e=t||e;for(let t=n.length;o0&&p.push(e)}if(0!==p.length||u||0!==d)e=isFinite(f)?p.filter((e=>fe[f])):p.flat();else{const a=t[r.$getParent]();if(!(t=a))return null;d=-1;e=[t]}}if(0===e.length)return null;return e};var r=a(75),n=a(77),i=a(2);const s=/^[^.[]+/,o=/^[^\]]+/,c=0,l=1,h=2,u=3,d=4,f=new Map([["$data",(e,t)=>e.datasets?e.datasets.data:e],["$record",(e,t)=>(e.datasets?e.datasets.data:e)[r.$getChildren]()[0]],["$template",(e,t)=>e.template],["$connectionSet",(e,t)=>e.connectionSet],["$form",(e,t)=>e.form],["$layout",(e,t)=>e.layout],["$host",(e,t)=>e.host],["$dataWindow",(e,t)=>e.dataWindow],["$event",(e,t)=>e.event],["!",(e,t)=>e.datasets],["$xfa",(e,t)=>e],["xfa",(e,t)=>e],["$",(e,t)=>t]]),g=new WeakMap,p=n.NamespaceIds.datasets.id;function parseExpression(e,t,a=!0){let r=e.match(s);if(!r)return null;let[n]=r;const f=[{name:n,cacheName:"."+n,index:0,js:null,formCalc:null,operator:c}];let g=n.length;for(;g{Object.defineProperty(t,"__esModule",{value:!0});t.Binder=void 0;var r=a(75),n=a(80),i=a(78),s=a(77),o=a(2);const c=s.NamespaceIds.datasets.id;function createText(e){const t=new n.Text({});t[r.$content]=e;return t}t.Binder=class Binder{constructor(e){this.root=e;this.datasets=e.datasets;e.datasets&&e.datasets.data?this.data=e.datasets.data:this.data=new r.XmlObject(s.NamespaceIds.datasets.id,"data");this.emptyMerge=0===this.data[r.$getChildren]().length;this.root.form=this.form=e.template[r.$clone]()}_isConsumeData(){return!this.emptyMerge&&this._mergeMode}_isMatchTemplate(){return!this._isConsumeData()}bind(){this._bindElement(this.form,this.data);return this.form}getData(){return this.data}_bindValue(e,t,a){e[r.$data]=t;if(e[r.$hasSettableValue]())if(t[r.$isDataValue]()){const a=t[r.$getDataValue]();e[r.$setValue](createText(a))}else if(e instanceof n.Field&&e.ui&&e.ui.choiceList&&"multiSelect"===e.ui.choiceList.open){const a=t[r.$getChildren]().map((e=>e[r.$content].trim())).join("\n");e[r.$setValue](createText(a))}else this._isConsumeData()&&(0,o.warn)("XFA - Nodes haven't the same type.");else!t[r.$isDataValue]()||this._isMatchTemplate()?this._bindElement(e,t):(0,o.warn)("XFA - Nodes haven't the same type.")}_findDataByNameToConsume(e,t,a,n){if(!e)return null;let i,o;for(let n=0;n<3;n++){i=a[r.$getRealChildrenByNameIt](e,!1,!0);for(;;){o=i.next().value;if(!o)break;if(t===o[r.$isDataValue]())return o}if(a[r.$namespaceId]===s.NamespaceIds.datasets.id&&"data"===a[r.$nodeName])break;a=a[r.$getParent]()}if(!n)return null;i=this.data[r.$getRealChildrenByNameIt](e,!0,!1);o=i.next().value;if(o)return o;i=this.data[r.$getAttributeIt](e,!0);o=i.next().value;return o&&o[r.$isDataValue]()?o:null}_setProperties(e,t){if(e.hasOwnProperty("setProperty"))for(const{ref:a,target:s,connection:c}of e.setProperty.children){if(c)continue;if(!a)continue;const l=(0,i.searchNode)(this.root,t,a,!1,!1);if(!l){(0,o.warn)(`XFA - Invalid reference: ${a}.`);continue}const[h]=l;if(!h[r.$isDescendent](this.data)){(0,o.warn)("XFA - Invalid node: must be a data node.");continue}const u=(0,i.searchNode)(this.root,e,s,!1,!1);if(!u){(0,o.warn)(`XFA - Invalid target: ${s}.`);continue}const[d]=u;if(!d[r.$isDescendent](e)){(0,o.warn)("XFA - Invalid target: must be a property or subproperty.");continue}const f=d[r.$getParent]();if(d instanceof n.SetProperty||f instanceof n.SetProperty){(0,o.warn)("XFA - Invalid target: cannot be a setProperty or one of its properties.");continue}if(d instanceof n.BindItems||f instanceof n.BindItems){(0,o.warn)("XFA - Invalid target: cannot be a bindItems or one of its properties.");continue}const g=h[r.$text](),p=d[r.$nodeName];if(d instanceof r.XFAAttribute){const e=Object.create(null);e[p]=g;const t=Reflect.construct(Object.getPrototypeOf(f).constructor,[e]);f[p]=t[p]}else if(d.hasOwnProperty(r.$content)){d[r.$data]=h;d[r.$content]=g;d[r.$finalize]()}else(0,o.warn)("XFA - Invalid node to use in setProperty")}}_bindItems(e,t){if(!e.hasOwnProperty("items")||!e.hasOwnProperty("bindItems")||e.bindItems.isEmpty())return;for(const t of e.items.children)e[r.$removeChild](t);e.items.clear();const a=new n.Items({}),s=new n.Items({});e[r.$appendChild](a);e.items.push(a);e[r.$appendChild](s);e.items.push(s);for(const{ref:n,labelRef:c,valueRef:l,connection:h}of e.bindItems.children){if(h)continue;if(!n)continue;const e=(0,i.searchNode)(this.root,t,n,!1,!1);if(e)for(const t of e){if(!t[r.$isDescendent](this.datasets)){(0,o.warn)(`XFA - Invalid ref (${n}): must be a datasets child.`);continue}const e=(0,i.searchNode)(this.root,t,c,!0,!1);if(!e){(0,o.warn)(`XFA - Invalid label: ${c}.`);continue}const[h]=e;if(!h[r.$isDescendent](this.datasets)){(0,o.warn)("XFA - Invalid label: must be a datasets child.");continue}const u=(0,i.searchNode)(this.root,t,l,!0,!1);if(!u){(0,o.warn)(`XFA - Invalid value: ${l}.`);continue}const[d]=u;if(!d[r.$isDescendent](this.datasets)){(0,o.warn)("XFA - Invalid value: must be a datasets child.");continue}const f=createText(h[r.$text]()),g=createText(d[r.$text]());a[r.$appendChild](f);a.text.push(f);s[r.$appendChild](g);s.text.push(g)}else(0,o.warn)(`XFA - Invalid reference: ${n}.`)}}_bindOccurrences(e,t,a){let n;if(t.length>1){n=e[r.$clone]();n[r.$removeChild](n.occur);n.occur=null}this._bindValue(e,t[0],a);this._setProperties(e,t[0]);this._bindItems(e,t[0]);if(1===t.length)return;const i=e[r.$getParent](),s=e[r.$nodeName],o=i[r.$indexOf](e);for(let e=1,c=t.length;et.name===e.name)).length:a[n].children.length;const s=a[r.$indexOf](e)+1,o=t.initial-i;if(o){const t=e[r.$clone]();t[r.$removeChild](t.occur);t.occur=null;a[n].push(t);a[r.$insertAt](s,t);for(let e=1;e0)this._bindOccurrences(n,[e[0]],null);else if(this.emptyMerge){const e=t[r.$namespaceId]===c?-1:t[r.$namespaceId],a=n[r.$data]=new r.XmlObject(e,n.name||"root");t[r.$appendChild](a);this._bindElement(n,a)}continue}if(!n[r.$isBindable]())continue;let e=!1,s=null,l=null,h=null;if(n.bind){switch(n.bind.match){case"none":this._setAndBind(n,t);continue;case"global":e=!0;break;case"dataRef":if(!n.bind.ref){(0,o.warn)(`XFA - ref is empty in node ${n[r.$nodeName]}.`);this._setAndBind(n,t);continue}l=n.bind.ref}n.bind.picture&&(s=n.bind.picture[r.$content])}const[u,d]=this._getOccurInfo(n);if(l){h=(0,i.searchNode)(this.root,t,l,!0,!1);if(null===h){h=(0,i.createDataNode)(this.data,t,l);if(!h)continue;this._isConsumeData()&&(h[r.$consumed]=!0);this._setAndBind(n,h);continue}this._isConsumeData()&&(h=h.filter((e=>!e[r.$consumed])));h.length>d?h=h.slice(0,d):0===h.length&&(h=null);h&&this._isConsumeData()&&h.forEach((e=>{e[r.$consumed]=!0}))}else{if(!n.name){this._setAndBind(n,t);continue}if(this._isConsumeData()){const a=[];for(;a.length0?a:null}else{h=t[r.$getRealChildrenByNameIt](n.name,!1,this.emptyMerge).next().value;if(!h){if(0===u){a.push(n);continue}const e=t[r.$namespaceId]===c?-1:t[r.$namespaceId];h=n[r.$data]=new r.XmlObject(e,n.name);this.emptyMerge&&(h[r.$consumed]=!0);t[r.$appendChild](h);this._setAndBind(n,h);continue}this.emptyMerge&&(h[r.$consumed]=!0);h=[h]}}h?this._bindOccurrences(n,h,s):u>0?this._setAndBind(n,t):a.push(n)}a.forEach((e=>e[r.$getParent]()[r.$removeChild](e)))}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Value=t.Text=t.TemplateNamespace=t.Template=t.SetProperty=t.Items=t.Field=t.BindItems=void 0;var r=a(75),n=a(77),i=a(81),s=a(82),o=a(76),c=a(2),l=a(83),h=a(4),u=a(78);const d=n.NamespaceIds.template.id,f="http://www.w3.org/2000/svg",g=/^H(\d+)$/,p=new Set(["image/gif","image/jpeg","image/jpg","image/pjpeg","image/png","image/apng","image/x-png","image/bmp","image/x-ms-bmp","image/tiff","image/tif","application/octet-stream"]),m=[[[66,77],"image/bmp"],[[255,216,255],"image/jpeg"],[[73,73,42,0],"image/tiff"],[[77,77,0,42],"image/tiff"],[[71,73,70,56,57,97],"image/gif"],[[137,80,78,71,13,10,26,10],"image/png"]];function getBorderDims(e){if(!e||!e.border)return{w:0,h:0};const t=e.border[r.$getExtra]();return t?{w:t.widths[0]+t.widths[2]+t.insets[0]+t.insets[2],h:t.widths[1]+t.widths[3]+t.insets[1]+t.insets[3]}:{w:0,h:0}}function hasMargin(e){return e.margin&&(e.margin.topInset||e.margin.rightInset||e.margin.bottomInset||e.margin.leftInset)}function _setValue(e,t){if(!e.value){const t=new Value({});e[r.$appendChild](t);e.value=t}e.value[r.$setValue](t)}function*getContainedChildren(e){for(const t of e[r.$getChildren]())t instanceof SubformSet?yield*t[r.$getContainedChildren]():yield t}function isRequired(e){return e.validate&&"error"===e.validate.nullTest}function setTabIndex(e){for(;e;){if(!e.traversal){e[r.$tabIndex]=e[r.$getParent]()[r.$tabIndex];return}if(e[r.$tabIndex])return;let t=null;for(const a of e.traversal[r.$getChildren]())if("next"===a.operation){t=a;break}if(!t||!t.ref){e[r.$tabIndex]=e[r.$getParent]()[r.$tabIndex];return}const a=e[r.$getTemplateRoot]();e[r.$tabIndex]=++a[r.$tabIndex];const n=a[r.$searchNode](t.ref,e);if(!n)return;e=n[0]}}function applyAssist(e,t){const a=e.assist;if(a){const e=a[r.$toHTML]();e&&(t.title=e);const n=a.role.match(g);if(n){const e="heading",a=n[1];t.role=e;t["aria-level"]=a}}if("table"===e.layout)t.role="table";else if("row"===e.layout)t.role="row";else{const a=e[r.$getParent]();"row"===a.layout&&(a.assist&&"TH"===a.assist.role?t.role="columnheader":t.role="cell")}}function ariaLabel(e){if(!e.assist)return null;const t=e.assist;return t.speak&&""!==t.speak[r.$content]?t.speak[r.$content]:t.toolTip?t.toolTip[r.$content]:null}function valueToHtml(e){return o.HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:Object.create(null)},children:[{name:"span",attributes:{style:Object.create(null)},value:e}]})}function setFirstUnsplittable(e){const t=e[r.$getTemplateRoot]();if(null===t[r.$extra].firstUnsplittable){t[r.$extra].firstUnsplittable=e;t[r.$extra].noLayoutFailure=!0}}function unsetFirstUnsplittable(e){const t=e[r.$getTemplateRoot]();t[r.$extra].firstUnsplittable===e&&(t[r.$extra].noLayoutFailure=!1)}function handleBreak(e){if(e[r.$extra])return!1;e[r.$extra]=Object.create(null);if("auto"===e.targetType)return!1;const t=e[r.$getTemplateRoot]();let a=null;if(e.target){a=t[r.$searchNode](e.target,e[r.$getParent]());if(!a)return!1;a=a[0]}const{currentPageArea:n,currentContentArea:i}=t[r.$extra];if("pageArea"===e.targetType){a instanceof PageArea||(a=null);if(e.startNew){e[r.$extra].target=a||n;return!0}if(a&&a!==n){e[r.$extra].target=a;return!0}return!1}a instanceof ContentArea||(a=null);const s=a&&a[r.$getParent]();let o,c=s;if(e.startNew)if(a){const e=s.contentArea.children,t=e.indexOf(i),r=e.indexOf(a);-1!==t&&te;n[r.$extra].noLayoutFailure=!0;const o=t[r.$toHTML](a);e[r.$addHTML](o.html,o.bbox);n[r.$extra].noLayoutFailure=i;t[r.$getSubformParent]=s}class AppearanceFilter extends r.StringObject{constructor(e){super(d,"appearanceFilter");this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Arc extends r.XFAObject{constructor(e){super(d,"arc",!0);this.circular=(0,o.getInteger)({data:e.circular,defaultValue:0,validate:e=>1===e});this.hand=(0,o.getStringOption)(e.hand,["even","left","right"]);this.id=e.id||"";this.startAngle=(0,o.getFloat)({data:e.startAngle,defaultValue:0,validate:e=>!0});this.sweepAngle=(0,o.getFloat)({data:e.sweepAngle,defaultValue:360,validate:e=>!0});this.use=e.use||"";this.usehref=e.usehref||"";this.edge=null;this.fill=null}[r.$toHTML](){const e=this.edge||new Edge({}),t=e[r.$toStyle](),a=Object.create(null);this.fill&&"visible"===this.fill.presence?Object.assign(a,this.fill[r.$toStyle]()):a.fill="transparent";a.strokeWidth=(0,s.measureToString)("visible"===e.presence?e.thickness:0);a.stroke=t.color;let n;const i={xmlns:f,style:{width:"100%",height:"100%",overflow:"visible"}};if(360===this.sweepAngle)n={name:"ellipse",attributes:{xmlns:f,cx:"50%",cy:"50%",rx:"50%",ry:"50%",style:a}};else{const e=this.startAngle*Math.PI/180,t=this.sweepAngle*Math.PI/180,r=this.sweepAngle>180?1:0,[s,o,c,l]=[50*(1+Math.cos(e)),50*(1-Math.sin(e)),50*(1+Math.cos(e+t)),50*(1-Math.sin(e+t))];n={name:"path",attributes:{xmlns:f,d:`M ${s} ${o} A 50 50 0 ${r} 0 ${c} ${l}`,vectorEffect:"non-scaling-stroke",style:a}};Object.assign(i,{viewBox:"0 0 100 100",preserveAspectRatio:"none"})}const c={name:"svg",children:[n],attributes:i};if(hasMargin(this[r.$getParent]()[r.$getParent]()))return o.HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[c]});c.attributes.style.position="absolute";return o.HTMLResult.success(c)}}class Area extends r.XFAObject{constructor(e){super(d,"area",!0);this.colSpan=(0,o.getInteger)({data:e.colSpan,defaultValue:1,validate:e=>e>=1||-1===e});this.id=e.id||"";this.name=e.name||"";this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.desc=null;this.extras=null;this.area=new r.XFAObjectArray;this.draw=new r.XFAObjectArray;this.exObject=new r.XFAObjectArray;this.exclGroup=new r.XFAObjectArray;this.field=new r.XFAObjectArray;this.subform=new r.XFAObjectArray;this.subformSet=new r.XFAObjectArray}*[r.$getContainedChildren](){yield*getContainedChildren(this)}[r.$isTransparent](){return!0}[r.$isBindable](){return!0}[r.$addHTML](e,t){const[a,n,i,s]=t;this[r.$extra].width=Math.max(this[r.$extra].width,a+i);this[r.$extra].height=Math.max(this[r.$extra].height,n+s);this[r.$extra].children.push(e)}[r.$getAvailableSpace](){return this[r.$extra].availableSpace}[r.$toHTML](e){const t=(0,s.toStyle)(this,"position"),a={style:t,id:this[r.$uid],class:["xfaArea"]};(0,s.isPrintOnly)(this)&&a.class.push("xfaPrintOnly");this.name&&(a.xfaName=this.name);const n=[];this[r.$extra]={children:n,width:0,height:0,availableSpace:e};const i=this[r.$childrenToHTML]({filter:new Set(["area","draw","field","exclGroup","subform","subformSet"]),include:!0});if(!i.success){if(i.isBreak())return i;delete this[r.$extra];return o.HTMLResult.FAILURE}t.width=(0,s.measureToString)(this[r.$extra].width);t.height=(0,s.measureToString)(this[r.$extra].height);const c={name:"div",attributes:a,children:n},l=[this.x,this.y,this[r.$extra].width,this[r.$extra].height];delete this[r.$extra];return o.HTMLResult.success(c,l)}}class Assist extends r.XFAObject{constructor(e){super(d,"assist",!0);this.id=e.id||"";this.role=e.role||"";this.use=e.use||"";this.usehref=e.usehref||"";this.speak=null;this.toolTip=null}[r.$toHTML](){return this.toolTip&&this.toolTip[r.$content]?this.toolTip[r.$content]:null}}class Barcode extends r.XFAObject{constructor(e){super(d,"barcode",!0);this.charEncoding=(0,o.getKeyword)({data:e.charEncoding?e.charEncoding.toLowerCase():"",defaultValue:"",validate:e=>["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(e)||e.match(/iso-8859-\d{2}/)});this.checksum=(0,o.getStringOption)(e.checksum,["none","1mod10","1mod10_1mod11","2mod10","auto"]);this.dataColumnCount=(0,o.getInteger)({data:e.dataColumnCount,defaultValue:-1,validate:e=>e>=0});this.dataLength=(0,o.getInteger)({data:e.dataLength,defaultValue:-1,validate:e=>e>=0});this.dataPrep=(0,o.getStringOption)(e.dataPrep,["none","flateCompress"]);this.dataRowCount=(0,o.getInteger)({data:e.dataRowCount,defaultValue:-1,validate:e=>e>=0});this.endChar=e.endChar||"";this.errorCorrectionLevel=(0,o.getInteger)({data:e.errorCorrectionLevel,defaultValue:-1,validate:e=>e>=0&&e<=8});this.id=e.id||"";this.moduleHeight=(0,o.getMeasurement)(e.moduleHeight,"5mm");this.moduleWidth=(0,o.getMeasurement)(e.moduleWidth,"0.25mm");this.printCheckDigit=(0,o.getInteger)({data:e.printCheckDigit,defaultValue:0,validate:e=>1===e});this.rowColumnRatio=(0,o.getRatio)(e.rowColumnRatio);this.startChar=e.startChar||"";this.textLocation=(0,o.getStringOption)(e.textLocation,["below","above","aboveEmbedded","belowEmbedded","none"]);this.truncate=(0,o.getInteger)({data:e.truncate,defaultValue:0,validate:e=>1===e});this.type=(0,o.getStringOption)(e.type?e.type.toLowerCase():"",["aztec","codabar","code2of5industrial","code2of5interleaved","code2of5matrix","code2of5standard","code3of9","code3of9extended","code11","code49","code93","code128","code128a","code128b","code128c","code128sscc","datamatrix","ean8","ean8add2","ean8add5","ean13","ean13add2","ean13add5","ean13pwcd","fim","logmars","maxicode","msi","pdf417","pdf417macro","plessey","postauscust2","postauscust3","postausreplypaid","postausstandard","postukrm4scc","postusdpbc","postusimb","postusstandard","postus5zip","qrcode","rfid","rss14","rss14expanded","rss14limited","rss14stacked","rss14stackedomni","rss14truncated","telepen","ucc128","ucc128random","ucc128sscc","upca","upcaadd2","upcaadd5","upcapwcd","upce","upceadd2","upceadd5","upcean2","upcean5","upsmaxicode"]);this.upsMode=(0,o.getStringOption)(e.upsMode,["usCarrier","internationalCarrier","secureSymbol","standardSymbol"]);this.use=e.use||"";this.usehref=e.usehref||"";this.wideNarrowRatio=(0,o.getRatio)(e.wideNarrowRatio);this.encrypt=null;this.extras=null}}class Bind extends r.XFAObject{constructor(e){super(d,"bind",!0);this.match=(0,o.getStringOption)(e.match,["once","dataRef","global","none"]);this.ref=e.ref||"";this.picture=null}}class BindItems extends r.XFAObject{constructor(e){super(d,"bindItems");this.connection=e.connection||"";this.labelRef=e.labelRef||"";this.ref=e.ref||"";this.valueRef=e.valueRef||""}}t.BindItems=BindItems;class Bookend extends r.XFAObject{constructor(e){super(d,"bookend");this.id=e.id||"";this.leader=e.leader||"";this.trailer=e.trailer||"";this.use=e.use||"";this.usehref=e.usehref||""}}class BooleanElement extends r.Option01{constructor(e){super(d,"boolean");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$toHTML](e){return valueToHtml(1===this[r.$content]?"1":"0")}}class Border extends r.XFAObject{constructor(e){super(d,"border",!0);this.break=(0,o.getStringOption)(e.break,["close","open"]);this.hand=(0,o.getStringOption)(e.hand,["even","left","right"]);this.id=e.id||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.corner=new r.XFAObjectArray(4);this.edge=new r.XFAObjectArray(4);this.extras=null;this.fill=null;this.margin=null}[r.$getExtra](){if(!this[r.$extra]){const e=this.edge.children.slice();if(e.length<4){const t=e.at(-1)||new Edge({});for(let a=e.length;a<4;a++)e.push(t)}const t=e.map((e=>e.thickness)),a=[0,0,0,0];if(this.margin){a[0]=this.margin.topInset;a[1]=this.margin.rightInset;a[2]=this.margin.bottomInset;a[3]=this.margin.leftInset}this[r.$extra]={widths:t,insets:a,edges:e}}return this[r.$extra]}[r.$toStyle](){const{edges:e}=this[r.$getExtra](),t=e.map((e=>{const t=e[r.$toStyle]();t.color=t.color||"#000000";return t})),a=Object.create(null);this.margin&&Object.assign(a,this.margin[r.$toStyle]());this.fill&&"visible"===this.fill.presence&&Object.assign(a,this.fill[r.$toStyle]());if(this.corner.children.some((e=>0!==e.radius))){const e=this.corner.children.map((e=>e[r.$toStyle]()));if(2===e.length||3===e.length){const t=e.at(-1);for(let a=e.length;a<4;a++)e.push(t)}a.borderRadius=e.map((e=>e.radius)).join(" ")}switch(this.presence){case"invisible":case"hidden":a.borderStyle="";break;case"inactive":a.borderStyle="none";break;default:a.borderStyle=t.map((e=>e.style)).join(" ")}a.borderWidth=t.map((e=>e.width)).join(" ");a.borderColor=t.map((e=>e.color)).join(" ");return a}}class Break extends r.XFAObject{constructor(e){super(d,"break",!0);this.after=(0,o.getStringOption)(e.after,["auto","contentArea","pageArea","pageEven","pageOdd"]);this.afterTarget=e.afterTarget||"";this.before=(0,o.getStringOption)(e.before,["auto","contentArea","pageArea","pageEven","pageOdd"]);this.beforeTarget=e.beforeTarget||"";this.bookendLeader=e.bookendLeader||"";this.bookendTrailer=e.bookendTrailer||"";this.id=e.id||"";this.overflowLeader=e.overflowLeader||"";this.overflowTarget=e.overflowTarget||"";this.overflowTrailer=e.overflowTrailer||"";this.startNew=(0,o.getInteger)({data:e.startNew,defaultValue:0,validate:e=>1===e});this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}}class BreakAfter extends r.XFAObject{constructor(e){super(d,"breakAfter",!0);this.id=e.id||"";this.leader=e.leader||"";this.startNew=(0,o.getInteger)({data:e.startNew,defaultValue:0,validate:e=>1===e});this.target=e.target||"";this.targetType=(0,o.getStringOption)(e.targetType,["auto","contentArea","pageArea"]);this.trailer=e.trailer||"";this.use=e.use||"";this.usehref=e.usehref||"";this.script=null}}class BreakBefore extends r.XFAObject{constructor(e){super(d,"breakBefore",!0);this.id=e.id||"";this.leader=e.leader||"";this.startNew=(0,o.getInteger)({data:e.startNew,defaultValue:0,validate:e=>1===e});this.target=e.target||"";this.targetType=(0,o.getStringOption)(e.targetType,["auto","contentArea","pageArea"]);this.trailer=e.trailer||"";this.use=e.use||"";this.usehref=e.usehref||"";this.script=null}[r.$toHTML](e){this[r.$extra]={};return o.HTMLResult.FAILURE}}class Button extends r.XFAObject{constructor(e){super(d,"button",!0);this.highlight=(0,o.getStringOption)(e.highlight,["inverted","none","outline","push"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}[r.$toHTML](e){const t=this[r.$getParent]()[r.$getParent](),a={name:"button",attributes:{id:this[r.$uid],class:["xfaButton"],style:{}},children:[]};for(const e of t.event.children){if("click"!==e.activity||!e.script)continue;const t=(0,h.recoverJsURL)(e.script[r.$content]);if(!t)continue;const n=(0,s.fixURL)(t.url);n&&a.children.push({name:"a",attributes:{id:"link"+this[r.$uid],href:n,newWindow:t.newWindow,class:["xfaLink"],style:{}},children:[]})}return o.HTMLResult.success(a)}}class Calculate extends r.XFAObject{constructor(e){super(d,"calculate",!0);this.id=e.id||"";this.override=(0,o.getStringOption)(e.override,["disabled","error","ignore","warning"]);this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.message=null;this.script=null}}class Caption extends r.XFAObject{constructor(e){super(d,"caption",!0);this.id=e.id||"";this.placement=(0,o.getStringOption)(e.placement,["left","bottom","inline","right","top"]);this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.reserve=Math.ceil((0,o.getMeasurement)(e.reserve));this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.font=null;this.margin=null;this.para=null;this.value=null}[r.$setValue](e){_setValue(this,e)}[r.$getExtra](e){if(!this[r.$extra]){let{width:t,height:a}=e;switch(this.placement){case"left":case"right":case"inline":t=this.reserve<=0?t:this.reserve;break;case"top":case"bottom":a=this.reserve<=0?a:this.reserve}this[r.$extra]=(0,s.layoutNode)(this,{width:t,height:a})}return this[r.$extra]}[r.$toHTML](e){if(!this.value)return o.HTMLResult.EMPTY;this[r.$pushPara]();const t=this.value[r.$toHTML](e).html;if(!t){this[r.$popPara]();return o.HTMLResult.EMPTY}const a=this.reserve;if(this.reserve<=0){const{w:t,h:a}=this[r.$getExtra](e);switch(this.placement){case"left":case"right":case"inline":this.reserve=t;break;case"top":case"bottom":this.reserve=a}}const n=[];"string"==typeof t?n.push({name:"#text",value:t}):n.push(t);const i=(0,s.toStyle)(this,"font","margin","visibility");switch(this.placement){case"left":case"right":this.reserve>0&&(i.width=(0,s.measureToString)(this.reserve));break;case"top":case"bottom":this.reserve>0&&(i.height=(0,s.measureToString)(this.reserve))}(0,s.setPara)(this,null,t);this[r.$popPara]();this.reserve=a;return o.HTMLResult.success({name:"div",attributes:{style:i,class:["xfaCaption"]},children:n})}}class Certificate extends r.StringObject{constructor(e){super(d,"certificate");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Certificates extends r.XFAObject{constructor(e){super(d,"certificates",!0);this.credentialServerPolicy=(0,o.getStringOption)(e.credentialServerPolicy,["optional","required"]);this.id=e.id||"";this.url=e.url||"";this.urlPolicy=e.urlPolicy||"";this.use=e.use||"";this.usehref=e.usehref||"";this.encryption=null;this.issuers=null;this.keyUsage=null;this.oids=null;this.signing=null;this.subjectDNs=null}}class CheckButton extends r.XFAObject{constructor(e){super(d,"checkButton",!0);this.id=e.id||"";this.mark=(0,o.getStringOption)(e.mark,["default","check","circle","cross","diamond","square","star"]);this.shape=(0,o.getStringOption)(e.shape,["square","round"]);this.size=(0,o.getMeasurement)(e.size,"10pt");this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.margin=null}[r.$toHTML](e){const t=(0,s.toStyle)("margin"),a=(0,s.measureToString)(this.size);t.width=t.height=a;let n,i,c;const l=this[r.$getParent]()[r.$getParent](),h=l.items.children.length&&l.items.children[0][r.$toHTML]().html||[],u={on:(void 0!==h[0]?h[0]:"on").toString(),off:(void 0!==h[1]?h[1]:"off").toString()},d=(l.value&&l.value[r.$text]()||"off")===u.on||void 0,f=l[r.$getSubformParent](),g=l[r.$uid];let p;if(f instanceof ExclGroup){c=f[r.$uid];n="radio";i="xfaRadio";p=f[r.$data]&&f[r.$data][r.$uid]||f[r.$uid]}else{n="checkbox";i="xfaCheckbox";p=l[r.$data]&&l[r.$data][r.$uid]||l[r.$uid]}const m={name:"input",attributes:{class:[i],style:t,fieldId:g,dataId:p,type:n,checked:d,xfaOn:u.on,xfaOff:u.off,"aria-label":ariaLabel(l),"aria-required":!1}};c&&(m.attributes.name=c);if(isRequired(l)){m.attributes["aria-required"]=!0;m.attributes.required=!0}return o.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[m]})}}class ChoiceList extends r.XFAObject{constructor(e){super(d,"choiceList",!0);this.commitOn=(0,o.getStringOption)(e.commitOn,["select","exit"]);this.id=e.id||"";this.open=(0,o.getStringOption)(e.open,["userControl","always","multiSelect","onEntry"]);this.textEntry=(0,o.getInteger)({data:e.textEntry,defaultValue:0,validate:e=>1===e});this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.margin=null}[r.$toHTML](e){const t=(0,s.toStyle)(this,"border","margin"),a=this[r.$getParent]()[r.$getParent](),n={fontSize:`calc(${a.font&&a.font.size||10}px * var(--scale-factor))`},i=[];if(a.items.children.length>0){const e=a.items;let t=0,s=0;if(2===e.children.length){t=e.children[0].save;s=1-t}const o=e.children[t][r.$toHTML]().html,c=e.children[s][r.$toHTML]().html;let l=!1;const h=a.value&&a.value[r.$text]()||"";for(let e=0,t=o.length;ee>=0});this.use=e.use||"";this.usehref=e.usehref||""}}class Connect extends r.XFAObject{constructor(e){super(d,"connect",!0);this.connection=e.connection||"";this.id=e.id||"";this.ref=e.ref||"";this.usage=(0,o.getStringOption)(e.usage,["exportAndImport","exportOnly","importOnly"]);this.use=e.use||"";this.usehref=e.usehref||"";this.picture=null}}class ContentArea extends r.XFAObject{constructor(e){super(d,"contentArea",!0);this.h=(0,o.getMeasurement)(e.h);this.id=e.id||"";this.name=e.name||"";this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.w=(0,o.getMeasurement)(e.w);this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.desc=null;this.extras=null}[r.$toHTML](e){const t={left:(0,s.measureToString)(this.x),top:(0,s.measureToString)(this.y),width:(0,s.measureToString)(this.w),height:(0,s.measureToString)(this.h)},a=["xfaContentarea"];(0,s.isPrintOnly)(this)&&a.push("xfaPrintOnly");return o.HTMLResult.success({name:"div",children:[],attributes:{style:t,class:a,id:this[r.$uid]}})}}class Corner extends r.XFAObject{constructor(e){super(d,"corner",!0);this.id=e.id||"";this.inverted=(0,o.getInteger)({data:e.inverted,defaultValue:0,validate:e=>1===e});this.join=(0,o.getStringOption)(e.join,["square","round"]);this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.radius=(0,o.getMeasurement)(e.radius);this.stroke=(0,o.getStringOption)(e.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]);this.thickness=(0,o.getMeasurement)(e.thickness,"0.5pt");this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](){const e=(0,s.toStyle)(this,"visibility");e.radius=(0,s.measureToString)("square"===this.join?0:this.radius);return e}}class DateElement extends r.ContentObject{constructor(e){super(d,"date");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=this[r.$content].trim();this[r.$content]=e?new Date(e):null}[r.$toHTML](e){return valueToHtml(this[r.$content]?this[r.$content].toString():"")}}class DateTime extends r.ContentObject{constructor(e){super(d,"dateTime");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=this[r.$content].trim();this[r.$content]=e?new Date(e):null}[r.$toHTML](e){return valueToHtml(this[r.$content]?this[r.$content].toString():"")}}class DateTimeEdit extends r.XFAObject{constructor(e){super(d,"dateTimeEdit",!0);this.hScrollPolicy=(0,o.getStringOption)(e.hScrollPolicy,["auto","off","on"]);this.id=e.id||"";this.picker=(0,o.getStringOption)(e.picker,["host","none"]);this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.comb=null;this.extras=null;this.margin=null}[r.$toHTML](e){const t=(0,s.toStyle)(this,"border","font","margin"),a=this[r.$getParent]()[r.$getParent](),n={name:"input",attributes:{type:"text",fieldId:a[r.$uid],dataId:a[r.$data]&&a[r.$data][r.$uid]||a[r.$uid],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(a),"aria-required":!1}};if(isRequired(a)){n.attributes["aria-required"]=!0;n.attributes.required=!0}return o.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[n]})}}class Decimal extends r.ContentObject{constructor(e){super(d,"decimal");this.fracDigits=(0,o.getInteger)({data:e.fracDigits,defaultValue:2,validate:e=>!0});this.id=e.id||"";this.leadDigits=(0,o.getInteger)({data:e.leadDigits,defaultValue:-1,validate:e=>!0});this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=parseFloat(this[r.$content].trim());this[r.$content]=isNaN(e)?null:e}[r.$toHTML](e){return valueToHtml(null!==this[r.$content]?this[r.$content].toString():"")}}class DefaultUi extends r.XFAObject{constructor(e){super(d,"defaultUi",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}}class Desc extends r.XFAObject{constructor(e){super(d,"desc",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.boolean=new r.XFAObjectArray;this.date=new r.XFAObjectArray;this.dateTime=new r.XFAObjectArray;this.decimal=new r.XFAObjectArray;this.exData=new r.XFAObjectArray;this.float=new r.XFAObjectArray;this.image=new r.XFAObjectArray;this.integer=new r.XFAObjectArray;this.text=new r.XFAObjectArray;this.time=new r.XFAObjectArray}}class DigestMethod extends r.OptionObject{constructor(e){super(d,"digestMethod",["","SHA1","SHA256","SHA512","RIPEMD160"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class DigestMethods extends r.XFAObject{constructor(e){super(d,"digestMethods",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.digestMethod=new r.XFAObjectArray}}class Draw extends r.XFAObject{constructor(e){super(d,"draw",!0);this.anchorType=(0,o.getStringOption)(e.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);this.colSpan=(0,o.getInteger)({data:e.colSpan,defaultValue:1,validate:e=>e>=1||-1===e});this.h=e.h?(0,o.getMeasurement)(e.h):"";this.hAlign=(0,o.getStringOption)(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.locale=e.locale||"";this.maxH=(0,o.getMeasurement)(e.maxH,"0pt");this.maxW=(0,o.getMeasurement)(e.maxW,"0pt");this.minH=(0,o.getMeasurement)(e.minH,"0pt");this.minW=(0,o.getMeasurement)(e.minW,"0pt");this.name=e.name||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,o.getRelevant)(e.relevant);this.rotate=(0,o.getInteger)({data:e.rotate,defaultValue:0,validate:e=>e%90==0});this.use=e.use||"";this.usehref=e.usehref||"";this.w=e.w?(0,o.getMeasurement)(e.w):"";this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.assist=null;this.border=null;this.caption=null;this.desc=null;this.extras=null;this.font=null;this.keep=null;this.margin=null;this.para=null;this.traversal=null;this.ui=null;this.value=null;this.setProperty=new r.XFAObjectArray}[r.$setValue](e){_setValue(this,e)}[r.$toHTML](e){setTabIndex(this);if("hidden"===this.presence||"inactive"===this.presence)return o.HTMLResult.EMPTY;(0,s.fixDimensions)(this);this[r.$pushPara]();const t=this.w,a=this.h,{w:n,h:c,isBroken:l}=(0,s.layoutNode)(this,e);if(n&&""===this.w){if(l&&this[r.$getSubformParent]()[r.$isThereMoreWidth]()){this[r.$popPara]();return o.HTMLResult.FAILURE}this.w=n}c&&""===this.h&&(this.h=c);setFirstUnsplittable(this);if(!(0,i.checkDimensions)(this,e)){this.w=t;this.h=a;this[r.$popPara]();return o.HTMLResult.FAILURE}unsetFirstUnsplittable(this);const h=(0,s.toStyle)(this,"font","hAlign","dimensions","position","presence","rotate","anchorType","border","margin");(0,s.setMinMaxDimensions)(this,h);if(h.margin){h.padding=h.margin;delete h.margin}const u=["xfaDraw"];this.font&&u.push("xfaFont");(0,s.isPrintOnly)(this)&&u.push("xfaPrintOnly");const d={style:h,id:this[r.$uid],class:u};this.name&&(d.xfaName=this.name);const f={name:"div",attributes:d,children:[]};applyAssist(this,d);const g=(0,s.computeBbox)(this,f,e),p=this.value?this.value[r.$toHTML](e).html:null;if(null===p){this.w=t;this.h=a;this[r.$popPara]();return o.HTMLResult.success((0,s.createWrapper)(this,f),g)}f.children.push(p);(0,s.setPara)(this,h,p);this.w=t;this.h=a;this[r.$popPara]();return o.HTMLResult.success((0,s.createWrapper)(this,f),g)}}class Edge extends r.XFAObject{constructor(e){super(d,"edge",!0);this.cap=(0,o.getStringOption)(e.cap,["square","butt","round"]);this.id=e.id||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.stroke=(0,o.getStringOption)(e.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]);this.thickness=(0,o.getMeasurement)(e.thickness,"0.5pt");this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](){const e=(0,s.toStyle)(this,"visibility");Object.assign(e,{linecap:this.cap,width:(0,s.measureToString)(this.thickness),color:this.color?this.color[r.$toStyle]():"#000000",style:""});if("visible"!==this.presence)e.style="none";else switch(this.stroke){case"solid":e.style="solid";break;case"dashDot":case"dashDotDot":case"dashed":e.style="dashed";break;case"dotted":e.style="dotted";break;case"embossed":e.style="ridge";break;case"etched":e.style="groove";break;case"lowered":e.style="inset";break;case"raised":e.style="outset"}return e}}class Encoding extends r.OptionObject{constructor(e){super(d,"encoding",["adbe.x509.rsa_sha1","adbe.pkcs7.detached","adbe.pkcs7.sha1"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Encodings extends r.XFAObject{constructor(e){super(d,"encodings",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.encoding=new r.XFAObjectArray}}class Encrypt extends r.XFAObject{constructor(e){super(d,"encrypt",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.certificate=null}}class EncryptData extends r.XFAObject{constructor(e){super(d,"encryptData",!0);this.id=e.id||"";this.operation=(0,o.getStringOption)(e.operation,["encrypt","decrypt"]);this.target=e.target||"";this.use=e.use||"";this.usehref=e.usehref||"";this.filter=null;this.manifest=null}}class Encryption extends r.XFAObject{constructor(e){super(d,"encryption",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.certificate=new r.XFAObjectArray}}class EncryptionMethod extends r.OptionObject{constructor(e){super(d,"encryptionMethod",["","AES256-CBC","TRIPLEDES-CBC","AES128-CBC","AES192-CBC"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class EncryptionMethods extends r.XFAObject{constructor(e){super(d,"encryptionMethods",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.encryptionMethod=new r.XFAObjectArray}}class Event extends r.XFAObject{constructor(e){super(d,"event",!0);this.activity=(0,o.getStringOption)(e.activity,["click","change","docClose","docReady","enter","exit","full","indexChange","initialize","mouseDown","mouseEnter","mouseExit","mouseUp","postExecute","postOpen","postPrint","postSave","postSign","postSubmit","preExecute","preOpen","prePrint","preSave","preSign","preSubmit","ready","validationState"]);this.id=e.id||"";this.listen=(0,o.getStringOption)(e.listen,["refOnly","refAndDescendents"]);this.name=e.name||"";this.ref=e.ref||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.encryptData=null;this.execute=null;this.script=null;this.signData=null;this.submit=null}}class ExData extends r.ContentObject{constructor(e){super(d,"exData");this.contentType=e.contentType||"";this.href=e.href||"";this.id=e.id||"";this.maxLength=(0,o.getInteger)({data:e.maxLength,defaultValue:-1,validate:e=>e>=-1});this.name=e.name||"";this.rid=e.rid||"";this.transferEncoding=(0,o.getStringOption)(e.transferEncoding,["none","base64","package"]);this.use=e.use||"";this.usehref=e.usehref||""}[r.$isCDATAXml](){return"text/html"===this.contentType}[r.$onChild](e){if("text/html"===this.contentType&&e[r.$namespaceId]===n.NamespaceIds.xhtml.id){this[r.$content]=e;return!0}if("text/xml"===this.contentType){this[r.$content]=e;return!0}return!1}[r.$toHTML](e){return"text/html"===this.contentType&&this[r.$content]?this[r.$content][r.$toHTML](e):o.HTMLResult.EMPTY}}class ExObject extends r.XFAObject{constructor(e){super(d,"exObject",!0);this.archive=e.archive||"";this.classId=e.classId||"";this.codeBase=e.codeBase||"";this.codeType=e.codeType||"";this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.boolean=new r.XFAObjectArray;this.date=new r.XFAObjectArray;this.dateTime=new r.XFAObjectArray;this.decimal=new r.XFAObjectArray;this.exData=new r.XFAObjectArray;this.exObject=new r.XFAObjectArray;this.float=new r.XFAObjectArray;this.image=new r.XFAObjectArray;this.integer=new r.XFAObjectArray;this.text=new r.XFAObjectArray;this.time=new r.XFAObjectArray}}class ExclGroup extends r.XFAObject{constructor(e){super(d,"exclGroup",!0);this.access=(0,o.getStringOption)(e.access,["open","nonInteractive","protected","readOnly"]);this.accessKey=e.accessKey||"";this.anchorType=(0,o.getStringOption)(e.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);this.colSpan=(0,o.getInteger)({data:e.colSpan,defaultValue:1,validate:e=>e>=1||-1===e});this.h=e.h?(0,o.getMeasurement)(e.h):"";this.hAlign=(0,o.getStringOption)(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.layout=(0,o.getStringOption)(e.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]);this.maxH=(0,o.getMeasurement)(e.maxH,"0pt");this.maxW=(0,o.getMeasurement)(e.maxW,"0pt");this.minH=(0,o.getMeasurement)(e.minH,"0pt");this.minW=(0,o.getMeasurement)(e.minW,"0pt");this.name=e.name||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.w=e.w?(0,o.getMeasurement)(e.w):"";this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.assist=null;this.bind=null;this.border=null;this.calculate=null;this.caption=null;this.desc=null;this.extras=null;this.margin=null;this.para=null;this.traversal=null;this.validate=null;this.connect=new r.XFAObjectArray;this.event=new r.XFAObjectArray;this.field=new r.XFAObjectArray;this.setProperty=new r.XFAObjectArray}[r.$isBindable](){return!0}[r.$hasSettableValue](){return!0}[r.$setValue](e){for(const t of this.field.children){if(!t.value){const e=new Value({});t[r.$appendChild](e);t.value=e}t.value[r.$setValue](e)}}[r.$isThereMoreWidth](){return this.layout.endsWith("-tb")&&0===this[r.$extra].attempt&&this[r.$extra].numberInLine>0||this[r.$getParent]()[r.$isThereMoreWidth]()}[r.$isSplittable](){const e=this[r.$getSubformParent]();if(!e[r.$isSplittable]())return!1;if(void 0!==this[r.$extra]._isSplittable)return this[r.$extra]._isSplittable;if("position"===this.layout||this.layout.includes("row")){this[r.$extra]._isSplittable=!1;return!1}if(e.layout&&e.layout.endsWith("-tb")&&0!==e[r.$extra].numberInLine)return!1;this[r.$extra]._isSplittable=!0;return!0}[r.$flushHTML](){return(0,i.flushHTML)(this)}[r.$addHTML](e,t){(0,i.addHTML)(this,e,t)}[r.$getAvailableSpace](){return(0,i.getAvailableSpace)(this)}[r.$toHTML](e){setTabIndex(this);if("hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return o.HTMLResult.EMPTY;(0,s.fixDimensions)(this);const t=[],a={id:this[r.$uid],class:[]};(0,s.setAccess)(this,a.class);this[r.$extra]||(this[r.$extra]=Object.create(null));Object.assign(this[r.$extra],{children:t,attributes:a,attempt:0,line:null,numberInLine:0,availableSpace:{width:Math.min(this.w||1/0,e.width),height:Math.min(this.h||1/0,e.height)},width:0,height:0,prevHeight:0,currentWidth:0});const n=this[r.$isSplittable]();n||setFirstUnsplittable(this);if(!(0,i.checkDimensions)(this,e))return o.HTMLResult.FAILURE;const c=new Set(["field"]);if(this.layout.includes("row")){const e=this[r.$getSubformParent]().columnWidths;if(Array.isArray(e)&&e.length>0){this[r.$extra].columnWidths=e;this[r.$extra].currentColumn=0}}const l=(0,s.toStyle)(this,"anchorType","dimensions","position","presence","border","margin","hAlign"),h=["xfaExclgroup"],u=(0,s.layoutClass)(this);u&&h.push(u);(0,s.isPrintOnly)(this)&&h.push("xfaPrintOnly");a.style=l;a.class=h;this.name&&(a.xfaName=this.name);this[r.$pushPara]();const d="lr-tb"===this.layout||"rl-tb"===this.layout,f=d?2:1;for(;this[r.$extra].attempte>=1||-1===e});this.h=e.h?(0,o.getMeasurement)(e.h):"";this.hAlign=(0,o.getStringOption)(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.locale=e.locale||"";this.maxH=(0,o.getMeasurement)(e.maxH,"0pt");this.maxW=(0,o.getMeasurement)(e.maxW,"0pt");this.minH=(0,o.getMeasurement)(e.minH,"0pt");this.minW=(0,o.getMeasurement)(e.minW,"0pt");this.name=e.name||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,o.getRelevant)(e.relevant);this.rotate=(0,o.getInteger)({data:e.rotate,defaultValue:0,validate:e=>e%90==0});this.use=e.use||"";this.usehref=e.usehref||"";this.w=e.w?(0,o.getMeasurement)(e.w):"";this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.assist=null;this.bind=null;this.border=null;this.calculate=null;this.caption=null;this.desc=null;this.extras=null;this.font=null;this.format=null;this.items=new r.XFAObjectArray(2);this.keep=null;this.margin=null;this.para=null;this.traversal=null;this.ui=null;this.validate=null;this.value=null;this.bindItems=new r.XFAObjectArray;this.connect=new r.XFAObjectArray;this.event=new r.XFAObjectArray;this.setProperty=new r.XFAObjectArray}[r.$isBindable](){return!0}[r.$setValue](e){_setValue(this,e)}[r.$toHTML](e){setTabIndex(this);if(!this.ui){this.ui=new Ui({});this.ui[r.$globalData]=this[r.$globalData];this[r.$appendChild](this.ui);let e;switch(this.items.children.length){case 0:e=new TextEdit({});this.ui.textEdit=e;break;case 1:e=new CheckButton({});this.ui.checkButton=e;break;case 2:e=new ChoiceList({});this.ui.choiceList=e}this.ui[r.$appendChild](e)}if(!this.ui||"hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return o.HTMLResult.EMPTY;this.caption&&delete this.caption[r.$extra];this[r.$pushPara]();const t=this.caption?this.caption[r.$toHTML](e).html:null,a=this.w,n=this.h;let c=0,h=0;if(this.margin){c=this.margin.leftInset+this.margin.rightInset;h=this.margin.topInset+this.margin.bottomInset}let u=null;if(""===this.w||""===this.h){let t=null,a=null,n=0,i=0;if(this.ui.checkButton)n=i=this.ui.checkButton.size;else{const{w:t,h:a}=(0,s.layoutNode)(this,e);if(null!==t){n=t;i=a}else i=(0,l.getMetrics)(this.font,!0).lineNoGap}u=getBorderDims(this.ui[r.$getExtra]());n+=u.w;i+=u.h;if(this.caption){const{w:s,h:c,isBroken:l}=this.caption[r.$getExtra](e);if(l&&this[r.$getSubformParent]()[r.$isThereMoreWidth]()){this[r.$popPara]();return o.HTMLResult.FAILURE}t=s;a=c;switch(this.caption.placement){case"left":case"right":case"inline":t+=n;break;case"top":case"bottom":a+=i}}else{t=n;a=i}if(t&&""===this.w){t+=c;this.w=Math.min(this.maxW<=0?1/0:this.maxW,this.minW+1e>=1&&e<=5});this.appearanceFilter=null;this.certificates=null;this.digestMethods=null;this.encodings=null;this.encryptionMethods=null;this.handler=null;this.lockDocument=null;this.mdp=null;this.reasons=null;this.timeStamp=null}}class Float extends r.ContentObject{constructor(e){super(d,"float");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=parseFloat(this[r.$content].trim());this[r.$content]=isNaN(e)?null:e}[r.$toHTML](e){return valueToHtml(null!==this[r.$content]?this[r.$content].toString():"")}}class Font extends r.XFAObject{constructor(e){super(d,"font",!0);this.baselineShift=(0,o.getMeasurement)(e.baselineShift);this.fontHorizontalScale=(0,o.getFloat)({data:e.fontHorizontalScale,defaultValue:100,validate:e=>e>=0});this.fontVerticalScale=(0,o.getFloat)({data:e.fontVerticalScale,defaultValue:100,validate:e=>e>=0});this.id=e.id||"";this.kerningMode=(0,o.getStringOption)(e.kerningMode,["none","pair"]);this.letterSpacing=(0,o.getMeasurement)(e.letterSpacing,"0");this.lineThrough=(0,o.getInteger)({data:e.lineThrough,defaultValue:0,validate:e=>1===e||2===e});this.lineThroughPeriod=(0,o.getStringOption)(e.lineThroughPeriod,["all","word"]);this.overline=(0,o.getInteger)({data:e.overline,defaultValue:0,validate:e=>1===e||2===e});this.overlinePeriod=(0,o.getStringOption)(e.overlinePeriod,["all","word"]);this.posture=(0,o.getStringOption)(e.posture,["normal","italic"]);this.size=(0,o.getMeasurement)(e.size,"10pt");this.typeface=e.typeface||"Courier";this.underline=(0,o.getInteger)({data:e.underline,defaultValue:0,validate:e=>1===e||2===e});this.underlinePeriod=(0,o.getStringOption)(e.underlinePeriod,["all","word"]);this.use=e.use||"";this.usehref=e.usehref||"";this.weight=(0,o.getStringOption)(e.weight,["normal","bold"]);this.extras=null;this.fill=null}[r.$clean](e){super[r.$clean](e);this[r.$globalData].usedTypefaces.add(this.typeface)}[r.$toStyle](){const e=(0,s.toStyle)(this,"fill"),t=e.color;if(t)if("#000000"===t)delete e.color;else if(!t.startsWith("#")){e.background=t;e.backgroundClip="text";e.color="transparent"}this.baselineShift&&(e.verticalAlign=(0,s.measureToString)(this.baselineShift));e.fontKerning="none"===this.kerningMode?"none":"normal";e.letterSpacing=(0,s.measureToString)(this.letterSpacing);if(0!==this.lineThrough){e.textDecoration="line-through";2===this.lineThrough&&(e.textDecorationStyle="double")}if(0!==this.overline){e.textDecoration="overline";2===this.overline&&(e.textDecorationStyle="double")}e.fontStyle=this.posture;e.fontSize=(0,s.measureToString)(.99*this.size);(0,s.setFontFamily)(this,this,this[r.$globalData].fontFinder,e);if(0!==this.underline){e.textDecoration="underline";2===this.underline&&(e.textDecorationStyle="double")}e.fontWeight=this.weight;return e}}class Format extends r.XFAObject{constructor(e){super(d,"format",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.picture=null}}class Handler extends r.StringObject{constructor(e){super(d,"handler");this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Hyphenation extends r.XFAObject{constructor(e){super(d,"hyphenation");this.excludeAllCaps=(0,o.getInteger)({data:e.excludeAllCaps,defaultValue:0,validate:e=>1===e});this.excludeInitialCap=(0,o.getInteger)({data:e.excludeInitialCap,defaultValue:0,validate:e=>1===e});this.hyphenate=(0,o.getInteger)({data:e.hyphenate,defaultValue:0,validate:e=>1===e});this.id=e.id||"";this.pushCharacterCount=(0,o.getInteger)({data:e.pushCharacterCount,defaultValue:3,validate:e=>e>=0});this.remainCharacterCount=(0,o.getInteger)({data:e.remainCharacterCount,defaultValue:3,validate:e=>e>=0});this.use=e.use||"";this.usehref=e.usehref||"";this.wordCharacterCount=(0,o.getInteger)({data:e.wordCharacterCount,defaultValue:7,validate:e=>e>=0})}}class Image extends r.StringObject{constructor(e){super(d,"image");this.aspect=(0,o.getStringOption)(e.aspect,["fit","actual","height","none","width"]);this.contentType=e.contentType||"";this.href=e.href||"";this.id=e.id||"";this.name=e.name||"";this.transferEncoding=(0,o.getStringOption)(e.transferEncoding,["base64","none","package"]);this.use=e.use||"";this.usehref=e.usehref||""}[r.$toHTML](){if(this.contentType&&!p.has(this.contentType.toLowerCase()))return o.HTMLResult.EMPTY;let e=this[r.$globalData].images&&this[r.$globalData].images.get(this.href);if(!e&&(this.href||!this[r.$content]))return o.HTMLResult.EMPTY;e||"base64"!==this.transferEncoding||(e=(0,c.stringToBytes)(atob(this[r.$content])));if(!e)return o.HTMLResult.EMPTY;if(!this.contentType){for(const[t,a]of m)if(e.length>t.length&&t.every(((t,a)=>t===e[a]))){this.contentType=a;break}if(!this.contentType)return o.HTMLResult.EMPTY}const t=new Blob([e],{type:this.contentType});let a;switch(this.aspect){case"fit":case"actual":break;case"height":a={height:"100%",objectFit:"fill"};break;case"none":a={width:"100%",height:"100%",objectFit:"fill"};break;case"width":a={width:"100%",objectFit:"fill"}}const n=this[r.$getParent]();return o.HTMLResult.success({name:"img",attributes:{class:["xfaImage"],style:a,src:URL.createObjectURL(t),alt:n?ariaLabel(n[r.$getParent]()):null}})}}class ImageEdit extends r.XFAObject{constructor(e){super(d,"imageEdit",!0);this.data=(0,o.getStringOption)(e.data,["link","embed"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.margin=null}[r.$toHTML](e){return"embed"===this.data?o.HTMLResult.success({name:"div",children:[],attributes:{}}):o.HTMLResult.EMPTY}}class Integer extends r.ContentObject{constructor(e){super(d,"integer");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=parseInt(this[r.$content].trim(),10);this[r.$content]=isNaN(e)?null:e}[r.$toHTML](e){return valueToHtml(null!==this[r.$content]?this[r.$content].toString():"")}}class Issuers extends r.XFAObject{constructor(e){super(d,"issuers",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.certificate=new r.XFAObjectArray}}class Items extends r.XFAObject{constructor(e){super(d,"items",!0);this.id=e.id||"";this.name=e.name||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.ref=e.ref||"";this.save=(0,o.getInteger)({data:e.save,defaultValue:0,validate:e=>1===e});this.use=e.use||"";this.usehref=e.usehref||"";this.boolean=new r.XFAObjectArray;this.date=new r.XFAObjectArray;this.dateTime=new r.XFAObjectArray;this.decimal=new r.XFAObjectArray;this.exData=new r.XFAObjectArray;this.float=new r.XFAObjectArray;this.image=new r.XFAObjectArray;this.integer=new r.XFAObjectArray;this.text=new r.XFAObjectArray;this.time=new r.XFAObjectArray}[r.$toHTML](){const e=[];for(const t of this[r.$getChildren]())e.push(t[r.$text]());return o.HTMLResult.success(e)}}t.Items=Items;class Keep extends r.XFAObject{constructor(e){super(d,"keep",!0);this.id=e.id||"";const t=["none","contentArea","pageArea"];this.intact=(0,o.getStringOption)(e.intact,t);this.next=(0,o.getStringOption)(e.next,t);this.previous=(0,o.getStringOption)(e.previous,t);this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}}class KeyUsage extends r.XFAObject{constructor(e){super(d,"keyUsage");const t=["","yes","no"];this.crlSign=(0,o.getStringOption)(e.crlSign,t);this.dataEncipherment=(0,o.getStringOption)(e.dataEncipherment,t);this.decipherOnly=(0,o.getStringOption)(e.decipherOnly,t);this.digitalSignature=(0,o.getStringOption)(e.digitalSignature,t);this.encipherOnly=(0,o.getStringOption)(e.encipherOnly,t);this.id=e.id||"";this.keyAgreement=(0,o.getStringOption)(e.keyAgreement,t);this.keyCertSign=(0,o.getStringOption)(e.keyCertSign,t);this.keyEncipherment=(0,o.getStringOption)(e.keyEncipherment,t);this.nonRepudiation=(0,o.getStringOption)(e.nonRepudiation,t);this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Line extends r.XFAObject{constructor(e){super(d,"line",!0);this.hand=(0,o.getStringOption)(e.hand,["even","left","right"]);this.id=e.id||"";this.slope=(0,o.getStringOption)(e.slope,["\\","/"]);this.use=e.use||"";this.usehref=e.usehref||"";this.edge=null}[r.$toHTML](){const e=this[r.$getParent]()[r.$getParent](),t=this.edge||new Edge({}),a=t[r.$toStyle](),n=Object.create(null),i="visible"===t.presence?t.thickness:0;n.strokeWidth=(0,s.measureToString)(i);n.stroke=a.color;let c,l,h,u,d="100%",g="100%";if(e.w<=i){[c,l,h,u]=["50%",0,"50%","100%"];d=n.strokeWidth}else if(e.h<=i){[c,l,h,u]=[0,"50%","100%","50%"];g=n.strokeWidth}else"\\"===this.slope?[c,l,h,u]=[0,0,"100%","100%"]:[c,l,h,u]=[0,"100%","100%",0];const p={name:"svg",children:[{name:"line",attributes:{xmlns:f,x1:c,y1:l,x2:h,y2:u,style:n}}],attributes:{xmlns:f,width:d,height:g,style:{overflow:"visible"}}};if(hasMargin(e))return o.HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[p]});p.attributes.style.position="absolute";return o.HTMLResult.success(p)}}class Linear extends r.XFAObject{constructor(e){super(d,"linear",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["toRight","toBottom","toLeft","toTop"]);this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](e){e=e?e[r.$toStyle]():"#FFFFFF";return`linear-gradient(${this.type.replace(/([RBLT])/," $1").toLowerCase()}, ${e}, ${this.color?this.color[r.$toStyle]():"#000000"})`}}class LockDocument extends r.ContentObject{constructor(e){super(d,"lockDocument");this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){this[r.$content]=(0,o.getStringOption)(this[r.$content],["auto","0","1"])}}class Manifest extends r.XFAObject{constructor(e){super(d,"manifest",!0);this.action=(0,o.getStringOption)(e.action,["include","all","exclude"]);this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.ref=new r.XFAObjectArray}}class Margin extends r.XFAObject{constructor(e){super(d,"margin",!0);this.bottomInset=(0,o.getMeasurement)(e.bottomInset,"0");this.id=e.id||"";this.leftInset=(0,o.getMeasurement)(e.leftInset,"0");this.rightInset=(0,o.getMeasurement)(e.rightInset,"0");this.topInset=(0,o.getMeasurement)(e.topInset,"0");this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}[r.$toStyle](){return{margin:(0,s.measureToString)(this.topInset)+" "+(0,s.measureToString)(this.rightInset)+" "+(0,s.measureToString)(this.bottomInset)+" "+(0,s.measureToString)(this.leftInset)}}}class Mdp extends r.XFAObject{constructor(e){super(d,"mdp");this.id=e.id||"";this.permissions=(0,o.getInteger)({data:e.permissions,defaultValue:2,validate:e=>1===e||3===e});this.signatureType=(0,o.getStringOption)(e.signatureType,["filler","author"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Medium extends r.XFAObject{constructor(e){super(d,"medium");this.id=e.id||"";this.imagingBBox=(0,o.getBBox)(e.imagingBBox);this.long=(0,o.getMeasurement)(e.long);this.orientation=(0,o.getStringOption)(e.orientation,["portrait","landscape"]);this.short=(0,o.getMeasurement)(e.short);this.stock=e.stock||"";this.trayIn=(0,o.getStringOption)(e.trayIn,["auto","delegate","pageFront"]);this.trayOut=(0,o.getStringOption)(e.trayOut,["auto","delegate"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Message extends r.XFAObject{constructor(e){super(d,"message",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.text=new r.XFAObjectArray}}class NumericEdit extends r.XFAObject{constructor(e){super(d,"numericEdit",!0);this.hScrollPolicy=(0,o.getStringOption)(e.hScrollPolicy,["auto","off","on"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.comb=null;this.extras=null;this.margin=null}[r.$toHTML](e){const t=(0,s.toStyle)(this,"border","font","margin"),a=this[r.$getParent]()[r.$getParent](),n={name:"input",attributes:{type:"text",fieldId:a[r.$uid],dataId:a[r.$data]&&a[r.$data][r.$uid]||a[r.$uid],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(a),"aria-required":!1}};if(isRequired(a)){n.attributes["aria-required"]=!0;n.attributes.required=!0}return o.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[n]})}}class Occur extends r.XFAObject{constructor(e){super(d,"occur",!0);this.id=e.id||"";this.initial=""!==e.initial?(0,o.getInteger)({data:e.initial,defaultValue:"",validate:e=>!0}):"";this.max=""!==e.max?(0,o.getInteger)({data:e.max,defaultValue:1,validate:e=>!0}):"";this.min=""!==e.min?(0,o.getInteger)({data:e.min,defaultValue:1,validate:e=>!0}):"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}[r.$clean](){const e=this[r.$getParent](),t=this.min;""===this.min&&(this.min=e instanceof PageArea||e instanceof PageSet?0:1);""===this.max&&(this.max=""===t?e instanceof PageArea||e instanceof PageSet?-1:1:this.min);-1!==this.max&&this.max!0});this.name=e.name||"";this.numbered=(0,o.getInteger)({data:e.numbered,defaultValue:1,validate:e=>!0});this.oddOrEven=(0,o.getStringOption)(e.oddOrEven,["any","even","odd"]);this.pagePosition=(0,o.getStringOption)(e.pagePosition,["any","first","last","only","rest"]);this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.desc=null;this.extras=null;this.medium=null;this.occur=null;this.area=new r.XFAObjectArray;this.contentArea=new r.XFAObjectArray;this.draw=new r.XFAObjectArray;this.exclGroup=new r.XFAObjectArray;this.field=new r.XFAObjectArray;this.subform=new r.XFAObjectArray}[r.$isUsable](){if(!this[r.$extra]){this[r.$extra]={numberOfUse:0};return!0}return!this.occur||-1===this.occur.max||this[r.$extra].numberOfUsee.oddOrEven===t&&e.pagePosition===a));if(n)return n;n=this.pageArea.children.find((e=>"any"===e.oddOrEven&&e.pagePosition===a));if(n)return n;n=this.pageArea.children.find((e=>"any"===e.oddOrEven&&"any"===e.pagePosition));return n||this.pageArea.children[0]}}class Para extends r.XFAObject{constructor(e){super(d,"para",!0);this.hAlign=(0,o.getStringOption)(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.lineHeight=e.lineHeight?(0,o.getMeasurement)(e.lineHeight,"0pt"):"";this.marginLeft=e.marginLeft?(0,o.getMeasurement)(e.marginLeft,"0pt"):"";this.marginRight=e.marginRight?(0,o.getMeasurement)(e.marginRight,"0pt"):"";this.orphans=(0,o.getInteger)({data:e.orphans,defaultValue:0,validate:e=>e>=0});this.preserve=e.preserve||"";this.radixOffset=e.radixOffset?(0,o.getMeasurement)(e.radixOffset,"0pt"):"";this.spaceAbove=e.spaceAbove?(0,o.getMeasurement)(e.spaceAbove,"0pt"):"";this.spaceBelow=e.spaceBelow?(0,o.getMeasurement)(e.spaceBelow,"0pt"):"";this.tabDefault=e.tabDefault?(0,o.getMeasurement)(this.tabDefault):"";this.tabStops=(e.tabStops||"").trim().split(/\s+/).map(((e,t)=>t%2==1?(0,o.getMeasurement)(e):e));this.textIndent=e.textIndent?(0,o.getMeasurement)(e.textIndent,"0pt"):"";this.use=e.use||"";this.usehref=e.usehref||"";this.vAlign=(0,o.getStringOption)(e.vAlign,["top","bottom","middle"]);this.widows=(0,o.getInteger)({data:e.widows,defaultValue:0,validate:e=>e>=0});this.hyphenation=null}[r.$toStyle](){const e=(0,s.toStyle)(this,"hAlign");""!==this.marginLeft&&(e.paddingLeft=(0,s.measureToString)(this.marginLeft));""!==this.marginRight&&(e.paddingight=(0,s.measureToString)(this.marginRight));""!==this.spaceAbove&&(e.paddingTop=(0,s.measureToString)(this.spaceAbove));""!==this.spaceBelow&&(e.paddingBottom=(0,s.measureToString)(this.spaceBelow));if(""!==this.textIndent){e.textIndent=(0,s.measureToString)(this.textIndent);(0,s.fixTextIndent)(e)}this.lineHeight>0&&(e.lineHeight=(0,s.measureToString)(this.lineHeight));""!==this.tabDefault&&(e.tabSize=(0,s.measureToString)(this.tabDefault));this.tabStops.length;this.hyphenatation&&Object.assign(e,this.hyphenatation[r.$toStyle]());return e}}class PasswordEdit extends r.XFAObject{constructor(e){super(d,"passwordEdit",!0);this.hScrollPolicy=(0,o.getStringOption)(e.hScrollPolicy,["auto","off","on"]);this.id=e.id||"";this.passwordChar=e.passwordChar||"*";this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.margin=null}}class Pattern extends r.XFAObject{constructor(e){super(d,"pattern",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["crossHatch","crossDiagonal","diagonalLeft","diagonalRight","horizontal","vertical"]);this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](e){e=e?e[r.$toStyle]():"#FFFFFF";const t=this.color?this.color[r.$toStyle]():"#000000",a="repeating-linear-gradient",n=`${e},${e} 5px,${t} 5px,${t} 10px`;switch(this.type){case"crossHatch":return`${a}(to top,${n}) ${a}(to right,${n})`;case"crossDiagonal":return`${a}(45deg,${n}) ${a}(-45deg,${n})`;case"diagonalLeft":return`${a}(45deg,${n})`;case"diagonalRight":return`${a}(-45deg,${n})`;case"horizontal":return`${a}(to top,${n})`;case"vertical":return`${a}(to right,${n})`}return""}}class Picture extends r.StringObject{constructor(e){super(d,"picture");this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Proto extends r.XFAObject{constructor(e){super(d,"proto",!0);this.appearanceFilter=new r.XFAObjectArray;this.arc=new r.XFAObjectArray;this.area=new r.XFAObjectArray;this.assist=new r.XFAObjectArray;this.barcode=new r.XFAObjectArray;this.bindItems=new r.XFAObjectArray;this.bookend=new r.XFAObjectArray;this.boolean=new r.XFAObjectArray;this.border=new r.XFAObjectArray;this.break=new r.XFAObjectArray;this.breakAfter=new r.XFAObjectArray;this.breakBefore=new r.XFAObjectArray;this.button=new r.XFAObjectArray;this.calculate=new r.XFAObjectArray;this.caption=new r.XFAObjectArray;this.certificate=new r.XFAObjectArray;this.certificates=new r.XFAObjectArray;this.checkButton=new r.XFAObjectArray;this.choiceList=new r.XFAObjectArray;this.color=new r.XFAObjectArray;this.comb=new r.XFAObjectArray;this.connect=new r.XFAObjectArray;this.contentArea=new r.XFAObjectArray;this.corner=new r.XFAObjectArray;this.date=new r.XFAObjectArray;this.dateTime=new r.XFAObjectArray;this.dateTimeEdit=new r.XFAObjectArray;this.decimal=new r.XFAObjectArray;this.defaultUi=new r.XFAObjectArray;this.desc=new r.XFAObjectArray;this.digestMethod=new r.XFAObjectArray;this.digestMethods=new r.XFAObjectArray;this.draw=new r.XFAObjectArray;this.edge=new r.XFAObjectArray;this.encoding=new r.XFAObjectArray;this.encodings=new r.XFAObjectArray;this.encrypt=new r.XFAObjectArray;this.encryptData=new r.XFAObjectArray;this.encryption=new r.XFAObjectArray;this.encryptionMethod=new r.XFAObjectArray;this.encryptionMethods=new r.XFAObjectArray;this.event=new r.XFAObjectArray;this.exData=new r.XFAObjectArray;this.exObject=new r.XFAObjectArray;this.exclGroup=new r.XFAObjectArray;this.execute=new r.XFAObjectArray;this.extras=new r.XFAObjectArray;this.field=new r.XFAObjectArray;this.fill=new r.XFAObjectArray;this.filter=new r.XFAObjectArray;this.float=new r.XFAObjectArray;this.font=new r.XFAObjectArray;this.format=new r.XFAObjectArray;this.handler=new r.XFAObjectArray;this.hyphenation=new r.XFAObjectArray;this.image=new r.XFAObjectArray;this.imageEdit=new r.XFAObjectArray;this.integer=new r.XFAObjectArray;this.issuers=new r.XFAObjectArray;this.items=new r.XFAObjectArray;this.keep=new r.XFAObjectArray;this.keyUsage=new r.XFAObjectArray;this.line=new r.XFAObjectArray;this.linear=new r.XFAObjectArray;this.lockDocument=new r.XFAObjectArray;this.manifest=new r.XFAObjectArray;this.margin=new r.XFAObjectArray;this.mdp=new r.XFAObjectArray;this.medium=new r.XFAObjectArray;this.message=new r.XFAObjectArray;this.numericEdit=new r.XFAObjectArray;this.occur=new r.XFAObjectArray;this.oid=new r.XFAObjectArray;this.oids=new r.XFAObjectArray;this.overflow=new r.XFAObjectArray;this.pageArea=new r.XFAObjectArray;this.pageSet=new r.XFAObjectArray;this.para=new r.XFAObjectArray;this.passwordEdit=new r.XFAObjectArray;this.pattern=new r.XFAObjectArray;this.picture=new r.XFAObjectArray;this.radial=new r.XFAObjectArray;this.reason=new r.XFAObjectArray;this.reasons=new r.XFAObjectArray;this.rectangle=new r.XFAObjectArray;this.ref=new r.XFAObjectArray;this.script=new r.XFAObjectArray;this.setProperty=new r.XFAObjectArray;this.signData=new r.XFAObjectArray;this.signature=new r.XFAObjectArray;this.signing=new r.XFAObjectArray;this.solid=new r.XFAObjectArray;this.speak=new r.XFAObjectArray;this.stipple=new r.XFAObjectArray;this.subform=new r.XFAObjectArray;this.subformSet=new r.XFAObjectArray;this.subjectDN=new r.XFAObjectArray;this.subjectDNs=new r.XFAObjectArray;this.submit=new r.XFAObjectArray;this.text=new r.XFAObjectArray;this.textEdit=new r.XFAObjectArray;this.time=new r.XFAObjectArray;this.timeStamp=new r.XFAObjectArray;this.toolTip=new r.XFAObjectArray;this.traversal=new r.XFAObjectArray;this.traverse=new r.XFAObjectArray;this.ui=new r.XFAObjectArray;this.validate=new r.XFAObjectArray;this.value=new r.XFAObjectArray;this.variables=new r.XFAObjectArray}}class Radial extends r.XFAObject{constructor(e){super(d,"radial",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["toEdge","toCenter"]);this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](e){e=e?e[r.$toStyle]():"#FFFFFF";const t=this.color?this.color[r.$toStyle]():"#000000";return`radial-gradient(circle at center, ${"toEdge"===this.type?`${e},${t}`:`${t},${e}`})`}}class Reason extends r.StringObject{constructor(e){super(d,"reason");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Reasons extends r.XFAObject{constructor(e){super(d,"reasons",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.reason=new r.XFAObjectArray}}class Rectangle extends r.XFAObject{constructor(e){super(d,"rectangle",!0);this.hand=(0,o.getStringOption)(e.hand,["even","left","right"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.corner=new r.XFAObjectArray(4);this.edge=new r.XFAObjectArray(4);this.fill=null}[r.$toHTML](){const e=this.edge.children.length?this.edge.children[0]:new Edge({}),t=e[r.$toStyle](),a=Object.create(null);this.fill&&"visible"===this.fill.presence?Object.assign(a,this.fill[r.$toStyle]()):a.fill="transparent";a.strokeWidth=(0,s.measureToString)("visible"===e.presence?e.thickness:0);a.stroke=t.color;const n=(this.corner.children.length?this.corner.children[0]:new Corner({}))[r.$toStyle](),i={name:"svg",children:[{name:"rect",attributes:{xmlns:f,width:"100%",height:"100%",x:0,y:0,rx:n.radius,ry:n.radius,style:a}}],attributes:{xmlns:f,style:{overflow:"visible"},width:"100%",height:"100%"}};if(hasMargin(this[r.$getParent]()[r.$getParent]()))return o.HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[i]});i.attributes.style.position="absolute";return o.HTMLResult.success(i)}}class RefElement extends r.StringObject{constructor(e){super(d,"ref");this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Script extends r.StringObject{constructor(e){super(d,"script");this.binding=e.binding||"";this.contentType=e.contentType||"";this.id=e.id||"";this.name=e.name||"";this.runAt=(0,o.getStringOption)(e.runAt,["client","both","server"]);this.use=e.use||"";this.usehref=e.usehref||""}}class SetProperty extends r.XFAObject{constructor(e){super(d,"setProperty");this.connection=e.connection||"";this.ref=e.ref||"";this.target=e.target||""}}t.SetProperty=SetProperty;class SignData extends r.XFAObject{constructor(e){super(d,"signData",!0);this.id=e.id||"";this.operation=(0,o.getStringOption)(e.operation,["sign","clear","verify"]);this.ref=e.ref||"";this.target=e.target||"";this.use=e.use||"";this.usehref=e.usehref||"";this.filter=null;this.manifest=null}}class Signature extends r.XFAObject{constructor(e){super(d,"signature",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["PDF1.3","PDF1.6"]);this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.filter=null;this.manifest=null;this.margin=null}}class Signing extends r.XFAObject{constructor(e){super(d,"signing",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.certificate=new r.XFAObjectArray}}class Solid extends r.XFAObject{constructor(e){super(d,"solid",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}[r.$toStyle](e){return e?e[r.$toStyle]():"#FFFFFF"}}class Speak extends r.StringObject{constructor(e){super(d,"speak");this.disable=(0,o.getInteger)({data:e.disable,defaultValue:0,validate:e=>1===e});this.id=e.id||"";this.priority=(0,o.getStringOption)(e.priority,["custom","caption","name","toolTip"]);this.rid=e.rid||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Stipple extends r.XFAObject{constructor(e){super(d,"stipple",!0);this.id=e.id||"";this.rate=(0,o.getInteger)({data:e.rate,defaultValue:50,validate:e=>e>=0&&e<=100});this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](e){const t=this.rate/100;return c.Util.makeHexColor(Math.round(e.value.r*(1-t)+this.value.r*t),Math.round(e.value.g*(1-t)+this.value.g*t),Math.round(e.value.b*(1-t)+this.value.b*t))}}class Subform extends r.XFAObject{constructor(e){super(d,"subform",!0);this.access=(0,o.getStringOption)(e.access,["open","nonInteractive","protected","readOnly"]);this.allowMacro=(0,o.getInteger)({data:e.allowMacro,defaultValue:0,validate:e=>1===e});this.anchorType=(0,o.getStringOption)(e.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);this.colSpan=(0,o.getInteger)({data:e.colSpan,defaultValue:1,validate:e=>e>=1||-1===e});this.columnWidths=(e.columnWidths||"").trim().split(/\s+/).map((e=>"-1"===e?-1:(0,o.getMeasurement)(e)));this.h=e.h?(0,o.getMeasurement)(e.h):"";this.hAlign=(0,o.getStringOption)(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.layout=(0,o.getStringOption)(e.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]);this.locale=e.locale||"";this.maxH=(0,o.getMeasurement)(e.maxH,"0pt");this.maxW=(0,o.getMeasurement)(e.maxW,"0pt");this.mergeMode=(0,o.getStringOption)(e.mergeMode,["consumeData","matchTemplate"]);this.minH=(0,o.getMeasurement)(e.minH,"0pt");this.minW=(0,o.getMeasurement)(e.minW,"0pt");this.name=e.name||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,o.getRelevant)(e.relevant);this.restoreState=(0,o.getStringOption)(e.restoreState,["manual","auto"]);this.scope=(0,o.getStringOption)(e.scope,["name","none"]);this.use=e.use||"";this.usehref=e.usehref||"";this.w=e.w?(0,o.getMeasurement)(e.w):"";this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.assist=null;this.bind=null;this.bookend=null;this.border=null;this.break=null;this.calculate=null;this.desc=null;this.extras=null;this.keep=null;this.margin=null;this.occur=null;this.overflow=null;this.pageSet=null;this.para=null;this.traversal=null;this.validate=null;this.variables=null;this.area=new r.XFAObjectArray;this.breakAfter=new r.XFAObjectArray;this.breakBefore=new r.XFAObjectArray;this.connect=new r.XFAObjectArray;this.draw=new r.XFAObjectArray;this.event=new r.XFAObjectArray;this.exObject=new r.XFAObjectArray;this.exclGroup=new r.XFAObjectArray;this.field=new r.XFAObjectArray;this.proto=new r.XFAObjectArray;this.setProperty=new r.XFAObjectArray;this.subform=new r.XFAObjectArray;this.subformSet=new r.XFAObjectArray}[r.$getSubformParent](){const e=this[r.$getParent]();return e instanceof SubformSet?e[r.$getSubformParent]():e}[r.$isBindable](){return!0}[r.$isThereMoreWidth](){return this.layout.endsWith("-tb")&&0===this[r.$extra].attempt&&this[r.$extra].numberInLine>0||this[r.$getParent]()[r.$isThereMoreWidth]()}*[r.$getContainedChildren](){yield*getContainedChildren(this)}[r.$flushHTML](){return(0,i.flushHTML)(this)}[r.$addHTML](e,t){(0,i.addHTML)(this,e,t)}[r.$getAvailableSpace](){return(0,i.getAvailableSpace)(this)}[r.$isSplittable](){const e=this[r.$getSubformParent]();if(!e[r.$isSplittable]())return!1;if(void 0!==this[r.$extra]._isSplittable)return this[r.$extra]._isSplittable;if("position"===this.layout||this.layout.includes("row")){this[r.$extra]._isSplittable=!1;return!1}if(this.keep&&"none"!==this.keep.intact){this[r.$extra]._isSplittable=!1;return!1}if(e.layout&&e.layout.endsWith("-tb")&&0!==e[r.$extra].numberInLine)return!1;this[r.$extra]._isSplittable=!0;return!0}[r.$toHTML](e){setTabIndex(this);if(this.break){if("auto"!==this.break.after||""!==this.break.afterTarget){const e=new BreakAfter({targetType:this.break.after,target:this.break.afterTarget,startNew:this.break.startNew.toString()});e[r.$globalData]=this[r.$globalData];this[r.$appendChild](e);this.breakAfter.push(e)}if("auto"!==this.break.before||""!==this.break.beforeTarget){const e=new BreakBefore({targetType:this.break.before,target:this.break.beforeTarget,startNew:this.break.startNew.toString()});e[r.$globalData]=this[r.$globalData];this[r.$appendChild](e);this.breakBefore.push(e)}if(""!==this.break.overflowTarget){const e=new Overflow({target:this.break.overflowTarget,leader:this.break.overflowLeader,trailer:this.break.overflowTrailer});e[r.$globalData]=this[r.$globalData];this[r.$appendChild](e);this.overflow.push(e)}this[r.$removeChild](this.break);this.break=null}if("hidden"===this.presence||"inactive"===this.presence)return o.HTMLResult.EMPTY;(this.breakBefore.children.length>1||this.breakAfter.children.length>1)&&(0,c.warn)("XFA - Several breakBefore or breakAfter in subforms: please file a bug.");if(this.breakBefore.children.length>=1){const e=this.breakBefore.children[0];if(handleBreak(e))return o.HTMLResult.breakNode(e)}if(this[r.$extra]&&this[r.$extra].afterBreakAfter)return o.HTMLResult.EMPTY;(0,s.fixDimensions)(this);const t=[],a={id:this[r.$uid],class:[]};(0,s.setAccess)(this,a.class);this[r.$extra]||(this[r.$extra]=Object.create(null));Object.assign(this[r.$extra],{children:t,line:null,attributes:a,attempt:0,numberInLine:0,availableSpace:{width:Math.min(this.w||1/0,e.width),height:Math.min(this.h||1/0,e.height)},width:0,height:0,prevHeight:0,currentWidth:0});const n=this[r.$getTemplateRoot](),l=n[r.$extra].noLayoutFailure,h=this[r.$isSplittable]();h||setFirstUnsplittable(this);if(!(0,i.checkDimensions)(this,e))return o.HTMLResult.FAILURE;const u=new Set(["area","draw","exclGroup","field","subform","subformSet"]);if(this.layout.includes("row")){const e=this[r.$getSubformParent]().columnWidths;if(Array.isArray(e)&&e.length>0){this[r.$extra].columnWidths=e;this[r.$extra].currentColumn=0}}const d=(0,s.toStyle)(this,"anchorType","dimensions","position","presence","border","margin","hAlign"),f=["xfaSubform"],g=(0,s.layoutClass)(this);g&&f.push(g);a.style=d;a.class=f;this.name&&(a.xfaName=this.name);if(this.overflow){const t=this.overflow[r.$getExtra]();if(t.addLeader){t.addLeader=!1;handleOverflow(this,t.leader,e)}}this[r.$pushPara]();const p="lr-tb"===this.layout||"rl-tb"===this.layout,m=p?2:1;for(;this[r.$extra].attempt=1){const e=this.breakAfter.children[0];if(handleBreak(e)){this[r.$extra].afterBreakAfter=k;return o.HTMLResult.breakNode(e)}}delete this[r.$extra];return k}}class SubformSet extends r.XFAObject{constructor(e){super(d,"subformSet",!0);this.id=e.id||"";this.name=e.name||"";this.relation=(0,o.getStringOption)(e.relation,["ordered","choice","unordered"]);this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.bookend=null;this.break=null;this.desc=null;this.extras=null;this.occur=null;this.overflow=null;this.breakAfter=new r.XFAObjectArray;this.breakBefore=new r.XFAObjectArray;this.subform=new r.XFAObjectArray;this.subformSet=new r.XFAObjectArray}*[r.$getContainedChildren](){yield*getContainedChildren(this)}[r.$getSubformParent](){let e=this[r.$getParent]();for(;!(e instanceof Subform);)e=e[r.$getParent]();return e}[r.$isBindable](){return!0}}class SubjectDN extends r.ContentObject{constructor(e){super(d,"subjectDN");this.delimiter=e.delimiter||",";this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){this[r.$content]=new Map(this[r.$content].split(this.delimiter).map((e=>{(e=e.split("=",2))[0]=e[0].trim();return e})))}}class SubjectDNs extends r.XFAObject{constructor(e){super(d,"subjectDNs",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.subjectDN=new r.XFAObjectArray}}class Submit extends r.XFAObject{constructor(e){super(d,"submit",!0);this.embedPDF=(0,o.getInteger)({data:e.embedPDF,defaultValue:0,validate:e=>1===e});this.format=(0,o.getStringOption)(e.format,["xdp","formdata","pdf","urlencoded","xfd","xml"]);this.id=e.id||"";this.target=e.target||"";this.textEncoding=(0,o.getKeyword)({data:e.textEncoding?e.textEncoding.toLowerCase():"",defaultValue:"",validate:e=>["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(e)||e.match(/iso-8859-\d{2}/)});this.use=e.use||"";this.usehref=e.usehref||"";this.xdpContent=e.xdpContent||"";this.encrypt=null;this.encryptData=new r.XFAObjectArray;this.signData=new r.XFAObjectArray}}class Template extends r.XFAObject{constructor(e){super(d,"template",!0);this.baseProfile=(0,o.getStringOption)(e.baseProfile,["full","interactiveForms"]);this.extras=null;this.subform=new r.XFAObjectArray}[r.$finalize](){0===this.subform.children.length&&(0,c.warn)("XFA - No subforms in template node.");this.subform.children.length>=2&&(0,c.warn)("XFA - Several subforms in template node: please file a bug.");this[r.$tabIndex]=5e3}[r.$isSplittable](){return!0}[r.$searchNode](e,t){return e.startsWith("#")?[this[r.$ids].get(e.slice(1))]:(0,u.searchNode)(this,t,e,!0,!0)}*[r.$toPages](){if(!this.subform.children.length)return o.HTMLResult.success({name:"div",children:[]});this[r.$extra]={overflowNode:null,firstUnsplittable:null,currentContentArea:null,currentPageArea:null,noLayoutFailure:!1,pageNumber:1,pagePosition:"first",oddOrEven:"odd",blankOrNotBlank:"nonBlank",paraStack:[]};const e=this.subform.children[0];e.pageSet[r.$cleanPage]();const t=e.pageSet.pageArea.children,a={name:"div",children:[]};let n=null,i=null,s=null;if(e.breakBefore.children.length>=1){i=e.breakBefore.children[0];s=i.target}else if(e.subform.children.length>=1&&e.subform.children[0].breakBefore.children.length>=1){i=e.subform.children[0].breakBefore.children[0];s=i.target}else if(e.break&&e.break.beforeTarget){i=e.break;s=i.beforeTarget}else if(e.subform.children.length>=1&&e.subform.children[0].break&&e.subform.children[0].break.beforeTarget){i=e.subform.children[0].break;s=i.beforeTarget}if(i){const e=this[r.$searchNode](s,i[r.$getParent]());if(e instanceof PageArea){n=e;i[r.$extra]={}}}n||(n=t[0]);n[r.$extra]={numberOfUse:1};const l=n[r.$getParent]();l[r.$extra]={numberOfUse:1,pageIndex:l.pageArea.children.indexOf(n),pageSetIndex:0};let h,u=null,d=null,f=!0,g=0,p=0;for(;;){if(f)g=0;else{a.children.pop();if(3==++g){(0,c.warn)("XFA - Something goes wrong: please file a bug.");return a}}h=null;this[r.$extra].currentPageArea=n;const t=n[r.$toHTML]().html;a.children.push(t);if(u){this[r.$extra].noLayoutFailure=!0;t.children.push(u[r.$toHTML](n[r.$extra].space).html);u=null}if(d){this[r.$extra].noLayoutFailure=!0;t.children.push(d[r.$toHTML](n[r.$extra].space).html);d=null}const i=n.contentArea.children,s=t.children.filter((e=>e.attributes.class.includes("xfaContentarea")));f=!1;this[r.$extra].firstUnsplittable=null;this[r.$extra].noLayoutFailure=!1;const flush=t=>{const a=e[r.$flushHTML]();if(a){f=f||a.children&&0!==a.children.length;s[t].children.push(a)}};for(let t=p,n=i.length;t1&&a.children.pop();return a}if(c.isBreak()){const e=c.breakNode;flush(t);if("auto"===e.targetType)continue;if(e.leader){u=this[r.$searchNode](e.leader,e[r.$getParent]());u=u?u[0]:null}if(e.trailer){d=this[r.$searchNode](e.trailer,e[r.$getParent]());d=d?d[0]:null}if("pageArea"===e.targetType){h=e[r.$extra].target;t=1/0}else if(e[r.$extra].target){h=e[r.$extra].target;p=e[r.$extra].index+1;t=1/0}else t=e[r.$extra].index}else if(this[r.$extra].overflowNode){const e=this[r.$extra].overflowNode;this[r.$extra].overflowNode=null;const a=e[r.$getExtra](),n=a.target;a.addLeader=null!==a.leader;a.addTrailer=null!==a.trailer;flush(t);const s=t;t=1/0;if(n instanceof PageArea)h=n;else if(n instanceof ContentArea){const e=i.indexOf(n);if(-1!==e)e>s?t=e-1:p=e;else{h=n[r.$getParent]();p=h.contentArea.children.indexOf(n)}}}else flush(t)}this[r.$extra].pageNumber+=1;h&&(h[r.$isUsable]()?h[r.$extra].numberOfUse+=1:h=null);n=h||n[r.$getNextPage]();yield null}}}t.Template=Template;class Text extends r.ContentObject{constructor(e){super(d,"text");this.id=e.id||"";this.maxChars=(0,o.getInteger)({data:e.maxChars,defaultValue:0,validate:e=>e>=0});this.name=e.name||"";this.rid=e.rid||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$acceptWhitespace](){return!0}[r.$onChild](e){if(e[r.$namespaceId]===n.NamespaceIds.xhtml.id){this[r.$content]=e;return!0}(0,c.warn)(`XFA - Invalid content in Text: ${e[r.$nodeName]}.`);return!1}[r.$onText](e){this[r.$content]instanceof r.XFAObject||super[r.$onText](e)}[r.$finalize](){"string"==typeof this[r.$content]&&(this[r.$content]=this[r.$content].replace(/\r\n/g,"\n"))}[r.$getExtra](){return"string"==typeof this[r.$content]?this[r.$content].split(/[\u2029\u2028\n]/).reduce(((e,t)=>{t&&e.push(t);return e}),[]).join("\n"):this[r.$content][r.$text]()}[r.$toHTML](e){if("string"==typeof this[r.$content]){const e=valueToHtml(this[r.$content]).html;if(this[r.$content].includes("\u2029")){e.name="div";e.children=[];this[r.$content].split("\u2029").map((e=>e.split(/[\u2028\n]/).reduce(((e,t)=>{e.push({name:"span",value:t},{name:"br"});return e}),[]))).forEach((t=>{e.children.push({name:"p",children:t})}))}else if(/[\u2028\n]/.test(this[r.$content])){e.name="div";e.children=[];this[r.$content].split(/[\u2028\n]/).forEach((t=>{e.children.push({name:"span",value:t},{name:"br"})}))}return o.HTMLResult.success(e)}return this[r.$content][r.$toHTML](e)}}t.Text=Text;class TextEdit extends r.XFAObject{constructor(e){super(d,"textEdit",!0);this.allowRichText=(0,o.getInteger)({data:e.allowRichText,defaultValue:0,validate:e=>1===e});this.hScrollPolicy=(0,o.getStringOption)(e.hScrollPolicy,["auto","off","on"]);this.id=e.id||"";this.multiLine=(0,o.getInteger)({data:e.multiLine,defaultValue:"",validate:e=>0===e||1===e});this.use=e.use||"";this.usehref=e.usehref||"";this.vScrollPolicy=(0,o.getStringOption)(e.vScrollPolicy,["auto","off","on"]);this.border=null;this.comb=null;this.extras=null;this.margin=null}[r.$toHTML](e){const t=(0,s.toStyle)(this,"border","font","margin");let a;const n=this[r.$getParent]()[r.$getParent]();""===this.multiLine&&(this.multiLine=n instanceof Draw?1:0);a=1===this.multiLine?{name:"textarea",attributes:{dataId:n[r.$data]&&n[r.$data][r.$uid]||n[r.$uid],fieldId:n[r.$uid],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(n),"aria-required":!1}}:{name:"input",attributes:{type:"text",dataId:n[r.$data]&&n[r.$data][r.$uid]||n[r.$uid],fieldId:n[r.$uid],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(n),"aria-required":!1}};if(isRequired(n)){a.attributes["aria-required"]=!0;a.attributes.required=!0}return o.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[a]})}}class Time extends r.StringObject{constructor(e){super(d,"time");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=this[r.$content].trim();this[r.$content]=e?new Date(e):null}[r.$toHTML](e){return valueToHtml(this[r.$content]?this[r.$content].toString():"")}}class TimeStamp extends r.XFAObject{constructor(e){super(d,"timeStamp");this.id=e.id||"";this.server=e.server||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}}class ToolTip extends r.StringObject{constructor(e){super(d,"toolTip");this.id=e.id||"";this.rid=e.rid||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Traversal extends r.XFAObject{constructor(e){super(d,"traversal",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.traverse=new r.XFAObjectArray}}class Traverse extends r.XFAObject{constructor(e){super(d,"traverse",!0);this.id=e.id||"";this.operation=(0,o.getStringOption)(e.operation,["next","back","down","first","left","right","up"]);this.ref=e.ref||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.script=null}get name(){return this.operation}[r.$isTransparent](){return!1}}class Ui extends r.XFAObject{constructor(e){super(d,"ui",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.picture=null;this.barcode=null;this.button=null;this.checkButton=null;this.choiceList=null;this.dateTimeEdit=null;this.defaultUi=null;this.imageEdit=null;this.numericEdit=null;this.passwordEdit=null;this.signature=null;this.textEdit=null}[r.$getExtra](){if(void 0===this[r.$extra]){for(const e of Object.getOwnPropertyNames(this)){if("extras"===e||"picture"===e)continue;const t=this[e];if(t instanceof r.XFAObject){this[r.$extra]=t;return t}}this[r.$extra]=null}return this[r.$extra]}[r.$toHTML](e){const t=this[r.$getExtra]();return t?t[r.$toHTML](e):o.HTMLResult.EMPTY}}class Validate extends r.XFAObject{constructor(e){super(d,"validate",!0);this.formatTest=(0,o.getStringOption)(e.formatTest,["warning","disabled","error"]);this.id=e.id||"";this.nullTest=(0,o.getStringOption)(e.nullTest,["disabled","error","warning"]);this.scriptTest=(0,o.getStringOption)(e.scriptTest,["error","disabled","warning"]);this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.message=null;this.picture=null;this.script=null}}class Value extends r.XFAObject{constructor(e){super(d,"value",!0);this.id=e.id||"";this.override=(0,o.getInteger)({data:e.override,defaultValue:0,validate:e=>1===e});this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.arc=null;this.boolean=null;this.date=null;this.dateTime=null;this.decimal=null;this.exData=null;this.float=null;this.image=null;this.integer=null;this.line=null;this.rectangle=null;this.text=null;this.time=null}[r.$setValue](e){const t=this[r.$getParent]();if(t instanceof Field&&t.ui&&t.ui.imageEdit){if(!this.image){this.image=new Image({});this[r.$appendChild](this.image)}this.image[r.$content]=e[r.$content];return}const a=e[r.$nodeName];if(null===this[a]){for(const e of Object.getOwnPropertyNames(this)){const t=this[e];if(t instanceof r.XFAObject){this[e]=null;this[r.$removeChild](t)}}this[e[r.$nodeName]]=e;this[r.$appendChild](e)}else this[a][r.$content]=e[r.$content]}[r.$text](){if(this.exData)return"string"==typeof this.exData[r.$content]?this.exData[r.$content].trim():this.exData[r.$content][r.$text]().trim();for(const e of Object.getOwnPropertyNames(this)){if("image"===e)continue;const t=this[e];if(t instanceof r.XFAObject)return(t[r.$content]||"").toString().trim()}return null}[r.$toHTML](e){for(const t of Object.getOwnPropertyNames(this)){const a=this[t];if(a instanceof r.XFAObject)return a[r.$toHTML](e)}return o.HTMLResult.EMPTY}}t.Value=Value;class Variables extends r.XFAObject{constructor(e){super(d,"variables",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.boolean=new r.XFAObjectArray;this.date=new r.XFAObjectArray;this.dateTime=new r.XFAObjectArray;this.decimal=new r.XFAObjectArray;this.exData=new r.XFAObjectArray;this.float=new r.XFAObjectArray;this.image=new r.XFAObjectArray;this.integer=new r.XFAObjectArray;this.manifest=new r.XFAObjectArray;this.script=new r.XFAObjectArray;this.text=new r.XFAObjectArray;this.time=new r.XFAObjectArray}[r.$isTransparent](){return!0}}class TemplateNamespace{static[n.$buildXFAObject](e,t){if(TemplateNamespace.hasOwnProperty(e)){const a=TemplateNamespace[e](t);a[r.$setSetAttributes](t);return a}}static appearanceFilter(e){return new AppearanceFilter(e)}static arc(e){return new Arc(e)}static area(e){return new Area(e)}static assist(e){return new Assist(e)}static barcode(e){return new Barcode(e)}static bind(e){return new Bind(e)}static bindItems(e){return new BindItems(e)}static bookend(e){return new Bookend(e)}static boolean(e){return new BooleanElement(e)}static border(e){return new Border(e)}static break(e){return new Break(e)}static breakAfter(e){return new BreakAfter(e)}static breakBefore(e){return new BreakBefore(e)}static button(e){return new Button(e)}static calculate(e){return new Calculate(e)}static caption(e){return new Caption(e)}static certificate(e){return new Certificate(e)}static certificates(e){return new Certificates(e)}static checkButton(e){return new CheckButton(e)}static choiceList(e){return new ChoiceList(e)}static color(e){return new Color(e)}static comb(e){return new Comb(e)}static connect(e){return new Connect(e)}static contentArea(e){return new ContentArea(e)}static corner(e){return new Corner(e)}static date(e){return new DateElement(e)}static dateTime(e){return new DateTime(e)}static dateTimeEdit(e){return new DateTimeEdit(e)}static decimal(e){return new Decimal(e)}static defaultUi(e){return new DefaultUi(e)}static desc(e){return new Desc(e)}static digestMethod(e){return new DigestMethod(e)}static digestMethods(e){return new DigestMethods(e)}static draw(e){return new Draw(e)}static edge(e){return new Edge(e)}static encoding(e){return new Encoding(e)}static encodings(e){return new Encodings(e)}static encrypt(e){return new Encrypt(e)}static encryptData(e){return new EncryptData(e)}static encryption(e){return new Encryption(e)}static encryptionMethod(e){return new EncryptionMethod(e)}static encryptionMethods(e){return new EncryptionMethods(e)}static event(e){return new Event(e)}static exData(e){return new ExData(e)}static exObject(e){return new ExObject(e)}static exclGroup(e){return new ExclGroup(e)}static execute(e){return new Execute(e)}static extras(e){return new Extras(e)}static field(e){return new Field(e)}static fill(e){return new Fill(e)}static filter(e){return new Filter(e)}static float(e){return new Float(e)}static font(e){return new Font(e)}static format(e){return new Format(e)}static handler(e){return new Handler(e)}static hyphenation(e){return new Hyphenation(e)}static image(e){return new Image(e)}static imageEdit(e){return new ImageEdit(e)}static integer(e){return new Integer(e)}static issuers(e){return new Issuers(e)}static items(e){return new Items(e)}static keep(e){return new Keep(e)}static keyUsage(e){return new KeyUsage(e)}static line(e){return new Line(e)}static linear(e){return new Linear(e)}static lockDocument(e){return new LockDocument(e)}static manifest(e){return new Manifest(e)}static margin(e){return new Margin(e)}static mdp(e){return new Mdp(e)}static medium(e){return new Medium(e)}static message(e){return new Message(e)}static numericEdit(e){return new NumericEdit(e)}static occur(e){return new Occur(e)}static oid(e){return new Oid(e)}static oids(e){return new Oids(e)}static overflow(e){return new Overflow(e)}static pageArea(e){return new PageArea(e)}static pageSet(e){return new PageSet(e)}static para(e){return new Para(e)}static passwordEdit(e){return new PasswordEdit(e)}static pattern(e){return new Pattern(e)}static picture(e){return new Picture(e)}static proto(e){return new Proto(e)}static radial(e){return new Radial(e)}static reason(e){return new Reason(e)}static reasons(e){return new Reasons(e)}static rectangle(e){return new Rectangle(e)}static ref(e){return new RefElement(e)}static script(e){return new Script(e)}static setProperty(e){return new SetProperty(e)}static signData(e){return new SignData(e)}static signature(e){return new Signature(e)}static signing(e){return new Signing(e)}static solid(e){return new Solid(e)}static speak(e){return new Speak(e)}static stipple(e){return new Stipple(e)}static subform(e){return new Subform(e)}static subformSet(e){return new SubformSet(e)}static subjectDN(e){return new SubjectDN(e)}static subjectDNs(e){return new SubjectDNs(e)}static submit(e){return new Submit(e)}static template(e){return new Template(e)}static text(e){return new Text(e)}static textEdit(e){return new TextEdit(e)}static time(e){return new Time(e)}static timeStamp(e){return new TimeStamp(e)}static toolTip(e){return new ToolTip(e)}static traversal(e){return new Traversal(e)}static traverse(e){return new Traverse(e)}static ui(e){return new Ui(e)}static validate(e){return new Validate(e)}static value(e){return new Value(e)}static variables(e){return new Variables(e)}}t.TemplateNamespace=TemplateNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.addHTML=function addHTML(e,t,a){const i=e[r.$extra],s=i.availableSpace,[o,c,l,h]=a;switch(e.layout){case"position":i.width=Math.max(i.width,o+l);i.height=Math.max(i.height,c+h);i.children.push(t);break;case"lr-tb":case"rl-tb":if(!i.line||1===i.attempt){i.line=createLine(e,[]);i.children.push(i.line);i.numberInLine=0}i.numberInLine+=1;i.line.children.push(t);if(0===i.attempt){i.currentWidth+=l;i.height=Math.max(i.height,i.prevHeight+h)}else{i.currentWidth=l;i.prevHeight=i.height;i.height+=h;i.attempt=0}i.width=Math.max(i.width,i.currentWidth);break;case"rl-row":case"row":{i.children.push(t);i.width+=l;i.height=Math.max(i.height,h);const e=(0,n.measureToString)(i.height);for(const t of i.children)t.attributes.style.height=e;break}case"table":case"tb":i.width=Math.min(s.width,Math.max(i.width,l));i.height+=h;i.children.push(t)}};t.checkDimensions=function checkDimensions(e,t){if(null===e[r.$getTemplateRoot]()[r.$extra].firstUnsplittable)return!0;if(0===e.w||0===e.h)return!0;const a=e[r.$getSubformParent](),n=a[r.$extra]&&a[r.$extra].attempt||0,[,i,s,o]=function getTransformedBBox(e){let t,a,r=""===e.w?NaN:e.w,n=""===e.h?NaN:e.h,[i,s]=[0,0];switch(e.anchorType||""){case"bottomCenter":[i,s]=[r/2,n];break;case"bottomLeft":[i,s]=[0,n];break;case"bottomRight":[i,s]=[r,n];break;case"middleCenter":[i,s]=[r/2,n/2];break;case"middleLeft":[i,s]=[0,n/2];break;case"middleRight":[i,s]=[r,n/2];break;case"topCenter":[i,s]=[r/2,0];break;case"topRight":[i,s]=[r,0]}switch(e.rotate||0){case 0:[t,a]=[-i,-s];break;case 90:[t,a]=[-s,i];[r,n]=[n,-r];break;case 180:[t,a]=[i,s];[r,n]=[-r,-n];break;case 270:[t,a]=[s,-i];[r,n]=[-n,r]}return[e.x+t+Math.min(0,r),e.y+a+Math.min(0,n),Math.abs(r),Math.abs(n)]}(e);switch(a.layout){case"lr-tb":case"rl-tb":return 0===n?e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure?""!==e.w?Math.round(s-t.width)<=2:t.width>2:!(""!==e.h&&Math.round(o-t.height)>2)&&(""!==e.w?Math.round(s-t.width)<=2||0===a[r.$extra].numberInLine&&t.height>2:t.width>2):!!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure||!(""!==e.h&&Math.round(o-t.height)>2)&&((""===e.w||Math.round(s-t.width)<=2||!a[r.$isThereMoreWidth]())&&t.height>2);case"table":case"tb":return!!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure||(""===e.h||e[r.$isSplittable]()?(""===e.w||Math.round(s-t.width)<=2||!a[r.$isThereMoreWidth]())&&t.height>2:Math.round(o-t.height)<=2);case"position":if(e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure)return!0;if(""===e.h||Math.round(o+i-t.height)<=2)return!0;return o+i>e[r.$getTemplateRoot]()[r.$extra].currentContentArea.h;case"rl-row":case"row":return!!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure||(""===e.h||Math.round(o-t.height)<=2);default:return!0}};t.flushHTML=function flushHTML(e){if(!e[r.$extra])return null;const t={name:"div",attributes:e[r.$extra].attributes,children:e[r.$extra].children};if(e[r.$extra].failingNode){const a=e[r.$extra].failingNode[r.$flushHTML]();a&&(e.layout.endsWith("-tb")?t.children.push(createLine(e,[a])):t.children.push(a))}if(0===t.children.length)return null;return t};t.getAvailableSpace=function getAvailableSpace(e){const t=e[r.$extra].availableSpace,a=e.margin?e.margin.topInset+e.margin.bottomInset:0,n=e.margin?e.margin.leftInset+e.margin.rightInset:0;switch(e.layout){case"lr-tb":case"rl-tb":return 0===e[r.$extra].attempt?{width:t.width-n-e[r.$extra].currentWidth,height:t.height-a-e[r.$extra].prevHeight}:{width:t.width-n,height:t.height-a-e[r.$extra].height};case"rl-row":case"row":return{width:e[r.$extra].columnWidths.slice(e[r.$extra].currentColumn).reduce(((e,t)=>e+t)),height:t.height-n};case"table":case"tb":return{width:t.width-n,height:t.height-a-e[r.$extra].height};default:return t}};var r=a(75),n=a(82);function createLine(e,t){return{name:"div",attributes:{class:["lr-tb"===e.layout?"xfaLr":"xfaRl"]},children:t}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.computeBbox=function computeBbox(e,t,a){let n;if(""!==e.w&&""!==e.h)n=[e.x,e.y,e.w,e.h];else{if(!a)return null;let i=e.w;if(""===i){if(0===e.maxW){const t=e[r.$getSubformParent]();i="position"===t.layout&&""!==t.w?0:e.minW}else i=Math.min(e.maxW,a.width);t.attributes.style.width=measureToString(i)}let s=e.h;if(""===s){if(0===e.maxH){const t=e[r.$getSubformParent]();s="position"===t.layout&&""!==t.h?0:e.minH}else s=Math.min(e.maxH,a.height);t.attributes.style.height=measureToString(s)}n=[e.x,e.y,i,s]}return n};t.createWrapper=function createWrapper(e,t){const{attributes:a}=t,{style:n}=a,i={name:"div",attributes:{class:["xfaWrapper"],style:Object.create(null)},children:[]};a.class.push("xfaWrapped");if(e.border){const{widths:a,insets:s}=e.border[r.$extra];let o,c,l=s[0],h=s[3];const u=s[0]+s[2],d=s[1]+s[3];switch(e.border.hand){case"even":l-=a[0]/2;h-=a[3]/2;o=`calc(100% + ${(a[1]+a[3])/2-d}px)`;c=`calc(100% + ${(a[0]+a[2])/2-u}px)`;break;case"left":l-=a[0];h-=a[3];o=`calc(100% + ${a[1]+a[3]-d}px)`;c=`calc(100% + ${a[0]+a[2]-u}px)`;break;case"right":o=d?`calc(100% - ${d}px)`:"100%";c=u?`calc(100% - ${u}px)`:"100%"}const f=["xfaBorder"];isPrintOnly(e.border)&&f.push("xfaPrintOnly");const g={name:"div",attributes:{class:f,style:{top:`${l}px`,left:`${h}px`,width:o,height:c}},children:[]};for(const e of["border","borderWidth","borderColor","borderRadius","borderStyle"])if(void 0!==n[e]){g.attributes.style[e]=n[e];delete n[e]}i.children.push(g,t)}else i.children.push(t);for(const e of["background","backgroundClip","top","left","width","height","minWidth","minHeight","maxWidth","maxHeight","transform","transformOrigin","visibility"])if(void 0!==n[e]){i.attributes.style[e]=n[e];delete n[e]}"absolute"===n.position?i.attributes.style.position="absolute":i.attributes.style.position="relative";delete n.position;if(n.alignSelf){i.attributes.style.alignSelf=n.alignSelf;delete n.alignSelf}return i};t.fixDimensions=function fixDimensions(e){const t=e[r.$getSubformParent]();if(t.layout&&t.layout.includes("row")){const a=t[r.$extra],n=e.colSpan;let i;i=-1===n?a.columnWidths.slice(a.currentColumn).reduce(((e,t)=>e+t),0):a.columnWidths.slice(a.currentColumn,a.currentColumn+n).reduce(((e,t)=>e+t),0);isNaN(i)||(e.w=i)}t.layout&&"position"!==t.layout&&(e.x=e.y=0);"table"===e.layout&&""===e.w&&Array.isArray(e.columnWidths)&&(e.w=e.columnWidths.reduce(((e,t)=>e+t),0))};t.fixTextIndent=function fixTextIndent(e){const t=(0,i.getMeasurement)(e.textIndent,"0px");if(t>=0)return;const a="padding"+("left"==("right"===e.textAlign?"right":"left")?"Left":"Right"),r=(0,i.getMeasurement)(e[a],"0px");e[a]=r-t+"px"};t.fixURL=function fixURL(e){const t=(0,n.createValidAbsoluteUrl)(e,null,{addDefaultProtocol:!0,tryConvertEncoding:!0});return t?t.href:null};t.isPrintOnly=isPrintOnly;t.layoutClass=function layoutClass(e){switch(e.layout){case"position":default:return"xfaPosition";case"lr-tb":return"xfaLrTb";case"rl-row":return"xfaRlRow";case"rl-tb":return"xfaRlTb";case"row":return"xfaRow";case"table":return"xfaTable";case"tb":return"xfaTb"}};t.layoutNode=function layoutNode(e,t){let a=null,n=null,i=!1;if((!e.w||!e.h)&&e.value){let s=0,o=0;if(e.margin){s=e.margin.leftInset+e.margin.rightInset;o=e.margin.topInset+e.margin.bottomInset}let c=null,l=null;if(e.para){l=Object.create(null);c=""===e.para.lineHeight?null:e.para.lineHeight;l.top=""===e.para.spaceAbove?0:e.para.spaceAbove;l.bottom=""===e.para.spaceBelow?0:e.para.spaceBelow;l.left=""===e.para.marginLeft?0:e.para.marginLeft;l.right=""===e.para.marginRight?0:e.para.marginRight}let h=e.font;if(!h){const t=e[r.$getTemplateRoot]();let a=e[r.$getParent]();for(;a&&a!==t;){if(a.font){h=a.font;break}a=a[r.$getParent]()}}const u=(e.w||t.width)-s,d=e[r.$globalData].fontFinder;if(e.value.exData&&e.value.exData[r.$content]&&"text/html"===e.value.exData.contentType){const t=layoutText(e.value.exData[r.$content],h,l,c,d,u);n=t.width;a=t.height;i=t.isBroken}else{const t=e.value[r.$text]();if(t){const e=layoutText(t,h,l,c,d,u);n=e.width;a=e.height;i=e.isBroken}}null===n||e.w||(n+=s);null===a||e.h||(a+=o)}return{w:n,h:a,isBroken:i}};t.measureToString=measureToString;t.setAccess=function setAccess(e,t){switch(e.access){case"nonInteractive":t.push("xfaNonInteractive");break;case"readOnly":t.push("xfaReadOnly");break;case"protected":t.push("xfaDisabled")}};t.setFontFamily=function setFontFamily(e,t,a,r){if(!a){delete r.fontFamily;return}const n=(0,i.stripQuotes)(e.typeface);r.fontFamily=`"${n}"`;const o=a.find(n);if(o){const{fontFamily:a}=o.regular.cssFontInfo;a!==n&&(r.fontFamily=`"${a}"`);const i=getCurrentPara(t);if(i&&""!==i.lineHeight)return;if(r.lineHeight)return;const c=(0,s.selectFont)(e,o);c&&(r.lineHeight=Math.max(1.2,c.lineHeight))}};t.setMinMaxDimensions=function setMinMaxDimensions(e,t){if("position"===e[r.$getSubformParent]().layout){e.minW>0&&(t.minWidth=measureToString(e.minW));e.maxW>0&&(t.maxWidth=measureToString(e.maxW));e.minH>0&&(t.minHeight=measureToString(e.minH));e.maxH>0&&(t.maxHeight=measureToString(e.maxH))}};t.setPara=function setPara(e,t,a){if(a.attributes.class&&a.attributes.class.includes("xfaRich")){if(t){""===e.h&&(t.height="auto");""===e.w&&(t.width="auto")}const n=getCurrentPara(e);if(n){const e=a.attributes.style;e.display="flex";e.flexDirection="column";switch(n.vAlign){case"top":e.justifyContent="start";break;case"bottom":e.justifyContent="end";break;case"middle":e.justifyContent="center"}const t=n[r.$toStyle]();for(const[a,r]of Object.entries(t))a in e||(e[a]=r)}}};t.toStyle=function toStyle(e,...t){const a=Object.create(null);for(const i of t){const t=e[i];if(null!==t)if(c.hasOwnProperty(i))c[i](e,a);else if(t instanceof r.XFAObject){const e=t[r.$toStyle]();e?Object.assign(a,e):(0,n.warn)(`(DEBUG) - XFA - style for ${i} not implemented yet`)}}return a};var r=a(75),n=a(2),i=a(76),s=a(83),o=a(84);function measureToString(e){return"string"==typeof e?"0px":Number.isInteger(e)?`${e}px`:`${e.toFixed(2)}px`}const c={anchorType(e,t){const a=e[r.$getSubformParent]();if(a&&(!a.layout||"position"===a.layout)){"transform"in t||(t.transform="");switch(e.anchorType){case"bottomCenter":t.transform+="translate(-50%, -100%)";break;case"bottomLeft":t.transform+="translate(0,-100%)";break;case"bottomRight":t.transform+="translate(-100%,-100%)";break;case"middleCenter":t.transform+="translate(-50%,-50%)";break;case"middleLeft":t.transform+="translate(0,-50%)";break;case"middleRight":t.transform+="translate(-100%,-50%)";break;case"topCenter":t.transform+="translate(-50%,0)";break;case"topRight":t.transform+="translate(-100%,0)"}}},dimensions(e,t){const a=e[r.$getSubformParent]();let n=e.w;const i=e.h;if(a.layout&&a.layout.includes("row")){const t=a[r.$extra],i=e.colSpan;let s;if(-1===i){s=t.columnWidths.slice(t.currentColumn).reduce(((e,t)=>e+t),0);t.currentColumn=0}else{s=t.columnWidths.slice(t.currentColumn,t.currentColumn+i).reduce(((e,t)=>e+t),0);t.currentColumn=(t.currentColumn+e.colSpan)%t.columnWidths.length}isNaN(s)||(n=e.w=s)}t.width=""!==n?measureToString(n):"auto";t.height=""!==i?measureToString(i):"auto"},position(e,t){const a=e[r.$getSubformParent]();if(!a||!a.layout||"position"===a.layout){t.position="absolute";t.left=measureToString(e.x);t.top=measureToString(e.y)}},rotate(e,t){if(e.rotate){"transform"in t||(t.transform="");t.transform+=`rotate(-${e.rotate}deg)`;t.transformOrigin="top left"}},presence(e,t){switch(e.presence){case"invisible":t.visibility="hidden";break;case"hidden":case"inactive":t.display="none"}},hAlign(e,t){if("para"===e[r.$nodeName])switch(e.hAlign){case"justifyAll":t.textAlign="justify-all";break;case"radix":t.textAlign="left";break;default:t.textAlign=e.hAlign}else switch(e.hAlign){case"left":t.alignSelf="start";break;case"center":t.alignSelf="center";break;case"right":t.alignSelf="end"}},margin(e,t){e.margin&&(t.margin=e.margin[r.$toStyle]().margin)}};function layoutText(e,t,a,n,i,s){const c=new o.TextMeasure(t,a,n,i);"string"==typeof e?c.addString(e):e[r.$pushGlyphs](c);return c.compute(s)}function isPrintOnly(e){return e.relevant.length>0&&!e.relevant[0].excluded&&"print"===e.relevant[0].viewname}function getCurrentPara(e){const t=e[r.$getTemplateRoot]()[r.$extra].paraStack;return t.length?t.at(-1):null}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.FontFinder=void 0;t.getMetrics=function getMetrics(e,t=!1){let a=null;if(e){const t=(0,n.stripQuotes)(e.typeface),i=e[r.$globalData].fontFinder.find(t);a=selectFont(e,i)}if(!a)return{lineHeight:12,lineGap:2,lineNoGap:10};const i=e.size||10,s=a.lineHeight?Math.max(t?0:1.2,a.lineHeight):1.2,o=void 0===a.lineGap?.2:a.lineGap;return{lineHeight:s*i,lineGap:o*i,lineNoGap:Math.max(1,s-o)*i}};t.selectFont=selectFont;var r=a(75),n=a(76),i=a(2);t.FontFinder=class FontFinder{constructor(e){this.fonts=new Map;this.cache=new Map;this.warned=new Set;this.defaultFont=null;this.add(e)}add(e,t=null){for(const t of e)this.addPdfFont(t);for(const e of this.fonts.values())e.regular||(e.regular=e.italic||e.bold||e.bolditalic);if(!t||0===t.size)return;const a=this.fonts.get("PdfJS-Fallback-PdfJS-XFA");for(const e of t)this.fonts.set(e,a)}addPdfFont(e){const t=e.cssFontInfo,a=t.fontFamily;let r=this.fonts.get(a);if(!r){r=Object.create(null);this.fonts.set(a,r);this.defaultFont||(this.defaultFont=r)}let n="";const i=parseFloat(t.fontWeight);0!==parseFloat(t.italicAngle)?n=i>=700?"bolditalic":"italic":i>=700&&(n="bold");if(!n){(e.name.includes("Bold")||e.psName&&e.psName.includes("Bold"))&&(n="bold");(e.name.includes("Italic")||e.name.endsWith("It")||e.psName&&(e.psName.includes("Italic")||e.psName.endsWith("It")))&&(n+="italic")}n||(n="regular");r[n]=e}getDefault(){return this.defaultFont}find(e,t=!0){let a=this.fonts.get(e)||this.cache.get(e);if(a)return a;const r=/,|-|_| |bolditalic|bold|italic|regular|it/gi;let n=e.replace(r,"");a=this.fonts.get(n);if(a){this.cache.set(e,a);return a}n=n.toLowerCase();const s=[];for(const[e,t]of this.fonts.entries())e.replace(r,"").toLowerCase().startsWith(n)&&s.push(t);if(0===s.length)for(const[,e]of this.fonts.entries())e.regular.name&&e.regular.name.replace(r,"").toLowerCase().startsWith(n)&&s.push(e);if(0===s.length){n=n.replace(/psmt|mt/gi,"");for(const[e,t]of this.fonts.entries())e.replace(r,"").toLowerCase().startsWith(n)&&s.push(t)}if(0===s.length)for(const e of this.fonts.values())e.regular.name&&e.regular.name.replace(r,"").toLowerCase().startsWith(n)&&s.push(e);if(s.length>=1){1!==s.length&&t&&(0,i.warn)(`XFA - Too many choices to guess the correct font: ${e}`);this.cache.set(e,s[0]);return s[0]}if(t&&!this.warned.has(e)){this.warned.add(e);(0,i.warn)(`XFA - Cannot find the font: ${e}`)}return null}};function selectFont(e,t){return"italic"===e.posture?"bold"===e.weight?t.bolditalic:t.italic:"bold"===e.weight?t.bold:t.regular}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.TextMeasure=void 0;var r=a(83);class FontInfo{constructor(e,t,a,n){this.lineHeight=a;this.paraMargin=t||{top:0,bottom:0,left:0,right:0};if(!e){[this.pdfFont,this.xfaFont]=this.defaultFont(n);return}this.xfaFont={typeface:e.typeface,posture:e.posture,weight:e.weight,size:e.size,letterSpacing:e.letterSpacing};const i=n.find(e.typeface);if(i){this.pdfFont=(0,r.selectFont)(e,i);this.pdfFont||([this.pdfFont,this.xfaFont]=this.defaultFont(n))}else[this.pdfFont,this.xfaFont]=this.defaultFont(n)}defaultFont(e){const t=e.find("Helvetica",!1)||e.find("Myriad Pro",!1)||e.find("Arial",!1)||e.getDefault();if(t&&t.regular){const e=t.regular;return[e,{typeface:e.cssFontInfo.fontFamily,posture:"normal",weight:"normal",size:10,letterSpacing:0}]}return[null,{typeface:"Courier",posture:"normal",weight:"normal",size:10,letterSpacing:0}]}}class FontSelector{constructor(e,t,a,r){this.fontFinder=r;this.stack=[new FontInfo(e,t,a,r)]}pushData(e,t,a){const r=this.stack.at(-1);for(const t of["typeface","posture","weight","size","letterSpacing"])e[t]||(e[t]=r.xfaFont[t]);for(const e of["top","bottom","left","right"])isNaN(t[e])&&(t[e]=r.paraMargin[e]);const n=new FontInfo(e,t,a||r.lineHeight,this.fontFinder);n.pdfFont||(n.pdfFont=r.pdfFont);this.stack.push(n)}popFont(){this.stack.pop()}topFont(){return this.stack.at(-1)}}t.TextMeasure=class TextMeasure{constructor(e,t,a,r){this.glyphs=[];this.fontSelector=new FontSelector(e,t,a,r);this.extraHeight=0}pushData(e,t,a){this.fontSelector.pushData(e,t,a)}popFont(e){return this.fontSelector.popFont()}addPara(){const e=this.fontSelector.topFont();this.extraHeight+=e.paraMargin.top+e.paraMargin.bottom}addString(e){if(!e)return;const t=this.fontSelector.topFont(),a=t.xfaFont.size;if(t.pdfFont){const r=t.xfaFont.letterSpacing,n=t.pdfFont,i=n.lineHeight||1.2,s=t.lineHeight||Math.max(1.2,i)*a,o=i-(void 0===n.lineGap?.2:n.lineGap),c=Math.max(1,o)*a,l=a/1e3,h=n.defaultWidth||n.charsToGlyphs(" ")[0].width;for(const t of e.split(/[\u2029\n]/)){const e=n.encodeString(t).join(""),a=n.charsToGlyphs(e);for(const e of a){const t=e.width||h;this.glyphs.push([t*l+r,s,c,e.unicode,!1])}this.glyphs.push([0,0,0,"\n",!0])}this.glyphs.pop()}else{for(const t of e.split(/[\u2029\n]/)){for(const e of t.split(""))this.glyphs.push([a,1.2*a,a,e,!1]);this.glyphs.push([0,0,0,"\n",!0])}this.glyphs.pop()}}compute(e){let t=-1,a=0,r=0,n=0,i=0,s=0,o=!1,c=!0;for(let l=0,h=this.glyphs.length;le){r=Math.max(r,i);i=0;n+=s;s=m;t=-1;a=0;o=!0;c=!1}else{s=Math.max(m,s);a=i;i+=h;t=l}else if(i+h>e){n+=s;s=m;if(-1!==t){l=t;r=Math.max(r,a);i=0;t=-1;a=0}else{r=Math.max(r,i);i=h}o=!0;c=!1}else{i+=h;s=Math.max(m,s)}}r=Math.max(r,i);n+=s+this.extraHeight;return{width:1.02*r,height:n,isBroken:o}}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.DataHandler=void 0;var r=a(75);t.DataHandler=class DataHandler{constructor(e,t){this.data=t;this.dataset=e.datasets||null}serialize(e){const t=[[-1,this.data[r.$getChildren]()]];for(;t.length>0;){const a=t.at(-1),[n,i]=a;if(n+1===i.length){t.pop();continue}const s=i[++a[0]],o=e.get(s[r.$uid]);if(o)s[r.$setValue](o);else{const t=s[r.$getAttributes]();for(const a of t.values()){const t=e.get(a[r.$uid]);if(t){a[r.$setValue](t);break}}}const c=s[r.$getChildren]();c.length>0&&t.push([-1,c])}const a=[''];if(this.dataset)for(const e of this.dataset[r.$getChildren]())"data"!==e[r.$nodeName]&&e[r.$toString](a);this.data[r.$toString](a);a.push("");return a.join("")}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XFAParser=void 0;var r=a(75),n=a(64),i=a(87),s=a(2);class XFAParser extends n.XMLParserBase{constructor(e=null,t=!1){super();this._builder=new i.Builder(e);this._stack=[];this._globalData={usedTypefaces:new Set};this._ids=new Map;this._current=this._builder.buildRoot(this._ids);this._errorCode=n.XMLParserErrorCode.NoError;this._whiteRegex=/^\s+$/;this._nbsps=/\xa0+/g;this._richText=t}parse(e){this.parseXml(e);if(this._errorCode===n.XMLParserErrorCode.NoError){this._current[r.$finalize]();return this._current.element}}onText(e){e=e.replace(this._nbsps,(e=>e.slice(1)+" "));this._richText||this._current[r.$acceptWhitespace]()?this._current[r.$onText](e,this._richText):this._whiteRegex.test(e)||this._current[r.$onText](e.trim())}onCdata(e){this._current[r.$onText](e)}_mkAttributes(e,t){let a=null,n=null;const i=Object.create({});for(const{name:o,value:c}of e)if("xmlns"===o)a?(0,s.warn)(`XFA - multiple namespace definition in <${t}>`):a=c;else if(o.startsWith("xmlns:")){const e=o.substring("xmlns:".length);n||(n=[]);n.push({prefix:e,value:c})}else{const e=o.indexOf(":");if(-1===e)i[o]=c;else{let t=i[r.$nsAttributes];t||(t=i[r.$nsAttributes]=Object.create(null));const[a,n]=[o.slice(0,e),o.slice(e+1)];let s=t[a];s||(s=t[a]=Object.create(null));s[n]=c}}return[a,n,i]}_getNameAndPrefix(e,t){const a=e.indexOf(":");return-1===a?[e,null]:[e.substring(a+1),t?"":e.substring(0,a)]}onBeginElement(e,t,a){const[n,i,s]=this._mkAttributes(t,e),[o,c]=this._getNameAndPrefix(e,this._builder.isNsAgnostic()),l=this._builder.build({nsPrefix:c,name:o,attributes:s,namespace:n,prefixes:i});l[r.$globalData]=this._globalData;if(a){l[r.$finalize]();this._current[r.$onChild](l)&&l[r.$setId](this._ids);l[r.$clean](this._builder)}else{this._stack.push(this._current);this._current=l}}onEndElement(e){const t=this._current;if(t[r.$isCDATAXml]()&&"string"==typeof t[r.$content]){const e=new XFAParser;e._globalData=this._globalData;const a=e.parse(t[r.$content]);t[r.$content]=null;t[r.$onChild](a)}t[r.$finalize]();this._current=this._stack.pop();this._current[r.$onChild](t)&&t[r.$setId](this._ids);t[r.$clean](this._builder)}onError(e){this._errorCode=e}}t.XFAParser=XFAParser},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Builder=void 0;var r=a(77),n=a(75),i=a(88),s=a(80),o=a(97),c=a(2);class Root extends n.XFAObject{constructor(e){super(-1,"root",Object.create(null));this.element=null;this[n.$ids]=e}[n.$onChild](e){this.element=e;return!0}[n.$finalize](){super[n.$finalize]();if(this.element.template instanceof s.Template){this[n.$ids].set(n.$root,this.element);this.element.template[n.$resolvePrototypes](this[n.$ids]);this.element.template[n.$ids]=this[n.$ids]}}}class Empty extends n.XFAObject{constructor(){super(-1,"",Object.create(null))}[n.$onChild](e){return!1}}t.Builder=class Builder{constructor(e=null){this._namespaceStack=[];this._nsAgnosticLevel=0;this._namespacePrefixes=new Map;this._namespaces=new Map;this._nextNsId=Math.max(...Object.values(r.NamespaceIds).map((({id:e})=>e)));this._currentNamespace=e||new o.UnknownNamespace(++this._nextNsId)}buildRoot(e){return new Root(e)}build({nsPrefix:e,name:t,attributes:a,namespace:s,prefixes:o}){const c=null!==s;if(c){this._namespaceStack.push(this._currentNamespace);this._currentNamespace=this._searchNamespace(s)}o&&this._addNamespacePrefix(o);if(a.hasOwnProperty(n.$nsAttributes)){const e=i.NamespaceSetUp.datasets,t=a[n.$nsAttributes];let r=null;for(const[a,n]of Object.entries(t)){if(this._getNamespaceToUse(a)===e){r={xfa:n};break}}r?a[n.$nsAttributes]=r:delete a[n.$nsAttributes]}const l=this._getNamespaceToUse(e),h=l&&l[r.$buildXFAObject](t,a)||new Empty;h[n.$isNsAgnostic]()&&this._nsAgnosticLevel++;(c||o||h[n.$isNsAgnostic]())&&(h[n.$cleanup]={hasNamespace:c,prefixes:o,nsAgnostic:h[n.$isNsAgnostic]()});return h}isNsAgnostic(){return this._nsAgnosticLevel>0}_searchNamespace(e){let t=this._namespaces.get(e);if(t)return t;for(const[a,{check:n}]of Object.entries(r.NamespaceIds))if(n(e)){t=i.NamespaceSetUp[a];if(t){this._namespaces.set(e,t);return t}break}t=new o.UnknownNamespace(++this._nextNsId);this._namespaces.set(e,t);return t}_addNamespacePrefix(e){for(const{prefix:t,value:a}of e){const e=this._searchNamespace(a);let r=this._namespacePrefixes.get(t);if(!r){r=[];this._namespacePrefixes.set(t,r)}r.push(e)}}_getNamespaceToUse(e){if(!e)return this._currentNamespace;const t=this._namespacePrefixes.get(e);if(t&&t.length>0)return t.at(-1);(0,c.warn)(`Unknown namespace prefix: ${e}.`);return null}clean(e){const{hasNamespace:t,prefixes:a,nsAgnostic:r}=e;t&&(this._currentNamespace=this._namespaceStack.pop());a&&a.forEach((({prefix:e})=>{this._namespacePrefixes.get(e).pop()}));r&&this._nsAgnosticLevel--}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.NamespaceSetUp=void 0;var r=a(89),n=a(90),i=a(91),s=a(92),o=a(93),c=a(94),l=a(80),h=a(95),u=a(96);const d={config:r.ConfigNamespace,connection:n.ConnectionSetNamespace,datasets:i.DatasetsNamespace,localeSet:s.LocaleSetNamespace,signature:o.SignatureNamespace,stylesheet:c.StylesheetNamespace,template:l.TemplateNamespace,xdp:h.XdpNamespace,xhtml:u.XhtmlNamespace};t.NamespaceSetUp=d},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ConfigNamespace=void 0;var r=a(77),n=a(75),i=a(76),s=a(2);const o=r.NamespaceIds.config.id;class Acrobat extends n.XFAObject{constructor(e){super(o,"acrobat",!0);this.acrobat7=null;this.autoSave=null;this.common=null;this.validate=null;this.validateApprovalSignatures=null;this.submitUrl=new n.XFAObjectArray}}class Acrobat7 extends n.XFAObject{constructor(e){super(o,"acrobat7",!0);this.dynamicRender=null}}class ADBE_JSConsole extends n.OptionObject{constructor(e){super(o,"ADBE_JSConsole",["delegate","Enable","Disable"])}}class ADBE_JSDebugger extends n.OptionObject{constructor(e){super(o,"ADBE_JSDebugger",["delegate","Enable","Disable"])}}class AddSilentPrint extends n.Option01{constructor(e){super(o,"addSilentPrint")}}class AddViewerPreferences extends n.Option01{constructor(e){super(o,"addViewerPreferences")}}class AdjustData extends n.Option10{constructor(e){super(o,"adjustData")}}class AdobeExtensionLevel extends n.IntegerObject{constructor(e){super(o,"adobeExtensionLevel",0,(e=>e>=1&&e<=8))}}class Agent extends n.XFAObject{constructor(e){super(o,"agent",!0);this.name=e.name?e.name.trim():"";this.common=new n.XFAObjectArray}}class AlwaysEmbed extends n.ContentObject{constructor(e){super(o,"alwaysEmbed")}}class Amd extends n.StringObject{constructor(e){super(o,"amd")}}class Area extends n.XFAObject{constructor(e){super(o,"area");this.level=(0,i.getInteger)({data:e.level,defaultValue:0,validate:e=>e>=1&&e<=3});this.name=(0,i.getStringOption)(e.name,["","barcode","coreinit","deviceDriver","font","general","layout","merge","script","signature","sourceSet","templateCache"])}}class Attributes extends n.OptionObject{constructor(e){super(o,"attributes",["preserve","delegate","ignore"])}}class AutoSave extends n.OptionObject{constructor(e){super(o,"autoSave",["disabled","enabled"])}}class Base extends n.StringObject{constructor(e){super(o,"base")}}class BatchOutput extends n.XFAObject{constructor(e){super(o,"batchOutput");this.format=(0,i.getStringOption)(e.format,["none","concat","zip","zipCompress"])}}class BehaviorOverride extends n.ContentObject{constructor(e){super(o,"behaviorOverride")}[n.$finalize](){this[n.$content]=new Map(this[n.$content].trim().split(/\s+/).filter((e=>e.includes(":"))).map((e=>e.split(":",2))))}}class Cache extends n.XFAObject{constructor(e){super(o,"cache",!0);this.templateCache=null}}class Change extends n.Option01{constructor(e){super(o,"change")}}class Common extends n.XFAObject{constructor(e){super(o,"common",!0);this.data=null;this.locale=null;this.localeSet=null;this.messaging=null;this.suppressBanner=null;this.template=null;this.validationMessaging=null;this.versionControl=null;this.log=new n.XFAObjectArray}}class Compress extends n.XFAObject{constructor(e){super(o,"compress");this.scope=(0,i.getStringOption)(e.scope,["imageOnly","document"])}}class CompressLogicalStructure extends n.Option01{constructor(e){super(o,"compressLogicalStructure")}}class CompressObjectStream extends n.Option10{constructor(e){super(o,"compressObjectStream")}}class Compression extends n.XFAObject{constructor(e){super(o,"compression",!0);this.compressLogicalStructure=null;this.compressObjectStream=null;this.level=null;this.type=null}}class Config extends n.XFAObject{constructor(e){super(o,"config",!0);this.acrobat=null;this.present=null;this.trace=null;this.agent=new n.XFAObjectArray}}class Conformance extends n.OptionObject{constructor(e){super(o,"conformance",["A","B"])}}class ContentCopy extends n.Option01{constructor(e){super(o,"contentCopy")}}class Copies extends n.IntegerObject{constructor(e){super(o,"copies",1,(e=>e>=1))}}class Creator extends n.StringObject{constructor(e){super(o,"creator")}}class CurrentPage extends n.IntegerObject{constructor(e){super(o,"currentPage",0,(e=>e>=0))}}class Data extends n.XFAObject{constructor(e){super(o,"data",!0);this.adjustData=null;this.attributes=null;this.incrementalLoad=null;this.outputXSL=null;this.range=null;this.record=null;this.startNode=null;this.uri=null;this.window=null;this.xsl=null;this.excludeNS=new n.XFAObjectArray;this.transform=new n.XFAObjectArray}}class Debug extends n.XFAObject{constructor(e){super(o,"debug",!0);this.uri=null}}class DefaultTypeface extends n.ContentObject{constructor(e){super(o,"defaultTypeface");this.writingScript=(0,i.getStringOption)(e.writingScript,["*","Arabic","Cyrillic","EastEuropeanRoman","Greek","Hebrew","Japanese","Korean","Roman","SimplifiedChinese","Thai","TraditionalChinese","Vietnamese"])}}class Destination extends n.OptionObject{constructor(e){super(o,"destination",["pdf","pcl","ps","webClient","zpl"])}}class DocumentAssembly extends n.Option01{constructor(e){super(o,"documentAssembly")}}class Driver extends n.XFAObject{constructor(e){super(o,"driver",!0);this.name=e.name?e.name.trim():"";this.fontInfo=null;this.xdc=null}}class DuplexOption extends n.OptionObject{constructor(e){super(o,"duplexOption",["simplex","duplexFlipLongEdge","duplexFlipShortEdge"])}}class DynamicRender extends n.OptionObject{constructor(e){super(o,"dynamicRender",["forbidden","required"])}}class Embed extends n.Option01{constructor(e){super(o,"embed")}}class Encrypt extends n.Option01{constructor(e){super(o,"encrypt")}}class Encryption extends n.XFAObject{constructor(e){super(o,"encryption",!0);this.encrypt=null;this.encryptionLevel=null;this.permissions=null}}class EncryptionLevel extends n.OptionObject{constructor(e){super(o,"encryptionLevel",["40bit","128bit"])}}class Enforce extends n.StringObject{constructor(e){super(o,"enforce")}}class Equate extends n.XFAObject{constructor(e){super(o,"equate");this.force=(0,i.getInteger)({data:e.force,defaultValue:1,validate:e=>0===e});this.from=e.from||"";this.to=e.to||""}}class EquateRange extends n.XFAObject{constructor(e){super(o,"equateRange");this.from=e.from||"";this.to=e.to||"";this._unicodeRange=e.unicodeRange||""}get unicodeRange(){const e=[],t=/U\+([0-9a-fA-F]+)/,a=this._unicodeRange;for(let r of a.split(",").map((e=>e.trim())).filter((e=>!!e))){r=r.split("-",2).map((e=>{const a=e.match(t);return a?parseInt(a[1],16):0}));1===r.length&&r.push(r[0]);e.push(r)}return(0,s.shadow)(this,"unicodeRange",e)}}class Exclude extends n.ContentObject{constructor(e){super(o,"exclude")}[n.$finalize](){this[n.$content]=this[n.$content].trim().split(/\s+/).filter((e=>e&&["calculate","close","enter","exit","initialize","ready","validate"].includes(e)))}}class ExcludeNS extends n.StringObject{constructor(e){super(o,"excludeNS")}}class FlipLabel extends n.OptionObject{constructor(e){super(o,"flipLabel",["usePrinterSetting","on","off"])}}class FontInfo extends n.XFAObject{constructor(e){super(o,"fontInfo",!0);this.embed=null;this.map=null;this.subsetBelow=null;this.alwaysEmbed=new n.XFAObjectArray;this.defaultTypeface=new n.XFAObjectArray;this.neverEmbed=new n.XFAObjectArray}}class FormFieldFilling extends n.Option01{constructor(e){super(o,"formFieldFilling")}}class GroupParent extends n.StringObject{constructor(e){super(o,"groupParent")}}class IfEmpty extends n.OptionObject{constructor(e){super(o,"ifEmpty",["dataValue","dataGroup","ignore","remove"])}}class IncludeXDPContent extends n.StringObject{constructor(e){super(o,"includeXDPContent")}}class IncrementalLoad extends n.OptionObject{constructor(e){super(o,"incrementalLoad",["none","forwardOnly"])}}class IncrementalMerge extends n.Option01{constructor(e){super(o,"incrementalMerge")}}class Interactive extends n.Option01{constructor(e){super(o,"interactive")}}class Jog extends n.OptionObject{constructor(e){super(o,"jog",["usePrinterSetting","none","pageSet"])}}class LabelPrinter extends n.XFAObject{constructor(e){super(o,"labelPrinter",!0);this.name=(0,i.getStringOption)(e.name,["zpl","dpl","ipl","tcpl"]);this.batchOutput=null;this.flipLabel=null;this.fontInfo=null;this.xdc=null}}class Layout extends n.OptionObject{constructor(e){super(o,"layout",["paginate","panel"])}}class Level extends n.IntegerObject{constructor(e){super(o,"level",0,(e=>e>0))}}class Linearized extends n.Option01{constructor(e){super(o,"linearized")}}class Locale extends n.StringObject{constructor(e){super(o,"locale")}}class LocaleSet extends n.StringObject{constructor(e){super(o,"localeSet")}}class Log extends n.XFAObject{constructor(e){super(o,"log",!0);this.mode=null;this.threshold=null;this.to=null;this.uri=null}}class MapElement extends n.XFAObject{constructor(e){super(o,"map",!0);this.equate=new n.XFAObjectArray;this.equateRange=new n.XFAObjectArray}}class MediumInfo extends n.XFAObject{constructor(e){super(o,"mediumInfo",!0);this.map=null}}class Message extends n.XFAObject{constructor(e){super(o,"message",!0);this.msgId=null;this.severity=null}}class Messaging extends n.XFAObject{constructor(e){super(o,"messaging",!0);this.message=new n.XFAObjectArray}}class Mode extends n.OptionObject{constructor(e){super(o,"mode",["append","overwrite"])}}class ModifyAnnots extends n.Option01{constructor(e){super(o,"modifyAnnots")}}class MsgId extends n.IntegerObject{constructor(e){super(o,"msgId",1,(e=>e>=1))}}class NameAttr extends n.StringObject{constructor(e){super(o,"nameAttr")}}class NeverEmbed extends n.ContentObject{constructor(e){super(o,"neverEmbed")}}class NumberOfCopies extends n.IntegerObject{constructor(e){super(o,"numberOfCopies",null,(e=>e>=2&&e<=5))}}class OpenAction extends n.XFAObject{constructor(e){super(o,"openAction",!0);this.destination=null}}class Output extends n.XFAObject{constructor(e){super(o,"output",!0);this.to=null;this.type=null;this.uri=null}}class OutputBin extends n.StringObject{constructor(e){super(o,"outputBin")}}class OutputXSL extends n.XFAObject{constructor(e){super(o,"outputXSL",!0);this.uri=null}}class Overprint extends n.OptionObject{constructor(e){super(o,"overprint",["none","both","draw","field"])}}class Packets extends n.StringObject{constructor(e){super(o,"packets")}[n.$finalize](){"*"!==this[n.$content]&&(this[n.$content]=this[n.$content].trim().split(/\s+/).filter((e=>["config","datasets","template","xfdf","xslt"].includes(e))))}}class PageOffset extends n.XFAObject{constructor(e){super(o,"pageOffset");this.x=(0,i.getInteger)({data:e.x,defaultValue:"useXDCSetting",validate:e=>!0});this.y=(0,i.getInteger)({data:e.y,defaultValue:"useXDCSetting",validate:e=>!0})}}class PageRange extends n.StringObject{constructor(e){super(o,"pageRange")}[n.$finalize](){const e=this[n.$content].trim().split(/\s+/).map((e=>parseInt(e,10))),t=[];for(let a=0,r=e.length;a!1))}}class Pcl extends n.XFAObject{constructor(e){super(o,"pcl",!0);this.name=e.name||"";this.batchOutput=null;this.fontInfo=null;this.jog=null;this.mediumInfo=null;this.outputBin=null;this.pageOffset=null;this.staple=null;this.xdc=null}}class Pdf extends n.XFAObject{constructor(e){super(o,"pdf",!0);this.name=e.name||"";this.adobeExtensionLevel=null;this.batchOutput=null;this.compression=null;this.creator=null;this.encryption=null;this.fontInfo=null;this.interactive=null;this.linearized=null;this.openAction=null;this.pdfa=null;this.producer=null;this.renderPolicy=null;this.scriptModel=null;this.silentPrint=null;this.submitFormat=null;this.tagged=null;this.version=null;this.viewerPreferences=null;this.xdc=null}}class Pdfa extends n.XFAObject{constructor(e){super(o,"pdfa",!0);this.amd=null;this.conformance=null;this.includeXDPContent=null;this.part=null}}class Permissions extends n.XFAObject{constructor(e){super(o,"permissions",!0);this.accessibleContent=null;this.change=null;this.contentCopy=null;this.documentAssembly=null;this.formFieldFilling=null;this.modifyAnnots=null;this.plaintextMetadata=null;this.print=null;this.printHighQuality=null}}class PickTrayByPDFSize extends n.Option01{constructor(e){super(o,"pickTrayByPDFSize")}}class Picture extends n.StringObject{constructor(e){super(o,"picture")}}class PlaintextMetadata extends n.Option01{constructor(e){super(o,"plaintextMetadata")}}class Presence extends n.OptionObject{constructor(e){super(o,"presence",["preserve","dissolve","dissolveStructure","ignore","remove"])}}class Present extends n.XFAObject{constructor(e){super(o,"present",!0);this.behaviorOverride=null;this.cache=null;this.common=null;this.copies=null;this.destination=null;this.incrementalMerge=null;this.layout=null;this.output=null;this.overprint=null;this.pagination=null;this.paginationOverride=null;this.script=null;this.validate=null;this.xdp=null;this.driver=new n.XFAObjectArray;this.labelPrinter=new n.XFAObjectArray;this.pcl=new n.XFAObjectArray;this.pdf=new n.XFAObjectArray;this.ps=new n.XFAObjectArray;this.submitUrl=new n.XFAObjectArray;this.webClient=new n.XFAObjectArray;this.zpl=new n.XFAObjectArray}}class Print extends n.Option01{constructor(e){super(o,"print")}}class PrintHighQuality extends n.Option01{constructor(e){super(o,"printHighQuality")}}class PrintScaling extends n.OptionObject{constructor(e){super(o,"printScaling",["appdefault","noScaling"])}}class PrinterName extends n.StringObject{constructor(e){super(o,"printerName")}}class Producer extends n.StringObject{constructor(e){super(o,"producer")}}class Ps extends n.XFAObject{constructor(e){super(o,"ps",!0);this.name=e.name||"";this.batchOutput=null;this.fontInfo=null;this.jog=null;this.mediumInfo=null;this.outputBin=null;this.staple=null;this.xdc=null}}class Range extends n.ContentObject{constructor(e){super(o,"range")}[n.$finalize](){this[n.$content]=this[n.$content].trim().split(/\s*,\s*/,2).map((e=>e.split("-").map((e=>parseInt(e.trim(),10))))).filter((e=>e.every((e=>!isNaN(e))))).map((e=>{1===e.length&&e.push(e[0]);return e}))}}class Record extends n.ContentObject{constructor(e){super(o,"record")}[n.$finalize](){this[n.$content]=this[n.$content].trim();const e=parseInt(this[n.$content],10);!isNaN(e)&&e>=0&&(this[n.$content]=e)}}class Relevant extends n.ContentObject{constructor(e){super(o,"relevant")}[n.$finalize](){this[n.$content]=this[n.$content].trim().split(/\s+/)}}class Rename extends n.ContentObject{constructor(e){super(o,"rename")}[n.$finalize](){this[n.$content]=this[n.$content].trim();(this[n.$content].toLowerCase().startsWith("xml")||new RegExp("[\\p{L}_][\\p{L}\\d._\\p{M}-]*","u").test(this[n.$content]))&&(0,s.warn)("XFA - Rename: invalid XFA name")}}class RenderPolicy extends n.OptionObject{constructor(e){super(o,"renderPolicy",["server","client"])}}class RunScripts extends n.OptionObject{constructor(e){super(o,"runScripts",["both","client","none","server"])}}class Script extends n.XFAObject{constructor(e){super(o,"script",!0);this.currentPage=null;this.exclude=null;this.runScripts=null}}class ScriptModel extends n.OptionObject{constructor(e){super(o,"scriptModel",["XFA","none"])}}class Severity extends n.OptionObject{constructor(e){super(o,"severity",["ignore","error","information","trace","warning"])}}class SilentPrint extends n.XFAObject{constructor(e){super(o,"silentPrint",!0);this.addSilentPrint=null;this.printerName=null}}class Staple extends n.XFAObject{constructor(e){super(o,"staple");this.mode=(0,i.getStringOption)(e.mode,["usePrinterSetting","on","off"])}}class StartNode extends n.StringObject{constructor(e){super(o,"startNode")}}class StartPage extends n.IntegerObject{constructor(e){super(o,"startPage",0,(e=>!0))}}class SubmitFormat extends n.OptionObject{constructor(e){super(o,"submitFormat",["html","delegate","fdf","xml","pdf"])}}class SubmitUrl extends n.StringObject{constructor(e){super(o,"submitUrl")}}class SubsetBelow extends n.IntegerObject{constructor(e){super(o,"subsetBelow",100,(e=>e>=0&&e<=100))}}class SuppressBanner extends n.Option01{constructor(e){super(o,"suppressBanner")}}class Tagged extends n.Option01{constructor(e){super(o,"tagged")}}class Template extends n.XFAObject{constructor(e){super(o,"template",!0);this.base=null;this.relevant=null;this.startPage=null;this.uri=null;this.xsl=null}}class Threshold extends n.OptionObject{constructor(e){super(o,"threshold",["trace","error","information","warning"])}}class To extends n.OptionObject{constructor(e){super(o,"to",["null","memory","stderr","stdout","system","uri"])}}class TemplateCache extends n.XFAObject{constructor(e){super(o,"templateCache");this.maxEntries=(0,i.getInteger)({data:e.maxEntries,defaultValue:5,validate:e=>e>=0})}}class Trace extends n.XFAObject{constructor(e){super(o,"trace",!0);this.area=new n.XFAObjectArray}}class Transform extends n.XFAObject{constructor(e){super(o,"transform",!0);this.groupParent=null;this.ifEmpty=null;this.nameAttr=null;this.picture=null;this.presence=null;this.rename=null;this.whitespace=null}}class Type extends n.OptionObject{constructor(e){super(o,"type",["none","ascii85","asciiHex","ccittfax","flate","lzw","runLength","native","xdp","mergedXDP"])}}class Uri extends n.StringObject{constructor(e){super(o,"uri")}}class Validate extends n.OptionObject{constructor(e){super(o,"validate",["preSubmit","prePrint","preExecute","preSave"])}}class ValidateApprovalSignatures extends n.ContentObject{constructor(e){super(o,"validateApprovalSignatures")}[n.$finalize](){this[n.$content]=this[n.$content].trim().split(/\s+/).filter((e=>["docReady","postSign"].includes(e)))}}class ValidationMessaging extends n.OptionObject{constructor(e){super(o,"validationMessaging",["allMessagesIndividually","allMessagesTogether","firstMessageOnly","noMessages"])}}class Version extends n.OptionObject{constructor(e){super(o,"version",["1.7","1.6","1.5","1.4","1.3","1.2"])}}class VersionControl extends n.XFAObject{constructor(e){super(o,"VersionControl");this.outputBelow=(0,i.getStringOption)(e.outputBelow,["warn","error","update"]);this.sourceAbove=(0,i.getStringOption)(e.sourceAbove,["warn","error"]);this.sourceBelow=(0,i.getStringOption)(e.sourceBelow,["update","maintain"])}}class ViewerPreferences extends n.XFAObject{constructor(e){super(o,"viewerPreferences",!0);this.ADBE_JSConsole=null;this.ADBE_JSDebugger=null;this.addViewerPreferences=null;this.duplexOption=null;this.enforce=null;this.numberOfCopies=null;this.pageRange=null;this.pickTrayByPDFSize=null;this.printScaling=null}}class WebClient extends n.XFAObject{constructor(e){super(o,"webClient",!0);this.name=e.name?e.name.trim():"";this.fontInfo=null;this.xdc=null}}class Whitespace extends n.OptionObject{constructor(e){super(o,"whitespace",["preserve","ltrim","normalize","rtrim","trim"])}}class Window extends n.ContentObject{constructor(e){super(o,"window")}[n.$finalize](){const e=this[n.$content].trim().split(/\s*,\s*/,2).map((e=>parseInt(e,10)));if(e.some((e=>isNaN(e))))this[n.$content]=[0,0];else{1===e.length&&e.push(e[0]);this[n.$content]=e}}}class Xdc extends n.XFAObject{constructor(e){super(o,"xdc",!0);this.uri=new n.XFAObjectArray;this.xsl=new n.XFAObjectArray}}class Xdp extends n.XFAObject{constructor(e){super(o,"xdp",!0);this.packets=null}}class Xsl extends n.XFAObject{constructor(e){super(o,"xsl",!0);this.debug=null;this.uri=null}}class Zpl extends n.XFAObject{constructor(e){super(o,"zpl",!0);this.name=e.name?e.name.trim():"";this.batchOutput=null;this.flipLabel=null;this.fontInfo=null;this.xdc=null}}class ConfigNamespace{static[r.$buildXFAObject](e,t){if(ConfigNamespace.hasOwnProperty(e))return ConfigNamespace[e](t)}static acrobat(e){return new Acrobat(e)}static acrobat7(e){return new Acrobat7(e)}static ADBE_JSConsole(e){return new ADBE_JSConsole(e)}static ADBE_JSDebugger(e){return new ADBE_JSDebugger(e)}static addSilentPrint(e){return new AddSilentPrint(e)}static addViewerPreferences(e){return new AddViewerPreferences(e)}static adjustData(e){return new AdjustData(e)}static adobeExtensionLevel(e){return new AdobeExtensionLevel(e)}static agent(e){return new Agent(e)}static alwaysEmbed(e){return new AlwaysEmbed(e)}static amd(e){return new Amd(e)}static area(e){return new Area(e)}static attributes(e){return new Attributes(e)}static autoSave(e){return new AutoSave(e)}static base(e){return new Base(e)}static batchOutput(e){return new BatchOutput(e)}static behaviorOverride(e){return new BehaviorOverride(e)}static cache(e){return new Cache(e)}static change(e){return new Change(e)}static common(e){return new Common(e)}static compress(e){return new Compress(e)}static compressLogicalStructure(e){return new CompressLogicalStructure(e)}static compressObjectStream(e){return new CompressObjectStream(e)}static compression(e){return new Compression(e)}static config(e){return new Config(e)}static conformance(e){return new Conformance(e)}static contentCopy(e){return new ContentCopy(e)}static copies(e){return new Copies(e)}static creator(e){return new Creator(e)}static currentPage(e){return new CurrentPage(e)}static data(e){return new Data(e)}static debug(e){return new Debug(e)}static defaultTypeface(e){return new DefaultTypeface(e)}static destination(e){return new Destination(e)}static documentAssembly(e){return new DocumentAssembly(e)}static driver(e){return new Driver(e)}static duplexOption(e){return new DuplexOption(e)}static dynamicRender(e){return new DynamicRender(e)}static embed(e){return new Embed(e)}static encrypt(e){return new Encrypt(e)}static encryption(e){return new Encryption(e)}static encryptionLevel(e){return new EncryptionLevel(e)}static enforce(e){return new Enforce(e)}static equate(e){return new Equate(e)}static equateRange(e){return new EquateRange(e)}static exclude(e){return new Exclude(e)}static excludeNS(e){return new ExcludeNS(e)}static flipLabel(e){return new FlipLabel(e)}static fontInfo(e){return new FontInfo(e)}static formFieldFilling(e){return new FormFieldFilling(e)}static groupParent(e){return new GroupParent(e)}static ifEmpty(e){return new IfEmpty(e)}static includeXDPContent(e){return new IncludeXDPContent(e)}static incrementalLoad(e){return new IncrementalLoad(e)}static incrementalMerge(e){return new IncrementalMerge(e)}static interactive(e){return new Interactive(e)}static jog(e){return new Jog(e)}static labelPrinter(e){return new LabelPrinter(e)}static layout(e){return new Layout(e)}static level(e){return new Level(e)}static linearized(e){return new Linearized(e)}static locale(e){return new Locale(e)}static localeSet(e){return new LocaleSet(e)}static log(e){return new Log(e)}static map(e){return new MapElement(e)}static mediumInfo(e){return new MediumInfo(e)}static message(e){return new Message(e)}static messaging(e){return new Messaging(e)}static mode(e){return new Mode(e)}static modifyAnnots(e){return new ModifyAnnots(e)}static msgId(e){return new MsgId(e)}static nameAttr(e){return new NameAttr(e)}static neverEmbed(e){return new NeverEmbed(e)}static numberOfCopies(e){return new NumberOfCopies(e)}static openAction(e){return new OpenAction(e)}static output(e){return new Output(e)}static outputBin(e){return new OutputBin(e)}static outputXSL(e){return new OutputXSL(e)}static overprint(e){return new Overprint(e)}static packets(e){return new Packets(e)}static pageOffset(e){return new PageOffset(e)}static pageRange(e){return new PageRange(e)}static pagination(e){return new Pagination(e)}static paginationOverride(e){return new PaginationOverride(e)}static part(e){return new Part(e)}static pcl(e){return new Pcl(e)}static pdf(e){return new Pdf(e)}static pdfa(e){return new Pdfa(e)}static permissions(e){return new Permissions(e)}static pickTrayByPDFSize(e){return new PickTrayByPDFSize(e)}static picture(e){return new Picture(e)}static plaintextMetadata(e){return new PlaintextMetadata(e)}static presence(e){return new Presence(e)}static present(e){return new Present(e)}static print(e){return new Print(e)}static printHighQuality(e){return new PrintHighQuality(e)}static printScaling(e){return new PrintScaling(e)}static printerName(e){return new PrinterName(e)}static producer(e){return new Producer(e)}static ps(e){return new Ps(e)}static range(e){return new Range(e)}static record(e){return new Record(e)}static relevant(e){return new Relevant(e)}static rename(e){return new Rename(e)}static renderPolicy(e){return new RenderPolicy(e)}static runScripts(e){return new RunScripts(e)}static script(e){return new Script(e)}static scriptModel(e){return new ScriptModel(e)}static severity(e){return new Severity(e)}static silentPrint(e){return new SilentPrint(e)}static staple(e){return new Staple(e)}static startNode(e){return new StartNode(e)}static startPage(e){return new StartPage(e)}static submitFormat(e){return new SubmitFormat(e)}static submitUrl(e){return new SubmitUrl(e)}static subsetBelow(e){return new SubsetBelow(e)}static suppressBanner(e){return new SuppressBanner(e)}static tagged(e){return new Tagged(e)}static template(e){return new Template(e)}static templateCache(e){return new TemplateCache(e)}static threshold(e){return new Threshold(e)}static to(e){return new To(e)}static trace(e){return new Trace(e)}static transform(e){return new Transform(e)}static type(e){return new Type(e)}static uri(e){return new Uri(e)}static validate(e){return new Validate(e)}static validateApprovalSignatures(e){return new ValidateApprovalSignatures(e)}static validationMessaging(e){return new ValidationMessaging(e)}static version(e){return new Version(e)}static versionControl(e){return new VersionControl(e)}static viewerPreferences(e){return new ViewerPreferences(e)}static webClient(e){return new WebClient(e)}static whitespace(e){return new Whitespace(e)}static window(e){return new Window(e)}static xdc(e){return new Xdc(e)}static xdp(e){return new Xdp(e)}static xsl(e){return new Xsl(e)}static zpl(e){return new Zpl(e)}}t.ConfigNamespace=ConfigNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ConnectionSetNamespace=void 0;var r=a(77),n=a(75);const i=r.NamespaceIds.connectionSet.id;class ConnectionSet extends n.XFAObject{constructor(e){super(i,"connectionSet",!0);this.wsdlConnection=new n.XFAObjectArray;this.xmlConnection=new n.XFAObjectArray;this.xsdConnection=new n.XFAObjectArray}}class EffectiveInputPolicy extends n.XFAObject{constructor(e){super(i,"effectiveInputPolicy");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class EffectiveOutputPolicy extends n.XFAObject{constructor(e){super(i,"effectiveOutputPolicy");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Operation extends n.StringObject{constructor(e){super(i,"operation");this.id=e.id||"";this.input=e.input||"";this.name=e.name||"";this.output=e.output||"";this.use=e.use||"";this.usehref=e.usehref||""}}class RootElement extends n.StringObject{constructor(e){super(i,"rootElement");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class SoapAction extends n.StringObject{constructor(e){super(i,"soapAction");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class SoapAddress extends n.StringObject{constructor(e){super(i,"soapAddress");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Uri extends n.StringObject{constructor(e){super(i,"uri");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class WsdlAddress extends n.StringObject{constructor(e){super(i,"wsdlAddress");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class WsdlConnection extends n.XFAObject{constructor(e){super(i,"wsdlConnection",!0);this.dataDescription=e.dataDescription||"";this.name=e.name||"";this.effectiveInputPolicy=null;this.effectiveOutputPolicy=null;this.operation=null;this.soapAction=null;this.soapAddress=null;this.wsdlAddress=null}}class XmlConnection extends n.XFAObject{constructor(e){super(i,"xmlConnection",!0);this.dataDescription=e.dataDescription||"";this.name=e.name||"";this.uri=null}}class XsdConnection extends n.XFAObject{constructor(e){super(i,"xsdConnection",!0);this.dataDescription=e.dataDescription||"";this.name=e.name||"";this.rootElement=null;this.uri=null}}class ConnectionSetNamespace{static[r.$buildXFAObject](e,t){if(ConnectionSetNamespace.hasOwnProperty(e))return ConnectionSetNamespace[e](t)}static connectionSet(e){return new ConnectionSet(e)}static effectiveInputPolicy(e){return new EffectiveInputPolicy(e)}static effectiveOutputPolicy(e){return new EffectiveOutputPolicy(e)}static operation(e){return new Operation(e)}static rootElement(e){return new RootElement(e)}static soapAction(e){return new SoapAction(e)}static soapAddress(e){return new SoapAddress(e)}static uri(e){return new Uri(e)}static wsdlAddress(e){return new WsdlAddress(e)}static wsdlConnection(e){return new WsdlConnection(e)}static xmlConnection(e){return new XmlConnection(e)}static xsdConnection(e){return new XsdConnection(e)}}t.ConnectionSetNamespace=ConnectionSetNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.DatasetsNamespace=void 0;var r=a(75),n=a(77);const i=n.NamespaceIds.datasets.id;class Data extends r.XmlObject{constructor(e){super(i,"data",e)}[r.$isNsAgnostic](){return!0}}class Datasets extends r.XFAObject{constructor(e){super(i,"datasets",!0);this.data=null;this.Signature=null}[r.$onChild](e){const t=e[r.$nodeName];("data"===t&&e[r.$namespaceId]===i||"Signature"===t&&e[r.$namespaceId]===n.NamespaceIds.signature.id)&&(this[t]=e);this[r.$appendChild](e)}}class DatasetsNamespace{static[n.$buildXFAObject](e,t){if(DatasetsNamespace.hasOwnProperty(e))return DatasetsNamespace[e](t)}static datasets(e){return new Datasets(e)}static data(e){return new Data(e)}}t.DatasetsNamespace=DatasetsNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.LocaleSetNamespace=void 0;var r=a(77),n=a(75),i=a(76);const s=r.NamespaceIds.localeSet.id;class CalendarSymbols extends n.XFAObject{constructor(e){super(s,"calendarSymbols",!0);this.name="gregorian";this.dayNames=new n.XFAObjectArray(2);this.eraNames=null;this.meridiemNames=null;this.monthNames=new n.XFAObjectArray(2)}}class CurrencySymbol extends n.StringObject{constructor(e){super(s,"currencySymbol");this.name=(0,i.getStringOption)(e.name,["symbol","isoname","decimal"])}}class CurrencySymbols extends n.XFAObject{constructor(e){super(s,"currencySymbols",!0);this.currencySymbol=new n.XFAObjectArray(3)}}class DatePattern extends n.StringObject{constructor(e){super(s,"datePattern");this.name=(0,i.getStringOption)(e.name,["full","long","med","short"])}}class DatePatterns extends n.XFAObject{constructor(e){super(s,"datePatterns",!0);this.datePattern=new n.XFAObjectArray(4)}}class DateTimeSymbols extends n.ContentObject{constructor(e){super(s,"dateTimeSymbols")}}class Day extends n.StringObject{constructor(e){super(s,"day")}}class DayNames extends n.XFAObject{constructor(e){super(s,"dayNames",!0);this.abbr=(0,i.getInteger)({data:e.abbr,defaultValue:0,validate:e=>1===e});this.day=new n.XFAObjectArray(7)}}class Era extends n.StringObject{constructor(e){super(s,"era")}}class EraNames extends n.XFAObject{constructor(e){super(s,"eraNames",!0);this.era=new n.XFAObjectArray(2)}}class Locale extends n.XFAObject{constructor(e){super(s,"locale",!0);this.desc=e.desc||"";this.name="isoname";this.calendarSymbols=null;this.currencySymbols=null;this.datePatterns=null;this.dateTimeSymbols=null;this.numberPatterns=null;this.numberSymbols=null;this.timePatterns=null;this.typeFaces=null}}class LocaleSet extends n.XFAObject{constructor(e){super(s,"localeSet",!0);this.locale=new n.XFAObjectArray}}class Meridiem extends n.StringObject{constructor(e){super(s,"meridiem")}}class MeridiemNames extends n.XFAObject{constructor(e){super(s,"meridiemNames",!0);this.meridiem=new n.XFAObjectArray(2)}}class Month extends n.StringObject{constructor(e){super(s,"month")}}class MonthNames extends n.XFAObject{constructor(e){super(s,"monthNames",!0);this.abbr=(0,i.getInteger)({data:e.abbr,defaultValue:0,validate:e=>1===e});this.month=new n.XFAObjectArray(12)}}class NumberPattern extends n.StringObject{constructor(e){super(s,"numberPattern");this.name=(0,i.getStringOption)(e.name,["full","long","med","short"])}}class NumberPatterns extends n.XFAObject{constructor(e){super(s,"numberPatterns",!0);this.numberPattern=new n.XFAObjectArray(4)}}class NumberSymbol extends n.StringObject{constructor(e){super(s,"numberSymbol");this.name=(0,i.getStringOption)(e.name,["decimal","grouping","percent","minus","zero"])}}class NumberSymbols extends n.XFAObject{constructor(e){super(s,"numberSymbols",!0);this.numberSymbol=new n.XFAObjectArray(5)}}class TimePattern extends n.StringObject{constructor(e){super(s,"timePattern");this.name=(0,i.getStringOption)(e.name,["full","long","med","short"])}}class TimePatterns extends n.XFAObject{constructor(e){super(s,"timePatterns",!0);this.timePattern=new n.XFAObjectArray(4)}}class TypeFace extends n.XFAObject{constructor(e){super(s,"typeFace",!0);this.name=""|e.name}}class TypeFaces extends n.XFAObject{constructor(e){super(s,"typeFaces",!0);this.typeFace=new n.XFAObjectArray}}class LocaleSetNamespace{static[r.$buildXFAObject](e,t){if(LocaleSetNamespace.hasOwnProperty(e))return LocaleSetNamespace[e](t)}static calendarSymbols(e){return new CalendarSymbols(e)}static currencySymbol(e){return new CurrencySymbol(e)}static currencySymbols(e){return new CurrencySymbols(e)}static datePattern(e){return new DatePattern(e)}static datePatterns(e){return new DatePatterns(e)}static dateTimeSymbols(e){return new DateTimeSymbols(e)}static day(e){return new Day(e)}static dayNames(e){return new DayNames(e)}static era(e){return new Era(e)}static eraNames(e){return new EraNames(e)}static locale(e){return new Locale(e)}static localeSet(e){return new LocaleSet(e)}static meridiem(e){return new Meridiem(e)}static meridiemNames(e){return new MeridiemNames(e)}static month(e){return new Month(e)}static monthNames(e){return new MonthNames(e)}static numberPattern(e){return new NumberPattern(e)}static numberPatterns(e){return new NumberPatterns(e)}static numberSymbol(e){return new NumberSymbol(e)}static numberSymbols(e){return new NumberSymbols(e)}static timePattern(e){return new TimePattern(e)}static timePatterns(e){return new TimePatterns(e)}static typeFace(e){return new TypeFace(e)}static typeFaces(e){return new TypeFaces(e)}}t.LocaleSetNamespace=LocaleSetNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.SignatureNamespace=void 0;var r=a(77),n=a(75);const i=r.NamespaceIds.signature.id;class Signature extends n.XFAObject{constructor(e){super(i,"signature",!0)}}class SignatureNamespace{static[r.$buildXFAObject](e,t){if(SignatureNamespace.hasOwnProperty(e))return SignatureNamespace[e](t)}static signature(e){return new Signature(e)}}t.SignatureNamespace=SignatureNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.StylesheetNamespace=void 0;var r=a(77),n=a(75);const i=r.NamespaceIds.stylesheet.id;class Stylesheet extends n.XFAObject{constructor(e){super(i,"stylesheet",!0)}}class StylesheetNamespace{static[r.$buildXFAObject](e,t){if(StylesheetNamespace.hasOwnProperty(e))return StylesheetNamespace[e](t)}static stylesheet(e){return new Stylesheet(e)}}t.StylesheetNamespace=StylesheetNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XdpNamespace=void 0;var r=a(77),n=a(75);const i=r.NamespaceIds.xdp.id;class Xdp extends n.XFAObject{constructor(e){super(i,"xdp",!0);this.uuid=e.uuid||"";this.timeStamp=e.timeStamp||"";this.config=null;this.connectionSet=null;this.datasets=null;this.localeSet=null;this.stylesheet=new n.XFAObjectArray;this.template=null}[n.$onChildCheck](e){const t=r.NamespaceIds[e[n.$nodeName]];return t&&e[n.$namespaceId]===t.id}}class XdpNamespace{static[r.$buildXFAObject](e,t){if(XdpNamespace.hasOwnProperty(e))return XdpNamespace[e](t)}static xdp(e){return new Xdp(e)}}t.XdpNamespace=XdpNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XhtmlNamespace=void 0;var r=a(75),n=a(77),i=a(82),s=a(76);const o=n.NamespaceIds.xhtml.id,c=Symbol(),l=new Set(["color","font","font-family","font-size","font-stretch","font-style","font-weight","margin","margin-bottom","margin-left","margin-right","margin-top","letter-spacing","line-height","orphans","page-break-after","page-break-before","page-break-inside","tab-interval","tab-stop","text-align","text-decoration","text-indent","vertical-align","widows","kerning-mode","xfa-font-horizontal-scale","xfa-font-vertical-scale","xfa-spacerun","xfa-tab-stops"]),h=new Map([["page-break-after","breakAfter"],["page-break-before","breakBefore"],["page-break-inside","breakInside"],["kerning-mode",e=>"none"===e?"none":"normal"],["xfa-font-horizontal-scale",e=>`scaleX(${Math.max(0,Math.min(parseInt(e)/100)).toFixed(2)})`],["xfa-font-vertical-scale",e=>`scaleY(${Math.max(0,Math.min(parseInt(e)/100)).toFixed(2)})`],["xfa-spacerun",""],["xfa-tab-stops",""],["font-size",(e,t)=>{e=t.fontSize=(0,s.getMeasurement)(e);return(0,i.measureToString)(.99*e)}],["letter-spacing",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["line-height",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["margin",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["margin-bottom",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["margin-left",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["margin-right",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["margin-top",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["text-indent",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["font-family",e=>e],["vertical-align",e=>(0,i.measureToString)((0,s.getMeasurement)(e))]]),u=/\s+/g,d=/[\r\n]+/g,f=/\r\n?/g;function mapStyle(e,t,a){const n=Object.create(null);if(!e)return n;const o=Object.create(null);for(const[t,a]of e.split(";").map((e=>e.split(":",2)))){const e=h.get(t);if(""===e)continue;let r=a;e&&(r="string"==typeof e?e:e(a,o));t.endsWith("scale")?n.transform?n.transform=`${n[t]} ${r}`:n.transform=r:n[t.replaceAll(/-([a-zA-Z])/g,((e,t)=>t.toUpperCase()))]=r}n.fontFamily&&(0,i.setFontFamily)({typeface:n.fontFamily,weight:n.fontWeight||"normal",posture:n.fontStyle||"normal",size:o.fontSize||0},t,t[r.$globalData].fontFinder,n);if(a&&n.verticalAlign&&"0px"!==n.verticalAlign&&n.fontSize){const e=.583,t=.333,a=(0,s.getMeasurement)(n.fontSize);n.fontSize=(0,i.measureToString)(a*e);n.verticalAlign=(0,i.measureToString)(Math.sign((0,s.getMeasurement)(n.verticalAlign))*a*t)}a&&n.fontSize&&(n.fontSize=`calc(${n.fontSize} * var(--scale-factor))`);(0,i.fixTextIndent)(n);return n}const g=new Set(["body","html"]);class XhtmlObject extends r.XmlObject{constructor(e,t){super(o,t);this[c]=!1;this.style=e.style||""}[r.$clean](e){super[r.$clean](e);this.style=function checkStyle(e){return e.style?e.style.trim().split(/\s*;\s*/).filter((e=>!!e)).map((e=>e.split(/\s*:\s*/,2))).filter((([t,a])=>{"font-family"===t&&e[r.$globalData].usedTypefaces.add(a);return l.has(t)})).map((e=>e.join(":"))).join(";"):""}(this)}[r.$acceptWhitespace](){return!g.has(this[r.$nodeName])}[r.$onText](e,t=!1){if(t)this[c]=!0;else{e=e.replace(d,"");this.style.includes("xfa-spacerun:yes")||(e=e.replace(u," "))}e&&(this[r.$content]+=e)}[r.$pushGlyphs](e,t=!0){const a=Object.create(null),n={top:NaN,bottom:NaN,left:NaN,right:NaN};let i=null;for(const[e,t]of this.style.split(";").map((e=>e.split(":",2))))switch(e){case"font-family":a.typeface=(0,s.stripQuotes)(t);break;case"font-size":a.size=(0,s.getMeasurement)(t);break;case"font-weight":a.weight=t;break;case"font-style":a.posture=t;break;case"letter-spacing":a.letterSpacing=(0,s.getMeasurement)(t);break;case"margin":const e=t.split(/ \t/).map((e=>(0,s.getMeasurement)(e)));switch(e.length){case 1:n.top=n.bottom=n.left=n.right=e[0];break;case 2:n.top=n.bottom=e[0];n.left=n.right=e[1];break;case 3:n.top=e[0];n.bottom=e[2];n.left=n.right=e[1];break;case 4:n.top=e[0];n.left=e[1];n.bottom=e[2];n.right=e[3]}break;case"margin-top":n.top=(0,s.getMeasurement)(t);break;case"margin-bottom":n.bottom=(0,s.getMeasurement)(t);break;case"margin-left":n.left=(0,s.getMeasurement)(t);break;case"margin-right":n.right=(0,s.getMeasurement)(t);break;case"line-height":i=(0,s.getMeasurement)(t)}e.pushData(a,n,i);if(this[r.$content])e.addString(this[r.$content]);else for(const t of this[r.$getChildren]())"#text"!==t[r.$nodeName]?t[r.$pushGlyphs](e):e.addString(t[r.$content]);t&&e.popFont()}[r.$toHTML](e){const t=[];this[r.$extra]={children:t};this[r.$childrenToHTML]({});if(0===t.length&&!this[r.$content])return s.HTMLResult.EMPTY;let a;a=this[c]?this[r.$content]?this[r.$content].replace(f,"\n"):void 0:this[r.$content]||void 0;return s.HTMLResult.success({name:this[r.$nodeName],attributes:{href:this.href,style:mapStyle(this.style,this,this[c])},children:t,value:a})}}class A extends XhtmlObject{constructor(e){super(e,"a");this.href=(0,i.fixURL)(e.href)||""}}class B extends XhtmlObject{constructor(e){super(e,"b")}[r.$pushGlyphs](e){e.pushFont({weight:"bold"});super[r.$pushGlyphs](e);e.popFont()}}class Body extends XhtmlObject{constructor(e){super(e,"body")}[r.$toHTML](e){const t=super[r.$toHTML](e),{html:a}=t;if(!a)return s.HTMLResult.EMPTY;a.name="div";a.attributes.class=["xfaRich"];return t}}class Br extends XhtmlObject{constructor(e){super(e,"br")}[r.$text](){return"\n"}[r.$pushGlyphs](e){e.addString("\n")}[r.$toHTML](e){return s.HTMLResult.success({name:"br"})}}class Html extends XhtmlObject{constructor(e){super(e,"html")}[r.$toHTML](e){const t=[];this[r.$extra]={children:t};this[r.$childrenToHTML]({});if(0===t.length)return s.HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},value:this[r.$content]||""});if(1===t.length){const e=t[0];if(e.attributes&&e.attributes.class.includes("xfaRich"))return s.HTMLResult.success(e)}return s.HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},children:t})}}class I extends XhtmlObject{constructor(e){super(e,"i")}[r.$pushGlyphs](e){e.pushFont({posture:"italic"});super[r.$pushGlyphs](e);e.popFont()}}class Li extends XhtmlObject{constructor(e){super(e,"li")}}class Ol extends XhtmlObject{constructor(e){super(e,"ol")}}class P extends XhtmlObject{constructor(e){super(e,"p")}[r.$pushGlyphs](e){super[r.$pushGlyphs](e,!1);e.addString("\n");e.addPara();e.popFont()}[r.$text](){return this[r.$getParent]()[r.$getChildren]().at(-1)===this?super[r.$text]():super[r.$text]()+"\n"}}class Span extends XhtmlObject{constructor(e){super(e,"span")}}class Sub extends XhtmlObject{constructor(e){super(e,"sub")}}class Sup extends XhtmlObject{constructor(e){super(e,"sup")}}class Ul extends XhtmlObject{constructor(e){super(e,"ul")}}class XhtmlNamespace{static[n.$buildXFAObject](e,t){if(XhtmlNamespace.hasOwnProperty(e))return XhtmlNamespace[e](t)}static a(e){return new A(e)}static b(e){return new B(e)}static body(e){return new Body(e)}static br(e){return new Br(e)}static html(e){return new Html(e)}static i(e){return new I(e)}static li(e){return new Li(e)}static ol(e){return new Ol(e)}static p(e){return new P(e)}static span(e){return new Span(e)}static sub(e){return new Sub(e)}static sup(e){return new Sup(e)}static ul(e){return new Ul(e)}}t.XhtmlNamespace=XhtmlNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.UnknownNamespace=void 0;var r=a(77),n=a(75);class UnknownNamespace{constructor(e){this.namespaceId=e}[r.$buildXFAObject](e,t){return new n.XmlObject(this.namespaceId,e,t)}}t.UnknownNamespace=UnknownNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.DatasetReader=void 0;var r=a(2),n=a(4),i=a(64);function decodeString(e){try{return(0,r.stringToUTF8String)(e)}catch(t){(0,r.warn)(`UTF-8 decoding failed: "${t}".`);return e}}class DatasetXMLParser extends i.SimpleXMLParser{constructor(e){super(e);this.node=null}onEndElement(e){const t=super.onEndElement(e);if(t&&"xfa:datasets"===e){this.node=t;throw new Error("Aborting DatasetXMLParser.")}}}t.DatasetReader=class DatasetReader{constructor(e){if(e.datasets)this.node=new i.SimpleXMLParser({hasAttributes:!0}).parseFromString(e.datasets).documentElement;else{const t=new DatasetXMLParser({hasAttributes:!0});try{t.parseFromString(e["xdp:xdp"])}catch(e){}this.node=t.node}}getValue(e){if(!this.node||!e)return"";const t=this.node.searchNode((0,n.parseXFAPath)(e),0);if(!t)return"";const a=t.firstChild;return a&&"value"===a.nodeName?t.children.map((e=>decodeString(e.textContent))):decodeString(t.textContent)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XRef=void 0;var r=a(2),n=a(3),i=a(15),s=a(4),o=a(5),c=a(65);t.XRef=class XRef{constructor(e,t){this.stream=e;this.pdfManager=t;this.entries=[];this.xrefstms=Object.create(null);this._cacheMap=new Map;this._pendingRefs=new n.RefSet;this._newPersistentRefNum=null;this._newTemporaryRefNum=null}getNewPersistentRef(e){null===this._newPersistentRefNum&&(this._newPersistentRefNum=this.entries.length||1);const t=this._newPersistentRefNum++;this._cacheMap.set(t,e);return n.Ref.get(t,0)}getNewTemporaryRef(){null===this._newTemporaryRefNum&&(this._newTemporaryRefNum=this.entries.length||1);return n.Ref.get(this._newTemporaryRefNum++,0)}resetNewTemporaryRef(){this._newTemporaryRefNum=null}setStartXRef(e){this.startXRefQueue=[e]}parse(e=!1){let t,a,i;if(e){(0,r.warn)("Indexing all PDF objects");t=this.indexObjects()}else t=this.readXRef();t.assignXref(this);this.trailer=t;try{a=t.get("Encrypt")}catch(e){if(e instanceof s.MissingDataException)throw e;(0,r.warn)(`XRef.parse - Invalid "Encrypt" reference: "${e}".`)}if(a instanceof n.Dict){const e=t.get("ID"),r=e&&e.length?e[0]:"";a.suppressEncryption=!0;this.encrypt=new c.CipherTransformFactory(a,r,this.pdfManager.password)}try{i=t.get("Root")}catch(e){if(e instanceof s.MissingDataException)throw e;(0,r.warn)(`XRef.parse - Invalid "Root" reference: "${e}".`)}if(i instanceof n.Dict)try{if(i.get("Pages")instanceof n.Dict){this.root=i;return}}catch(e){if(e instanceof s.MissingDataException)throw e;(0,r.warn)(`XRef.parse - Invalid "Pages" reference: "${e}".`)}if(!e)throw new s.XRefParseException;throw new r.InvalidPDFException("Invalid Root reference.")}processXRefTable(e){"tableState"in this||(this.tableState={entryNum:0,streamPos:e.lexer.stream.pos,parserBuf1:e.buf1,parserBuf2:e.buf2});const t=this.readXRefTable(e);if(!(0,n.isCmd)(t,"trailer"))throw new r.FormatError("Invalid XRef table: could not find trailer dictionary");let a=e.getObj();a instanceof n.Dict||!a.dict||(a=a.dict);if(!(a instanceof n.Dict))throw new r.FormatError("Invalid XRef table: could not parse trailer dictionary");delete this.tableState;return a}readXRefTable(e){const t=e.lexer.stream,a=this.tableState;t.pos=a.streamPos;e.buf1=a.parserBuf1;e.buf2=a.parserBuf2;let i;for(;;){if(!("firstEntryNum"in a)||!("entryCount"in a)){if((0,n.isCmd)(i=e.getObj(),"trailer"))break;a.firstEntryNum=i;a.entryCount=e.getObj()}let s=a.firstEntryNum;const o=a.entryCount;if(!Number.isInteger(s)||!Number.isInteger(o))throw new r.FormatError("Invalid XRef table: wrong types in subsection header");for(let i=a.entryNum;i0;){const[o,c]=s;if(!Number.isInteger(o)||!Number.isInteger(c))throw new r.FormatError(`Invalid XRef range fields: ${o}, ${c}`);if(!Number.isInteger(a)||!Number.isInteger(n)||!Number.isInteger(i))throw new r.FormatError(`Invalid XRef entry fields length: ${o}, ${c}`);for(let s=t.entryNum;s=e.length);){a+=String.fromCharCode(r);r=e[t]}return a}function skipUntil(e,t,a){const r=a.length,n=e.length;let i=0;for(;t=r)break;t++;i++}return i}const e=/\b(endobj|\d+\s+\d+\s+obj|xref|trailer)\b/g,t=/\b(startxref|\d+\s+\d+\s+obj)\b/g,a=/^(\d+)\s+(\d+)\s+obj\b/,o=new Uint8Array([116,114,97,105,108,101,114]),c=new Uint8Array([115,116,97,114,116,120,114,101,102]),l=new Uint8Array([47,88,82,101,102]);this.entries.length=0;this._cacheMap.clear();const h=this.stream;h.pos=0;const u=h.getBytes(),d=(0,r.bytesToString)(u),f=u.length;let g=h.start;const p=[],m=[];for(;g=f)break;n=u[g]}while(10!==n&&13!==n);continue}const b=readToken(u,g);let y;if(b.startsWith("xref")&&(4===b.length||/\s/.test(b[4]))){g+=skipUntil(u,g,o);p.push(g);g+=skipUntil(u,g,c)}else if(y=a.exec(b)){const t=0|y[1],a=0|y[2],n=g+b.length;let o,c=!1;if(this.entries[t]){if(this.entries[t].gen===a)try{new i.Parser({lexer:new i.Lexer(h.makeSubStream(n))}).getObj();c=!0}catch(e){e instanceof s.ParserEOFException?(0,r.warn)(`indexObjects -- checking object (${b}): "${e}".`):c=!0}}else c=!0;c&&(this.entries[t]={offset:g-h.start,gen:a,uncompressed:!0});e.lastIndex=n;const p=e.exec(d);if(p){o=e.lastIndex+1-g;if("endobj"!==p[1]){(0,r.warn)(`indexObjects: Found "${p[1]}" inside of another "obj", caused by missing "endobj" -- trying to recover.`);o-=p[1].length+1}}else o=f-g;const w=u.subarray(g,g+o),S=skipUntil(w,0,l);if(S{Object.defineProperty(t,"__esModule",{value:!0});t.isNodeJS=void 0;const a=!("object"!=typeof process||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&"browser"!==process.type);t.isNodeJS=a},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.MessageHandler=void 0;var r=a(2);const n=1,i=2,s=1,o=2,c=3,l=4,h=5,u=6,d=7,f=8;function wrapReason(e){e instanceof Error||"object"==typeof e&&null!==e||(0,r.unreachable)('wrapReason: Expected "reason" to be a (possibly cloned) Error.');switch(e.name){case"AbortException":return new r.AbortException(e.message);case"MissingPDFException":return new r.MissingPDFException(e.message);case"PasswordException":return new r.PasswordException(e.message,e.code);case"UnexpectedResponseException":return new r.UnexpectedResponseException(e.message,e.status);case"UnknownErrorException":return new r.UnknownErrorException(e.message,e.details);default:return new r.UnknownErrorException(e.message,e.toString())}}t.MessageHandler=class MessageHandler{constructor(e,t,a){this.sourceName=e;this.targetName=t;this.comObj=a;this.callbackId=1;this.streamId=1;this.streamSinks=Object.create(null);this.streamControllers=Object.create(null);this.callbackCapabilities=Object.create(null);this.actionHandler=Object.create(null);this._onComObjOnMessage=e=>{const t=e.data;if(t.targetName!==this.sourceName)return;if(t.stream){this._processStreamMessage(t);return}if(t.callback){const e=t.callbackId,a=this.callbackCapabilities[e];if(!a)throw new Error(`Cannot resolve callback ${e}`);delete this.callbackCapabilities[e];if(t.callback===n)a.resolve(t.data);else{if(t.callback!==i)throw new Error("Unexpected callback case");a.reject(wrapReason(t.reason))}return}const r=this.actionHandler[t.action];if(!r)throw new Error(`Unknown action from worker: ${t.action}`);if(t.callbackId){const e=this.sourceName,s=t.sourceName;new Promise((function(e){e(r(t.data))})).then((function(r){a.postMessage({sourceName:e,targetName:s,callback:n,callbackId:t.callbackId,data:r})}),(function(r){a.postMessage({sourceName:e,targetName:s,callback:i,callbackId:t.callbackId,reason:wrapReason(r)})}))}else t.streamId?this._createStreamSink(t):r(t.data)};a.addEventListener("message",this._onComObjOnMessage)}on(e,t){const a=this.actionHandler;if(a[e])throw new Error(`There is already an actionName called "${e}"`);a[e]=t}send(e,t,a){this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:e,data:t},a)}sendWithPromise(e,t,a){const n=this.callbackId++,i=(0,r.createPromiseCapability)();this.callbackCapabilities[n]=i;try{this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:e,callbackId:n,data:t},a)}catch(e){i.reject(e)}return i.promise}sendWithStream(e,t,a,n){const i=this.streamId++,o=this.sourceName,c=this.targetName,l=this.comObj;return new ReadableStream({start:a=>{const s=(0,r.createPromiseCapability)();this.streamControllers[i]={controller:a,startCall:s,pullCall:null,cancelCall:null,isClosed:!1};l.postMessage({sourceName:o,targetName:c,action:e,streamId:i,data:t,desiredSize:a.desiredSize},n);return s.promise},pull:e=>{const t=(0,r.createPromiseCapability)();this.streamControllers[i].pullCall=t;l.postMessage({sourceName:o,targetName:c,stream:u,streamId:i,desiredSize:e.desiredSize});return t.promise},cancel:e=>{(0,r.assert)(e instanceof Error,"cancel must have a valid reason");const t=(0,r.createPromiseCapability)();this.streamControllers[i].cancelCall=t;this.streamControllers[i].isClosed=!0;l.postMessage({sourceName:o,targetName:c,stream:s,streamId:i,reason:wrapReason(e)});return t.promise}},a)}_createStreamSink(e){const t=e.streamId,a=this.sourceName,n=e.sourceName,i=this.comObj,s=this,o=this.actionHandler[e.action],u={enqueue(e,s=1,o){if(this.isCancelled)return;const c=this.desiredSize;this.desiredSize-=s;if(c>0&&this.desiredSize<=0){this.sinkCapability=(0,r.createPromiseCapability)();this.ready=this.sinkCapability.promise}i.postMessage({sourceName:a,targetName:n,stream:l,streamId:t,chunk:e},o)},close(){if(!this.isCancelled){this.isCancelled=!0;i.postMessage({sourceName:a,targetName:n,stream:c,streamId:t});delete s.streamSinks[t]}},error(e){(0,r.assert)(e instanceof Error,"error must have a valid reason");if(!this.isCancelled){this.isCancelled=!0;i.postMessage({sourceName:a,targetName:n,stream:h,streamId:t,reason:wrapReason(e)})}},sinkCapability:(0,r.createPromiseCapability)(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:e.desiredSize,ready:null};u.sinkCapability.resolve();u.ready=u.sinkCapability.promise;this.streamSinks[t]=u;new Promise((function(t){t(o(e.data,u))})).then((function(){i.postMessage({sourceName:a,targetName:n,stream:f,streamId:t,success:!0})}),(function(e){i.postMessage({sourceName:a,targetName:n,stream:f,streamId:t,reason:wrapReason(e)})}))}_processStreamMessage(e){const t=e.streamId,a=this.sourceName,n=e.sourceName,i=this.comObj,g=this.streamControllers[t],p=this.streamSinks[t];switch(e.stream){case f:e.success?g.startCall.resolve():g.startCall.reject(wrapReason(e.reason));break;case d:e.success?g.pullCall.resolve():g.pullCall.reject(wrapReason(e.reason));break;case u:if(!p){i.postMessage({sourceName:a,targetName:n,stream:d,streamId:t,success:!0});break}p.desiredSize<=0&&e.desiredSize>0&&p.sinkCapability.resolve();p.desiredSize=e.desiredSize;new Promise((function(e){e(p.onPull&&p.onPull())})).then((function(){i.postMessage({sourceName:a,targetName:n,stream:d,streamId:t,success:!0})}),(function(e){i.postMessage({sourceName:a,targetName:n,stream:d,streamId:t,reason:wrapReason(e)})}));break;case l:(0,r.assert)(g,"enqueue should have stream controller");if(g.isClosed)break;g.controller.enqueue(e.chunk);break;case c:(0,r.assert)(g,"close should have stream controller");if(g.isClosed)break;g.isClosed=!0;g.controller.close();this._deleteStreamController(g,t);break;case h:(0,r.assert)(g,"error should have stream controller");g.controller.error(wrapReason(e.reason));this._deleteStreamController(g,t);break;case o:e.success?g.cancelCall.resolve():g.cancelCall.reject(wrapReason(e.reason));this._deleteStreamController(g,t);break;case s:if(!p)break;new Promise((function(t){t(p.onCancel&&p.onCancel(wrapReason(e.reason)))})).then((function(){i.postMessage({sourceName:a,targetName:n,stream:o,streamId:t,success:!0})}),(function(e){i.postMessage({sourceName:a,targetName:n,stream:o,streamId:t,reason:wrapReason(e)})}));p.sinkCapability.reject(wrapReason(e.reason));p.isCancelled=!0;delete this.streamSinks[t];break;default:throw new Error("Unexpected stream case")}}async _deleteStreamController(e,t){await Promise.allSettled([e.startCall&&e.startCall.promise,e.pullCall&&e.pullCall.promise,e.cancelCall&&e.cancelCall.promise]);delete this.streamControllers[t]}destroy(){this.comObj.removeEventListener("message",this._onComObjOnMessage)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.PDFWorkerStream=void 0;var r=a(2);t.PDFWorkerStream=class PDFWorkerStream{constructor(e){this._msgHandler=e;this._contentLength=null;this._fullRequestReader=null;this._rangeRequestReaders=[]}getFullReader(){(0,r.assert)(!this._fullRequestReader,"PDFWorkerStream.getFullReader can only be called once.");this._fullRequestReader=new PDFWorkerStreamReader(this._msgHandler);return this._fullRequestReader}getRangeReader(e,t){const a=new PDFWorkerStreamRangeReader(e,t,this._msgHandler);this._rangeRequestReaders.push(a);return a}cancelAllRequests(e){this._fullRequestReader&&this._fullRequestReader.cancel(e);for(const t of this._rangeRequestReaders.slice(0))t.cancel(e)}};class PDFWorkerStreamReader{constructor(e){this._msgHandler=e;this.onProgress=null;this._contentLength=null;this._isRangeSupported=!1;this._isStreamingSupported=!1;const t=this._msgHandler.sendWithStream("GetReader");this._reader=t.getReader();this._headersReady=this._msgHandler.sendWithPromise("ReaderHeadersReady").then((e=>{this._isStreamingSupported=e.isStreamingSupported;this._isRangeSupported=e.isRangeSupported;this._contentLength=e.contentLength}))}get headersReady(){return this._headersReady}get contentLength(){return this._contentLength}get isStreamingSupported(){return this._isStreamingSupported}get isRangeSupported(){return this._isRangeSupported}async read(){const{value:e,done:t}=await this._reader.read();return t?{value:void 0,done:!0}:{value:e.buffer,done:!1}}cancel(e){this._reader.cancel(e)}}class PDFWorkerStreamRangeReader{constructor(e,t,a){this._msgHandler=a;this.onProgress=null;const r=this._msgHandler.sendWithStream("GetRangeReader",{begin:e,end:t});this._reader=r.getReader()}get isStreamingSupported(){return!1}async read(){const{value:e,done:t}=await this._reader.read();return t?{value:void 0,done:!0}:{value:e.buffer,done:!1}}cancel(e){this._reader.cancel(e)}}}],t={};function __w_pdfjs_require__(a){var r=t[a];if(void 0!==r)return r.exports;var n=t[a]={exports:{}};e[a](n,n.exports,__w_pdfjs_require__);return n.exports}__w_pdfjs_require__.d=(e,t)=>{for(var a in t)__w_pdfjs_require__.o(t,a)&&!__w_pdfjs_require__.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})};__w_pdfjs_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);__w_pdfjs_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});Object.defineProperty(e,"__esModule",{value:!0})};var a={};(()=>{var e=a;Object.defineProperty(e,"__esModule",{value:!0});Object.defineProperty(e,"WorkerMessageHandler",{enumerable:!0,get:function(){return t.WorkerMessageHandler}});var t=__w_pdfjs_require__(1)})();return a})())); \ No newline at end of file diff --git a/src/main/resources/static/pdfjs/pdf_viewer.js b/src/main/resources/static/pdfjs/pdf_viewer.js new file mode 100644 index 00000000..c5d9fd6d --- /dev/null +++ b/src/main/resources/static/pdfjs/pdf_viewer.js @@ -0,0 +1,7702 @@ +/** + * @licstart The following is the entire license notice for the + * JavaScript code in this page + * + * Copyright 2023 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @licend The above is the entire license notice for the + * JavaScript code in this page + */ + +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define("pdfjs-dist/web/pdf_viewer", [], factory); + else if(typeof exports === 'object') + exports["pdfjs-dist/web/pdf_viewer"] = factory(); + else + root["pdfjs-dist/web/pdf_viewer"] = root.pdfjsViewer = factory(); +})(globalThis, () => { +return /******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.SimpleLinkService = exports.PDFLinkService = exports.LinkTarget = void 0; +var _ui_utils = __w_pdfjs_require__(2); +const DEFAULT_LINK_REL = "noopener noreferrer nofollow"; +const LinkTarget = { + NONE: 0, + SELF: 1, + BLANK: 2, + PARENT: 3, + TOP: 4 +}; +exports.LinkTarget = LinkTarget; +function addLinkAttributes(link, { + url, + target, + rel, + enabled = true +} = {}) { + if (!url || typeof url !== "string") { + throw new Error('A valid "url" parameter must provided.'); + } + const urlNullRemoved = (0, _ui_utils.removeNullCharacters)(url); + if (enabled) { + link.href = link.title = urlNullRemoved; + } else { + link.href = ""; + link.title = `Disabled: ${urlNullRemoved}`; + link.onclick = () => { + return false; + }; + } + let targetStr = ""; + switch (target) { + case LinkTarget.NONE: + break; + case LinkTarget.SELF: + targetStr = "_self"; + break; + case LinkTarget.BLANK: + targetStr = "_blank"; + break; + case LinkTarget.PARENT: + targetStr = "_parent"; + break; + case LinkTarget.TOP: + targetStr = "_top"; + break; + } + link.target = targetStr; + link.rel = typeof rel === "string" ? rel : DEFAULT_LINK_REL; +} +class PDFLinkService { + #pagesRefCache = new Map(); + constructor({ + eventBus, + externalLinkTarget = null, + externalLinkRel = null, + ignoreDestinationZoom = false + } = {}) { + this.eventBus = eventBus; + this.externalLinkTarget = externalLinkTarget; + this.externalLinkRel = externalLinkRel; + this.externalLinkEnabled = true; + this._ignoreDestinationZoom = ignoreDestinationZoom; + this.baseUrl = null; + this.pdfDocument = null; + this.pdfViewer = null; + this.pdfHistory = null; + } + setDocument(pdfDocument, baseUrl = null) { + this.baseUrl = baseUrl; + this.pdfDocument = pdfDocument; + this.#pagesRefCache.clear(); + } + setViewer(pdfViewer) { + this.pdfViewer = pdfViewer; + } + setHistory(pdfHistory) { + this.pdfHistory = pdfHistory; + } + get pagesCount() { + return this.pdfDocument ? this.pdfDocument.numPages : 0; + } + get page() { + return this.pdfViewer.currentPageNumber; + } + set page(value) { + this.pdfViewer.currentPageNumber = value; + } + get rotation() { + return this.pdfViewer.pagesRotation; + } + set rotation(value) { + this.pdfViewer.pagesRotation = value; + } + get isInPresentationMode() { + return this.pdfViewer.isInPresentationMode; + } + #goToDestinationHelper(rawDest, namedDest = null, explicitDest) { + const destRef = explicitDest[0]; + let pageNumber; + if (typeof destRef === "object" && destRef !== null) { + pageNumber = this._cachedPageNumber(destRef); + if (!pageNumber) { + this.pdfDocument.getPageIndex(destRef).then(pageIndex => { + this.cachePageRef(pageIndex + 1, destRef); + this.#goToDestinationHelper(rawDest, namedDest, explicitDest); + }).catch(() => { + console.error(`PDFLinkService.#goToDestinationHelper: "${destRef}" is not ` + `a valid page reference, for dest="${rawDest}".`); + }); + return; + } + } else if (Number.isInteger(destRef)) { + pageNumber = destRef + 1; + } else { + console.error(`PDFLinkService.#goToDestinationHelper: "${destRef}" is not ` + `a valid destination reference, for dest="${rawDest}".`); + return; + } + if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) { + console.error(`PDFLinkService.#goToDestinationHelper: "${pageNumber}" is not ` + `a valid page number, for dest="${rawDest}".`); + return; + } + if (this.pdfHistory) { + this.pdfHistory.pushCurrentPosition(); + this.pdfHistory.push({ + namedDest, + explicitDest, + pageNumber + }); + } + this.pdfViewer.scrollPageIntoView({ + pageNumber, + destArray: explicitDest, + ignoreDestinationZoom: this._ignoreDestinationZoom + }); + } + async goToDestination(dest) { + if (!this.pdfDocument) { + return; + } + let namedDest, explicitDest; + if (typeof dest === "string") { + namedDest = dest; + explicitDest = await this.pdfDocument.getDestination(dest); + } else { + namedDest = null; + explicitDest = await dest; + } + if (!Array.isArray(explicitDest)) { + console.error(`PDFLinkService.goToDestination: "${explicitDest}" is not ` + `a valid destination array, for dest="${dest}".`); + return; + } + this.#goToDestinationHelper(dest, namedDest, explicitDest); + } + goToPage(val) { + if (!this.pdfDocument) { + return; + } + const pageNumber = typeof val === "string" && this.pdfViewer.pageLabelToPageNumber(val) || val | 0; + if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) { + console.error(`PDFLinkService.goToPage: "${val}" is not a valid page.`); + return; + } + if (this.pdfHistory) { + this.pdfHistory.pushCurrentPosition(); + this.pdfHistory.pushPage(pageNumber); + } + this.pdfViewer.scrollPageIntoView({ + pageNumber + }); + } + addLinkAttributes(link, url, newWindow = false) { + addLinkAttributes(link, { + url, + target: newWindow ? LinkTarget.BLANK : this.externalLinkTarget, + rel: this.externalLinkRel, + enabled: this.externalLinkEnabled + }); + } + getDestinationHash(dest) { + if (typeof dest === "string") { + if (dest.length > 0) { + return this.getAnchorUrl("#" + escape(dest)); + } + } else if (Array.isArray(dest)) { + const str = JSON.stringify(dest); + if (str.length > 0) { + return this.getAnchorUrl("#" + escape(str)); + } + } + return this.getAnchorUrl(""); + } + getAnchorUrl(anchor) { + return (this.baseUrl || "") + anchor; + } + setHash(hash) { + if (!this.pdfDocument) { + return; + } + let pageNumber, dest; + if (hash.includes("=")) { + const params = (0, _ui_utils.parseQueryString)(hash); + if (params.has("search")) { + this.eventBus.dispatch("findfromurlhash", { + source: this, + query: params.get("search").replace(/"/g, ""), + phraseSearch: params.get("phrase") === "true" + }); + } + if (params.has("page")) { + pageNumber = params.get("page") | 0 || 1; + } + if (params.has("zoom")) { + const zoomArgs = params.get("zoom").split(","); + const zoomArg = zoomArgs[0]; + const zoomArgNumber = parseFloat(zoomArg); + if (!zoomArg.includes("Fit")) { + dest = [null, { + name: "XYZ" + }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg]; + } else { + if (zoomArg === "Fit" || zoomArg === "FitB") { + dest = [null, { + name: zoomArg + }]; + } else if (zoomArg === "FitH" || zoomArg === "FitBH" || zoomArg === "FitV" || zoomArg === "FitBV") { + dest = [null, { + name: zoomArg + }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null]; + } else if (zoomArg === "FitR") { + if (zoomArgs.length !== 5) { + console.error('PDFLinkService.setHash: Not enough parameters for "FitR".'); + } else { + dest = [null, { + name: zoomArg + }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0]; + } + } else { + console.error(`PDFLinkService.setHash: "${zoomArg}" is not a valid zoom value.`); + } + } + } + if (dest) { + this.pdfViewer.scrollPageIntoView({ + pageNumber: pageNumber || this.page, + destArray: dest, + allowNegativeOffset: true + }); + } else if (pageNumber) { + this.page = pageNumber; + } + if (params.has("pagemode")) { + this.eventBus.dispatch("pagemode", { + source: this, + mode: params.get("pagemode") + }); + } + if (params.has("nameddest")) { + this.goToDestination(params.get("nameddest")); + } + } else { + dest = unescape(hash); + try { + dest = JSON.parse(dest); + if (!Array.isArray(dest)) { + dest = dest.toString(); + } + } catch (ex) {} + if (typeof dest === "string" || PDFLinkService.#isValidExplicitDestination(dest)) { + this.goToDestination(dest); + return; + } + console.error(`PDFLinkService.setHash: "${unescape(hash)}" is not a valid destination.`); + } + } + executeNamedAction(action) { + switch (action) { + case "GoBack": + this.pdfHistory?.back(); + break; + case "GoForward": + this.pdfHistory?.forward(); + break; + case "NextPage": + this.pdfViewer.nextPage(); + break; + case "PrevPage": + this.pdfViewer.previousPage(); + break; + case "LastPage": + this.page = this.pagesCount; + break; + case "FirstPage": + this.page = 1; + break; + default: + break; + } + this.eventBus.dispatch("namedaction", { + source: this, + action + }); + } + async executeSetOCGState(action) { + const pdfDocument = this.pdfDocument; + const optionalContentConfig = await this.pdfViewer.optionalContentConfigPromise; + if (pdfDocument !== this.pdfDocument) { + return; + } + let operator; + for (const elem of action.state) { + switch (elem) { + case "ON": + case "OFF": + case "Toggle": + operator = elem; + continue; + } + switch (operator) { + case "ON": + optionalContentConfig.setVisibility(elem, true); + break; + case "OFF": + optionalContentConfig.setVisibility(elem, false); + break; + case "Toggle": + const group = optionalContentConfig.getGroup(elem); + if (group) { + optionalContentConfig.setVisibility(elem, !group.visible); + } + break; + } + } + this.pdfViewer.optionalContentConfigPromise = Promise.resolve(optionalContentConfig); + } + cachePageRef(pageNum, pageRef) { + if (!pageRef) { + return; + } + const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`; + this.#pagesRefCache.set(refStr, pageNum); + } + _cachedPageNumber(pageRef) { + if (!pageRef) { + return null; + } + const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`; + return this.#pagesRefCache.get(refStr) || null; + } + isPageVisible(pageNumber) { + return this.pdfViewer.isPageVisible(pageNumber); + } + isPageCached(pageNumber) { + return this.pdfViewer.isPageCached(pageNumber); + } + static #isValidExplicitDestination(dest) { + if (!Array.isArray(dest)) { + return false; + } + const destLength = dest.length; + if (destLength < 2) { + return false; + } + const page = dest[0]; + if (!(typeof page === "object" && Number.isInteger(page.num) && Number.isInteger(page.gen)) && !(Number.isInteger(page) && page >= 0)) { + return false; + } + const zoom = dest[1]; + if (!(typeof zoom === "object" && typeof zoom.name === "string")) { + return false; + } + let allowNull = true; + switch (zoom.name) { + case "XYZ": + if (destLength !== 5) { + return false; + } + break; + case "Fit": + case "FitB": + return destLength === 2; + case "FitH": + case "FitBH": + case "FitV": + case "FitBV": + if (destLength !== 3) { + return false; + } + break; + case "FitR": + if (destLength !== 6) { + return false; + } + allowNull = false; + break; + default: + return false; + } + for (let i = 2; i < destLength; i++) { + const param = dest[i]; + if (!(typeof param === "number" || allowNull && param === null)) { + return false; + } + } + return true; + } +} +exports.PDFLinkService = PDFLinkService; +class SimpleLinkService { + constructor() { + this.externalLinkEnabled = true; + } + get pagesCount() { + return 0; + } + get page() { + return 0; + } + set page(value) {} + get rotation() { + return 0; + } + set rotation(value) {} + get isInPresentationMode() { + return false; + } + async goToDestination(dest) {} + goToPage(val) {} + addLinkAttributes(link, url, newWindow = false) { + addLinkAttributes(link, { + url, + enabled: this.externalLinkEnabled + }); + } + getDestinationHash(dest) { + return "#"; + } + getAnchorUrl(hash) { + return "#"; + } + setHash(hash) {} + executeNamedAction(action) {} + executeSetOCGState(action) {} + cachePageRef(pageNum, pageRef) {} + isPageVisible(pageNumber) { + return true; + } + isPageCached(pageNumber) { + return true; + } +} +exports.SimpleLinkService = SimpleLinkService; + +/***/ }), +/* 2 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.animationStarted = exports.VERTICAL_PADDING = exports.UNKNOWN_SCALE = exports.TextLayerMode = exports.SpreadMode = exports.SidebarView = exports.ScrollMode = exports.SCROLLBAR_PADDING = exports.RenderingStates = exports.RendererType = exports.ProgressBar = exports.PresentationModeState = exports.OutputScale = exports.MIN_SCALE = exports.MAX_SCALE = exports.MAX_AUTO_SCALE = exports.DEFAULT_SCALE_VALUE = exports.DEFAULT_SCALE_DELTA = exports.DEFAULT_SCALE = exports.AutoPrintRegExp = void 0; +exports.apiPageLayoutToViewerModes = apiPageLayoutToViewerModes; +exports.apiPageModeToSidebarView = apiPageModeToSidebarView; +exports.approximateFraction = approximateFraction; +exports.backtrackBeforeAllVisibleElements = backtrackBeforeAllVisibleElements; +exports.binarySearchFirstItem = binarySearchFirstItem; +exports.docStyle = void 0; +exports.getActiveOrFocusedElement = getActiveOrFocusedElement; +exports.getPageSizeInches = getPageSizeInches; +exports.getVisibleElements = getVisibleElements; +exports.isPortraitOrientation = isPortraitOrientation; +exports.isValidRotation = isValidRotation; +exports.isValidScrollMode = isValidScrollMode; +exports.isValidSpreadMode = isValidSpreadMode; +exports.noContextMenuHandler = noContextMenuHandler; +exports.normalizeWheelEventDelta = normalizeWheelEventDelta; +exports.normalizeWheelEventDirection = normalizeWheelEventDirection; +exports.parseQueryString = parseQueryString; +exports.removeNullCharacters = removeNullCharacters; +exports.roundToDivide = roundToDivide; +exports.scrollIntoView = scrollIntoView; +exports.watchScroll = watchScroll; +const DEFAULT_SCALE_VALUE = "auto"; +exports.DEFAULT_SCALE_VALUE = DEFAULT_SCALE_VALUE; +const DEFAULT_SCALE = 1.0; +exports.DEFAULT_SCALE = DEFAULT_SCALE; +const DEFAULT_SCALE_DELTA = 1.1; +exports.DEFAULT_SCALE_DELTA = DEFAULT_SCALE_DELTA; +const MIN_SCALE = 0.1; +exports.MIN_SCALE = MIN_SCALE; +const MAX_SCALE = 10.0; +exports.MAX_SCALE = MAX_SCALE; +const UNKNOWN_SCALE = 0; +exports.UNKNOWN_SCALE = UNKNOWN_SCALE; +const MAX_AUTO_SCALE = 1.25; +exports.MAX_AUTO_SCALE = MAX_AUTO_SCALE; +const SCROLLBAR_PADDING = 40; +exports.SCROLLBAR_PADDING = SCROLLBAR_PADDING; +const VERTICAL_PADDING = 5; +exports.VERTICAL_PADDING = VERTICAL_PADDING; +const RenderingStates = { + INITIAL: 0, + RUNNING: 1, + PAUSED: 2, + FINISHED: 3 +}; +exports.RenderingStates = RenderingStates; +const PresentationModeState = { + UNKNOWN: 0, + NORMAL: 1, + CHANGING: 2, + FULLSCREEN: 3 +}; +exports.PresentationModeState = PresentationModeState; +const SidebarView = { + UNKNOWN: -1, + NONE: 0, + THUMBS: 1, + OUTLINE: 2, + ATTACHMENTS: 3, + LAYERS: 4 +}; +exports.SidebarView = SidebarView; +const RendererType = { + CANVAS: "canvas", + SVG: "svg" +}; +exports.RendererType = RendererType; +const TextLayerMode = { + DISABLE: 0, + ENABLE: 1 +}; +exports.TextLayerMode = TextLayerMode; +const ScrollMode = { + UNKNOWN: -1, + VERTICAL: 0, + HORIZONTAL: 1, + WRAPPED: 2, + PAGE: 3 +}; +exports.ScrollMode = ScrollMode; +const SpreadMode = { + UNKNOWN: -1, + NONE: 0, + ODD: 1, + EVEN: 2 +}; +exports.SpreadMode = SpreadMode; +const AutoPrintRegExp = /\bprint\s*\(/; +exports.AutoPrintRegExp = AutoPrintRegExp; +class OutputScale { + constructor() { + const pixelRatio = window.devicePixelRatio || 1; + this.sx = pixelRatio; + this.sy = pixelRatio; + } + get scaled() { + return this.sx !== 1 || this.sy !== 1; + } +} +exports.OutputScale = OutputScale; +function scrollIntoView(element, spot, scrollMatches = false) { + let parent = element.offsetParent; + if (!parent) { + console.error("offsetParent is not set -- cannot scroll"); + return; + } + let offsetY = element.offsetTop + element.clientTop; + let offsetX = element.offsetLeft + element.clientLeft; + while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || scrollMatches && (parent.classList.contains("markedContent") || getComputedStyle(parent).overflow === "hidden")) { + offsetY += parent.offsetTop; + offsetX += parent.offsetLeft; + parent = parent.offsetParent; + if (!parent) { + return; + } + } + if (spot) { + if (spot.top !== undefined) { + offsetY += spot.top; + } + if (spot.left !== undefined) { + offsetX += spot.left; + parent.scrollLeft = offsetX; + } + } + parent.scrollTop = offsetY; +} +function watchScroll(viewAreaElement, callback) { + const debounceScroll = function (evt) { + if (rAF) { + return; + } + rAF = window.requestAnimationFrame(function viewAreaElementScrolled() { + rAF = null; + const currentX = viewAreaElement.scrollLeft; + const lastX = state.lastX; + if (currentX !== lastX) { + state.right = currentX > lastX; + } + state.lastX = currentX; + const currentY = viewAreaElement.scrollTop; + const lastY = state.lastY; + if (currentY !== lastY) { + state.down = currentY > lastY; + } + state.lastY = currentY; + callback(state); + }); + }; + const state = { + right: true, + down: true, + lastX: viewAreaElement.scrollLeft, + lastY: viewAreaElement.scrollTop, + _eventHandler: debounceScroll + }; + let rAF = null; + viewAreaElement.addEventListener("scroll", debounceScroll, true); + return state; +} +function parseQueryString(query) { + const params = new Map(); + for (const [key, value] of new URLSearchParams(query)) { + params.set(key.toLowerCase(), value); + } + return params; +} +const NullCharactersRegExp = /\x00/g; +const InvisibleCharactersRegExp = /[\x01-\x1F]/g; +function removeNullCharacters(str, replaceInvisible = false) { + if (typeof str !== "string") { + console.error(`The argument must be a string.`); + return str; + } + if (replaceInvisible) { + str = str.replace(InvisibleCharactersRegExp, " "); + } + return str.replace(NullCharactersRegExp, ""); +} +function binarySearchFirstItem(items, condition, start = 0) { + let minIndex = start; + let maxIndex = items.length - 1; + if (maxIndex < 0 || !condition(items[maxIndex])) { + return items.length; + } + if (condition(items[minIndex])) { + return minIndex; + } + while (minIndex < maxIndex) { + const currentIndex = minIndex + maxIndex >> 1; + const currentItem = items[currentIndex]; + if (condition(currentItem)) { + maxIndex = currentIndex; + } else { + minIndex = currentIndex + 1; + } + } + return minIndex; +} +function approximateFraction(x) { + if (Math.floor(x) === x) { + return [x, 1]; + } + const xinv = 1 / x; + const limit = 8; + if (xinv > limit) { + return [1, limit]; + } else if (Math.floor(xinv) === xinv) { + return [1, xinv]; + } + const x_ = x > 1 ? xinv : x; + let a = 0, + b = 1, + c = 1, + d = 1; + while (true) { + const p = a + c, + q = b + d; + if (q > limit) { + break; + } + if (x_ <= p / q) { + c = p; + d = q; + } else { + a = p; + b = q; + } + } + let result; + if (x_ - a / b < c / d - x_) { + result = x_ === x ? [a, b] : [b, a]; + } else { + result = x_ === x ? [c, d] : [d, c]; + } + return result; +} +function roundToDivide(x, div) { + const r = x % div; + return r === 0 ? x : Math.round(x - r + div); +} +function getPageSizeInches({ + view, + userUnit, + rotate +}) { + const [x1, y1, x2, y2] = view; + const changeOrientation = rotate % 180 !== 0; + const width = (x2 - x1) / 72 * userUnit; + const height = (y2 - y1) / 72 * userUnit; + return { + width: changeOrientation ? height : width, + height: changeOrientation ? width : height + }; +} +function backtrackBeforeAllVisibleElements(index, views, top) { + if (index < 2) { + return index; + } + let elt = views[index].div; + let pageTop = elt.offsetTop + elt.clientTop; + if (pageTop >= top) { + elt = views[index - 1].div; + pageTop = elt.offsetTop + elt.clientTop; + } + for (let i = index - 2; i >= 0; --i) { + elt = views[i].div; + if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) { + break; + } + index = i; + } + return index; +} +function getVisibleElements({ + scrollEl, + views, + sortByVisibility = false, + horizontal = false, + rtl = false +}) { + const top = scrollEl.scrollTop, + bottom = top + scrollEl.clientHeight; + const left = scrollEl.scrollLeft, + right = left + scrollEl.clientWidth; + function isElementBottomAfterViewTop(view) { + const element = view.div; + const elementBottom = element.offsetTop + element.clientTop + element.clientHeight; + return elementBottom > top; + } + function isElementNextAfterViewHorizontally(view) { + const element = view.div; + const elementLeft = element.offsetLeft + element.clientLeft; + const elementRight = elementLeft + element.clientWidth; + return rtl ? elementLeft < right : elementRight > left; + } + const visible = [], + ids = new Set(), + numViews = views.length; + let firstVisibleElementInd = binarySearchFirstItem(views, horizontal ? isElementNextAfterViewHorizontally : isElementBottomAfterViewTop); + if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) { + firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top); + } + let lastEdge = horizontal ? right : -1; + for (let i = firstVisibleElementInd; i < numViews; i++) { + const view = views[i], + element = view.div; + const currentWidth = element.offsetLeft + element.clientLeft; + const currentHeight = element.offsetTop + element.clientTop; + const viewWidth = element.clientWidth, + viewHeight = element.clientHeight; + const viewRight = currentWidth + viewWidth; + const viewBottom = currentHeight + viewHeight; + if (lastEdge === -1) { + if (viewBottom >= bottom) { + lastEdge = viewBottom; + } + } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) { + break; + } + if (viewBottom <= top || currentHeight >= bottom || viewRight <= left || currentWidth >= right) { + continue; + } + const hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom); + const hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right); + const fractionHeight = (viewHeight - hiddenHeight) / viewHeight, + fractionWidth = (viewWidth - hiddenWidth) / viewWidth; + const percent = fractionHeight * fractionWidth * 100 | 0; + visible.push({ + id: view.id, + x: currentWidth, + y: currentHeight, + view, + percent, + widthPercent: fractionWidth * 100 | 0 + }); + ids.add(view.id); + } + const first = visible[0], + last = visible.at(-1); + if (sortByVisibility) { + visible.sort(function (a, b) { + const pc = a.percent - b.percent; + if (Math.abs(pc) > 0.001) { + return -pc; + } + return a.id - b.id; + }); + } + return { + first, + last, + views: visible, + ids + }; +} +function noContextMenuHandler(evt) { + evt.preventDefault(); +} +function normalizeWheelEventDirection(evt) { + let delta = Math.hypot(evt.deltaX, evt.deltaY); + const angle = Math.atan2(evt.deltaY, evt.deltaX); + if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) { + delta = -delta; + } + return delta; +} +function normalizeWheelEventDelta(evt) { + const deltaMode = evt.deltaMode; + let delta = normalizeWheelEventDirection(evt); + const MOUSE_PIXELS_PER_LINE = 30; + const MOUSE_LINES_PER_PAGE = 30; + if (deltaMode === WheelEvent.DOM_DELTA_PIXEL) { + delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE; + } else if (deltaMode === WheelEvent.DOM_DELTA_LINE) { + delta /= MOUSE_LINES_PER_PAGE; + } + return delta; +} +function isValidRotation(angle) { + return Number.isInteger(angle) && angle % 90 === 0; +} +function isValidScrollMode(mode) { + return Number.isInteger(mode) && Object.values(ScrollMode).includes(mode) && mode !== ScrollMode.UNKNOWN; +} +function isValidSpreadMode(mode) { + return Number.isInteger(mode) && Object.values(SpreadMode).includes(mode) && mode !== SpreadMode.UNKNOWN; +} +function isPortraitOrientation(size) { + return size.width <= size.height; +} +const animationStarted = new Promise(function (resolve) { + window.requestAnimationFrame(resolve); +}); +exports.animationStarted = animationStarted; +const docStyle = document.documentElement.style; +exports.docStyle = docStyle; +function clamp(v, min, max) { + return Math.min(Math.max(v, min), max); +} +class ProgressBar { + #classList = null; + #disableAutoFetchTimeout = null; + #percent = 0; + #style = null; + #visible = true; + constructor(bar) { + this.#classList = bar.classList; + this.#style = bar.style; + } + get percent() { + return this.#percent; + } + set percent(val) { + this.#percent = clamp(val, 0, 100); + if (isNaN(val)) { + this.#classList.add("indeterminate"); + return; + } + this.#classList.remove("indeterminate"); + this.#style.setProperty("--progressBar-percent", `${this.#percent}%`); + } + setWidth(viewer) { + if (!viewer) { + return; + } + const container = viewer.parentNode; + const scrollbarWidth = container.offsetWidth - viewer.offsetWidth; + if (scrollbarWidth > 0) { + this.#style.setProperty("--progressBar-end-offset", `${scrollbarWidth}px`); + } + } + setDisableAutoFetch(delay = 5000) { + if (isNaN(this.#percent)) { + return; + } + if (this.#disableAutoFetchTimeout) { + clearTimeout(this.#disableAutoFetchTimeout); + } + this.show(); + this.#disableAutoFetchTimeout = setTimeout(() => { + this.#disableAutoFetchTimeout = null; + this.hide(); + }, delay); + } + hide() { + if (!this.#visible) { + return; + } + this.#visible = false; + this.#classList.add("hidden"); + } + show() { + if (this.#visible) { + return; + } + this.#visible = true; + this.#classList.remove("hidden"); + } +} +exports.ProgressBar = ProgressBar; +function getActiveOrFocusedElement() { + let curRoot = document; + let curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(":focus"); + while (curActiveOrFocused?.shadowRoot) { + curRoot = curActiveOrFocused.shadowRoot; + curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(":focus"); + } + return curActiveOrFocused; +} +function apiPageLayoutToViewerModes(layout) { + let scrollMode = ScrollMode.VERTICAL, + spreadMode = SpreadMode.NONE; + switch (layout) { + case "SinglePage": + scrollMode = ScrollMode.PAGE; + break; + case "OneColumn": + break; + case "TwoPageLeft": + scrollMode = ScrollMode.PAGE; + case "TwoColumnLeft": + spreadMode = SpreadMode.ODD; + break; + case "TwoPageRight": + scrollMode = ScrollMode.PAGE; + case "TwoColumnRight": + spreadMode = SpreadMode.EVEN; + break; + } + return { + scrollMode, + spreadMode + }; +} +function apiPageModeToSidebarView(mode) { + switch (mode) { + case "UseNone": + return SidebarView.NONE; + case "UseThumbs": + return SidebarView.THUMBS; + case "UseOutlines": + return SidebarView.OUTLINE; + case "UseAttachments": + return SidebarView.ATTACHMENTS; + case "UseOC": + return SidebarView.LAYERS; + } + return SidebarView.NONE; +} + +/***/ }), +/* 3 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.AnnotationLayerBuilder = void 0; +var _pdfjsLib = __w_pdfjs_require__(4); +var _l10n_utils = __w_pdfjs_require__(5); +var _ui_utils = __w_pdfjs_require__(2); +class AnnotationLayerBuilder { + #numAnnotations = 0; + #onPresentationModeChanged = null; + constructor({ + pageDiv, + pdfPage, + linkService, + downloadManager, + annotationStorage = null, + imageResourcesPath = "", + renderForms = true, + l10n = _l10n_utils.NullL10n, + enableScripting = false, + hasJSActionsPromise = null, + fieldObjectsPromise = null, + annotationCanvasMap = null, + accessibilityManager = null + }) { + this.pageDiv = pageDiv; + this.pdfPage = pdfPage; + this.linkService = linkService; + this.downloadManager = downloadManager; + this.imageResourcesPath = imageResourcesPath; + this.renderForms = renderForms; + this.l10n = l10n; + this.annotationStorage = annotationStorage; + this.enableScripting = enableScripting; + this._hasJSActionsPromise = hasJSActionsPromise || Promise.resolve(false); + this._fieldObjectsPromise = fieldObjectsPromise || Promise.resolve(null); + this._annotationCanvasMap = annotationCanvasMap; + this._accessibilityManager = accessibilityManager; + this.div = null; + this._cancelled = false; + this._eventBus = linkService.eventBus; + } + async render(viewport, intent = "display") { + if (this.div) { + if (this._cancelled || this.#numAnnotations === 0) { + return; + } + _pdfjsLib.AnnotationLayer.update({ + viewport: viewport.clone({ + dontFlip: true + }), + div: this.div, + annotationCanvasMap: this._annotationCanvasMap + }); + return; + } + const [annotations, hasJSActions, fieldObjects] = await Promise.all([this.pdfPage.getAnnotations({ + intent + }), this._hasJSActionsPromise, this._fieldObjectsPromise]); + if (this._cancelled) { + return; + } + this.#numAnnotations = annotations.length; + this.div = document.createElement("div"); + this.div.className = "annotationLayer"; + this.pageDiv.append(this.div); + if (this.#numAnnotations === 0) { + this.hide(); + return; + } + _pdfjsLib.AnnotationLayer.render({ + viewport: viewport.clone({ + dontFlip: true + }), + div: this.div, + annotations, + page: this.pdfPage, + imageResourcesPath: this.imageResourcesPath, + renderForms: this.renderForms, + linkService: this.linkService, + downloadManager: this.downloadManager, + annotationStorage: this.annotationStorage, + enableScripting: this.enableScripting, + hasJSActions, + fieldObjects, + annotationCanvasMap: this._annotationCanvasMap, + accessibilityManager: this._accessibilityManager + }); + this.l10n.translate(this.div); + if (this.linkService.isInPresentationMode) { + this.#updatePresentationModeState(_ui_utils.PresentationModeState.FULLSCREEN); + } + if (!this.#onPresentationModeChanged) { + this.#onPresentationModeChanged = evt => { + this.#updatePresentationModeState(evt.state); + }; + this._eventBus?._on("presentationmodechanged", this.#onPresentationModeChanged); + } + } + cancel() { + this._cancelled = true; + if (this.#onPresentationModeChanged) { + this._eventBus?._off("presentationmodechanged", this.#onPresentationModeChanged); + this.#onPresentationModeChanged = null; + } + } + hide() { + if (!this.div) { + return; + } + this.div.hidden = true; + } + #updatePresentationModeState(state) { + if (!this.div) { + return; + } + let disableFormElements = false; + switch (state) { + case _ui_utils.PresentationModeState.FULLSCREEN: + disableFormElements = true; + break; + case _ui_utils.PresentationModeState.NORMAL: + break; + default: + return; + } + for (const section of this.div.childNodes) { + if (section.hasAttribute("data-internal-link")) { + continue; + } + section.inert = disableFormElements; + } + } +} +exports.AnnotationLayerBuilder = AnnotationLayerBuilder; + +/***/ }), +/* 4 */ +/***/ ((module) => { + + + +let pdfjsLib; +if (typeof window !== "undefined" && window["pdfjs-dist/build/pdf"]) { + pdfjsLib = window["pdfjs-dist/build/pdf"]; +} else { + pdfjsLib = require("../build/pdf.js"); +} +module.exports = pdfjsLib; + +/***/ }), +/* 5 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.NullL10n = void 0; +exports.fixupLangCode = fixupLangCode; +exports.getL10nFallback = getL10nFallback; +const DEFAULT_L10N_STRINGS = { + of_pages: "of {{pagesCount}}", + page_of_pages: "({{pageNumber}} of {{pagesCount}})", + document_properties_kb: "{{size_kb}} KB ({{size_b}} bytes)", + document_properties_mb: "{{size_mb}} MB ({{size_b}} bytes)", + document_properties_date_string: "{{date}}, {{time}}", + document_properties_page_size_unit_inches: "in", + document_properties_page_size_unit_millimeters: "mm", + document_properties_page_size_orientation_portrait: "portrait", + document_properties_page_size_orientation_landscape: "landscape", + document_properties_page_size_name_a3: "A3", + document_properties_page_size_name_a4: "A4", + document_properties_page_size_name_letter: "Letter", + document_properties_page_size_name_legal: "Legal", + document_properties_page_size_dimension_string: "{{width}} × {{height}} {{unit}} ({{orientation}})", + document_properties_page_size_dimension_name_string: "{{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})", + document_properties_linearized_yes: "Yes", + document_properties_linearized_no: "No", + additional_layers: "Additional Layers", + page_landmark: "Page {{page}}", + thumb_page_title: "Page {{page}}", + thumb_page_canvas: "Thumbnail of Page {{page}}", + find_reached_top: "Reached top of document, continued from bottom", + find_reached_bottom: "Reached end of document, continued from top", + "find_match_count[one]": "{{current}} of {{total}} match", + "find_match_count[other]": "{{current}} of {{total}} matches", + "find_match_count_limit[one]": "More than {{limit}} match", + "find_match_count_limit[other]": "More than {{limit}} matches", + find_not_found: "Phrase not found", + page_scale_width: "Page Width", + page_scale_fit: "Page Fit", + page_scale_auto: "Automatic Zoom", + page_scale_actual: "Actual Size", + page_scale_percent: "{{scale}}%", + loading: "Loading…", + loading_error: "An error occurred while loading the PDF.", + invalid_file_error: "Invalid or corrupted PDF file.", + missing_file_error: "Missing PDF file.", + unexpected_response_error: "Unexpected server response.", + rendering_error: "An error occurred while rendering the page.", + printing_not_supported: "Warning: Printing is not fully supported by this browser.", + printing_not_ready: "Warning: The PDF is not fully loaded for printing.", + web_fonts_disabled: "Web fonts are disabled: unable to use embedded PDF fonts.", + free_text2_default_content: "Start typing…", + editor_free_text2_aria_label: "Text Editor", + editor_ink2_aria_label: "Draw Editor", + editor_ink_canvas_aria_label: "User-created image" +}; +{ + DEFAULT_L10N_STRINGS.print_progress_percent = "{{progress}}%"; +} +function getL10nFallback(key, args) { + switch (key) { + case "find_match_count": + key = `find_match_count[${args.total === 1 ? "one" : "other"}]`; + break; + case "find_match_count_limit": + key = `find_match_count_limit[${args.limit === 1 ? "one" : "other"}]`; + break; + } + return DEFAULT_L10N_STRINGS[key] || ""; +} +const PARTIAL_LANG_CODES = { + en: "en-US", + es: "es-ES", + fy: "fy-NL", + ga: "ga-IE", + gu: "gu-IN", + hi: "hi-IN", + hy: "hy-AM", + nb: "nb-NO", + ne: "ne-NP", + nn: "nn-NO", + pa: "pa-IN", + pt: "pt-PT", + sv: "sv-SE", + zh: "zh-CN" +}; +function fixupLangCode(langCode) { + return PARTIAL_LANG_CODES[langCode?.toLowerCase()] || langCode; +} +function formatL10nValue(text, args) { + if (!args) { + return text; + } + return text.replace(/\{\{\s*(\w+)\s*\}\}/g, (all, name) => { + return name in args ? args[name] : "{{" + name + "}}"; + }); +} +const NullL10n = { + async getLanguage() { + return "en-us"; + }, + async getDirection() { + return "ltr"; + }, + async get(key, args = null, fallback = getL10nFallback(key, args)) { + return formatL10nValue(fallback, args); + }, + async translate(element) {} +}; +exports.NullL10n = NullL10n; + +/***/ }), +/* 6 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.DownloadManager = void 0; +var _pdfjsLib = __w_pdfjs_require__(4); +; +function download(blobUrl, filename) { + const a = document.createElement("a"); + if (!a.click) { + throw new Error('DownloadManager: "a.click()" is not supported.'); + } + a.href = blobUrl; + a.target = "_parent"; + if ("download" in a) { + a.download = filename; + } + (document.body || document.documentElement).append(a); + a.click(); + a.remove(); +} +class DownloadManager { + #openBlobUrls = new WeakMap(); + downloadUrl(url, filename) { + if (!(0, _pdfjsLib.createValidAbsoluteUrl)(url, "http://example.com")) { + console.error(`downloadUrl - not a valid URL: ${url}`); + return; + } + download(url + "#pdfjs.action=download", filename); + } + downloadData(data, filename, contentType) { + const blobUrl = URL.createObjectURL(new Blob([data], { + type: contentType + })); + download(blobUrl, filename); + } + openOrDownloadData(element, data, filename) { + const isPdfData = (0, _pdfjsLib.isPdfFile)(filename); + const contentType = isPdfData ? "application/pdf" : ""; + if (isPdfData) { + let blobUrl = this.#openBlobUrls.get(element); + if (!blobUrl) { + blobUrl = URL.createObjectURL(new Blob([data], { + type: contentType + })); + this.#openBlobUrls.set(element, blobUrl); + } + let viewerUrl; + viewerUrl = "?file=" + encodeURIComponent(blobUrl + "#" + filename); + try { + window.open(viewerUrl); + return true; + } catch (ex) { + console.error(`openOrDownloadData: ${ex}`); + URL.revokeObjectURL(blobUrl); + this.#openBlobUrls.delete(element); + } + } + this.downloadData(data, filename, contentType); + return false; + } + download(blob, url, filename) { + const blobUrl = URL.createObjectURL(blob); + download(blobUrl, filename); + } +} +exports.DownloadManager = DownloadManager; + +/***/ }), +/* 7 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.WaitOnType = exports.EventBus = exports.AutomationEventBus = void 0; +exports.waitOnEventOrTimeout = waitOnEventOrTimeout; +const WaitOnType = { + EVENT: "event", + TIMEOUT: "timeout" +}; +exports.WaitOnType = WaitOnType; +function waitOnEventOrTimeout({ + target, + name, + delay = 0 +}) { + return new Promise(function (resolve, reject) { + if (typeof target !== "object" || !(name && typeof name === "string") || !(Number.isInteger(delay) && delay >= 0)) { + throw new Error("waitOnEventOrTimeout - invalid parameters."); + } + function handler(type) { + if (target instanceof EventBus) { + target._off(name, eventHandler); + } else { + target.removeEventListener(name, eventHandler); + } + if (timeout) { + clearTimeout(timeout); + } + resolve(type); + } + const eventHandler = handler.bind(null, WaitOnType.EVENT); + if (target instanceof EventBus) { + target._on(name, eventHandler); + } else { + target.addEventListener(name, eventHandler); + } + const timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT); + const timeout = setTimeout(timeoutHandler, delay); + }); +} +class EventBus { + #listeners = Object.create(null); + on(eventName, listener, options = null) { + this._on(eventName, listener, { + external: true, + once: options?.once + }); + } + off(eventName, listener, options = null) { + this._off(eventName, listener, { + external: true, + once: options?.once + }); + } + dispatch(eventName, data) { + const eventListeners = this.#listeners[eventName]; + if (!eventListeners || eventListeners.length === 0) { + return; + } + let externalListeners; + for (const { + listener, + external, + once + } of eventListeners.slice(0)) { + if (once) { + this._off(eventName, listener); + } + if (external) { + (externalListeners ||= []).push(listener); + continue; + } + listener(data); + } + if (externalListeners) { + for (const listener of externalListeners) { + listener(data); + } + externalListeners = null; + } + } + _on(eventName, listener, options = null) { + const eventListeners = this.#listeners[eventName] ||= []; + eventListeners.push({ + listener, + external: options?.external === true, + once: options?.once === true + }); + } + _off(eventName, listener, options = null) { + const eventListeners = this.#listeners[eventName]; + if (!eventListeners) { + return; + } + for (let i = 0, ii = eventListeners.length; i < ii; i++) { + if (eventListeners[i].listener === listener) { + eventListeners.splice(i, 1); + return; + } + } + } +} +exports.EventBus = EventBus; +class AutomationEventBus extends EventBus { + dispatch(eventName, data) { + throw new Error("Not implemented: AutomationEventBus.dispatch"); + } +} +exports.AutomationEventBus = AutomationEventBus; + +/***/ }), +/* 8 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.GenericL10n = void 0; +__w_pdfjs_require__(9); +var _l10n_utils = __w_pdfjs_require__(5); +const webL10n = document.webL10n; +class GenericL10n { + constructor(lang) { + this._lang = lang; + this._ready = new Promise((resolve, reject) => { + webL10n.setLanguage((0, _l10n_utils.fixupLangCode)(lang), () => { + resolve(webL10n); + }); + }); + } + async getLanguage() { + const l10n = await this._ready; + return l10n.getLanguage(); + } + async getDirection() { + const l10n = await this._ready; + return l10n.getDirection(); + } + async get(key, args = null, fallback = (0, _l10n_utils.getL10nFallback)(key, args)) { + const l10n = await this._ready; + return l10n.get(key, args, fallback); + } + async translate(element) { + const l10n = await this._ready; + return l10n.translate(element); + } +} +exports.GenericL10n = GenericL10n; + +/***/ }), +/* 9 */ +/***/ (() => { + + + +document.webL10n = function (window, document, undefined) { + var gL10nData = {}; + var gTextData = ''; + var gTextProp = 'textContent'; + var gLanguage = ''; + var gMacros = {}; + var gReadyState = 'loading'; + var gAsyncResourceLoading = true; + function getL10nResourceLinks() { + return document.querySelectorAll('link[type="application/l10n"]'); + } + function getL10nDictionary() { + var script = document.querySelector('script[type="application/l10n"]'); + return script ? JSON.parse(script.innerHTML) : null; + } + function getTranslatableChildren(element) { + return element ? element.querySelectorAll('*[data-l10n-id]') : []; + } + function getL10nAttributes(element) { + if (!element) return {}; + var l10nId = element.getAttribute('data-l10n-id'); + var l10nArgs = element.getAttribute('data-l10n-args'); + var args = {}; + if (l10nArgs) { + try { + args = JSON.parse(l10nArgs); + } catch (e) { + console.warn('could not parse arguments for #' + l10nId); + } + } + return { + id: l10nId, + args: args + }; + } + function xhrLoadText(url, onSuccess, onFailure) { + onSuccess = onSuccess || function _onSuccess(data) {}; + onFailure = onFailure || function _onFailure() {}; + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, gAsyncResourceLoading); + if (xhr.overrideMimeType) { + xhr.overrideMimeType('text/plain; charset=utf-8'); + } + xhr.onreadystatechange = function () { + if (xhr.readyState == 4) { + if (xhr.status == 200 || xhr.status === 0) { + onSuccess(xhr.responseText); + } else { + onFailure(); + } + } + }; + xhr.onerror = onFailure; + xhr.ontimeout = onFailure; + try { + xhr.send(null); + } catch (e) { + onFailure(); + } + } + function parseResource(href, lang, successCallback, failureCallback) { + var baseURL = href.replace(/[^\/]*$/, '') || './'; + function evalString(text) { + if (text.lastIndexOf('\\') < 0) return text; + return text.replace(/\\\\/g, '\\').replace(/\\n/g, '\n').replace(/\\r/g, '\r').replace(/\\t/g, '\t').replace(/\\b/g, '\b').replace(/\\f/g, '\f').replace(/\\{/g, '{').replace(/\\}/g, '}').replace(/\\"/g, '"').replace(/\\'/g, "'"); + } + function parseProperties(text, parsedPropertiesCallback) { + var dictionary = {}; + var reBlank = /^\s*|\s*$/; + var reComment = /^\s*#|^\s*$/; + var reSection = /^\s*\[(.*)\]\s*$/; + var reImport = /^\s*@import\s+url\((.*)\)\s*$/i; + var reSplit = /^([^=\s]*)\s*=\s*(.+)$/; + function parseRawLines(rawText, extendedSyntax, parsedRawLinesCallback) { + var entries = rawText.replace(reBlank, '').split(/[\r\n]+/); + var currentLang = '*'; + var genericLang = lang.split('-', 1)[0]; + var skipLang = false; + var match = ''; + function nextEntry() { + while (true) { + if (!entries.length) { + parsedRawLinesCallback(); + return; + } + var line = entries.shift(); + if (reComment.test(line)) continue; + if (extendedSyntax) { + match = reSection.exec(line); + if (match) { + currentLang = match[1].toLowerCase(); + skipLang = currentLang !== '*' && currentLang !== lang && currentLang !== genericLang; + continue; + } else if (skipLang) { + continue; + } + match = reImport.exec(line); + if (match) { + loadImport(baseURL + match[1], nextEntry); + return; + } + } + var tmp = line.match(reSplit); + if (tmp && tmp.length == 3) { + dictionary[tmp[1]] = evalString(tmp[2]); + } + } + } + nextEntry(); + } + function loadImport(url, callback) { + xhrLoadText(url, function (content) { + parseRawLines(content, false, callback); + }, function () { + console.warn(url + ' not found.'); + callback(); + }); + } + parseRawLines(text, true, function () { + parsedPropertiesCallback(dictionary); + }); + } + xhrLoadText(href, function (response) { + gTextData += response; + parseProperties(response, function (data) { + for (var key in data) { + var id, + prop, + index = key.lastIndexOf('.'); + if (index > 0) { + id = key.substring(0, index); + prop = key.substring(index + 1); + } else { + id = key; + prop = gTextProp; + } + if (!gL10nData[id]) { + gL10nData[id] = {}; + } + gL10nData[id][prop] = data[key]; + } + if (successCallback) { + successCallback(); + } + }); + }, failureCallback); + } + function loadLocale(lang, callback) { + if (lang) { + lang = lang.toLowerCase(); + } + callback = callback || function _callback() {}; + clear(); + gLanguage = lang; + var langLinks = getL10nResourceLinks(); + var langCount = langLinks.length; + if (langCount === 0) { + var dict = getL10nDictionary(); + if (dict && dict.locales && dict.default_locale) { + console.log('using the embedded JSON directory, early way out'); + gL10nData = dict.locales[lang]; + if (!gL10nData) { + var defaultLocale = dict.default_locale.toLowerCase(); + for (var anyCaseLang in dict.locales) { + anyCaseLang = anyCaseLang.toLowerCase(); + if (anyCaseLang === lang) { + gL10nData = dict.locales[lang]; + break; + } else if (anyCaseLang === defaultLocale) { + gL10nData = dict.locales[defaultLocale]; + } + } + } + callback(); + } else { + console.log('no resource to load, early way out'); + } + gReadyState = 'complete'; + return; + } + var onResourceLoaded = null; + var gResourceCount = 0; + onResourceLoaded = function () { + gResourceCount++; + if (gResourceCount >= langCount) { + callback(); + gReadyState = 'complete'; + } + }; + function L10nResourceLink(link) { + var href = link.href; + this.load = function (lang, callback) { + parseResource(href, lang, callback, function () { + console.warn(href + ' not found.'); + console.warn('"' + lang + '" resource not found'); + gLanguage = ''; + callback(); + }); + }; + } + for (var i = 0; i < langCount; i++) { + var resource = new L10nResourceLink(langLinks[i]); + resource.load(lang, onResourceLoaded); + } + } + function clear() { + gL10nData = {}; + gTextData = ''; + gLanguage = ''; + } + function getPluralRules(lang) { + var locales2rules = { + 'af': 3, + 'ak': 4, + 'am': 4, + 'ar': 1, + 'asa': 3, + 'az': 0, + 'be': 11, + 'bem': 3, + 'bez': 3, + 'bg': 3, + 'bh': 4, + 'bm': 0, + 'bn': 3, + 'bo': 0, + 'br': 20, + 'brx': 3, + 'bs': 11, + 'ca': 3, + 'cgg': 3, + 'chr': 3, + 'cs': 12, + 'cy': 17, + 'da': 3, + 'de': 3, + 'dv': 3, + 'dz': 0, + 'ee': 3, + 'el': 3, + 'en': 3, + 'eo': 3, + 'es': 3, + 'et': 3, + 'eu': 3, + 'fa': 0, + 'ff': 5, + 'fi': 3, + 'fil': 4, + 'fo': 3, + 'fr': 5, + 'fur': 3, + 'fy': 3, + 'ga': 8, + 'gd': 24, + 'gl': 3, + 'gsw': 3, + 'gu': 3, + 'guw': 4, + 'gv': 23, + 'ha': 3, + 'haw': 3, + 'he': 2, + 'hi': 4, + 'hr': 11, + 'hu': 0, + 'id': 0, + 'ig': 0, + 'ii': 0, + 'is': 3, + 'it': 3, + 'iu': 7, + 'ja': 0, + 'jmc': 3, + 'jv': 0, + 'ka': 0, + 'kab': 5, + 'kaj': 3, + 'kcg': 3, + 'kde': 0, + 'kea': 0, + 'kk': 3, + 'kl': 3, + 'km': 0, + 'kn': 0, + 'ko': 0, + 'ksb': 3, + 'ksh': 21, + 'ku': 3, + 'kw': 7, + 'lag': 18, + 'lb': 3, + 'lg': 3, + 'ln': 4, + 'lo': 0, + 'lt': 10, + 'lv': 6, + 'mas': 3, + 'mg': 4, + 'mk': 16, + 'ml': 3, + 'mn': 3, + 'mo': 9, + 'mr': 3, + 'ms': 0, + 'mt': 15, + 'my': 0, + 'nah': 3, + 'naq': 7, + 'nb': 3, + 'nd': 3, + 'ne': 3, + 'nl': 3, + 'nn': 3, + 'no': 3, + 'nr': 3, + 'nso': 4, + 'ny': 3, + 'nyn': 3, + 'om': 3, + 'or': 3, + 'pa': 3, + 'pap': 3, + 'pl': 13, + 'ps': 3, + 'pt': 3, + 'rm': 3, + 'ro': 9, + 'rof': 3, + 'ru': 11, + 'rwk': 3, + 'sah': 0, + 'saq': 3, + 'se': 7, + 'seh': 3, + 'ses': 0, + 'sg': 0, + 'sh': 11, + 'shi': 19, + 'sk': 12, + 'sl': 14, + 'sma': 7, + 'smi': 7, + 'smj': 7, + 'smn': 7, + 'sms': 7, + 'sn': 3, + 'so': 3, + 'sq': 3, + 'sr': 11, + 'ss': 3, + 'ssy': 3, + 'st': 3, + 'sv': 3, + 'sw': 3, + 'syr': 3, + 'ta': 3, + 'te': 3, + 'teo': 3, + 'th': 0, + 'ti': 4, + 'tig': 3, + 'tk': 3, + 'tl': 4, + 'tn': 3, + 'to': 0, + 'tr': 0, + 'ts': 3, + 'tzm': 22, + 'uk': 11, + 'ur': 3, + 've': 3, + 'vi': 0, + 'vun': 3, + 'wa': 4, + 'wae': 3, + 'wo': 0, + 'xh': 3, + 'xog': 3, + 'yo': 0, + 'zh': 0, + 'zu': 3 + }; + function isIn(n, list) { + return list.indexOf(n) !== -1; + } + function isBetween(n, start, end) { + return start <= n && n <= end; + } + var pluralRules = { + '0': function (n) { + return 'other'; + }, + '1': function (n) { + if (isBetween(n % 100, 3, 10)) return 'few'; + if (n === 0) return 'zero'; + if (isBetween(n % 100, 11, 99)) return 'many'; + if (n == 2) return 'two'; + if (n == 1) return 'one'; + return 'other'; + }, + '2': function (n) { + if (n !== 0 && n % 10 === 0) return 'many'; + if (n == 2) return 'two'; + if (n == 1) return 'one'; + return 'other'; + }, + '3': function (n) { + if (n == 1) return 'one'; + return 'other'; + }, + '4': function (n) { + if (isBetween(n, 0, 1)) return 'one'; + return 'other'; + }, + '5': function (n) { + if (isBetween(n, 0, 2) && n != 2) return 'one'; + return 'other'; + }, + '6': function (n) { + if (n === 0) return 'zero'; + if (n % 10 == 1 && n % 100 != 11) return 'one'; + return 'other'; + }, + '7': function (n) { + if (n == 2) return 'two'; + if (n == 1) return 'one'; + return 'other'; + }, + '8': function (n) { + if (isBetween(n, 3, 6)) return 'few'; + if (isBetween(n, 7, 10)) return 'many'; + if (n == 2) return 'two'; + if (n == 1) return 'one'; + return 'other'; + }, + '9': function (n) { + if (n === 0 || n != 1 && isBetween(n % 100, 1, 19)) return 'few'; + if (n == 1) return 'one'; + return 'other'; + }, + '10': function (n) { + if (isBetween(n % 10, 2, 9) && !isBetween(n % 100, 11, 19)) return 'few'; + if (n % 10 == 1 && !isBetween(n % 100, 11, 19)) return 'one'; + return 'other'; + }, + '11': function (n) { + if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few'; + if (n % 10 === 0 || isBetween(n % 10, 5, 9) || isBetween(n % 100, 11, 14)) return 'many'; + if (n % 10 == 1 && n % 100 != 11) return 'one'; + return 'other'; + }, + '12': function (n) { + if (isBetween(n, 2, 4)) return 'few'; + if (n == 1) return 'one'; + return 'other'; + }, + '13': function (n) { + if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few'; + if (n != 1 && isBetween(n % 10, 0, 1) || isBetween(n % 10, 5, 9) || isBetween(n % 100, 12, 14)) return 'many'; + if (n == 1) return 'one'; + return 'other'; + }, + '14': function (n) { + if (isBetween(n % 100, 3, 4)) return 'few'; + if (n % 100 == 2) return 'two'; + if (n % 100 == 1) return 'one'; + return 'other'; + }, + '15': function (n) { + if (n === 0 || isBetween(n % 100, 2, 10)) return 'few'; + if (isBetween(n % 100, 11, 19)) return 'many'; + if (n == 1) return 'one'; + return 'other'; + }, + '16': function (n) { + if (n % 10 == 1 && n != 11) return 'one'; + return 'other'; + }, + '17': function (n) { + if (n == 3) return 'few'; + if (n === 0) return 'zero'; + if (n == 6) return 'many'; + if (n == 2) return 'two'; + if (n == 1) return 'one'; + return 'other'; + }, + '18': function (n) { + if (n === 0) return 'zero'; + if (isBetween(n, 0, 2) && n !== 0 && n != 2) return 'one'; + return 'other'; + }, + '19': function (n) { + if (isBetween(n, 2, 10)) return 'few'; + if (isBetween(n, 0, 1)) return 'one'; + return 'other'; + }, + '20': function (n) { + if ((isBetween(n % 10, 3, 4) || n % 10 == 9) && !(isBetween(n % 100, 10, 19) || isBetween(n % 100, 70, 79) || isBetween(n % 100, 90, 99))) return 'few'; + if (n % 1000000 === 0 && n !== 0) return 'many'; + if (n % 10 == 2 && !isIn(n % 100, [12, 72, 92])) return 'two'; + if (n % 10 == 1 && !isIn(n % 100, [11, 71, 91])) return 'one'; + return 'other'; + }, + '21': function (n) { + if (n === 0) return 'zero'; + if (n == 1) return 'one'; + return 'other'; + }, + '22': function (n) { + if (isBetween(n, 0, 1) || isBetween(n, 11, 99)) return 'one'; + return 'other'; + }, + '23': function (n) { + if (isBetween(n % 10, 1, 2) || n % 20 === 0) return 'one'; + return 'other'; + }, + '24': function (n) { + if (isBetween(n, 3, 10) || isBetween(n, 13, 19)) return 'few'; + if (isIn(n, [2, 12])) return 'two'; + if (isIn(n, [1, 11])) return 'one'; + return 'other'; + } + }; + var index = locales2rules[lang.replace(/-.*$/, '')]; + if (!(index in pluralRules)) { + console.warn('plural form unknown for [' + lang + ']'); + return function () { + return 'other'; + }; + } + return pluralRules[index]; + } + gMacros.plural = function (str, param, key, prop) { + var n = parseFloat(param); + if (isNaN(n)) return str; + if (prop != gTextProp) return str; + if (!gMacros._pluralRules) { + gMacros._pluralRules = getPluralRules(gLanguage); + } + var index = '[' + gMacros._pluralRules(n) + ']'; + if (n === 0 && key + '[zero]' in gL10nData) { + str = gL10nData[key + '[zero]'][prop]; + } else if (n == 1 && key + '[one]' in gL10nData) { + str = gL10nData[key + '[one]'][prop]; + } else if (n == 2 && key + '[two]' in gL10nData) { + str = gL10nData[key + '[two]'][prop]; + } else if (key + index in gL10nData) { + str = gL10nData[key + index][prop]; + } else if (key + '[other]' in gL10nData) { + str = gL10nData[key + '[other]'][prop]; + } + return str; + }; + function getL10nData(key, args, fallback) { + var data = gL10nData[key]; + if (!data) { + console.warn('#' + key + ' is undefined.'); + if (!fallback) { + return null; + } + data = fallback; + } + var rv = {}; + for (var prop in data) { + var str = data[prop]; + str = substIndexes(str, args, key, prop); + str = substArguments(str, args, key); + rv[prop] = str; + } + return rv; + } + function substIndexes(str, args, key, prop) { + var reIndex = /\{\[\s*([a-zA-Z]+)\(([a-zA-Z]+)\)\s*\]\}/; + var reMatch = reIndex.exec(str); + if (!reMatch || !reMatch.length) return str; + var macroName = reMatch[1]; + var paramName = reMatch[2]; + var param; + if (args && paramName in args) { + param = args[paramName]; + } else if (paramName in gL10nData) { + param = gL10nData[paramName]; + } + if (macroName in gMacros) { + var macro = gMacros[macroName]; + str = macro(str, param, key, prop); + } + return str; + } + function substArguments(str, args, key) { + var reArgs = /\{\{\s*(.+?)\s*\}\}/g; + return str.replace(reArgs, function (matched_text, arg) { + if (args && arg in args) { + return args[arg]; + } + if (arg in gL10nData) { + return gL10nData[arg]; + } + console.log('argument {{' + arg + '}} for #' + key + ' is undefined.'); + return matched_text; + }); + } + function translateElement(element) { + var l10n = getL10nAttributes(element); + if (!l10n.id) return; + var data = getL10nData(l10n.id, l10n.args); + if (!data) { + console.warn('#' + l10n.id + ' is undefined.'); + return; + } + if (data[gTextProp]) { + if (getChildElementCount(element) === 0) { + element[gTextProp] = data[gTextProp]; + } else { + var children = element.childNodes; + var found = false; + for (var i = 0, l = children.length; i < l; i++) { + if (children[i].nodeType === 3 && /\S/.test(children[i].nodeValue)) { + if (found) { + children[i].nodeValue = ''; + } else { + children[i].nodeValue = data[gTextProp]; + found = true; + } + } + } + if (!found) { + var textNode = document.createTextNode(data[gTextProp]); + element.prepend(textNode); + } + } + delete data[gTextProp]; + } + for (var k in data) { + element[k] = data[k]; + } + } + function getChildElementCount(element) { + if (element.children) { + return element.children.length; + } + if (typeof element.childElementCount !== 'undefined') { + return element.childElementCount; + } + var count = 0; + for (var i = 0; i < element.childNodes.length; i++) { + count += element.nodeType === 1 ? 1 : 0; + } + return count; + } + function translateFragment(element) { + element = element || document.documentElement; + var children = getTranslatableChildren(element); + var elementCount = children.length; + for (var i = 0; i < elementCount; i++) { + translateElement(children[i]); + } + translateElement(element); + } + return { + get: function (key, args, fallbackString) { + var index = key.lastIndexOf('.'); + var prop = gTextProp; + if (index > 0) { + prop = key.substring(index + 1); + key = key.substring(0, index); + } + var fallback; + if (fallbackString) { + fallback = {}; + fallback[prop] = fallbackString; + } + var data = getL10nData(key, args, fallback); + if (data && prop in data) { + return data[prop]; + } + return '{{' + key + '}}'; + }, + getData: function () { + return gL10nData; + }, + getText: function () { + return gTextData; + }, + getLanguage: function () { + return gLanguage; + }, + setLanguage: function (lang, callback) { + loadLocale(lang, function () { + if (callback) callback(); + }); + }, + getDirection: function () { + var rtlList = ['ar', 'he', 'fa', 'ps', 'ur']; + var shortCode = gLanguage.split('-', 1)[0]; + return rtlList.indexOf(shortCode) >= 0 ? 'rtl' : 'ltr'; + }, + translate: translateFragment, + getReadyState: function () { + return gReadyState; + }, + ready: function (callback) { + if (!callback) { + return; + } else if (gReadyState == 'complete' || gReadyState == 'interactive') { + window.setTimeout(function () { + callback(); + }); + } else if (document.addEventListener) { + document.addEventListener('localized', function once() { + document.removeEventListener('localized', once); + callback(); + }); + } + } + }; +}(window, document); + +/***/ }), +/* 10 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFFindController = exports.FindState = void 0; +var _ui_utils = __w_pdfjs_require__(2); +var _pdfjsLib = __w_pdfjs_require__(4); +var _pdf_find_utils = __w_pdfjs_require__(11); +const FindState = { + FOUND: 0, + NOT_FOUND: 1, + WRAPPED: 2, + PENDING: 3 +}; +exports.FindState = FindState; +const FIND_TIMEOUT = 250; +const MATCH_SCROLL_OFFSET_TOP = -50; +const MATCH_SCROLL_OFFSET_LEFT = -400; +const CHARACTERS_TO_NORMALIZE = { + "\u2010": "-", + "\u2018": "'", + "\u2019": "'", + "\u201A": "'", + "\u201B": "'", + "\u201C": '"', + "\u201D": '"', + "\u201E": '"', + "\u201F": '"', + "\u00BC": "1/4", + "\u00BD": "1/2", + "\u00BE": "3/4" +}; +const DIACRITICS_EXCEPTION = new Set([0x3099, 0x309a, 0x094d, 0x09cd, 0x0a4d, 0x0acd, 0x0b4d, 0x0bcd, 0x0c4d, 0x0ccd, 0x0d3b, 0x0d3c, 0x0d4d, 0x0dca, 0x0e3a, 0x0eba, 0x0f84, 0x1039, 0x103a, 0x1714, 0x1734, 0x17d2, 0x1a60, 0x1b44, 0x1baa, 0x1bab, 0x1bf2, 0x1bf3, 0x2d7f, 0xa806, 0xa82c, 0xa8c4, 0xa953, 0xa9c0, 0xaaf6, 0xabed, 0x0c56, 0x0f71, 0x0f72, 0x0f7a, 0x0f7b, 0x0f7c, 0x0f7d, 0x0f80, 0x0f74]); +let DIACRITICS_EXCEPTION_STR; +const DIACRITICS_REG_EXP = /\p{M}+/gu; +const SPECIAL_CHARS_REG_EXP = /([.*+?^${}()|[\]\\])|(\p{P})|(\s+)|(\p{M})|(\p{L})/gu; +const NOT_DIACRITIC_FROM_END_REG_EXP = /([^\p{M}])\p{M}*$/u; +const NOT_DIACRITIC_FROM_START_REG_EXP = /^\p{M}*([^\p{M}])/u; +const SYLLABLES_REG_EXP = /[\uAC00-\uD7AF\uFA6C\uFACF-\uFAD1\uFAD5-\uFAD7]+/g; +const SYLLABLES_LENGTHS = new Map(); +const FIRST_CHAR_SYLLABLES_REG_EXP = "[\\u1100-\\u1112\\ud7a4-\\ud7af\\ud84a\\ud84c\\ud850\\ud854\\ud857\\ud85f]"; +const NFKC_CHARS_TO_NORMALIZE = new Map(); +let noSyllablesRegExp = null; +let withSyllablesRegExp = null; +function normalize(text) { + const syllablePositions = []; + let m; + while ((m = SYLLABLES_REG_EXP.exec(text)) !== null) { + let { + index + } = m; + for (const char of m[0]) { + let len = SYLLABLES_LENGTHS.get(char); + if (!len) { + len = char.normalize("NFD").length; + SYLLABLES_LENGTHS.set(char, len); + } + syllablePositions.push([len, index++]); + } + } + let normalizationRegex; + if (syllablePositions.length === 0 && noSyllablesRegExp) { + normalizationRegex = noSyllablesRegExp; + } else if (syllablePositions.length > 0 && withSyllablesRegExp) { + normalizationRegex = withSyllablesRegExp; + } else { + const replace = Object.keys(CHARACTERS_TO_NORMALIZE).join(""); + const toNormalizeWithNFKC = "\u2460-\u2473" + "\u24b6-\u24ff" + "\u3244-\u32bf" + "\u32d0-\u32fe" + "\uff00-\uffef"; + const CJK = "(?:\\p{Ideographic}|[\u3040-\u30FF])"; + const regexp = `([${replace}])|([${toNormalizeWithNFKC}])|(\\p{M}+(?:-\\n)?)|(\\S-\\n)|(${CJK}\\n)|(\\n)`; + if (syllablePositions.length === 0) { + normalizationRegex = noSyllablesRegExp = new RegExp(regexp + "|(\\u0000)", "gum"); + } else { + normalizationRegex = withSyllablesRegExp = new RegExp(regexp + `|(${FIRST_CHAR_SYLLABLES_REG_EXP})`, "gum"); + } + } + const rawDiacriticsPositions = []; + while ((m = DIACRITICS_REG_EXP.exec(text)) !== null) { + rawDiacriticsPositions.push([m[0].length, m.index]); + } + let normalized = text.normalize("NFD"); + const positions = [[0, 0]]; + let rawDiacriticsIndex = 0; + let syllableIndex = 0; + let shift = 0; + let shiftOrigin = 0; + let eol = 0; + let hasDiacritics = false; + normalized = normalized.replace(normalizationRegex, (match, p1, p2, p3, p4, p5, p6, p7, i) => { + i -= shiftOrigin; + if (p1) { + const replacement = CHARACTERS_TO_NORMALIZE[p1]; + const jj = replacement.length; + for (let j = 1; j < jj; j++) { + positions.push([i - shift + j, shift - j]); + } + shift -= jj - 1; + return replacement; + } + if (p2) { + let replacement = NFKC_CHARS_TO_NORMALIZE.get(p2); + if (!replacement) { + replacement = p2.normalize("NFKC"); + NFKC_CHARS_TO_NORMALIZE.set(p2, replacement); + } + const jj = replacement.length; + for (let j = 1; j < jj; j++) { + positions.push([i - shift + j, shift - j]); + } + shift -= jj - 1; + return replacement; + } + if (p3) { + const hasTrailingDashEOL = p3.endsWith("\n"); + const len = hasTrailingDashEOL ? p3.length - 2 : p3.length; + hasDiacritics = true; + let jj = len; + if (i + eol === rawDiacriticsPositions[rawDiacriticsIndex]?.[1]) { + jj -= rawDiacriticsPositions[rawDiacriticsIndex][0]; + ++rawDiacriticsIndex; + } + for (let j = 1; j <= jj; j++) { + positions.push([i - 1 - shift + j, shift - j]); + } + shift -= jj; + shiftOrigin += jj; + if (hasTrailingDashEOL) { + i += len - 1; + positions.push([i - shift + 1, 1 + shift]); + shift += 1; + shiftOrigin += 1; + eol += 1; + return p3.slice(0, len); + } + return p3; + } + if (p4) { + positions.push([i - shift + 1, 1 + shift]); + shift += 1; + shiftOrigin += 1; + eol += 1; + return p4.charAt(0); + } + if (p5) { + positions.push([i - shift + 1, shift]); + shiftOrigin += 1; + eol += 1; + return p5.charAt(0); + } + if (p6) { + positions.push([i - shift + 1, shift - 1]); + shift -= 1; + shiftOrigin += 1; + eol += 1; + return " "; + } + if (i + eol === syllablePositions[syllableIndex]?.[1]) { + const newCharLen = syllablePositions[syllableIndex][0] - 1; + ++syllableIndex; + for (let j = 1; j <= newCharLen; j++) { + positions.push([i - (shift - j), shift - j]); + } + shift -= newCharLen; + shiftOrigin += newCharLen; + } + return p7; + }); + positions.push([normalized.length, shift]); + return [normalized, positions, hasDiacritics]; +} +function getOriginalIndex(diffs, pos, len) { + if (!diffs) { + return [pos, len]; + } + const start = pos; + const end = pos + len; + let i = (0, _ui_utils.binarySearchFirstItem)(diffs, x => x[0] >= start); + if (diffs[i][0] > start) { + --i; + } + let j = (0, _ui_utils.binarySearchFirstItem)(diffs, x => x[0] >= end, i); + if (diffs[j][0] > end) { + --j; + } + return [start + diffs[i][1], len + diffs[j][1] - diffs[i][1]]; +} +class PDFFindController { + #updateMatchesCountOnProgress = true; + #visitedPagesCount = 0; + constructor({ + linkService, + eventBus, + updateMatchesCountOnProgress = true + }) { + this._linkService = linkService; + this._eventBus = eventBus; + this.#updateMatchesCountOnProgress = updateMatchesCountOnProgress; + this.#reset(); + eventBus._on("find", this.#onFind.bind(this)); + eventBus._on("findbarclose", this.#onFindBarClose.bind(this)); + } + get highlightMatches() { + return this._highlightMatches; + } + get pageMatches() { + return this._pageMatches; + } + get pageMatchesLength() { + return this._pageMatchesLength; + } + get selected() { + return this._selected; + } + get state() { + return this._state; + } + setDocument(pdfDocument) { + if (this._pdfDocument) { + this.#reset(); + } + if (!pdfDocument) { + return; + } + this._pdfDocument = pdfDocument; + this._firstPageCapability.resolve(); + } + #onFind(state) { + if (!state) { + return; + } + const pdfDocument = this._pdfDocument; + const { + type + } = state; + if (this._state === null || this.#shouldDirtyMatch(state)) { + this._dirtyMatch = true; + } + this._state = state; + if (type !== "highlightallchange") { + this.#updateUIState(FindState.PENDING); + } + this._firstPageCapability.promise.then(() => { + if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) { + return; + } + this.#extractText(); + const findbarClosed = !this._highlightMatches; + const pendingTimeout = !!this._findTimeout; + if (this._findTimeout) { + clearTimeout(this._findTimeout); + this._findTimeout = null; + } + if (!type) { + this._findTimeout = setTimeout(() => { + this.#nextMatch(); + this._findTimeout = null; + }, FIND_TIMEOUT); + } else if (this._dirtyMatch) { + this.#nextMatch(); + } else if (type === "again") { + this.#nextMatch(); + if (findbarClosed && this._state.highlightAll) { + this.#updateAllPages(); + } + } else if (type === "highlightallchange") { + if (pendingTimeout) { + this.#nextMatch(); + } else { + this._highlightMatches = true; + } + this.#updateAllPages(); + } else { + this.#nextMatch(); + } + }); + } + scrollMatchIntoView({ + element = null, + selectedLeft = 0, + pageIndex = -1, + matchIndex = -1 + }) { + if (!this._scrollMatches || !element) { + return; + } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) { + return; + } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) { + return; + } + this._scrollMatches = false; + const spot = { + top: MATCH_SCROLL_OFFSET_TOP, + left: selectedLeft + MATCH_SCROLL_OFFSET_LEFT + }; + (0, _ui_utils.scrollIntoView)(element, spot, true); + } + #reset() { + this._highlightMatches = false; + this._scrollMatches = false; + this._pdfDocument = null; + this._pageMatches = []; + this._pageMatchesLength = []; + this.#visitedPagesCount = 0; + this._state = null; + this._selected = { + pageIdx: -1, + matchIdx: -1 + }; + this._offset = { + pageIdx: null, + matchIdx: null, + wrapped: false + }; + this._extractTextPromises = []; + this._pageContents = []; + this._pageDiffs = []; + this._hasDiacritics = []; + this._matchesCountTotal = 0; + this._pagesToSearch = null; + this._pendingFindMatches = new Set(); + this._resumePageIdx = null; + this._dirtyMatch = false; + clearTimeout(this._findTimeout); + this._findTimeout = null; + this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)(); + } + get #query() { + if (this._state.query !== this._rawQuery) { + this._rawQuery = this._state.query; + [this._normalizedQuery] = normalize(this._state.query); + } + return this._normalizedQuery; + } + #shouldDirtyMatch(state) { + if (state.query !== this._state.query) { + return true; + } + switch (state.type) { + case "again": + const pageNumber = this._selected.pageIdx + 1; + const linkService = this._linkService; + if (pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !linkService.isPageVisible(pageNumber)) { + return true; + } + return false; + case "highlightallchange": + return false; + } + return true; + } + #isEntireWord(content, startIdx, length) { + let match = content.slice(0, startIdx).match(NOT_DIACRITIC_FROM_END_REG_EXP); + if (match) { + const first = content.charCodeAt(startIdx); + const limit = match[1].charCodeAt(0); + if ((0, _pdf_find_utils.getCharacterType)(first) === (0, _pdf_find_utils.getCharacterType)(limit)) { + return false; + } + } + match = content.slice(startIdx + length).match(NOT_DIACRITIC_FROM_START_REG_EXP); + if (match) { + const last = content.charCodeAt(startIdx + length - 1); + const limit = match[1].charCodeAt(0); + if ((0, _pdf_find_utils.getCharacterType)(last) === (0, _pdf_find_utils.getCharacterType)(limit)) { + return false; + } + } + return true; + } + #calculateRegExpMatch(query, entireWord, pageIndex, pageContent) { + const matches = this._pageMatches[pageIndex] = []; + const matchesLength = this._pageMatchesLength[pageIndex] = []; + if (!query) { + return; + } + const diffs = this._pageDiffs[pageIndex]; + let match; + while ((match = query.exec(pageContent)) !== null) { + if (entireWord && !this.#isEntireWord(pageContent, match.index, match[0].length)) { + continue; + } + const [matchPos, matchLen] = getOriginalIndex(diffs, match.index, match[0].length); + if (matchLen) { + matches.push(matchPos); + matchesLength.push(matchLen); + } + } + } + #convertToRegExpString(query, hasDiacritics) { + const { + matchDiacritics + } = this._state; + let isUnicode = false; + query = query.replace(SPECIAL_CHARS_REG_EXP, (match, p1, p2, p3, p4, p5) => { + if (p1) { + return `[ ]*\\${p1}[ ]*`; + } + if (p2) { + return `[ ]*${p2}[ ]*`; + } + if (p3) { + return "[ ]+"; + } + if (matchDiacritics) { + return p4 || p5; + } + if (p4) { + return DIACRITICS_EXCEPTION.has(p4.charCodeAt(0)) ? p4 : ""; + } + if (hasDiacritics) { + isUnicode = true; + return `${p5}\\p{M}*`; + } + return p5; + }); + const trailingSpaces = "[ ]*"; + if (query.endsWith(trailingSpaces)) { + query = query.slice(0, query.length - trailingSpaces.length); + } + if (matchDiacritics) { + if (hasDiacritics) { + DIACRITICS_EXCEPTION_STR ||= String.fromCharCode(...DIACRITICS_EXCEPTION); + isUnicode = true; + query = `${query}(?=[${DIACRITICS_EXCEPTION_STR}]|[^\\p{M}]|$)`; + } + } + return [isUnicode, query]; + } + #calculateMatch(pageIndex) { + let query = this.#query; + if (!query) { + return; + } + const { + caseSensitive, + entireWord, + phraseSearch + } = this._state; + const pageContent = this._pageContents[pageIndex]; + const hasDiacritics = this._hasDiacritics[pageIndex]; + let isUnicode = false; + if (phraseSearch) { + [isUnicode, query] = this.#convertToRegExpString(query, hasDiacritics); + } else { + const match = query.match(/\S+/g); + if (match) { + query = match.sort().reverse().map(q => { + const [isUnicodePart, queryPart] = this.#convertToRegExpString(q, hasDiacritics); + isUnicode ||= isUnicodePart; + return `(${queryPart})`; + }).join("|"); + } + } + const flags = `g${isUnicode ? "u" : ""}${caseSensitive ? "" : "i"}`; + query = query ? new RegExp(query, flags) : null; + this.#calculateRegExpMatch(query, entireWord, pageIndex, pageContent); + if (this._state.highlightAll) { + this.#updatePage(pageIndex); + } + if (this._resumePageIdx === pageIndex) { + this._resumePageIdx = null; + this.#nextPageMatch(); + } + const pageMatchesCount = this._pageMatches[pageIndex].length; + this._matchesCountTotal += pageMatchesCount; + if (this.#updateMatchesCountOnProgress) { + if (pageMatchesCount > 0) { + this.#updateUIResultsCount(); + } + } else if (++this.#visitedPagesCount === this._linkService.pagesCount) { + this.#updateUIResultsCount(); + } + } + #extractText() { + if (this._extractTextPromises.length > 0) { + return; + } + let promise = Promise.resolve(); + for (let i = 0, ii = this._linkService.pagesCount; i < ii; i++) { + const extractTextCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._extractTextPromises[i] = extractTextCapability.promise; + promise = promise.then(() => { + return this._pdfDocument.getPage(i + 1).then(pdfPage => { + return pdfPage.getTextContent(); + }).then(textContent => { + const strBuf = []; + for (const textItem of textContent.items) { + strBuf.push(textItem.str); + if (textItem.hasEOL) { + strBuf.push("\n"); + } + } + [this._pageContents[i], this._pageDiffs[i], this._hasDiacritics[i]] = normalize(strBuf.join("")); + extractTextCapability.resolve(); + }, reason => { + console.error(`Unable to get text content for page ${i + 1}`, reason); + this._pageContents[i] = ""; + this._pageDiffs[i] = null; + this._hasDiacritics[i] = false; + extractTextCapability.resolve(); + }); + }); + } + } + #updatePage(index) { + if (this._scrollMatches && this._selected.pageIdx === index) { + this._linkService.page = index + 1; + } + this._eventBus.dispatch("updatetextlayermatches", { + source: this, + pageIndex: index + }); + } + #updateAllPages() { + this._eventBus.dispatch("updatetextlayermatches", { + source: this, + pageIndex: -1 + }); + } + #nextMatch() { + const previous = this._state.findPrevious; + const currentPageIndex = this._linkService.page - 1; + const numPages = this._linkService.pagesCount; + this._highlightMatches = true; + if (this._dirtyMatch) { + this._dirtyMatch = false; + this._selected.pageIdx = this._selected.matchIdx = -1; + this._offset.pageIdx = currentPageIndex; + this._offset.matchIdx = null; + this._offset.wrapped = false; + this._resumePageIdx = null; + this._pageMatches.length = 0; + this._pageMatchesLength.length = 0; + this.#visitedPagesCount = 0; + this._matchesCountTotal = 0; + this.#updateAllPages(); + for (let i = 0; i < numPages; i++) { + if (this._pendingFindMatches.has(i)) { + continue; + } + this._pendingFindMatches.add(i); + this._extractTextPromises[i].then(() => { + this._pendingFindMatches.delete(i); + this.#calculateMatch(i); + }); + } + } + if (!this.#query) { + this.#updateUIState(FindState.FOUND); + return; + } + if (this._resumePageIdx) { + return; + } + const offset = this._offset; + this._pagesToSearch = numPages; + if (offset.matchIdx !== null) { + const numPageMatches = this._pageMatches[offset.pageIdx].length; + if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) { + offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1; + this.#updateMatch(true); + return; + } + this.#advanceOffsetPage(previous); + } + this.#nextPageMatch(); + } + #matchesReady(matches) { + const offset = this._offset; + const numMatches = matches.length; + const previous = this._state.findPrevious; + if (numMatches) { + offset.matchIdx = previous ? numMatches - 1 : 0; + this.#updateMatch(true); + return true; + } + this.#advanceOffsetPage(previous); + if (offset.wrapped) { + offset.matchIdx = null; + if (this._pagesToSearch < 0) { + this.#updateMatch(false); + return true; + } + } + return false; + } + #nextPageMatch() { + if (this._resumePageIdx !== null) { + console.error("There can only be one pending page."); + } + let matches = null; + do { + const pageIdx = this._offset.pageIdx; + matches = this._pageMatches[pageIdx]; + if (!matches) { + this._resumePageIdx = pageIdx; + break; + } + } while (!this.#matchesReady(matches)); + } + #advanceOffsetPage(previous) { + const offset = this._offset; + const numPages = this._linkService.pagesCount; + offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1; + offset.matchIdx = null; + this._pagesToSearch--; + if (offset.pageIdx >= numPages || offset.pageIdx < 0) { + offset.pageIdx = previous ? numPages - 1 : 0; + offset.wrapped = true; + } + } + #updateMatch(found = false) { + let state = FindState.NOT_FOUND; + const wrapped = this._offset.wrapped; + this._offset.wrapped = false; + if (found) { + const previousPage = this._selected.pageIdx; + this._selected.pageIdx = this._offset.pageIdx; + this._selected.matchIdx = this._offset.matchIdx; + state = wrapped ? FindState.WRAPPED : FindState.FOUND; + if (previousPage !== -1 && previousPage !== this._selected.pageIdx) { + this.#updatePage(previousPage); + } + } + this.#updateUIState(state, this._state.findPrevious); + if (this._selected.pageIdx !== -1) { + this._scrollMatches = true; + this.#updatePage(this._selected.pageIdx); + } + } + #onFindBarClose(evt) { + const pdfDocument = this._pdfDocument; + this._firstPageCapability.promise.then(() => { + if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) { + return; + } + if (this._findTimeout) { + clearTimeout(this._findTimeout); + this._findTimeout = null; + } + if (this._resumePageIdx) { + this._resumePageIdx = null; + this._dirtyMatch = true; + } + this.#updateUIState(FindState.FOUND); + this._highlightMatches = false; + this.#updateAllPages(); + }); + } + #requestMatchesCount() { + const { + pageIdx, + matchIdx + } = this._selected; + let current = 0, + total = this._matchesCountTotal; + if (matchIdx !== -1) { + for (let i = 0; i < pageIdx; i++) { + current += this._pageMatches[i]?.length || 0; + } + current += matchIdx + 1; + } + if (current < 1 || current > total) { + current = total = 0; + } + return { + current, + total + }; + } + #updateUIResultsCount() { + this._eventBus.dispatch("updatefindmatchescount", { + source: this, + matchesCount: this.#requestMatchesCount() + }); + } + #updateUIState(state, previous = false) { + if (!this.#updateMatchesCountOnProgress && (this.#visitedPagesCount !== this._linkService.pagesCount || state === FindState.PENDING)) { + return; + } + this._eventBus.dispatch("updatefindcontrolstate", { + source: this, + state, + previous, + matchesCount: this.#requestMatchesCount(), + rawQuery: this._state?.query ?? null + }); + } +} +exports.PDFFindController = PDFFindController; + +/***/ }), +/* 11 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.CharacterType = void 0; +exports.getCharacterType = getCharacterType; +const CharacterType = { + SPACE: 0, + ALPHA_LETTER: 1, + PUNCT: 2, + HAN_LETTER: 3, + KATAKANA_LETTER: 4, + HIRAGANA_LETTER: 5, + HALFWIDTH_KATAKANA_LETTER: 6, + THAI_LETTER: 7 +}; +exports.CharacterType = CharacterType; +function isAlphabeticalScript(charCode) { + return charCode < 0x2e80; +} +function isAscii(charCode) { + return (charCode & 0xff80) === 0; +} +function isAsciiAlpha(charCode) { + return charCode >= 0x61 && charCode <= 0x7a || charCode >= 0x41 && charCode <= 0x5a; +} +function isAsciiDigit(charCode) { + return charCode >= 0x30 && charCode <= 0x39; +} +function isAsciiSpace(charCode) { + return charCode === 0x20 || charCode === 0x09 || charCode === 0x0d || charCode === 0x0a; +} +function isHan(charCode) { + return charCode >= 0x3400 && charCode <= 0x9fff || charCode >= 0xf900 && charCode <= 0xfaff; +} +function isKatakana(charCode) { + return charCode >= 0x30a0 && charCode <= 0x30ff; +} +function isHiragana(charCode) { + return charCode >= 0x3040 && charCode <= 0x309f; +} +function isHalfwidthKatakana(charCode) { + return charCode >= 0xff60 && charCode <= 0xff9f; +} +function isThai(charCode) { + return (charCode & 0xff80) === 0x0e00; +} +function getCharacterType(charCode) { + if (isAlphabeticalScript(charCode)) { + if (isAscii(charCode)) { + if (isAsciiSpace(charCode)) { + return CharacterType.SPACE; + } else if (isAsciiAlpha(charCode) || isAsciiDigit(charCode) || charCode === 0x5f) { + return CharacterType.ALPHA_LETTER; + } + return CharacterType.PUNCT; + } else if (isThai(charCode)) { + return CharacterType.THAI_LETTER; + } else if (charCode === 0xa0) { + return CharacterType.SPACE; + } + return CharacterType.ALPHA_LETTER; + } + if (isHan(charCode)) { + return CharacterType.HAN_LETTER; + } else if (isKatakana(charCode)) { + return CharacterType.KATAKANA_LETTER; + } else if (isHiragana(charCode)) { + return CharacterType.HIRAGANA_LETTER; + } else if (isHalfwidthKatakana(charCode)) { + return CharacterType.HALFWIDTH_KATAKANA_LETTER; + } + return CharacterType.ALPHA_LETTER; +} + +/***/ }), +/* 12 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFHistory = void 0; +exports.isDestArraysEqual = isDestArraysEqual; +exports.isDestHashesEqual = isDestHashesEqual; +var _ui_utils = __w_pdfjs_require__(2); +var _event_utils = __w_pdfjs_require__(7); +const HASH_CHANGE_TIMEOUT = 1000; +const POSITION_UPDATED_THRESHOLD = 50; +const UPDATE_VIEWAREA_TIMEOUT = 1000; +function getCurrentHash() { + return document.location.hash; +} +class PDFHistory { + constructor({ + linkService, + eventBus + }) { + this.linkService = linkService; + this.eventBus = eventBus; + this._initialized = false; + this._fingerprint = ""; + this.reset(); + this._boundEvents = null; + this.eventBus._on("pagesinit", () => { + this._isPagesLoaded = false; + this.eventBus._on("pagesloaded", evt => { + this._isPagesLoaded = !!evt.pagesCount; + }, { + once: true + }); + }); + } + initialize({ + fingerprint, + resetHistory = false, + updateUrl = false + }) { + if (!fingerprint || typeof fingerprint !== "string") { + console.error('PDFHistory.initialize: The "fingerprint" must be a non-empty string.'); + return; + } + if (this._initialized) { + this.reset(); + } + const reInitialized = this._fingerprint !== "" && this._fingerprint !== fingerprint; + this._fingerprint = fingerprint; + this._updateUrl = updateUrl === true; + this._initialized = true; + this._bindEvents(); + const state = window.history.state; + this._popStateInProgress = false; + this._blockHashChange = 0; + this._currentHash = getCurrentHash(); + this._numPositionUpdates = 0; + this._uid = this._maxUid = 0; + this._destination = null; + this._position = null; + if (!this._isValidState(state, true) || resetHistory) { + const { + hash, + page, + rotation + } = this._parseCurrentHash(true); + if (!hash || reInitialized || resetHistory) { + this._pushOrReplaceState(null, true); + return; + } + this._pushOrReplaceState({ + hash, + page, + rotation + }, true); + return; + } + const destination = state.destination; + this._updateInternalState(destination, state.uid, true); + if (destination.rotation !== undefined) { + this._initialRotation = destination.rotation; + } + if (destination.dest) { + this._initialBookmark = JSON.stringify(destination.dest); + this._destination.page = null; + } else if (destination.hash) { + this._initialBookmark = destination.hash; + } else if (destination.page) { + this._initialBookmark = `page=${destination.page}`; + } + } + reset() { + if (this._initialized) { + this._pageHide(); + this._initialized = false; + this._unbindEvents(); + } + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; + } + this._initialBookmark = null; + this._initialRotation = null; + } + push({ + namedDest = null, + explicitDest, + pageNumber + }) { + if (!this._initialized) { + return; + } + if (namedDest && typeof namedDest !== "string") { + console.error("PDFHistory.push: " + `"${namedDest}" is not a valid namedDest parameter.`); + return; + } else if (!Array.isArray(explicitDest)) { + console.error("PDFHistory.push: " + `"${explicitDest}" is not a valid explicitDest parameter.`); + return; + } else if (!this._isValidPage(pageNumber)) { + if (pageNumber !== null || this._destination) { + console.error("PDFHistory.push: " + `"${pageNumber}" is not a valid pageNumber parameter.`); + return; + } + } + const hash = namedDest || JSON.stringify(explicitDest); + if (!hash) { + return; + } + let forceReplace = false; + if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) { + if (this._destination.page) { + return; + } + forceReplace = true; + } + if (this._popStateInProgress && !forceReplace) { + return; + } + this._pushOrReplaceState({ + dest: explicitDest, + hash, + page: pageNumber, + rotation: this.linkService.rotation + }, forceReplace); + if (!this._popStateInProgress) { + this._popStateInProgress = true; + Promise.resolve().then(() => { + this._popStateInProgress = false; + }); + } + } + pushPage(pageNumber) { + if (!this._initialized) { + return; + } + if (!this._isValidPage(pageNumber)) { + console.error(`PDFHistory.pushPage: "${pageNumber}" is not a valid page number.`); + return; + } + if (this._destination?.page === pageNumber) { + return; + } + if (this._popStateInProgress) { + return; + } + this._pushOrReplaceState({ + dest: null, + hash: `page=${pageNumber}`, + page: pageNumber, + rotation: this.linkService.rotation + }); + if (!this._popStateInProgress) { + this._popStateInProgress = true; + Promise.resolve().then(() => { + this._popStateInProgress = false; + }); + } + } + pushCurrentPosition() { + if (!this._initialized || this._popStateInProgress) { + return; + } + this._tryPushCurrentPosition(); + } + back() { + if (!this._initialized || this._popStateInProgress) { + return; + } + const state = window.history.state; + if (this._isValidState(state) && state.uid > 0) { + window.history.back(); + } + } + forward() { + if (!this._initialized || this._popStateInProgress) { + return; + } + const state = window.history.state; + if (this._isValidState(state) && state.uid < this._maxUid) { + window.history.forward(); + } + } + get popStateInProgress() { + return this._initialized && (this._popStateInProgress || this._blockHashChange > 0); + } + get initialBookmark() { + return this._initialized ? this._initialBookmark : null; + } + get initialRotation() { + return this._initialized ? this._initialRotation : null; + } + _pushOrReplaceState(destination, forceReplace = false) { + const shouldReplace = forceReplace || !this._destination; + const newState = { + fingerprint: this._fingerprint, + uid: shouldReplace ? this._uid : this._uid + 1, + destination + }; + this._updateInternalState(destination, newState.uid); + let newUrl; + if (this._updateUrl && destination?.hash) { + const baseUrl = document.location.href.split("#")[0]; + if (!baseUrl.startsWith("file://")) { + newUrl = `${baseUrl}#${destination.hash}`; + } + } + if (shouldReplace) { + window.history.replaceState(newState, "", newUrl); + } else { + window.history.pushState(newState, "", newUrl); + } + } + _tryPushCurrentPosition(temporary = false) { + if (!this._position) { + return; + } + let position = this._position; + if (temporary) { + position = Object.assign(Object.create(null), this._position); + position.temporary = true; + } + if (!this._destination) { + this._pushOrReplaceState(position); + return; + } + if (this._destination.temporary) { + this._pushOrReplaceState(position, true); + return; + } + if (this._destination.hash === position.hash) { + return; + } + if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) { + return; + } + let forceReplace = false; + if (this._destination.page >= position.first && this._destination.page <= position.page) { + if (this._destination.dest !== undefined || !this._destination.first) { + return; + } + forceReplace = true; + } + this._pushOrReplaceState(position, forceReplace); + } + _isValidPage(val) { + return Number.isInteger(val) && val > 0 && val <= this.linkService.pagesCount; + } + _isValidState(state, checkReload = false) { + if (!state) { + return false; + } + if (state.fingerprint !== this._fingerprint) { + if (checkReload) { + if (typeof state.fingerprint !== "string" || state.fingerprint.length !== this._fingerprint.length) { + return false; + } + const [perfEntry] = performance.getEntriesByType("navigation"); + if (perfEntry?.type !== "reload") { + return false; + } + } else { + return false; + } + } + if (!Number.isInteger(state.uid) || state.uid < 0) { + return false; + } + if (state.destination === null || typeof state.destination !== "object") { + return false; + } + return true; + } + _updateInternalState(destination, uid, removeTemporary = false) { + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; + } + if (removeTemporary && destination?.temporary) { + delete destination.temporary; + } + this._destination = destination; + this._uid = uid; + this._maxUid = Math.max(this._maxUid, uid); + this._numPositionUpdates = 0; + } + _parseCurrentHash(checkNameddest = false) { + const hash = unescape(getCurrentHash()).substring(1); + const params = (0, _ui_utils.parseQueryString)(hash); + const nameddest = params.get("nameddest") || ""; + let page = params.get("page") | 0; + if (!this._isValidPage(page) || checkNameddest && nameddest.length > 0) { + page = null; + } + return { + hash, + page, + rotation: this.linkService.rotation + }; + } + _updateViewarea({ + location + }) { + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; + } + this._position = { + hash: location.pdfOpenParams.substring(1), + page: this.linkService.page, + first: location.pageNumber, + rotation: location.rotation + }; + if (this._popStateInProgress) { + return; + } + if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) { + this._numPositionUpdates++; + } + if (UPDATE_VIEWAREA_TIMEOUT > 0) { + this._updateViewareaTimeout = setTimeout(() => { + if (!this._popStateInProgress) { + this._tryPushCurrentPosition(true); + } + this._updateViewareaTimeout = null; + }, UPDATE_VIEWAREA_TIMEOUT); + } + } + _popState({ + state + }) { + const newHash = getCurrentHash(), + hashChanged = this._currentHash !== newHash; + this._currentHash = newHash; + if (!state) { + this._uid++; + const { + hash, + page, + rotation + } = this._parseCurrentHash(); + this._pushOrReplaceState({ + hash, + page, + rotation + }, true); + return; + } + if (!this._isValidState(state)) { + return; + } + this._popStateInProgress = true; + if (hashChanged) { + this._blockHashChange++; + (0, _event_utils.waitOnEventOrTimeout)({ + target: window, + name: "hashchange", + delay: HASH_CHANGE_TIMEOUT + }).then(() => { + this._blockHashChange--; + }); + } + const destination = state.destination; + this._updateInternalState(destination, state.uid, true); + if ((0, _ui_utils.isValidRotation)(destination.rotation)) { + this.linkService.rotation = destination.rotation; + } + if (destination.dest) { + this.linkService.goToDestination(destination.dest); + } else if (destination.hash) { + this.linkService.setHash(destination.hash); + } else if (destination.page) { + this.linkService.page = destination.page; + } + Promise.resolve().then(() => { + this._popStateInProgress = false; + }); + } + _pageHide() { + if (!this._destination || this._destination.temporary) { + this._tryPushCurrentPosition(); + } + } + _bindEvents() { + if (this._boundEvents) { + return; + } + this._boundEvents = { + updateViewarea: this._updateViewarea.bind(this), + popState: this._popState.bind(this), + pageHide: this._pageHide.bind(this) + }; + this.eventBus._on("updateviewarea", this._boundEvents.updateViewarea); + window.addEventListener("popstate", this._boundEvents.popState); + window.addEventListener("pagehide", this._boundEvents.pageHide); + } + _unbindEvents() { + if (!this._boundEvents) { + return; + } + this.eventBus._off("updateviewarea", this._boundEvents.updateViewarea); + window.removeEventListener("popstate", this._boundEvents.popState); + window.removeEventListener("pagehide", this._boundEvents.pageHide); + this._boundEvents = null; + } +} +exports.PDFHistory = PDFHistory; +function isDestHashesEqual(destHash, pushHash) { + if (typeof destHash !== "string" || typeof pushHash !== "string") { + return false; + } + if (destHash === pushHash) { + return true; + } + const nameddest = (0, _ui_utils.parseQueryString)(destHash).get("nameddest"); + if (nameddest === pushHash) { + return true; + } + return false; +} +function isDestArraysEqual(firstDest, secondDest) { + function isEntryEqual(first, second) { + if (typeof first !== typeof second) { + return false; + } + if (Array.isArray(first) || Array.isArray(second)) { + return false; + } + if (first !== null && typeof first === "object" && second !== null) { + if (Object.keys(first).length !== Object.keys(second).length) { + return false; + } + for (const key in first) { + if (!isEntryEqual(first[key], second[key])) { + return false; + } + } + return true; + } + return first === second || Number.isNaN(first) && Number.isNaN(second); + } + if (!(Array.isArray(firstDest) && Array.isArray(secondDest))) { + return false; + } + if (firstDest.length !== secondDest.length) { + return false; + } + for (let i = 0, ii = firstDest.length; i < ii; i++) { + if (!isEntryEqual(firstDest[i], secondDest[i])) { + return false; + } + } + return true; +} + +/***/ }), +/* 13 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFPageView = void 0; +var _pdfjsLib = __w_pdfjs_require__(4); +var _ui_utils = __w_pdfjs_require__(2); +var _annotation_editor_layer_builder = __w_pdfjs_require__(14); +var _annotation_layer_builder = __w_pdfjs_require__(3); +var _app_options = __w_pdfjs_require__(15); +var _l10n_utils = __w_pdfjs_require__(5); +var _struct_tree_layer_builder = __w_pdfjs_require__(16); +var _text_accessibility = __w_pdfjs_require__(17); +var _text_highlighter = __w_pdfjs_require__(18); +var _text_layer_builder = __w_pdfjs_require__(19); +var _xfa_layer_builder = __w_pdfjs_require__(20); +const MAX_CANVAS_PIXELS = _app_options.compatibilityParams.maxCanvasPixels || 16777216; +const DEFAULT_LAYER_PROPERTIES = () => { + return { + annotationEditorUIManager: null, + annotationStorage: null, + downloadManager: null, + enableScripting: false, + fieldObjectsPromise: null, + findController: null, + hasJSActionsPromise: null, + get linkService() { + const { + SimpleLinkService + } = __w_pdfjs_require__(1); + return new SimpleLinkService(); + } + }; +}; +class PDFPageView { + #annotationMode = _pdfjsLib.AnnotationMode.ENABLE_FORMS; + #layerProperties = null; + #previousRotation = null; + #renderingState = _ui_utils.RenderingStates.INITIAL; + #useThumbnailCanvas = { + initialOptionalContent: true, + regularAnnotations: true + }; + constructor(options) { + const container = options.container; + const defaultViewport = options.defaultViewport; + this.id = options.id; + this.renderingId = "page" + this.id; + this.#layerProperties = options.layerProperties || DEFAULT_LAYER_PROPERTIES; + this.pdfPage = null; + this.pageLabel = null; + this.rotation = 0; + this.scale = options.scale || _ui_utils.DEFAULT_SCALE; + this.viewport = defaultViewport; + this.pdfPageRotate = defaultViewport.rotation; + this._optionalContentConfigPromise = options.optionalContentConfigPromise || null; + this.hasRestrictedScaling = false; + this.textLayerMode = options.textLayerMode ?? _ui_utils.TextLayerMode.ENABLE; + this.#annotationMode = options.annotationMode ?? _pdfjsLib.AnnotationMode.ENABLE_FORMS; + this.imageResourcesPath = options.imageResourcesPath || ""; + this.useOnlyCssZoom = options.useOnlyCssZoom || false; + this.isOffscreenCanvasSupported = options.isOffscreenCanvasSupported ?? true; + this.maxCanvasPixels = options.maxCanvasPixels || MAX_CANVAS_PIXELS; + this.pageColors = options.pageColors || null; + this.eventBus = options.eventBus; + this.renderingQueue = options.renderingQueue; + this.renderer = options.renderer || _ui_utils.RendererType.CANVAS; + this.l10n = options.l10n || _l10n_utils.NullL10n; + this.paintTask = null; + this.paintedViewportMap = new WeakMap(); + this.resume = null; + this._renderError = null; + this._isStandalone = !this.renderingQueue?.hasViewer(); + this._annotationCanvasMap = null; + this.annotationLayer = null; + this.annotationEditorLayer = null; + this.textLayer = null; + this.zoomLayer = null; + this.xfaLayer = null; + this.structTreeLayer = null; + const div = document.createElement("div"); + div.className = "page"; + div.setAttribute("data-page-number", this.id); + div.setAttribute("role", "region"); + this.l10n.get("page_landmark", { + page: this.id + }).then(msg => { + div.setAttribute("aria-label", msg); + }); + this.div = div; + this.#setDimensions(); + container?.append(div); + if (this._isStandalone) { + container?.style.setProperty("--scale-factor", this.scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS); + const { + optionalContentConfigPromise + } = options; + if (optionalContentConfigPromise) { + optionalContentConfigPromise.then(optionalContentConfig => { + if (optionalContentConfigPromise !== this._optionalContentConfigPromise) { + return; + } + this.#useThumbnailCanvas.initialOptionalContent = optionalContentConfig.hasInitialVisibility; + }); + } + } + } + get renderingState() { + return this.#renderingState; + } + set renderingState(state) { + this.#renderingState = state; + switch (state) { + case _ui_utils.RenderingStates.INITIAL: + case _ui_utils.RenderingStates.PAUSED: + this.loadingIconDiv?.classList.add("notVisible"); + break; + case _ui_utils.RenderingStates.RUNNING: + this.loadingIconDiv?.classList.remove("notVisible"); + break; + case _ui_utils.RenderingStates.FINISHED: + if (this.loadingIconDiv) { + this.loadingIconDiv.remove(); + delete this.loadingIconDiv; + } + break; + } + } + #setDimensions() { + const { + viewport + } = this; + if (this.pdfPage) { + if (this.#previousRotation === viewport.rotation) { + return; + } + this.#previousRotation = viewport.rotation; + } + (0, _pdfjsLib.setLayerDimensions)(this.div, viewport, true, false); + } + setPdfPage(pdfPage) { + this.pdfPage = pdfPage; + this.pdfPageRotate = pdfPage.rotate; + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = pdfPage.getViewport({ + scale: this.scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS, + rotation: totalRotation + }); + this.#setDimensions(); + this.reset(); + } + destroy() { + this.reset(); + this.pdfPage?.cleanup(); + } + get _textHighlighter() { + return (0, _pdfjsLib.shadow)(this, "_textHighlighter", new _text_highlighter.TextHighlighter({ + pageIndex: this.id - 1, + eventBus: this.eventBus, + findController: this.#layerProperties().findController + })); + } + async #renderAnnotationLayer() { + let error = null; + try { + await this.annotationLayer.render(this.viewport, "display"); + } catch (ex) { + console.error(`#renderAnnotationLayer: "${ex}".`); + error = ex; + } finally { + this.eventBus.dispatch("annotationlayerrendered", { + source: this, + pageNumber: this.id, + error + }); + } + } + async #renderAnnotationEditorLayer() { + let error = null; + try { + await this.annotationEditorLayer.render(this.viewport, "display"); + } catch (ex) { + console.error(`#renderAnnotationEditorLayer: "${ex}".`); + error = ex; + } finally { + this.eventBus.dispatch("annotationeditorlayerrendered", { + source: this, + pageNumber: this.id, + error + }); + } + } + async #renderXfaLayer() { + let error = null; + try { + const result = await this.xfaLayer.render(this.viewport, "display"); + if (result?.textDivs && this._textHighlighter) { + this.#buildXfaTextContentItems(result.textDivs); + } + } catch (ex) { + console.error(`#renderXfaLayer: "${ex}".`); + error = ex; + } finally { + this.eventBus.dispatch("xfalayerrendered", { + source: this, + pageNumber: this.id, + error + }); + } + } + async #renderTextLayer() { + const { + pdfPage, + textLayer, + viewport + } = this; + if (!textLayer) { + return; + } + let error = null; + try { + if (!textLayer.renderingDone) { + const readableStream = pdfPage.streamTextContent({ + includeMarkedContent: true + }); + textLayer.setTextContentSource(readableStream); + } + await textLayer.render(viewport); + } catch (ex) { + if (ex instanceof _pdfjsLib.AbortException) { + return; + } + console.error(`#renderTextLayer: "${ex}".`); + error = ex; + } + this.eventBus.dispatch("textlayerrendered", { + source: this, + pageNumber: this.id, + numTextDivs: textLayer.numTextDivs, + error + }); + this.#renderStructTreeLayer(); + } + async #renderStructTreeLayer() { + if (!this.textLayer) { + return; + } + this.structTreeLayer ||= new _struct_tree_layer_builder.StructTreeLayerBuilder(); + const tree = await (!this.structTreeLayer.renderingDone ? this.pdfPage.getStructTree() : null); + const treeDom = this.structTreeLayer?.render(tree); + if (treeDom) { + this.canvas?.append(treeDom); + } + } + async #buildXfaTextContentItems(textDivs) { + const text = await this.pdfPage.getTextContent(); + const items = []; + for (const item of text.items) { + items.push(item.str); + } + this._textHighlighter.setTextMapping(textDivs, items); + this._textHighlighter.enable(); + } + _resetZoomLayer(removeFromDOM = false) { + if (!this.zoomLayer) { + return; + } + const zoomLayerCanvas = this.zoomLayer.firstChild; + this.paintedViewportMap.delete(zoomLayerCanvas); + zoomLayerCanvas.width = 0; + zoomLayerCanvas.height = 0; + if (removeFromDOM) { + this.zoomLayer.remove(); + } + this.zoomLayer = null; + } + reset({ + keepZoomLayer = false, + keepAnnotationLayer = false, + keepAnnotationEditorLayer = false, + keepXfaLayer = false, + keepTextLayer = false + } = {}) { + this.cancelRendering({ + keepAnnotationLayer, + keepAnnotationEditorLayer, + keepXfaLayer, + keepTextLayer + }); + this.renderingState = _ui_utils.RenderingStates.INITIAL; + const div = this.div; + const childNodes = div.childNodes, + zoomLayerNode = keepZoomLayer && this.zoomLayer || null, + annotationLayerNode = keepAnnotationLayer && this.annotationLayer?.div || null, + annotationEditorLayerNode = keepAnnotationEditorLayer && this.annotationEditorLayer?.div || null, + xfaLayerNode = keepXfaLayer && this.xfaLayer?.div || null, + textLayerNode = keepTextLayer && this.textLayer?.div || null; + for (let i = childNodes.length - 1; i >= 0; i--) { + const node = childNodes[i]; + switch (node) { + case zoomLayerNode: + case annotationLayerNode: + case annotationEditorLayerNode: + case xfaLayerNode: + case textLayerNode: + case this.loadingIconDiv: + continue; + } + node.remove(); + } + div.removeAttribute("data-loaded"); + if (annotationLayerNode) { + this.annotationLayer.hide(); + } + if (annotationEditorLayerNode) { + this.annotationEditorLayer.hide(); + } + if (xfaLayerNode) { + this.xfaLayer.hide(); + } + if (textLayerNode) { + this.textLayer.hide(); + } + if (!zoomLayerNode) { + if (this.canvas) { + this.paintedViewportMap.delete(this.canvas); + this.canvas.width = 0; + this.canvas.height = 0; + delete this.canvas; + } + this._resetZoomLayer(); + } + if (this.svg) { + this.paintedViewportMap.delete(this.svg); + delete this.svg; + } + if (!this.loadingIconDiv) { + this.loadingIconDiv = document.createElement("div"); + this.loadingIconDiv.className = "loadingIcon notVisible"; + this.loadingIconDiv.setAttribute("role", "img"); + this.l10n.get("loading").then(msg => { + this.loadingIconDiv?.setAttribute("aria-label", msg); + }); + div.append(this.loadingIconDiv); + } + } + update({ + scale = 0, + rotation = null, + optionalContentConfigPromise = null, + drawingDelay = -1 + }) { + this.scale = scale || this.scale; + if (typeof rotation === "number") { + this.rotation = rotation; + } + if (optionalContentConfigPromise instanceof Promise) { + this._optionalContentConfigPromise = optionalContentConfigPromise; + optionalContentConfigPromise.then(optionalContentConfig => { + if (optionalContentConfigPromise !== this._optionalContentConfigPromise) { + return; + } + this.#useThumbnailCanvas.initialOptionalContent = optionalContentConfig.hasInitialVisibility; + }); + } + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = this.viewport.clone({ + scale: this.scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS, + rotation: totalRotation + }); + this.#setDimensions(); + if (this._isStandalone) { + this.div.parentNode?.style.setProperty("--scale-factor", this.viewport.scale); + } + if (this.svg) { + this.cssTransform({ + target: this.svg, + redrawAnnotationLayer: true, + redrawAnnotationEditorLayer: true, + redrawXfaLayer: true, + redrawTextLayer: true + }); + this.eventBus.dispatch("pagerendered", { + source: this, + pageNumber: this.id, + cssTransform: true, + timestamp: performance.now(), + error: this._renderError + }); + return; + } + let isScalingRestricted = false; + if (this.canvas && this.maxCanvasPixels > 0) { + const outputScale = this.outputScale; + if ((Math.floor(this.viewport.width) * outputScale.sx | 0) * (Math.floor(this.viewport.height) * outputScale.sy | 0) > this.maxCanvasPixels) { + isScalingRestricted = true; + } + } + const postponeDrawing = drawingDelay >= 0 && drawingDelay < 1000; + if (this.canvas) { + if (postponeDrawing || this.useOnlyCssZoom || this.hasRestrictedScaling && isScalingRestricted) { + if (postponeDrawing && this.renderingState !== _ui_utils.RenderingStates.FINISHED) { + this.cancelRendering({ + keepZoomLayer: true, + keepAnnotationLayer: true, + keepAnnotationEditorLayer: true, + keepXfaLayer: true, + keepTextLayer: true, + cancelExtraDelay: drawingDelay + }); + this.renderingState = _ui_utils.RenderingStates.FINISHED; + } + this.cssTransform({ + target: this.canvas, + redrawAnnotationLayer: true, + redrawAnnotationEditorLayer: true, + redrawXfaLayer: true, + redrawTextLayer: !postponeDrawing, + hideTextLayer: postponeDrawing + }); + this.eventBus.dispatch("pagerendered", { + source: this, + pageNumber: this.id, + cssTransform: true, + timestamp: performance.now(), + error: this._renderError + }); + return; + } + if (!this.zoomLayer && !this.canvas.hidden) { + this.zoomLayer = this.canvas.parentNode; + this.zoomLayer.style.position = "absolute"; + } + } + if (this.zoomLayer) { + this.cssTransform({ + target: this.zoomLayer.firstChild + }); + } + this.reset({ + keepZoomLayer: true, + keepAnnotationLayer: true, + keepAnnotationEditorLayer: true, + keepXfaLayer: true, + keepTextLayer: true + }); + } + cancelRendering({ + keepAnnotationLayer = false, + keepAnnotationEditorLayer = false, + keepXfaLayer = false, + keepTextLayer = false, + cancelExtraDelay = 0 + } = {}) { + if (this.paintTask) { + this.paintTask.cancel(cancelExtraDelay); + this.paintTask = null; + } + this.resume = null; + if (this.textLayer && (!keepTextLayer || !this.textLayer.div)) { + this.textLayer.cancel(); + this.textLayer = null; + } + if (this.structTreeLayer && !this.textLayer) { + this.structTreeLayer = null; + } + if (this.annotationLayer && (!keepAnnotationLayer || !this.annotationLayer.div)) { + this.annotationLayer.cancel(); + this.annotationLayer = null; + this._annotationCanvasMap = null; + } + if (this.annotationEditorLayer && (!keepAnnotationEditorLayer || !this.annotationEditorLayer.div)) { + this.annotationEditorLayer.cancel(); + this.annotationEditorLayer = null; + } + if (this.xfaLayer && (!keepXfaLayer || !this.xfaLayer.div)) { + this.xfaLayer.cancel(); + this.xfaLayer = null; + this._textHighlighter?.disable(); + } + } + cssTransform({ + target, + redrawAnnotationLayer = false, + redrawAnnotationEditorLayer = false, + redrawXfaLayer = false, + redrawTextLayer = false, + hideTextLayer = false + }) { + if (target instanceof HTMLCanvasElement) { + if (!target.hasAttribute("zooming")) { + target.setAttribute("zooming", true); + const { + style + } = target; + style.width = style.height = ""; + } + } else { + const div = this.div; + const { + width, + height + } = this.viewport; + target.style.width = target.parentNode.style.width = div.style.width = Math.floor(width) + "px"; + target.style.height = target.parentNode.style.height = div.style.height = Math.floor(height) + "px"; + } + const originalViewport = this.paintedViewportMap.get(target); + if (this.viewport !== originalViewport) { + const relativeRotation = this.viewport.rotation - originalViewport.rotation; + const absRotation = Math.abs(relativeRotation); + let scaleX = 1, + scaleY = 1; + if (absRotation === 90 || absRotation === 270) { + const { + width, + height + } = this.viewport; + scaleX = height / width; + scaleY = width / height; + } + if (absRotation !== 0) { + target.style.transform = `rotate(${relativeRotation}deg) scale(${scaleX}, ${scaleY})`; + } + } + if (redrawAnnotationLayer && this.annotationLayer) { + this.#renderAnnotationLayer(); + } + if (redrawAnnotationEditorLayer && this.annotationEditorLayer) { + this.#renderAnnotationEditorLayer(); + } + if (redrawXfaLayer && this.xfaLayer) { + this.#renderXfaLayer(); + } + if (this.textLayer) { + if (hideTextLayer) { + this.textLayer.hide(); + } else if (redrawTextLayer) { + this.#renderTextLayer(); + } + } + } + get width() { + return this.viewport.width; + } + get height() { + return this.viewport.height; + } + getPagePoint(x, y) { + return this.viewport.convertToPdfPoint(x, y); + } + draw() { + if (this.renderingState !== _ui_utils.RenderingStates.INITIAL) { + console.error("Must be in new state before drawing"); + this.reset(); + } + const { + div, + pdfPage + } = this; + if (!pdfPage) { + this.renderingState = _ui_utils.RenderingStates.FINISHED; + return Promise.reject(new Error("pdfPage is not loaded")); + } + this.renderingState = _ui_utils.RenderingStates.RUNNING; + const canvasWrapper = document.createElement("div"); + canvasWrapper.classList.add("canvasWrapper"); + div.append(canvasWrapper); + if (!this.textLayer && this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE && !pdfPage.isPureXfa) { + this._accessibilityManager ||= new _text_accessibility.TextAccessibilityManager(); + this.textLayer = new _text_layer_builder.TextLayerBuilder({ + highlighter: this._textHighlighter, + accessibilityManager: this._accessibilityManager, + isOffscreenCanvasSupported: this.isOffscreenCanvasSupported + }); + div.append(this.textLayer.div); + } + if (!this.annotationLayer && this.#annotationMode !== _pdfjsLib.AnnotationMode.DISABLE) { + const { + annotationStorage, + downloadManager, + enableScripting, + fieldObjectsPromise, + hasJSActionsPromise, + linkService + } = this.#layerProperties(); + this._annotationCanvasMap ||= new Map(); + this.annotationLayer = new _annotation_layer_builder.AnnotationLayerBuilder({ + pageDiv: div, + pdfPage, + annotationStorage, + imageResourcesPath: this.imageResourcesPath, + renderForms: this.#annotationMode === _pdfjsLib.AnnotationMode.ENABLE_FORMS, + linkService, + downloadManager, + l10n: this.l10n, + enableScripting, + hasJSActionsPromise, + fieldObjectsPromise, + annotationCanvasMap: this._annotationCanvasMap, + accessibilityManager: this._accessibilityManager + }); + } + if (this.xfaLayer?.div) { + div.append(this.xfaLayer.div); + } + let renderContinueCallback = null; + if (this.renderingQueue) { + renderContinueCallback = cont => { + if (!this.renderingQueue.isHighestPriority(this)) { + this.renderingState = _ui_utils.RenderingStates.PAUSED; + this.resume = () => { + this.renderingState = _ui_utils.RenderingStates.RUNNING; + cont(); + }; + return; + } + cont(); + }; + } + const finishPaintTask = async (error = null) => { + if (paintTask === this.paintTask) { + this.paintTask = null; + } + if (error instanceof _pdfjsLib.RenderingCancelledException) { + this._renderError = null; + return; + } + this._renderError = error; + this.renderingState = _ui_utils.RenderingStates.FINISHED; + this._resetZoomLayer(true); + this.#useThumbnailCanvas.regularAnnotations = !paintTask.separateAnnots; + this.eventBus.dispatch("pagerendered", { + source: this, + pageNumber: this.id, + cssTransform: false, + timestamp: performance.now(), + error: this._renderError + }); + if (error) { + throw error; + } + }; + const paintTask = this.renderer === _ui_utils.RendererType.SVG ? this.paintOnSvg(canvasWrapper) : this.paintOnCanvas(canvasWrapper); + paintTask.onRenderContinue = renderContinueCallback; + this.paintTask = paintTask; + const resultPromise = paintTask.promise.then(() => { + return finishPaintTask(null).then(async () => { + this.#renderTextLayer(); + if (this.annotationLayer) { + await this.#renderAnnotationLayer(); + } + if (!this.annotationEditorLayer) { + const { + annotationEditorUIManager + } = this.#layerProperties(); + if (!annotationEditorUIManager) { + return; + } + this.annotationEditorLayer = new _annotation_editor_layer_builder.AnnotationEditorLayerBuilder({ + uiManager: annotationEditorUIManager, + pageDiv: div, + pdfPage, + l10n: this.l10n, + accessibilityManager: this._accessibilityManager + }); + } + this.#renderAnnotationEditorLayer(); + }); + }, function (reason) { + return finishPaintTask(reason); + }); + if (pdfPage.isPureXfa) { + if (!this.xfaLayer) { + const { + annotationStorage, + linkService + } = this.#layerProperties(); + this.xfaLayer = new _xfa_layer_builder.XfaLayerBuilder({ + pageDiv: div, + pdfPage, + annotationStorage, + linkService + }); + } + this.#renderXfaLayer(); + } + div.setAttribute("data-loaded", true); + this.eventBus.dispatch("pagerender", { + source: this, + pageNumber: this.id + }); + return resultPromise; + } + paintOnCanvas(canvasWrapper) { + const renderCapability = (0, _pdfjsLib.createPromiseCapability)(); + const result = { + promise: renderCapability.promise, + onRenderContinue(cont) { + cont(); + }, + cancel(extraDelay = 0) { + renderTask.cancel(extraDelay); + }, + get separateAnnots() { + return renderTask.separateAnnots; + } + }; + const viewport = this.viewport; + const { + width, + height + } = viewport; + const canvas = document.createElement("canvas"); + canvas.setAttribute("role", "presentation"); + canvas.hidden = true; + let isCanvasHidden = true; + const showCanvas = function () { + if (isCanvasHidden) { + canvas.hidden = false; + isCanvasHidden = false; + } + }; + canvasWrapper.append(canvas); + this.canvas = canvas; + const ctx = canvas.getContext("2d", { + alpha: false + }); + const outputScale = this.outputScale = new _ui_utils.OutputScale(); + if (this.useOnlyCssZoom) { + const actualSizeViewport = viewport.clone({ + scale: _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS + }); + outputScale.sx *= actualSizeViewport.width / width; + outputScale.sy *= actualSizeViewport.height / height; + } + if (this.maxCanvasPixels > 0) { + const pixelsInViewport = width * height; + const maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport); + if (outputScale.sx > maxScale || outputScale.sy > maxScale) { + outputScale.sx = maxScale; + outputScale.sy = maxScale; + this.hasRestrictedScaling = true; + } else { + this.hasRestrictedScaling = false; + } + } + const sfx = (0, _ui_utils.approximateFraction)(outputScale.sx); + const sfy = (0, _ui_utils.approximateFraction)(outputScale.sy); + canvas.width = (0, _ui_utils.roundToDivide)(viewport.width * outputScale.sx, sfx[0]); + canvas.height = (0, _ui_utils.roundToDivide)(viewport.height * outputScale.sy, sfy[0]); + const { + style + } = canvas; + style.width = (0, _ui_utils.roundToDivide)(viewport.width, sfx[1]) + "px"; + style.height = (0, _ui_utils.roundToDivide)(viewport.height, sfy[1]) + "px"; + this.paintedViewportMap.set(canvas, viewport); + const transform = outputScale.scaled ? [outputScale.sx, 0, 0, outputScale.sy, 0, 0] : null; + const renderContext = { + canvasContext: ctx, + transform, + viewport, + annotationMode: this.#annotationMode, + optionalContentConfigPromise: this._optionalContentConfigPromise, + annotationCanvasMap: this._annotationCanvasMap, + pageColors: this.pageColors + }; + const renderTask = this.pdfPage.render(renderContext); + renderTask.onContinue = function (cont) { + showCanvas(); + if (result.onRenderContinue) { + result.onRenderContinue(cont); + } else { + cont(); + } + }; + renderTask.promise.then(function () { + showCanvas(); + renderCapability.resolve(); + }, function (error) { + if (!(error instanceof _pdfjsLib.RenderingCancelledException)) { + showCanvas(); + } + renderCapability.reject(error); + }); + return result; + } + paintOnSvg(wrapper) { + let cancelled = false; + const ensureNotCancelled = () => { + if (cancelled) { + throw new _pdfjsLib.RenderingCancelledException(`Rendering cancelled, page ${this.id}`, "svg"); + } + }; + const pdfPage = this.pdfPage; + const actualSizeViewport = this.viewport.clone({ + scale: _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS + }); + const promise = pdfPage.getOperatorList({ + annotationMode: this.#annotationMode + }).then(opList => { + ensureNotCancelled(); + const svgGfx = new _pdfjsLib.SVGGraphics(pdfPage.commonObjs, pdfPage.objs); + return svgGfx.getSVG(opList, actualSizeViewport).then(svg => { + ensureNotCancelled(); + this.svg = svg; + this.paintedViewportMap.set(svg, actualSizeViewport); + svg.style.width = wrapper.style.width; + svg.style.height = wrapper.style.height; + this.renderingState = _ui_utils.RenderingStates.FINISHED; + wrapper.append(svg); + }); + }); + return { + promise, + onRenderContinue(cont) { + cont(); + }, + cancel() { + cancelled = true; + }, + get separateAnnots() { + return false; + } + }; + } + setPageLabel(label) { + this.pageLabel = typeof label === "string" ? label : null; + if (this.pageLabel !== null) { + this.div.setAttribute("data-page-label", this.pageLabel); + } else { + this.div.removeAttribute("data-page-label"); + } + } + get thumbnailCanvas() { + const { + initialOptionalContent, + regularAnnotations + } = this.#useThumbnailCanvas; + return initialOptionalContent && regularAnnotations ? this.canvas : null; + } +} +exports.PDFPageView = PDFPageView; + +/***/ }), +/* 14 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.AnnotationEditorLayerBuilder = void 0; +var _pdfjsLib = __w_pdfjs_require__(4); +var _l10n_utils = __w_pdfjs_require__(5); +class AnnotationEditorLayerBuilder { + #uiManager; + constructor(options) { + this.pageDiv = options.pageDiv; + this.pdfPage = options.pdfPage; + this.accessibilityManager = options.accessibilityManager; + this.l10n = options.l10n || _l10n_utils.NullL10n; + this.annotationEditorLayer = null; + this.div = null; + this._cancelled = false; + this.#uiManager = options.uiManager; + } + async render(viewport, intent = "display") { + if (intent !== "display") { + return; + } + if (this._cancelled) { + return; + } + const clonedViewport = viewport.clone({ + dontFlip: true + }); + if (this.div) { + this.annotationEditorLayer.update({ + viewport: clonedViewport + }); + this.show(); + return; + } + const div = this.div = document.createElement("div"); + div.className = "annotationEditorLayer"; + div.tabIndex = 0; + this.pageDiv.append(div); + this.annotationEditorLayer = new _pdfjsLib.AnnotationEditorLayer({ + uiManager: this.#uiManager, + div, + accessibilityManager: this.accessibilityManager, + pageIndex: this.pdfPage.pageNumber - 1, + l10n: this.l10n, + viewport: clonedViewport + }); + const parameters = { + viewport: clonedViewport, + div, + annotations: null, + intent + }; + this.annotationEditorLayer.render(parameters); + } + cancel() { + this._cancelled = true; + if (!this.div) { + return; + } + this.pageDiv = null; + this.annotationEditorLayer.destroy(); + this.div.remove(); + } + hide() { + if (!this.div) { + return; + } + this.div.hidden = true; + } + show() { + if (!this.div) { + return; + } + this.div.hidden = false; + } +} +exports.AnnotationEditorLayerBuilder = AnnotationEditorLayerBuilder; + +/***/ }), +/* 15 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.compatibilityParams = exports.OptionKind = exports.AppOptions = void 0; +const compatibilityParams = Object.create(null); +exports.compatibilityParams = compatibilityParams; +{ + const userAgent = navigator.userAgent || ""; + const platform = navigator.platform || ""; + const maxTouchPoints = navigator.maxTouchPoints || 1; + const isAndroid = /Android/.test(userAgent); + const isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || platform === "MacIntel" && maxTouchPoints > 1; + (function checkCanvasSizeLimitation() { + if (isIOS || isAndroid) { + compatibilityParams.maxCanvasPixels = 5242880; + } + })(); +} +const OptionKind = { + VIEWER: 0x02, + API: 0x04, + WORKER: 0x08, + PREFERENCE: 0x80 +}; +exports.OptionKind = OptionKind; +const defaultOptions = { + annotationEditorMode: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + annotationMode: { + value: 2, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + cursorToolOnLoad: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + defaultZoomDelay: { + value: 400, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + defaultZoomValue: { + value: "", + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + disableHistory: { + value: false, + kind: OptionKind.VIEWER + }, + disablePageLabels: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enablePermissions: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enablePrintAutoRotate: { + value: true, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enableScripting: { + value: true, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + externalLinkRel: { + value: "noopener noreferrer nofollow", + kind: OptionKind.VIEWER + }, + externalLinkTarget: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + historyUpdateUrl: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + ignoreDestinationZoom: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + imageResourcesPath: { + value: "./images/", + kind: OptionKind.VIEWER + }, + maxCanvasPixels: { + value: 16777216, + kind: OptionKind.VIEWER + }, + forcePageColors: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + pageColorsBackground: { + value: "Canvas", + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + pageColorsForeground: { + value: "CanvasText", + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + pdfBugEnabled: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + printResolution: { + value: 150, + kind: OptionKind.VIEWER + }, + sidebarViewOnLoad: { + value: -1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + scrollModeOnLoad: { + value: -1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + spreadModeOnLoad: { + value: -1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + textLayerMode: { + value: 1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + useOnlyCssZoom: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + viewerCssTheme: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + viewOnLoad: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + cMapPacked: { + value: true, + kind: OptionKind.API + }, + cMapUrl: { + value: "../web/cmaps/", + kind: OptionKind.API + }, + disableAutoFetch: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + disableFontFace: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + disableRange: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + disableStream: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + docBaseUrl: { + value: "", + kind: OptionKind.API + }, + enableXfa: { + value: true, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + fontExtraProperties: { + value: false, + kind: OptionKind.API + }, + isEvalSupported: { + value: true, + kind: OptionKind.API + }, + isOffscreenCanvasSupported: { + value: true, + kind: OptionKind.API + }, + maxImageSize: { + value: -1, + kind: OptionKind.API + }, + pdfBug: { + value: false, + kind: OptionKind.API + }, + standardFontDataUrl: { + value: "../web/standard_fonts/", + kind: OptionKind.API + }, + verbosity: { + value: 1, + kind: OptionKind.API + }, + workerPort: { + value: null, + kind: OptionKind.WORKER + }, + workerSrc: { + value: "../build/pdf.worker.js", + kind: OptionKind.WORKER + } +}; +{ + defaultOptions.defaultUrl = { + value: "compressed.tracemonkey-pldi-09.pdf", + kind: OptionKind.VIEWER + }; + defaultOptions.disablePreferences = { + value: false, + kind: OptionKind.VIEWER + }; + defaultOptions.locale = { + value: navigator.language || "en-US", + kind: OptionKind.VIEWER + }; + defaultOptions.renderer = { + value: "canvas", + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }; + defaultOptions.sandboxBundleSrc = { + value: "../build/pdf.sandbox.js", + kind: OptionKind.VIEWER + }; +} +const userOptions = Object.create(null); +class AppOptions { + constructor() { + throw new Error("Cannot initialize AppOptions."); + } + static get(name) { + const userOption = userOptions[name]; + if (userOption !== undefined) { + return userOption; + } + const defaultOption = defaultOptions[name]; + if (defaultOption !== undefined) { + return compatibilityParams[name] ?? defaultOption.value; + } + return undefined; + } + static getAll(kind = null) { + const options = Object.create(null); + for (const name in defaultOptions) { + const defaultOption = defaultOptions[name]; + if (kind) { + if ((kind & defaultOption.kind) === 0) { + continue; + } + if (kind === OptionKind.PREFERENCE) { + const value = defaultOption.value, + valueType = typeof value; + if (valueType === "boolean" || valueType === "string" || valueType === "number" && Number.isInteger(value)) { + options[name] = value; + continue; + } + throw new Error(`Invalid type for preference: ${name}`); + } + } + const userOption = userOptions[name]; + options[name] = userOption !== undefined ? userOption : compatibilityParams[name] ?? defaultOption.value; + } + return options; + } + static set(name, value) { + userOptions[name] = value; + } + static setAll(options) { + for (const name in options) { + userOptions[name] = options[name]; + } + } + static remove(name) { + delete userOptions[name]; + } + static _hasUserOptions() { + return Object.keys(userOptions).length > 0; + } +} +exports.AppOptions = AppOptions; + +/***/ }), +/* 16 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.StructTreeLayerBuilder = void 0; +const PDF_ROLE_TO_HTML_ROLE = { + Document: null, + DocumentFragment: null, + Part: "group", + Sect: "group", + Div: "group", + Aside: "note", + NonStruct: "none", + P: null, + H: "heading", + Title: null, + FENote: "note", + Sub: "group", + Lbl: null, + Span: null, + Em: null, + Strong: null, + Link: "link", + Annot: "note", + Form: "form", + Ruby: null, + RB: null, + RT: null, + RP: null, + Warichu: null, + WT: null, + WP: null, + L: "list", + LI: "listitem", + LBody: null, + Table: "table", + TR: "row", + TH: "columnheader", + TD: "cell", + THead: "columnheader", + TBody: null, + TFoot: null, + Caption: null, + Figure: "figure", + Formula: null, + Artifact: null +}; +const HEADING_PATTERN = /^H(\d+)$/; +class StructTreeLayerBuilder { + #treeDom = undefined; + get renderingDone() { + return this.#treeDom !== undefined; + } + render(structTree) { + if (this.#treeDom !== undefined) { + return this.#treeDom; + } + const treeDom = this.#walk(structTree); + treeDom?.classList.add("structTree"); + return this.#treeDom = treeDom; + } + #setAttributes(structElement, htmlElement) { + if (structElement.alt !== undefined) { + htmlElement.setAttribute("aria-label", structElement.alt); + } + if (structElement.id !== undefined) { + htmlElement.setAttribute("aria-owns", structElement.id); + } + if (structElement.lang !== undefined) { + htmlElement.setAttribute("lang", structElement.lang); + } + } + #walk(node) { + if (!node) { + return null; + } + const element = document.createElement("span"); + if ("role" in node) { + const { + role + } = node; + const match = role.match(HEADING_PATTERN); + if (match) { + element.setAttribute("role", "heading"); + element.setAttribute("aria-level", match[1]); + } else if (PDF_ROLE_TO_HTML_ROLE[role]) { + element.setAttribute("role", PDF_ROLE_TO_HTML_ROLE[role]); + } + } + this.#setAttributes(node, element); + if (node.children) { + if (node.children.length === 1 && "id" in node.children[0]) { + this.#setAttributes(node.children[0], element); + } else { + for (const kid of node.children) { + element.append(this.#walk(kid)); + } + } + } + return element; + } +} +exports.StructTreeLayerBuilder = StructTreeLayerBuilder; + +/***/ }), +/* 17 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.TextAccessibilityManager = void 0; +var _ui_utils = __w_pdfjs_require__(2); +class TextAccessibilityManager { + #enabled = false; + #textChildren = null; + #textNodes = new Map(); + #waitingElements = new Map(); + setTextMapping(textDivs) { + this.#textChildren = textDivs; + } + static #compareElementPositions(e1, e2) { + const rect1 = e1.getBoundingClientRect(); + const rect2 = e2.getBoundingClientRect(); + if (rect1.width === 0 && rect1.height === 0) { + return +1; + } + if (rect2.width === 0 && rect2.height === 0) { + return -1; + } + const top1 = rect1.y; + const bot1 = rect1.y + rect1.height; + const mid1 = rect1.y + rect1.height / 2; + const top2 = rect2.y; + const bot2 = rect2.y + rect2.height; + const mid2 = rect2.y + rect2.height / 2; + if (mid1 <= top2 && mid2 >= bot1) { + return -1; + } + if (mid2 <= top1 && mid1 >= bot2) { + return +1; + } + const centerX1 = rect1.x + rect1.width / 2; + const centerX2 = rect2.x + rect2.width / 2; + return centerX1 - centerX2; + } + enable() { + if (this.#enabled) { + throw new Error("TextAccessibilityManager is already enabled."); + } + if (!this.#textChildren) { + throw new Error("Text divs and strings have not been set."); + } + this.#enabled = true; + this.#textChildren = this.#textChildren.slice(); + this.#textChildren.sort(TextAccessibilityManager.#compareElementPositions); + if (this.#textNodes.size > 0) { + const textChildren = this.#textChildren; + for (const [id, nodeIndex] of this.#textNodes) { + const element = document.getElementById(id); + if (!element) { + this.#textNodes.delete(id); + continue; + } + this.#addIdToAriaOwns(id, textChildren[nodeIndex]); + } + } + for (const [element, isRemovable] of this.#waitingElements) { + this.addPointerInTextLayer(element, isRemovable); + } + this.#waitingElements.clear(); + } + disable() { + if (!this.#enabled) { + return; + } + this.#waitingElements.clear(); + this.#textChildren = null; + this.#enabled = false; + } + removePointerInTextLayer(element) { + if (!this.#enabled) { + this.#waitingElements.delete(element); + return; + } + const children = this.#textChildren; + if (!children || children.length === 0) { + return; + } + const { + id + } = element; + const nodeIndex = this.#textNodes.get(id); + if (nodeIndex === undefined) { + return; + } + const node = children[nodeIndex]; + this.#textNodes.delete(id); + let owns = node.getAttribute("aria-owns"); + if (owns?.includes(id)) { + owns = owns.split(" ").filter(x => x !== id).join(" "); + if (owns) { + node.setAttribute("aria-owns", owns); + } else { + node.removeAttribute("aria-owns"); + node.setAttribute("role", "presentation"); + } + } + } + #addIdToAriaOwns(id, node) { + const owns = node.getAttribute("aria-owns"); + if (!owns?.includes(id)) { + node.setAttribute("aria-owns", owns ? `${owns} ${id}` : id); + } + node.removeAttribute("role"); + } + addPointerInTextLayer(element, isRemovable) { + const { + id + } = element; + if (!id) { + return; + } + if (!this.#enabled) { + this.#waitingElements.set(element, isRemovable); + return; + } + if (isRemovable) { + this.removePointerInTextLayer(element); + } + const children = this.#textChildren; + if (!children || children.length === 0) { + return; + } + const index = (0, _ui_utils.binarySearchFirstItem)(children, node => TextAccessibilityManager.#compareElementPositions(element, node) < 0); + const nodeIndex = Math.max(0, index - 1); + this.#addIdToAriaOwns(id, children[nodeIndex]); + this.#textNodes.set(id, nodeIndex); + } + moveElementInDOM(container, element, contentElement, isRemovable) { + this.addPointerInTextLayer(contentElement, isRemovable); + if (!container.hasChildNodes()) { + container.append(element); + return; + } + const children = Array.from(container.childNodes).filter(node => node !== element); + if (children.length === 0) { + return; + } + const elementToCompare = contentElement || element; + const index = (0, _ui_utils.binarySearchFirstItem)(children, node => TextAccessibilityManager.#compareElementPositions(elementToCompare, node) < 0); + if (index === 0) { + children[0].before(element); + } else { + children[index - 1].after(element); + } + } +} +exports.TextAccessibilityManager = TextAccessibilityManager; + +/***/ }), +/* 18 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.TextHighlighter = void 0; +class TextHighlighter { + constructor({ + findController, + eventBus, + pageIndex + }) { + this.findController = findController; + this.matches = []; + this.eventBus = eventBus; + this.pageIdx = pageIndex; + this._onUpdateTextLayerMatches = null; + this.textDivs = null; + this.textContentItemsStr = null; + this.enabled = false; + } + setTextMapping(divs, texts) { + this.textDivs = divs; + this.textContentItemsStr = texts; + } + enable() { + if (!this.textDivs || !this.textContentItemsStr) { + throw new Error("Text divs and strings have not been set."); + } + if (this.enabled) { + throw new Error("TextHighlighter is already enabled."); + } + this.enabled = true; + if (!this._onUpdateTextLayerMatches) { + this._onUpdateTextLayerMatches = evt => { + if (evt.pageIndex === this.pageIdx || evt.pageIndex === -1) { + this._updateMatches(); + } + }; + this.eventBus._on("updatetextlayermatches", this._onUpdateTextLayerMatches); + } + this._updateMatches(); + } + disable() { + if (!this.enabled) { + return; + } + this.enabled = false; + if (this._onUpdateTextLayerMatches) { + this.eventBus._off("updatetextlayermatches", this._onUpdateTextLayerMatches); + this._onUpdateTextLayerMatches = null; + } + this._updateMatches(true); + } + _convertMatches(matches, matchesLength) { + if (!matches) { + return []; + } + const { + textContentItemsStr + } = this; + let i = 0, + iIndex = 0; + const end = textContentItemsStr.length - 1; + const result = []; + for (let m = 0, mm = matches.length; m < mm; m++) { + let matchIdx = matches[m]; + while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) { + iIndex += textContentItemsStr[i].length; + i++; + } + if (i === textContentItemsStr.length) { + console.error("Could not find a matching mapping"); + } + const match = { + begin: { + divIdx: i, + offset: matchIdx - iIndex + } + }; + matchIdx += matchesLength[m]; + while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) { + iIndex += textContentItemsStr[i].length; + i++; + } + match.end = { + divIdx: i, + offset: matchIdx - iIndex + }; + result.push(match); + } + return result; + } + _renderMatches(matches) { + if (matches.length === 0) { + return; + } + const { + findController, + pageIdx + } = this; + const { + textContentItemsStr, + textDivs + } = this; + const isSelectedPage = pageIdx === findController.selected.pageIdx; + const selectedMatchIdx = findController.selected.matchIdx; + const highlightAll = findController.state.highlightAll; + let prevEnd = null; + const infinity = { + divIdx: -1, + offset: undefined + }; + function beginText(begin, className) { + const divIdx = begin.divIdx; + textDivs[divIdx].textContent = ""; + return appendTextToDiv(divIdx, 0, begin.offset, className); + } + function appendTextToDiv(divIdx, fromOffset, toOffset, className) { + let div = textDivs[divIdx]; + if (div.nodeType === Node.TEXT_NODE) { + const span = document.createElement("span"); + div.before(span); + span.append(div); + textDivs[divIdx] = span; + div = span; + } + const content = textContentItemsStr[divIdx].substring(fromOffset, toOffset); + const node = document.createTextNode(content); + if (className) { + const span = document.createElement("span"); + span.className = `${className} appended`; + span.append(node); + div.append(span); + return className.includes("selected") ? span.offsetLeft : 0; + } + div.append(node); + return 0; + } + let i0 = selectedMatchIdx, + i1 = i0 + 1; + if (highlightAll) { + i0 = 0; + i1 = matches.length; + } else if (!isSelectedPage) { + return; + } + for (let i = i0; i < i1; i++) { + const match = matches[i]; + const begin = match.begin; + const end = match.end; + const isSelected = isSelectedPage && i === selectedMatchIdx; + const highlightSuffix = isSelected ? " selected" : ""; + let selectedLeft = 0; + if (!prevEnd || begin.divIdx !== prevEnd.divIdx) { + if (prevEnd !== null) { + appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); + } + beginText(begin); + } else { + appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset); + } + if (begin.divIdx === end.divIdx) { + selectedLeft = appendTextToDiv(begin.divIdx, begin.offset, end.offset, "highlight" + highlightSuffix); + } else { + selectedLeft = appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, "highlight begin" + highlightSuffix); + for (let n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) { + textDivs[n0].className = "highlight middle" + highlightSuffix; + } + beginText(end, "highlight end" + highlightSuffix); + } + prevEnd = end; + if (isSelected) { + findController.scrollMatchIntoView({ + element: textDivs[begin.divIdx], + selectedLeft, + pageIndex: pageIdx, + matchIndex: selectedMatchIdx + }); + } + } + if (prevEnd) { + appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); + } + } + _updateMatches(reset = false) { + if (!this.enabled && !reset) { + return; + } + const { + findController, + matches, + pageIdx + } = this; + const { + textContentItemsStr, + textDivs + } = this; + let clearedUntilDivIdx = -1; + for (const match of matches) { + const begin = Math.max(clearedUntilDivIdx, match.begin.divIdx); + for (let n = begin, end = match.end.divIdx; n <= end; n++) { + const div = textDivs[n]; + div.textContent = textContentItemsStr[n]; + div.className = ""; + } + clearedUntilDivIdx = match.end.divIdx + 1; + } + if (!findController?.highlightMatches || reset) { + return; + } + const pageMatches = findController.pageMatches[pageIdx] || null; + const pageMatchesLength = findController.pageMatchesLength[pageIdx] || null; + this.matches = this._convertMatches(pageMatches, pageMatchesLength); + this._renderMatches(this.matches); + } +} +exports.TextHighlighter = TextHighlighter; + +/***/ }), +/* 19 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.TextLayerBuilder = void 0; +var _pdfjsLib = __w_pdfjs_require__(4); +class TextLayerBuilder { + #rotation = 0; + #scale = 0; + #textContentSource = null; + constructor({ + highlighter = null, + accessibilityManager = null, + isOffscreenCanvasSupported = true + }) { + this.textContentItemsStr = []; + this.renderingDone = false; + this.textDivs = []; + this.textDivProperties = new WeakMap(); + this.textLayerRenderTask = null; + this.highlighter = highlighter; + this.accessibilityManager = accessibilityManager; + this.isOffscreenCanvasSupported = isOffscreenCanvasSupported; + this.div = document.createElement("div"); + this.div.className = "textLayer"; + this.hide(); + } + #finishRendering() { + this.renderingDone = true; + const endOfContent = document.createElement("div"); + endOfContent.className = "endOfContent"; + this.div.append(endOfContent); + this.#bindMouse(); + } + get numTextDivs() { + return this.textDivs.length; + } + async render(viewport) { + if (!this.#textContentSource) { + throw new Error('No "textContentSource" parameter specified.'); + } + const scale = viewport.scale * (globalThis.devicePixelRatio || 1); + const { + rotation + } = viewport; + if (this.renderingDone) { + const mustRotate = rotation !== this.#rotation; + const mustRescale = scale !== this.#scale; + if (mustRotate || mustRescale) { + this.hide(); + (0, _pdfjsLib.updateTextLayer)({ + container: this.div, + viewport, + textDivs: this.textDivs, + textDivProperties: this.textDivProperties, + isOffscreenCanvasSupported: this.isOffscreenCanvasSupported, + mustRescale, + mustRotate + }); + this.#scale = scale; + this.#rotation = rotation; + } + this.show(); + return; + } + this.cancel(); + this.highlighter?.setTextMapping(this.textDivs, this.textContentItemsStr); + this.accessibilityManager?.setTextMapping(this.textDivs); + this.textLayerRenderTask = (0, _pdfjsLib.renderTextLayer)({ + textContentSource: this.#textContentSource, + container: this.div, + viewport, + textDivs: this.textDivs, + textDivProperties: this.textDivProperties, + textContentItemsStr: this.textContentItemsStr, + isOffscreenCanvasSupported: this.isOffscreenCanvasSupported + }); + await this.textLayerRenderTask.promise; + this.#finishRendering(); + this.#scale = scale; + this.#rotation = rotation; + this.show(); + this.accessibilityManager?.enable(); + } + hide() { + if (!this.div.hidden) { + this.highlighter?.disable(); + this.div.hidden = true; + } + } + show() { + if (this.div.hidden && this.renderingDone) { + this.div.hidden = false; + this.highlighter?.enable(); + } + } + cancel() { + if (this.textLayerRenderTask) { + this.textLayerRenderTask.cancel(); + this.textLayerRenderTask = null; + } + this.highlighter?.disable(); + this.accessibilityManager?.disable(); + this.textContentItemsStr.length = 0; + this.textDivs.length = 0; + this.textDivProperties = new WeakMap(); + } + setTextContentSource(source) { + this.cancel(); + this.#textContentSource = source; + } + #bindMouse() { + const { + div + } = this; + div.addEventListener("mousedown", evt => { + const end = div.querySelector(".endOfContent"); + if (!end) { + return; + } + let adjustTop = evt.target !== div; + adjustTop &&= getComputedStyle(end).getPropertyValue("-moz-user-select") !== "none"; + if (adjustTop) { + const divBounds = div.getBoundingClientRect(); + const r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height); + end.style.top = (r * 100).toFixed(2) + "%"; + } + end.classList.add("active"); + }); + div.addEventListener("mouseup", () => { + const end = div.querySelector(".endOfContent"); + if (!end) { + return; + } + end.style.top = ""; + end.classList.remove("active"); + }); + } +} +exports.TextLayerBuilder = TextLayerBuilder; + +/***/ }), +/* 20 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.XfaLayerBuilder = void 0; +var _pdfjsLib = __w_pdfjs_require__(4); +class XfaLayerBuilder { + constructor({ + pageDiv, + pdfPage, + annotationStorage = null, + linkService, + xfaHtml = null + }) { + this.pageDiv = pageDiv; + this.pdfPage = pdfPage; + this.annotationStorage = annotationStorage; + this.linkService = linkService; + this.xfaHtml = xfaHtml; + this.div = null; + this._cancelled = false; + } + async render(viewport, intent = "display") { + if (intent === "print") { + const parameters = { + viewport: viewport.clone({ + dontFlip: true + }), + div: this.div, + xfaHtml: this.xfaHtml, + annotationStorage: this.annotationStorage, + linkService: this.linkService, + intent + }; + const div = document.createElement("div"); + this.pageDiv.append(div); + parameters.div = div; + return _pdfjsLib.XfaLayer.render(parameters); + } + const xfaHtml = await this.pdfPage.getXfa(); + if (this._cancelled || !xfaHtml) { + return { + textDivs: [] + }; + } + const parameters = { + viewport: viewport.clone({ + dontFlip: true + }), + div: this.div, + xfaHtml, + annotationStorage: this.annotationStorage, + linkService: this.linkService, + intent + }; + if (this.div) { + return _pdfjsLib.XfaLayer.update(parameters); + } + this.div = document.createElement("div"); + this.pageDiv.append(this.div); + parameters.div = this.div; + return _pdfjsLib.XfaLayer.render(parameters); + } + cancel() { + this._cancelled = true; + } + hide() { + if (!this.div) { + return; + } + this.div.hidden = true; + } +} +exports.XfaLayerBuilder = XfaLayerBuilder; + +/***/ }), +/* 21 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFScriptingManager = void 0; +var _ui_utils = __w_pdfjs_require__(2); +var _pdfjsLib = __w_pdfjs_require__(4); +class PDFScriptingManager { + constructor({ + eventBus, + sandboxBundleSrc = null, + scriptingFactory = null, + docPropertiesLookup = null + }) { + this._pdfDocument = null; + this._pdfViewer = null; + this._closeCapability = null; + this._destroyCapability = null; + this._scripting = null; + this._ready = false; + this._eventBus = eventBus; + this._sandboxBundleSrc = sandboxBundleSrc; + this._scriptingFactory = scriptingFactory; + this._docPropertiesLookup = docPropertiesLookup; + if (!this._scriptingFactory) { + window.addEventListener("updatefromsandbox", event => { + this._eventBus.dispatch("updatefromsandbox", { + source: window, + detail: event.detail + }); + }); + } + } + setViewer(pdfViewer) { + this._pdfViewer = pdfViewer; + } + async setDocument(pdfDocument) { + if (this._pdfDocument) { + await this._destroyScripting(); + } + this._pdfDocument = pdfDocument; + if (!pdfDocument) { + return; + } + const [objects, calculationOrder, docActions] = await Promise.all([pdfDocument.getFieldObjects(), pdfDocument.getCalculationOrderIds(), pdfDocument.getJSActions()]); + if (!objects && !docActions) { + await this._destroyScripting(); + return; + } + if (pdfDocument !== this._pdfDocument) { + return; + } + try { + this._scripting = this._createScripting(); + } catch (error) { + console.error(`PDFScriptingManager.setDocument: "${error?.message}".`); + await this._destroyScripting(); + return; + } + this._internalEvents.set("updatefromsandbox", event => { + if (event?.source !== window) { + return; + } + this._updateFromSandbox(event.detail); + }); + this._internalEvents.set("dispatcheventinsandbox", event => { + this._scripting?.dispatchEventInSandbox(event.detail); + }); + this._internalEvents.set("pagechanging", ({ + pageNumber, + previous + }) => { + if (pageNumber === previous) { + return; + } + this._dispatchPageClose(previous); + this._dispatchPageOpen(pageNumber); + }); + this._internalEvents.set("pagerendered", ({ + pageNumber + }) => { + if (!this._pageOpenPending.has(pageNumber)) { + return; + } + if (pageNumber !== this._pdfViewer.currentPageNumber) { + return; + } + this._dispatchPageOpen(pageNumber); + }); + this._internalEvents.set("pagesdestroy", async event => { + await this._dispatchPageClose(this._pdfViewer.currentPageNumber); + await this._scripting?.dispatchEventInSandbox({ + id: "doc", + name: "WillClose" + }); + this._closeCapability?.resolve(); + }); + for (const [name, listener] of this._internalEvents) { + this._eventBus._on(name, listener); + } + try { + const docProperties = await this._getDocProperties(); + if (pdfDocument !== this._pdfDocument) { + return; + } + await this._scripting.createSandbox({ + objects, + calculationOrder, + appInfo: { + platform: navigator.platform, + language: navigator.language + }, + docInfo: { + ...docProperties, + actions: docActions + } + }); + this._eventBus.dispatch("sandboxcreated", { + source: this + }); + } catch (error) { + console.error(`PDFScriptingManager.setDocument: "${error?.message}".`); + await this._destroyScripting(); + return; + } + await this._scripting?.dispatchEventInSandbox({ + id: "doc", + name: "Open" + }); + await this._dispatchPageOpen(this._pdfViewer.currentPageNumber, true); + Promise.resolve().then(() => { + if (pdfDocument === this._pdfDocument) { + this._ready = true; + } + }); + } + async dispatchWillSave(detail) { + return this._scripting?.dispatchEventInSandbox({ + id: "doc", + name: "WillSave" + }); + } + async dispatchDidSave(detail) { + return this._scripting?.dispatchEventInSandbox({ + id: "doc", + name: "DidSave" + }); + } + async dispatchWillPrint(detail) { + return this._scripting?.dispatchEventInSandbox({ + id: "doc", + name: "WillPrint" + }); + } + async dispatchDidPrint(detail) { + return this._scripting?.dispatchEventInSandbox({ + id: "doc", + name: "DidPrint" + }); + } + get destroyPromise() { + return this._destroyCapability?.promise || null; + } + get ready() { + return this._ready; + } + get _internalEvents() { + return (0, _pdfjsLib.shadow)(this, "_internalEvents", new Map()); + } + get _pageOpenPending() { + return (0, _pdfjsLib.shadow)(this, "_pageOpenPending", new Set()); + } + get _visitedPages() { + return (0, _pdfjsLib.shadow)(this, "_visitedPages", new Map()); + } + async _updateFromSandbox(detail) { + const isInPresentationMode = this._pdfViewer.isInPresentationMode || this._pdfViewer.isChangingPresentationMode; + const { + id, + siblings, + command, + value + } = detail; + if (!id) { + switch (command) { + case "clear": + console.clear(); + break; + case "error": + console.error(value); + break; + case "layout": + { + if (isInPresentationMode) { + return; + } + const modes = (0, _ui_utils.apiPageLayoutToViewerModes)(value); + this._pdfViewer.spreadMode = modes.spreadMode; + break; + } + case "page-num": + this._pdfViewer.currentPageNumber = value + 1; + break; + case "print": + await this._pdfViewer.pagesPromise; + this._eventBus.dispatch("print", { + source: this + }); + break; + case "println": + console.log(value); + break; + case "zoom": + if (isInPresentationMode) { + return; + } + this._pdfViewer.currentScaleValue = value; + break; + case "SaveAs": + this._eventBus.dispatch("download", { + source: this + }); + break; + case "FirstPage": + this._pdfViewer.currentPageNumber = 1; + break; + case "LastPage": + this._pdfViewer.currentPageNumber = this._pdfViewer.pagesCount; + break; + case "NextPage": + this._pdfViewer.nextPage(); + break; + case "PrevPage": + this._pdfViewer.previousPage(); + break; + case "ZoomViewIn": + if (isInPresentationMode) { + return; + } + this._pdfViewer.increaseScale(); + break; + case "ZoomViewOut": + if (isInPresentationMode) { + return; + } + this._pdfViewer.decreaseScale(); + break; + } + return; + } + if (isInPresentationMode) { + if (detail.focus) { + return; + } + } + delete detail.id; + delete detail.siblings; + const ids = siblings ? [id, ...siblings] : [id]; + for (const elementId of ids) { + const element = document.querySelector(`[data-element-id="${elementId}"]`); + if (element) { + element.dispatchEvent(new CustomEvent("updatefromsandbox", { + detail + })); + } else { + this._pdfDocument?.annotationStorage.setValue(elementId, detail); + } + } + } + async _dispatchPageOpen(pageNumber, initialize = false) { + const pdfDocument = this._pdfDocument, + visitedPages = this._visitedPages; + if (initialize) { + this._closeCapability = (0, _pdfjsLib.createPromiseCapability)(); + } + if (!this._closeCapability) { + return; + } + const pageView = this._pdfViewer.getPageView(pageNumber - 1); + if (pageView?.renderingState !== _ui_utils.RenderingStates.FINISHED) { + this._pageOpenPending.add(pageNumber); + return; + } + this._pageOpenPending.delete(pageNumber); + const actionsPromise = (async () => { + const actions = await (!visitedPages.has(pageNumber) ? pageView.pdfPage?.getJSActions() : null); + if (pdfDocument !== this._pdfDocument) { + return; + } + await this._scripting?.dispatchEventInSandbox({ + id: "page", + name: "PageOpen", + pageNumber, + actions + }); + })(); + visitedPages.set(pageNumber, actionsPromise); + } + async _dispatchPageClose(pageNumber) { + const pdfDocument = this._pdfDocument, + visitedPages = this._visitedPages; + if (!this._closeCapability) { + return; + } + if (this._pageOpenPending.has(pageNumber)) { + return; + } + const actionsPromise = visitedPages.get(pageNumber); + if (!actionsPromise) { + return; + } + visitedPages.set(pageNumber, null); + await actionsPromise; + if (pdfDocument !== this._pdfDocument) { + return; + } + await this._scripting?.dispatchEventInSandbox({ + id: "page", + name: "PageClose", + pageNumber + }); + } + async _getDocProperties() { + if (this._docPropertiesLookup) { + return this._docPropertiesLookup(this._pdfDocument); + } + const { + docPropertiesLookup + } = __w_pdfjs_require__(22); + return docPropertiesLookup(this._pdfDocument); + } + _createScripting() { + this._destroyCapability = (0, _pdfjsLib.createPromiseCapability)(); + if (this._scripting) { + throw new Error("_createScripting: Scripting already exists."); + } + if (this._scriptingFactory) { + return this._scriptingFactory.createScripting({ + sandboxBundleSrc: this._sandboxBundleSrc + }); + } + const { + GenericScripting + } = __w_pdfjs_require__(22); + return new GenericScripting(this._sandboxBundleSrc); + } + async _destroyScripting() { + if (!this._scripting) { + this._pdfDocument = null; + this._destroyCapability?.resolve(); + return; + } + if (this._closeCapability) { + await Promise.race([this._closeCapability.promise, new Promise(resolve => { + setTimeout(resolve, 1000); + })]).catch(reason => {}); + this._closeCapability = null; + } + this._pdfDocument = null; + try { + await this._scripting.destroySandbox(); + } catch (ex) {} + for (const [name, listener] of this._internalEvents) { + this._eventBus._off(name, listener); + } + this._internalEvents.clear(); + this._pageOpenPending.clear(); + this._visitedPages.clear(); + this._scripting = null; + this._ready = false; + this._destroyCapability?.resolve(); + } +} +exports.PDFScriptingManager = PDFScriptingManager; + +/***/ }), +/* 22 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.GenericScripting = void 0; +exports.docPropertiesLookup = docPropertiesLookup; +var _pdfjsLib = __w_pdfjs_require__(4); +async function docPropertiesLookup(pdfDocument) { + const url = "", + baseUrl = url.split("#")[0]; + let { + info, + metadata, + contentDispositionFilename, + contentLength + } = await pdfDocument.getMetadata(); + if (!contentLength) { + const { + length + } = await pdfDocument.getDownloadInfo(); + contentLength = length; + } + return { + ...info, + baseURL: baseUrl, + filesize: contentLength, + filename: contentDispositionFilename || (0, _pdfjsLib.getPdfFilenameFromUrl)(url), + metadata: metadata?.getRaw(), + authors: metadata?.get("dc:creator"), + numPages: pdfDocument.numPages, + URL: url + }; +} +class GenericScripting { + constructor(sandboxBundleSrc) { + this._ready = (0, _pdfjsLib.loadScript)(sandboxBundleSrc, true).then(() => { + return window.pdfjsSandbox.QuickJSSandbox(); + }); + } + async createSandbox(data) { + const sandbox = await this._ready; + sandbox.create(data); + } + async dispatchEventInSandbox(event) { + const sandbox = await this._ready; + setTimeout(() => sandbox.dispatchEvent(event), 0); + } + async destroySandbox() { + const sandbox = await this._ready; + sandbox.nukeSandbox(); + } +} +exports.GenericScripting = GenericScripting; + +/***/ }), +/* 23 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFSinglePageViewer = void 0; +var _ui_utils = __w_pdfjs_require__(2); +var _pdf_viewer = __w_pdfjs_require__(24); +class PDFSinglePageViewer extends _pdf_viewer.PDFViewer { + _resetView() { + super._resetView(); + this._scrollMode = _ui_utils.ScrollMode.PAGE; + this._spreadMode = _ui_utils.SpreadMode.NONE; + } + set scrollMode(mode) {} + _updateScrollMode() {} + set spreadMode(mode) {} + _updateSpreadMode() {} +} +exports.PDFSinglePageViewer = PDFSinglePageViewer; + +/***/ }), +/* 24 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PagesCountLimit = exports.PDFViewer = exports.PDFPageViewBuffer = void 0; +var _pdfjsLib = __w_pdfjs_require__(4); +var _ui_utils = __w_pdfjs_require__(2); +var _l10n_utils = __w_pdfjs_require__(5); +var _pdf_page_view = __w_pdfjs_require__(13); +var _pdf_rendering_queue = __w_pdfjs_require__(25); +var _pdf_link_service = __w_pdfjs_require__(1); +const DEFAULT_CACHE_SIZE = 10; +const ENABLE_PERMISSIONS_CLASS = "enablePermissions"; +const PagesCountLimit = { + FORCE_SCROLL_MODE_PAGE: 15000, + FORCE_LAZY_PAGE_INIT: 7500, + PAUSE_EAGER_PAGE_INIT: 250 +}; +exports.PagesCountLimit = PagesCountLimit; +function isValidAnnotationEditorMode(mode) { + return Object.values(_pdfjsLib.AnnotationEditorType).includes(mode) && mode !== _pdfjsLib.AnnotationEditorType.DISABLE; +} +class PDFPageViewBuffer { + #buf = new Set(); + #size = 0; + constructor(size) { + this.#size = size; + } + push(view) { + const buf = this.#buf; + if (buf.has(view)) { + buf.delete(view); + } + buf.add(view); + if (buf.size > this.#size) { + this.#destroyFirstView(); + } + } + resize(newSize, idsToKeep = null) { + this.#size = newSize; + const buf = this.#buf; + if (idsToKeep) { + const ii = buf.size; + let i = 1; + for (const view of buf) { + if (idsToKeep.has(view.id)) { + buf.delete(view); + buf.add(view); + } + if (++i > ii) { + break; + } + } + } + while (buf.size > this.#size) { + this.#destroyFirstView(); + } + } + has(view) { + return this.#buf.has(view); + } + [Symbol.iterator]() { + return this.#buf.keys(); + } + #destroyFirstView() { + const firstView = this.#buf.keys().next().value; + firstView?.destroy(); + this.#buf.delete(firstView); + } +} +exports.PDFPageViewBuffer = PDFPageViewBuffer; +class PDFViewer { + #buffer = null; + #annotationEditorMode = _pdfjsLib.AnnotationEditorType.NONE; + #annotationEditorUIManager = null; + #annotationMode = _pdfjsLib.AnnotationMode.ENABLE_FORMS; + #containerTopLeft = null; + #enablePermissions = false; + #previousContainerHeight = 0; + #resizeObserver = new ResizeObserver(this.#resizeObserverCallback.bind(this)); + #scrollModePageState = null; + #onVisibilityChange = null; + #scaleTimeoutId = null; + constructor(options) { + const viewerVersion = '3.3.122'; + if (_pdfjsLib.version !== viewerVersion) { + throw new Error(`The API version "${_pdfjsLib.version}" does not match the Viewer version "${viewerVersion}".`); + } + this.container = options.container; + this.viewer = options.viewer || options.container.firstElementChild; + if (this.container?.tagName !== "DIV" || this.viewer?.tagName !== "DIV") { + throw new Error("Invalid `container` and/or `viewer` option."); + } + if (this.container.offsetParent && getComputedStyle(this.container).position !== "absolute") { + throw new Error("The `container` must be absolutely positioned."); + } + this.#resizeObserver.observe(this.container); + this.eventBus = options.eventBus; + this.linkService = options.linkService || new _pdf_link_service.SimpleLinkService(); + this.downloadManager = options.downloadManager || null; + this.findController = options.findController || null; + this._scriptingManager = options.scriptingManager || null; + this.removePageBorders = options.removePageBorders || false; + this.textLayerMode = options.textLayerMode ?? _ui_utils.TextLayerMode.ENABLE; + this.#annotationMode = options.annotationMode ?? _pdfjsLib.AnnotationMode.ENABLE_FORMS; + this.#annotationEditorMode = options.annotationEditorMode ?? _pdfjsLib.AnnotationEditorType.NONE; + this.imageResourcesPath = options.imageResourcesPath || ""; + this.enablePrintAutoRotate = options.enablePrintAutoRotate || false; + this.renderer = options.renderer || _ui_utils.RendererType.CANVAS; + this.useOnlyCssZoom = options.useOnlyCssZoom || false; + this.isOffscreenCanvasSupported = options.isOffscreenCanvasSupported ?? true; + this.maxCanvasPixels = options.maxCanvasPixels; + this.l10n = options.l10n || _l10n_utils.NullL10n; + this.#enablePermissions = options.enablePermissions || false; + this.pageColors = options.pageColors || null; + if (this.pageColors && !(CSS.supports("color", this.pageColors.background) && CSS.supports("color", this.pageColors.foreground))) { + if (this.pageColors.background || this.pageColors.foreground) { + console.warn("PDFViewer: Ignoring `pageColors`-option, since the browser doesn't support the values used."); + } + this.pageColors = null; + } + this.defaultRenderingQueue = !options.renderingQueue; + if (this.defaultRenderingQueue) { + this.renderingQueue = new _pdf_rendering_queue.PDFRenderingQueue(); + this.renderingQueue.setViewer(this); + } else { + this.renderingQueue = options.renderingQueue; + } + this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdate.bind(this)); + this.presentationModeState = _ui_utils.PresentationModeState.UNKNOWN; + this._onBeforeDraw = this._onAfterDraw = null; + this._resetView(); + if (this.removePageBorders) { + this.viewer.classList.add("removePageBorders"); + } + this.#updateContainerHeightCss(); + } + get pagesCount() { + return this._pages.length; + } + getPageView(index) { + return this._pages[index]; + } + get pageViewsReady() { + if (!this._pagesCapability.settled) { + return false; + } + return this._pages.every(function (pageView) { + return pageView?.pdfPage; + }); + } + get renderForms() { + return this.#annotationMode === _pdfjsLib.AnnotationMode.ENABLE_FORMS; + } + get enableScripting() { + return !!this._scriptingManager; + } + get currentPageNumber() { + return this._currentPageNumber; + } + set currentPageNumber(val) { + if (!Number.isInteger(val)) { + throw new Error("Invalid page number."); + } + if (!this.pdfDocument) { + return; + } + if (!this._setCurrentPageNumber(val, true)) { + console.error(`currentPageNumber: "${val}" is not a valid page.`); + } + } + _setCurrentPageNumber(val, resetCurrentPageView = false) { + if (this._currentPageNumber === val) { + if (resetCurrentPageView) { + this.#resetCurrentPageView(); + } + return true; + } + if (!(0 < val && val <= this.pagesCount)) { + return false; + } + const previous = this._currentPageNumber; + this._currentPageNumber = val; + this.eventBus.dispatch("pagechanging", { + source: this, + pageNumber: val, + pageLabel: this._pageLabels?.[val - 1] ?? null, + previous + }); + if (resetCurrentPageView) { + this.#resetCurrentPageView(); + } + return true; + } + get currentPageLabel() { + return this._pageLabels?.[this._currentPageNumber - 1] ?? null; + } + set currentPageLabel(val) { + if (!this.pdfDocument) { + return; + } + let page = val | 0; + if (this._pageLabels) { + const i = this._pageLabels.indexOf(val); + if (i >= 0) { + page = i + 1; + } + } + if (!this._setCurrentPageNumber(page, true)) { + console.error(`currentPageLabel: "${val}" is not a valid page.`); + } + } + get currentScale() { + return this._currentScale !== _ui_utils.UNKNOWN_SCALE ? this._currentScale : _ui_utils.DEFAULT_SCALE; + } + set currentScale(val) { + if (isNaN(val)) { + throw new Error("Invalid numeric scale."); + } + if (!this.pdfDocument) { + return; + } + this._setScale(val, { + noScroll: false + }); + } + get currentScaleValue() { + return this._currentScaleValue; + } + set currentScaleValue(val) { + if (!this.pdfDocument) { + return; + } + this._setScale(val, { + noScroll: false + }); + } + get pagesRotation() { + return this._pagesRotation; + } + set pagesRotation(rotation) { + if (!(0, _ui_utils.isValidRotation)(rotation)) { + throw new Error("Invalid pages rotation angle."); + } + if (!this.pdfDocument) { + return; + } + rotation %= 360; + if (rotation < 0) { + rotation += 360; + } + if (this._pagesRotation === rotation) { + return; + } + this._pagesRotation = rotation; + const pageNumber = this._currentPageNumber; + this.refresh(true, { + rotation + }); + if (this._currentScaleValue) { + this._setScale(this._currentScaleValue, { + noScroll: true + }); + } + this.eventBus.dispatch("rotationchanging", { + source: this, + pagesRotation: rotation, + pageNumber + }); + if (this.defaultRenderingQueue) { + this.update(); + } + } + get firstPagePromise() { + return this.pdfDocument ? this._firstPageCapability.promise : null; + } + get onePageRendered() { + return this.pdfDocument ? this._onePageRenderedCapability.promise : null; + } + get pagesPromise() { + return this.pdfDocument ? this._pagesCapability.promise : null; + } + #layerProperties() { + const self = this; + return { + get annotationEditorUIManager() { + return self.#annotationEditorUIManager; + }, + get annotationStorage() { + return self.pdfDocument?.annotationStorage; + }, + get downloadManager() { + return self.downloadManager; + }, + get enableScripting() { + return !!self._scriptingManager; + }, + get fieldObjectsPromise() { + return self.pdfDocument?.getFieldObjects(); + }, + get findController() { + return self.findController; + }, + get hasJSActionsPromise() { + return self.pdfDocument?.hasJSActions(); + }, + get linkService() { + return self.linkService; + } + }; + } + #initializePermissions(permissions) { + const params = { + annotationEditorMode: this.#annotationEditorMode, + annotationMode: this.#annotationMode, + textLayerMode: this.textLayerMode + }; + if (!permissions) { + return params; + } + if (!permissions.includes(_pdfjsLib.PermissionFlag.COPY)) { + this.viewer.classList.add(ENABLE_PERMISSIONS_CLASS); + } + if (!permissions.includes(_pdfjsLib.PermissionFlag.MODIFY_CONTENTS)) { + params.annotationEditorMode = _pdfjsLib.AnnotationEditorType.DISABLE; + } + if (!permissions.includes(_pdfjsLib.PermissionFlag.MODIFY_ANNOTATIONS) && !permissions.includes(_pdfjsLib.PermissionFlag.FILL_INTERACTIVE_FORMS) && this.#annotationMode === _pdfjsLib.AnnotationMode.ENABLE_FORMS) { + params.annotationMode = _pdfjsLib.AnnotationMode.ENABLE; + } + return params; + } + #onePageRenderedOrForceFetch() { + if (document.visibilityState === "hidden" || !this.container.offsetParent || this._getVisiblePages().views.length === 0) { + return Promise.resolve(); + } + const visibilityChangePromise = new Promise(resolve => { + this.#onVisibilityChange = () => { + if (document.visibilityState !== "hidden") { + return; + } + resolve(); + document.removeEventListener("visibilitychange", this.#onVisibilityChange); + this.#onVisibilityChange = null; + }; + document.addEventListener("visibilitychange", this.#onVisibilityChange); + }); + return Promise.race([this._onePageRenderedCapability.promise, visibilityChangePromise]); + } + setDocument(pdfDocument) { + if (this.pdfDocument) { + this.eventBus.dispatch("pagesdestroy", { + source: this + }); + this._cancelRendering(); + this._resetView(); + this.findController?.setDocument(null); + this._scriptingManager?.setDocument(null); + if (this.#annotationEditorUIManager) { + this.#annotationEditorUIManager.destroy(); + this.#annotationEditorUIManager = null; + } + } + this.pdfDocument = pdfDocument; + if (!pdfDocument) { + return; + } + const pagesCount = pdfDocument.numPages; + const firstPagePromise = pdfDocument.getPage(1); + const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig(); + const permissionsPromise = this.#enablePermissions ? pdfDocument.getPermissions() : Promise.resolve(); + if (pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE) { + console.warn("Forcing PAGE-scrolling for performance reasons, given the length of the document."); + const mode = this._scrollMode = _ui_utils.ScrollMode.PAGE; + this.eventBus.dispatch("scrollmodechanged", { + source: this, + mode + }); + } + this._pagesCapability.promise.then(() => { + this.eventBus.dispatch("pagesloaded", { + source: this, + pagesCount + }); + }, () => {}); + this._onBeforeDraw = evt => { + const pageView = this._pages[evt.pageNumber - 1]; + if (!pageView) { + return; + } + this.#buffer.push(pageView); + }; + this.eventBus._on("pagerender", this._onBeforeDraw); + this._onAfterDraw = evt => { + if (evt.cssTransform || this._onePageRenderedCapability.settled) { + return; + } + this._onePageRenderedCapability.resolve({ + timestamp: evt.timestamp + }); + this.eventBus._off("pagerendered", this._onAfterDraw); + this._onAfterDraw = null; + if (this.#onVisibilityChange) { + document.removeEventListener("visibilitychange", this.#onVisibilityChange); + this.#onVisibilityChange = null; + } + }; + this.eventBus._on("pagerendered", this._onAfterDraw); + Promise.all([firstPagePromise, permissionsPromise]).then(([firstPdfPage, permissions]) => { + if (pdfDocument !== this.pdfDocument) { + return; + } + this._firstPageCapability.resolve(firstPdfPage); + this._optionalContentConfigPromise = optionalContentConfigPromise; + const { + annotationEditorMode, + annotationMode, + textLayerMode + } = this.#initializePermissions(permissions); + if (annotationEditorMode !== _pdfjsLib.AnnotationEditorType.DISABLE) { + const mode = annotationEditorMode; + if (pdfDocument.isPureXfa) { + console.warn("Warning: XFA-editing is not implemented."); + } else if (isValidAnnotationEditorMode(mode)) { + this.#annotationEditorUIManager = new _pdfjsLib.AnnotationEditorUIManager(this.container, this.eventBus, pdfDocument?.annotationStorage); + if (mode !== _pdfjsLib.AnnotationEditorType.NONE) { + this.#annotationEditorUIManager.updateMode(mode); + } + } else { + console.error(`Invalid AnnotationEditor mode: ${mode}`); + } + } + const layerProperties = this.#layerProperties.bind(this); + const viewerElement = this._scrollMode === _ui_utils.ScrollMode.PAGE ? null : this.viewer; + const scale = this.currentScale; + const viewport = firstPdfPage.getViewport({ + scale: scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS + }); + this.viewer.style.setProperty("--scale-factor", viewport.scale); + for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) { + const pageView = new _pdf_page_view.PDFPageView({ + container: viewerElement, + eventBus: this.eventBus, + id: pageNum, + scale, + defaultViewport: viewport.clone(), + optionalContentConfigPromise, + renderingQueue: this.renderingQueue, + textLayerMode, + annotationMode, + imageResourcesPath: this.imageResourcesPath, + renderer: this.renderer, + useOnlyCssZoom: this.useOnlyCssZoom, + isOffscreenCanvasSupported: this.isOffscreenCanvasSupported, + maxCanvasPixels: this.maxCanvasPixels, + pageColors: this.pageColors, + l10n: this.l10n, + layerProperties + }); + this._pages.push(pageView); + } + const firstPageView = this._pages[0]; + if (firstPageView) { + firstPageView.setPdfPage(firstPdfPage); + this.linkService.cachePageRef(1, firstPdfPage.ref); + } + if (this._scrollMode === _ui_utils.ScrollMode.PAGE) { + this.#ensurePageViewVisible(); + } else if (this._spreadMode !== _ui_utils.SpreadMode.NONE) { + this._updateSpreadMode(); + } + this.#onePageRenderedOrForceFetch().then(async () => { + this.findController?.setDocument(pdfDocument); + this._scriptingManager?.setDocument(pdfDocument); + if (this.#annotationEditorUIManager) { + this.eventBus.dispatch("annotationeditormodechanged", { + source: this, + mode: this.#annotationEditorMode + }); + } + if (pdfDocument.loadingParams.disableAutoFetch || pagesCount > PagesCountLimit.FORCE_LAZY_PAGE_INIT) { + this._pagesCapability.resolve(); + return; + } + let getPagesLeft = pagesCount - 1; + if (getPagesLeft <= 0) { + this._pagesCapability.resolve(); + return; + } + for (let pageNum = 2; pageNum <= pagesCount; ++pageNum) { + const promise = pdfDocument.getPage(pageNum).then(pdfPage => { + const pageView = this._pages[pageNum - 1]; + if (!pageView.pdfPage) { + pageView.setPdfPage(pdfPage); + } + this.linkService.cachePageRef(pageNum, pdfPage.ref); + if (--getPagesLeft === 0) { + this._pagesCapability.resolve(); + } + }, reason => { + console.error(`Unable to get page ${pageNum} to initialize viewer`, reason); + if (--getPagesLeft === 0) { + this._pagesCapability.resolve(); + } + }); + if (pageNum % PagesCountLimit.PAUSE_EAGER_PAGE_INIT === 0) { + await promise; + } + } + }); + this.eventBus.dispatch("pagesinit", { + source: this + }); + pdfDocument.getMetadata().then(({ + info + }) => { + if (pdfDocument !== this.pdfDocument) { + return; + } + if (info.Language) { + this.viewer.lang = info.Language; + } + }); + if (this.defaultRenderingQueue) { + this.update(); + } + }).catch(reason => { + console.error("Unable to initialize viewer", reason); + this._pagesCapability.reject(reason); + }); + } + setPageLabels(labels) { + if (!this.pdfDocument) { + return; + } + if (!labels) { + this._pageLabels = null; + } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { + this._pageLabels = null; + console.error(`setPageLabels: Invalid page labels.`); + } else { + this._pageLabels = labels; + } + for (let i = 0, ii = this._pages.length; i < ii; i++) { + this._pages[i].setPageLabel(this._pageLabels?.[i] ?? null); + } + } + _resetView() { + this._pages = []; + this._currentPageNumber = 1; + this._currentScale = _ui_utils.UNKNOWN_SCALE; + this._currentScaleValue = null; + this._pageLabels = null; + this.#buffer = new PDFPageViewBuffer(DEFAULT_CACHE_SIZE); + this._location = null; + this._pagesRotation = 0; + this._optionalContentConfigPromise = null; + this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._onePageRenderedCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._pagesCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._scrollMode = _ui_utils.ScrollMode.VERTICAL; + this._previousScrollMode = _ui_utils.ScrollMode.UNKNOWN; + this._spreadMode = _ui_utils.SpreadMode.NONE; + this.#scrollModePageState = { + previousPageNumber: 1, + scrollDown: true, + pages: [] + }; + if (this._onBeforeDraw) { + this.eventBus._off("pagerender", this._onBeforeDraw); + this._onBeforeDraw = null; + } + if (this._onAfterDraw) { + this.eventBus._off("pagerendered", this._onAfterDraw); + this._onAfterDraw = null; + } + if (this.#onVisibilityChange) { + document.removeEventListener("visibilitychange", this.#onVisibilityChange); + this.#onVisibilityChange = null; + } + this.viewer.textContent = ""; + this._updateScrollMode(); + this.viewer.removeAttribute("lang"); + this.viewer.classList.remove(ENABLE_PERMISSIONS_CLASS); + } + #ensurePageViewVisible() { + if (this._scrollMode !== _ui_utils.ScrollMode.PAGE) { + throw new Error("#ensurePageViewVisible: Invalid scrollMode value."); + } + const pageNumber = this._currentPageNumber, + state = this.#scrollModePageState, + viewer = this.viewer; + viewer.textContent = ""; + state.pages.length = 0; + if (this._spreadMode === _ui_utils.SpreadMode.NONE && !this.isInPresentationMode) { + const pageView = this._pages[pageNumber - 1]; + viewer.append(pageView.div); + state.pages.push(pageView); + } else { + const pageIndexSet = new Set(), + parity = this._spreadMode - 1; + if (parity === -1) { + pageIndexSet.add(pageNumber - 1); + } else if (pageNumber % 2 !== parity) { + pageIndexSet.add(pageNumber - 1); + pageIndexSet.add(pageNumber); + } else { + pageIndexSet.add(pageNumber - 2); + pageIndexSet.add(pageNumber - 1); + } + const spread = document.createElement("div"); + spread.className = "spread"; + if (this.isInPresentationMode) { + const dummyPage = document.createElement("div"); + dummyPage.className = "dummyPage"; + spread.append(dummyPage); + } + for (const i of pageIndexSet) { + const pageView = this._pages[i]; + if (!pageView) { + continue; + } + spread.append(pageView.div); + state.pages.push(pageView); + } + viewer.append(spread); + } + state.scrollDown = pageNumber >= state.previousPageNumber; + state.previousPageNumber = pageNumber; + } + _scrollUpdate() { + if (this.pagesCount === 0) { + return; + } + this.update(); + } + #scrollIntoView(pageView, pageSpot = null) { + const { + div, + id + } = pageView; + if (this._currentPageNumber !== id) { + this._setCurrentPageNumber(id); + } + if (this._scrollMode === _ui_utils.ScrollMode.PAGE) { + this.#ensurePageViewVisible(); + this.update(); + } + if (!pageSpot && !this.isInPresentationMode) { + const left = div.offsetLeft + div.clientLeft, + right = left + div.clientWidth; + const { + scrollLeft, + clientWidth + } = this.container; + if (this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL || left < scrollLeft || right > scrollLeft + clientWidth) { + pageSpot = { + left: 0, + top: 0 + }; + } + } + (0, _ui_utils.scrollIntoView)(div, pageSpot); + if (!this._currentScaleValue && this._location) { + this._location = null; + } + } + #isSameScale(newScale) { + return newScale === this._currentScale || Math.abs(newScale - this._currentScale) < 1e-15; + } + _setScaleUpdatePages(newScale, newValue, { + noScroll = false, + preset = false, + drawingDelay = -1 + }) { + this._currentScaleValue = newValue.toString(); + if (this.#isSameScale(newScale)) { + if (preset) { + this.eventBus.dispatch("scalechanging", { + source: this, + scale: newScale, + presetValue: newValue + }); + } + return; + } + this.viewer.style.setProperty("--scale-factor", newScale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS); + const postponeDrawing = drawingDelay >= 0 && drawingDelay < 1000; + this.refresh(true, { + scale: newScale, + drawingDelay: postponeDrawing ? drawingDelay : -1 + }); + if (postponeDrawing) { + this.#scaleTimeoutId = setTimeout(() => { + this.#scaleTimeoutId = null; + this.refresh(); + }, drawingDelay); + } + this._currentScale = newScale; + if (!noScroll) { + let page = this._currentPageNumber, + dest; + if (this._location && !(this.isInPresentationMode || this.isChangingPresentationMode)) { + page = this._location.pageNumber; + dest = [null, { + name: "XYZ" + }, this._location.left, this._location.top, null]; + } + this.scrollPageIntoView({ + pageNumber: page, + destArray: dest, + allowNegativeOffset: true + }); + } + this.eventBus.dispatch("scalechanging", { + source: this, + scale: newScale, + presetValue: preset ? newValue : undefined + }); + if (this.defaultRenderingQueue) { + this.update(); + } + } + get _pageWidthScaleFactor() { + if (this._spreadMode !== _ui_utils.SpreadMode.NONE && this._scrollMode !== _ui_utils.ScrollMode.HORIZONTAL) { + return 2; + } + return 1; + } + _setScale(value, options) { + let scale = parseFloat(value); + if (scale > 0) { + options.preset = false; + this._setScaleUpdatePages(scale, value, options); + } else { + const currentPage = this._pages[this._currentPageNumber - 1]; + if (!currentPage) { + return; + } + let hPadding = _ui_utils.SCROLLBAR_PADDING, + vPadding = _ui_utils.VERTICAL_PADDING; + if (this.isInPresentationMode) { + hPadding = vPadding = 4; + if (this._spreadMode !== _ui_utils.SpreadMode.NONE) { + hPadding *= 2; + } + } else if (this.removePageBorders) { + hPadding = vPadding = 0; + } else if (this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL) { + [hPadding, vPadding] = [vPadding, hPadding]; + } + const pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale / this._pageWidthScaleFactor; + const pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale; + switch (value) { + case "page-actual": + scale = 1; + break; + case "page-width": + scale = pageWidthScale; + break; + case "page-height": + scale = pageHeightScale; + break; + case "page-fit": + scale = Math.min(pageWidthScale, pageHeightScale); + break; + case "auto": + const horizontalScale = (0, _ui_utils.isPortraitOrientation)(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale); + scale = Math.min(_ui_utils.MAX_AUTO_SCALE, horizontalScale); + break; + default: + console.error(`_setScale: "${value}" is an unknown zoom value.`); + return; + } + options.preset = true; + this._setScaleUpdatePages(scale, value, options); + } + } + #resetCurrentPageView() { + const pageView = this._pages[this._currentPageNumber - 1]; + if (this.isInPresentationMode) { + this._setScale(this._currentScaleValue, { + noScroll: true + }); + } + this.#scrollIntoView(pageView); + } + pageLabelToPageNumber(label) { + if (!this._pageLabels) { + return null; + } + const i = this._pageLabels.indexOf(label); + if (i < 0) { + return null; + } + return i + 1; + } + scrollPageIntoView({ + pageNumber, + destArray = null, + allowNegativeOffset = false, + ignoreDestinationZoom = false + }) { + if (!this.pdfDocument) { + return; + } + const pageView = Number.isInteger(pageNumber) && this._pages[pageNumber - 1]; + if (!pageView) { + console.error(`scrollPageIntoView: "${pageNumber}" is not a valid pageNumber parameter.`); + return; + } + if (this.isInPresentationMode || !destArray) { + this._setCurrentPageNumber(pageNumber, true); + return; + } + let x = 0, + y = 0; + let width = 0, + height = 0, + widthScale, + heightScale; + const changeOrientation = pageView.rotation % 180 !== 0; + const pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS; + const pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS; + let scale = 0; + switch (destArray[1].name) { + case "XYZ": + x = destArray[2]; + y = destArray[3]; + scale = destArray[4]; + x = x !== null ? x : 0; + y = y !== null ? y : pageHeight; + break; + case "Fit": + case "FitB": + scale = "page-fit"; + break; + case "FitH": + case "FitBH": + y = destArray[2]; + scale = "page-width"; + if (y === null && this._location) { + x = this._location.left; + y = this._location.top; + } else if (typeof y !== "number" || y < 0) { + y = pageHeight; + } + break; + case "FitV": + case "FitBV": + x = destArray[2]; + width = pageWidth; + height = pageHeight; + scale = "page-height"; + break; + case "FitR": + x = destArray[2]; + y = destArray[3]; + width = destArray[4] - x; + height = destArray[5] - y; + const hPadding = this.removePageBorders ? 0 : _ui_utils.SCROLLBAR_PADDING; + const vPadding = this.removePageBorders ? 0 : _ui_utils.VERTICAL_PADDING; + widthScale = (this.container.clientWidth - hPadding) / width / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS; + heightScale = (this.container.clientHeight - vPadding) / height / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS; + scale = Math.min(Math.abs(widthScale), Math.abs(heightScale)); + break; + default: + console.error(`scrollPageIntoView: "${destArray[1].name}" is not a valid destination type.`); + return; + } + if (!ignoreDestinationZoom) { + if (scale && scale !== this._currentScale) { + this.currentScaleValue = scale; + } else if (this._currentScale === _ui_utils.UNKNOWN_SCALE) { + this.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; + } + } + if (scale === "page-fit" && !destArray[4]) { + this.#scrollIntoView(pageView); + return; + } + const boundingRect = [pageView.viewport.convertToViewportPoint(x, y), pageView.viewport.convertToViewportPoint(x + width, y + height)]; + let left = Math.min(boundingRect[0][0], boundingRect[1][0]); + let top = Math.min(boundingRect[0][1], boundingRect[1][1]); + if (!allowNegativeOffset) { + left = Math.max(left, 0); + top = Math.max(top, 0); + } + this.#scrollIntoView(pageView, { + left, + top + }); + } + _updateLocation(firstPage) { + const currentScale = this._currentScale; + const currentScaleValue = this._currentScaleValue; + const normalizedScaleValue = parseFloat(currentScaleValue) === currentScale ? Math.round(currentScale * 10000) / 100 : currentScaleValue; + const pageNumber = firstPage.id; + const currentPageView = this._pages[pageNumber - 1]; + const container = this.container; + const topLeft = currentPageView.getPagePoint(container.scrollLeft - firstPage.x, container.scrollTop - firstPage.y); + const intLeft = Math.round(topLeft[0]); + const intTop = Math.round(topLeft[1]); + let pdfOpenParams = `#page=${pageNumber}`; + if (!this.isInPresentationMode) { + pdfOpenParams += `&zoom=${normalizedScaleValue},${intLeft},${intTop}`; + } + this._location = { + pageNumber, + scale: normalizedScaleValue, + top: intTop, + left: intLeft, + rotation: this._pagesRotation, + pdfOpenParams + }; + } + update() { + const visible = this._getVisiblePages(); + const visiblePages = visible.views, + numVisiblePages = visiblePages.length; + if (numVisiblePages === 0) { + return; + } + const newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1); + this.#buffer.resize(newCacheSize, visible.ids); + this.renderingQueue.renderHighestPriority(visible); + const isSimpleLayout = this._spreadMode === _ui_utils.SpreadMode.NONE && (this._scrollMode === _ui_utils.ScrollMode.PAGE || this._scrollMode === _ui_utils.ScrollMode.VERTICAL); + const currentId = this._currentPageNumber; + let stillFullyVisible = false; + for (const page of visiblePages) { + if (page.percent < 100) { + break; + } + if (page.id === currentId && isSimpleLayout) { + stillFullyVisible = true; + break; + } + } + this._setCurrentPageNumber(stillFullyVisible ? currentId : visiblePages[0].id); + this._updateLocation(visible.first); + this.eventBus.dispatch("updateviewarea", { + source: this, + location: this._location + }); + } + containsElement(element) { + return this.container.contains(element); + } + focus() { + this.container.focus(); + } + get _isContainerRtl() { + return getComputedStyle(this.container).direction === "rtl"; + } + get isInPresentationMode() { + return this.presentationModeState === _ui_utils.PresentationModeState.FULLSCREEN; + } + get isChangingPresentationMode() { + return this.presentationModeState === _ui_utils.PresentationModeState.CHANGING; + } + get isHorizontalScrollbarEnabled() { + return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth; + } + get isVerticalScrollbarEnabled() { + return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight; + } + _getVisiblePages() { + const views = this._scrollMode === _ui_utils.ScrollMode.PAGE ? this.#scrollModePageState.pages : this._pages, + horizontal = this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL, + rtl = horizontal && this._isContainerRtl; + return (0, _ui_utils.getVisibleElements)({ + scrollEl: this.container, + views, + sortByVisibility: true, + horizontal, + rtl + }); + } + isPageVisible(pageNumber) { + if (!this.pdfDocument) { + return false; + } + if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) { + console.error(`isPageVisible: "${pageNumber}" is not a valid page.`); + return false; + } + return this._getVisiblePages().ids.has(pageNumber); + } + isPageCached(pageNumber) { + if (!this.pdfDocument) { + return false; + } + if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) { + console.error(`isPageCached: "${pageNumber}" is not a valid page.`); + return false; + } + const pageView = this._pages[pageNumber - 1]; + return this.#buffer.has(pageView); + } + cleanup() { + for (const pageView of this._pages) { + if (pageView.renderingState !== _ui_utils.RenderingStates.FINISHED) { + pageView.reset(); + } + } + } + _cancelRendering() { + for (const pageView of this._pages) { + pageView.cancelRendering(); + } + } + async #ensurePdfPageLoaded(pageView) { + if (pageView.pdfPage) { + return pageView.pdfPage; + } + try { + const pdfPage = await this.pdfDocument.getPage(pageView.id); + if (!pageView.pdfPage) { + pageView.setPdfPage(pdfPage); + } + if (!this.linkService._cachedPageNumber?.(pdfPage.ref)) { + this.linkService.cachePageRef(pageView.id, pdfPage.ref); + } + return pdfPage; + } catch (reason) { + console.error("Unable to get page for page view", reason); + return null; + } + } + #getScrollAhead(visible) { + if (visible.first?.id === 1) { + return true; + } else if (visible.last?.id === this.pagesCount) { + return false; + } + switch (this._scrollMode) { + case _ui_utils.ScrollMode.PAGE: + return this.#scrollModePageState.scrollDown; + case _ui_utils.ScrollMode.HORIZONTAL: + return this.scroll.right; + } + return this.scroll.down; + } + forceRendering(currentlyVisiblePages) { + const visiblePages = currentlyVisiblePages || this._getVisiblePages(); + const scrollAhead = this.#getScrollAhead(visiblePages); + const preRenderExtra = this._spreadMode !== _ui_utils.SpreadMode.NONE && this._scrollMode !== _ui_utils.ScrollMode.HORIZONTAL; + const pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead, preRenderExtra); + if (pageView) { + this.#ensurePdfPageLoaded(pageView).then(() => { + this.renderingQueue.renderView(pageView); + }); + return true; + } + return false; + } + get hasEqualPageSizes() { + const firstPageView = this._pages[0]; + for (let i = 1, ii = this._pages.length; i < ii; ++i) { + const pageView = this._pages[i]; + if (pageView.width !== firstPageView.width || pageView.height !== firstPageView.height) { + return false; + } + } + return true; + } + getPagesOverview() { + return this._pages.map(pageView => { + const viewport = pageView.pdfPage.getViewport({ + scale: 1 + }); + if (!this.enablePrintAutoRotate || (0, _ui_utils.isPortraitOrientation)(viewport)) { + return { + width: viewport.width, + height: viewport.height, + rotation: viewport.rotation + }; + } + return { + width: viewport.height, + height: viewport.width, + rotation: (viewport.rotation - 90) % 360 + }; + }); + } + get optionalContentConfigPromise() { + if (!this.pdfDocument) { + return Promise.resolve(null); + } + if (!this._optionalContentConfigPromise) { + console.error("optionalContentConfigPromise: Not initialized yet."); + return this.pdfDocument.getOptionalContentConfig(); + } + return this._optionalContentConfigPromise; + } + set optionalContentConfigPromise(promise) { + if (!(promise instanceof Promise)) { + throw new Error(`Invalid optionalContentConfigPromise: ${promise}`); + } + if (!this.pdfDocument) { + return; + } + if (!this._optionalContentConfigPromise) { + return; + } + this._optionalContentConfigPromise = promise; + this.refresh(false, { + optionalContentConfigPromise: promise + }); + this.eventBus.dispatch("optionalcontentconfigchanged", { + source: this, + promise + }); + } + get scrollMode() { + return this._scrollMode; + } + set scrollMode(mode) { + if (this._scrollMode === mode) { + return; + } + if (!(0, _ui_utils.isValidScrollMode)(mode)) { + throw new Error(`Invalid scroll mode: ${mode}`); + } + if (this.pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE) { + return; + } + this._previousScrollMode = this._scrollMode; + this._scrollMode = mode; + this.eventBus.dispatch("scrollmodechanged", { + source: this, + mode + }); + this._updateScrollMode(this._currentPageNumber); + } + _updateScrollMode(pageNumber = null) { + const scrollMode = this._scrollMode, + viewer = this.viewer; + viewer.classList.toggle("scrollHorizontal", scrollMode === _ui_utils.ScrollMode.HORIZONTAL); + viewer.classList.toggle("scrollWrapped", scrollMode === _ui_utils.ScrollMode.WRAPPED); + if (!this.pdfDocument || !pageNumber) { + return; + } + if (scrollMode === _ui_utils.ScrollMode.PAGE) { + this.#ensurePageViewVisible(); + } else if (this._previousScrollMode === _ui_utils.ScrollMode.PAGE) { + this._updateSpreadMode(); + } + if (this._currentScaleValue && isNaN(this._currentScaleValue)) { + this._setScale(this._currentScaleValue, { + noScroll: true + }); + } + this._setCurrentPageNumber(pageNumber, true); + this.update(); + } + get spreadMode() { + return this._spreadMode; + } + set spreadMode(mode) { + if (this._spreadMode === mode) { + return; + } + if (!(0, _ui_utils.isValidSpreadMode)(mode)) { + throw new Error(`Invalid spread mode: ${mode}`); + } + this._spreadMode = mode; + this.eventBus.dispatch("spreadmodechanged", { + source: this, + mode + }); + this._updateSpreadMode(this._currentPageNumber); + } + _updateSpreadMode(pageNumber = null) { + if (!this.pdfDocument) { + return; + } + const viewer = this.viewer, + pages = this._pages; + if (this._scrollMode === _ui_utils.ScrollMode.PAGE) { + this.#ensurePageViewVisible(); + } else { + viewer.textContent = ""; + if (this._spreadMode === _ui_utils.SpreadMode.NONE) { + for (const pageView of this._pages) { + viewer.append(pageView.div); + } + } else { + const parity = this._spreadMode - 1; + let spread = null; + for (let i = 0, ii = pages.length; i < ii; ++i) { + if (spread === null) { + spread = document.createElement("div"); + spread.className = "spread"; + viewer.append(spread); + } else if (i % 2 === parity) { + spread = spread.cloneNode(false); + viewer.append(spread); + } + spread.append(pages[i].div); + } + } + } + if (!pageNumber) { + return; + } + if (this._currentScaleValue && isNaN(this._currentScaleValue)) { + this._setScale(this._currentScaleValue, { + noScroll: true + }); + } + this._setCurrentPageNumber(pageNumber, true); + this.update(); + } + _getPageAdvance(currentPageNumber, previous = false) { + switch (this._scrollMode) { + case _ui_utils.ScrollMode.WRAPPED: + { + const { + views + } = this._getVisiblePages(), + pageLayout = new Map(); + for (const { + id, + y, + percent, + widthPercent + } of views) { + if (percent === 0 || widthPercent < 100) { + continue; + } + let yArray = pageLayout.get(y); + if (!yArray) { + pageLayout.set(y, yArray ||= []); + } + yArray.push(id); + } + for (const yArray of pageLayout.values()) { + const currentIndex = yArray.indexOf(currentPageNumber); + if (currentIndex === -1) { + continue; + } + const numPages = yArray.length; + if (numPages === 1) { + break; + } + if (previous) { + for (let i = currentIndex - 1, ii = 0; i >= ii; i--) { + const currentId = yArray[i], + expectedId = yArray[i + 1] - 1; + if (currentId < expectedId) { + return currentPageNumber - expectedId; + } + } + } else { + for (let i = currentIndex + 1, ii = numPages; i < ii; i++) { + const currentId = yArray[i], + expectedId = yArray[i - 1] + 1; + if (currentId > expectedId) { + return expectedId - currentPageNumber; + } + } + } + if (previous) { + const firstId = yArray[0]; + if (firstId < currentPageNumber) { + return currentPageNumber - firstId + 1; + } + } else { + const lastId = yArray[numPages - 1]; + if (lastId > currentPageNumber) { + return lastId - currentPageNumber + 1; + } + } + break; + } + break; + } + case _ui_utils.ScrollMode.HORIZONTAL: + { + break; + } + case _ui_utils.ScrollMode.PAGE: + case _ui_utils.ScrollMode.VERTICAL: + { + if (this._spreadMode === _ui_utils.SpreadMode.NONE) { + break; + } + const parity = this._spreadMode - 1; + if (previous && currentPageNumber % 2 !== parity) { + break; + } else if (!previous && currentPageNumber % 2 === parity) { + break; + } + const { + views + } = this._getVisiblePages(), + expectedId = previous ? currentPageNumber - 1 : currentPageNumber + 1; + for (const { + id, + percent, + widthPercent + } of views) { + if (id !== expectedId) { + continue; + } + if (percent > 0 && widthPercent === 100) { + return 2; + } + break; + } + break; + } + } + return 1; + } + nextPage() { + const currentPageNumber = this._currentPageNumber, + pagesCount = this.pagesCount; + if (currentPageNumber >= pagesCount) { + return false; + } + const advance = this._getPageAdvance(currentPageNumber, false) || 1; + this.currentPageNumber = Math.min(currentPageNumber + advance, pagesCount); + return true; + } + previousPage() { + const currentPageNumber = this._currentPageNumber; + if (currentPageNumber <= 1) { + return false; + } + const advance = this._getPageAdvance(currentPageNumber, true) || 1; + this.currentPageNumber = Math.max(currentPageNumber - advance, 1); + return true; + } + increaseScale(options = null) { + if (typeof options === "number") { + console.error("The `increaseScale` method-signature was updated, please use an object instead."); + options = { + steps: options + }; + } + if (!this.pdfDocument) { + return; + } + options ||= Object.create(null); + let newScale = this._currentScale; + if (options.scaleFactor > 1) { + newScale = Math.min(_ui_utils.MAX_SCALE, Math.round(newScale * options.scaleFactor * 100) / 100); + } else { + let steps = options.steps ?? 1; + do { + newScale = (newScale * _ui_utils.DEFAULT_SCALE_DELTA).toFixed(2); + newScale = Math.ceil(newScale * 10) / 10; + newScale = Math.min(_ui_utils.MAX_SCALE, newScale); + } while (--steps > 0 && newScale < _ui_utils.MAX_SCALE); + } + options.noScroll = false; + this._setScale(newScale, options); + } + decreaseScale(options = null) { + if (typeof options === "number") { + console.error("The `decreaseScale` method-signature was updated, please use an object instead."); + options = { + steps: options + }; + } + if (!this.pdfDocument) { + return; + } + options ||= Object.create(null); + let newScale = this._currentScale; + if (options.scaleFactor > 0 && options.scaleFactor < 1) { + newScale = Math.max(_ui_utils.MIN_SCALE, Math.round(newScale * options.scaleFactor * 100) / 100); + } else { + let steps = options.steps ?? 1; + do { + newScale = (newScale / _ui_utils.DEFAULT_SCALE_DELTA).toFixed(2); + newScale = Math.floor(newScale * 10) / 10; + newScale = Math.max(_ui_utils.MIN_SCALE, newScale); + } while (--steps > 0 && newScale > _ui_utils.MIN_SCALE); + } + options.noScroll = false; + this._setScale(newScale, options); + } + #updateContainerHeightCss(height = this.container.clientHeight) { + if (height !== this.#previousContainerHeight) { + this.#previousContainerHeight = height; + _ui_utils.docStyle.setProperty("--viewer-container-height", `${height}px`); + } + } + #resizeObserverCallback(entries) { + for (const entry of entries) { + if (entry.target === this.container) { + this.#updateContainerHeightCss(Math.floor(entry.borderBoxSize[0].blockSize)); + this.#containerTopLeft = null; + break; + } + } + } + get containerTopLeft() { + return this.#containerTopLeft ||= [this.container.offsetTop, this.container.offsetLeft]; + } + get annotationEditorMode() { + return this.#annotationEditorUIManager ? this.#annotationEditorMode : _pdfjsLib.AnnotationEditorType.DISABLE; + } + set annotationEditorMode(mode) { + if (!this.#annotationEditorUIManager) { + throw new Error(`The AnnotationEditor is not enabled.`); + } + if (this.#annotationEditorMode === mode) { + return; + } + if (!isValidAnnotationEditorMode(mode)) { + throw new Error(`Invalid AnnotationEditor mode: ${mode}`); + } + if (!this.pdfDocument) { + return; + } + this.#annotationEditorMode = mode; + this.eventBus.dispatch("annotationeditormodechanged", { + source: this, + mode + }); + this.#annotationEditorUIManager.updateMode(mode); + } + set annotationEditorParams({ + type, + value + }) { + if (!this.#annotationEditorUIManager) { + throw new Error(`The AnnotationEditor is not enabled.`); + } + this.#annotationEditorUIManager.updateParams(type, value); + } + refresh(noUpdate = false, updateArgs = Object.create(null)) { + if (!this.pdfDocument) { + return; + } + for (const pageView of this._pages) { + pageView.update(updateArgs); + } + if (this.#scaleTimeoutId !== null) { + clearTimeout(this.#scaleTimeoutId); + this.#scaleTimeoutId = null; + } + if (!noUpdate) { + this.update(); + } + } +} +exports.PDFViewer = PDFViewer; + +/***/ }), +/* 25 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFRenderingQueue = void 0; +var _pdfjsLib = __w_pdfjs_require__(4); +var _ui_utils = __w_pdfjs_require__(2); +const CLEANUP_TIMEOUT = 30000; +class PDFRenderingQueue { + constructor() { + this.pdfViewer = null; + this.pdfThumbnailViewer = null; + this.onIdle = null; + this.highestPriorityPage = null; + this.idleTimeout = null; + this.printing = false; + this.isThumbnailViewEnabled = false; + } + setViewer(pdfViewer) { + this.pdfViewer = pdfViewer; + } + setThumbnailViewer(pdfThumbnailViewer) { + this.pdfThumbnailViewer = pdfThumbnailViewer; + } + isHighestPriority(view) { + return this.highestPriorityPage === view.renderingId; + } + hasViewer() { + return !!this.pdfViewer; + } + renderHighestPriority(currentlyVisiblePages) { + if (this.idleTimeout) { + clearTimeout(this.idleTimeout); + this.idleTimeout = null; + } + if (this.pdfViewer.forceRendering(currentlyVisiblePages)) { + return; + } + if (this.isThumbnailViewEnabled && this.pdfThumbnailViewer?.forceRendering()) { + return; + } + if (this.printing) { + return; + } + if (this.onIdle) { + this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT); + } + } + getHighestPriority(visible, views, scrolledDown, preRenderExtra = false) { + const visibleViews = visible.views, + numVisible = visibleViews.length; + if (numVisible === 0) { + return null; + } + for (let i = 0; i < numVisible; i++) { + const view = visibleViews[i].view; + if (!this.isViewFinished(view)) { + return view; + } + } + const firstId = visible.first.id, + lastId = visible.last.id; + if (lastId - firstId + 1 > numVisible) { + const visibleIds = visible.ids; + for (let i = 1, ii = lastId - firstId; i < ii; i++) { + const holeId = scrolledDown ? firstId + i : lastId - i; + if (visibleIds.has(holeId)) { + continue; + } + const holeView = views[holeId - 1]; + if (!this.isViewFinished(holeView)) { + return holeView; + } + } + } + let preRenderIndex = scrolledDown ? lastId : firstId - 2; + let preRenderView = views[preRenderIndex]; + if (preRenderView && !this.isViewFinished(preRenderView)) { + return preRenderView; + } + if (preRenderExtra) { + preRenderIndex += scrolledDown ? 1 : -1; + preRenderView = views[preRenderIndex]; + if (preRenderView && !this.isViewFinished(preRenderView)) { + return preRenderView; + } + } + return null; + } + isViewFinished(view) { + return view.renderingState === _ui_utils.RenderingStates.FINISHED; + } + renderView(view) { + switch (view.renderingState) { + case _ui_utils.RenderingStates.FINISHED: + return false; + case _ui_utils.RenderingStates.PAUSED: + this.highestPriorityPage = view.renderingId; + view.resume(); + break; + case _ui_utils.RenderingStates.RUNNING: + this.highestPriorityPage = view.renderingId; + break; + case _ui_utils.RenderingStates.INITIAL: + this.highestPriorityPage = view.renderingId; + view.draw().finally(() => { + this.renderHighestPriority(); + }).catch(reason => { + if (reason instanceof _pdfjsLib.RenderingCancelledException) { + return; + } + console.error(`renderView: "${reason}"`); + }); + break; + } + return true; + } +} +exports.PDFRenderingQueue = PDFRenderingQueue; + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __w_pdfjs_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +var exports = __webpack_exports__; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +Object.defineProperty(exports, "AnnotationLayerBuilder", ({ + enumerable: true, + get: function () { + return _annotation_layer_builder.AnnotationLayerBuilder; + } +})); +exports.DefaultXfaLayerFactory = exports.DefaultTextLayerFactory = exports.DefaultStructTreeLayerFactory = exports.DefaultAnnotationLayerFactory = void 0; +Object.defineProperty(exports, "DownloadManager", ({ + enumerable: true, + get: function () { + return _download_manager.DownloadManager; + } +})); +Object.defineProperty(exports, "EventBus", ({ + enumerable: true, + get: function () { + return _event_utils.EventBus; + } +})); +Object.defineProperty(exports, "GenericL10n", ({ + enumerable: true, + get: function () { + return _genericl10n.GenericL10n; + } +})); +Object.defineProperty(exports, "LinkTarget", ({ + enumerable: true, + get: function () { + return _pdf_link_service.LinkTarget; + } +})); +Object.defineProperty(exports, "NullL10n", ({ + enumerable: true, + get: function () { + return _l10n_utils.NullL10n; + } +})); +Object.defineProperty(exports, "PDFFindController", ({ + enumerable: true, + get: function () { + return _pdf_find_controller.PDFFindController; + } +})); +Object.defineProperty(exports, "PDFHistory", ({ + enumerable: true, + get: function () { + return _pdf_history.PDFHistory; + } +})); +Object.defineProperty(exports, "PDFLinkService", ({ + enumerable: true, + get: function () { + return _pdf_link_service.PDFLinkService; + } +})); +Object.defineProperty(exports, "PDFPageView", ({ + enumerable: true, + get: function () { + return _pdf_page_view.PDFPageView; + } +})); +Object.defineProperty(exports, "PDFScriptingManager", ({ + enumerable: true, + get: function () { + return _pdf_scripting_manager.PDFScriptingManager; + } +})); +Object.defineProperty(exports, "PDFSinglePageViewer", ({ + enumerable: true, + get: function () { + return _pdf_single_page_viewer.PDFSinglePageViewer; + } +})); +Object.defineProperty(exports, "PDFViewer", ({ + enumerable: true, + get: function () { + return _pdf_viewer.PDFViewer; + } +})); +Object.defineProperty(exports, "ProgressBar", ({ + enumerable: true, + get: function () { + return _ui_utils.ProgressBar; + } +})); +Object.defineProperty(exports, "RenderingStates", ({ + enumerable: true, + get: function () { + return _ui_utils.RenderingStates; + } +})); +Object.defineProperty(exports, "ScrollMode", ({ + enumerable: true, + get: function () { + return _ui_utils.ScrollMode; + } +})); +Object.defineProperty(exports, "SimpleLinkService", ({ + enumerable: true, + get: function () { + return _pdf_link_service.SimpleLinkService; + } +})); +Object.defineProperty(exports, "SpreadMode", ({ + enumerable: true, + get: function () { + return _ui_utils.SpreadMode; + } +})); +Object.defineProperty(exports, "StructTreeLayerBuilder", ({ + enumerable: true, + get: function () { + return _struct_tree_layer_builder.StructTreeLayerBuilder; + } +})); +Object.defineProperty(exports, "TextLayerBuilder", ({ + enumerable: true, + get: function () { + return _text_layer_builder.TextLayerBuilder; + } +})); +Object.defineProperty(exports, "XfaLayerBuilder", ({ + enumerable: true, + get: function () { + return _xfa_layer_builder.XfaLayerBuilder; + } +})); +Object.defineProperty(exports, "parseQueryString", ({ + enumerable: true, + get: function () { + return _ui_utils.parseQueryString; + } +})); +var _pdf_link_service = __w_pdfjs_require__(1); +var _ui_utils = __w_pdfjs_require__(2); +var _annotation_layer_builder = __w_pdfjs_require__(3); +var _download_manager = __w_pdfjs_require__(6); +var _event_utils = __w_pdfjs_require__(7); +var _genericl10n = __w_pdfjs_require__(8); +var _l10n_utils = __w_pdfjs_require__(5); +var _pdf_find_controller = __w_pdfjs_require__(10); +var _pdf_history = __w_pdfjs_require__(12); +var _pdf_page_view = __w_pdfjs_require__(13); +var _pdf_scripting_manager = __w_pdfjs_require__(21); +var _pdf_single_page_viewer = __w_pdfjs_require__(23); +var _pdf_viewer = __w_pdfjs_require__(24); +var _struct_tree_layer_builder = __w_pdfjs_require__(16); +var _text_layer_builder = __w_pdfjs_require__(19); +var _xfa_layer_builder = __w_pdfjs_require__(20); +const pdfjsVersion = '3.3.122'; +const pdfjsBuild = '562045607'; +class DefaultAnnotationLayerFactory { + constructor() { + throw new Error("The `DefaultAnnotationLayerFactory` has been removed, " + "please use the `annotationMode` option when initializing " + "the `PDFPageView`-instance to control AnnotationLayer rendering."); + } +} +exports.DefaultAnnotationLayerFactory = DefaultAnnotationLayerFactory; +class DefaultStructTreeLayerFactory { + constructor() { + throw new Error("The `DefaultStructTreeLayerFactory` has been removed, " + "this functionality is automatically enabled when the TextLayer is used."); + } +} +exports.DefaultStructTreeLayerFactory = DefaultStructTreeLayerFactory; +class DefaultTextLayerFactory { + constructor() { + throw new Error("The `DefaultTextLayerFactory` has been removed, " + "please use the `textLayerMode` option when initializing " + "the `PDFPageView`-instance to control TextLayer rendering."); + } +} +exports.DefaultTextLayerFactory = DefaultTextLayerFactory; +class DefaultXfaLayerFactory { + constructor() { + throw new Error("The `DefaultXfaLayerFactory` has been removed, " + "please use the `enableXfa` option when calling " + "the `getDocument`-function to control XfaLayer rendering."); + } +} +exports.DefaultXfaLayerFactory = DefaultXfaLayerFactory; +})(); + +/******/ return __webpack_exports__; +/******/ })() +; +}); \ No newline at end of file diff --git a/src/main/resources/static/pdfjs/pdf_viewer.min.css b/src/main/resources/static/pdfjs/pdf_viewer.min.css new file mode 100644 index 00000000..ec60e75b --- /dev/null +++ b/src/main/resources/static/pdfjs/pdf_viewer.min.css @@ -0,0 +1,7 @@ +/** + * Minified by jsDelivr using clean-css v5.3.1. + * Original file: /npm/pdfjs-dist@3.3.122/web/pdf_viewer.css + * + * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files + */ +:root{--highlight-bg-color:rgba(180, 0, 170, 1);--highlight-selected-bg-color:rgba(0, 100, 0, 1)}@media screen and (forced-colors:active){:root{--highlight-bg-color:Highlight;--highlight-selected-bg-color:ButtonText}}.textLayer{position:absolute;text-align:initial;left:0;top:0;right:0;bottom:0;overflow:hidden;opacity:.25;line-height:1;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}.textLayer br,.textLayer span{color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0% 0%}.textLayer span.markedContent{top:0;height:0}.textLayer .highlight{margin:-1px;padding:1px;background-color:var(--highlight-bg-color);border-radius:4px}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer ::-moz-selection{background:#00f;background:AccentColor}.textLayer ::selection{background:#00f;background:AccentColor}.textLayer br::-moz-selection{background:0 0}.textLayer br::selection{background:0 0}.textLayer .endOfContent{display:block;position:absolute;left:0;top:100%;right:0;bottom:0;z-index:-1;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.textLayer .endOfContent.active{top:0}:root{--annotation-unfocused-field-background:url("data:image/svg+xml;charset=UTF-8,");--input-focus-border-color:Highlight;--input-focus-outline:1px solid Canvas;--input-unfocused-border-color:transparent;--input-disabled-border-color:transparent;--input-hover-border-color:black}@media screen and (forced-colors:active){:root{--input-focus-border-color:CanvasText;--input-unfocused-border-color:ActiveText;--input-disabled-border-color:GrayText;--input-hover-border-color:Highlight}.annotationLayer .buttonWidgetAnnotation.checkBox input:required,.annotationLayer .buttonWidgetAnnotation.radioButton input:required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .textWidgetAnnotation input:required,.annotationLayer .textWidgetAnnotation textarea:required{outline:1.5px solid selectedItem}}.annotationLayer{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0;z-index:3}.annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;transform-origin:0 0}.annotationLayer .buttonWidgetAnnotation.pushButton>a,.annotationLayer .linkAnnotation>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}.annotationLayer .buttonWidgetAnnotation.pushButton>canvas{width:100%;height:100%}.annotationLayer .buttonWidgetAnnotation.pushButton>a:hover,.annotationLayer .linkAnnotation>a:hover{opacity:.2;background:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer .textAnnotation img{position:absolute;cursor:pointer;width:100%;height:100%}.annotationLayer .buttonWidgetAnnotation.checkBox input,.annotationLayer .buttonWidgetAnnotation.radioButton input,.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .textWidgetAnnotation input,.annotationLayer .textWidgetAnnotation textarea{background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px * var(--scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}.annotationLayer .buttonWidgetAnnotation.checkBox input:required,.annotationLayer .buttonWidgetAnnotation.radioButton input:required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .textWidgetAnnotation input:required,.annotationLayer .textWidgetAnnotation textarea:required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .buttonWidgetAnnotation.checkBox input[disabled],.annotationLayer .buttonWidgetAnnotation.radioButton input[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .textWidgetAnnotation input[disabled],.annotationLayer .textWidgetAnnotation textarea[disabled]{background:0 0;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .buttonWidgetAnnotation.checkBox input:hover,.annotationLayer .buttonWidgetAnnotation.radioButton input:hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .textWidgetAnnotation input:hover,.annotationLayer .textWidgetAnnotation textarea:hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .buttonWidgetAnnotation.checkBox input:hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .textWidgetAnnotation input:hover,.annotationLayer .textWidgetAnnotation textarea:hover{border-radius:2px}.annotationLayer .choiceWidgetAnnotation select:focus,.annotationLayer .textWidgetAnnotation input:focus,.annotationLayer .textWidgetAnnotation textarea:focus{background:0 0;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox :focus,.annotationLayer .buttonWidgetAnnotation.radioButton :focus{background-image:none;background-color:transparent}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{height:80%;left:45%;width:1px}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation.checkBox input,.annotationLayer .buttonWidgetAnnotation.radioButton input{-webkit-appearance:none;-moz-appearance:none;appearance:none}.annotationLayer .popupTriggerArea{height:100%;width:100%}.annotationLayer .popupWrapper{position:absolute;font-size:calc(9px * var(--scale-factor));width:100%;min-width:calc(180px * var(--scale-factor));pointer-events:none}.annotationLayer .popup{position:absolute;max-width:calc(180px * var(--scale-factor));background-color:#ff9;box-shadow:0 calc(2px * var(--scale-factor)) calc(5px * var(--scale-factor)) #888;border-radius:calc(2px * var(--scale-factor));padding:calc(6px * var(--scale-factor));margin-left:calc(5px * var(--scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto}.annotationLayer .popup>*{font-size:calc(9px * var(--scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:calc(5px * var(--scale-factor))}.annotationLayer .popupContent{border-top:1px solid #333;margin-top:calc(2px * var(--scale-factor));padding-top:calc(2px * var(--scale-factor))}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--scale-factor))}.annotationLayer .caretAnnotation,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .fileAttachmentAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .highlightAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .lineAnnotation svg line,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .squareAnnotation svg rect,.annotationLayer .squigglyAnnotation,.annotationLayer .stampAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .underlineAnnotation{cursor:pointer}.annotationLayer section svg{position:absolute;width:100%;height:100%}.annotationLayer .annotationTextContent{position:absolute;width:100%;height:100%;opacity:0;color:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.annotationLayer .annotationTextContent span{width:100%;display:inline-block}:root{--xfa-unfocused-field-background:url("data:image/svg+xml;charset=UTF-8,");--xfa-focus-outline:auto}@media screen and (forced-colors:active){:root{--xfa-focus-outline:2px solid CanvasText}.xfaLayer :required{outline:1.5px solid selectedItem}}.xfaLayer{background-color:transparent}.xfaLayer .highlight{margin:-1px;padding:1px;background-color:#efcbed;border-radius:4px}.xfaLayer .highlight.appended{position:initial}.xfaLayer .highlight.begin{border-radius:4px 0 0 4px}.xfaLayer .highlight.end{border-radius:0 4px 4px 0}.xfaLayer .highlight.middle{border-radius:0}.xfaLayer .highlight.selected{background-color:#cbdfcb}.xfaPage{overflow:hidden;position:relative}.xfaContentarea{position:absolute}.xfaPrintOnly{display:none}.xfaLayer{position:absolute;text-align:initial;top:0;left:0;transform-origin:0 0;line-height:1.2}.xfaLayer *{color:inherit;font:inherit;font-style:inherit;font-weight:inherit;font-kerning:inherit;letter-spacing:-.01px;text-align:inherit;text-decoration:inherit;box-sizing:border-box;background-color:transparent;padding:0;margin:0;pointer-events:auto;line-height:inherit}.xfaLayer :required{outline:1.5px solid red}.xfaLayer div{pointer-events:none}.xfaLayer svg{pointer-events:none}.xfaLayer svg *{pointer-events:none}.xfaLayer a{color:#00f}.xfaRich li{margin-left:3em}.xfaFont{color:#000;font-weight:400;font-kerning:none;font-size:10px;font-style:normal;letter-spacing:0;text-decoration:none;vertical-align:0}.xfaCaption{overflow:hidden;flex:0 0 auto}.xfaCaptionForCheckButton{overflow:hidden;flex:1 1 auto}.xfaLabel{height:100%;width:100%}.xfaLeft{display:flex;flex-direction:row;align-items:center}.xfaRight{display:flex;flex-direction:row-reverse;align-items:center}.xfaLeft>.xfaCaption,.xfaLeft>.xfaCaptionForCheckButton,.xfaRight>.xfaCaption,.xfaRight>.xfaCaptionForCheckButton{max-height:100%}.xfaTop{display:flex;flex-direction:column;align-items:flex-start}.xfaBottom{display:flex;flex-direction:column-reverse;align-items:flex-start}.xfaBottom>.xfaCaption,.xfaBottom>.xfaCaptionForCheckButton,.xfaTop>.xfaCaption,.xfaTop>.xfaCaptionForCheckButton{width:100%}.xfaBorder{background-color:transparent;position:absolute;pointer-events:none}.xfaWrapped{width:100%;height:100%}.xfaSelect:focus,.xfaTextfield:focus{background-image:none;background-color:transparent;outline:var(--xfa-focus-outline);outline-offset:-1px}.xfaCheckbox:focus,.xfaRadio:focus{outline:var(--xfa-focus-outline)}.xfaSelect,.xfaTextfield{height:100%;width:100%;flex:1 1 auto;border:none;resize:none;background-image:var(--xfa-unfocused-field-background)}.xfaSelect{padding-left:2px;padding-right:2px;padding-inline:2px}.xfaBottom>.xfaSelect,.xfaBottom>.xfaTextfield,.xfaTop>.xfaSelect,.xfaTop>.xfaTextfield{flex:0 1 auto}.xfaButton{cursor:pointer;width:100%;height:100%;border:none;text-align:center}.xfaLink{width:100%;height:100%;position:absolute;top:0;left:0}.xfaCheckbox,.xfaRadio{width:100%;height:100%;flex:0 0 auto;border:none}.xfaRich{white-space:pre-wrap;width:100%;height:100%}.xfaImage{-o-object-position:left top;object-position:left top;-o-object-fit:contain;object-fit:contain;width:100%;height:100%}.xfaLrTb,.xfaRlTb,.xfaTb{display:flex;flex-direction:column;align-items:stretch}.xfaLr{display:flex;flex-direction:row;align-items:stretch}.xfaRl{display:flex;flex-direction:row-reverse;align-items:stretch}.xfaTb>div{justify-content:left}.xfaPosition{position:relative}.xfaArea{position:relative}.xfaValignMiddle{display:flex;align-items:center}.xfaTable{display:flex;flex-direction:column;align-items:stretch}.xfaTable .xfaRow{display:flex;flex-direction:row;align-items:stretch}.xfaTable .xfaRlRow{display:flex;flex-direction:row-reverse;align-items:stretch;flex:1}.xfaTable .xfaRlRow>div{flex:1}.xfaDisabled input,.xfaDisabled textarea,.xfaNonInteractive input,.xfaNonInteractive textarea,.xfaReadOnly input,.xfaReadOnly textarea{background:initial}@media print{.xfaSelect,.xfaTextfield{background:0 0}.xfaSelect{-webkit-appearance:none;-moz-appearance:none;appearance:none;text-indent:1px;text-overflow:""}}:root{--focus-outline:solid 2px blue;--hover-outline:dashed 2px blue;--freetext-line-height:1.35;--freetext-padding:2px;--editorFreeText-editing-cursor:text;--editorInk-editing-cursor:pointer}@media screen and (forced-colors:active){:root{--focus-outline:solid 3px ButtonText;--hover-outline:dashed 3px ButtonText}}[data-editor-rotation="90"]{transform:rotate(90deg)}[data-editor-rotation="180"]{transform:rotate(180deg)}[data-editor-rotation="270"]{transform:rotate(270deg)}.annotationEditorLayer{background:0 0;position:absolute;top:0;left:0;font-size:calc(100px * var(--scale-factor));transform-origin:0 0;cursor:auto;z-index:4}.annotationEditorLayer.freeTextEditing{cursor:var(--editorFreeText-editing-cursor)}.annotationEditorLayer.inkEditing{cursor:var(--editorInk-editing-cursor)}.annotationEditorLayer .selectedEditor{outline:var(--focus-outline);resize:none}.annotationEditorLayer .freeTextEditor{position:absolute;background:0 0;border-radius:3px;padding:calc(var(--freetext-padding) * var(--scale-factor));resize:none;width:auto;height:auto;z-index:1;transform-origin:0 0;touch-action:none;cursor:auto}.annotationEditorLayer .freeTextEditor .internal{background:0 0;border:none;top:0;left:0;overflow:visible;white-space:nowrap;resize:none;font:10px sans-serif;line-height:var(--freetext-line-height)}.annotationEditorLayer .freeTextEditor .overlay{position:absolute;display:none;background:0 0;top:0;left:0;width:100%;height:100%}.annotationEditorLayer .freeTextEditor .overlay.enabled{display:block}.annotationEditorLayer .freeTextEditor .internal:empty::before{content:attr(default-content);color:gray}.annotationEditorLayer .freeTextEditor .internal:focus{outline:0}.annotationEditorLayer .inkEditor.disabled{resize:none}.annotationEditorLayer .inkEditor.disabled.selectedEditor{resize:horizontal}.annotationEditorLayer .freeTextEditor:hover:not(.selectedEditor),.annotationEditorLayer .inkEditor:hover:not(.selectedEditor){outline:var(--hover-outline)}.annotationEditorLayer .inkEditor{position:absolute;background:0 0;border-radius:3px;overflow:auto;width:100%;height:100%;z-index:1;transform-origin:0 0;cursor:auto}.annotationEditorLayer .inkEditor.editing{resize:none;cursor:inherit}.annotationEditorLayer .inkEditor .inkEditorCanvas{position:absolute;top:0;left:0;width:100%;height:100%;touch-action:none}:root{--viewer-container-height:0;--pdfViewer-padding-bottom:0;--page-margin:1px auto -8px;--page-border:9px solid transparent;--spreadHorizontalWrapped-margin-LR:-3.5px;--loading-icon-delay:400ms}@media screen and (forced-colors:active){:root{--pdfViewer-padding-bottom:9px;--page-margin:8px auto -1px;--page-border:1px solid CanvasText;--spreadHorizontalWrapped-margin-LR:3.5px}}[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg) translateX(-100%)}.pdfViewer{--scale-factor:1;padding-bottom:var(--pdfViewer-padding-bottom)}.pdfViewer .canvasWrapper{overflow:hidden;width:100%;height:100%;z-index:1}.pdfViewer .page{direction:ltr;width:816px;height:1056px;margin:var(--page-margin);position:relative;overflow:visible;border:var(--page-border);background-clip:content-box;background-color:#fff}.pdfViewer .dummyPage{position:relative;width:0;height:var(--viewer-container-height)}.pdfViewer.removePageBorders .page{margin:0 auto 10px;border:none}.pdfViewer.singlePageView{display:inline-block}.pdfViewer.singlePageView .page{margin:0;border:none}.pdfViewer.scrollHorizontal,.pdfViewer.scrollWrapped,.spread{margin-left:3.5px;margin-right:3.5px;text-align:center}.pdfViewer.scrollHorizontal,.spread{white-space:nowrap}.pdfViewer.removePageBorders,.pdfViewer.scrollHorizontal .spread,.pdfViewer.scrollWrapped .spread{margin-left:0;margin-right:0}.pdfViewer.scrollHorizontal .page,.pdfViewer.scrollHorizontal .spread,.pdfViewer.scrollWrapped .page,.pdfViewer.scrollWrapped .spread,.spread .dummyPage,.spread .page{display:inline-block;vertical-align:middle}.pdfViewer.scrollHorizontal .page,.pdfViewer.scrollWrapped .page,.spread .page{margin-left:var(--spreadHorizontalWrapped-margin-LR);margin-right:var(--spreadHorizontalWrapped-margin-LR)}.pdfViewer.removePageBorders .spread .page,.pdfViewer.removePageBorders.scrollHorizontal .page,.pdfViewer.removePageBorders.scrollWrapped .page{margin-left:5px;margin-right:5px}.pdfViewer .page canvas{margin:0;display:block}.pdfViewer .page canvas[hidden]{display:none}.pdfViewer .page canvas[zooming]{width:100%;height:100%}.pdfViewer .page .loadingIcon{position:absolute;display:block;left:0;top:0;right:0;bottom:0;background:url("images/loading-icon.gif") center no-repeat;visibility:visible;transition-property:visibility;transition-delay:var(--loading-icon-delay);z-index:5}.pdfViewer .page .loadingIcon.notVisible{transition-property:none;visibility:hidden}.pdfViewer.enablePermissions .textLayer span{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important;cursor:not-allowed}.pdfPresentationMode .pdfViewer{padding-bottom:0}.pdfPresentationMode .spread{margin:0}.pdfPresentationMode .pdfViewer .page{margin:0 auto;border:2px solid transparent} \ No newline at end of file diff --git a/src/main/resources/templates/add-image.html b/src/main/resources/templates/add-image.html index 892a0eed..6a54fc99 100644 --- a/src/main/resources/templates/add-image.html +++ b/src/main/resources/templates/add-image.html @@ -6,49 +6,35 @@ -
-
-
-
-
-
-
-
-

- - - -
- -
- -
-
- -
-
- -
-
- -
- -
- - -
-
-
-
-
-
+
+
+
+

+
+
+
+

+
+
+
+ + +
+
+ +
+
+ +
+ +
+ +
+
+
+
+
+
\ No newline at end of file diff --git a/src/main/resources/templates/compress-pdf.html b/src/main/resources/templates/compress-pdf.html index eeef4f9a..2d746412 100644 --- a/src/main/resources/templates/compress-pdf.html +++ b/src/main/resources/templates/compress-pdf.html @@ -5,40 +5,32 @@ -
-
-
-
-
-
-
-
-

-
-

-
- -
-
- -
+ +
+
+
+

+
+
+
+

+ +

+
+
+ + +
+ + + - - - - -
-
-
-
-
-
+
+
+
+
+
+
\ No newline at end of file diff --git a/src/main/resources/templates/convert/img-to-pdf.html b/src/main/resources/templates/convert/img-to-pdf.html index bfcf902a..83d70b30 100644 --- a/src/main/resources/templates/convert/img-to-pdf.html +++ b/src/main/resources/templates/convert/img-to-pdf.html @@ -3,37 +3,33 @@ + -
-
+
+
+
+

+
+
+
+

-
+
+
+ + +
+

+ -
-
+
+ +
+
+
-
-
-
-

- -
-
- - -
-
-
- -
- - -
-
-
- -
-
-
+
+
+
\ No newline at end of file diff --git a/src/main/resources/templates/convert/pdf-to-img.html b/src/main/resources/templates/convert/pdf-to-img.html index 655c7e53..ef6c48ee 100644 --- a/src/main/resources/templates/convert/pdf-to-img.html +++ b/src/main/resources/templates/convert/pdf-to-img.html @@ -1,45 +1,57 @@ - + + -
-
+
+
+
-
+

+
+
+
+

+

+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ -
-
+
+
+
-
-
-
-

- -
-
- - -
-
- -
- -
- - -
-
-
- -
-
-
+
+
+
\ No newline at end of file diff --git a/src/main/resources/templates/fragments/card.html b/src/main/resources/templates/fragments/card.html index 6fc41cfd..620068cb 100644 --- a/src/main/resources/templates/fragments/card.html +++ b/src/main/resources/templates/fragments/card.html @@ -1,5 +1,5 @@ -
-
-

- +
+
+

+
\ No newline at end of file diff --git a/src/main/resources/templates/fragments/common.html b/src/main/resources/templates/fragments/common.html index 12889a09..5e546a23 100644 --- a/src/main/resources/templates/fragments/common.html +++ b/src/main/resources/templates/fragments/common.html @@ -1,31 +1,29 @@ - - - - - + + + + + - - + + - - - - + + + + + - - + + + - - - + + + - - - - - - - - + \ No newline at end of file diff --git a/src/main/resources/templates/fragments/footer.html b/src/main/resources/templates/fragments/footer.html index 68dc00ec..0ddc06d8 100644 --- a/src/main/resources/templates/fragments/footer.html +++ b/src/main/resources/templates/fragments/footer.html @@ -1,6 +1,6 @@ -
+
\ No newline at end of file diff --git a/src/main/resources/templates/fragments/navbar.html b/src/main/resources/templates/fragments/navbar.html index 3033516e..3b4b2477 100644 --- a/src/main/resources/templates/fragments/navbar.html +++ b/src/main/resources/templates/fragments/navbar.html @@ -45,6 +45,7 @@ +
@@ -64,11 +65,11 @@ - + - - + +
diff --git a/src/main/resources/templates/home.html b/src/main/resources/templates/home.html index 8b04facc..c67be644 100644 --- a/src/main/resources/templates/home.html +++ b/src/main/resources/templates/home.html @@ -5,62 +5,63 @@ -
-
-
- -
-
-

Stirling PDF

-

-
-
+
+
+
+ +
+
+

Stirling PDF

+

+
+
- -
-
-
-
+ +
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
- -
-
-
-
+
+
+
+
+
+
\ No newline at end of file diff --git a/src/main/resources/templates/merge-pdfs.html b/src/main/resources/templates/merge-pdfs.html index 3326e55d..87fbc241 100644 --- a/src/main/resources/templates/merge-pdfs.html +++ b/src/main/resources/templates/merge-pdfs.html @@ -4,130 +4,124 @@ -
-
-
-
-
-
-
-
-

-
-
- -
- -
-
-
-
    -
    -
    - -
    -
    + +
    +
    +
    +

    +
    +
    +
    +

    +
    +
    + +
    + + +
    +
    +
    +
      +
      +
      + +
      +
      + - - - - -
      -
      -
      -
      -
      -
      + }); + +
      +
      +
      +
      +
      +
      \ No newline at end of file diff --git a/src/main/resources/templates/pdf-organizer.html b/src/main/resources/templates/pdf-organizer.html index 08fd4013..f738c299 100644 --- a/src/main/resources/templates/pdf-organizer.html +++ b/src/main/resources/templates/pdf-organizer.html @@ -4,37 +4,31 @@ -
      -
      -
      -
      -
      -
      -
      -
      -

      - -
      -
      - -
      -
      - -
      - -
      - + +
      +
      +
      +

      +
      +
      +
      +

      -
      -
      -
      -
      -
      -
      +
      +
      +
      + + +
      + +
      + + +
      +
      +
      +
      +
      +
      \ No newline at end of file diff --git a/src/main/resources/templates/remove-pages.html b/src/main/resources/templates/remove-pages.html index cd255ff3..df75c0fa 100644 --- a/src/main/resources/templates/remove-pages.html +++ b/src/main/resources/templates/remove-pages.html @@ -4,37 +4,31 @@ -
      -
      -
      -
      -
      -
      -
      -
      -

      + +
      +
      +
      +

      +
      +
      +
      +

      -
      -
      - -
      -
      - -
      - -
      - +
      +
      +
      + + +
      + +
      + -
      -
      -
      -
      -
      -
      +
      +
      +
      +
      +
      +
      \ No newline at end of file diff --git a/src/main/resources/templates/rotate-pdf.html b/src/main/resources/templates/rotate-pdf.html index c9ef32b6..ed4e3a67 100644 --- a/src/main/resources/templates/rotate-pdf.html +++ b/src/main/resources/templates/rotate-pdf.html @@ -5,45 +5,51 @@ -
      -
      -
      -
      -
      -
      -
      -
      -

      + +
      +
      +
      +

      +
      +
      +
      +

      -
      -
      - + +
      + -
      + -
      -
      -
      -
      -
      -
      +
      +
      +
      +
      +
      +
      - - +.previewContainer { + aspect-ratio: 1; + width: 100%; + border: 1px solid rgba(0, 0, 0, .125); + border-radius: 0.25rem; + margin: 1rem 0; + padding: 15px; + display: block; + overflow: hidden; + position: relative; +} + +.buttonContainer { + display: flex; + justify-content: space-around; +} + \ No newline at end of file diff --git a/src/main/resources/templates/security/add-password.html b/src/main/resources/templates/security/add-password.html index cbd52bb9..a215881e 100644 --- a/src/main/resources/templates/security/add-password.html +++ b/src/main/resources/templates/security/add-password.html @@ -3,94 +3,78 @@ -
      -
      -
      -
      -
      -
      -
      -
      -

      + +
      +
      +
      +

      +
      +
      +
      +

      -
      -
      - -
      - -
      -
      -
      - -
      -
      - -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - -
      -
      - -
      -
      - -
      -
      - -
      -
      - -
      + +
      + +
      +
      +
      + +
      +
      + +
      +
      + +
      + + +
      +
      + + +
      +
      + + +
      +
      + + +
      +
      + + +
      +
      + + +
      +
      + + +
      +
      + + +
      -
      -
      -
      - -
      +
      +
      +
      + +
      -
      -
      -
      -
      -
      -
      -
      + +
      +
      +
      +
      +
      +
      diff --git a/src/main/resources/templates/security/add-watermark.html b/src/main/resources/templates/security/add-watermark.html index 9a7d220d..cb9b5fed 100644 --- a/src/main/resources/templates/security/add-watermark.html +++ b/src/main/resources/templates/security/add-watermark.html @@ -3,54 +3,50 @@ -
      -
      -
      -
      -
      -
      -
      -
      -

      + +
      +
      +
      +

      +
      +
      +
      +

      -
      -
      - -
      - -
      -
      -
      - - -
      -
      - - -
      -
      - - -
      -
      - - -
      -
      - - -
      -
      - -
      -
      -
      -
      -
      -
      -
      -
      +
      +
      + +
      +
      +
      + + +
      +
      + + +
      +
      + + +
      +
      + + +
      +
      + + +
      +
      + +
      +
      +
      +
      +
      +
      +
      +
      diff --git a/src/main/resources/templates/security/change-metadata.html b/src/main/resources/templates/security/change-metadata.html new file mode 100644 index 00000000..a26a5d17 --- /dev/null +++ b/src/main/resources/templates/security/change-metadata.html @@ -0,0 +1,254 @@ + + + + + + +
      +
      +
      +

      +
      +
      +
      +

      + +
      +
      +

      + +
      + + +
      + +
      + + +
      + +
      + + +
      + +
      + + +
      + +
      + + +
      + +
      + + +
      + +
      + + +
      + +
      + + +
      + +
      + + +
      + +
      + + +
      + +
      + + +
      + +
      + +
      +
      + + +
      + +
      +
      +
      +
      +
      +
      + + diff --git a/src/main/resources/templates/security/change-permissions.html b/src/main/resources/templates/security/change-permissions.html index 71cb5bab..4affb940 100644 --- a/src/main/resources/templates/security/change-permissions.html +++ b/src/main/resources/templates/security/change-permissions.html @@ -4,81 +4,68 @@ -
      -
      -
      -
      -
      -
      -
      -
      -

      -

      -
      -
      - -
      - -
      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - -
      -
      - -
      -
      - -
      -
      - -
      -
      - -
      + +
      +
      +
      +

      +
      +
      +
      +

      +

      + +
      + +
      +
      +
      + +
      + + +
      +
      + + +
      +
      + + +
      +
      + + +
      +
      + + +
      +
      + + +
      +
      + + +
      +
      + + +
      -
      -
      -
      - -
      +
      +
      +
      + +
      - -
      -
      -
      -
      -
      -
      + +
      +
      +
      +
      +
      +
      diff --git a/src/main/resources/templates/security/remove-password.html b/src/main/resources/templates/security/remove-password.html index d180d109..1a135819 100644 --- a/src/main/resources/templates/security/remove-password.html +++ b/src/main/resources/templates/security/remove-password.html @@ -3,40 +3,35 @@ -
      -
      -
      -
      -
      -
      -
      -
      -

      + +
      +
      +
      +

      +
      +
      +
      +

      -
      -
      - -
      - -
      -
      -
      - -
      -
      -
      - -
      -
      -
      -
      -
      -
      -
      -
      +
      +
      + +
      +
      +
      + + +
      +
      +
      + +
      +
      +
      +
      +
      +
      +
      +
      diff --git a/src/main/resources/templates/split-pdfs.html b/src/main/resources/templates/split-pdfs.html index b26fa20d..d0a2672e 100644 --- a/src/main/resources/templates/split-pdfs.html +++ b/src/main/resources/templates/split-pdfs.html @@ -6,49 +6,39 @@ -
      -
      +
      +
      +
      +

      +
      +
      +
      +

      +

      +

      +

      +

      +

      +

      +

      +

      -
      +
      +
      -
      -
      - -
      -
      -
      -

      - -

      -

      -

      -

      -

      -

      -

      -

      - - -
      - - -
      -
      - - -
      -
      - - - - - -
      -
      -
      - -
      -
      -
      +
      + + +
      +
      + + + +
      +
      +
      +
      +
      +
      \ No newline at end of file