{"version":3,"file":"pdf.worker.mjs","mappings":"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AA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,KAAV;EACAA,CAAA,CAAE,IAAF,IAAU,KAAV;EACAA,CAAA,CAAE,IAAF,IAAU,KAAV;EACAA,CAAA,CAAE,IAAF,IAAU,KAAV;EACAA,CAAA,CAAE,IAAF,IAAU,KAAV;EACAA,CAAA,CAAE,IAAF,IAAU,KAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,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AAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,EAAT;EACAA,CAAA,CAAE,GAAF,IAAS,EAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CA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","sources":["webpack://pdf.js/node_modules/core-js/internals/a-callable.js","webpack://pdf.js/node_modules/core-js/internals/a-possible-prototype.js","webpack://pdf.js/node_modules/core-js/internals/a-set.js","webpack://pdf.js/node_modules/core-js/internals/an-instance.js","webpack://pdf.js/node_modules/core-js/internals/an-object.js","webpack://pdf.js/node_modules/core-js/internals/array-buffer-basic-detection.js","webpack://pdf.js/node_modules/core-js/internals/array-buffer-byte-length.js","webpack://pdf.js/node_modules/core-js/internals/array-buffer-is-detached.js","webpack://pdf.js/node_modules/core-js/internals/array-buffer-transfer.js","webpack://pdf.js/node_modules/core-js/internals/array-buffer-view-core.js","webpack://pdf.js/node_modules/core-js/internals/array-from-constructor-and-list.js","webpack://pdf.js/node_modules/core-js/internals/array-includes.js","webpack://pdf.js/node_modules/core-js/internals/array-iteration-from-last.js","webpack://pdf.js/node_modules/core-js/internals/array-set-length.js","webpack://pdf.js/node_modules/core-js/internals/array-to-reversed.js","webpack://pdf.js/node_modules/core-js/internals/array-with.js","webpack://pdf.js/node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://pdf.js/node_modules/core-js/internals/classof-raw.js","webpack://pdf.js/node_modules/core-js/internals/classof.js","webpack://pdf.js/node_modules/core-js/internals/copy-constructor-properties.js","webpack://pdf.js/node_modules/core-js/internals/correct-prototype-getter.js","webpack://pdf.js/node_modules/core-js/internals/create-iter-result-object.js","webpack://pdf.js/node_modules/core-js/internals/create-non-enumerable-property.js","webpack://pdf.js/node_modules/core-js/internals/create-property-descriptor.js","webpack://pdf.js/node_modules/core-js/internals/create-property.js","webpack://pdf.js/node_modules/core-js/internals/define-built-in-accessor.js","webpack://pdf.js/node_modules/core-js/internals/define-built-in.js","webpack://pdf.js/node_modules/core-js/internals/define-built-ins.js","webpack://pdf.js/node_modules/core-js/internals/define-global-property.js","webpack://pdf.js/node_modules/core-js/internals/delete-property-or-throw.js","webpack://pdf.js/node_modules/core-js/internals/descriptors.js","webpack://pdf.js/node_modules/core-js/internals/detach-transferable.js","webpack://pdf.js/node_modules/core-js/internals/document-create-element.js","webpack://pdf.js/node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://pdf.js/node_modules/core-js/internals/dom-exception-constants.js","webpack://pdf.js/node_modules/core-js/internals/engine-is-browser.js","webpack://pdf.js/node_modules/core-js/internals/engine-is-deno.js","webpack://pdf.js/node_modules/core-js/internals/engine-is-node.js","webpack://pdf.js/node_modules/core-js/internals/engine-user-agent.js","webpack://pdf.js/node_modules/core-js/internals/engine-v8-version.js","webpack://pdf.js/node_modules/core-js/internals/enum-bug-keys.js","webpack://pdf.js/node_modules/core-js/internals/error-stack-clear.js","webpack://pdf.js/node_modules/core-js/internals/error-stack-install.js","webpack://pdf.js/node_modules/core-js/internals/error-stack-installable.js","webpack://pdf.js/node_modules/core-js/internals/export.js","webpack://pdf.js/node_modules/core-js/internals/fails.js","webpack://pdf.js/node_modules/core-js/internals/function-apply.js","webpack://pdf.js/node_modules/core-js/internals/function-bind-context.js","webpack://pdf.js/node_modules/core-js/internals/function-bind-native.js","webpack://pdf.js/node_modules/core-js/internals/function-call.js","webpack://pdf.js/node_modules/core-js/internals/function-name.js","webpack://pdf.js/node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack://pdf.js/node_modules/core-js/internals/function-uncurry-this-clause.js","webpack://pdf.js/node_modules/core-js/internals/function-uncurry-this.js","webpack://pdf.js/node_modules/core-js/internals/get-built-in.js","webpack://pdf.js/node_modules/core-js/internals/get-iterator-direct.js","webpack://pdf.js/node_modules/core-js/internals/get-iterator-method.js","webpack://pdf.js/node_modules/core-js/internals/get-iterator.js","webpack://pdf.js/node_modules/core-js/internals/get-method.js","webpack://pdf.js/node_modules/core-js/internals/get-set-record.js","webpack://pdf.js/node_modules/core-js/internals/global.js","webpack://pdf.js/node_modules/core-js/internals/has-own-property.js","webpack://pdf.js/node_modules/core-js/internals/hidden-keys.js","webpack://pdf.js/node_modules/core-js/internals/html.js","webpack://pdf.js/node_modules/core-js/internals/ie8-dom-define.js","webpack://pdf.js/node_modules/core-js/internals/indexed-object.js","webpack://pdf.js/node_modules/core-js/internals/inherit-if-required.js","webpack://pdf.js/node_modules/core-js/internals/inspect-source.js","webpack://pdf.js/node_modules/core-js/internals/install-error-cause.js","webpack://pdf.js/node_modules/core-js/internals/internal-state.js","webpack://pdf.js/node_modules/core-js/internals/is-array-iterator-method.js","webpack://pdf.js/node_modules/core-js/internals/is-array.js","webpack://pdf.js/node_modules/core-js/internals/is-big-int-array.js","webpack://pdf.js/node_modules/core-js/internals/is-callable.js","webpack://pdf.js/node_modules/core-js/internals/is-forced.js","webpack://pdf.js/node_modules/core-js/internals/is-null-or-undefined.js","webpack://pdf.js/node_modules/core-js/internals/is-object.js","webpack://pdf.js/node_modules/core-js/internals/is-possible-prototype.js","webpack://pdf.js/node_modules/core-js/internals/is-pure.js","webpack://pdf.js/node_modules/core-js/internals/is-symbol.js","webpack://pdf.js/node_modules/core-js/internals/iterate-simple.js","webpack://pdf.js/node_modules/core-js/internals/iterate.js","webpack://pdf.js/node_modules/core-js/internals/iterator-close.js","webpack://pdf.js/node_modules/core-js/internals/iterator-create-proxy.js","webpack://pdf.js/node_modules/core-js/internals/iterator-map.js","webpack://pdf.js/node_modules/core-js/internals/iterators-core.js","webpack://pdf.js/node_modules/core-js/internals/iterators.js","webpack://pdf.js/node_modules/core-js/internals/length-of-array-like.js","webpack://pdf.js/node_modules/core-js/internals/make-built-in.js","webpack://pdf.js/node_modules/core-js/internals/math-trunc.js","webpack://pdf.js/node_modules/core-js/internals/normalize-string-argument.js","webpack://pdf.js/node_modules/core-js/internals/object-create.js","webpack://pdf.js/node_modules/core-js/internals/object-define-properties.js","webpack://pdf.js/node_modules/core-js/internals/object-define-property.js","webpack://pdf.js/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://pdf.js/node_modules/core-js/internals/object-get-own-property-names.js","webpack://pdf.js/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://pdf.js/node_modules/core-js/internals/object-get-prototype-of.js","webpack://pdf.js/node_modules/core-js/internals/object-is-prototype-of.js","webpack://pdf.js/node_modules/core-js/internals/object-keys-internal.js","webpack://pdf.js/node_modules/core-js/internals/object-keys.js","webpack://pdf.js/node_modules/core-js/internals/object-property-is-enumerable.js","webpack://pdf.js/node_modules/core-js/internals/object-set-prototype-of.js","webpack://pdf.js/node_modules/core-js/internals/ordinary-to-primitive.js","webpack://pdf.js/node_modules/core-js/internals/own-keys.js","webpack://pdf.js/node_modules/core-js/internals/proxy-accessor.js","webpack://pdf.js/node_modules/core-js/internals/regexp-flags.js","webpack://pdf.js/node_modules/core-js/internals/require-object-coercible.js","webpack://pdf.js/node_modules/core-js/internals/set-clone.js","webpack://pdf.js/node_modules/core-js/internals/set-difference.js","webpack://pdf.js/node_modules/core-js/internals/set-helpers.js","webpack://pdf.js/node_modules/core-js/internals/set-intersection.js","webpack://pdf.js/node_modules/core-js/internals/set-is-disjoint-from.js","webpack://pdf.js/node_modules/core-js/internals/set-is-subset-of.js","webpack://pdf.js/node_modules/core-js/internals/set-is-superset-of.js","webpack://pdf.js/node_modules/core-js/internals/set-iterate.js","webpack://pdf.js/node_modules/core-js/internals/set-method-accept-set-like.js","webpack://pdf.js/node_modules/core-js/internals/set-size.js","webpack://pdf.js/node_modules/core-js/internals/set-symmetric-difference.js","webpack://pdf.js/node_modules/core-js/internals/set-union.js","webpack://pdf.js/node_modules/core-js/internals/shared-key.js","webpack://pdf.js/node_modules/core-js/internals/shared-store.js","webpack://pdf.js/node_modules/core-js/internals/shared.js","webpack://pdf.js/node_modules/core-js/internals/structured-clone-proper-transfer.js","webpack://pdf.js/node_modules/core-js/internals/symbol-constructor-detection.js","webpack://pdf.js/node_modules/core-js/internals/to-absolute-index.js","webpack://pdf.js/node_modules/core-js/internals/to-big-int.js","webpack://pdf.js/node_modules/core-js/internals/to-index.js","webpack://pdf.js/node_modules/core-js/internals/to-indexed-object.js","webpack://pdf.js/node_modules/core-js/internals/to-integer-or-infinity.js","webpack://pdf.js/node_modules/core-js/internals/to-length.js","webpack://pdf.js/node_modules/core-js/internals/to-object.js","webpack://pdf.js/node_modules/core-js/internals/to-offset.js","webpack://pdf.js/node_modules/core-js/internals/to-positive-integer.js","webpack://pdf.js/node_modules/core-js/internals/to-primitive.js","webpack://pdf.js/node_modules/core-js/internals/to-property-key.js","webpack://pdf.js/node_modules/core-js/internals/to-string-tag-support.js","webpack://pdf.js/node_modules/core-js/internals/to-string.js","webpack://pdf.js/node_modules/core-js/internals/try-node-require.js","webpack://pdf.js/node_modules/core-js/internals/try-to-string.js","webpack://pdf.js/node_modules/core-js/internals/uid.js","webpack://pdf.js/node_modules/core-js/internals/use-symbol-as-uid.js","webpack://pdf.js/node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://pdf.js/node_modules/core-js/internals/validate-arguments-length.js","webpack://pdf.js/node_modules/core-js/internals/weak-map-basic-detection.js","webpack://pdf.js/node_modules/core-js/internals/well-known-symbol.js","webpack://pdf.js/node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack://pdf.js/node_modules/core-js/modules/es.array.push.js","webpack://pdf.js/node_modules/core-js/modules/es.array.unshift.js","webpack://pdf.js/node_modules/core-js/modules/es.error.cause.js","webpack://pdf.js/node_modules/core-js/modules/es.regexp.flags.js","webpack://pdf.js/node_modules/core-js/modules/es.typed-array.find-last-index.js","webpack://pdf.js/node_modules/core-js/modules/es.typed-array.find-last.js","webpack://pdf.js/node_modules/core-js/modules/es.typed-array.set.js","webpack://pdf.js/node_modules/core-js/modules/es.typed-array.to-reversed.js","webpack://pdf.js/node_modules/core-js/modules/es.typed-array.to-sorted.js","webpack://pdf.js/node_modules/core-js/modules/es.typed-array.with.js","webpack://pdf.js/node_modules/core-js/modules/esnext.array-buffer.detached.js","webpack://pdf.js/node_modules/core-js/modules/esnext.array-buffer.transfer-to-fixed-length.js","webpack://pdf.js/node_modules/core-js/modules/esnext.array-buffer.transfer.js","webpack://pdf.js/node_modules/core-js/modules/esnext.iterator.constructor.js","webpack://pdf.js/node_modules/core-js/modules/esnext.iterator.every.js","webpack://pdf.js/node_modules/core-js/modules/esnext.iterator.filter.js","webpack://pdf.js/node_modules/core-js/modules/esnext.iterator.find.js","webpack://pdf.js/node_modules/core-js/modules/esnext.iterator.for-each.js","webpack://pdf.js/node_modules/core-js/modules/esnext.iterator.map.js","webpack://pdf.js/node_modules/core-js/modules/esnext.iterator.reduce.js","webpack://pdf.js/node_modules/core-js/modules/esnext.iterator.some.js","webpack://pdf.js/node_modules/core-js/modules/esnext.iterator.to-array.js","webpack://pdf.js/node_modules/core-js/modules/esnext.set.difference.v2.js","webpack://pdf.js/node_modules/core-js/modules/esnext.set.intersection.v2.js","webpack://pdf.js/node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js","webpack://pdf.js/node_modules/core-js/modules/esnext.set.is-subset-of.v2.js","webpack://pdf.js/node_modules/core-js/modules/esnext.set.is-superset-of.v2.js","webpack://pdf.js/node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js","webpack://pdf.js/node_modules/core-js/modules/esnext.set.union.v2.js","webpack://pdf.js/node_modules/core-js/modules/web.dom-exception.stack.js","webpack://pdf.js/node_modules/core-js/modules/web.self.js","webpack://pdf.js/node_modules/core-js/modules/web.url-search-params.delete.js","webpack://pdf.js/node_modules/core-js/modules/web.url-search-params.has.js","webpack://pdf.js/node_modules/core-js/modules/web.url-search-params.size.js","webpack://pdf.js/webpack/bootstrap","webpack://pdf.js/webpack/runtime/define property getters","webpack://pdf.js/webpack/runtime/hasOwnProperty shorthand","webpack://pdf.js/src/shared/util.js","webpack://pdf.js/src/core/primitives.js","webpack://pdf.js/src/core/base_stream.js","webpack://pdf.js/src/core/core_utils.js","webpack://pdf.js/src/core/stream.js","webpack://pdf.js/src/core/chunked_stream.js","webpack://pdf.js/src/core/colorspace.js","webpack://pdf.js/src/core/binary_cmap.js","webpack://pdf.js/src/core/decode_stream.js","webpack://pdf.js/src/core/ascii_85_stream.js","webpack://pdf.js/src/core/ascii_hex_stream.js","webpack://pdf.js/src/core/ccitt.js","webpack://pdf.js/src/core/ccitt_stream.js","webpack://pdf.js/src/core/flate_stream.js","webpack://pdf.js/src/core/arithmetic_decoder.js","webpack://pdf.js/src/core/jbig2.js","webpack://pdf.js/src/core/jbig2_stream.js","webpack://pdf.js/src/shared/image_utils.js","webpack://pdf.js/src/core/jpg.js","webpack://pdf.js/src/core/jpeg_stream.js","webpack://pdf.js/src/core/jpx.js","webpack://pdf.js/src/core/jpx_stream.js","webpack://pdf.js/src/core/lzw_stream.js","webpack://pdf.js/src/core/predictor_stream.js","webpack://pdf.js/src/core/run_length_stream.js","webpack://pdf.js/src/core/parser.js","webpack://pdf.js/src/core/cmap.js","webpack://pdf.js/src/core/charsets.js","webpack://pdf.js/src/core/encodings.js","webpack://pdf.js/src/core/cff_parser.js","webpack://pdf.js/src/core/glyphlist.js","webpack://pdf.js/src/core/unicode.js","webpack://pdf.js/src/core/fonts_utils.js","webpack://pdf.js/src/core/standard_fonts.js","webpack://pdf.js/src/core/to_unicode_map.js","webpack://pdf.js/src/core/cff_font.js","webpack://pdf.js/src/core/font_renderer.js","webpack://pdf.js/src/core/metrics.js","webpack://pdf.js/src/core/glyf.js","webpack://pdf.js/src/core/opentype_file_builder.js","webpack://pdf.js/src/core/type1_parser.js","webpack://pdf.js/src/core/type1_font.js","webpack://pdf.js/src/core/fonts.js","webpack://pdf.js/src/core/pattern.js","webpack://pdf.js/src/core/calibri_factors.js","webpack://pdf.js/src/core/helvetica_factors.js","webpack://pdf.js/src/core/liberationsans_widths.js","webpack://pdf.js/src/core/myriadpro_factors.js","webpack://pdf.js/src/core/segoeui_factors.js","webpack://pdf.js/src/core/xfa_fonts.js","webpack://pdf.js/src/core/ps_parser.js","webpack://pdf.js/src/core/image_utils.js","webpack://pdf.js/src/core/function.js","webpack://pdf.js/src/core/bidi.js","webpack://pdf.js/src/core/font_substitutions.js","webpack://pdf.js/src/core/image_resizer.js","webpack://pdf.js/src/shared/murmurhash3.js","webpack://pdf.js/src/core/operator_list.js","webpack://pdf.js/src/core/image.js","webpack://pdf.js/src/core/evaluator.js","webpack://pdf.js/src/core/default_appearance.js","webpack://pdf.js/src/core/name_number_tree.js","webpack://pdf.js/src/core/cleanup_helper.js","webpack://pdf.js/src/core/file_spec.js","webpack://pdf.js/src/core/xml_parser.js","webpack://pdf.js/src/core/metadata_parser.js","webpack://pdf.js/src/core/decrypt_stream.js","webpack://pdf.js/src/core/crypto.js","webpack://pdf.js/src/core/writer.js","webpack://pdf.js/src/core/struct_tree.js","webpack://pdf.js/src/core/catalog.js","webpack://pdf.js/src/core/object_loader.js","webpack://pdf.js/src/core/xfa/symbol_utils.js","webpack://pdf.js/src/core/xfa/namespaces.js","webpack://pdf.js/src/core/xfa/utils.js","webpack://pdf.js/src/core/xfa/fonts.js","webpack://pdf.js/src/core/xfa/text.js","webpack://pdf.js/src/core/xfa/som.js","webpack://pdf.js/src/core/xfa/xfa_object.js","webpack://pdf.js/src/core/xfa/html_utils.js","webpack://pdf.js/src/core/xfa/layout.js","webpack://pdf.js/src/core/xfa/template.js","webpack://pdf.js/src/core/xfa/bind.js","webpack://pdf.js/src/core/xfa/data.js","webpack://pdf.js/src/core/xfa/config.js","webpack://pdf.js/src/core/xfa/connection_set.js","webpack://pdf.js/src/core/xfa/datasets.js","webpack://pdf.js/src/core/xfa/locale_set.js","webpack://pdf.js/src/core/xfa/signature.js","webpack://pdf.js/src/core/xfa/stylesheet.js","webpack://pdf.js/src/core/xfa/xdp.js","webpack://pdf.js/src/core/xfa/xhtml.js","webpack://pdf.js/src/core/xfa/setup.js","webpack://pdf.js/src/core/xfa/unknown.js","webpack://pdf.js/src/core/xfa/builder.js","webpack://pdf.js/src/core/xfa/parser.js","webpack://pdf.js/src/core/xfa/factory.js","webpack://pdf.js/src/core/annotation.js","webpack://pdf.js/src/core/dataset_reader.js","webpack://pdf.js/src/core/xref.js","webpack://pdf.js/src/core/document.js","webpack://pdf.js/src/core/pdf_manager.js","webpack://pdf.js/src/shared/message_handler.js","webpack://pdf.js/src/core/worker_stream.js","webpack://pdf.js/src/core/worker.js","webpack://pdf.js/src/pdf.worker.js"],"sourcesContent":["'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n  if (isCallable(argument)) return argument;\n  throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n  if (isPossiblePrototype(argument)) return argument;\n  throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nvar has = require('../internals/set-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[SetData]])\nmodule.exports = function (it) {\n  has(it);\n  return it;\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n  if (isPrototypeOf(Prototype, it)) return it;\n  throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n  if (isObject(argument)) return argument;\n  throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\n// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar classof = require('../internals/classof-raw');\n\nvar $TypeError = TypeError;\n\n// Includes\n// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).\n// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception.\nmodule.exports = uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) {\n  if (classof(O) !== 'ArrayBuffer') throw new $TypeError('ArrayBuffer expected');\n  return O.byteLength;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\n\nvar slice = uncurryThis(ArrayBuffer.prototype.slice);\n\nmodule.exports = function (O) {\n  if (arrayBufferByteLength(O) !== 0) return false;\n  try {\n    slice(O, 0, 0);\n    return false;\n  } catch (error) {\n    return true;\n  }\n};\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar toIndex = require('../internals/to-index');\nvar isDetached = require('../internals/array-buffer-is-detached');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\nvar detachTransferable = require('../internals/detach-transferable');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = global.structuredClone;\nvar ArrayBuffer = global.ArrayBuffer;\nvar DataView = global.DataView;\nvar TypeError = global.TypeError;\nvar min = Math.min;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataViewPrototype = DataView.prototype;\nvar slice = uncurryThis(ArrayBufferPrototype.slice);\nvar isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get');\nvar maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get');\nvar getInt8 = uncurryThis(DataViewPrototype.getInt8);\nvar setInt8 = uncurryThis(DataViewPrototype.setInt8);\n\nmodule.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) {\n  var byteLength = arrayBufferByteLength(arrayBuffer);\n  var newByteLength = newLength === undefined ? byteLength : toIndex(newLength);\n  var fixedLength = !isResizable || !isResizable(arrayBuffer);\n  var newBuffer;\n  if (isDetached(arrayBuffer)) throw new TypeError('ArrayBuffer is detached');\n  if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n    arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] });\n    if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer;\n  }\n  if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) {\n    newBuffer = slice(arrayBuffer, 0, newByteLength);\n  } else {\n    var options = preserveResizability && !fixedLength && maxByteLength ? { maxByteLength: maxByteLength(arrayBuffer) } : undefined;\n    newBuffer = new ArrayBuffer(newByteLength, options);\n    var a = new DataView(arrayBuffer);\n    var b = new DataView(newBuffer);\n    var copyLength = min(newByteLength, byteLength);\n    for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i));\n  }\n  if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer);\n  return newBuffer;\n};\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n  Int8Array: 1,\n  Uint8Array: 1,\n  Uint8ClampedArray: 1,\n  Int16Array: 2,\n  Uint16Array: 2,\n  Int32Array: 4,\n  Uint32Array: 4,\n  Float32Array: 4,\n  Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n  BigInt64Array: 8,\n  BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n  if (!isObject(it)) return false;\n  var klass = classof(it);\n  return klass === 'DataView'\n    || hasOwn(TypedArrayConstructorsList, klass)\n    || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n  var proto = getPrototypeOf(it);\n  if (!isObject(proto)) return;\n  var state = getInternalState(proto);\n  return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n  if (!isObject(it)) return false;\n  var klass = classof(it);\n  return hasOwn(TypedArrayConstructorsList, klass)\n    || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n  if (isTypedArray(it)) return it;\n  throw new TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n  if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n  throw new TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n  if (!DESCRIPTORS) return;\n  if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n    var TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n      delete TypedArrayConstructor.prototype[KEY];\n    } catch (error) {\n      // old WebKit bug - some methods are non-configurable\n      try {\n        TypedArrayConstructor.prototype[KEY] = property;\n      } catch (error2) { /* empty */ }\n    }\n  }\n  if (!TypedArrayPrototype[KEY] || forced) {\n    defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n      : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n  }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n  var ARRAY, TypedArrayConstructor;\n  if (!DESCRIPTORS) return;\n  if (setPrototypeOf) {\n    if (forced) for (ARRAY in TypedArrayConstructorsList) {\n      TypedArrayConstructor = global[ARRAY];\n      if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n        delete TypedArrayConstructor[KEY];\n      } catch (error) { /* empty */ }\n    }\n    if (!TypedArray[KEY] || forced) {\n      // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n      try {\n        return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n      } catch (error) { /* empty */ }\n    } else return;\n  }\n  for (ARRAY in TypedArrayConstructorsList) {\n    TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n      defineBuiltIn(TypedArrayConstructor, KEY, property);\n    }\n  }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n  Constructor = global[NAME];\n  Prototype = Constructor && Constructor.prototype;\n  if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n  else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n  Constructor = global[NAME];\n  Prototype = Constructor && Constructor.prototype;\n  if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n  // eslint-disable-next-line no-shadow -- safe\n  TypedArray = function TypedArray() {\n    throw new TypeError('Incorrect invocation');\n  };\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n  }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n  TypedArrayPrototype = TypedArray.prototype;\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n  }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n  setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n  TYPED_ARRAY_TAG_REQUIRED = true;\n  defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {\n    configurable: true,\n    get: function () {\n      return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n    }\n  });\n  for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n    createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n  }\n}\n\nmodule.exports = {\n  NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n  TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n  aTypedArray: aTypedArray,\n  aTypedArrayConstructor: aTypedArrayConstructor,\n  exportTypedArrayMethod: exportTypedArrayMethod,\n  exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n  getTypedArrayConstructor: getTypedArrayConstructor,\n  isView: isView,\n  isTypedArray: isTypedArray,\n  TypedArray: TypedArray,\n  TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nmodule.exports = function (Constructor, list, $length) {\n  var index = 0;\n  var length = arguments.length > 2 ? $length : lengthOfArrayLike(list);\n  var result = new Constructor(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIndexedObject($this);\n    var length = lengthOfArrayLike(O);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (IS_INCLUDES && el !== el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare -- NaN check\n      if (value !== value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) {\n      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.includes` method\n  // https://tc39.es/ecma262/#sec-array.prototype.includes\n  includes: createMethod(true),\n  // `Array.prototype.indexOf` method\n  // https://tc39.es/ecma262/#sec-array.prototype.indexof\n  indexOf: createMethod(false)\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ findLast, findLastIndex }` methods implementation\nvar createMethod = function (TYPE) {\n  var IS_FIND_LAST_INDEX = TYPE === 1;\n  return function ($this, callbackfn, that) {\n    var O = toObject($this);\n    var self = IndexedObject(O);\n    var index = lengthOfArrayLike(self);\n    var boundFunction = bind(callbackfn, that);\n    var value, result;\n    while (index-- > 0) {\n      value = self[index];\n      result = boundFunction(value, index, O);\n      if (result) switch (TYPE) {\n        case 0: return value; // findLast\n        case 1: return index; // findLastIndex\n      }\n    }\n    return IS_FIND_LAST_INDEX ? -1 : undefined;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.findLast` method\n  // https://github.com/tc39/proposal-array-find-from-last\n  findLast: createMethod(0),\n  // `Array.prototype.findLastIndex` method\n  // https://github.com/tc39/proposal-array-find-from-last\n  findLastIndex: createMethod(1)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n  // makes no sense without proper strict mode support\n  if (this !== undefined) return true;\n  try {\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    Object.defineProperty([], 'length', { writable: false }).length = 1;\n  } catch (error) {\n    return error instanceof TypeError;\n  }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n  if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n    throw new $TypeError('Cannot set read only .length');\n  } return O.length = length;\n} : function (O, length) {\n  return O.length = length;\n};\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toReversed\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed\nmodule.exports = function (O, C) {\n  var len = lengthOfArrayLike(O);\n  var A = new C(len);\n  var k = 0;\n  for (; k < len; k++) A[k] = O[len - k - 1];\n  return A;\n};\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with\nmodule.exports = function (O, C, index, value) {\n  var len = lengthOfArrayLike(O);\n  var relativeIndex = toIntegerOrInfinity(index);\n  var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;\n  if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index');\n  var A = new C(len);\n  var k = 0;\n  for (; k < len; k++) A[k] = k === actualIndex ? value : O[k];\n  return A;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n  try {\n    return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n  } catch (error) {\n    iteratorClose(iterator, 'throw', error);\n  }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n  return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n  var O, tag, result;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n    // builtinTag case\n    : CORRECT_ARGUMENTS ? classofRaw(O)\n    // ES3 arguments fallback\n    : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n  var keys = ownKeys(source);\n  var defineProperty = definePropertyModule.f;\n  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n      defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n    }\n  }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  function F() { /* empty */ }\n  F.prototype.constructor = null;\n  // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n  return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n  return { value: value, done: done };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n  var propertyKey = toPropertyKey(key);\n  if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n  else object[propertyKey] = value;\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n  if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n  if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n  return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n  if (!options) options = {};\n  var simple = options.enumerable;\n  var name = options.name !== undefined ? options.name : key;\n  if (isCallable(value)) makeBuiltIn(value, name, options);\n  if (options.global) {\n    if (simple) O[key] = value;\n    else defineGlobalProperty(key, value);\n  } else {\n    try {\n      if (!options.unsafe) delete O[key];\n      else if (O[key]) simple = true;\n    } catch (error) { /* empty */ }\n    if (simple) O[key] = value;\n    else definePropertyModule.f(O, key, {\n      value: value,\n      enumerable: false,\n      configurable: !options.nonConfigurable,\n      writable: !options.nonWritable\n    });\n  } return O;\n};\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n  for (var key in src) defineBuiltIn(target, key, src[key], options);\n  return target;\n};\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n  try {\n    defineProperty(global, key, { value: value, configurable: true, writable: true });\n  } catch (error) {\n    global[key] = value;\n  } return value;\n};\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n  if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar tryNodeRequire = require('../internals/try-node-require');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = global.structuredClone;\nvar $ArrayBuffer = global.ArrayBuffer;\nvar $MessageChannel = global.MessageChannel;\nvar detach = false;\nvar WorkerThreads, channel, buffer, $detach;\n\nif (PROPER_STRUCTURED_CLONE_TRANSFER) {\n  detach = function (transferable) {\n    structuredClone(transferable, { transfer: [transferable] });\n  };\n} else if ($ArrayBuffer) try {\n  if (!$MessageChannel) {\n    WorkerThreads = tryNodeRequire('worker_threads');\n    if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel;\n  }\n\n  if ($MessageChannel) {\n    channel = new $MessageChannel();\n    buffer = new $ArrayBuffer(2);\n\n    $detach = function (transferable) {\n      channel.port1.postMessage(null, [transferable]);\n    };\n\n    if (buffer.byteLength === 2) {\n      $detach(buffer);\n      if (buffer.byteLength === 0) detach = $detach;\n    }\n  }\n} catch (error) { /* empty */ }\n\nmodule.exports = detach;\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n  if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n  return it;\n};\n","'use strict';\nmodule.exports = {\n  IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n  DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n  HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n  WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n  InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n  NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n  NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n  NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n  NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n  InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n  InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n  SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n  InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n  NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n  InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n  ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n  TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n  SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n  NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n  AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n  URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n  QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n  TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n  InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n  DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n","'use strict';\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n  && typeof window == 'object'\n  && typeof document == 'object';\n","'use strict';\n/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","'use strict';\nvar global = require('../internals/global');\nvar classof = require('../internals/classof-raw');\n\nmodule.exports = classof(global.process) === 'process';\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n  match = v8.split('.');\n  // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n  // but their correct versions are not interesting for us\n  version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n  match = userAgent.match(/Edge\\/(\\d+)/);\n  if (!match || match[1] >= 74) {\n    match = userAgent.match(/Chrome\\/(\\d+)/);\n    if (match) version = +match[1];\n  }\n}\n\nmodule.exports = version;\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n  'constructor',\n  'hasOwnProperty',\n  'isPrototypeOf',\n  'propertyIsEnumerable',\n  'toLocaleString',\n  'toString',\n  'valueOf'\n];\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n  if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n    while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n  } return stack;\n};\n","'use strict';\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\n// non-standard V8\nvar captureStackTrace = Error.captureStackTrace;\n\nmodule.exports = function (error, C, stack, dropEntries) {\n  if (ERROR_STACK_INSTALLABLE) {\n    if (captureStackTrace) captureStackTrace(error, C);\n    else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries));\n  }\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n  var error = new Error('a');\n  if (!('stack' in error)) return true;\n  // eslint-disable-next-line es/no-object-defineproperty -- safe\n  Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n  return error.stack !== 7;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n  options.target         - name of the target object\n  options.global         - target is the global object\n  options.stat           - export as static methods of target\n  options.proto          - export as prototype methods of target\n  options.real           - real prototype method for the `pure` version\n  options.forced         - export even if the native feature is available\n  options.bind           - bind methods to the target, required for the `pure` version\n  options.wrap           - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe         - use the simple assignment of property instead of delete + defineProperty\n  options.sham           - add a flag to not completely full polyfills\n  options.enumerable     - export as enumerable property\n  options.dontCallGetSet - prevent calling a getter on target\n  options.name           - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n  if (GLOBAL) {\n    target = global;\n  } else if (STATIC) {\n    target = global[TARGET] || defineGlobalProperty(TARGET, {});\n  } else {\n    target = (global[TARGET] || {}).prototype;\n  }\n  if (target) for (key in source) {\n    sourceProperty = source[key];\n    if (options.dontCallGetSet) {\n      descriptor = getOwnPropertyDescriptor(target, key);\n      targetProperty = descriptor && descriptor.value;\n    } else targetProperty = target[key];\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contained in target\n    if (!FORCED && targetProperty !== undefined) {\n      if (typeof sourceProperty == typeof targetProperty) continue;\n      copyConstructorProperties(sourceProperty, targetProperty);\n    }\n    // add a flag to not completely full polyfills\n    if (options.sham || (targetProperty && targetProperty.sham)) {\n      createNonEnumerableProperty(sourceProperty, 'sham', true);\n    }\n    defineBuiltIn(target, key, sourceProperty, options);\n  }\n};\n","'use strict';\nmodule.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n  return call.apply(apply, arguments);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n  aCallable(fn);\n  return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-function-prototype-bind -- safe\n  var test = (function () { /* empty */ }).bind();\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n  return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n  EXISTS: EXISTS,\n  PROPER: PROPER,\n  CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n  try {\n    // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n    return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n  } catch (error) { /* empty */ }\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n  // Nashorn bug:\n  //   https://github.com/zloirock/core-js/issues/1128\n  //   https://github.com/zloirock/core-js/issues/1130\n  if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n  return function () {\n    return call.apply(fn, arguments);\n  };\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n  return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","'use strict';\n// `GetIteratorDirect(obj)` abstract operation\n// https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect\nmodule.exports = function (obj) {\n  return {\n    iterator: obj,\n    next: obj.next,\n    done: false\n  };\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n  if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n    || getMethod(it, '@@iterator')\n    || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n  var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n  if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n  throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n  var func = V[P];\n  return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar call = require('../internals/function-call');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar INVALID_SIZE = 'Invalid size';\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar max = Math.max;\n\nvar SetRecord = function (set, intSize) {\n  this.set = set;\n  this.size = max(intSize, 0);\n  this.has = aCallable(set.has);\n  this.keys = aCallable(set.keys);\n};\n\nSetRecord.prototype = {\n  getIterator: function () {\n    return getIteratorDirect(anObject(call(this.keys, this.set)));\n  },\n  includes: function (it) {\n    return call(this.has, this.set, it);\n  }\n};\n\n// `GetSetRecord` abstract operation\n// https://tc39.es/proposal-set-methods/#sec-getsetrecord\nmodule.exports = function (obj) {\n  anObject(obj);\n  var numSize = +obj.size;\n  // NOTE: If size is undefined, then numSize will be NaN\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (numSize !== numSize) throw new $TypeError(INVALID_SIZE);\n  var intSize = toIntegerOrInfinity(numSize);\n  if (intSize < 0) throw new $RangeError(INVALID_SIZE);\n  return new SetRecord(obj, intSize);\n};\n","'use strict';\nvar check = function (it) {\n  return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n  // eslint-disable-next-line es/no-global-this -- safe\n  check(typeof globalThis == 'object' && globalThis) ||\n  check(typeof window == 'object' && window) ||\n  // eslint-disable-next-line no-restricted-globals -- safe\n  check(typeof self == 'object' && self) ||\n  check(typeof global == 'object' && global) ||\n  check(typeof this == 'object' && this) ||\n  // eslint-disable-next-line no-new-func -- fallback\n  (function () { return this; })() || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n  return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n  return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n  var NewTarget, NewTargetPrototype;\n  if (\n    // it can work only with native `setPrototypeOf`\n    setPrototypeOf &&\n    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n    isCallable(NewTarget = dummy.constructor) &&\n    NewTarget !== Wrapper &&\n    isObject(NewTargetPrototype = NewTarget.prototype) &&\n    NewTargetPrototype !== Wrapper.prototype\n  ) setPrototypeOf($this, NewTargetPrototype);\n  return $this;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n  store.inspectSource = function (it) {\n    return functionToString(it);\n  };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n  if (isObject(options) && 'cause' in options) {\n    createNonEnumerableProperty(O, 'cause', options.cause);\n  }\n};\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n  return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n  return function (it) {\n    var state;\n    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n      throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n    } return state;\n  };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n  var store = shared.state || (shared.state = new WeakMap());\n  /* eslint-disable no-self-assign -- prototype methods protection */\n  store.get = store.get;\n  store.has = store.has;\n  store.set = store.set;\n  /* eslint-enable no-self-assign -- prototype methods protection */\n  set = function (it, metadata) {\n    if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    store.set(it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return store.get(it) || {};\n  };\n  has = function (it) {\n    return store.has(it);\n  };\n} else {\n  var STATE = sharedKey('state');\n  hiddenKeys[STATE] = true;\n  set = function (it, metadata) {\n    if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    createNonEnumerableProperty(it, STATE, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return hasOwn(it, STATE) ? it[STATE] : {};\n  };\n  has = function (it) {\n    return hasOwn(it, STATE);\n  };\n}\n\nmodule.exports = {\n  set: set,\n  get: get,\n  has: has,\n  enforce: enforce,\n  getterFor: getterFor\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n  return classof(argument) === 'Array';\n};\n","'use strict';\nvar classof = require('../internals/classof');\n\nmodule.exports = function (it) {\n  var klass = classof(it);\n  return klass === 'BigInt64Array' || klass === 'BigUint64Array';\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n  return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n  return typeof argument == 'function';\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n  var value = data[normalize(feature)];\n  return value === POLYFILL ? true\n    : value === NATIVE ? false\n    : isCallable(detection) ? fails(detection)\n    : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n  return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n  return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n  return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n  return isObject(argument) || argument === null;\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  var $Symbol = getBuiltIn('Symbol');\n  return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar call = require('../internals/function-call');\n\nmodule.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {\n  var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;\n  var next = record.next;\n  var step, result;\n  while (!(step = call(next, iterator)).done) {\n    result = fn(step.value);\n    if (result !== undefined) return result;\n  }\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n  this.stopped = stopped;\n  this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n  var that = options && options.that;\n  var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n  var IS_RECORD = !!(options && options.IS_RECORD);\n  var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n  var INTERRUPTED = !!(options && options.INTERRUPTED);\n  var fn = bind(unboundFunction, that);\n  var iterator, iterFn, index, length, result, next, step;\n\n  var stop = function (condition) {\n    if (iterator) iteratorClose(iterator, 'normal', condition);\n    return new Result(true, condition);\n  };\n\n  var callFn = function (value) {\n    if (AS_ENTRIES) {\n      anObject(value);\n      return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n    } return INTERRUPTED ? fn(value, stop) : fn(value);\n  };\n\n  if (IS_RECORD) {\n    iterator = iterable.iterator;\n  } else if (IS_ITERATOR) {\n    iterator = iterable;\n  } else {\n    iterFn = getIteratorMethod(iterable);\n    if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n    // optimisation for array iterators\n    if (isArrayIteratorMethod(iterFn)) {\n      for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n        result = callFn(iterable[index]);\n        if (result && isPrototypeOf(ResultPrototype, result)) return result;\n      } return new Result(false);\n    }\n    iterator = getIterator(iterable, iterFn);\n  }\n\n  next = IS_RECORD ? iterable.next : iterator.next;\n  while (!(step = call(next, iterator)).done) {\n    try {\n      result = callFn(step.value);\n    } catch (error) {\n      iteratorClose(iterator, 'throw', error);\n    }\n    if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n  } return new Result(false);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n  var innerResult, innerError;\n  anObject(iterator);\n  try {\n    innerResult = getMethod(iterator, 'return');\n    if (!innerResult) {\n      if (kind === 'throw') throw value;\n      return value;\n    }\n    innerResult = call(innerResult, iterator);\n  } catch (error) {\n    innerError = true;\n    innerResult = error;\n  }\n  if (kind === 'throw') throw value;\n  if (innerError) throw innerResult;\n  anObject(innerResult);\n  return value;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar getMethod = require('../internals/get-method');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ITERATOR_HELPER = 'IteratorHelper';\nvar WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';\nvar setInternalState = InternalStateModule.set;\n\nvar createIteratorProxyPrototype = function (IS_ITERATOR) {\n  var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);\n\n  return defineBuiltIns(create(IteratorPrototype), {\n    next: function next() {\n      var state = getInternalState(this);\n      // for simplification:\n      //   for `%WrapForValidIteratorPrototype%.next` our `nextHandler` returns `IterResultObject`\n      //   for `%IteratorHelperPrototype%.next` - just a value\n      if (IS_ITERATOR) return state.nextHandler();\n      try {\n        var result = state.done ? undefined : state.nextHandler();\n        return createIterResultObject(result, state.done);\n      } catch (error) {\n        state.done = true;\n        throw error;\n      }\n    },\n    'return': function () {\n      var state = getInternalState(this);\n      var iterator = state.iterator;\n      state.done = true;\n      if (IS_ITERATOR) {\n        var returnMethod = getMethod(iterator, 'return');\n        return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);\n      }\n      if (state.inner) try {\n        iteratorClose(state.inner.iterator, 'normal');\n      } catch (error) {\n        return iteratorClose(iterator, 'throw', error);\n      }\n      iteratorClose(iterator, 'normal');\n      return createIterResultObject(undefined, true);\n    }\n  });\n};\n\nvar WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);\nvar IteratorHelperPrototype = createIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR) {\n  var IteratorProxy = function Iterator(record, state) {\n    if (state) {\n      state.iterator = record.iterator;\n      state.next = record.next;\n    } else state = record;\n    state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;\n    state.nextHandler = nextHandler;\n    state.counter = 0;\n    state.done = false;\n    setInternalState(this, state);\n  };\n\n  IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;\n\n  return IteratorProxy;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterator = this.iterator;\n  var result = anObject(call(this.next, iterator));\n  var done = this.done = !!result.done;\n  if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);\n});\n\n// `Iterator.prototype.map` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function map(mapper) {\n  anObject(this);\n  aCallable(mapper);\n  return new IteratorProxy(getIteratorDirect(this), {\n    mapper: mapper\n  });\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n  arrayIterator = [].keys();\n  // Safari 8 has buggy iterators w/o `next`\n  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n  else {\n    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n  }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n  var test = {};\n  // FF44- legacy iterators case\n  return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n  defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n    return this;\n  });\n}\n\nmodule.exports = {\n  IteratorPrototype: IteratorPrototype,\n  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n  return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n  return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n  if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n    name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n  }\n  if (options && options.getter) name = 'get ' + name;\n  if (options && options.setter) name = 'set ' + name;\n  if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n    if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n    else value.name = name;\n  }\n  if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n    defineProperty(value, 'length', { value: options.arity });\n  }\n  try {\n    if (options && hasOwn(options, 'constructor') && options.constructor) {\n      if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n    // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n    } else if (value.prototype) value.prototype = undefined;\n  } catch (error) { /* empty */ }\n  var state = enforceInternalState(value);\n  if (!hasOwn(state, 'source')) {\n    state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n  } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n  return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n  var n = +x;\n  return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n  return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n  activeXDocument.write(scriptTag(''));\n  activeXDocument.close();\n  var temp = activeXDocument.parentWindow.Object;\n  activeXDocument = null; // avoid memory leak\n  return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = documentCreateElement('iframe');\n  var JS = 'java' + SCRIPT + ':';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  html.appendChild(iframe);\n  // https://github.com/zloirock/core-js/issues/475\n  iframe.src = String(JS);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(scriptTag('document.F=Object'));\n  iframeDocument.close();\n  return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n  try {\n    activeXDocument = new ActiveXObject('htmlfile');\n  } catch (error) { /* ignore */ }\n  NullProtoObject = typeof document != 'undefined'\n    ? document.domain && activeXDocument\n      ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n      : NullProtoObjectViaIFrame()\n    : NullProtoObjectViaActiveX(activeXDocument); // WSH\n  var length = enumBugKeys.length;\n  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n  return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    EmptyConstructor[PROTOTYPE] = anObject(O);\n    result = new EmptyConstructor();\n    EmptyConstructor[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = NullProtoObject();\n  return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var props = toIndexedObject(Properties);\n  var keys = objectKeys(Properties);\n  var length = keys.length;\n  var index = 0;\n  var key;\n  while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n  return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n    var current = $getOwnPropertyDescriptor(O, P);\n    if (current && current[WRITABLE]) {\n      O[P] = Attributes.value;\n      Attributes = {\n        configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n        enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n        writable: false\n      };\n    }\n  } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return $defineProperty(O, P, Attributes);\n  } catch (error) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n  O = toIndexedObject(O);\n  P = toPropertyKey(P);\n  if (IE8_DOM_DEFINE) try {\n    return $getOwnPropertyDescriptor(O, P);\n  } catch (error) { /* empty */ }\n  if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n  var object = toObject(O);\n  if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n  var constructor = object.constructor;\n  if (isCallable(constructor) && object instanceof constructor) {\n    return constructor.prototype;\n  } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n  var O = toIndexedObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (hasOwn(O, key = names[i++])) {\n    ~indexOf(result, key) || push(result, key);\n  }\n  return result;\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n  return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n  var descriptor = getOwnPropertyDescriptor(this, V);\n  return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n  var CORRECT_SETTER = false;\n  var test = {};\n  var setter;\n  try {\n    setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n    setter(test, []);\n    CORRECT_SETTER = test instanceof Array;\n  } catch (error) { /* empty */ }\n  return function setPrototypeOf(O, proto) {\n    anObject(O);\n    aPossiblePrototype(proto);\n    if (CORRECT_SETTER) setter(O, proto);\n    else O.__proto__ = proto;\n    return O;\n  };\n}() : undefined);\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n  var fn, val;\n  if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n  if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n  var keys = getOwnPropertyNamesModule.f(anObject(it));\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (Target, Source, key) {\n  key in Target || defineProperty(Target, key, {\n    configurable: true,\n    get: function () { return Source[key]; },\n    set: function (it) { Source[key] = it; }\n  });\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n  var that = anObject(this);\n  var result = '';\n  if (that.hasIndices) result += 'd';\n  if (that.global) result += 'g';\n  if (that.ignoreCase) result += 'i';\n  if (that.multiline) result += 'm';\n  if (that.dotAll) result += 's';\n  if (that.unicode) result += 'u';\n  if (that.unicodeSets) result += 'v';\n  if (that.sticky) result += 'y';\n  return result;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n  return it;\n};\n","'use strict';\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\nmodule.exports = function (set) {\n  var result = new Set();\n  iterate(set, function (it) {\n    add(result, it);\n  });\n  return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function difference(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  var result = clone(O);\n  if (size(O) <= otherRec.size) iterateSet(O, function (e) {\n    if (otherRec.includes(e)) remove(result, e);\n  });\n  else iterateSimple(otherRec.getIterator(), function (e) {\n    if (has(O, e)) remove(result, e);\n  });\n  return result;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-set -- safe\nvar SetPrototype = Set.prototype;\n\nmodule.exports = {\n  // eslint-disable-next-line es/no-set -- safe\n  Set: Set,\n  add: uncurryThis(SetPrototype.add),\n  has: uncurryThis(SetPrototype.has),\n  remove: uncurryThis(SetPrototype['delete']),\n  proto: SetPrototype\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function intersection(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  var result = new Set();\n\n  if (size(O) > otherRec.size) {\n    iterateSimple(otherRec.getIterator(), function (e) {\n      if (has(O, e)) add(result, e);\n    });\n  } else {\n    iterateSet(O, function (e) {\n      if (otherRec.includes(e)) add(result, e);\n    });\n  }\n\n  return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom\nmodule.exports = function isDisjointFrom(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  if (size(O) <= otherRec.size) return iterateSet(O, function (e) {\n    if (otherRec.includes(e)) return false;\n  }, true) !== false;\n  var iterator = otherRec.getIterator();\n  return iterateSimple(iterator, function (e) {\n    if (has(O, e)) return iteratorClose(iterator, 'normal', false);\n  }) !== false;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar size = require('../internals/set-size');\nvar iterate = require('../internals/set-iterate');\nvar getSetRecord = require('../internals/get-set-record');\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf\nmodule.exports = function isSubsetOf(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  if (size(O) > otherRec.size) return false;\n  return iterate(O, function (e) {\n    if (!otherRec.includes(e)) return false;\n  }, true) !== false;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf\nmodule.exports = function isSupersetOf(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  if (size(O) < otherRec.size) return false;\n  var iterator = otherRec.getIterator();\n  return iterateSimple(iterator, function (e) {\n    if (!has(O, e)) return iteratorClose(iterator, 'normal', false);\n  }) !== false;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar SetHelpers = require('../internals/set-helpers');\n\nvar Set = SetHelpers.Set;\nvar SetPrototype = SetHelpers.proto;\nvar forEach = uncurryThis(SetPrototype.forEach);\nvar keys = uncurryThis(SetPrototype.keys);\nvar next = keys(new Set()).next;\n\nmodule.exports = function (set, fn, interruptible) {\n  return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar createSetLike = function (size) {\n  return {\n    size: size,\n    has: function () {\n      return false;\n    },\n    keys: function () {\n      return {\n        next: function () {\n          return { done: true };\n        }\n      };\n    }\n  };\n};\n\nmodule.exports = function (name) {\n  var Set = getBuiltIn('Set');\n  try {\n    new Set()[name](createSetLike(0));\n    try {\n      // late spec change, early WebKit ~ Safari 17.0 beta implementation does not pass it\n      // https://github.com/tc39/proposal-set-methods/pull/88\n      new Set()[name](createSetLike(-1));\n      return false;\n    } catch (error2) {\n      return true;\n    }\n  } catch (error) {\n    return false;\n  }\n};\n","'use strict';\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar SetHelpers = require('../internals/set-helpers');\n\nmodule.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {\n  return set.size;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function symmetricDifference(other) {\n  var O = aSet(this);\n  var keysIter = getSetRecord(other).getIterator();\n  var result = clone(O);\n  iterateSimple(keysIter, function (e) {\n    if (has(O, e)) remove(result, e);\n    else add(result, e);\n  });\n  return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar add = require('../internals/set-helpers').add;\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function union(other) {\n  var O = aSet(this);\n  var keysIter = getSetRecord(other).getIterator();\n  var result = clone(O);\n  iterateSimple(keysIter, function (it) {\n    add(result, it);\n  });\n  return result;\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n  return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: '3.35.0',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n  license: 'https://github.com/zloirock/core-js/blob/v3.35.0/LICENSE',\n  source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar V8 = require('../internals/engine-v8-version');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar structuredClone = global.structuredClone;\n\nmodule.exports = !!structuredClone && !fails(function () {\n  // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation\n  // https://github.com/zloirock/core-js/issues/679\n  if ((IS_DENO && V8 > 92) || (IS_NODE && V8 > 94) || (IS_BROWSER && V8 > 97)) return false;\n  var buffer = new ArrayBuffer(8);\n  var clone = structuredClone(buffer, { transfer: [buffer] });\n  return buffer.byteLength !== 0 || clone.byteLength !== 8;\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  var symbol = Symbol('symbol detection');\n  // Chrome 38 Symbol has incorrect toString conversion\n  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n  // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n  // of course, fail.\n  return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n    // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n    !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n  var integer = toIntegerOrInfinity(index);\n  return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n  var prim = toPrimitive(argument, 'number');\n  if (typeof prim == 'number') throw new $TypeError(\"Can't convert number to bigint\");\n  // eslint-disable-next-line es/no-bigint -- safe\n  return BigInt(prim);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar $RangeError = RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n  if (it === undefined) return 0;\n  var number = toIntegerOrInfinity(it);\n  var length = toLength(number);\n  if (number !== length) throw new $RangeError('Wrong length or index');\n  return length;\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n  return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n  var number = +argument;\n  // eslint-disable-next-line no-self-compare -- NaN check\n  return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n  return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar toPositiveInteger = require('../internals/to-positive-integer');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it, BYTES) {\n  var offset = toPositiveInteger(it);\n  if (offset % BYTES) throw new $RangeError('Wrong offset');\n  return offset;\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n  var result = toIntegerOrInfinity(it);\n  if (result < 0) throw new $RangeError(\"The argument can't be less than 0\");\n  return result;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n  if (!isObject(input) || isSymbol(input)) return input;\n  var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n  var result;\n  if (exoticToPrim) {\n    if (pref === undefined) pref = 'default';\n    result = call(exoticToPrim, input, pref);\n    if (!isObject(result) || isSymbol(result)) return result;\n    throw new $TypeError(\"Can't convert object to primitive value\");\n  }\n  if (pref === undefined) pref = 'number';\n  return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n  var key = toPrimitive(argument, 'string');\n  return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n  if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n  return $String(argument);\n};\n","'use strict';\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = function (name) {\n  try {\n    // eslint-disable-next-line no-new-func -- safe\n    if (IS_NODE) return Function('return require(\"' + name + '\")')();\n  } catch (error) { /* empty */ }\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n  try {\n    return $String(argument);\n  } catch (error) {\n    return 'Object';\n  }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n  return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n  && !Symbol.sham\n  && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n    value: 42,\n    writable: false\n  }).prototype !== 42;\n});\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n  if (passed < required) throw new $TypeError('Not enough arguments');\n  return passed;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n  if (!hasOwn(WellKnownSymbolsStore, name)) {\n    WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n      ? Symbol[name]\n      : createWellKnownSymbol('Symbol.' + name);\n  } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar installErrorCause = require('../internals/install-error-cause');\nvar installErrorStack = require('../internals/error-stack-install');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nmodule.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {\n  var STACK_TRACE_LIMIT = 'stackTraceLimit';\n  var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;\n  var path = FULL_NAME.split('.');\n  var ERROR_NAME = path[path.length - 1];\n  var OriginalError = getBuiltIn.apply(null, path);\n\n  if (!OriginalError) return;\n\n  var OriginalErrorPrototype = OriginalError.prototype;\n\n  // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006\n  if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;\n\n  if (!FORCED) return OriginalError;\n\n  var BaseError = getBuiltIn('Error');\n\n  var WrappedError = wrapper(function (a, b) {\n    var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);\n    var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();\n    if (message !== undefined) createNonEnumerableProperty(result, 'message', message);\n    installErrorStack(result, WrappedError, result.stack, 2);\n    if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);\n    if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n    return result;\n  });\n\n  WrappedError.prototype = OriginalErrorPrototype;\n\n  if (ERROR_NAME !== 'Error') {\n    if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n    else copyConstructorProperties(WrappedError, BaseError, { name: true });\n  } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) {\n    proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT);\n    proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace');\n  }\n\n  copyConstructorProperties(WrappedError, OriginalError);\n\n  if (!IS_PURE) try {\n    // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n    if (OriginalErrorPrototype.name !== ERROR_NAME) {\n      createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n    }\n    OriginalErrorPrototype.constructor = WrappedError;\n  } catch (error) { /* empty */ }\n\n  return WrappedError;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n  return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n  try {\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    Object.defineProperty([], 'length', { writable: false }).push();\n  } catch (error) {\n    return error instanceof TypeError;\n  }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  push: function push(item) {\n    var O = toObject(this);\n    var len = lengthOfArrayLike(O);\n    var argCount = arguments.length;\n    doesNotExceedSafeInteger(len + argCount);\n    for (var i = 0; i < argCount; i++) {\n      O[len] = arguments[i];\n      len++;\n    }\n    setArrayLength(O, len);\n    return len;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\n\n// IE8-\nvar INCORRECT_RESULT = [].unshift(0) !== 1;\n\n// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError\nvar properErrorOnNonWritableLength = function () {\n  try {\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    Object.defineProperty([], 'length', { writable: false }).unshift();\n  } catch (error) {\n    return error instanceof TypeError;\n  }\n};\n\nvar FORCED = INCORRECT_RESULT || !properErrorOnNonWritableLength();\n\n// `Array.prototype.unshift` method\n// https://tc39.es/ecma262/#sec-array.prototype.unshift\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  unshift: function unshift(item) {\n    var O = toObject(this);\n    var len = lengthOfArrayLike(O);\n    var argCount = arguments.length;\n    if (argCount) {\n      doesNotExceedSafeInteger(len + argCount);\n      var k = len;\n      while (k--) {\n        var to = k + argCount;\n        if (k in O) O[to] = O[k];\n        else deletePropertyOrThrow(O, to);\n      }\n      for (var j = 0; j < argCount; j++) {\n        O[j] = arguments[j];\n      }\n    } return setArrayLength(O, len + argCount);\n  }\n});\n","'use strict';\n/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = global[WEB_ASSEMBLY];\n\n// eslint-disable-next-line es/no-error-cause -- feature detection\nvar FORCED = new Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n  var O = {};\n  O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n  $({ global: true, constructor: true, arity: 1, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n  if (WebAssembly && WebAssembly[ERROR_NAME]) {\n    var O = {};\n    O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n    $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);\n  }\n};\n\n// https://tc39.es/ecma262/#sec-nativeerror\nexportGlobalErrorCauseWrapper('Error', function (init) {\n  return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n  return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n  return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n  return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n  return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n  return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n  return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n  return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n  return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n  return function RuntimeError(message) { return apply(init, this, arguments); };\n});\n","'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar regExpFlags = require('../internals/regexp-flags');\nvar fails = require('../internals/fails');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError\nvar RegExp = global.RegExp;\nvar RegExpPrototype = RegExp.prototype;\n\nvar FORCED = DESCRIPTORS && fails(function () {\n  var INDICES_SUPPORT = true;\n  try {\n    RegExp('.', 'd');\n  } catch (error) {\n    INDICES_SUPPORT = false;\n  }\n\n  var O = {};\n  // modern V8 bug\n  var calls = '';\n  var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy';\n\n  var addGetter = function (key, chr) {\n    // eslint-disable-next-line es/no-object-defineproperty -- safe\n    Object.defineProperty(O, key, { get: function () {\n      calls += chr;\n      return true;\n    } });\n  };\n\n  var pairs = {\n    dotAll: 's',\n    global: 'g',\n    ignoreCase: 'i',\n    multiline: 'm',\n    sticky: 'y'\n  };\n\n  if (INDICES_SUPPORT) pairs.hasIndices = 'd';\n\n  for (var key in pairs) addGetter(key, pairs[key]);\n\n  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n  var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O);\n\n  return result !== expected || calls !== expected;\n});\n\n// `RegExp.prototype.flags` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nif (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', {\n  configurable: true,\n  get: regExpFlags\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLastIndex = require('../internals/array-iteration-from-last').findLastIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLastIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlastindex\nexportTypedArrayMethod('findLastIndex', function findLastIndex(predicate /* , thisArg */) {\n  return $findLastIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLast = require('../internals/array-iteration-from-last').findLast;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLast` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlast\nexportTypedArrayMethod('findLast', function findLast(predicate /* , thisArg */) {\n  return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS = !fails(function () {\n  // eslint-disable-next-line es/no-typed-arrays -- required for testing\n  var array = new Uint8ClampedArray(2);\n  call($set, array, { length: 1, 0: 3 }, 1);\n  return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n  var array = new Int8Array(2);\n  array.set(1);\n  array.set('2', 1);\n  return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n  aTypedArray(this);\n  var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n  var src = toIndexedObject(arrayLike);\n  if (WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n  var length = this.length;\n  var len = lengthOfArrayLike(src);\n  var index = 0;\n  if (len + offset > length) throw new RangeError('Wrong length');\n  while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n","'use strict';\nvar arrayToReversed = require('../internals/array-to-reversed');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\n\n// `%TypedArray%.prototype.toReversed` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.toreversed\nexportTypedArrayMethod('toReversed', function toReversed() {\n  return arrayToReversed(aTypedArray(this), getTypedArrayConstructor(this));\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort);\n\n// `%TypedArray%.prototype.toSorted` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tosorted\nexportTypedArrayMethod('toSorted', function toSorted(compareFn) {\n  if (compareFn !== undefined) aCallable(compareFn);\n  var O = aTypedArray(this);\n  var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O);\n  return sort(A, compareFn);\n});\n","'use strict';\nvar arrayWith = require('../internals/array-with');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toBigInt = require('../internals/to-big-int');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar PROPER_ORDER = !!function () {\n  try {\n    // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n    new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } });\n  } catch (error) {\n    // some early implementations, like WebKit, does not follow the final semantic\n    // https://github.com/tc39/proposal-change-array-by-copy/pull/86\n    return error === 8;\n  }\n}();\n\n// `%TypedArray%.prototype.with` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with\nexportTypedArrayMethod('with', { 'with': function (index, value) {\n  var O = aTypedArray(this);\n  var relativeIndex = toIntegerOrInfinity(index);\n  var actualValue = isBigIntArray(O) ? toBigInt(value) : +value;\n  return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue);\n} }['with'], !PROPER_ORDER);\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isDetached = require('../internals/array-buffer-is-detached');\n\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\n\nif (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) {\n  defineBuiltInAccessor(ArrayBufferPrototype, 'detached', {\n    configurable: true,\n    get: function detached() {\n      return isDetached(this);\n    }\n  });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transferToFixedLength` method\n// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfertofixedlength\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n  transferToFixedLength: function transferToFixedLength() {\n    return $transfer(this, arguments.length ? arguments[0] : undefined, false);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transfer` method\n// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfer\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n  transfer: function transfer() {\n    return $transfer(this, arguments.length ? arguments[0] : undefined, true);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar createProperty = require('../internals/create-property');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar CONSTRUCTOR = 'constructor';\nvar ITERATOR = 'Iterator';\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar $TypeError = TypeError;\nvar NativeIterator = global[ITERATOR];\n\n// FF56- have non-standard global helper `Iterator`\nvar FORCED = IS_PURE\n  || !isCallable(NativeIterator)\n  || NativeIterator.prototype !== IteratorPrototype\n  // FF44- non-standard `Iterator` passes previous tests\n  || !fails(function () { NativeIterator({}); });\n\nvar IteratorConstructor = function Iterator() {\n  anInstance(this, IteratorPrototype);\n  if (getPrototypeOf(this) === IteratorPrototype) throw new $TypeError('Abstract class Iterator not directly constructable');\n};\n\nvar defineIteratorPrototypeAccessor = function (key, value) {\n  if (DESCRIPTORS) {\n    defineBuiltInAccessor(IteratorPrototype, key, {\n      configurable: true,\n      get: function () {\n        return value;\n      },\n      set: function (replacement) {\n        anObject(this);\n        if (this === IteratorPrototype) throw new $TypeError(\"You can't redefine this property\");\n        if (hasOwn(this, key)) this[key] = replacement;\n        else createProperty(this, key, replacement);\n      }\n    });\n  } else IteratorPrototype[key] = value;\n};\n\nif (!hasOwn(IteratorPrototype, TO_STRING_TAG)) defineIteratorPrototypeAccessor(TO_STRING_TAG, ITERATOR);\n\nif (FORCED || !hasOwn(IteratorPrototype, CONSTRUCTOR) || IteratorPrototype[CONSTRUCTOR] === Object) {\n  defineIteratorPrototypeAccessor(CONSTRUCTOR, IteratorConstructor);\n}\n\nIteratorConstructor.prototype = IteratorPrototype;\n\n// `Iterator` constructor\n// https://github.com/tc39/proposal-iterator-helpers\n$({ global: true, constructor: true, forced: FORCED }, {\n  Iterator: IteratorConstructor\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.every` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n  every: function every(predicate) {\n    anObject(this);\n    aCallable(predicate);\n    var record = getIteratorDirect(this);\n    var counter = 0;\n    return !iterate(record, function (value, stop) {\n      if (!predicate(value, counter++)) return stop();\n    }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar IS_PURE = require('../internals/is-pure');\n\nvar IteratorProxy = createIteratorProxy(function () {\n  var iterator = this.iterator;\n  var predicate = this.predicate;\n  var next = this.next;\n  var result, done, value;\n  while (true) {\n    result = anObject(call(next, iterator));\n    done = this.done = !!result.done;\n    if (done) return;\n    value = result.value;\n    if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;\n  }\n});\n\n// `Iterator.prototype.filter` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n  filter: function filter(predicate) {\n    anObject(this);\n    aCallable(predicate);\n    return new IteratorProxy(getIteratorDirect(this), {\n      predicate: predicate\n    });\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.find` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n  find: function find(predicate) {\n    anObject(this);\n    aCallable(predicate);\n    var record = getIteratorDirect(this);\n    var counter = 0;\n    return iterate(record, function (value, stop) {\n      if (predicate(value, counter++)) return stop(value);\n    }, { IS_RECORD: true, INTERRUPTED: true }).result;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.forEach` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n  forEach: function forEach(fn) {\n    anObject(this);\n    aCallable(fn);\n    var record = getIteratorDirect(this);\n    var counter = 0;\n    iterate(record, function (value) {\n      fn(value, counter++);\n    }, { IS_RECORD: true });\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar map = require('../internals/iterator-map');\nvar IS_PURE = require('../internals/is-pure');\n\n// `Iterator.prototype.map` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n  map: map\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar $TypeError = TypeError;\n\n// `Iterator.prototype.reduce` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n  reduce: function reduce(reducer /* , initialValue */) {\n    anObject(this);\n    aCallable(reducer);\n    var record = getIteratorDirect(this);\n    var noInitial = arguments.length < 2;\n    var accumulator = noInitial ? undefined : arguments[1];\n    var counter = 0;\n    iterate(record, function (value) {\n      if (noInitial) {\n        noInitial = false;\n        accumulator = value;\n      } else {\n        accumulator = reducer(accumulator, value, counter);\n      }\n      counter++;\n    }, { IS_RECORD: true });\n    if (noInitial) throw new $TypeError('Reduce of empty iterator with no initial value');\n    return accumulator;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.some` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n  some: function some(predicate) {\n    anObject(this);\n    aCallable(predicate);\n    var record = getIteratorDirect(this);\n    var counter = 0;\n    return iterate(record, function (value, stop) {\n      if (predicate(value, counter++)) return stop();\n    }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar iterate = require('../internals/iterate');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar push = [].push;\n\n// `Iterator.prototype.toArray` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n  toArray: function toArray() {\n    var result = [];\n    iterate(getIteratorDirect(anObject(this)), push, { that: result, IS_RECORD: true });\n    return result;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar difference = require('../internals/set-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('difference') }, {\n  difference: difference\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar intersection = require('../internals/set-intersection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('intersection') || fails(function () {\n  // eslint-disable-next-line es/no-array-from, es/no-set -- testing\n  return Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2]))) !== '3,2';\n});\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n  intersection: intersection\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isDisjointFrom = require('../internals/set-is-disjoint-from');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isDisjointFrom` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, {\n  isDisjointFrom: isDisjointFrom\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isSubsetOf = require('../internals/set-is-subset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isSubsetOf` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSubsetOf') }, {\n  isSubsetOf: isSubsetOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isSupersetOf = require('../internals/set-is-superset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isSupersetOf` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, {\n  isSupersetOf: isSupersetOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar symmetricDifference = require('../internals/set-symmetric-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, {\n  symmetricDifference: symmetricDifference\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar union = require('../internals/set-union');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, {\n  union: union\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n  anInstance(this, DOMExceptionPrototype);\n  var argumentsLength = arguments.length;\n  var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n  var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n  var that = new NativeDOMException(message, name);\n  var error = new Error(message);\n  error.name = DOM_EXCEPTION;\n  defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n  inheritIfRequired(that, this, $DOMException);\n  return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n  DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n  if (!IS_PURE) {\n    defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n  }\n\n  for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n    var constant = DOMExceptionConstants[key];\n    var constantName = constant.s;\n    if (!hasOwn(PolyfilledDOMException, constantName)) {\n      defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n    }\n  }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar INCORRECT_VALUE = global.self !== global;\n\n// `self` getter\n// https://html.spec.whatwg.org/multipage/window-object.html#dom-self\ntry {\n  if (DESCRIPTORS) {\n    // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n    var descriptor = Object.getOwnPropertyDescriptor(global, 'self');\n    // some engines have `self`, but with incorrect descriptor\n    // https://github.com/denoland/deno/issues/15765\n    if (INCORRECT_VALUE || !descriptor || !descriptor.get || !descriptor.enumerable) {\n      defineBuiltInAccessor(global, 'self', {\n        get: function self() {\n          return global;\n        },\n        set: function self(value) {\n          if (this !== global) throw new $TypeError('Illegal invocation');\n          defineProperty(global, 'self', {\n            value: value,\n            writable: true,\n            configurable: true,\n            enumerable: true\n          });\n        },\n        configurable: true,\n        enumerable: true\n      });\n    }\n  } else $({ global: true, simple: true, forced: INCORRECT_VALUE }, {\n    self: global\n  });\n} catch (error) { /* empty */ }\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar append = uncurryThis(URLSearchParamsPrototype.append);\nvar $delete = uncurryThis(URLSearchParamsPrototype['delete']);\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\nvar push = uncurryThis([].push);\nvar params = new $URLSearchParams('a=1&a=2&b=3');\n\nparams['delete']('a', 1);\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nparams['delete']('b', undefined);\n\nif (params + '' !== 'a=2') {\n  defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {\n    var length = arguments.length;\n    var $value = length < 2 ? undefined : arguments[1];\n    if (length && $value === undefined) return $delete(this, name);\n    var entries = [];\n    forEach(this, function (v, k) { // also validates `this`\n      push(entries, { key: k, value: v });\n    });\n    validateArgumentsLength(length, 1);\n    var key = toString(name);\n    var value = toString($value);\n    var index = 0;\n    var dindex = 0;\n    var found = false;\n    var entriesLength = entries.length;\n    var entry;\n    while (index < entriesLength) {\n      entry = entries[index++];\n      if (found || entry.key === key) {\n        found = true;\n        $delete(this, entry.key);\n      } else dindex++;\n    }\n    while (dindex < entriesLength) {\n      entry = entries[dindex++];\n      if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);\n    }\n  }, { enumerable: true, unsafe: true });\n}\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar getAll = uncurryThis(URLSearchParamsPrototype.getAll);\nvar $has = uncurryThis(URLSearchParamsPrototype.has);\nvar params = new $URLSearchParams('a=1');\n\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nif (params.has('a', 2) || !params.has('a', undefined)) {\n  defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {\n    var length = arguments.length;\n    var $value = length < 2 ? undefined : arguments[1];\n    if (length && $value === undefined) return $has(this, name);\n    var values = getAll(this, name); // also validates `this`\n    validateArgumentsLength(length, 1);\n    var value = toString($value);\n    var index = 0;\n    while (index < values.length) {\n      if (values[index++] === value) return true;\n    } return false;\n  }, { enumerable: true, unsafe: true });\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar URLSearchParamsPrototype = URLSearchParams.prototype;\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {\n  defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n    get: function size() {\n      var count = 0;\n      forEach(this, function () { count++; });\n      return count;\n    },\n    configurable: true,\n    enumerable: true\n  });\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals process */\n\n// NW.js / Electron is a browser context, but copies some Node.js objects; see\n// http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n// https://www.electronjs.org/docs/api/process#processversionselectron-readonly\n// https://www.electronjs.org/docs/api/process#processtype-readonly\nconst isNodeJS =\n  (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n  typeof process === \"object\" &&\n  process + \"\" === \"[object process]\" &&\n  !process.versions.nw &&\n  !(process.versions.electron && process.type && process.type !== \"browser\");\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\nconst MAX_IMAGE_SIZE_TO_CACHE = 10e6; // Ten megabytes.\n\n// Represent the percentage of the height of a single-line field over\n// the font size. Acrobat seems to use this value.\nconst LINE_FACTOR = 1.35;\nconst LINE_DESCENT_FACTOR = 0.35;\nconst BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR;\n\n/**\n * Refer to the `WorkerTransport.getRenderingIntent`-method in the API, to see\n * how these flags are being used:\n *  - ANY, DISPLAY, and PRINT are the normal rendering intents, note the\n *    `PDFPageProxy.{render, getOperatorList, getAnnotations}`-methods.\n *  - ANNOTATIONS_FORMS, ANNOTATIONS_STORAGE, ANNOTATIONS_DISABLE control which\n *    annotations are rendered onto the canvas (i.e. by being included in the\n *    operatorList), note the `PDFPageProxy.{render, getOperatorList}`-methods\n *    and their `annotationMode`-option.\n *  - OPLIST is used with the `PDFPageProxy.getOperatorList`-method, note the\n *    `OperatorList`-constructor (on the worker-thread).\n */\nconst RenderingIntentFlag = {\n  ANY: 0x01,\n  DISPLAY: 0x02,\n  PRINT: 0x04,\n  SAVE: 0x08,\n  ANNOTATIONS_FORMS: 0x10,\n  ANNOTATIONS_STORAGE: 0x20,\n  ANNOTATIONS_DISABLE: 0x40,\n  OPLIST: 0x100,\n};\n\nconst AnnotationMode = {\n  DISABLE: 0,\n  ENABLE: 1,\n  ENABLE_FORMS: 2,\n  ENABLE_STORAGE: 3,\n};\n\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\n\nconst AnnotationEditorType = {\n  DISABLE: -1,\n  NONE: 0,\n  FREETEXT: 3,\n  HIGHLIGHT: 9,\n  STAMP: 13,\n  INK: 15,\n};\n\nconst AnnotationEditorParamsType = {\n  RESIZE: 1,\n  CREATE: 2,\n  FREETEXT_SIZE: 11,\n  FREETEXT_COLOR: 12,\n  FREETEXT_OPACITY: 13,\n  INK_COLOR: 21,\n  INK_THICKNESS: 22,\n  INK_OPACITY: 23,\n  HIGHLIGHT_COLOR: 31,\n  HIGHLIGHT_DEFAULT_COLOR: 32,\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n  PRINT: 0x04,\n  MODIFY_CONTENTS: 0x08,\n  COPY: 0x10,\n  MODIFY_ANNOTATIONS: 0x20,\n  FILL_INTERACTIVE_FORMS: 0x100,\n  COPY_FOR_ACCESSIBILITY: 0x200,\n  ASSEMBLE: 0x400,\n  PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst TextRenderingMode = {\n  FILL: 0,\n  STROKE: 1,\n  FILL_STROKE: 2,\n  INVISIBLE: 3,\n  FILL_ADD_TO_PATH: 4,\n  STROKE_ADD_TO_PATH: 5,\n  FILL_STROKE_ADD_TO_PATH: 6,\n  ADD_TO_PATH: 7,\n  FILL_STROKE_MASK: 3,\n  ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n  GRAYSCALE_1BPP: 1,\n  RGB_24BPP: 2,\n  RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n  TEXT: 1,\n  LINK: 2,\n  FREETEXT: 3,\n  LINE: 4,\n  SQUARE: 5,\n  CIRCLE: 6,\n  POLYGON: 7,\n  POLYLINE: 8,\n  HIGHLIGHT: 9,\n  UNDERLINE: 10,\n  SQUIGGLY: 11,\n  STRIKEOUT: 12,\n  STAMP: 13,\n  CARET: 14,\n  INK: 15,\n  POPUP: 16,\n  FILEATTACHMENT: 17,\n  SOUND: 18,\n  MOVIE: 19,\n  WIDGET: 20,\n  SCREEN: 21,\n  PRINTERMARK: 22,\n  TRAPNET: 23,\n  WATERMARK: 24,\n  THREED: 25,\n  REDACT: 26,\n};\n\nconst AnnotationReplyType = {\n  GROUP: \"Group\",\n  REPLY: \"R\",\n};\n\nconst AnnotationFlag = {\n  INVISIBLE: 0x01,\n  HIDDEN: 0x02,\n  PRINT: 0x04,\n  NOZOOM: 0x08,\n  NOROTATE: 0x10,\n  NOVIEW: 0x20,\n  READONLY: 0x40,\n  LOCKED: 0x80,\n  TOGGLENOVIEW: 0x100,\n  LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n  READONLY: 0x0000001,\n  REQUIRED: 0x0000002,\n  NOEXPORT: 0x0000004,\n  MULTILINE: 0x0001000,\n  PASSWORD: 0x0002000,\n  NOTOGGLETOOFF: 0x0004000,\n  RADIO: 0x0008000,\n  PUSHBUTTON: 0x0010000,\n  COMBO: 0x0020000,\n  EDIT: 0x0040000,\n  SORT: 0x0080000,\n  FILESELECT: 0x0100000,\n  MULTISELECT: 0x0200000,\n  DONOTSPELLCHECK: 0x0400000,\n  DONOTSCROLL: 0x0800000,\n  COMB: 0x1000000,\n  RICHTEXT: 0x2000000,\n  RADIOSINUNISON: 0x2000000,\n  COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n  SOLID: 1,\n  DASHED: 2,\n  BEVELED: 3,\n  INSET: 4,\n  UNDERLINE: 5,\n};\n\nconst AnnotationActionEventType = {\n  E: \"Mouse Enter\",\n  X: \"Mouse Exit\",\n  D: \"Mouse Down\",\n  U: \"Mouse Up\",\n  Fo: \"Focus\",\n  Bl: \"Blur\",\n  PO: \"PageOpen\",\n  PC: \"PageClose\",\n  PV: \"PageVisible\",\n  PI: \"PageInvisible\",\n  K: \"Keystroke\",\n  F: \"Format\",\n  V: \"Validate\",\n  C: \"Calculate\",\n};\n\nconst DocumentActionEventType = {\n  WC: \"WillClose\",\n  WS: \"WillSave\",\n  DS: \"DidSave\",\n  WP: \"WillPrint\",\n  DP: \"DidPrint\",\n};\n\nconst PageActionEventType = {\n  O: \"PageOpen\",\n  C: \"PageClose\",\n};\n\nconst VerbosityLevel = {\n  ERRORS: 0,\n  WARNINGS: 1,\n  INFOS: 5,\n};\n\nconst CMapCompressionType = {\n  NONE: 0,\n  BINARY: 1,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n  // Intentionally start from 1 so it is easy to spot bad operators that will be\n  // 0's.\n  // PLEASE NOTE: We purposely keep any removed operators commented out, since\n  //              re-numbering the list would risk breaking third-party users.\n  dependency: 1,\n  setLineWidth: 2,\n  setLineCap: 3,\n  setLineJoin: 4,\n  setMiterLimit: 5,\n  setDash: 6,\n  setRenderingIntent: 7,\n  setFlatness: 8,\n  setGState: 9,\n  save: 10,\n  restore: 11,\n  transform: 12,\n  moveTo: 13,\n  lineTo: 14,\n  curveTo: 15,\n  curveTo2: 16,\n  curveTo3: 17,\n  closePath: 18,\n  rectangle: 19,\n  stroke: 20,\n  closeStroke: 21,\n  fill: 22,\n  eoFill: 23,\n  fillStroke: 24,\n  eoFillStroke: 25,\n  closeFillStroke: 26,\n  closeEOFillStroke: 27,\n  endPath: 28,\n  clip: 29,\n  eoClip: 30,\n  beginText: 31,\n  endText: 32,\n  setCharSpacing: 33,\n  setWordSpacing: 34,\n  setHScale: 35,\n  setLeading: 36,\n  setFont: 37,\n  setTextRenderingMode: 38,\n  setTextRise: 39,\n  moveText: 40,\n  setLeadingMoveText: 41,\n  setTextMatrix: 42,\n  nextLine: 43,\n  showText: 44,\n  showSpacedText: 45,\n  nextLineShowText: 46,\n  nextLineSetSpacingShowText: 47,\n  setCharWidth: 48,\n  setCharWidthAndBounds: 49,\n  setStrokeColorSpace: 50,\n  setFillColorSpace: 51,\n  setStrokeColor: 52,\n  setStrokeColorN: 53,\n  setFillColor: 54,\n  setFillColorN: 55,\n  setStrokeGray: 56,\n  setFillGray: 57,\n  setStrokeRGBColor: 58,\n  setFillRGBColor: 59,\n  setStrokeCMYKColor: 60,\n  setFillCMYKColor: 61,\n  shadingFill: 62,\n  beginInlineImage: 63,\n  beginImageData: 64,\n  endInlineImage: 65,\n  paintXObject: 66,\n  markPoint: 67,\n  markPointProps: 68,\n  beginMarkedContent: 69,\n  beginMarkedContentProps: 70,\n  endMarkedContent: 71,\n  beginCompat: 72,\n  endCompat: 73,\n  paintFormXObjectBegin: 74,\n  paintFormXObjectEnd: 75,\n  beginGroup: 76,\n  endGroup: 77,\n  // beginAnnotations: 78,\n  // endAnnotations: 79,\n  beginAnnotation: 80,\n  endAnnotation: 81,\n  // paintJpegXObject: 82,\n  paintImageMaskXObject: 83,\n  paintImageMaskXObjectGroup: 84,\n  paintImageXObject: 85,\n  paintInlineImageXObject: 86,\n  paintInlineImageXObjectGroup: 87,\n  paintImageXObjectRepeat: 88,\n  paintImageMaskXObjectRepeat: 89,\n  paintSolidColorImageMask: 90,\n  constructPath: 91,\n};\n\nconst PasswordResponses = {\n  NEED_PASSWORD: 1,\n  INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n  if (Number.isInteger(level)) {\n    verbosity = level;\n  }\n}\n\nfunction getVerbosityLevel() {\n  return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n  if (verbosity >= VerbosityLevel.INFOS) {\n    console.log(`Info: ${msg}`);\n  }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n  if (verbosity >= VerbosityLevel.WARNINGS) {\n    console.log(`Warning: ${msg}`);\n  }\n}\n\nfunction unreachable(msg) {\n  throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n  if (!cond) {\n    unreachable(msg);\n  }\n}\n\n// Checks if URLs use one of the allowed protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n  switch (url?.protocol) {\n    case \"http:\":\n    case \"https:\":\n    case \"ftp:\":\n    case \"mailto:\":\n    case \"tel:\":\n      return true;\n    default:\n      return false;\n  }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} [baseUrl] - An absolute URL.\n * @param {Object} [options]\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n  if (!url) {\n    return null;\n  }\n  try {\n    if (options && typeof url === \"string\") {\n      // Let URLs beginning with \"www.\" default to using the \"http://\" protocol.\n      if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n        const dots = url.match(/\\./g);\n        // Avoid accidentally matching a *relative* URL pointing to a file named\n        // e.g. \"www.pdf\" or similar.\n        if (dots?.length >= 2) {\n          url = `http://${url}`;\n        }\n      }\n\n      // According to ISO 32000-1:2008, section 12.6.4.7, URIs should be encoded\n      // in 7-bit ASCII. Some bad PDFs use UTF-8 encoding; see bug 1122280.\n      if (options.tryConvertEncoding) {\n        try {\n          url = stringToUTF8String(url);\n        } catch {}\n      }\n    }\n\n    const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n    if (_isValidProtocol(absoluteUrl)) {\n      return absoluteUrl;\n    }\n  } catch {\n    /* `new URL()` will throw on incorrect data. */\n  }\n  return null;\n}\n\nfunction shadow(obj, prop, value, nonSerializable = false) {\n  if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n    assert(\n      prop in obj,\n      `shadow: Property \"${prop && prop.toString()}\" not found in object.`\n    );\n  }\n  Object.defineProperty(obj, prop, {\n    value,\n    enumerable: !nonSerializable,\n    configurable: true,\n    writable: false,\n  });\n  return value;\n}\n\n/**\n * @type {any}\n */\nconst BaseException = (function BaseExceptionClosure() {\n  // eslint-disable-next-line no-shadow\n  function BaseException(message, name) {\n    if (this.constructor === BaseException) {\n      unreachable(\"Cannot initialize BaseException.\");\n    }\n    this.message = message;\n    this.name = name;\n  }\n  BaseException.prototype = new Error();\n  BaseException.constructor = BaseException;\n\n  return BaseException;\n})();\n\nclass PasswordException extends BaseException {\n  constructor(msg, code) {\n    super(msg, \"PasswordException\");\n    this.code = code;\n  }\n}\n\nclass UnknownErrorException extends BaseException {\n  constructor(msg, details) {\n    super(msg, \"UnknownErrorException\");\n    this.details = details;\n  }\n}\n\nclass InvalidPDFException extends BaseException {\n  constructor(msg) {\n    super(msg, \"InvalidPDFException\");\n  }\n}\n\nclass MissingPDFException extends BaseException {\n  constructor(msg) {\n    super(msg, \"MissingPDFException\");\n  }\n}\n\nclass UnexpectedResponseException extends BaseException {\n  constructor(msg, status) {\n    super(msg, \"UnexpectedResponseException\");\n    this.status = status;\n  }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {\n  constructor(msg) {\n    super(msg, \"FormatError\");\n  }\n}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {\n  constructor(msg) {\n    super(msg, \"AbortException\");\n  }\n}\n\nfunction bytesToString(bytes) {\n  if (typeof bytes !== \"object\" || bytes?.length === undefined) {\n    unreachable(\"Invalid argument for bytesToString\");\n  }\n  const length = bytes.length;\n  const MAX_ARGUMENT_COUNT = 8192;\n  if (length < MAX_ARGUMENT_COUNT) {\n    return String.fromCharCode.apply(null, bytes);\n  }\n  const strBuf = [];\n  for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n    const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n    const chunk = bytes.subarray(i, chunkEnd);\n    strBuf.push(String.fromCharCode.apply(null, chunk));\n  }\n  return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n  if (typeof str !== \"string\") {\n    unreachable(\"Invalid argument for stringToBytes\");\n  }\n  const length = str.length;\n  const bytes = new Uint8Array(length);\n  for (let i = 0; i < length; ++i) {\n    bytes[i] = str.charCodeAt(i) & 0xff;\n  }\n  return bytes;\n}\n\nfunction string32(value) {\n  if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n    assert(\n      typeof value === \"number\" && Math.abs(value) < 2 ** 32,\n      `string32: Unexpected input \"${value}\".`\n    );\n  }\n  return String.fromCharCode(\n    (value >> 24) & 0xff,\n    (value >> 16) & 0xff,\n    (value >> 8) & 0xff,\n    value & 0xff\n  );\n}\n\nfunction objectSize(obj) {\n  return Object.keys(obj).length;\n}\n\n// Ensure that the returned Object has a `null` prototype; hence why\n// `Object.fromEntries(...)` is not used.\nfunction objectFromMap(map) {\n  const obj = Object.create(null);\n  for (const [key, value] of map) {\n    obj[key] = value;\n  }\n  return obj;\n}\n\n// Checks the endianness of the platform.\nfunction isLittleEndian() {\n  const buffer8 = new Uint8Array(4);\n  buffer8[0] = 1;\n  const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n  return view32[0] === 1;\n}\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n  try {\n    new Function(\"\"); // eslint-disable-line no-new, no-new-func\n    return true;\n  } catch {\n    return false;\n  }\n}\n\nclass FeatureTest {\n  static get isLittleEndian() {\n    return shadow(this, \"isLittleEndian\", isLittleEndian());\n  }\n\n  static get isEvalSupported() {\n    return shadow(this, \"isEvalSupported\", isEvalSupported());\n  }\n\n  static get isOffscreenCanvasSupported() {\n    return shadow(\n      this,\n      \"isOffscreenCanvasSupported\",\n      typeof OffscreenCanvas !== \"undefined\"\n    );\n  }\n\n  static get platform() {\n    if (\n      (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n      (typeof navigator !== \"undefined\" &&\n        typeof navigator?.platform === \"string\")\n    ) {\n      return shadow(this, \"platform\", {\n        isMac: navigator.platform.includes(\"Mac\"),\n      });\n    }\n    return shadow(this, \"platform\", { isMac: false });\n  }\n\n  static get isCSSRoundSupported() {\n    return shadow(\n      this,\n      \"isCSSRoundSupported\",\n      globalThis.CSS?.supports?.(\"width: round(1.5px, 1px)\")\n    );\n  }\n}\n\nconst hexNumbers = [...Array(256).keys()].map(n =>\n  n.toString(16).padStart(2, \"0\")\n);\n\nclass Util {\n  static makeHexColor(r, g, b) {\n    return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n  }\n\n  // Apply a scaling matrix to some min/max values.\n  // If a scaling factor is negative then min and max must be\n  // swaped.\n  static scaleMinMax(transform, minMax) {\n    let temp;\n    if (transform[0]) {\n      if (transform[0] < 0) {\n        temp = minMax[0];\n        minMax[0] = minMax[1];\n        minMax[1] = temp;\n      }\n      minMax[0] *= transform[0];\n      minMax[1] *= transform[0];\n\n      if (transform[3] < 0) {\n        temp = minMax[2];\n        minMax[2] = minMax[3];\n        minMax[3] = temp;\n      }\n      minMax[2] *= transform[3];\n      minMax[3] *= transform[3];\n    } else {\n      temp = minMax[0];\n      minMax[0] = minMax[2];\n      minMax[2] = temp;\n      temp = minMax[1];\n      minMax[1] = minMax[3];\n      minMax[3] = temp;\n\n      if (transform[1] < 0) {\n        temp = minMax[2];\n        minMax[2] = minMax[3];\n        minMax[3] = temp;\n      }\n      minMax[2] *= transform[1];\n      minMax[3] *= transform[1];\n\n      if (transform[2] < 0) {\n        temp = minMax[0];\n        minMax[0] = minMax[1];\n        minMax[1] = temp;\n      }\n      minMax[0] *= transform[2];\n      minMax[1] *= transform[2];\n    }\n    minMax[0] += transform[4];\n    minMax[1] += transform[4];\n    minMax[2] += transform[5];\n    minMax[3] += transform[5];\n  }\n\n  // Concatenates two transformation matrices together and returns the result.\n  static transform(m1, m2) {\n    return [\n      m1[0] * m2[0] + m1[2] * m2[1],\n      m1[1] * m2[0] + m1[3] * m2[1],\n      m1[0] * m2[2] + m1[2] * m2[3],\n      m1[1] * m2[2] + m1[3] * m2[3],\n      m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n      m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n    ];\n  }\n\n  // For 2d affine transforms\n  static applyTransform(p, m) {\n    const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n    const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n    return [xt, yt];\n  }\n\n  static applyInverseTransform(p, m) {\n    const d = m[0] * m[3] - m[1] * m[2];\n    const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n    const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n    return [xt, yt];\n  }\n\n  // Applies the transform to the rectangle and finds the minimum axially\n  // aligned bounding box.\n  static getAxialAlignedBoundingBox(r, m) {\n    const p1 = this.applyTransform(r, m);\n    const p2 = this.applyTransform(r.slice(2, 4), m);\n    const p3 = this.applyTransform([r[0], r[3]], m);\n    const p4 = this.applyTransform([r[2], r[1]], m);\n    return [\n      Math.min(p1[0], p2[0], p3[0], p4[0]),\n      Math.min(p1[1], p2[1], p3[1], p4[1]),\n      Math.max(p1[0], p2[0], p3[0], p4[0]),\n      Math.max(p1[1], p2[1], p3[1], p4[1]),\n    ];\n  }\n\n  static inverseTransform(m) {\n    const d = m[0] * m[3] - m[1] * m[2];\n    return [\n      m[3] / d,\n      -m[1] / d,\n      -m[2] / d,\n      m[0] / d,\n      (m[2] * m[5] - m[4] * m[3]) / d,\n      (m[4] * m[1] - m[5] * m[0]) / d,\n    ];\n  }\n\n  // This calculation uses Singular Value Decomposition.\n  // The SVD can be represented with formula A = USV. We are interested in the\n  // matrix S here because it represents the scale values.\n  static singularValueDecompose2dScale(m) {\n    const transpose = [m[0], m[2], m[1], m[3]];\n\n    // Multiply matrix m with its transpose.\n    const a = m[0] * transpose[0] + m[1] * transpose[2];\n    const b = m[0] * transpose[1] + m[1] * transpose[3];\n    const c = m[2] * transpose[0] + m[3] * transpose[2];\n    const d = m[2] * transpose[1] + m[3] * transpose[3];\n\n    // Solve the second degree polynomial to get roots.\n    const first = (a + d) / 2;\n    const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n    const sx = first + second || 1;\n    const sy = first - second || 1;\n\n    // Scale values are the square roots of the eigenvalues.\n    return [Math.sqrt(sx), Math.sqrt(sy)];\n  }\n\n  // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n  // For coordinate systems whose origin lies in the bottom-left, this\n  // means normalization to (BL,TR) ordering. For systems with origin in the\n  // top-left, this means (TL,BR) ordering.\n  static normalizeRect(rect) {\n    const r = rect.slice(0); // clone rect\n    if (rect[0] > rect[2]) {\n      r[0] = rect[2];\n      r[2] = rect[0];\n    }\n    if (rect[1] > rect[3]) {\n      r[1] = rect[3];\n      r[3] = rect[1];\n    }\n    return r;\n  }\n\n  // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n  // intersection of rect1 and rect2. If no intersection, returns 'null'\n  // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n  static intersect(rect1, rect2) {\n    const xLow = Math.max(\n      Math.min(rect1[0], rect1[2]),\n      Math.min(rect2[0], rect2[2])\n    );\n    const xHigh = Math.min(\n      Math.max(rect1[0], rect1[2]),\n      Math.max(rect2[0], rect2[2])\n    );\n    if (xLow > xHigh) {\n      return null;\n    }\n    const yLow = Math.max(\n      Math.min(rect1[1], rect1[3]),\n      Math.min(rect2[1], rect2[3])\n    );\n    const yHigh = Math.min(\n      Math.max(rect1[1], rect1[3]),\n      Math.max(rect2[1], rect2[3])\n    );\n    if (yLow > yHigh) {\n      return null;\n    }\n\n    return [xLow, yLow, xHigh, yHigh];\n  }\n\n  // From https://github.com/adobe-webplatform/Snap.svg/blob/b365287722a72526000ac4bfcf0ce4cac2faa015/src/path.js#L852\n  static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n    const tvalues = [],\n      bounds = [[], []];\n    let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n    for (let i = 0; i < 2; ++i) {\n      if (i === 0) {\n        b = 6 * x0 - 12 * x1 + 6 * x2;\n        a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n        c = 3 * x1 - 3 * x0;\n      } else {\n        b = 6 * y0 - 12 * y1 + 6 * y2;\n        a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n        c = 3 * y1 - 3 * y0;\n      }\n      if (Math.abs(a) < 1e-12) {\n        if (Math.abs(b) < 1e-12) {\n          continue;\n        }\n        t = -c / b;\n        if (0 < t && t < 1) {\n          tvalues.push(t);\n        }\n        continue;\n      }\n      b2ac = b * b - 4 * c * a;\n      sqrtb2ac = Math.sqrt(b2ac);\n      if (b2ac < 0) {\n        continue;\n      }\n      t1 = (-b + sqrtb2ac) / (2 * a);\n      if (0 < t1 && t1 < 1) {\n        tvalues.push(t1);\n      }\n      t2 = (-b - sqrtb2ac) / (2 * a);\n      if (0 < t2 && t2 < 1) {\n        tvalues.push(t2);\n      }\n    }\n\n    let j = tvalues.length,\n      mt;\n    const jlen = j;\n    while (j--) {\n      t = tvalues[j];\n      mt = 1 - t;\n      bounds[0][j] =\n        mt * mt * mt * x0 +\n        3 * mt * mt * t * x1 +\n        3 * mt * t * t * x2 +\n        t * t * t * x3;\n      bounds[1][j] =\n        mt * mt * mt * y0 +\n        3 * mt * mt * t * y1 +\n        3 * mt * t * t * y2 +\n        t * t * t * y3;\n    }\n\n    bounds[0][jlen] = x0;\n    bounds[1][jlen] = y0;\n    bounds[0][jlen + 1] = x3;\n    bounds[1][jlen + 1] = y3;\n    bounds[0].length = bounds[1].length = jlen + 2;\n\n    return [\n      Math.min(...bounds[0]),\n      Math.min(...bounds[1]),\n      Math.max(...bounds[0]),\n      Math.max(...bounds[1]),\n    ];\n  }\n}\n\nconst PDFStringTranslateTable = [\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8,\n  0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192,\n  0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,\n  0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d,\n  0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac,\n];\n\nfunction stringToPDFString(str) {\n  // See section 7.9.2.2 Text String Type.\n  // The string can contain some language codes bracketed with 0x0b,\n  // so we must remove them.\n  if (str[0] >= \"\\xEF\") {\n    let encoding;\n    if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n      encoding = \"utf-16be\";\n      if (str.length % 2 === 1) {\n        str = str.slice(0, -1);\n      }\n    } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n      encoding = \"utf-16le\";\n      if (str.length % 2 === 1) {\n        str = str.slice(0, -1);\n      }\n    } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n      encoding = \"utf-8\";\n    }\n\n    if (encoding) {\n      try {\n        const decoder = new TextDecoder(encoding, { fatal: true });\n        const buffer = stringToBytes(str);\n        const decoded = decoder.decode(buffer);\n        if (!decoded.includes(\"\\x1b\")) {\n          return decoded;\n        }\n        return decoded.replaceAll(/\\x1b[^\\x1b]*(?:\\x1b|$)/g, \"\");\n      } catch (ex) {\n        warn(`stringToPDFString: \"${ex}\".`);\n      }\n    }\n  }\n  // ISO Latin 1\n  const strBuf = [];\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const charCode = str.charCodeAt(i);\n    if (charCode === 0x1b) {\n      // eslint-disable-next-line no-empty\n      while (++i < ii && str.charCodeAt(i) !== 0x1b) {}\n      continue;\n    }\n    const code = PDFStringTranslateTable[charCode];\n    strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n  }\n  return strBuf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n  return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n  return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayBuffer(v) {\n  return typeof v === \"object\" && v?.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n  if (arr1.length !== arr2.length) {\n    return false;\n  }\n  for (let i = 0, ii = arr1.length; i < ii; i++) {\n    if (arr1[i] !== arr2[i]) {\n      return false;\n    }\n  }\n  return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n  const buffer = [\n    date.getUTCFullYear().toString(),\n    (date.getUTCMonth() + 1).toString().padStart(2, \"0\"),\n    date.getUTCDate().toString().padStart(2, \"0\"),\n    date.getUTCHours().toString().padStart(2, \"0\"),\n    date.getUTCMinutes().toString().padStart(2, \"0\"),\n    date.getUTCSeconds().toString().padStart(2, \"0\"),\n  ];\n\n  return buffer.join(\"\");\n}\n\nclass PromiseCapability {\n  #settled = false;\n\n  constructor() {\n    /**\n     * @type {Promise<any>} The Promise object.\n     */\n    this.promise = new Promise((resolve, reject) => {\n      /**\n       * @type {function} Fulfills the Promise.\n       */\n      this.resolve = data => {\n        this.#settled = true;\n        resolve(data);\n      };\n\n      /**\n       * @type {function} Rejects the Promise.\n       */\n      this.reject = reason => {\n        if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n          assert(reason instanceof Error, 'Expected valid \"reason\" argument.');\n        }\n        this.#settled = true;\n        reject(reason);\n      };\n    });\n  }\n\n  /**\n   * @type {boolean} If the Promise has been fulfilled/rejected.\n   */\n  get settled() {\n    return this.#settled;\n  }\n}\n\nlet NormalizeRegex = null;\nlet NormalizationMap = null;\nfunction normalizeUnicode(str) {\n  if (!NormalizeRegex) {\n    // In order to generate the following regex:\n    //  - create a PDF containing all the chars in the range 0000-FFFF with\n    //    a NFKC which is different of the char.\n    //  - copy and paste all those chars and get the ones where NFKC is\n    //    required.\n    // It appears that most the chars here contain some ligatures.\n    NormalizeRegex =\n      /([\\u00a0\\u00b5\\u037e\\u0eb3\\u2000-\\u200a\\u202f\\u2126\\ufb00-\\ufb04\\ufb06\\ufb20-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufba1\\ufba4-\\ufba9\\ufbae-\\ufbb1\\ufbd3-\\ufbdc\\ufbde-\\ufbe7\\ufbea-\\ufbf8\\ufbfc-\\ufbfd\\ufc00-\\ufc5d\\ufc64-\\ufcf1\\ufcf5-\\ufd3d\\ufd88\\ufdf4\\ufdfa-\\ufdfb\\ufe71\\ufe77\\ufe79\\ufe7b\\ufe7d]+)|(\\ufb05+)/gu;\n    NormalizationMap = new Map([[\"ﬅ\", \"ſt\"]]);\n  }\n  return str.replaceAll(NormalizeRegex, (_, p1, p2) => {\n    return p1 ? p1.normalize(\"NFKC\") : NormalizationMap.get(p2);\n  });\n}\n\nfunction getUuid() {\n  if (\n    (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n    (typeof crypto !== \"undefined\" && typeof crypto?.randomUUID === \"function\")\n  ) {\n    return crypto.randomUUID();\n  }\n  const buf = new Uint8Array(32);\n  if (\n    typeof crypto !== \"undefined\" &&\n    typeof crypto?.getRandomValues === \"function\"\n  ) {\n    crypto.getRandomValues(buf);\n  } else {\n    for (let i = 0; i < 32; i++) {\n      buf[i] = Math.floor(Math.random() * 255);\n    }\n  }\n  return bytesToString(buf);\n}\n\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\n\nexport {\n  AbortException,\n  AnnotationActionEventType,\n  AnnotationBorderStyleType,\n  AnnotationEditorParamsType,\n  AnnotationEditorPrefix,\n  AnnotationEditorType,\n  AnnotationFieldFlag,\n  AnnotationFlag,\n  AnnotationMode,\n  AnnotationPrefix,\n  AnnotationReplyType,\n  AnnotationType,\n  assert,\n  BaseException,\n  BASELINE_FACTOR,\n  bytesToString,\n  CMapCompressionType,\n  createValidAbsoluteUrl,\n  DocumentActionEventType,\n  FeatureTest,\n  FONT_IDENTITY_MATRIX,\n  FormatError,\n  getModificationDate,\n  getUuid,\n  getVerbosityLevel,\n  IDENTITY_MATRIX,\n  ImageKind,\n  info,\n  InvalidPDFException,\n  isArrayBuffer,\n  isArrayEqual,\n  isNodeJS,\n  LINE_DESCENT_FACTOR,\n  LINE_FACTOR,\n  MAX_IMAGE_SIZE_TO_CACHE,\n  MissingPDFException,\n  normalizeUnicode,\n  objectFromMap,\n  objectSize,\n  OPS,\n  PageActionEventType,\n  PasswordException,\n  PasswordResponses,\n  PermissionFlag,\n  PromiseCapability,\n  RenderingIntentFlag,\n  setVerbosityLevel,\n  shadow,\n  string32,\n  stringToBytes,\n  stringToPDFString,\n  stringToUTF8String,\n  TextRenderingMode,\n  UnexpectedResponseException,\n  UnknownErrorException,\n  unreachable,\n  utf8StringToString,\n  Util,\n  VerbosityLevel,\n  warn,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, shadow, unreachable } from \"../shared/util.js\";\n\nconst CIRCULAR_REF = Symbol(\"CIRCULAR_REF\");\nconst EOF = Symbol(\"EOF\");\n\nlet CmdCache = Object.create(null);\nlet NameCache = Object.create(null);\nlet RefCache = Object.create(null);\n\nfunction clearPrimitiveCaches() {\n  CmdCache = Object.create(null);\n  NameCache = Object.create(null);\n  RefCache = Object.create(null);\n}\n\nclass Name {\n  constructor(name) {\n    if (\n      (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n      typeof name !== \"string\"\n    ) {\n      unreachable('Name: The \"name\" must be a string.');\n    }\n    this.name = name;\n  }\n\n  static get(name) {\n    // eslint-disable-next-line no-restricted-syntax\n    return (NameCache[name] ||= new Name(name));\n  }\n}\n\nclass Cmd {\n  constructor(cmd) {\n    if (\n      (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n      typeof cmd !== \"string\"\n    ) {\n      unreachable('Cmd: The \"cmd\" must be a string.');\n    }\n    this.cmd = cmd;\n  }\n\n  static get(cmd) {\n    // eslint-disable-next-line no-restricted-syntax\n    return (CmdCache[cmd] ||= new Cmd(cmd));\n  }\n}\n\nconst nonSerializable = function nonSerializableClosure() {\n  return nonSerializable; // Creating closure on some variable.\n};\n\nclass Dict {\n  constructor(xref = null) {\n    // Map should only be used internally, use functions below to access.\n    this._map = Object.create(null);\n    this.xref = xref;\n    this.objId = null;\n    this.suppressEncryption = false;\n    this.__nonSerializable__ = nonSerializable; // Disable cloning of the Dict.\n  }\n\n  assignXref(newXref) {\n    this.xref = newXref;\n  }\n\n  get size() {\n    return Object.keys(this._map).length;\n  }\n\n  // Automatically dereferences Ref objects.\n  get(key1, key2, key3) {\n    let value = this._map[key1];\n    if (value === undefined && key2 !== undefined) {\n      if (\n        (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n        key2.length < key1.length\n      ) {\n        unreachable(\"Dict.get: Expected keys to be ordered by length.\");\n      }\n      value = this._map[key2];\n      if (value === undefined && key3 !== undefined) {\n        if (\n          (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n          key3.length < key2.length\n        ) {\n          unreachable(\"Dict.get: Expected keys to be ordered by length.\");\n        }\n        value = this._map[key3];\n      }\n    }\n    if (value instanceof Ref && this.xref) {\n      return this.xref.fetch(value, this.suppressEncryption);\n    }\n    return value;\n  }\n\n  // Same as get(), but returns a promise and uses fetchIfRefAsync().\n  async getAsync(key1, key2, key3) {\n    let value = this._map[key1];\n    if (value === undefined && key2 !== undefined) {\n      if (\n        (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n        key2.length < key1.length\n      ) {\n        unreachable(\"Dict.getAsync: Expected keys to be ordered by length.\");\n      }\n      value = this._map[key2];\n      if (value === undefined && key3 !== undefined) {\n        if (\n          (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n          key3.length < key2.length\n        ) {\n          unreachable(\"Dict.getAsync: Expected keys to be ordered by length.\");\n        }\n        value = this._map[key3];\n      }\n    }\n    if (value instanceof Ref && this.xref) {\n      return this.xref.fetchAsync(value, this.suppressEncryption);\n    }\n    return value;\n  }\n\n  // Same as get(), but dereferences all elements if the result is an Array.\n  getArray(key1, key2, key3) {\n    let value = this._map[key1];\n    if (value === undefined && key2 !== undefined) {\n      if (\n        (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n        key2.length < key1.length\n      ) {\n        unreachable(\"Dict.getArray: Expected keys to be ordered by length.\");\n      }\n      value = this._map[key2];\n      if (value === undefined && key3 !== undefined) {\n        if (\n          (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n          key3.length < key2.length\n        ) {\n          unreachable(\"Dict.getArray: Expected keys to be ordered by length.\");\n        }\n        value = this._map[key3];\n      }\n    }\n    if (value instanceof Ref && this.xref) {\n      value = this.xref.fetch(value, this.suppressEncryption);\n    }\n\n    if (Array.isArray(value)) {\n      value = value.slice(); // Ensure that we don't modify the Dict data.\n      for (let i = 0, ii = value.length; i < ii; i++) {\n        if (value[i] instanceof Ref && this.xref) {\n          value[i] = this.xref.fetch(value[i], this.suppressEncryption);\n        }\n      }\n    }\n    return value;\n  }\n\n  // No dereferencing.\n  getRaw(key) {\n    return this._map[key];\n  }\n\n  getKeys() {\n    return Object.keys(this._map);\n  }\n\n  // No dereferencing.\n  getRawValues() {\n    return Object.values(this._map);\n  }\n\n  set(key, value) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      if (typeof key !== \"string\") {\n        unreachable('Dict.set: The \"key\" must be a string.');\n      } else if (value === undefined) {\n        unreachable('Dict.set: The \"value\" cannot be undefined.');\n      }\n    }\n    this._map[key] = value;\n  }\n\n  has(key) {\n    return this._map[key] !== undefined;\n  }\n\n  forEach(callback) {\n    for (const key in this._map) {\n      callback(key, this.get(key));\n    }\n  }\n\n  static get empty() {\n    const emptyDict = new Dict(null);\n\n    emptyDict.set = (key, value) => {\n      unreachable(\"Should not call `set` on the empty dictionary.\");\n    };\n    return shadow(this, \"empty\", emptyDict);\n  }\n\n  static merge({ xref, dictArray, mergeSubDicts = false }) {\n    const mergedDict = new Dict(xref),\n      properties = new Map();\n\n    for (const dict of dictArray) {\n      if (!(dict instanceof Dict)) {\n        continue;\n      }\n      for (const [key, value] of Object.entries(dict._map)) {\n        let property = properties.get(key);\n        if (property === undefined) {\n          property = [];\n          properties.set(key, property);\n        } else if (!mergeSubDicts || !(value instanceof Dict)) {\n          // Ignore additional entries, if either:\n          //  - This is a \"shallow\" merge, where only the first element matters.\n          //  - The value is *not* a `Dict`, since other types cannot be merged.\n          continue;\n        }\n        property.push(value);\n      }\n    }\n    for (const [name, values] of properties) {\n      if (values.length === 1 || !(values[0] instanceof Dict)) {\n        mergedDict._map[name] = values[0];\n        continue;\n      }\n      const subDict = new Dict(xref);\n\n      for (const dict of values) {\n        for (const [key, value] of Object.entries(dict._map)) {\n          if (subDict._map[key] === undefined) {\n            subDict._map[key] = value;\n          }\n        }\n      }\n      if (subDict.size > 0) {\n        mergedDict._map[name] = subDict;\n      }\n    }\n    properties.clear();\n\n    return mergedDict.size > 0 ? mergedDict : Dict.empty;\n  }\n\n  clone() {\n    const dict = new Dict(this.xref);\n    for (const key of this.getKeys()) {\n      dict.set(key, this.getRaw(key));\n    }\n    return dict;\n  }\n}\n\nclass Ref {\n  constructor(num, gen) {\n    this.num = num;\n    this.gen = gen;\n  }\n\n  toString() {\n    // This function is hot, so we make the string as compact as possible.\n    // |this.gen| is almost always zero, so we treat that case specially.\n    if (this.gen === 0) {\n      return `${this.num}R`;\n    }\n    return `${this.num}R${this.gen}`;\n  }\n\n  static fromString(str) {\n    const ref = RefCache[str];\n    if (ref) {\n      return ref;\n    }\n    const m = /^(\\d+)R(\\d*)$/.exec(str);\n    if (!m || m[1] === \"0\") {\n      return null;\n    }\n\n    // eslint-disable-next-line no-restricted-syntax\n    return (RefCache[str] = new Ref(\n      parseInt(m[1]),\n      !m[2] ? 0 : parseInt(m[2])\n    ));\n  }\n\n  static get(num, gen) {\n    const key = gen === 0 ? `${num}R` : `${num}R${gen}`;\n    // eslint-disable-next-line no-restricted-syntax\n    return (RefCache[key] ||= new Ref(num, gen));\n  }\n}\n\n// The reference is identified by number and generation.\n// This structure stores only one instance of the reference.\nclass RefSet {\n  constructor(parent = null) {\n    if (\n      (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n      parent &&\n      !(parent instanceof RefSet)\n    ) {\n      unreachable('RefSet: Invalid \"parent\" value.');\n    }\n    this._set = new Set(parent?._set);\n  }\n\n  has(ref) {\n    return this._set.has(ref.toString());\n  }\n\n  put(ref) {\n    this._set.add(ref.toString());\n  }\n\n  remove(ref) {\n    this._set.delete(ref.toString());\n  }\n\n  [Symbol.iterator]() {\n    return this._set.values();\n  }\n\n  clear() {\n    this._set.clear();\n  }\n}\n\nclass RefSetCache {\n  constructor() {\n    this._map = new Map();\n  }\n\n  get size() {\n    return this._map.size;\n  }\n\n  get(ref) {\n    return this._map.get(ref.toString());\n  }\n\n  has(ref) {\n    return this._map.has(ref.toString());\n  }\n\n  put(ref, obj) {\n    this._map.set(ref.toString(), obj);\n  }\n\n  putAlias(ref, aliasRef) {\n    this._map.set(ref.toString(), this.get(aliasRef));\n  }\n\n  [Symbol.iterator]() {\n    return this._map.values();\n  }\n\n  clear() {\n    this._map.clear();\n  }\n}\n\nfunction isName(v, name) {\n  return v instanceof Name && (name === undefined || v.name === name);\n}\n\nfunction isCmd(v, cmd) {\n  return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);\n}\n\nfunction isDict(v, type) {\n  return (\n    v instanceof Dict && (type === undefined || isName(v.get(\"Type\"), type))\n  );\n}\n\nfunction isRefsEqual(v1, v2) {\n  if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n    assert(\n      v1 instanceof Ref && v2 instanceof Ref,\n      \"isRefsEqual: Both parameters should be `Ref`s.\"\n    );\n  }\n  return v1.num === v2.num && v1.gen === v2.gen;\n}\n\nexport {\n  CIRCULAR_REF,\n  clearPrimitiveCaches,\n  Cmd,\n  Dict,\n  EOF,\n  isCmd,\n  isDict,\n  isName,\n  isRefsEqual,\n  Name,\n  Ref,\n  RefSet,\n  RefSetCache,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bytesToString, shadow, unreachable } from \"../shared/util.js\";\n\nclass BaseStream {\n  constructor() {\n    if (this.constructor === BaseStream) {\n      unreachable(\"Cannot initialize BaseStream.\");\n    }\n  }\n\n  // eslint-disable-next-line getter-return\n  get length() {\n    unreachable(\"Abstract getter `length` accessed\");\n  }\n\n  // eslint-disable-next-line getter-return\n  get isEmpty() {\n    unreachable(\"Abstract getter `isEmpty` accessed\");\n  }\n\n  get isDataLoaded() {\n    return shadow(this, \"isDataLoaded\", true);\n  }\n\n  getByte() {\n    unreachable(\"Abstract method `getByte` called\");\n  }\n\n  getBytes(length) {\n    unreachable(\"Abstract method `getBytes` called\");\n  }\n\n  peekByte() {\n    const peekedByte = this.getByte();\n    if (peekedByte !== -1) {\n      this.pos--;\n    }\n    return peekedByte;\n  }\n\n  peekBytes(length) {\n    const bytes = this.getBytes(length);\n    this.pos -= bytes.length;\n    return bytes;\n  }\n\n  getUint16() {\n    const b0 = this.getByte();\n    const b1 = this.getByte();\n    if (b0 === -1 || b1 === -1) {\n      return -1;\n    }\n    return (b0 << 8) + b1;\n  }\n\n  getInt32() {\n    const b0 = this.getByte();\n    const b1 = this.getByte();\n    const b2 = this.getByte();\n    const b3 = this.getByte();\n    return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n  }\n\n  getByteRange(begin, end) {\n    unreachable(\"Abstract method `getByteRange` called\");\n  }\n\n  getString(length) {\n    return bytesToString(this.getBytes(length));\n  }\n\n  skip(n) {\n    this.pos += n || 1;\n  }\n\n  reset() {\n    unreachable(\"Abstract method `reset` called\");\n  }\n\n  moveStart() {\n    unreachable(\"Abstract method `moveStart` called\");\n  }\n\n  makeSubStream(start, length, dict = null) {\n    unreachable(\"Abstract method `makeSubStream` called\");\n  }\n\n  /**\n   * @returns {Array | null}\n   */\n  getBaseStreams() {\n    return null;\n  }\n}\n\nexport { BaseStream };\n","/* Copyright 2019 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  AnnotationEditorPrefix,\n  assert,\n  BaseException,\n  objectSize,\n  stringToPDFString,\n  warn,\n} from \"../shared/util.js\";\nimport { Dict, isName, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\n\nconst PDF_VERSION_REGEXP = /^[1-9]\\.\\d$/;\n\nfunction getLookupTableFactory(initializer) {\n  let lookup;\n  return function () {\n    if (initializer) {\n      lookup = Object.create(null);\n      initializer(lookup);\n      initializer = null;\n    }\n    return lookup;\n  };\n}\n\nclass MissingDataException extends BaseException {\n  constructor(begin, end) {\n    super(`Missing data [${begin}, ${end})`, \"MissingDataException\");\n    this.begin = begin;\n    this.end = end;\n  }\n}\n\nclass ParserEOFException extends BaseException {\n  constructor(msg) {\n    super(msg, \"ParserEOFException\");\n  }\n}\n\nclass XRefEntryException extends BaseException {\n  constructor(msg) {\n    super(msg, \"XRefEntryException\");\n  }\n}\n\nclass XRefParseException extends BaseException {\n  constructor(msg) {\n    super(msg, \"XRefParseException\");\n  }\n}\n\n/**\n * Combines multiple ArrayBuffers into a single Uint8Array.\n * @param {Array<ArrayBuffer>} arr - An array of ArrayBuffers.\n * @returns {Uint8Array}\n */\nfunction arrayBuffersToBytes(arr) {\n  if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n    for (const item of arr) {\n      assert(\n        item instanceof ArrayBuffer,\n        \"arrayBuffersToBytes - expected an ArrayBuffer.\"\n      );\n    }\n  }\n  const length = arr.length;\n  if (length === 0) {\n    return new Uint8Array(0);\n  }\n  if (length === 1) {\n    return new Uint8Array(arr[0]);\n  }\n  let dataLength = 0;\n  for (let i = 0; i < length; i++) {\n    dataLength += arr[i].byteLength;\n  }\n  const data = new Uint8Array(dataLength);\n  let pos = 0;\n  for (let i = 0; i < length; i++) {\n    const item = new Uint8Array(arr[i]);\n    data.set(item, pos);\n    pos += item.byteLength;\n  }\n  return data;\n}\n\n/**\n * Get the value of an inheritable property.\n *\n * If the PDF specification explicitly lists a property in a dictionary as\n * inheritable, then the value of the property may be present in the dictionary\n * itself or in one or more parents of the dictionary.\n *\n * If the key is not found in the tree, `undefined` is returned. Otherwise,\n * the value for the key is returned or, if `stopWhenFound` is `false`, a list\n * of values is returned.\n *\n * @param {Dict} dict - Dictionary from where to start the traversal.\n * @param {string} key - The key of the property to find the value for.\n * @param {boolean} getArray - Whether or not the value should be fetched as an\n *   array. The default value is `false`.\n * @param {boolean} stopWhenFound - Whether or not to stop the traversal when\n *   the key is found. If set to `false`, we always walk up the entire parent\n *   chain, for example to be able to find `\\Resources` placed on multiple\n *   levels of the tree. The default value is `true`.\n */\nfunction getInheritableProperty({\n  dict,\n  key,\n  getArray = false,\n  stopWhenFound = true,\n}) {\n  let values;\n  const visited = new RefSet();\n\n  while (dict instanceof Dict && !(dict.objId && visited.has(dict.objId))) {\n    if (dict.objId) {\n      visited.put(dict.objId);\n    }\n    const value = getArray ? dict.getArray(key) : dict.get(key);\n    if (value !== undefined) {\n      if (stopWhenFound) {\n        return value;\n      }\n      (values ||= []).push(value);\n    }\n    dict = dict.get(\"Parent\");\n  }\n  return values;\n}\n\n// prettier-ignore\nconst ROMAN_NUMBER_MAP = [\n  \"\", \"C\", \"CC\", \"CCC\", \"CD\", \"D\", \"DC\", \"DCC\", \"DCCC\", \"CM\",\n  \"\", \"X\", \"XX\", \"XXX\", \"XL\", \"L\", \"LX\", \"LXX\", \"LXXX\", \"XC\",\n  \"\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"\n];\n\n/**\n * Converts positive integers to (upper case) Roman numerals.\n * @param {number} number - The number that should be converted.\n * @param {boolean} lowerCase - Indicates if the result should be converted\n *   to lower case letters. The default value is `false`.\n * @returns {string} The resulting Roman number.\n */\nfunction toRomanNumerals(number, lowerCase = false) {\n  assert(\n    Number.isInteger(number) && number > 0,\n    \"The number should be a positive integer.\"\n  );\n  const romanBuf = [];\n  let pos;\n  // Thousands\n  while (number >= 1000) {\n    number -= 1000;\n    romanBuf.push(\"M\");\n  }\n  // Hundreds\n  pos = (number / 100) | 0;\n  number %= 100;\n  romanBuf.push(ROMAN_NUMBER_MAP[pos]);\n  // Tens\n  pos = (number / 10) | 0;\n  number %= 10;\n  romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);\n  // Ones\n  romanBuf.push(ROMAN_NUMBER_MAP[20 + number]); // eslint-disable-line unicorn/no-array-push-push\n\n  const romanStr = romanBuf.join(\"\");\n  return lowerCase ? romanStr.toLowerCase() : romanStr;\n}\n\n// Calculate the base 2 logarithm of the number `x`. This differs from the\n// native function in the sense that it returns the ceiling value and that it\n// returns 0 instead of `Infinity`/`NaN` for `x` values smaller than/equal to 0.\nfunction log2(x) {\n  if (x <= 0) {\n    return 0;\n  }\n  return Math.ceil(Math.log2(x));\n}\n\nfunction readInt8(data, offset) {\n  return (data[offset] << 24) >> 24;\n}\n\nfunction readUint16(data, offset) {\n  return (data[offset] << 8) | data[offset + 1];\n}\n\nfunction readUint32(data, offset) {\n  return (\n    ((data[offset] << 24) |\n      (data[offset + 1] << 16) |\n      (data[offset + 2] << 8) |\n      data[offset + 3]) >>>\n    0\n  );\n}\n\n// Checks if ch is one of the following characters: SPACE, TAB, CR or LF.\nfunction isWhiteSpace(ch) {\n  return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;\n}\n\n/**\n * AcroForm field names use an array like notation to refer to\n * repeated XFA elements e.g. foo.bar[nnn].\n * see: XFA Spec Chapter 3 - Repeated Elements\n *\n * @param {string} path - XFA path name.\n * @returns {Array} - Array of Objects with the name and pos of\n * each part of the path.\n */\nfunction parseXFAPath(path) {\n  const positionPattern = /(.+)\\[(\\d+)\\]$/;\n  return path.split(\".\").map(component => {\n    const m = component.match(positionPattern);\n    if (m) {\n      return { name: m[1], pos: parseInt(m[2], 10) };\n    }\n    return { name: component, pos: 0 };\n  });\n}\n\nfunction escapePDFName(str) {\n  const buffer = [];\n  let start = 0;\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.charCodeAt(i);\n    // Whitespace or delimiters aren't regular chars, so escape them.\n    if (\n      char < 0x21 ||\n      char > 0x7e ||\n      char === 0x23 /* # */ ||\n      char === 0x28 /* ( */ ||\n      char === 0x29 /* ) */ ||\n      char === 0x3c /* < */ ||\n      char === 0x3e /* > */ ||\n      char === 0x5b /* [ */ ||\n      char === 0x5d /* ] */ ||\n      char === 0x7b /* { */ ||\n      char === 0x7d /* } */ ||\n      char === 0x2f /* / */ ||\n      char === 0x25 /* % */\n    ) {\n      if (start < i) {\n        buffer.push(str.substring(start, i));\n      }\n      buffer.push(`#${char.toString(16)}`);\n      start = i + 1;\n    }\n  }\n\n  if (buffer.length === 0) {\n    return str;\n  }\n\n  if (start < str.length) {\n    buffer.push(str.substring(start, str.length));\n  }\n\n  return buffer.join(\"\");\n}\n\n// Replace \"(\", \")\", \"\\n\", \"\\r\" and \"\\\" by \"\\(\", \"\\)\", \"\\\\n\", \"\\\\r\" and \"\\\\\"\n// in order to write it in a PDF file.\nfunction escapeString(str) {\n  return str.replaceAll(/([()\\\\\\n\\r])/g, match => {\n    if (match === \"\\n\") {\n      return \"\\\\n\";\n    } else if (match === \"\\r\") {\n      return \"\\\\r\";\n    }\n    return `\\\\${match}`;\n  });\n}\n\nfunction _collectJS(entry, xref, list, parents) {\n  if (!entry) {\n    return;\n  }\n\n  let parent = null;\n  if (entry instanceof Ref) {\n    if (parents.has(entry)) {\n      // If we've already found entry then we've a cycle.\n      return;\n    }\n    parent = entry;\n    parents.put(parent);\n    entry = xref.fetch(entry);\n  }\n  if (Array.isArray(entry)) {\n    for (const element of entry) {\n      _collectJS(element, xref, list, parents);\n    }\n  } else if (entry instanceof Dict) {\n    if (isName(entry.get(\"S\"), \"JavaScript\")) {\n      const js = entry.get(\"JS\");\n      let code;\n      if (js instanceof BaseStream) {\n        code = js.getString();\n      } else if (typeof js === \"string\") {\n        code = js;\n      }\n      code &&= stringToPDFString(code).replaceAll(\"\\x00\", \"\");\n      if (code) {\n        list.push(code);\n      }\n    }\n    _collectJS(entry.getRaw(\"Next\"), xref, list, parents);\n  }\n\n  if (parent) {\n    parents.remove(parent);\n  }\n}\n\nfunction collectActions(xref, dict, eventType) {\n  const actions = Object.create(null);\n  const additionalActionsDicts = getInheritableProperty({\n    dict,\n    key: \"AA\",\n    stopWhenFound: false,\n  });\n  if (additionalActionsDicts) {\n    // additionalActionsDicts contains dicts from ancestors\n    // as they're found in the tree from bottom to top.\n    // So the dicts are visited in reverse order to guarantee\n    // that actions from elder ancestors will be overwritten\n    // by ones from younger ancestors.\n    for (let i = additionalActionsDicts.length - 1; i >= 0; i--) {\n      const additionalActions = additionalActionsDicts[i];\n      if (!(additionalActions instanceof Dict)) {\n        continue;\n      }\n      for (const key of additionalActions.getKeys()) {\n        const action = eventType[key];\n        if (!action) {\n          continue;\n        }\n        const actionDict = additionalActions.getRaw(key);\n        const parents = new RefSet();\n        const list = [];\n        _collectJS(actionDict, xref, list, parents);\n        if (list.length > 0) {\n          actions[action] = list;\n        }\n      }\n    }\n  }\n  // Collect the Action if any (we may have one on pushbutton).\n  if (dict.has(\"A\")) {\n    const actionDict = dict.get(\"A\");\n    const parents = new RefSet();\n    const list = [];\n    _collectJS(actionDict, xref, list, parents);\n    if (list.length > 0) {\n      actions.Action = list;\n    }\n  }\n  return objectSize(actions) > 0 ? actions : null;\n}\n\nconst XMLEntities = {\n  /* < */ 0x3c: \"&lt;\",\n  /* > */ 0x3e: \"&gt;\",\n  /* & */ 0x26: \"&amp;\",\n  /* \" */ 0x22: \"&quot;\",\n  /* ' */ 0x27: \"&apos;\",\n};\n\nfunction encodeToXmlString(str) {\n  const buffer = [];\n  let start = 0;\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.codePointAt(i);\n    if (0x20 <= char && char <= 0x7e) {\n      // ascii\n      const entity = XMLEntities[char];\n      if (entity) {\n        if (start < i) {\n          buffer.push(str.substring(start, i));\n        }\n        buffer.push(entity);\n        start = i + 1;\n      }\n    } else {\n      if (start < i) {\n        buffer.push(str.substring(start, i));\n      }\n      buffer.push(`&#x${char.toString(16).toUpperCase()};`);\n      if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {\n        // char is represented by two u16\n        i++;\n      }\n      start = i + 1;\n    }\n  }\n\n  if (buffer.length === 0) {\n    return str;\n  }\n  if (start < str.length) {\n    buffer.push(str.substring(start, str.length));\n  }\n  return buffer.join(\"\");\n}\n\nfunction validateFontName(fontFamily, mustWarn = false) {\n  // See https://developer.mozilla.org/en-US/docs/Web/CSS/string.\n  const m = /^(\"|').*(\"|')$/.exec(fontFamily);\n  if (m && m[1] === m[2]) {\n    const re = new RegExp(`[^\\\\\\\\]${m[1]}`);\n    if (re.test(fontFamily.slice(1, -1))) {\n      if (mustWarn) {\n        warn(`FontFamily contains unescaped ${m[1]}: ${fontFamily}.`);\n      }\n      return false;\n    }\n  } else {\n    // See https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident.\n    for (const ident of fontFamily.split(/[ \\t]+/)) {\n      if (/^(\\d|(-(\\d|-)))/.test(ident) || !/^[\\w-\\\\]+$/.test(ident)) {\n        if (mustWarn) {\n          warn(`FontFamily contains invalid <custom-ident>: ${fontFamily}.`);\n        }\n        return false;\n      }\n    }\n  }\n  return true;\n}\n\nfunction validateCSSFont(cssFontInfo) {\n  // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-style.\n  const DEFAULT_CSS_FONT_OBLIQUE = \"14\";\n  // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight.\n  const DEFAULT_CSS_FONT_WEIGHT = \"400\";\n  const CSS_FONT_WEIGHT_VALUES = new Set([\n    \"100\",\n    \"200\",\n    \"300\",\n    \"400\",\n    \"500\",\n    \"600\",\n    \"700\",\n    \"800\",\n    \"900\",\n    \"1000\",\n    \"normal\",\n    \"bold\",\n    \"bolder\",\n    \"lighter\",\n  ]);\n\n  const { fontFamily, fontWeight, italicAngle } = cssFontInfo;\n\n  if (!validateFontName(fontFamily, true)) {\n    return false;\n  }\n\n  const weight = fontWeight ? fontWeight.toString() : \"\";\n  cssFontInfo.fontWeight = CSS_FONT_WEIGHT_VALUES.has(weight)\n    ? weight\n    : DEFAULT_CSS_FONT_WEIGHT;\n\n  const angle = parseFloat(italicAngle);\n  cssFontInfo.italicAngle =\n    isNaN(angle) || angle < -90 || angle > 90\n      ? DEFAULT_CSS_FONT_OBLIQUE\n      : italicAngle.toString();\n\n  return true;\n}\n\nfunction recoverJsURL(str) {\n  // Attempt to recover valid URLs from `JS` entries with certain\n  // white-listed formats:\n  //  - window.open('http://example.com')\n  //  - app.launchURL('http://example.com', true)\n  //  - xfa.host.gotoURL('http://example.com')\n  const URL_OPEN_METHODS = [\"app.launchURL\", \"window.open\", \"xfa.host.gotoURL\"];\n  const regex = new RegExp(\n    \"^\\\\s*(\" +\n      URL_OPEN_METHODS.join(\"|\").replaceAll(\".\", \"\\\\.\") +\n      \")\\\\((?:'|\\\")([^'\\\"]*)(?:'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))\",\n    \"i\"\n  );\n\n  const jsUrl = regex.exec(str);\n  if (jsUrl?.[2]) {\n    const url = jsUrl[2];\n    let newWindow = false;\n\n    if (jsUrl[3] === \"true\" && jsUrl[1] === \"app.launchURL\") {\n      newWindow = true;\n    }\n    return { url, newWindow };\n  }\n\n  return null;\n}\n\nfunction numberToString(value) {\n  if (Number.isInteger(value)) {\n    return value.toString();\n  }\n\n  const roundedValue = Math.round(value * 100);\n  if (roundedValue % 100 === 0) {\n    return (roundedValue / 100).toString();\n  }\n\n  if (roundedValue % 10 === 0) {\n    return value.toFixed(1);\n  }\n\n  return value.toFixed(2);\n}\n\nfunction getNewAnnotationsMap(annotationStorage) {\n  if (!annotationStorage) {\n    return null;\n  }\n  const newAnnotationsByPage = new Map();\n  // The concept of page in a XFA is very different, so\n  // editing is just not implemented.\n  for (const [key, value] of annotationStorage) {\n    if (!key.startsWith(AnnotationEditorPrefix)) {\n      continue;\n    }\n    let annotations = newAnnotationsByPage.get(value.pageIndex);\n    if (!annotations) {\n      annotations = [];\n      newAnnotationsByPage.set(value.pageIndex, annotations);\n    }\n    annotations.push(value);\n  }\n  return newAnnotationsByPage.size > 0 ? newAnnotationsByPage : null;\n}\n\nfunction isAscii(str) {\n  return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16HexString(str) {\n  const buf = [];\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.charCodeAt(i);\n    buf.push(\n      ((char >> 8) & 0xff).toString(16).padStart(2, \"0\"),\n      (char & 0xff).toString(16).padStart(2, \"0\")\n    );\n  }\n  return buf.join(\"\");\n}\n\nfunction stringToUTF16String(str, bigEndian = false) {\n  const buf = [];\n  if (bigEndian) {\n    buf.push(\"\\xFE\\xFF\");\n  }\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.charCodeAt(i);\n    buf.push(\n      String.fromCharCode((char >> 8) & 0xff),\n      String.fromCharCode(char & 0xff)\n    );\n  }\n  return buf.join(\"\");\n}\n\nfunction getRotationMatrix(rotation, width, height) {\n  switch (rotation) {\n    case 90:\n      return [0, 1, -1, 0, width, 0];\n    case 180:\n      return [-1, 0, 0, -1, width, height];\n    case 270:\n      return [0, -1, 1, 0, 0, height];\n    default:\n      throw new Error(\"Invalid rotation\");\n  }\n}\n\nexport {\n  arrayBuffersToBytes,\n  collectActions,\n  encodeToXmlString,\n  escapePDFName,\n  escapeString,\n  getInheritableProperty,\n  getLookupTableFactory,\n  getNewAnnotationsMap,\n  getRotationMatrix,\n  isAscii,\n  isWhiteSpace,\n  log2,\n  MissingDataException,\n  numberToString,\n  ParserEOFException,\n  parseXFAPath,\n  PDF_VERSION_REGEXP,\n  readInt8,\n  readUint16,\n  readUint32,\n  recoverJsURL,\n  stringToUTF16HexString,\n  stringToUTF16String,\n  toRomanNumerals,\n  validateCSSFont,\n  validateFontName,\n  XRefEntryException,\n  XRefParseException,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseStream } from \"./base_stream.js\";\nimport { stringToBytes } from \"../shared/util.js\";\n\nclass Stream extends BaseStream {\n  constructor(arrayBuffer, start, length, dict) {\n    super();\n\n    this.bytes =\n      arrayBuffer instanceof Uint8Array\n        ? arrayBuffer\n        : new Uint8Array(arrayBuffer);\n    this.start = start || 0;\n    this.pos = this.start;\n    this.end = start + length || this.bytes.length;\n    this.dict = dict;\n  }\n\n  get length() {\n    return this.end - this.start;\n  }\n\n  get isEmpty() {\n    return this.length === 0;\n  }\n\n  getByte() {\n    if (this.pos >= this.end) {\n      return -1;\n    }\n    return this.bytes[this.pos++];\n  }\n\n  getBytes(length) {\n    const bytes = this.bytes;\n    const pos = this.pos;\n    const strEnd = this.end;\n\n    if (!length) {\n      return bytes.subarray(pos, strEnd);\n    }\n    let end = pos + length;\n    if (end > strEnd) {\n      end = strEnd;\n    }\n    this.pos = end;\n    return bytes.subarray(pos, end);\n  }\n\n  getByteRange(begin, end) {\n    if (begin < 0) {\n      begin = 0;\n    }\n    if (end > this.end) {\n      end = this.end;\n    }\n    return this.bytes.subarray(begin, end);\n  }\n\n  reset() {\n    this.pos = this.start;\n  }\n\n  moveStart() {\n    this.start = this.pos;\n  }\n\n  makeSubStream(start, length, dict = null) {\n    return new Stream(this.bytes.buffer, start, length, dict);\n  }\n}\n\nclass StringStream extends Stream {\n  constructor(str) {\n    super(stringToBytes(str));\n  }\n}\n\nclass NullStream extends Stream {\n  constructor() {\n    super(new Uint8Array(0));\n  }\n}\n\nexport { NullStream, Stream, StringStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { arrayBuffersToBytes, MissingDataException } from \"./core_utils.js\";\nimport { assert, PromiseCapability } from \"../shared/util.js\";\nimport { Stream } from \"./stream.js\";\n\nclass ChunkedStream extends Stream {\n  constructor(length, chunkSize, manager) {\n    super(\n      /* arrayBuffer = */ new Uint8Array(length),\n      /* start = */ 0,\n      /* length = */ length,\n      /* dict = */ null\n    );\n\n    this.chunkSize = chunkSize;\n    this._loadedChunks = new Set();\n    this.numChunks = Math.ceil(length / chunkSize);\n    this.manager = manager;\n    this.progressiveDataLength = 0;\n    this.lastSuccessfulEnsureByteChunk = -1; // Single-entry cache\n  }\n\n  // If a particular stream does not implement one or more of these methods,\n  // an error should be thrown.\n  getMissingChunks() {\n    const chunks = [];\n    for (let chunk = 0, n = this.numChunks; chunk < n; ++chunk) {\n      if (!this._loadedChunks.has(chunk)) {\n        chunks.push(chunk);\n      }\n    }\n    return chunks;\n  }\n\n  get numChunksLoaded() {\n    return this._loadedChunks.size;\n  }\n\n  get isDataLoaded() {\n    return this.numChunksLoaded === this.numChunks;\n  }\n\n  onReceiveData(begin, chunk) {\n    const chunkSize = this.chunkSize;\n    if (begin % chunkSize !== 0) {\n      throw new Error(`Bad begin offset: ${begin}`);\n    }\n\n    // Using `this.length` is inaccurate here since `this.start` can be moved\n    // (see the `moveStart` method).\n    const end = begin + chunk.byteLength;\n    if (end % chunkSize !== 0 && end !== this.bytes.length) {\n      throw new Error(`Bad end offset: ${end}`);\n    }\n\n    this.bytes.set(new Uint8Array(chunk), begin);\n    const beginChunk = Math.floor(begin / chunkSize);\n    const endChunk = Math.floor((end - 1) / chunkSize) + 1;\n\n    for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n      // Since a value can only occur *once* in a `Set`, there's no need to\n      // manually check `Set.prototype.has()` before adding the value here.\n      this._loadedChunks.add(curChunk);\n    }\n  }\n\n  onReceiveProgressiveData(data) {\n    let position = this.progressiveDataLength;\n    const beginChunk = Math.floor(position / this.chunkSize);\n\n    this.bytes.set(new Uint8Array(data), position);\n    position += data.byteLength;\n    this.progressiveDataLength = position;\n    const endChunk =\n      position >= this.end\n        ? this.numChunks\n        : Math.floor(position / this.chunkSize);\n\n    for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n      // Since a value can only occur *once* in a `Set`, there's no need to\n      // manually check `Set.prototype.has()` before adding the value here.\n      this._loadedChunks.add(curChunk);\n    }\n  }\n\n  ensureByte(pos) {\n    if (pos < this.progressiveDataLength) {\n      return;\n    }\n\n    const chunk = Math.floor(pos / this.chunkSize);\n    if (chunk > this.numChunks) {\n      return;\n    }\n    if (chunk === this.lastSuccessfulEnsureByteChunk) {\n      return;\n    }\n\n    if (!this._loadedChunks.has(chunk)) {\n      throw new MissingDataException(pos, pos + 1);\n    }\n    this.lastSuccessfulEnsureByteChunk = chunk;\n  }\n\n  ensureRange(begin, end) {\n    if (begin >= end) {\n      return;\n    }\n    if (end <= this.progressiveDataLength) {\n      return;\n    }\n\n    const beginChunk = Math.floor(begin / this.chunkSize);\n    if (beginChunk > this.numChunks) {\n      return;\n    }\n    const endChunk = Math.min(\n      Math.floor((end - 1) / this.chunkSize) + 1,\n      this.numChunks\n    );\n    for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n      if (!this._loadedChunks.has(chunk)) {\n        throw new MissingDataException(begin, end);\n      }\n    }\n  }\n\n  nextEmptyChunk(beginChunk) {\n    const numChunks = this.numChunks;\n    for (let i = 0; i < numChunks; ++i) {\n      const chunk = (beginChunk + i) % numChunks; // Wrap around to beginning.\n      if (!this._loadedChunks.has(chunk)) {\n        return chunk;\n      }\n    }\n    return null;\n  }\n\n  hasChunk(chunk) {\n    return this._loadedChunks.has(chunk);\n  }\n\n  getByte() {\n    const pos = this.pos;\n    if (pos >= this.end) {\n      return -1;\n    }\n    if (pos >= this.progressiveDataLength) {\n      this.ensureByte(pos);\n    }\n    return this.bytes[this.pos++];\n  }\n\n  getBytes(length) {\n    const bytes = this.bytes;\n    const pos = this.pos;\n    const strEnd = this.end;\n\n    if (!length) {\n      if (strEnd > this.progressiveDataLength) {\n        this.ensureRange(pos, strEnd);\n      }\n      return bytes.subarray(pos, strEnd);\n    }\n\n    let end = pos + length;\n    if (end > strEnd) {\n      end = strEnd;\n    }\n    if (end > this.progressiveDataLength) {\n      this.ensureRange(pos, end);\n    }\n\n    this.pos = end;\n    return bytes.subarray(pos, end);\n  }\n\n  getByteRange(begin, end) {\n    if (begin < 0) {\n      begin = 0;\n    }\n    if (end > this.end) {\n      end = this.end;\n    }\n    if (end > this.progressiveDataLength) {\n      this.ensureRange(begin, end);\n    }\n    return this.bytes.subarray(begin, end);\n  }\n\n  makeSubStream(start, length, dict = null) {\n    if (length) {\n      if (start + length > this.progressiveDataLength) {\n        this.ensureRange(start, start + length);\n      }\n    } else if (start >= this.progressiveDataLength) {\n      // When the `length` is undefined you do *not*, under any circumstances,\n      // want to fallback on calling `this.ensureRange(start, this.end)` since\n      // that would force the *entire* PDF file to be loaded, thus completely\n      // breaking the whole purpose of using streaming and/or range requests.\n      //\n      // However, not doing any checking here could very easily lead to wasted\n      // time/resources during e.g. parsing, since `MissingDataException`s will\n      // require data to be re-parsed, which we attempt to minimize by at least\n      // checking that the *beginning* of the data is available here.\n      this.ensureByte(start);\n    }\n\n    function ChunkedStreamSubstream() {}\n    ChunkedStreamSubstream.prototype = Object.create(this);\n    ChunkedStreamSubstream.prototype.getMissingChunks = function () {\n      const chunkSize = this.chunkSize;\n      const beginChunk = Math.floor(this.start / chunkSize);\n      const endChunk = Math.floor((this.end - 1) / chunkSize) + 1;\n      const missingChunks = [];\n      for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n        if (!this._loadedChunks.has(chunk)) {\n          missingChunks.push(chunk);\n        }\n      }\n      return missingChunks;\n    };\n    Object.defineProperty(ChunkedStreamSubstream.prototype, \"isDataLoaded\", {\n      get() {\n        if (this.numChunksLoaded === this.numChunks) {\n          return true;\n        }\n        return this.getMissingChunks().length === 0;\n      },\n      configurable: true,\n    });\n\n    const subStream = new ChunkedStreamSubstream();\n    subStream.pos = subStream.start = start;\n    subStream.end = start + length || this.end;\n    subStream.dict = dict;\n    return subStream;\n  }\n\n  getBaseStreams() {\n    return [this];\n  }\n}\n\nclass ChunkedStreamManager {\n  constructor(pdfNetworkStream, args) {\n    this.length = args.length;\n    this.chunkSize = args.rangeChunkSize;\n    this.stream = new ChunkedStream(this.length, this.chunkSize, this);\n    this.pdfNetworkStream = pdfNetworkStream;\n    this.disableAutoFetch = args.disableAutoFetch;\n    this.msgHandler = args.msgHandler;\n\n    this.currRequestId = 0;\n\n    this._chunksNeededByRequest = new Map();\n    this._requestsByChunk = new Map();\n    this._promisesByRequest = new Map();\n    this.progressiveDataLength = 0;\n    this.aborted = false;\n\n    this._loadedStreamCapability = new PromiseCapability();\n  }\n\n  sendRequest(begin, end) {\n    const rangeReader = this.pdfNetworkStream.getRangeReader(begin, end);\n    if (!rangeReader.isStreamingSupported) {\n      rangeReader.onProgress = this.onProgress.bind(this);\n    }\n\n    let chunks = [],\n      loaded = 0;\n    return new Promise((resolve, reject) => {\n      const readChunk = ({ value, done }) => {\n        try {\n          if (done) {\n            const chunkData = arrayBuffersToBytes(chunks);\n            chunks = null;\n            resolve(chunkData);\n            return;\n          }\n          if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n            assert(\n              value instanceof ArrayBuffer,\n              \"readChunk (sendRequest) - expected an ArrayBuffer.\"\n            );\n          }\n          loaded += value.byteLength;\n\n          if (rangeReader.isStreamingSupported) {\n            this.onProgress({ loaded });\n          }\n\n          chunks.push(value);\n          rangeReader.read().then(readChunk, reject);\n        } catch (e) {\n          reject(e);\n        }\n      };\n      rangeReader.read().then(readChunk, reject);\n    }).then(data => {\n      if (this.aborted) {\n        return; // Ignoring any data after abort.\n      }\n      this.onReceiveData({ chunk: data, begin });\n    });\n  }\n\n  /**\n   * Get all the chunks that are not yet loaded and group them into\n   * contiguous ranges to load in as few requests as possible.\n   */\n  requestAllChunks(noFetch = false) {\n    if (!noFetch) {\n      const missingChunks = this.stream.getMissingChunks();\n      this._requestChunks(missingChunks);\n    }\n    return this._loadedStreamCapability.promise;\n  }\n\n  _requestChunks(chunks) {\n    const requestId = this.currRequestId++;\n\n    const chunksNeeded = new Set();\n    this._chunksNeededByRequest.set(requestId, chunksNeeded);\n    for (const chunk of chunks) {\n      if (!this.stream.hasChunk(chunk)) {\n        chunksNeeded.add(chunk);\n      }\n    }\n\n    if (chunksNeeded.size === 0) {\n      return Promise.resolve();\n    }\n\n    const capability = new PromiseCapability();\n    this._promisesByRequest.set(requestId, capability);\n\n    const chunksToRequest = [];\n    for (const chunk of chunksNeeded) {\n      let requestIds = this._requestsByChunk.get(chunk);\n      if (!requestIds) {\n        requestIds = [];\n        this._requestsByChunk.set(chunk, requestIds);\n\n        chunksToRequest.push(chunk);\n      }\n      requestIds.push(requestId);\n    }\n\n    if (chunksToRequest.length > 0) {\n      const groupedChunksToRequest = this.groupChunks(chunksToRequest);\n      for (const groupedChunk of groupedChunksToRequest) {\n        const begin = groupedChunk.beginChunk * this.chunkSize;\n        const end = Math.min(\n          groupedChunk.endChunk * this.chunkSize,\n          this.length\n        );\n        this.sendRequest(begin, end).catch(capability.reject);\n      }\n    }\n\n    return capability.promise.catch(reason => {\n      if (this.aborted) {\n        return; // Ignoring any pending requests after abort.\n      }\n      throw reason;\n    });\n  }\n\n  getStream() {\n    return this.stream;\n  }\n\n  /**\n   * Loads any chunks in the requested range that are not yet loaded.\n   */\n  requestRange(begin, end) {\n    end = Math.min(end, this.length);\n\n    const beginChunk = this.getBeginChunk(begin);\n    const endChunk = this.getEndChunk(end);\n\n    const chunks = [];\n    for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n      chunks.push(chunk);\n    }\n    return this._requestChunks(chunks);\n  }\n\n  requestRanges(ranges = []) {\n    const chunksToRequest = [];\n    for (const range of ranges) {\n      const beginChunk = this.getBeginChunk(range.begin);\n      const endChunk = this.getEndChunk(range.end);\n      for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n        if (!chunksToRequest.includes(chunk)) {\n          chunksToRequest.push(chunk);\n        }\n      }\n    }\n\n    chunksToRequest.sort(function (a, b) {\n      return a - b;\n    });\n    return this._requestChunks(chunksToRequest);\n  }\n\n  /**\n   * Groups a sorted array of chunks into as few contiguous larger\n   * chunks as possible.\n   */\n  groupChunks(chunks) {\n    const groupedChunks = [];\n    let beginChunk = -1;\n    let prevChunk = -1;\n\n    for (let i = 0, ii = chunks.length; i < ii; ++i) {\n      const chunk = chunks[i];\n      if (beginChunk < 0) {\n        beginChunk = chunk;\n      }\n\n      if (prevChunk >= 0 && prevChunk + 1 !== chunk) {\n        groupedChunks.push({ beginChunk, endChunk: prevChunk + 1 });\n        beginChunk = chunk;\n      }\n      if (i + 1 === chunks.length) {\n        groupedChunks.push({ beginChunk, endChunk: chunk + 1 });\n      }\n\n      prevChunk = chunk;\n    }\n    return groupedChunks;\n  }\n\n  onProgress(args) {\n    this.msgHandler.send(\"DocProgress\", {\n      loaded: this.stream.numChunksLoaded * this.chunkSize + args.loaded,\n      total: this.length,\n    });\n  }\n\n  onReceiveData(args) {\n    const chunk = args.chunk;\n    const isProgressive = args.begin === undefined;\n    const begin = isProgressive ? this.progressiveDataLength : args.begin;\n    const end = begin + chunk.byteLength;\n\n    const beginChunk = Math.floor(begin / this.chunkSize);\n    const endChunk =\n      end < this.length\n        ? Math.floor(end / this.chunkSize)\n        : Math.ceil(end / this.chunkSize);\n\n    if (isProgressive) {\n      this.stream.onReceiveProgressiveData(chunk);\n      this.progressiveDataLength = end;\n    } else {\n      this.stream.onReceiveData(begin, chunk);\n    }\n\n    if (this.stream.isDataLoaded) {\n      this._loadedStreamCapability.resolve(this.stream);\n    }\n\n    const loadedRequests = [];\n    for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n      // The server might return more chunks than requested.\n      const requestIds = this._requestsByChunk.get(curChunk);\n      if (!requestIds) {\n        continue;\n      }\n      this._requestsByChunk.delete(curChunk);\n\n      for (const requestId of requestIds) {\n        const chunksNeeded = this._chunksNeededByRequest.get(requestId);\n        if (chunksNeeded.has(curChunk)) {\n          chunksNeeded.delete(curChunk);\n        }\n\n        if (chunksNeeded.size > 0) {\n          continue;\n        }\n        loadedRequests.push(requestId);\n      }\n    }\n\n    // If there are no pending requests, automatically fetch the next\n    // unfetched chunk of the PDF file.\n    if (!this.disableAutoFetch && this._requestsByChunk.size === 0) {\n      let nextEmptyChunk;\n      if (this.stream.numChunksLoaded === 1) {\n        // This is a special optimization so that after fetching the first\n        // chunk, rather than fetching the second chunk, we fetch the last\n        // chunk.\n        const lastChunk = this.stream.numChunks - 1;\n        if (!this.stream.hasChunk(lastChunk)) {\n          nextEmptyChunk = lastChunk;\n        }\n      } else {\n        nextEmptyChunk = this.stream.nextEmptyChunk(endChunk);\n      }\n      if (Number.isInteger(nextEmptyChunk)) {\n        this._requestChunks([nextEmptyChunk]);\n      }\n    }\n\n    for (const requestId of loadedRequests) {\n      const capability = this._promisesByRequest.get(requestId);\n      this._promisesByRequest.delete(requestId);\n      capability.resolve();\n    }\n\n    this.msgHandler.send(\"DocProgress\", {\n      loaded: this.stream.numChunksLoaded * this.chunkSize,\n      total: this.length,\n    });\n  }\n\n  onError(err) {\n    this._loadedStreamCapability.reject(err);\n  }\n\n  getBeginChunk(begin) {\n    return Math.floor(begin / this.chunkSize);\n  }\n\n  getEndChunk(end) {\n    return Math.floor((end - 1) / this.chunkSize) + 1;\n  }\n\n  abort(reason) {\n    this.aborted = true;\n    this.pdfNetworkStream?.cancelAllRequests(reason);\n\n    for (const capability of this._promisesByRequest.values()) {\n      capability.reject(reason);\n    }\n  }\n}\n\nexport { ChunkedStream, ChunkedStreamManager };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  assert,\n  FormatError,\n  info,\n  shadow,\n  unreachable,\n  warn,\n} from \"../shared/util.js\";\nimport { Dict, Name, Ref } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { MissingDataException } from \"./core_utils.js\";\n\n/**\n * Resizes an RGB image with 3 components.\n * @param {TypedArray} src - The source buffer.\n * @param {TypedArray} dest - The destination buffer.\n * @param {number} w1 - Original width.\n * @param {number} h1 - Original height.\n * @param {number} w2 - New width.\n * @param {number} h2 - New height.\n * @param {number} alpha01 - Size reserved for the alpha channel.\n */\nfunction resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) {\n  const COMPONENTS = 3;\n  alpha01 = alpha01 !== 1 ? 0 : alpha01;\n  const xRatio = w1 / w2;\n  const yRatio = h1 / h2;\n  let newIndex = 0,\n    oldIndex;\n  const xScaled = new Uint16Array(w2);\n  const w1Scanline = w1 * COMPONENTS;\n\n  for (let i = 0; i < w2; i++) {\n    xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;\n  }\n  for (let i = 0; i < h2; i++) {\n    const py = Math.floor(i * yRatio) * w1Scanline;\n    for (let j = 0; j < w2; j++) {\n      oldIndex = py + xScaled[j];\n      dest[newIndex++] = src[oldIndex++];\n      dest[newIndex++] = src[oldIndex++];\n      dest[newIndex++] = src[oldIndex++];\n      newIndex += alpha01;\n    }\n  }\n}\n\nclass ColorSpace {\n  constructor(name, numComps) {\n    if (this.constructor === ColorSpace) {\n      unreachable(\"Cannot initialize ColorSpace.\");\n    }\n    this.name = name;\n    this.numComps = numComps;\n  }\n\n  /**\n   * Converts the color value to the RGB color. The color components are\n   * located in the src array starting from the srcOffset. Returns the array\n   * of the rgb components, each value ranging from [0,255].\n   */\n  getRgb(src, srcOffset) {\n    const rgb = new Uint8ClampedArray(3);\n    this.getRgbItem(src, srcOffset, rgb, 0);\n    return rgb;\n  }\n\n  /**\n   * Converts the color value to the RGB color, similar to the getRgb method.\n   * The result placed into the dest array starting from the destOffset.\n   */\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    unreachable(\"Should not call ColorSpace.getRgbItem\");\n  }\n\n  /**\n   * Converts the specified number of the color values to the RGB colors.\n   * The colors are located in the src array starting from the srcOffset.\n   * The result is placed into the dest array starting from the destOffset.\n   * The src array items shall be in [0,2^bits) range, the dest array items\n   * will be in [0,255] range. alpha01 indicates how many alpha components\n   * there are in the dest array; it will be either 0 (RGB array) or 1 (RGBA\n   * array).\n   */\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    unreachable(\"Should not call ColorSpace.getRgbBuffer\");\n  }\n\n  /**\n   * Determines the number of bytes required to store the result of the\n   * conversion done by the getRgbBuffer method. As in getRgbBuffer,\n   * |alpha01| is either 0 (RGB output) or 1 (RGBA output).\n   */\n  getOutputLength(inputLength, alpha01) {\n    unreachable(\"Should not call ColorSpace.getOutputLength\");\n  }\n\n  /**\n   * Returns true if source data will be equal the result/output data.\n   */\n  isPassthrough(bits) {\n    return false;\n  }\n\n  /**\n   * Refer to the static `ColorSpace.isDefaultDecode` method below.\n   */\n  isDefaultDecode(decodeMap, bpc) {\n    return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n  }\n\n  /**\n   * Fills in the RGB colors in the destination buffer.  alpha01 indicates\n   * how many alpha components there are in the dest array; it will be either\n   * 0 (RGB array) or 1 (RGBA array).\n   */\n  fillRgb(\n    dest,\n    originalWidth,\n    originalHeight,\n    width,\n    height,\n    actualHeight,\n    bpc,\n    comps,\n    alpha01\n  ) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'ColorSpace.fillRgb: Unsupported \"dest\" type.'\n      );\n    }\n    const count = originalWidth * originalHeight;\n    let rgbBuf = null;\n    const numComponentColors = 1 << bpc;\n    const needsResizing = originalHeight !== height || originalWidth !== width;\n\n    if (this.isPassthrough(bpc)) {\n      rgbBuf = comps;\n    } else if (\n      this.numComps === 1 &&\n      count > numComponentColors &&\n      this.name !== \"DeviceGray\" &&\n      this.name !== \"DeviceRGB\"\n    ) {\n      // Optimization: create a color map when there is just one component and\n      // we are converting more colors than the size of the color map. We\n      // don't build the map if the colorspace is gray or rgb since those\n      // methods are faster than building a map. This mainly offers big speed\n      // ups for indexed and alternate colorspaces.\n      //\n      // TODO it may be worth while to cache the color map. While running\n      // testing I never hit a cache so I will leave that out for now (perhaps\n      // we are reparsing colorspaces too much?).\n      const allColors =\n        bpc <= 8\n          ? new Uint8Array(numComponentColors)\n          : new Uint16Array(numComponentColors);\n      for (let i = 0; i < numComponentColors; i++) {\n        allColors[i] = i;\n      }\n      const colorMap = new Uint8ClampedArray(numComponentColors * 3);\n      this.getRgbBuffer(\n        allColors,\n        0,\n        numComponentColors,\n        colorMap,\n        0,\n        bpc,\n        /* alpha01 = */ 0\n      );\n\n      if (!needsResizing) {\n        // Fill in the RGB values directly into |dest|.\n        let destPos = 0;\n        for (let i = 0; i < count; ++i) {\n          const key = comps[i] * 3;\n          dest[destPos++] = colorMap[key];\n          dest[destPos++] = colorMap[key + 1];\n          dest[destPos++] = colorMap[key + 2];\n          destPos += alpha01;\n        }\n      } else {\n        rgbBuf = new Uint8Array(count * 3);\n        let rgbPos = 0;\n        for (let i = 0; i < count; ++i) {\n          const key = comps[i] * 3;\n          rgbBuf[rgbPos++] = colorMap[key];\n          rgbBuf[rgbPos++] = colorMap[key + 1];\n          rgbBuf[rgbPos++] = colorMap[key + 2];\n        }\n      }\n    } else if (!needsResizing) {\n      // Fill in the RGB values directly into |dest|.\n      this.getRgbBuffer(comps, 0, width * actualHeight, dest, 0, bpc, alpha01);\n    } else {\n      rgbBuf = new Uint8ClampedArray(count * 3);\n      this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, /* alpha01 = */ 0);\n    }\n\n    if (rgbBuf) {\n      if (needsResizing) {\n        resizeRgbImage(\n          rgbBuf,\n          dest,\n          originalWidth,\n          originalHeight,\n          width,\n          height,\n          alpha01\n        );\n      } else {\n        let destPos = 0,\n          rgbPos = 0;\n        for (let i = 0, ii = width * actualHeight; i < ii; i++) {\n          dest[destPos++] = rgbBuf[rgbPos++];\n          dest[destPos++] = rgbBuf[rgbPos++];\n          dest[destPos++] = rgbBuf[rgbPos++];\n          destPos += alpha01;\n        }\n      }\n    }\n  }\n\n  /**\n   * True if the colorspace has components in the default range of [0, 1].\n   * This should be true for all colorspaces except for lab color spaces\n   * which are [0,100], [-128, 127], [-128, 127].\n   */\n  get usesZeroToOneRange() {\n    return shadow(this, \"usesZeroToOneRange\", true);\n  }\n\n  /**\n   * @private\n   */\n  static _cache(cacheKey, xref, localColorSpaceCache, parsedColorSpace) {\n    if (!localColorSpaceCache) {\n      throw new Error(\n        'ColorSpace._cache - expected \"localColorSpaceCache\" argument.'\n      );\n    }\n    if (!parsedColorSpace) {\n      throw new Error(\n        'ColorSpace._cache - expected \"parsedColorSpace\" argument.'\n      );\n    }\n    let csName, csRef;\n    if (cacheKey instanceof Ref) {\n      csRef = cacheKey;\n\n      // If parsing succeeded, we know that this call cannot throw.\n      cacheKey = xref.fetch(cacheKey);\n    }\n    if (cacheKey instanceof Name) {\n      csName = cacheKey.name;\n    }\n    if (csName || csRef) {\n      localColorSpaceCache.set(csName, csRef, parsedColorSpace);\n    }\n  }\n\n  static getCached(cacheKey, xref, localColorSpaceCache) {\n    if (!localColorSpaceCache) {\n      throw new Error(\n        'ColorSpace.getCached - expected \"localColorSpaceCache\" argument.'\n      );\n    }\n    if (cacheKey instanceof Ref) {\n      const localColorSpace = localColorSpaceCache.getByRef(cacheKey);\n      if (localColorSpace) {\n        return localColorSpace;\n      }\n\n      try {\n        cacheKey = xref.fetch(cacheKey);\n      } catch (ex) {\n        if (ex instanceof MissingDataException) {\n          throw ex;\n        }\n        // Any errors should be handled during parsing, rather than here.\n      }\n    }\n    if (cacheKey instanceof Name) {\n      const localColorSpace = localColorSpaceCache.getByName(cacheKey.name);\n      if (localColorSpace) {\n        return localColorSpace;\n      }\n    }\n    return null;\n  }\n\n  static async parseAsync({\n    cs,\n    xref,\n    resources = null,\n    pdfFunctionFactory,\n    localColorSpaceCache,\n  }) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        !this.getCached(cs, xref, localColorSpaceCache),\n        \"Expected `ColorSpace.getCached` to have been manually checked \" +\n          \"before calling `ColorSpace.parseAsync`.\"\n      );\n    }\n    const parsedColorSpace = this._parse(\n      cs,\n      xref,\n      resources,\n      pdfFunctionFactory\n    );\n\n    // Attempt to cache the parsed ColorSpace, by name and/or reference.\n    this._cache(cs, xref, localColorSpaceCache, parsedColorSpace);\n\n    return parsedColorSpace;\n  }\n\n  static parse({\n    cs,\n    xref,\n    resources = null,\n    pdfFunctionFactory,\n    localColorSpaceCache,\n  }) {\n    const cachedColorSpace = this.getCached(cs, xref, localColorSpaceCache);\n    if (cachedColorSpace) {\n      return cachedColorSpace;\n    }\n    const parsedColorSpace = this._parse(\n      cs,\n      xref,\n      resources,\n      pdfFunctionFactory\n    );\n\n    // Attempt to cache the parsed ColorSpace, by name and/or reference.\n    this._cache(cs, xref, localColorSpaceCache, parsedColorSpace);\n\n    return parsedColorSpace;\n  }\n\n  /**\n   * @private\n   */\n  static _parse(cs, xref, resources = null, pdfFunctionFactory) {\n    cs = xref.fetchIfRef(cs);\n    if (cs instanceof Name) {\n      switch (cs.name) {\n        case \"G\":\n        case \"DeviceGray\":\n          return this.singletons.gray;\n        case \"RGB\":\n        case \"DeviceRGB\":\n          return this.singletons.rgb;\n        case \"CMYK\":\n        case \"DeviceCMYK\":\n          return this.singletons.cmyk;\n        case \"Pattern\":\n          return new PatternCS(/* baseCS = */ null);\n        default:\n          if (resources instanceof Dict) {\n            const colorSpaces = resources.get(\"ColorSpace\");\n            if (colorSpaces instanceof Dict) {\n              const resourcesCS = colorSpaces.get(cs.name);\n              if (resourcesCS) {\n                if (resourcesCS instanceof Name) {\n                  return this._parse(\n                    resourcesCS,\n                    xref,\n                    resources,\n                    pdfFunctionFactory\n                  );\n                }\n                cs = resourcesCS;\n                break;\n              }\n            }\n          }\n          throw new FormatError(`Unrecognized ColorSpace: ${cs.name}`);\n      }\n    }\n    if (Array.isArray(cs)) {\n      const mode = xref.fetchIfRef(cs[0]).name;\n      let params, numComps, baseCS, whitePoint, blackPoint, gamma;\n\n      switch (mode) {\n        case \"G\":\n        case \"DeviceGray\":\n          return this.singletons.gray;\n        case \"RGB\":\n        case \"DeviceRGB\":\n          return this.singletons.rgb;\n        case \"CMYK\":\n        case \"DeviceCMYK\":\n          return this.singletons.cmyk;\n        case \"CalGray\":\n          params = xref.fetchIfRef(cs[1]);\n          whitePoint = params.getArray(\"WhitePoint\");\n          blackPoint = params.getArray(\"BlackPoint\");\n          gamma = params.get(\"Gamma\");\n          return new CalGrayCS(whitePoint, blackPoint, gamma);\n        case \"CalRGB\":\n          params = xref.fetchIfRef(cs[1]);\n          whitePoint = params.getArray(\"WhitePoint\");\n          blackPoint = params.getArray(\"BlackPoint\");\n          gamma = params.getArray(\"Gamma\");\n          const matrix = params.getArray(\"Matrix\");\n          return new CalRGBCS(whitePoint, blackPoint, gamma, matrix);\n        case \"ICCBased\":\n          const stream = xref.fetchIfRef(cs[1]);\n          const dict = stream.dict;\n          numComps = dict.get(\"N\");\n          const alt = dict.get(\"Alternate\");\n          if (alt) {\n            const altCS = this._parse(alt, xref, resources, pdfFunctionFactory);\n            // Ensure that the number of components are correct,\n            // and also (indirectly) that it is not a PatternCS.\n            if (altCS.numComps === numComps) {\n              return altCS;\n            }\n            warn(\"ICCBased color space: Ignoring incorrect /Alternate entry.\");\n          }\n          if (numComps === 1) {\n            return this.singletons.gray;\n          } else if (numComps === 3) {\n            return this.singletons.rgb;\n          } else if (numComps === 4) {\n            return this.singletons.cmyk;\n          }\n          break;\n        case \"Pattern\":\n          baseCS = cs[1] || null;\n          if (baseCS) {\n            baseCS = this._parse(baseCS, xref, resources, pdfFunctionFactory);\n          }\n          return new PatternCS(baseCS);\n        case \"I\":\n        case \"Indexed\":\n          baseCS = this._parse(cs[1], xref, resources, pdfFunctionFactory);\n          const hiVal = xref.fetchIfRef(cs[2]) + 1;\n          const lookup = xref.fetchIfRef(cs[3]);\n          return new IndexedCS(baseCS, hiVal, lookup);\n        case \"Separation\":\n        case \"DeviceN\":\n          const name = xref.fetchIfRef(cs[1]);\n          numComps = Array.isArray(name) ? name.length : 1;\n          baseCS = this._parse(cs[2], xref, resources, pdfFunctionFactory);\n          const tintFn = pdfFunctionFactory.create(cs[3]);\n          return new AlternateCS(numComps, baseCS, tintFn);\n        case \"Lab\":\n          params = xref.fetchIfRef(cs[1]);\n          whitePoint = params.getArray(\"WhitePoint\");\n          blackPoint = params.getArray(\"BlackPoint\");\n          const range = params.getArray(\"Range\");\n          return new LabCS(whitePoint, blackPoint, range);\n        default:\n          throw new FormatError(`Unimplemented ColorSpace object: ${mode}`);\n      }\n    }\n    throw new FormatError(`Unrecognized ColorSpace object: ${cs}`);\n  }\n\n  /**\n   * Checks if a decode map matches the default decode map for a color space.\n   * This handles the general decode maps where there are two values per\n   * component, e.g. [0, 1, 0, 1, 0, 1] for a RGB color.\n   * This does not handle Lab, Indexed, or Pattern decode maps since they are\n   * slightly different.\n   * @param {Array} decode - Decode map (usually from an image).\n   * @param {number} numComps - Number of components the color space has.\n   */\n  static isDefaultDecode(decode, numComps) {\n    if (!Array.isArray(decode)) {\n      return true;\n    }\n    if (numComps * 2 !== decode.length) {\n      warn(\"The decode map is not the correct length\");\n      return true;\n    }\n    for (let i = 0, ii = decode.length; i < ii; i += 2) {\n      if (decode[i] !== 0 || decode[i + 1] !== 1) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  static get singletons() {\n    return shadow(this, \"singletons\", {\n      get gray() {\n        return shadow(this, \"gray\", new DeviceGrayCS());\n      },\n      get rgb() {\n        return shadow(this, \"rgb\", new DeviceRgbCS());\n      },\n      get cmyk() {\n        return shadow(this, \"cmyk\", new DeviceCmykCS());\n      },\n    });\n  }\n}\n\n/**\n * Alternate color space handles both Separation and DeviceN color spaces.  A\n * Separation color space is actually just a DeviceN with one color component.\n * Both color spaces use a tinting function to convert colors to a base color\n * space.\n *\n * The default color is `new Float32Array(new Array(numComps).fill(1))`.\n */\nclass AlternateCS extends ColorSpace {\n  constructor(numComps, base, tintFn) {\n    super(\"Alternate\", numComps);\n    this.base = base;\n    this.tintFn = tintFn;\n    this.tmpBuf = new Float32Array(base.numComps);\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'AlternateCS.getRgbItem: Unsupported \"dest\" type.'\n      );\n    }\n    const tmpBuf = this.tmpBuf;\n    this.tintFn(src, srcOffset, tmpBuf, 0);\n    this.base.getRgbItem(tmpBuf, 0, dest, destOffset);\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'AlternateCS.getRgbBuffer: Unsupported \"dest\" type.'\n      );\n    }\n    const tintFn = this.tintFn;\n    const base = this.base;\n    const scale = 1 / ((1 << bits) - 1);\n    const baseNumComps = base.numComps;\n    const usesZeroToOneRange = base.usesZeroToOneRange;\n    const isPassthrough =\n      (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;\n    let pos = isPassthrough ? destOffset : 0;\n    const baseBuf = isPassthrough\n      ? dest\n      : new Uint8ClampedArray(baseNumComps * count);\n    const numComps = this.numComps;\n\n    const scaled = new Float32Array(numComps);\n    const tinted = new Float32Array(baseNumComps);\n    let i, j;\n\n    for (i = 0; i < count; i++) {\n      for (j = 0; j < numComps; j++) {\n        scaled[j] = src[srcOffset++] * scale;\n      }\n      tintFn(scaled, 0, tinted, 0);\n      if (usesZeroToOneRange) {\n        for (j = 0; j < baseNumComps; j++) {\n          baseBuf[pos++] = tinted[j] * 255;\n        }\n      } else {\n        base.getRgbItem(tinted, 0, baseBuf, pos);\n        pos += baseNumComps;\n      }\n    }\n\n    if (!isPassthrough) {\n      base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01);\n    }\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    return this.base.getOutputLength(\n      (inputLength * this.base.numComps) / this.numComps,\n      alpha01\n    );\n  }\n}\n\nclass PatternCS extends ColorSpace {\n  constructor(baseCS) {\n    super(\"Pattern\", null);\n    this.base = baseCS;\n  }\n\n  isDefaultDecode(decodeMap, bpc) {\n    unreachable(\"Should not call PatternCS.isDefaultDecode\");\n  }\n}\n\n/**\n * The default color is `new Uint8Array([0])`.\n */\nclass IndexedCS extends ColorSpace {\n  constructor(base, highVal, lookup) {\n    super(\"Indexed\", 1);\n    this.base = base;\n    this.highVal = highVal;\n\n    const length = base.numComps * highVal;\n    this.lookup = new Uint8Array(length);\n\n    if (lookup instanceof BaseStream) {\n      const bytes = lookup.getBytes(length);\n      this.lookup.set(bytes);\n    } else if (typeof lookup === \"string\") {\n      for (let i = 0; i < length; ++i) {\n        this.lookup[i] = lookup.charCodeAt(i) & 0xff;\n      }\n    } else {\n      throw new FormatError(`IndexedCS - unrecognized lookup table: ${lookup}`);\n    }\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'IndexedCS.getRgbItem: Unsupported \"dest\" type.'\n      );\n    }\n    const numComps = this.base.numComps;\n    const start = src[srcOffset] * numComps;\n    this.base.getRgbBuffer(this.lookup, start, 1, dest, destOffset, 8, 0);\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'IndexedCS.getRgbBuffer: Unsupported \"dest\" type.'\n      );\n    }\n    const base = this.base;\n    const numComps = base.numComps;\n    const outputDelta = base.getOutputLength(numComps, alpha01);\n    const lookup = this.lookup;\n\n    for (let i = 0; i < count; ++i) {\n      const lookupPos = src[srcOffset++] * numComps;\n      base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01);\n      destOffset += outputDelta;\n    }\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);\n  }\n\n  isDefaultDecode(decodeMap, bpc) {\n    if (!Array.isArray(decodeMap)) {\n      return true;\n    }\n    if (decodeMap.length !== 2) {\n      warn(\"Decode map length is not correct\");\n      return true;\n    }\n    if (!Number.isInteger(bpc) || bpc < 1) {\n      warn(\"Bits per component is not correct\");\n      return true;\n    }\n    return decodeMap[0] === 0 && decodeMap[1] === (1 << bpc) - 1;\n  }\n}\n\n/**\n * The default color is `new Float32Array([0])`.\n */\nclass DeviceGrayCS extends ColorSpace {\n  constructor() {\n    super(\"DeviceGray\", 1);\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'DeviceGrayCS.getRgbItem: Unsupported \"dest\" type.'\n      );\n    }\n    const c = src[srcOffset] * 255;\n    dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'DeviceGrayCS.getRgbBuffer: Unsupported \"dest\" type.'\n      );\n    }\n    const scale = 255 / ((1 << bits) - 1);\n    let j = srcOffset,\n      q = destOffset;\n    for (let i = 0; i < count; ++i) {\n      const c = scale * src[j++];\n      dest[q++] = c;\n      dest[q++] = c;\n      dest[q++] = c;\n      q += alpha01;\n    }\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    return inputLength * (3 + alpha01);\n  }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nclass DeviceRgbCS extends ColorSpace {\n  constructor() {\n    super(\"DeviceRGB\", 3);\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'DeviceRgbCS.getRgbItem: Unsupported \"dest\" type.'\n      );\n    }\n    dest[destOffset] = src[srcOffset] * 255;\n    dest[destOffset + 1] = src[srcOffset + 1] * 255;\n    dest[destOffset + 2] = src[srcOffset + 2] * 255;\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'DeviceRgbCS.getRgbBuffer: Unsupported \"dest\" type.'\n      );\n    }\n    if (bits === 8 && alpha01 === 0) {\n      dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset);\n      return;\n    }\n    const scale = 255 / ((1 << bits) - 1);\n    let j = srcOffset,\n      q = destOffset;\n    for (let i = 0; i < count; ++i) {\n      dest[q++] = scale * src[j++];\n      dest[q++] = scale * src[j++];\n      dest[q++] = scale * src[j++];\n      q += alpha01;\n    }\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    return ((inputLength * (3 + alpha01)) / 3) | 0;\n  }\n\n  isPassthrough(bits) {\n    return bits === 8;\n  }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0, 1])`.\n */\nclass DeviceCmykCS extends ColorSpace {\n  constructor() {\n    super(\"DeviceCMYK\", 4);\n  }\n\n  // The coefficients below was found using numerical analysis: the method of\n  // steepest descent for the sum((f_i - color_value_i)^2) for r/g/b colors,\n  // where color_value is the tabular value from the table of sampled RGB colors\n  // from CMYK US Web Coated (SWOP) colorspace, and f_i is the corresponding\n  // CMYK color conversion using the estimation below:\n  //   f(A, B,.. N) = Acc+Bcm+Ccy+Dck+c+Fmm+Gmy+Hmk+Im+Jyy+Kyk+Ly+Mkk+Nk+255\n  #toRgb(src, srcOffset, srcScale, dest, destOffset) {\n    const c = src[srcOffset] * srcScale;\n    const m = src[srcOffset + 1] * srcScale;\n    const y = src[srcOffset + 2] * srcScale;\n    const k = src[srcOffset + 3] * srcScale;\n\n    dest[destOffset] =\n      255 +\n      c *\n        (-4.387332384609988 * c +\n          54.48615194189176 * m +\n          18.82290502165302 * y +\n          212.25662451639585 * k +\n          -285.2331026137004) +\n      m *\n        (1.7149763477362134 * m -\n          5.6096736904047315 * y +\n          -17.873870861415444 * k -\n          5.497006427196366) +\n      y *\n        (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) +\n      k * (-21.86122147463605 * k - 189.48180835922747);\n\n    dest[destOffset + 1] =\n      255 +\n      c *\n        (8.841041422036149 * c +\n          60.118027045597366 * m +\n          6.871425592049007 * y +\n          31.159100130055922 * k +\n          -79.2970844816548) +\n      m *\n        (-15.310361306967817 * m +\n          17.575251261109482 * y +\n          131.35250912493976 * k -\n          190.9453302588951) +\n      y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) +\n      k * (-20.737325471181034 * k - 187.80453709719578);\n\n    dest[destOffset + 2] =\n      255 +\n      c *\n        (0.8842522430003296 * c +\n          8.078677503112928 * m +\n          30.89978309703729 * y -\n          0.23883238689178934 * k +\n          -14.183576799673286) +\n      m *\n        (10.49593273432072 * m +\n          63.02378494754052 * y +\n          50.606957656360734 * k -\n          112.23884253719248) +\n      y *\n        (0.03296041114873217 * y +\n          115.60384449646641 * k +\n          -193.58209356861505) +\n      k * (-22.33816807309886 * k - 180.12613974708367);\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'DeviceCmykCS.getRgbItem: Unsupported \"dest\" type.'\n      );\n    }\n    this.#toRgb(src, srcOffset, 1, dest, destOffset);\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'DeviceCmykCS.getRgbBuffer: Unsupported \"dest\" type.'\n      );\n    }\n    const scale = 1 / ((1 << bits) - 1);\n    for (let i = 0; i < count; i++) {\n      this.#toRgb(src, srcOffset, scale, dest, destOffset);\n      srcOffset += 4;\n      destOffset += 3 + alpha01;\n    }\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    return ((inputLength / 4) * (3 + alpha01)) | 0;\n  }\n}\n\n/**\n * CalGrayCS: Based on \"PDF Reference, Sixth Ed\", p.245\n *\n * The default color is `new Float32Array([0])`.\n */\nclass CalGrayCS extends ColorSpace {\n  constructor(whitePoint, blackPoint, gamma) {\n    super(\"CalGray\", 1);\n\n    if (!whitePoint) {\n      throw new FormatError(\n        \"WhitePoint missing - required for color space CalGray\"\n      );\n    }\n    // Translate arguments to spec variables.\n    [this.XW, this.YW, this.ZW] = whitePoint;\n    [this.XB, this.YB, this.ZB] = blackPoint || [0, 0, 0];\n    this.G = gamma || 1;\n\n    // Validate variables as per spec.\n    if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n      throw new FormatError(\n        `Invalid WhitePoint components for ${this.name}, no fallback available`\n      );\n    }\n\n    if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n      info(`Invalid BlackPoint for ${this.name}, falling back to default.`);\n      this.XB = this.YB = this.ZB = 0;\n    }\n\n    if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) {\n      warn(\n        `${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ` +\n          `ZB: ${this.ZB}, only default values are supported.`\n      );\n    }\n\n    if (this.G < 1) {\n      info(\n        `Invalid Gamma: ${this.G} for ${this.name}, falling back to default.`\n      );\n      this.G = 1;\n    }\n  }\n\n  #toRgb(src, srcOffset, dest, destOffset, scale) {\n    // A represents a gray component of a calibrated gray space.\n    // A <---> AG in the spec\n    const A = src[srcOffset] * scale;\n    const AG = A ** this.G;\n\n    // Computes L as per spec. ( = this.YW * AG )\n    // Except if other than default BlackPoint values are used.\n    const L = this.YW * AG;\n    // http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html, Ch 4.\n    // Convert values to rgb range [0, 255].\n    const val = Math.max(295.8 * L ** 0.3333333333333333 - 40.8, 0);\n    dest[destOffset] = val;\n    dest[destOffset + 1] = val;\n    dest[destOffset + 2] = val;\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'CalGrayCS.getRgbItem: Unsupported \"dest\" type.'\n      );\n    }\n    this.#toRgb(src, srcOffset, dest, destOffset, 1);\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'CalGrayCS.getRgbBuffer: Unsupported \"dest\" type.'\n      );\n    }\n    const scale = 1 / ((1 << bits) - 1);\n\n    for (let i = 0; i < count; ++i) {\n      this.#toRgb(src, srcOffset, dest, destOffset, scale);\n      srcOffset += 1;\n      destOffset += 3 + alpha01;\n    }\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    return inputLength * (3 + alpha01);\n  }\n}\n\n/**\n * CalRGBCS: Based on \"PDF Reference, Sixth Ed\", p.247\n *\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nclass CalRGBCS extends ColorSpace {\n  // See http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html for these\n  // matrices.\n  // prettier-ignore\n  static #BRADFORD_SCALE_MATRIX = new Float32Array([\n    0.8951, 0.2664, -0.1614,\n    -0.7502, 1.7135, 0.0367,\n    0.0389, -0.0685, 1.0296]);\n\n  // prettier-ignore\n  static #BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([\n    0.9869929, -0.1470543, 0.1599627,\n    0.4323053, 0.5183603, 0.0492912,\n    -0.0085287, 0.0400428, 0.9684867]);\n\n  // See http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html.\n  // prettier-ignore\n  static #SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([\n    3.2404542, -1.5371385, -0.4985314,\n    -0.9692660, 1.8760108, 0.0415560,\n    0.0556434, -0.2040259, 1.0572252]);\n\n  static #FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);\n\n  static #tempNormalizeMatrix = new Float32Array(3);\n\n  static #tempConvertMatrix1 = new Float32Array(3);\n\n  static #tempConvertMatrix2 = new Float32Array(3);\n\n  static #DECODE_L_CONSTANT = ((8 + 16) / 116) ** 3 / 8.0;\n\n  constructor(whitePoint, blackPoint, gamma, matrix) {\n    super(\"CalRGB\", 3);\n\n    if (!whitePoint) {\n      throw new FormatError(\n        \"WhitePoint missing - required for color space CalRGB\"\n      );\n    }\n    // Translate arguments to spec variables.\n    const [XW, YW, ZW] = (this.whitePoint = whitePoint);\n    const [XB, YB, ZB] = (this.blackPoint = blackPoint || new Float32Array(3));\n\n    [this.GR, this.GG, this.GB] = gamma || new Float32Array([1, 1, 1]);\n    [\n      this.MXA,\n      this.MYA,\n      this.MZA,\n      this.MXB,\n      this.MYB,\n      this.MZB,\n      this.MXC,\n      this.MYC,\n      this.MZC,\n    ] = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);\n\n    // Validate variables as per spec.\n    if (XW < 0 || ZW < 0 || YW !== 1) {\n      throw new FormatError(\n        `Invalid WhitePoint components for ${this.name}, no fallback available`\n      );\n    }\n\n    if (XB < 0 || YB < 0 || ZB < 0) {\n      info(\n        `Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], ` +\n          \"falling back to default.\"\n      );\n      this.blackPoint = new Float32Array(3);\n    }\n\n    if (this.GR < 0 || this.GG < 0 || this.GB < 0) {\n      info(\n        `Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ` +\n          `${this.name}, falling back to default.`\n      );\n      this.GR = this.GG = this.GB = 1;\n    }\n  }\n\n  #matrixProduct(a, b, result) {\n    result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n    result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2];\n    result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2];\n  }\n\n  #toFlat(sourceWhitePoint, LMS, result) {\n    result[0] = (LMS[0] * 1) / sourceWhitePoint[0];\n    result[1] = (LMS[1] * 1) / sourceWhitePoint[1];\n    result[2] = (LMS[2] * 1) / sourceWhitePoint[2];\n  }\n\n  #toD65(sourceWhitePoint, LMS, result) {\n    const D65X = 0.95047;\n    const D65Y = 1;\n    const D65Z = 1.08883;\n\n    result[0] = (LMS[0] * D65X) / sourceWhitePoint[0];\n    result[1] = (LMS[1] * D65Y) / sourceWhitePoint[1];\n    result[2] = (LMS[2] * D65Z) / sourceWhitePoint[2];\n  }\n\n  #sRGBTransferFunction(color) {\n    // See http://en.wikipedia.org/wiki/SRGB.\n    if (color <= 0.0031308) {\n      return this.#adjustToRange(0, 1, 12.92 * color);\n    }\n    // Optimization:\n    // If color is close enough to 1, skip calling the following transform\n    // since calling Math.pow is expensive. If color is larger than\n    // the threshold, the final result is larger than 254.5 since\n    // ((1 + 0.055) * 0.99554525 ** (1 / 2.4) - 0.055) * 255 ===\n    // 254.50000003134699\n    if (color >= 0.99554525) {\n      return 1;\n    }\n    return this.#adjustToRange(0, 1, (1 + 0.055) * color ** (1 / 2.4) - 0.055);\n  }\n\n  #adjustToRange(min, max, value) {\n    return Math.max(min, Math.min(max, value));\n  }\n\n  #decodeL(L) {\n    if (L < 0) {\n      return -this.#decodeL(-L);\n    }\n    if (L > 8.0) {\n      return ((L + 16) / 116) ** 3;\n    }\n    return L * CalRGBCS.#DECODE_L_CONSTANT;\n  }\n\n  #compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) {\n    // In case the blackPoint is already the default blackPoint then there is\n    // no need to do compensation.\n    if (\n      sourceBlackPoint[0] === 0 &&\n      sourceBlackPoint[1] === 0 &&\n      sourceBlackPoint[2] === 0\n    ) {\n      result[0] = XYZ_Flat[0];\n      result[1] = XYZ_Flat[1];\n      result[2] = XYZ_Flat[2];\n      return;\n    }\n\n    // For the blackPoint calculation details, please see\n    // http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/sdk/\n    // AdobeBPC.pdf.\n    // The destination blackPoint is the default blackPoint [0, 0, 0].\n    const zeroDecodeL = this.#decodeL(0);\n\n    const X_DST = zeroDecodeL;\n    const X_SRC = this.#decodeL(sourceBlackPoint[0]);\n\n    const Y_DST = zeroDecodeL;\n    const Y_SRC = this.#decodeL(sourceBlackPoint[1]);\n\n    const Z_DST = zeroDecodeL;\n    const Z_SRC = this.#decodeL(sourceBlackPoint[2]);\n\n    const X_Scale = (1 - X_DST) / (1 - X_SRC);\n    const X_Offset = 1 - X_Scale;\n\n    const Y_Scale = (1 - Y_DST) / (1 - Y_SRC);\n    const Y_Offset = 1 - Y_Scale;\n\n    const Z_Scale = (1 - Z_DST) / (1 - Z_SRC);\n    const Z_Offset = 1 - Z_Scale;\n\n    result[0] = XYZ_Flat[0] * X_Scale + X_Offset;\n    result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset;\n    result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset;\n  }\n\n  #normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) {\n    // In case the whitePoint is already flat then there is no need to do\n    // normalization.\n    if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) {\n      result[0] = XYZ_In[0];\n      result[1] = XYZ_In[1];\n      result[2] = XYZ_In[2];\n      return;\n    }\n\n    const LMS = result;\n    this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n\n    const LMS_Flat = CalRGBCS.#tempNormalizeMatrix;\n    this.#toFlat(sourceWhitePoint, LMS, LMS_Flat);\n\n    this.#matrixProduct(\n      CalRGBCS.#BRADFORD_SCALE_INVERSE_MATRIX,\n      LMS_Flat,\n      result\n    );\n  }\n\n  #normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) {\n    const LMS = result;\n    this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n\n    const LMS_D65 = CalRGBCS.#tempNormalizeMatrix;\n    this.#toD65(sourceWhitePoint, LMS, LMS_D65);\n\n    this.#matrixProduct(\n      CalRGBCS.#BRADFORD_SCALE_INVERSE_MATRIX,\n      LMS_D65,\n      result\n    );\n  }\n\n  #toRgb(src, srcOffset, dest, destOffset, scale) {\n    // A, B and C represent a red, green and blue components of a calibrated\n    // rgb space.\n    const A = this.#adjustToRange(0, 1, src[srcOffset] * scale);\n    const B = this.#adjustToRange(0, 1, src[srcOffset + 1] * scale);\n    const C = this.#adjustToRange(0, 1, src[srcOffset + 2] * scale);\n\n    // A <---> AGR in the spec\n    // B <---> BGG in the spec\n    // C <---> CGB in the spec\n    const AGR = A === 1 ? 1 : A ** this.GR;\n    const BGG = B === 1 ? 1 : B ** this.GG;\n    const CGB = C === 1 ? 1 : C ** this.GB;\n\n    // Computes intermediate variables L, M, N as per spec.\n    // To decode X, Y, Z values map L, M, N directly to them.\n    const X = this.MXA * AGR + this.MXB * BGG + this.MXC * CGB;\n    const Y = this.MYA * AGR + this.MYB * BGG + this.MYC * CGB;\n    const Z = this.MZA * AGR + this.MZB * BGG + this.MZC * CGB;\n\n    // The following calculations are based on this document:\n    // http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/sdk/\n    // AdobeBPC.pdf.\n    const XYZ = CalRGBCS.#tempConvertMatrix1;\n    XYZ[0] = X;\n    XYZ[1] = Y;\n    XYZ[2] = Z;\n    const XYZ_Flat = CalRGBCS.#tempConvertMatrix2;\n\n    this.#normalizeWhitePointToFlat(this.whitePoint, XYZ, XYZ_Flat);\n\n    const XYZ_Black = CalRGBCS.#tempConvertMatrix1;\n    this.#compensateBlackPoint(this.blackPoint, XYZ_Flat, XYZ_Black);\n\n    const XYZ_D65 = CalRGBCS.#tempConvertMatrix2;\n    this.#normalizeWhitePointToD65(\n      CalRGBCS.#FLAT_WHITEPOINT_MATRIX,\n      XYZ_Black,\n      XYZ_D65\n    );\n\n    const SRGB = CalRGBCS.#tempConvertMatrix1;\n    this.#matrixProduct(CalRGBCS.#SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB);\n\n    // Convert the values to rgb range [0, 255].\n    dest[destOffset] = this.#sRGBTransferFunction(SRGB[0]) * 255;\n    dest[destOffset + 1] = this.#sRGBTransferFunction(SRGB[1]) * 255;\n    dest[destOffset + 2] = this.#sRGBTransferFunction(SRGB[2]) * 255;\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'CalRGBCS.getRgbItem: Unsupported \"dest\" type.'\n      );\n    }\n    this.#toRgb(src, srcOffset, dest, destOffset, 1);\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'CalRGBCS.getRgbBuffer: Unsupported \"dest\" type.'\n      );\n    }\n    const scale = 1 / ((1 << bits) - 1);\n\n    for (let i = 0; i < count; ++i) {\n      this.#toRgb(src, srcOffset, dest, destOffset, scale);\n      srcOffset += 3;\n      destOffset += 3 + alpha01;\n    }\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    return ((inputLength * (3 + alpha01)) / 3) | 0;\n  }\n}\n\n/**\n * LabCS: Based on \"PDF Reference, Sixth Ed\", p.250\n *\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nclass LabCS extends ColorSpace {\n  constructor(whitePoint, blackPoint, range) {\n    super(\"Lab\", 3);\n\n    if (!whitePoint) {\n      throw new FormatError(\n        \"WhitePoint missing - required for color space Lab\"\n      );\n    }\n    // Translate args to spec variables\n    [this.XW, this.YW, this.ZW] = whitePoint;\n    [this.amin, this.amax, this.bmin, this.bmax] = range || [\n      -100, 100, -100, 100,\n    ];\n\n    // These are here just for completeness - the spec doesn't offer any\n    // formulas that use BlackPoint in Lab\n    [this.XB, this.YB, this.ZB] = blackPoint || [0, 0, 0];\n\n    // Validate vars as per spec\n    if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n      throw new FormatError(\n        \"Invalid WhitePoint components, no fallback available\"\n      );\n    }\n\n    if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n      info(\"Invalid BlackPoint, falling back to default\");\n      this.XB = this.YB = this.ZB = 0;\n    }\n\n    if (this.amin > this.amax || this.bmin > this.bmax) {\n      info(\"Invalid Range, falling back to defaults\");\n      this.amin = -100;\n      this.amax = 100;\n      this.bmin = -100;\n      this.bmax = 100;\n    }\n  }\n\n  // Function g(x) from spec\n  #fn_g(x) {\n    return x >= 6 / 29 ? x ** 3 : (108 / 841) * (x - 4 / 29);\n  }\n\n  #decode(value, high1, low2, high2) {\n    return low2 + (value * (high2 - low2)) / high1;\n  }\n\n  // If decoding is needed maxVal should be 2^bits per component - 1.\n  #toRgb(src, srcOffset, maxVal, dest, destOffset) {\n    // XXX: Lab input is in the range of [0, 100], [amin, amax], [bmin, bmax]\n    // not the usual [0, 1]. If a command like setFillColor is used the src\n    // values will already be within the correct range. However, if we are\n    // converting an image we have to map the values to the correct range given\n    // above.\n    // Ls,as,bs <---> L*,a*,b* in the spec\n    let Ls = src[srcOffset];\n    let as = src[srcOffset + 1];\n    let bs = src[srcOffset + 2];\n    if (maxVal !== false) {\n      Ls = this.#decode(Ls, maxVal, 0, 100);\n      as = this.#decode(as, maxVal, this.amin, this.amax);\n      bs = this.#decode(bs, maxVal, this.bmin, this.bmax);\n    }\n\n    // Adjust limits of 'as' and 'bs'\n    if (as > this.amax) {\n      as = this.amax;\n    } else if (as < this.amin) {\n      as = this.amin;\n    }\n    if (bs > this.bmax) {\n      bs = this.bmax;\n    } else if (bs < this.bmin) {\n      bs = this.bmin;\n    }\n\n    // Computes intermediate variables X,Y,Z as per spec\n    const M = (Ls + 16) / 116;\n    const L = M + as / 500;\n    const N = M - bs / 200;\n\n    const X = this.XW * this.#fn_g(L);\n    const Y = this.YW * this.#fn_g(M);\n    const Z = this.ZW * this.#fn_g(N);\n\n    let r, g, b;\n    // Using different conversions for D50 and D65 white points,\n    // per http://www.color.org/srgb.pdf\n    if (this.ZW < 1) {\n      // Assuming D50 (X=0.9642, Y=1.00, Z=0.8249)\n      r = X * 3.1339 + Y * -1.617 + Z * -0.4906;\n      g = X * -0.9785 + Y * 1.916 + Z * 0.0333;\n      b = X * 0.072 + Y * -0.229 + Z * 1.4057;\n    } else {\n      // Assuming D65 (X=0.9505, Y=1.00, Z=1.0888)\n      r = X * 3.2406 + Y * -1.5372 + Z * -0.4986;\n      g = X * -0.9689 + Y * 1.8758 + Z * 0.0415;\n      b = X * 0.0557 + Y * -0.204 + Z * 1.057;\n    }\n    // Convert the color values to the [0,255] range (clamping is automatic).\n    dest[destOffset] = Math.sqrt(r) * 255;\n    dest[destOffset + 1] = Math.sqrt(g) * 255;\n    dest[destOffset + 2] = Math.sqrt(b) * 255;\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'LabCS.getRgbItem: Unsupported \"dest\" type.'\n      );\n    }\n    this.#toRgb(src, srcOffset, false, dest, destOffset);\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        dest instanceof Uint8ClampedArray,\n        'LabCS.getRgbBuffer: Unsupported \"dest\" type.'\n      );\n    }\n    const maxVal = (1 << bits) - 1;\n    for (let i = 0; i < count; i++) {\n      this.#toRgb(src, srcOffset, maxVal, dest, destOffset);\n      srcOffset += 3;\n      destOffset += 3 + alpha01;\n    }\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    return ((inputLength * (3 + alpha01)) / 3) | 0;\n  }\n\n  isDefaultDecode(decodeMap, bpc) {\n    // XXX: Decoding is handled with the lab conversion because of the strange\n    // ranges that are used.\n    return true;\n  }\n\n  get usesZeroToOneRange() {\n    return shadow(this, \"usesZeroToOneRange\", false);\n  }\n}\n\nexport { ColorSpace };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FormatError } from \"../shared/util.js\";\n\nfunction hexToInt(a, size) {\n  let n = 0;\n  for (let i = 0; i <= size; i++) {\n    n = (n << 8) | a[i];\n  }\n  return n >>> 0;\n}\n\nfunction hexToStr(a, size) {\n  // This code is hot. Special-case some common values to avoid creating an\n  // object with subarray().\n  if (size === 1) {\n    return String.fromCharCode(a[0], a[1]);\n  }\n  if (size === 3) {\n    return String.fromCharCode(a[0], a[1], a[2], a[3]);\n  }\n  return String.fromCharCode(...a.subarray(0, size + 1));\n}\n\nfunction addHex(a, b, size) {\n  let c = 0;\n  for (let i = size; i >= 0; i--) {\n    c += a[i] + b[i];\n    a[i] = c & 255;\n    c >>= 8;\n  }\n}\n\nfunction incHex(a, size) {\n  let c = 1;\n  for (let i = size; i >= 0 && c > 0; i--) {\n    c += a[i];\n    a[i] = c & 255;\n    c >>= 8;\n  }\n}\n\nconst MAX_NUM_SIZE = 16;\nconst MAX_ENCODED_NUM_SIZE = 19; // ceil(MAX_NUM_SIZE * 7 / 8)\n\nclass BinaryCMapStream {\n  constructor(data) {\n    this.buffer = data;\n    this.pos = 0;\n    this.end = data.length;\n    this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE);\n  }\n\n  readByte() {\n    if (this.pos >= this.end) {\n      return -1;\n    }\n    return this.buffer[this.pos++];\n  }\n\n  readNumber() {\n    let n = 0;\n    let last;\n    do {\n      const b = this.readByte();\n      if (b < 0) {\n        throw new FormatError(\"unexpected EOF in bcmap\");\n      }\n      last = !(b & 0x80);\n      n = (n << 7) | (b & 0x7f);\n    } while (!last);\n    return n;\n  }\n\n  readSigned() {\n    const n = this.readNumber();\n    return n & 1 ? ~(n >>> 1) : n >>> 1;\n  }\n\n  readHex(num, size) {\n    num.set(this.buffer.subarray(this.pos, this.pos + size + 1));\n    this.pos += size + 1;\n  }\n\n  readHexNumber(num, size) {\n    let last;\n    const stack = this.tmpBuf;\n    let sp = 0;\n    do {\n      const b = this.readByte();\n      if (b < 0) {\n        throw new FormatError(\"unexpected EOF in bcmap\");\n      }\n      last = !(b & 0x80);\n      stack[sp++] = b & 0x7f;\n    } while (!last);\n    let i = size,\n      buffer = 0,\n      bufferSize = 0;\n    while (i >= 0) {\n      while (bufferSize < 8 && stack.length > 0) {\n        buffer |= stack[--sp] << bufferSize;\n        bufferSize += 7;\n      }\n      num[i] = buffer & 255;\n      i--;\n      buffer >>= 8;\n      bufferSize -= 8;\n    }\n  }\n\n  readHexSigned(num, size) {\n    this.readHexNumber(num, size);\n    const sign = num[size] & 1 ? 255 : 0;\n    let c = 0;\n    for (let i = 0; i <= size; i++) {\n      c = ((c & 1) << 8) | num[i];\n      num[i] = (c >> 1) ^ sign;\n    }\n  }\n\n  readString() {\n    const len = this.readNumber(),\n      buf = new Array(len);\n    for (let i = 0; i < len; i++) {\n      buf[i] = this.readNumber();\n    }\n    return String.fromCharCode(...buf);\n  }\n}\n\nclass BinaryCMapReader {\n  async process(data, cMap, extend) {\n    const stream = new BinaryCMapStream(data);\n    const header = stream.readByte();\n    cMap.vertical = !!(header & 1);\n\n    let useCMap = null;\n    const start = new Uint8Array(MAX_NUM_SIZE);\n    const end = new Uint8Array(MAX_NUM_SIZE);\n    const char = new Uint8Array(MAX_NUM_SIZE);\n    const charCode = new Uint8Array(MAX_NUM_SIZE);\n    const tmp = new Uint8Array(MAX_NUM_SIZE);\n    let code;\n\n    let b;\n    while ((b = stream.readByte()) >= 0) {\n      const type = b >> 5;\n      if (type === 7) {\n        // metadata, e.g. comment or usecmap\n        switch (b & 0x1f) {\n          case 0:\n            stream.readString(); // skipping comment\n            break;\n          case 1:\n            useCMap = stream.readString();\n            break;\n        }\n        continue;\n      }\n      const sequence = !!(b & 0x10);\n      const dataSize = b & 15;\n\n      if (dataSize + 1 > MAX_NUM_SIZE) {\n        throw new Error(\"BinaryCMapReader.process: Invalid dataSize.\");\n      }\n\n      const ucs2DataSize = 1;\n      const subitemsCount = stream.readNumber();\n      switch (type) {\n        case 0: // codespacerange\n          stream.readHex(start, dataSize);\n          stream.readHexNumber(end, dataSize);\n          addHex(end, start, dataSize);\n          cMap.addCodespaceRange(\n            dataSize + 1,\n            hexToInt(start, dataSize),\n            hexToInt(end, dataSize)\n          );\n          for (let i = 1; i < subitemsCount; i++) {\n            incHex(end, dataSize);\n            stream.readHexNumber(start, dataSize);\n            addHex(start, end, dataSize);\n            stream.readHexNumber(end, dataSize);\n            addHex(end, start, dataSize);\n            cMap.addCodespaceRange(\n              dataSize + 1,\n              hexToInt(start, dataSize),\n              hexToInt(end, dataSize)\n            );\n          }\n          break;\n        case 1: // notdefrange\n          stream.readHex(start, dataSize);\n          stream.readHexNumber(end, dataSize);\n          addHex(end, start, dataSize);\n          stream.readNumber(); // code\n          // undefined range, skipping\n          for (let i = 1; i < subitemsCount; i++) {\n            incHex(end, dataSize);\n            stream.readHexNumber(start, dataSize);\n            addHex(start, end, dataSize);\n            stream.readHexNumber(end, dataSize);\n            addHex(end, start, dataSize);\n            stream.readNumber(); // code\n            // nop\n          }\n          break;\n        case 2: // cidchar\n          stream.readHex(char, dataSize);\n          code = stream.readNumber();\n          cMap.mapOne(hexToInt(char, dataSize), code);\n          for (let i = 1; i < subitemsCount; i++) {\n            incHex(char, dataSize);\n            if (!sequence) {\n              stream.readHexNumber(tmp, dataSize);\n              addHex(char, tmp, dataSize);\n            }\n            code = stream.readSigned() + (code + 1);\n            cMap.mapOne(hexToInt(char, dataSize), code);\n          }\n          break;\n        case 3: // cidrange\n          stream.readHex(start, dataSize);\n          stream.readHexNumber(end, dataSize);\n          addHex(end, start, dataSize);\n          code = stream.readNumber();\n          cMap.mapCidRange(\n            hexToInt(start, dataSize),\n            hexToInt(end, dataSize),\n            code\n          );\n          for (let i = 1; i < subitemsCount; i++) {\n            incHex(end, dataSize);\n            if (!sequence) {\n              stream.readHexNumber(start, dataSize);\n              addHex(start, end, dataSize);\n            } else {\n              start.set(end);\n            }\n            stream.readHexNumber(end, dataSize);\n            addHex(end, start, dataSize);\n            code = stream.readNumber();\n            cMap.mapCidRange(\n              hexToInt(start, dataSize),\n              hexToInt(end, dataSize),\n              code\n            );\n          }\n          break;\n        case 4: // bfchar\n          stream.readHex(char, ucs2DataSize);\n          stream.readHex(charCode, dataSize);\n          cMap.mapOne(\n            hexToInt(char, ucs2DataSize),\n            hexToStr(charCode, dataSize)\n          );\n          for (let i = 1; i < subitemsCount; i++) {\n            incHex(char, ucs2DataSize);\n            if (!sequence) {\n              stream.readHexNumber(tmp, ucs2DataSize);\n              addHex(char, tmp, ucs2DataSize);\n            }\n            incHex(charCode, dataSize);\n            stream.readHexSigned(tmp, dataSize);\n            addHex(charCode, tmp, dataSize);\n            cMap.mapOne(\n              hexToInt(char, ucs2DataSize),\n              hexToStr(charCode, dataSize)\n            );\n          }\n          break;\n        case 5: // bfrange\n          stream.readHex(start, ucs2DataSize);\n          stream.readHexNumber(end, ucs2DataSize);\n          addHex(end, start, ucs2DataSize);\n          stream.readHex(charCode, dataSize);\n          cMap.mapBfRange(\n            hexToInt(start, ucs2DataSize),\n            hexToInt(end, ucs2DataSize),\n            hexToStr(charCode, dataSize)\n          );\n          for (let i = 1; i < subitemsCount; i++) {\n            incHex(end, ucs2DataSize);\n            if (!sequence) {\n              stream.readHexNumber(start, ucs2DataSize);\n              addHex(start, end, ucs2DataSize);\n            } else {\n              start.set(end);\n            }\n            stream.readHexNumber(end, ucs2DataSize);\n            addHex(end, start, ucs2DataSize);\n            stream.readHex(charCode, dataSize);\n            cMap.mapBfRange(\n              hexToInt(start, ucs2DataSize),\n              hexToInt(end, ucs2DataSize),\n              hexToStr(charCode, dataSize)\n            );\n          }\n          break;\n        default:\n          throw new Error(`BinaryCMapReader.process - unknown type: ${type}`);\n      }\n    }\n\n    if (useCMap) {\n      return extend(useCMap);\n    }\n    return cMap;\n  }\n}\n\nexport { BinaryCMapReader };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseStream } from \"./base_stream.js\";\nimport { Stream } from \"./stream.js\";\n\n// Lots of DecodeStreams are created whose buffers are never used.  For these\n// we share a single empty buffer. This is (a) space-efficient and (b) avoids\n// having special cases that would be required if we used |null| for an empty\n// buffer.\nconst emptyBuffer = new Uint8Array(0);\n\n// Super class for the decoding streams.\nclass DecodeStream extends BaseStream {\n  constructor(maybeMinBufferLength) {\n    super();\n    this._rawMinBufferLength = maybeMinBufferLength || 0;\n\n    this.pos = 0;\n    this.bufferLength = 0;\n    this.eof = false;\n    this.buffer = emptyBuffer;\n    this.minBufferLength = 512;\n    if (maybeMinBufferLength) {\n      // Compute the first power of two that is as big as maybeMinBufferLength.\n      while (this.minBufferLength < maybeMinBufferLength) {\n        this.minBufferLength *= 2;\n      }\n    }\n  }\n\n  get isEmpty() {\n    while (!this.eof && this.bufferLength === 0) {\n      this.readBlock();\n    }\n    return this.bufferLength === 0;\n  }\n\n  ensureBuffer(requested) {\n    const buffer = this.buffer;\n    if (requested <= buffer.byteLength) {\n      return buffer;\n    }\n    let size = this.minBufferLength;\n    while (size < requested) {\n      size *= 2;\n    }\n    const buffer2 = new Uint8Array(size);\n    buffer2.set(buffer);\n    return (this.buffer = buffer2);\n  }\n\n  getByte() {\n    const pos = this.pos;\n    while (this.bufferLength <= pos) {\n      if (this.eof) {\n        return -1;\n      }\n      this.readBlock();\n    }\n    return this.buffer[this.pos++];\n  }\n\n  getBytes(length) {\n    const pos = this.pos;\n    let end;\n\n    if (length) {\n      this.ensureBuffer(pos + length);\n      end = pos + length;\n\n      while (!this.eof && this.bufferLength < end) {\n        this.readBlock();\n      }\n      const bufEnd = this.bufferLength;\n      if (end > bufEnd) {\n        end = bufEnd;\n      }\n    } else {\n      while (!this.eof) {\n        this.readBlock();\n      }\n      end = this.bufferLength;\n    }\n\n    this.pos = end;\n    return this.buffer.subarray(pos, end);\n  }\n\n  reset() {\n    this.pos = 0;\n  }\n\n  makeSubStream(start, length, dict = null) {\n    if (length === undefined) {\n      while (!this.eof) {\n        this.readBlock();\n      }\n    } else {\n      const end = start + length;\n      while (this.bufferLength <= end && !this.eof) {\n        this.readBlock();\n      }\n    }\n    return new Stream(this.buffer, start, length, dict);\n  }\n\n  getBaseStreams() {\n    return this.str ? this.str.getBaseStreams() : null;\n  }\n}\n\nclass StreamsSequenceStream extends DecodeStream {\n  constructor(streams, onError = null) {\n    let maybeLength = 0;\n    for (const stream of streams) {\n      maybeLength +=\n        stream instanceof DecodeStream\n          ? stream._rawMinBufferLength\n          : stream.length;\n    }\n    super(maybeLength);\n\n    this.streams = streams;\n    this._onError = onError;\n  }\n\n  readBlock() {\n    const streams = this.streams;\n    if (streams.length === 0) {\n      this.eof = true;\n      return;\n    }\n    const stream = streams.shift();\n    let chunk;\n    try {\n      chunk = stream.getBytes();\n    } catch (reason) {\n      if (this._onError) {\n        this._onError(reason, stream.dict?.objId);\n        return;\n      }\n      throw reason;\n    }\n    const bufferLength = this.bufferLength;\n    const newLength = bufferLength + chunk.length;\n    const buffer = this.ensureBuffer(newLength);\n    buffer.set(chunk, bufferLength);\n    this.bufferLength = newLength;\n  }\n\n  getBaseStreams() {\n    const baseStreamsBuf = [];\n    for (const stream of this.streams) {\n      const baseStreams = stream.getBaseStreams();\n      if (baseStreams) {\n        baseStreamsBuf.push(...baseStreams);\n      }\n    }\n    return baseStreamsBuf.length > 0 ? baseStreamsBuf : null;\n  }\n}\n\nexport { DecodeStream, StreamsSequenceStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\n\nclass Ascii85Stream extends DecodeStream {\n  constructor(str, maybeLength) {\n    // Most streams increase in size when decoded, but Ascii85 streams\n    // typically shrink by ~20%.\n    if (maybeLength) {\n      maybeLength *= 0.8;\n    }\n    super(maybeLength);\n\n    this.str = str;\n    this.dict = str.dict;\n    this.input = new Uint8Array(5);\n  }\n\n  readBlock() {\n    const TILDA_CHAR = 0x7e; // '~'\n    const Z_LOWER_CHAR = 0x7a; // 'z'\n    const EOF = -1;\n\n    const str = this.str;\n\n    let c = str.getByte();\n    while (isWhiteSpace(c)) {\n      c = str.getByte();\n    }\n\n    if (c === EOF || c === TILDA_CHAR) {\n      this.eof = true;\n      return;\n    }\n\n    const bufferLength = this.bufferLength;\n    let buffer, i;\n\n    // special code for z\n    if (c === Z_LOWER_CHAR) {\n      buffer = this.ensureBuffer(bufferLength + 4);\n      for (i = 0; i < 4; ++i) {\n        buffer[bufferLength + i] = 0;\n      }\n      this.bufferLength += 4;\n    } else {\n      const input = this.input;\n      input[0] = c;\n      for (i = 1; i < 5; ++i) {\n        c = str.getByte();\n        while (isWhiteSpace(c)) {\n          c = str.getByte();\n        }\n\n        input[i] = c;\n\n        if (c === EOF || c === TILDA_CHAR) {\n          break;\n        }\n      }\n      buffer = this.ensureBuffer(bufferLength + i - 1);\n      this.bufferLength += i - 1;\n\n      // partial ending;\n      if (i < 5) {\n        for (; i < 5; ++i) {\n          input[i] = 0x21 + 84;\n        }\n        this.eof = true;\n      }\n      let t = 0;\n      for (i = 0; i < 5; ++i) {\n        t = t * 85 + (input[i] - 0x21);\n      }\n\n      for (i = 3; i >= 0; --i) {\n        buffer[bufferLength + i] = t & 0xff;\n        t >>= 8;\n      }\n    }\n  }\n}\n\nexport { Ascii85Stream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nclass AsciiHexStream extends DecodeStream {\n  constructor(str, maybeLength) {\n    // Most streams increase in size when decoded, but AsciiHex streams shrink\n    // by 50%.\n    if (maybeLength) {\n      maybeLength *= 0.5;\n    }\n    super(maybeLength);\n\n    this.str = str;\n    this.dict = str.dict;\n\n    this.firstDigit = -1;\n  }\n\n  readBlock() {\n    const UPSTREAM_BLOCK_SIZE = 8000;\n    const bytes = this.str.getBytes(UPSTREAM_BLOCK_SIZE);\n    if (!bytes.length) {\n      this.eof = true;\n      return;\n    }\n\n    const maxDecodeLength = (bytes.length + 1) >> 1;\n    const buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength);\n    let bufferLength = this.bufferLength;\n\n    let firstDigit = this.firstDigit;\n    for (const ch of bytes) {\n      let digit;\n      if (ch >= /* '0' = */ 0x30 && ch <= /* '9' = */ 0x39) {\n        digit = ch & 0x0f;\n      } else if (\n        (ch >= /* 'A' = */ 0x41 && ch <= /* 'Z' = */ 0x46) ||\n        (ch >= /* 'a' = */ 0x61 && ch <= /* 'z' = */ 0x66)\n      ) {\n        digit = (ch & 0x0f) + 9;\n      } else if (ch === /* '>' = */ 0x3e) {\n        this.eof = true;\n        break;\n      } else {\n        // Probably whitespace, ignoring.\n        continue;\n      }\n      if (firstDigit < 0) {\n        firstDigit = digit;\n      } else {\n        buffer[bufferLength++] = (firstDigit << 4) | digit;\n        firstDigit = -1;\n      }\n    }\n    if (firstDigit >= 0 && this.eof) {\n      // incomplete byte\n      buffer[bufferLength++] = firstDigit << 4;\n      firstDigit = -1;\n    }\n    this.firstDigit = firstDigit;\n    this.bufferLength = bufferLength;\n  }\n}\n\nexport { AsciiHexStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Copyright 1996-2003 Glyph & Cog, LLC\n *\n * The CCITT stream implementation contained in this file is a JavaScript port\n * of XPDF's implementation, made available under the Apache 2.0 open source\n * license.\n */\n\nimport { FormatError, info } from \"../shared/util.js\";\n\n/**\n * @typedef {Object} CCITTFaxDecoderSource\n * @property {function} next - Method that return one byte of data for decoding,\n *   or -1 when EOF is reached.\n */\n\nconst ccittEOL = -2;\nconst ccittEOF = -1;\nconst twoDimPass = 0;\nconst twoDimHoriz = 1;\nconst twoDimVert0 = 2;\nconst twoDimVertR1 = 3;\nconst twoDimVertL1 = 4;\nconst twoDimVertR2 = 5;\nconst twoDimVertL2 = 6;\nconst twoDimVertR3 = 7;\nconst twoDimVertL3 = 8;\n\n// prettier-ignore\nconst twoDimTable = [\n  [-1, -1], [-1, -1],                   // 000000x\n  [7, twoDimVertL3],                    // 0000010\n  [7, twoDimVertR3],                    // 0000011\n  [6, twoDimVertL2], [6, twoDimVertL2], // 000010x\n  [6, twoDimVertR2], [6, twoDimVertR2], // 000011x\n  [4, twoDimPass], [4, twoDimPass],     // 0001xxx\n  [4, twoDimPass], [4, twoDimPass],\n  [4, twoDimPass], [4, twoDimPass],\n  [4, twoDimPass], [4, twoDimPass],\n  [3, twoDimHoriz], [3, twoDimHoriz],   // 001xxxx\n  [3, twoDimHoriz], [3, twoDimHoriz],\n  [3, twoDimHoriz], [3, twoDimHoriz],\n  [3, twoDimHoriz], [3, twoDimHoriz],\n  [3, twoDimHoriz], [3, twoDimHoriz],\n  [3, twoDimHoriz], [3, twoDimHoriz],\n  [3, twoDimHoriz], [3, twoDimHoriz],\n  [3, twoDimHoriz], [3, twoDimHoriz],\n  [3, twoDimVertL1], [3, twoDimVertL1], // 010xxxx\n  [3, twoDimVertL1], [3, twoDimVertL1],\n  [3, twoDimVertL1], [3, twoDimVertL1],\n  [3, twoDimVertL1], [3, twoDimVertL1],\n  [3, twoDimVertL1], [3, twoDimVertL1],\n  [3, twoDimVertL1], [3, twoDimVertL1],\n  [3, twoDimVertL1], [3, twoDimVertL1],\n  [3, twoDimVertL1], [3, twoDimVertL1],\n  [3, twoDimVertR1], [3, twoDimVertR1], // 011xxxx\n  [3, twoDimVertR1], [3, twoDimVertR1],\n  [3, twoDimVertR1], [3, twoDimVertR1],\n  [3, twoDimVertR1], [3, twoDimVertR1],\n  [3, twoDimVertR1], [3, twoDimVertR1],\n  [3, twoDimVertR1], [3, twoDimVertR1],\n  [3, twoDimVertR1], [3, twoDimVertR1],\n  [3, twoDimVertR1], [3, twoDimVertR1],\n  [1, twoDimVert0], [1, twoDimVert0],   // 1xxxxxx\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0],\n  [1, twoDimVert0], [1, twoDimVert0]\n];\n\n// prettier-ignore\nconst whiteTable1 = [\n  [-1, -1],                               // 00000\n  [12, ccittEOL],                         // 00001\n  [-1, -1], [-1, -1],                     // 0001x\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 001xx\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 010xx\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 011xx\n  [11, 1792], [11, 1792],                 // 1000x\n  [12, 1984],                             // 10010\n  [12, 2048],                             // 10011\n  [12, 2112],                             // 10100\n  [12, 2176],                             // 10101\n  [12, 2240],                             // 10110\n  [12, 2304],                             // 10111\n  [11, 1856], [11, 1856],                 // 1100x\n  [11, 1920], [11, 1920],                 // 1101x\n  [12, 2368],                             // 11100\n  [12, 2432],                             // 11101\n  [12, 2496],                             // 11110\n  [12, 2560]                              // 11111\n];\n\n// prettier-ignore\nconst whiteTable2 = [\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1],     // 0000000xx\n  [8, 29], [8, 29],                           // 00000010x\n  [8, 30], [8, 30],                           // 00000011x\n  [8, 45], [8, 45],                           // 00000100x\n  [8, 46], [8, 46],                           // 00000101x\n  [7, 22], [7, 22], [7, 22], [7, 22],         // 0000011xx\n  [7, 23], [7, 23], [7, 23], [7, 23],         // 0000100xx\n  [8, 47], [8, 47],                           // 00001010x\n  [8, 48], [8, 48],                           // 00001011x\n  [6, 13], [6, 13], [6, 13], [6, 13],         // 000011xxx\n  [6, 13], [6, 13], [6, 13], [6, 13],\n  [7, 20], [7, 20], [7, 20], [7, 20],         // 0001000xx\n  [8, 33], [8, 33],                           // 00010010x\n  [8, 34], [8, 34],                           // 00010011x\n  [8, 35], [8, 35],                           // 00010100x\n  [8, 36], [8, 36],                           // 00010101x\n  [8, 37], [8, 37],                           // 00010110x\n  [8, 38], [8, 38],                           // 00010111x\n  [7, 19], [7, 19], [7, 19], [7, 19],         // 0001100xx\n  [8, 31], [8, 31],                           // 00011010x\n  [8, 32], [8, 32],                           // 00011011x\n  [6, 1], [6, 1], [6, 1], [6, 1],             // 000111xxx\n  [6, 1], [6, 1], [6, 1], [6, 1],\n  [6, 12], [6, 12], [6, 12], [6, 12],         // 001000xxx\n  [6, 12], [6, 12], [6, 12], [6, 12],\n  [8, 53], [8, 53],                           // 00100100x\n  [8, 54], [8, 54],                           // 00100101x\n  [7, 26], [7, 26], [7, 26], [7, 26],         // 0010011xx\n  [8, 39], [8, 39],                           // 00101000x\n  [8, 40], [8, 40],                           // 00101001x\n  [8, 41], [8, 41],                           // 00101010x\n  [8, 42], [8, 42],                           // 00101011x\n  [8, 43], [8, 43],                           // 00101100x\n  [8, 44], [8, 44],                           // 00101101x\n  [7, 21], [7, 21], [7, 21], [7, 21],         // 0010111xx\n  [7, 28], [7, 28], [7, 28], [7, 28],         // 0011000xx\n  [8, 61], [8, 61],                           // 00110010x\n  [8, 62], [8, 62],                           // 00110011x\n  [8, 63], [8, 63],                           // 00110100x\n  [8, 0], [8, 0],                             // 00110101x\n  [8, 320], [8, 320],                         // 00110110x\n  [8, 384], [8, 384],                         // 00110111x\n  [5, 10], [5, 10], [5, 10], [5, 10],         // 00111xxxx\n  [5, 10], [5, 10], [5, 10], [5, 10],\n  [5, 10], [5, 10], [5, 10], [5, 10],\n  [5, 10], [5, 10], [5, 10], [5, 10],\n  [5, 11], [5, 11], [5, 11], [5, 11],         // 01000xxxx\n  [5, 11], [5, 11], [5, 11], [5, 11],\n  [5, 11], [5, 11], [5, 11], [5, 11],\n  [5, 11], [5, 11], [5, 11], [5, 11],\n  [7, 27], [7, 27], [7, 27], [7, 27],         // 0100100xx\n  [8, 59], [8, 59],                           // 01001010x\n  [8, 60], [8, 60],                           // 01001011x\n  [9, 1472],                                  // 010011000\n  [9, 1536],                                  // 010011001\n  [9, 1600],                                  // 010011010\n  [9, 1728],                                  // 010011011\n  [7, 18], [7, 18], [7, 18], [7, 18],         // 0100111xx\n  [7, 24], [7, 24], [7, 24], [7, 24],         // 0101000xx\n  [8, 49], [8, 49],                           // 01010010x\n  [8, 50], [8, 50],                           // 01010011x\n  [8, 51], [8, 51],                           // 01010100x\n  [8, 52], [8, 52],                           // 01010101x\n  [7, 25], [7, 25], [7, 25], [7, 25],         // 0101011xx\n  [8, 55], [8, 55],                           // 01011000x\n  [8, 56], [8, 56],                           // 01011001x\n  [8, 57], [8, 57],                           // 01011010x\n  [8, 58], [8, 58],                           // 01011011x\n  [6, 192], [6, 192], [6, 192], [6, 192],     // 010111xxx\n  [6, 192], [6, 192], [6, 192], [6, 192],\n  [6, 1664], [6, 1664], [6, 1664], [6, 1664], // 011000xxx\n  [6, 1664], [6, 1664], [6, 1664], [6, 1664],\n  [8, 448], [8, 448],                         // 01100100x\n  [8, 512], [8, 512],                         // 01100101x\n  [9, 704],                                   // 011001100\n  [9, 768],                                   // 011001101\n  [8, 640], [8, 640],                         // 01100111x\n  [8, 576], [8, 576],                         // 01101000x\n  [9, 832],                                   // 011010010\n  [9, 896],                                   // 011010011\n  [9, 960],                                   // 011010100\n  [9, 1024],                                  // 011010101\n  [9, 1088],                                  // 011010110\n  [9, 1152],                                  // 011010111\n  [9, 1216],                                  // 011011000\n  [9, 1280],                                  // 011011001\n  [9, 1344],                                  // 011011010\n  [9, 1408],                                  // 011011011\n  [7, 256], [7, 256], [7, 256], [7, 256],     // 0110111xx\n  [4, 2], [4, 2], [4, 2], [4, 2],             // 0111xxxxx\n  [4, 2], [4, 2], [4, 2], [4, 2],\n  [4, 2], [4, 2], [4, 2], [4, 2],\n  [4, 2], [4, 2], [4, 2], [4, 2],\n  [4, 2], [4, 2], [4, 2], [4, 2],\n  [4, 2], [4, 2], [4, 2], [4, 2],\n  [4, 2], [4, 2], [4, 2], [4, 2],\n  [4, 2], [4, 2], [4, 2], [4, 2],\n  [4, 3], [4, 3], [4, 3], [4, 3],             // 1000xxxxx\n  [4, 3], [4, 3], [4, 3], [4, 3],\n  [4, 3], [4, 3], [4, 3], [4, 3],\n  [4, 3], [4, 3], [4, 3], [4, 3],\n  [4, 3], [4, 3], [4, 3], [4, 3],\n  [4, 3], [4, 3], [4, 3], [4, 3],\n  [4, 3], [4, 3], [4, 3], [4, 3],\n  [4, 3], [4, 3], [4, 3], [4, 3],\n  [5, 128], [5, 128], [5, 128], [5, 128],     // 10010xxxx\n  [5, 128], [5, 128], [5, 128], [5, 128],\n  [5, 128], [5, 128], [5, 128], [5, 128],\n  [5, 128], [5, 128], [5, 128], [5, 128],\n  [5, 8], [5, 8], [5, 8], [5, 8],             // 10011xxxx\n  [5, 8], [5, 8], [5, 8], [5, 8],\n  [5, 8], [5, 8], [5, 8], [5, 8],\n  [5, 8], [5, 8], [5, 8], [5, 8],\n  [5, 9], [5, 9], [5, 9], [5, 9],             // 10100xxxx\n  [5, 9], [5, 9], [5, 9], [5, 9],\n  [5, 9], [5, 9], [5, 9], [5, 9],\n  [5, 9], [5, 9], [5, 9], [5, 9],\n  [6, 16], [6, 16], [6, 16], [6, 16],         // 101010xxx\n  [6, 16], [6, 16], [6, 16], [6, 16],\n  [6, 17], [6, 17], [6, 17], [6, 17],         // 101011xxx\n  [6, 17], [6, 17], [6, 17], [6, 17],\n  [4, 4], [4, 4], [4, 4], [4, 4],             // 1011xxxxx\n  [4, 4], [4, 4], [4, 4], [4, 4],\n  [4, 4], [4, 4], [4, 4], [4, 4],\n  [4, 4], [4, 4], [4, 4], [4, 4],\n  [4, 4], [4, 4], [4, 4], [4, 4],\n  [4, 4], [4, 4], [4, 4], [4, 4],\n  [4, 4], [4, 4], [4, 4], [4, 4],\n  [4, 4], [4, 4], [4, 4], [4, 4],\n  [4, 5], [4, 5], [4, 5], [4, 5],             // 1100xxxxx\n  [4, 5], [4, 5], [4, 5], [4, 5],\n  [4, 5], [4, 5], [4, 5], [4, 5],\n  [4, 5], [4, 5], [4, 5], [4, 5],\n  [4, 5], [4, 5], [4, 5], [4, 5],\n  [4, 5], [4, 5], [4, 5], [4, 5],\n  [4, 5], [4, 5], [4, 5], [4, 5],\n  [4, 5], [4, 5], [4, 5], [4, 5],\n  [6, 14], [6, 14], [6, 14], [6, 14],         // 110100xxx\n  [6, 14], [6, 14], [6, 14], [6, 14],\n  [6, 15], [6, 15], [6, 15], [6, 15],         // 110101xxx\n  [6, 15], [6, 15], [6, 15], [6, 15],\n  [5, 64], [5, 64], [5, 64], [5, 64],         // 11011xxxx\n  [5, 64], [5, 64], [5, 64], [5, 64],\n  [5, 64], [5, 64], [5, 64], [5, 64],\n  [5, 64], [5, 64], [5, 64], [5, 64],\n  [4, 6], [4, 6], [4, 6], [4, 6],             // 1110xxxxx\n  [4, 6], [4, 6], [4, 6], [4, 6],\n  [4, 6], [4, 6], [4, 6], [4, 6],\n  [4, 6], [4, 6], [4, 6], [4, 6],\n  [4, 6], [4, 6], [4, 6], [4, 6],\n  [4, 6], [4, 6], [4, 6], [4, 6],\n  [4, 6], [4, 6], [4, 6], [4, 6],\n  [4, 6], [4, 6], [4, 6], [4, 6],\n  [4, 7], [4, 7], [4, 7], [4, 7],             // 1111xxxxx\n  [4, 7], [4, 7], [4, 7], [4, 7],\n  [4, 7], [4, 7], [4, 7], [4, 7],\n  [4, 7], [4, 7], [4, 7], [4, 7],\n  [4, 7], [4, 7], [4, 7], [4, 7],\n  [4, 7], [4, 7], [4, 7], [4, 7],\n  [4, 7], [4, 7], [4, 7], [4, 7],\n  [4, 7], [4, 7], [4, 7], [4, 7]\n];\n\n// prettier-ignore\nconst blackTable1 = [\n  [-1, -1], [-1, -1],                             // 000000000000x\n  [12, ccittEOL], [12, ccittEOL],                 // 000000000001x\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000001xx\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000010xx\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000011xx\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000100xx\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000101xx\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000110xx\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1],         // 00000000111xx\n  [11, 1792], [11, 1792], [11, 1792], [11, 1792], // 00000001000xx\n  [12, 1984], [12, 1984],                         // 000000010010x\n  [12, 2048], [12, 2048],                         // 000000010011x\n  [12, 2112], [12, 2112],                         // 000000010100x\n  [12, 2176], [12, 2176],                         // 000000010101x\n  [12, 2240], [12, 2240],                         // 000000010110x\n  [12, 2304], [12, 2304],                         // 000000010111x\n  [11, 1856], [11, 1856], [11, 1856], [11, 1856], // 00000001100xx\n  [11, 1920], [11, 1920], [11, 1920], [11, 1920], // 00000001101xx\n  [12, 2368], [12, 2368],                         // 000000011100x\n  [12, 2432], [12, 2432],                         // 000000011101x\n  [12, 2496], [12, 2496],                         // 000000011110x\n  [12, 2560], [12, 2560],                         // 000000011111x\n  [10, 18], [10, 18], [10, 18], [10, 18],         // 0000001000xxx\n  [10, 18], [10, 18], [10, 18], [10, 18],\n  [12, 52], [12, 52],                             // 000000100100x\n  [13, 640],                                      // 0000001001010\n  [13, 704],                                      // 0000001001011\n  [13, 768],                                      // 0000001001100\n  [13, 832],                                      // 0000001001101\n  [12, 55], [12, 55],                             // 000000100111x\n  [12, 56], [12, 56],                             // 000000101000x\n  [13, 1280],                                     // 0000001010010\n  [13, 1344],                                     // 0000001010011\n  [13, 1408],                                     // 0000001010100\n  [13, 1472],                                     // 0000001010101\n  [12, 59], [12, 59],                             // 000000101011x\n  [12, 60], [12, 60],                             // 000000101100x\n  [13, 1536],                                     // 0000001011010\n  [13, 1600],                                     // 0000001011011\n  [11, 24], [11, 24], [11, 24], [11, 24],         // 00000010111xx\n  [11, 25], [11, 25], [11, 25], [11, 25],         // 00000011000xx\n  [13, 1664],                                     // 0000001100100\n  [13, 1728],                                     // 0000001100101\n  [12, 320], [12, 320],                           // 000000110011x\n  [12, 384], [12, 384],                           // 000000110100x\n  [12, 448], [12, 448],                           // 000000110101x\n  [13, 512],                                      // 0000001101100\n  [13, 576],                                      // 0000001101101\n  [12, 53], [12, 53],                             // 000000110111x\n  [12, 54], [12, 54],                             // 000000111000x\n  [13, 896],                                      // 0000001110010\n  [13, 960],                                      // 0000001110011\n  [13, 1024],                                     // 0000001110100\n  [13, 1088],                                     // 0000001110101\n  [13, 1152],                                     // 0000001110110\n  [13, 1216],                                     // 0000001110111\n  [10, 64], [10, 64], [10, 64], [10, 64],         // 0000001111xxx\n  [10, 64], [10, 64], [10, 64], [10, 64]\n];\n\n// prettier-ignore\nconst blackTable2 = [\n  [8, 13], [8, 13], [8, 13], [8, 13],     // 00000100xxxx\n  [8, 13], [8, 13], [8, 13], [8, 13],\n  [8, 13], [8, 13], [8, 13], [8, 13],\n  [8, 13], [8, 13], [8, 13], [8, 13],\n  [11, 23], [11, 23],                     // 00000101000x\n  [12, 50],                               // 000001010010\n  [12, 51],                               // 000001010011\n  [12, 44],                               // 000001010100\n  [12, 45],                               // 000001010101\n  [12, 46],                               // 000001010110\n  [12, 47],                               // 000001010111\n  [12, 57],                               // 000001011000\n  [12, 58],                               // 000001011001\n  [12, 61],                               // 000001011010\n  [12, 256],                              // 000001011011\n  [10, 16], [10, 16], [10, 16], [10, 16], // 0000010111xx\n  [10, 17], [10, 17], [10, 17], [10, 17], // 0000011000xx\n  [12, 48],                               // 000001100100\n  [12, 49],                               // 000001100101\n  [12, 62],                               // 000001100110\n  [12, 63],                               // 000001100111\n  [12, 30],                               // 000001101000\n  [12, 31],                               // 000001101001\n  [12, 32],                               // 000001101010\n  [12, 33],                               // 000001101011\n  [12, 40],                               // 000001101100\n  [12, 41],                               // 000001101101\n  [11, 22], [11, 22],                     // 00000110111x\n  [8, 14], [8, 14], [8, 14], [8, 14],     // 00000111xxxx\n  [8, 14], [8, 14], [8, 14], [8, 14],\n  [8, 14], [8, 14], [8, 14], [8, 14],\n  [8, 14], [8, 14], [8, 14], [8, 14],\n  [7, 10], [7, 10], [7, 10], [7, 10],     // 0000100xxxxx\n  [7, 10], [7, 10], [7, 10], [7, 10],\n  [7, 10], [7, 10], [7, 10], [7, 10],\n  [7, 10], [7, 10], [7, 10], [7, 10],\n  [7, 10], [7, 10], [7, 10], [7, 10],\n  [7, 10], [7, 10], [7, 10], [7, 10],\n  [7, 10], [7, 10], [7, 10], [7, 10],\n  [7, 10], [7, 10], [7, 10], [7, 10],\n  [7, 11], [7, 11], [7, 11], [7, 11],     // 0000101xxxxx\n  [7, 11], [7, 11], [7, 11], [7, 11],\n  [7, 11], [7, 11], [7, 11], [7, 11],\n  [7, 11], [7, 11], [7, 11], [7, 11],\n  [7, 11], [7, 11], [7, 11], [7, 11],\n  [7, 11], [7, 11], [7, 11], [7, 11],\n  [7, 11], [7, 11], [7, 11], [7, 11],\n  [7, 11], [7, 11], [7, 11], [7, 11],\n  [9, 15], [9, 15], [9, 15], [9, 15],     // 000011000xxx\n  [9, 15], [9, 15], [9, 15], [9, 15],\n  [12, 128],                              // 000011001000\n  [12, 192],                              // 000011001001\n  [12, 26],                               // 000011001010\n  [12, 27],                               // 000011001011\n  [12, 28],                               // 000011001100\n  [12, 29],                               // 000011001101\n  [11, 19], [11, 19],                     // 00001100111x\n  [11, 20], [11, 20],                     // 00001101000x\n  [12, 34],                               // 000011010010\n  [12, 35],                               // 000011010011\n  [12, 36],                               // 000011010100\n  [12, 37],                               // 000011010101\n  [12, 38],                               // 000011010110\n  [12, 39],                               // 000011010111\n  [11, 21], [11, 21],                     // 00001101100x\n  [12, 42],                               // 000011011010\n  [12, 43],                               // 000011011011\n  [10, 0], [10, 0], [10, 0], [10, 0],     // 0000110111xx\n  [7, 12], [7, 12], [7, 12], [7, 12],     // 0000111xxxxx\n  [7, 12], [7, 12], [7, 12], [7, 12],\n  [7, 12], [7, 12], [7, 12], [7, 12],\n  [7, 12], [7, 12], [7, 12], [7, 12],\n  [7, 12], [7, 12], [7, 12], [7, 12],\n  [7, 12], [7, 12], [7, 12], [7, 12],\n  [7, 12], [7, 12], [7, 12], [7, 12],\n  [7, 12], [7, 12], [7, 12], [7, 12]\n];\n\n// prettier-ignore\nconst blackTable3 = [\n  [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000xx\n  [6, 9],                                 // 000100\n  [6, 8],                                 // 000101\n  [5, 7], [5, 7],                         // 00011x\n  [4, 6], [4, 6], [4, 6], [4, 6],         // 0010xx\n  [4, 5], [4, 5], [4, 5], [4, 5],         // 0011xx\n  [3, 1], [3, 1], [3, 1], [3, 1],         // 010xxx\n  [3, 1], [3, 1], [3, 1], [3, 1],\n  [3, 4], [3, 4], [3, 4], [3, 4],         // 011xxx\n  [3, 4], [3, 4], [3, 4], [3, 4],\n  [2, 3], [2, 3], [2, 3], [2, 3],         // 10xxxx\n  [2, 3], [2, 3], [2, 3], [2, 3],\n  [2, 3], [2, 3], [2, 3], [2, 3],\n  [2, 3], [2, 3], [2, 3], [2, 3],\n  [2, 2], [2, 2], [2, 2], [2, 2],         // 11xxxx\n  [2, 2], [2, 2], [2, 2], [2, 2],\n  [2, 2], [2, 2], [2, 2], [2, 2],\n  [2, 2], [2, 2], [2, 2], [2, 2]\n];\n\n/**\n * @param {CCITTFaxDecoderSource} source - The data which should be decoded.\n * @param {Object} [options] - Decoding options.\n */\nclass CCITTFaxDecoder {\n  constructor(source, options = {}) {\n    if (!source || typeof source.next !== \"function\") {\n      throw new Error('CCITTFaxDecoder - invalid \"source\" parameter.');\n    }\n    this.source = source;\n    this.eof = false;\n\n    this.encoding = options.K || 0;\n    this.eoline = options.EndOfLine || false;\n    this.byteAlign = options.EncodedByteAlign || false;\n    this.columns = options.Columns || 1728;\n    this.rows = options.Rows || 0;\n    this.eoblock = options.EndOfBlock ?? true;\n    this.black = options.BlackIs1 || false;\n\n    this.codingLine = new Uint32Array(this.columns + 1);\n    this.refLine = new Uint32Array(this.columns + 2);\n\n    this.codingLine[0] = this.columns;\n    this.codingPos = 0;\n\n    this.row = 0;\n    this.nextLine2D = this.encoding < 0;\n    this.inputBits = 0;\n    this.inputBuf = 0;\n    this.outputBits = 0;\n    this.rowsDone = false;\n\n    let code1;\n    while ((code1 = this._lookBits(12)) === 0) {\n      this._eatBits(1);\n    }\n    if (code1 === 1) {\n      this._eatBits(12);\n    }\n    if (this.encoding > 0) {\n      this.nextLine2D = !this._lookBits(1);\n      this._eatBits(1);\n    }\n  }\n\n  readNextChar() {\n    if (this.eof) {\n      return -1;\n    }\n    const refLine = this.refLine;\n    const codingLine = this.codingLine;\n    const columns = this.columns;\n\n    let refPos, blackPixels, bits, i;\n\n    if (this.outputBits === 0) {\n      if (this.rowsDone) {\n        this.eof = true;\n      }\n      if (this.eof) {\n        return -1;\n      }\n      this.err = false;\n\n      let code1, code2, code3;\n      if (this.nextLine2D) {\n        for (i = 0; codingLine[i] < columns; ++i) {\n          refLine[i] = codingLine[i];\n        }\n        refLine[i++] = columns;\n        refLine[i] = columns;\n        codingLine[0] = 0;\n        this.codingPos = 0;\n        refPos = 0;\n        blackPixels = 0;\n\n        while (codingLine[this.codingPos] < columns) {\n          code1 = this._getTwoDimCode();\n          switch (code1) {\n            case twoDimPass:\n              this._addPixels(refLine[refPos + 1], blackPixels);\n              if (refLine[refPos + 1] < columns) {\n                refPos += 2;\n              }\n              break;\n            case twoDimHoriz:\n              code1 = code2 = 0;\n              if (blackPixels) {\n                do {\n                  code1 += code3 = this._getBlackCode();\n                } while (code3 >= 64);\n                do {\n                  code2 += code3 = this._getWhiteCode();\n                } while (code3 >= 64);\n              } else {\n                do {\n                  code1 += code3 = this._getWhiteCode();\n                } while (code3 >= 64);\n                do {\n                  code2 += code3 = this._getBlackCode();\n                } while (code3 >= 64);\n              }\n              this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n              if (codingLine[this.codingPos] < columns) {\n                this._addPixels(\n                  codingLine[this.codingPos] + code2,\n                  blackPixels ^ 1\n                );\n              }\n              while (\n                refLine[refPos] <= codingLine[this.codingPos] &&\n                refLine[refPos] < columns\n              ) {\n                refPos += 2;\n              }\n              break;\n            case twoDimVertR3:\n              this._addPixels(refLine[refPos] + 3, blackPixels);\n              blackPixels ^= 1;\n              if (codingLine[this.codingPos] < columns) {\n                ++refPos;\n                while (\n                  refLine[refPos] <= codingLine[this.codingPos] &&\n                  refLine[refPos] < columns\n                ) {\n                  refPos += 2;\n                }\n              }\n              break;\n            case twoDimVertR2:\n              this._addPixels(refLine[refPos] + 2, blackPixels);\n              blackPixels ^= 1;\n              if (codingLine[this.codingPos] < columns) {\n                ++refPos;\n                while (\n                  refLine[refPos] <= codingLine[this.codingPos] &&\n                  refLine[refPos] < columns\n                ) {\n                  refPos += 2;\n                }\n              }\n              break;\n            case twoDimVertR1:\n              this._addPixels(refLine[refPos] + 1, blackPixels);\n              blackPixels ^= 1;\n              if (codingLine[this.codingPos] < columns) {\n                ++refPos;\n                while (\n                  refLine[refPos] <= codingLine[this.codingPos] &&\n                  refLine[refPos] < columns\n                ) {\n                  refPos += 2;\n                }\n              }\n              break;\n            case twoDimVert0:\n              this._addPixels(refLine[refPos], blackPixels);\n              blackPixels ^= 1;\n              if (codingLine[this.codingPos] < columns) {\n                ++refPos;\n                while (\n                  refLine[refPos] <= codingLine[this.codingPos] &&\n                  refLine[refPos] < columns\n                ) {\n                  refPos += 2;\n                }\n              }\n              break;\n            case twoDimVertL3:\n              this._addPixelsNeg(refLine[refPos] - 3, blackPixels);\n              blackPixels ^= 1;\n              if (codingLine[this.codingPos] < columns) {\n                if (refPos > 0) {\n                  --refPos;\n                } else {\n                  ++refPos;\n                }\n                while (\n                  refLine[refPos] <= codingLine[this.codingPos] &&\n                  refLine[refPos] < columns\n                ) {\n                  refPos += 2;\n                }\n              }\n              break;\n            case twoDimVertL2:\n              this._addPixelsNeg(refLine[refPos] - 2, blackPixels);\n              blackPixels ^= 1;\n              if (codingLine[this.codingPos] < columns) {\n                if (refPos > 0) {\n                  --refPos;\n                } else {\n                  ++refPos;\n                }\n                while (\n                  refLine[refPos] <= codingLine[this.codingPos] &&\n                  refLine[refPos] < columns\n                ) {\n                  refPos += 2;\n                }\n              }\n              break;\n            case twoDimVertL1:\n              this._addPixelsNeg(refLine[refPos] - 1, blackPixels);\n              blackPixels ^= 1;\n              if (codingLine[this.codingPos] < columns) {\n                if (refPos > 0) {\n                  --refPos;\n                } else {\n                  ++refPos;\n                }\n                while (\n                  refLine[refPos] <= codingLine[this.codingPos] &&\n                  refLine[refPos] < columns\n                ) {\n                  refPos += 2;\n                }\n              }\n              break;\n            case ccittEOF:\n              this._addPixels(columns, 0);\n              this.eof = true;\n              break;\n            default:\n              info(\"bad 2d code\");\n              this._addPixels(columns, 0);\n              this.err = true;\n          }\n        }\n      } else {\n        codingLine[0] = 0;\n        this.codingPos = 0;\n        blackPixels = 0;\n        while (codingLine[this.codingPos] < columns) {\n          code1 = 0;\n          if (blackPixels) {\n            do {\n              code1 += code3 = this._getBlackCode();\n            } while (code3 >= 64);\n          } else {\n            do {\n              code1 += code3 = this._getWhiteCode();\n            } while (code3 >= 64);\n          }\n          this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n          blackPixels ^= 1;\n        }\n      }\n\n      let gotEOL = false;\n\n      if (this.byteAlign) {\n        this.inputBits &= ~7;\n      }\n\n      if (!this.eoblock && this.row === this.rows - 1) {\n        this.rowsDone = true;\n      } else {\n        code1 = this._lookBits(12);\n        if (this.eoline) {\n          while (code1 !== ccittEOF && code1 !== 1) {\n            this._eatBits(1);\n            code1 = this._lookBits(12);\n          }\n        } else {\n          while (code1 === 0) {\n            this._eatBits(1);\n            code1 = this._lookBits(12);\n          }\n        }\n        if (code1 === 1) {\n          this._eatBits(12);\n          gotEOL = true;\n        } else if (code1 === ccittEOF) {\n          this.eof = true;\n        }\n      }\n\n      if (!this.eof && this.encoding > 0 && !this.rowsDone) {\n        this.nextLine2D = !this._lookBits(1);\n        this._eatBits(1);\n      }\n\n      if (this.eoblock && gotEOL && this.byteAlign) {\n        code1 = this._lookBits(12);\n        if (code1 === 1) {\n          this._eatBits(12);\n          if (this.encoding > 0) {\n            this._lookBits(1);\n            this._eatBits(1);\n          }\n          if (this.encoding >= 0) {\n            for (i = 0; i < 4; ++i) {\n              code1 = this._lookBits(12);\n              if (code1 !== 1) {\n                info(\"bad rtc code: \" + code1);\n              }\n              this._eatBits(12);\n              if (this.encoding > 0) {\n                this._lookBits(1);\n                this._eatBits(1);\n              }\n            }\n          }\n          this.eof = true;\n        }\n      } else if (this.err && this.eoline) {\n        while (true) {\n          code1 = this._lookBits(13);\n          if (code1 === ccittEOF) {\n            this.eof = true;\n            return -1;\n          }\n          if (code1 >> 1 === 1) {\n            break;\n          }\n          this._eatBits(1);\n        }\n        this._eatBits(12);\n        if (this.encoding > 0) {\n          this._eatBits(1);\n          this.nextLine2D = !(code1 & 1);\n        }\n      }\n\n      this.outputBits =\n        codingLine[0] > 0\n          ? codingLine[(this.codingPos = 0)]\n          : codingLine[(this.codingPos = 1)];\n      this.row++;\n    }\n\n    let c;\n    if (this.outputBits >= 8) {\n      c = this.codingPos & 1 ? 0 : 0xff;\n      this.outputBits -= 8;\n      if (this.outputBits === 0 && codingLine[this.codingPos] < columns) {\n        this.codingPos++;\n        this.outputBits =\n          codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n      }\n    } else {\n      bits = 8;\n      c = 0;\n      do {\n        if (typeof this.outputBits !== \"number\") {\n          throw new FormatError(\n            'Invalid /CCITTFaxDecode data, \"outputBits\" must be a number.'\n          );\n        }\n\n        if (this.outputBits > bits) {\n          c <<= bits;\n          if (!(this.codingPos & 1)) {\n            c |= 0xff >> (8 - bits);\n          }\n          this.outputBits -= bits;\n          bits = 0;\n        } else {\n          c <<= this.outputBits;\n          if (!(this.codingPos & 1)) {\n            c |= 0xff >> (8 - this.outputBits);\n          }\n          bits -= this.outputBits;\n          this.outputBits = 0;\n          if (codingLine[this.codingPos] < columns) {\n            this.codingPos++;\n            this.outputBits =\n              codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n          } else if (bits > 0) {\n            c <<= bits;\n            bits = 0;\n          }\n        }\n      } while (bits);\n    }\n    if (this.black) {\n      c ^= 0xff;\n    }\n    return c;\n  }\n\n  /**\n   * @private\n   */\n  _addPixels(a1, blackPixels) {\n    const codingLine = this.codingLine;\n    let codingPos = this.codingPos;\n\n    if (a1 > codingLine[codingPos]) {\n      if (a1 > this.columns) {\n        info(\"row is wrong length\");\n        this.err = true;\n        a1 = this.columns;\n      }\n      if ((codingPos & 1) ^ blackPixels) {\n        ++codingPos;\n      }\n\n      codingLine[codingPos] = a1;\n    }\n    this.codingPos = codingPos;\n  }\n\n  /**\n   * @private\n   */\n  _addPixelsNeg(a1, blackPixels) {\n    const codingLine = this.codingLine;\n    let codingPos = this.codingPos;\n\n    if (a1 > codingLine[codingPos]) {\n      if (a1 > this.columns) {\n        info(\"row is wrong length\");\n        this.err = true;\n        a1 = this.columns;\n      }\n      if ((codingPos & 1) ^ blackPixels) {\n        ++codingPos;\n      }\n\n      codingLine[codingPos] = a1;\n    } else if (a1 < codingLine[codingPos]) {\n      if (a1 < 0) {\n        info(\"invalid code\");\n        this.err = true;\n        a1 = 0;\n      }\n      while (codingPos > 0 && a1 < codingLine[codingPos - 1]) {\n        --codingPos;\n      }\n      codingLine[codingPos] = a1;\n    }\n\n    this.codingPos = codingPos;\n  }\n\n  /**\n   * This function returns the code found from the table.\n   * The start and end parameters set the boundaries for searching the table.\n   * The limit parameter is optional. Function returns an array with three\n   * values. The first array element indicates whether a valid code is being\n   * returned. The second array element is the actual code. The third array\n   * element indicates whether EOF was reached.\n   * @private\n   */\n  _findTableCode(start, end, table, limit) {\n    const limitValue = limit || 0;\n    for (let i = start; i <= end; ++i) {\n      let code = this._lookBits(i);\n      if (code === ccittEOF) {\n        return [true, 1, false];\n      }\n      if (i < end) {\n        code <<= end - i;\n      }\n      if (!limitValue || code >= limitValue) {\n        const p = table[code - limitValue];\n        if (p[0] === i) {\n          this._eatBits(i);\n          return [true, p[1], true];\n        }\n      }\n    }\n    return [false, 0, false];\n  }\n\n  /**\n   * @private\n   */\n  _getTwoDimCode() {\n    let code = 0;\n    let p;\n    if (this.eoblock) {\n      code = this._lookBits(7);\n      p = twoDimTable[code];\n      if (p?.[0] > 0) {\n        this._eatBits(p[0]);\n        return p[1];\n      }\n    } else {\n      const result = this._findTableCode(1, 7, twoDimTable);\n      if (result[0] && result[2]) {\n        return result[1];\n      }\n    }\n    info(\"Bad two dim code\");\n    return ccittEOF;\n  }\n\n  /**\n   * @private\n   */\n  _getWhiteCode() {\n    let code = 0;\n    let p;\n    if (this.eoblock) {\n      code = this._lookBits(12);\n      if (code === ccittEOF) {\n        return 1;\n      }\n\n      p = code >> 5 === 0 ? whiteTable1[code] : whiteTable2[code >> 3];\n\n      if (p[0] > 0) {\n        this._eatBits(p[0]);\n        return p[1];\n      }\n    } else {\n      let result = this._findTableCode(1, 9, whiteTable2);\n      if (result[0]) {\n        return result[1];\n      }\n\n      result = this._findTableCode(11, 12, whiteTable1);\n      if (result[0]) {\n        return result[1];\n      }\n    }\n    info(\"bad white code\");\n    this._eatBits(1);\n    return 1;\n  }\n\n  /**\n   * @private\n   */\n  _getBlackCode() {\n    let code, p;\n    if (this.eoblock) {\n      code = this._lookBits(13);\n      if (code === ccittEOF) {\n        return 1;\n      }\n      if (code >> 7 === 0) {\n        p = blackTable1[code];\n      } else if (code >> 9 === 0 && code >> 7 !== 0) {\n        p = blackTable2[(code >> 1) - 64];\n      } else {\n        p = blackTable3[code >> 7];\n      }\n\n      if (p[0] > 0) {\n        this._eatBits(p[0]);\n        return p[1];\n      }\n    } else {\n      let result = this._findTableCode(2, 6, blackTable3);\n      if (result[0]) {\n        return result[1];\n      }\n\n      result = this._findTableCode(7, 12, blackTable2, 64);\n      if (result[0]) {\n        return result[1];\n      }\n\n      result = this._findTableCode(10, 13, blackTable1);\n      if (result[0]) {\n        return result[1];\n      }\n    }\n    info(\"bad black code\");\n    this._eatBits(1);\n    return 1;\n  }\n\n  /**\n   * @private\n   */\n  _lookBits(n) {\n    let c;\n    while (this.inputBits < n) {\n      if ((c = this.source.next()) === -1) {\n        if (this.inputBits === 0) {\n          return ccittEOF;\n        }\n        return (this.inputBuf << (n - this.inputBits)) & (0xffff >> (16 - n));\n      }\n      this.inputBuf = (this.inputBuf << 8) | c;\n      this.inputBits += 8;\n    }\n    return (this.inputBuf >> (this.inputBits - n)) & (0xffff >> (16 - n));\n  }\n\n  /**\n   * @private\n   */\n  _eatBits(n) {\n    if ((this.inputBits -= n) < 0) {\n      this.inputBits = 0;\n    }\n  }\n}\n\nexport { CCITTFaxDecoder };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CCITTFaxDecoder } from \"./ccitt.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\n\nclass CCITTFaxStream extends DecodeStream {\n  constructor(str, maybeLength, params) {\n    super(maybeLength);\n\n    this.str = str;\n    this.dict = str.dict;\n\n    if (!(params instanceof Dict)) {\n      params = Dict.empty;\n    }\n\n    const source = {\n      next() {\n        return str.getByte();\n      },\n    };\n    this.ccittFaxDecoder = new CCITTFaxDecoder(source, {\n      K: params.get(\"K\"),\n      EndOfLine: params.get(\"EndOfLine\"),\n      EncodedByteAlign: params.get(\"EncodedByteAlign\"),\n      Columns: params.get(\"Columns\"),\n      Rows: params.get(\"Rows\"),\n      EndOfBlock: params.get(\"EndOfBlock\"),\n      BlackIs1: params.get(\"BlackIs1\"),\n    });\n  }\n\n  readBlock() {\n    while (!this.eof) {\n      const c = this.ccittFaxDecoder.readNextChar();\n      if (c === -1) {\n        this.eof = true;\n        return;\n      }\n      this.ensureBuffer(this.bufferLength + 1);\n      this.buffer[this.bufferLength++] = c;\n    }\n  }\n}\n\nexport { CCITTFaxStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Copyright 1996-2003 Glyph & Cog, LLC\n *\n * The flate stream implementation contained in this file is a JavaScript port\n * of XPDF's implementation, made available under the Apache 2.0 open source\n * license.\n */\n\nimport { FormatError, info } from \"../shared/util.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\n\nconst codeLenCodeMap = new Int32Array([\n  16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15,\n]);\n\nconst lengthDecode = new Int32Array([\n  0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a,\n  0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f,\n  0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073,\n  0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102,\n]);\n\nconst distDecode = new Int32Array([\n  0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d,\n  0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1,\n  0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01,\n  0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001,\n]);\n\nconst fixedLitCodeTab = [\n  new Int32Array([\n    0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0,\n    0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0,\n    0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0,\n    0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0,\n    0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8,\n    0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8,\n    0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8,\n    0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8,\n    0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4,\n    0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4,\n    0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4,\n    0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4,\n    0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc,\n    0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec,\n    0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc,\n    0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc,\n    0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2,\n    0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2,\n    0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2,\n    0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2,\n    0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca,\n    0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea,\n    0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da,\n    0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa,\n    0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6,\n    0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6,\n    0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6,\n    0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6,\n    0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce,\n    0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee,\n    0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de,\n    0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe,\n    0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1,\n    0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1,\n    0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1,\n    0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1,\n    0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9,\n    0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9,\n    0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9,\n    0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9,\n    0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5,\n    0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5,\n    0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5,\n    0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5,\n    0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd,\n    0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed,\n    0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd,\n    0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd,\n    0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3,\n    0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3,\n    0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3,\n    0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3,\n    0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb,\n    0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb,\n    0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db,\n    0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb,\n    0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7,\n    0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7,\n    0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7,\n    0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7,\n    0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf,\n    0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef,\n    0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df,\n    0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff,\n  ]),\n  9,\n];\n\nconst fixedDistCodeTab = [\n  new Int32Array([\n    0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c,\n    0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000,\n    0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d,\n    0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000,\n  ]),\n  5,\n];\n\nclass FlateStream extends DecodeStream {\n  constructor(str, maybeLength) {\n    super(maybeLength);\n\n    this.str = str;\n    this.dict = str.dict;\n\n    const cmf = str.getByte();\n    const flg = str.getByte();\n    if (cmf === -1 || flg === -1) {\n      throw new FormatError(`Invalid header in flate stream: ${cmf}, ${flg}`);\n    }\n    if ((cmf & 0x0f) !== 0x08) {\n      throw new FormatError(\n        `Unknown compression method in flate stream: ${cmf}, ${flg}`\n      );\n    }\n    if (((cmf << 8) + flg) % 31 !== 0) {\n      throw new FormatError(`Bad FCHECK in flate stream: ${cmf}, ${flg}`);\n    }\n    if (flg & 0x20) {\n      throw new FormatError(`FDICT bit set in flate stream: ${cmf}, ${flg}`);\n    }\n\n    this.codeSize = 0;\n    this.codeBuf = 0;\n  }\n\n  getBits(bits) {\n    const str = this.str;\n    let codeSize = this.codeSize;\n    let codeBuf = this.codeBuf;\n\n    let b;\n    while (codeSize < bits) {\n      if ((b = str.getByte()) === -1) {\n        throw new FormatError(\"Bad encoding in flate stream\");\n      }\n      codeBuf |= b << codeSize;\n      codeSize += 8;\n    }\n    b = codeBuf & ((1 << bits) - 1);\n    this.codeBuf = codeBuf >> bits;\n    this.codeSize = codeSize -= bits;\n\n    return b;\n  }\n\n  getCode(table) {\n    const str = this.str;\n    const codes = table[0];\n    const maxLen = table[1];\n    let codeSize = this.codeSize;\n    let codeBuf = this.codeBuf;\n\n    let b;\n    while (codeSize < maxLen) {\n      if ((b = str.getByte()) === -1) {\n        // premature end of stream. code might however still be valid.\n        // codeSize < codeLen check below guards against incomplete codeVal.\n        break;\n      }\n      codeBuf |= b << codeSize;\n      codeSize += 8;\n    }\n    const code = codes[codeBuf & ((1 << maxLen) - 1)];\n    const codeLen = code >> 16;\n    const codeVal = code & 0xffff;\n    if (codeLen < 1 || codeSize < codeLen) {\n      throw new FormatError(\"Bad encoding in flate stream\");\n    }\n    this.codeBuf = codeBuf >> codeLen;\n    this.codeSize = codeSize - codeLen;\n    return codeVal;\n  }\n\n  generateHuffmanTable(lengths) {\n    const n = lengths.length;\n\n    // find max code length\n    let maxLen = 0;\n    let i;\n    for (i = 0; i < n; ++i) {\n      if (lengths[i] > maxLen) {\n        maxLen = lengths[i];\n      }\n    }\n\n    // build the table\n    const size = 1 << maxLen;\n    const codes = new Int32Array(size);\n    for (\n      let len = 1, code = 0, skip = 2;\n      len <= maxLen;\n      ++len, code <<= 1, skip <<= 1\n    ) {\n      for (let val = 0; val < n; ++val) {\n        if (lengths[val] === len) {\n          // bit-reverse the code\n          let code2 = 0;\n          let t = code;\n          for (i = 0; i < len; ++i) {\n            code2 = (code2 << 1) | (t & 1);\n            t >>= 1;\n          }\n\n          // fill the table entries\n          for (i = code2; i < size; i += skip) {\n            codes[i] = (len << 16) | val;\n          }\n          ++code;\n        }\n      }\n    }\n\n    return [codes, maxLen];\n  }\n\n  #endsStreamOnError(err) {\n    info(err);\n    this.eof = true;\n  }\n\n  readBlock() {\n    let buffer, len;\n    const str = this.str;\n    // read block header\n    let hdr = this.getBits(3);\n    if (hdr & 1) {\n      this.eof = true;\n    }\n    hdr >>= 1;\n\n    if (hdr === 0) {\n      // uncompressed block\n      let b;\n\n      if ((b = str.getByte()) === -1) {\n        this.#endsStreamOnError(\"Bad block header in flate stream\");\n        return;\n      }\n      let blockLen = b;\n      if ((b = str.getByte()) === -1) {\n        this.#endsStreamOnError(\"Bad block header in flate stream\");\n        return;\n      }\n      blockLen |= b << 8;\n      if ((b = str.getByte()) === -1) {\n        this.#endsStreamOnError(\"Bad block header in flate stream\");\n        return;\n      }\n      let check = b;\n      if ((b = str.getByte()) === -1) {\n        this.#endsStreamOnError(\"Bad block header in flate stream\");\n        return;\n      }\n      check |= b << 8;\n      if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) {\n        // Ignoring error for bad \"empty\" block (see issue 1277)\n        throw new FormatError(\"Bad uncompressed block length in flate stream\");\n      }\n\n      this.codeBuf = 0;\n      this.codeSize = 0;\n\n      const bufferLength = this.bufferLength,\n        end = bufferLength + blockLen;\n      buffer = this.ensureBuffer(end);\n      this.bufferLength = end;\n\n      if (blockLen === 0) {\n        if (str.peekByte() === -1) {\n          this.eof = true;\n        }\n      } else {\n        const block = str.getBytes(blockLen);\n        buffer.set(block, bufferLength);\n        if (block.length < blockLen) {\n          this.eof = true;\n        }\n      }\n      return;\n    }\n\n    let litCodeTable;\n    let distCodeTable;\n    if (hdr === 1) {\n      // compressed block, fixed codes\n      litCodeTable = fixedLitCodeTab;\n      distCodeTable = fixedDistCodeTab;\n    } else if (hdr === 2) {\n      // compressed block, dynamic codes\n      const numLitCodes = this.getBits(5) + 257;\n      const numDistCodes = this.getBits(5) + 1;\n      const numCodeLenCodes = this.getBits(4) + 4;\n\n      // build the code lengths code table\n      const codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length);\n\n      let i;\n      for (i = 0; i < numCodeLenCodes; ++i) {\n        codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);\n      }\n      const codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);\n\n      // build the literal and distance code tables\n      len = 0;\n      i = 0;\n      const codes = numLitCodes + numDistCodes;\n      const codeLengths = new Uint8Array(codes);\n      let bitsLength, bitsOffset, what;\n      while (i < codes) {\n        const code = this.getCode(codeLenCodeTab);\n        if (code === 16) {\n          bitsLength = 2;\n          bitsOffset = 3;\n          what = len;\n        } else if (code === 17) {\n          bitsLength = 3;\n          bitsOffset = 3;\n          what = len = 0;\n        } else if (code === 18) {\n          bitsLength = 7;\n          bitsOffset = 11;\n          what = len = 0;\n        } else {\n          codeLengths[i++] = len = code;\n          continue;\n        }\n\n        let repeatLength = this.getBits(bitsLength) + bitsOffset;\n        while (repeatLength-- > 0) {\n          codeLengths[i++] = what;\n        }\n      }\n\n      litCodeTable = this.generateHuffmanTable(\n        codeLengths.subarray(0, numLitCodes)\n      );\n      distCodeTable = this.generateHuffmanTable(\n        codeLengths.subarray(numLitCodes, codes)\n      );\n    } else {\n      throw new FormatError(\"Unknown block type in flate stream\");\n    }\n\n    buffer = this.buffer;\n    let limit = buffer ? buffer.length : 0;\n    let pos = this.bufferLength;\n    while (true) {\n      let code1 = this.getCode(litCodeTable);\n      if (code1 < 256) {\n        if (pos + 1 >= limit) {\n          buffer = this.ensureBuffer(pos + 1);\n          limit = buffer.length;\n        }\n        buffer[pos++] = code1;\n        continue;\n      }\n      if (code1 === 256) {\n        this.bufferLength = pos;\n        return;\n      }\n      code1 -= 257;\n      code1 = lengthDecode[code1];\n      let code2 = code1 >> 16;\n      if (code2 > 0) {\n        code2 = this.getBits(code2);\n      }\n      len = (code1 & 0xffff) + code2;\n      code1 = this.getCode(distCodeTable);\n      code1 = distDecode[code1];\n      code2 = code1 >> 16;\n      if (code2 > 0) {\n        code2 = this.getBits(code2);\n      }\n      const dist = (code1 & 0xffff) + code2;\n      if (pos + len >= limit) {\n        buffer = this.ensureBuffer(pos + len);\n        limit = buffer.length;\n      }\n      for (let k = 0; k < len; ++k, ++pos) {\n        buffer[pos] = buffer[pos - dist];\n      }\n    }\n  }\n}\n\nexport { FlateStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Table C-2\nconst QeTable = [\n  { qe: 0x5601, nmps: 1, nlps: 1, switchFlag: 1 },\n  { qe: 0x3401, nmps: 2, nlps: 6, switchFlag: 0 },\n  { qe: 0x1801, nmps: 3, nlps: 9, switchFlag: 0 },\n  { qe: 0x0ac1, nmps: 4, nlps: 12, switchFlag: 0 },\n  { qe: 0x0521, nmps: 5, nlps: 29, switchFlag: 0 },\n  { qe: 0x0221, nmps: 38, nlps: 33, switchFlag: 0 },\n  { qe: 0x5601, nmps: 7, nlps: 6, switchFlag: 1 },\n  { qe: 0x5401, nmps: 8, nlps: 14, switchFlag: 0 },\n  { qe: 0x4801, nmps: 9, nlps: 14, switchFlag: 0 },\n  { qe: 0x3801, nmps: 10, nlps: 14, switchFlag: 0 },\n  { qe: 0x3001, nmps: 11, nlps: 17, switchFlag: 0 },\n  { qe: 0x2401, nmps: 12, nlps: 18, switchFlag: 0 },\n  { qe: 0x1c01, nmps: 13, nlps: 20, switchFlag: 0 },\n  { qe: 0x1601, nmps: 29, nlps: 21, switchFlag: 0 },\n  { qe: 0x5601, nmps: 15, nlps: 14, switchFlag: 1 },\n  { qe: 0x5401, nmps: 16, nlps: 14, switchFlag: 0 },\n  { qe: 0x5101, nmps: 17, nlps: 15, switchFlag: 0 },\n  { qe: 0x4801, nmps: 18, nlps: 16, switchFlag: 0 },\n  { qe: 0x3801, nmps: 19, nlps: 17, switchFlag: 0 },\n  { qe: 0x3401, nmps: 20, nlps: 18, switchFlag: 0 },\n  { qe: 0x3001, nmps: 21, nlps: 19, switchFlag: 0 },\n  { qe: 0x2801, nmps: 22, nlps: 19, switchFlag: 0 },\n  { qe: 0x2401, nmps: 23, nlps: 20, switchFlag: 0 },\n  { qe: 0x2201, nmps: 24, nlps: 21, switchFlag: 0 },\n  { qe: 0x1c01, nmps: 25, nlps: 22, switchFlag: 0 },\n  { qe: 0x1801, nmps: 26, nlps: 23, switchFlag: 0 },\n  { qe: 0x1601, nmps: 27, nlps: 24, switchFlag: 0 },\n  { qe: 0x1401, nmps: 28, nlps: 25, switchFlag: 0 },\n  { qe: 0x1201, nmps: 29, nlps: 26, switchFlag: 0 },\n  { qe: 0x1101, nmps: 30, nlps: 27, switchFlag: 0 },\n  { qe: 0x0ac1, nmps: 31, nlps: 28, switchFlag: 0 },\n  { qe: 0x09c1, nmps: 32, nlps: 29, switchFlag: 0 },\n  { qe: 0x08a1, nmps: 33, nlps: 30, switchFlag: 0 },\n  { qe: 0x0521, nmps: 34, nlps: 31, switchFlag: 0 },\n  { qe: 0x0441, nmps: 35, nlps: 32, switchFlag: 0 },\n  { qe: 0x02a1, nmps: 36, nlps: 33, switchFlag: 0 },\n  { qe: 0x0221, nmps: 37, nlps: 34, switchFlag: 0 },\n  { qe: 0x0141, nmps: 38, nlps: 35, switchFlag: 0 },\n  { qe: 0x0111, nmps: 39, nlps: 36, switchFlag: 0 },\n  { qe: 0x0085, nmps: 40, nlps: 37, switchFlag: 0 },\n  { qe: 0x0049, nmps: 41, nlps: 38, switchFlag: 0 },\n  { qe: 0x0025, nmps: 42, nlps: 39, switchFlag: 0 },\n  { qe: 0x0015, nmps: 43, nlps: 40, switchFlag: 0 },\n  { qe: 0x0009, nmps: 44, nlps: 41, switchFlag: 0 },\n  { qe: 0x0005, nmps: 45, nlps: 42, switchFlag: 0 },\n  { qe: 0x0001, nmps: 45, nlps: 43, switchFlag: 0 },\n  { qe: 0x5601, nmps: 46, nlps: 46, switchFlag: 0 },\n];\n\n/**\n * This class implements the QM Coder decoding as defined in\n *   JPEG 2000 Part I Final Committee Draft Version 1.0\n *   Annex C.3 Arithmetic decoding procedure\n * available at http://www.jpeg.org/public/fcd15444-1.pdf\n *\n * The arithmetic decoder is used in conjunction with context models to decode\n * JPEG2000 and JBIG2 streams.\n */\nclass ArithmeticDecoder {\n  // C.3.5 Initialisation of the decoder (INITDEC)\n  constructor(data, start, end) {\n    this.data = data;\n    this.bp = start;\n    this.dataEnd = end;\n\n    this.chigh = data[start];\n    this.clow = 0;\n\n    this.byteIn();\n\n    this.chigh = ((this.chigh << 7) & 0xffff) | ((this.clow >> 9) & 0x7f);\n    this.clow = (this.clow << 7) & 0xffff;\n    this.ct -= 7;\n    this.a = 0x8000;\n  }\n\n  // C.3.4 Compressed data input (BYTEIN)\n  byteIn() {\n    const data = this.data;\n    let bp = this.bp;\n\n    if (data[bp] === 0xff) {\n      if (data[bp + 1] > 0x8f) {\n        this.clow += 0xff00;\n        this.ct = 8;\n      } else {\n        bp++;\n        this.clow += data[bp] << 9;\n        this.ct = 7;\n        this.bp = bp;\n      }\n    } else {\n      bp++;\n      this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xff00;\n      this.ct = 8;\n      this.bp = bp;\n    }\n    if (this.clow > 0xffff) {\n      this.chigh += this.clow >> 16;\n      this.clow &= 0xffff;\n    }\n  }\n\n  // C.3.2 Decoding a decision (DECODE)\n  readBit(contexts, pos) {\n    // Contexts are packed into 1 byte:\n    // highest 7 bits carry cx.index, lowest bit carries cx.mps\n    let cx_index = contexts[pos] >> 1,\n      cx_mps = contexts[pos] & 1;\n    const qeTableIcx = QeTable[cx_index];\n    const qeIcx = qeTableIcx.qe;\n    let d;\n    let a = this.a - qeIcx;\n\n    if (this.chigh < qeIcx) {\n      // exchangeLps\n      if (a < qeIcx) {\n        a = qeIcx;\n        d = cx_mps;\n        cx_index = qeTableIcx.nmps;\n      } else {\n        a = qeIcx;\n        d = 1 ^ cx_mps;\n        if (qeTableIcx.switchFlag === 1) {\n          cx_mps = d;\n        }\n        cx_index = qeTableIcx.nlps;\n      }\n    } else {\n      this.chigh -= qeIcx;\n      if ((a & 0x8000) !== 0) {\n        this.a = a;\n        return cx_mps;\n      }\n      // exchangeMps\n      if (a < qeIcx) {\n        d = 1 ^ cx_mps;\n        if (qeTableIcx.switchFlag === 1) {\n          cx_mps = d;\n        }\n        cx_index = qeTableIcx.nlps;\n      } else {\n        d = cx_mps;\n        cx_index = qeTableIcx.nmps;\n      }\n    }\n    // C.3.3 renormD;\n    do {\n      if (this.ct === 0) {\n        this.byteIn();\n      }\n\n      a <<= 1;\n      this.chigh = ((this.chigh << 1) & 0xffff) | ((this.clow >> 15) & 1);\n      this.clow = (this.clow << 1) & 0xffff;\n      this.ct--;\n    } while ((a & 0x8000) === 0);\n    this.a = a;\n\n    contexts[pos] = (cx_index << 1) | cx_mps;\n    return d;\n  }\n}\n\nexport { ArithmeticDecoder };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseException, shadow } from \"../shared/util.js\";\nimport { log2, readInt8, readUint16, readUint32 } from \"./core_utils.js\";\nimport { ArithmeticDecoder } from \"./arithmetic_decoder.js\";\nimport { CCITTFaxDecoder } from \"./ccitt.js\";\n\nclass Jbig2Error extends BaseException {\n  constructor(msg) {\n    super(`JBIG2 error: ${msg}`, \"Jbig2Error\");\n  }\n}\n\n// Utility data structures\nclass ContextCache {\n  getContexts(id) {\n    if (id in this) {\n      return this[id];\n    }\n    return (this[id] = new Int8Array(1 << 16));\n  }\n}\n\nclass DecodingContext {\n  constructor(data, start, end) {\n    this.data = data;\n    this.start = start;\n    this.end = end;\n  }\n\n  get decoder() {\n    const decoder = new ArithmeticDecoder(this.data, this.start, this.end);\n    return shadow(this, \"decoder\", decoder);\n  }\n\n  get contextCache() {\n    const cache = new ContextCache();\n    return shadow(this, \"contextCache\", cache);\n  }\n}\n\nconst MAX_INT_32 = 2 ** 31 - 1;\nconst MIN_INT_32 = -(2 ** 31);\n\n// Annex A. Arithmetic Integer Decoding Procedure\n// A.2 Procedure for decoding values\nfunction decodeInteger(contextCache, procedure, decoder) {\n  const contexts = contextCache.getContexts(procedure);\n  let prev = 1;\n\n  function readBits(length) {\n    let v = 0;\n    for (let i = 0; i < length; i++) {\n      const bit = decoder.readBit(contexts, prev);\n      prev = prev < 256 ? (prev << 1) | bit : (((prev << 1) | bit) & 511) | 256;\n      v = (v << 1) | bit;\n    }\n    return v >>> 0;\n  }\n\n  const sign = readBits(1);\n  // prettier-ignore\n  /* eslint-disable no-nested-ternary */\n  const value = readBits(1) ?\n                  (readBits(1) ?\n                    (readBits(1) ?\n                      (readBits(1) ?\n                        (readBits(1) ?\n                          (readBits(32) + 4436) :\n                        readBits(12) + 340) :\n                      readBits(8) + 84) :\n                    readBits(6) + 20) :\n                  readBits(4) + 4) :\n                readBits(2);\n  /* eslint-enable no-nested-ternary */\n  let signedValue;\n  if (sign === 0) {\n    signedValue = value;\n  } else if (value > 0) {\n    signedValue = -value;\n  }\n  // Ensure that the integer value doesn't underflow or overflow.\n  if (signedValue >= MIN_INT_32 && signedValue <= MAX_INT_32) {\n    return signedValue;\n  }\n  return null;\n}\n\n// A.3 The IAID decoding procedure\nfunction decodeIAID(contextCache, decoder, codeLength) {\n  const contexts = contextCache.getContexts(\"IAID\");\n\n  let prev = 1;\n  for (let i = 0; i < codeLength; i++) {\n    const bit = decoder.readBit(contexts, prev);\n    prev = (prev << 1) | bit;\n  }\n  if (codeLength < 31) {\n    return prev & ((1 << codeLength) - 1);\n  }\n  return prev & 0x7fffffff;\n}\n\n// 7.3 Segment types\nconst SegmentTypes = [\n  \"SymbolDictionary\",\n  null,\n  null,\n  null,\n  \"IntermediateTextRegion\",\n  null,\n  \"ImmediateTextRegion\",\n  \"ImmediateLosslessTextRegion\",\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  \"PatternDictionary\",\n  null,\n  null,\n  null,\n  \"IntermediateHalftoneRegion\",\n  null,\n  \"ImmediateHalftoneRegion\",\n  \"ImmediateLosslessHalftoneRegion\",\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  \"IntermediateGenericRegion\",\n  null,\n  \"ImmediateGenericRegion\",\n  \"ImmediateLosslessGenericRegion\",\n  \"IntermediateGenericRefinementRegion\",\n  null,\n  \"ImmediateGenericRefinementRegion\",\n  \"ImmediateLosslessGenericRefinementRegion\",\n  null,\n  null,\n  null,\n  null,\n  \"PageInformation\",\n  \"EndOfPage\",\n  \"EndOfStripe\",\n  \"EndOfFile\",\n  \"Profiles\",\n  \"Tables\",\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  null,\n  \"Extension\",\n];\n\nconst CodingTemplates = [\n  [\n    { x: -1, y: -2 },\n    { x: 0, y: -2 },\n    { x: 1, y: -2 },\n    { x: -2, y: -1 },\n    { x: -1, y: -1 },\n    { x: 0, y: -1 },\n    { x: 1, y: -1 },\n    { x: 2, y: -1 },\n    { x: -4, y: 0 },\n    { x: -3, y: 0 },\n    { x: -2, y: 0 },\n    { x: -1, y: 0 },\n  ],\n  [\n    { x: -1, y: -2 },\n    { x: 0, y: -2 },\n    { x: 1, y: -2 },\n    { x: 2, y: -2 },\n    { x: -2, y: -1 },\n    { x: -1, y: -1 },\n    { x: 0, y: -1 },\n    { x: 1, y: -1 },\n    { x: 2, y: -1 },\n    { x: -3, y: 0 },\n    { x: -2, y: 0 },\n    { x: -1, y: 0 },\n  ],\n  [\n    { x: -1, y: -2 },\n    { x: 0, y: -2 },\n    { x: 1, y: -2 },\n    { x: -2, y: -1 },\n    { x: -1, y: -1 },\n    { x: 0, y: -1 },\n    { x: 1, y: -1 },\n    { x: -2, y: 0 },\n    { x: -1, y: 0 },\n  ],\n  [\n    { x: -3, y: -1 },\n    { x: -2, y: -1 },\n    { x: -1, y: -1 },\n    { x: 0, y: -1 },\n    { x: 1, y: -1 },\n    { x: -4, y: 0 },\n    { x: -3, y: 0 },\n    { x: -2, y: 0 },\n    { x: -1, y: 0 },\n  ],\n];\n\nconst RefinementTemplates = [\n  {\n    coding: [\n      { x: 0, y: -1 },\n      { x: 1, y: -1 },\n      { x: -1, y: 0 },\n    ],\n    reference: [\n      { x: 0, y: -1 },\n      { x: 1, y: -1 },\n      { x: -1, y: 0 },\n      { x: 0, y: 0 },\n      { x: 1, y: 0 },\n      { x: -1, y: 1 },\n      { x: 0, y: 1 },\n      { x: 1, y: 1 },\n    ],\n  },\n  {\n    coding: [\n      { x: -1, y: -1 },\n      { x: 0, y: -1 },\n      { x: 1, y: -1 },\n      { x: -1, y: 0 },\n    ],\n    reference: [\n      { x: 0, y: -1 },\n      { x: -1, y: 0 },\n      { x: 0, y: 0 },\n      { x: 1, y: 0 },\n      { x: 0, y: 1 },\n      { x: 1, y: 1 },\n    ],\n  },\n];\n\n// See 6.2.5.7 Decoding the bitmap.\nconst ReusedContexts = [\n  0x9b25, // 10011 0110010 0101\n  0x0795, // 0011 110010 101\n  0x00e5, // 001 11001 01\n  0x0195, // 011001 0101\n];\n\nconst RefinementReusedContexts = [\n  0x0020, // '000' + '0' (coding) + '00010000' + '0' (reference)\n  0x0008, // '0000' + '001000'\n];\n\nfunction decodeBitmapTemplate0(width, height, decodingContext) {\n  const decoder = decodingContext.decoder;\n  const contexts = decodingContext.contextCache.getContexts(\"GB\");\n  const bitmap = [];\n  let contextLabel, i, j, pixel, row, row1, row2;\n\n  // ...ooooo....\n  // ..ooooooo... Context template for current pixel (X)\n  // .ooooX...... (concatenate values of 'o'-pixels to get contextLabel)\n  const OLD_PIXEL_MASK = 0x7bf7; // 01111 0111111 0111\n\n  for (i = 0; i < height; i++) {\n    row = bitmap[i] = new Uint8Array(width);\n    row1 = i < 1 ? row : bitmap[i - 1];\n    row2 = i < 2 ? row : bitmap[i - 2];\n\n    // At the beginning of each row:\n    // Fill contextLabel with pixels that are above/right of (X)\n    contextLabel =\n      (row2[0] << 13) |\n      (row2[1] << 12) |\n      (row2[2] << 11) |\n      (row1[0] << 7) |\n      (row1[1] << 6) |\n      (row1[2] << 5) |\n      (row1[3] << 4);\n\n    for (j = 0; j < width; j++) {\n      row[j] = pixel = decoder.readBit(contexts, contextLabel);\n\n      // At each pixel: Clear contextLabel pixels that are shifted\n      // out of the context, then add new ones.\n      contextLabel =\n        ((contextLabel & OLD_PIXEL_MASK) << 1) |\n        (j + 3 < width ? row2[j + 3] << 11 : 0) |\n        (j + 4 < width ? row1[j + 4] << 4 : 0) |\n        pixel;\n    }\n  }\n\n  return bitmap;\n}\n\n// 6.2 Generic Region Decoding Procedure\nfunction decodeBitmap(\n  mmr,\n  width,\n  height,\n  templateIndex,\n  prediction,\n  skip,\n  at,\n  decodingContext\n) {\n  if (mmr) {\n    const input = new Reader(\n      decodingContext.data,\n      decodingContext.start,\n      decodingContext.end\n    );\n    return decodeMMRBitmap(input, width, height, false);\n  }\n\n  // Use optimized version for the most common case\n  if (\n    templateIndex === 0 &&\n    !skip &&\n    !prediction &&\n    at.length === 4 &&\n    at[0].x === 3 &&\n    at[0].y === -1 &&\n    at[1].x === -3 &&\n    at[1].y === -1 &&\n    at[2].x === 2 &&\n    at[2].y === -2 &&\n    at[3].x === -2 &&\n    at[3].y === -2\n  ) {\n    return decodeBitmapTemplate0(width, height, decodingContext);\n  }\n\n  const useskip = !!skip;\n  const template = CodingTemplates[templateIndex].concat(at);\n\n  // Sorting is non-standard, and it is not required. But sorting increases\n  // the number of template bits that can be reused from the previous\n  // contextLabel in the main loop.\n  template.sort(function (a, b) {\n    return a.y - b.y || a.x - b.x;\n  });\n\n  const templateLength = template.length;\n  const templateX = new Int8Array(templateLength);\n  const templateY = new Int8Array(templateLength);\n  const changingTemplateEntries = [];\n  let reuseMask = 0,\n    minX = 0,\n    maxX = 0,\n    minY = 0;\n  let c, k;\n\n  for (k = 0; k < templateLength; k++) {\n    templateX[k] = template[k].x;\n    templateY[k] = template[k].y;\n    minX = Math.min(minX, template[k].x);\n    maxX = Math.max(maxX, template[k].x);\n    minY = Math.min(minY, template[k].y);\n    // Check if the template pixel appears in two consecutive context labels,\n    // so it can be reused. Otherwise, we add it to the list of changing\n    // template entries.\n    if (\n      k < templateLength - 1 &&\n      template[k].y === template[k + 1].y &&\n      template[k].x === template[k + 1].x - 1\n    ) {\n      reuseMask |= 1 << (templateLength - 1 - k);\n    } else {\n      changingTemplateEntries.push(k);\n    }\n  }\n  const changingEntriesLength = changingTemplateEntries.length;\n\n  const changingTemplateX = new Int8Array(changingEntriesLength);\n  const changingTemplateY = new Int8Array(changingEntriesLength);\n  const changingTemplateBit = new Uint16Array(changingEntriesLength);\n  for (c = 0; c < changingEntriesLength; c++) {\n    k = changingTemplateEntries[c];\n    changingTemplateX[c] = template[k].x;\n    changingTemplateY[c] = template[k].y;\n    changingTemplateBit[c] = 1 << (templateLength - 1 - k);\n  }\n\n  // Get the safe bounding box edges from the width, height, minX, maxX, minY\n  const sbb_left = -minX;\n  const sbb_top = -minY;\n  const sbb_right = width - maxX;\n\n  const pseudoPixelContext = ReusedContexts[templateIndex];\n  let row = new Uint8Array(width);\n  const bitmap = [];\n\n  const decoder = decodingContext.decoder;\n  const contexts = decodingContext.contextCache.getContexts(\"GB\");\n\n  let ltp = 0,\n    j,\n    i0,\n    j0,\n    contextLabel = 0,\n    bit,\n    shift;\n  for (let i = 0; i < height; i++) {\n    if (prediction) {\n      const sltp = decoder.readBit(contexts, pseudoPixelContext);\n      ltp ^= sltp;\n      if (ltp) {\n        bitmap.push(row); // duplicate previous row\n        continue;\n      }\n    }\n    row = new Uint8Array(row);\n    bitmap.push(row);\n    for (j = 0; j < width; j++) {\n      if (useskip && skip[i][j]) {\n        row[j] = 0;\n        continue;\n      }\n      // Are we in the middle of a scanline, so we can reuse contextLabel\n      // bits?\n      if (j >= sbb_left && j < sbb_right && i >= sbb_top) {\n        // If yes, we can just shift the bits that are reusable and only\n        // fetch the remaining ones.\n        contextLabel = (contextLabel << 1) & reuseMask;\n        for (k = 0; k < changingEntriesLength; k++) {\n          i0 = i + changingTemplateY[k];\n          j0 = j + changingTemplateX[k];\n          bit = bitmap[i0][j0];\n          if (bit) {\n            bit = changingTemplateBit[k];\n            contextLabel |= bit;\n          }\n        }\n      } else {\n        // compute the contextLabel from scratch\n        contextLabel = 0;\n        shift = templateLength - 1;\n        for (k = 0; k < templateLength; k++, shift--) {\n          j0 = j + templateX[k];\n          if (j0 >= 0 && j0 < width) {\n            i0 = i + templateY[k];\n            if (i0 >= 0) {\n              bit = bitmap[i0][j0];\n              if (bit) {\n                contextLabel |= bit << shift;\n              }\n            }\n          }\n        }\n      }\n      const pixel = decoder.readBit(contexts, contextLabel);\n      row[j] = pixel;\n    }\n  }\n  return bitmap;\n}\n\n// 6.3.2 Generic Refinement Region Decoding Procedure\nfunction decodeRefinement(\n  width,\n  height,\n  templateIndex,\n  referenceBitmap,\n  offsetX,\n  offsetY,\n  prediction,\n  at,\n  decodingContext\n) {\n  let codingTemplate = RefinementTemplates[templateIndex].coding;\n  if (templateIndex === 0) {\n    codingTemplate = codingTemplate.concat([at[0]]);\n  }\n  const codingTemplateLength = codingTemplate.length;\n  const codingTemplateX = new Int32Array(codingTemplateLength);\n  const codingTemplateY = new Int32Array(codingTemplateLength);\n  let k;\n  for (k = 0; k < codingTemplateLength; k++) {\n    codingTemplateX[k] = codingTemplate[k].x;\n    codingTemplateY[k] = codingTemplate[k].y;\n  }\n\n  let referenceTemplate = RefinementTemplates[templateIndex].reference;\n  if (templateIndex === 0) {\n    referenceTemplate = referenceTemplate.concat([at[1]]);\n  }\n  const referenceTemplateLength = referenceTemplate.length;\n  const referenceTemplateX = new Int32Array(referenceTemplateLength);\n  const referenceTemplateY = new Int32Array(referenceTemplateLength);\n  for (k = 0; k < referenceTemplateLength; k++) {\n    referenceTemplateX[k] = referenceTemplate[k].x;\n    referenceTemplateY[k] = referenceTemplate[k].y;\n  }\n  const referenceWidth = referenceBitmap[0].length;\n  const referenceHeight = referenceBitmap.length;\n\n  const pseudoPixelContext = RefinementReusedContexts[templateIndex];\n  const bitmap = [];\n\n  const decoder = decodingContext.decoder;\n  const contexts = decodingContext.contextCache.getContexts(\"GR\");\n\n  let ltp = 0;\n  for (let i = 0; i < height; i++) {\n    if (prediction) {\n      const sltp = decoder.readBit(contexts, pseudoPixelContext);\n      ltp ^= sltp;\n      if (ltp) {\n        throw new Jbig2Error(\"prediction is not supported\");\n      }\n    }\n    const row = new Uint8Array(width);\n    bitmap.push(row);\n    for (let j = 0; j < width; j++) {\n      let i0, j0;\n      let contextLabel = 0;\n      for (k = 0; k < codingTemplateLength; k++) {\n        i0 = i + codingTemplateY[k];\n        j0 = j + codingTemplateX[k];\n        if (i0 < 0 || j0 < 0 || j0 >= width) {\n          contextLabel <<= 1; // out of bound pixel\n        } else {\n          contextLabel = (contextLabel << 1) | bitmap[i0][j0];\n        }\n      }\n      for (k = 0; k < referenceTemplateLength; k++) {\n        i0 = i + referenceTemplateY[k] - offsetY;\n        j0 = j + referenceTemplateX[k] - offsetX;\n        if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) {\n          contextLabel <<= 1; // out of bound pixel\n        } else {\n          contextLabel = (contextLabel << 1) | referenceBitmap[i0][j0];\n        }\n      }\n      const pixel = decoder.readBit(contexts, contextLabel);\n      row[j] = pixel;\n    }\n  }\n\n  return bitmap;\n}\n\n// 6.5.5 Decoding the symbol dictionary\nfunction decodeSymbolDictionary(\n  huffman,\n  refinement,\n  symbols,\n  numberOfNewSymbols,\n  numberOfExportedSymbols,\n  huffmanTables,\n  templateIndex,\n  at,\n  refinementTemplateIndex,\n  refinementAt,\n  decodingContext,\n  huffmanInput\n) {\n  if (huffman && refinement) {\n    throw new Jbig2Error(\"symbol refinement with Huffman is not supported\");\n  }\n\n  const newSymbols = [];\n  let currentHeight = 0;\n  let symbolCodeLength = log2(symbols.length + numberOfNewSymbols);\n\n  const decoder = decodingContext.decoder;\n  const contextCache = decodingContext.contextCache;\n  let tableB1, symbolWidths;\n  if (huffman) {\n    tableB1 = getStandardTable(1); // standard table B.1\n    symbolWidths = [];\n    symbolCodeLength = Math.max(symbolCodeLength, 1); // 6.5.8.2.3\n  }\n\n  while (newSymbols.length < numberOfNewSymbols) {\n    const deltaHeight = huffman\n      ? huffmanTables.tableDeltaHeight.decode(huffmanInput)\n      : decodeInteger(contextCache, \"IADH\", decoder); // 6.5.6\n    currentHeight += deltaHeight;\n    let currentWidth = 0,\n      totalWidth = 0;\n    const firstSymbol = huffman ? symbolWidths.length : 0;\n    while (true) {\n      const deltaWidth = huffman\n        ? huffmanTables.tableDeltaWidth.decode(huffmanInput)\n        : decodeInteger(contextCache, \"IADW\", decoder); // 6.5.7\n      if (deltaWidth === null) {\n        break; // OOB\n      }\n      currentWidth += deltaWidth;\n      totalWidth += currentWidth;\n      let bitmap;\n      if (refinement) {\n        // 6.5.8.2 Refinement/aggregate-coded symbol bitmap\n        const numberOfInstances = decodeInteger(contextCache, \"IAAI\", decoder);\n        if (numberOfInstances > 1) {\n          bitmap = decodeTextRegion(\n            huffman,\n            refinement,\n            currentWidth,\n            currentHeight,\n            0,\n            numberOfInstances,\n            1, // strip size\n            symbols.concat(newSymbols),\n            symbolCodeLength,\n            0, // transposed\n            0, // ds offset\n            1, // top left 7.4.3.1.1\n            0, // OR operator\n            huffmanTables,\n            refinementTemplateIndex,\n            refinementAt,\n            decodingContext,\n            0,\n            huffmanInput\n          );\n        } else {\n          const symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n          const rdx = decodeInteger(contextCache, \"IARDX\", decoder); // 6.4.11.3\n          const rdy = decodeInteger(contextCache, \"IARDY\", decoder); // 6.4.11.4\n          const symbol =\n            symbolId < symbols.length\n              ? symbols[symbolId]\n              : newSymbols[symbolId - symbols.length];\n          bitmap = decodeRefinement(\n            currentWidth,\n            currentHeight,\n            refinementTemplateIndex,\n            symbol,\n            rdx,\n            rdy,\n            false,\n            refinementAt,\n            decodingContext\n          );\n        }\n        newSymbols.push(bitmap);\n      } else if (huffman) {\n        // Store only symbol width and decode a collective bitmap when the\n        // height class is done.\n        symbolWidths.push(currentWidth);\n      } else {\n        // 6.5.8.1 Direct-coded symbol bitmap\n        bitmap = decodeBitmap(\n          false,\n          currentWidth,\n          currentHeight,\n          templateIndex,\n          false,\n          null,\n          at,\n          decodingContext\n        );\n        newSymbols.push(bitmap);\n      }\n    }\n    if (huffman && !refinement) {\n      // 6.5.9 Height class collective bitmap\n      const bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput);\n      huffmanInput.byteAlign();\n      let collectiveBitmap;\n      if (bitmapSize === 0) {\n        // Uncompressed collective bitmap\n        collectiveBitmap = readUncompressedBitmap(\n          huffmanInput,\n          totalWidth,\n          currentHeight\n        );\n      } else {\n        // MMR collective bitmap\n        const originalEnd = huffmanInput.end;\n        const bitmapEnd = huffmanInput.position + bitmapSize;\n        huffmanInput.end = bitmapEnd;\n        collectiveBitmap = decodeMMRBitmap(\n          huffmanInput,\n          totalWidth,\n          currentHeight,\n          false\n        );\n        huffmanInput.end = originalEnd;\n        huffmanInput.position = bitmapEnd;\n      }\n      const numberOfSymbolsDecoded = symbolWidths.length;\n      if (firstSymbol === numberOfSymbolsDecoded - 1) {\n        // collectiveBitmap is a single symbol.\n        newSymbols.push(collectiveBitmap);\n      } else {\n        // Divide collectiveBitmap into symbols.\n        let i,\n          y,\n          xMin = 0,\n          xMax,\n          bitmapWidth,\n          symbolBitmap;\n        for (i = firstSymbol; i < numberOfSymbolsDecoded; i++) {\n          bitmapWidth = symbolWidths[i];\n          xMax = xMin + bitmapWidth;\n          symbolBitmap = [];\n          for (y = 0; y < currentHeight; y++) {\n            symbolBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n          }\n          newSymbols.push(symbolBitmap);\n          xMin = xMax;\n        }\n      }\n    }\n  }\n\n  // 6.5.10 Exported symbols\n  const exportedSymbols = [],\n    flags = [];\n  let currentFlag = false,\n    i,\n    ii;\n  const totalSymbolsLength = symbols.length + numberOfNewSymbols;\n  while (flags.length < totalSymbolsLength) {\n    let runLength = huffman\n      ? tableB1.decode(huffmanInput)\n      : decodeInteger(contextCache, \"IAEX\", decoder);\n    while (runLength--) {\n      flags.push(currentFlag);\n    }\n    currentFlag = !currentFlag;\n  }\n  for (i = 0, ii = symbols.length; i < ii; i++) {\n    if (flags[i]) {\n      exportedSymbols.push(symbols[i]);\n    }\n  }\n  for (let j = 0; j < numberOfNewSymbols; i++, j++) {\n    if (flags[i]) {\n      exportedSymbols.push(newSymbols[j]);\n    }\n  }\n  return exportedSymbols;\n}\n\nfunction decodeTextRegion(\n  huffman,\n  refinement,\n  width,\n  height,\n  defaultPixelValue,\n  numberOfSymbolInstances,\n  stripSize,\n  inputSymbols,\n  symbolCodeLength,\n  transposed,\n  dsOffset,\n  referenceCorner,\n  combinationOperator,\n  huffmanTables,\n  refinementTemplateIndex,\n  refinementAt,\n  decodingContext,\n  logStripSize,\n  huffmanInput\n) {\n  if (huffman && refinement) {\n    throw new Jbig2Error(\"refinement with Huffman is not supported\");\n  }\n\n  // Prepare bitmap\n  const bitmap = [];\n  let i, row;\n  for (i = 0; i < height; i++) {\n    row = new Uint8Array(width);\n    if (defaultPixelValue) {\n      for (let j = 0; j < width; j++) {\n        row[j] = defaultPixelValue;\n      }\n    }\n    bitmap.push(row);\n  }\n\n  const decoder = decodingContext.decoder;\n  const contextCache = decodingContext.contextCache;\n\n  let stripT = huffman\n    ? -huffmanTables.tableDeltaT.decode(huffmanInput)\n    : -decodeInteger(contextCache, \"IADT\", decoder); // 6.4.6\n  let firstS = 0;\n  i = 0;\n  while (i < numberOfSymbolInstances) {\n    const deltaT = huffman\n      ? huffmanTables.tableDeltaT.decode(huffmanInput)\n      : decodeInteger(contextCache, \"IADT\", decoder); // 6.4.6\n    stripT += deltaT;\n\n    const deltaFirstS = huffman\n      ? huffmanTables.tableFirstS.decode(huffmanInput)\n      : decodeInteger(contextCache, \"IAFS\", decoder); // 6.4.7\n    firstS += deltaFirstS;\n    let currentS = firstS;\n    do {\n      let currentT = 0; // 6.4.9\n      if (stripSize > 1) {\n        currentT = huffman\n          ? huffmanInput.readBits(logStripSize)\n          : decodeInteger(contextCache, \"IAIT\", decoder);\n      }\n      const t = stripSize * stripT + currentT;\n      const symbolId = huffman\n        ? huffmanTables.symbolIDTable.decode(huffmanInput)\n        : decodeIAID(contextCache, decoder, symbolCodeLength);\n      const applyRefinement =\n        refinement &&\n        (huffman\n          ? huffmanInput.readBit()\n          : decodeInteger(contextCache, \"IARI\", decoder));\n      let symbolBitmap = inputSymbols[symbolId];\n      let symbolWidth = symbolBitmap[0].length;\n      let symbolHeight = symbolBitmap.length;\n      if (applyRefinement) {\n        const rdw = decodeInteger(contextCache, \"IARDW\", decoder); // 6.4.11.1\n        const rdh = decodeInteger(contextCache, \"IARDH\", decoder); // 6.4.11.2\n        const rdx = decodeInteger(contextCache, \"IARDX\", decoder); // 6.4.11.3\n        const rdy = decodeInteger(contextCache, \"IARDY\", decoder); // 6.4.11.4\n        symbolWidth += rdw;\n        symbolHeight += rdh;\n        symbolBitmap = decodeRefinement(\n          symbolWidth,\n          symbolHeight,\n          refinementTemplateIndex,\n          symbolBitmap,\n          (rdw >> 1) + rdx,\n          (rdh >> 1) + rdy,\n          false,\n          refinementAt,\n          decodingContext\n        );\n      }\n      const offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight - 1);\n      const offsetS = currentS - (referenceCorner & 2 ? symbolWidth - 1 : 0);\n      let s2, t2, symbolRow;\n      if (transposed) {\n        // Place Symbol Bitmap from T1,S1\n        for (s2 = 0; s2 < symbolHeight; s2++) {\n          row = bitmap[offsetS + s2];\n          if (!row) {\n            continue;\n          }\n          symbolRow = symbolBitmap[s2];\n          // To ignore Parts of Symbol bitmap which goes\n          // outside bitmap region\n          const maxWidth = Math.min(width - offsetT, symbolWidth);\n          switch (combinationOperator) {\n            case 0: // OR\n              for (t2 = 0; t2 < maxWidth; t2++) {\n                row[offsetT + t2] |= symbolRow[t2];\n              }\n              break;\n            case 2: // XOR\n              for (t2 = 0; t2 < maxWidth; t2++) {\n                row[offsetT + t2] ^= symbolRow[t2];\n              }\n              break;\n            default:\n              throw new Jbig2Error(\n                `operator ${combinationOperator} is not supported`\n              );\n          }\n        }\n        currentS += symbolHeight - 1;\n      } else {\n        for (t2 = 0; t2 < symbolHeight; t2++) {\n          row = bitmap[offsetT + t2];\n          if (!row) {\n            continue;\n          }\n          symbolRow = symbolBitmap[t2];\n          switch (combinationOperator) {\n            case 0: // OR\n              for (s2 = 0; s2 < symbolWidth; s2++) {\n                row[offsetS + s2] |= symbolRow[s2];\n              }\n              break;\n            case 2: // XOR\n              for (s2 = 0; s2 < symbolWidth; s2++) {\n                row[offsetS + s2] ^= symbolRow[s2];\n              }\n              break;\n            default:\n              throw new Jbig2Error(\n                `operator ${combinationOperator} is not supported`\n              );\n          }\n        }\n        currentS += symbolWidth - 1;\n      }\n      i++;\n      const deltaS = huffman\n        ? huffmanTables.tableDeltaS.decode(huffmanInput)\n        : decodeInteger(contextCache, \"IADS\", decoder); // 6.4.8\n      if (deltaS === null) {\n        break; // OOB\n      }\n      currentS += deltaS + dsOffset;\n    } while (true);\n  }\n  return bitmap;\n}\n\nfunction decodePatternDictionary(\n  mmr,\n  patternWidth,\n  patternHeight,\n  maxPatternIndex,\n  template,\n  decodingContext\n) {\n  const at = [];\n  if (!mmr) {\n    at.push({\n      x: -patternWidth,\n      y: 0,\n    });\n    if (template === 0) {\n      at.push(\n        {\n          x: -3,\n          y: -1,\n        },\n        {\n          x: 2,\n          y: -2,\n        },\n        {\n          x: -2,\n          y: -2,\n        }\n      );\n    }\n  }\n  const collectiveWidth = (maxPatternIndex + 1) * patternWidth;\n  const collectiveBitmap = decodeBitmap(\n    mmr,\n    collectiveWidth,\n    patternHeight,\n    template,\n    false,\n    null,\n    at,\n    decodingContext\n  );\n  // Divide collective bitmap into patterns.\n  const patterns = [];\n  for (let i = 0; i <= maxPatternIndex; i++) {\n    const patternBitmap = [];\n    const xMin = patternWidth * i;\n    const xMax = xMin + patternWidth;\n    for (let y = 0; y < patternHeight; y++) {\n      patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n    }\n    patterns.push(patternBitmap);\n  }\n  return patterns;\n}\n\nfunction decodeHalftoneRegion(\n  mmr,\n  patterns,\n  template,\n  regionWidth,\n  regionHeight,\n  defaultPixelValue,\n  enableSkip,\n  combinationOperator,\n  gridWidth,\n  gridHeight,\n  gridOffsetX,\n  gridOffsetY,\n  gridVectorX,\n  gridVectorY,\n  decodingContext\n) {\n  const skip = null;\n  if (enableSkip) {\n    throw new Jbig2Error(\"skip is not supported\");\n  }\n  if (combinationOperator !== 0) {\n    throw new Jbig2Error(\n      `operator \"${combinationOperator}\" is not supported in halftone region`\n    );\n  }\n\n  // Prepare bitmap.\n  const regionBitmap = [];\n  let i, j, row;\n  for (i = 0; i < regionHeight; i++) {\n    row = new Uint8Array(regionWidth);\n    if (defaultPixelValue) {\n      for (j = 0; j < regionWidth; j++) {\n        row[j] = defaultPixelValue;\n      }\n    }\n    regionBitmap.push(row);\n  }\n\n  const numberOfPatterns = patterns.length;\n  const pattern0 = patterns[0];\n  const patternWidth = pattern0[0].length,\n    patternHeight = pattern0.length;\n  const bitsPerValue = log2(numberOfPatterns);\n  const at = [];\n  if (!mmr) {\n    at.push({\n      x: template <= 1 ? 3 : 2,\n      y: -1,\n    });\n    if (template === 0) {\n      at.push(\n        {\n          x: -3,\n          y: -1,\n        },\n        {\n          x: 2,\n          y: -2,\n        },\n        {\n          x: -2,\n          y: -2,\n        }\n      );\n    }\n  }\n  // Annex C. Gray-scale Image Decoding Procedure.\n  const grayScaleBitPlanes = [];\n  let mmrInput, bitmap;\n  if (mmr) {\n    // MMR bit planes are in one continuous stream. Only EOFB codes indicate\n    // the end of each bitmap, so EOFBs must be decoded.\n    mmrInput = new Reader(\n      decodingContext.data,\n      decodingContext.start,\n      decodingContext.end\n    );\n  }\n  for (i = bitsPerValue - 1; i >= 0; i--) {\n    if (mmr) {\n      bitmap = decodeMMRBitmap(mmrInput, gridWidth, gridHeight, true);\n    } else {\n      bitmap = decodeBitmap(\n        false,\n        gridWidth,\n        gridHeight,\n        template,\n        false,\n        skip,\n        at,\n        decodingContext\n      );\n    }\n    grayScaleBitPlanes[i] = bitmap;\n  }\n  // 6.6.5.2 Rendering the patterns.\n  let mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow;\n  for (mg = 0; mg < gridHeight; mg++) {\n    for (ng = 0; ng < gridWidth; ng++) {\n      bit = 0;\n      patternIndex = 0;\n      for (j = bitsPerValue - 1; j >= 0; j--) {\n        bit ^= grayScaleBitPlanes[j][mg][ng]; // Gray decoding\n        patternIndex |= bit << j;\n      }\n      patternBitmap = patterns[patternIndex];\n      x = (gridOffsetX + mg * gridVectorY + ng * gridVectorX) >> 8;\n      y = (gridOffsetY + mg * gridVectorX - ng * gridVectorY) >> 8;\n      // Draw patternBitmap at (x, y).\n      if (\n        x >= 0 &&\n        x + patternWidth <= regionWidth &&\n        y >= 0 &&\n        y + patternHeight <= regionHeight\n      ) {\n        for (i = 0; i < patternHeight; i++) {\n          regionRow = regionBitmap[y + i];\n          patternRow = patternBitmap[i];\n          for (j = 0; j < patternWidth; j++) {\n            regionRow[x + j] |= patternRow[j];\n          }\n        }\n      } else {\n        let regionX, regionY;\n        for (i = 0; i < patternHeight; i++) {\n          regionY = y + i;\n          if (regionY < 0 || regionY >= regionHeight) {\n            continue;\n          }\n          regionRow = regionBitmap[regionY];\n          patternRow = patternBitmap[i];\n          for (j = 0; j < patternWidth; j++) {\n            regionX = x + j;\n            if (regionX >= 0 && regionX < regionWidth) {\n              regionRow[regionX] |= patternRow[j];\n            }\n          }\n        }\n      }\n    }\n  }\n  return regionBitmap;\n}\n\nfunction readSegmentHeader(data, start) {\n  const segmentHeader = {};\n  segmentHeader.number = readUint32(data, start);\n  const flags = data[start + 4];\n  const segmentType = flags & 0x3f;\n  if (!SegmentTypes[segmentType]) {\n    throw new Jbig2Error(\"invalid segment type: \" + segmentType);\n  }\n  segmentHeader.type = segmentType;\n  segmentHeader.typeName = SegmentTypes[segmentType];\n  segmentHeader.deferredNonRetain = !!(flags & 0x80);\n\n  const pageAssociationFieldSize = !!(flags & 0x40);\n  const referredFlags = data[start + 5];\n  let referredToCount = (referredFlags >> 5) & 7;\n  const retainBits = [referredFlags & 31];\n  let position = start + 6;\n  if (referredFlags === 7) {\n    referredToCount = readUint32(data, position - 1) & 0x1fffffff;\n    position += 3;\n    let bytes = (referredToCount + 7) >> 3;\n    retainBits[0] = data[position++];\n    while (--bytes > 0) {\n      retainBits.push(data[position++]);\n    }\n  } else if (referredFlags === 5 || referredFlags === 6) {\n    throw new Jbig2Error(\"invalid referred-to flags\");\n  }\n\n  segmentHeader.retainBits = retainBits;\n\n  let referredToSegmentNumberSize = 4;\n  if (segmentHeader.number <= 256) {\n    referredToSegmentNumberSize = 1;\n  } else if (segmentHeader.number <= 65536) {\n    referredToSegmentNumberSize = 2;\n  }\n  const referredTo = [];\n  let i, ii;\n  for (i = 0; i < referredToCount; i++) {\n    let number;\n    if (referredToSegmentNumberSize === 1) {\n      number = data[position];\n    } else if (referredToSegmentNumberSize === 2) {\n      number = readUint16(data, position);\n    } else {\n      number = readUint32(data, position);\n    }\n    referredTo.push(number);\n    position += referredToSegmentNumberSize;\n  }\n  segmentHeader.referredTo = referredTo;\n  if (!pageAssociationFieldSize) {\n    segmentHeader.pageAssociation = data[position++];\n  } else {\n    segmentHeader.pageAssociation = readUint32(data, position);\n    position += 4;\n  }\n  segmentHeader.length = readUint32(data, position);\n  position += 4;\n\n  if (segmentHeader.length === 0xffffffff) {\n    // 7.2.7 Segment data length, unknown segment length\n    if (segmentType === 38) {\n      // ImmediateGenericRegion\n      const genericRegionInfo = readRegionSegmentInformation(data, position);\n      const genericRegionSegmentFlags =\n        data[position + RegionSegmentInformationFieldLength];\n      const genericRegionMmr = !!(genericRegionSegmentFlags & 1);\n      // searching for the segment end\n      const searchPatternLength = 6;\n      const searchPattern = new Uint8Array(searchPatternLength);\n      if (!genericRegionMmr) {\n        searchPattern[0] = 0xff;\n        searchPattern[1] = 0xac;\n      }\n      searchPattern[2] = (genericRegionInfo.height >>> 24) & 0xff;\n      searchPattern[3] = (genericRegionInfo.height >> 16) & 0xff;\n      searchPattern[4] = (genericRegionInfo.height >> 8) & 0xff;\n      searchPattern[5] = genericRegionInfo.height & 0xff;\n      for (i = position, ii = data.length; i < ii; i++) {\n        let j = 0;\n        while (j < searchPatternLength && searchPattern[j] === data[i + j]) {\n          j++;\n        }\n        if (j === searchPatternLength) {\n          segmentHeader.length = i + searchPatternLength;\n          break;\n        }\n      }\n      if (segmentHeader.length === 0xffffffff) {\n        throw new Jbig2Error(\"segment end was not found\");\n      }\n    } else {\n      throw new Jbig2Error(\"invalid unknown segment length\");\n    }\n  }\n  segmentHeader.headerEnd = position;\n  return segmentHeader;\n}\n\nfunction readSegments(header, data, start, end) {\n  const segments = [];\n  let position = start;\n  while (position < end) {\n    const segmentHeader = readSegmentHeader(data, position);\n    position = segmentHeader.headerEnd;\n    const segment = {\n      header: segmentHeader,\n      data,\n    };\n    if (!header.randomAccess) {\n      segment.start = position;\n      position += segmentHeader.length;\n      segment.end = position;\n    }\n    segments.push(segment);\n    if (segmentHeader.type === 51) {\n      break; // end of file is found\n    }\n  }\n  if (header.randomAccess) {\n    for (let i = 0, ii = segments.length; i < ii; i++) {\n      segments[i].start = position;\n      position += segments[i].header.length;\n      segments[i].end = position;\n    }\n  }\n  return segments;\n}\n\n// 7.4.1 Region segment information field\nfunction readRegionSegmentInformation(data, start) {\n  return {\n    width: readUint32(data, start),\n    height: readUint32(data, start + 4),\n    x: readUint32(data, start + 8),\n    y: readUint32(data, start + 12),\n    combinationOperator: data[start + 16] & 7,\n  };\n}\nconst RegionSegmentInformationFieldLength = 17;\n\nfunction processSegment(segment, visitor) {\n  const header = segment.header;\n\n  const data = segment.data,\n    end = segment.end;\n  let position = segment.start;\n  let args, at, i, atLength;\n  switch (header.type) {\n    case 0: // SymbolDictionary\n      // 7.4.2 Symbol dictionary segment syntax\n      const dictionary = {};\n      const dictionaryFlags = readUint16(data, position); // 7.4.2.1.1\n      dictionary.huffman = !!(dictionaryFlags & 1);\n      dictionary.refinement = !!(dictionaryFlags & 2);\n      dictionary.huffmanDHSelector = (dictionaryFlags >> 2) & 3;\n      dictionary.huffmanDWSelector = (dictionaryFlags >> 4) & 3;\n      dictionary.bitmapSizeSelector = (dictionaryFlags >> 6) & 1;\n      dictionary.aggregationInstancesSelector = (dictionaryFlags >> 7) & 1;\n      dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256);\n      dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512);\n      dictionary.template = (dictionaryFlags >> 10) & 3;\n      dictionary.refinementTemplate = (dictionaryFlags >> 12) & 1;\n      position += 2;\n      if (!dictionary.huffman) {\n        atLength = dictionary.template === 0 ? 4 : 1;\n        at = [];\n        for (i = 0; i < atLength; i++) {\n          at.push({\n            x: readInt8(data, position),\n            y: readInt8(data, position + 1),\n          });\n          position += 2;\n        }\n        dictionary.at = at;\n      }\n      if (dictionary.refinement && !dictionary.refinementTemplate) {\n        at = [];\n        for (i = 0; i < 2; i++) {\n          at.push({\n            x: readInt8(data, position),\n            y: readInt8(data, position + 1),\n          });\n          position += 2;\n        }\n        dictionary.refinementAt = at;\n      }\n      dictionary.numberOfExportedSymbols = readUint32(data, position);\n      position += 4;\n      dictionary.numberOfNewSymbols = readUint32(data, position);\n      position += 4;\n      args = [\n        dictionary,\n        header.number,\n        header.referredTo,\n        data,\n        position,\n        end,\n      ];\n      break;\n    case 6: // ImmediateTextRegion\n    case 7: // ImmediateLosslessTextRegion\n      const textRegion = {};\n      textRegion.info = readRegionSegmentInformation(data, position);\n      position += RegionSegmentInformationFieldLength;\n      const textRegionSegmentFlags = readUint16(data, position);\n      position += 2;\n      textRegion.huffman = !!(textRegionSegmentFlags & 1);\n      textRegion.refinement = !!(textRegionSegmentFlags & 2);\n      textRegion.logStripSize = (textRegionSegmentFlags >> 2) & 3;\n      textRegion.stripSize = 1 << textRegion.logStripSize;\n      textRegion.referenceCorner = (textRegionSegmentFlags >> 4) & 3;\n      textRegion.transposed = !!(textRegionSegmentFlags & 64);\n      textRegion.combinationOperator = (textRegionSegmentFlags >> 7) & 3;\n      textRegion.defaultPixelValue = (textRegionSegmentFlags >> 9) & 1;\n      textRegion.dsOffset = (textRegionSegmentFlags << 17) >> 27;\n      textRegion.refinementTemplate = (textRegionSegmentFlags >> 15) & 1;\n      if (textRegion.huffman) {\n        const textRegionHuffmanFlags = readUint16(data, position);\n        position += 2;\n        textRegion.huffmanFS = textRegionHuffmanFlags & 3;\n        textRegion.huffmanDS = (textRegionHuffmanFlags >> 2) & 3;\n        textRegion.huffmanDT = (textRegionHuffmanFlags >> 4) & 3;\n        textRegion.huffmanRefinementDW = (textRegionHuffmanFlags >> 6) & 3;\n        textRegion.huffmanRefinementDH = (textRegionHuffmanFlags >> 8) & 3;\n        textRegion.huffmanRefinementDX = (textRegionHuffmanFlags >> 10) & 3;\n        textRegion.huffmanRefinementDY = (textRegionHuffmanFlags >> 12) & 3;\n        textRegion.huffmanRefinementSizeSelector = !!(\n          textRegionHuffmanFlags & 0x4000\n        );\n      }\n      if (textRegion.refinement && !textRegion.refinementTemplate) {\n        at = [];\n        for (i = 0; i < 2; i++) {\n          at.push({\n            x: readInt8(data, position),\n            y: readInt8(data, position + 1),\n          });\n          position += 2;\n        }\n        textRegion.refinementAt = at;\n      }\n      textRegion.numberOfSymbolInstances = readUint32(data, position);\n      position += 4;\n      args = [textRegion, header.referredTo, data, position, end];\n      break;\n    case 16: // PatternDictionary\n      // 7.4.4. Pattern dictionary segment syntax\n      const patternDictionary = {};\n      const patternDictionaryFlags = data[position++];\n      patternDictionary.mmr = !!(patternDictionaryFlags & 1);\n      patternDictionary.template = (patternDictionaryFlags >> 1) & 3;\n      patternDictionary.patternWidth = data[position++];\n      patternDictionary.patternHeight = data[position++];\n      patternDictionary.maxPatternIndex = readUint32(data, position);\n      position += 4;\n      args = [patternDictionary, header.number, data, position, end];\n      break;\n    case 22: // ImmediateHalftoneRegion\n    case 23: // ImmediateLosslessHalftoneRegion\n      // 7.4.5 Halftone region segment syntax\n      const halftoneRegion = {};\n      halftoneRegion.info = readRegionSegmentInformation(data, position);\n      position += RegionSegmentInformationFieldLength;\n      const halftoneRegionFlags = data[position++];\n      halftoneRegion.mmr = !!(halftoneRegionFlags & 1);\n      halftoneRegion.template = (halftoneRegionFlags >> 1) & 3;\n      halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8);\n      halftoneRegion.combinationOperator = (halftoneRegionFlags >> 4) & 7;\n      halftoneRegion.defaultPixelValue = (halftoneRegionFlags >> 7) & 1;\n      halftoneRegion.gridWidth = readUint32(data, position);\n      position += 4;\n      halftoneRegion.gridHeight = readUint32(data, position);\n      position += 4;\n      halftoneRegion.gridOffsetX = readUint32(data, position) & 0xffffffff;\n      position += 4;\n      halftoneRegion.gridOffsetY = readUint32(data, position) & 0xffffffff;\n      position += 4;\n      halftoneRegion.gridVectorX = readUint16(data, position);\n      position += 2;\n      halftoneRegion.gridVectorY = readUint16(data, position);\n      position += 2;\n      args = [halftoneRegion, header.referredTo, data, position, end];\n      break;\n    case 38: // ImmediateGenericRegion\n    case 39: // ImmediateLosslessGenericRegion\n      const genericRegion = {};\n      genericRegion.info = readRegionSegmentInformation(data, position);\n      position += RegionSegmentInformationFieldLength;\n      const genericRegionSegmentFlags = data[position++];\n      genericRegion.mmr = !!(genericRegionSegmentFlags & 1);\n      genericRegion.template = (genericRegionSegmentFlags >> 1) & 3;\n      genericRegion.prediction = !!(genericRegionSegmentFlags & 8);\n      if (!genericRegion.mmr) {\n        atLength = genericRegion.template === 0 ? 4 : 1;\n        at = [];\n        for (i = 0; i < atLength; i++) {\n          at.push({\n            x: readInt8(data, position),\n            y: readInt8(data, position + 1),\n          });\n          position += 2;\n        }\n        genericRegion.at = at;\n      }\n      args = [genericRegion, data, position, end];\n      break;\n    case 48: // PageInformation\n      const pageInfo = {\n        width: readUint32(data, position),\n        height: readUint32(data, position + 4),\n        resolutionX: readUint32(data, position + 8),\n        resolutionY: readUint32(data, position + 12),\n      };\n      if (pageInfo.height === 0xffffffff) {\n        delete pageInfo.height;\n      }\n      const pageSegmentFlags = data[position + 16];\n      readUint16(data, position + 17); // pageStripingInformation\n      pageInfo.lossless = !!(pageSegmentFlags & 1);\n      pageInfo.refinement = !!(pageSegmentFlags & 2);\n      pageInfo.defaultPixelValue = (pageSegmentFlags >> 2) & 1;\n      pageInfo.combinationOperator = (pageSegmentFlags >> 3) & 3;\n      pageInfo.requiresBuffer = !!(pageSegmentFlags & 32);\n      pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64);\n      args = [pageInfo];\n      break;\n    case 49: // EndOfPage\n      break;\n    case 50: // EndOfStripe\n      break;\n    case 51: // EndOfFile\n      break;\n    case 53: // Tables\n      args = [header.number, data, position, end];\n      break;\n    case 62: // 7.4.15 defines 2 extension types which\n      // are comments and can be ignored.\n      break;\n    default:\n      throw new Jbig2Error(\n        `segment type ${header.typeName}(${header.type}) is not implemented`\n      );\n  }\n  const callbackName = \"on\" + header.typeName;\n  if (callbackName in visitor) {\n    // eslint-disable-next-line prefer-spread\n    visitor[callbackName].apply(visitor, args);\n  }\n}\n\nfunction processSegments(segments, visitor) {\n  for (let i = 0, ii = segments.length; i < ii; i++) {\n    processSegment(segments[i], visitor);\n  }\n}\n\nfunction parseJbig2Chunks(chunks) {\n  const visitor = new SimpleSegmentVisitor();\n  for (let i = 0, ii = chunks.length; i < ii; i++) {\n    const chunk = chunks[i];\n    const segments = readSegments({}, chunk.data, chunk.start, chunk.end);\n    processSegments(segments, visitor);\n  }\n  return visitor.buffer;\n}\n\nfunction parseJbig2(data) {\n  if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"IMAGE_DECODERS\")) {\n    throw new Error(\"Not implemented: parseJbig2\");\n  }\n  const end = data.length;\n  let position = 0;\n\n  if (\n    data[position] !== 0x97 ||\n    data[position + 1] !== 0x4a ||\n    data[position + 2] !== 0x42 ||\n    data[position + 3] !== 0x32 ||\n    data[position + 4] !== 0x0d ||\n    data[position + 5] !== 0x0a ||\n    data[position + 6] !== 0x1a ||\n    data[position + 7] !== 0x0a\n  ) {\n    throw new Jbig2Error(\"parseJbig2 - invalid header.\");\n  }\n\n  const header = Object.create(null);\n  position += 8;\n  const flags = data[position++];\n  header.randomAccess = !(flags & 1);\n  if (!(flags & 2)) {\n    header.numberOfPages = readUint32(data, position);\n    position += 4;\n  }\n\n  const segments = readSegments(header, data, position, end);\n  const visitor = new SimpleSegmentVisitor();\n  processSegments(segments, visitor);\n\n  const { width, height } = visitor.currentPageInfo;\n  const bitPacked = visitor.buffer;\n  const imgData = new Uint8ClampedArray(width * height);\n  let q = 0,\n    k = 0;\n  for (let i = 0; i < height; i++) {\n    let mask = 0,\n      buffer;\n    for (let j = 0; j < width; j++) {\n      if (!mask) {\n        mask = 128;\n        buffer = bitPacked[k++];\n      }\n      imgData[q++] = buffer & mask ? 0 : 255;\n      mask >>= 1;\n    }\n  }\n\n  return { imgData, width, height };\n}\n\nclass SimpleSegmentVisitor {\n  onPageInformation(info) {\n    this.currentPageInfo = info;\n    const rowSize = (info.width + 7) >> 3;\n    const buffer = new Uint8ClampedArray(rowSize * info.height);\n    // The contents of ArrayBuffers are initialized to 0.\n    // Fill the buffer with 0xFF only if info.defaultPixelValue is set\n    if (info.defaultPixelValue) {\n      buffer.fill(0xff);\n    }\n    this.buffer = buffer;\n  }\n\n  drawBitmap(regionInfo, bitmap) {\n    const pageInfo = this.currentPageInfo;\n    const width = regionInfo.width,\n      height = regionInfo.height;\n    const rowSize = (pageInfo.width + 7) >> 3;\n    const combinationOperator = pageInfo.combinationOperatorOverride\n      ? regionInfo.combinationOperator\n      : pageInfo.combinationOperator;\n    const buffer = this.buffer;\n    const mask0 = 128 >> (regionInfo.x & 7);\n    let offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3);\n    let i, j, mask, offset;\n    switch (combinationOperator) {\n      case 0: // OR\n        for (i = 0; i < height; i++) {\n          mask = mask0;\n          offset = offset0;\n          for (j = 0; j < width; j++) {\n            if (bitmap[i][j]) {\n              buffer[offset] |= mask;\n            }\n            mask >>= 1;\n            if (!mask) {\n              mask = 128;\n              offset++;\n            }\n          }\n          offset0 += rowSize;\n        }\n        break;\n      case 2: // XOR\n        for (i = 0; i < height; i++) {\n          mask = mask0;\n          offset = offset0;\n          for (j = 0; j < width; j++) {\n            if (bitmap[i][j]) {\n              buffer[offset] ^= mask;\n            }\n            mask >>= 1;\n            if (!mask) {\n              mask = 128;\n              offset++;\n            }\n          }\n          offset0 += rowSize;\n        }\n        break;\n      default:\n        throw new Jbig2Error(\n          `operator ${combinationOperator} is not supported`\n        );\n    }\n  }\n\n  onImmediateGenericRegion(region, data, start, end) {\n    const regionInfo = region.info;\n    const decodingContext = new DecodingContext(data, start, end);\n    const bitmap = decodeBitmap(\n      region.mmr,\n      regionInfo.width,\n      regionInfo.height,\n      region.template,\n      region.prediction,\n      null,\n      region.at,\n      decodingContext\n    );\n    this.drawBitmap(regionInfo, bitmap);\n  }\n\n  onImmediateLosslessGenericRegion() {\n    this.onImmediateGenericRegion(...arguments);\n  }\n\n  onSymbolDictionary(\n    dictionary,\n    currentSegment,\n    referredSegments,\n    data,\n    start,\n    end\n  ) {\n    let huffmanTables, huffmanInput;\n    if (dictionary.huffman) {\n      huffmanTables = getSymbolDictionaryHuffmanTables(\n        dictionary,\n        referredSegments,\n        this.customTables\n      );\n      huffmanInput = new Reader(data, start, end);\n    }\n\n    // Combines exported symbols from all referred segments\n    let symbols = this.symbols;\n    if (!symbols) {\n      this.symbols = symbols = {};\n    }\n\n    const inputSymbols = [];\n    for (const referredSegment of referredSegments) {\n      const referredSymbols = symbols[referredSegment];\n      // referredSymbols is undefined when we have a reference to a Tables\n      // segment instead of a SymbolDictionary.\n      if (referredSymbols) {\n        inputSymbols.push(...referredSymbols);\n      }\n    }\n\n    const decodingContext = new DecodingContext(data, start, end);\n    symbols[currentSegment] = decodeSymbolDictionary(\n      dictionary.huffman,\n      dictionary.refinement,\n      inputSymbols,\n      dictionary.numberOfNewSymbols,\n      dictionary.numberOfExportedSymbols,\n      huffmanTables,\n      dictionary.template,\n      dictionary.at,\n      dictionary.refinementTemplate,\n      dictionary.refinementAt,\n      decodingContext,\n      huffmanInput\n    );\n  }\n\n  onImmediateTextRegion(region, referredSegments, data, start, end) {\n    const regionInfo = region.info;\n    let huffmanTables, huffmanInput;\n\n    // Combines exported symbols from all referred segments\n    const symbols = this.symbols;\n    const inputSymbols = [];\n    for (const referredSegment of referredSegments) {\n      const referredSymbols = symbols[referredSegment];\n      // referredSymbols is undefined when we have a reference to a Tables\n      // segment instead of a SymbolDictionary.\n      if (referredSymbols) {\n        inputSymbols.push(...referredSymbols);\n      }\n    }\n    const symbolCodeLength = log2(inputSymbols.length);\n    if (region.huffman) {\n      huffmanInput = new Reader(data, start, end);\n      huffmanTables = getTextRegionHuffmanTables(\n        region,\n        referredSegments,\n        this.customTables,\n        inputSymbols.length,\n        huffmanInput\n      );\n    }\n\n    const decodingContext = new DecodingContext(data, start, end);\n    const bitmap = decodeTextRegion(\n      region.huffman,\n      region.refinement,\n      regionInfo.width,\n      regionInfo.height,\n      region.defaultPixelValue,\n      region.numberOfSymbolInstances,\n      region.stripSize,\n      inputSymbols,\n      symbolCodeLength,\n      region.transposed,\n      region.dsOffset,\n      region.referenceCorner,\n      region.combinationOperator,\n      huffmanTables,\n      region.refinementTemplate,\n      region.refinementAt,\n      decodingContext,\n      region.logStripSize,\n      huffmanInput\n    );\n    this.drawBitmap(regionInfo, bitmap);\n  }\n\n  onImmediateLosslessTextRegion() {\n    this.onImmediateTextRegion(...arguments);\n  }\n\n  onPatternDictionary(dictionary, currentSegment, data, start, end) {\n    let patterns = this.patterns;\n    if (!patterns) {\n      this.patterns = patterns = {};\n    }\n    const decodingContext = new DecodingContext(data, start, end);\n    patterns[currentSegment] = decodePatternDictionary(\n      dictionary.mmr,\n      dictionary.patternWidth,\n      dictionary.patternHeight,\n      dictionary.maxPatternIndex,\n      dictionary.template,\n      decodingContext\n    );\n  }\n\n  onImmediateHalftoneRegion(region, referredSegments, data, start, end) {\n    // HalftoneRegion refers to exactly one PatternDictionary.\n    const patterns = this.patterns[referredSegments[0]];\n    const regionInfo = region.info;\n    const decodingContext = new DecodingContext(data, start, end);\n    const bitmap = decodeHalftoneRegion(\n      region.mmr,\n      patterns,\n      region.template,\n      regionInfo.width,\n      regionInfo.height,\n      region.defaultPixelValue,\n      region.enableSkip,\n      region.combinationOperator,\n      region.gridWidth,\n      region.gridHeight,\n      region.gridOffsetX,\n      region.gridOffsetY,\n      region.gridVectorX,\n      region.gridVectorY,\n      decodingContext\n    );\n    this.drawBitmap(regionInfo, bitmap);\n  }\n\n  onImmediateLosslessHalftoneRegion() {\n    this.onImmediateHalftoneRegion(...arguments);\n  }\n\n  onTables(currentSegment, data, start, end) {\n    let customTables = this.customTables;\n    if (!customTables) {\n      this.customTables = customTables = {};\n    }\n    customTables[currentSegment] = decodeTablesSegment(data, start, end);\n  }\n}\n\nclass HuffmanLine {\n  constructor(lineData) {\n    if (lineData.length === 2) {\n      // OOB line.\n      this.isOOB = true;\n      this.rangeLow = 0;\n      this.prefixLength = lineData[0];\n      this.rangeLength = 0;\n      this.prefixCode = lineData[1];\n      this.isLowerRange = false;\n    } else {\n      // Normal, upper range or lower range line.\n      // Upper range lines are processed like normal lines.\n      this.isOOB = false;\n      this.rangeLow = lineData[0];\n      this.prefixLength = lineData[1];\n      this.rangeLength = lineData[2];\n      this.prefixCode = lineData[3];\n      this.isLowerRange = lineData[4] === \"lower\";\n    }\n  }\n}\n\nclass HuffmanTreeNode {\n  constructor(line) {\n    this.children = [];\n    if (line) {\n      // Leaf node\n      this.isLeaf = true;\n      this.rangeLength = line.rangeLength;\n      this.rangeLow = line.rangeLow;\n      this.isLowerRange = line.isLowerRange;\n      this.isOOB = line.isOOB;\n    } else {\n      // Intermediate or root node\n      this.isLeaf = false;\n    }\n  }\n\n  buildTree(line, shift) {\n    const bit = (line.prefixCode >> shift) & 1;\n    if (shift <= 0) {\n      // Create a leaf node.\n      this.children[bit] = new HuffmanTreeNode(line);\n    } else {\n      // Create an intermediate node and continue recursively.\n      let node = this.children[bit];\n      if (!node) {\n        this.children[bit] = node = new HuffmanTreeNode(null);\n      }\n      node.buildTree(line, shift - 1);\n    }\n  }\n\n  decodeNode(reader) {\n    if (this.isLeaf) {\n      if (this.isOOB) {\n        return null;\n      }\n      const htOffset = reader.readBits(this.rangeLength);\n      return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset);\n    }\n    const node = this.children[reader.readBit()];\n    if (!node) {\n      throw new Jbig2Error(\"invalid Huffman data\");\n    }\n    return node.decodeNode(reader);\n  }\n}\n\nclass HuffmanTable {\n  constructor(lines, prefixCodesDone) {\n    if (!prefixCodesDone) {\n      this.assignPrefixCodes(lines);\n    }\n    // Create Huffman tree.\n    this.rootNode = new HuffmanTreeNode(null);\n    for (let i = 0, ii = lines.length; i < ii; i++) {\n      const line = lines[i];\n      if (line.prefixLength > 0) {\n        this.rootNode.buildTree(line, line.prefixLength - 1);\n      }\n    }\n  }\n\n  decode(reader) {\n    return this.rootNode.decodeNode(reader);\n  }\n\n  assignPrefixCodes(lines) {\n    // Annex B.3 Assigning the prefix codes.\n    const linesLength = lines.length;\n    let prefixLengthMax = 0;\n    for (let i = 0; i < linesLength; i++) {\n      prefixLengthMax = Math.max(prefixLengthMax, lines[i].prefixLength);\n    }\n\n    const histogram = new Uint32Array(prefixLengthMax + 1);\n    for (let i = 0; i < linesLength; i++) {\n      histogram[lines[i].prefixLength]++;\n    }\n    let currentLength = 1,\n      firstCode = 0,\n      currentCode,\n      currentTemp,\n      line;\n    histogram[0] = 0;\n\n    while (currentLength <= prefixLengthMax) {\n      firstCode = (firstCode + histogram[currentLength - 1]) << 1;\n      currentCode = firstCode;\n      currentTemp = 0;\n      while (currentTemp < linesLength) {\n        line = lines[currentTemp];\n        if (line.prefixLength === currentLength) {\n          line.prefixCode = currentCode;\n          currentCode++;\n        }\n        currentTemp++;\n      }\n      currentLength++;\n    }\n  }\n}\n\nfunction decodeTablesSegment(data, start, end) {\n  // Decodes a Tables segment, i.e., a custom Huffman table.\n  // Annex B.2 Code table structure.\n  const flags = data[start];\n  const lowestValue = readUint32(data, start + 1) & 0xffffffff;\n  const highestValue = readUint32(data, start + 5) & 0xffffffff;\n  const reader = new Reader(data, start + 9, end);\n\n  const prefixSizeBits = ((flags >> 1) & 7) + 1;\n  const rangeSizeBits = ((flags >> 4) & 7) + 1;\n  const lines = [];\n  let prefixLength,\n    rangeLength,\n    currentRangeLow = lowestValue;\n\n  // Normal table lines\n  do {\n    prefixLength = reader.readBits(prefixSizeBits);\n    rangeLength = reader.readBits(rangeSizeBits);\n    lines.push(\n      new HuffmanLine([currentRangeLow, prefixLength, rangeLength, 0])\n    );\n    currentRangeLow += 1 << rangeLength;\n  } while (currentRangeLow < highestValue);\n\n  // Lower range table line\n  prefixLength = reader.readBits(prefixSizeBits);\n  lines.push(new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, \"lower\"]));\n\n  // Upper range table line\n  prefixLength = reader.readBits(prefixSizeBits);\n  lines.push(new HuffmanLine([highestValue, prefixLength, 32, 0]));\n\n  if (flags & 1) {\n    // Out-of-band table line\n    prefixLength = reader.readBits(prefixSizeBits);\n    lines.push(new HuffmanLine([prefixLength, 0]));\n  }\n\n  return new HuffmanTable(lines, false);\n}\n\nconst standardTablesCache = {};\n\nfunction getStandardTable(number) {\n  // Annex B.5 Standard Huffman tables.\n  let table = standardTablesCache[number];\n  if (table) {\n    return table;\n  }\n  let lines;\n  switch (number) {\n    case 1:\n      lines = [\n        [0, 1, 4, 0x0],\n        [16, 2, 8, 0x2],\n        [272, 3, 16, 0x6],\n        [65808, 3, 32, 0x7], // upper\n      ];\n      break;\n    case 2:\n      lines = [\n        [0, 1, 0, 0x0],\n        [1, 2, 0, 0x2],\n        [2, 3, 0, 0x6],\n        [3, 4, 3, 0xe],\n        [11, 5, 6, 0x1e],\n        [75, 6, 32, 0x3e], // upper\n        [6, 0x3f], // OOB\n      ];\n      break;\n    case 3:\n      lines = [\n        [-256, 8, 8, 0xfe],\n        [0, 1, 0, 0x0],\n        [1, 2, 0, 0x2],\n        [2, 3, 0, 0x6],\n        [3, 4, 3, 0xe],\n        [11, 5, 6, 0x1e],\n        [-257, 8, 32, 0xff, \"lower\"],\n        [75, 7, 32, 0x7e], // upper\n        [6, 0x3e], // OOB\n      ];\n      break;\n    case 4:\n      lines = [\n        [1, 1, 0, 0x0],\n        [2, 2, 0, 0x2],\n        [3, 3, 0, 0x6],\n        [4, 4, 3, 0xe],\n        [12, 5, 6, 0x1e],\n        [76, 5, 32, 0x1f], // upper\n      ];\n      break;\n    case 5:\n      lines = [\n        [-255, 7, 8, 0x7e],\n        [1, 1, 0, 0x0],\n        [2, 2, 0, 0x2],\n        [3, 3, 0, 0x6],\n        [4, 4, 3, 0xe],\n        [12, 5, 6, 0x1e],\n        [-256, 7, 32, 0x7f, \"lower\"],\n        [76, 6, 32, 0x3e], // upper\n      ];\n      break;\n    case 6:\n      lines = [\n        [-2048, 5, 10, 0x1c],\n        [-1024, 4, 9, 0x8],\n        [-512, 4, 8, 0x9],\n        [-256, 4, 7, 0xa],\n        [-128, 5, 6, 0x1d],\n        [-64, 5, 5, 0x1e],\n        [-32, 4, 5, 0xb],\n        [0, 2, 7, 0x0],\n        [128, 3, 7, 0x2],\n        [256, 3, 8, 0x3],\n        [512, 4, 9, 0xc],\n        [1024, 4, 10, 0xd],\n        [-2049, 6, 32, 0x3e, \"lower\"],\n        [2048, 6, 32, 0x3f], // upper\n      ];\n      break;\n    case 7:\n      lines = [\n        [-1024, 4, 9, 0x8],\n        [-512, 3, 8, 0x0],\n        [-256, 4, 7, 0x9],\n        [-128, 5, 6, 0x1a],\n        [-64, 5, 5, 0x1b],\n        [-32, 4, 5, 0xa],\n        [0, 4, 5, 0xb],\n        [32, 5, 5, 0x1c],\n        [64, 5, 6, 0x1d],\n        [128, 4, 7, 0xc],\n        [256, 3, 8, 0x1],\n        [512, 3, 9, 0x2],\n        [1024, 3, 10, 0x3],\n        [-1025, 5, 32, 0x1e, \"lower\"],\n        [2048, 5, 32, 0x1f], // upper\n      ];\n      break;\n    case 8:\n      lines = [\n        [-15, 8, 3, 0xfc],\n        [-7, 9, 1, 0x1fc],\n        [-5, 8, 1, 0xfd],\n        [-3, 9, 0, 0x1fd],\n        [-2, 7, 0, 0x7c],\n        [-1, 4, 0, 0xa],\n        [0, 2, 1, 0x0],\n        [2, 5, 0, 0x1a],\n        [3, 6, 0, 0x3a],\n        [4, 3, 4, 0x4],\n        [20, 6, 1, 0x3b],\n        [22, 4, 4, 0xb],\n        [38, 4, 5, 0xc],\n        [70, 5, 6, 0x1b],\n        [134, 5, 7, 0x1c],\n        [262, 6, 7, 0x3c],\n        [390, 7, 8, 0x7d],\n        [646, 6, 10, 0x3d],\n        [-16, 9, 32, 0x1fe, \"lower\"],\n        [1670, 9, 32, 0x1ff], // upper\n        [2, 0x1], // OOB\n      ];\n      break;\n    case 9:\n      lines = [\n        [-31, 8, 4, 0xfc],\n        [-15, 9, 2, 0x1fc],\n        [-11, 8, 2, 0xfd],\n        [-7, 9, 1, 0x1fd],\n        [-5, 7, 1, 0x7c],\n        [-3, 4, 1, 0xa],\n        [-1, 3, 1, 0x2],\n        [1, 3, 1, 0x3],\n        [3, 5, 1, 0x1a],\n        [5, 6, 1, 0x3a],\n        [7, 3, 5, 0x4],\n        [39, 6, 2, 0x3b],\n        [43, 4, 5, 0xb],\n        [75, 4, 6, 0xc],\n        [139, 5, 7, 0x1b],\n        [267, 5, 8, 0x1c],\n        [523, 6, 8, 0x3c],\n        [779, 7, 9, 0x7d],\n        [1291, 6, 11, 0x3d],\n        [-32, 9, 32, 0x1fe, \"lower\"],\n        [3339, 9, 32, 0x1ff], // upper\n        [2, 0x0], // OOB\n      ];\n      break;\n    case 10:\n      lines = [\n        [-21, 7, 4, 0x7a],\n        [-5, 8, 0, 0xfc],\n        [-4, 7, 0, 0x7b],\n        [-3, 5, 0, 0x18],\n        [-2, 2, 2, 0x0],\n        [2, 5, 0, 0x19],\n        [3, 6, 0, 0x36],\n        [4, 7, 0, 0x7c],\n        [5, 8, 0, 0xfd],\n        [6, 2, 6, 0x1],\n        [70, 5, 5, 0x1a],\n        [102, 6, 5, 0x37],\n        [134, 6, 6, 0x38],\n        [198, 6, 7, 0x39],\n        [326, 6, 8, 0x3a],\n        [582, 6, 9, 0x3b],\n        [1094, 6, 10, 0x3c],\n        [2118, 7, 11, 0x7d],\n        [-22, 8, 32, 0xfe, \"lower\"],\n        [4166, 8, 32, 0xff], // upper\n        [2, 0x2], // OOB\n      ];\n      break;\n    case 11:\n      lines = [\n        [1, 1, 0, 0x0],\n        [2, 2, 1, 0x2],\n        [4, 4, 0, 0xc],\n        [5, 4, 1, 0xd],\n        [7, 5, 1, 0x1c],\n        [9, 5, 2, 0x1d],\n        [13, 6, 2, 0x3c],\n        [17, 7, 2, 0x7a],\n        [21, 7, 3, 0x7b],\n        [29, 7, 4, 0x7c],\n        [45, 7, 5, 0x7d],\n        [77, 7, 6, 0x7e],\n        [141, 7, 32, 0x7f], // upper\n      ];\n      break;\n    case 12:\n      lines = [\n        [1, 1, 0, 0x0],\n        [2, 2, 0, 0x2],\n        [3, 3, 1, 0x6],\n        [5, 5, 0, 0x1c],\n        [6, 5, 1, 0x1d],\n        [8, 6, 1, 0x3c],\n        [10, 7, 0, 0x7a],\n        [11, 7, 1, 0x7b],\n        [13, 7, 2, 0x7c],\n        [17, 7, 3, 0x7d],\n        [25, 7, 4, 0x7e],\n        [41, 8, 5, 0xfe],\n        [73, 8, 32, 0xff], // upper\n      ];\n      break;\n    case 13:\n      lines = [\n        [1, 1, 0, 0x0],\n        [2, 3, 0, 0x4],\n        [3, 4, 0, 0xc],\n        [4, 5, 0, 0x1c],\n        [5, 4, 1, 0xd],\n        [7, 3, 3, 0x5],\n        [15, 6, 1, 0x3a],\n        [17, 6, 2, 0x3b],\n        [21, 6, 3, 0x3c],\n        [29, 6, 4, 0x3d],\n        [45, 6, 5, 0x3e],\n        [77, 7, 6, 0x7e],\n        [141, 7, 32, 0x7f], // upper\n      ];\n      break;\n    case 14:\n      lines = [\n        [-2, 3, 0, 0x4],\n        [-1, 3, 0, 0x5],\n        [0, 1, 0, 0x0],\n        [1, 3, 0, 0x6],\n        [2, 3, 0, 0x7],\n      ];\n      break;\n    case 15:\n      lines = [\n        [-24, 7, 4, 0x7c],\n        [-8, 6, 2, 0x3c],\n        [-4, 5, 1, 0x1c],\n        [-2, 4, 0, 0xc],\n        [-1, 3, 0, 0x4],\n        [0, 1, 0, 0x0],\n        [1, 3, 0, 0x5],\n        [2, 4, 0, 0xd],\n        [3, 5, 1, 0x1d],\n        [5, 6, 2, 0x3d],\n        [9, 7, 4, 0x7d],\n        [-25, 7, 32, 0x7e, \"lower\"],\n        [25, 7, 32, 0x7f], // upper\n      ];\n      break;\n    default:\n      throw new Jbig2Error(`standard table B.${number} does not exist`);\n  }\n\n  for (let i = 0, ii = lines.length; i < ii; i++) {\n    lines[i] = new HuffmanLine(lines[i]);\n  }\n  table = new HuffmanTable(lines, true);\n  standardTablesCache[number] = table;\n  return table;\n}\n\nclass Reader {\n  constructor(data, start, end) {\n    this.data = data;\n    this.start = start;\n    this.end = end;\n    this.position = start;\n    this.shift = -1;\n    this.currentByte = 0;\n  }\n\n  readBit() {\n    if (this.shift < 0) {\n      if (this.position >= this.end) {\n        throw new Jbig2Error(\"end of data while reading bit\");\n      }\n      this.currentByte = this.data[this.position++];\n      this.shift = 7;\n    }\n    const bit = (this.currentByte >> this.shift) & 1;\n    this.shift--;\n    return bit;\n  }\n\n  readBits(numBits) {\n    let result = 0,\n      i;\n    for (i = numBits - 1; i >= 0; i--) {\n      result |= this.readBit() << i;\n    }\n    return result;\n  }\n\n  byteAlign() {\n    this.shift = -1;\n  }\n\n  next() {\n    if (this.position >= this.end) {\n      return -1;\n    }\n    return this.data[this.position++];\n  }\n}\n\nfunction getCustomHuffmanTable(index, referredTo, customTables) {\n  // Returns a Tables segment that has been earlier decoded.\n  // See 7.4.2.1.6 (symbol dictionary) or 7.4.3.1.6 (text region).\n  let currentIndex = 0;\n  for (let i = 0, ii = referredTo.length; i < ii; i++) {\n    const table = customTables[referredTo[i]];\n    if (table) {\n      if (index === currentIndex) {\n        return table;\n      }\n      currentIndex++;\n    }\n  }\n  throw new Jbig2Error(\"can't find custom Huffman table\");\n}\n\nfunction getTextRegionHuffmanTables(\n  textRegion,\n  referredTo,\n  customTables,\n  numberOfSymbols,\n  reader\n) {\n  // 7.4.3.1.7 Symbol ID Huffman table decoding\n\n  // Read code lengths for RUNCODEs 0...34.\n  const codes = [];\n  for (let i = 0; i <= 34; i++) {\n    const codeLength = reader.readBits(4);\n    codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n  }\n  // Assign Huffman codes for RUNCODEs.\n  const runCodesTable = new HuffmanTable(codes, false);\n\n  // Read a Huffman code using the assignment above.\n  // Interpret the RUNCODE codes and the additional bits (if any).\n  codes.length = 0;\n  for (let i = 0; i < numberOfSymbols; ) {\n    const codeLength = runCodesTable.decode(reader);\n    if (codeLength >= 32) {\n      let repeatedLength, numberOfRepeats, j;\n      switch (codeLength) {\n        case 32:\n          if (i === 0) {\n            throw new Jbig2Error(\"no previous value in symbol ID table\");\n          }\n          numberOfRepeats = reader.readBits(2) + 3;\n          repeatedLength = codes[i - 1].prefixLength;\n          break;\n        case 33:\n          numberOfRepeats = reader.readBits(3) + 3;\n          repeatedLength = 0;\n          break;\n        case 34:\n          numberOfRepeats = reader.readBits(7) + 11;\n          repeatedLength = 0;\n          break;\n        default:\n          throw new Jbig2Error(\"invalid code length in symbol ID table\");\n      }\n      for (j = 0; j < numberOfRepeats; j++) {\n        codes.push(new HuffmanLine([i, repeatedLength, 0, 0]));\n        i++;\n      }\n    } else {\n      codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n      i++;\n    }\n  }\n  reader.byteAlign();\n  const symbolIDTable = new HuffmanTable(codes, false);\n\n  // 7.4.3.1.6 Text region segment Huffman table selection\n\n  let customIndex = 0,\n    tableFirstS,\n    tableDeltaS,\n    tableDeltaT;\n\n  switch (textRegion.huffmanFS) {\n    case 0:\n    case 1:\n      tableFirstS = getStandardTable(textRegion.huffmanFS + 6);\n      break;\n    case 3:\n      tableFirstS = getCustomHuffmanTable(\n        customIndex,\n        referredTo,\n        customTables\n      );\n      customIndex++;\n      break;\n    default:\n      throw new Jbig2Error(\"invalid Huffman FS selector\");\n  }\n\n  switch (textRegion.huffmanDS) {\n    case 0:\n    case 1:\n    case 2:\n      tableDeltaS = getStandardTable(textRegion.huffmanDS + 8);\n      break;\n    case 3:\n      tableDeltaS = getCustomHuffmanTable(\n        customIndex,\n        referredTo,\n        customTables\n      );\n      customIndex++;\n      break;\n    default:\n      throw new Jbig2Error(\"invalid Huffman DS selector\");\n  }\n\n  switch (textRegion.huffmanDT) {\n    case 0:\n    case 1:\n    case 2:\n      tableDeltaT = getStandardTable(textRegion.huffmanDT + 11);\n      break;\n    case 3:\n      tableDeltaT = getCustomHuffmanTable(\n        customIndex,\n        referredTo,\n        customTables\n      );\n      customIndex++;\n      break;\n    default:\n      throw new Jbig2Error(\"invalid Huffman DT selector\");\n  }\n\n  if (textRegion.refinement) {\n    // Load tables RDW, RDH, RDX and RDY.\n    throw new Jbig2Error(\"refinement with Huffman is not supported\");\n  }\n\n  return {\n    symbolIDTable,\n    tableFirstS,\n    tableDeltaS,\n    tableDeltaT,\n  };\n}\n\nfunction getSymbolDictionaryHuffmanTables(\n  dictionary,\n  referredTo,\n  customTables\n) {\n  // 7.4.2.1.6 Symbol dictionary segment Huffman table selection\n\n  let customIndex = 0,\n    tableDeltaHeight,\n    tableDeltaWidth;\n  switch (dictionary.huffmanDHSelector) {\n    case 0:\n    case 1:\n      tableDeltaHeight = getStandardTable(dictionary.huffmanDHSelector + 4);\n      break;\n    case 3:\n      tableDeltaHeight = getCustomHuffmanTable(\n        customIndex,\n        referredTo,\n        customTables\n      );\n      customIndex++;\n      break;\n    default:\n      throw new Jbig2Error(\"invalid Huffman DH selector\");\n  }\n\n  switch (dictionary.huffmanDWSelector) {\n    case 0:\n    case 1:\n      tableDeltaWidth = getStandardTable(dictionary.huffmanDWSelector + 2);\n      break;\n    case 3:\n      tableDeltaWidth = getCustomHuffmanTable(\n        customIndex,\n        referredTo,\n        customTables\n      );\n      customIndex++;\n      break;\n    default:\n      throw new Jbig2Error(\"invalid Huffman DW selector\");\n  }\n\n  let tableBitmapSize, tableAggregateInstances;\n  if (dictionary.bitmapSizeSelector) {\n    tableBitmapSize = getCustomHuffmanTable(\n      customIndex,\n      referredTo,\n      customTables\n    );\n    customIndex++;\n  } else {\n    tableBitmapSize = getStandardTable(1);\n  }\n\n  if (dictionary.aggregationInstancesSelector) {\n    tableAggregateInstances = getCustomHuffmanTable(\n      customIndex,\n      referredTo,\n      customTables\n    );\n  } else {\n    tableAggregateInstances = getStandardTable(1);\n  }\n\n  return {\n    tableDeltaHeight,\n    tableDeltaWidth,\n    tableBitmapSize,\n    tableAggregateInstances,\n  };\n}\n\nfunction readUncompressedBitmap(reader, width, height) {\n  const bitmap = [];\n  for (let y = 0; y < height; y++) {\n    const row = new Uint8Array(width);\n    bitmap.push(row);\n    for (let x = 0; x < width; x++) {\n      row[x] = reader.readBit();\n    }\n    reader.byteAlign();\n  }\n  return bitmap;\n}\n\nfunction decodeMMRBitmap(input, width, height, endOfBlock) {\n  // MMR is the same compression algorithm as the PDF filter\n  // CCITTFaxDecode with /K -1.\n  const params = {\n    K: -1,\n    Columns: width,\n    Rows: height,\n    BlackIs1: true,\n    EndOfBlock: endOfBlock,\n  };\n  const decoder = new CCITTFaxDecoder(input, params);\n  const bitmap = [];\n  let currentByte,\n    eof = false;\n\n  for (let y = 0; y < height; y++) {\n    const row = new Uint8Array(width);\n    bitmap.push(row);\n    let shift = -1;\n    for (let x = 0; x < width; x++) {\n      if (shift < 0) {\n        currentByte = decoder.readNextChar();\n        if (currentByte === -1) {\n          // Set the rest of the bits to zero.\n          currentByte = 0;\n          eof = true;\n        }\n        shift = 7;\n      }\n      row[x] = (currentByte >> shift) & 1;\n      shift--;\n    }\n  }\n\n  if (endOfBlock && !eof) {\n    // Read until EOFB has been consumed.\n    const lookForEOFLimit = 5;\n    for (let i = 0; i < lookForEOFLimit; i++) {\n      if (decoder.readNextChar() === -1) {\n        break;\n      }\n    }\n  }\n\n  return bitmap;\n}\n\nclass Jbig2Image {\n  parseChunks(chunks) {\n    return parseJbig2Chunks(chunks);\n  }\n\n  parse(data) {\n    if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"IMAGE_DECODERS\")) {\n      throw new Error(\"Not implemented: Jbig2Image.parse\");\n    }\n    const { imgData, width, height } = parseJbig2(data);\n    this.width = width;\n    this.height = height;\n    return imgData;\n  }\n}\n\nexport { Jbig2Image };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseStream } from \"./base_stream.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\nimport { Jbig2Image } from \"./jbig2.js\";\nimport { shadow } from \"../shared/util.js\";\n\n/**\n * For JBIG2's we use a library to decode these images and\n * the stream behaves like all the other DecodeStreams.\n */\nclass Jbig2Stream extends DecodeStream {\n  constructor(stream, maybeLength, params) {\n    super(maybeLength);\n\n    this.stream = stream;\n    this.dict = stream.dict;\n    this.maybeLength = maybeLength;\n    this.params = params;\n  }\n\n  get bytes() {\n    // If `this.maybeLength` is null, we'll get the entire stream.\n    return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n  }\n\n  ensureBuffer(requested) {\n    // No-op, since `this.readBlock` will always parse the entire image and\n    // directly insert all of its data into `this.buffer`.\n  }\n\n  readBlock() {\n    if (this.eof) {\n      return;\n    }\n    const jbig2Image = new Jbig2Image();\n\n    const chunks = [];\n    if (this.params instanceof Dict) {\n      const globalsStream = this.params.get(\"JBIG2Globals\");\n      if (globalsStream instanceof BaseStream) {\n        const globals = globalsStream.getBytes();\n        chunks.push({ data: globals, start: 0, end: globals.length });\n      }\n    }\n    chunks.push({ data: this.bytes, start: 0, end: this.bytes.length });\n    const data = jbig2Image.parseChunks(chunks);\n    const dataLength = data.length;\n\n    // JBIG2 had black as 1 and white as 0, inverting the colors\n    for (let i = 0; i < dataLength; i++) {\n      data[i] ^= 0xff;\n    }\n    this.buffer = data;\n    this.bufferLength = dataLength;\n    this.eof = true;\n  }\n}\n\nexport { Jbig2Stream };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FeatureTest, ImageKind } from \"./util.js\";\n\nfunction convertToRGBA(params) {\n  switch (params.kind) {\n    case ImageKind.GRAYSCALE_1BPP:\n      return convertBlackAndWhiteToRGBA(params);\n    case ImageKind.RGB_24BPP:\n      return convertRGBToRGBA(params);\n  }\n\n  return null;\n}\n\nfunction convertBlackAndWhiteToRGBA({\n  src,\n  srcPos = 0,\n  dest,\n  width,\n  height,\n  nonBlackColor = 0xffffffff,\n  inverseDecode = false,\n}) {\n  const black = FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n  const [zeroMapping, oneMapping] = inverseDecode\n    ? [nonBlackColor, black]\n    : [black, nonBlackColor];\n  const widthInSource = width >> 3;\n  const widthRemainder = width & 7;\n  const srcLength = src.length;\n  dest = new Uint32Array(dest.buffer);\n  let destPos = 0;\n\n  for (let i = 0; i < height; i++) {\n    for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n      const elem = srcPos < srcLength ? src[srcPos] : 255;\n      dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n    }\n    if (widthRemainder === 0) {\n      continue;\n    }\n    const elem = srcPos < srcLength ? src[srcPos++] : 255;\n    for (let j = 0; j < widthRemainder; j++) {\n      dest[destPos++] = elem & (1 << (7 - j)) ? oneMapping : zeroMapping;\n    }\n  }\n  return { srcPos, destPos };\n}\n\nfunction convertRGBToRGBA({\n  src,\n  srcPos = 0,\n  dest,\n  destPos = 0,\n  width,\n  height,\n}) {\n  let i = 0;\n  const len32 = src.length >> 2;\n  const src32 = new Uint32Array(src.buffer, srcPos, len32);\n\n  if (FeatureTest.isLittleEndian) {\n    // It's a way faster to do the shuffle manually instead of working\n    // component by component with some Uint8 arrays.\n    for (; i < len32 - 2; i += 3, destPos += 4) {\n      const s1 = src32[i]; // R2B1G1R1\n      const s2 = src32[i + 1]; // G3R3B2G2\n      const s3 = src32[i + 2]; // B4G4R4B3\n\n      dest[destPos] = s1 | 0xff000000;\n      dest[destPos + 1] = (s1 >>> 24) | (s2 << 8) | 0xff000000;\n      dest[destPos + 2] = (s2 >>> 16) | (s3 << 16) | 0xff000000;\n      dest[destPos + 3] = (s3 >>> 8) | 0xff000000;\n    }\n\n    for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n      dest[destPos++] =\n        src[j] | (src[j + 1] << 8) | (src[j + 2] << 16) | 0xff000000;\n    }\n  } else {\n    for (; i < len32 - 2; i += 3, destPos += 4) {\n      const s1 = src32[i]; // R1G1B1R2\n      const s2 = src32[i + 1]; // G2B2R3G3\n      const s3 = src32[i + 2]; // B3R4G4B4\n\n      dest[destPos] = s1 | 0xff;\n      dest[destPos + 1] = (s1 << 24) | (s2 >>> 8) | 0xff;\n      dest[destPos + 2] = (s2 << 16) | (s3 >>> 16) | 0xff;\n      dest[destPos + 3] = (s3 << 8) | 0xff;\n    }\n\n    for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n      dest[destPos++] =\n        (src[j] << 24) | (src[j + 1] << 16) | (src[j + 2] << 8) | 0xff;\n    }\n  }\n\n  return { srcPos, destPos };\n}\n\nfunction grayToRGBA(src, dest) {\n  if (FeatureTest.isLittleEndian) {\n    for (let i = 0, ii = src.length; i < ii; i++) {\n      dest[i] = (src[i] * 0x10101) | 0xff000000;\n    }\n  } else {\n    for (let i = 0, ii = src.length; i < ii; i++) {\n      dest[i] = (src[i] * 0x1010100) | 0x000000ff;\n    }\n  }\n}\n\nexport { convertBlackAndWhiteToRGBA, convertToRGBA, grayToRGBA };\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, BaseException, warn } from \"../shared/util.js\";\nimport { grayToRGBA } from \"../shared/image_utils.js\";\nimport { readUint16 } from \"./core_utils.js\";\n\nclass JpegError extends BaseException {\n  constructor(msg) {\n    super(`JPEG error: ${msg}`, \"JpegError\");\n  }\n}\n\nclass DNLMarkerError extends BaseException {\n  constructor(message, scanLines) {\n    super(message, \"DNLMarkerError\");\n    this.scanLines = scanLines;\n  }\n}\n\nclass EOIMarkerError extends BaseException {\n  constructor(msg) {\n    super(msg, \"EOIMarkerError\");\n  }\n}\n\n/**\n * This code was forked from https://github.com/notmasteryet/jpgjs.\n * The original version was created by GitHub user notmasteryet.\n *\n * - The JPEG specification can be found in the ITU CCITT Recommendation T.81\n *   (www.w3.org/Graphics/JPEG/itu-t81.pdf)\n * - The JFIF specification can be found in the JPEG File Interchange Format\n *   (www.w3.org/Graphics/JPEG/jfif3.pdf)\n * - The Adobe Application-Specific JPEG markers in the\n *   Supporting the DCT Filters in PostScript Level 2, Technical Note #5116\n *   (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n */\n\n// prettier-ignore\nconst dctZigZag = new Uint8Array([\n   0,\n   1,  8,\n  16,  9,  2,\n   3, 10, 17, 24,\n  32, 25, 18, 11, 4,\n   5, 12, 19, 26, 33, 40,\n  48, 41, 34, 27, 20, 13,  6,\n   7, 14, 21, 28, 35, 42, 49, 56,\n  57, 50, 43, 36, 29, 22, 15,\n  23, 30, 37, 44, 51, 58,\n  59, 52, 45, 38, 31,\n  39, 46, 53, 60,\n  61, 54, 47,\n  55, 62,\n  63\n]);\n\nconst dctCos1 = 4017; // cos(pi/16)\nconst dctSin1 = 799; // sin(pi/16)\nconst dctCos3 = 3406; // cos(3*pi/16)\nconst dctSin3 = 2276; // sin(3*pi/16)\nconst dctCos6 = 1567; // cos(6*pi/16)\nconst dctSin6 = 3784; // sin(6*pi/16)\nconst dctSqrt2 = 5793; // sqrt(2)\nconst dctSqrt1d2 = 2896; // sqrt(2) / 2\n\nfunction buildHuffmanTable(codeLengths, values) {\n  let k = 0,\n    i,\n    j,\n    length = 16;\n  while (length > 0 && !codeLengths[length - 1]) {\n    length--;\n  }\n  const code = [{ children: [], index: 0 }];\n  let p = code[0],\n    q;\n  for (i = 0; i < length; i++) {\n    for (j = 0; j < codeLengths[i]; j++) {\n      p = code.pop();\n      p.children[p.index] = values[k];\n      while (p.index > 0) {\n        p = code.pop();\n      }\n      p.index++;\n      code.push(p);\n      while (code.length <= i) {\n        code.push((q = { children: [], index: 0 }));\n        p.children[p.index] = q.children;\n        p = q;\n      }\n      k++;\n    }\n    if (i + 1 < length) {\n      // p here points to last code\n      code.push((q = { children: [], index: 0 }));\n      p.children[p.index] = q.children;\n      p = q;\n    }\n  }\n  return code[0].children;\n}\n\nfunction getBlockBufferOffset(component, row, col) {\n  return 64 * ((component.blocksPerLine + 1) * row + col);\n}\n\nfunction decodeScan(\n  data,\n  offset,\n  frame,\n  components,\n  resetInterval,\n  spectralStart,\n  spectralEnd,\n  successivePrev,\n  successive,\n  parseDNLMarker = false\n) {\n  const mcusPerLine = frame.mcusPerLine;\n  const progressive = frame.progressive;\n\n  const startOffset = offset;\n  let bitsData = 0,\n    bitsCount = 0;\n\n  function readBit() {\n    if (bitsCount > 0) {\n      bitsCount--;\n      return (bitsData >> bitsCount) & 1;\n    }\n    bitsData = data[offset++];\n    if (bitsData === 0xff) {\n      const nextByte = data[offset++];\n      if (nextByte) {\n        if (nextByte === /* DNL = */ 0xdc && parseDNLMarker) {\n          offset += 2; // Skip marker length.\n\n          const scanLines = readUint16(data, offset);\n          offset += 2;\n          if (scanLines > 0 && scanLines !== frame.scanLines) {\n            throw new DNLMarkerError(\n              \"Found DNL marker (0xFFDC) while parsing scan data\",\n              scanLines\n            );\n          }\n        } else if (nextByte === /* EOI = */ 0xd9) {\n          if (parseDNLMarker) {\n            // NOTE: only 8-bit JPEG images are supported in this decoder.\n            const maybeScanLines = blockRow * (frame.precision === 8 ? 8 : 0);\n            // Heuristic to attempt to handle corrupt JPEG images with too\n            // large `scanLines` parameter, by falling back to the currently\n            // parsed number of scanLines when it's at least (approximately)\n            // one \"half\" order of magnitude smaller than expected (fixes\n            // issue10880.pdf, issue10989.pdf, issue15492.pdf).\n            if (\n              maybeScanLines > 0 &&\n              Math.round(frame.scanLines / maybeScanLines) >= 5\n            ) {\n              throw new DNLMarkerError(\n                \"Found EOI marker (0xFFD9) while parsing scan data, \" +\n                  \"possibly caused by incorrect `scanLines` parameter\",\n                maybeScanLines\n              );\n            }\n          }\n          throw new EOIMarkerError(\n            \"Found EOI marker (0xFFD9) while parsing scan data\"\n          );\n        }\n        throw new JpegError(\n          `unexpected marker ${((bitsData << 8) | nextByte).toString(16)}`\n        );\n      }\n      // unstuff 0\n    }\n    bitsCount = 7;\n    return bitsData >>> 7;\n  }\n\n  function decodeHuffman(tree) {\n    let node = tree;\n    while (true) {\n      node = node[readBit()];\n      switch (typeof node) {\n        case \"number\":\n          return node;\n        case \"object\":\n          continue;\n      }\n      throw new JpegError(\"invalid huffman sequence\");\n    }\n  }\n\n  function receive(length) {\n    let n = 0;\n    while (length > 0) {\n      n = (n << 1) | readBit();\n      length--;\n    }\n    return n;\n  }\n\n  function receiveAndExtend(length) {\n    if (length === 1) {\n      return readBit() === 1 ? 1 : -1;\n    }\n    const n = receive(length);\n    if (n >= 1 << (length - 1)) {\n      return n;\n    }\n    return n + (-1 << length) + 1;\n  }\n\n  function decodeBaseline(component, blockOffset) {\n    const t = decodeHuffman(component.huffmanTableDC);\n    const diff = t === 0 ? 0 : receiveAndExtend(t);\n    component.blockData[blockOffset] = component.pred += diff;\n    let k = 1;\n    while (k < 64) {\n      const rs = decodeHuffman(component.huffmanTableAC);\n      const s = rs & 15,\n        r = rs >> 4;\n      if (s === 0) {\n        if (r < 15) {\n          break;\n        }\n        k += 16;\n        continue;\n      }\n      k += r;\n      const z = dctZigZag[k];\n      component.blockData[blockOffset + z] = receiveAndExtend(s);\n      k++;\n    }\n  }\n\n  function decodeDCFirst(component, blockOffset) {\n    const t = decodeHuffman(component.huffmanTableDC);\n    const diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n    component.blockData[blockOffset] = component.pred += diff;\n  }\n\n  function decodeDCSuccessive(component, blockOffset) {\n    component.blockData[blockOffset] |= readBit() << successive;\n  }\n\n  let eobrun = 0;\n  function decodeACFirst(component, blockOffset) {\n    if (eobrun > 0) {\n      eobrun--;\n      return;\n    }\n    let k = spectralStart;\n    const e = spectralEnd;\n    while (k <= e) {\n      const rs = decodeHuffman(component.huffmanTableAC);\n      const s = rs & 15,\n        r = rs >> 4;\n      if (s === 0) {\n        if (r < 15) {\n          eobrun = receive(r) + (1 << r) - 1;\n          break;\n        }\n        k += 16;\n        continue;\n      }\n      k += r;\n      const z = dctZigZag[k];\n      component.blockData[blockOffset + z] =\n        receiveAndExtend(s) * (1 << successive);\n      k++;\n    }\n  }\n\n  let successiveACState = 0,\n    successiveACNextValue;\n  function decodeACSuccessive(component, blockOffset) {\n    let k = spectralStart;\n    const e = spectralEnd;\n    let r = 0;\n    let s;\n    let rs;\n    while (k <= e) {\n      const offsetZ = blockOffset + dctZigZag[k];\n      const sign = component.blockData[offsetZ] < 0 ? -1 : 1;\n      switch (successiveACState) {\n        case 0: // initial state\n          rs = decodeHuffman(component.huffmanTableAC);\n          s = rs & 15;\n          r = rs >> 4;\n          if (s === 0) {\n            if (r < 15) {\n              eobrun = receive(r) + (1 << r);\n              successiveACState = 4;\n            } else {\n              r = 16;\n              successiveACState = 1;\n            }\n          } else {\n            if (s !== 1) {\n              throw new JpegError(\"invalid ACn encoding\");\n            }\n            successiveACNextValue = receiveAndExtend(s);\n            successiveACState = r ? 2 : 3;\n          }\n          continue;\n        case 1: // skipping r zero items\n        case 2:\n          if (component.blockData[offsetZ]) {\n            component.blockData[offsetZ] += sign * (readBit() << successive);\n          } else {\n            r--;\n            if (r === 0) {\n              successiveACState = successiveACState === 2 ? 3 : 0;\n            }\n          }\n          break;\n        case 3: // set value for a zero item\n          if (component.blockData[offsetZ]) {\n            component.blockData[offsetZ] += sign * (readBit() << successive);\n          } else {\n            component.blockData[offsetZ] = successiveACNextValue << successive;\n            successiveACState = 0;\n          }\n          break;\n        case 4: // eob\n          if (component.blockData[offsetZ]) {\n            component.blockData[offsetZ] += sign * (readBit() << successive);\n          }\n          break;\n      }\n      k++;\n    }\n    if (successiveACState === 4) {\n      eobrun--;\n      if (eobrun === 0) {\n        successiveACState = 0;\n      }\n    }\n  }\n\n  let blockRow = 0;\n  function decodeMcu(component, decode, mcu, row, col) {\n    const mcuRow = (mcu / mcusPerLine) | 0;\n    const mcuCol = mcu % mcusPerLine;\n    blockRow = mcuRow * component.v + row;\n    const blockCol = mcuCol * component.h + col;\n    const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n    decode(component, blockOffset);\n  }\n\n  function decodeBlock(component, decode, mcu) {\n    blockRow = (mcu / component.blocksPerLine) | 0;\n    const blockCol = mcu % component.blocksPerLine;\n    const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n    decode(component, blockOffset);\n  }\n\n  const componentsLength = components.length;\n  let component, i, j, k, n;\n  let decodeFn;\n  if (progressive) {\n    if (spectralStart === 0) {\n      decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n    } else {\n      decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n    }\n  } else {\n    decodeFn = decodeBaseline;\n  }\n\n  let mcu = 0,\n    fileMarker;\n  const mcuExpected =\n    componentsLength === 1\n      ? components[0].blocksPerLine * components[0].blocksPerColumn\n      : mcusPerLine * frame.mcusPerColumn;\n\n  let h, v;\n  while (mcu <= mcuExpected) {\n    // reset interval stuff\n    const mcuToRead = resetInterval\n      ? Math.min(mcuExpected - mcu, resetInterval)\n      : mcuExpected;\n\n    // The `mcuToRead === 0` case should only occur when all of the expected\n    // MCU data has been already parsed, i.e. when `mcu === mcuExpected`, but\n    // some corrupt JPEG images contain more data than intended and we thus\n    // want to skip over any extra RSTx markers below (fixes issue11794.pdf).\n    if (mcuToRead > 0) {\n      for (i = 0; i < componentsLength; i++) {\n        components[i].pred = 0;\n      }\n      eobrun = 0;\n\n      if (componentsLength === 1) {\n        component = components[0];\n        for (n = 0; n < mcuToRead; n++) {\n          decodeBlock(component, decodeFn, mcu);\n          mcu++;\n        }\n      } else {\n        for (n = 0; n < mcuToRead; n++) {\n          for (i = 0; i < componentsLength; i++) {\n            component = components[i];\n            h = component.h;\n            v = component.v;\n            for (j = 0; j < v; j++) {\n              for (k = 0; k < h; k++) {\n                decodeMcu(component, decodeFn, mcu, j, k);\n              }\n            }\n          }\n          mcu++;\n        }\n      }\n    }\n\n    // find marker\n    bitsCount = 0;\n    fileMarker = findNextFileMarker(data, offset);\n    if (!fileMarker) {\n      break; // Reached the end of the image data without finding any marker.\n    }\n    if (fileMarker.invalid) {\n      // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip\n      // past those to attempt to find a valid marker (fixes issue4090.pdf).\n      const partialMsg = mcuToRead > 0 ? \"unexpected\" : \"excessive\";\n      warn(\n        `decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`\n      );\n      offset = fileMarker.offset;\n    }\n    if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) {\n      // RSTx\n      offset += 2;\n    } else {\n      break;\n    }\n  }\n\n  return offset - startOffset;\n}\n\n// A port of poppler's IDCT method which in turn is taken from:\n//   Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,\n//   'Practical Fast 1-D DCT Algorithms with 11 Multiplications',\n//   IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,\n//   988-991.\nfunction quantizeAndInverse(component, blockBufferOffset, p) {\n  const qt = component.quantizationTable,\n    blockData = component.blockData;\n  let v0, v1, v2, v3, v4, v5, v6, v7;\n  let p0, p1, p2, p3, p4, p5, p6, p7;\n  let t;\n\n  if (!qt) {\n    throw new JpegError(\"missing required Quantization Table.\");\n  }\n\n  // inverse DCT on rows\n  for (let row = 0; row < 64; row += 8) {\n    // gather block data\n    p0 = blockData[blockBufferOffset + row];\n    p1 = blockData[blockBufferOffset + row + 1];\n    p2 = blockData[blockBufferOffset + row + 2];\n    p3 = blockData[blockBufferOffset + row + 3];\n    p4 = blockData[blockBufferOffset + row + 4];\n    p5 = blockData[blockBufferOffset + row + 5];\n    p6 = blockData[blockBufferOffset + row + 6];\n    p7 = blockData[blockBufferOffset + row + 7];\n\n    // dequant p0\n    p0 *= qt[row];\n\n    // check for all-zero AC coefficients\n    if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n      t = (dctSqrt2 * p0 + 512) >> 10;\n      p[row] = t;\n      p[row + 1] = t;\n      p[row + 2] = t;\n      p[row + 3] = t;\n      p[row + 4] = t;\n      p[row + 5] = t;\n      p[row + 6] = t;\n      p[row + 7] = t;\n      continue;\n    }\n    // dequant p1 ... p7\n    p1 *= qt[row + 1];\n    p2 *= qt[row + 2];\n    p3 *= qt[row + 3];\n    p4 *= qt[row + 4];\n    p5 *= qt[row + 5];\n    p6 *= qt[row + 6];\n    p7 *= qt[row + 7];\n\n    // stage 4\n    v0 = (dctSqrt2 * p0 + 128) >> 8;\n    v1 = (dctSqrt2 * p4 + 128) >> 8;\n    v2 = p2;\n    v3 = p6;\n    v4 = (dctSqrt1d2 * (p1 - p7) + 128) >> 8;\n    v7 = (dctSqrt1d2 * (p1 + p7) + 128) >> 8;\n    v5 = p3 << 4;\n    v6 = p5 << 4;\n\n    // stage 3\n    v0 = (v0 + v1 + 1) >> 1;\n    v1 = v0 - v1;\n    t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8;\n    v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8;\n    v3 = t;\n    v4 = (v4 + v6 + 1) >> 1;\n    v6 = v4 - v6;\n    v7 = (v7 + v5 + 1) >> 1;\n    v5 = v7 - v5;\n\n    // stage 2\n    v0 = (v0 + v3 + 1) >> 1;\n    v3 = v0 - v3;\n    v1 = (v1 + v2 + 1) >> 1;\n    v2 = v1 - v2;\n    t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n    v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n    v7 = t;\n    t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n    v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n    v6 = t;\n\n    // stage 1\n    p[row] = v0 + v7;\n    p[row + 7] = v0 - v7;\n    p[row + 1] = v1 + v6;\n    p[row + 6] = v1 - v6;\n    p[row + 2] = v2 + v5;\n    p[row + 5] = v2 - v5;\n    p[row + 3] = v3 + v4;\n    p[row + 4] = v3 - v4;\n  }\n\n  // inverse DCT on columns\n  for (let col = 0; col < 8; ++col) {\n    p0 = p[col];\n    p1 = p[col + 8];\n    p2 = p[col + 16];\n    p3 = p[col + 24];\n    p4 = p[col + 32];\n    p5 = p[col + 40];\n    p6 = p[col + 48];\n    p7 = p[col + 56];\n\n    // check for all-zero AC coefficients\n    if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n      t = (dctSqrt2 * p0 + 8192) >> 14;\n      // Convert to 8-bit.\n      if (t < -2040) {\n        t = 0;\n      } else if (t >= 2024) {\n        t = 255;\n      } else {\n        t = (t + 2056) >> 4;\n      }\n      blockData[blockBufferOffset + col] = t;\n      blockData[blockBufferOffset + col + 8] = t;\n      blockData[blockBufferOffset + col + 16] = t;\n      blockData[blockBufferOffset + col + 24] = t;\n      blockData[blockBufferOffset + col + 32] = t;\n      blockData[blockBufferOffset + col + 40] = t;\n      blockData[blockBufferOffset + col + 48] = t;\n      blockData[blockBufferOffset + col + 56] = t;\n      continue;\n    }\n\n    // stage 4\n    v0 = (dctSqrt2 * p0 + 2048) >> 12;\n    v1 = (dctSqrt2 * p4 + 2048) >> 12;\n    v2 = p2;\n    v3 = p6;\n    v4 = (dctSqrt1d2 * (p1 - p7) + 2048) >> 12;\n    v7 = (dctSqrt1d2 * (p1 + p7) + 2048) >> 12;\n    v5 = p3;\n    v6 = p5;\n\n    // stage 3\n    // Shift v0 by 128.5 << 5 here, so we don't need to shift p0...p7 when\n    // converting to UInt8 range later.\n    v0 = ((v0 + v1 + 1) >> 1) + 4112;\n    v1 = v0 - v1;\n    t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12;\n    v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12;\n    v3 = t;\n    v4 = (v4 + v6 + 1) >> 1;\n    v6 = v4 - v6;\n    v7 = (v7 + v5 + 1) >> 1;\n    v5 = v7 - v5;\n\n    // stage 2\n    v0 = (v0 + v3 + 1) >> 1;\n    v3 = v0 - v3;\n    v1 = (v1 + v2 + 1) >> 1;\n    v2 = v1 - v2;\n    t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n    v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n    v7 = t;\n    t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n    v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n    v6 = t;\n\n    // stage 1\n    p0 = v0 + v7;\n    p7 = v0 - v7;\n    p1 = v1 + v6;\n    p6 = v1 - v6;\n    p2 = v2 + v5;\n    p5 = v2 - v5;\n    p3 = v3 + v4;\n    p4 = v3 - v4;\n\n    // Convert to 8-bit integers.\n    if (p0 < 16) {\n      p0 = 0;\n    } else if (p0 >= 4080) {\n      p0 = 255;\n    } else {\n      p0 >>= 4;\n    }\n    if (p1 < 16) {\n      p1 = 0;\n    } else if (p1 >= 4080) {\n      p1 = 255;\n    } else {\n      p1 >>= 4;\n    }\n    if (p2 < 16) {\n      p2 = 0;\n    } else if (p2 >= 4080) {\n      p2 = 255;\n    } else {\n      p2 >>= 4;\n    }\n    if (p3 < 16) {\n      p3 = 0;\n    } else if (p3 >= 4080) {\n      p3 = 255;\n    } else {\n      p3 >>= 4;\n    }\n    if (p4 < 16) {\n      p4 = 0;\n    } else if (p4 >= 4080) {\n      p4 = 255;\n    } else {\n      p4 >>= 4;\n    }\n    if (p5 < 16) {\n      p5 = 0;\n    } else if (p5 >= 4080) {\n      p5 = 255;\n    } else {\n      p5 >>= 4;\n    }\n    if (p6 < 16) {\n      p6 = 0;\n    } else if (p6 >= 4080) {\n      p6 = 255;\n    } else {\n      p6 >>= 4;\n    }\n    if (p7 < 16) {\n      p7 = 0;\n    } else if (p7 >= 4080) {\n      p7 = 255;\n    } else {\n      p7 >>= 4;\n    }\n\n    // store block data\n    blockData[blockBufferOffset + col] = p0;\n    blockData[blockBufferOffset + col + 8] = p1;\n    blockData[blockBufferOffset + col + 16] = p2;\n    blockData[blockBufferOffset + col + 24] = p3;\n    blockData[blockBufferOffset + col + 32] = p4;\n    blockData[blockBufferOffset + col + 40] = p5;\n    blockData[blockBufferOffset + col + 48] = p6;\n    blockData[blockBufferOffset + col + 56] = p7;\n  }\n}\n\nfunction buildComponentData(frame, component) {\n  const blocksPerLine = component.blocksPerLine;\n  const blocksPerColumn = component.blocksPerColumn;\n  const computationBuffer = new Int16Array(64);\n\n  for (let blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n    for (let blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n      const offset = getBlockBufferOffset(component, blockRow, blockCol);\n      quantizeAndInverse(component, offset, computationBuffer);\n    }\n  }\n  return component.blockData;\n}\n\nfunction findNextFileMarker(data, currentPos, startPos = currentPos) {\n  const maxPos = data.length - 1;\n  let newPos = startPos < currentPos ? startPos : currentPos;\n\n  if (currentPos >= maxPos) {\n    return null; // Don't attempt to read non-existent data and just return.\n  }\n  const currentMarker = readUint16(data, currentPos);\n  if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) {\n    return {\n      invalid: null,\n      marker: currentMarker,\n      offset: currentPos,\n    };\n  }\n  let newMarker = readUint16(data, newPos);\n  while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) {\n    if (++newPos >= maxPos) {\n      return null; // Don't attempt to read non-existent data and just return.\n    }\n    newMarker = readUint16(data, newPos);\n  }\n  return {\n    invalid: currentMarker.toString(16),\n    marker: newMarker,\n    offset: newPos,\n  };\n}\n\nclass JpegImage {\n  constructor({ decodeTransform = null, colorTransform = -1 } = {}) {\n    this._decodeTransform = decodeTransform;\n    this._colorTransform = colorTransform;\n  }\n\n  parse(data, { dnlScanLines = null } = {}) {\n    function readDataBlock() {\n      const length = readUint16(data, offset);\n      offset += 2;\n      let endOffset = offset + length - 2;\n\n      const fileMarker = findNextFileMarker(data, endOffset, offset);\n      if (fileMarker?.invalid) {\n        warn(\n          \"readDataBlock - incorrect length, current marker is: \" +\n            fileMarker.invalid\n        );\n        endOffset = fileMarker.offset;\n      }\n\n      const array = data.subarray(offset, endOffset);\n      offset += array.length;\n      return array;\n    }\n\n    function prepareComponents(frame) {\n      const mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n      const mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n      for (const component of frame.components) {\n        const blocksPerLine = Math.ceil(\n          (Math.ceil(frame.samplesPerLine / 8) * component.h) / frame.maxH\n        );\n        const blocksPerColumn = Math.ceil(\n          (Math.ceil(frame.scanLines / 8) * component.v) / frame.maxV\n        );\n        const blocksPerLineForMcu = mcusPerLine * component.h;\n        const blocksPerColumnForMcu = mcusPerColumn * component.v;\n\n        const blocksBufferSize =\n          64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n        component.blockData = new Int16Array(blocksBufferSize);\n        component.blocksPerLine = blocksPerLine;\n        component.blocksPerColumn = blocksPerColumn;\n      }\n      frame.mcusPerLine = mcusPerLine;\n      frame.mcusPerColumn = mcusPerColumn;\n    }\n\n    let offset = 0;\n    let jfif = null;\n    let adobe = null;\n    let frame, resetInterval;\n    let numSOSMarkers = 0;\n    const quantizationTables = [];\n    const huffmanTablesAC = [],\n      huffmanTablesDC = [];\n\n    let fileMarker = readUint16(data, offset);\n    offset += 2;\n    if (fileMarker !== /* SOI (Start of Image) = */ 0xffd8) {\n      throw new JpegError(\"SOI not found\");\n    }\n    fileMarker = readUint16(data, offset);\n    offset += 2;\n\n    markerLoop: while (fileMarker !== /* EOI (End of Image) = */ 0xffd9) {\n      let i, j, l;\n      switch (fileMarker) {\n        case 0xffe0: // APP0 (Application Specific)\n        case 0xffe1: // APP1\n        case 0xffe2: // APP2\n        case 0xffe3: // APP3\n        case 0xffe4: // APP4\n        case 0xffe5: // APP5\n        case 0xffe6: // APP6\n        case 0xffe7: // APP7\n        case 0xffe8: // APP8\n        case 0xffe9: // APP9\n        case 0xffea: // APP10\n        case 0xffeb: // APP11\n        case 0xffec: // APP12\n        case 0xffed: // APP13\n        case 0xffee: // APP14\n        case 0xffef: // APP15\n        case 0xfffe: // COM (Comment)\n          const appData = readDataBlock();\n\n          if (fileMarker === 0xffe0) {\n            // 'JFIF\\x00'\n            if (\n              appData[0] === 0x4a &&\n              appData[1] === 0x46 &&\n              appData[2] === 0x49 &&\n              appData[3] === 0x46 &&\n              appData[4] === 0\n            ) {\n              jfif = {\n                version: { major: appData[5], minor: appData[6] },\n                densityUnits: appData[7],\n                xDensity: (appData[8] << 8) | appData[9],\n                yDensity: (appData[10] << 8) | appData[11],\n                thumbWidth: appData[12],\n                thumbHeight: appData[13],\n                thumbData: appData.subarray(\n                  14,\n                  14 + 3 * appData[12] * appData[13]\n                ),\n              };\n            }\n          }\n          // TODO APP1 - Exif\n          if (fileMarker === 0xffee) {\n            // 'Adobe'\n            if (\n              appData[0] === 0x41 &&\n              appData[1] === 0x64 &&\n              appData[2] === 0x6f &&\n              appData[3] === 0x62 &&\n              appData[4] === 0x65\n            ) {\n              adobe = {\n                version: (appData[5] << 8) | appData[6],\n                flags0: (appData[7] << 8) | appData[8],\n                flags1: (appData[9] << 8) | appData[10],\n                transformCode: appData[11],\n              };\n            }\n          }\n          break;\n\n        case 0xffdb: // DQT (Define Quantization Tables)\n          const quantizationTablesLength = readUint16(data, offset);\n          offset += 2;\n          const quantizationTablesEnd = quantizationTablesLength + offset - 2;\n          let z;\n          while (offset < quantizationTablesEnd) {\n            const quantizationTableSpec = data[offset++];\n            const tableData = new Uint16Array(64);\n            if (quantizationTableSpec >> 4 === 0) {\n              // 8 bit values\n              for (j = 0; j < 64; j++) {\n                z = dctZigZag[j];\n                tableData[z] = data[offset++];\n              }\n            } else if (quantizationTableSpec >> 4 === 1) {\n              // 16 bit values\n              for (j = 0; j < 64; j++) {\n                z = dctZigZag[j];\n                tableData[z] = readUint16(data, offset);\n                offset += 2;\n              }\n            } else {\n              throw new JpegError(\"DQT - invalid table spec\");\n            }\n            quantizationTables[quantizationTableSpec & 15] = tableData;\n          }\n          break;\n\n        case 0xffc0: // SOF0 (Start of Frame, Baseline DCT)\n        case 0xffc1: // SOF1 (Start of Frame, Extended DCT)\n        case 0xffc2: // SOF2 (Start of Frame, Progressive DCT)\n          if (frame) {\n            throw new JpegError(\"Only single frame JPEGs supported\");\n          }\n          offset += 2; // Skip marker length.\n\n          frame = {};\n          frame.extended = fileMarker === 0xffc1;\n          frame.progressive = fileMarker === 0xffc2;\n          frame.precision = data[offset++];\n          const sofScanLines = readUint16(data, offset);\n          offset += 2;\n          frame.scanLines = dnlScanLines || sofScanLines;\n          frame.samplesPerLine = readUint16(data, offset);\n          offset += 2;\n          frame.components = [];\n          frame.componentIds = {};\n          const componentsCount = data[offset++];\n          let maxH = 0,\n            maxV = 0;\n          for (i = 0; i < componentsCount; i++) {\n            const componentId = data[offset];\n            const h = data[offset + 1] >> 4;\n            const v = data[offset + 1] & 15;\n            if (maxH < h) {\n              maxH = h;\n            }\n            if (maxV < v) {\n              maxV = v;\n            }\n            const qId = data[offset + 2];\n            l = frame.components.push({\n              h,\n              v,\n              quantizationId: qId,\n              quantizationTable: null, // See comment below.\n            });\n            frame.componentIds[componentId] = l - 1;\n            offset += 3;\n          }\n          frame.maxH = maxH;\n          frame.maxV = maxV;\n          prepareComponents(frame);\n          break;\n\n        case 0xffc4: // DHT (Define Huffman Tables)\n          const huffmanLength = readUint16(data, offset);\n          offset += 2;\n          for (i = 2; i < huffmanLength; ) {\n            const huffmanTableSpec = data[offset++];\n            const codeLengths = new Uint8Array(16);\n            let codeLengthSum = 0;\n            for (j = 0; j < 16; j++, offset++) {\n              codeLengthSum += codeLengths[j] = data[offset];\n            }\n            const huffmanValues = new Uint8Array(codeLengthSum);\n            for (j = 0; j < codeLengthSum; j++, offset++) {\n              huffmanValues[j] = data[offset];\n            }\n            i += 17 + codeLengthSum;\n\n            (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[\n              huffmanTableSpec & 15\n            ] = buildHuffmanTable(codeLengths, huffmanValues);\n          }\n          break;\n\n        case 0xffdd: // DRI (Define Restart Interval)\n          offset += 2; // Skip marker length.\n\n          resetInterval = readUint16(data, offset);\n          offset += 2;\n          break;\n\n        case 0xffda: // SOS (Start of Scan)\n          // A DNL marker (0xFFDC), if it exists, is only allowed at the end\n          // of the first scan segment and may only occur once in an image.\n          // Furthermore, to prevent an infinite loop, do *not* attempt to\n          // parse DNL markers during re-parsing of the JPEG scan data.\n          const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;\n\n          offset += 2; // Skip marker length.\n\n          const selectorsCount = data[offset++],\n            components = [];\n          for (i = 0; i < selectorsCount; i++) {\n            const index = data[offset++];\n            const componentIndex = frame.componentIds[index];\n            const component = frame.components[componentIndex];\n            component.index = index;\n            const tableSpec = data[offset++];\n            component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n            component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n            components.push(component);\n          }\n          const spectralStart = data[offset++],\n            spectralEnd = data[offset++],\n            successiveApproximation = data[offset++];\n          try {\n            const processed = decodeScan(\n              data,\n              offset,\n              frame,\n              components,\n              resetInterval,\n              spectralStart,\n              spectralEnd,\n              successiveApproximation >> 4,\n              successiveApproximation & 15,\n              parseDNLMarker\n            );\n            offset += processed;\n          } catch (ex) {\n            if (ex instanceof DNLMarkerError) {\n              warn(`${ex.message} -- attempting to re-parse the JPEG image.`);\n              return this.parse(data, { dnlScanLines: ex.scanLines });\n            } else if (ex instanceof EOIMarkerError) {\n              warn(`${ex.message} -- ignoring the rest of the image data.`);\n              break markerLoop;\n            }\n            throw ex;\n          }\n          break;\n\n        case 0xffdc: // DNL (Define Number of Lines)\n          // Ignore the marker, since it's being handled in `decodeScan`.\n          offset += 4;\n          break;\n\n        case 0xffff: // Fill bytes\n          if (data[offset] !== 0xff) {\n            // Avoid skipping a valid marker.\n            offset--;\n          }\n          break;\n\n        default:\n          // Could be incorrect encoding -- the last 0xFF byte of the previous\n          // block could have been eaten by the encoder, hence we fallback to\n          // `startPos = offset - 3` when looking for the next valid marker.\n          const nextFileMarker = findNextFileMarker(\n            data,\n            /* currentPos = */ offset - 2,\n            /* startPos = */ offset - 3\n          );\n          if (nextFileMarker?.invalid) {\n            warn(\n              \"JpegImage.parse - unexpected data, current marker is: \" +\n                nextFileMarker.invalid\n            );\n            offset = nextFileMarker.offset;\n            break;\n          }\n          if (!nextFileMarker || offset >= data.length - 1) {\n            warn(\n              \"JpegImage.parse - reached the end of the image data \" +\n                \"without finding an EOI marker (0xFFD9).\"\n            );\n            break markerLoop;\n          }\n          throw new JpegError(\n            \"JpegImage.parse - unknown marker: \" + fileMarker.toString(16)\n          );\n      }\n      fileMarker = readUint16(data, offset);\n      offset += 2;\n    }\n\n    if (!frame) {\n      throw new JpegError(\"JpegImage.parse - no frame data found.\");\n    }\n    this.width = frame.samplesPerLine;\n    this.height = frame.scanLines;\n    this.jfif = jfif;\n    this.adobe = adobe;\n    this.components = [];\n    for (const component of frame.components) {\n      // Prevent errors when DQT markers are placed after SOF{n} markers,\n      // by assigning the `quantizationTable` entry after the entire image\n      // has been parsed (fixes issue7406.pdf).\n      const quantizationTable = quantizationTables[component.quantizationId];\n      if (quantizationTable) {\n        component.quantizationTable = quantizationTable;\n      }\n\n      this.components.push({\n        index: component.index,\n        output: buildComponentData(frame, component),\n        scaleX: component.h / frame.maxH,\n        scaleY: component.v / frame.maxV,\n        blocksPerLine: component.blocksPerLine,\n        blocksPerColumn: component.blocksPerColumn,\n      });\n    }\n    this.numComponents = this.components.length;\n    return undefined;\n  }\n\n  _getLinearizedBlockData(width, height, isSourcePDF = false) {\n    const scaleX = this.width / width,\n      scaleY = this.height / height;\n\n    let component, componentScaleX, componentScaleY, blocksPerScanline;\n    let x, y, i, j, k;\n    let index;\n    let offset = 0;\n    let output;\n    const numComponents = this.components.length;\n    const dataLength = width * height * numComponents;\n    const data = new Uint8ClampedArray(dataLength);\n    const xScaleBlockOffset = new Uint32Array(width);\n    const mask3LSB = 0xfffffff8; // used to clear the 3 LSBs\n    let lastComponentScaleX;\n\n    for (i = 0; i < numComponents; i++) {\n      component = this.components[i];\n      componentScaleX = component.scaleX * scaleX;\n      componentScaleY = component.scaleY * scaleY;\n      offset = i;\n      output = component.output;\n      blocksPerScanline = (component.blocksPerLine + 1) << 3;\n      // Precalculate the `xScaleBlockOffset`. Since it doesn't depend on the\n      // component data, that's only necessary when `componentScaleX` changes.\n      if (componentScaleX !== lastComponentScaleX) {\n        for (x = 0; x < width; x++) {\n          j = 0 | (x * componentScaleX);\n          xScaleBlockOffset[x] = ((j & mask3LSB) << 3) | (j & 7);\n        }\n        lastComponentScaleX = componentScaleX;\n      }\n      // linearize the blocks of the component\n      for (y = 0; y < height; y++) {\n        j = 0 | (y * componentScaleY);\n        index = (blocksPerScanline * (j & mask3LSB)) | ((j & 7) << 3);\n        for (x = 0; x < width; x++) {\n          data[offset] = output[index + xScaleBlockOffset[x]];\n          offset += numComponents;\n        }\n      }\n    }\n\n    // decodeTransform contains pairs of multiplier (-256..256) and additive\n    let transform = this._decodeTransform;\n\n    // In PDF files, JPEG images with CMYK colour spaces are usually inverted\n    // (this can be observed by extracting the raw image data).\n    // Since the conversion algorithms (see below) were written primarily for\n    // the PDF use-cases, attempting to use `JpegImage` to parse standalone\n    // JPEG (CMYK) images may thus result in inverted images (see issue 9513).\n    //\n    // Unfortunately it's not (always) possible to tell, from the image data\n    // alone, if it needs to be inverted. Thus in an attempt to provide better\n    // out-of-box behaviour when `JpegImage` is used standalone, default to\n    // inverting JPEG (CMYK) images if and only if the image data does *not*\n    // come from a PDF file and no `decodeTransform` was passed by the user.\n    if (!isSourcePDF && numComponents === 4 && !transform) {\n      transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]);\n    }\n\n    if (transform) {\n      for (i = 0; i < dataLength; ) {\n        for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n          data[i] = ((data[i] * transform[k]) >> 8) + transform[k + 1];\n        }\n      }\n    }\n    return data;\n  }\n\n  get _isColorConversionNeeded() {\n    if (this.adobe) {\n      // The adobe transform marker overrides any previous setting.\n      return !!this.adobe.transformCode;\n    }\n    if (this.numComponents === 3) {\n      if (this._colorTransform === 0) {\n        // If the Adobe transform marker is not present and the image\n        // dictionary has a 'ColorTransform' entry, explicitly set to `0`,\n        // then the colours should *not* be transformed.\n        return false;\n      } else if (\n        this.components[0].index === /* \"R\" = */ 0x52 &&\n        this.components[1].index === /* \"G\" = */ 0x47 &&\n        this.components[2].index === /* \"B\" = */ 0x42\n      ) {\n        // If the three components are indexed as RGB in ASCII\n        // then the colours should *not* be transformed.\n        return false;\n      }\n      return true;\n    }\n    // `this.numComponents !== 3`\n    if (this._colorTransform === 1) {\n      // If the Adobe transform marker is not present and the image\n      // dictionary has a 'ColorTransform' entry, explicitly set to `1`,\n      // then the colours should be transformed.\n      return true;\n    }\n    return false;\n  }\n\n  _convertYccToRgb(data) {\n    let Y, Cb, Cr;\n    for (let i = 0, length = data.length; i < length; i += 3) {\n      Y = data[i];\n      Cb = data[i + 1];\n      Cr = data[i + 2];\n      data[i] = Y - 179.456 + 1.402 * Cr;\n      data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n      data[i + 2] = Y - 226.816 + 1.772 * Cb;\n    }\n    return data;\n  }\n\n  _convertYccToRgba(data, out) {\n    for (let i = 0, j = 0, length = data.length; i < length; i += 3, j += 4) {\n      const Y = data[i];\n      const Cb = data[i + 1];\n      const Cr = data[i + 2];\n      out[j] = Y - 179.456 + 1.402 * Cr;\n      out[j + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n      out[j + 2] = Y - 226.816 + 1.772 * Cb;\n      out[j + 3] = 255;\n    }\n    return out;\n  }\n\n  _convertYcckToRgb(data) {\n    let Y, Cb, Cr, k;\n    let offset = 0;\n    for (let i = 0, length = data.length; i < length; i += 4) {\n      Y = data[i];\n      Cb = data[i + 1];\n      Cr = data[i + 2];\n      k = data[i + 3];\n\n      data[offset++] =\n        -122.67195406894 +\n        Cb *\n          (-6.60635669420364e-5 * Cb +\n            0.000437130475926232 * Cr -\n            5.4080610064599e-5 * Y +\n            0.00048449797120281 * k -\n            0.154362151871126) +\n        Cr *\n          (-0.000957964378445773 * Cr +\n            0.000817076911346625 * Y -\n            0.00477271405408747 * k +\n            1.53380253221734) +\n        Y *\n          (0.000961250184130688 * Y -\n            0.00266257332283933 * k +\n            0.48357088451265) +\n        k * (-0.000336197177618394 * k + 0.484791561490776);\n\n      data[offset++] =\n        107.268039397724 +\n        Cb *\n          (2.19927104525741e-5 * Cb -\n            0.000640992018297945 * Cr +\n            0.000659397001245577 * Y +\n            0.000426105652938837 * k -\n            0.176491792462875) +\n        Cr *\n          (-0.000778269941513683 * Cr +\n            0.00130872261408275 * Y +\n            0.000770482631801132 * k -\n            0.151051492775562) +\n        Y *\n          (0.00126935368114843 * Y -\n            0.00265090189010898 * k +\n            0.25802910206845) +\n        k * (-0.000318913117588328 * k - 0.213742400323665);\n\n      data[offset++] =\n        -20.810012546947 +\n        Cb *\n          (-0.000570115196973677 * Cb -\n            2.63409051004589e-5 * Cr +\n            0.0020741088115012 * Y -\n            0.00288260236853442 * k +\n            0.814272968359295) +\n        Cr *\n          (-1.53496057440975e-5 * Cr -\n            0.000132689043961446 * Y +\n            0.000560833691242812 * k -\n            0.195152027534049) +\n        Y *\n          (0.00174418132927582 * Y -\n            0.00255243321439347 * k +\n            0.116935020465145) +\n        k * (-0.000343531996510555 * k + 0.24165260232407);\n    }\n    // Ensure that only the converted RGB data is returned.\n    return data.subarray(0, offset);\n  }\n\n  _convertYcckToRgba(data) {\n    for (let i = 0, length = data.length; i < length; i += 4) {\n      const Y = data[i];\n      const Cb = data[i + 1];\n      const Cr = data[i + 2];\n      const k = data[i + 3];\n\n      data[i] =\n        -122.67195406894 +\n        Cb *\n          (-6.60635669420364e-5 * Cb +\n            0.000437130475926232 * Cr -\n            5.4080610064599e-5 * Y +\n            0.00048449797120281 * k -\n            0.154362151871126) +\n        Cr *\n          (-0.000957964378445773 * Cr +\n            0.000817076911346625 * Y -\n            0.00477271405408747 * k +\n            1.53380253221734) +\n        Y *\n          (0.000961250184130688 * Y -\n            0.00266257332283933 * k +\n            0.48357088451265) +\n        k * (-0.000336197177618394 * k + 0.484791561490776);\n\n      data[i + 1] =\n        107.268039397724 +\n        Cb *\n          (2.19927104525741e-5 * Cb -\n            0.000640992018297945 * Cr +\n            0.000659397001245577 * Y +\n            0.000426105652938837 * k -\n            0.176491792462875) +\n        Cr *\n          (-0.000778269941513683 * Cr +\n            0.00130872261408275 * Y +\n            0.000770482631801132 * k -\n            0.151051492775562) +\n        Y *\n          (0.00126935368114843 * Y -\n            0.00265090189010898 * k +\n            0.25802910206845) +\n        k * (-0.000318913117588328 * k - 0.213742400323665);\n\n      data[i + 2] =\n        -20.810012546947 +\n        Cb *\n          (-0.000570115196973677 * Cb -\n            2.63409051004589e-5 * Cr +\n            0.0020741088115012 * Y -\n            0.00288260236853442 * k +\n            0.814272968359295) +\n        Cr *\n          (-1.53496057440975e-5 * Cr -\n            0.000132689043961446 * Y +\n            0.000560833691242812 * k -\n            0.195152027534049) +\n        Y *\n          (0.00174418132927582 * Y -\n            0.00255243321439347 * k +\n            0.116935020465145) +\n        k * (-0.000343531996510555 * k + 0.24165260232407);\n      data[i + 3] = 255;\n    }\n    return data;\n  }\n\n  _convertYcckToCmyk(data) {\n    let Y, Cb, Cr;\n    for (let i = 0, length = data.length; i < length; i += 4) {\n      Y = data[i];\n      Cb = data[i + 1];\n      Cr = data[i + 2];\n      data[i] = 434.456 - Y - 1.402 * Cr;\n      data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;\n      data[i + 2] = 481.816 - Y - 1.772 * Cb;\n      // K in data[i + 3] is unchanged\n    }\n    return data;\n  }\n\n  _convertCmykToRgb(data) {\n    let c, m, y, k;\n    let offset = 0;\n    for (let i = 0, length = data.length; i < length; i += 4) {\n      c = data[i];\n      m = data[i + 1];\n      y = data[i + 2];\n      k = data[i + 3];\n\n      data[offset++] =\n        255 +\n        c *\n          (-0.00006747147073602441 * c +\n            0.0008379262121013727 * m +\n            0.0002894718188643294 * y +\n            0.003264231057537806 * k -\n            1.1185611867203937) +\n        m *\n          (0.000026374107616089405 * m -\n            0.00008626949158638572 * y -\n            0.0002748769067499491 * k -\n            0.02155688794978967) +\n        y *\n          (-0.00003878099212869363 * y -\n            0.0003267808279485286 * k +\n            0.0686742238595345) -\n        k * (0.0003361971776183937 * k + 0.7430659151342254);\n\n      data[offset++] =\n        255 +\n        c *\n          (0.00013596372813588848 * c +\n            0.000924537132573585 * m +\n            0.00010567359618683593 * y +\n            0.0004791864687436512 * k -\n            0.3109689587515875) +\n        m *\n          (-0.00023545346108370344 * m +\n            0.0002702845253534714 * y +\n            0.0020200308977307156 * k -\n            0.7488052167015494) +\n        y *\n          (0.00006834815998235662 * y +\n            0.00015168452363460973 * k -\n            0.09751927774728933) -\n        k * (0.0003189131175883281 * k + 0.7364883807733168);\n\n      data[offset++] =\n        255 +\n        c *\n          (0.000013598650411385307 * c +\n            0.00012423956175490851 * m +\n            0.0004751985097583589 * y -\n            0.0000036729317476630422 * k -\n            0.05562186980264034) +\n        m *\n          (0.00016141380598724676 * m +\n            0.0009692239130725186 * y +\n            0.0007782692450036253 * k -\n            0.44015232367526463) +\n        y *\n          (5.068882914068769e-7 * y +\n            0.0017778369011375071 * k -\n            0.7591454649749609) -\n        k * (0.0003435319965105553 * k + 0.7063770186160144);\n    }\n    // Ensure that only the converted RGB data is returned.\n    return data.subarray(0, offset);\n  }\n\n  _convertCmykToRgba(data) {\n    for (let i = 0, length = data.length; i < length; i += 4) {\n      const c = data[i];\n      const m = data[i + 1];\n      const y = data[i + 2];\n      const k = data[i + 3];\n\n      data[i] =\n        255 +\n        c *\n          (-0.00006747147073602441 * c +\n            0.0008379262121013727 * m +\n            0.0002894718188643294 * y +\n            0.003264231057537806 * k -\n            1.1185611867203937) +\n        m *\n          (0.000026374107616089405 * m -\n            0.00008626949158638572 * y -\n            0.0002748769067499491 * k -\n            0.02155688794978967) +\n        y *\n          (-0.00003878099212869363 * y -\n            0.0003267808279485286 * k +\n            0.0686742238595345) -\n        k * (0.0003361971776183937 * k + 0.7430659151342254);\n\n      data[i + 1] =\n        255 +\n        c *\n          (0.00013596372813588848 * c +\n            0.000924537132573585 * m +\n            0.00010567359618683593 * y +\n            0.0004791864687436512 * k -\n            0.3109689587515875) +\n        m *\n          (-0.00023545346108370344 * m +\n            0.0002702845253534714 * y +\n            0.0020200308977307156 * k -\n            0.7488052167015494) +\n        y *\n          (0.00006834815998235662 * y +\n            0.00015168452363460973 * k -\n            0.09751927774728933) -\n        k * (0.0003189131175883281 * k + 0.7364883807733168);\n\n      data[i + 2] =\n        255 +\n        c *\n          (0.000013598650411385307 * c +\n            0.00012423956175490851 * m +\n            0.0004751985097583589 * y -\n            0.0000036729317476630422 * k -\n            0.05562186980264034) +\n        m *\n          (0.00016141380598724676 * m +\n            0.0009692239130725186 * y +\n            0.0007782692450036253 * k -\n            0.44015232367526463) +\n        y *\n          (5.068882914068769e-7 * y +\n            0.0017778369011375071 * k -\n            0.7591454649749609) -\n        k * (0.0003435319965105553 * k + 0.7063770186160144);\n      data[i + 3] = 255;\n    }\n    return data;\n  }\n\n  getData({\n    width,\n    height,\n    forceRGBA = false,\n    forceRGB = false,\n    isSourcePDF = false,\n  }) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        isSourcePDF === true,\n        'JpegImage.getData: Unexpected \"isSourcePDF\" value for PDF files.'\n      );\n    }\n    if (this.numComponents > 4) {\n      throw new JpegError(\"Unsupported color mode\");\n    }\n    // Type of data: Uint8ClampedArray(width * height * numComponents)\n    const data = this._getLinearizedBlockData(width, height, isSourcePDF);\n\n    if (this.numComponents === 1 && (forceRGBA || forceRGB)) {\n      const len = data.length * (forceRGBA ? 4 : 3);\n      const rgbaData = new Uint8ClampedArray(len);\n      let offset = 0;\n      if (forceRGBA) {\n        grayToRGBA(data, new Uint32Array(rgbaData.buffer));\n      } else {\n        for (const grayColor of data) {\n          rgbaData[offset++] = grayColor;\n          rgbaData[offset++] = grayColor;\n          rgbaData[offset++] = grayColor;\n        }\n      }\n      return rgbaData;\n    } else if (this.numComponents === 3 && this._isColorConversionNeeded) {\n      if (forceRGBA) {\n        const rgbaData = new Uint8ClampedArray((data.length / 3) * 4);\n        return this._convertYccToRgba(data, rgbaData);\n      }\n      return this._convertYccToRgb(data);\n    } else if (this.numComponents === 4) {\n      if (this._isColorConversionNeeded) {\n        if (forceRGBA) {\n          return this._convertYcckToRgba(data);\n        }\n        if (forceRGB) {\n          return this._convertYcckToRgb(data);\n        }\n        return this._convertYcckToCmyk(data);\n      } else if (forceRGBA) {\n        return this._convertCmykToRgba(data);\n      } else if (forceRGB) {\n        return this._convertCmykToRgb(data);\n      }\n    }\n    return data;\n  }\n}\n\nexport { JpegImage };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\nimport { JpegImage } from \"./jpg.js\";\nimport { shadow } from \"../shared/util.js\";\n\n/**\n * For JPEG's we use a library to decode these images and the stream behaves\n * like all the other DecodeStreams.\n */\nclass JpegStream extends DecodeStream {\n  constructor(stream, maybeLength, params) {\n    // Some images may contain 'junk' before the SOI (start-of-image) marker.\n    // Note: this seems to mainly affect inline images.\n    let ch;\n    while ((ch = stream.getByte()) !== -1) {\n      // Find the first byte of the SOI marker (0xFFD8).\n      if (ch === 0xff) {\n        stream.skip(-1); // Reset the stream position to the SOI.\n        break;\n      }\n    }\n    super(maybeLength);\n\n    this.stream = stream;\n    this.dict = stream.dict;\n    this.maybeLength = maybeLength;\n    this.params = params;\n  }\n\n  get bytes() {\n    // If `this.maybeLength` is null, we'll get the entire stream.\n    return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n  }\n\n  ensureBuffer(requested) {\n    // No-op, since `this.readBlock` will always parse the entire image and\n    // directly insert all of its data into `this.buffer`.\n  }\n\n  readBlock() {\n    if (this.eof) {\n      return;\n    }\n    const jpegOptions = {\n      decodeTransform: undefined,\n      colorTransform: undefined,\n    };\n\n    // Checking if values need to be transformed before conversion.\n    const decodeArr = this.dict.getArray(\"D\", \"Decode\");\n    if ((this.forceRGBA || this.forceRGB) && Array.isArray(decodeArr)) {\n      const bitsPerComponent = this.dict.get(\"BPC\", \"BitsPerComponent\") || 8;\n      const decodeArrLength = decodeArr.length;\n      const transform = new Int32Array(decodeArrLength);\n      let transformNeeded = false;\n      const maxValue = (1 << bitsPerComponent) - 1;\n      for (let i = 0; i < decodeArrLength; i += 2) {\n        transform[i] = ((decodeArr[i + 1] - decodeArr[i]) * 256) | 0;\n        transform[i + 1] = (decodeArr[i] * maxValue) | 0;\n        if (transform[i] !== 256 || transform[i + 1] !== 0) {\n          transformNeeded = true;\n        }\n      }\n      if (transformNeeded) {\n        jpegOptions.decodeTransform = transform;\n      }\n    }\n    // Fetching the 'ColorTransform' entry, if it exists.\n    if (this.params instanceof Dict) {\n      const colorTransform = this.params.get(\"ColorTransform\");\n      if (Number.isInteger(colorTransform)) {\n        jpegOptions.colorTransform = colorTransform;\n      }\n    }\n    const jpegImage = new JpegImage(jpegOptions);\n\n    jpegImage.parse(this.bytes);\n    const data = jpegImage.getData({\n      width: this.drawWidth,\n      height: this.drawHeight,\n      forceRGBA: this.forceRGBA,\n      forceRGB: this.forceRGB,\n      isSourcePDF: true,\n    });\n    this.buffer = data;\n    this.bufferLength = data.length;\n    this.eof = true;\n  }\n}\n\nexport { JpegStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseException, info, unreachable, warn } from \"../shared/util.js\";\nimport { log2, readUint16, readUint32 } from \"./core_utils.js\";\nimport { ArithmeticDecoder } from \"./arithmetic_decoder.js\";\n\nclass JpxError extends BaseException {\n  constructor(msg) {\n    super(`JPX error: ${msg}`, \"JpxError\");\n  }\n}\n\n// Table E.1\nconst SubbandsGainLog2 = {\n  LL: 0,\n  LH: 1,\n  HL: 1,\n  HH: 2,\n};\n\nclass JpxImage {\n  constructor() {\n    this.failOnCorruptedImage = false;\n  }\n\n  parse(data) {\n    const head = readUint16(data, 0);\n    // No box header, immediate start of codestream (SOC)\n    if (head === 0xff4f) {\n      this.parseCodestream(data, 0, data.length);\n      return;\n    }\n\n    const length = data.length;\n    let position = 0;\n    while (position < length) {\n      let headerSize = 8;\n      let lbox = readUint32(data, position);\n      const tbox = readUint32(data, position + 4);\n      position += headerSize;\n      if (lbox === 1) {\n        // XLBox: read UInt64 according to spec.\n        // JavaScript's int precision of 53 bit should be sufficient here.\n        lbox =\n          readUint32(data, position) * 4294967296 +\n          readUint32(data, position + 4);\n        position += 8;\n        headerSize += 8;\n      }\n      if (lbox === 0) {\n        lbox = length - position + headerSize;\n      }\n      if (lbox < headerSize) {\n        throw new JpxError(\"Invalid box field size\");\n      }\n      const dataLength = lbox - headerSize;\n      let jumpDataLength = true;\n      switch (tbox) {\n        case 0x6a703268: // 'jp2h'\n          jumpDataLength = false; // parsing child boxes\n          break;\n        case 0x636f6c72: // 'colr'\n          // Colorspaces are not used, the CS from the PDF is used.\n          const method = data[position];\n          if (method === 1) {\n            // enumerated colorspace\n            const colorspace = readUint32(data, position + 3);\n            switch (colorspace) {\n              case 16: // this indicates a sRGB colorspace\n              case 17: // this indicates a grayscale colorspace\n              case 18: // this indicates a YUV colorspace\n                break;\n              default:\n                warn(\"Unknown colorspace \" + colorspace);\n                break;\n            }\n          } else if (method === 2) {\n            info(\"ICC profile not supported\");\n          }\n          break;\n        case 0x6a703263: // 'jp2c'\n          this.parseCodestream(data, position, position + dataLength);\n          break;\n        case 0x6a502020: // 'jP\\024\\024'\n          if (readUint32(data, position) !== 0x0d0a870a) {\n            warn(\"Invalid JP2 signature\");\n          }\n          break;\n        // The following header types are valid but currently not used:\n        case 0x6a501a1a: // 'jP\\032\\032'\n        case 0x66747970: // 'ftyp'\n        case 0x72726571: // 'rreq'\n        case 0x72657320: // 'res '\n        case 0x69686472: // 'ihdr'\n          break;\n        default:\n          const headerType = String.fromCharCode(\n            (tbox >> 24) & 0xff,\n            (tbox >> 16) & 0xff,\n            (tbox >> 8) & 0xff,\n            tbox & 0xff\n          );\n          warn(`Unsupported header type ${tbox} (${headerType}).`);\n          break;\n      }\n      if (jumpDataLength) {\n        position += dataLength;\n      }\n    }\n  }\n\n  parseImageProperties(stream) {\n    let newByte = stream.getByte();\n    while (newByte >= 0) {\n      const oldByte = newByte;\n      newByte = stream.getByte();\n      const code = (oldByte << 8) | newByte;\n      // Image and tile size (SIZ)\n      if (code === 0xff51) {\n        stream.skip(4);\n        const Xsiz = stream.getInt32() >>> 0; // Byte 4\n        const Ysiz = stream.getInt32() >>> 0; // Byte 8\n        const XOsiz = stream.getInt32() >>> 0; // Byte 12\n        const YOsiz = stream.getInt32() >>> 0; // Byte 16\n        stream.skip(16);\n        const Csiz = stream.getUint16(); // Byte 36\n        this.width = Xsiz - XOsiz;\n        this.height = Ysiz - YOsiz;\n        this.componentsCount = Csiz;\n        // Results are always returned as `Uint8ClampedArray`s.\n        this.bitsPerComponent = 8;\n        return;\n      }\n    }\n    throw new JpxError(\"No size marker found in JPX stream\");\n  }\n\n  parseCodestream(data, start, end) {\n    const context = {};\n    let doNotRecover = false;\n    try {\n      let position = start;\n      while (position + 1 < end) {\n        const code = readUint16(data, position);\n        position += 2;\n\n        let length = 0,\n          j,\n          sqcd,\n          spqcds,\n          spqcdSize,\n          scalarExpounded,\n          tile;\n        switch (code) {\n          case 0xff4f: // Start of codestream (SOC)\n            context.mainHeader = true;\n            break;\n          case 0xffd9: // End of codestream (EOC)\n            break;\n          case 0xff51: // Image and tile size (SIZ)\n            length = readUint16(data, position);\n            const siz = {};\n            siz.Xsiz = readUint32(data, position + 4);\n            siz.Ysiz = readUint32(data, position + 8);\n            siz.XOsiz = readUint32(data, position + 12);\n            siz.YOsiz = readUint32(data, position + 16);\n            siz.XTsiz = readUint32(data, position + 20);\n            siz.YTsiz = readUint32(data, position + 24);\n            siz.XTOsiz = readUint32(data, position + 28);\n            siz.YTOsiz = readUint32(data, position + 32);\n            const componentsCount = readUint16(data, position + 36);\n            siz.Csiz = componentsCount;\n            const components = [];\n            j = position + 38;\n            for (let i = 0; i < componentsCount; i++) {\n              const component = {\n                precision: (data[j] & 0x7f) + 1,\n                isSigned: !!(data[j] & 0x80),\n                XRsiz: data[j + 1],\n                YRsiz: data[j + 2],\n              };\n              j += 3;\n              calculateComponentDimensions(component, siz);\n              components.push(component);\n            }\n            context.SIZ = siz;\n            context.components = components;\n            calculateTileGrids(context, components);\n            context.QCC = [];\n            context.COC = [];\n            break;\n          case 0xff5c: // Quantization default (QCD)\n            length = readUint16(data, position);\n            const qcd = {};\n            j = position + 2;\n            sqcd = data[j++];\n            switch (sqcd & 0x1f) {\n              case 0:\n                spqcdSize = 8;\n                scalarExpounded = true;\n                break;\n              case 1:\n                spqcdSize = 16;\n                scalarExpounded = false;\n                break;\n              case 2:\n                spqcdSize = 16;\n                scalarExpounded = true;\n                break;\n              default:\n                throw new Error(\"Invalid SQcd value \" + sqcd);\n            }\n            qcd.noQuantization = spqcdSize === 8;\n            qcd.scalarExpounded = scalarExpounded;\n            qcd.guardBits = sqcd >> 5;\n            spqcds = [];\n            while (j < length + position) {\n              const spqcd = {};\n              if (spqcdSize === 8) {\n                spqcd.epsilon = data[j++] >> 3;\n                spqcd.mu = 0;\n              } else {\n                spqcd.epsilon = data[j] >> 3;\n                spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];\n                j += 2;\n              }\n              spqcds.push(spqcd);\n            }\n            qcd.SPqcds = spqcds;\n            if (context.mainHeader) {\n              context.QCD = qcd;\n            } else {\n              context.currentTile.QCD = qcd;\n              context.currentTile.QCC = [];\n            }\n            break;\n          case 0xff5d: // Quantization component (QCC)\n            length = readUint16(data, position);\n            const qcc = {};\n            j = position + 2;\n            let cqcc;\n            if (context.SIZ.Csiz < 257) {\n              cqcc = data[j++];\n            } else {\n              cqcc = readUint16(data, j);\n              j += 2;\n            }\n            sqcd = data[j++];\n            switch (sqcd & 0x1f) {\n              case 0:\n                spqcdSize = 8;\n                scalarExpounded = true;\n                break;\n              case 1:\n                spqcdSize = 16;\n                scalarExpounded = false;\n                break;\n              case 2:\n                spqcdSize = 16;\n                scalarExpounded = true;\n                break;\n              default:\n                throw new Error(\"Invalid SQcd value \" + sqcd);\n            }\n            qcc.noQuantization = spqcdSize === 8;\n            qcc.scalarExpounded = scalarExpounded;\n            qcc.guardBits = sqcd >> 5;\n            spqcds = [];\n            while (j < length + position) {\n              const spqcd = {};\n              if (spqcdSize === 8) {\n                spqcd.epsilon = data[j++] >> 3;\n                spqcd.mu = 0;\n              } else {\n                spqcd.epsilon = data[j] >> 3;\n                spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];\n                j += 2;\n              }\n              spqcds.push(spqcd);\n            }\n            qcc.SPqcds = spqcds;\n            if (context.mainHeader) {\n              context.QCC[cqcc] = qcc;\n            } else {\n              context.currentTile.QCC[cqcc] = qcc;\n            }\n            break;\n          case 0xff52: // Coding style default (COD)\n            length = readUint16(data, position);\n            const cod = {};\n            j = position + 2;\n            const scod = data[j++];\n            cod.entropyCoderWithCustomPrecincts = !!(scod & 1);\n            cod.sopMarkerUsed = !!(scod & 2);\n            cod.ephMarkerUsed = !!(scod & 4);\n            cod.progressionOrder = data[j++];\n            cod.layersCount = readUint16(data, j);\n            j += 2;\n            cod.multipleComponentTransform = data[j++];\n\n            cod.decompositionLevelsCount = data[j++];\n            cod.xcb = (data[j++] & 0xf) + 2;\n            cod.ycb = (data[j++] & 0xf) + 2;\n            const blockStyle = data[j++];\n            cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1);\n            cod.resetContextProbabilities = !!(blockStyle & 2);\n            cod.terminationOnEachCodingPass = !!(blockStyle & 4);\n            cod.verticallyStripe = !!(blockStyle & 8);\n            cod.predictableTermination = !!(blockStyle & 16);\n            cod.segmentationSymbolUsed = !!(blockStyle & 32);\n            cod.reversibleTransformation = data[j++];\n            if (cod.entropyCoderWithCustomPrecincts) {\n              const precinctsSizes = [];\n              while (j < length + position) {\n                const precinctsSize = data[j++];\n                precinctsSizes.push({\n                  PPx: precinctsSize & 0xf,\n                  PPy: precinctsSize >> 4,\n                });\n              }\n              cod.precinctsSizes = precinctsSizes;\n            }\n            const unsupported = [];\n            if (cod.selectiveArithmeticCodingBypass) {\n              unsupported.push(\"selectiveArithmeticCodingBypass\");\n            }\n            if (cod.terminationOnEachCodingPass) {\n              unsupported.push(\"terminationOnEachCodingPass\");\n            }\n            if (cod.verticallyStripe) {\n              unsupported.push(\"verticallyStripe\");\n            }\n            if (cod.predictableTermination) {\n              unsupported.push(\"predictableTermination\");\n            }\n            if (unsupported.length > 0) {\n              doNotRecover = true;\n              warn(`JPX: Unsupported COD options (${unsupported.join(\", \")}).`);\n            }\n            if (context.mainHeader) {\n              context.COD = cod;\n            } else {\n              context.currentTile.COD = cod;\n              context.currentTile.COC = [];\n            }\n            break;\n          case 0xff90: // Start of tile-part (SOT)\n            length = readUint16(data, position);\n            tile = {};\n            tile.index = readUint16(data, position + 2);\n            tile.length = readUint32(data, position + 4);\n            tile.dataEnd = tile.length + position - 2;\n            tile.partIndex = data[position + 8];\n            tile.partsCount = data[position + 9];\n\n            context.mainHeader = false;\n            if (tile.partIndex === 0) {\n              // reset component specific settings\n              tile.COD = context.COD;\n              tile.COC = context.COC.slice(0); // clone of the global COC\n              tile.QCD = context.QCD;\n              tile.QCC = context.QCC.slice(0); // clone of the global COC\n            }\n            context.currentTile = tile;\n            break;\n          case 0xff93: // Start of data (SOD)\n            tile = context.currentTile;\n            if (tile.partIndex === 0) {\n              initializeTile(context, tile.index);\n              buildPackets(context);\n            }\n\n            // moving to the end of the data\n            length = tile.dataEnd - position;\n            parseTilePackets(context, data, position, length);\n            break;\n          case 0xff53: // Coding style component (COC)\n            warn(\"JPX: Codestream code 0xFF53 (COC) is not implemented.\");\n          /* falls through */\n          case 0xff55: // Tile-part lengths, main header (TLM)\n          case 0xff57: // Packet length, main header (PLM)\n          case 0xff58: // Packet length, tile-part header (PLT)\n          case 0xff64: // Comment (COM)\n            length = readUint16(data, position);\n            // skipping content\n            break;\n          default:\n            throw new Error(\"Unknown codestream code: \" + code.toString(16));\n        }\n        position += length;\n      }\n    } catch (e) {\n      if (doNotRecover || this.failOnCorruptedImage) {\n        throw new JpxError(e.message);\n      } else {\n        warn(`JPX: Trying to recover from: \"${e.message}\".`);\n      }\n    }\n    this.tiles = transformComponents(context);\n    this.width = context.SIZ.Xsiz - context.SIZ.XOsiz;\n    this.height = context.SIZ.Ysiz - context.SIZ.YOsiz;\n    this.componentsCount = context.SIZ.Csiz;\n  }\n}\n\nfunction calculateComponentDimensions(component, siz) {\n  // Section B.2 Component mapping\n  component.x0 = Math.ceil(siz.XOsiz / component.XRsiz);\n  component.x1 = Math.ceil(siz.Xsiz / component.XRsiz);\n  component.y0 = Math.ceil(siz.YOsiz / component.YRsiz);\n  component.y1 = Math.ceil(siz.Ysiz / component.YRsiz);\n  component.width = component.x1 - component.x0;\n  component.height = component.y1 - component.y0;\n}\nfunction calculateTileGrids(context, components) {\n  const siz = context.SIZ;\n  // Section B.3 Division into tile and tile-components\n  const tiles = [];\n  let tile;\n  const numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);\n  const numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);\n  for (let q = 0; q < numYtiles; q++) {\n    for (let p = 0; p < numXtiles; p++) {\n      tile = {};\n      tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz);\n      tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz);\n      tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz);\n      tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz);\n      tile.width = tile.tx1 - tile.tx0;\n      tile.height = tile.ty1 - tile.ty0;\n      tile.components = [];\n      tiles.push(tile);\n    }\n  }\n  context.tiles = tiles;\n\n  const componentsCount = siz.Csiz;\n  for (let i = 0, ii = componentsCount; i < ii; i++) {\n    const component = components[i];\n    for (let j = 0, jj = tiles.length; j < jj; j++) {\n      const tileComponent = {};\n      tile = tiles[j];\n      tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz);\n      tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz);\n      tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz);\n      tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz);\n      tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0;\n      tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0;\n      tile.components[i] = tileComponent;\n    }\n  }\n}\nfunction getBlocksDimensions(context, component, r) {\n  const codOrCoc = component.codingStyleParameters;\n  const result = {};\n  if (!codOrCoc.entropyCoderWithCustomPrecincts) {\n    result.PPx = 15;\n    result.PPy = 15;\n  } else {\n    result.PPx = codOrCoc.precinctsSizes[r].PPx;\n    result.PPy = codOrCoc.precinctsSizes[r].PPy;\n  }\n  // calculate codeblock size as described in section B.7\n  result.xcb_ =\n    r > 0\n      ? Math.min(codOrCoc.xcb, result.PPx - 1)\n      : Math.min(codOrCoc.xcb, result.PPx);\n  result.ycb_ =\n    r > 0\n      ? Math.min(codOrCoc.ycb, result.PPy - 1)\n      : Math.min(codOrCoc.ycb, result.PPy);\n  return result;\n}\nfunction buildPrecincts(context, resolution, dimensions) {\n  // Section B.6 Division resolution to precincts\n  const precinctWidth = 1 << dimensions.PPx;\n  const precinctHeight = 1 << dimensions.PPy;\n  // Jasper introduces codeblock groups for mapping each subband codeblocks\n  // to precincts. Precinct partition divides a resolution according to width\n  // and height parameters. The subband that belongs to the resolution level\n  // has a different size than the level, unless it is the zero resolution.\n\n  // From Jasper documentation: jpeg2000.pdf, section K: Tier-2 coding:\n  // The precinct partitioning for a particular subband is derived from a\n  // partitioning of its parent LL band (i.e., the LL band at the next higher\n  // resolution level)... The LL band associated with each resolution level is\n  // divided into precincts... Each of the resulting precinct regions is then\n  // mapped into its child subbands (if any) at the next lower resolution\n  // level. This is accomplished by using the coordinate transformation\n  // (u, v) = (ceil(x/2), ceil(y/2)) where (x, y) and (u, v) are the\n  // coordinates of a point in the LL band and child subband, respectively.\n  const isZeroRes = resolution.resLevel === 0;\n  const precinctWidthInSubband = 1 << (dimensions.PPx + (isZeroRes ? 0 : -1));\n  const precinctHeightInSubband = 1 << (dimensions.PPy + (isZeroRes ? 0 : -1));\n  const numprecinctswide =\n    resolution.trx1 > resolution.trx0\n      ? Math.ceil(resolution.trx1 / precinctWidth) -\n        Math.floor(resolution.trx0 / precinctWidth)\n      : 0;\n  const numprecinctshigh =\n    resolution.try1 > resolution.try0\n      ? Math.ceil(resolution.try1 / precinctHeight) -\n        Math.floor(resolution.try0 / precinctHeight)\n      : 0;\n  const numprecincts = numprecinctswide * numprecinctshigh;\n\n  resolution.precinctParameters = {\n    precinctWidth,\n    precinctHeight,\n    numprecinctswide,\n    numprecinctshigh,\n    numprecincts,\n    precinctWidthInSubband,\n    precinctHeightInSubband,\n  };\n}\nfunction buildCodeblocks(context, subband, dimensions) {\n  // Section B.7 Division sub-band into code-blocks\n  const xcb_ = dimensions.xcb_;\n  const ycb_ = dimensions.ycb_;\n  const codeblockWidth = 1 << xcb_;\n  const codeblockHeight = 1 << ycb_;\n  const cbx0 = subband.tbx0 >> xcb_;\n  const cby0 = subband.tby0 >> ycb_;\n  const cbx1 = (subband.tbx1 + codeblockWidth - 1) >> xcb_;\n  const cby1 = (subband.tby1 + codeblockHeight - 1) >> ycb_;\n  const precinctParameters = subband.resolution.precinctParameters;\n  const codeblocks = [];\n  const precincts = [];\n  let i, j, codeblock, precinctNumber;\n  for (j = cby0; j < cby1; j++) {\n    for (i = cbx0; i < cbx1; i++) {\n      codeblock = {\n        cbx: i,\n        cby: j,\n        tbx0: codeblockWidth * i,\n        tby0: codeblockHeight * j,\n        tbx1: codeblockWidth * (i + 1),\n        tby1: codeblockHeight * (j + 1),\n      };\n\n      codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0);\n      codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0);\n      codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1);\n      codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1);\n\n      // Calculate precinct number for this codeblock, codeblock position\n      // should be relative to its subband, use actual dimension and position\n      // See comment about codeblock group width and height\n      const pi = Math.floor(\n        (codeblock.tbx0_ - subband.tbx0) /\n          precinctParameters.precinctWidthInSubband\n      );\n      const pj = Math.floor(\n        (codeblock.tby0_ - subband.tby0) /\n          precinctParameters.precinctHeightInSubband\n      );\n      precinctNumber = pi + pj * precinctParameters.numprecinctswide;\n\n      codeblock.precinctNumber = precinctNumber;\n      codeblock.subbandType = subband.type;\n      codeblock.Lblock = 3;\n\n      if (\n        codeblock.tbx1_ <= codeblock.tbx0_ ||\n        codeblock.tby1_ <= codeblock.tby0_\n      ) {\n        continue;\n      }\n      codeblocks.push(codeblock);\n      // building precinct for the sub-band\n      let precinct = precincts[precinctNumber];\n      if (precinct !== undefined) {\n        if (i < precinct.cbxMin) {\n          precinct.cbxMin = i;\n        } else if (i > precinct.cbxMax) {\n          precinct.cbxMax = i;\n        }\n        if (j < precinct.cbyMin) {\n          precinct.cbxMin = j;\n        } else if (j > precinct.cbyMax) {\n          precinct.cbyMax = j;\n        }\n      } else {\n        precincts[precinctNumber] = precinct = {\n          cbxMin: i,\n          cbyMin: j,\n          cbxMax: i,\n          cbyMax: j,\n        };\n      }\n      codeblock.precinct = precinct;\n    }\n  }\n  subband.codeblockParameters = {\n    codeblockWidth: xcb_,\n    codeblockHeight: ycb_,\n    numcodeblockwide: cbx1 - cbx0 + 1,\n    numcodeblockhigh: cby1 - cby0 + 1,\n  };\n  subband.codeblocks = codeblocks;\n  subband.precincts = precincts;\n}\nfunction createPacket(resolution, precinctNumber, layerNumber) {\n  const precinctCodeblocks = [];\n  // Section B.10.8 Order of info in packet\n  const subbands = resolution.subbands;\n  // sub-bands already ordered in 'LL', 'HL', 'LH', and 'HH' sequence\n  for (let i = 0, ii = subbands.length; i < ii; i++) {\n    const subband = subbands[i];\n    const codeblocks = subband.codeblocks;\n    for (let j = 0, jj = codeblocks.length; j < jj; j++) {\n      const codeblock = codeblocks[j];\n      if (codeblock.precinctNumber !== precinctNumber) {\n        continue;\n      }\n      precinctCodeblocks.push(codeblock);\n    }\n  }\n  return {\n    layerNumber,\n    codeblocks: precinctCodeblocks,\n  };\n}\nfunction LayerResolutionComponentPositionIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  let maxDecompositionLevelsCount = 0;\n  for (let q = 0; q < componentsCount; q++) {\n    maxDecompositionLevelsCount = Math.max(\n      maxDecompositionLevelsCount,\n      tile.components[q].codingStyleParameters.decompositionLevelsCount\n    );\n  }\n\n  let l = 0,\n    r = 0,\n    i = 0,\n    k = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    // Section B.12.1.1 Layer-resolution-component-position\n    for (; l < layersCount; l++) {\n      for (; r <= maxDecompositionLevelsCount; r++) {\n        for (; i < componentsCount; i++) {\n          const component = tile.components[i];\n          if (r > component.codingStyleParameters.decompositionLevelsCount) {\n            continue;\n          }\n\n          const resolution = component.resolutions[r];\n          const numprecincts = resolution.precinctParameters.numprecincts;\n          for (; k < numprecincts; ) {\n            const packet = createPacket(resolution, k, l);\n            k++;\n            return packet;\n          }\n          k = 0;\n        }\n        i = 0;\n      }\n      r = 0;\n    }\n    throw new JpxError(\"Out of packets\");\n  };\n}\nfunction ResolutionLayerComponentPositionIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  let maxDecompositionLevelsCount = 0;\n  for (let q = 0; q < componentsCount; q++) {\n    maxDecompositionLevelsCount = Math.max(\n      maxDecompositionLevelsCount,\n      tile.components[q].codingStyleParameters.decompositionLevelsCount\n    );\n  }\n\n  let r = 0,\n    l = 0,\n    i = 0,\n    k = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    // Section B.12.1.2 Resolution-layer-component-position\n    for (; r <= maxDecompositionLevelsCount; r++) {\n      for (; l < layersCount; l++) {\n        for (; i < componentsCount; i++) {\n          const component = tile.components[i];\n          if (r > component.codingStyleParameters.decompositionLevelsCount) {\n            continue;\n          }\n\n          const resolution = component.resolutions[r];\n          const numprecincts = resolution.precinctParameters.numprecincts;\n          for (; k < numprecincts; ) {\n            const packet = createPacket(resolution, k, l);\n            k++;\n            return packet;\n          }\n          k = 0;\n        }\n        i = 0;\n      }\n      l = 0;\n    }\n    throw new JpxError(\"Out of packets\");\n  };\n}\nfunction ResolutionPositionComponentLayerIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  let l, r, c, p;\n  let maxDecompositionLevelsCount = 0;\n  for (c = 0; c < componentsCount; c++) {\n    const component = tile.components[c];\n    maxDecompositionLevelsCount = Math.max(\n      maxDecompositionLevelsCount,\n      component.codingStyleParameters.decompositionLevelsCount\n    );\n  }\n  const maxNumPrecinctsInLevel = new Int32Array(\n    maxDecompositionLevelsCount + 1\n  );\n  for (r = 0; r <= maxDecompositionLevelsCount; ++r) {\n    let maxNumPrecincts = 0;\n    for (c = 0; c < componentsCount; ++c) {\n      const resolutions = tile.components[c].resolutions;\n      if (r < resolutions.length) {\n        maxNumPrecincts = Math.max(\n          maxNumPrecincts,\n          resolutions[r].precinctParameters.numprecincts\n        );\n      }\n    }\n    maxNumPrecinctsInLevel[r] = maxNumPrecincts;\n  }\n  l = 0;\n  r = 0;\n  c = 0;\n  p = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    // Section B.12.1.3 Resolution-position-component-layer\n    for (; r <= maxDecompositionLevelsCount; r++) {\n      for (; p < maxNumPrecinctsInLevel[r]; p++) {\n        for (; c < componentsCount; c++) {\n          const component = tile.components[c];\n          if (r > component.codingStyleParameters.decompositionLevelsCount) {\n            continue;\n          }\n          const resolution = component.resolutions[r];\n          const numprecincts = resolution.precinctParameters.numprecincts;\n          if (p >= numprecincts) {\n            continue;\n          }\n          for (; l < layersCount; ) {\n            const packet = createPacket(resolution, p, l);\n            l++;\n            return packet;\n          }\n          l = 0;\n        }\n        c = 0;\n      }\n      p = 0;\n    }\n    throw new JpxError(\"Out of packets\");\n  };\n}\nfunction PositionComponentResolutionLayerIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  const precinctsSizes = getPrecinctSizesInImageScale(tile);\n  const precinctsIterationSizes = precinctsSizes;\n  let l = 0,\n    r = 0,\n    c = 0,\n    px = 0,\n    py = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    // Section B.12.1.4 Position-component-resolution-layer\n    for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n      for (; px < precinctsIterationSizes.maxNumWide; px++) {\n        for (; c < componentsCount; c++) {\n          const component = tile.components[c];\n          const decompositionLevelsCount =\n            component.codingStyleParameters.decompositionLevelsCount;\n          for (; r <= decompositionLevelsCount; r++) {\n            const resolution = component.resolutions[r];\n            const sizeInImageScale =\n              precinctsSizes.components[c].resolutions[r];\n            const k = getPrecinctIndexIfExist(\n              px,\n              py,\n              sizeInImageScale,\n              precinctsIterationSizes,\n              resolution\n            );\n            if (k === null) {\n              continue;\n            }\n            for (; l < layersCount; ) {\n              const packet = createPacket(resolution, k, l);\n              l++;\n              return packet;\n            }\n            l = 0;\n          }\n          r = 0;\n        }\n        c = 0;\n      }\n      px = 0;\n    }\n    throw new JpxError(\"Out of packets\");\n  };\n}\nfunction ComponentPositionResolutionLayerIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  const precinctsSizes = getPrecinctSizesInImageScale(tile);\n  let l = 0,\n    r = 0,\n    c = 0,\n    px = 0,\n    py = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    // Section B.12.1.5 Component-position-resolution-layer\n    for (; c < componentsCount; ++c) {\n      const component = tile.components[c];\n      const precinctsIterationSizes = precinctsSizes.components[c];\n      const decompositionLevelsCount =\n        component.codingStyleParameters.decompositionLevelsCount;\n      for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n        for (; px < precinctsIterationSizes.maxNumWide; px++) {\n          for (; r <= decompositionLevelsCount; r++) {\n            const resolution = component.resolutions[r];\n            const sizeInImageScale = precinctsIterationSizes.resolutions[r];\n            const k = getPrecinctIndexIfExist(\n              px,\n              py,\n              sizeInImageScale,\n              precinctsIterationSizes,\n              resolution\n            );\n            if (k === null) {\n              continue;\n            }\n            for (; l < layersCount; ) {\n              const packet = createPacket(resolution, k, l);\n              l++;\n              return packet;\n            }\n            l = 0;\n          }\n          r = 0;\n        }\n        px = 0;\n      }\n      py = 0;\n    }\n    throw new JpxError(\"Out of packets\");\n  };\n}\nfunction getPrecinctIndexIfExist(\n  pxIndex,\n  pyIndex,\n  sizeInImageScale,\n  precinctIterationSizes,\n  resolution\n) {\n  const posX = pxIndex * precinctIterationSizes.minWidth;\n  const posY = pyIndex * precinctIterationSizes.minHeight;\n  if (\n    posX % sizeInImageScale.width !== 0 ||\n    posY % sizeInImageScale.height !== 0\n  ) {\n    return null;\n  }\n  const startPrecinctRowIndex =\n    (posY / sizeInImageScale.width) *\n    resolution.precinctParameters.numprecinctswide;\n  return posX / sizeInImageScale.height + startPrecinctRowIndex;\n}\nfunction getPrecinctSizesInImageScale(tile) {\n  const componentsCount = tile.components.length;\n  let minWidth = Number.MAX_VALUE;\n  let minHeight = Number.MAX_VALUE;\n  let maxNumWide = 0;\n  let maxNumHigh = 0;\n  const sizePerComponent = new Array(componentsCount);\n  for (let c = 0; c < componentsCount; c++) {\n    const component = tile.components[c];\n    const decompositionLevelsCount =\n      component.codingStyleParameters.decompositionLevelsCount;\n    const sizePerResolution = new Array(decompositionLevelsCount + 1);\n    let minWidthCurrentComponent = Number.MAX_VALUE;\n    let minHeightCurrentComponent = Number.MAX_VALUE;\n    let maxNumWideCurrentComponent = 0;\n    let maxNumHighCurrentComponent = 0;\n    let scale = 1;\n    for (let r = decompositionLevelsCount; r >= 0; --r) {\n      const resolution = component.resolutions[r];\n      const widthCurrentResolution =\n        scale * resolution.precinctParameters.precinctWidth;\n      const heightCurrentResolution =\n        scale * resolution.precinctParameters.precinctHeight;\n      minWidthCurrentComponent = Math.min(\n        minWidthCurrentComponent,\n        widthCurrentResolution\n      );\n      minHeightCurrentComponent = Math.min(\n        minHeightCurrentComponent,\n        heightCurrentResolution\n      );\n      maxNumWideCurrentComponent = Math.max(\n        maxNumWideCurrentComponent,\n        resolution.precinctParameters.numprecinctswide\n      );\n      maxNumHighCurrentComponent = Math.max(\n        maxNumHighCurrentComponent,\n        resolution.precinctParameters.numprecinctshigh\n      );\n      sizePerResolution[r] = {\n        width: widthCurrentResolution,\n        height: heightCurrentResolution,\n      };\n      scale <<= 1;\n    }\n    minWidth = Math.min(minWidth, minWidthCurrentComponent);\n    minHeight = Math.min(minHeight, minHeightCurrentComponent);\n    maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent);\n    maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent);\n    sizePerComponent[c] = {\n      resolutions: sizePerResolution,\n      minWidth: minWidthCurrentComponent,\n      minHeight: minHeightCurrentComponent,\n      maxNumWide: maxNumWideCurrentComponent,\n      maxNumHigh: maxNumHighCurrentComponent,\n    };\n  }\n  return {\n    components: sizePerComponent,\n    minWidth,\n    minHeight,\n    maxNumWide,\n    maxNumHigh,\n  };\n}\nfunction buildPackets(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const componentsCount = siz.Csiz;\n  // Creating resolutions and sub-bands for each component\n  for (let c = 0; c < componentsCount; c++) {\n    const component = tile.components[c];\n    const decompositionLevelsCount =\n      component.codingStyleParameters.decompositionLevelsCount;\n    // Section B.5 Resolution levels and sub-bands\n    const resolutions = [];\n    const subbands = [];\n    for (let r = 0; r <= decompositionLevelsCount; r++) {\n      const blocksDimensions = getBlocksDimensions(context, component, r);\n      const resolution = {};\n      const scale = 1 << (decompositionLevelsCount - r);\n      resolution.trx0 = Math.ceil(component.tcx0 / scale);\n      resolution.try0 = Math.ceil(component.tcy0 / scale);\n      resolution.trx1 = Math.ceil(component.tcx1 / scale);\n      resolution.try1 = Math.ceil(component.tcy1 / scale);\n      resolution.resLevel = r;\n      buildPrecincts(context, resolution, blocksDimensions);\n      resolutions.push(resolution);\n\n      let subband;\n      if (r === 0) {\n        // one sub-band (LL) with last decomposition\n        subband = {};\n        subband.type = \"LL\";\n        subband.tbx0 = Math.ceil(component.tcx0 / scale);\n        subband.tby0 = Math.ceil(component.tcy0 / scale);\n        subband.tbx1 = Math.ceil(component.tcx1 / scale);\n        subband.tby1 = Math.ceil(component.tcy1 / scale);\n        subband.resolution = resolution;\n        buildCodeblocks(context, subband, blocksDimensions);\n        subbands.push(subband);\n        resolution.subbands = [subband];\n      } else {\n        const bscale = 1 << (decompositionLevelsCount - r + 1);\n        const resolutionSubbands = [];\n        // three sub-bands (HL, LH and HH) with rest of decompositions\n        subband = {};\n        subband.type = \"HL\";\n        subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n        subband.tby0 = Math.ceil(component.tcy0 / bscale);\n        subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n        subband.tby1 = Math.ceil(component.tcy1 / bscale);\n        subband.resolution = resolution;\n        buildCodeblocks(context, subband, blocksDimensions);\n        subbands.push(subband);\n        resolutionSubbands.push(subband);\n\n        subband = {};\n        subband.type = \"LH\";\n        subband.tbx0 = Math.ceil(component.tcx0 / bscale);\n        subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n        subband.tbx1 = Math.ceil(component.tcx1 / bscale);\n        subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n        subband.resolution = resolution;\n        buildCodeblocks(context, subband, blocksDimensions);\n        subbands.push(subband);\n        resolutionSubbands.push(subband);\n\n        subband = {};\n        subband.type = \"HH\";\n        subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n        subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n        subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n        subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n        subband.resolution = resolution;\n        buildCodeblocks(context, subband, blocksDimensions);\n        subbands.push(subband);\n        resolutionSubbands.push(subband);\n\n        resolution.subbands = resolutionSubbands;\n      }\n    }\n    component.resolutions = resolutions;\n    component.subbands = subbands;\n  }\n  // Generate the packets sequence\n  const progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;\n  switch (progressionOrder) {\n    case 0:\n      tile.packetsIterator = new LayerResolutionComponentPositionIterator(\n        context\n      );\n      break;\n    case 1:\n      tile.packetsIterator = new ResolutionLayerComponentPositionIterator(\n        context\n      );\n      break;\n    case 2:\n      tile.packetsIterator = new ResolutionPositionComponentLayerIterator(\n        context\n      );\n      break;\n    case 3:\n      tile.packetsIterator = new PositionComponentResolutionLayerIterator(\n        context\n      );\n      break;\n    case 4:\n      tile.packetsIterator = new ComponentPositionResolutionLayerIterator(\n        context\n      );\n      break;\n    default:\n      throw new JpxError(`Unsupported progression order ${progressionOrder}`);\n  }\n}\nfunction parseTilePackets(context, data, offset, dataLength) {\n  let position = 0;\n  let buffer,\n    bufferSize = 0,\n    skipNextBit = false;\n  function readBits(count) {\n    while (bufferSize < count) {\n      const b = data[offset + position];\n      position++;\n      if (skipNextBit) {\n        buffer = (buffer << 7) | b;\n        bufferSize += 7;\n        skipNextBit = false;\n      } else {\n        buffer = (buffer << 8) | b;\n        bufferSize += 8;\n      }\n      if (b === 0xff) {\n        skipNextBit = true;\n      }\n    }\n    bufferSize -= count;\n    return (buffer >>> bufferSize) & ((1 << count) - 1);\n  }\n  function skipMarkerIfEqual(value) {\n    if (\n      data[offset + position - 1] === 0xff &&\n      data[offset + position] === value\n    ) {\n      skipBytes(1);\n      return true;\n    } else if (\n      data[offset + position] === 0xff &&\n      data[offset + position + 1] === value\n    ) {\n      skipBytes(2);\n      return true;\n    }\n    return false;\n  }\n  function skipBytes(count) {\n    position += count;\n  }\n  function alignToByte() {\n    bufferSize = 0;\n    if (skipNextBit) {\n      position++;\n      skipNextBit = false;\n    }\n  }\n  function readCodingpasses() {\n    if (readBits(1) === 0) {\n      return 1;\n    }\n    if (readBits(1) === 0) {\n      return 2;\n    }\n    let value = readBits(2);\n    if (value < 3) {\n      return value + 3;\n    }\n    value = readBits(5);\n    if (value < 31) {\n      return value + 6;\n    }\n    value = readBits(7);\n    return value + 37;\n  }\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const sopMarkerUsed = context.COD.sopMarkerUsed;\n  const ephMarkerUsed = context.COD.ephMarkerUsed;\n  const packetsIterator = tile.packetsIterator;\n  while (position < dataLength) {\n    alignToByte();\n    if (sopMarkerUsed && skipMarkerIfEqual(0x91)) {\n      // Skip also marker segment length and packet sequence ID\n      skipBytes(4);\n    }\n    const packet = packetsIterator.nextPacket();\n    if (!readBits(1)) {\n      continue;\n    }\n    const layerNumber = packet.layerNumber,\n      queue = [];\n    let codeblock;\n    for (let i = 0, ii = packet.codeblocks.length; i < ii; i++) {\n      codeblock = packet.codeblocks[i];\n      let precinct = codeblock.precinct;\n      const codeblockColumn = codeblock.cbx - precinct.cbxMin;\n      const codeblockRow = codeblock.cby - precinct.cbyMin;\n      let codeblockIncluded = false;\n      let firstTimeInclusion = false;\n      let valueReady, zeroBitPlanesTree;\n      if (codeblock.included !== undefined) {\n        codeblockIncluded = !!readBits(1);\n      } else {\n        // reading inclusion tree\n        precinct = codeblock.precinct;\n        let inclusionTree;\n        if (precinct.inclusionTree !== undefined) {\n          inclusionTree = precinct.inclusionTree;\n        } else {\n          // building inclusion and zero bit-planes trees\n          const width = precinct.cbxMax - precinct.cbxMin + 1;\n          const height = precinct.cbyMax - precinct.cbyMin + 1;\n          inclusionTree = new InclusionTree(width, height, layerNumber);\n          zeroBitPlanesTree = new TagTree(width, height);\n          precinct.inclusionTree = inclusionTree;\n          precinct.zeroBitPlanesTree = zeroBitPlanesTree;\n          for (let l = 0; l < layerNumber; l++) {\n            if (readBits(1) !== 0) {\n              throw new JpxError(\"Invalid tag tree\");\n            }\n          }\n        }\n\n        if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) {\n          while (true) {\n            if (readBits(1)) {\n              valueReady = !inclusionTree.nextLevel();\n              if (valueReady) {\n                codeblock.included = true;\n                codeblockIncluded = firstTimeInclusion = true;\n                break;\n              }\n            } else {\n              inclusionTree.incrementValue(layerNumber);\n              break;\n            }\n          }\n        }\n      }\n      if (!codeblockIncluded) {\n        continue;\n      }\n      if (firstTimeInclusion) {\n        zeroBitPlanesTree = precinct.zeroBitPlanesTree;\n        zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);\n        while (true) {\n          if (readBits(1)) {\n            valueReady = !zeroBitPlanesTree.nextLevel();\n            if (valueReady) {\n              break;\n            }\n          } else {\n            zeroBitPlanesTree.incrementValue();\n          }\n        }\n        codeblock.zeroBitPlanes = zeroBitPlanesTree.value;\n      }\n      const codingpasses = readCodingpasses();\n      while (readBits(1)) {\n        codeblock.Lblock++;\n      }\n      const codingpassesLog2 = log2(codingpasses);\n      // rounding down log2\n      const bits =\n        (codingpasses < 1 << codingpassesLog2\n          ? codingpassesLog2 - 1\n          : codingpassesLog2) + codeblock.Lblock;\n      const codedDataLength = readBits(bits);\n      queue.push({\n        codeblock,\n        codingpasses,\n        dataLength: codedDataLength,\n      });\n    }\n    alignToByte();\n    if (ephMarkerUsed) {\n      skipMarkerIfEqual(0x92);\n    }\n    while (queue.length > 0) {\n      const packetItem = queue.shift();\n      codeblock = packetItem.codeblock;\n      if (codeblock.data === undefined) {\n        codeblock.data = [];\n      }\n      codeblock.data.push({\n        data,\n        start: offset + position,\n        end: offset + position + packetItem.dataLength,\n        codingpasses: packetItem.codingpasses,\n      });\n      position += packetItem.dataLength;\n    }\n  }\n  return position;\n}\nfunction copyCoefficients(\n  coefficients,\n  levelWidth,\n  levelHeight,\n  subband,\n  delta,\n  mb,\n  reversible,\n  segmentationSymbolUsed,\n  resetContextProbabilities\n) {\n  const x0 = subband.tbx0;\n  const y0 = subband.tby0;\n  const width = subband.tbx1 - subband.tbx0;\n  const codeblocks = subband.codeblocks;\n  const right = subband.type.charAt(0) === \"H\" ? 1 : 0;\n  const bottom = subband.type.charAt(1) === \"H\" ? levelWidth : 0;\n\n  for (let i = 0, ii = codeblocks.length; i < ii; ++i) {\n    const codeblock = codeblocks[i];\n    const blockWidth = codeblock.tbx1_ - codeblock.tbx0_;\n    const blockHeight = codeblock.tby1_ - codeblock.tby0_;\n    if (blockWidth === 0 || blockHeight === 0) {\n      continue;\n    }\n    if (codeblock.data === undefined) {\n      continue;\n    }\n\n    const bitModel = new BitModel(\n      blockWidth,\n      blockHeight,\n      codeblock.subbandType,\n      codeblock.zeroBitPlanes,\n      mb\n    );\n    let currentCodingpassType = 2; // first bit plane starts from cleanup\n\n    // collect data\n    const data = codeblock.data;\n    let totalLength = 0,\n      codingpasses = 0;\n    let j, jj, dataItem;\n    for (j = 0, jj = data.length; j < jj; j++) {\n      dataItem = data[j];\n      totalLength += dataItem.end - dataItem.start;\n      codingpasses += dataItem.codingpasses;\n    }\n    const encodedData = new Uint8Array(totalLength);\n    let position = 0;\n    for (j = 0, jj = data.length; j < jj; j++) {\n      dataItem = data[j];\n      const chunk = dataItem.data.subarray(dataItem.start, dataItem.end);\n      encodedData.set(chunk, position);\n      position += chunk.length;\n    }\n    // decoding the item\n    const decoder = new ArithmeticDecoder(encodedData, 0, totalLength);\n    bitModel.setDecoder(decoder);\n\n    for (j = 0; j < codingpasses; j++) {\n      switch (currentCodingpassType) {\n        case 0:\n          bitModel.runSignificancePropagationPass();\n          break;\n        case 1:\n          bitModel.runMagnitudeRefinementPass();\n          break;\n        case 2:\n          bitModel.runCleanupPass();\n          if (segmentationSymbolUsed) {\n            bitModel.checkSegmentationSymbol();\n          }\n          break;\n      }\n\n      if (resetContextProbabilities) {\n        bitModel.reset();\n      }\n\n      currentCodingpassType = (currentCodingpassType + 1) % 3;\n    }\n\n    let offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width;\n    const sign = bitModel.coefficentsSign;\n    const magnitude = bitModel.coefficentsMagnitude;\n    const bitsDecoded = bitModel.bitsDecoded;\n    const magnitudeCorrection = reversible ? 0 : 0.5;\n    let k, n, nb;\n    position = 0;\n    // Do the interleaving of Section F.3.3 here, so we do not need\n    // to copy later. LL level is not interleaved, just copied.\n    const interleave = subband.type !== \"LL\";\n    for (j = 0; j < blockHeight; j++) {\n      const row = (offset / width) | 0; // row in the non-interleaved subband\n      const levelOffset = 2 * row * (levelWidth - width) + right + bottom;\n      for (k = 0; k < blockWidth; k++) {\n        n = magnitude[position];\n        if (n !== 0) {\n          n = (n + magnitudeCorrection) * delta;\n          if (sign[position] !== 0) {\n            n = -n;\n          }\n          nb = bitsDecoded[position];\n          const pos = interleave ? levelOffset + (offset << 1) : offset;\n          coefficients[pos] = reversible && nb >= mb ? n : n * (1 << (mb - nb));\n        }\n        offset++;\n        position++;\n      }\n      offset += width - blockWidth;\n    }\n  }\n}\nfunction transformTile(context, tile, c) {\n  const component = tile.components[c];\n  const codingStyleParameters = component.codingStyleParameters;\n  const quantizationParameters = component.quantizationParameters;\n  const decompositionLevelsCount =\n    codingStyleParameters.decompositionLevelsCount;\n  const spqcds = quantizationParameters.SPqcds;\n  const scalarExpounded = quantizationParameters.scalarExpounded;\n  const guardBits = quantizationParameters.guardBits;\n  const segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed;\n  const resetContextProbabilities =\n    codingStyleParameters.resetContextProbabilities;\n  const precision = context.components[c].precision;\n\n  const reversible = codingStyleParameters.reversibleTransformation;\n  const transform = reversible\n    ? new ReversibleTransform()\n    : new IrreversibleTransform();\n\n  const subbandCoefficients = [];\n  let b = 0;\n  for (let i = 0; i <= decompositionLevelsCount; i++) {\n    const resolution = component.resolutions[i];\n\n    const width = resolution.trx1 - resolution.trx0;\n    const height = resolution.try1 - resolution.try0;\n    // Allocate space for the whole sublevel.\n    const coefficients = new Float32Array(width * height);\n\n    for (let j = 0, jj = resolution.subbands.length; j < jj; j++) {\n      let mu, epsilon;\n      if (!scalarExpounded) {\n        // formula E-5\n        mu = spqcds[0].mu;\n        epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0);\n      } else {\n        mu = spqcds[b].mu;\n        epsilon = spqcds[b].epsilon;\n        b++;\n      }\n\n      const subband = resolution.subbands[j];\n      const gainLog2 = SubbandsGainLog2[subband.type];\n\n      // calculate quantization coefficient (Section E.1.1.1)\n      const delta = reversible\n        ? 1\n        : 2 ** (precision + gainLog2 - epsilon) * (1 + mu / 2048);\n      const mb = guardBits + epsilon - 1;\n\n      // In the first resolution level, copyCoefficients will fill the\n      // whole array with coefficients. In the succeeding passes,\n      // copyCoefficients will consecutively fill in the values that belong\n      // to the interleaved positions of the HL, LH, and HH coefficients.\n      // The LL coefficients will then be interleaved in Transform.iterate().\n      copyCoefficients(\n        coefficients,\n        width,\n        height,\n        subband,\n        delta,\n        mb,\n        reversible,\n        segmentationSymbolUsed,\n        resetContextProbabilities\n      );\n    }\n    subbandCoefficients.push({\n      width,\n      height,\n      items: coefficients,\n    });\n  }\n\n  const result = transform.calculate(\n    subbandCoefficients,\n    component.tcx0,\n    component.tcy0\n  );\n  return {\n    left: component.tcx0,\n    top: component.tcy0,\n    width: result.width,\n    height: result.height,\n    items: result.items,\n  };\n}\nfunction transformComponents(context) {\n  const siz = context.SIZ;\n  const components = context.components;\n  const componentsCount = siz.Csiz;\n  const resultImages = [];\n  for (let i = 0, ii = context.tiles.length; i < ii; i++) {\n    const tile = context.tiles[i];\n    const transformedTiles = [];\n    for (let c = 0; c < componentsCount; c++) {\n      transformedTiles[c] = transformTile(context, tile, c);\n    }\n    const tile0 = transformedTiles[0];\n    const out = new Uint8ClampedArray(tile0.items.length * componentsCount);\n    const result = {\n      left: tile0.left,\n      top: tile0.top,\n      width: tile0.width,\n      height: tile0.height,\n      items: out,\n    };\n\n    // Section G.2.2 Inverse multi component transform\n    let shift, offset;\n    let pos = 0,\n      j,\n      jj,\n      y0,\n      y1,\n      y2;\n    if (tile.codingStyleDefaultParameters.multipleComponentTransform) {\n      const fourComponents = componentsCount === 4;\n      const y0items = transformedTiles[0].items;\n      const y1items = transformedTiles[1].items;\n      const y2items = transformedTiles[2].items;\n      const y3items = fourComponents ? transformedTiles[3].items : null;\n\n      // HACK: The multiple component transform formulas below assume that\n      // all components have the same precision. With this in mind, we\n      // compute shift and offset only once.\n      shift = components[0].precision - 8;\n      offset = (128 << shift) + 0.5;\n\n      const component0 = tile.components[0];\n      const alpha01 = componentsCount - 3;\n      jj = y0items.length;\n      if (!component0.codingStyleParameters.reversibleTransformation) {\n        // inverse irreversible multiple component transform\n        for (j = 0; j < jj; j++, pos += alpha01) {\n          y0 = y0items[j] + offset;\n          y1 = y1items[j];\n          y2 = y2items[j];\n          out[pos++] = (y0 + 1.402 * y2) >> shift;\n          out[pos++] = (y0 - 0.34413 * y1 - 0.71414 * y2) >> shift;\n          out[pos++] = (y0 + 1.772 * y1) >> shift;\n        }\n      } else {\n        // inverse reversible multiple component transform\n        for (j = 0; j < jj; j++, pos += alpha01) {\n          y0 = y0items[j] + offset;\n          y1 = y1items[j];\n          y2 = y2items[j];\n          const g = y0 - ((y2 + y1) >> 2);\n\n          out[pos++] = (g + y2) >> shift;\n          out[pos++] = g >> shift;\n          out[pos++] = (g + y1) >> shift;\n        }\n      }\n      if (fourComponents) {\n        for (j = 0, pos = 3; j < jj; j++, pos += 4) {\n          out[pos] = (y3items[j] + offset) >> shift;\n        }\n      }\n    } else {\n      // no multi-component transform\n      for (let c = 0; c < componentsCount; c++) {\n        const items = transformedTiles[c].items;\n        shift = components[c].precision - 8;\n        offset = (128 << shift) + 0.5;\n        for (pos = c, j = 0, jj = items.length; j < jj; j++) {\n          out[pos] = (items[j] + offset) >> shift;\n          pos += componentsCount;\n        }\n      }\n    }\n    resultImages.push(result);\n  }\n  return resultImages;\n}\nfunction initializeTile(context, tileIndex) {\n  const siz = context.SIZ;\n  const componentsCount = siz.Csiz;\n  const tile = context.tiles[tileIndex];\n  for (let c = 0; c < componentsCount; c++) {\n    const component = tile.components[c];\n    const qcdOrQcc =\n      context.currentTile.QCC[c] !== undefined\n        ? context.currentTile.QCC[c]\n        : context.currentTile.QCD;\n    component.quantizationParameters = qcdOrQcc;\n    const codOrCoc =\n      context.currentTile.COC[c] !== undefined\n        ? context.currentTile.COC[c]\n        : context.currentTile.COD;\n    component.codingStyleParameters = codOrCoc;\n  }\n  tile.codingStyleDefaultParameters = context.currentTile.COD;\n}\n\n// Section B.10.2 Tag trees\nclass TagTree {\n  constructor(width, height) {\n    const levelsLength = log2(Math.max(width, height)) + 1;\n    this.levels = [];\n    for (let i = 0; i < levelsLength; i++) {\n      const level = {\n        width,\n        height,\n        items: [],\n      };\n      this.levels.push(level);\n      width = Math.ceil(width / 2);\n      height = Math.ceil(height / 2);\n    }\n  }\n\n  reset(i, j) {\n    let currentLevel = 0,\n      value = 0,\n      level;\n    while (currentLevel < this.levels.length) {\n      level = this.levels[currentLevel];\n      const index = i + j * level.width;\n      if (level.items[index] !== undefined) {\n        value = level.items[index];\n        break;\n      }\n      level.index = index;\n      i >>= 1;\n      j >>= 1;\n      currentLevel++;\n    }\n    currentLevel--;\n    level = this.levels[currentLevel];\n    level.items[level.index] = value;\n    this.currentLevel = currentLevel;\n    delete this.value;\n  }\n\n  incrementValue() {\n    const level = this.levels[this.currentLevel];\n    level.items[level.index]++;\n  }\n\n  nextLevel() {\n    let currentLevel = this.currentLevel;\n    let level = this.levels[currentLevel];\n    const value = level.items[level.index];\n    currentLevel--;\n    if (currentLevel < 0) {\n      this.value = value;\n      return false;\n    }\n\n    this.currentLevel = currentLevel;\n    level = this.levels[currentLevel];\n    level.items[level.index] = value;\n    return true;\n  }\n}\n\nclass InclusionTree {\n  constructor(width, height, defaultValue) {\n    const levelsLength = log2(Math.max(width, height)) + 1;\n    this.levels = [];\n    for (let i = 0; i < levelsLength; i++) {\n      const items = new Uint8Array(width * height);\n      for (let j = 0, jj = items.length; j < jj; j++) {\n        items[j] = defaultValue;\n      }\n\n      const level = {\n        width,\n        height,\n        items,\n      };\n      this.levels.push(level);\n\n      width = Math.ceil(width / 2);\n      height = Math.ceil(height / 2);\n    }\n  }\n\n  reset(i, j, stopValue) {\n    let currentLevel = 0;\n    while (currentLevel < this.levels.length) {\n      const level = this.levels[currentLevel];\n      const index = i + j * level.width;\n      level.index = index;\n      const value = level.items[index];\n\n      if (value === 0xff) {\n        break;\n      }\n\n      if (value > stopValue) {\n        this.currentLevel = currentLevel;\n        // already know about this one, propagating the value to top levels\n        this.propagateValues();\n        return false;\n      }\n\n      i >>= 1;\n      j >>= 1;\n      currentLevel++;\n    }\n    this.currentLevel = currentLevel - 1;\n    return true;\n  }\n\n  incrementValue(stopValue) {\n    const level = this.levels[this.currentLevel];\n    level.items[level.index] = stopValue + 1;\n    this.propagateValues();\n  }\n\n  propagateValues() {\n    let levelIndex = this.currentLevel;\n    let level = this.levels[levelIndex];\n    const currentValue = level.items[level.index];\n    while (--levelIndex >= 0) {\n      level = this.levels[levelIndex];\n      level.items[level.index] = currentValue;\n    }\n  }\n\n  nextLevel() {\n    let currentLevel = this.currentLevel;\n    let level = this.levels[currentLevel];\n    const value = level.items[level.index];\n    level.items[level.index] = 0xff;\n    currentLevel--;\n    if (currentLevel < 0) {\n      return false;\n    }\n\n    this.currentLevel = currentLevel;\n    level = this.levels[currentLevel];\n    level.items[level.index] = value;\n    return true;\n  }\n}\n\n// Section D. Coefficient bit modeling\nclass BitModel {\n  static UNIFORM_CONTEXT = 17;\n\n  static RUNLENGTH_CONTEXT = 18;\n\n  // Table D-1\n  // The index is binary presentation: 0dddvvhh, ddd - sum of Di (0..4),\n  // vv - sum of Vi (0..2), and hh - sum of Hi (0..2)\n  static LLAndLHContextsLabel = new Uint8Array([\n    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,\n    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,\n    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,\n  ]);\n\n  static HLContextLabel = new Uint8Array([\n    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,\n    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,\n    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,\n  ]);\n\n  static HHContextLabel = new Uint8Array([\n    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,\n    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,\n    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,\n  ]);\n\n  constructor(width, height, subband, zeroBitPlanes, mb) {\n    this.width = width;\n    this.height = height;\n\n    let contextLabelTable;\n    if (subband === \"HH\") {\n      contextLabelTable = BitModel.HHContextLabel;\n    } else if (subband === \"HL\") {\n      contextLabelTable = BitModel.HLContextLabel;\n    } else {\n      contextLabelTable = BitModel.LLAndLHContextsLabel;\n    }\n    this.contextLabelTable = contextLabelTable;\n\n    const coefficientCount = width * height;\n\n    // coefficients outside the encoding region treated as insignificant\n    // add border state cells for significanceState\n    this.neighborsSignificance = new Uint8Array(coefficientCount);\n    this.coefficentsSign = new Uint8Array(coefficientCount);\n    let coefficentsMagnitude;\n    if (mb > 14) {\n      coefficentsMagnitude = new Uint32Array(coefficientCount);\n    } else if (mb > 6) {\n      coefficentsMagnitude = new Uint16Array(coefficientCount);\n    } else {\n      coefficentsMagnitude = new Uint8Array(coefficientCount);\n    }\n    this.coefficentsMagnitude = coefficentsMagnitude;\n    this.processingFlags = new Uint8Array(coefficientCount);\n\n    const bitsDecoded = new Uint8Array(coefficientCount);\n    if (zeroBitPlanes !== 0) {\n      for (let i = 0; i < coefficientCount; i++) {\n        bitsDecoded[i] = zeroBitPlanes;\n      }\n    }\n    this.bitsDecoded = bitsDecoded;\n\n    this.reset();\n  }\n\n  setDecoder(decoder) {\n    this.decoder = decoder;\n  }\n\n  reset() {\n    // We have 17 contexts that are accessed via context labels,\n    // plus the uniform and runlength context.\n    this.contexts = new Int8Array(19);\n\n    // Contexts are packed into 1 byte:\n    // highest 7 bits carry the index, lowest bit carries mps\n    this.contexts[0] = (4 << 1) | 0;\n    this.contexts[BitModel.UNIFORM_CONTEXT] = (46 << 1) | 0;\n    this.contexts[BitModel.RUNLENGTH_CONTEXT] = (3 << 1) | 0;\n  }\n\n  setNeighborsSignificance(row, column, index) {\n    const neighborsSignificance = this.neighborsSignificance;\n    const width = this.width,\n      height = this.height;\n    const left = column > 0;\n    const right = column + 1 < width;\n    let i;\n\n    if (row > 0) {\n      i = index - width;\n      if (left) {\n        neighborsSignificance[i - 1] += 0x10;\n      }\n      if (right) {\n        neighborsSignificance[i + 1] += 0x10;\n      }\n      neighborsSignificance[i] += 0x04;\n    }\n\n    if (row + 1 < height) {\n      i = index + width;\n      if (left) {\n        neighborsSignificance[i - 1] += 0x10;\n      }\n      if (right) {\n        neighborsSignificance[i + 1] += 0x10;\n      }\n      neighborsSignificance[i] += 0x04;\n    }\n\n    if (left) {\n      neighborsSignificance[index - 1] += 0x01;\n    }\n    if (right) {\n      neighborsSignificance[index + 1] += 0x01;\n    }\n    neighborsSignificance[index] |= 0x80;\n  }\n\n  runSignificancePropagationPass() {\n    const decoder = this.decoder;\n    const width = this.width,\n      height = this.height;\n    const coefficentsMagnitude = this.coefficentsMagnitude;\n    const coefficentsSign = this.coefficentsSign;\n    const neighborsSignificance = this.neighborsSignificance;\n    const processingFlags = this.processingFlags;\n    const contexts = this.contexts;\n    const labels = this.contextLabelTable;\n    const bitsDecoded = this.bitsDecoded;\n    const processedInverseMask = ~1;\n    const processedMask = 1;\n    const firstMagnitudeBitMask = 2;\n\n    for (let i0 = 0; i0 < height; i0 += 4) {\n      for (let j = 0; j < width; j++) {\n        let index = i0 * width + j;\n        for (let i1 = 0; i1 < 4; i1++, index += width) {\n          const i = i0 + i1;\n          if (i >= height) {\n            break;\n          }\n          // clear processed flag first\n          processingFlags[index] &= processedInverseMask;\n\n          if (coefficentsMagnitude[index] || !neighborsSignificance[index]) {\n            continue;\n          }\n\n          const contextLabel = labels[neighborsSignificance[index]];\n          const decision = decoder.readBit(contexts, contextLabel);\n          if (decision) {\n            const sign = this.decodeSignBit(i, j, index);\n            coefficentsSign[index] = sign;\n            coefficentsMagnitude[index] = 1;\n            this.setNeighborsSignificance(i, j, index);\n            processingFlags[index] |= firstMagnitudeBitMask;\n          }\n          bitsDecoded[index]++;\n          processingFlags[index] |= processedMask;\n        }\n      }\n    }\n  }\n\n  decodeSignBit(row, column, index) {\n    const width = this.width,\n      height = this.height;\n    const coefficentsMagnitude = this.coefficentsMagnitude;\n    const coefficentsSign = this.coefficentsSign;\n    let contribution, sign0, sign1, significance1;\n    let contextLabel, decoded;\n\n    // calculate horizontal contribution\n    significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0;\n    if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) {\n      sign1 = coefficentsSign[index + 1];\n      if (significance1) {\n        sign0 = coefficentsSign[index - 1];\n        contribution = 1 - sign1 - sign0;\n      } else {\n        contribution = 1 - sign1 - sign1;\n      }\n    } else if (significance1) {\n      sign0 = coefficentsSign[index - 1];\n      contribution = 1 - sign0 - sign0;\n    } else {\n      contribution = 0;\n    }\n    const horizontalContribution = 3 * contribution;\n\n    // calculate vertical contribution and combine with the horizontal\n    significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0;\n    if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) {\n      sign1 = coefficentsSign[index + width];\n      if (significance1) {\n        sign0 = coefficentsSign[index - width];\n        contribution = 1 - sign1 - sign0 + horizontalContribution;\n      } else {\n        contribution = 1 - sign1 - sign1 + horizontalContribution;\n      }\n    } else if (significance1) {\n      sign0 = coefficentsSign[index - width];\n      contribution = 1 - sign0 - sign0 + horizontalContribution;\n    } else {\n      contribution = horizontalContribution;\n    }\n\n    if (contribution >= 0) {\n      contextLabel = 9 + contribution;\n      decoded = this.decoder.readBit(this.contexts, contextLabel);\n    } else {\n      contextLabel = 9 - contribution;\n      decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1;\n    }\n    return decoded;\n  }\n\n  runMagnitudeRefinementPass() {\n    const decoder = this.decoder;\n    const width = this.width,\n      height = this.height;\n    const coefficentsMagnitude = this.coefficentsMagnitude;\n    const neighborsSignificance = this.neighborsSignificance;\n    const contexts = this.contexts;\n    const bitsDecoded = this.bitsDecoded;\n    const processingFlags = this.processingFlags;\n    const processedMask = 1;\n    const firstMagnitudeBitMask = 2;\n    const length = width * height;\n    const width4 = width * 4;\n\n    for (let index0 = 0, indexNext; index0 < length; index0 = indexNext) {\n      indexNext = Math.min(length, index0 + width4);\n      for (let j = 0; j < width; j++) {\n        for (let index = index0 + j; index < indexNext; index += width) {\n          // significant but not those that have just become\n          if (\n            !coefficentsMagnitude[index] ||\n            (processingFlags[index] & processedMask) !== 0\n          ) {\n            continue;\n          }\n\n          let contextLabel = 16;\n          if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) {\n            processingFlags[index] ^= firstMagnitudeBitMask;\n            // first refinement\n            const significance = neighborsSignificance[index] & 127;\n            contextLabel = significance === 0 ? 15 : 14;\n          }\n\n          const bit = decoder.readBit(contexts, contextLabel);\n          coefficentsMagnitude[index] =\n            (coefficentsMagnitude[index] << 1) | bit;\n          bitsDecoded[index]++;\n          processingFlags[index] |= processedMask;\n        }\n      }\n    }\n  }\n\n  runCleanupPass() {\n    const decoder = this.decoder;\n    const width = this.width,\n      height = this.height;\n    const neighborsSignificance = this.neighborsSignificance;\n    const coefficentsMagnitude = this.coefficentsMagnitude;\n    const coefficentsSign = this.coefficentsSign;\n    const contexts = this.contexts;\n    const labels = this.contextLabelTable;\n    const bitsDecoded = this.bitsDecoded;\n    const processingFlags = this.processingFlags;\n    const processedMask = 1;\n    const firstMagnitudeBitMask = 2;\n    const oneRowDown = width;\n    const twoRowsDown = width * 2;\n    const threeRowsDown = width * 3;\n    let iNext;\n    for (let i0 = 0; i0 < height; i0 = iNext) {\n      iNext = Math.min(i0 + 4, height);\n      const indexBase = i0 * width;\n      const checkAllEmpty = i0 + 3 < height;\n      for (let j = 0; j < width; j++) {\n        const index0 = indexBase + j;\n        // using the property: labels[neighborsSignificance[index]] === 0\n        // when neighborsSignificance[index] === 0\n        const allEmpty =\n          checkAllEmpty &&\n          processingFlags[index0] === 0 &&\n          processingFlags[index0 + oneRowDown] === 0 &&\n          processingFlags[index0 + twoRowsDown] === 0 &&\n          processingFlags[index0 + threeRowsDown] === 0 &&\n          neighborsSignificance[index0] === 0 &&\n          neighborsSignificance[index0 + oneRowDown] === 0 &&\n          neighborsSignificance[index0 + twoRowsDown] === 0 &&\n          neighborsSignificance[index0 + threeRowsDown] === 0;\n        let i1 = 0,\n          index = index0;\n        let i = i0,\n          sign;\n        if (allEmpty) {\n          const hasSignificantCoefficent = decoder.readBit(\n            contexts,\n            BitModel.RUNLENGTH_CONTEXT\n          );\n          if (!hasSignificantCoefficent) {\n            bitsDecoded[index0]++;\n            bitsDecoded[index0 + oneRowDown]++;\n            bitsDecoded[index0 + twoRowsDown]++;\n            bitsDecoded[index0 + threeRowsDown]++;\n            continue; // next column\n          }\n          i1 =\n            (decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT) << 1) |\n            decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT);\n          if (i1 !== 0) {\n            i = i0 + i1;\n            index += i1 * width;\n          }\n\n          sign = this.decodeSignBit(i, j, index);\n          coefficentsSign[index] = sign;\n          coefficentsMagnitude[index] = 1;\n          this.setNeighborsSignificance(i, j, index);\n          processingFlags[index] |= firstMagnitudeBitMask;\n\n          index = index0;\n          for (let i2 = i0; i2 <= i; i2++, index += width) {\n            bitsDecoded[index]++;\n          }\n\n          i1++;\n        }\n        for (i = i0 + i1; i < iNext; i++, index += width) {\n          if (\n            coefficentsMagnitude[index] ||\n            (processingFlags[index] & processedMask) !== 0\n          ) {\n            continue;\n          }\n\n          const contextLabel = labels[neighborsSignificance[index]];\n          const decision = decoder.readBit(contexts, contextLabel);\n          if (decision === 1) {\n            sign = this.decodeSignBit(i, j, index);\n            coefficentsSign[index] = sign;\n            coefficentsMagnitude[index] = 1;\n            this.setNeighborsSignificance(i, j, index);\n            processingFlags[index] |= firstMagnitudeBitMask;\n          }\n          bitsDecoded[index]++;\n        }\n      }\n    }\n  }\n\n  checkSegmentationSymbol() {\n    const decoder = this.decoder;\n    const contexts = this.contexts;\n    const symbol =\n      (decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT) << 3) |\n      (decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT) << 2) |\n      (decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT) << 1) |\n      decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT);\n    if (symbol !== 0xa) {\n      throw new JpxError(\"Invalid segmentation symbol\");\n    }\n  }\n}\n\n// Section F, Discrete wavelet transformation\nclass Transform {\n  constructor() {\n    if (this.constructor === Transform) {\n      unreachable(\"Cannot initialize Transform.\");\n    }\n  }\n\n  calculate(subbands, u0, v0) {\n    let ll = subbands[0];\n    for (let i = 1, ii = subbands.length; i < ii; i++) {\n      ll = this.iterate(ll, subbands[i], u0, v0);\n    }\n    return ll;\n  }\n\n  extend(buffer, offset, size) {\n    // Section F.3.7 extending... using max extension of 4\n    let i1 = offset - 1,\n      j1 = offset + 1;\n    let i2 = offset + size - 2,\n      j2 = offset + size;\n    buffer[i1--] = buffer[j1++];\n    buffer[j2++] = buffer[i2--];\n    buffer[i1--] = buffer[j1++];\n    buffer[j2++] = buffer[i2--];\n    buffer[i1--] = buffer[j1++];\n    buffer[j2++] = buffer[i2--];\n    buffer[i1] = buffer[j1];\n    buffer[j2] = buffer[i2];\n  }\n\n  filter(x, offset, length) {\n    unreachable(\"Abstract method `filter` called\");\n  }\n\n  iterate(ll, hl_lh_hh, u0, v0) {\n    const llWidth = ll.width,\n      llHeight = ll.height;\n    let llItems = ll.items;\n    const width = hl_lh_hh.width;\n    const height = hl_lh_hh.height;\n    const items = hl_lh_hh.items;\n    let i, j, k, l, u, v;\n\n    // Interleave LL according to Section F.3.3\n    for (k = 0, i = 0; i < llHeight; i++) {\n      l = i * 2 * width;\n      for (j = 0; j < llWidth; j++, k++, l += 2) {\n        items[l] = llItems[k];\n      }\n    }\n    // The LL band is not needed anymore.\n    llItems = ll.items = null;\n\n    const bufferPadding = 4;\n    const rowBuffer = new Float32Array(width + 2 * bufferPadding);\n\n    // Section F.3.4 HOR_SR\n    if (width === 1) {\n      // if width = 1, when u0 even keep items as is, when odd divide by 2\n      if ((u0 & 1) !== 0) {\n        for (v = 0, k = 0; v < height; v++, k += width) {\n          items[k] *= 0.5;\n        }\n      }\n    } else {\n      for (v = 0, k = 0; v < height; v++, k += width) {\n        rowBuffer.set(items.subarray(k, k + width), bufferPadding);\n\n        this.extend(rowBuffer, bufferPadding, width);\n        this.filter(rowBuffer, bufferPadding, width);\n\n        items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k);\n      }\n    }\n\n    // Accesses to the items array can take long, because it may not fit into\n    // CPU cache and has to be fetched from main memory. Since subsequent\n    // accesses to the items array are not local when reading columns, we\n    // have a cache miss every time. To reduce cache misses, get up to\n    // 'numBuffers' items at a time and store them into the individual\n    // buffers. The colBuffers should be small enough to fit into CPU cache.\n    let numBuffers = 16;\n    const colBuffers = [];\n    for (i = 0; i < numBuffers; i++) {\n      colBuffers.push(new Float32Array(height + 2 * bufferPadding));\n    }\n    let b,\n      currentBuffer = 0;\n    ll = bufferPadding + height;\n\n    // Section F.3.5 VER_SR\n    if (height === 1) {\n      // if height = 1, when v0 even keep items as is, when odd divide by 2\n      if ((v0 & 1) !== 0) {\n        for (u = 0; u < width; u++) {\n          items[u] *= 0.5;\n        }\n      }\n    } else {\n      for (u = 0; u < width; u++) {\n        // if we ran out of buffers, copy several image columns at once\n        if (currentBuffer === 0) {\n          numBuffers = Math.min(width - u, numBuffers);\n          for (k = u, l = bufferPadding; l < ll; k += width, l++) {\n            for (b = 0; b < numBuffers; b++) {\n              colBuffers[b][l] = items[k + b];\n            }\n          }\n          currentBuffer = numBuffers;\n        }\n\n        currentBuffer--;\n        const buffer = colBuffers[currentBuffer];\n        this.extend(buffer, bufferPadding, height);\n        this.filter(buffer, bufferPadding, height);\n\n        // If this is last buffer in this group of buffers, flush all buffers.\n        if (currentBuffer === 0) {\n          k = u - numBuffers + 1;\n          for (l = bufferPadding; l < ll; k += width, l++) {\n            for (b = 0; b < numBuffers; b++) {\n              items[k + b] = colBuffers[b][l];\n            }\n          }\n        }\n      }\n    }\n\n    return { width, height, items };\n  }\n}\n\n// Section 3.8.2 Irreversible 9-7 filter\nclass IrreversibleTransform extends Transform {\n  filter(x, offset, length) {\n    const len = length >> 1;\n    offset |= 0;\n    let j, n, current, next;\n\n    const alpha = -1.586134342059924;\n    const beta = -0.052980118572961;\n    const gamma = 0.882911075530934;\n    const delta = 0.443506852043971;\n    const K = 1.230174104914001;\n    const K_ = 1 / K;\n\n    // step 1 is combined with step 3\n\n    // step 2\n    j = offset - 3;\n    for (n = len + 4; n--; j += 2) {\n      x[j] *= K_;\n    }\n\n    // step 1 & 3\n    j = offset - 2;\n    current = delta * x[j - 1];\n    for (n = len + 3; n--; j += 2) {\n      next = delta * x[j + 1];\n      x[j] = K * x[j] - current - next;\n      if (n--) {\n        j += 2;\n        current = delta * x[j + 1];\n        x[j] = K * x[j] - current - next;\n      } else {\n        break;\n      }\n    }\n\n    // step 4\n    j = offset - 1;\n    current = gamma * x[j - 1];\n    for (n = len + 2; n--; j += 2) {\n      next = gamma * x[j + 1];\n      x[j] -= current + next;\n      if (n--) {\n        j += 2;\n        current = gamma * x[j + 1];\n        x[j] -= current + next;\n      } else {\n        break;\n      }\n    }\n\n    // step 5\n    j = offset;\n    current = beta * x[j - 1];\n    for (n = len + 1; n--; j += 2) {\n      next = beta * x[j + 1];\n      x[j] -= current + next;\n      if (n--) {\n        j += 2;\n        current = beta * x[j + 1];\n        x[j] -= current + next;\n      } else {\n        break;\n      }\n    }\n\n    // step 6\n    if (len !== 0) {\n      j = offset + 1;\n      current = alpha * x[j - 1];\n      for (n = len; n--; j += 2) {\n        next = alpha * x[j + 1];\n        x[j] -= current + next;\n        if (n--) {\n          j += 2;\n          current = alpha * x[j + 1];\n          x[j] -= current + next;\n        } else {\n          break;\n        }\n      }\n    }\n  }\n}\n\n// Section 3.8.1 Reversible 5-3 filter\nclass ReversibleTransform extends Transform {\n  filter(x, offset, length) {\n    const len = length >> 1;\n    offset |= 0;\n    let j, n;\n\n    for (j = offset, n = len + 1; n--; j += 2) {\n      x[j] -= (x[j - 1] + x[j + 1] + 2) >> 2;\n    }\n\n    for (j = offset + 1, n = len; n--; j += 2) {\n      x[j] += (x[j - 1] + x[j + 1]) >> 1;\n    }\n  }\n}\n\nexport { JpxImage };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { JpxImage } from \"./jpx.js\";\nimport { shadow } from \"../shared/util.js\";\n\n/**\n * For JPEG 2000's we use a library to decode these images and\n * the stream behaves like all the other DecodeStreams.\n */\nclass JpxStream extends DecodeStream {\n  constructor(stream, maybeLength, params) {\n    super(maybeLength);\n\n    this.stream = stream;\n    this.dict = stream.dict;\n    this.maybeLength = maybeLength;\n    this.params = params;\n  }\n\n  get bytes() {\n    // If `this.maybeLength` is null, we'll get the entire stream.\n    return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n  }\n\n  ensureBuffer(requested) {\n    // No-op, since `this.readBlock` will always parse the entire image and\n    // directly insert all of its data into `this.buffer`.\n  }\n\n  readBlock() {\n    if (this.eof) {\n      return;\n    }\n    const jpxImage = new JpxImage();\n    jpxImage.parse(this.bytes);\n\n    const width = jpxImage.width;\n    const height = jpxImage.height;\n    const componentsCount = jpxImage.componentsCount;\n    const tileCount = jpxImage.tiles.length;\n    if (tileCount === 1) {\n      this.buffer = jpxImage.tiles[0].items;\n    } else {\n      const data = new Uint8ClampedArray(width * height * componentsCount);\n\n      for (let k = 0; k < tileCount; k++) {\n        const tileComponents = jpxImage.tiles[k];\n        const tileWidth = tileComponents.width;\n        const tileHeight = tileComponents.height;\n        const tileLeft = tileComponents.left;\n        const tileTop = tileComponents.top;\n\n        const src = tileComponents.items;\n        let srcPosition = 0;\n        let dataPosition = (width * tileTop + tileLeft) * componentsCount;\n        const imgRowSize = width * componentsCount;\n        const tileRowSize = tileWidth * componentsCount;\n\n        for (let j = 0; j < tileHeight; j++) {\n          const rowBytes = src.subarray(srcPosition, srcPosition + tileRowSize);\n          data.set(rowBytes, dataPosition);\n          srcPosition += tileRowSize;\n          dataPosition += imgRowSize;\n        }\n      }\n      this.buffer = data;\n    }\n    this.bufferLength = this.buffer.length;\n    this.eof = true;\n  }\n}\n\nexport { JpxStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nclass LZWStream extends DecodeStream {\n  constructor(str, maybeLength, earlyChange) {\n    super(maybeLength);\n\n    this.str = str;\n    this.dict = str.dict;\n    this.cachedData = 0;\n    this.bitsCached = 0;\n\n    const maxLzwDictionarySize = 4096;\n    const lzwState = {\n      earlyChange,\n      codeLength: 9,\n      nextCode: 258,\n      dictionaryValues: new Uint8Array(maxLzwDictionarySize),\n      dictionaryLengths: new Uint16Array(maxLzwDictionarySize),\n      dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize),\n      currentSequence: new Uint8Array(maxLzwDictionarySize),\n      currentSequenceLength: 0,\n    };\n    for (let i = 0; i < 256; ++i) {\n      lzwState.dictionaryValues[i] = i;\n      lzwState.dictionaryLengths[i] = 1;\n    }\n    this.lzwState = lzwState;\n  }\n\n  readBits(n) {\n    let bitsCached = this.bitsCached;\n    let cachedData = this.cachedData;\n    while (bitsCached < n) {\n      const c = this.str.getByte();\n      if (c === -1) {\n        this.eof = true;\n        return null;\n      }\n      cachedData = (cachedData << 8) | c;\n      bitsCached += 8;\n    }\n    this.bitsCached = bitsCached -= n;\n    this.cachedData = cachedData;\n    this.lastCode = null;\n    return (cachedData >>> bitsCached) & ((1 << n) - 1);\n  }\n\n  readBlock() {\n    const blockSize = 512,\n      decodedSizeDelta = blockSize;\n    let estimatedDecodedSize = blockSize * 2;\n    let i, j, q;\n\n    const lzwState = this.lzwState;\n    if (!lzwState) {\n      return; // eof was found\n    }\n\n    const earlyChange = lzwState.earlyChange;\n    let nextCode = lzwState.nextCode;\n    const dictionaryValues = lzwState.dictionaryValues;\n    const dictionaryLengths = lzwState.dictionaryLengths;\n    const dictionaryPrevCodes = lzwState.dictionaryPrevCodes;\n    let codeLength = lzwState.codeLength;\n    let prevCode = lzwState.prevCode;\n    const currentSequence = lzwState.currentSequence;\n    let currentSequenceLength = lzwState.currentSequenceLength;\n\n    let decodedLength = 0;\n    let currentBufferLength = this.bufferLength;\n    let buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n\n    for (i = 0; i < blockSize; i++) {\n      const code = this.readBits(codeLength);\n      const hasPrev = currentSequenceLength > 0;\n      if (code < 256) {\n        currentSequence[0] = code;\n        currentSequenceLength = 1;\n      } else if (code >= 258) {\n        if (code < nextCode) {\n          currentSequenceLength = dictionaryLengths[code];\n          for (j = currentSequenceLength - 1, q = code; j >= 0; j--) {\n            currentSequence[j] = dictionaryValues[q];\n            q = dictionaryPrevCodes[q];\n          }\n        } else {\n          currentSequence[currentSequenceLength++] = currentSequence[0];\n        }\n      } else if (code === 256) {\n        codeLength = 9;\n        nextCode = 258;\n        currentSequenceLength = 0;\n        continue;\n      } else {\n        this.eof = true;\n        delete this.lzwState;\n        break;\n      }\n\n      if (hasPrev) {\n        dictionaryPrevCodes[nextCode] = prevCode;\n        dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1;\n        dictionaryValues[nextCode] = currentSequence[0];\n        nextCode++;\n        codeLength =\n          (nextCode + earlyChange) & (nextCode + earlyChange - 1)\n            ? codeLength\n            : Math.min(\n                Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1,\n                12\n              ) | 0;\n      }\n      prevCode = code;\n\n      decodedLength += currentSequenceLength;\n      if (estimatedDecodedSize < decodedLength) {\n        do {\n          estimatedDecodedSize += decodedSizeDelta;\n        } while (estimatedDecodedSize < decodedLength);\n        buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n      }\n      for (j = 0; j < currentSequenceLength; j++) {\n        buffer[currentBufferLength++] = currentSequence[j];\n      }\n    }\n    lzwState.nextCode = nextCode;\n    lzwState.codeLength = codeLength;\n    lzwState.prevCode = prevCode;\n    lzwState.currentSequenceLength = currentSequenceLength;\n\n    this.bufferLength = currentBufferLength;\n  }\n}\n\nexport { LZWStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\nimport { FormatError } from \"../shared/util.js\";\n\nclass PredictorStream extends DecodeStream {\n  constructor(str, maybeLength, params) {\n    super(maybeLength);\n\n    if (!(params instanceof Dict)) {\n      return str; // no prediction\n    }\n    const predictor = (this.predictor = params.get(\"Predictor\") || 1);\n\n    if (predictor <= 1) {\n      return str; // no prediction\n    }\n    if (predictor !== 2 && (predictor < 10 || predictor > 15)) {\n      throw new FormatError(`Unsupported predictor: ${predictor}`);\n    }\n\n    this.readBlock = predictor === 2 ? this.readBlockTiff : this.readBlockPng;\n\n    this.str = str;\n    this.dict = str.dict;\n\n    const colors = (this.colors = params.get(\"Colors\") || 1);\n    const bits = (this.bits = params.get(\"BPC\", \"BitsPerComponent\") || 8);\n    const columns = (this.columns = params.get(\"Columns\") || 1);\n\n    this.pixBytes = (colors * bits + 7) >> 3;\n    this.rowBytes = (columns * colors * bits + 7) >> 3;\n\n    return this;\n  }\n\n  readBlockTiff() {\n    const rowBytes = this.rowBytes;\n\n    const bufferLength = this.bufferLength;\n    const buffer = this.ensureBuffer(bufferLength + rowBytes);\n\n    const bits = this.bits;\n    const colors = this.colors;\n\n    const rawBytes = this.str.getBytes(rowBytes);\n    this.eof = !rawBytes.length;\n    if (this.eof) {\n      return;\n    }\n\n    let inbuf = 0,\n      outbuf = 0;\n    let inbits = 0,\n      outbits = 0;\n    let pos = bufferLength;\n    let i;\n\n    if (bits === 1 && colors === 1) {\n      // Optimized version of the loop in the \"else\"-branch\n      // for 1 bit-per-component and 1 color TIFF images.\n      for (i = 0; i < rowBytes; ++i) {\n        let c = rawBytes[i] ^ inbuf;\n        c ^= c >> 1;\n        c ^= c >> 2;\n        c ^= c >> 4;\n        inbuf = (c & 1) << 7;\n        buffer[pos++] = c;\n      }\n    } else if (bits === 8) {\n      for (i = 0; i < colors; ++i) {\n        buffer[pos++] = rawBytes[i];\n      }\n      for (; i < rowBytes; ++i) {\n        buffer[pos] = buffer[pos - colors] + rawBytes[i];\n        pos++;\n      }\n    } else if (bits === 16) {\n      const bytesPerPixel = colors * 2;\n      for (i = 0; i < bytesPerPixel; ++i) {\n        buffer[pos++] = rawBytes[i];\n      }\n      for (; i < rowBytes; i += 2) {\n        const sum =\n          ((rawBytes[i] & 0xff) << 8) +\n          (rawBytes[i + 1] & 0xff) +\n          ((buffer[pos - bytesPerPixel] & 0xff) << 8) +\n          (buffer[pos - bytesPerPixel + 1] & 0xff);\n        buffer[pos++] = (sum >> 8) & 0xff;\n        buffer[pos++] = sum & 0xff;\n      }\n    } else {\n      const compArray = new Uint8Array(colors + 1);\n      const bitMask = (1 << bits) - 1;\n      let j = 0,\n        k = bufferLength;\n      const columns = this.columns;\n      for (i = 0; i < columns; ++i) {\n        for (let kk = 0; kk < colors; ++kk) {\n          if (inbits < bits) {\n            inbuf = (inbuf << 8) | (rawBytes[j++] & 0xff);\n            inbits += 8;\n          }\n          compArray[kk] =\n            (compArray[kk] + (inbuf >> (inbits - bits))) & bitMask;\n          inbits -= bits;\n          outbuf = (outbuf << bits) | compArray[kk];\n          outbits += bits;\n          if (outbits >= 8) {\n            buffer[k++] = (outbuf >> (outbits - 8)) & 0xff;\n            outbits -= 8;\n          }\n        }\n      }\n      if (outbits > 0) {\n        buffer[k++] =\n          (outbuf << (8 - outbits)) + (inbuf & ((1 << (8 - outbits)) - 1));\n      }\n    }\n    this.bufferLength += rowBytes;\n  }\n\n  readBlockPng() {\n    const rowBytes = this.rowBytes;\n    const pixBytes = this.pixBytes;\n\n    const predictor = this.str.getByte();\n    const rawBytes = this.str.getBytes(rowBytes);\n    this.eof = !rawBytes.length;\n    if (this.eof) {\n      return;\n    }\n\n    const bufferLength = this.bufferLength;\n    const buffer = this.ensureBuffer(bufferLength + rowBytes);\n\n    let prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength);\n    if (prevRow.length === 0) {\n      prevRow = new Uint8Array(rowBytes);\n    }\n\n    let i,\n      j = bufferLength,\n      up,\n      c;\n    switch (predictor) {\n      case 0:\n        for (i = 0; i < rowBytes; ++i) {\n          buffer[j++] = rawBytes[i];\n        }\n        break;\n      case 1:\n        for (i = 0; i < pixBytes; ++i) {\n          buffer[j++] = rawBytes[i];\n        }\n        for (; i < rowBytes; ++i) {\n          buffer[j] = (buffer[j - pixBytes] + rawBytes[i]) & 0xff;\n          j++;\n        }\n        break;\n      case 2:\n        for (i = 0; i < rowBytes; ++i) {\n          buffer[j++] = (prevRow[i] + rawBytes[i]) & 0xff;\n        }\n        break;\n      case 3:\n        for (i = 0; i < pixBytes; ++i) {\n          buffer[j++] = (prevRow[i] >> 1) + rawBytes[i];\n        }\n        for (; i < rowBytes; ++i) {\n          buffer[j] =\n            (((prevRow[i] + buffer[j - pixBytes]) >> 1) + rawBytes[i]) & 0xff;\n          j++;\n        }\n        break;\n      case 4:\n        // we need to save the up left pixels values. the simplest way\n        // is to create a new buffer\n        for (i = 0; i < pixBytes; ++i) {\n          up = prevRow[i];\n          c = rawBytes[i];\n          buffer[j++] = up + c;\n        }\n        for (; i < rowBytes; ++i) {\n          up = prevRow[i];\n          const upLeft = prevRow[i - pixBytes];\n          const left = buffer[j - pixBytes];\n          const p = left + up - upLeft;\n\n          let pa = p - left;\n          if (pa < 0) {\n            pa = -pa;\n          }\n          let pb = p - up;\n          if (pb < 0) {\n            pb = -pb;\n          }\n          let pc = p - upLeft;\n          if (pc < 0) {\n            pc = -pc;\n          }\n\n          c = rawBytes[i];\n          if (pa <= pb && pa <= pc) {\n            buffer[j++] = left + c;\n          } else if (pb <= pc) {\n            buffer[j++] = up + c;\n          } else {\n            buffer[j++] = upLeft + c;\n          }\n        }\n        break;\n      default:\n        throw new FormatError(`Unsupported predictor: ${predictor}`);\n    }\n    this.bufferLength += rowBytes;\n  }\n}\n\nexport { PredictorStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nclass RunLengthStream extends DecodeStream {\n  constructor(str, maybeLength) {\n    super(maybeLength);\n\n    this.str = str;\n    this.dict = str.dict;\n  }\n\n  readBlock() {\n    // The repeatHeader has following format. The first byte defines type of run\n    // and amount of bytes to repeat/copy: n = 0 through 127 - copy next n bytes\n    // (in addition to the second byte from the header), n = 129 through 255 -\n    // duplicate the second byte from the header (257 - n) times, n = 128 - end.\n    const repeatHeader = this.str.getBytes(2);\n    if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) {\n      this.eof = true;\n      return;\n    }\n\n    let buffer;\n    let bufferLength = this.bufferLength;\n    let n = repeatHeader[0];\n    if (n < 128) {\n      // copy n bytes\n      buffer = this.ensureBuffer(bufferLength + n + 1);\n      buffer[bufferLength++] = repeatHeader[1];\n      if (n > 0) {\n        const source = this.str.getBytes(n);\n        buffer.set(source, bufferLength);\n        bufferLength += n;\n      }\n    } else {\n      n = 257 - n;\n      const b = repeatHeader[1];\n      buffer = this.ensureBuffer(bufferLength + n + 1);\n      for (let i = 0; i < n; i++) {\n        buffer[bufferLength++] = b;\n      }\n    }\n    this.bufferLength = bufferLength;\n  }\n}\n\nexport { RunLengthStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  assert,\n  bytesToString,\n  FormatError,\n  info,\n  warn,\n} from \"../shared/util.js\";\nimport { Cmd, Dict, EOF, isCmd, Name, Ref } from \"./primitives.js\";\nimport {\n  isWhiteSpace,\n  MissingDataException,\n  ParserEOFException,\n} from \"./core_utils.js\";\nimport { NullStream, Stream } from \"./stream.js\";\nimport { Ascii85Stream } from \"./ascii_85_stream.js\";\nimport { AsciiHexStream } from \"./ascii_hex_stream.js\";\nimport { CCITTFaxStream } from \"./ccitt_stream.js\";\nimport { FlateStream } from \"./flate_stream.js\";\nimport { Jbig2Stream } from \"./jbig2_stream.js\";\nimport { JpegStream } from \"./jpeg_stream.js\";\nimport { JpxStream } from \"./jpx_stream.js\";\nimport { LZWStream } from \"./lzw_stream.js\";\nimport { PredictorStream } from \"./predictor_stream.js\";\nimport { RunLengthStream } from \"./run_length_stream.js\";\n\nconst MAX_LENGTH_TO_CACHE = 1000;\n\nfunction getInlineImageCacheKey(bytes) {\n  const strBuf = [],\n    ii = bytes.length;\n  let i = 0;\n  while (i < ii - 1) {\n    strBuf.push((bytes[i++] << 8) | bytes[i++]);\n  }\n  // Handle an odd number of elements.\n  if (i < ii) {\n    strBuf.push(bytes[i]);\n  }\n  // We purposely include the \"raw\" length in the cacheKey, to prevent any\n  // possible issues with hash collisions in the inline image cache.\n  // Here we also assume that `strBuf` is never larger than 8192 elements,\n  // please refer to the `bytesToString` implementation.\n  return ii + \"_\" + String.fromCharCode.apply(null, strBuf);\n}\n\nclass Parser {\n  constructor({ lexer, xref, allowStreams = false, recoveryMode = false }) {\n    this.lexer = lexer;\n    this.xref = xref;\n    this.allowStreams = allowStreams;\n    this.recoveryMode = recoveryMode;\n\n    this.imageCache = Object.create(null);\n    this._imageId = 0;\n    this.refill();\n  }\n\n  refill() {\n    this.buf1 = this.lexer.getObj();\n    this.buf2 = this.lexer.getObj();\n  }\n\n  shift() {\n    if (this.buf2 instanceof Cmd && this.buf2.cmd === \"ID\") {\n      this.buf1 = this.buf2;\n      this.buf2 = null;\n    } else {\n      this.buf1 = this.buf2;\n      this.buf2 = this.lexer.getObj();\n    }\n  }\n\n  tryShift() {\n    try {\n      this.shift();\n      return true;\n    } catch (e) {\n      if (e instanceof MissingDataException) {\n        throw e;\n      }\n      // Upon failure, the caller should reset this.lexer.pos to a known good\n      // state and call this.shift() twice to reset the buffers.\n      return false;\n    }\n  }\n\n  getObj(cipherTransform = null) {\n    const buf1 = this.buf1;\n    this.shift();\n\n    if (buf1 instanceof Cmd) {\n      switch (buf1.cmd) {\n        case \"BI\": // inline image\n          return this.makeInlineImage(cipherTransform);\n        case \"[\": // array\n          const array = [];\n          while (!isCmd(this.buf1, \"]\") && this.buf1 !== EOF) {\n            array.push(this.getObj(cipherTransform));\n          }\n          if (this.buf1 === EOF) {\n            if (this.recoveryMode) {\n              return array;\n            }\n            throw new ParserEOFException(\"End of file inside array.\");\n          }\n          this.shift();\n          return array;\n        case \"<<\": // dictionary or stream\n          const dict = new Dict(this.xref);\n          while (!isCmd(this.buf1, \">>\") && this.buf1 !== EOF) {\n            if (!(this.buf1 instanceof Name)) {\n              info(\"Malformed dictionary: key must be a name object\");\n              this.shift();\n              continue;\n            }\n\n            const key = this.buf1.name;\n            this.shift();\n            if (this.buf1 === EOF) {\n              break;\n            }\n            dict.set(key, this.getObj(cipherTransform));\n          }\n          if (this.buf1 === EOF) {\n            if (this.recoveryMode) {\n              return dict;\n            }\n            throw new ParserEOFException(\"End of file inside dictionary.\");\n          }\n\n          // Stream objects are not allowed inside content streams or\n          // object streams.\n          if (isCmd(this.buf2, \"stream\")) {\n            return this.allowStreams\n              ? this.makeStream(dict, cipherTransform)\n              : dict;\n          }\n          this.shift();\n          return dict;\n        default: // simple object\n          return buf1;\n      }\n    }\n\n    if (Number.isInteger(buf1)) {\n      // indirect reference or integer\n      if (Number.isInteger(this.buf1) && isCmd(this.buf2, \"R\")) {\n        const ref = Ref.get(buf1, this.buf1);\n        this.shift();\n        this.shift();\n        return ref;\n      }\n      return buf1;\n    }\n\n    if (typeof buf1 === \"string\") {\n      if (cipherTransform) {\n        return cipherTransform.decryptString(buf1);\n      }\n      return buf1;\n    }\n\n    // simple object\n    return buf1;\n  }\n\n  /**\n   * Find the end of the stream by searching for the /EI\\s/.\n   * @returns {number} The inline stream length.\n   */\n  findDefaultInlineStreamEnd(stream) {\n    const E = 0x45,\n      I = 0x49,\n      SPACE = 0x20,\n      LF = 0xa,\n      CR = 0xd,\n      NUL = 0x0;\n    const { knownCommands } = this.lexer,\n      startPos = stream.pos,\n      n = 15;\n    let state = 0,\n      ch,\n      maybeEIPos;\n    while ((ch = stream.getByte()) !== -1) {\n      if (state === 0) {\n        state = ch === E ? 1 : 0;\n      } else if (state === 1) {\n        state = ch === I ? 2 : 0;\n      } else {\n        if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n          assert(state === 2, \"findDefaultInlineStreamEnd - invalid state.\");\n        }\n        if (ch === SPACE || ch === LF || ch === CR) {\n          maybeEIPos = stream.pos;\n          // Let's check that the next `n` bytes are ASCII... just to be sure.\n          const followingBytes = stream.peekBytes(n);\n\n          const ii = followingBytes.length;\n          if (ii === 0) {\n            break; // The end of the stream was reached, nothing to check.\n          }\n          for (let i = 0; i < ii; i++) {\n            ch = followingBytes[i];\n            if (ch === NUL && followingBytes[i + 1] !== NUL) {\n              // NUL bytes are not supposed to occur *outside* of inline\n              // images, but some PDF generators violate that assumption,\n              // thus breaking the EI detection heuristics used below.\n              //\n              // However, we can't unconditionally treat NUL bytes as \"ASCII\",\n              // since that *could* result in inline images being truncated.\n              //\n              // To attempt to address this, we'll still treat any *sequence*\n              // of NUL bytes as non-ASCII, but for a *single* NUL byte we'll\n              // continue checking the `followingBytes` (fixes issue8823.pdf).\n              continue;\n            }\n            if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7f)) {\n              // Not a LF, CR, SPACE or any visible ASCII character, i.e.\n              // it's binary stuff. Resetting the state.\n              state = 0;\n              break;\n            }\n          }\n\n          if (state !== 2) {\n            continue;\n          }\n          if (!knownCommands) {\n            warn(\n              \"findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.\"\n            );\n            continue;\n          }\n          // Check that the \"EI\" sequence isn't part of the image data, since\n          // that would cause the image to be truncated (fixes issue11124.pdf).\n          const tmpLexer = new Lexer(\n            new Stream(followingBytes.slice()),\n            knownCommands\n          );\n          // Reduce the number of (potential) warning messages.\n          tmpLexer._hexStringWarn = () => {};\n          let numArgs = 0;\n\n          while (true) {\n            const nextObj = tmpLexer.getObj();\n\n            if (nextObj === EOF) {\n              state = 0; // No valid command found, resetting the state.\n              break;\n            }\n            if (nextObj instanceof Cmd) {\n              const knownCommand = knownCommands[nextObj.cmd];\n              if (!knownCommand) {\n                // Not a valid command, i.e. the inline image data *itself*\n                // contains an \"EI\" sequence. Resetting the state.\n                state = 0;\n                break;\n              } else if (\n                knownCommand.variableArgs\n                  ? numArgs <= knownCommand.numArgs\n                  : numArgs === knownCommand.numArgs\n              ) {\n                break; // Valid command found.\n              }\n              numArgs = 0;\n              continue;\n            }\n            numArgs++;\n          }\n\n          if (state === 2) {\n            break; // Finished!\n          }\n        } else {\n          state = 0;\n        }\n      }\n    }\n\n    if (ch === -1) {\n      warn(\n        \"findDefaultInlineStreamEnd: \" +\n          \"Reached the end of the stream without finding a valid EI marker\"\n      );\n      if (maybeEIPos) {\n        warn('... trying to recover by using the last \"EI\" occurrence.');\n        stream.skip(-(stream.pos - maybeEIPos)); // Reset the stream position.\n      }\n    }\n\n    let endOffset = 4;\n    stream.skip(-endOffset); // Set the stream position to just before \"EI\".\n    ch = stream.peekByte();\n    stream.skip(endOffset); // ... and remember to reset the stream position.\n\n    // Ensure that we don't accidentally truncate the inline image, when the\n    // data is immediately followed by the \"EI\" marker (fixes issue10388.pdf).\n    if (!isWhiteSpace(ch)) {\n      endOffset--;\n    }\n    return stream.pos - endOffset - startPos;\n  }\n\n  /**\n   * Find the EOI (end-of-image) marker 0xFFD9 of the stream.\n   * @returns {number} The inline stream length.\n   */\n  findDCTDecodeInlineStreamEnd(stream) {\n    const startPos = stream.pos;\n    let foundEOI = false,\n      b,\n      markerLength;\n    while ((b = stream.getByte()) !== -1) {\n      if (b !== 0xff) {\n        // Not a valid marker.\n        continue;\n      }\n      switch (stream.getByte()) {\n        case 0x00: // Byte stuffing.\n          // 0xFF00 appears to be a very common byte sequence in JPEG images.\n          break;\n\n        case 0xff: // Fill byte.\n          // Avoid skipping a valid marker, resetting the stream position.\n          stream.skip(-1);\n          break;\n\n        case 0xd9: // EOI\n          foundEOI = true;\n          break;\n\n        case 0xc0: // SOF0\n        case 0xc1: // SOF1\n        case 0xc2: // SOF2\n        case 0xc3: // SOF3\n        /* falls through */\n        case 0xc5: // SOF5\n        case 0xc6: // SOF6\n        case 0xc7: // SOF7\n        /* falls through */\n        case 0xc9: // SOF9\n        case 0xca: // SOF10\n        case 0xcb: // SOF11\n        /* falls through */\n        case 0xcd: // SOF13\n        case 0xce: // SOF14\n        case 0xcf: // SOF15\n        /* falls through */\n        case 0xc4: // DHT\n        case 0xcc: // DAC\n        /* falls through */\n        case 0xda: // SOS\n        case 0xdb: // DQT\n        case 0xdc: // DNL\n        case 0xdd: // DRI\n        case 0xde: // DHP\n        case 0xdf: // EXP\n        /* falls through */\n        case 0xe0: // APP0\n        case 0xe1: // APP1\n        case 0xe2: // APP2\n        case 0xe3: // APP3\n        case 0xe4: // APP4\n        case 0xe5: // APP5\n        case 0xe6: // APP6\n        case 0xe7: // APP7\n        case 0xe8: // APP8\n        case 0xe9: // APP9\n        case 0xea: // APP10\n        case 0xeb: // APP11\n        case 0xec: // APP12\n        case 0xed: // APP13\n        case 0xee: // APP14\n        case 0xef: // APP15\n        /* falls through */\n        case 0xfe: // COM\n          // The marker should be followed by the length of the segment.\n          markerLength = stream.getUint16();\n          if (markerLength > 2) {\n            // |markerLength| contains the byte length of the marker segment,\n            // including its own length (2 bytes) and excluding the marker.\n            stream.skip(markerLength - 2); // Jump to the next marker.\n          } else {\n            // The marker length is invalid, resetting the stream position.\n            stream.skip(-2);\n          }\n          break;\n      }\n      if (foundEOI) {\n        break;\n      }\n    }\n    const length = stream.pos - startPos;\n    if (b === -1) {\n      warn(\n        \"Inline DCTDecode image stream: \" +\n          \"EOI marker not found, searching for /EI/ instead.\"\n      );\n      stream.skip(-length); // Reset the stream position.\n      return this.findDefaultInlineStreamEnd(stream);\n    }\n    this.inlineStreamSkipEI(stream);\n    return length;\n  }\n\n  /**\n   * Find the EOD (end-of-data) marker '~>' (i.e. TILDE + GT) of the stream.\n   * @returns {number} The inline stream length.\n   */\n  findASCII85DecodeInlineStreamEnd(stream) {\n    const TILDE = 0x7e,\n      GT = 0x3e;\n    const startPos = stream.pos;\n    let ch;\n    while ((ch = stream.getByte()) !== -1) {\n      if (ch === TILDE) {\n        const tildePos = stream.pos;\n\n        ch = stream.peekByte();\n        // Handle corrupt PDF documents which contains whitespace \"inside\" of\n        // the EOD marker (fixes issue10614.pdf).\n        while (isWhiteSpace(ch)) {\n          stream.skip();\n          ch = stream.peekByte();\n        }\n        if (ch === GT) {\n          stream.skip();\n          break;\n        }\n        // Handle corrupt PDF documents which contains truncated EOD markers,\n        // where the '>' character is missing (fixes issue11385.pdf).\n        if (stream.pos > tildePos) {\n          const maybeEI = stream.peekBytes(2);\n          if (maybeEI[0] === /* E = */ 0x45 && maybeEI[1] === /* I = */ 0x49) {\n            break;\n          }\n        }\n      }\n    }\n    const length = stream.pos - startPos;\n    if (ch === -1) {\n      warn(\n        \"Inline ASCII85Decode image stream: \" +\n          \"EOD marker not found, searching for /EI/ instead.\"\n      );\n      stream.skip(-length); // Reset the stream position.\n      return this.findDefaultInlineStreamEnd(stream);\n    }\n    this.inlineStreamSkipEI(stream);\n    return length;\n  }\n\n  /**\n   * Find the EOD (end-of-data) marker '>' (i.e. GT) of the stream.\n   * @returns {number} The inline stream length.\n   */\n  findASCIIHexDecodeInlineStreamEnd(stream) {\n    const GT = 0x3e;\n    const startPos = stream.pos;\n    let ch;\n    while ((ch = stream.getByte()) !== -1) {\n      if (ch === GT) {\n        break;\n      }\n    }\n    const length = stream.pos - startPos;\n    if (ch === -1) {\n      warn(\n        \"Inline ASCIIHexDecode image stream: \" +\n          \"EOD marker not found, searching for /EI/ instead.\"\n      );\n      stream.skip(-length); // Reset the stream position.\n      return this.findDefaultInlineStreamEnd(stream);\n    }\n    this.inlineStreamSkipEI(stream);\n    return length;\n  }\n\n  /**\n   * Skip over the /EI/ for streams where we search for an EOD marker.\n   */\n  inlineStreamSkipEI(stream) {\n    const E = 0x45,\n      I = 0x49;\n    let state = 0,\n      ch;\n    while ((ch = stream.getByte()) !== -1) {\n      if (state === 0) {\n        state = ch === E ? 1 : 0;\n      } else if (state === 1) {\n        state = ch === I ? 2 : 0;\n      } else if (state === 2) {\n        break;\n      }\n    }\n  }\n\n  makeInlineImage(cipherTransform) {\n    const lexer = this.lexer;\n    const stream = lexer.stream;\n\n    // Parse dictionary, but initialize it lazily to improve performance with\n    // cached inline images (see issue 2618).\n    const dictMap = Object.create(null);\n    let dictLength;\n    while (!isCmd(this.buf1, \"ID\") && this.buf1 !== EOF) {\n      if (!(this.buf1 instanceof Name)) {\n        throw new FormatError(\"Dictionary key must be a name object\");\n      }\n      const key = this.buf1.name;\n      this.shift();\n      if (this.buf1 === EOF) {\n        break;\n      }\n      dictMap[key] = this.getObj(cipherTransform);\n    }\n    if (lexer.beginInlineImagePos !== -1) {\n      dictLength = stream.pos - lexer.beginInlineImagePos;\n    }\n\n    // Extract the name of the first (i.e. the current) image filter.\n    const filter = this.xref.fetchIfRef(dictMap.F || dictMap.Filter);\n    let filterName;\n    if (filter instanceof Name) {\n      filterName = filter.name;\n    } else if (Array.isArray(filter)) {\n      const filterZero = this.xref.fetchIfRef(filter[0]);\n      if (filterZero instanceof Name) {\n        filterName = filterZero.name;\n      }\n    }\n\n    // Parse image stream.\n    const startPos = stream.pos;\n    let length;\n    switch (filterName) {\n      case \"DCT\":\n      case \"DCTDecode\":\n        length = this.findDCTDecodeInlineStreamEnd(stream);\n        break;\n      case \"A85\":\n      case \"ASCII85Decode\":\n        length = this.findASCII85DecodeInlineStreamEnd(stream);\n        break;\n      case \"AHx\":\n      case \"ASCIIHexDecode\":\n        length = this.findASCIIHexDecodeInlineStreamEnd(stream);\n        break;\n      default:\n        length = this.findDefaultInlineStreamEnd(stream);\n    }\n\n    // Cache all images below the MAX_LENGTH_TO_CACHE threshold by their\n    // stringified content, to prevent possible hash collisions.\n    let cacheKey;\n    if (length < MAX_LENGTH_TO_CACHE && dictLength > 0) {\n      const initialStreamPos = stream.pos;\n      // Set the stream position to the beginning of the dictionary data...\n      stream.pos = lexer.beginInlineImagePos;\n      // ... and fetch the bytes of the dictionary *and* the inline image.\n      cacheKey = getInlineImageCacheKey(stream.getBytes(dictLength + length));\n      // Finally, don't forget to reset the stream position.\n      stream.pos = initialStreamPos;\n\n      const cacheEntry = this.imageCache[cacheKey];\n      if (cacheEntry !== undefined) {\n        this.buf2 = Cmd.get(\"EI\");\n        this.shift();\n\n        cacheEntry.reset();\n        return cacheEntry;\n      }\n    }\n\n    const dict = new Dict(this.xref);\n    for (const key in dictMap) {\n      dict.set(key, dictMap[key]);\n    }\n    let imageStream = stream.makeSubStream(startPos, length, dict);\n    if (cipherTransform) {\n      imageStream = cipherTransform.createStream(imageStream, length);\n    }\n\n    imageStream = this.filter(imageStream, dict, length);\n    imageStream.dict = dict;\n    if (cacheKey !== undefined) {\n      imageStream.cacheKey = `inline_img_${++this._imageId}`;\n      this.imageCache[cacheKey] = imageStream;\n    }\n\n    this.buf2 = Cmd.get(\"EI\");\n    this.shift();\n\n    return imageStream;\n  }\n\n  _findStreamLength(startPos, signature) {\n    const { stream } = this.lexer;\n    stream.pos = startPos;\n\n    const SCAN_BLOCK_LENGTH = 2048;\n    const signatureLength = signature.length;\n\n    while (stream.pos < stream.end) {\n      const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n      const scanLength = scanBytes.length - signatureLength;\n\n      if (scanLength <= 0) {\n        break;\n      }\n      let pos = 0;\n      while (pos < scanLength) {\n        let j = 0;\n        while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n          j++;\n        }\n        if (j >= signatureLength) {\n          // `signature` found.\n          stream.pos += pos;\n          return stream.pos - startPos;\n        }\n        pos++;\n      }\n      stream.pos += scanLength;\n    }\n    return -1;\n  }\n\n  makeStream(dict, cipherTransform) {\n    const lexer = this.lexer;\n    let stream = lexer.stream;\n\n    // Get the stream's start position.\n    lexer.skipToNextLine();\n    const startPos = stream.pos - 1;\n\n    // Get the length.\n    let length = dict.get(\"Length\");\n    if (!Number.isInteger(length)) {\n      info(`Bad length \"${length && length.toString()}\" in stream.`);\n      length = 0;\n    }\n\n    // Skip over the stream data.\n    stream.pos = startPos + length;\n    lexer.nextChar();\n\n    // Shift '>>' and check whether the new object marks the end of the stream.\n    if (this.tryShift() && isCmd(this.buf2, \"endstream\")) {\n      this.shift(); // 'stream'\n    } else {\n      // Bad stream length, scanning for endstream command.\n      const ENDSTREAM_SIGNATURE = new Uint8Array([\n        0x65, 0x6e, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d,\n      ]);\n      let actualLength = this._findStreamLength(startPos, ENDSTREAM_SIGNATURE);\n      if (actualLength < 0) {\n        // Only allow limited truncation of the endstream signature,\n        // to prevent false positives.\n        const MAX_TRUNCATION = 1;\n        // Check if the PDF generator included truncated endstream commands,\n        // such as e.g. \"endstrea\" (fixes issue10004.pdf).\n        for (let i = 1; i <= MAX_TRUNCATION; i++) {\n          const end = ENDSTREAM_SIGNATURE.length - i;\n          const TRUNCATED_SIGNATURE = ENDSTREAM_SIGNATURE.slice(0, end);\n\n          const maybeLength = this._findStreamLength(\n            startPos,\n            TRUNCATED_SIGNATURE\n          );\n          if (maybeLength >= 0) {\n            // Ensure that the byte immediately following the truncated\n            // endstream command is a space, to prevent false positives.\n            const lastByte = stream.peekBytes(end + 1)[end];\n            if (!isWhiteSpace(lastByte)) {\n              break;\n            }\n            info(\n              `Found \"${bytesToString(TRUNCATED_SIGNATURE)}\" when ` +\n                \"searching for endstream command.\"\n            );\n            actualLength = maybeLength;\n            break;\n          }\n        }\n\n        if (actualLength < 0) {\n          throw new FormatError(\"Missing endstream command.\");\n        }\n      }\n      length = actualLength;\n\n      lexer.nextChar();\n      this.shift();\n      this.shift();\n    }\n    this.shift(); // 'endstream'\n\n    stream = stream.makeSubStream(startPos, length, dict);\n    if (cipherTransform) {\n      stream = cipherTransform.createStream(stream, length);\n    }\n    stream = this.filter(stream, dict, length);\n    stream.dict = dict;\n    return stream;\n  }\n\n  filter(stream, dict, length) {\n    let filter = dict.get(\"F\", \"Filter\");\n    let params = dict.get(\"DP\", \"DecodeParms\");\n\n    if (filter instanceof Name) {\n      if (Array.isArray(params)) {\n        warn(\"/DecodeParms should not be an Array, when /Filter is a Name.\");\n      }\n      return this.makeFilter(stream, filter.name, length, params);\n    }\n\n    let maybeLength = length;\n    if (Array.isArray(filter)) {\n      const filterArray = filter;\n      const paramsArray = params;\n      for (let i = 0, ii = filterArray.length; i < ii; ++i) {\n        filter = this.xref.fetchIfRef(filterArray[i]);\n        if (!(filter instanceof Name)) {\n          throw new FormatError(`Bad filter name \"${filter}\"`);\n        }\n\n        params = null;\n        if (Array.isArray(paramsArray) && i in paramsArray) {\n          params = this.xref.fetchIfRef(paramsArray[i]);\n        }\n        stream = this.makeFilter(stream, filter.name, maybeLength, params);\n        // After the first stream the `length` variable is invalid.\n        maybeLength = null;\n      }\n    }\n    return stream;\n  }\n\n  makeFilter(stream, name, maybeLength, params) {\n    // Since the 'Length' entry in the stream dictionary can be completely\n    // wrong, e.g. zero for non-empty streams, only skip parsing the stream\n    // when we can be absolutely certain that it actually is empty.\n    if (maybeLength === 0) {\n      warn(`Empty \"${name}\" stream.`);\n      return new NullStream();\n    }\n\n    try {\n      switch (name) {\n        case \"Fl\":\n        case \"FlateDecode\":\n          if (params) {\n            return new PredictorStream(\n              new FlateStream(stream, maybeLength),\n              maybeLength,\n              params\n            );\n          }\n          return new FlateStream(stream, maybeLength);\n        case \"LZW\":\n        case \"LZWDecode\":\n          let earlyChange = 1;\n          if (params) {\n            if (params.has(\"EarlyChange\")) {\n              earlyChange = params.get(\"EarlyChange\");\n            }\n            return new PredictorStream(\n              new LZWStream(stream, maybeLength, earlyChange),\n              maybeLength,\n              params\n            );\n          }\n          return new LZWStream(stream, maybeLength, earlyChange);\n        case \"DCT\":\n        case \"DCTDecode\":\n          return new JpegStream(stream, maybeLength, params);\n        case \"JPX\":\n        case \"JPXDecode\":\n          return new JpxStream(stream, maybeLength, params);\n        case \"A85\":\n        case \"ASCII85Decode\":\n          return new Ascii85Stream(stream, maybeLength);\n        case \"AHx\":\n        case \"ASCIIHexDecode\":\n          return new AsciiHexStream(stream, maybeLength);\n        case \"CCF\":\n        case \"CCITTFaxDecode\":\n          return new CCITTFaxStream(stream, maybeLength, params);\n        case \"RL\":\n        case \"RunLengthDecode\":\n          return new RunLengthStream(stream, maybeLength);\n        case \"JBIG2Decode\":\n          return new Jbig2Stream(stream, maybeLength, params);\n      }\n      warn(`Filter \"${name}\" is not supported.`);\n      return stream;\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(`Invalid stream: \"${ex}\"`);\n      return new NullStream();\n    }\n  }\n}\n\n// A '1' in this array means the character is white space. A '1' or\n// '2' means the character ends a name or command.\n// prettier-ignore\nconst specialChars = [\n  1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, // 0x\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x\n  1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, // 2x\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, // 3x\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 4x\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, // 5x\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 6x\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, // 7x\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 8x\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 9x\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ax\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // bx\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // cx\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // dx\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ex\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0  // fx\n];\n\nfunction toHexDigit(ch) {\n  if (ch >= /* '0' = */ 0x30 && ch /* '9' = */ <= 0x39) {\n    return ch & 0x0f;\n  }\n  if (\n    (ch >= /* 'A' = */ 0x41 && ch <= /* 'F' = */ 0x46) ||\n    (ch >= /* 'a' = */ 0x61 && ch <= /* 'f' = */ 0x66)\n  ) {\n    return (ch & 0x0f) + 9;\n  }\n  return -1;\n}\n\nclass Lexer {\n  constructor(stream, knownCommands = null) {\n    this.stream = stream;\n    this.nextChar();\n\n    // While lexing, we build up many strings one char at a time. Using += for\n    // this can result in lots of garbage strings. It's better to build an\n    // array of single-char strings and then join() them together at the end.\n    // And reusing a single array (i.e. |this.strBuf|) over and over for this\n    // purpose uses less memory than using a new array for each string.\n    this.strBuf = [];\n\n    // The PDFs might have \"glued\" commands with other commands, operands or\n    // literals, e.g. \"q1\". The knownCommands is a dictionary of the valid\n    // commands and their prefixes. The prefixes are built the following way:\n    // if there a command that is a prefix of the other valid command or\n    // literal (e.g. 'f' and 'false') the following prefixes must be included,\n    // 'fa', 'fal', 'fals'. The prefixes are not needed, if the command has no\n    // other commands or literals as a prefix. The knowCommands is optional.\n    this.knownCommands = knownCommands;\n\n    this._hexStringNumWarn = 0;\n    this.beginInlineImagePos = -1;\n  }\n\n  nextChar() {\n    return (this.currentChar = this.stream.getByte());\n  }\n\n  peekChar() {\n    return this.stream.peekByte();\n  }\n\n  getNumber() {\n    let ch = this.currentChar;\n    let eNotation = false;\n    let divideBy = 0; // Different from 0 if it's a floating point value.\n    let sign = 1;\n\n    if (ch === /* '-' = */ 0x2d) {\n      sign = -1;\n      ch = this.nextChar();\n\n      if (ch === /* '-' = */ 0x2d) {\n        // Ignore double negative (this is consistent with Adobe Reader).\n        ch = this.nextChar();\n      }\n    } else if (ch === /* '+' = */ 0x2b) {\n      ch = this.nextChar();\n    }\n    if (ch === /* LF = */ 0x0a || ch === /* CR = */ 0x0d) {\n      // Ignore line-breaks (this is consistent with Adobe Reader).\n      do {\n        ch = this.nextChar();\n      } while (ch === 0x0a || ch === 0x0d);\n    }\n    if (ch === /* '.' = */ 0x2e) {\n      divideBy = 10;\n      ch = this.nextChar();\n    }\n    if (ch < /* '0' = */ 0x30 || ch > /* '9' = */ 0x39) {\n      const msg = `Invalid number: ${String.fromCharCode(ch)} (charCode ${ch})`;\n\n      if (isWhiteSpace(ch) || ch === /* EOF = */ -1) {\n        // This is consistent with Adobe Reader (fixes issue9252.pdf,\n        // issue15604.pdf, bug1753983.pdf).\n        info(`Lexer.getNumber - \"${msg}\".`);\n        return 0;\n      }\n      throw new FormatError(msg);\n    }\n\n    let baseValue = ch - 0x30; // '0'\n    let powerValue = 0;\n    let powerValueSign = 1;\n\n    while ((ch = this.nextChar()) >= 0) {\n      if (ch >= /* '0' = */ 0x30 && ch <= /* '9' = */ 0x39) {\n        const currentDigit = ch - 0x30; // '0'\n        if (eNotation) {\n          // We are after an 'e' or 'E'.\n          powerValue = powerValue * 10 + currentDigit;\n        } else {\n          if (divideBy !== 0) {\n            // We are after a point.\n            divideBy *= 10;\n          }\n          baseValue = baseValue * 10 + currentDigit;\n        }\n      } else if (ch === /* '.' = */ 0x2e) {\n        if (divideBy === 0) {\n          divideBy = 1;\n        } else {\n          // A number can have only one dot.\n          break;\n        }\n      } else if (ch === /* '-' = */ 0x2d) {\n        // Ignore minus signs in the middle of numbers to match\n        // Adobe's behavior.\n        warn(\"Badly formatted number: minus sign in the middle\");\n      } else if (ch === /* 'E' = */ 0x45 || ch === /* 'e' = */ 0x65) {\n        // 'E' can be either a scientific notation or the beginning of a new\n        // operator.\n        ch = this.peekChar();\n        if (ch === /* '+' = */ 0x2b || ch === /* '-' = */ 0x2d) {\n          powerValueSign = ch === 0x2d ? -1 : 1;\n          this.nextChar(); // Consume the sign character.\n        } else if (ch < /* '0' = */ 0x30 || ch > /* '9' = */ 0x39) {\n          // The 'E' must be the beginning of a new operator.\n          break;\n        }\n        eNotation = true;\n      } else {\n        // The last character doesn't belong to us.\n        break;\n      }\n    }\n\n    if (divideBy !== 0) {\n      baseValue /= divideBy;\n    }\n    if (eNotation) {\n      baseValue *= 10 ** (powerValueSign * powerValue);\n    }\n    return sign * baseValue;\n  }\n\n  getString() {\n    let numParen = 1;\n    let done = false;\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n\n    let ch = this.nextChar();\n    while (true) {\n      let charBuffered = false;\n      switch (ch | 0) {\n        case -1:\n          warn(\"Unterminated string\");\n          done = true;\n          break;\n        case 0x28: // '('\n          ++numParen;\n          strBuf.push(\"(\");\n          break;\n        case 0x29: // ')'\n          if (--numParen === 0) {\n            this.nextChar(); // consume strings ')'\n            done = true;\n          } else {\n            strBuf.push(\")\");\n          }\n          break;\n        case 0x5c: // '\\\\'\n          ch = this.nextChar();\n          switch (ch) {\n            case -1:\n              warn(\"Unterminated string\");\n              done = true;\n              break;\n            case 0x6e: // 'n'\n              strBuf.push(\"\\n\");\n              break;\n            case 0x72: // 'r'\n              strBuf.push(\"\\r\");\n              break;\n            case 0x74: // 't'\n              strBuf.push(\"\\t\");\n              break;\n            case 0x62: // 'b'\n              strBuf.push(\"\\b\");\n              break;\n            case 0x66: // 'f'\n              strBuf.push(\"\\f\");\n              break;\n            case 0x5c: // '\\'\n            case 0x28: // '('\n            case 0x29: // ')'\n              strBuf.push(String.fromCharCode(ch));\n              break;\n            case 0x30: // '0'\n            case 0x31: // '1'\n            case 0x32: // '2'\n            case 0x33: // '3'\n            case 0x34: // '4'\n            case 0x35: // '5'\n            case 0x36: // '6'\n            case 0x37: // '7'\n              let x = ch & 0x0f;\n              ch = this.nextChar();\n              charBuffered = true;\n              if (ch >= /* '0' = */ 0x30 && ch <= /* '7' = */ 0x37) {\n                x = (x << 3) + (ch & 0x0f);\n                ch = this.nextChar();\n                if (ch >= /* '0' = */ 0x30 && ch /* '7' = */ <= 0x37) {\n                  charBuffered = false;\n                  x = (x << 3) + (ch & 0x0f);\n                }\n              }\n              strBuf.push(String.fromCharCode(x));\n              break;\n            case 0x0d: // CR\n              if (this.peekChar() === /* LF = */ 0x0a) {\n                this.nextChar();\n              }\n              break;\n            case 0x0a: // LF\n              break;\n            default:\n              strBuf.push(String.fromCharCode(ch));\n              break;\n          }\n          break;\n        default:\n          strBuf.push(String.fromCharCode(ch));\n          break;\n      }\n      if (done) {\n        break;\n      }\n      if (!charBuffered) {\n        ch = this.nextChar();\n      }\n    }\n    return strBuf.join(\"\");\n  }\n\n  getName() {\n    let ch, previousCh;\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n\n    while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n      if (ch === /* '#' = */ 0x23) {\n        ch = this.nextChar();\n        if (specialChars[ch]) {\n          warn(\n            \"Lexer_getName: \" +\n              \"NUMBER SIGN (#) should be followed by a hexadecimal number.\"\n          );\n          strBuf.push(\"#\");\n          break;\n        }\n        const x = toHexDigit(ch);\n        if (x !== -1) {\n          previousCh = ch;\n          ch = this.nextChar();\n          const x2 = toHexDigit(ch);\n          if (x2 === -1) {\n            warn(\n              `Lexer_getName: Illegal digit (${String.fromCharCode(ch)}) ` +\n                \"in hexadecimal number.\"\n            );\n            strBuf.push(\"#\", String.fromCharCode(previousCh));\n            if (specialChars[ch]) {\n              break;\n            }\n            strBuf.push(String.fromCharCode(ch));\n            continue;\n          }\n          strBuf.push(String.fromCharCode((x << 4) | x2));\n        } else {\n          strBuf.push(\"#\", String.fromCharCode(ch));\n        }\n      } else {\n        strBuf.push(String.fromCharCode(ch));\n      }\n    }\n    if (strBuf.length > 127) {\n      warn(`Name token is longer than allowed by the spec: ${strBuf.length}`);\n    }\n    return Name.get(strBuf.join(\"\"));\n  }\n\n  /**\n   * @private\n   */\n  _hexStringWarn(ch) {\n    const MAX_HEX_STRING_NUM_WARN = 5;\n\n    if (this._hexStringNumWarn++ === MAX_HEX_STRING_NUM_WARN) {\n      warn(\"getHexString - ignoring additional invalid characters.\");\n      return;\n    }\n    if (this._hexStringNumWarn > MAX_HEX_STRING_NUM_WARN) {\n      // Limit the number of warning messages printed for a `this.getHexString`\n      // invocation, since corrupt PDF documents may otherwise spam the console\n      // enough to affect general performance negatively.\n      return;\n    }\n    warn(`getHexString - ignoring invalid character: ${ch}`);\n  }\n\n  getHexString() {\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n    let ch = this.currentChar;\n    let isFirstHex = true;\n    let firstDigit, secondDigit;\n    this._hexStringNumWarn = 0;\n\n    while (true) {\n      if (ch < 0) {\n        warn(\"Unterminated hex string\");\n        break;\n      } else if (ch === /* '>' = */ 0x3e) {\n        this.nextChar();\n        break;\n      } else if (specialChars[ch] === 1) {\n        ch = this.nextChar();\n        continue;\n      } else {\n        if (isFirstHex) {\n          firstDigit = toHexDigit(ch);\n          if (firstDigit === -1) {\n            this._hexStringWarn(ch);\n            ch = this.nextChar();\n            continue;\n          }\n        } else {\n          secondDigit = toHexDigit(ch);\n          if (secondDigit === -1) {\n            this._hexStringWarn(ch);\n            ch = this.nextChar();\n            continue;\n          }\n          strBuf.push(String.fromCharCode((firstDigit << 4) | secondDigit));\n        }\n        isFirstHex = !isFirstHex;\n        ch = this.nextChar();\n      }\n    }\n    return strBuf.join(\"\");\n  }\n\n  getObj() {\n    // Skip whitespace and comments.\n    let comment = false;\n    let ch = this.currentChar;\n    while (true) {\n      if (ch < 0) {\n        return EOF;\n      }\n      if (comment) {\n        if (ch === /* LF = */ 0x0a || ch === /* CR = */ 0x0d) {\n          comment = false;\n        }\n      } else if (ch === /* '%' = */ 0x25) {\n        comment = true;\n      } else if (specialChars[ch] !== 1) {\n        break;\n      }\n      ch = this.nextChar();\n    }\n\n    // Start reading a token.\n    switch (ch | 0) {\n      case 0x30: // '0'\n      case 0x31: // '1'\n      case 0x32: // '2'\n      case 0x33: // '3'\n      case 0x34: // '4'\n      case 0x35: // '5'\n      case 0x36: // '6'\n      case 0x37: // '7'\n      case 0x38: // '8'\n      case 0x39: // '9'\n      case 0x2b: // '+'\n      case 0x2d: // '-'\n      case 0x2e: // '.'\n        return this.getNumber();\n      case 0x28: // '('\n        return this.getString();\n      case 0x2f: // '/'\n        return this.getName();\n      // array punctuation\n      case 0x5b: // '['\n        this.nextChar();\n        return Cmd.get(\"[\");\n      case 0x5d: // ']'\n        this.nextChar();\n        return Cmd.get(\"]\");\n      // hex string or dict punctuation\n      case 0x3c: // '<'\n        ch = this.nextChar();\n        if (ch === 0x3c) {\n          // dict punctuation\n          this.nextChar();\n          return Cmd.get(\"<<\");\n        }\n        return this.getHexString();\n      // dict punctuation\n      case 0x3e: // '>'\n        ch = this.nextChar();\n        if (ch === 0x3e) {\n          this.nextChar();\n          return Cmd.get(\">>\");\n        }\n        return Cmd.get(\">\");\n      case 0x7b: // '{'\n        this.nextChar();\n        return Cmd.get(\"{\");\n      case 0x7d: // '}'\n        this.nextChar();\n        return Cmd.get(\"}\");\n      case 0x29: // ')'\n        // Consume the current character in order to avoid permanently hanging\n        // the worker thread if `Lexer.getObj` is called from within a loop\n        // containing try-catch statements, since we would otherwise attempt\n        // to parse the *same* character over and over (fixes issue8061.pdf).\n        this.nextChar();\n        throw new FormatError(`Illegal character: ${ch}`);\n    }\n\n    // Start reading a command.\n    let str = String.fromCharCode(ch);\n    // A valid command cannot start with a non-visible ASCII character,\n    // and the next character may be (the start of) a valid command.\n    if (ch < 0x20 || ch > 0x7f) {\n      const nextCh = this.peekChar();\n      if (nextCh >= 0x20 && nextCh <= 0x7f) {\n        this.nextChar();\n        return Cmd.get(str);\n      }\n    }\n    const knownCommands = this.knownCommands;\n    let knownCommandFound = knownCommands?.[str] !== undefined;\n    while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n      // Stop if a known command is found and next character does not make\n      // the string a command.\n      const possibleCommand = str + String.fromCharCode(ch);\n      if (knownCommandFound && knownCommands[possibleCommand] === undefined) {\n        break;\n      }\n      if (str.length === 128) {\n        throw new FormatError(`Command token too long: ${str.length}`);\n      }\n      str = possibleCommand;\n      knownCommandFound = knownCommands?.[str] !== undefined;\n    }\n    if (str === \"true\") {\n      return true;\n    }\n    if (str === \"false\") {\n      return false;\n    }\n    if (str === \"null\") {\n      return null;\n    }\n\n    if (str === \"BI\") {\n      // Keep track of the current stream position, since it's needed in order\n      // to correctly cache inline images; see `Parser.makeInlineImage`.\n      this.beginInlineImagePos = this.stream.pos;\n    }\n\n    return Cmd.get(str);\n  }\n\n  skipToNextLine() {\n    let ch = this.currentChar;\n    while (ch >= 0) {\n      if (ch === /* CR = */ 0x0d) {\n        ch = this.nextChar();\n        if (ch === /* LF = */ 0x0a) {\n          this.nextChar();\n        }\n        break;\n      } else if (ch === /* LF = */ 0x0a) {\n        this.nextChar();\n        break;\n      }\n      ch = this.nextChar();\n    }\n  }\n}\n\nclass Linearization {\n  static create(stream) {\n    function getInt(linDict, name, allowZeroValue = false) {\n      const obj = linDict.get(name);\n      if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) {\n        return obj;\n      }\n      throw new Error(\n        `The \"${name}\" parameter in the linearization ` +\n          \"dictionary is invalid.\"\n      );\n    }\n\n    function getHints(linDict) {\n      const hints = linDict.get(\"H\");\n      let hintsLength;\n\n      if (\n        Array.isArray(hints) &&\n        ((hintsLength = hints.length) === 2 || hintsLength === 4)\n      ) {\n        for (let index = 0; index < hintsLength; index++) {\n          const hint = hints[index];\n          if (!(Number.isInteger(hint) && hint > 0)) {\n            throw new Error(\n              `Hint (${index}) in the linearization dictionary is invalid.`\n            );\n          }\n        }\n        return hints;\n      }\n      throw new Error(\"Hint array in the linearization dictionary is invalid.\");\n    }\n\n    const parser = new Parser({\n      lexer: new Lexer(stream),\n      xref: null,\n    });\n    const obj1 = parser.getObj();\n    const obj2 = parser.getObj();\n    const obj3 = parser.getObj();\n    const linDict = parser.getObj();\n    let obj, length;\n    if (\n      !(\n        Number.isInteger(obj1) &&\n        Number.isInteger(obj2) &&\n        isCmd(obj3, \"obj\") &&\n        linDict instanceof Dict &&\n        typeof (obj = linDict.get(\"Linearized\")) === \"number\" &&\n        obj > 0\n      )\n    ) {\n      return null; // No valid linearization dictionary found.\n    } else if ((length = getInt(linDict, \"L\")) !== stream.length) {\n      throw new Error(\n        'The \"L\" parameter in the linearization dictionary ' +\n          \"does not equal the stream length.\"\n      );\n    }\n    return {\n      length,\n      hints: getHints(linDict),\n      objectNumberFirst: getInt(linDict, \"O\"),\n      endFirst: getInt(linDict, \"E\"),\n      numPages: getInt(linDict, \"N\"),\n      mainXRefEntriesOffset: getInt(linDict, \"T\"),\n      pageFirst: linDict.has(\"P\")\n        ? getInt(linDict, \"P\", /* allowZeroValue = */ true)\n        : 0,\n    };\n  }\n}\n\nexport { Lexer, Linearization, Parser };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  CMapCompressionType,\n  FormatError,\n  unreachable,\n  warn,\n} from \"../shared/util.js\";\nimport { Cmd, EOF, isCmd, Name } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { BinaryCMapReader } from \"./binary_cmap.js\";\nimport { Lexer } from \"./parser.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\n\nconst BUILT_IN_CMAPS = [\n  // << Start unicode maps.\n  \"Adobe-GB1-UCS2\",\n  \"Adobe-CNS1-UCS2\",\n  \"Adobe-Japan1-UCS2\",\n  \"Adobe-Korea1-UCS2\",\n  // >> End unicode maps.\n  \"78-EUC-H\",\n  \"78-EUC-V\",\n  \"78-H\",\n  \"78-RKSJ-H\",\n  \"78-RKSJ-V\",\n  \"78-V\",\n  \"78ms-RKSJ-H\",\n  \"78ms-RKSJ-V\",\n  \"83pv-RKSJ-H\",\n  \"90ms-RKSJ-H\",\n  \"90ms-RKSJ-V\",\n  \"90msp-RKSJ-H\",\n  \"90msp-RKSJ-V\",\n  \"90pv-RKSJ-H\",\n  \"90pv-RKSJ-V\",\n  \"Add-H\",\n  \"Add-RKSJ-H\",\n  \"Add-RKSJ-V\",\n  \"Add-V\",\n  \"Adobe-CNS1-0\",\n  \"Adobe-CNS1-1\",\n  \"Adobe-CNS1-2\",\n  \"Adobe-CNS1-3\",\n  \"Adobe-CNS1-4\",\n  \"Adobe-CNS1-5\",\n  \"Adobe-CNS1-6\",\n  \"Adobe-GB1-0\",\n  \"Adobe-GB1-1\",\n  \"Adobe-GB1-2\",\n  \"Adobe-GB1-3\",\n  \"Adobe-GB1-4\",\n  \"Adobe-GB1-5\",\n  \"Adobe-Japan1-0\",\n  \"Adobe-Japan1-1\",\n  \"Adobe-Japan1-2\",\n  \"Adobe-Japan1-3\",\n  \"Adobe-Japan1-4\",\n  \"Adobe-Japan1-5\",\n  \"Adobe-Japan1-6\",\n  \"Adobe-Korea1-0\",\n  \"Adobe-Korea1-1\",\n  \"Adobe-Korea1-2\",\n  \"B5-H\",\n  \"B5-V\",\n  \"B5pc-H\",\n  \"B5pc-V\",\n  \"CNS-EUC-H\",\n  \"CNS-EUC-V\",\n  \"CNS1-H\",\n  \"CNS1-V\",\n  \"CNS2-H\",\n  \"CNS2-V\",\n  \"ETHK-B5-H\",\n  \"ETHK-B5-V\",\n  \"ETen-B5-H\",\n  \"ETen-B5-V\",\n  \"ETenms-B5-H\",\n  \"ETenms-B5-V\",\n  \"EUC-H\",\n  \"EUC-V\",\n  \"Ext-H\",\n  \"Ext-RKSJ-H\",\n  \"Ext-RKSJ-V\",\n  \"Ext-V\",\n  \"GB-EUC-H\",\n  \"GB-EUC-V\",\n  \"GB-H\",\n  \"GB-V\",\n  \"GBK-EUC-H\",\n  \"GBK-EUC-V\",\n  \"GBK2K-H\",\n  \"GBK2K-V\",\n  \"GBKp-EUC-H\",\n  \"GBKp-EUC-V\",\n  \"GBT-EUC-H\",\n  \"GBT-EUC-V\",\n  \"GBT-H\",\n  \"GBT-V\",\n  \"GBTpc-EUC-H\",\n  \"GBTpc-EUC-V\",\n  \"GBpc-EUC-H\",\n  \"GBpc-EUC-V\",\n  \"H\",\n  \"HKdla-B5-H\",\n  \"HKdla-B5-V\",\n  \"HKdlb-B5-H\",\n  \"HKdlb-B5-V\",\n  \"HKgccs-B5-H\",\n  \"HKgccs-B5-V\",\n  \"HKm314-B5-H\",\n  \"HKm314-B5-V\",\n  \"HKm471-B5-H\",\n  \"HKm471-B5-V\",\n  \"HKscs-B5-H\",\n  \"HKscs-B5-V\",\n  \"Hankaku\",\n  \"Hiragana\",\n  \"KSC-EUC-H\",\n  \"KSC-EUC-V\",\n  \"KSC-H\",\n  \"KSC-Johab-H\",\n  \"KSC-Johab-V\",\n  \"KSC-V\",\n  \"KSCms-UHC-H\",\n  \"KSCms-UHC-HW-H\",\n  \"KSCms-UHC-HW-V\",\n  \"KSCms-UHC-V\",\n  \"KSCpc-EUC-H\",\n  \"KSCpc-EUC-V\",\n  \"Katakana\",\n  \"NWP-H\",\n  \"NWP-V\",\n  \"RKSJ-H\",\n  \"RKSJ-V\",\n  \"Roman\",\n  \"UniCNS-UCS2-H\",\n  \"UniCNS-UCS2-V\",\n  \"UniCNS-UTF16-H\",\n  \"UniCNS-UTF16-V\",\n  \"UniCNS-UTF32-H\",\n  \"UniCNS-UTF32-V\",\n  \"UniCNS-UTF8-H\",\n  \"UniCNS-UTF8-V\",\n  \"UniGB-UCS2-H\",\n  \"UniGB-UCS2-V\",\n  \"UniGB-UTF16-H\",\n  \"UniGB-UTF16-V\",\n  \"UniGB-UTF32-H\",\n  \"UniGB-UTF32-V\",\n  \"UniGB-UTF8-H\",\n  \"UniGB-UTF8-V\",\n  \"UniJIS-UCS2-H\",\n  \"UniJIS-UCS2-HW-H\",\n  \"UniJIS-UCS2-HW-V\",\n  \"UniJIS-UCS2-V\",\n  \"UniJIS-UTF16-H\",\n  \"UniJIS-UTF16-V\",\n  \"UniJIS-UTF32-H\",\n  \"UniJIS-UTF32-V\",\n  \"UniJIS-UTF8-H\",\n  \"UniJIS-UTF8-V\",\n  \"UniJIS2004-UTF16-H\",\n  \"UniJIS2004-UTF16-V\",\n  \"UniJIS2004-UTF32-H\",\n  \"UniJIS2004-UTF32-V\",\n  \"UniJIS2004-UTF8-H\",\n  \"UniJIS2004-UTF8-V\",\n  \"UniJISPro-UCS2-HW-V\",\n  \"UniJISPro-UCS2-V\",\n  \"UniJISPro-UTF8-V\",\n  \"UniJISX0213-UTF32-H\",\n  \"UniJISX0213-UTF32-V\",\n  \"UniJISX02132004-UTF32-H\",\n  \"UniJISX02132004-UTF32-V\",\n  \"UniKS-UCS2-H\",\n  \"UniKS-UCS2-V\",\n  \"UniKS-UTF16-H\",\n  \"UniKS-UTF16-V\",\n  \"UniKS-UTF32-H\",\n  \"UniKS-UTF32-V\",\n  \"UniKS-UTF8-H\",\n  \"UniKS-UTF8-V\",\n  \"V\",\n  \"WP-Symbol\",\n];\n\n// Heuristic to avoid hanging the worker-thread for CMap data with ridiculously\n// large ranges, such as e.g. 0xFFFFFFFF (fixes issue11922_reduced.pdf).\nconst MAX_MAP_RANGE = 2 ** 24 - 1; // = 0xFFFFFF\n\n// CMap, not to be confused with TrueType's cmap.\nclass CMap {\n  constructor(builtInCMap = false) {\n    // Codespace ranges are stored as follows:\n    // [[1BytePairs], [2BytePairs], [3BytePairs], [4BytePairs]]\n    // where nBytePairs are ranges e.g. [low1, high1, low2, high2, ...]\n    this.codespaceRanges = [[], [], [], []];\n    this.numCodespaceRanges = 0;\n    // Map entries have one of two forms.\n    // - cid chars are 16-bit unsigned integers, stored as integers.\n    // - bf chars are variable-length byte sequences, stored as strings, with\n    //   one byte per character.\n    this._map = [];\n    this.name = \"\";\n    this.vertical = false;\n    this.useCMap = null;\n    this.builtInCMap = builtInCMap;\n  }\n\n  addCodespaceRange(n, low, high) {\n    this.codespaceRanges[n - 1].push(low, high);\n    this.numCodespaceRanges++;\n  }\n\n  mapCidRange(low, high, dstLow) {\n    if (high - low > MAX_MAP_RANGE) {\n      throw new Error(\"mapCidRange - ignoring data above MAX_MAP_RANGE.\");\n    }\n    while (low <= high) {\n      this._map[low++] = dstLow++;\n    }\n  }\n\n  mapBfRange(low, high, dstLow) {\n    if (high - low > MAX_MAP_RANGE) {\n      throw new Error(\"mapBfRange - ignoring data above MAX_MAP_RANGE.\");\n    }\n    const lastByte = dstLow.length - 1;\n    while (low <= high) {\n      this._map[low++] = dstLow;\n      // Only the last byte has to be incremented (in the normal case).\n      const nextCharCode = dstLow.charCodeAt(lastByte) + 1;\n      if (nextCharCode > 0xff) {\n        dstLow =\n          dstLow.substring(0, lastByte - 1) +\n          String.fromCharCode(dstLow.charCodeAt(lastByte - 1) + 1) +\n          \"\\x00\";\n        continue;\n      }\n      dstLow =\n        dstLow.substring(0, lastByte) + String.fromCharCode(nextCharCode);\n    }\n  }\n\n  mapBfRangeToArray(low, high, array) {\n    if (high - low > MAX_MAP_RANGE) {\n      throw new Error(\"mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.\");\n    }\n    const ii = array.length;\n    let i = 0;\n    while (low <= high && i < ii) {\n      this._map[low] = array[i++];\n      ++low;\n    }\n  }\n\n  // This is used for both bf and cid chars.\n  mapOne(src, dst) {\n    this._map[src] = dst;\n  }\n\n  lookup(code) {\n    return this._map[code];\n  }\n\n  contains(code) {\n    return this._map[code] !== undefined;\n  }\n\n  forEach(callback) {\n    // Most maps have fewer than 65536 entries, and for those we use normal\n    // array iteration. But really sparse tables are possible -- e.g. with\n    // indices in the *billions*. For such tables we use for..in, which isn't\n    // ideal because it stringifies the indices for all present elements, but\n    // it does avoid iterating over every undefined entry.\n    const map = this._map;\n    const length = map.length;\n    if (length <= 0x10000) {\n      for (let i = 0; i < length; i++) {\n        if (map[i] !== undefined) {\n          callback(i, map[i]);\n        }\n      }\n    } else {\n      for (const i in map) {\n        callback(i, map[i]);\n      }\n    }\n  }\n\n  charCodeOf(value) {\n    // `Array.prototype.indexOf` is *extremely* inefficient for arrays which\n    // are both very sparse and very large (see issue8372.pdf).\n    const map = this._map;\n    if (map.length <= 0x10000) {\n      return map.indexOf(value);\n    }\n    for (const charCode in map) {\n      if (map[charCode] === value) {\n        return charCode | 0;\n      }\n    }\n    return -1;\n  }\n\n  getMap() {\n    return this._map;\n  }\n\n  readCharCode(str, offset, out) {\n    let c = 0;\n    const codespaceRanges = this.codespaceRanges;\n    // 9.7.6.2 CMap Mapping\n    // The code length is at most 4.\n    for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\n      c = ((c << 8) | str.charCodeAt(offset + n)) >>> 0;\n      // Check each codespace range to see if it falls within.\n      const codespaceRange = codespaceRanges[n];\n      for (let k = 0, kk = codespaceRange.length; k < kk; ) {\n        const low = codespaceRange[k++];\n        const high = codespaceRange[k++];\n        if (c >= low && c <= high) {\n          out.charcode = c;\n          out.length = n + 1;\n          return;\n        }\n      }\n    }\n    out.charcode = 0;\n    out.length = 1;\n  }\n\n  getCharCodeLength(charCode) {\n    const codespaceRanges = this.codespaceRanges;\n    for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\n      // Check each codespace range to see if it falls within.\n      const codespaceRange = codespaceRanges[n];\n      for (let k = 0, kk = codespaceRange.length; k < kk; ) {\n        const low = codespaceRange[k++];\n        const high = codespaceRange[k++];\n        if (charCode >= low && charCode <= high) {\n          return n + 1;\n        }\n      }\n    }\n    return 1;\n  }\n\n  get length() {\n    return this._map.length;\n  }\n\n  get isIdentityCMap() {\n    if (!(this.name === \"Identity-H\" || this.name === \"Identity-V\")) {\n      return false;\n    }\n    if (this._map.length !== 0x10000) {\n      return false;\n    }\n    for (let i = 0; i < 0x10000; i++) {\n      if (this._map[i] !== i) {\n        return false;\n      }\n    }\n    return true;\n  }\n}\n\n// A special case of CMap, where the _map array implicitly has a length of\n// 65536 and each element is equal to its index.\nclass IdentityCMap extends CMap {\n  constructor(vertical, n) {\n    super();\n\n    this.vertical = vertical;\n    this.addCodespaceRange(n, 0, 0xffff);\n  }\n\n  mapCidRange(low, high, dstLow) {\n    unreachable(\"should not call mapCidRange\");\n  }\n\n  mapBfRange(low, high, dstLow) {\n    unreachable(\"should not call mapBfRange\");\n  }\n\n  mapBfRangeToArray(low, high, array) {\n    unreachable(\"should not call mapBfRangeToArray\");\n  }\n\n  mapOne(src, dst) {\n    unreachable(\"should not call mapCidOne\");\n  }\n\n  lookup(code) {\n    return Number.isInteger(code) && code <= 0xffff ? code : undefined;\n  }\n\n  contains(code) {\n    return Number.isInteger(code) && code <= 0xffff;\n  }\n\n  forEach(callback) {\n    for (let i = 0; i <= 0xffff; i++) {\n      callback(i, i);\n    }\n  }\n\n  charCodeOf(value) {\n    return Number.isInteger(value) && value <= 0xffff ? value : -1;\n  }\n\n  getMap() {\n    // Sometimes identity maps must be instantiated, but it's rare.\n    const map = new Array(0x10000);\n    for (let i = 0; i <= 0xffff; i++) {\n      map[i] = i;\n    }\n    return map;\n  }\n\n  get length() {\n    return 0x10000;\n  }\n\n  // eslint-disable-next-line getter-return\n  get isIdentityCMap() {\n    unreachable(\"should not access .isIdentityCMap\");\n  }\n}\n\nfunction strToInt(str) {\n  let a = 0;\n  for (let i = 0; i < str.length; i++) {\n    a = (a << 8) | str.charCodeAt(i);\n  }\n  return a >>> 0;\n}\n\nfunction expectString(obj) {\n  if (typeof obj !== \"string\") {\n    throw new FormatError(\"Malformed CMap: expected string.\");\n  }\n}\n\nfunction expectInt(obj) {\n  if (!Number.isInteger(obj)) {\n    throw new FormatError(\"Malformed CMap: expected int.\");\n  }\n}\n\nfunction parseBfChar(cMap, lexer) {\n  while (true) {\n    let obj = lexer.getObj();\n    if (obj === EOF) {\n      break;\n    }\n    if (isCmd(obj, \"endbfchar\")) {\n      return;\n    }\n    expectString(obj);\n    const src = strToInt(obj);\n    obj = lexer.getObj();\n    // TODO are /dstName used?\n    expectString(obj);\n    const dst = obj;\n    cMap.mapOne(src, dst);\n  }\n}\n\nfunction parseBfRange(cMap, lexer) {\n  while (true) {\n    let obj = lexer.getObj();\n    if (obj === EOF) {\n      break;\n    }\n    if (isCmd(obj, \"endbfrange\")) {\n      return;\n    }\n    expectString(obj);\n    const low = strToInt(obj);\n    obj = lexer.getObj();\n    expectString(obj);\n    const high = strToInt(obj);\n    obj = lexer.getObj();\n    if (Number.isInteger(obj) || typeof obj === \"string\") {\n      const dstLow = Number.isInteger(obj) ? String.fromCharCode(obj) : obj;\n      cMap.mapBfRange(low, high, dstLow);\n    } else if (isCmd(obj, \"[\")) {\n      obj = lexer.getObj();\n      const array = [];\n      while (!isCmd(obj, \"]\") && obj !== EOF) {\n        array.push(obj);\n        obj = lexer.getObj();\n      }\n      cMap.mapBfRangeToArray(low, high, array);\n    } else {\n      break;\n    }\n  }\n  throw new FormatError(\"Invalid bf range.\");\n}\n\nfunction parseCidChar(cMap, lexer) {\n  while (true) {\n    let obj = lexer.getObj();\n    if (obj === EOF) {\n      break;\n    }\n    if (isCmd(obj, \"endcidchar\")) {\n      return;\n    }\n    expectString(obj);\n    const src = strToInt(obj);\n    obj = lexer.getObj();\n    expectInt(obj);\n    const dst = obj;\n    cMap.mapOne(src, dst);\n  }\n}\n\nfunction parseCidRange(cMap, lexer) {\n  while (true) {\n    let obj = lexer.getObj();\n    if (obj === EOF) {\n      break;\n    }\n    if (isCmd(obj, \"endcidrange\")) {\n      return;\n    }\n    expectString(obj);\n    const low = strToInt(obj);\n    obj = lexer.getObj();\n    expectString(obj);\n    const high = strToInt(obj);\n    obj = lexer.getObj();\n    expectInt(obj);\n    const dstLow = obj;\n    cMap.mapCidRange(low, high, dstLow);\n  }\n}\n\nfunction parseCodespaceRange(cMap, lexer) {\n  while (true) {\n    let obj = lexer.getObj();\n    if (obj === EOF) {\n      break;\n    }\n    if (isCmd(obj, \"endcodespacerange\")) {\n      return;\n    }\n    if (typeof obj !== \"string\") {\n      break;\n    }\n    const low = strToInt(obj);\n    obj = lexer.getObj();\n    if (typeof obj !== \"string\") {\n      break;\n    }\n    const high = strToInt(obj);\n    cMap.addCodespaceRange(obj.length, low, high);\n  }\n  throw new FormatError(\"Invalid codespace range.\");\n}\n\nfunction parseWMode(cMap, lexer) {\n  const obj = lexer.getObj();\n  if (Number.isInteger(obj)) {\n    cMap.vertical = !!obj;\n  }\n}\n\nfunction parseCMapName(cMap, lexer) {\n  const obj = lexer.getObj();\n  if (obj instanceof Name) {\n    cMap.name = obj.name;\n  }\n}\n\nasync function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) {\n  let previous, embeddedUseCMap;\n  objLoop: while (true) {\n    try {\n      const obj = lexer.getObj();\n      if (obj === EOF) {\n        break;\n      } else if (obj instanceof Name) {\n        if (obj.name === \"WMode\") {\n          parseWMode(cMap, lexer);\n        } else if (obj.name === \"CMapName\") {\n          parseCMapName(cMap, lexer);\n        }\n        previous = obj;\n      } else if (obj instanceof Cmd) {\n        switch (obj.cmd) {\n          case \"endcmap\":\n            break objLoop;\n          case \"usecmap\":\n            if (previous instanceof Name) {\n              embeddedUseCMap = previous.name;\n            }\n            break;\n          case \"begincodespacerange\":\n            parseCodespaceRange(cMap, lexer);\n            break;\n          case \"beginbfchar\":\n            parseBfChar(cMap, lexer);\n            break;\n          case \"begincidchar\":\n            parseCidChar(cMap, lexer);\n            break;\n          case \"beginbfrange\":\n            parseBfRange(cMap, lexer);\n            break;\n          case \"begincidrange\":\n            parseCidRange(cMap, lexer);\n            break;\n        }\n      }\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(\"Invalid cMap data: \" + ex);\n      continue;\n    }\n  }\n\n  if (!useCMap && embeddedUseCMap) {\n    // Load the useCMap definition from the file only if there wasn't one\n    // specified.\n    useCMap = embeddedUseCMap;\n  }\n  if (useCMap) {\n    return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n  }\n  return cMap;\n}\n\nasync function extendCMap(cMap, fetchBuiltInCMap, useCMap) {\n  cMap.useCMap = await createBuiltInCMap(useCMap, fetchBuiltInCMap);\n  // If there aren't any code space ranges defined clone all the parent ones\n  // into this cMap.\n  if (cMap.numCodespaceRanges === 0) {\n    const useCodespaceRanges = cMap.useCMap.codespaceRanges;\n    for (let i = 0; i < useCodespaceRanges.length; i++) {\n      cMap.codespaceRanges[i] = useCodespaceRanges[i].slice();\n    }\n    cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges;\n  }\n  // Merge the map into the current one, making sure not to override\n  // any previously defined entries.\n  cMap.useCMap.forEach(function (key, value) {\n    if (!cMap.contains(key)) {\n      cMap.mapOne(key, cMap.useCMap.lookup(key));\n    }\n  });\n\n  return cMap;\n}\n\nasync function createBuiltInCMap(name, fetchBuiltInCMap) {\n  if (name === \"Identity-H\") {\n    return new IdentityCMap(false, 2);\n  } else if (name === \"Identity-V\") {\n    return new IdentityCMap(true, 2);\n  }\n  if (!BUILT_IN_CMAPS.includes(name)) {\n    throw new Error(\"Unknown CMap name: \" + name);\n  }\n  if (!fetchBuiltInCMap) {\n    throw new Error(\"Built-in CMap parameters are not provided.\");\n  }\n\n  const { cMapData, compressionType } = await fetchBuiltInCMap(name);\n  const cMap = new CMap(true);\n\n  if (compressionType === CMapCompressionType.BINARY) {\n    return new BinaryCMapReader().process(cMapData, cMap, useCMap => {\n      return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n    });\n  }\n  if (compressionType === CMapCompressionType.NONE) {\n    const lexer = new Lexer(new Stream(cMapData));\n    return parseCMap(cMap, lexer, fetchBuiltInCMap, null);\n  }\n  throw new Error(`Invalid CMap \"compressionType\" value: ${compressionType}`);\n}\n\nclass CMapFactory {\n  static async create({ encoding, fetchBuiltInCMap, useCMap }) {\n    if (encoding instanceof Name) {\n      return createBuiltInCMap(encoding.name, fetchBuiltInCMap);\n    } else if (encoding instanceof BaseStream) {\n      const parsedCMap = await parseCMap(\n        /* cMap = */ new CMap(),\n        /* lexer = */ new Lexer(encoding),\n        fetchBuiltInCMap,\n        useCMap\n      );\n\n      if (parsedCMap.isIdentityCMap) {\n        return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap);\n      }\n      return parsedCMap;\n    }\n    throw new Error(\"Encoding required.\");\n  }\n}\n\nexport { CMap, CMapFactory, IdentityCMap };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// prettier-ignore\nconst ISOAdobeCharset = [\n  \".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\",\n  \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\",\n  \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\",\n  \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\",\n  \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\",\n  \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\",\n  \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\",\n  \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\",\n  \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\",\n  \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\",\n  \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\",\n  \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\",\n  \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\",\n  \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\",\n  \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\",\n  \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\",\n  \"perthousand\", \"questiondown\", \"grave\", \"acute\", \"circumflex\", \"tilde\",\n  \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"ring\", \"cedilla\",\n  \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"AE\", \"ordfeminine\",\n  \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\", \"dotlessi\", \"lslash\",\n  \"oslash\", \"oe\", \"germandbls\", \"onesuperior\", \"logicalnot\", \"mu\",\n  \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\", \"onequarter\",\n  \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\", \"twosuperior\",\n  \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\", \"copyright\",\n  \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\", \"Atilde\",\n  \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\", \"Iacute\",\n  \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\", \"Ocircumflex\",\n  \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\", \"Ucircumflex\",\n  \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\", \"aacute\",\n  \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\", \"ccedilla\",\n  \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\", \"icircumflex\",\n  \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\", \"odieresis\",\n  \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\", \"udieresis\",\n  \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\"\n];\n\n// prettier-ignore\nconst ExpertCharset = [\n  \".notdef\", \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"dollaroldstyle\",\n  \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\",\n  \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\",\n  \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\",\n  \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\",\n  \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\",\n  \"colon\", \"semicolon\", \"commasuperior\", \"threequartersemdash\",\n  \"periodsuperior\", \"questionsmall\", \"asuperior\", \"bsuperior\",\n  \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\",\n  \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\",\n  \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\",\n  \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\",\n  \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\",\n  \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\",\n  \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\",\n  \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\",\n  \"onefitted\", \"rupiah\", \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\",\n  \"Lslashsmall\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\",\n  \"Brevesmall\", \"Caronsmall\", \"Dotaccentsmall\", \"Macronsmall\",\n  \"figuredash\", \"hypheninferior\", \"Ogoneksmall\", \"Ringsmall\",\n  \"Cedillasmall\", \"onequarter\", \"onehalf\", \"threequarters\",\n  \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n  \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\",\n  \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\",\n  \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\",\n  \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\",\n  \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\",\n  \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\",\n  \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\",\n  \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\",\n  \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\",\n  \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\",\n  \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\",\n  \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\",\n  \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\",\n  \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\",\n  \"Ydieresissmall\"\n];\n\n// prettier-ignore\nconst ExpertSubsetCharset = [\n  \".notdef\", \"space\", \"dollaroldstyle\", \"dollarsuperior\",\n  \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\",\n  \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\",\n  \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\",\n  \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\",\n  \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"commasuperior\",\n  \"threequartersemdash\", \"periodsuperior\", \"asuperior\", \"bsuperior\",\n  \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\",\n  \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\",\n  \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\",\n  \"parenrightinferior\", \"hyphensuperior\", \"colonmonetary\", \"onefitted\",\n  \"rupiah\", \"centoldstyle\", \"figuredash\", \"hypheninferior\", \"onequarter\",\n  \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n  \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\",\n  \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\",\n  \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\",\n  \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\",\n  \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\",\n  \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\",\n  \"periodinferior\", \"commainferior\"\n];\n\nexport { ExpertCharset, ExpertSubsetCharset, ISOAdobeCharset };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// prettier-ignore\nconst ExpertEncoding = [\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"\", \"dollaroldstyle\",\n  \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\",\n  \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\",\n  \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\",\n  \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\",\n  \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\",\n  \"semicolon\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\",\n  \"questionsmall\", \"\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\",\n  \"esuperior\", \"\", \"\", \"\", \"isuperior\", \"\", \"\", \"lsuperior\", \"msuperior\",\n  \"nsuperior\", \"osuperior\", \"\", \"\", \"rsuperior\", \"ssuperior\", \"tsuperior\",\n  \"\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\",\n  \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\",\n  \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\",\n  \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\",\n  \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\",\n  \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\",\n  \"onefitted\", \"rupiah\", \"Tildesmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\",\n  \"\", \"\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\",\n  \"Caronsmall\", \"\", \"Dotaccentsmall\", \"\", \"\", \"Macronsmall\", \"\", \"\",\n  \"figuredash\", \"hypheninferior\", \"\", \"\", \"Ogoneksmall\", \"Ringsmall\",\n  \"Cedillasmall\", \"\", \"\", \"\", \"onequarter\", \"onehalf\", \"threequarters\",\n  \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n  \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"zerosuperior\",\n  \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\",\n  \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\",\n  \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\",\n  \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\",\n  \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\",\n  \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\",\n  \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\",\n  \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\",\n  \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\",\n  \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\",\n  \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\",\n  \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\",\n  \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\",\n  \"Ydieresissmall\"];\n\n// prettier-ignore\nconst MacExpertEncoding = [\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"centoldstyle\",\n  \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\",\n  \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\",\n  \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\",\n  \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\",\n  \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\",\n  \"nineoldstyle\", \"colon\", \"semicolon\", \"\", \"threequartersemdash\", \"\",\n  \"questionsmall\", \"\", \"\", \"\", \"\", \"Ethsmall\", \"\", \"\", \"onequarter\",\n  \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n  \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"\", \"\", \"\", \"\", \"ff\",\n  \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\", \"parenrightinferior\",\n  \"Circumflexsmall\", \"hypheninferior\", \"Gravesmall\", \"Asmall\", \"Bsmall\",\n  \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\",\n  \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\",\n  \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\",\n  \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\",\n  \"Tildesmall\", \"\", \"\", \"asuperior\", \"centsuperior\", \"\", \"\", \"\", \"\",\n  \"Aacutesmall\", \"Agravesmall\", \"Acircumflexsmall\", \"Adieresissmall\",\n  \"Atildesmall\", \"Aringsmall\", \"Ccedillasmall\", \"Eacutesmall\", \"Egravesmall\",\n  \"Ecircumflexsmall\", \"Edieresissmall\", \"Iacutesmall\", \"Igravesmall\",\n  \"Icircumflexsmall\", \"Idieresissmall\", \"Ntildesmall\", \"Oacutesmall\",\n  \"Ogravesmall\", \"Ocircumflexsmall\", \"Odieresissmall\", \"Otildesmall\",\n  \"Uacutesmall\", \"Ugravesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"\",\n  \"eightsuperior\", \"fourinferior\", \"threeinferior\", \"sixinferior\",\n  \"eightinferior\", \"seveninferior\", \"Scaronsmall\", \"\", \"centinferior\",\n  \"twoinferior\", \"\", \"Dieresissmall\", \"\", \"Caronsmall\", \"osuperior\",\n  \"fiveinferior\", \"\", \"commainferior\", \"periodinferior\", \"Yacutesmall\", \"\",\n  \"dollarinferior\", \"\", \"\", \"Thornsmall\", \"\", \"nineinferior\", \"zeroinferior\",\n  \"Zcaronsmall\", \"AEsmall\", \"Oslashsmall\", \"questiondownsmall\",\n  \"oneinferior\", \"Lslashsmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"Cedillasmall\", \"\",\n  \"\", \"\", \"\", \"\", \"OEsmall\", \"figuredash\", \"hyphensuperior\", \"\", \"\", \"\", \"\",\n  \"exclamdownsmall\", \"\", \"Ydieresissmall\", \"\", \"onesuperior\", \"twosuperior\",\n  \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\",\n  \"sevensuperior\", \"ninesuperior\", \"zerosuperior\", \"\", \"esuperior\",\n  \"rsuperior\", \"tsuperior\", \"\", \"\", \"isuperior\", \"ssuperior\", \"dsuperior\",\n  \"\", \"\", \"\", \"\", \"\", \"lsuperior\", \"Ogoneksmall\", \"Brevesmall\",\n  \"Macronsmall\", \"bsuperior\", \"nsuperior\", \"msuperior\", \"commasuperior\",\n  \"periodsuperior\", \"Dotaccentsmall\", \"Ringsmall\", \"\", \"\", \"\", \"\"];\n\n// prettier-ignore\nconst MacRomanEncoding = [\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n  \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n  \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\",\n  \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\",\n  \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\",\n  \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\",\n  \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\",\n  \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\",\n  \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\",\n  \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"\",\n  \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\", \"Odieresis\",\n  \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\", \"atilde\",\n  \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\",\n  \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\",\n  \"ograve\", \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\",\n  \"ucircumflex\", \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\",\n  \"section\", \"bullet\", \"paragraph\", \"germandbls\", \"registered\", \"copyright\",\n  \"trademark\", \"acute\", \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\",\n  \"plusminus\", \"lessequal\", \"greaterequal\", \"yen\", \"mu\", \"partialdiff\",\n  \"summation\", \"product\", \"pi\", \"integral\", \"ordfeminine\", \"ordmasculine\",\n  \"Omega\", \"ae\", \"oslash\", \"questiondown\", \"exclamdown\", \"logicalnot\",\n  \"radical\", \"florin\", \"approxequal\", \"Delta\", \"guillemotleft\",\n  \"guillemotright\", \"ellipsis\", \"space\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\",\n  \"oe\", \"endash\", \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\",\n  \"quoteright\", \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\",\n  \"currency\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\",\n  \"periodcentered\", \"quotesinglbase\", \"quotedblbase\", \"perthousand\",\n  \"Acircumflex\", \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\",\n  \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\",\n  \"Ograve\", \"Uacute\", \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\",\n  \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\",\n  \"ogonek\", \"caron\"];\n\n// prettier-ignore\nconst StandardEncoding = [\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n  \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n  \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\",\n  \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\",\n  \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\",\n  \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\",\n  \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\",\n  \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\",\n  \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\",\n  \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdown\",\n  \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\",\n  \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\",\n  \"guilsinglright\", \"fi\", \"fl\", \"\", \"endash\", \"dagger\", \"daggerdbl\",\n  \"periodcentered\", \"\", \"paragraph\", \"bullet\", \"quotesinglbase\",\n  \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\",\n  \"perthousand\", \"\", \"questiondown\", \"\", \"grave\", \"acute\", \"circumflex\",\n  \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"\", \"ring\", \"cedilla\",\n  \"\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"AE\", \"\", \"ordfeminine\", \"\", \"\",\n  \"\", \"\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"\", \"\", \"\", \"\", \"\", \"ae\",\n  \"\", \"\", \"\", \"dotlessi\", \"\", \"\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"\",\n  \"\", \"\", \"\"];\n\n// prettier-ignore\nconst WinAnsiEncoding = [\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n  \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n  \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\",\n  \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\",\n  \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\",\n  \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\",\n  \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\",\n  \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\",\n  \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\",\n  \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\",\n  \"bullet\", \"Euro\", \"bullet\", \"quotesinglbase\", \"florin\", \"quotedblbase\",\n  \"ellipsis\", \"dagger\", \"daggerdbl\", \"circumflex\", \"perthousand\", \"Scaron\",\n  \"guilsinglleft\", \"OE\", \"bullet\", \"Zcaron\", \"bullet\", \"bullet\", \"quoteleft\",\n  \"quoteright\", \"quotedblleft\", \"quotedblright\", \"bullet\", \"endash\",\n  \"emdash\", \"tilde\", \"trademark\", \"scaron\", \"guilsinglright\", \"oe\", \"bullet\",\n  \"zcaron\", \"Ydieresis\", \"space\", \"exclamdown\", \"cent\", \"sterling\",\n  \"currency\", \"yen\", \"brokenbar\", \"section\", \"dieresis\", \"copyright\",\n  \"ordfeminine\", \"guillemotleft\", \"logicalnot\", \"hyphen\", \"registered\",\n  \"macron\", \"degree\", \"plusminus\", \"twosuperior\", \"threesuperior\", \"acute\",\n  \"mu\", \"paragraph\", \"periodcentered\", \"cedilla\", \"onesuperior\",\n  \"ordmasculine\", \"guillemotright\", \"onequarter\", \"onehalf\", \"threequarters\",\n  \"questiondown\", \"Agrave\", \"Aacute\", \"Acircumflex\", \"Atilde\", \"Adieresis\",\n  \"Aring\", \"AE\", \"Ccedilla\", \"Egrave\", \"Eacute\", \"Ecircumflex\", \"Edieresis\",\n  \"Igrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Eth\", \"Ntilde\", \"Ograve\",\n  \"Oacute\", \"Ocircumflex\", \"Otilde\", \"Odieresis\", \"multiply\", \"Oslash\",\n  \"Ugrave\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Yacute\", \"Thorn\",\n  \"germandbls\", \"agrave\", \"aacute\", \"acircumflex\", \"atilde\", \"adieresis\",\n  \"aring\", \"ae\", \"ccedilla\", \"egrave\", \"eacute\", \"ecircumflex\", \"edieresis\",\n  \"igrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"eth\", \"ntilde\", \"ograve\",\n  \"oacute\", \"ocircumflex\", \"otilde\", \"odieresis\", \"divide\", \"oslash\",\n  \"ugrave\", \"uacute\", \"ucircumflex\", \"udieresis\", \"yacute\", \"thorn\",\n  \"ydieresis\"];\n\n// prettier-ignore\nconst SymbolSetEncoding = [\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"space\", \"exclam\", \"universal\", \"numbersign\", \"existential\", \"percent\",\n  \"ampersand\", \"suchthat\", \"parenleft\", \"parenright\", \"asteriskmath\", \"plus\",\n  \"comma\", \"minus\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\",\n  \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\",\n  \"equal\", \"greater\", \"question\", \"congruent\", \"Alpha\", \"Beta\", \"Chi\",\n  \"Delta\", \"Epsilon\", \"Phi\", \"Gamma\", \"Eta\", \"Iota\", \"theta1\", \"Kappa\",\n  \"Lambda\", \"Mu\", \"Nu\", \"Omicron\", \"Pi\", \"Theta\", \"Rho\", \"Sigma\", \"Tau\",\n  \"Upsilon\", \"sigma1\", \"Omega\", \"Xi\", \"Psi\", \"Zeta\", \"bracketleft\",\n  \"therefore\", \"bracketright\", \"perpendicular\", \"underscore\", \"radicalex\",\n  \"alpha\", \"beta\", \"chi\", \"delta\", \"epsilon\", \"phi\", \"gamma\", \"eta\", \"iota\",\n  \"phi1\", \"kappa\", \"lambda\", \"mu\", \"nu\", \"omicron\", \"pi\", \"theta\", \"rho\",\n  \"sigma\", \"tau\", \"upsilon\", \"omega1\", \"omega\", \"xi\", \"psi\", \"zeta\",\n  \"braceleft\", \"bar\", \"braceright\", \"similar\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"Euro\", \"Upsilon1\", \"minute\", \"lessequal\",\n  \"fraction\", \"infinity\", \"florin\", \"club\", \"diamond\", \"heart\", \"spade\",\n  \"arrowboth\", \"arrowleft\", \"arrowup\", \"arrowright\", \"arrowdown\", \"degree\",\n  \"plusminus\", \"second\", \"greaterequal\", \"multiply\", \"proportional\",\n  \"partialdiff\", \"bullet\", \"divide\", \"notequal\", \"equivalence\",\n  \"approxequal\", \"ellipsis\", \"arrowvertex\", \"arrowhorizex\", \"carriagereturn\",\n  \"aleph\", \"Ifraktur\", \"Rfraktur\", \"weierstrass\", \"circlemultiply\",\n  \"circleplus\", \"emptyset\", \"intersection\", \"union\", \"propersuperset\",\n  \"reflexsuperset\", \"notsubset\", \"propersubset\", \"reflexsubset\", \"element\",\n  \"notelement\", \"angle\", \"gradient\", \"registerserif\", \"copyrightserif\",\n  \"trademarkserif\", \"product\", \"radical\", \"dotmath\", \"logicalnot\",\n  \"logicaland\", \"logicalor\", \"arrowdblboth\", \"arrowdblleft\", \"arrowdblup\",\n  \"arrowdblright\", \"arrowdbldown\", \"lozenge\", \"angleleft\", \"registersans\",\n  \"copyrightsans\", \"trademarksans\", \"summation\", \"parenlefttp\",\n  \"parenleftex\", \"parenleftbt\", \"bracketlefttp\", \"bracketleftex\",\n  \"bracketleftbt\", \"bracelefttp\", \"braceleftmid\", \"braceleftbt\", \"braceex\",\n  \"\", \"angleright\", \"integral\", \"integraltp\", \"integralex\", \"integralbt\",\n  \"parenrighttp\", \"parenrightex\", \"parenrightbt\", \"bracketrighttp\",\n  \"bracketrightex\", \"bracketrightbt\", \"bracerighttp\", \"bracerightmid\",\n  \"bracerightbt\", \"\"];\n\n// prettier-ignore\nconst ZapfDingbatsEncoding = [\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"space\", \"a1\", \"a2\", \"a202\", \"a3\", \"a4\", \"a5\", \"a119\", \"a118\", \"a117\",\n  \"a11\", \"a12\", \"a13\", \"a14\", \"a15\", \"a16\", \"a105\", \"a17\", \"a18\", \"a19\",\n  \"a20\", \"a21\", \"a22\", \"a23\", \"a24\", \"a25\", \"a26\", \"a27\", \"a28\", \"a6\", \"a7\",\n  \"a8\", \"a9\", \"a10\", \"a29\", \"a30\", \"a31\", \"a32\", \"a33\", \"a34\", \"a35\", \"a36\",\n  \"a37\", \"a38\", \"a39\", \"a40\", \"a41\", \"a42\", \"a43\", \"a44\", \"a45\", \"a46\",\n  \"a47\", \"a48\", \"a49\", \"a50\", \"a51\", \"a52\", \"a53\", \"a54\", \"a55\", \"a56\",\n  \"a57\", \"a58\", \"a59\", \"a60\", \"a61\", \"a62\", \"a63\", \"a64\", \"a65\", \"a66\",\n  \"a67\", \"a68\", \"a69\", \"a70\", \"a71\", \"a72\", \"a73\", \"a74\", \"a203\", \"a75\",\n  \"a204\", \"a76\", \"a77\", \"a78\", \"a79\", \"a81\", \"a82\", \"a83\", \"a84\", \"a97\",\n  \"a98\", \"a99\", \"a100\", \"\", \"a89\", \"a90\", \"a93\", \"a94\", \"a91\", \"a92\", \"a205\",\n  \"a85\", \"a206\", \"a86\", \"a87\", \"a88\", \"a95\", \"a96\", \"\", \"\", \"\", \"\", \"\", \"\",\n  \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"a101\", \"a102\", \"a103\",\n  \"a104\", \"a106\", \"a107\", \"a108\", \"a112\", \"a111\", \"a110\", \"a109\", \"a120\",\n  \"a121\", \"a122\", \"a123\", \"a124\", \"a125\", \"a126\", \"a127\", \"a128\", \"a129\",\n  \"a130\", \"a131\", \"a132\", \"a133\", \"a134\", \"a135\", \"a136\", \"a137\", \"a138\",\n  \"a139\", \"a140\", \"a141\", \"a142\", \"a143\", \"a144\", \"a145\", \"a146\", \"a147\",\n  \"a148\", \"a149\", \"a150\", \"a151\", \"a152\", \"a153\", \"a154\", \"a155\", \"a156\",\n  \"a157\", \"a158\", \"a159\", \"a160\", \"a161\", \"a163\", \"a164\", \"a196\", \"a165\",\n  \"a192\", \"a166\", \"a167\", \"a168\", \"a169\", \"a170\", \"a171\", \"a172\", \"a173\",\n  \"a162\", \"a174\", \"a175\", \"a176\", \"a177\", \"a178\", \"a179\", \"a193\", \"a180\",\n  \"a199\", \"a181\", \"a200\", \"a182\", \"\", \"a201\", \"a183\", \"a184\", \"a197\", \"a185\",\n  \"a194\", \"a198\", \"a186\", \"a195\", \"a187\", \"a188\", \"a189\", \"a190\", \"a191\", \"\"];\n\nfunction getEncoding(encodingName) {\n  switch (encodingName) {\n    case \"WinAnsiEncoding\":\n      return WinAnsiEncoding;\n    case \"StandardEncoding\":\n      return StandardEncoding;\n    case \"MacRomanEncoding\":\n      return MacRomanEncoding;\n    case \"SymbolSetEncoding\":\n      return SymbolSetEncoding;\n    case \"ZapfDingbatsEncoding\":\n      return ZapfDingbatsEncoding;\n    case \"ExpertEncoding\":\n      return ExpertEncoding;\n    case \"MacExpertEncoding\":\n      return MacExpertEncoding;\n    default:\n      return null;\n  }\n}\n\nexport {\n  ExpertEncoding,\n  getEncoding,\n  MacRomanEncoding,\n  StandardEncoding,\n  SymbolSetEncoding,\n  WinAnsiEncoding,\n  ZapfDingbatsEncoding,\n};\n","/* Copyright 2016 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  bytesToString,\n  FormatError,\n  info,\n  shadow,\n  stringToBytes,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport {\n  ExpertCharset,\n  ExpertSubsetCharset,\n  ISOAdobeCharset,\n} from \"./charsets.js\";\nimport { ExpertEncoding, StandardEncoding } from \"./encodings.js\";\n\n// Maximum subroutine call depth of type 2 charstrings. Matches OTS.\nconst MAX_SUBR_NESTING = 10;\n\n/**\n * The CFF class takes a Type1 file and wrap it into a\n * 'Compact Font Format' which itself embed Type2 charstrings.\n */\n// prettier-ignore\nconst CFFStandardStrings = [\n  \".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n  \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n  \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\",\n  \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\",\n  \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\",\n  \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\",\n  \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\",\n  \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\",\n  \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\",\n  \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\",\n  \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\",\n  \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\",\n  \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\",\n  \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\",\n  \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"questiondown\",\n  \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\",\n  \"dieresis\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\",\n  \"AE\", \"ordfeminine\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\",\n  \"dotlessi\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"onesuperior\",\n  \"logicalnot\", \"mu\", \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\",\n  \"onequarter\", \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\",\n  \"twosuperior\", \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\",\n  \"copyright\", \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\",\n  \"Atilde\", \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\",\n  \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\",\n  \"Ocircumflex\", \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\",\n  \"Ucircumflex\", \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\",\n  \"aacute\", \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\",\n  \"ccedilla\", \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\",\n  \"icircumflex\", \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\",\n  \"odieresis\", \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\",\n  \"udieresis\", \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\", \"exclamsmall\",\n  \"Hungarumlautsmall\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\",\n  \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\",\n  \"onedotenleader\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\",\n  \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\",\n  \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"commasuperior\",\n  \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"asuperior\",\n  \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\",\n  \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\",\n  \"tsuperior\", \"ff\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\",\n  \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\",\n  \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\",\n  \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\",\n  \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\",\n  \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\",\n  \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\",\n  \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\",\n  \"Dotaccentsmall\", \"Macronsmall\", \"figuredash\", \"hypheninferior\",\n  \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"questiondownsmall\", \"oneeighth\",\n  \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\",\n  \"zerosuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\",\n  \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\",\n  \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\",\n  \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\",\n  \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\",\n  \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\",\n  \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\",\n  \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\",\n  \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\",\n  \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\",\n  \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\",\n  \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\",\n  \"Thornsmall\", \"Ydieresissmall\", \"001.000\", \"001.001\", \"001.002\", \"001.003\",\n  \"Black\", \"Bold\", \"Book\", \"Light\", \"Medium\", \"Regular\", \"Roman\", \"Semibold\"\n];\n\nconst NUM_STANDARD_CFF_STRINGS = 391;\n\nconst CharstringValidationData = [\n  /*  0 */ null,\n  /*  1 */ { id: \"hstem\", min: 2, stackClearing: true, stem: true },\n  /*  2 */ null,\n  /*  3 */ { id: \"vstem\", min: 2, stackClearing: true, stem: true },\n  /*  4 */ { id: \"vmoveto\", min: 1, stackClearing: true },\n  /*  5 */ { id: \"rlineto\", min: 2, resetStack: true },\n  /*  6 */ { id: \"hlineto\", min: 1, resetStack: true },\n  /*  7 */ { id: \"vlineto\", min: 1, resetStack: true },\n  /*  8 */ { id: \"rrcurveto\", min: 6, resetStack: true },\n  /*  9 */ null,\n  /* 10 */ { id: \"callsubr\", min: 1, undefStack: true },\n  /* 11 */ { id: \"return\", min: 0, undefStack: true },\n  /* 12 */ null,\n  /* 13 */ null,\n  /* 14 */ { id: \"endchar\", min: 0, stackClearing: true },\n  /* 15 */ null,\n  /* 16 */ null,\n  /* 17 */ null,\n  /* 18 */ { id: \"hstemhm\", min: 2, stackClearing: true, stem: true },\n  /* 19 */ { id: \"hintmask\", min: 0, stackClearing: true },\n  /* 20 */ { id: \"cntrmask\", min: 0, stackClearing: true },\n  /* 21 */ { id: \"rmoveto\", min: 2, stackClearing: true },\n  /* 22 */ { id: \"hmoveto\", min: 1, stackClearing: true },\n  /* 23 */ { id: \"vstemhm\", min: 2, stackClearing: true, stem: true },\n  /* 24 */ { id: \"rcurveline\", min: 8, resetStack: true },\n  /* 25 */ { id: \"rlinecurve\", min: 8, resetStack: true },\n  /* 26 */ { id: \"vvcurveto\", min: 4, resetStack: true },\n  /* 27 */ { id: \"hhcurveto\", min: 4, resetStack: true },\n  /* 28 */ null, // shortint\n  /* 29 */ { id: \"callgsubr\", min: 1, undefStack: true },\n  /* 30 */ { id: \"vhcurveto\", min: 4, resetStack: true },\n  /* 31 */ { id: \"hvcurveto\", min: 4, resetStack: true },\n];\n\nconst CharstringValidationData12 = [\n  null,\n  null,\n  null,\n  { id: \"and\", min: 2, stackDelta: -1 },\n  { id: \"or\", min: 2, stackDelta: -1 },\n  { id: \"not\", min: 1, stackDelta: 0 },\n  null,\n  null,\n  null,\n  { id: \"abs\", min: 1, stackDelta: 0 },\n  {\n    id: \"add\",\n    min: 2,\n    stackDelta: -1,\n    stackFn(stack, index) {\n      stack[index - 2] = stack[index - 2] + stack[index - 1];\n    },\n  },\n  {\n    id: \"sub\",\n    min: 2,\n    stackDelta: -1,\n    stackFn(stack, index) {\n      stack[index - 2] = stack[index - 2] - stack[index - 1];\n    },\n  },\n  {\n    id: \"div\",\n    min: 2,\n    stackDelta: -1,\n    stackFn(stack, index) {\n      stack[index - 2] = stack[index - 2] / stack[index - 1];\n    },\n  },\n  null,\n  {\n    id: \"neg\",\n    min: 1,\n    stackDelta: 0,\n    stackFn(stack, index) {\n      stack[index - 1] = -stack[index - 1];\n    },\n  },\n  { id: \"eq\", min: 2, stackDelta: -1 },\n  null,\n  null,\n  { id: \"drop\", min: 1, stackDelta: -1 },\n  null,\n  { id: \"put\", min: 2, stackDelta: -2 },\n  { id: \"get\", min: 1, stackDelta: 0 },\n  { id: \"ifelse\", min: 4, stackDelta: -3 },\n  { id: \"random\", min: 0, stackDelta: 1 },\n  {\n    id: \"mul\",\n    min: 2,\n    stackDelta: -1,\n    stackFn(stack, index) {\n      stack[index - 2] = stack[index - 2] * stack[index - 1];\n    },\n  },\n  null,\n  { id: \"sqrt\", min: 1, stackDelta: 0 },\n  { id: \"dup\", min: 1, stackDelta: 1 },\n  { id: \"exch\", min: 2, stackDelta: 0 },\n  { id: \"index\", min: 2, stackDelta: 0 },\n  { id: \"roll\", min: 3, stackDelta: -2 },\n  null,\n  null,\n  null,\n  { id: \"hflex\", min: 7, resetStack: true },\n  { id: \"flex\", min: 13, resetStack: true },\n  { id: \"hflex1\", min: 9, resetStack: true },\n  { id: \"flex1\", min: 11, resetStack: true },\n];\n\nclass CFFParser {\n  constructor(file, properties, seacAnalysisEnabled) {\n    this.bytes = file.getBytes();\n    this.properties = properties;\n    this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n  }\n\n  parse() {\n    const properties = this.properties;\n    const cff = new CFF();\n    this.cff = cff;\n\n    // The first five sections must be in order, all the others are reached\n    // via offsets contained in one of the below.\n    const header = this.parseHeader();\n    const nameIndex = this.parseIndex(header.endPos);\n    const topDictIndex = this.parseIndex(nameIndex.endPos);\n    const stringIndex = this.parseIndex(topDictIndex.endPos);\n    const globalSubrIndex = this.parseIndex(stringIndex.endPos);\n\n    const topDictParsed = this.parseDict(topDictIndex.obj.get(0));\n    const topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings);\n\n    cff.header = header.obj;\n    cff.names = this.parseNameIndex(nameIndex.obj);\n    cff.strings = this.parseStringIndex(stringIndex.obj);\n    cff.topDict = topDict;\n    cff.globalSubrIndex = globalSubrIndex.obj;\n\n    this.parsePrivateDict(cff.topDict);\n\n    cff.isCIDFont = topDict.hasName(\"ROS\");\n\n    const charStringOffset = topDict.getByName(\"CharStrings\");\n    const charStringIndex = this.parseIndex(charStringOffset).obj;\n\n    const fontMatrix = topDict.getByName(\"FontMatrix\");\n    if (fontMatrix) {\n      properties.fontMatrix = fontMatrix;\n    }\n\n    const fontBBox = topDict.getByName(\"FontBBox\");\n    if (fontBBox) {\n      // adjusting ascent/descent\n      properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n      properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n      properties.ascentScaled = true;\n    }\n\n    let charset, encoding;\n    if (cff.isCIDFont) {\n      const fdArrayIndex = this.parseIndex(topDict.getByName(\"FDArray\")).obj;\n      for (let i = 0, ii = fdArrayIndex.count; i < ii; ++i) {\n        const dictRaw = fdArrayIndex.get(i);\n        const fontDict = this.createDict(\n          CFFTopDict,\n          this.parseDict(dictRaw),\n          cff.strings\n        );\n        this.parsePrivateDict(fontDict);\n        cff.fdArray.push(fontDict);\n      }\n      // cid fonts don't have an encoding\n      encoding = null;\n      charset = this.parseCharsets(\n        topDict.getByName(\"charset\"),\n        charStringIndex.count,\n        cff.strings,\n        true\n      );\n      cff.fdSelect = this.parseFDSelect(\n        topDict.getByName(\"FDSelect\"),\n        charStringIndex.count\n      );\n    } else {\n      charset = this.parseCharsets(\n        topDict.getByName(\"charset\"),\n        charStringIndex.count,\n        cff.strings,\n        false\n      );\n      encoding = this.parseEncoding(\n        topDict.getByName(\"Encoding\"),\n        properties,\n        cff.strings,\n        charset.charset\n      );\n    }\n\n    cff.charset = charset;\n    cff.encoding = encoding;\n\n    const charStringsAndSeacs = this.parseCharStrings({\n      charStrings: charStringIndex,\n      localSubrIndex: topDict.privateDict.subrsIndex,\n      globalSubrIndex: globalSubrIndex.obj,\n      fdSelect: cff.fdSelect,\n      fdArray: cff.fdArray,\n      privateDict: topDict.privateDict,\n    });\n    cff.charStrings = charStringsAndSeacs.charStrings;\n    cff.seacs = charStringsAndSeacs.seacs;\n    cff.widths = charStringsAndSeacs.widths;\n\n    return cff;\n  }\n\n  parseHeader() {\n    let bytes = this.bytes;\n    const bytesLength = bytes.length;\n    let offset = 0;\n\n    // Prevent an infinite loop, by checking that the offset is within the\n    // bounds of the bytes array. Necessary in empty, or invalid, font files.\n    while (offset < bytesLength && bytes[offset] !== 1) {\n      ++offset;\n    }\n    if (offset >= bytesLength) {\n      throw new FormatError(\"Invalid CFF header\");\n    }\n    if (offset !== 0) {\n      info(\"cff data is shifted\");\n      bytes = bytes.subarray(offset);\n      this.bytes = bytes;\n    }\n    const major = bytes[0];\n    const minor = bytes[1];\n    const hdrSize = bytes[2];\n    const offSize = bytes[3];\n    const header = new CFFHeader(major, minor, hdrSize, offSize);\n    return { obj: header, endPos: hdrSize };\n  }\n\n  parseDict(dict) {\n    let pos = 0;\n\n    function parseOperand() {\n      let value = dict[pos++];\n      if (value === 30) {\n        return parseFloatOperand();\n      } else if (value === 28) {\n        value = dict[pos++];\n        value = ((value << 24) | (dict[pos++] << 16)) >> 16;\n        return value;\n      } else if (value === 29) {\n        value = dict[pos++];\n        value = (value << 8) | dict[pos++];\n        value = (value << 8) | dict[pos++];\n        value = (value << 8) | dict[pos++];\n        return value;\n      } else if (value >= 32 && value <= 246) {\n        return value - 139;\n      } else if (value >= 247 && value <= 250) {\n        return (value - 247) * 256 + dict[pos++] + 108;\n      } else if (value >= 251 && value <= 254) {\n        return -((value - 251) * 256) - dict[pos++] - 108;\n      }\n      warn('CFFParser_parseDict: \"' + value + '\" is a reserved command.');\n      return NaN;\n    }\n\n    function parseFloatOperand() {\n      let str = \"\";\n      const eof = 15;\n      // prettier-ignore\n      const lookup = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\",\n                      \"9\", \".\", \"E\", \"E-\", null, \"-\"];\n      const length = dict.length;\n      while (pos < length) {\n        const b = dict[pos++];\n        const b1 = b >> 4;\n        const b2 = b & 15;\n\n        if (b1 === eof) {\n          break;\n        }\n        str += lookup[b1];\n\n        if (b2 === eof) {\n          break;\n        }\n        str += lookup[b2];\n      }\n      return parseFloat(str);\n    }\n\n    let operands = [];\n    const entries = [];\n\n    pos = 0;\n    const end = dict.length;\n    while (pos < end) {\n      let b = dict[pos];\n      if (b <= 21) {\n        if (b === 12) {\n          b = (b << 8) | dict[++pos];\n        }\n        entries.push([b, operands]);\n        operands = [];\n        ++pos;\n      } else {\n        operands.push(parseOperand());\n      }\n    }\n    return entries;\n  }\n\n  parseIndex(pos) {\n    const cffIndex = new CFFIndex();\n    const bytes = this.bytes;\n    const count = (bytes[pos++] << 8) | bytes[pos++];\n    const offsets = [];\n    let end = pos;\n    let i, ii;\n\n    if (count !== 0) {\n      const offsetSize = bytes[pos++];\n      // add 1 for offset to determine size of last object\n      const startPos = pos + (count + 1) * offsetSize - 1;\n\n      for (i = 0, ii = count + 1; i < ii; ++i) {\n        let offset = 0;\n        for (let j = 0; j < offsetSize; ++j) {\n          offset <<= 8;\n          offset += bytes[pos++];\n        }\n        offsets.push(startPos + offset);\n      }\n      end = offsets[count];\n    }\n    for (i = 0, ii = offsets.length - 1; i < ii; ++i) {\n      const offsetStart = offsets[i];\n      const offsetEnd = offsets[i + 1];\n      cffIndex.add(bytes.subarray(offsetStart, offsetEnd));\n    }\n    return { obj: cffIndex, endPos: end };\n  }\n\n  parseNameIndex(index) {\n    const names = [];\n    for (let i = 0, ii = index.count; i < ii; ++i) {\n      const name = index.get(i);\n      names.push(bytesToString(name));\n    }\n    return names;\n  }\n\n  parseStringIndex(index) {\n    const strings = new CFFStrings();\n    for (let i = 0, ii = index.count; i < ii; ++i) {\n      const data = index.get(i);\n      strings.add(bytesToString(data));\n    }\n    return strings;\n  }\n\n  createDict(Type, dict, strings) {\n    const cffDict = new Type(strings);\n    for (const [key, value] of dict) {\n      cffDict.setByKey(key, value);\n    }\n    return cffDict;\n  }\n\n  parseCharString(state, data, localSubrIndex, globalSubrIndex) {\n    if (!data || state.callDepth > MAX_SUBR_NESTING) {\n      return false;\n    }\n    let stackSize = state.stackSize;\n    const stack = state.stack;\n\n    let length = data.length;\n\n    for (let j = 0; j < length; ) {\n      const value = data[j++];\n      let validationCommand = null;\n      if (value === 12) {\n        const q = data[j++];\n        if (q === 0) {\n          // The CFF specification state that the 'dotsection' command\n          // (12, 0) is deprecated and treated as a no-op, but all Type2\n          // charstrings processors should support them. Unfortunately\n          // the font sanitizer don't. As a workaround the sequence (12, 0)\n          // is replaced by a useless (0, hmoveto).\n          data[j - 2] = 139;\n          data[j - 1] = 22;\n          stackSize = 0;\n        } else {\n          validationCommand = CharstringValidationData12[q];\n        }\n      } else if (value === 28) {\n        // number (16 bit)\n        stack[stackSize] = ((data[j] << 24) | (data[j + 1] << 16)) >> 16;\n        j += 2;\n        stackSize++;\n      } else if (value === 14) {\n        if (stackSize >= 4) {\n          stackSize -= 4;\n          if (this.seacAnalysisEnabled) {\n            state.seac = stack.slice(stackSize, stackSize + 4);\n            return false;\n          }\n        }\n        validationCommand = CharstringValidationData[value];\n      } else if (value >= 32 && value <= 246) {\n        // number\n        stack[stackSize] = value - 139;\n        stackSize++;\n      } else if (value >= 247 && value <= 254) {\n        // number (+1 bytes)\n        stack[stackSize] =\n          value < 251\n            ? ((value - 247) << 8) + data[j] + 108\n            : -((value - 251) << 8) - data[j] - 108;\n        j++;\n        stackSize++;\n      } else if (value === 255) {\n        // number (32 bit)\n        stack[stackSize] =\n          ((data[j] << 24) |\n            (data[j + 1] << 16) |\n            (data[j + 2] << 8) |\n            data[j + 3]) /\n          65536;\n        j += 4;\n        stackSize++;\n      } else if (value === 19 || value === 20) {\n        state.hints += stackSize >> 1;\n        if (state.hints === 0) {\n          // Not a valid value (see bug 1529502): just remove it.\n          data.copyWithin(j - 1, j, -1);\n          j -= 1;\n          length -= 1;\n          continue;\n        }\n        // skipping right amount of hints flag data\n        j += (state.hints + 7) >> 3;\n        stackSize %= 2;\n        validationCommand = CharstringValidationData[value];\n      } else if (value === 10 || value === 29) {\n        const subrsIndex = value === 10 ? localSubrIndex : globalSubrIndex;\n        if (!subrsIndex) {\n          validationCommand = CharstringValidationData[value];\n          warn(\"Missing subrsIndex for \" + validationCommand.id);\n          return false;\n        }\n        let bias = 32768;\n        if (subrsIndex.count < 1240) {\n          bias = 107;\n        } else if (subrsIndex.count < 33900) {\n          bias = 1131;\n        }\n        const subrNumber = stack[--stackSize] + bias;\n        if (\n          subrNumber < 0 ||\n          subrNumber >= subrsIndex.count ||\n          isNaN(subrNumber)\n        ) {\n          validationCommand = CharstringValidationData[value];\n          warn(\"Out of bounds subrIndex for \" + validationCommand.id);\n          return false;\n        }\n        state.stackSize = stackSize;\n        state.callDepth++;\n        const valid = this.parseCharString(\n          state,\n          subrsIndex.get(subrNumber),\n          localSubrIndex,\n          globalSubrIndex\n        );\n        if (!valid) {\n          return false;\n        }\n        state.callDepth--;\n        stackSize = state.stackSize;\n        continue;\n      } else if (value === 11) {\n        state.stackSize = stackSize;\n        return true;\n      } else if (value === 0 && j === data.length) {\n        // Operator 0 is not used according to the current spec and\n        // it's the last char and consequently it's likely a terminator.\n        // So just replace it by endchar command to make OTS happy.\n        data[j - 1] = 14;\n        validationCommand = CharstringValidationData[14];\n      } else if (value === 9) {\n        // Not a valid value.\n        data.copyWithin(j - 1, j, -1);\n        j -= 1;\n        length -= 1;\n        continue;\n      } else {\n        validationCommand = CharstringValidationData[value];\n      }\n      if (validationCommand) {\n        if (validationCommand.stem) {\n          state.hints += stackSize >> 1;\n          if (value === 3 || value === 23) {\n            // vstem or vstemhm.\n            state.hasVStems = true;\n          } else if (state.hasVStems && (value === 1 || value === 18)) {\n            // Some browsers don't draw glyphs that specify vstems before\n            // hstems. As a workaround, replace hstem (1) and hstemhm (18)\n            // with a pointless vstem (3) or vstemhm (23).\n            warn(\"CFF stem hints are in wrong order\");\n            data[j - 1] = value === 1 ? 3 : 23;\n          }\n        }\n        if (\"min\" in validationCommand) {\n          if (!state.undefStack && stackSize < validationCommand.min) {\n            warn(\n              \"Not enough parameters for \" +\n                validationCommand.id +\n                \"; actual: \" +\n                stackSize +\n                \", expected: \" +\n                validationCommand.min\n            );\n\n            if (stackSize === 0) {\n              // Just \"fix\" the outline in replacing command by a endchar:\n              // it could lead to wrong rendering of some glyphs or not.\n              // For example, the pdf in #6132 is well-rendered.\n              data[j - 1] = 14;\n              return true;\n            }\n            return false;\n          }\n        }\n        if (state.firstStackClearing && validationCommand.stackClearing) {\n          state.firstStackClearing = false;\n          // the optional character width can be found before the first\n          // stack-clearing command arguments\n          stackSize -= validationCommand.min;\n          if (stackSize >= 2 && validationCommand.stem) {\n            // there are even amount of arguments for stem commands\n            stackSize %= 2;\n          } else if (stackSize > 1) {\n            warn(\"Found too many parameters for stack-clearing command\");\n          }\n          if (stackSize > 0) {\n            // Width can be any number since its the difference\n            // from nominalWidthX.\n            state.width = stack[stackSize - 1];\n          }\n        }\n        if (\"stackDelta\" in validationCommand) {\n          if (\"stackFn\" in validationCommand) {\n            validationCommand.stackFn(stack, stackSize);\n          }\n          stackSize += validationCommand.stackDelta;\n        } else if (validationCommand.stackClearing) {\n          stackSize = 0;\n        } else if (validationCommand.resetStack) {\n          stackSize = 0;\n          state.undefStack = false;\n        } else if (validationCommand.undefStack) {\n          stackSize = 0;\n          state.undefStack = true;\n          state.firstStackClearing = false;\n        }\n      }\n    }\n    if (length < data.length) {\n      data.fill(/* endchar = */ 14, length);\n    }\n    state.stackSize = stackSize;\n    return true;\n  }\n\n  parseCharStrings({\n    charStrings,\n    localSubrIndex,\n    globalSubrIndex,\n    fdSelect,\n    fdArray,\n    privateDict,\n  }) {\n    const seacs = [];\n    const widths = [];\n    const count = charStrings.count;\n    for (let i = 0; i < count; i++) {\n      const charstring = charStrings.get(i);\n      const state = {\n        callDepth: 0,\n        stackSize: 0,\n        stack: [],\n        undefStack: true,\n        hints: 0,\n        firstStackClearing: true,\n        seac: null,\n        width: null,\n        hasVStems: false,\n      };\n      let valid = true;\n      let localSubrToUse = null;\n      let privateDictToUse = privateDict;\n      if (fdSelect && fdArray.length) {\n        const fdIndex = fdSelect.getFDIndex(i);\n        if (fdIndex === -1) {\n          warn(\"Glyph index is not in fd select.\");\n          valid = false;\n        }\n        if (fdIndex >= fdArray.length) {\n          warn(\"Invalid fd index for glyph index.\");\n          valid = false;\n        }\n        if (valid) {\n          privateDictToUse = fdArray[fdIndex].privateDict;\n          localSubrToUse = privateDictToUse.subrsIndex;\n        }\n      } else if (localSubrIndex) {\n        localSubrToUse = localSubrIndex;\n      }\n      if (valid) {\n        valid = this.parseCharString(\n          state,\n          charstring,\n          localSubrToUse,\n          globalSubrIndex\n        );\n      }\n      if (state.width !== null) {\n        const nominalWidth = privateDictToUse.getByName(\"nominalWidthX\");\n        widths[i] = nominalWidth + state.width;\n      } else {\n        const defaultWidth = privateDictToUse.getByName(\"defaultWidthX\");\n        widths[i] = defaultWidth;\n      }\n      if (state.seac !== null) {\n        seacs[i] = state.seac;\n      }\n      if (!valid) {\n        // resetting invalid charstring to single 'endchar'\n        charStrings.set(i, new Uint8Array([14]));\n      }\n    }\n    return { charStrings, seacs, widths };\n  }\n\n  emptyPrivateDictionary(parentDict) {\n    const privateDict = this.createDict(CFFPrivateDict, [], parentDict.strings);\n    parentDict.setByKey(18, [0, 0]);\n    parentDict.privateDict = privateDict;\n  }\n\n  parsePrivateDict(parentDict) {\n    // no private dict, do nothing\n    if (!parentDict.hasName(\"Private\")) {\n      this.emptyPrivateDictionary(parentDict);\n      return;\n    }\n    const privateOffset = parentDict.getByName(\"Private\");\n    // make sure the params are formatted correctly\n    if (!Array.isArray(privateOffset) || privateOffset.length !== 2) {\n      parentDict.removeByName(\"Private\");\n      return;\n    }\n    const size = privateOffset[0];\n    const offset = privateOffset[1];\n    // remove empty dicts or ones that refer to invalid location\n    if (size === 0 || offset >= this.bytes.length) {\n      this.emptyPrivateDictionary(parentDict);\n      return;\n    }\n\n    const privateDictEnd = offset + size;\n    const dictData = this.bytes.subarray(offset, privateDictEnd);\n    const dict = this.parseDict(dictData);\n    const privateDict = this.createDict(\n      CFFPrivateDict,\n      dict,\n      parentDict.strings\n    );\n    parentDict.privateDict = privateDict;\n\n    if (privateDict.getByName(\"ExpansionFactor\") === 0) {\n      // Firefox doesn't render correctly such a font on Windows (see issue\n      // 15289), hence we just reset it to its default value.\n      privateDict.setByName(\"ExpansionFactor\", 0.06);\n    }\n\n    // Parse the Subrs index also since it's relative to the private dict.\n    if (!privateDict.getByName(\"Subrs\")) {\n      return;\n    }\n    const subrsOffset = privateDict.getByName(\"Subrs\");\n    const relativeOffset = offset + subrsOffset;\n    // Validate the offset.\n    if (subrsOffset === 0 || relativeOffset >= this.bytes.length) {\n      this.emptyPrivateDictionary(parentDict);\n      return;\n    }\n    const subrsIndex = this.parseIndex(relativeOffset);\n    privateDict.subrsIndex = subrsIndex.obj;\n  }\n\n  parseCharsets(pos, length, strings, cid) {\n    if (pos === 0) {\n      return new CFFCharset(\n        true,\n        CFFCharsetPredefinedTypes.ISO_ADOBE,\n        ISOAdobeCharset\n      );\n    } else if (pos === 1) {\n      return new CFFCharset(\n        true,\n        CFFCharsetPredefinedTypes.EXPERT,\n        ExpertCharset\n      );\n    } else if (pos === 2) {\n      return new CFFCharset(\n        true,\n        CFFCharsetPredefinedTypes.EXPERT_SUBSET,\n        ExpertSubsetCharset\n      );\n    }\n\n    const bytes = this.bytes;\n    const start = pos;\n    const format = bytes[pos++];\n    const charset = [cid ? 0 : \".notdef\"];\n    let id, count, i;\n\n    // subtract 1 for the .notdef glyph\n    length -= 1;\n\n    switch (format) {\n      case 0:\n        for (i = 0; i < length; i++) {\n          id = (bytes[pos++] << 8) | bytes[pos++];\n          charset.push(cid ? id : strings.get(id));\n        }\n        break;\n      case 1:\n        while (charset.length <= length) {\n          id = (bytes[pos++] << 8) | bytes[pos++];\n          count = bytes[pos++];\n          for (i = 0; i <= count; i++) {\n            charset.push(cid ? id++ : strings.get(id++));\n          }\n        }\n        break;\n      case 2:\n        while (charset.length <= length) {\n          id = (bytes[pos++] << 8) | bytes[pos++];\n          count = (bytes[pos++] << 8) | bytes[pos++];\n          for (i = 0; i <= count; i++) {\n            charset.push(cid ? id++ : strings.get(id++));\n          }\n        }\n        break;\n      default:\n        throw new FormatError(\"Unknown charset format\");\n    }\n    // Raw won't be needed if we actually compile the charset.\n    const end = pos;\n    const raw = bytes.subarray(start, end);\n\n    return new CFFCharset(false, format, charset, raw);\n  }\n\n  parseEncoding(pos, properties, strings, charset) {\n    const encoding = Object.create(null);\n    const bytes = this.bytes;\n    let predefined = false;\n    let format, i, ii;\n    let raw = null;\n\n    function readSupplement() {\n      const supplementsCount = bytes[pos++];\n      for (i = 0; i < supplementsCount; i++) {\n        const code = bytes[pos++];\n        const sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff);\n        encoding[code] = charset.indexOf(strings.get(sid));\n      }\n    }\n\n    if (pos === 0 || pos === 1) {\n      predefined = true;\n      format = pos;\n      const baseEncoding = pos ? ExpertEncoding : StandardEncoding;\n      for (i = 0, ii = charset.length; i < ii; i++) {\n        const index = baseEncoding.indexOf(charset[i]);\n        if (index !== -1) {\n          encoding[index] = i;\n        }\n      }\n    } else {\n      const dataStart = pos;\n      format = bytes[pos++];\n      switch (format & 0x7f) {\n        case 0:\n          const glyphsCount = bytes[pos++];\n          for (i = 1; i <= glyphsCount; i++) {\n            encoding[bytes[pos++]] = i;\n          }\n          break;\n\n        case 1:\n          const rangesCount = bytes[pos++];\n          let gid = 1;\n          for (i = 0; i < rangesCount; i++) {\n            const start = bytes[pos++];\n            const left = bytes[pos++];\n            for (let j = start; j <= start + left; j++) {\n              encoding[j] = gid++;\n            }\n          }\n          break;\n\n        default:\n          throw new FormatError(`Unknown encoding format: ${format} in CFF`);\n      }\n      const dataEnd = pos;\n      if (format & 0x80) {\n        // hasSupplement\n        // The font sanitizer does not support CFF encoding with a\n        // supplement, since the encoding is not really used to map\n        // between gid to glyph, let's overwrite what is declared in\n        // the top dictionary to let the sanitizer think the font use\n        // StandardEncoding, that's a lie but that's ok.\n        bytes[dataStart] &= 0x7f;\n        readSupplement();\n      }\n      raw = bytes.subarray(dataStart, dataEnd);\n    }\n    format &= 0x7f;\n    return new CFFEncoding(predefined, format, encoding, raw);\n  }\n\n  parseFDSelect(pos, length) {\n    const bytes = this.bytes;\n    const format = bytes[pos++];\n    const fdSelect = [];\n    let i;\n\n    switch (format) {\n      case 0:\n        for (i = 0; i < length; ++i) {\n          const id = bytes[pos++];\n          fdSelect.push(id);\n        }\n        break;\n      case 3:\n        const rangesCount = (bytes[pos++] << 8) | bytes[pos++];\n        for (i = 0; i < rangesCount; ++i) {\n          let first = (bytes[pos++] << 8) | bytes[pos++];\n          if (i === 0 && first !== 0) {\n            warn(\n              \"parseFDSelect: The first range must have a first GID of 0\" +\n                \" -- trying to recover.\"\n            );\n            first = 0;\n          }\n          const fdIndex = bytes[pos++];\n          const next = (bytes[pos] << 8) | bytes[pos + 1];\n          for (let j = first; j < next; ++j) {\n            fdSelect.push(fdIndex);\n          }\n        }\n        // Advance past the sentinel(next).\n        pos += 2;\n        break;\n      default:\n        throw new FormatError(`parseFDSelect: Unknown format \"${format}\".`);\n    }\n    if (fdSelect.length !== length) {\n      throw new FormatError(\"parseFDSelect: Invalid font data.\");\n    }\n\n    return new CFFFDSelect(format, fdSelect);\n  }\n}\n\n// Compact Font Format\nclass CFF {\n  constructor() {\n    this.header = null;\n    this.names = [];\n    this.topDict = null;\n    this.strings = new CFFStrings();\n    this.globalSubrIndex = null;\n\n    // The following could really be per font, but since we only have one font\n    // store them here.\n    this.encoding = null;\n    this.charset = null;\n    this.charStrings = null;\n    this.fdArray = [];\n    this.fdSelect = null;\n\n    this.isCIDFont = false;\n  }\n\n  duplicateFirstGlyph() {\n    // Browsers will not display a glyph at position 0. Typically glyph 0 is\n    // notdef, but a number of fonts put a valid glyph there so it must be\n    // duplicated and appended.\n    if (this.charStrings.count >= 65535) {\n      warn(\"Not enough space in charstrings to duplicate first glyph.\");\n      return;\n    }\n    const glyphZero = this.charStrings.get(0);\n    this.charStrings.add(glyphZero);\n    if (this.isCIDFont) {\n      this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]);\n    }\n  }\n\n  hasGlyphId(id) {\n    if (id < 0 || id >= this.charStrings.count) {\n      return false;\n    }\n    const glyph = this.charStrings.get(id);\n    return glyph.length > 0;\n  }\n}\n\nclass CFFHeader {\n  constructor(major, minor, hdrSize, offSize) {\n    this.major = major;\n    this.minor = minor;\n    this.hdrSize = hdrSize;\n    this.offSize = offSize;\n  }\n}\n\nclass CFFStrings {\n  constructor() {\n    this.strings = [];\n  }\n\n  get(index) {\n    if (index >= 0 && index <= NUM_STANDARD_CFF_STRINGS - 1) {\n      return CFFStandardStrings[index];\n    }\n    if (index - NUM_STANDARD_CFF_STRINGS <= this.strings.length) {\n      return this.strings[index - NUM_STANDARD_CFF_STRINGS];\n    }\n    return CFFStandardStrings[0];\n  }\n\n  getSID(str) {\n    let index = CFFStandardStrings.indexOf(str);\n    if (index !== -1) {\n      return index;\n    }\n    index = this.strings.indexOf(str);\n    if (index !== -1) {\n      return index + NUM_STANDARD_CFF_STRINGS;\n    }\n    return -1;\n  }\n\n  add(value) {\n    this.strings.push(value);\n  }\n\n  get count() {\n    return this.strings.length;\n  }\n}\n\nclass CFFIndex {\n  constructor() {\n    this.objects = [];\n    this.length = 0;\n  }\n\n  add(data) {\n    this.length += data.length;\n    this.objects.push(data);\n  }\n\n  set(index, data) {\n    this.length += data.length - this.objects[index].length;\n    this.objects[index] = data;\n  }\n\n  get(index) {\n    return this.objects[index];\n  }\n\n  get count() {\n    return this.objects.length;\n  }\n}\n\nclass CFFDict {\n  constructor(tables, strings) {\n    this.keyToNameMap = tables.keyToNameMap;\n    this.nameToKeyMap = tables.nameToKeyMap;\n    this.defaults = tables.defaults;\n    this.types = tables.types;\n    this.opcodes = tables.opcodes;\n    this.order = tables.order;\n    this.strings = strings;\n    this.values = Object.create(null);\n  }\n\n  // value should always be an array\n  setByKey(key, value) {\n    if (!(key in this.keyToNameMap)) {\n      return false;\n    }\n    // ignore empty values\n    if (value.length === 0) {\n      return true;\n    }\n    // Ignore invalid values (fixes bug1068432.pdf and bug1308536.pdf).\n    for (const val of value) {\n      if (isNaN(val)) {\n        warn(`Invalid CFFDict value: \"${value}\" for key \"${key}\".`);\n        return true;\n      }\n    }\n    const type = this.types[key];\n    // remove the array wrapping these types of values\n    if (type === \"num\" || type === \"sid\" || type === \"offset\") {\n      value = value[0];\n    }\n    this.values[key] = value;\n    return true;\n  }\n\n  setByName(name, value) {\n    if (!(name in this.nameToKeyMap)) {\n      throw new FormatError(`Invalid dictionary name \"${name}\"`);\n    }\n    this.values[this.nameToKeyMap[name]] = value;\n  }\n\n  hasName(name) {\n    return this.nameToKeyMap[name] in this.values;\n  }\n\n  getByName(name) {\n    if (!(name in this.nameToKeyMap)) {\n      throw new FormatError(`Invalid dictionary name ${name}\"`);\n    }\n    const key = this.nameToKeyMap[name];\n    if (!(key in this.values)) {\n      return this.defaults[key];\n    }\n    return this.values[key];\n  }\n\n  removeByName(name) {\n    delete this.values[this.nameToKeyMap[name]];\n  }\n\n  static createTables(layout) {\n    const tables = {\n      keyToNameMap: {},\n      nameToKeyMap: {},\n      defaults: {},\n      types: {},\n      opcodes: {},\n      order: [],\n    };\n    for (const entry of layout) {\n      const key = Array.isArray(entry[0])\n        ? (entry[0][0] << 8) + entry[0][1]\n        : entry[0];\n      tables.keyToNameMap[key] = entry[1];\n      tables.nameToKeyMap[entry[1]] = key;\n      tables.types[key] = entry[2];\n      tables.defaults[key] = entry[3];\n      tables.opcodes[key] = Array.isArray(entry[0]) ? entry[0] : [entry[0]];\n      tables.order.push(key);\n    }\n    return tables;\n  }\n}\n\nconst CFFTopDictLayout = [\n  [[12, 30], \"ROS\", [\"sid\", \"sid\", \"num\"], null],\n  [[12, 20], \"SyntheticBase\", \"num\", null],\n  [0, \"version\", \"sid\", null],\n  [1, \"Notice\", \"sid\", null],\n  [[12, 0], \"Copyright\", \"sid\", null],\n  [2, \"FullName\", \"sid\", null],\n  [3, \"FamilyName\", \"sid\", null],\n  [4, \"Weight\", \"sid\", null],\n  [[12, 1], \"isFixedPitch\", \"num\", 0],\n  [[12, 2], \"ItalicAngle\", \"num\", 0],\n  [[12, 3], \"UnderlinePosition\", \"num\", -100],\n  [[12, 4], \"UnderlineThickness\", \"num\", 50],\n  [[12, 5], \"PaintType\", \"num\", 0],\n  [[12, 6], \"CharstringType\", \"num\", 2],\n  // prettier-ignore\n  [[12, 7], \"FontMatrix\", [\"num\", \"num\", \"num\", \"num\", \"num\", \"num\"],\n                          [0.001, 0, 0, 0.001, 0, 0]],\n  [13, \"UniqueID\", \"num\", null],\n  [5, \"FontBBox\", [\"num\", \"num\", \"num\", \"num\"], [0, 0, 0, 0]],\n  [[12, 8], \"StrokeWidth\", \"num\", 0],\n  [14, \"XUID\", \"array\", null],\n  [15, \"charset\", \"offset\", 0],\n  [16, \"Encoding\", \"offset\", 0],\n  [17, \"CharStrings\", \"offset\", 0],\n  [18, \"Private\", [\"offset\", \"offset\"], null],\n  [[12, 21], \"PostScript\", \"sid\", null],\n  [[12, 22], \"BaseFontName\", \"sid\", null],\n  [[12, 23], \"BaseFontBlend\", \"delta\", null],\n  [[12, 31], \"CIDFontVersion\", \"num\", 0],\n  [[12, 32], \"CIDFontRevision\", \"num\", 0],\n  [[12, 33], \"CIDFontType\", \"num\", 0],\n  [[12, 34], \"CIDCount\", \"num\", 8720],\n  [[12, 35], \"UIDBase\", \"num\", null],\n  // XXX: CID Fonts on DirectWrite 6.1 only seem to work if FDSelect comes\n  // before FDArray.\n  [[12, 37], \"FDSelect\", \"offset\", null],\n  [[12, 36], \"FDArray\", \"offset\", null],\n  [[12, 38], \"FontName\", \"sid\", null],\n];\n\nclass CFFTopDict extends CFFDict {\n  static get tables() {\n    return shadow(this, \"tables\", this.createTables(CFFTopDictLayout));\n  }\n\n  constructor(strings) {\n    super(CFFTopDict.tables, strings);\n    this.privateDict = null;\n  }\n}\n\nconst CFFPrivateDictLayout = [\n  [6, \"BlueValues\", \"delta\", null],\n  [7, \"OtherBlues\", \"delta\", null],\n  [8, \"FamilyBlues\", \"delta\", null],\n  [9, \"FamilyOtherBlues\", \"delta\", null],\n  [[12, 9], \"BlueScale\", \"num\", 0.039625],\n  [[12, 10], \"BlueShift\", \"num\", 7],\n  [[12, 11], \"BlueFuzz\", \"num\", 1],\n  [10, \"StdHW\", \"num\", null],\n  [11, \"StdVW\", \"num\", null],\n  [[12, 12], \"StemSnapH\", \"delta\", null],\n  [[12, 13], \"StemSnapV\", \"delta\", null],\n  [[12, 14], \"ForceBold\", \"num\", 0],\n  [[12, 17], \"LanguageGroup\", \"num\", 0],\n  [[12, 18], \"ExpansionFactor\", \"num\", 0.06],\n  [[12, 19], \"initialRandomSeed\", \"num\", 0],\n  [20, \"defaultWidthX\", \"num\", 0],\n  [21, \"nominalWidthX\", \"num\", 0],\n  [19, \"Subrs\", \"offset\", null],\n];\n\nclass CFFPrivateDict extends CFFDict {\n  static get tables() {\n    return shadow(this, \"tables\", this.createTables(CFFPrivateDictLayout));\n  }\n\n  constructor(strings) {\n    super(CFFPrivateDict.tables, strings);\n    this.subrsIndex = null;\n  }\n}\n\nconst CFFCharsetPredefinedTypes = {\n  ISO_ADOBE: 0,\n  EXPERT: 1,\n  EXPERT_SUBSET: 2,\n};\n\nclass CFFCharset {\n  constructor(predefined, format, charset, raw) {\n    this.predefined = predefined;\n    this.format = format;\n    this.charset = charset;\n    this.raw = raw;\n  }\n}\n\nclass CFFEncoding {\n  constructor(predefined, format, encoding, raw) {\n    this.predefined = predefined;\n    this.format = format;\n    this.encoding = encoding;\n    this.raw = raw;\n  }\n}\n\nclass CFFFDSelect {\n  constructor(format, fdSelect) {\n    this.format = format;\n    this.fdSelect = fdSelect;\n  }\n\n  getFDIndex(glyphIndex) {\n    if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) {\n      return -1;\n    }\n    return this.fdSelect[glyphIndex];\n  }\n}\n\n// Helper class to keep track of where an offset is within the data and helps\n// filling in that offset once it's known.\nclass CFFOffsetTracker {\n  constructor() {\n    this.offsets = Object.create(null);\n  }\n\n  isTracking(key) {\n    return key in this.offsets;\n  }\n\n  track(key, location) {\n    if (key in this.offsets) {\n      throw new FormatError(`Already tracking location of ${key}`);\n    }\n    this.offsets[key] = location;\n  }\n\n  offset(value) {\n    for (const key in this.offsets) {\n      this.offsets[key] += value;\n    }\n  }\n\n  setEntryLocation(key, values, output) {\n    if (!(key in this.offsets)) {\n      throw new FormatError(`Not tracking location of ${key}`);\n    }\n    const data = output.data;\n    const dataOffset = this.offsets[key];\n    const size = 5;\n    for (let i = 0, ii = values.length; i < ii; ++i) {\n      const offset0 = i * size + dataOffset;\n      const offset1 = offset0 + 1;\n      const offset2 = offset0 + 2;\n      const offset3 = offset0 + 3;\n      const offset4 = offset0 + 4;\n      // It's easy to screw up offsets so perform this sanity check.\n      if (\n        data[offset0] !== 0x1d ||\n        data[offset1] !== 0 ||\n        data[offset2] !== 0 ||\n        data[offset3] !== 0 ||\n        data[offset4] !== 0\n      ) {\n        throw new FormatError(\"writing to an offset that is not empty\");\n      }\n      const value = values[i];\n      data[offset0] = 0x1d;\n      data[offset1] = (value >> 24) & 0xff;\n      data[offset2] = (value >> 16) & 0xff;\n      data[offset3] = (value >> 8) & 0xff;\n      data[offset4] = value & 0xff;\n    }\n  }\n}\n\n// Takes a CFF and converts it to the binary representation.\nclass CFFCompiler {\n  constructor(cff) {\n    this.cff = cff;\n  }\n\n  compile() {\n    const cff = this.cff;\n    const output = {\n      data: [],\n      length: 0,\n      add(data) {\n        try {\n          // It's possible to exceed the call stack maximum size when trying\n          // to push too much elements.\n          // In case of failure, we fallback to the `concat` method.\n          this.data.push(...data);\n        } catch {\n          this.data = this.data.concat(data);\n        }\n        this.length = this.data.length;\n      },\n    };\n\n    // Compile the five entries that must be in order.\n    const header = this.compileHeader(cff.header);\n    output.add(header);\n\n    const nameIndex = this.compileNameIndex(cff.names);\n    output.add(nameIndex);\n\n    if (cff.isCIDFont) {\n      // The spec is unclear on how font matrices should relate to each other\n      // when there is one in the main top dict and the sub top dicts.\n      // Windows handles this differently than linux and osx so we have to\n      // normalize to work on all.\n      // Rules based off of some mailing list discussions:\n      // - If main font has a matrix and subfont doesn't, use the main matrix.\n      // - If no main font matrix and there is a subfont matrix, use the\n      //   subfont matrix.\n      // - If both have matrices, concat together.\n      // - If neither have matrices, use default.\n      // To make this work on all platforms we move the top matrix into each\n      // sub top dict and concat if necessary.\n      if (cff.topDict.hasName(\"FontMatrix\")) {\n        const base = cff.topDict.getByName(\"FontMatrix\");\n        cff.topDict.removeByName(\"FontMatrix\");\n        for (const subDict of cff.fdArray) {\n          let matrix = base.slice(0);\n          if (subDict.hasName(\"FontMatrix\")) {\n            matrix = Util.transform(matrix, subDict.getByName(\"FontMatrix\"));\n          }\n          subDict.setByName(\"FontMatrix\", matrix);\n        }\n      }\n    }\n\n    const xuid = cff.topDict.getByName(\"XUID\");\n    if (xuid?.length > 16) {\n      // Length of XUID array must not be greater than 16 (issue #12399).\n      cff.topDict.removeByName(\"XUID\");\n    }\n\n    cff.topDict.setByName(\"charset\", 0);\n    let compiled = this.compileTopDicts(\n      [cff.topDict],\n      output.length,\n      cff.isCIDFont\n    );\n    output.add(compiled.output);\n    const topDictTracker = compiled.trackers[0];\n\n    const stringIndex = this.compileStringIndex(cff.strings.strings);\n    output.add(stringIndex);\n\n    const globalSubrIndex = this.compileIndex(cff.globalSubrIndex);\n    output.add(globalSubrIndex);\n\n    // Now start on the other entries that have no specific order.\n    if (cff.encoding && cff.topDict.hasName(\"Encoding\")) {\n      if (cff.encoding.predefined) {\n        topDictTracker.setEntryLocation(\n          \"Encoding\",\n          [cff.encoding.format],\n          output\n        );\n      } else {\n        const encoding = this.compileEncoding(cff.encoding);\n        topDictTracker.setEntryLocation(\"Encoding\", [output.length], output);\n        output.add(encoding);\n      }\n    }\n    const charset = this.compileCharset(\n      cff.charset,\n      cff.charStrings.count,\n      cff.strings,\n      cff.isCIDFont\n    );\n    topDictTracker.setEntryLocation(\"charset\", [output.length], output);\n    output.add(charset);\n\n    const charStrings = this.compileCharStrings(cff.charStrings);\n    topDictTracker.setEntryLocation(\"CharStrings\", [output.length], output);\n    output.add(charStrings);\n\n    if (cff.isCIDFont) {\n      // For some reason FDSelect must be in front of FDArray on windows. OSX\n      // and linux don't seem to care.\n      topDictTracker.setEntryLocation(\"FDSelect\", [output.length], output);\n      const fdSelect = this.compileFDSelect(cff.fdSelect);\n      output.add(fdSelect);\n      // It is unclear if the sub font dictionary can have CID related\n      // dictionary keys, but the sanitizer doesn't like them so remove them.\n      compiled = this.compileTopDicts(cff.fdArray, output.length, true);\n      topDictTracker.setEntryLocation(\"FDArray\", [output.length], output);\n      output.add(compiled.output);\n      const fontDictTrackers = compiled.trackers;\n\n      this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output);\n    }\n\n    this.compilePrivateDicts([cff.topDict], [topDictTracker], output);\n\n    // If the font data ends with INDEX whose object data is zero-length,\n    // the sanitizer will bail out. Add a dummy byte to avoid that.\n    output.add([0]);\n\n    return output.data;\n  }\n\n  encodeNumber(value) {\n    if (Number.isInteger(value)) {\n      return this.encodeInteger(value);\n    }\n    return this.encodeFloat(value);\n  }\n\n  static get EncodeFloatRegExp() {\n    return shadow(\n      this,\n      \"EncodeFloatRegExp\",\n      /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/\n    );\n  }\n\n  encodeFloat(num) {\n    let value = num.toString();\n\n    // Rounding inaccurate doubles.\n    const m = CFFCompiler.EncodeFloatRegExp.exec(value);\n    if (m) {\n      const epsilon = parseFloat(\"1e\" + ((m[2] ? +m[2] : 0) + m[1].length));\n      value = (Math.round(num * epsilon) / epsilon).toString();\n    }\n\n    let nibbles = \"\";\n    let i, ii;\n    for (i = 0, ii = value.length; i < ii; ++i) {\n      const a = value[i];\n      if (a === \"e\") {\n        nibbles += value[++i] === \"-\" ? \"c\" : \"b\";\n      } else if (a === \".\") {\n        nibbles += \"a\";\n      } else if (a === \"-\") {\n        nibbles += \"e\";\n      } else {\n        nibbles += a;\n      }\n    }\n    nibbles += nibbles.length & 1 ? \"f\" : \"ff\";\n    const out = [30];\n    for (i = 0, ii = nibbles.length; i < ii; i += 2) {\n      out.push(parseInt(nibbles.substring(i, i + 2), 16));\n    }\n    return out;\n  }\n\n  encodeInteger(value) {\n    let code;\n    if (value >= -107 && value <= 107) {\n      code = [value + 139];\n    } else if (value >= 108 && value <= 1131) {\n      value -= 108;\n      code = [(value >> 8) + 247, value & 0xff];\n    } else if (value >= -1131 && value <= -108) {\n      value = -value - 108;\n      code = [(value >> 8) + 251, value & 0xff];\n    } else if (value >= -32768 && value <= 32767) {\n      code = [0x1c, (value >> 8) & 0xff, value & 0xff];\n    } else {\n      code = [\n        0x1d,\n        (value >> 24) & 0xff,\n        (value >> 16) & 0xff,\n        (value >> 8) & 0xff,\n        value & 0xff,\n      ];\n    }\n    return code;\n  }\n\n  compileHeader(header) {\n    // `header.hdrSize` can be any value but we only write 4 values\n    // so header size is 4 (prevents OTS from rejecting the font).\n    return [header.major, header.minor, 4, header.offSize];\n  }\n\n  compileNameIndex(names) {\n    const nameIndex = new CFFIndex();\n    for (const name of names) {\n      // OTS doesn't allow names to be over 127 characters.\n      const length = Math.min(name.length, 127);\n      let sanitizedName = new Array(length);\n      for (let j = 0; j < length; j++) {\n        // OTS requires chars to be between a range and not certain other\n        // chars.\n        let char = name[j];\n        if (\n          char < \"!\" ||\n          char > \"~\" ||\n          char === \"[\" ||\n          char === \"]\" ||\n          char === \"(\" ||\n          char === \")\" ||\n          char === \"{\" ||\n          char === \"}\" ||\n          char === \"<\" ||\n          char === \">\" ||\n          char === \"/\" ||\n          char === \"%\"\n        ) {\n          char = \"_\";\n        }\n        sanitizedName[j] = char;\n      }\n      sanitizedName = sanitizedName.join(\"\");\n\n      if (sanitizedName === \"\") {\n        sanitizedName = \"Bad_Font_Name\";\n      }\n      nameIndex.add(stringToBytes(sanitizedName));\n    }\n    return this.compileIndex(nameIndex);\n  }\n\n  compileTopDicts(dicts, length, removeCidKeys) {\n    const fontDictTrackers = [];\n    let fdArrayIndex = new CFFIndex();\n    for (const fontDict of dicts) {\n      if (removeCidKeys) {\n        fontDict.removeByName(\"CIDFontVersion\");\n        fontDict.removeByName(\"CIDFontRevision\");\n        fontDict.removeByName(\"CIDFontType\");\n        fontDict.removeByName(\"CIDCount\");\n        fontDict.removeByName(\"UIDBase\");\n      }\n      const fontDictTracker = new CFFOffsetTracker();\n      const fontDictData = this.compileDict(fontDict, fontDictTracker);\n      fontDictTrackers.push(fontDictTracker);\n      fdArrayIndex.add(fontDictData);\n      fontDictTracker.offset(length);\n    }\n    fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers);\n    return {\n      trackers: fontDictTrackers,\n      output: fdArrayIndex,\n    };\n  }\n\n  compilePrivateDicts(dicts, trackers, output) {\n    for (let i = 0, ii = dicts.length; i < ii; ++i) {\n      const fontDict = dicts[i];\n      const privateDict = fontDict.privateDict;\n      if (!privateDict || !fontDict.hasName(\"Private\")) {\n        throw new FormatError(\"There must be a private dictionary.\");\n      }\n      const privateDictTracker = new CFFOffsetTracker();\n      const privateDictData = this.compileDict(privateDict, privateDictTracker);\n\n      let outputLength = output.length;\n      privateDictTracker.offset(outputLength);\n      if (!privateDictData.length) {\n        // The private dictionary was empty, set the output length to zero to\n        // ensure the offset length isn't out of bounds in the eyes of the\n        // sanitizer.\n        outputLength = 0;\n      }\n\n      trackers[i].setEntryLocation(\n        \"Private\",\n        [privateDictData.length, outputLength],\n        output\n      );\n      output.add(privateDictData);\n\n      if (privateDict.subrsIndex && privateDict.hasName(\"Subrs\")) {\n        const subrs = this.compileIndex(privateDict.subrsIndex);\n        privateDictTracker.setEntryLocation(\n          \"Subrs\",\n          [privateDictData.length],\n          output\n        );\n        output.add(subrs);\n      }\n    }\n  }\n\n  compileDict(dict, offsetTracker) {\n    const out = [];\n    // The dictionary keys must be in a certain order.\n    for (const key of dict.order) {\n      if (!(key in dict.values)) {\n        continue;\n      }\n      let values = dict.values[key];\n      let types = dict.types[key];\n      if (!Array.isArray(types)) {\n        types = [types];\n      }\n      if (!Array.isArray(values)) {\n        values = [values];\n      }\n\n      // Remove any empty dict values.\n      if (values.length === 0) {\n        continue;\n      }\n\n      for (let j = 0, jj = types.length; j < jj; ++j) {\n        const type = types[j];\n        const value = values[j];\n        switch (type) {\n          case \"num\":\n          case \"sid\":\n            out.push(...this.encodeNumber(value));\n            break;\n          case \"offset\":\n            // For offsets we just insert a 32bit integer so we don't have to\n            // deal with figuring out the length of the offset when it gets\n            // replaced later on by the compiler.\n            const name = dict.keyToNameMap[key];\n            // Some offsets have the offset and the length, so just record the\n            // position of the first one.\n            if (!offsetTracker.isTracking(name)) {\n              offsetTracker.track(name, out.length);\n            }\n            out.push(0x1d, 0, 0, 0, 0);\n            break;\n          case \"array\":\n          case \"delta\":\n            out.push(...this.encodeNumber(value));\n            for (let k = 1, kk = values.length; k < kk; ++k) {\n              out.push(...this.encodeNumber(values[k]));\n            }\n            break;\n          default:\n            throw new FormatError(`Unknown data type of ${type}`);\n        }\n      }\n      out.push(...dict.opcodes[key]);\n    }\n    return out;\n  }\n\n  compileStringIndex(strings) {\n    const stringIndex = new CFFIndex();\n    for (const string of strings) {\n      stringIndex.add(stringToBytes(string));\n    }\n    return this.compileIndex(stringIndex);\n  }\n\n  compileCharStrings(charStrings) {\n    const charStringsIndex = new CFFIndex();\n    for (let i = 0; i < charStrings.count; i++) {\n      const glyph = charStrings.get(i);\n      // If the CharString outline is empty, replace it with .notdef to\n      // prevent OTS from rejecting the font (fixes bug1252420.pdf).\n      if (glyph.length === 0) {\n        charStringsIndex.add(new Uint8Array([0x8b, 0x0e]));\n        continue;\n      }\n      charStringsIndex.add(glyph);\n    }\n    return this.compileIndex(charStringsIndex);\n  }\n\n  compileCharset(charset, numGlyphs, strings, isCIDFont) {\n    // Freetype requires the number of charset strings be correct and MacOS\n    // requires a valid mapping for printing.\n    let out;\n    const numGlyphsLessNotDef = numGlyphs - 1;\n    if (isCIDFont) {\n      // In a CID font, the charset is a mapping of CIDs not SIDs so just\n      // create an identity mapping.\n      out = new Uint8Array([\n        2, // format\n        0, // first CID upper byte\n        0, // first CID lower byte\n        (numGlyphsLessNotDef >> 8) & 0xff,\n        numGlyphsLessNotDef & 0xff,\n      ]);\n    } else {\n      const length = 1 + numGlyphsLessNotDef * 2;\n      out = new Uint8Array(length);\n      out[0] = 0; // format 0\n      let charsetIndex = 0;\n      const numCharsets = charset.charset.length;\n      let warned = false;\n      for (let i = 1; i < out.length; i += 2) {\n        let sid = 0;\n        if (charsetIndex < numCharsets) {\n          const name = charset.charset[charsetIndex++];\n          sid = strings.getSID(name);\n          if (sid === -1) {\n            sid = 0;\n            if (!warned) {\n              warned = true;\n              warn(`Couldn't find ${name} in CFF strings`);\n            }\n          }\n        }\n        out[i] = (sid >> 8) & 0xff;\n        out[i + 1] = sid & 0xff;\n      }\n    }\n    return this.compileTypedArray(out);\n  }\n\n  compileEncoding(encoding) {\n    return this.compileTypedArray(encoding.raw);\n  }\n\n  compileFDSelect(fdSelect) {\n    const format = fdSelect.format;\n    let out, i;\n    switch (format) {\n      case 0:\n        out = new Uint8Array(1 + fdSelect.fdSelect.length);\n        out[0] = format;\n        for (i = 0; i < fdSelect.fdSelect.length; i++) {\n          out[i + 1] = fdSelect.fdSelect[i];\n        }\n        break;\n      case 3:\n        const start = 0;\n        let lastFD = fdSelect.fdSelect[0];\n        const ranges = [\n          format,\n          0, // nRanges place holder\n          0, // nRanges place holder\n          (start >> 8) & 0xff,\n          start & 0xff,\n          lastFD,\n        ];\n        for (i = 1; i < fdSelect.fdSelect.length; i++) {\n          const currentFD = fdSelect.fdSelect[i];\n          if (currentFD !== lastFD) {\n            ranges.push((i >> 8) & 0xff, i & 0xff, currentFD);\n            lastFD = currentFD;\n          }\n        }\n        // 3 bytes are pushed for every range and there are 3 header bytes.\n        const numRanges = (ranges.length - 3) / 3;\n        ranges[1] = (numRanges >> 8) & 0xff;\n        ranges[2] = numRanges & 0xff;\n        // sentinel\n        ranges.push((i >> 8) & 0xff, i & 0xff);\n        out = new Uint8Array(ranges);\n        break;\n    }\n    return this.compileTypedArray(out);\n  }\n\n  compileTypedArray(data) {\n    return Array.from(data);\n  }\n\n  compileIndex(index, trackers = []) {\n    const objects = index.objects;\n    // First 2 bytes contains the number of objects contained into this index\n    const count = objects.length;\n\n    // If there is no object, just create an index.\n    if (count === 0) {\n      return [0, 0];\n    }\n\n    const data = [(count >> 8) & 0xff, count & 0xff];\n\n    let lastOffset = 1,\n      i;\n    for (i = 0; i < count; ++i) {\n      lastOffset += objects[i].length;\n    }\n\n    let offsetSize;\n    if (lastOffset < 0x100) {\n      offsetSize = 1;\n    } else if (lastOffset < 0x10000) {\n      offsetSize = 2;\n    } else if (lastOffset < 0x1000000) {\n      offsetSize = 3;\n    } else {\n      offsetSize = 4;\n    }\n\n    // Next byte contains the offset size use to reference object in the file\n    data.push(offsetSize);\n\n    // Add another offset after this one because we need a new offset\n    let relativeOffset = 1;\n    for (i = 0; i < count + 1; i++) {\n      if (offsetSize === 1) {\n        data.push(relativeOffset & 0xff);\n      } else if (offsetSize === 2) {\n        data.push((relativeOffset >> 8) & 0xff, relativeOffset & 0xff);\n      } else if (offsetSize === 3) {\n        data.push(\n          (relativeOffset >> 16) & 0xff,\n          (relativeOffset >> 8) & 0xff,\n          relativeOffset & 0xff\n        );\n      } else {\n        data.push(\n          (relativeOffset >>> 24) & 0xff,\n          (relativeOffset >> 16) & 0xff,\n          (relativeOffset >> 8) & 0xff,\n          relativeOffset & 0xff\n        );\n      }\n\n      if (objects[i]) {\n        relativeOffset += objects[i].length;\n      }\n    }\n\n    for (i = 0; i < count; i++) {\n      // Notify the tracker where the object will be offset in the data.\n      if (trackers[i]) {\n        trackers[i].offset(data.length);\n      }\n      data.push(...objects[i]);\n    }\n    return data;\n  }\n}\n\nexport {\n  CFF,\n  CFFCharset,\n  CFFCompiler,\n  CFFFDSelect,\n  CFFHeader,\n  CFFIndex,\n  CFFParser,\n  CFFPrivateDict,\n  CFFStandardStrings,\n  CFFStrings,\n  CFFTopDict,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getLookupTableFactory } from \"./core_utils.js\";\n\nconst getGlyphsUnicode = getLookupTableFactory(function (t) {\n  t.A = 0x0041;\n  t.AE = 0x00c6;\n  t.AEacute = 0x01fc;\n  t.AEmacron = 0x01e2;\n  t.AEsmall = 0xf7e6;\n  t.Aacute = 0x00c1;\n  t.Aacutesmall = 0xf7e1;\n  t.Abreve = 0x0102;\n  t.Abreveacute = 0x1eae;\n  t.Abrevecyrillic = 0x04d0;\n  t.Abrevedotbelow = 0x1eb6;\n  t.Abrevegrave = 0x1eb0;\n  t.Abrevehookabove = 0x1eb2;\n  t.Abrevetilde = 0x1eb4;\n  t.Acaron = 0x01cd;\n  t.Acircle = 0x24b6;\n  t.Acircumflex = 0x00c2;\n  t.Acircumflexacute = 0x1ea4;\n  t.Acircumflexdotbelow = 0x1eac;\n  t.Acircumflexgrave = 0x1ea6;\n  t.Acircumflexhookabove = 0x1ea8;\n  t.Acircumflexsmall = 0xf7e2;\n  t.Acircumflextilde = 0x1eaa;\n  t.Acute = 0xf6c9;\n  t.Acutesmall = 0xf7b4;\n  t.Acyrillic = 0x0410;\n  t.Adblgrave = 0x0200;\n  t.Adieresis = 0x00c4;\n  t.Adieresiscyrillic = 0x04d2;\n  t.Adieresismacron = 0x01de;\n  t.Adieresissmall = 0xf7e4;\n  t.Adotbelow = 0x1ea0;\n  t.Adotmacron = 0x01e0;\n  t.Agrave = 0x00c0;\n  t.Agravesmall = 0xf7e0;\n  t.Ahookabove = 0x1ea2;\n  t.Aiecyrillic = 0x04d4;\n  t.Ainvertedbreve = 0x0202;\n  t.Alpha = 0x0391;\n  t.Alphatonos = 0x0386;\n  t.Amacron = 0x0100;\n  t.Amonospace = 0xff21;\n  t.Aogonek = 0x0104;\n  t.Aring = 0x00c5;\n  t.Aringacute = 0x01fa;\n  t.Aringbelow = 0x1e00;\n  t.Aringsmall = 0xf7e5;\n  t.Asmall = 0xf761;\n  t.Atilde = 0x00c3;\n  t.Atildesmall = 0xf7e3;\n  t.Aybarmenian = 0x0531;\n  t.B = 0x0042;\n  t.Bcircle = 0x24b7;\n  t.Bdotaccent = 0x1e02;\n  t.Bdotbelow = 0x1e04;\n  t.Becyrillic = 0x0411;\n  t.Benarmenian = 0x0532;\n  t.Beta = 0x0392;\n  t.Bhook = 0x0181;\n  t.Blinebelow = 0x1e06;\n  t.Bmonospace = 0xff22;\n  t.Brevesmall = 0xf6f4;\n  t.Bsmall = 0xf762;\n  t.Btopbar = 0x0182;\n  t.C = 0x0043;\n  t.Caarmenian = 0x053e;\n  t.Cacute = 0x0106;\n  t.Caron = 0xf6ca;\n  t.Caronsmall = 0xf6f5;\n  t.Ccaron = 0x010c;\n  t.Ccedilla = 0x00c7;\n  t.Ccedillaacute = 0x1e08;\n  t.Ccedillasmall = 0xf7e7;\n  t.Ccircle = 0x24b8;\n  t.Ccircumflex = 0x0108;\n  t.Cdot = 0x010a;\n  t.Cdotaccent = 0x010a;\n  t.Cedillasmall = 0xf7b8;\n  t.Chaarmenian = 0x0549;\n  t.Cheabkhasiancyrillic = 0x04bc;\n  t.Checyrillic = 0x0427;\n  t.Chedescenderabkhasiancyrillic = 0x04be;\n  t.Chedescendercyrillic = 0x04b6;\n  t.Chedieresiscyrillic = 0x04f4;\n  t.Cheharmenian = 0x0543;\n  t.Chekhakassiancyrillic = 0x04cb;\n  t.Cheverticalstrokecyrillic = 0x04b8;\n  t.Chi = 0x03a7;\n  t.Chook = 0x0187;\n  t.Circumflexsmall = 0xf6f6;\n  t.Cmonospace = 0xff23;\n  t.Coarmenian = 0x0551;\n  t.Csmall = 0xf763;\n  t.D = 0x0044;\n  t.DZ = 0x01f1;\n  t.DZcaron = 0x01c4;\n  t.Daarmenian = 0x0534;\n  t.Dafrican = 0x0189;\n  t.Dcaron = 0x010e;\n  t.Dcedilla = 0x1e10;\n  t.Dcircle = 0x24b9;\n  t.Dcircumflexbelow = 0x1e12;\n  t.Dcroat = 0x0110;\n  t.Ddotaccent = 0x1e0a;\n  t.Ddotbelow = 0x1e0c;\n  t.Decyrillic = 0x0414;\n  t.Deicoptic = 0x03ee;\n  t.Delta = 0x2206;\n  t.Deltagreek = 0x0394;\n  t.Dhook = 0x018a;\n  t.Dieresis = 0xf6cb;\n  t.DieresisAcute = 0xf6cc;\n  t.DieresisGrave = 0xf6cd;\n  t.Dieresissmall = 0xf7a8;\n  t.Digammagreek = 0x03dc;\n  t.Djecyrillic = 0x0402;\n  t.Dlinebelow = 0x1e0e;\n  t.Dmonospace = 0xff24;\n  t.Dotaccentsmall = 0xf6f7;\n  t.Dslash = 0x0110;\n  t.Dsmall = 0xf764;\n  t.Dtopbar = 0x018b;\n  t.Dz = 0x01f2;\n  t.Dzcaron = 0x01c5;\n  t.Dzeabkhasiancyrillic = 0x04e0;\n  t.Dzecyrillic = 0x0405;\n  t.Dzhecyrillic = 0x040f;\n  t.E = 0x0045;\n  t.Eacute = 0x00c9;\n  t.Eacutesmall = 0xf7e9;\n  t.Ebreve = 0x0114;\n  t.Ecaron = 0x011a;\n  t.Ecedillabreve = 0x1e1c;\n  t.Echarmenian = 0x0535;\n  t.Ecircle = 0x24ba;\n  t.Ecircumflex = 0x00ca;\n  t.Ecircumflexacute = 0x1ebe;\n  t.Ecircumflexbelow = 0x1e18;\n  t.Ecircumflexdotbelow = 0x1ec6;\n  t.Ecircumflexgrave = 0x1ec0;\n  t.Ecircumflexhookabove = 0x1ec2;\n  t.Ecircumflexsmall = 0xf7ea;\n  t.Ecircumflextilde = 0x1ec4;\n  t.Ecyrillic = 0x0404;\n  t.Edblgrave = 0x0204;\n  t.Edieresis = 0x00cb;\n  t.Edieresissmall = 0xf7eb;\n  t.Edot = 0x0116;\n  t.Edotaccent = 0x0116;\n  t.Edotbelow = 0x1eb8;\n  t.Efcyrillic = 0x0424;\n  t.Egrave = 0x00c8;\n  t.Egravesmall = 0xf7e8;\n  t.Eharmenian = 0x0537;\n  t.Ehookabove = 0x1eba;\n  t.Eightroman = 0x2167;\n  t.Einvertedbreve = 0x0206;\n  t.Eiotifiedcyrillic = 0x0464;\n  t.Elcyrillic = 0x041b;\n  t.Elevenroman = 0x216a;\n  t.Emacron = 0x0112;\n  t.Emacronacute = 0x1e16;\n  t.Emacrongrave = 0x1e14;\n  t.Emcyrillic = 0x041c;\n  t.Emonospace = 0xff25;\n  t.Encyrillic = 0x041d;\n  t.Endescendercyrillic = 0x04a2;\n  t.Eng = 0x014a;\n  t.Enghecyrillic = 0x04a4;\n  t.Enhookcyrillic = 0x04c7;\n  t.Eogonek = 0x0118;\n  t.Eopen = 0x0190;\n  t.Epsilon = 0x0395;\n  t.Epsilontonos = 0x0388;\n  t.Ercyrillic = 0x0420;\n  t.Ereversed = 0x018e;\n  t.Ereversedcyrillic = 0x042d;\n  t.Escyrillic = 0x0421;\n  t.Esdescendercyrillic = 0x04aa;\n  t.Esh = 0x01a9;\n  t.Esmall = 0xf765;\n  t.Eta = 0x0397;\n  t.Etarmenian = 0x0538;\n  t.Etatonos = 0x0389;\n  t.Eth = 0x00d0;\n  t.Ethsmall = 0xf7f0;\n  t.Etilde = 0x1ebc;\n  t.Etildebelow = 0x1e1a;\n  t.Euro = 0x20ac;\n  t.Ezh = 0x01b7;\n  t.Ezhcaron = 0x01ee;\n  t.Ezhreversed = 0x01b8;\n  t.F = 0x0046;\n  t.Fcircle = 0x24bb;\n  t.Fdotaccent = 0x1e1e;\n  t.Feharmenian = 0x0556;\n  t.Feicoptic = 0x03e4;\n  t.Fhook = 0x0191;\n  t.Fitacyrillic = 0x0472;\n  t.Fiveroman = 0x2164;\n  t.Fmonospace = 0xff26;\n  t.Fourroman = 0x2163;\n  t.Fsmall = 0xf766;\n  t.G = 0x0047;\n  t.GBsquare = 0x3387;\n  t.Gacute = 0x01f4;\n  t.Gamma = 0x0393;\n  t.Gammaafrican = 0x0194;\n  t.Gangiacoptic = 0x03ea;\n  t.Gbreve = 0x011e;\n  t.Gcaron = 0x01e6;\n  t.Gcedilla = 0x0122;\n  t.Gcircle = 0x24bc;\n  t.Gcircumflex = 0x011c;\n  t.Gcommaaccent = 0x0122;\n  t.Gdot = 0x0120;\n  t.Gdotaccent = 0x0120;\n  t.Gecyrillic = 0x0413;\n  t.Ghadarmenian = 0x0542;\n  t.Ghemiddlehookcyrillic = 0x0494;\n  t.Ghestrokecyrillic = 0x0492;\n  t.Gheupturncyrillic = 0x0490;\n  t.Ghook = 0x0193;\n  t.Gimarmenian = 0x0533;\n  t.Gjecyrillic = 0x0403;\n  t.Gmacron = 0x1e20;\n  t.Gmonospace = 0xff27;\n  t.Grave = 0xf6ce;\n  t.Gravesmall = 0xf760;\n  t.Gsmall = 0xf767;\n  t.Gsmallhook = 0x029b;\n  t.Gstroke = 0x01e4;\n  t.H = 0x0048;\n  t.H18533 = 0x25cf;\n  t.H18543 = 0x25aa;\n  t.H18551 = 0x25ab;\n  t.H22073 = 0x25a1;\n  t.HPsquare = 0x33cb;\n  t.Haabkhasiancyrillic = 0x04a8;\n  t.Hadescendercyrillic = 0x04b2;\n  t.Hardsigncyrillic = 0x042a;\n  t.Hbar = 0x0126;\n  t.Hbrevebelow = 0x1e2a;\n  t.Hcedilla = 0x1e28;\n  t.Hcircle = 0x24bd;\n  t.Hcircumflex = 0x0124;\n  t.Hdieresis = 0x1e26;\n  t.Hdotaccent = 0x1e22;\n  t.Hdotbelow = 0x1e24;\n  t.Hmonospace = 0xff28;\n  t.Hoarmenian = 0x0540;\n  t.Horicoptic = 0x03e8;\n  t.Hsmall = 0xf768;\n  t.Hungarumlaut = 0xf6cf;\n  t.Hungarumlautsmall = 0xf6f8;\n  t.Hzsquare = 0x3390;\n  t.I = 0x0049;\n  t.IAcyrillic = 0x042f;\n  t.IJ = 0x0132;\n  t.IUcyrillic = 0x042e;\n  t.Iacute = 0x00cd;\n  t.Iacutesmall = 0xf7ed;\n  t.Ibreve = 0x012c;\n  t.Icaron = 0x01cf;\n  t.Icircle = 0x24be;\n  t.Icircumflex = 0x00ce;\n  t.Icircumflexsmall = 0xf7ee;\n  t.Icyrillic = 0x0406;\n  t.Idblgrave = 0x0208;\n  t.Idieresis = 0x00cf;\n  t.Idieresisacute = 0x1e2e;\n  t.Idieresiscyrillic = 0x04e4;\n  t.Idieresissmall = 0xf7ef;\n  t.Idot = 0x0130;\n  t.Idotaccent = 0x0130;\n  t.Idotbelow = 0x1eca;\n  t.Iebrevecyrillic = 0x04d6;\n  t.Iecyrillic = 0x0415;\n  t.Ifraktur = 0x2111;\n  t.Igrave = 0x00cc;\n  t.Igravesmall = 0xf7ec;\n  t.Ihookabove = 0x1ec8;\n  t.Iicyrillic = 0x0418;\n  t.Iinvertedbreve = 0x020a;\n  t.Iishortcyrillic = 0x0419;\n  t.Imacron = 0x012a;\n  t.Imacroncyrillic = 0x04e2;\n  t.Imonospace = 0xff29;\n  t.Iniarmenian = 0x053b;\n  t.Iocyrillic = 0x0401;\n  t.Iogonek = 0x012e;\n  t.Iota = 0x0399;\n  t.Iotaafrican = 0x0196;\n  t.Iotadieresis = 0x03aa;\n  t.Iotatonos = 0x038a;\n  t.Ismall = 0xf769;\n  t.Istroke = 0x0197;\n  t.Itilde = 0x0128;\n  t.Itildebelow = 0x1e2c;\n  t.Izhitsacyrillic = 0x0474;\n  t.Izhitsadblgravecyrillic = 0x0476;\n  t.J = 0x004a;\n  t.Jaarmenian = 0x0541;\n  t.Jcircle = 0x24bf;\n  t.Jcircumflex = 0x0134;\n  t.Jecyrillic = 0x0408;\n  t.Jheharmenian = 0x054b;\n  t.Jmonospace = 0xff2a;\n  t.Jsmall = 0xf76a;\n  t.K = 0x004b;\n  t.KBsquare = 0x3385;\n  t.KKsquare = 0x33cd;\n  t.Kabashkircyrillic = 0x04a0;\n  t.Kacute = 0x1e30;\n  t.Kacyrillic = 0x041a;\n  t.Kadescendercyrillic = 0x049a;\n  t.Kahookcyrillic = 0x04c3;\n  t.Kappa = 0x039a;\n  t.Kastrokecyrillic = 0x049e;\n  t.Kaverticalstrokecyrillic = 0x049c;\n  t.Kcaron = 0x01e8;\n  t.Kcedilla = 0x0136;\n  t.Kcircle = 0x24c0;\n  t.Kcommaaccent = 0x0136;\n  t.Kdotbelow = 0x1e32;\n  t.Keharmenian = 0x0554;\n  t.Kenarmenian = 0x053f;\n  t.Khacyrillic = 0x0425;\n  t.Kheicoptic = 0x03e6;\n  t.Khook = 0x0198;\n  t.Kjecyrillic = 0x040c;\n  t.Klinebelow = 0x1e34;\n  t.Kmonospace = 0xff2b;\n  t.Koppacyrillic = 0x0480;\n  t.Koppagreek = 0x03de;\n  t.Ksicyrillic = 0x046e;\n  t.Ksmall = 0xf76b;\n  t.L = 0x004c;\n  t.LJ = 0x01c7;\n  t.LL = 0xf6bf;\n  t.Lacute = 0x0139;\n  t.Lambda = 0x039b;\n  t.Lcaron = 0x013d;\n  t.Lcedilla = 0x013b;\n  t.Lcircle = 0x24c1;\n  t.Lcircumflexbelow = 0x1e3c;\n  t.Lcommaaccent = 0x013b;\n  t.Ldot = 0x013f;\n  t.Ldotaccent = 0x013f;\n  t.Ldotbelow = 0x1e36;\n  t.Ldotbelowmacron = 0x1e38;\n  t.Liwnarmenian = 0x053c;\n  t.Lj = 0x01c8;\n  t.Ljecyrillic = 0x0409;\n  t.Llinebelow = 0x1e3a;\n  t.Lmonospace = 0xff2c;\n  t.Lslash = 0x0141;\n  t.Lslashsmall = 0xf6f9;\n  t.Lsmall = 0xf76c;\n  t.M = 0x004d;\n  t.MBsquare = 0x3386;\n  t.Macron = 0xf6d0;\n  t.Macronsmall = 0xf7af;\n  t.Macute = 0x1e3e;\n  t.Mcircle = 0x24c2;\n  t.Mdotaccent = 0x1e40;\n  t.Mdotbelow = 0x1e42;\n  t.Menarmenian = 0x0544;\n  t.Mmonospace = 0xff2d;\n  t.Msmall = 0xf76d;\n  t.Mturned = 0x019c;\n  t.Mu = 0x039c;\n  t.N = 0x004e;\n  t.NJ = 0x01ca;\n  t.Nacute = 0x0143;\n  t.Ncaron = 0x0147;\n  t.Ncedilla = 0x0145;\n  t.Ncircle = 0x24c3;\n  t.Ncircumflexbelow = 0x1e4a;\n  t.Ncommaaccent = 0x0145;\n  t.Ndotaccent = 0x1e44;\n  t.Ndotbelow = 0x1e46;\n  t.Nhookleft = 0x019d;\n  t.Nineroman = 0x2168;\n  t.Nj = 0x01cb;\n  t.Njecyrillic = 0x040a;\n  t.Nlinebelow = 0x1e48;\n  t.Nmonospace = 0xff2e;\n  t.Nowarmenian = 0x0546;\n  t.Nsmall = 0xf76e;\n  t.Ntilde = 0x00d1;\n  t.Ntildesmall = 0xf7f1;\n  t.Nu = 0x039d;\n  t.O = 0x004f;\n  t.OE = 0x0152;\n  t.OEsmall = 0xf6fa;\n  t.Oacute = 0x00d3;\n  t.Oacutesmall = 0xf7f3;\n  t.Obarredcyrillic = 0x04e8;\n  t.Obarreddieresiscyrillic = 0x04ea;\n  t.Obreve = 0x014e;\n  t.Ocaron = 0x01d1;\n  t.Ocenteredtilde = 0x019f;\n  t.Ocircle = 0x24c4;\n  t.Ocircumflex = 0x00d4;\n  t.Ocircumflexacute = 0x1ed0;\n  t.Ocircumflexdotbelow = 0x1ed8;\n  t.Ocircumflexgrave = 0x1ed2;\n  t.Ocircumflexhookabove = 0x1ed4;\n  t.Ocircumflexsmall = 0xf7f4;\n  t.Ocircumflextilde = 0x1ed6;\n  t.Ocyrillic = 0x041e;\n  t.Odblacute = 0x0150;\n  t.Odblgrave = 0x020c;\n  t.Odieresis = 0x00d6;\n  t.Odieresiscyrillic = 0x04e6;\n  t.Odieresissmall = 0xf7f6;\n  t.Odotbelow = 0x1ecc;\n  t.Ogoneksmall = 0xf6fb;\n  t.Ograve = 0x00d2;\n  t.Ogravesmall = 0xf7f2;\n  t.Oharmenian = 0x0555;\n  t.Ohm = 0x2126;\n  t.Ohookabove = 0x1ece;\n  t.Ohorn = 0x01a0;\n  t.Ohornacute = 0x1eda;\n  t.Ohorndotbelow = 0x1ee2;\n  t.Ohorngrave = 0x1edc;\n  t.Ohornhookabove = 0x1ede;\n  t.Ohorntilde = 0x1ee0;\n  t.Ohungarumlaut = 0x0150;\n  t.Oi = 0x01a2;\n  t.Oinvertedbreve = 0x020e;\n  t.Omacron = 0x014c;\n  t.Omacronacute = 0x1e52;\n  t.Omacrongrave = 0x1e50;\n  t.Omega = 0x2126;\n  t.Omegacyrillic = 0x0460;\n  t.Omegagreek = 0x03a9;\n  t.Omegaroundcyrillic = 0x047a;\n  t.Omegatitlocyrillic = 0x047c;\n  t.Omegatonos = 0x038f;\n  t.Omicron = 0x039f;\n  t.Omicrontonos = 0x038c;\n  t.Omonospace = 0xff2f;\n  t.Oneroman = 0x2160;\n  t.Oogonek = 0x01ea;\n  t.Oogonekmacron = 0x01ec;\n  t.Oopen = 0x0186;\n  t.Oslash = 0x00d8;\n  t.Oslashacute = 0x01fe;\n  t.Oslashsmall = 0xf7f8;\n  t.Osmall = 0xf76f;\n  t.Ostrokeacute = 0x01fe;\n  t.Otcyrillic = 0x047e;\n  t.Otilde = 0x00d5;\n  t.Otildeacute = 0x1e4c;\n  t.Otildedieresis = 0x1e4e;\n  t.Otildesmall = 0xf7f5;\n  t.P = 0x0050;\n  t.Pacute = 0x1e54;\n  t.Pcircle = 0x24c5;\n  t.Pdotaccent = 0x1e56;\n  t.Pecyrillic = 0x041f;\n  t.Peharmenian = 0x054a;\n  t.Pemiddlehookcyrillic = 0x04a6;\n  t.Phi = 0x03a6;\n  t.Phook = 0x01a4;\n  t.Pi = 0x03a0;\n  t.Piwrarmenian = 0x0553;\n  t.Pmonospace = 0xff30;\n  t.Psi = 0x03a8;\n  t.Psicyrillic = 0x0470;\n  t.Psmall = 0xf770;\n  t.Q = 0x0051;\n  t.Qcircle = 0x24c6;\n  t.Qmonospace = 0xff31;\n  t.Qsmall = 0xf771;\n  t.R = 0x0052;\n  t.Raarmenian = 0x054c;\n  t.Racute = 0x0154;\n  t.Rcaron = 0x0158;\n  t.Rcedilla = 0x0156;\n  t.Rcircle = 0x24c7;\n  t.Rcommaaccent = 0x0156;\n  t.Rdblgrave = 0x0210;\n  t.Rdotaccent = 0x1e58;\n  t.Rdotbelow = 0x1e5a;\n  t.Rdotbelowmacron = 0x1e5c;\n  t.Reharmenian = 0x0550;\n  t.Rfraktur = 0x211c;\n  t.Rho = 0x03a1;\n  t.Ringsmall = 0xf6fc;\n  t.Rinvertedbreve = 0x0212;\n  t.Rlinebelow = 0x1e5e;\n  t.Rmonospace = 0xff32;\n  t.Rsmall = 0xf772;\n  t.Rsmallinverted = 0x0281;\n  t.Rsmallinvertedsuperior = 0x02b6;\n  t.S = 0x0053;\n  t.SF010000 = 0x250c;\n  t.SF020000 = 0x2514;\n  t.SF030000 = 0x2510;\n  t.SF040000 = 0x2518;\n  t.SF050000 = 0x253c;\n  t.SF060000 = 0x252c;\n  t.SF070000 = 0x2534;\n  t.SF080000 = 0x251c;\n  t.SF090000 = 0x2524;\n  t.SF100000 = 0x2500;\n  t.SF110000 = 0x2502;\n  t.SF190000 = 0x2561;\n  t.SF200000 = 0x2562;\n  t.SF210000 = 0x2556;\n  t.SF220000 = 0x2555;\n  t.SF230000 = 0x2563;\n  t.SF240000 = 0x2551;\n  t.SF250000 = 0x2557;\n  t.SF260000 = 0x255d;\n  t.SF270000 = 0x255c;\n  t.SF280000 = 0x255b;\n  t.SF360000 = 0x255e;\n  t.SF370000 = 0x255f;\n  t.SF380000 = 0x255a;\n  t.SF390000 = 0x2554;\n  t.SF400000 = 0x2569;\n  t.SF410000 = 0x2566;\n  t.SF420000 = 0x2560;\n  t.SF430000 = 0x2550;\n  t.SF440000 = 0x256c;\n  t.SF450000 = 0x2567;\n  t.SF460000 = 0x2568;\n  t.SF470000 = 0x2564;\n  t.SF480000 = 0x2565;\n  t.SF490000 = 0x2559;\n  t.SF500000 = 0x2558;\n  t.SF510000 = 0x2552;\n  t.SF520000 = 0x2553;\n  t.SF530000 = 0x256b;\n  t.SF540000 = 0x256a;\n  t.Sacute = 0x015a;\n  t.Sacutedotaccent = 0x1e64;\n  t.Sampigreek = 0x03e0;\n  t.Scaron = 0x0160;\n  t.Scarondotaccent = 0x1e66;\n  t.Scaronsmall = 0xf6fd;\n  t.Scedilla = 0x015e;\n  t.Schwa = 0x018f;\n  t.Schwacyrillic = 0x04d8;\n  t.Schwadieresiscyrillic = 0x04da;\n  t.Scircle = 0x24c8;\n  t.Scircumflex = 0x015c;\n  t.Scommaaccent = 0x0218;\n  t.Sdotaccent = 0x1e60;\n  t.Sdotbelow = 0x1e62;\n  t.Sdotbelowdotaccent = 0x1e68;\n  t.Seharmenian = 0x054d;\n  t.Sevenroman = 0x2166;\n  t.Shaarmenian = 0x0547;\n  t.Shacyrillic = 0x0428;\n  t.Shchacyrillic = 0x0429;\n  t.Sheicoptic = 0x03e2;\n  t.Shhacyrillic = 0x04ba;\n  t.Shimacoptic = 0x03ec;\n  t.Sigma = 0x03a3;\n  t.Sixroman = 0x2165;\n  t.Smonospace = 0xff33;\n  t.Softsigncyrillic = 0x042c;\n  t.Ssmall = 0xf773;\n  t.Stigmagreek = 0x03da;\n  t.T = 0x0054;\n  t.Tau = 0x03a4;\n  t.Tbar = 0x0166;\n  t.Tcaron = 0x0164;\n  t.Tcedilla = 0x0162;\n  t.Tcircle = 0x24c9;\n  t.Tcircumflexbelow = 0x1e70;\n  t.Tcommaaccent = 0x0162;\n  t.Tdotaccent = 0x1e6a;\n  t.Tdotbelow = 0x1e6c;\n  t.Tecyrillic = 0x0422;\n  t.Tedescendercyrillic = 0x04ac;\n  t.Tenroman = 0x2169;\n  t.Tetsecyrillic = 0x04b4;\n  t.Theta = 0x0398;\n  t.Thook = 0x01ac;\n  t.Thorn = 0x00de;\n  t.Thornsmall = 0xf7fe;\n  t.Threeroman = 0x2162;\n  t.Tildesmall = 0xf6fe;\n  t.Tiwnarmenian = 0x054f;\n  t.Tlinebelow = 0x1e6e;\n  t.Tmonospace = 0xff34;\n  t.Toarmenian = 0x0539;\n  t.Tonefive = 0x01bc;\n  t.Tonesix = 0x0184;\n  t.Tonetwo = 0x01a7;\n  t.Tretroflexhook = 0x01ae;\n  t.Tsecyrillic = 0x0426;\n  t.Tshecyrillic = 0x040b;\n  t.Tsmall = 0xf774;\n  t.Twelveroman = 0x216b;\n  t.Tworoman = 0x2161;\n  t.U = 0x0055;\n  t.Uacute = 0x00da;\n  t.Uacutesmall = 0xf7fa;\n  t.Ubreve = 0x016c;\n  t.Ucaron = 0x01d3;\n  t.Ucircle = 0x24ca;\n  t.Ucircumflex = 0x00db;\n  t.Ucircumflexbelow = 0x1e76;\n  t.Ucircumflexsmall = 0xf7fb;\n  t.Ucyrillic = 0x0423;\n  t.Udblacute = 0x0170;\n  t.Udblgrave = 0x0214;\n  t.Udieresis = 0x00dc;\n  t.Udieresisacute = 0x01d7;\n  t.Udieresisbelow = 0x1e72;\n  t.Udieresiscaron = 0x01d9;\n  t.Udieresiscyrillic = 0x04f0;\n  t.Udieresisgrave = 0x01db;\n  t.Udieresismacron = 0x01d5;\n  t.Udieresissmall = 0xf7fc;\n  t.Udotbelow = 0x1ee4;\n  t.Ugrave = 0x00d9;\n  t.Ugravesmall = 0xf7f9;\n  t.Uhookabove = 0x1ee6;\n  t.Uhorn = 0x01af;\n  t.Uhornacute = 0x1ee8;\n  t.Uhorndotbelow = 0x1ef0;\n  t.Uhorngrave = 0x1eea;\n  t.Uhornhookabove = 0x1eec;\n  t.Uhorntilde = 0x1eee;\n  t.Uhungarumlaut = 0x0170;\n  t.Uhungarumlautcyrillic = 0x04f2;\n  t.Uinvertedbreve = 0x0216;\n  t.Ukcyrillic = 0x0478;\n  t.Umacron = 0x016a;\n  t.Umacroncyrillic = 0x04ee;\n  t.Umacrondieresis = 0x1e7a;\n  t.Umonospace = 0xff35;\n  t.Uogonek = 0x0172;\n  t.Upsilon = 0x03a5;\n  t.Upsilon1 = 0x03d2;\n  t.Upsilonacutehooksymbolgreek = 0x03d3;\n  t.Upsilonafrican = 0x01b1;\n  t.Upsilondieresis = 0x03ab;\n  t.Upsilondieresishooksymbolgreek = 0x03d4;\n  t.Upsilonhooksymbol = 0x03d2;\n  t.Upsilontonos = 0x038e;\n  t.Uring = 0x016e;\n  t.Ushortcyrillic = 0x040e;\n  t.Usmall = 0xf775;\n  t.Ustraightcyrillic = 0x04ae;\n  t.Ustraightstrokecyrillic = 0x04b0;\n  t.Utilde = 0x0168;\n  t.Utildeacute = 0x1e78;\n  t.Utildebelow = 0x1e74;\n  t.V = 0x0056;\n  t.Vcircle = 0x24cb;\n  t.Vdotbelow = 0x1e7e;\n  t.Vecyrillic = 0x0412;\n  t.Vewarmenian = 0x054e;\n  t.Vhook = 0x01b2;\n  t.Vmonospace = 0xff36;\n  t.Voarmenian = 0x0548;\n  t.Vsmall = 0xf776;\n  t.Vtilde = 0x1e7c;\n  t.W = 0x0057;\n  t.Wacute = 0x1e82;\n  t.Wcircle = 0x24cc;\n  t.Wcircumflex = 0x0174;\n  t.Wdieresis = 0x1e84;\n  t.Wdotaccent = 0x1e86;\n  t.Wdotbelow = 0x1e88;\n  t.Wgrave = 0x1e80;\n  t.Wmonospace = 0xff37;\n  t.Wsmall = 0xf777;\n  t.X = 0x0058;\n  t.Xcircle = 0x24cd;\n  t.Xdieresis = 0x1e8c;\n  t.Xdotaccent = 0x1e8a;\n  t.Xeharmenian = 0x053d;\n  t.Xi = 0x039e;\n  t.Xmonospace = 0xff38;\n  t.Xsmall = 0xf778;\n  t.Y = 0x0059;\n  t.Yacute = 0x00dd;\n  t.Yacutesmall = 0xf7fd;\n  t.Yatcyrillic = 0x0462;\n  t.Ycircle = 0x24ce;\n  t.Ycircumflex = 0x0176;\n  t.Ydieresis = 0x0178;\n  t.Ydieresissmall = 0xf7ff;\n  t.Ydotaccent = 0x1e8e;\n  t.Ydotbelow = 0x1ef4;\n  t.Yericyrillic = 0x042b;\n  t.Yerudieresiscyrillic = 0x04f8;\n  t.Ygrave = 0x1ef2;\n  t.Yhook = 0x01b3;\n  t.Yhookabove = 0x1ef6;\n  t.Yiarmenian = 0x0545;\n  t.Yicyrillic = 0x0407;\n  t.Yiwnarmenian = 0x0552;\n  t.Ymonospace = 0xff39;\n  t.Ysmall = 0xf779;\n  t.Ytilde = 0x1ef8;\n  t.Yusbigcyrillic = 0x046a;\n  t.Yusbigiotifiedcyrillic = 0x046c;\n  t.Yuslittlecyrillic = 0x0466;\n  t.Yuslittleiotifiedcyrillic = 0x0468;\n  t.Z = 0x005a;\n  t.Zaarmenian = 0x0536;\n  t.Zacute = 0x0179;\n  t.Zcaron = 0x017d;\n  t.Zcaronsmall = 0xf6ff;\n  t.Zcircle = 0x24cf;\n  t.Zcircumflex = 0x1e90;\n  t.Zdot = 0x017b;\n  t.Zdotaccent = 0x017b;\n  t.Zdotbelow = 0x1e92;\n  t.Zecyrillic = 0x0417;\n  t.Zedescendercyrillic = 0x0498;\n  t.Zedieresiscyrillic = 0x04de;\n  t.Zeta = 0x0396;\n  t.Zhearmenian = 0x053a;\n  t.Zhebrevecyrillic = 0x04c1;\n  t.Zhecyrillic = 0x0416;\n  t.Zhedescendercyrillic = 0x0496;\n  t.Zhedieresiscyrillic = 0x04dc;\n  t.Zlinebelow = 0x1e94;\n  t.Zmonospace = 0xff3a;\n  t.Zsmall = 0xf77a;\n  t.Zstroke = 0x01b5;\n  t.a = 0x0061;\n  t.aabengali = 0x0986;\n  t.aacute = 0x00e1;\n  t.aadeva = 0x0906;\n  t.aagujarati = 0x0a86;\n  t.aagurmukhi = 0x0a06;\n  t.aamatragurmukhi = 0x0a3e;\n  t.aarusquare = 0x3303;\n  t.aavowelsignbengali = 0x09be;\n  t.aavowelsigndeva = 0x093e;\n  t.aavowelsigngujarati = 0x0abe;\n  t.abbreviationmarkarmenian = 0x055f;\n  t.abbreviationsigndeva = 0x0970;\n  t.abengali = 0x0985;\n  t.abopomofo = 0x311a;\n  t.abreve = 0x0103;\n  t.abreveacute = 0x1eaf;\n  t.abrevecyrillic = 0x04d1;\n  t.abrevedotbelow = 0x1eb7;\n  t.abrevegrave = 0x1eb1;\n  t.abrevehookabove = 0x1eb3;\n  t.abrevetilde = 0x1eb5;\n  t.acaron = 0x01ce;\n  t.acircle = 0x24d0;\n  t.acircumflex = 0x00e2;\n  t.acircumflexacute = 0x1ea5;\n  t.acircumflexdotbelow = 0x1ead;\n  t.acircumflexgrave = 0x1ea7;\n  t.acircumflexhookabove = 0x1ea9;\n  t.acircumflextilde = 0x1eab;\n  t.acute = 0x00b4;\n  t.acutebelowcmb = 0x0317;\n  t.acutecmb = 0x0301;\n  t.acutecomb = 0x0301;\n  t.acutedeva = 0x0954;\n  t.acutelowmod = 0x02cf;\n  t.acutetonecmb = 0x0341;\n  t.acyrillic = 0x0430;\n  t.adblgrave = 0x0201;\n  t.addakgurmukhi = 0x0a71;\n  t.adeva = 0x0905;\n  t.adieresis = 0x00e4;\n  t.adieresiscyrillic = 0x04d3;\n  t.adieresismacron = 0x01df;\n  t.adotbelow = 0x1ea1;\n  t.adotmacron = 0x01e1;\n  t.ae = 0x00e6;\n  t.aeacute = 0x01fd;\n  t.aekorean = 0x3150;\n  t.aemacron = 0x01e3;\n  t.afii00208 = 0x2015;\n  t.afii08941 = 0x20a4;\n  t.afii10017 = 0x0410;\n  t.afii10018 = 0x0411;\n  t.afii10019 = 0x0412;\n  t.afii10020 = 0x0413;\n  t.afii10021 = 0x0414;\n  t.afii10022 = 0x0415;\n  t.afii10023 = 0x0401;\n  t.afii10024 = 0x0416;\n  t.afii10025 = 0x0417;\n  t.afii10026 = 0x0418;\n  t.afii10027 = 0x0419;\n  t.afii10028 = 0x041a;\n  t.afii10029 = 0x041b;\n  t.afii10030 = 0x041c;\n  t.afii10031 = 0x041d;\n  t.afii10032 = 0x041e;\n  t.afii10033 = 0x041f;\n  t.afii10034 = 0x0420;\n  t.afii10035 = 0x0421;\n  t.afii10036 = 0x0422;\n  t.afii10037 = 0x0423;\n  t.afii10038 = 0x0424;\n  t.afii10039 = 0x0425;\n  t.afii10040 = 0x0426;\n  t.afii10041 = 0x0427;\n  t.afii10042 = 0x0428;\n  t.afii10043 = 0x0429;\n  t.afii10044 = 0x042a;\n  t.afii10045 = 0x042b;\n  t.afii10046 = 0x042c;\n  t.afii10047 = 0x042d;\n  t.afii10048 = 0x042e;\n  t.afii10049 = 0x042f;\n  t.afii10050 = 0x0490;\n  t.afii10051 = 0x0402;\n  t.afii10052 = 0x0403;\n  t.afii10053 = 0x0404;\n  t.afii10054 = 0x0405;\n  t.afii10055 = 0x0406;\n  t.afii10056 = 0x0407;\n  t.afii10057 = 0x0408;\n  t.afii10058 = 0x0409;\n  t.afii10059 = 0x040a;\n  t.afii10060 = 0x040b;\n  t.afii10061 = 0x040c;\n  t.afii10062 = 0x040e;\n  t.afii10063 = 0xf6c4;\n  t.afii10064 = 0xf6c5;\n  t.afii10065 = 0x0430;\n  t.afii10066 = 0x0431;\n  t.afii10067 = 0x0432;\n  t.afii10068 = 0x0433;\n  t.afii10069 = 0x0434;\n  t.afii10070 = 0x0435;\n  t.afii10071 = 0x0451;\n  t.afii10072 = 0x0436;\n  t.afii10073 = 0x0437;\n  t.afii10074 = 0x0438;\n  t.afii10075 = 0x0439;\n  t.afii10076 = 0x043a;\n  t.afii10077 = 0x043b;\n  t.afii10078 = 0x043c;\n  t.afii10079 = 0x043d;\n  t.afii10080 = 0x043e;\n  t.afii10081 = 0x043f;\n  t.afii10082 = 0x0440;\n  t.afii10083 = 0x0441;\n  t.afii10084 = 0x0442;\n  t.afii10085 = 0x0443;\n  t.afii10086 = 0x0444;\n  t.afii10087 = 0x0445;\n  t.afii10088 = 0x0446;\n  t.afii10089 = 0x0447;\n  t.afii10090 = 0x0448;\n  t.afii10091 = 0x0449;\n  t.afii10092 = 0x044a;\n  t.afii10093 = 0x044b;\n  t.afii10094 = 0x044c;\n  t.afii10095 = 0x044d;\n  t.afii10096 = 0x044e;\n  t.afii10097 = 0x044f;\n  t.afii10098 = 0x0491;\n  t.afii10099 = 0x0452;\n  t.afii10100 = 0x0453;\n  t.afii10101 = 0x0454;\n  t.afii10102 = 0x0455;\n  t.afii10103 = 0x0456;\n  t.afii10104 = 0x0457;\n  t.afii10105 = 0x0458;\n  t.afii10106 = 0x0459;\n  t.afii10107 = 0x045a;\n  t.afii10108 = 0x045b;\n  t.afii10109 = 0x045c;\n  t.afii10110 = 0x045e;\n  t.afii10145 = 0x040f;\n  t.afii10146 = 0x0462;\n  t.afii10147 = 0x0472;\n  t.afii10148 = 0x0474;\n  t.afii10192 = 0xf6c6;\n  t.afii10193 = 0x045f;\n  t.afii10194 = 0x0463;\n  t.afii10195 = 0x0473;\n  t.afii10196 = 0x0475;\n  t.afii10831 = 0xf6c7;\n  t.afii10832 = 0xf6c8;\n  t.afii10846 = 0x04d9;\n  t.afii299 = 0x200e;\n  t.afii300 = 0x200f;\n  t.afii301 = 0x200d;\n  t.afii57381 = 0x066a;\n  t.afii57388 = 0x060c;\n  t.afii57392 = 0x0660;\n  t.afii57393 = 0x0661;\n  t.afii57394 = 0x0662;\n  t.afii57395 = 0x0663;\n  t.afii57396 = 0x0664;\n  t.afii57397 = 0x0665;\n  t.afii57398 = 0x0666;\n  t.afii57399 = 0x0667;\n  t.afii57400 = 0x0668;\n  t.afii57401 = 0x0669;\n  t.afii57403 = 0x061b;\n  t.afii57407 = 0x061f;\n  t.afii57409 = 0x0621;\n  t.afii57410 = 0x0622;\n  t.afii57411 = 0x0623;\n  t.afii57412 = 0x0624;\n  t.afii57413 = 0x0625;\n  t.afii57414 = 0x0626;\n  t.afii57415 = 0x0627;\n  t.afii57416 = 0x0628;\n  t.afii57417 = 0x0629;\n  t.afii57418 = 0x062a;\n  t.afii57419 = 0x062b;\n  t.afii57420 = 0x062c;\n  t.afii57421 = 0x062d;\n  t.afii57422 = 0x062e;\n  t.afii57423 = 0x062f;\n  t.afii57424 = 0x0630;\n  t.afii57425 = 0x0631;\n  t.afii57426 = 0x0632;\n  t.afii57427 = 0x0633;\n  t.afii57428 = 0x0634;\n  t.afii57429 = 0x0635;\n  t.afii57430 = 0x0636;\n  t.afii57431 = 0x0637;\n  t.afii57432 = 0x0638;\n  t.afii57433 = 0x0639;\n  t.afii57434 = 0x063a;\n  t.afii57440 = 0x0640;\n  t.afii57441 = 0x0641;\n  t.afii57442 = 0x0642;\n  t.afii57443 = 0x0643;\n  t.afii57444 = 0x0644;\n  t.afii57445 = 0x0645;\n  t.afii57446 = 0x0646;\n  t.afii57448 = 0x0648;\n  t.afii57449 = 0x0649;\n  t.afii57450 = 0x064a;\n  t.afii57451 = 0x064b;\n  t.afii57452 = 0x064c;\n  t.afii57453 = 0x064d;\n  t.afii57454 = 0x064e;\n  t.afii57455 = 0x064f;\n  t.afii57456 = 0x0650;\n  t.afii57457 = 0x0651;\n  t.afii57458 = 0x0652;\n  t.afii57470 = 0x0647;\n  t.afii57505 = 0x06a4;\n  t.afii57506 = 0x067e;\n  t.afii57507 = 0x0686;\n  t.afii57508 = 0x0698;\n  t.afii57509 = 0x06af;\n  t.afii57511 = 0x0679;\n  t.afii57512 = 0x0688;\n  t.afii57513 = 0x0691;\n  t.afii57514 = 0x06ba;\n  t.afii57519 = 0x06d2;\n  t.afii57534 = 0x06d5;\n  t.afii57636 = 0x20aa;\n  t.afii57645 = 0x05be;\n  t.afii57658 = 0x05c3;\n  t.afii57664 = 0x05d0;\n  t.afii57665 = 0x05d1;\n  t.afii57666 = 0x05d2;\n  t.afii57667 = 0x05d3;\n  t.afii57668 = 0x05d4;\n  t.afii57669 = 0x05d5;\n  t.afii57670 = 0x05d6;\n  t.afii57671 = 0x05d7;\n  t.afii57672 = 0x05d8;\n  t.afii57673 = 0x05d9;\n  t.afii57674 = 0x05da;\n  t.afii57675 = 0x05db;\n  t.afii57676 = 0x05dc;\n  t.afii57677 = 0x05dd;\n  t.afii57678 = 0x05de;\n  t.afii57679 = 0x05df;\n  t.afii57680 = 0x05e0;\n  t.afii57681 = 0x05e1;\n  t.afii57682 = 0x05e2;\n  t.afii57683 = 0x05e3;\n  t.afii57684 = 0x05e4;\n  t.afii57685 = 0x05e5;\n  t.afii57686 = 0x05e6;\n  t.afii57687 = 0x05e7;\n  t.afii57688 = 0x05e8;\n  t.afii57689 = 0x05e9;\n  t.afii57690 = 0x05ea;\n  t.afii57694 = 0xfb2a;\n  t.afii57695 = 0xfb2b;\n  t.afii57700 = 0xfb4b;\n  t.afii57705 = 0xfb1f;\n  t.afii57716 = 0x05f0;\n  t.afii57717 = 0x05f1;\n  t.afii57718 = 0x05f2;\n  t.afii57723 = 0xfb35;\n  t.afii57793 = 0x05b4;\n  t.afii57794 = 0x05b5;\n  t.afii57795 = 0x05b6;\n  t.afii57796 = 0x05bb;\n  t.afii57797 = 0x05b8;\n  t.afii57798 = 0x05b7;\n  t.afii57799 = 0x05b0;\n  t.afii57800 = 0x05b2;\n  t.afii57801 = 0x05b1;\n  t.afii57802 = 0x05b3;\n  t.afii57803 = 0x05c2;\n  t.afii57804 = 0x05c1;\n  t.afii57806 = 0x05b9;\n  t.afii57807 = 0x05bc;\n  t.afii57839 = 0x05bd;\n  t.afii57841 = 0x05bf;\n  t.afii57842 = 0x05c0;\n  t.afii57929 = 0x02bc;\n  t.afii61248 = 0x2105;\n  t.afii61289 = 0x2113;\n  t.afii61352 = 0x2116;\n  t.afii61573 = 0x202c;\n  t.afii61574 = 0x202d;\n  t.afii61575 = 0x202e;\n  t.afii61664 = 0x200c;\n  t.afii63167 = 0x066d;\n  t.afii64937 = 0x02bd;\n  t.agrave = 0x00e0;\n  t.agujarati = 0x0a85;\n  t.agurmukhi = 0x0a05;\n  t.ahiragana = 0x3042;\n  t.ahookabove = 0x1ea3;\n  t.aibengali = 0x0990;\n  t.aibopomofo = 0x311e;\n  t.aideva = 0x0910;\n  t.aiecyrillic = 0x04d5;\n  t.aigujarati = 0x0a90;\n  t.aigurmukhi = 0x0a10;\n  t.aimatragurmukhi = 0x0a48;\n  t.ainarabic = 0x0639;\n  t.ainfinalarabic = 0xfeca;\n  t.aininitialarabic = 0xfecb;\n  t.ainmedialarabic = 0xfecc;\n  t.ainvertedbreve = 0x0203;\n  t.aivowelsignbengali = 0x09c8;\n  t.aivowelsigndeva = 0x0948;\n  t.aivowelsigngujarati = 0x0ac8;\n  t.akatakana = 0x30a2;\n  t.akatakanahalfwidth = 0xff71;\n  t.akorean = 0x314f;\n  t.alef = 0x05d0;\n  t.alefarabic = 0x0627;\n  t.alefdageshhebrew = 0xfb30;\n  t.aleffinalarabic = 0xfe8e;\n  t.alefhamzaabovearabic = 0x0623;\n  t.alefhamzaabovefinalarabic = 0xfe84;\n  t.alefhamzabelowarabic = 0x0625;\n  t.alefhamzabelowfinalarabic = 0xfe88;\n  t.alefhebrew = 0x05d0;\n  t.aleflamedhebrew = 0xfb4f;\n  t.alefmaddaabovearabic = 0x0622;\n  t.alefmaddaabovefinalarabic = 0xfe82;\n  t.alefmaksuraarabic = 0x0649;\n  t.alefmaksurafinalarabic = 0xfef0;\n  t.alefmaksurainitialarabic = 0xfef3;\n  t.alefmaksuramedialarabic = 0xfef4;\n  t.alefpatahhebrew = 0xfb2e;\n  t.alefqamatshebrew = 0xfb2f;\n  t.aleph = 0x2135;\n  t.allequal = 0x224c;\n  t.alpha = 0x03b1;\n  t.alphatonos = 0x03ac;\n  t.amacron = 0x0101;\n  t.amonospace = 0xff41;\n  t.ampersand = 0x0026;\n  t.ampersandmonospace = 0xff06;\n  t.ampersandsmall = 0xf726;\n  t.amsquare = 0x33c2;\n  t.anbopomofo = 0x3122;\n  t.angbopomofo = 0x3124;\n  t.angbracketleft = 0x3008; // Glyph is missing from Adobe's original list.\n  t.angbracketright = 0x3009; // Glyph is missing from Adobe's original list.\n  t.angkhankhuthai = 0x0e5a;\n  t.angle = 0x2220;\n  t.anglebracketleft = 0x3008;\n  t.anglebracketleftvertical = 0xfe3f;\n  t.anglebracketright = 0x3009;\n  t.anglebracketrightvertical = 0xfe40;\n  t.angleleft = 0x2329;\n  t.angleright = 0x232a;\n  t.angstrom = 0x212b;\n  t.anoteleia = 0x0387;\n  t.anudattadeva = 0x0952;\n  t.anusvarabengali = 0x0982;\n  t.anusvaradeva = 0x0902;\n  t.anusvaragujarati = 0x0a82;\n  t.aogonek = 0x0105;\n  t.apaatosquare = 0x3300;\n  t.aparen = 0x249c;\n  t.apostrophearmenian = 0x055a;\n  t.apostrophemod = 0x02bc;\n  t.apple = 0xf8ff;\n  t.approaches = 0x2250;\n  t.approxequal = 0x2248;\n  t.approxequalorimage = 0x2252;\n  t.approximatelyequal = 0x2245;\n  t.araeaekorean = 0x318e;\n  t.araeakorean = 0x318d;\n  t.arc = 0x2312;\n  t.arighthalfring = 0x1e9a;\n  t.aring = 0x00e5;\n  t.aringacute = 0x01fb;\n  t.aringbelow = 0x1e01;\n  t.arrowboth = 0x2194;\n  t.arrowdashdown = 0x21e3;\n  t.arrowdashleft = 0x21e0;\n  t.arrowdashright = 0x21e2;\n  t.arrowdashup = 0x21e1;\n  t.arrowdblboth = 0x21d4;\n  t.arrowdbldown = 0x21d3;\n  t.arrowdblleft = 0x21d0;\n  t.arrowdblright = 0x21d2;\n  t.arrowdblup = 0x21d1;\n  t.arrowdown = 0x2193;\n  t.arrowdownleft = 0x2199;\n  t.arrowdownright = 0x2198;\n  t.arrowdownwhite = 0x21e9;\n  t.arrowheaddownmod = 0x02c5;\n  t.arrowheadleftmod = 0x02c2;\n  t.arrowheadrightmod = 0x02c3;\n  t.arrowheadupmod = 0x02c4;\n  t.arrowhorizex = 0xf8e7;\n  t.arrowleft = 0x2190;\n  t.arrowleftdbl = 0x21d0;\n  t.arrowleftdblstroke = 0x21cd;\n  t.arrowleftoverright = 0x21c6;\n  t.arrowleftwhite = 0x21e6;\n  t.arrowright = 0x2192;\n  t.arrowrightdblstroke = 0x21cf;\n  t.arrowrightheavy = 0x279e;\n  t.arrowrightoverleft = 0x21c4;\n  t.arrowrightwhite = 0x21e8;\n  t.arrowtableft = 0x21e4;\n  t.arrowtabright = 0x21e5;\n  t.arrowup = 0x2191;\n  t.arrowupdn = 0x2195;\n  t.arrowupdnbse = 0x21a8;\n  t.arrowupdownbase = 0x21a8;\n  t.arrowupleft = 0x2196;\n  t.arrowupleftofdown = 0x21c5;\n  t.arrowupright = 0x2197;\n  t.arrowupwhite = 0x21e7;\n  t.arrowvertex = 0xf8e6;\n  t.asciicircum = 0x005e;\n  t.asciicircummonospace = 0xff3e;\n  t.asciitilde = 0x007e;\n  t.asciitildemonospace = 0xff5e;\n  t.ascript = 0x0251;\n  t.ascriptturned = 0x0252;\n  t.asmallhiragana = 0x3041;\n  t.asmallkatakana = 0x30a1;\n  t.asmallkatakanahalfwidth = 0xff67;\n  t.asterisk = 0x002a;\n  t.asteriskaltonearabic = 0x066d;\n  t.asteriskarabic = 0x066d;\n  t.asteriskmath = 0x2217;\n  t.asteriskmonospace = 0xff0a;\n  t.asterisksmall = 0xfe61;\n  t.asterism = 0x2042;\n  t.asuperior = 0xf6e9;\n  t.asymptoticallyequal = 0x2243;\n  t.at = 0x0040;\n  t.atilde = 0x00e3;\n  t.atmonospace = 0xff20;\n  t.atsmall = 0xfe6b;\n  t.aturned = 0x0250;\n  t.aubengali = 0x0994;\n  t.aubopomofo = 0x3120;\n  t.audeva = 0x0914;\n  t.augujarati = 0x0a94;\n  t.augurmukhi = 0x0a14;\n  t.aulengthmarkbengali = 0x09d7;\n  t.aumatragurmukhi = 0x0a4c;\n  t.auvowelsignbengali = 0x09cc;\n  t.auvowelsigndeva = 0x094c;\n  t.auvowelsigngujarati = 0x0acc;\n  t.avagrahadeva = 0x093d;\n  t.aybarmenian = 0x0561;\n  t.ayin = 0x05e2;\n  t.ayinaltonehebrew = 0xfb20;\n  t.ayinhebrew = 0x05e2;\n  t.b = 0x0062;\n  t.babengali = 0x09ac;\n  t.backslash = 0x005c;\n  t.backslashmonospace = 0xff3c;\n  t.badeva = 0x092c;\n  t.bagujarati = 0x0aac;\n  t.bagurmukhi = 0x0a2c;\n  t.bahiragana = 0x3070;\n  t.bahtthai = 0x0e3f;\n  t.bakatakana = 0x30d0;\n  t.bar = 0x007c;\n  t.barmonospace = 0xff5c;\n  t.bbopomofo = 0x3105;\n  t.bcircle = 0x24d1;\n  t.bdotaccent = 0x1e03;\n  t.bdotbelow = 0x1e05;\n  t.beamedsixteenthnotes = 0x266c;\n  t.because = 0x2235;\n  t.becyrillic = 0x0431;\n  t.beharabic = 0x0628;\n  t.behfinalarabic = 0xfe90;\n  t.behinitialarabic = 0xfe91;\n  t.behiragana = 0x3079;\n  t.behmedialarabic = 0xfe92;\n  t.behmeeminitialarabic = 0xfc9f;\n  t.behmeemisolatedarabic = 0xfc08;\n  t.behnoonfinalarabic = 0xfc6d;\n  t.bekatakana = 0x30d9;\n  t.benarmenian = 0x0562;\n  t.bet = 0x05d1;\n  t.beta = 0x03b2;\n  t.betasymbolgreek = 0x03d0;\n  t.betdagesh = 0xfb31;\n  t.betdageshhebrew = 0xfb31;\n  t.bethebrew = 0x05d1;\n  t.betrafehebrew = 0xfb4c;\n  t.bhabengali = 0x09ad;\n  t.bhadeva = 0x092d;\n  t.bhagujarati = 0x0aad;\n  t.bhagurmukhi = 0x0a2d;\n  t.bhook = 0x0253;\n  t.bihiragana = 0x3073;\n  t.bikatakana = 0x30d3;\n  t.bilabialclick = 0x0298;\n  t.bindigurmukhi = 0x0a02;\n  t.birusquare = 0x3331;\n  t.blackcircle = 0x25cf;\n  t.blackdiamond = 0x25c6;\n  t.blackdownpointingtriangle = 0x25bc;\n  t.blackleftpointingpointer = 0x25c4;\n  t.blackleftpointingtriangle = 0x25c0;\n  t.blacklenticularbracketleft = 0x3010;\n  t.blacklenticularbracketleftvertical = 0xfe3b;\n  t.blacklenticularbracketright = 0x3011;\n  t.blacklenticularbracketrightvertical = 0xfe3c;\n  t.blacklowerlefttriangle = 0x25e3;\n  t.blacklowerrighttriangle = 0x25e2;\n  t.blackrectangle = 0x25ac;\n  t.blackrightpointingpointer = 0x25ba;\n  t.blackrightpointingtriangle = 0x25b6;\n  t.blacksmallsquare = 0x25aa;\n  t.blacksmilingface = 0x263b;\n  t.blacksquare = 0x25a0;\n  t.blackstar = 0x2605;\n  t.blackupperlefttriangle = 0x25e4;\n  t.blackupperrighttriangle = 0x25e5;\n  t.blackuppointingsmalltriangle = 0x25b4;\n  t.blackuppointingtriangle = 0x25b2;\n  t.blank = 0x2423;\n  t.blinebelow = 0x1e07;\n  t.block = 0x2588;\n  t.bmonospace = 0xff42;\n  t.bobaimaithai = 0x0e1a;\n  t.bohiragana = 0x307c;\n  t.bokatakana = 0x30dc;\n  t.bparen = 0x249d;\n  t.bqsquare = 0x33c3;\n  t.braceex = 0xf8f4;\n  t.braceleft = 0x007b;\n  t.braceleftbt = 0xf8f3;\n  t.braceleftmid = 0xf8f2;\n  t.braceleftmonospace = 0xff5b;\n  t.braceleftsmall = 0xfe5b;\n  t.bracelefttp = 0xf8f1;\n  t.braceleftvertical = 0xfe37;\n  t.braceright = 0x007d;\n  t.bracerightbt = 0xf8fe;\n  t.bracerightmid = 0xf8fd;\n  t.bracerightmonospace = 0xff5d;\n  t.bracerightsmall = 0xfe5c;\n  t.bracerighttp = 0xf8fc;\n  t.bracerightvertical = 0xfe38;\n  t.bracketleft = 0x005b;\n  t.bracketleftbt = 0xf8f0;\n  t.bracketleftex = 0xf8ef;\n  t.bracketleftmonospace = 0xff3b;\n  t.bracketlefttp = 0xf8ee;\n  t.bracketright = 0x005d;\n  t.bracketrightbt = 0xf8fb;\n  t.bracketrightex = 0xf8fa;\n  t.bracketrightmonospace = 0xff3d;\n  t.bracketrighttp = 0xf8f9;\n  t.breve = 0x02d8;\n  t.brevebelowcmb = 0x032e;\n  t.brevecmb = 0x0306;\n  t.breveinvertedbelowcmb = 0x032f;\n  t.breveinvertedcmb = 0x0311;\n  t.breveinverteddoublecmb = 0x0361;\n  t.bridgebelowcmb = 0x032a;\n  t.bridgeinvertedbelowcmb = 0x033a;\n  t.brokenbar = 0x00a6;\n  t.bstroke = 0x0180;\n  t.bsuperior = 0xf6ea;\n  t.btopbar = 0x0183;\n  t.buhiragana = 0x3076;\n  t.bukatakana = 0x30d6;\n  t.bullet = 0x2022;\n  t.bulletinverse = 0x25d8;\n  t.bulletoperator = 0x2219;\n  t.bullseye = 0x25ce;\n  t.c = 0x0063;\n  t.caarmenian = 0x056e;\n  t.cabengali = 0x099a;\n  t.cacute = 0x0107;\n  t.cadeva = 0x091a;\n  t.cagujarati = 0x0a9a;\n  t.cagurmukhi = 0x0a1a;\n  t.calsquare = 0x3388;\n  t.candrabindubengali = 0x0981;\n  t.candrabinducmb = 0x0310;\n  t.candrabindudeva = 0x0901;\n  t.candrabindugujarati = 0x0a81;\n  t.capslock = 0x21ea;\n  t.careof = 0x2105;\n  t.caron = 0x02c7;\n  t.caronbelowcmb = 0x032c;\n  t.caroncmb = 0x030c;\n  t.carriagereturn = 0x21b5;\n  t.cbopomofo = 0x3118;\n  t.ccaron = 0x010d;\n  t.ccedilla = 0x00e7;\n  t.ccedillaacute = 0x1e09;\n  t.ccircle = 0x24d2;\n  t.ccircumflex = 0x0109;\n  t.ccurl = 0x0255;\n  t.cdot = 0x010b;\n  t.cdotaccent = 0x010b;\n  t.cdsquare = 0x33c5;\n  t.cedilla = 0x00b8;\n  t.cedillacmb = 0x0327;\n  t.cent = 0x00a2;\n  t.centigrade = 0x2103;\n  t.centinferior = 0xf6df;\n  t.centmonospace = 0xffe0;\n  t.centoldstyle = 0xf7a2;\n  t.centsuperior = 0xf6e0;\n  t.chaarmenian = 0x0579;\n  t.chabengali = 0x099b;\n  t.chadeva = 0x091b;\n  t.chagujarati = 0x0a9b;\n  t.chagurmukhi = 0x0a1b;\n  t.chbopomofo = 0x3114;\n  t.cheabkhasiancyrillic = 0x04bd;\n  t.checkmark = 0x2713;\n  t.checyrillic = 0x0447;\n  t.chedescenderabkhasiancyrillic = 0x04bf;\n  t.chedescendercyrillic = 0x04b7;\n  t.chedieresiscyrillic = 0x04f5;\n  t.cheharmenian = 0x0573;\n  t.chekhakassiancyrillic = 0x04cc;\n  t.cheverticalstrokecyrillic = 0x04b9;\n  t.chi = 0x03c7;\n  t.chieuchacirclekorean = 0x3277;\n  t.chieuchaparenkorean = 0x3217;\n  t.chieuchcirclekorean = 0x3269;\n  t.chieuchkorean = 0x314a;\n  t.chieuchparenkorean = 0x3209;\n  t.chochangthai = 0x0e0a;\n  t.chochanthai = 0x0e08;\n  t.chochingthai = 0x0e09;\n  t.chochoethai = 0x0e0c;\n  t.chook = 0x0188;\n  t.cieucacirclekorean = 0x3276;\n  t.cieucaparenkorean = 0x3216;\n  t.cieuccirclekorean = 0x3268;\n  t.cieuckorean = 0x3148;\n  t.cieucparenkorean = 0x3208;\n  t.cieucuparenkorean = 0x321c;\n  t.circle = 0x25cb;\n  t.circlecopyrt = 0x00a9; // Glyph is missing from Adobe's original list.\n  t.circlemultiply = 0x2297;\n  t.circleot = 0x2299;\n  t.circleplus = 0x2295;\n  t.circlepostalmark = 0x3036;\n  t.circlewithlefthalfblack = 0x25d0;\n  t.circlewithrighthalfblack = 0x25d1;\n  t.circumflex = 0x02c6;\n  t.circumflexbelowcmb = 0x032d;\n  t.circumflexcmb = 0x0302;\n  t.clear = 0x2327;\n  t.clickalveolar = 0x01c2;\n  t.clickdental = 0x01c0;\n  t.clicklateral = 0x01c1;\n  t.clickretroflex = 0x01c3;\n  t.club = 0x2663;\n  t.clubsuitblack = 0x2663;\n  t.clubsuitwhite = 0x2667;\n  t.cmcubedsquare = 0x33a4;\n  t.cmonospace = 0xff43;\n  t.cmsquaredsquare = 0x33a0;\n  t.coarmenian = 0x0581;\n  t.colon = 0x003a;\n  t.colonmonetary = 0x20a1;\n  t.colonmonospace = 0xff1a;\n  t.colonsign = 0x20a1;\n  t.colonsmall = 0xfe55;\n  t.colontriangularhalfmod = 0x02d1;\n  t.colontriangularmod = 0x02d0;\n  t.comma = 0x002c;\n  t.commaabovecmb = 0x0313;\n  t.commaaboverightcmb = 0x0315;\n  t.commaaccent = 0xf6c3;\n  t.commaarabic = 0x060c;\n  t.commaarmenian = 0x055d;\n  t.commainferior = 0xf6e1;\n  t.commamonospace = 0xff0c;\n  t.commareversedabovecmb = 0x0314;\n  t.commareversedmod = 0x02bd;\n  t.commasmall = 0xfe50;\n  t.commasuperior = 0xf6e2;\n  t.commaturnedabovecmb = 0x0312;\n  t.commaturnedmod = 0x02bb;\n  t.compass = 0x263c;\n  t.congruent = 0x2245;\n  t.contourintegral = 0x222e;\n  t.control = 0x2303;\n  t.controlACK = 0x0006;\n  t.controlBEL = 0x0007;\n  t.controlBS = 0x0008;\n  t.controlCAN = 0x0018;\n  t.controlCR = 0x000d;\n  t.controlDC1 = 0x0011;\n  t.controlDC2 = 0x0012;\n  t.controlDC3 = 0x0013;\n  t.controlDC4 = 0x0014;\n  t.controlDEL = 0x007f;\n  t.controlDLE = 0x0010;\n  t.controlEM = 0x0019;\n  t.controlENQ = 0x0005;\n  t.controlEOT = 0x0004;\n  t.controlESC = 0x001b;\n  t.controlETB = 0x0017;\n  t.controlETX = 0x0003;\n  t.controlFF = 0x000c;\n  t.controlFS = 0x001c;\n  t.controlGS = 0x001d;\n  t.controlHT = 0x0009;\n  t.controlLF = 0x000a;\n  t.controlNAK = 0x0015;\n  t.controlNULL = 0x0000; // Glyph is missing from Adobe's original list.\n  t.controlRS = 0x001e;\n  t.controlSI = 0x000f;\n  t.controlSO = 0x000e;\n  t.controlSOT = 0x0002;\n  t.controlSTX = 0x0001;\n  t.controlSUB = 0x001a;\n  t.controlSYN = 0x0016;\n  t.controlUS = 0x001f;\n  t.controlVT = 0x000b;\n  t.copyright = 0x00a9;\n  t.copyrightsans = 0xf8e9;\n  t.copyrightserif = 0xf6d9;\n  t.cornerbracketleft = 0x300c;\n  t.cornerbracketlefthalfwidth = 0xff62;\n  t.cornerbracketleftvertical = 0xfe41;\n  t.cornerbracketright = 0x300d;\n  t.cornerbracketrighthalfwidth = 0xff63;\n  t.cornerbracketrightvertical = 0xfe42;\n  t.corporationsquare = 0x337f;\n  t.cosquare = 0x33c7;\n  t.coverkgsquare = 0x33c6;\n  t.cparen = 0x249e;\n  t.cruzeiro = 0x20a2;\n  t.cstretched = 0x0297;\n  t.curlyand = 0x22cf;\n  t.curlyor = 0x22ce;\n  t.currency = 0x00a4;\n  t.cyrBreve = 0xf6d1;\n  t.cyrFlex = 0xf6d2;\n  t.cyrbreve = 0xf6d4;\n  t.cyrflex = 0xf6d5;\n  t.d = 0x0064;\n  t.daarmenian = 0x0564;\n  t.dabengali = 0x09a6;\n  t.dadarabic = 0x0636;\n  t.dadeva = 0x0926;\n  t.dadfinalarabic = 0xfebe;\n  t.dadinitialarabic = 0xfebf;\n  t.dadmedialarabic = 0xfec0;\n  t.dagesh = 0x05bc;\n  t.dageshhebrew = 0x05bc;\n  t.dagger = 0x2020;\n  t.daggerdbl = 0x2021;\n  t.dagujarati = 0x0aa6;\n  t.dagurmukhi = 0x0a26;\n  t.dahiragana = 0x3060;\n  t.dakatakana = 0x30c0;\n  t.dalarabic = 0x062f;\n  t.dalet = 0x05d3;\n  t.daletdagesh = 0xfb33;\n  t.daletdageshhebrew = 0xfb33;\n  t.dalethebrew = 0x05d3;\n  t.dalfinalarabic = 0xfeaa;\n  t.dammaarabic = 0x064f;\n  t.dammalowarabic = 0x064f;\n  t.dammatanaltonearabic = 0x064c;\n  t.dammatanarabic = 0x064c;\n  t.danda = 0x0964;\n  t.dargahebrew = 0x05a7;\n  t.dargalefthebrew = 0x05a7;\n  t.dasiapneumatacyrilliccmb = 0x0485;\n  t.dblGrave = 0xf6d3;\n  t.dblanglebracketleft = 0x300a;\n  t.dblanglebracketleftvertical = 0xfe3d;\n  t.dblanglebracketright = 0x300b;\n  t.dblanglebracketrightvertical = 0xfe3e;\n  t.dblarchinvertedbelowcmb = 0x032b;\n  t.dblarrowleft = 0x21d4;\n  t.dblarrowright = 0x21d2;\n  t.dbldanda = 0x0965;\n  t.dblgrave = 0xf6d6;\n  t.dblgravecmb = 0x030f;\n  t.dblintegral = 0x222c;\n  t.dbllowline = 0x2017;\n  t.dbllowlinecmb = 0x0333;\n  t.dbloverlinecmb = 0x033f;\n  t.dblprimemod = 0x02ba;\n  t.dblverticalbar = 0x2016;\n  t.dblverticallineabovecmb = 0x030e;\n  t.dbopomofo = 0x3109;\n  t.dbsquare = 0x33c8;\n  t.dcaron = 0x010f;\n  t.dcedilla = 0x1e11;\n  t.dcircle = 0x24d3;\n  t.dcircumflexbelow = 0x1e13;\n  t.dcroat = 0x0111;\n  t.ddabengali = 0x09a1;\n  t.ddadeva = 0x0921;\n  t.ddagujarati = 0x0aa1;\n  t.ddagurmukhi = 0x0a21;\n  t.ddalarabic = 0x0688;\n  t.ddalfinalarabic = 0xfb89;\n  t.dddhadeva = 0x095c;\n  t.ddhabengali = 0x09a2;\n  t.ddhadeva = 0x0922;\n  t.ddhagujarati = 0x0aa2;\n  t.ddhagurmukhi = 0x0a22;\n  t.ddotaccent = 0x1e0b;\n  t.ddotbelow = 0x1e0d;\n  t.decimalseparatorarabic = 0x066b;\n  t.decimalseparatorpersian = 0x066b;\n  t.decyrillic = 0x0434;\n  t.degree = 0x00b0;\n  t.dehihebrew = 0x05ad;\n  t.dehiragana = 0x3067;\n  t.deicoptic = 0x03ef;\n  t.dekatakana = 0x30c7;\n  t.deleteleft = 0x232b;\n  t.deleteright = 0x2326;\n  t.delta = 0x03b4;\n  t.deltaturned = 0x018d;\n  t.denominatorminusonenumeratorbengali = 0x09f8;\n  t.dezh = 0x02a4;\n  t.dhabengali = 0x09a7;\n  t.dhadeva = 0x0927;\n  t.dhagujarati = 0x0aa7;\n  t.dhagurmukhi = 0x0a27;\n  t.dhook = 0x0257;\n  t.dialytikatonos = 0x0385;\n  t.dialytikatonoscmb = 0x0344;\n  t.diamond = 0x2666;\n  t.diamondsuitwhite = 0x2662;\n  t.dieresis = 0x00a8;\n  t.dieresisacute = 0xf6d7;\n  t.dieresisbelowcmb = 0x0324;\n  t.dieresiscmb = 0x0308;\n  t.dieresisgrave = 0xf6d8;\n  t.dieresistonos = 0x0385;\n  t.dihiragana = 0x3062;\n  t.dikatakana = 0x30c2;\n  t.dittomark = 0x3003;\n  t.divide = 0x00f7;\n  t.divides = 0x2223;\n  t.divisionslash = 0x2215;\n  t.djecyrillic = 0x0452;\n  t.dkshade = 0x2593;\n  t.dlinebelow = 0x1e0f;\n  t.dlsquare = 0x3397;\n  t.dmacron = 0x0111;\n  t.dmonospace = 0xff44;\n  t.dnblock = 0x2584;\n  t.dochadathai = 0x0e0e;\n  t.dodekthai = 0x0e14;\n  t.dohiragana = 0x3069;\n  t.dokatakana = 0x30c9;\n  t.dollar = 0x0024;\n  t.dollarinferior = 0xf6e3;\n  t.dollarmonospace = 0xff04;\n  t.dollaroldstyle = 0xf724;\n  t.dollarsmall = 0xfe69;\n  t.dollarsuperior = 0xf6e4;\n  t.dong = 0x20ab;\n  t.dorusquare = 0x3326;\n  t.dotaccent = 0x02d9;\n  t.dotaccentcmb = 0x0307;\n  t.dotbelowcmb = 0x0323;\n  t.dotbelowcomb = 0x0323;\n  t.dotkatakana = 0x30fb;\n  t.dotlessi = 0x0131;\n  t.dotlessj = 0xf6be;\n  t.dotlessjstrokehook = 0x0284;\n  t.dotmath = 0x22c5;\n  t.dottedcircle = 0x25cc;\n  t.doubleyodpatah = 0xfb1f;\n  t.doubleyodpatahhebrew = 0xfb1f;\n  t.downtackbelowcmb = 0x031e;\n  t.downtackmod = 0x02d5;\n  t.dparen = 0x249f;\n  t.dsuperior = 0xf6eb;\n  t.dtail = 0x0256;\n  t.dtopbar = 0x018c;\n  t.duhiragana = 0x3065;\n  t.dukatakana = 0x30c5;\n  t.dz = 0x01f3;\n  t.dzaltone = 0x02a3;\n  t.dzcaron = 0x01c6;\n  t.dzcurl = 0x02a5;\n  t.dzeabkhasiancyrillic = 0x04e1;\n  t.dzecyrillic = 0x0455;\n  t.dzhecyrillic = 0x045f;\n  t.e = 0x0065;\n  t.eacute = 0x00e9;\n  t.earth = 0x2641;\n  t.ebengali = 0x098f;\n  t.ebopomofo = 0x311c;\n  t.ebreve = 0x0115;\n  t.ecandradeva = 0x090d;\n  t.ecandragujarati = 0x0a8d;\n  t.ecandravowelsigndeva = 0x0945;\n  t.ecandravowelsigngujarati = 0x0ac5;\n  t.ecaron = 0x011b;\n  t.ecedillabreve = 0x1e1d;\n  t.echarmenian = 0x0565;\n  t.echyiwnarmenian = 0x0587;\n  t.ecircle = 0x24d4;\n  t.ecircumflex = 0x00ea;\n  t.ecircumflexacute = 0x1ebf;\n  t.ecircumflexbelow = 0x1e19;\n  t.ecircumflexdotbelow = 0x1ec7;\n  t.ecircumflexgrave = 0x1ec1;\n  t.ecircumflexhookabove = 0x1ec3;\n  t.ecircumflextilde = 0x1ec5;\n  t.ecyrillic = 0x0454;\n  t.edblgrave = 0x0205;\n  t.edeva = 0x090f;\n  t.edieresis = 0x00eb;\n  t.edot = 0x0117;\n  t.edotaccent = 0x0117;\n  t.edotbelow = 0x1eb9;\n  t.eegurmukhi = 0x0a0f;\n  t.eematragurmukhi = 0x0a47;\n  t.efcyrillic = 0x0444;\n  t.egrave = 0x00e8;\n  t.egujarati = 0x0a8f;\n  t.eharmenian = 0x0567;\n  t.ehbopomofo = 0x311d;\n  t.ehiragana = 0x3048;\n  t.ehookabove = 0x1ebb;\n  t.eibopomofo = 0x311f;\n  t.eight = 0x0038;\n  t.eightarabic = 0x0668;\n  t.eightbengali = 0x09ee;\n  t.eightcircle = 0x2467;\n  t.eightcircleinversesansserif = 0x2791;\n  t.eightdeva = 0x096e;\n  t.eighteencircle = 0x2471;\n  t.eighteenparen = 0x2485;\n  t.eighteenperiod = 0x2499;\n  t.eightgujarati = 0x0aee;\n  t.eightgurmukhi = 0x0a6e;\n  t.eighthackarabic = 0x0668;\n  t.eighthangzhou = 0x3028;\n  t.eighthnotebeamed = 0x266b;\n  t.eightideographicparen = 0x3227;\n  t.eightinferior = 0x2088;\n  t.eightmonospace = 0xff18;\n  t.eightoldstyle = 0xf738;\n  t.eightparen = 0x247b;\n  t.eightperiod = 0x248f;\n  t.eightpersian = 0x06f8;\n  t.eightroman = 0x2177;\n  t.eightsuperior = 0x2078;\n  t.eightthai = 0x0e58;\n  t.einvertedbreve = 0x0207;\n  t.eiotifiedcyrillic = 0x0465;\n  t.ekatakana = 0x30a8;\n  t.ekatakanahalfwidth = 0xff74;\n  t.ekonkargurmukhi = 0x0a74;\n  t.ekorean = 0x3154;\n  t.elcyrillic = 0x043b;\n  t.element = 0x2208;\n  t.elevencircle = 0x246a;\n  t.elevenparen = 0x247e;\n  t.elevenperiod = 0x2492;\n  t.elevenroman = 0x217a;\n  t.ellipsis = 0x2026;\n  t.ellipsisvertical = 0x22ee;\n  t.emacron = 0x0113;\n  t.emacronacute = 0x1e17;\n  t.emacrongrave = 0x1e15;\n  t.emcyrillic = 0x043c;\n  t.emdash = 0x2014;\n  t.emdashvertical = 0xfe31;\n  t.emonospace = 0xff45;\n  t.emphasismarkarmenian = 0x055b;\n  t.emptyset = 0x2205;\n  t.enbopomofo = 0x3123;\n  t.encyrillic = 0x043d;\n  t.endash = 0x2013;\n  t.endashvertical = 0xfe32;\n  t.endescendercyrillic = 0x04a3;\n  t.eng = 0x014b;\n  t.engbopomofo = 0x3125;\n  t.enghecyrillic = 0x04a5;\n  t.enhookcyrillic = 0x04c8;\n  t.enspace = 0x2002;\n  t.eogonek = 0x0119;\n  t.eokorean = 0x3153;\n  t.eopen = 0x025b;\n  t.eopenclosed = 0x029a;\n  t.eopenreversed = 0x025c;\n  t.eopenreversedclosed = 0x025e;\n  t.eopenreversedhook = 0x025d;\n  t.eparen = 0x24a0;\n  t.epsilon = 0x03b5;\n  t.epsilontonos = 0x03ad;\n  t.equal = 0x003d;\n  t.equalmonospace = 0xff1d;\n  t.equalsmall = 0xfe66;\n  t.equalsuperior = 0x207c;\n  t.equivalence = 0x2261;\n  t.erbopomofo = 0x3126;\n  t.ercyrillic = 0x0440;\n  t.ereversed = 0x0258;\n  t.ereversedcyrillic = 0x044d;\n  t.escyrillic = 0x0441;\n  t.esdescendercyrillic = 0x04ab;\n  t.esh = 0x0283;\n  t.eshcurl = 0x0286;\n  t.eshortdeva = 0x090e;\n  t.eshortvowelsigndeva = 0x0946;\n  t.eshreversedloop = 0x01aa;\n  t.eshsquatreversed = 0x0285;\n  t.esmallhiragana = 0x3047;\n  t.esmallkatakana = 0x30a7;\n  t.esmallkatakanahalfwidth = 0xff6a;\n  t.estimated = 0x212e;\n  t.esuperior = 0xf6ec;\n  t.eta = 0x03b7;\n  t.etarmenian = 0x0568;\n  t.etatonos = 0x03ae;\n  t.eth = 0x00f0;\n  t.etilde = 0x1ebd;\n  t.etildebelow = 0x1e1b;\n  t.etnahtafoukhhebrew = 0x0591;\n  t.etnahtafoukhlefthebrew = 0x0591;\n  t.etnahtahebrew = 0x0591;\n  t.etnahtalefthebrew = 0x0591;\n  t.eturned = 0x01dd;\n  t.eukorean = 0x3161;\n  t.euro = 0x20ac;\n  t.evowelsignbengali = 0x09c7;\n  t.evowelsigndeva = 0x0947;\n  t.evowelsigngujarati = 0x0ac7;\n  t.exclam = 0x0021;\n  t.exclamarmenian = 0x055c;\n  t.exclamdbl = 0x203c;\n  t.exclamdown = 0x00a1;\n  t.exclamdownsmall = 0xf7a1;\n  t.exclammonospace = 0xff01;\n  t.exclamsmall = 0xf721;\n  t.existential = 0x2203;\n  t.ezh = 0x0292;\n  t.ezhcaron = 0x01ef;\n  t.ezhcurl = 0x0293;\n  t.ezhreversed = 0x01b9;\n  t.ezhtail = 0x01ba;\n  t.f = 0x0066;\n  t.fadeva = 0x095e;\n  t.fagurmukhi = 0x0a5e;\n  t.fahrenheit = 0x2109;\n  t.fathaarabic = 0x064e;\n  t.fathalowarabic = 0x064e;\n  t.fathatanarabic = 0x064b;\n  t.fbopomofo = 0x3108;\n  t.fcircle = 0x24d5;\n  t.fdotaccent = 0x1e1f;\n  t.feharabic = 0x0641;\n  t.feharmenian = 0x0586;\n  t.fehfinalarabic = 0xfed2;\n  t.fehinitialarabic = 0xfed3;\n  t.fehmedialarabic = 0xfed4;\n  t.feicoptic = 0x03e5;\n  t.female = 0x2640;\n  t.ff = 0xfb00;\n  t.f_f = 0xfb00;\n  t.ffi = 0xfb03;\n  t.f_f_i = 0xfb03;\n  t.ffl = 0xfb04;\n  t.f_f_l = 0xfb04;\n  t.fi = 0xfb01;\n  t.f_i = 0xfb01;\n  t.fifteencircle = 0x246e;\n  t.fifteenparen = 0x2482;\n  t.fifteenperiod = 0x2496;\n  t.figuredash = 0x2012;\n  t.filledbox = 0x25a0;\n  t.filledrect = 0x25ac;\n  t.finalkaf = 0x05da;\n  t.finalkafdagesh = 0xfb3a;\n  t.finalkafdageshhebrew = 0xfb3a;\n  t.finalkafhebrew = 0x05da;\n  t.finalmem = 0x05dd;\n  t.finalmemhebrew = 0x05dd;\n  t.finalnun = 0x05df;\n  t.finalnunhebrew = 0x05df;\n  t.finalpe = 0x05e3;\n  t.finalpehebrew = 0x05e3;\n  t.finaltsadi = 0x05e5;\n  t.finaltsadihebrew = 0x05e5;\n  t.firsttonechinese = 0x02c9;\n  t.fisheye = 0x25c9;\n  t.fitacyrillic = 0x0473;\n  t.five = 0x0035;\n  t.fivearabic = 0x0665;\n  t.fivebengali = 0x09eb;\n  t.fivecircle = 0x2464;\n  t.fivecircleinversesansserif = 0x278e;\n  t.fivedeva = 0x096b;\n  t.fiveeighths = 0x215d;\n  t.fivegujarati = 0x0aeb;\n  t.fivegurmukhi = 0x0a6b;\n  t.fivehackarabic = 0x0665;\n  t.fivehangzhou = 0x3025;\n  t.fiveideographicparen = 0x3224;\n  t.fiveinferior = 0x2085;\n  t.fivemonospace = 0xff15;\n  t.fiveoldstyle = 0xf735;\n  t.fiveparen = 0x2478;\n  t.fiveperiod = 0x248c;\n  t.fivepersian = 0x06f5;\n  t.fiveroman = 0x2174;\n  t.fivesuperior = 0x2075;\n  t.fivethai = 0x0e55;\n  t.fl = 0xfb02;\n  t.f_l = 0xfb02;\n  t.florin = 0x0192;\n  t.fmonospace = 0xff46;\n  t.fmsquare = 0x3399;\n  t.fofanthai = 0x0e1f;\n  t.fofathai = 0x0e1d;\n  t.fongmanthai = 0x0e4f;\n  t.forall = 0x2200;\n  t.four = 0x0034;\n  t.fourarabic = 0x0664;\n  t.fourbengali = 0x09ea;\n  t.fourcircle = 0x2463;\n  t.fourcircleinversesansserif = 0x278d;\n  t.fourdeva = 0x096a;\n  t.fourgujarati = 0x0aea;\n  t.fourgurmukhi = 0x0a6a;\n  t.fourhackarabic = 0x0664;\n  t.fourhangzhou = 0x3024;\n  t.fourideographicparen = 0x3223;\n  t.fourinferior = 0x2084;\n  t.fourmonospace = 0xff14;\n  t.fournumeratorbengali = 0x09f7;\n  t.fouroldstyle = 0xf734;\n  t.fourparen = 0x2477;\n  t.fourperiod = 0x248b;\n  t.fourpersian = 0x06f4;\n  t.fourroman = 0x2173;\n  t.foursuperior = 0x2074;\n  t.fourteencircle = 0x246d;\n  t.fourteenparen = 0x2481;\n  t.fourteenperiod = 0x2495;\n  t.fourthai = 0x0e54;\n  t.fourthtonechinese = 0x02cb;\n  t.fparen = 0x24a1;\n  t.fraction = 0x2044;\n  t.franc = 0x20a3;\n  t.g = 0x0067;\n  t.gabengali = 0x0997;\n  t.gacute = 0x01f5;\n  t.gadeva = 0x0917;\n  t.gafarabic = 0x06af;\n  t.gaffinalarabic = 0xfb93;\n  t.gafinitialarabic = 0xfb94;\n  t.gafmedialarabic = 0xfb95;\n  t.gagujarati = 0x0a97;\n  t.gagurmukhi = 0x0a17;\n  t.gahiragana = 0x304c;\n  t.gakatakana = 0x30ac;\n  t.gamma = 0x03b3;\n  t.gammalatinsmall = 0x0263;\n  t.gammasuperior = 0x02e0;\n  t.gangiacoptic = 0x03eb;\n  t.gbopomofo = 0x310d;\n  t.gbreve = 0x011f;\n  t.gcaron = 0x01e7;\n  t.gcedilla = 0x0123;\n  t.gcircle = 0x24d6;\n  t.gcircumflex = 0x011d;\n  t.gcommaaccent = 0x0123;\n  t.gdot = 0x0121;\n  t.gdotaccent = 0x0121;\n  t.gecyrillic = 0x0433;\n  t.gehiragana = 0x3052;\n  t.gekatakana = 0x30b2;\n  t.geometricallyequal = 0x2251;\n  t.gereshaccenthebrew = 0x059c;\n  t.gereshhebrew = 0x05f3;\n  t.gereshmuqdamhebrew = 0x059d;\n  t.germandbls = 0x00df;\n  t.gershayimaccenthebrew = 0x059e;\n  t.gershayimhebrew = 0x05f4;\n  t.getamark = 0x3013;\n  t.ghabengali = 0x0998;\n  t.ghadarmenian = 0x0572;\n  t.ghadeva = 0x0918;\n  t.ghagujarati = 0x0a98;\n  t.ghagurmukhi = 0x0a18;\n  t.ghainarabic = 0x063a;\n  t.ghainfinalarabic = 0xfece;\n  t.ghaininitialarabic = 0xfecf;\n  t.ghainmedialarabic = 0xfed0;\n  t.ghemiddlehookcyrillic = 0x0495;\n  t.ghestrokecyrillic = 0x0493;\n  t.gheupturncyrillic = 0x0491;\n  t.ghhadeva = 0x095a;\n  t.ghhagurmukhi = 0x0a5a;\n  t.ghook = 0x0260;\n  t.ghzsquare = 0x3393;\n  t.gihiragana = 0x304e;\n  t.gikatakana = 0x30ae;\n  t.gimarmenian = 0x0563;\n  t.gimel = 0x05d2;\n  t.gimeldagesh = 0xfb32;\n  t.gimeldageshhebrew = 0xfb32;\n  t.gimelhebrew = 0x05d2;\n  t.gjecyrillic = 0x0453;\n  t.glottalinvertedstroke = 0x01be;\n  t.glottalstop = 0x0294;\n  t.glottalstopinverted = 0x0296;\n  t.glottalstopmod = 0x02c0;\n  t.glottalstopreversed = 0x0295;\n  t.glottalstopreversedmod = 0x02c1;\n  t.glottalstopreversedsuperior = 0x02e4;\n  t.glottalstopstroke = 0x02a1;\n  t.glottalstopstrokereversed = 0x02a2;\n  t.gmacron = 0x1e21;\n  t.gmonospace = 0xff47;\n  t.gohiragana = 0x3054;\n  t.gokatakana = 0x30b4;\n  t.gparen = 0x24a2;\n  t.gpasquare = 0x33ac;\n  t.gradient = 0x2207;\n  t.grave = 0x0060;\n  t.gravebelowcmb = 0x0316;\n  t.gravecmb = 0x0300;\n  t.gravecomb = 0x0300;\n  t.gravedeva = 0x0953;\n  t.gravelowmod = 0x02ce;\n  t.gravemonospace = 0xff40;\n  t.gravetonecmb = 0x0340;\n  t.greater = 0x003e;\n  t.greaterequal = 0x2265;\n  t.greaterequalorless = 0x22db;\n  t.greatermonospace = 0xff1e;\n  t.greaterorequivalent = 0x2273;\n  t.greaterorless = 0x2277;\n  t.greateroverequal = 0x2267;\n  t.greatersmall = 0xfe65;\n  t.gscript = 0x0261;\n  t.gstroke = 0x01e5;\n  t.guhiragana = 0x3050;\n  t.guillemotleft = 0x00ab;\n  t.guillemotright = 0x00bb;\n  t.guilsinglleft = 0x2039;\n  t.guilsinglright = 0x203a;\n  t.gukatakana = 0x30b0;\n  t.guramusquare = 0x3318;\n  t.gysquare = 0x33c9;\n  t.h = 0x0068;\n  t.haabkhasiancyrillic = 0x04a9;\n  t.haaltonearabic = 0x06c1;\n  t.habengali = 0x09b9;\n  t.hadescendercyrillic = 0x04b3;\n  t.hadeva = 0x0939;\n  t.hagujarati = 0x0ab9;\n  t.hagurmukhi = 0x0a39;\n  t.haharabic = 0x062d;\n  t.hahfinalarabic = 0xfea2;\n  t.hahinitialarabic = 0xfea3;\n  t.hahiragana = 0x306f;\n  t.hahmedialarabic = 0xfea4;\n  t.haitusquare = 0x332a;\n  t.hakatakana = 0x30cf;\n  t.hakatakanahalfwidth = 0xff8a;\n  t.halantgurmukhi = 0x0a4d;\n  t.hamzaarabic = 0x0621;\n  t.hamzalowarabic = 0x0621;\n  t.hangulfiller = 0x3164;\n  t.hardsigncyrillic = 0x044a;\n  t.harpoonleftbarbup = 0x21bc;\n  t.harpoonrightbarbup = 0x21c0;\n  t.hasquare = 0x33ca;\n  t.hatafpatah = 0x05b2;\n  t.hatafpatah16 = 0x05b2;\n  t.hatafpatah23 = 0x05b2;\n  t.hatafpatah2f = 0x05b2;\n  t.hatafpatahhebrew = 0x05b2;\n  t.hatafpatahnarrowhebrew = 0x05b2;\n  t.hatafpatahquarterhebrew = 0x05b2;\n  t.hatafpatahwidehebrew = 0x05b2;\n  t.hatafqamats = 0x05b3;\n  t.hatafqamats1b = 0x05b3;\n  t.hatafqamats28 = 0x05b3;\n  t.hatafqamats34 = 0x05b3;\n  t.hatafqamatshebrew = 0x05b3;\n  t.hatafqamatsnarrowhebrew = 0x05b3;\n  t.hatafqamatsquarterhebrew = 0x05b3;\n  t.hatafqamatswidehebrew = 0x05b3;\n  t.hatafsegol = 0x05b1;\n  t.hatafsegol17 = 0x05b1;\n  t.hatafsegol24 = 0x05b1;\n  t.hatafsegol30 = 0x05b1;\n  t.hatafsegolhebrew = 0x05b1;\n  t.hatafsegolnarrowhebrew = 0x05b1;\n  t.hatafsegolquarterhebrew = 0x05b1;\n  t.hatafsegolwidehebrew = 0x05b1;\n  t.hbar = 0x0127;\n  t.hbopomofo = 0x310f;\n  t.hbrevebelow = 0x1e2b;\n  t.hcedilla = 0x1e29;\n  t.hcircle = 0x24d7;\n  t.hcircumflex = 0x0125;\n  t.hdieresis = 0x1e27;\n  t.hdotaccent = 0x1e23;\n  t.hdotbelow = 0x1e25;\n  t.he = 0x05d4;\n  t.heart = 0x2665;\n  t.heartsuitblack = 0x2665;\n  t.heartsuitwhite = 0x2661;\n  t.hedagesh = 0xfb34;\n  t.hedageshhebrew = 0xfb34;\n  t.hehaltonearabic = 0x06c1;\n  t.heharabic = 0x0647;\n  t.hehebrew = 0x05d4;\n  t.hehfinalaltonearabic = 0xfba7;\n  t.hehfinalalttwoarabic = 0xfeea;\n  t.hehfinalarabic = 0xfeea;\n  t.hehhamzaabovefinalarabic = 0xfba5;\n  t.hehhamzaaboveisolatedarabic = 0xfba4;\n  t.hehinitialaltonearabic = 0xfba8;\n  t.hehinitialarabic = 0xfeeb;\n  t.hehiragana = 0x3078;\n  t.hehmedialaltonearabic = 0xfba9;\n  t.hehmedialarabic = 0xfeec;\n  t.heiseierasquare = 0x337b;\n  t.hekatakana = 0x30d8;\n  t.hekatakanahalfwidth = 0xff8d;\n  t.hekutaarusquare = 0x3336;\n  t.henghook = 0x0267;\n  t.herutusquare = 0x3339;\n  t.het = 0x05d7;\n  t.hethebrew = 0x05d7;\n  t.hhook = 0x0266;\n  t.hhooksuperior = 0x02b1;\n  t.hieuhacirclekorean = 0x327b;\n  t.hieuhaparenkorean = 0x321b;\n  t.hieuhcirclekorean = 0x326d;\n  t.hieuhkorean = 0x314e;\n  t.hieuhparenkorean = 0x320d;\n  t.hihiragana = 0x3072;\n  t.hikatakana = 0x30d2;\n  t.hikatakanahalfwidth = 0xff8b;\n  t.hiriq = 0x05b4;\n  t.hiriq14 = 0x05b4;\n  t.hiriq21 = 0x05b4;\n  t.hiriq2d = 0x05b4;\n  t.hiriqhebrew = 0x05b4;\n  t.hiriqnarrowhebrew = 0x05b4;\n  t.hiriqquarterhebrew = 0x05b4;\n  t.hiriqwidehebrew = 0x05b4;\n  t.hlinebelow = 0x1e96;\n  t.hmonospace = 0xff48;\n  t.hoarmenian = 0x0570;\n  t.hohipthai = 0x0e2b;\n  t.hohiragana = 0x307b;\n  t.hokatakana = 0x30db;\n  t.hokatakanahalfwidth = 0xff8e;\n  t.holam = 0x05b9;\n  t.holam19 = 0x05b9;\n  t.holam26 = 0x05b9;\n  t.holam32 = 0x05b9;\n  t.holamhebrew = 0x05b9;\n  t.holamnarrowhebrew = 0x05b9;\n  t.holamquarterhebrew = 0x05b9;\n  t.holamwidehebrew = 0x05b9;\n  t.honokhukthai = 0x0e2e;\n  t.hookabovecomb = 0x0309;\n  t.hookcmb = 0x0309;\n  t.hookpalatalizedbelowcmb = 0x0321;\n  t.hookretroflexbelowcmb = 0x0322;\n  t.hoonsquare = 0x3342;\n  t.horicoptic = 0x03e9;\n  t.horizontalbar = 0x2015;\n  t.horncmb = 0x031b;\n  t.hotsprings = 0x2668;\n  t.house = 0x2302;\n  t.hparen = 0x24a3;\n  t.hsuperior = 0x02b0;\n  t.hturned = 0x0265;\n  t.huhiragana = 0x3075;\n  t.huiitosquare = 0x3333;\n  t.hukatakana = 0x30d5;\n  t.hukatakanahalfwidth = 0xff8c;\n  t.hungarumlaut = 0x02dd;\n  t.hungarumlautcmb = 0x030b;\n  t.hv = 0x0195;\n  t.hyphen = 0x002d;\n  t.hypheninferior = 0xf6e5;\n  t.hyphenmonospace = 0xff0d;\n  t.hyphensmall = 0xfe63;\n  t.hyphensuperior = 0xf6e6;\n  t.hyphentwo = 0x2010;\n  t.i = 0x0069;\n  t.iacute = 0x00ed;\n  t.iacyrillic = 0x044f;\n  t.ibengali = 0x0987;\n  t.ibopomofo = 0x3127;\n  t.ibreve = 0x012d;\n  t.icaron = 0x01d0;\n  t.icircle = 0x24d8;\n  t.icircumflex = 0x00ee;\n  t.icyrillic = 0x0456;\n  t.idblgrave = 0x0209;\n  t.ideographearthcircle = 0x328f;\n  t.ideographfirecircle = 0x328b;\n  t.ideographicallianceparen = 0x323f;\n  t.ideographiccallparen = 0x323a;\n  t.ideographiccentrecircle = 0x32a5;\n  t.ideographicclose = 0x3006;\n  t.ideographiccomma = 0x3001;\n  t.ideographiccommaleft = 0xff64;\n  t.ideographiccongratulationparen = 0x3237;\n  t.ideographiccorrectcircle = 0x32a3;\n  t.ideographicearthparen = 0x322f;\n  t.ideographicenterpriseparen = 0x323d;\n  t.ideographicexcellentcircle = 0x329d;\n  t.ideographicfestivalparen = 0x3240;\n  t.ideographicfinancialcircle = 0x3296;\n  t.ideographicfinancialparen = 0x3236;\n  t.ideographicfireparen = 0x322b;\n  t.ideographichaveparen = 0x3232;\n  t.ideographichighcircle = 0x32a4;\n  t.ideographiciterationmark = 0x3005;\n  t.ideographiclaborcircle = 0x3298;\n  t.ideographiclaborparen = 0x3238;\n  t.ideographicleftcircle = 0x32a7;\n  t.ideographiclowcircle = 0x32a6;\n  t.ideographicmedicinecircle = 0x32a9;\n  t.ideographicmetalparen = 0x322e;\n  t.ideographicmoonparen = 0x322a;\n  t.ideographicnameparen = 0x3234;\n  t.ideographicperiod = 0x3002;\n  t.ideographicprintcircle = 0x329e;\n  t.ideographicreachparen = 0x3243;\n  t.ideographicrepresentparen = 0x3239;\n  t.ideographicresourceparen = 0x323e;\n  t.ideographicrightcircle = 0x32a8;\n  t.ideographicsecretcircle = 0x3299;\n  t.ideographicselfparen = 0x3242;\n  t.ideographicsocietyparen = 0x3233;\n  t.ideographicspace = 0x3000;\n  t.ideographicspecialparen = 0x3235;\n  t.ideographicstockparen = 0x3231;\n  t.ideographicstudyparen = 0x323b;\n  t.ideographicsunparen = 0x3230;\n  t.ideographicsuperviseparen = 0x323c;\n  t.ideographicwaterparen = 0x322c;\n  t.ideographicwoodparen = 0x322d;\n  t.ideographiczero = 0x3007;\n  t.ideographmetalcircle = 0x328e;\n  t.ideographmooncircle = 0x328a;\n  t.ideographnamecircle = 0x3294;\n  t.ideographsuncircle = 0x3290;\n  t.ideographwatercircle = 0x328c;\n  t.ideographwoodcircle = 0x328d;\n  t.ideva = 0x0907;\n  t.idieresis = 0x00ef;\n  t.idieresisacute = 0x1e2f;\n  t.idieresiscyrillic = 0x04e5;\n  t.idotbelow = 0x1ecb;\n  t.iebrevecyrillic = 0x04d7;\n  t.iecyrillic = 0x0435;\n  t.ieungacirclekorean = 0x3275;\n  t.ieungaparenkorean = 0x3215;\n  t.ieungcirclekorean = 0x3267;\n  t.ieungkorean = 0x3147;\n  t.ieungparenkorean = 0x3207;\n  t.igrave = 0x00ec;\n  t.igujarati = 0x0a87;\n  t.igurmukhi = 0x0a07;\n  t.ihiragana = 0x3044;\n  t.ihookabove = 0x1ec9;\n  t.iibengali = 0x0988;\n  t.iicyrillic = 0x0438;\n  t.iideva = 0x0908;\n  t.iigujarati = 0x0a88;\n  t.iigurmukhi = 0x0a08;\n  t.iimatragurmukhi = 0x0a40;\n  t.iinvertedbreve = 0x020b;\n  t.iishortcyrillic = 0x0439;\n  t.iivowelsignbengali = 0x09c0;\n  t.iivowelsigndeva = 0x0940;\n  t.iivowelsigngujarati = 0x0ac0;\n  t.ij = 0x0133;\n  t.ikatakana = 0x30a4;\n  t.ikatakanahalfwidth = 0xff72;\n  t.ikorean = 0x3163;\n  t.ilde = 0x02dc;\n  t.iluyhebrew = 0x05ac;\n  t.imacron = 0x012b;\n  t.imacroncyrillic = 0x04e3;\n  t.imageorapproximatelyequal = 0x2253;\n  t.imatragurmukhi = 0x0a3f;\n  t.imonospace = 0xff49;\n  t.increment = 0x2206;\n  t.infinity = 0x221e;\n  t.iniarmenian = 0x056b;\n  t.integral = 0x222b;\n  t.integralbottom = 0x2321;\n  t.integralbt = 0x2321;\n  t.integralex = 0xf8f5;\n  t.integraltop = 0x2320;\n  t.integraltp = 0x2320;\n  t.intersection = 0x2229;\n  t.intisquare = 0x3305;\n  t.invbullet = 0x25d8;\n  t.invcircle = 0x25d9;\n  t.invsmileface = 0x263b;\n  t.iocyrillic = 0x0451;\n  t.iogonek = 0x012f;\n  t.iota = 0x03b9;\n  t.iotadieresis = 0x03ca;\n  t.iotadieresistonos = 0x0390;\n  t.iotalatin = 0x0269;\n  t.iotatonos = 0x03af;\n  t.iparen = 0x24a4;\n  t.irigurmukhi = 0x0a72;\n  t.ismallhiragana = 0x3043;\n  t.ismallkatakana = 0x30a3;\n  t.ismallkatakanahalfwidth = 0xff68;\n  t.issharbengali = 0x09fa;\n  t.istroke = 0x0268;\n  t.isuperior = 0xf6ed;\n  t.iterationhiragana = 0x309d;\n  t.iterationkatakana = 0x30fd;\n  t.itilde = 0x0129;\n  t.itildebelow = 0x1e2d;\n  t.iubopomofo = 0x3129;\n  t.iucyrillic = 0x044e;\n  t.ivowelsignbengali = 0x09bf;\n  t.ivowelsigndeva = 0x093f;\n  t.ivowelsigngujarati = 0x0abf;\n  t.izhitsacyrillic = 0x0475;\n  t.izhitsadblgravecyrillic = 0x0477;\n  t.j = 0x006a;\n  t.jaarmenian = 0x0571;\n  t.jabengali = 0x099c;\n  t.jadeva = 0x091c;\n  t.jagujarati = 0x0a9c;\n  t.jagurmukhi = 0x0a1c;\n  t.jbopomofo = 0x3110;\n  t.jcaron = 0x01f0;\n  t.jcircle = 0x24d9;\n  t.jcircumflex = 0x0135;\n  t.jcrossedtail = 0x029d;\n  t.jdotlessstroke = 0x025f;\n  t.jecyrillic = 0x0458;\n  t.jeemarabic = 0x062c;\n  t.jeemfinalarabic = 0xfe9e;\n  t.jeeminitialarabic = 0xfe9f;\n  t.jeemmedialarabic = 0xfea0;\n  t.jeharabic = 0x0698;\n  t.jehfinalarabic = 0xfb8b;\n  t.jhabengali = 0x099d;\n  t.jhadeva = 0x091d;\n  t.jhagujarati = 0x0a9d;\n  t.jhagurmukhi = 0x0a1d;\n  t.jheharmenian = 0x057b;\n  t.jis = 0x3004;\n  t.jmonospace = 0xff4a;\n  t.jparen = 0x24a5;\n  t.jsuperior = 0x02b2;\n  t.k = 0x006b;\n  t.kabashkircyrillic = 0x04a1;\n  t.kabengali = 0x0995;\n  t.kacute = 0x1e31;\n  t.kacyrillic = 0x043a;\n  t.kadescendercyrillic = 0x049b;\n  t.kadeva = 0x0915;\n  t.kaf = 0x05db;\n  t.kafarabic = 0x0643;\n  t.kafdagesh = 0xfb3b;\n  t.kafdageshhebrew = 0xfb3b;\n  t.kaffinalarabic = 0xfeda;\n  t.kafhebrew = 0x05db;\n  t.kafinitialarabic = 0xfedb;\n  t.kafmedialarabic = 0xfedc;\n  t.kafrafehebrew = 0xfb4d;\n  t.kagujarati = 0x0a95;\n  t.kagurmukhi = 0x0a15;\n  t.kahiragana = 0x304b;\n  t.kahookcyrillic = 0x04c4;\n  t.kakatakana = 0x30ab;\n  t.kakatakanahalfwidth = 0xff76;\n  t.kappa = 0x03ba;\n  t.kappasymbolgreek = 0x03f0;\n  t.kapyeounmieumkorean = 0x3171;\n  t.kapyeounphieuphkorean = 0x3184;\n  t.kapyeounpieupkorean = 0x3178;\n  t.kapyeounssangpieupkorean = 0x3179;\n  t.karoriisquare = 0x330d;\n  t.kashidaautoarabic = 0x0640;\n  t.kashidaautonosidebearingarabic = 0x0640;\n  t.kasmallkatakana = 0x30f5;\n  t.kasquare = 0x3384;\n  t.kasraarabic = 0x0650;\n  t.kasratanarabic = 0x064d;\n  t.kastrokecyrillic = 0x049f;\n  t.katahiraprolongmarkhalfwidth = 0xff70;\n  t.kaverticalstrokecyrillic = 0x049d;\n  t.kbopomofo = 0x310e;\n  t.kcalsquare = 0x3389;\n  t.kcaron = 0x01e9;\n  t.kcedilla = 0x0137;\n  t.kcircle = 0x24da;\n  t.kcommaaccent = 0x0137;\n  t.kdotbelow = 0x1e33;\n  t.keharmenian = 0x0584;\n  t.kehiragana = 0x3051;\n  t.kekatakana = 0x30b1;\n  t.kekatakanahalfwidth = 0xff79;\n  t.kenarmenian = 0x056f;\n  t.kesmallkatakana = 0x30f6;\n  t.kgreenlandic = 0x0138;\n  t.khabengali = 0x0996;\n  t.khacyrillic = 0x0445;\n  t.khadeva = 0x0916;\n  t.khagujarati = 0x0a96;\n  t.khagurmukhi = 0x0a16;\n  t.khaharabic = 0x062e;\n  t.khahfinalarabic = 0xfea6;\n  t.khahinitialarabic = 0xfea7;\n  t.khahmedialarabic = 0xfea8;\n  t.kheicoptic = 0x03e7;\n  t.khhadeva = 0x0959;\n  t.khhagurmukhi = 0x0a59;\n  t.khieukhacirclekorean = 0x3278;\n  t.khieukhaparenkorean = 0x3218;\n  t.khieukhcirclekorean = 0x326a;\n  t.khieukhkorean = 0x314b;\n  t.khieukhparenkorean = 0x320a;\n  t.khokhaithai = 0x0e02;\n  t.khokhonthai = 0x0e05;\n  t.khokhuatthai = 0x0e03;\n  t.khokhwaithai = 0x0e04;\n  t.khomutthai = 0x0e5b;\n  t.khook = 0x0199;\n  t.khorakhangthai = 0x0e06;\n  t.khzsquare = 0x3391;\n  t.kihiragana = 0x304d;\n  t.kikatakana = 0x30ad;\n  t.kikatakanahalfwidth = 0xff77;\n  t.kiroguramusquare = 0x3315;\n  t.kiromeetorusquare = 0x3316;\n  t.kirosquare = 0x3314;\n  t.kiyeokacirclekorean = 0x326e;\n  t.kiyeokaparenkorean = 0x320e;\n  t.kiyeokcirclekorean = 0x3260;\n  t.kiyeokkorean = 0x3131;\n  t.kiyeokparenkorean = 0x3200;\n  t.kiyeoksioskorean = 0x3133;\n  t.kjecyrillic = 0x045c;\n  t.klinebelow = 0x1e35;\n  t.klsquare = 0x3398;\n  t.kmcubedsquare = 0x33a6;\n  t.kmonospace = 0xff4b;\n  t.kmsquaredsquare = 0x33a2;\n  t.kohiragana = 0x3053;\n  t.kohmsquare = 0x33c0;\n  t.kokaithai = 0x0e01;\n  t.kokatakana = 0x30b3;\n  t.kokatakanahalfwidth = 0xff7a;\n  t.kooposquare = 0x331e;\n  t.koppacyrillic = 0x0481;\n  t.koreanstandardsymbol = 0x327f;\n  t.koroniscmb = 0x0343;\n  t.kparen = 0x24a6;\n  t.kpasquare = 0x33aa;\n  t.ksicyrillic = 0x046f;\n  t.ktsquare = 0x33cf;\n  t.kturned = 0x029e;\n  t.kuhiragana = 0x304f;\n  t.kukatakana = 0x30af;\n  t.kukatakanahalfwidth = 0xff78;\n  t.kvsquare = 0x33b8;\n  t.kwsquare = 0x33be;\n  t.l = 0x006c;\n  t.labengali = 0x09b2;\n  t.lacute = 0x013a;\n  t.ladeva = 0x0932;\n  t.lagujarati = 0x0ab2;\n  t.lagurmukhi = 0x0a32;\n  t.lakkhangyaothai = 0x0e45;\n  t.lamaleffinalarabic = 0xfefc;\n  t.lamalefhamzaabovefinalarabic = 0xfef8;\n  t.lamalefhamzaaboveisolatedarabic = 0xfef7;\n  t.lamalefhamzabelowfinalarabic = 0xfefa;\n  t.lamalefhamzabelowisolatedarabic = 0xfef9;\n  t.lamalefisolatedarabic = 0xfefb;\n  t.lamalefmaddaabovefinalarabic = 0xfef6;\n  t.lamalefmaddaaboveisolatedarabic = 0xfef5;\n  t.lamarabic = 0x0644;\n  t.lambda = 0x03bb;\n  t.lambdastroke = 0x019b;\n  t.lamed = 0x05dc;\n  t.lameddagesh = 0xfb3c;\n  t.lameddageshhebrew = 0xfb3c;\n  t.lamedhebrew = 0x05dc;\n  t.lamfinalarabic = 0xfede;\n  t.lamhahinitialarabic = 0xfcca;\n  t.laminitialarabic = 0xfedf;\n  t.lamjeeminitialarabic = 0xfcc9;\n  t.lamkhahinitialarabic = 0xfccb;\n  t.lamlamhehisolatedarabic = 0xfdf2;\n  t.lammedialarabic = 0xfee0;\n  t.lammeemhahinitialarabic = 0xfd88;\n  t.lammeeminitialarabic = 0xfccc;\n  t.largecircle = 0x25ef;\n  t.lbar = 0x019a;\n  t.lbelt = 0x026c;\n  t.lbopomofo = 0x310c;\n  t.lcaron = 0x013e;\n  t.lcedilla = 0x013c;\n  t.lcircle = 0x24db;\n  t.lcircumflexbelow = 0x1e3d;\n  t.lcommaaccent = 0x013c;\n  t.ldot = 0x0140;\n  t.ldotaccent = 0x0140;\n  t.ldotbelow = 0x1e37;\n  t.ldotbelowmacron = 0x1e39;\n  t.leftangleabovecmb = 0x031a;\n  t.lefttackbelowcmb = 0x0318;\n  t.less = 0x003c;\n  t.lessequal = 0x2264;\n  t.lessequalorgreater = 0x22da;\n  t.lessmonospace = 0xff1c;\n  t.lessorequivalent = 0x2272;\n  t.lessorgreater = 0x2276;\n  t.lessoverequal = 0x2266;\n  t.lesssmall = 0xfe64;\n  t.lezh = 0x026e;\n  t.lfblock = 0x258c;\n  t.lhookretroflex = 0x026d;\n  t.lira = 0x20a4;\n  t.liwnarmenian = 0x056c;\n  t.lj = 0x01c9;\n  t.ljecyrillic = 0x0459;\n  t.ll = 0xf6c0;\n  t.lladeva = 0x0933;\n  t.llagujarati = 0x0ab3;\n  t.llinebelow = 0x1e3b;\n  t.llladeva = 0x0934;\n  t.llvocalicbengali = 0x09e1;\n  t.llvocalicdeva = 0x0961;\n  t.llvocalicvowelsignbengali = 0x09e3;\n  t.llvocalicvowelsigndeva = 0x0963;\n  t.lmiddletilde = 0x026b;\n  t.lmonospace = 0xff4c;\n  t.lmsquare = 0x33d0;\n  t.lochulathai = 0x0e2c;\n  t.logicaland = 0x2227;\n  t.logicalnot = 0x00ac;\n  t.logicalnotreversed = 0x2310;\n  t.logicalor = 0x2228;\n  t.lolingthai = 0x0e25;\n  t.longs = 0x017f;\n  t.lowlinecenterline = 0xfe4e;\n  t.lowlinecmb = 0x0332;\n  t.lowlinedashed = 0xfe4d;\n  t.lozenge = 0x25ca;\n  t.lparen = 0x24a7;\n  t.lslash = 0x0142;\n  t.lsquare = 0x2113;\n  t.lsuperior = 0xf6ee;\n  t.ltshade = 0x2591;\n  t.luthai = 0x0e26;\n  t.lvocalicbengali = 0x098c;\n  t.lvocalicdeva = 0x090c;\n  t.lvocalicvowelsignbengali = 0x09e2;\n  t.lvocalicvowelsigndeva = 0x0962;\n  t.lxsquare = 0x33d3;\n  t.m = 0x006d;\n  t.mabengali = 0x09ae;\n  t.macron = 0x00af;\n  t.macronbelowcmb = 0x0331;\n  t.macroncmb = 0x0304;\n  t.macronlowmod = 0x02cd;\n  t.macronmonospace = 0xffe3;\n  t.macute = 0x1e3f;\n  t.madeva = 0x092e;\n  t.magujarati = 0x0aae;\n  t.magurmukhi = 0x0a2e;\n  t.mahapakhhebrew = 0x05a4;\n  t.mahapakhlefthebrew = 0x05a4;\n  t.mahiragana = 0x307e;\n  t.maichattawalowleftthai = 0xf895;\n  t.maichattawalowrightthai = 0xf894;\n  t.maichattawathai = 0x0e4b;\n  t.maichattawaupperleftthai = 0xf893;\n  t.maieklowleftthai = 0xf88c;\n  t.maieklowrightthai = 0xf88b;\n  t.maiekthai = 0x0e48;\n  t.maiekupperleftthai = 0xf88a;\n  t.maihanakatleftthai = 0xf884;\n  t.maihanakatthai = 0x0e31;\n  t.maitaikhuleftthai = 0xf889;\n  t.maitaikhuthai = 0x0e47;\n  t.maitholowleftthai = 0xf88f;\n  t.maitholowrightthai = 0xf88e;\n  t.maithothai = 0x0e49;\n  t.maithoupperleftthai = 0xf88d;\n  t.maitrilowleftthai = 0xf892;\n  t.maitrilowrightthai = 0xf891;\n  t.maitrithai = 0x0e4a;\n  t.maitriupperleftthai = 0xf890;\n  t.maiyamokthai = 0x0e46;\n  t.makatakana = 0x30de;\n  t.makatakanahalfwidth = 0xff8f;\n  t.male = 0x2642;\n  t.mansyonsquare = 0x3347;\n  t.maqafhebrew = 0x05be;\n  t.mars = 0x2642;\n  t.masoracirclehebrew = 0x05af;\n  t.masquare = 0x3383;\n  t.mbopomofo = 0x3107;\n  t.mbsquare = 0x33d4;\n  t.mcircle = 0x24dc;\n  t.mcubedsquare = 0x33a5;\n  t.mdotaccent = 0x1e41;\n  t.mdotbelow = 0x1e43;\n  t.meemarabic = 0x0645;\n  t.meemfinalarabic = 0xfee2;\n  t.meeminitialarabic = 0xfee3;\n  t.meemmedialarabic = 0xfee4;\n  t.meemmeeminitialarabic = 0xfcd1;\n  t.meemmeemisolatedarabic = 0xfc48;\n  t.meetorusquare = 0x334d;\n  t.mehiragana = 0x3081;\n  t.meizierasquare = 0x337e;\n  t.mekatakana = 0x30e1;\n  t.mekatakanahalfwidth = 0xff92;\n  t.mem = 0x05de;\n  t.memdagesh = 0xfb3e;\n  t.memdageshhebrew = 0xfb3e;\n  t.memhebrew = 0x05de;\n  t.menarmenian = 0x0574;\n  t.merkhahebrew = 0x05a5;\n  t.merkhakefulahebrew = 0x05a6;\n  t.merkhakefulalefthebrew = 0x05a6;\n  t.merkhalefthebrew = 0x05a5;\n  t.mhook = 0x0271;\n  t.mhzsquare = 0x3392;\n  t.middledotkatakanahalfwidth = 0xff65;\n  t.middot = 0x00b7;\n  t.mieumacirclekorean = 0x3272;\n  t.mieumaparenkorean = 0x3212;\n  t.mieumcirclekorean = 0x3264;\n  t.mieumkorean = 0x3141;\n  t.mieumpansioskorean = 0x3170;\n  t.mieumparenkorean = 0x3204;\n  t.mieumpieupkorean = 0x316e;\n  t.mieumsioskorean = 0x316f;\n  t.mihiragana = 0x307f;\n  t.mikatakana = 0x30df;\n  t.mikatakanahalfwidth = 0xff90;\n  t.minus = 0x2212;\n  t.minusbelowcmb = 0x0320;\n  t.minuscircle = 0x2296;\n  t.minusmod = 0x02d7;\n  t.minusplus = 0x2213;\n  t.minute = 0x2032;\n  t.miribaarusquare = 0x334a;\n  t.mirisquare = 0x3349;\n  t.mlonglegturned = 0x0270;\n  t.mlsquare = 0x3396;\n  t.mmcubedsquare = 0x33a3;\n  t.mmonospace = 0xff4d;\n  t.mmsquaredsquare = 0x339f;\n  t.mohiragana = 0x3082;\n  t.mohmsquare = 0x33c1;\n  t.mokatakana = 0x30e2;\n  t.mokatakanahalfwidth = 0xff93;\n  t.molsquare = 0x33d6;\n  t.momathai = 0x0e21;\n  t.moverssquare = 0x33a7;\n  t.moverssquaredsquare = 0x33a8;\n  t.mparen = 0x24a8;\n  t.mpasquare = 0x33ab;\n  t.mssquare = 0x33b3;\n  t.msuperior = 0xf6ef;\n  t.mturned = 0x026f;\n  t.mu = 0x00b5;\n  t.mu1 = 0x00b5;\n  t.muasquare = 0x3382;\n  t.muchgreater = 0x226b;\n  t.muchless = 0x226a;\n  t.mufsquare = 0x338c;\n  t.mugreek = 0x03bc;\n  t.mugsquare = 0x338d;\n  t.muhiragana = 0x3080;\n  t.mukatakana = 0x30e0;\n  t.mukatakanahalfwidth = 0xff91;\n  t.mulsquare = 0x3395;\n  t.multiply = 0x00d7;\n  t.mumsquare = 0x339b;\n  t.munahhebrew = 0x05a3;\n  t.munahlefthebrew = 0x05a3;\n  t.musicalnote = 0x266a;\n  t.musicalnotedbl = 0x266b;\n  t.musicflatsign = 0x266d;\n  t.musicsharpsign = 0x266f;\n  t.mussquare = 0x33b2;\n  t.muvsquare = 0x33b6;\n  t.muwsquare = 0x33bc;\n  t.mvmegasquare = 0x33b9;\n  t.mvsquare = 0x33b7;\n  t.mwmegasquare = 0x33bf;\n  t.mwsquare = 0x33bd;\n  t.n = 0x006e;\n  t.nabengali = 0x09a8;\n  t.nabla = 0x2207;\n  t.nacute = 0x0144;\n  t.nadeva = 0x0928;\n  t.nagujarati = 0x0aa8;\n  t.nagurmukhi = 0x0a28;\n  t.nahiragana = 0x306a;\n  t.nakatakana = 0x30ca;\n  t.nakatakanahalfwidth = 0xff85;\n  t.napostrophe = 0x0149;\n  t.nasquare = 0x3381;\n  t.nbopomofo = 0x310b;\n  t.nbspace = 0x00a0;\n  t.ncaron = 0x0148;\n  t.ncedilla = 0x0146;\n  t.ncircle = 0x24dd;\n  t.ncircumflexbelow = 0x1e4b;\n  t.ncommaaccent = 0x0146;\n  t.ndotaccent = 0x1e45;\n  t.ndotbelow = 0x1e47;\n  t.nehiragana = 0x306d;\n  t.nekatakana = 0x30cd;\n  t.nekatakanahalfwidth = 0xff88;\n  t.newsheqelsign = 0x20aa;\n  t.nfsquare = 0x338b;\n  t.ngabengali = 0x0999;\n  t.ngadeva = 0x0919;\n  t.ngagujarati = 0x0a99;\n  t.ngagurmukhi = 0x0a19;\n  t.ngonguthai = 0x0e07;\n  t.nhiragana = 0x3093;\n  t.nhookleft = 0x0272;\n  t.nhookretroflex = 0x0273;\n  t.nieunacirclekorean = 0x326f;\n  t.nieunaparenkorean = 0x320f;\n  t.nieuncieuckorean = 0x3135;\n  t.nieuncirclekorean = 0x3261;\n  t.nieunhieuhkorean = 0x3136;\n  t.nieunkorean = 0x3134;\n  t.nieunpansioskorean = 0x3168;\n  t.nieunparenkorean = 0x3201;\n  t.nieunsioskorean = 0x3167;\n  t.nieuntikeutkorean = 0x3166;\n  t.nihiragana = 0x306b;\n  t.nikatakana = 0x30cb;\n  t.nikatakanahalfwidth = 0xff86;\n  t.nikhahitleftthai = 0xf899;\n  t.nikhahitthai = 0x0e4d;\n  t.nine = 0x0039;\n  t.ninearabic = 0x0669;\n  t.ninebengali = 0x09ef;\n  t.ninecircle = 0x2468;\n  t.ninecircleinversesansserif = 0x2792;\n  t.ninedeva = 0x096f;\n  t.ninegujarati = 0x0aef;\n  t.ninegurmukhi = 0x0a6f;\n  t.ninehackarabic = 0x0669;\n  t.ninehangzhou = 0x3029;\n  t.nineideographicparen = 0x3228;\n  t.nineinferior = 0x2089;\n  t.ninemonospace = 0xff19;\n  t.nineoldstyle = 0xf739;\n  t.nineparen = 0x247c;\n  t.nineperiod = 0x2490;\n  t.ninepersian = 0x06f9;\n  t.nineroman = 0x2178;\n  t.ninesuperior = 0x2079;\n  t.nineteencircle = 0x2472;\n  t.nineteenparen = 0x2486;\n  t.nineteenperiod = 0x249a;\n  t.ninethai = 0x0e59;\n  t.nj = 0x01cc;\n  t.njecyrillic = 0x045a;\n  t.nkatakana = 0x30f3;\n  t.nkatakanahalfwidth = 0xff9d;\n  t.nlegrightlong = 0x019e;\n  t.nlinebelow = 0x1e49;\n  t.nmonospace = 0xff4e;\n  t.nmsquare = 0x339a;\n  t.nnabengali = 0x09a3;\n  t.nnadeva = 0x0923;\n  t.nnagujarati = 0x0aa3;\n  t.nnagurmukhi = 0x0a23;\n  t.nnnadeva = 0x0929;\n  t.nohiragana = 0x306e;\n  t.nokatakana = 0x30ce;\n  t.nokatakanahalfwidth = 0xff89;\n  t.nonbreakingspace = 0x00a0;\n  t.nonenthai = 0x0e13;\n  t.nonuthai = 0x0e19;\n  t.noonarabic = 0x0646;\n  t.noonfinalarabic = 0xfee6;\n  t.noonghunnaarabic = 0x06ba;\n  t.noonghunnafinalarabic = 0xfb9f;\n  t.nooninitialarabic = 0xfee7;\n  t.noonjeeminitialarabic = 0xfcd2;\n  t.noonjeemisolatedarabic = 0xfc4b;\n  t.noonmedialarabic = 0xfee8;\n  t.noonmeeminitialarabic = 0xfcd5;\n  t.noonmeemisolatedarabic = 0xfc4e;\n  t.noonnoonfinalarabic = 0xfc8d;\n  t.notcontains = 0x220c;\n  t.notelement = 0x2209;\n  t.notelementof = 0x2209;\n  t.notequal = 0x2260;\n  t.notgreater = 0x226f;\n  t.notgreaternorequal = 0x2271;\n  t.notgreaternorless = 0x2279;\n  t.notidentical = 0x2262;\n  t.notless = 0x226e;\n  t.notlessnorequal = 0x2270;\n  t.notparallel = 0x2226;\n  t.notprecedes = 0x2280;\n  t.notsubset = 0x2284;\n  t.notsucceeds = 0x2281;\n  t.notsuperset = 0x2285;\n  t.nowarmenian = 0x0576;\n  t.nparen = 0x24a9;\n  t.nssquare = 0x33b1;\n  t.nsuperior = 0x207f;\n  t.ntilde = 0x00f1;\n  t.nu = 0x03bd;\n  t.nuhiragana = 0x306c;\n  t.nukatakana = 0x30cc;\n  t.nukatakanahalfwidth = 0xff87;\n  t.nuktabengali = 0x09bc;\n  t.nuktadeva = 0x093c;\n  t.nuktagujarati = 0x0abc;\n  t.nuktagurmukhi = 0x0a3c;\n  t.numbersign = 0x0023;\n  t.numbersignmonospace = 0xff03;\n  t.numbersignsmall = 0xfe5f;\n  t.numeralsigngreek = 0x0374;\n  t.numeralsignlowergreek = 0x0375;\n  t.numero = 0x2116;\n  t.nun = 0x05e0;\n  t.nundagesh = 0xfb40;\n  t.nundageshhebrew = 0xfb40;\n  t.nunhebrew = 0x05e0;\n  t.nvsquare = 0x33b5;\n  t.nwsquare = 0x33bb;\n  t.nyabengali = 0x099e;\n  t.nyadeva = 0x091e;\n  t.nyagujarati = 0x0a9e;\n  t.nyagurmukhi = 0x0a1e;\n  t.o = 0x006f;\n  t.oacute = 0x00f3;\n  t.oangthai = 0x0e2d;\n  t.obarred = 0x0275;\n  t.obarredcyrillic = 0x04e9;\n  t.obarreddieresiscyrillic = 0x04eb;\n  t.obengali = 0x0993;\n  t.obopomofo = 0x311b;\n  t.obreve = 0x014f;\n  t.ocandradeva = 0x0911;\n  t.ocandragujarati = 0x0a91;\n  t.ocandravowelsigndeva = 0x0949;\n  t.ocandravowelsigngujarati = 0x0ac9;\n  t.ocaron = 0x01d2;\n  t.ocircle = 0x24de;\n  t.ocircumflex = 0x00f4;\n  t.ocircumflexacute = 0x1ed1;\n  t.ocircumflexdotbelow = 0x1ed9;\n  t.ocircumflexgrave = 0x1ed3;\n  t.ocircumflexhookabove = 0x1ed5;\n  t.ocircumflextilde = 0x1ed7;\n  t.ocyrillic = 0x043e;\n  t.odblacute = 0x0151;\n  t.odblgrave = 0x020d;\n  t.odeva = 0x0913;\n  t.odieresis = 0x00f6;\n  t.odieresiscyrillic = 0x04e7;\n  t.odotbelow = 0x1ecd;\n  t.oe = 0x0153;\n  t.oekorean = 0x315a;\n  t.ogonek = 0x02db;\n  t.ogonekcmb = 0x0328;\n  t.ograve = 0x00f2;\n  t.ogujarati = 0x0a93;\n  t.oharmenian = 0x0585;\n  t.ohiragana = 0x304a;\n  t.ohookabove = 0x1ecf;\n  t.ohorn = 0x01a1;\n  t.ohornacute = 0x1edb;\n  t.ohorndotbelow = 0x1ee3;\n  t.ohorngrave = 0x1edd;\n  t.ohornhookabove = 0x1edf;\n  t.ohorntilde = 0x1ee1;\n  t.ohungarumlaut = 0x0151;\n  t.oi = 0x01a3;\n  t.oinvertedbreve = 0x020f;\n  t.okatakana = 0x30aa;\n  t.okatakanahalfwidth = 0xff75;\n  t.okorean = 0x3157;\n  t.olehebrew = 0x05ab;\n  t.omacron = 0x014d;\n  t.omacronacute = 0x1e53;\n  t.omacrongrave = 0x1e51;\n  t.omdeva = 0x0950;\n  t.omega = 0x03c9;\n  t.omega1 = 0x03d6;\n  t.omegacyrillic = 0x0461;\n  t.omegalatinclosed = 0x0277;\n  t.omegaroundcyrillic = 0x047b;\n  t.omegatitlocyrillic = 0x047d;\n  t.omegatonos = 0x03ce;\n  t.omgujarati = 0x0ad0;\n  t.omicron = 0x03bf;\n  t.omicrontonos = 0x03cc;\n  t.omonospace = 0xff4f;\n  t.one = 0x0031;\n  t.onearabic = 0x0661;\n  t.onebengali = 0x09e7;\n  t.onecircle = 0x2460;\n  t.onecircleinversesansserif = 0x278a;\n  t.onedeva = 0x0967;\n  t.onedotenleader = 0x2024;\n  t.oneeighth = 0x215b;\n  t.onefitted = 0xf6dc;\n  t.onegujarati = 0x0ae7;\n  t.onegurmukhi = 0x0a67;\n  t.onehackarabic = 0x0661;\n  t.onehalf = 0x00bd;\n  t.onehangzhou = 0x3021;\n  t.oneideographicparen = 0x3220;\n  t.oneinferior = 0x2081;\n  t.onemonospace = 0xff11;\n  t.onenumeratorbengali = 0x09f4;\n  t.oneoldstyle = 0xf731;\n  t.oneparen = 0x2474;\n  t.oneperiod = 0x2488;\n  t.onepersian = 0x06f1;\n  t.onequarter = 0x00bc;\n  t.oneroman = 0x2170;\n  t.onesuperior = 0x00b9;\n  t.onethai = 0x0e51;\n  t.onethird = 0x2153;\n  t.oogonek = 0x01eb;\n  t.oogonekmacron = 0x01ed;\n  t.oogurmukhi = 0x0a13;\n  t.oomatragurmukhi = 0x0a4b;\n  t.oopen = 0x0254;\n  t.oparen = 0x24aa;\n  t.openbullet = 0x25e6;\n  t.option = 0x2325;\n  t.ordfeminine = 0x00aa;\n  t.ordmasculine = 0x00ba;\n  t.orthogonal = 0x221f;\n  t.oshortdeva = 0x0912;\n  t.oshortvowelsigndeva = 0x094a;\n  t.oslash = 0x00f8;\n  t.oslashacute = 0x01ff;\n  t.osmallhiragana = 0x3049;\n  t.osmallkatakana = 0x30a9;\n  t.osmallkatakanahalfwidth = 0xff6b;\n  t.ostrokeacute = 0x01ff;\n  t.osuperior = 0xf6f0;\n  t.otcyrillic = 0x047f;\n  t.otilde = 0x00f5;\n  t.otildeacute = 0x1e4d;\n  t.otildedieresis = 0x1e4f;\n  t.oubopomofo = 0x3121;\n  t.overline = 0x203e;\n  t.overlinecenterline = 0xfe4a;\n  t.overlinecmb = 0x0305;\n  t.overlinedashed = 0xfe49;\n  t.overlinedblwavy = 0xfe4c;\n  t.overlinewavy = 0xfe4b;\n  t.overscore = 0x00af;\n  t.ovowelsignbengali = 0x09cb;\n  t.ovowelsigndeva = 0x094b;\n  t.ovowelsigngujarati = 0x0acb;\n  t.p = 0x0070;\n  t.paampssquare = 0x3380;\n  t.paasentosquare = 0x332b;\n  t.pabengali = 0x09aa;\n  t.pacute = 0x1e55;\n  t.padeva = 0x092a;\n  t.pagedown = 0x21df;\n  t.pageup = 0x21de;\n  t.pagujarati = 0x0aaa;\n  t.pagurmukhi = 0x0a2a;\n  t.pahiragana = 0x3071;\n  t.paiyannoithai = 0x0e2f;\n  t.pakatakana = 0x30d1;\n  t.palatalizationcyrilliccmb = 0x0484;\n  t.palochkacyrillic = 0x04c0;\n  t.pansioskorean = 0x317f;\n  t.paragraph = 0x00b6;\n  t.parallel = 0x2225;\n  t.parenleft = 0x0028;\n  t.parenleftaltonearabic = 0xfd3e;\n  t.parenleftbt = 0xf8ed;\n  t.parenleftex = 0xf8ec;\n  t.parenleftinferior = 0x208d;\n  t.parenleftmonospace = 0xff08;\n  t.parenleftsmall = 0xfe59;\n  t.parenleftsuperior = 0x207d;\n  t.parenlefttp = 0xf8eb;\n  t.parenleftvertical = 0xfe35;\n  t.parenright = 0x0029;\n  t.parenrightaltonearabic = 0xfd3f;\n  t.parenrightbt = 0xf8f8;\n  t.parenrightex = 0xf8f7;\n  t.parenrightinferior = 0x208e;\n  t.parenrightmonospace = 0xff09;\n  t.parenrightsmall = 0xfe5a;\n  t.parenrightsuperior = 0x207e;\n  t.parenrighttp = 0xf8f6;\n  t.parenrightvertical = 0xfe36;\n  t.partialdiff = 0x2202;\n  t.paseqhebrew = 0x05c0;\n  t.pashtahebrew = 0x0599;\n  t.pasquare = 0x33a9;\n  t.patah = 0x05b7;\n  t.patah11 = 0x05b7;\n  t.patah1d = 0x05b7;\n  t.patah2a = 0x05b7;\n  t.patahhebrew = 0x05b7;\n  t.patahnarrowhebrew = 0x05b7;\n  t.patahquarterhebrew = 0x05b7;\n  t.patahwidehebrew = 0x05b7;\n  t.pazerhebrew = 0x05a1;\n  t.pbopomofo = 0x3106;\n  t.pcircle = 0x24df;\n  t.pdotaccent = 0x1e57;\n  t.pe = 0x05e4;\n  t.pecyrillic = 0x043f;\n  t.pedagesh = 0xfb44;\n  t.pedageshhebrew = 0xfb44;\n  t.peezisquare = 0x333b;\n  t.pefinaldageshhebrew = 0xfb43;\n  t.peharabic = 0x067e;\n  t.peharmenian = 0x057a;\n  t.pehebrew = 0x05e4;\n  t.pehfinalarabic = 0xfb57;\n  t.pehinitialarabic = 0xfb58;\n  t.pehiragana = 0x307a;\n  t.pehmedialarabic = 0xfb59;\n  t.pekatakana = 0x30da;\n  t.pemiddlehookcyrillic = 0x04a7;\n  t.perafehebrew = 0xfb4e;\n  t.percent = 0x0025;\n  t.percentarabic = 0x066a;\n  t.percentmonospace = 0xff05;\n  t.percentsmall = 0xfe6a;\n  t.period = 0x002e;\n  t.periodarmenian = 0x0589;\n  t.periodcentered = 0x00b7;\n  t.periodhalfwidth = 0xff61;\n  t.periodinferior = 0xf6e7;\n  t.periodmonospace = 0xff0e;\n  t.periodsmall = 0xfe52;\n  t.periodsuperior = 0xf6e8;\n  t.perispomenigreekcmb = 0x0342;\n  t.perpendicular = 0x22a5;\n  t.perthousand = 0x2030;\n  t.peseta = 0x20a7;\n  t.pfsquare = 0x338a;\n  t.phabengali = 0x09ab;\n  t.phadeva = 0x092b;\n  t.phagujarati = 0x0aab;\n  t.phagurmukhi = 0x0a2b;\n  t.phi = 0x03c6;\n  t.phi1 = 0x03d5;\n  t.phieuphacirclekorean = 0x327a;\n  t.phieuphaparenkorean = 0x321a;\n  t.phieuphcirclekorean = 0x326c;\n  t.phieuphkorean = 0x314d;\n  t.phieuphparenkorean = 0x320c;\n  t.philatin = 0x0278;\n  t.phinthuthai = 0x0e3a;\n  t.phisymbolgreek = 0x03d5;\n  t.phook = 0x01a5;\n  t.phophanthai = 0x0e1e;\n  t.phophungthai = 0x0e1c;\n  t.phosamphaothai = 0x0e20;\n  t.pi = 0x03c0;\n  t.pieupacirclekorean = 0x3273;\n  t.pieupaparenkorean = 0x3213;\n  t.pieupcieuckorean = 0x3176;\n  t.pieupcirclekorean = 0x3265;\n  t.pieupkiyeokkorean = 0x3172;\n  t.pieupkorean = 0x3142;\n  t.pieupparenkorean = 0x3205;\n  t.pieupsioskiyeokkorean = 0x3174;\n  t.pieupsioskorean = 0x3144;\n  t.pieupsiostikeutkorean = 0x3175;\n  t.pieupthieuthkorean = 0x3177;\n  t.pieuptikeutkorean = 0x3173;\n  t.pihiragana = 0x3074;\n  t.pikatakana = 0x30d4;\n  t.pisymbolgreek = 0x03d6;\n  t.piwrarmenian = 0x0583;\n  t.planckover2pi = 0x210f;\n  t.planckover2pi1 = 0x210f;\n  t.plus = 0x002b;\n  t.plusbelowcmb = 0x031f;\n  t.pluscircle = 0x2295;\n  t.plusminus = 0x00b1;\n  t.plusmod = 0x02d6;\n  t.plusmonospace = 0xff0b;\n  t.plussmall = 0xfe62;\n  t.plussuperior = 0x207a;\n  t.pmonospace = 0xff50;\n  t.pmsquare = 0x33d8;\n  t.pohiragana = 0x307d;\n  t.pointingindexdownwhite = 0x261f;\n  t.pointingindexleftwhite = 0x261c;\n  t.pointingindexrightwhite = 0x261e;\n  t.pointingindexupwhite = 0x261d;\n  t.pokatakana = 0x30dd;\n  t.poplathai = 0x0e1b;\n  t.postalmark = 0x3012;\n  t.postalmarkface = 0x3020;\n  t.pparen = 0x24ab;\n  t.precedes = 0x227a;\n  t.prescription = 0x211e;\n  t.primemod = 0x02b9;\n  t.primereversed = 0x2035;\n  t.product = 0x220f;\n  t.projective = 0x2305;\n  t.prolongedkana = 0x30fc;\n  t.propellor = 0x2318;\n  t.propersubset = 0x2282;\n  t.propersuperset = 0x2283;\n  t.proportion = 0x2237;\n  t.proportional = 0x221d;\n  t.psi = 0x03c8;\n  t.psicyrillic = 0x0471;\n  t.psilipneumatacyrilliccmb = 0x0486;\n  t.pssquare = 0x33b0;\n  t.puhiragana = 0x3077;\n  t.pukatakana = 0x30d7;\n  t.pvsquare = 0x33b4;\n  t.pwsquare = 0x33ba;\n  t.q = 0x0071;\n  t.qadeva = 0x0958;\n  t.qadmahebrew = 0x05a8;\n  t.qafarabic = 0x0642;\n  t.qaffinalarabic = 0xfed6;\n  t.qafinitialarabic = 0xfed7;\n  t.qafmedialarabic = 0xfed8;\n  t.qamats = 0x05b8;\n  t.qamats10 = 0x05b8;\n  t.qamats1a = 0x05b8;\n  t.qamats1c = 0x05b8;\n  t.qamats27 = 0x05b8;\n  t.qamats29 = 0x05b8;\n  t.qamats33 = 0x05b8;\n  t.qamatsde = 0x05b8;\n  t.qamatshebrew = 0x05b8;\n  t.qamatsnarrowhebrew = 0x05b8;\n  t.qamatsqatanhebrew = 0x05b8;\n  t.qamatsqatannarrowhebrew = 0x05b8;\n  t.qamatsqatanquarterhebrew = 0x05b8;\n  t.qamatsqatanwidehebrew = 0x05b8;\n  t.qamatsquarterhebrew = 0x05b8;\n  t.qamatswidehebrew = 0x05b8;\n  t.qarneyparahebrew = 0x059f;\n  t.qbopomofo = 0x3111;\n  t.qcircle = 0x24e0;\n  t.qhook = 0x02a0;\n  t.qmonospace = 0xff51;\n  t.qof = 0x05e7;\n  t.qofdagesh = 0xfb47;\n  t.qofdageshhebrew = 0xfb47;\n  t.qofhebrew = 0x05e7;\n  t.qparen = 0x24ac;\n  t.quarternote = 0x2669;\n  t.qubuts = 0x05bb;\n  t.qubuts18 = 0x05bb;\n  t.qubuts25 = 0x05bb;\n  t.qubuts31 = 0x05bb;\n  t.qubutshebrew = 0x05bb;\n  t.qubutsnarrowhebrew = 0x05bb;\n  t.qubutsquarterhebrew = 0x05bb;\n  t.qubutswidehebrew = 0x05bb;\n  t.question = 0x003f;\n  t.questionarabic = 0x061f;\n  t.questionarmenian = 0x055e;\n  t.questiondown = 0x00bf;\n  t.questiondownsmall = 0xf7bf;\n  t.questiongreek = 0x037e;\n  t.questionmonospace = 0xff1f;\n  t.questionsmall = 0xf73f;\n  t.quotedbl = 0x0022;\n  t.quotedblbase = 0x201e;\n  t.quotedblleft = 0x201c;\n  t.quotedblmonospace = 0xff02;\n  t.quotedblprime = 0x301e;\n  t.quotedblprimereversed = 0x301d;\n  t.quotedblright = 0x201d;\n  t.quoteleft = 0x2018;\n  t.quoteleftreversed = 0x201b;\n  t.quotereversed = 0x201b;\n  t.quoteright = 0x2019;\n  t.quoterightn = 0x0149;\n  t.quotesinglbase = 0x201a;\n  t.quotesingle = 0x0027;\n  t.quotesinglemonospace = 0xff07;\n  t.r = 0x0072;\n  t.raarmenian = 0x057c;\n  t.rabengali = 0x09b0;\n  t.racute = 0x0155;\n  t.radeva = 0x0930;\n  t.radical = 0x221a;\n  t.radicalex = 0xf8e5;\n  t.radoverssquare = 0x33ae;\n  t.radoverssquaredsquare = 0x33af;\n  t.radsquare = 0x33ad;\n  t.rafe = 0x05bf;\n  t.rafehebrew = 0x05bf;\n  t.ragujarati = 0x0ab0;\n  t.ragurmukhi = 0x0a30;\n  t.rahiragana = 0x3089;\n  t.rakatakana = 0x30e9;\n  t.rakatakanahalfwidth = 0xff97;\n  t.ralowerdiagonalbengali = 0x09f1;\n  t.ramiddlediagonalbengali = 0x09f0;\n  t.ramshorn = 0x0264;\n  t.ratio = 0x2236;\n  t.rbopomofo = 0x3116;\n  t.rcaron = 0x0159;\n  t.rcedilla = 0x0157;\n  t.rcircle = 0x24e1;\n  t.rcommaaccent = 0x0157;\n  t.rdblgrave = 0x0211;\n  t.rdotaccent = 0x1e59;\n  t.rdotbelow = 0x1e5b;\n  t.rdotbelowmacron = 0x1e5d;\n  t.referencemark = 0x203b;\n  t.reflexsubset = 0x2286;\n  t.reflexsuperset = 0x2287;\n  t.registered = 0x00ae;\n  t.registersans = 0xf8e8;\n  t.registerserif = 0xf6da;\n  t.reharabic = 0x0631;\n  t.reharmenian = 0x0580;\n  t.rehfinalarabic = 0xfeae;\n  t.rehiragana = 0x308c;\n  t.rekatakana = 0x30ec;\n  t.rekatakanahalfwidth = 0xff9a;\n  t.resh = 0x05e8;\n  t.reshdageshhebrew = 0xfb48;\n  t.reshhebrew = 0x05e8;\n  t.reversedtilde = 0x223d;\n  t.reviahebrew = 0x0597;\n  t.reviamugrashhebrew = 0x0597;\n  t.revlogicalnot = 0x2310;\n  t.rfishhook = 0x027e;\n  t.rfishhookreversed = 0x027f;\n  t.rhabengali = 0x09dd;\n  t.rhadeva = 0x095d;\n  t.rho = 0x03c1;\n  t.rhook = 0x027d;\n  t.rhookturned = 0x027b;\n  t.rhookturnedsuperior = 0x02b5;\n  t.rhosymbolgreek = 0x03f1;\n  t.rhotichookmod = 0x02de;\n  t.rieulacirclekorean = 0x3271;\n  t.rieulaparenkorean = 0x3211;\n  t.rieulcirclekorean = 0x3263;\n  t.rieulhieuhkorean = 0x3140;\n  t.rieulkiyeokkorean = 0x313a;\n  t.rieulkiyeoksioskorean = 0x3169;\n  t.rieulkorean = 0x3139;\n  t.rieulmieumkorean = 0x313b;\n  t.rieulpansioskorean = 0x316c;\n  t.rieulparenkorean = 0x3203;\n  t.rieulphieuphkorean = 0x313f;\n  t.rieulpieupkorean = 0x313c;\n  t.rieulpieupsioskorean = 0x316b;\n  t.rieulsioskorean = 0x313d;\n  t.rieulthieuthkorean = 0x313e;\n  t.rieultikeutkorean = 0x316a;\n  t.rieulyeorinhieuhkorean = 0x316d;\n  t.rightangle = 0x221f;\n  t.righttackbelowcmb = 0x0319;\n  t.righttriangle = 0x22bf;\n  t.rihiragana = 0x308a;\n  t.rikatakana = 0x30ea;\n  t.rikatakanahalfwidth = 0xff98;\n  t.ring = 0x02da;\n  t.ringbelowcmb = 0x0325;\n  t.ringcmb = 0x030a;\n  t.ringhalfleft = 0x02bf;\n  t.ringhalfleftarmenian = 0x0559;\n  t.ringhalfleftbelowcmb = 0x031c;\n  t.ringhalfleftcentered = 0x02d3;\n  t.ringhalfright = 0x02be;\n  t.ringhalfrightbelowcmb = 0x0339;\n  t.ringhalfrightcentered = 0x02d2;\n  t.rinvertedbreve = 0x0213;\n  t.rittorusquare = 0x3351;\n  t.rlinebelow = 0x1e5f;\n  t.rlongleg = 0x027c;\n  t.rlonglegturned = 0x027a;\n  t.rmonospace = 0xff52;\n  t.rohiragana = 0x308d;\n  t.rokatakana = 0x30ed;\n  t.rokatakanahalfwidth = 0xff9b;\n  t.roruathai = 0x0e23;\n  t.rparen = 0x24ad;\n  t.rrabengali = 0x09dc;\n  t.rradeva = 0x0931;\n  t.rragurmukhi = 0x0a5c;\n  t.rreharabic = 0x0691;\n  t.rrehfinalarabic = 0xfb8d;\n  t.rrvocalicbengali = 0x09e0;\n  t.rrvocalicdeva = 0x0960;\n  t.rrvocalicgujarati = 0x0ae0;\n  t.rrvocalicvowelsignbengali = 0x09c4;\n  t.rrvocalicvowelsigndeva = 0x0944;\n  t.rrvocalicvowelsigngujarati = 0x0ac4;\n  t.rsuperior = 0xf6f1;\n  t.rtblock = 0x2590;\n  t.rturned = 0x0279;\n  t.rturnedsuperior = 0x02b4;\n  t.ruhiragana = 0x308b;\n  t.rukatakana = 0x30eb;\n  t.rukatakanahalfwidth = 0xff99;\n  t.rupeemarkbengali = 0x09f2;\n  t.rupeesignbengali = 0x09f3;\n  t.rupiah = 0xf6dd;\n  t.ruthai = 0x0e24;\n  t.rvocalicbengali = 0x098b;\n  t.rvocalicdeva = 0x090b;\n  t.rvocalicgujarati = 0x0a8b;\n  t.rvocalicvowelsignbengali = 0x09c3;\n  t.rvocalicvowelsigndeva = 0x0943;\n  t.rvocalicvowelsigngujarati = 0x0ac3;\n  t.s = 0x0073;\n  t.sabengali = 0x09b8;\n  t.sacute = 0x015b;\n  t.sacutedotaccent = 0x1e65;\n  t.sadarabic = 0x0635;\n  t.sadeva = 0x0938;\n  t.sadfinalarabic = 0xfeba;\n  t.sadinitialarabic = 0xfebb;\n  t.sadmedialarabic = 0xfebc;\n  t.sagujarati = 0x0ab8;\n  t.sagurmukhi = 0x0a38;\n  t.sahiragana = 0x3055;\n  t.sakatakana = 0x30b5;\n  t.sakatakanahalfwidth = 0xff7b;\n  t.sallallahoualayhewasallamarabic = 0xfdfa;\n  t.samekh = 0x05e1;\n  t.samekhdagesh = 0xfb41;\n  t.samekhdageshhebrew = 0xfb41;\n  t.samekhhebrew = 0x05e1;\n  t.saraaathai = 0x0e32;\n  t.saraaethai = 0x0e41;\n  t.saraaimaimalaithai = 0x0e44;\n  t.saraaimaimuanthai = 0x0e43;\n  t.saraamthai = 0x0e33;\n  t.saraathai = 0x0e30;\n  t.saraethai = 0x0e40;\n  t.saraiileftthai = 0xf886;\n  t.saraiithai = 0x0e35;\n  t.saraileftthai = 0xf885;\n  t.saraithai = 0x0e34;\n  t.saraothai = 0x0e42;\n  t.saraueeleftthai = 0xf888;\n  t.saraueethai = 0x0e37;\n  t.saraueleftthai = 0xf887;\n  t.sarauethai = 0x0e36;\n  t.sarauthai = 0x0e38;\n  t.sarauuthai = 0x0e39;\n  t.sbopomofo = 0x3119;\n  t.scaron = 0x0161;\n  t.scarondotaccent = 0x1e67;\n  t.scedilla = 0x015f;\n  t.schwa = 0x0259;\n  t.schwacyrillic = 0x04d9;\n  t.schwadieresiscyrillic = 0x04db;\n  t.schwahook = 0x025a;\n  t.scircle = 0x24e2;\n  t.scircumflex = 0x015d;\n  t.scommaaccent = 0x0219;\n  t.sdotaccent = 0x1e61;\n  t.sdotbelow = 0x1e63;\n  t.sdotbelowdotaccent = 0x1e69;\n  t.seagullbelowcmb = 0x033c;\n  t.second = 0x2033;\n  t.secondtonechinese = 0x02ca;\n  t.section = 0x00a7;\n  t.seenarabic = 0x0633;\n  t.seenfinalarabic = 0xfeb2;\n  t.seeninitialarabic = 0xfeb3;\n  t.seenmedialarabic = 0xfeb4;\n  t.segol = 0x05b6;\n  t.segol13 = 0x05b6;\n  t.segol1f = 0x05b6;\n  t.segol2c = 0x05b6;\n  t.segolhebrew = 0x05b6;\n  t.segolnarrowhebrew = 0x05b6;\n  t.segolquarterhebrew = 0x05b6;\n  t.segoltahebrew = 0x0592;\n  t.segolwidehebrew = 0x05b6;\n  t.seharmenian = 0x057d;\n  t.sehiragana = 0x305b;\n  t.sekatakana = 0x30bb;\n  t.sekatakanahalfwidth = 0xff7e;\n  t.semicolon = 0x003b;\n  t.semicolonarabic = 0x061b;\n  t.semicolonmonospace = 0xff1b;\n  t.semicolonsmall = 0xfe54;\n  t.semivoicedmarkkana = 0x309c;\n  t.semivoicedmarkkanahalfwidth = 0xff9f;\n  t.sentisquare = 0x3322;\n  t.sentosquare = 0x3323;\n  t.seven = 0x0037;\n  t.sevenarabic = 0x0667;\n  t.sevenbengali = 0x09ed;\n  t.sevencircle = 0x2466;\n  t.sevencircleinversesansserif = 0x2790;\n  t.sevendeva = 0x096d;\n  t.seveneighths = 0x215e;\n  t.sevengujarati = 0x0aed;\n  t.sevengurmukhi = 0x0a6d;\n  t.sevenhackarabic = 0x0667;\n  t.sevenhangzhou = 0x3027;\n  t.sevenideographicparen = 0x3226;\n  t.seveninferior = 0x2087;\n  t.sevenmonospace = 0xff17;\n  t.sevenoldstyle = 0xf737;\n  t.sevenparen = 0x247a;\n  t.sevenperiod = 0x248e;\n  t.sevenpersian = 0x06f7;\n  t.sevenroman = 0x2176;\n  t.sevensuperior = 0x2077;\n  t.seventeencircle = 0x2470;\n  t.seventeenparen = 0x2484;\n  t.seventeenperiod = 0x2498;\n  t.seventhai = 0x0e57;\n  t.sfthyphen = 0x00ad;\n  t.shaarmenian = 0x0577;\n  t.shabengali = 0x09b6;\n  t.shacyrillic = 0x0448;\n  t.shaddaarabic = 0x0651;\n  t.shaddadammaarabic = 0xfc61;\n  t.shaddadammatanarabic = 0xfc5e;\n  t.shaddafathaarabic = 0xfc60;\n  t.shaddakasraarabic = 0xfc62;\n  t.shaddakasratanarabic = 0xfc5f;\n  t.shade = 0x2592;\n  t.shadedark = 0x2593;\n  t.shadelight = 0x2591;\n  t.shademedium = 0x2592;\n  t.shadeva = 0x0936;\n  t.shagujarati = 0x0ab6;\n  t.shagurmukhi = 0x0a36;\n  t.shalshelethebrew = 0x0593;\n  t.shbopomofo = 0x3115;\n  t.shchacyrillic = 0x0449;\n  t.sheenarabic = 0x0634;\n  t.sheenfinalarabic = 0xfeb6;\n  t.sheeninitialarabic = 0xfeb7;\n  t.sheenmedialarabic = 0xfeb8;\n  t.sheicoptic = 0x03e3;\n  t.sheqel = 0x20aa;\n  t.sheqelhebrew = 0x20aa;\n  t.sheva = 0x05b0;\n  t.sheva115 = 0x05b0;\n  t.sheva15 = 0x05b0;\n  t.sheva22 = 0x05b0;\n  t.sheva2e = 0x05b0;\n  t.shevahebrew = 0x05b0;\n  t.shevanarrowhebrew = 0x05b0;\n  t.shevaquarterhebrew = 0x05b0;\n  t.shevawidehebrew = 0x05b0;\n  t.shhacyrillic = 0x04bb;\n  t.shimacoptic = 0x03ed;\n  t.shin = 0x05e9;\n  t.shindagesh = 0xfb49;\n  t.shindageshhebrew = 0xfb49;\n  t.shindageshshindot = 0xfb2c;\n  t.shindageshshindothebrew = 0xfb2c;\n  t.shindageshsindot = 0xfb2d;\n  t.shindageshsindothebrew = 0xfb2d;\n  t.shindothebrew = 0x05c1;\n  t.shinhebrew = 0x05e9;\n  t.shinshindot = 0xfb2a;\n  t.shinshindothebrew = 0xfb2a;\n  t.shinsindot = 0xfb2b;\n  t.shinsindothebrew = 0xfb2b;\n  t.shook = 0x0282;\n  t.sigma = 0x03c3;\n  t.sigma1 = 0x03c2;\n  t.sigmafinal = 0x03c2;\n  t.sigmalunatesymbolgreek = 0x03f2;\n  t.sihiragana = 0x3057;\n  t.sikatakana = 0x30b7;\n  t.sikatakanahalfwidth = 0xff7c;\n  t.siluqhebrew = 0x05bd;\n  t.siluqlefthebrew = 0x05bd;\n  t.similar = 0x223c;\n  t.sindothebrew = 0x05c2;\n  t.siosacirclekorean = 0x3274;\n  t.siosaparenkorean = 0x3214;\n  t.sioscieuckorean = 0x317e;\n  t.sioscirclekorean = 0x3266;\n  t.sioskiyeokkorean = 0x317a;\n  t.sioskorean = 0x3145;\n  t.siosnieunkorean = 0x317b;\n  t.siosparenkorean = 0x3206;\n  t.siospieupkorean = 0x317d;\n  t.siostikeutkorean = 0x317c;\n  t.six = 0x0036;\n  t.sixarabic = 0x0666;\n  t.sixbengali = 0x09ec;\n  t.sixcircle = 0x2465;\n  t.sixcircleinversesansserif = 0x278f;\n  t.sixdeva = 0x096c;\n  t.sixgujarati = 0x0aec;\n  t.sixgurmukhi = 0x0a6c;\n  t.sixhackarabic = 0x0666;\n  t.sixhangzhou = 0x3026;\n  t.sixideographicparen = 0x3225;\n  t.sixinferior = 0x2086;\n  t.sixmonospace = 0xff16;\n  t.sixoldstyle = 0xf736;\n  t.sixparen = 0x2479;\n  t.sixperiod = 0x248d;\n  t.sixpersian = 0x06f6;\n  t.sixroman = 0x2175;\n  t.sixsuperior = 0x2076;\n  t.sixteencircle = 0x246f;\n  t.sixteencurrencydenominatorbengali = 0x09f9;\n  t.sixteenparen = 0x2483;\n  t.sixteenperiod = 0x2497;\n  t.sixthai = 0x0e56;\n  t.slash = 0x002f;\n  t.slashmonospace = 0xff0f;\n  t.slong = 0x017f;\n  t.slongdotaccent = 0x1e9b;\n  t.smileface = 0x263a;\n  t.smonospace = 0xff53;\n  t.sofpasuqhebrew = 0x05c3;\n  t.softhyphen = 0x00ad;\n  t.softsigncyrillic = 0x044c;\n  t.sohiragana = 0x305d;\n  t.sokatakana = 0x30bd;\n  t.sokatakanahalfwidth = 0xff7f;\n  t.soliduslongoverlaycmb = 0x0338;\n  t.solidusshortoverlaycmb = 0x0337;\n  t.sorusithai = 0x0e29;\n  t.sosalathai = 0x0e28;\n  t.sosothai = 0x0e0b;\n  t.sosuathai = 0x0e2a;\n  t.space = 0x0020;\n  t.spacehackarabic = 0x0020;\n  t.spade = 0x2660;\n  t.spadesuitblack = 0x2660;\n  t.spadesuitwhite = 0x2664;\n  t.sparen = 0x24ae;\n  t.squarebelowcmb = 0x033b;\n  t.squarecc = 0x33c4;\n  t.squarecm = 0x339d;\n  t.squarediagonalcrosshatchfill = 0x25a9;\n  t.squarehorizontalfill = 0x25a4;\n  t.squarekg = 0x338f;\n  t.squarekm = 0x339e;\n  t.squarekmcapital = 0x33ce;\n  t.squareln = 0x33d1;\n  t.squarelog = 0x33d2;\n  t.squaremg = 0x338e;\n  t.squaremil = 0x33d5;\n  t.squaremm = 0x339c;\n  t.squaremsquared = 0x33a1;\n  t.squareorthogonalcrosshatchfill = 0x25a6;\n  t.squareupperlefttolowerrightfill = 0x25a7;\n  t.squareupperrighttolowerleftfill = 0x25a8;\n  t.squareverticalfill = 0x25a5;\n  t.squarewhitewithsmallblack = 0x25a3;\n  t.srsquare = 0x33db;\n  t.ssabengali = 0x09b7;\n  t.ssadeva = 0x0937;\n  t.ssagujarati = 0x0ab7;\n  t.ssangcieuckorean = 0x3149;\n  t.ssanghieuhkorean = 0x3185;\n  t.ssangieungkorean = 0x3180;\n  t.ssangkiyeokkorean = 0x3132;\n  t.ssangnieunkorean = 0x3165;\n  t.ssangpieupkorean = 0x3143;\n  t.ssangsioskorean = 0x3146;\n  t.ssangtikeutkorean = 0x3138;\n  t.ssuperior = 0xf6f2;\n  t.sterling = 0x00a3;\n  t.sterlingmonospace = 0xffe1;\n  t.strokelongoverlaycmb = 0x0336;\n  t.strokeshortoverlaycmb = 0x0335;\n  t.subset = 0x2282;\n  t.subsetnotequal = 0x228a;\n  t.subsetorequal = 0x2286;\n  t.succeeds = 0x227b;\n  t.suchthat = 0x220b;\n  t.suhiragana = 0x3059;\n  t.sukatakana = 0x30b9;\n  t.sukatakanahalfwidth = 0xff7d;\n  t.sukunarabic = 0x0652;\n  t.summation = 0x2211;\n  t.sun = 0x263c;\n  t.superset = 0x2283;\n  t.supersetnotequal = 0x228b;\n  t.supersetorequal = 0x2287;\n  t.svsquare = 0x33dc;\n  t.syouwaerasquare = 0x337c;\n  t.t = 0x0074;\n  t.tabengali = 0x09a4;\n  t.tackdown = 0x22a4;\n  t.tackleft = 0x22a3;\n  t.tadeva = 0x0924;\n  t.tagujarati = 0x0aa4;\n  t.tagurmukhi = 0x0a24;\n  t.taharabic = 0x0637;\n  t.tahfinalarabic = 0xfec2;\n  t.tahinitialarabic = 0xfec3;\n  t.tahiragana = 0x305f;\n  t.tahmedialarabic = 0xfec4;\n  t.taisyouerasquare = 0x337d;\n  t.takatakana = 0x30bf;\n  t.takatakanahalfwidth = 0xff80;\n  t.tatweelarabic = 0x0640;\n  t.tau = 0x03c4;\n  t.tav = 0x05ea;\n  t.tavdages = 0xfb4a;\n  t.tavdagesh = 0xfb4a;\n  t.tavdageshhebrew = 0xfb4a;\n  t.tavhebrew = 0x05ea;\n  t.tbar = 0x0167;\n  t.tbopomofo = 0x310a;\n  t.tcaron = 0x0165;\n  t.tccurl = 0x02a8;\n  t.tcedilla = 0x0163;\n  t.tcheharabic = 0x0686;\n  t.tchehfinalarabic = 0xfb7b;\n  t.tchehinitialarabic = 0xfb7c;\n  t.tchehmedialarabic = 0xfb7d;\n  t.tcircle = 0x24e3;\n  t.tcircumflexbelow = 0x1e71;\n  t.tcommaaccent = 0x0163;\n  t.tdieresis = 0x1e97;\n  t.tdotaccent = 0x1e6b;\n  t.tdotbelow = 0x1e6d;\n  t.tecyrillic = 0x0442;\n  t.tedescendercyrillic = 0x04ad;\n  t.teharabic = 0x062a;\n  t.tehfinalarabic = 0xfe96;\n  t.tehhahinitialarabic = 0xfca2;\n  t.tehhahisolatedarabic = 0xfc0c;\n  t.tehinitialarabic = 0xfe97;\n  t.tehiragana = 0x3066;\n  t.tehjeeminitialarabic = 0xfca1;\n  t.tehjeemisolatedarabic = 0xfc0b;\n  t.tehmarbutaarabic = 0x0629;\n  t.tehmarbutafinalarabic = 0xfe94;\n  t.tehmedialarabic = 0xfe98;\n  t.tehmeeminitialarabic = 0xfca4;\n  t.tehmeemisolatedarabic = 0xfc0e;\n  t.tehnoonfinalarabic = 0xfc73;\n  t.tekatakana = 0x30c6;\n  t.tekatakanahalfwidth = 0xff83;\n  t.telephone = 0x2121;\n  t.telephoneblack = 0x260e;\n  t.telishagedolahebrew = 0x05a0;\n  t.telishaqetanahebrew = 0x05a9;\n  t.tencircle = 0x2469;\n  t.tenideographicparen = 0x3229;\n  t.tenparen = 0x247d;\n  t.tenperiod = 0x2491;\n  t.tenroman = 0x2179;\n  t.tesh = 0x02a7;\n  t.tet = 0x05d8;\n  t.tetdagesh = 0xfb38;\n  t.tetdageshhebrew = 0xfb38;\n  t.tethebrew = 0x05d8;\n  t.tetsecyrillic = 0x04b5;\n  t.tevirhebrew = 0x059b;\n  t.tevirlefthebrew = 0x059b;\n  t.thabengali = 0x09a5;\n  t.thadeva = 0x0925;\n  t.thagujarati = 0x0aa5;\n  t.thagurmukhi = 0x0a25;\n  t.thalarabic = 0x0630;\n  t.thalfinalarabic = 0xfeac;\n  t.thanthakhatlowleftthai = 0xf898;\n  t.thanthakhatlowrightthai = 0xf897;\n  t.thanthakhatthai = 0x0e4c;\n  t.thanthakhatupperleftthai = 0xf896;\n  t.theharabic = 0x062b;\n  t.thehfinalarabic = 0xfe9a;\n  t.thehinitialarabic = 0xfe9b;\n  t.thehmedialarabic = 0xfe9c;\n  t.thereexists = 0x2203;\n  t.therefore = 0x2234;\n  t.theta = 0x03b8;\n  t.theta1 = 0x03d1;\n  t.thetasymbolgreek = 0x03d1;\n  t.thieuthacirclekorean = 0x3279;\n  t.thieuthaparenkorean = 0x3219;\n  t.thieuthcirclekorean = 0x326b;\n  t.thieuthkorean = 0x314c;\n  t.thieuthparenkorean = 0x320b;\n  t.thirteencircle = 0x246c;\n  t.thirteenparen = 0x2480;\n  t.thirteenperiod = 0x2494;\n  t.thonangmonthothai = 0x0e11;\n  t.thook = 0x01ad;\n  t.thophuthaothai = 0x0e12;\n  t.thorn = 0x00fe;\n  t.thothahanthai = 0x0e17;\n  t.thothanthai = 0x0e10;\n  t.thothongthai = 0x0e18;\n  t.thothungthai = 0x0e16;\n  t.thousandcyrillic = 0x0482;\n  t.thousandsseparatorarabic = 0x066c;\n  t.thousandsseparatorpersian = 0x066c;\n  t.three = 0x0033;\n  t.threearabic = 0x0663;\n  t.threebengali = 0x09e9;\n  t.threecircle = 0x2462;\n  t.threecircleinversesansserif = 0x278c;\n  t.threedeva = 0x0969;\n  t.threeeighths = 0x215c;\n  t.threegujarati = 0x0ae9;\n  t.threegurmukhi = 0x0a69;\n  t.threehackarabic = 0x0663;\n  t.threehangzhou = 0x3023;\n  t.threeideographicparen = 0x3222;\n  t.threeinferior = 0x2083;\n  t.threemonospace = 0xff13;\n  t.threenumeratorbengali = 0x09f6;\n  t.threeoldstyle = 0xf733;\n  t.threeparen = 0x2476;\n  t.threeperiod = 0x248a;\n  t.threepersian = 0x06f3;\n  t.threequarters = 0x00be;\n  t.threequartersemdash = 0xf6de;\n  t.threeroman = 0x2172;\n  t.threesuperior = 0x00b3;\n  t.threethai = 0x0e53;\n  t.thzsquare = 0x3394;\n  t.tihiragana = 0x3061;\n  t.tikatakana = 0x30c1;\n  t.tikatakanahalfwidth = 0xff81;\n  t.tikeutacirclekorean = 0x3270;\n  t.tikeutaparenkorean = 0x3210;\n  t.tikeutcirclekorean = 0x3262;\n  t.tikeutkorean = 0x3137;\n  t.tikeutparenkorean = 0x3202;\n  t.tilde = 0x02dc;\n  t.tildebelowcmb = 0x0330;\n  t.tildecmb = 0x0303;\n  t.tildecomb = 0x0303;\n  t.tildedoublecmb = 0x0360;\n  t.tildeoperator = 0x223c;\n  t.tildeoverlaycmb = 0x0334;\n  t.tildeverticalcmb = 0x033e;\n  t.timescircle = 0x2297;\n  t.tipehahebrew = 0x0596;\n  t.tipehalefthebrew = 0x0596;\n  t.tippigurmukhi = 0x0a70;\n  t.titlocyrilliccmb = 0x0483;\n  t.tiwnarmenian = 0x057f;\n  t.tlinebelow = 0x1e6f;\n  t.tmonospace = 0xff54;\n  t.toarmenian = 0x0569;\n  t.tohiragana = 0x3068;\n  t.tokatakana = 0x30c8;\n  t.tokatakanahalfwidth = 0xff84;\n  t.tonebarextrahighmod = 0x02e5;\n  t.tonebarextralowmod = 0x02e9;\n  t.tonebarhighmod = 0x02e6;\n  t.tonebarlowmod = 0x02e8;\n  t.tonebarmidmod = 0x02e7;\n  t.tonefive = 0x01bd;\n  t.tonesix = 0x0185;\n  t.tonetwo = 0x01a8;\n  t.tonos = 0x0384;\n  t.tonsquare = 0x3327;\n  t.topatakthai = 0x0e0f;\n  t.tortoiseshellbracketleft = 0x3014;\n  t.tortoiseshellbracketleftsmall = 0xfe5d;\n  t.tortoiseshellbracketleftvertical = 0xfe39;\n  t.tortoiseshellbracketright = 0x3015;\n  t.tortoiseshellbracketrightsmall = 0xfe5e;\n  t.tortoiseshellbracketrightvertical = 0xfe3a;\n  t.totaothai = 0x0e15;\n  t.tpalatalhook = 0x01ab;\n  t.tparen = 0x24af;\n  t.trademark = 0x2122;\n  t.trademarksans = 0xf8ea;\n  t.trademarkserif = 0xf6db;\n  t.tretroflexhook = 0x0288;\n  t.triagdn = 0x25bc;\n  t.triaglf = 0x25c4;\n  t.triagrt = 0x25ba;\n  t.triagup = 0x25b2;\n  t.ts = 0x02a6;\n  t.tsadi = 0x05e6;\n  t.tsadidagesh = 0xfb46;\n  t.tsadidageshhebrew = 0xfb46;\n  t.tsadihebrew = 0x05e6;\n  t.tsecyrillic = 0x0446;\n  t.tsere = 0x05b5;\n  t.tsere12 = 0x05b5;\n  t.tsere1e = 0x05b5;\n  t.tsere2b = 0x05b5;\n  t.tserehebrew = 0x05b5;\n  t.tserenarrowhebrew = 0x05b5;\n  t.tserequarterhebrew = 0x05b5;\n  t.tserewidehebrew = 0x05b5;\n  t.tshecyrillic = 0x045b;\n  t.tsuperior = 0xf6f3;\n  t.ttabengali = 0x099f;\n  t.ttadeva = 0x091f;\n  t.ttagujarati = 0x0a9f;\n  t.ttagurmukhi = 0x0a1f;\n  t.tteharabic = 0x0679;\n  t.ttehfinalarabic = 0xfb67;\n  t.ttehinitialarabic = 0xfb68;\n  t.ttehmedialarabic = 0xfb69;\n  t.tthabengali = 0x09a0;\n  t.tthadeva = 0x0920;\n  t.tthagujarati = 0x0aa0;\n  t.tthagurmukhi = 0x0a20;\n  t.tturned = 0x0287;\n  t.tuhiragana = 0x3064;\n  t.tukatakana = 0x30c4;\n  t.tukatakanahalfwidth = 0xff82;\n  t.tusmallhiragana = 0x3063;\n  t.tusmallkatakana = 0x30c3;\n  t.tusmallkatakanahalfwidth = 0xff6f;\n  t.twelvecircle = 0x246b;\n  t.twelveparen = 0x247f;\n  t.twelveperiod = 0x2493;\n  t.twelveroman = 0x217b;\n  t.twentycircle = 0x2473;\n  t.twentyhangzhou = 0x5344;\n  t.twentyparen = 0x2487;\n  t.twentyperiod = 0x249b;\n  t.two = 0x0032;\n  t.twoarabic = 0x0662;\n  t.twobengali = 0x09e8;\n  t.twocircle = 0x2461;\n  t.twocircleinversesansserif = 0x278b;\n  t.twodeva = 0x0968;\n  t.twodotenleader = 0x2025;\n  t.twodotleader = 0x2025;\n  t.twodotleadervertical = 0xfe30;\n  t.twogujarati = 0x0ae8;\n  t.twogurmukhi = 0x0a68;\n  t.twohackarabic = 0x0662;\n  t.twohangzhou = 0x3022;\n  t.twoideographicparen = 0x3221;\n  t.twoinferior = 0x2082;\n  t.twomonospace = 0xff12;\n  t.twonumeratorbengali = 0x09f5;\n  t.twooldstyle = 0xf732;\n  t.twoparen = 0x2475;\n  t.twoperiod = 0x2489;\n  t.twopersian = 0x06f2;\n  t.tworoman = 0x2171;\n  t.twostroke = 0x01bb;\n  t.twosuperior = 0x00b2;\n  t.twothai = 0x0e52;\n  t.twothirds = 0x2154;\n  t.u = 0x0075;\n  t.uacute = 0x00fa;\n  t.ubar = 0x0289;\n  t.ubengali = 0x0989;\n  t.ubopomofo = 0x3128;\n  t.ubreve = 0x016d;\n  t.ucaron = 0x01d4;\n  t.ucircle = 0x24e4;\n  t.ucircumflex = 0x00fb;\n  t.ucircumflexbelow = 0x1e77;\n  t.ucyrillic = 0x0443;\n  t.udattadeva = 0x0951;\n  t.udblacute = 0x0171;\n  t.udblgrave = 0x0215;\n  t.udeva = 0x0909;\n  t.udieresis = 0x00fc;\n  t.udieresisacute = 0x01d8;\n  t.udieresisbelow = 0x1e73;\n  t.udieresiscaron = 0x01da;\n  t.udieresiscyrillic = 0x04f1;\n  t.udieresisgrave = 0x01dc;\n  t.udieresismacron = 0x01d6;\n  t.udotbelow = 0x1ee5;\n  t.ugrave = 0x00f9;\n  t.ugujarati = 0x0a89;\n  t.ugurmukhi = 0x0a09;\n  t.uhiragana = 0x3046;\n  t.uhookabove = 0x1ee7;\n  t.uhorn = 0x01b0;\n  t.uhornacute = 0x1ee9;\n  t.uhorndotbelow = 0x1ef1;\n  t.uhorngrave = 0x1eeb;\n  t.uhornhookabove = 0x1eed;\n  t.uhorntilde = 0x1eef;\n  t.uhungarumlaut = 0x0171;\n  t.uhungarumlautcyrillic = 0x04f3;\n  t.uinvertedbreve = 0x0217;\n  t.ukatakana = 0x30a6;\n  t.ukatakanahalfwidth = 0xff73;\n  t.ukcyrillic = 0x0479;\n  t.ukorean = 0x315c;\n  t.umacron = 0x016b;\n  t.umacroncyrillic = 0x04ef;\n  t.umacrondieresis = 0x1e7b;\n  t.umatragurmukhi = 0x0a41;\n  t.umonospace = 0xff55;\n  t.underscore = 0x005f;\n  t.underscoredbl = 0x2017;\n  t.underscoremonospace = 0xff3f;\n  t.underscorevertical = 0xfe33;\n  t.underscorewavy = 0xfe4f;\n  t.union = 0x222a;\n  t.universal = 0x2200;\n  t.uogonek = 0x0173;\n  t.uparen = 0x24b0;\n  t.upblock = 0x2580;\n  t.upperdothebrew = 0x05c4;\n  t.upsilon = 0x03c5;\n  t.upsilondieresis = 0x03cb;\n  t.upsilondieresistonos = 0x03b0;\n  t.upsilonlatin = 0x028a;\n  t.upsilontonos = 0x03cd;\n  t.uptackbelowcmb = 0x031d;\n  t.uptackmod = 0x02d4;\n  t.uragurmukhi = 0x0a73;\n  t.uring = 0x016f;\n  t.ushortcyrillic = 0x045e;\n  t.usmallhiragana = 0x3045;\n  t.usmallkatakana = 0x30a5;\n  t.usmallkatakanahalfwidth = 0xff69;\n  t.ustraightcyrillic = 0x04af;\n  t.ustraightstrokecyrillic = 0x04b1;\n  t.utilde = 0x0169;\n  t.utildeacute = 0x1e79;\n  t.utildebelow = 0x1e75;\n  t.uubengali = 0x098a;\n  t.uudeva = 0x090a;\n  t.uugujarati = 0x0a8a;\n  t.uugurmukhi = 0x0a0a;\n  t.uumatragurmukhi = 0x0a42;\n  t.uuvowelsignbengali = 0x09c2;\n  t.uuvowelsigndeva = 0x0942;\n  t.uuvowelsigngujarati = 0x0ac2;\n  t.uvowelsignbengali = 0x09c1;\n  t.uvowelsigndeva = 0x0941;\n  t.uvowelsigngujarati = 0x0ac1;\n  t.v = 0x0076;\n  t.vadeva = 0x0935;\n  t.vagujarati = 0x0ab5;\n  t.vagurmukhi = 0x0a35;\n  t.vakatakana = 0x30f7;\n  t.vav = 0x05d5;\n  t.vavdagesh = 0xfb35;\n  t.vavdagesh65 = 0xfb35;\n  t.vavdageshhebrew = 0xfb35;\n  t.vavhebrew = 0x05d5;\n  t.vavholam = 0xfb4b;\n  t.vavholamhebrew = 0xfb4b;\n  t.vavvavhebrew = 0x05f0;\n  t.vavyodhebrew = 0x05f1;\n  t.vcircle = 0x24e5;\n  t.vdotbelow = 0x1e7f;\n  t.vecyrillic = 0x0432;\n  t.veharabic = 0x06a4;\n  t.vehfinalarabic = 0xfb6b;\n  t.vehinitialarabic = 0xfb6c;\n  t.vehmedialarabic = 0xfb6d;\n  t.vekatakana = 0x30f9;\n  t.venus = 0x2640;\n  t.verticalbar = 0x007c;\n  t.verticallineabovecmb = 0x030d;\n  t.verticallinebelowcmb = 0x0329;\n  t.verticallinelowmod = 0x02cc;\n  t.verticallinemod = 0x02c8;\n  t.vewarmenian = 0x057e;\n  t.vhook = 0x028b;\n  t.vikatakana = 0x30f8;\n  t.viramabengali = 0x09cd;\n  t.viramadeva = 0x094d;\n  t.viramagujarati = 0x0acd;\n  t.visargabengali = 0x0983;\n  t.visargadeva = 0x0903;\n  t.visargagujarati = 0x0a83;\n  t.vmonospace = 0xff56;\n  t.voarmenian = 0x0578;\n  t.voicediterationhiragana = 0x309e;\n  t.voicediterationkatakana = 0x30fe;\n  t.voicedmarkkana = 0x309b;\n  t.voicedmarkkanahalfwidth = 0xff9e;\n  t.vokatakana = 0x30fa;\n  t.vparen = 0x24b1;\n  t.vtilde = 0x1e7d;\n  t.vturned = 0x028c;\n  t.vuhiragana = 0x3094;\n  t.vukatakana = 0x30f4;\n  t.w = 0x0077;\n  t.wacute = 0x1e83;\n  t.waekorean = 0x3159;\n  t.wahiragana = 0x308f;\n  t.wakatakana = 0x30ef;\n  t.wakatakanahalfwidth = 0xff9c;\n  t.wakorean = 0x3158;\n  t.wasmallhiragana = 0x308e;\n  t.wasmallkatakana = 0x30ee;\n  t.wattosquare = 0x3357;\n  t.wavedash = 0x301c;\n  t.wavyunderscorevertical = 0xfe34;\n  t.wawarabic = 0x0648;\n  t.wawfinalarabic = 0xfeee;\n  t.wawhamzaabovearabic = 0x0624;\n  t.wawhamzaabovefinalarabic = 0xfe86;\n  t.wbsquare = 0x33dd;\n  t.wcircle = 0x24e6;\n  t.wcircumflex = 0x0175;\n  t.wdieresis = 0x1e85;\n  t.wdotaccent = 0x1e87;\n  t.wdotbelow = 0x1e89;\n  t.wehiragana = 0x3091;\n  t.weierstrass = 0x2118;\n  t.wekatakana = 0x30f1;\n  t.wekorean = 0x315e;\n  t.weokorean = 0x315d;\n  t.wgrave = 0x1e81;\n  t.whitebullet = 0x25e6;\n  t.whitecircle = 0x25cb;\n  t.whitecircleinverse = 0x25d9;\n  t.whitecornerbracketleft = 0x300e;\n  t.whitecornerbracketleftvertical = 0xfe43;\n  t.whitecornerbracketright = 0x300f;\n  t.whitecornerbracketrightvertical = 0xfe44;\n  t.whitediamond = 0x25c7;\n  t.whitediamondcontainingblacksmalldiamond = 0x25c8;\n  t.whitedownpointingsmalltriangle = 0x25bf;\n  t.whitedownpointingtriangle = 0x25bd;\n  t.whiteleftpointingsmalltriangle = 0x25c3;\n  t.whiteleftpointingtriangle = 0x25c1;\n  t.whitelenticularbracketleft = 0x3016;\n  t.whitelenticularbracketright = 0x3017;\n  t.whiterightpointingsmalltriangle = 0x25b9;\n  t.whiterightpointingtriangle = 0x25b7;\n  t.whitesmallsquare = 0x25ab;\n  t.whitesmilingface = 0x263a;\n  t.whitesquare = 0x25a1;\n  t.whitestar = 0x2606;\n  t.whitetelephone = 0x260f;\n  t.whitetortoiseshellbracketleft = 0x3018;\n  t.whitetortoiseshellbracketright = 0x3019;\n  t.whiteuppointingsmalltriangle = 0x25b5;\n  t.whiteuppointingtriangle = 0x25b3;\n  t.wihiragana = 0x3090;\n  t.wikatakana = 0x30f0;\n  t.wikorean = 0x315f;\n  t.wmonospace = 0xff57;\n  t.wohiragana = 0x3092;\n  t.wokatakana = 0x30f2;\n  t.wokatakanahalfwidth = 0xff66;\n  t.won = 0x20a9;\n  t.wonmonospace = 0xffe6;\n  t.wowaenthai = 0x0e27;\n  t.wparen = 0x24b2;\n  t.wring = 0x1e98;\n  t.wsuperior = 0x02b7;\n  t.wturned = 0x028d;\n  t.wynn = 0x01bf;\n  t.x = 0x0078;\n  t.xabovecmb = 0x033d;\n  t.xbopomofo = 0x3112;\n  t.xcircle = 0x24e7;\n  t.xdieresis = 0x1e8d;\n  t.xdotaccent = 0x1e8b;\n  t.xeharmenian = 0x056d;\n  t.xi = 0x03be;\n  t.xmonospace = 0xff58;\n  t.xparen = 0x24b3;\n  t.xsuperior = 0x02e3;\n  t.y = 0x0079;\n  t.yaadosquare = 0x334e;\n  t.yabengali = 0x09af;\n  t.yacute = 0x00fd;\n  t.yadeva = 0x092f;\n  t.yaekorean = 0x3152;\n  t.yagujarati = 0x0aaf;\n  t.yagurmukhi = 0x0a2f;\n  t.yahiragana = 0x3084;\n  t.yakatakana = 0x30e4;\n  t.yakatakanahalfwidth = 0xff94;\n  t.yakorean = 0x3151;\n  t.yamakkanthai = 0x0e4e;\n  t.yasmallhiragana = 0x3083;\n  t.yasmallkatakana = 0x30e3;\n  t.yasmallkatakanahalfwidth = 0xff6c;\n  t.yatcyrillic = 0x0463;\n  t.ycircle = 0x24e8;\n  t.ycircumflex = 0x0177;\n  t.ydieresis = 0x00ff;\n  t.ydotaccent = 0x1e8f;\n  t.ydotbelow = 0x1ef5;\n  t.yeharabic = 0x064a;\n  t.yehbarreearabic = 0x06d2;\n  t.yehbarreefinalarabic = 0xfbaf;\n  t.yehfinalarabic = 0xfef2;\n  t.yehhamzaabovearabic = 0x0626;\n  t.yehhamzaabovefinalarabic = 0xfe8a;\n  t.yehhamzaaboveinitialarabic = 0xfe8b;\n  t.yehhamzaabovemedialarabic = 0xfe8c;\n  t.yehinitialarabic = 0xfef3;\n  t.yehmedialarabic = 0xfef4;\n  t.yehmeeminitialarabic = 0xfcdd;\n  t.yehmeemisolatedarabic = 0xfc58;\n  t.yehnoonfinalarabic = 0xfc94;\n  t.yehthreedotsbelowarabic = 0x06d1;\n  t.yekorean = 0x3156;\n  t.yen = 0x00a5;\n  t.yenmonospace = 0xffe5;\n  t.yeokorean = 0x3155;\n  t.yeorinhieuhkorean = 0x3186;\n  t.yerahbenyomohebrew = 0x05aa;\n  t.yerahbenyomolefthebrew = 0x05aa;\n  t.yericyrillic = 0x044b;\n  t.yerudieresiscyrillic = 0x04f9;\n  t.yesieungkorean = 0x3181;\n  t.yesieungpansioskorean = 0x3183;\n  t.yesieungsioskorean = 0x3182;\n  t.yetivhebrew = 0x059a;\n  t.ygrave = 0x1ef3;\n  t.yhook = 0x01b4;\n  t.yhookabove = 0x1ef7;\n  t.yiarmenian = 0x0575;\n  t.yicyrillic = 0x0457;\n  t.yikorean = 0x3162;\n  t.yinyang = 0x262f;\n  t.yiwnarmenian = 0x0582;\n  t.ymonospace = 0xff59;\n  t.yod = 0x05d9;\n  t.yoddagesh = 0xfb39;\n  t.yoddageshhebrew = 0xfb39;\n  t.yodhebrew = 0x05d9;\n  t.yodyodhebrew = 0x05f2;\n  t.yodyodpatahhebrew = 0xfb1f;\n  t.yohiragana = 0x3088;\n  t.yoikorean = 0x3189;\n  t.yokatakana = 0x30e8;\n  t.yokatakanahalfwidth = 0xff96;\n  t.yokorean = 0x315b;\n  t.yosmallhiragana = 0x3087;\n  t.yosmallkatakana = 0x30e7;\n  t.yosmallkatakanahalfwidth = 0xff6e;\n  t.yotgreek = 0x03f3;\n  t.yoyaekorean = 0x3188;\n  t.yoyakorean = 0x3187;\n  t.yoyakthai = 0x0e22;\n  t.yoyingthai = 0x0e0d;\n  t.yparen = 0x24b4;\n  t.ypogegrammeni = 0x037a;\n  t.ypogegrammenigreekcmb = 0x0345;\n  t.yr = 0x01a6;\n  t.yring = 0x1e99;\n  t.ysuperior = 0x02b8;\n  t.ytilde = 0x1ef9;\n  t.yturned = 0x028e;\n  t.yuhiragana = 0x3086;\n  t.yuikorean = 0x318c;\n  t.yukatakana = 0x30e6;\n  t.yukatakanahalfwidth = 0xff95;\n  t.yukorean = 0x3160;\n  t.yusbigcyrillic = 0x046b;\n  t.yusbigiotifiedcyrillic = 0x046d;\n  t.yuslittlecyrillic = 0x0467;\n  t.yuslittleiotifiedcyrillic = 0x0469;\n  t.yusmallhiragana = 0x3085;\n  t.yusmallkatakana = 0x30e5;\n  t.yusmallkatakanahalfwidth = 0xff6d;\n  t.yuyekorean = 0x318b;\n  t.yuyeokorean = 0x318a;\n  t.yyabengali = 0x09df;\n  t.yyadeva = 0x095f;\n  t.z = 0x007a;\n  t.zaarmenian = 0x0566;\n  t.zacute = 0x017a;\n  t.zadeva = 0x095b;\n  t.zagurmukhi = 0x0a5b;\n  t.zaharabic = 0x0638;\n  t.zahfinalarabic = 0xfec6;\n  t.zahinitialarabic = 0xfec7;\n  t.zahiragana = 0x3056;\n  t.zahmedialarabic = 0xfec8;\n  t.zainarabic = 0x0632;\n  t.zainfinalarabic = 0xfeb0;\n  t.zakatakana = 0x30b6;\n  t.zaqefgadolhebrew = 0x0595;\n  t.zaqefqatanhebrew = 0x0594;\n  t.zarqahebrew = 0x0598;\n  t.zayin = 0x05d6;\n  t.zayindagesh = 0xfb36;\n  t.zayindageshhebrew = 0xfb36;\n  t.zayinhebrew = 0x05d6;\n  t.zbopomofo = 0x3117;\n  t.zcaron = 0x017e;\n  t.zcircle = 0x24e9;\n  t.zcircumflex = 0x1e91;\n  t.zcurl = 0x0291;\n  t.zdot = 0x017c;\n  t.zdotaccent = 0x017c;\n  t.zdotbelow = 0x1e93;\n  t.zecyrillic = 0x0437;\n  t.zedescendercyrillic = 0x0499;\n  t.zedieresiscyrillic = 0x04df;\n  t.zehiragana = 0x305c;\n  t.zekatakana = 0x30bc;\n  t.zero = 0x0030;\n  t.zeroarabic = 0x0660;\n  t.zerobengali = 0x09e6;\n  t.zerodeva = 0x0966;\n  t.zerogujarati = 0x0ae6;\n  t.zerogurmukhi = 0x0a66;\n  t.zerohackarabic = 0x0660;\n  t.zeroinferior = 0x2080;\n  t.zeromonospace = 0xff10;\n  t.zerooldstyle = 0xf730;\n  t.zeropersian = 0x06f0;\n  t.zerosuperior = 0x2070;\n  t.zerothai = 0x0e50;\n  t.zerowidthjoiner = 0xfeff;\n  t.zerowidthnonjoiner = 0x200c;\n  t.zerowidthspace = 0x200b;\n  t.zeta = 0x03b6;\n  t.zhbopomofo = 0x3113;\n  t.zhearmenian = 0x056a;\n  t.zhebrevecyrillic = 0x04c2;\n  t.zhecyrillic = 0x0436;\n  t.zhedescendercyrillic = 0x0497;\n  t.zhedieresiscyrillic = 0x04dd;\n  t.zihiragana = 0x3058;\n  t.zikatakana = 0x30b8;\n  t.zinorhebrew = 0x05ae;\n  t.zlinebelow = 0x1e95;\n  t.zmonospace = 0xff5a;\n  t.zohiragana = 0x305e;\n  t.zokatakana = 0x30be;\n  t.zparen = 0x24b5;\n  t.zretroflexhook = 0x0290;\n  t.zstroke = 0x01b6;\n  t.zuhiragana = 0x305a;\n  t.zukatakana = 0x30ba;\n  t[\".notdef\"] = 0x0000;\n\n  // TeX-specific glyph names.\n  t.angbracketleftbig = 0x2329;\n  t.angbracketleftBig = 0x2329;\n  t.angbracketleftbigg = 0x2329;\n  t.angbracketleftBigg = 0x2329;\n  t.angbracketrightBig = 0x232a;\n  t.angbracketrightbig = 0x232a;\n  t.angbracketrightBigg = 0x232a;\n  t.angbracketrightbigg = 0x232a;\n  t.arrowhookleft = 0x21aa;\n  t.arrowhookright = 0x21a9;\n  t.arrowlefttophalf = 0x21bc;\n  t.arrowleftbothalf = 0x21bd;\n  t.arrownortheast = 0x2197;\n  t.arrownorthwest = 0x2196;\n  t.arrowrighttophalf = 0x21c0;\n  t.arrowrightbothalf = 0x21c1;\n  t.arrowsoutheast = 0x2198;\n  t.arrowsouthwest = 0x2199;\n  t.backslashbig = 0x2216;\n  t.backslashBig = 0x2216;\n  t.backslashBigg = 0x2216;\n  t.backslashbigg = 0x2216;\n  t.bardbl = 0x2016;\n  t.bracehtipdownleft = 0xfe37;\n  t.bracehtipdownright = 0xfe37;\n  t.bracehtipupleft = 0xfe38;\n  t.bracehtipupright = 0xfe38;\n  t.braceleftBig = 0x007b;\n  t.braceleftbig = 0x007b;\n  t.braceleftbigg = 0x007b;\n  t.braceleftBigg = 0x007b;\n  t.bracerightBig = 0x007d;\n  t.bracerightbig = 0x007d;\n  t.bracerightbigg = 0x007d;\n  t.bracerightBigg = 0x007d;\n  t.bracketleftbig = 0x005b;\n  t.bracketleftBig = 0x005b;\n  t.bracketleftbigg = 0x005b;\n  t.bracketleftBigg = 0x005b;\n  t.bracketrightBig = 0x005d;\n  t.bracketrightbig = 0x005d;\n  t.bracketrightbigg = 0x005d;\n  t.bracketrightBigg = 0x005d;\n  t.ceilingleftbig = 0x2308;\n  t.ceilingleftBig = 0x2308;\n  t.ceilingleftBigg = 0x2308;\n  t.ceilingleftbigg = 0x2308;\n  t.ceilingrightbig = 0x2309;\n  t.ceilingrightBig = 0x2309;\n  t.ceilingrightbigg = 0x2309;\n  t.ceilingrightBigg = 0x2309;\n  t.circledotdisplay = 0x2299;\n  t.circledottext = 0x2299;\n  t.circlemultiplydisplay = 0x2297;\n  t.circlemultiplytext = 0x2297;\n  t.circleplusdisplay = 0x2295;\n  t.circleplustext = 0x2295;\n  t.contintegraldisplay = 0x222e;\n  t.contintegraltext = 0x222e;\n  t.coproductdisplay = 0x2210;\n  t.coproducttext = 0x2210;\n  t.floorleftBig = 0x230a;\n  t.floorleftbig = 0x230a;\n  t.floorleftbigg = 0x230a;\n  t.floorleftBigg = 0x230a;\n  t.floorrightbig = 0x230b;\n  t.floorrightBig = 0x230b;\n  t.floorrightBigg = 0x230b;\n  t.floorrightbigg = 0x230b;\n  t.hatwide = 0x0302;\n  t.hatwider = 0x0302;\n  t.hatwidest = 0x0302;\n  t.intercal = 0x1d40;\n  t.integraldisplay = 0x222b;\n  t.integraltext = 0x222b;\n  t.intersectiondisplay = 0x22c2;\n  t.intersectiontext = 0x22c2;\n  t.logicalanddisplay = 0x2227;\n  t.logicalandtext = 0x2227;\n  t.logicalordisplay = 0x2228;\n  t.logicalortext = 0x2228;\n  t.parenleftBig = 0x0028;\n  t.parenleftbig = 0x0028;\n  t.parenleftBigg = 0x0028;\n  t.parenleftbigg = 0x0028;\n  t.parenrightBig = 0x0029;\n  t.parenrightbig = 0x0029;\n  t.parenrightBigg = 0x0029;\n  t.parenrightbigg = 0x0029;\n  t.prime = 0x2032;\n  t.productdisplay = 0x220f;\n  t.producttext = 0x220f;\n  t.radicalbig = 0x221a;\n  t.radicalBig = 0x221a;\n  t.radicalBigg = 0x221a;\n  t.radicalbigg = 0x221a;\n  t.radicalbt = 0x221a;\n  t.radicaltp = 0x221a;\n  t.radicalvertex = 0x221a;\n  t.slashbig = 0x002f;\n  t.slashBig = 0x002f;\n  t.slashBigg = 0x002f;\n  t.slashbigg = 0x002f;\n  t.summationdisplay = 0x2211;\n  t.summationtext = 0x2211;\n  t.tildewide = 0x02dc;\n  t.tildewider = 0x02dc;\n  t.tildewidest = 0x02dc;\n  t.uniondisplay = 0x22c3;\n  t.unionmultidisplay = 0x228e;\n  t.unionmultitext = 0x228e;\n  t.unionsqdisplay = 0x2294;\n  t.unionsqtext = 0x2294;\n  t.uniontext = 0x22c3;\n  t.vextenddouble = 0x2225;\n  t.vextendsingle = 0x2223;\n});\n\nconst getDingbatsGlyphsUnicode = getLookupTableFactory(function (t) {\n  t.space = 0x0020;\n  t.a1 = 0x2701;\n  t.a2 = 0x2702;\n  t.a202 = 0x2703;\n  t.a3 = 0x2704;\n  t.a4 = 0x260e;\n  t.a5 = 0x2706;\n  t.a119 = 0x2707;\n  t.a118 = 0x2708;\n  t.a117 = 0x2709;\n  t.a11 = 0x261b;\n  t.a12 = 0x261e;\n  t.a13 = 0x270c;\n  t.a14 = 0x270d;\n  t.a15 = 0x270e;\n  t.a16 = 0x270f;\n  t.a105 = 0x2710;\n  t.a17 = 0x2711;\n  t.a18 = 0x2712;\n  t.a19 = 0x2713;\n  t.a20 = 0x2714;\n  t.a21 = 0x2715;\n  t.a22 = 0x2716;\n  t.a23 = 0x2717;\n  t.a24 = 0x2718;\n  t.a25 = 0x2719;\n  t.a26 = 0x271a;\n  t.a27 = 0x271b;\n  t.a28 = 0x271c;\n  t.a6 = 0x271d;\n  t.a7 = 0x271e;\n  t.a8 = 0x271f;\n  t.a9 = 0x2720;\n  t.a10 = 0x2721;\n  t.a29 = 0x2722;\n  t.a30 = 0x2723;\n  t.a31 = 0x2724;\n  t.a32 = 0x2725;\n  t.a33 = 0x2726;\n  t.a34 = 0x2727;\n  t.a35 = 0x2605;\n  t.a36 = 0x2729;\n  t.a37 = 0x272a;\n  t.a38 = 0x272b;\n  t.a39 = 0x272c;\n  t.a40 = 0x272d;\n  t.a41 = 0x272e;\n  t.a42 = 0x272f;\n  t.a43 = 0x2730;\n  t.a44 = 0x2731;\n  t.a45 = 0x2732;\n  t.a46 = 0x2733;\n  t.a47 = 0x2734;\n  t.a48 = 0x2735;\n  t.a49 = 0x2736;\n  t.a50 = 0x2737;\n  t.a51 = 0x2738;\n  t.a52 = 0x2739;\n  t.a53 = 0x273a;\n  t.a54 = 0x273b;\n  t.a55 = 0x273c;\n  t.a56 = 0x273d;\n  t.a57 = 0x273e;\n  t.a58 = 0x273f;\n  t.a59 = 0x2740;\n  t.a60 = 0x2741;\n  t.a61 = 0x2742;\n  t.a62 = 0x2743;\n  t.a63 = 0x2744;\n  t.a64 = 0x2745;\n  t.a65 = 0x2746;\n  t.a66 = 0x2747;\n  t.a67 = 0x2748;\n  t.a68 = 0x2749;\n  t.a69 = 0x274a;\n  t.a70 = 0x274b;\n  t.a71 = 0x25cf;\n  t.a72 = 0x274d;\n  t.a73 = 0x25a0;\n  t.a74 = 0x274f;\n  t.a203 = 0x2750;\n  t.a75 = 0x2751;\n  t.a204 = 0x2752;\n  t.a76 = 0x25b2;\n  t.a77 = 0x25bc;\n  t.a78 = 0x25c6;\n  t.a79 = 0x2756;\n  t.a81 = 0x25d7;\n  t.a82 = 0x2758;\n  t.a83 = 0x2759;\n  t.a84 = 0x275a;\n  t.a97 = 0x275b;\n  t.a98 = 0x275c;\n  t.a99 = 0x275d;\n  t.a100 = 0x275e;\n  t.a101 = 0x2761;\n  t.a102 = 0x2762;\n  t.a103 = 0x2763;\n  t.a104 = 0x2764;\n  t.a106 = 0x2765;\n  t.a107 = 0x2766;\n  t.a108 = 0x2767;\n  t.a112 = 0x2663;\n  t.a111 = 0x2666;\n  t.a110 = 0x2665;\n  t.a109 = 0x2660;\n  t.a120 = 0x2460;\n  t.a121 = 0x2461;\n  t.a122 = 0x2462;\n  t.a123 = 0x2463;\n  t.a124 = 0x2464;\n  t.a125 = 0x2465;\n  t.a126 = 0x2466;\n  t.a127 = 0x2467;\n  t.a128 = 0x2468;\n  t.a129 = 0x2469;\n  t.a130 = 0x2776;\n  t.a131 = 0x2777;\n  t.a132 = 0x2778;\n  t.a133 = 0x2779;\n  t.a134 = 0x277a;\n  t.a135 = 0x277b;\n  t.a136 = 0x277c;\n  t.a137 = 0x277d;\n  t.a138 = 0x277e;\n  t.a139 = 0x277f;\n  t.a140 = 0x2780;\n  t.a141 = 0x2781;\n  t.a142 = 0x2782;\n  t.a143 = 0x2783;\n  t.a144 = 0x2784;\n  t.a145 = 0x2785;\n  t.a146 = 0x2786;\n  t.a147 = 0x2787;\n  t.a148 = 0x2788;\n  t.a149 = 0x2789;\n  t.a150 = 0x278a;\n  t.a151 = 0x278b;\n  t.a152 = 0x278c;\n  t.a153 = 0x278d;\n  t.a154 = 0x278e;\n  t.a155 = 0x278f;\n  t.a156 = 0x2790;\n  t.a157 = 0x2791;\n  t.a158 = 0x2792;\n  t.a159 = 0x2793;\n  t.a160 = 0x2794;\n  t.a161 = 0x2192;\n  t.a163 = 0x2194;\n  t.a164 = 0x2195;\n  t.a196 = 0x2798;\n  t.a165 = 0x2799;\n  t.a192 = 0x279a;\n  t.a166 = 0x279b;\n  t.a167 = 0x279c;\n  t.a168 = 0x279d;\n  t.a169 = 0x279e;\n  t.a170 = 0x279f;\n  t.a171 = 0x27a0;\n  t.a172 = 0x27a1;\n  t.a173 = 0x27a2;\n  t.a162 = 0x27a3;\n  t.a174 = 0x27a4;\n  t.a175 = 0x27a5;\n  t.a176 = 0x27a6;\n  t.a177 = 0x27a7;\n  t.a178 = 0x27a8;\n  t.a179 = 0x27a9;\n  t.a193 = 0x27aa;\n  t.a180 = 0x27ab;\n  t.a199 = 0x27ac;\n  t.a181 = 0x27ad;\n  t.a200 = 0x27ae;\n  t.a182 = 0x27af;\n  t.a201 = 0x27b1;\n  t.a183 = 0x27b2;\n  t.a184 = 0x27b3;\n  t.a197 = 0x27b4;\n  t.a185 = 0x27b5;\n  t.a194 = 0x27b6;\n  t.a198 = 0x27b7;\n  t.a186 = 0x27b8;\n  t.a195 = 0x27b9;\n  t.a187 = 0x27ba;\n  t.a188 = 0x27bb;\n  t.a189 = 0x27bc;\n  t.a190 = 0x27bd;\n  t.a191 = 0x27be;\n  t.a89 = 0x2768; // 0xF8D7\n  t.a90 = 0x2769; // 0xF8D8\n  t.a93 = 0x276a; // 0xF8D9\n  t.a94 = 0x276b; // 0xF8DA\n  t.a91 = 0x276c; // 0xF8DB\n  t.a92 = 0x276d; // 0xF8DC\n  t.a205 = 0x276e; // 0xF8DD\n  t.a85 = 0x276f; // 0xF8DE\n  t.a206 = 0x2770; // 0xF8DF\n  t.a86 = 0x2771; // 0xF8E0\n  t.a87 = 0x2772; // 0xF8E1\n  t.a88 = 0x2773; // 0xF8E2\n  t.a95 = 0x2774; // 0xF8E3\n  t.a96 = 0x2775; // 0xF8E4\n  t[\".notdef\"] = 0x0000;\n});\n\nexport { getDingbatsGlyphsUnicode, getGlyphsUnicode };\n","/* Copyright 2016 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getLookupTableFactory } from \"./core_utils.js\";\n\n// Some characters, e.g. copyrightserif, are mapped to the private use area\n// and might not be displayed using standard fonts. Mapping/hacking well-known\n// chars to the similar equivalents in the normal characters range.\nconst getSpecialPUASymbols = getLookupTableFactory(function (t) {\n  t[63721] = 0x00a9; // copyrightsans (0xF8E9) => copyright\n  t[63193] = 0x00a9; // copyrightserif (0xF6D9) => copyright\n  t[63720] = 0x00ae; // registersans (0xF8E8) => registered\n  t[63194] = 0x00ae; // registerserif (0xF6DA) => registered\n  t[63722] = 0x2122; // trademarksans (0xF8EA) => trademark\n  t[63195] = 0x2122; // trademarkserif (0xF6DB) => trademark\n  t[63729] = 0x23a7; // bracelefttp (0xF8F1)\n  t[63730] = 0x23a8; // braceleftmid (0xF8F2)\n  t[63731] = 0x23a9; // braceleftbt (0xF8F3)\n  t[63740] = 0x23ab; // bracerighttp (0xF8FC)\n  t[63741] = 0x23ac; // bracerightmid (0xF8FD)\n  t[63742] = 0x23ad; // bracerightbt (0xF8FE)\n  t[63726] = 0x23a1; // bracketlefttp (0xF8EE)\n  t[63727] = 0x23a2; // bracketleftex (0xF8EF)\n  t[63728] = 0x23a3; // bracketleftbt (0xF8F0)\n  t[63737] = 0x23a4; // bracketrighttp (0xF8F9)\n  t[63738] = 0x23a5; // bracketrightex (0xF8FA)\n  t[63739] = 0x23a6; // bracketrightbt (0xF8FB)\n  t[63723] = 0x239b; // parenlefttp (0xF8EB)\n  t[63724] = 0x239c; // parenleftex (0xF8EC)\n  t[63725] = 0x239d; // parenleftbt (0xF8ED)\n  t[63734] = 0x239e; // parenrighttp (0xF8F6)\n  t[63735] = 0x239f; // parenrightex (0xF8F7)\n  t[63736] = 0x23a0; // parenrightbt (0xF8F8)\n});\n\nfunction mapSpecialUnicodeValues(code) {\n  if (code >= 0xfff0 && code <= 0xffff) {\n    // Specials unicode block.\n    return 0;\n  } else if (code >= 0xf600 && code <= 0xf8ff) {\n    return getSpecialPUASymbols()[code] || code;\n  } else if (code === /* softhyphen = */ 0x00ad) {\n    return 0x002d; // hyphen\n  }\n  return code;\n}\n\nfunction getUnicodeForGlyph(name, glyphsUnicodeMap) {\n  let unicode = glyphsUnicodeMap[name];\n  if (unicode !== undefined) {\n    return unicode;\n  }\n  if (!name) {\n    return -1;\n  }\n  // Try to recover valid Unicode values from 'uniXXXX'/'uXXXX{XX}' glyphs.\n  if (name[0] === \"u\") {\n    const nameLen = name.length;\n    let hexStr;\n\n    if (nameLen === 7 && name[1] === \"n\" && name[2] === \"i\") {\n      // 'uniXXXX'\n      hexStr = name.substring(3);\n    } else if (nameLen >= 5 && nameLen <= 7) {\n      // 'uXXXX{XX}'\n      hexStr = name.substring(1);\n    } else {\n      return -1;\n    }\n    // Check for upper-case hexadecimal characters, to avoid false positives.\n    if (hexStr === hexStr.toUpperCase()) {\n      unicode = parseInt(hexStr, 16);\n      if (unicode >= 0) {\n        return unicode;\n      }\n    }\n  }\n  return -1;\n}\n\n// See https://learn.microsoft.com/en-us/typography/opentype/spec/os2#ulunicoderange1-bits-031ulunicoderange2-bits-3263ulunicoderange3-bits-6495ulunicoderange4-bits-96127\nconst UnicodeRanges = [\n  [0x0000, 0x007f], // 0 - Basic Latin\n  [0x0080, 0x00ff], // 1 - Latin-1 Supplement\n  [0x0100, 0x017f], // 2 - Latin Extended-A\n  [0x0180, 0x024f], // 3 - Latin Extended-B\n  [0x0250, 0x02af, 0x1d00, 0x1d7f, 0x1d80, 0x1dbf], // 4 - IPA Extensions - Phonetic Extensions - Phonetic Extensions Supplement\n  [0x02b0, 0x02ff, 0xa700, 0xa71f], // 5 - Spacing Modifier Letters - Modifier Tone Letters\n  [0x0300, 0x036f, 0x1dc0, 0x1dff], // 6 - Combining Diacritical Marks - Combining Diacritical Marks Supplement\n  [0x0370, 0x03ff], // 7 - Greek and Coptic\n  [0x2c80, 0x2cff], // 8 - Coptic\n  [0x0400, 0x04ff, 0x0500, 0x052f, 0x2de0, 0x2dff, 0xa640, 0xa69f], // 9 - Cyrillic - Cyrillic Supplement - Cyrillic Extended-A - Cyrillic Extended-B\n  [0x0530, 0x058f], // 10 - Armenian\n  [0x0590, 0x05ff], // 11 - Hebrew\n  [0xa500, 0xa63f], // 12 - Vai\n  [0x0600, 0x06ff, 0x0750, 0x077f], // 13 - Arabic - Arabic Supplement\n  [0x07c0, 0x07ff], // 14 - NKo\n  [0x0900, 0x097f], // 15 - Devanagari\n  [0x0980, 0x09ff], // 16 - Bengali\n  [0x0a00, 0x0a7f], // 17 - Gurmukhi\n  [0x0a80, 0x0aff], // 18 - Gujarati\n  [0x0b00, 0x0b7f], // 19 - Oriya\n  [0x0b80, 0x0bff], // 20 - Tamil\n  [0x0c00, 0x0c7f], // 21 - Telugu\n  [0x0c80, 0x0cff], // 22 - Kannada\n  [0x0d00, 0x0d7f], // 23 - Malayalam\n  [0x0e00, 0x0e7f], // 24 - Thai\n  [0x0e80, 0x0eff], // 25 - Lao\n  [0x10a0, 0x10ff, 0x2d00, 0x2d2f], // 26 - Georgian - Georgian Supplement\n  [0x1b00, 0x1b7f], // 27 - Balinese\n  [0x1100, 0x11ff], // 28 - Hangul Jamo\n  [0x1e00, 0x1eff, 0x2c60, 0x2c7f, 0xa720, 0xa7ff], // 29 - Latin Extended Additional - Latin Extended-C - Latin Extended-D\n  [0x1f00, 0x1fff], // 30 - Greek Extended\n  [0x2000, 0x206f, 0x2e00, 0x2e7f], // 31 - General Punctuation - Supplemental Punctuation\n  [0x2070, 0x209f], // 32 - Superscripts And Subscripts\n  [0x20a0, 0x20cf], // 33 - Currency Symbol\n  [0x20d0, 0x20ff], // 34 - Combining Diacritical Marks\n  [0x2100, 0x214f], // 35 - Letterlike Symbols\n  [0x2150, 0x218f], // 36 - Number Forms\n  [0x2190, 0x21ff, 0x27f0, 0x27ff, 0x2900, 0x297f, 0x2b00, 0x2bff], // 37 - Arrows - Supplemental Arrows-A - Supplemental Arrows-B - Miscellaneous Symbols and Arrows\n  [0x2200, 0x22ff, 0x2a00, 0x2aff, 0x27c0, 0x27ef, 0x2980, 0x29ff], // 38 - Mathematical Operators - Supplemental Mathematical Operators - Miscellaneous Mathematical Symbols-A - Miscellaneous Mathematical Symbols-B\n  [0x2300, 0x23ff], // 39 - Miscellaneous Technical\n  [0x2400, 0x243f], // 40 - Control Pictures\n  [0x2440, 0x245f], // 41 - Optical Character Recognition\n  [0x2460, 0x24ff], // 42 - Enclosed Alphanumerics\n  [0x2500, 0x257f], // 43 - Box Drawing\n  [0x2580, 0x259f], // 44 - Block Elements\n  [0x25a0, 0x25ff], // 45 - Geometric Shapes\n  [0x2600, 0x26ff], // 46 - Miscellaneous Symbols\n  [0x2700, 0x27bf], // 47 - Dingbats\n  [0x3000, 0x303f], // 48 - CJK Symbols And Punctuation\n  [0x3040, 0x309f], // 49 - Hiragana\n  [0x30a0, 0x30ff, 0x31f0, 0x31ff], // 50 - Katakana - Katakana Phonetic Extensions\n  [0x3100, 0x312f, 0x31a0, 0x31bf], // 51 - Bopomofo - Bopomofo Extended\n  [0x3130, 0x318f], // 52 - Hangul Compatibility Jamo\n  [0xa840, 0xa87f], // 53 - Phags-pa\n  [0x3200, 0x32ff], // 54 - Enclosed CJK Letters And Months\n  [0x3300, 0x33ff], // 55 - CJK Compatibility\n  [0xac00, 0xd7af], // 56 - Hangul Syllables\n  [0xd800, 0xdfff], // 57 - Non-Plane 0 *\n  [0x10900, 0x1091f], // 58 - Phoenicia\n  [\n    0x4e00, 0x9fff, 0x2e80, 0x2eff, 0x2f00, 0x2fdf, 0x2ff0, 0x2fff, 0x3400,\n    0x4dbf, 0x20000, 0x2a6df, 0x3190, 0x319f,\n  ], // 59 - CJK Unified Ideographs - CJK Radicals Supplement - Kangxi Radicals - Ideographic Description Characters - CJK Unified Ideographs Extension A - CJK Unified Ideographs Extension B - Kanbun\n  [0xe000, 0xf8ff], // 60 - Private Use Area (plane 0)\n  [0x31c0, 0x31ef, 0xf900, 0xfaff, 0x2f800, 0x2fa1f], // 61 - CJK Strokes - CJK Compatibility Ideographs - CJK Compatibility Ideographs Supplement\n  [0xfb00, 0xfb4f], // 62 - Alphabetic Presentation Forms\n  [0xfb50, 0xfdff], // 63 - Arabic Presentation Forms-A\n  [0xfe20, 0xfe2f], // 64 - Combining Half Marks\n  [0xfe10, 0xfe1f], // 65 - Vertical Forms\n  [0xfe50, 0xfe6f], // 66 - Small Form Variants\n  [0xfe70, 0xfeff], // 67 - Arabic Presentation Forms-B\n  [0xff00, 0xffef], // 68 - Halfwidth And Fullwidth Forms\n  [0xfff0, 0xffff], // 69 - Specials\n  [0x0f00, 0x0fff], // 70 - Tibetan\n  [0x0700, 0x074f], // 71 - Syriac\n  [0x0780, 0x07bf], // 72 - Thaana\n  [0x0d80, 0x0dff], // 73 - Sinhala\n  [0x1000, 0x109f], // 74 - Myanmar\n  [0x1200, 0x137f, 0x1380, 0x139f, 0x2d80, 0x2ddf], // 75 - Ethiopic - Ethiopic Supplement - Ethiopic Extended\n  [0x13a0, 0x13ff], // 76 - Cherokee\n  [0x1400, 0x167f], // 77 - Unified Canadian Aboriginal Syllabics\n  [0x1680, 0x169f], // 78 - Ogham\n  [0x16a0, 0x16ff], // 79 - Runic\n  [0x1780, 0x17ff], // 80 - Khmer\n  [0x1800, 0x18af], // 81 - Mongolian\n  [0x2800, 0x28ff], // 82 - Braille Patterns\n  [0xa000, 0xa48f], // 83 - Yi Syllables\n  [0x1700, 0x171f, 0x1720, 0x173f, 0x1740, 0x175f, 0x1760, 0x177f], // 84 - Tagalog - Hanunoo - Buhid - Tagbanwa\n  [0x10300, 0x1032f], // 85 - Old Italic\n  [0x10330, 0x1034f], // 86 - Gothic\n  [0x10400, 0x1044f], // 87 - Deseret\n  [0x1d000, 0x1d0ff, 0x1d100, 0x1d1ff, 0x1d200, 0x1d24f], // 88 - Byzantine Musical Symbols - Musical Symbols - Ancient Greek Musical Notation\n  [0x1d400, 0x1d7ff], // 89 - Mathematical Alphanumeric Symbols\n  [0xff000, 0xffffd], // 90 - Private Use (plane 15)\n  [0xfe00, 0xfe0f, 0xe0100, 0xe01ef], // 91 - Variation Selectors - Variation Selectors Supplement\n  [0xe0000, 0xe007f], // 92 - Tags\n  [0x1900, 0x194f], // 93 - Limbu\n  [0x1950, 0x197f], // 94 - Tai Le\n  [0x1980, 0x19df], // 95 - New Tai Lue\n  [0x1a00, 0x1a1f], // 96 - Buginese\n  [0x2c00, 0x2c5f], // 97 - Glagolitic\n  [0x2d30, 0x2d7f], // 98 - Tifinagh\n  [0x4dc0, 0x4dff], // 99 - Yijing Hexagram Symbols\n  [0xa800, 0xa82f], // 100 - Syloti Nagri\n  [0x10000, 0x1007f, 0x10080, 0x100ff, 0x10100, 0x1013f], // 101 - Linear B Syllabary - Linear B Ideograms - Aegean Numbers\n  [0x10140, 0x1018f], // 102 - Ancient Greek Numbers\n  [0x10380, 0x1039f], // 103 - Ugaritic\n  [0x103a0, 0x103df], // 104 - Old Persian\n  [0x10450, 0x1047f], // 105 - Shavian\n  [0x10480, 0x104af], // 106 - Osmanya\n  [0x10800, 0x1083f], // 107 - Cypriot Syllabary\n  [0x10a00, 0x10a5f], // 108 - Kharoshthi\n  [0x1d300, 0x1d35f], // 109 - Tai Xuan Jing Symbols\n  [0x12000, 0x123ff, 0x12400, 0x1247f], // 110 - Cuneiform - Cuneiform Numbers and Punctuation\n  [0x1d360, 0x1d37f], // 111 - Counting Rod Numerals\n  [0x1b80, 0x1bbf], // 112 - Sundanese\n  [0x1c00, 0x1c4f], // 113 - Lepcha\n  [0x1c50, 0x1c7f], // 114 - Ol Chiki\n  [0xa880, 0xa8df], // 115 - Saurashtra\n  [0xa900, 0xa92f], // 116 - Kayah Li\n  [0xa930, 0xa95f], // 117 - Rejang\n  [0xaa00, 0xaa5f], // 118 - Cham\n  [0x10190, 0x101cf], // 119 - Ancient Symbols\n  [0x101d0, 0x101ff], // 120 - Phaistos Disc\n  [0x102a0, 0x102df, 0x10280, 0x1029f, 0x10920, 0x1093f], // 121 - Carian - Lycian - Lydian\n  [0x1f030, 0x1f09f, 0x1f000, 0x1f02f], // 122 - Domino Tiles - Mahjong Tiles\n];\n\nfunction getUnicodeRangeFor(value, lastPosition = -1) {\n  // TODO: create a map range => position, sort the ranges and cache it.\n  // Then we can make a binary search for finding a range for a given unicode.\n  if (lastPosition !== -1) {\n    const range = UnicodeRanges[lastPosition];\n    for (let i = 0, ii = range.length; i < ii; i += 2) {\n      if (value >= range[i] && value <= range[i + 1]) {\n        return lastPosition;\n      }\n    }\n  }\n  for (let i = 0, ii = UnicodeRanges.length; i < ii; i++) {\n    const range = UnicodeRanges[i];\n    for (let j = 0, jj = range.length; j < jj; j += 2) {\n      if (value >= range[j] && value <= range[j + 1]) {\n        return i;\n      }\n    }\n  }\n  return -1;\n}\n\nconst SpecialCharRegExp = new RegExp(\"^(\\\\s)|(\\\\p{Mn})|(\\\\p{Cf})$\", \"u\");\nconst CategoryCache = new Map();\n\nfunction getCharUnicodeCategory(char) {\n  const cachedCategory = CategoryCache.get(char);\n  if (cachedCategory) {\n    return cachedCategory;\n  }\n  const groups = char.match(SpecialCharRegExp);\n  const category = {\n    isWhitespace: !!groups?.[1],\n    isZeroWidthDiacritic: !!groups?.[2],\n    isInvisibleFormatMark: !!groups?.[3],\n  };\n  CategoryCache.set(char, category);\n  return category;\n}\n\nfunction clearUnicodeCaches() {\n  CategoryCache.clear();\n}\n\nexport {\n  clearUnicodeCaches,\n  getCharUnicodeCategory,\n  getUnicodeForGlyph,\n  getUnicodeRangeFor,\n  mapSpecialUnicodeValues,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getEncoding, StandardEncoding } from \"./encodings.js\";\nimport { getGlyphsUnicode } from \"./glyphlist.js\";\nimport { getUnicodeForGlyph } from \"./unicode.js\";\nimport { info } from \"../shared/util.js\";\n\n// Accented characters have issues on Windows and Linux. When this flag is\n// enabled glyphs that use seac and seac style endchar operators are truncated\n// and we instead just store the glyph id's of the base glyph and its accent to\n// be drawn individually.\n// Linux (freetype) requires that when a seac style endchar is used\n// that the charset must be a predefined one, however we build a\n// custom one. Windows just refuses to draw glyphs with seac operators.\nconst SEAC_ANALYSIS_ENABLED = true;\n\nconst FontFlags = {\n  FixedPitch: 1,\n  Serif: 2,\n  Symbolic: 4,\n  Script: 8,\n  Nonsymbolic: 32,\n  Italic: 64,\n  AllCap: 65536,\n  SmallCap: 131072,\n  ForceBold: 262144,\n};\n\n// prettier-ignore\nconst MacStandardGlyphOrdering = [\n  \".notdef\", \".null\", \"nonmarkingreturn\", \"space\", \"exclam\", \"quotedbl\",\n  \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quotesingle\", \"parenleft\",\n  \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\",\n  \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\",\n  \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\",\n  \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\",\n  \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\",\n  \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\",\n  \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\",\n  \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\",\n  \"asciitilde\", \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\",\n  \"Odieresis\", \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\",\n  \"atilde\", \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\",\n  \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\", \"ograve\",\n  \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\", \"ucircumflex\",\n  \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\", \"section\", \"bullet\",\n  \"paragraph\", \"germandbls\", \"registered\", \"copyright\", \"trademark\", \"acute\",\n  \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\", \"plusminus\", \"lessequal\",\n  \"greaterequal\", \"yen\", \"mu\", \"partialdiff\", \"summation\", \"product\", \"pi\",\n  \"integral\", \"ordfeminine\", \"ordmasculine\", \"Omega\", \"ae\", \"oslash\",\n  \"questiondown\", \"exclamdown\", \"logicalnot\", \"radical\", \"florin\",\n  \"approxequal\", \"Delta\", \"guillemotleft\", \"guillemotright\", \"ellipsis\",\n  \"nonbreakingspace\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\", \"oe\", \"endash\",\n  \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\", \"quoteright\",\n  \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\", \"currency\",\n  \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\", \"periodcentered\",\n  \"quotesinglbase\", \"quotedblbase\", \"perthousand\", \"Acircumflex\",\n  \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\",\n  \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\", \"Ograve\", \"Uacute\",\n  \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\", \"tilde\", \"macron\",\n  \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\",\n  \"Lslash\", \"lslash\", \"Scaron\", \"scaron\", \"Zcaron\", \"zcaron\", \"brokenbar\",\n  \"Eth\", \"eth\", \"Yacute\", \"yacute\", \"Thorn\", \"thorn\", \"minus\", \"multiply\",\n  \"onesuperior\", \"twosuperior\", \"threesuperior\", \"onehalf\", \"onequarter\",\n  \"threequarters\", \"franc\", \"Gbreve\", \"gbreve\", \"Idotaccent\", \"Scedilla\",\n  \"scedilla\", \"Cacute\", \"cacute\", \"Ccaron\", \"ccaron\", \"dcroat\"];\n\n// Some bad PDF generators, e.g. Scribus PDF, include glyph names\n// in a 'uniXXXX' format -- attempting to recover proper ones.\nfunction recoverGlyphName(name, glyphsUnicodeMap) {\n  if (glyphsUnicodeMap[name] !== undefined) {\n    return name;\n  }\n  // The glyph name is non-standard, trying to recover.\n  const unicode = getUnicodeForGlyph(name, glyphsUnicodeMap);\n  if (unicode !== -1) {\n    for (const key in glyphsUnicodeMap) {\n      if (glyphsUnicodeMap[key] === unicode) {\n        return key;\n      }\n    }\n  }\n  info(\"Unable to recover a standard glyph name for: \" + name);\n  return name;\n}\n\n/**\n * Shared logic for building a char code to glyph id mapping for Type1 and\n * simple CFF fonts. See section 9.6.6.2 of the spec.\n * @param {Object} properties Font properties object.\n * @param {Object} builtInEncoding The encoding contained within the actual font\n *   data.\n * @param {Array} glyphNames Array of glyph names where the index is the\n *   glyph ID.\n * @returns {Object} A char code to glyph ID map.\n */\nfunction type1FontGlyphMapping(properties, builtInEncoding, glyphNames) {\n  const charCodeToGlyphId = Object.create(null);\n  let glyphId, charCode, baseEncoding;\n  const isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n\n  if (properties.isInternalFont) {\n    baseEncoding = builtInEncoding;\n    for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n      glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n      charCodeToGlyphId[charCode] = glyphId >= 0 ? glyphId : /* notdef = */ 0;\n    }\n  } else if (properties.baseEncodingName) {\n    // If a valid base encoding name was used, the mapping is initialized with\n    // that.\n    baseEncoding = getEncoding(properties.baseEncodingName);\n    for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n      glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n      charCodeToGlyphId[charCode] = glyphId >= 0 ? glyphId : /* notdef = */ 0;\n    }\n  } else if (isSymbolicFont) {\n    // For a symbolic font the encoding should be the fonts built-in encoding.\n    for (charCode in builtInEncoding) {\n      charCodeToGlyphId[charCode] = builtInEncoding[charCode];\n    }\n  } else {\n    // For non-symbolic fonts that don't have a base encoding the standard\n    // encoding should be used.\n    baseEncoding = StandardEncoding;\n    for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n      glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n      charCodeToGlyphId[charCode] = glyphId >= 0 ? glyphId : /* notdef = */ 0;\n    }\n  }\n\n  // Lastly, merge in the differences.\n  const differences = properties.differences;\n  let glyphsUnicodeMap;\n  if (differences) {\n    for (charCode in differences) {\n      const glyphName = differences[charCode];\n      glyphId = glyphNames.indexOf(glyphName);\n\n      if (glyphId === -1) {\n        if (!glyphsUnicodeMap) {\n          glyphsUnicodeMap = getGlyphsUnicode();\n        }\n        const standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n        if (standardGlyphName !== glyphName) {\n          glyphId = glyphNames.indexOf(standardGlyphName);\n        }\n      }\n      charCodeToGlyphId[charCode] = glyphId >= 0 ? glyphId : /* notdef = */ 0;\n    }\n  }\n  return charCodeToGlyphId;\n}\n\nfunction normalizeFontName(name) {\n  return name.replaceAll(/[,_]/g, \"-\").replaceAll(/\\s/g, \"\");\n}\n\nexport {\n  FontFlags,\n  MacStandardGlyphOrdering,\n  normalizeFontName,\n  recoverGlyphName,\n  SEAC_ANALYSIS_ENABLED,\n  type1FontGlyphMapping,\n};\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getLookupTableFactory } from \"./core_utils.js\";\nimport { normalizeFontName } from \"./fonts_utils.js\";\n\n/**\n * Hold a map of decoded fonts and of the standard fourteen Type1\n * fonts and their acronyms.\n */\nconst getStdFontMap = getLookupTableFactory(function (t) {\n  // The standard 14 fonts:\n  t[\"Times-Roman\"] = \"Times-Roman\";\n  t.Helvetica = \"Helvetica\";\n  t.Courier = \"Courier\";\n  t.Symbol = \"Symbol\";\n  t[\"Times-Bold\"] = \"Times-Bold\";\n  t[\"Helvetica-Bold\"] = \"Helvetica-Bold\";\n  t[\"Courier-Bold\"] = \"Courier-Bold\";\n  t.ZapfDingbats = \"ZapfDingbats\";\n  t[\"Times-Italic\"] = \"Times-Italic\";\n  t[\"Helvetica-Oblique\"] = \"Helvetica-Oblique\";\n  t[\"Courier-Oblique\"] = \"Courier-Oblique\";\n  t[\"Times-BoldItalic\"] = \"Times-BoldItalic\";\n  t[\"Helvetica-BoldOblique\"] = \"Helvetica-BoldOblique\";\n  t[\"Courier-BoldOblique\"] = \"Courier-BoldOblique\";\n\n  // Extra mappings\n  t.ArialNarrow = \"Helvetica\";\n  t[\"ArialNarrow-Bold\"] = \"Helvetica-Bold\";\n  t[\"ArialNarrow-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"ArialNarrow-Italic\"] = \"Helvetica-Oblique\";\n  t.ArialBlack = \"Helvetica\";\n  t[\"ArialBlack-Bold\"] = \"Helvetica-Bold\";\n  t[\"ArialBlack-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"ArialBlack-Italic\"] = \"Helvetica-Oblique\";\n  t[\"Arial-Black\"] = \"Helvetica\";\n  t[\"Arial-Black-Bold\"] = \"Helvetica-Bold\";\n  t[\"Arial-Black-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"Arial-Black-Italic\"] = \"Helvetica-Oblique\";\n  t.Arial = \"Helvetica\";\n  t[\"Arial-Bold\"] = \"Helvetica-Bold\";\n  t[\"Arial-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"Arial-Italic\"] = \"Helvetica-Oblique\";\n  t.ArialMT = \"Helvetica\";\n  t[\"Arial-BoldItalicMT\"] = \"Helvetica-BoldOblique\";\n  t[\"Arial-BoldMT\"] = \"Helvetica-Bold\";\n  t[\"Arial-ItalicMT\"] = \"Helvetica-Oblique\";\n  t[\"Arial-BoldItalicMT-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"Arial-BoldMT-Bold\"] = \"Helvetica-Bold\";\n  t[\"Arial-ItalicMT-Italic\"] = \"Helvetica-Oblique\";\n  t.ArialUnicodeMS = \"Helvetica\";\n  t[\"ArialUnicodeMS-Bold\"] = \"Helvetica-Bold\";\n  t[\"ArialUnicodeMS-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"ArialUnicodeMS-Italic\"] = \"Helvetica-Oblique\";\n  t[\"Courier-BoldItalic\"] = \"Courier-BoldOblique\";\n  t[\"Courier-Italic\"] = \"Courier-Oblique\";\n  t.CourierNew = \"Courier\";\n  t[\"CourierNew-Bold\"] = \"Courier-Bold\";\n  t[\"CourierNew-BoldItalic\"] = \"Courier-BoldOblique\";\n  t[\"CourierNew-Italic\"] = \"Courier-Oblique\";\n  t[\"CourierNewPS-BoldItalicMT\"] = \"Courier-BoldOblique\";\n  t[\"CourierNewPS-BoldMT\"] = \"Courier-Bold\";\n  t[\"CourierNewPS-ItalicMT\"] = \"Courier-Oblique\";\n  t.CourierNewPSMT = \"Courier\";\n  t[\"Helvetica-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"Helvetica-Italic\"] = \"Helvetica-Oblique\";\n  t[\"Symbol-Bold\"] = \"Symbol\";\n  t[\"Symbol-BoldItalic\"] = \"Symbol\";\n  t[\"Symbol-Italic\"] = \"Symbol\";\n  t.TimesNewRoman = \"Times-Roman\";\n  t[\"TimesNewRoman-Bold\"] = \"Times-Bold\";\n  t[\"TimesNewRoman-BoldItalic\"] = \"Times-BoldItalic\";\n  t[\"TimesNewRoman-Italic\"] = \"Times-Italic\";\n  t.TimesNewRomanPS = \"Times-Roman\";\n  t[\"TimesNewRomanPS-Bold\"] = \"Times-Bold\";\n  t[\"TimesNewRomanPS-BoldItalic\"] = \"Times-BoldItalic\";\n  t[\"TimesNewRomanPS-BoldItalicMT\"] = \"Times-BoldItalic\";\n  t[\"TimesNewRomanPS-BoldMT\"] = \"Times-Bold\";\n  t[\"TimesNewRomanPS-Italic\"] = \"Times-Italic\";\n  t[\"TimesNewRomanPS-ItalicMT\"] = \"Times-Italic\";\n  t.TimesNewRomanPSMT = \"Times-Roman\";\n  t[\"TimesNewRomanPSMT-Bold\"] = \"Times-Bold\";\n  t[\"TimesNewRomanPSMT-BoldItalic\"] = \"Times-BoldItalic\";\n  t[\"TimesNewRomanPSMT-Italic\"] = \"Times-Italic\";\n});\n\n// Contains mapping for standard fonts and xfa fonts.\nconst getFontNameToFileMap = getLookupTableFactory(function (t) {\n  t.Courier = \"FoxitFixed.pfb\";\n  t[\"Courier-Bold\"] = \"FoxitFixedBold.pfb\";\n  t[\"Courier-BoldOblique\"] = \"FoxitFixedBoldItalic.pfb\";\n  t[\"Courier-Oblique\"] = \"FoxitFixedItalic.pfb\";\n  t.Helvetica = \"LiberationSans-Regular.ttf\";\n  t[\"Helvetica-Bold\"] = \"LiberationSans-Bold.ttf\";\n  t[\"Helvetica-BoldOblique\"] = \"LiberationSans-BoldItalic.ttf\";\n  t[\"Helvetica-Oblique\"] = \"LiberationSans-Italic.ttf\";\n  t[\"Times-Roman\"] = \"FoxitSerif.pfb\";\n  t[\"Times-Bold\"] = \"FoxitSerifBold.pfb\";\n  t[\"Times-BoldItalic\"] = \"FoxitSerifBoldItalic.pfb\";\n  t[\"Times-Italic\"] = \"FoxitSerifItalic.pfb\";\n  t.Symbol = \"FoxitSymbol.pfb\";\n  t.ZapfDingbats = \"FoxitDingbats.pfb\";\n  t[\"LiberationSans-Regular\"] = \"LiberationSans-Regular.ttf\";\n  t[\"LiberationSans-Bold\"] = \"LiberationSans-Bold.ttf\";\n  t[\"LiberationSans-Italic\"] = \"LiberationSans-Italic.ttf\";\n  t[\"LiberationSans-BoldItalic\"] = \"LiberationSans-BoldItalic.ttf\";\n});\n\n/**\n * Holds the map of the non-standard fonts that might be included as\n * a standard fonts without glyph data.\n */\nconst getNonStdFontMap = getLookupTableFactory(function (t) {\n  t.Calibri = \"Helvetica\";\n  t[\"Calibri-Bold\"] = \"Helvetica-Bold\";\n  t[\"Calibri-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"Calibri-Italic\"] = \"Helvetica-Oblique\";\n  t.CenturyGothic = \"Helvetica\";\n  t[\"CenturyGothic-Bold\"] = \"Helvetica-Bold\";\n  t[\"CenturyGothic-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"CenturyGothic-Italic\"] = \"Helvetica-Oblique\";\n  t.ComicSansMS = \"Comic Sans MS\";\n  t[\"ComicSansMS-Bold\"] = \"Comic Sans MS-Bold\";\n  t[\"ComicSansMS-BoldItalic\"] = \"Comic Sans MS-BoldItalic\";\n  t[\"ComicSansMS-Italic\"] = \"Comic Sans MS-Italic\";\n  t.Impact = \"Helvetica\";\n  t[\"ItcSymbol-Bold\"] = \"Helvetica-Bold\";\n  t[\"ItcSymbol-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"ItcSymbol-Book\"] = \"Helvetica\";\n  t[\"ItcSymbol-BookItalic\"] = \"Helvetica-Oblique\";\n  t[\"ItcSymbol-Medium\"] = \"Helvetica\";\n  t[\"ItcSymbol-MediumItalic\"] = \"Helvetica-Oblique\";\n  t.LucidaConsole = \"Courier\";\n  t[\"LucidaConsole-Bold\"] = \"Courier-Bold\";\n  t[\"LucidaConsole-BoldItalic\"] = \"Courier-BoldOblique\";\n  t[\"LucidaConsole-Italic\"] = \"Courier-Oblique\";\n  t[\"LucidaSans-Demi\"] = \"Helvetica-Bold\";\n  t[\"MS-Gothic\"] = \"MS Gothic\";\n  t[\"MS-Gothic-Bold\"] = \"MS Gothic-Bold\";\n  t[\"MS-Gothic-BoldItalic\"] = \"MS Gothic-BoldItalic\";\n  t[\"MS-Gothic-Italic\"] = \"MS Gothic-Italic\";\n  t[\"MS-Mincho\"] = \"MS Mincho\";\n  t[\"MS-Mincho-Bold\"] = \"MS Mincho-Bold\";\n  t[\"MS-Mincho-BoldItalic\"] = \"MS Mincho-BoldItalic\";\n  t[\"MS-Mincho-Italic\"] = \"MS Mincho-Italic\";\n  t[\"MS-PGothic\"] = \"MS PGothic\";\n  t[\"MS-PGothic-Bold\"] = \"MS PGothic-Bold\";\n  t[\"MS-PGothic-BoldItalic\"] = \"MS PGothic-BoldItalic\";\n  t[\"MS-PGothic-Italic\"] = \"MS PGothic-Italic\";\n  t[\"MS-PMincho\"] = \"MS PMincho\";\n  t[\"MS-PMincho-Bold\"] = \"MS PMincho-Bold\";\n  t[\"MS-PMincho-BoldItalic\"] = \"MS PMincho-BoldItalic\";\n  t[\"MS-PMincho-Italic\"] = \"MS PMincho-Italic\";\n  t.NuptialScript = \"Times-Italic\";\n  t.SegoeUISymbol = \"Helvetica\";\n});\n\nconst getSerifFonts = getLookupTableFactory(function (t) {\n  t[\"Adobe Jenson\"] = true;\n  t[\"Adobe Text\"] = true;\n  t.Albertus = true;\n  t.Aldus = true;\n  t.Alexandria = true;\n  t.Algerian = true;\n  t[\"American Typewriter\"] = true;\n  t.Antiqua = true;\n  t.Apex = true;\n  t.Arno = true;\n  t.Aster = true;\n  t.Aurora = true;\n  t.Baskerville = true;\n  t.Bell = true;\n  t.Bembo = true;\n  t[\"Bembo Schoolbook\"] = true;\n  t.Benguiat = true;\n  t[\"Berkeley Old Style\"] = true;\n  t[\"Bernhard Modern\"] = true;\n  t[\"Berthold City\"] = true;\n  t.Bodoni = true;\n  t[\"Bauer Bodoni\"] = true;\n  t[\"Book Antiqua\"] = true;\n  t.Bookman = true;\n  t[\"Bordeaux Roman\"] = true;\n  t[\"Californian FB\"] = true;\n  t.Calisto = true;\n  t.Calvert = true;\n  t.Capitals = true;\n  t.Cambria = true;\n  t.Cartier = true;\n  t.Caslon = true;\n  t.Catull = true;\n  t.Centaur = true;\n  t[\"Century Old Style\"] = true;\n  t[\"Century Schoolbook\"] = true;\n  t.Chaparral = true;\n  t[\"Charis SIL\"] = true;\n  t.Cheltenham = true;\n  t[\"Cholla Slab\"] = true;\n  t.Clarendon = true;\n  t.Clearface = true;\n  t.Cochin = true;\n  t.Colonna = true;\n  t[\"Computer Modern\"] = true;\n  t[\"Concrete Roman\"] = true;\n  t.Constantia = true;\n  t[\"Cooper Black\"] = true;\n  t.Corona = true;\n  t.Ecotype = true;\n  t.Egyptienne = true;\n  t.Elephant = true;\n  t.Excelsior = true;\n  t.Fairfield = true;\n  t[\"FF Scala\"] = true;\n  t.Folkard = true;\n  t.Footlight = true;\n  t.FreeSerif = true;\n  t[\"Friz Quadrata\"] = true;\n  t.Garamond = true;\n  t.Gentium = true;\n  t.Georgia = true;\n  t.Gloucester = true;\n  t[\"Goudy Old Style\"] = true;\n  t[\"Goudy Schoolbook\"] = true;\n  t[\"Goudy Pro Font\"] = true;\n  t.Granjon = true;\n  t[\"Guardian Egyptian\"] = true;\n  t.Heather = true;\n  t.Hercules = true;\n  t[\"High Tower Text\"] = true;\n  t.Hiroshige = true;\n  t[\"Hoefler Text\"] = true;\n  t[\"Humana Serif\"] = true;\n  t.Imprint = true;\n  t[\"Ionic No. 5\"] = true;\n  t.Janson = true;\n  t.Joanna = true;\n  t.Korinna = true;\n  t.Lexicon = true;\n  t.LiberationSerif = true;\n  t[\"Liberation Serif\"] = true;\n  t[\"Linux Libertine\"] = true;\n  t.Literaturnaya = true;\n  t.Lucida = true;\n  t[\"Lucida Bright\"] = true;\n  t.Melior = true;\n  t.Memphis = true;\n  t.Miller = true;\n  t.Minion = true;\n  t.Modern = true;\n  t[\"Mona Lisa\"] = true;\n  t[\"Mrs Eaves\"] = true;\n  t[\"MS Serif\"] = true;\n  t[\"Museo Slab\"] = true;\n  t[\"New York\"] = true;\n  t[\"Nimbus Roman\"] = true;\n  t[\"NPS Rawlinson Roadway\"] = true;\n  t.NuptialScript = true;\n  t.Palatino = true;\n  t.Perpetua = true;\n  t.Plantin = true;\n  t[\"Plantin Schoolbook\"] = true;\n  t.Playbill = true;\n  t[\"Poor Richard\"] = true;\n  t[\"Rawlinson Roadway\"] = true;\n  t.Renault = true;\n  t.Requiem = true;\n  t.Rockwell = true;\n  t.Roman = true;\n  t[\"Rotis Serif\"] = true;\n  t.Sabon = true;\n  t.Scala = true;\n  t.Seagull = true;\n  t.Sistina = true;\n  t.Souvenir = true;\n  t.STIX = true;\n  t[\"Stone Informal\"] = true;\n  t[\"Stone Serif\"] = true;\n  t.Sylfaen = true;\n  t.Times = true;\n  t.Trajan = true;\n  t[\"Trinité\"] = true;\n  t[\"Trump Mediaeval\"] = true;\n  t.Utopia = true;\n  t[\"Vale Type\"] = true;\n  t[\"Bitstream Vera\"] = true;\n  t[\"Vera Serif\"] = true;\n  t.Versailles = true;\n  t.Wanted = true;\n  t.Weiss = true;\n  t[\"Wide Latin\"] = true;\n  t.Windsor = true;\n  t.XITS = true;\n});\n\nconst getSymbolsFonts = getLookupTableFactory(function (t) {\n  t.Dingbats = true;\n  t.Symbol = true;\n  t.ZapfDingbats = true;\n  t.Wingdings = true;\n  t[\"Wingdings-Bold\"] = true;\n  t[\"Wingdings-Regular\"] = true;\n});\n\n// Glyph map for well-known standard fonts. Sometimes Ghostscript uses CID\n// fonts, but does not embed the CID to GID mapping. The mapping is incomplete\n// for all glyphs, but common for some set of the standard fonts.\nconst getGlyphMapForStandardFonts = getLookupTableFactory(function (t) {\n  t[2] = 10;\n  t[3] = 32;\n  t[4] = 33;\n  t[5] = 34;\n  t[6] = 35;\n  t[7] = 36;\n  t[8] = 37;\n  t[9] = 38;\n  t[10] = 39;\n  t[11] = 40;\n  t[12] = 41;\n  t[13] = 42;\n  t[14] = 43;\n  t[15] = 44;\n  t[16] = 45;\n  t[17] = 46;\n  t[18] = 47;\n  t[19] = 48;\n  t[20] = 49;\n  t[21] = 50;\n  t[22] = 51;\n  t[23] = 52;\n  t[24] = 53;\n  t[25] = 54;\n  t[26] = 55;\n  t[27] = 56;\n  t[28] = 57;\n  t[29] = 58;\n  t[30] = 894;\n  t[31] = 60;\n  t[32] = 61;\n  t[33] = 62;\n  t[34] = 63;\n  t[35] = 64;\n  t[36] = 65;\n  t[37] = 66;\n  t[38] = 67;\n  t[39] = 68;\n  t[40] = 69;\n  t[41] = 70;\n  t[42] = 71;\n  t[43] = 72;\n  t[44] = 73;\n  t[45] = 74;\n  t[46] = 75;\n  t[47] = 76;\n  t[48] = 77;\n  t[49] = 78;\n  t[50] = 79;\n  t[51] = 80;\n  t[52] = 81;\n  t[53] = 82;\n  t[54] = 83;\n  t[55] = 84;\n  t[56] = 85;\n  t[57] = 86;\n  t[58] = 87;\n  t[59] = 88;\n  t[60] = 89;\n  t[61] = 90;\n  t[62] = 91;\n  t[63] = 92;\n  t[64] = 93;\n  t[65] = 94;\n  t[66] = 95;\n  t[67] = 96;\n  t[68] = 97;\n  t[69] = 98;\n  t[70] = 99;\n  t[71] = 100;\n  t[72] = 101;\n  t[73] = 102;\n  t[74] = 103;\n  t[75] = 104;\n  t[76] = 105;\n  t[77] = 106;\n  t[78] = 107;\n  t[79] = 108;\n  t[80] = 109;\n  t[81] = 110;\n  t[82] = 111;\n  t[83] = 112;\n  t[84] = 113;\n  t[85] = 114;\n  t[86] = 115;\n  t[87] = 116;\n  t[88] = 117;\n  t[89] = 118;\n  t[90] = 119;\n  t[91] = 120;\n  t[92] = 121;\n  t[93] = 122;\n  t[94] = 123;\n  t[95] = 124;\n  t[96] = 125;\n  t[97] = 126;\n  t[98] = 196;\n  t[99] = 197;\n  t[100] = 199;\n  t[101] = 201;\n  t[102] = 209;\n  t[103] = 214;\n  t[104] = 220;\n  t[105] = 225;\n  t[106] = 224;\n  t[107] = 226;\n  t[108] = 228;\n  t[109] = 227;\n  t[110] = 229;\n  t[111] = 231;\n  t[112] = 233;\n  t[113] = 232;\n  t[114] = 234;\n  t[115] = 235;\n  t[116] = 237;\n  t[117] = 236;\n  t[118] = 238;\n  t[119] = 239;\n  t[120] = 241;\n  t[121] = 243;\n  t[122] = 242;\n  t[123] = 244;\n  t[124] = 246;\n  t[125] = 245;\n  t[126] = 250;\n  t[127] = 249;\n  t[128] = 251;\n  t[129] = 252;\n  t[130] = 8224;\n  t[131] = 176;\n  t[132] = 162;\n  t[133] = 163;\n  t[134] = 167;\n  t[135] = 8226;\n  t[136] = 182;\n  t[137] = 223;\n  t[138] = 174;\n  t[139] = 169;\n  t[140] = 8482;\n  t[141] = 180;\n  t[142] = 168;\n  t[143] = 8800;\n  t[144] = 198;\n  t[145] = 216;\n  t[146] = 8734;\n  t[147] = 177;\n  t[148] = 8804;\n  t[149] = 8805;\n  t[150] = 165;\n  t[151] = 181;\n  t[152] = 8706;\n  t[153] = 8721;\n  t[154] = 8719;\n  t[156] = 8747;\n  t[157] = 170;\n  t[158] = 186;\n  t[159] = 8486;\n  t[160] = 230;\n  t[161] = 248;\n  t[162] = 191;\n  t[163] = 161;\n  t[164] = 172;\n  t[165] = 8730;\n  t[166] = 402;\n  t[167] = 8776;\n  t[168] = 8710;\n  t[169] = 171;\n  t[170] = 187;\n  t[171] = 8230;\n  t[179] = 8220;\n  t[180] = 8221;\n  t[181] = 8216;\n  t[182] = 8217;\n  t[200] = 193;\n  t[203] = 205;\n  t[207] = 211;\n  t[210] = 218;\n  t[223] = 711;\n  t[224] = 321;\n  t[225] = 322;\n  t[226] = 352;\n  t[227] = 353;\n  t[228] = 381;\n  t[229] = 382;\n  t[233] = 221;\n  t[234] = 253;\n  t[252] = 263;\n  t[253] = 268;\n  t[254] = 269;\n  t[258] = 258;\n  t[260] = 260;\n  t[261] = 261;\n  t[265] = 280;\n  t[266] = 281;\n  t[267] = 282;\n  t[268] = 283;\n  t[269] = 313;\n  t[275] = 323;\n  t[276] = 324;\n  t[278] = 328;\n  t[283] = 344;\n  t[284] = 345;\n  t[285] = 346;\n  t[286] = 347;\n  t[292] = 367;\n  t[295] = 377;\n  t[296] = 378;\n  t[298] = 380;\n  t[305] = 963;\n  t[306] = 964;\n  t[307] = 966;\n  t[308] = 8215;\n  t[309] = 8252;\n  t[310] = 8319;\n  t[311] = 8359;\n  t[312] = 8592;\n  t[313] = 8593;\n  t[337] = 9552;\n  t[493] = 1039;\n  t[494] = 1040;\n  t[672] = 1488;\n  t[673] = 1489;\n  t[674] = 1490;\n  t[675] = 1491;\n  t[676] = 1492;\n  t[677] = 1493;\n  t[678] = 1494;\n  t[679] = 1495;\n  t[680] = 1496;\n  t[681] = 1497;\n  t[682] = 1498;\n  t[683] = 1499;\n  t[684] = 1500;\n  t[685] = 1501;\n  t[686] = 1502;\n  t[687] = 1503;\n  t[688] = 1504;\n  t[689] = 1505;\n  t[690] = 1506;\n  t[691] = 1507;\n  t[692] = 1508;\n  t[693] = 1509;\n  t[694] = 1510;\n  t[695] = 1511;\n  t[696] = 1512;\n  t[697] = 1513;\n  t[698] = 1514;\n  t[705] = 1524;\n  t[706] = 8362;\n  t[710] = 64288;\n  t[711] = 64298;\n  t[759] = 1617;\n  t[761] = 1776;\n  t[763] = 1778;\n  t[775] = 1652;\n  t[777] = 1764;\n  t[778] = 1780;\n  t[779] = 1781;\n  t[780] = 1782;\n  t[782] = 771;\n  t[783] = 64726;\n  t[786] = 8363;\n  t[788] = 8532;\n  t[790] = 768;\n  t[791] = 769;\n  t[792] = 768;\n  t[795] = 803;\n  t[797] = 64336;\n  t[798] = 64337;\n  t[799] = 64342;\n  t[800] = 64343;\n  t[801] = 64344;\n  t[802] = 64345;\n  t[803] = 64362;\n  t[804] = 64363;\n  t[805] = 64364;\n  t[2424] = 7821;\n  t[2425] = 7822;\n  t[2426] = 7823;\n  t[2427] = 7824;\n  t[2428] = 7825;\n  t[2429] = 7826;\n  t[2430] = 7827;\n  t[2433] = 7682;\n  t[2678] = 8045;\n  t[2679] = 8046;\n  t[2830] = 1552;\n  t[2838] = 686;\n  t[2840] = 751;\n  t[2842] = 753;\n  t[2843] = 754;\n  t[2844] = 755;\n  t[2846] = 757;\n  t[2856] = 767;\n  t[2857] = 848;\n  t[2858] = 849;\n  t[2862] = 853;\n  t[2863] = 854;\n  t[2864] = 855;\n  t[2865] = 861;\n  t[2866] = 862;\n  t[2906] = 7460;\n  t[2908] = 7462;\n  t[2909] = 7463;\n  t[2910] = 7464;\n  t[2912] = 7466;\n  t[2913] = 7467;\n  t[2914] = 7468;\n  t[2916] = 7470;\n  t[2917] = 7471;\n  t[2918] = 7472;\n  t[2920] = 7474;\n  t[2921] = 7475;\n  t[2922] = 7476;\n  t[2924] = 7478;\n  t[2925] = 7479;\n  t[2926] = 7480;\n  t[2928] = 7482;\n  t[2929] = 7483;\n  t[2930] = 7484;\n  t[2932] = 7486;\n  t[2933] = 7487;\n  t[2934] = 7488;\n  t[2936] = 7490;\n  t[2937] = 7491;\n  t[2938] = 7492;\n  t[2940] = 7494;\n  t[2941] = 7495;\n  t[2942] = 7496;\n  t[2944] = 7498;\n  t[2946] = 7500;\n  t[2948] = 7502;\n  t[2950] = 7504;\n  t[2951] = 7505;\n  t[2952] = 7506;\n  t[2954] = 7508;\n  t[2955] = 7509;\n  t[2956] = 7510;\n  t[2958] = 7512;\n  t[2959] = 7513;\n  t[2960] = 7514;\n  t[2962] = 7516;\n  t[2963] = 7517;\n  t[2964] = 7518;\n  t[2966] = 7520;\n  t[2967] = 7521;\n  t[2968] = 7522;\n  t[2970] = 7524;\n  t[2971] = 7525;\n  t[2972] = 7526;\n  t[2974] = 7528;\n  t[2975] = 7529;\n  t[2976] = 7530;\n  t[2978] = 1537;\n  t[2979] = 1538;\n  t[2980] = 1539;\n  t[2982] = 1549;\n  t[2983] = 1551;\n  t[2984] = 1552;\n  t[2986] = 1554;\n  t[2987] = 1555;\n  t[2988] = 1556;\n  t[2990] = 1623;\n  t[2991] = 1624;\n  t[2995] = 1775;\n  t[2999] = 1791;\n  t[3002] = 64290;\n  t[3003] = 64291;\n  t[3004] = 64292;\n  t[3006] = 64294;\n  t[3007] = 64295;\n  t[3008] = 64296;\n  t[3011] = 1900;\n  t[3014] = 8223;\n  t[3015] = 8244;\n  t[3017] = 7532;\n  t[3018] = 7533;\n  t[3019] = 7534;\n  t[3075] = 7590;\n  t[3076] = 7591;\n  t[3079] = 7594;\n  t[3080] = 7595;\n  t[3083] = 7598;\n  t[3084] = 7599;\n  t[3087] = 7602;\n  t[3088] = 7603;\n  t[3091] = 7606;\n  t[3092] = 7607;\n  t[3095] = 7610;\n  t[3096] = 7611;\n  t[3099] = 7614;\n  t[3100] = 7615;\n  t[3103] = 7618;\n  t[3104] = 7619;\n  t[3107] = 8337;\n  t[3108] = 8338;\n  t[3116] = 1884;\n  t[3119] = 1885;\n  t[3120] = 1885;\n  t[3123] = 1886;\n  t[3124] = 1886;\n  t[3127] = 1887;\n  t[3128] = 1887;\n  t[3131] = 1888;\n  t[3132] = 1888;\n  t[3135] = 1889;\n  t[3136] = 1889;\n  t[3139] = 1890;\n  t[3140] = 1890;\n  t[3143] = 1891;\n  t[3144] = 1891;\n  t[3147] = 1892;\n  t[3148] = 1892;\n  t[3153] = 580;\n  t[3154] = 581;\n  t[3157] = 584;\n  t[3158] = 585;\n  t[3161] = 588;\n  t[3162] = 589;\n  t[3165] = 891;\n  t[3166] = 892;\n  t[3169] = 1274;\n  t[3170] = 1275;\n  t[3173] = 1278;\n  t[3174] = 1279;\n  t[3181] = 7622;\n  t[3182] = 7623;\n  t[3282] = 11799;\n  t[3316] = 578;\n  t[3379] = 42785;\n  t[3393] = 1159;\n  t[3416] = 8377;\n});\n\n// The glyph map for ArialBlack differs slightly from the glyph map used for\n// other well-known standard fonts. Hence we use this (incomplete) CID to GID\n// mapping to adjust the glyph map for non-embedded ArialBlack fonts.\nconst getSupplementalGlyphMapForArialBlack = getLookupTableFactory(\n  function (t) {\n    t[227] = 322;\n    t[264] = 261;\n    t[291] = 346;\n  }\n);\n\n// The glyph map for Calibri (a Windows font) differs from the glyph map used\n// in the standard fonts. Hence we use this (incomplete) CID to GID mapping to\n// adjust the glyph map for non-embedded Calibri fonts.\nconst getSupplementalGlyphMapForCalibri = getLookupTableFactory(function (t) {\n  t[1] = 32;\n  t[4] = 65;\n  t[5] = 192;\n  t[6] = 193;\n  t[9] = 196;\n  t[17] = 66;\n  t[18] = 67;\n  t[21] = 268;\n  t[24] = 68;\n  t[28] = 69;\n  t[29] = 200;\n  t[30] = 201;\n  t[32] = 282;\n  t[38] = 70;\n  t[39] = 71;\n  t[44] = 72;\n  t[47] = 73;\n  t[48] = 204;\n  t[49] = 205;\n  t[58] = 74;\n  t[60] = 75;\n  t[62] = 76;\n  t[68] = 77;\n  t[69] = 78;\n  t[75] = 79;\n  t[76] = 210;\n  t[80] = 214;\n  t[87] = 80;\n  t[89] = 81;\n  t[90] = 82;\n  t[92] = 344;\n  t[94] = 83;\n  t[97] = 352;\n  t[100] = 84;\n  t[104] = 85;\n  t[109] = 220;\n  t[115] = 86;\n  t[116] = 87;\n  t[121] = 88;\n  t[122] = 89;\n  t[124] = 221;\n  t[127] = 90;\n  t[129] = 381;\n  t[258] = 97;\n  t[259] = 224;\n  t[260] = 225;\n  t[263] = 228;\n  t[268] = 261;\n  t[271] = 98;\n  t[272] = 99;\n  t[273] = 263;\n  t[275] = 269;\n  t[282] = 100;\n  t[286] = 101;\n  t[287] = 232;\n  t[288] = 233;\n  t[290] = 283;\n  t[295] = 281;\n  t[296] = 102;\n  t[336] = 103;\n  t[346] = 104;\n  t[349] = 105;\n  t[350] = 236;\n  t[351] = 237;\n  t[361] = 106;\n  t[364] = 107;\n  t[367] = 108;\n  t[371] = 322;\n  t[373] = 109;\n  t[374] = 110;\n  t[381] = 111;\n  t[382] = 242;\n  t[383] = 243;\n  t[386] = 246;\n  t[393] = 112;\n  t[395] = 113;\n  t[396] = 114;\n  t[398] = 345;\n  t[400] = 115;\n  t[401] = 347;\n  t[403] = 353;\n  t[410] = 116;\n  t[437] = 117;\n  t[442] = 252;\n  t[448] = 118;\n  t[449] = 119;\n  t[454] = 120;\n  t[455] = 121;\n  t[457] = 253;\n  t[460] = 122;\n  t[462] = 382;\n  t[463] = 380;\n  t[853] = 44;\n  t[855] = 58;\n  t[856] = 46;\n  t[876] = 47;\n  t[878] = 45;\n  t[882] = 45;\n  t[894] = 40;\n  t[895] = 41;\n  t[896] = 91;\n  t[897] = 93;\n  t[923] = 64;\n  t[1004] = 48;\n  t[1005] = 49;\n  t[1006] = 50;\n  t[1007] = 51;\n  t[1008] = 52;\n  t[1009] = 53;\n  t[1010] = 54;\n  t[1011] = 55;\n  t[1012] = 56;\n  t[1013] = 57;\n  t[1081] = 37;\n  t[1085] = 43;\n  t[1086] = 45;\n});\n\nfunction getStandardFontName(name) {\n  const fontName = normalizeFontName(name);\n  const stdFontMap = getStdFontMap();\n  return stdFontMap[fontName];\n}\n\nfunction isKnownFontName(name) {\n  const fontName = normalizeFontName(name);\n  return !!(\n    getStdFontMap()[fontName] ||\n    getNonStdFontMap()[fontName] ||\n    getSerifFonts()[fontName] ||\n    getSymbolsFonts()[fontName]\n  );\n}\n\nexport {\n  getFontNameToFileMap,\n  getGlyphMapForStandardFonts,\n  getNonStdFontMap,\n  getSerifFonts,\n  getStandardFontName,\n  getStdFontMap,\n  getSupplementalGlyphMapForArialBlack,\n  getSupplementalGlyphMapForCalibri,\n  getSymbolsFonts,\n  isKnownFontName,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { unreachable } from \"../shared/util.js\";\n\nclass ToUnicodeMap {\n  constructor(cmap = []) {\n    // The elements of this._map can be integers or strings, depending on how\n    // `cmap` was created.\n    this._map = cmap;\n  }\n\n  get length() {\n    return this._map.length;\n  }\n\n  forEach(callback) {\n    for (const charCode in this._map) {\n      callback(charCode, this._map[charCode].charCodeAt(0));\n    }\n  }\n\n  has(i) {\n    return this._map[i] !== undefined;\n  }\n\n  get(i) {\n    return this._map[i];\n  }\n\n  charCodeOf(value) {\n    // `Array.prototype.indexOf` is *extremely* inefficient for arrays which\n    // are both very sparse and very large (see issue8372.pdf).\n    const map = this._map;\n    if (map.length <= 0x10000) {\n      return map.indexOf(value);\n    }\n    for (const charCode in map) {\n      if (map[charCode] === value) {\n        return charCode | 0;\n      }\n    }\n    return -1;\n  }\n\n  amend(map) {\n    for (const charCode in map) {\n      this._map[charCode] = map[charCode];\n    }\n  }\n}\n\nclass IdentityToUnicodeMap {\n  constructor(firstChar, lastChar) {\n    this.firstChar = firstChar;\n    this.lastChar = lastChar;\n  }\n\n  get length() {\n    return this.lastChar + 1 - this.firstChar;\n  }\n\n  forEach(callback) {\n    for (let i = this.firstChar, ii = this.lastChar; i <= ii; i++) {\n      callback(i, i);\n    }\n  }\n\n  has(i) {\n    return this.firstChar <= i && i <= this.lastChar;\n  }\n\n  get(i) {\n    if (this.firstChar <= i && i <= this.lastChar) {\n      return String.fromCharCode(i);\n    }\n    return undefined;\n  }\n\n  charCodeOf(v) {\n    return Number.isInteger(v) && v >= this.firstChar && v <= this.lastChar\n      ? v\n      : -1;\n  }\n\n  amend(map) {\n    unreachable(\"Should not call amend()\");\n  }\n}\n\nexport { IdentityToUnicodeMap, ToUnicodeMap };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CFFCompiler, CFFParser } from \"./cff_parser.js\";\nimport { SEAC_ANALYSIS_ENABLED, type1FontGlyphMapping } from \"./fonts_utils.js\";\nimport { warn } from \"../shared/util.js\";\n\nclass CFFFont {\n  constructor(file, properties) {\n    this.properties = properties;\n\n    const parser = new CFFParser(file, properties, SEAC_ANALYSIS_ENABLED);\n    this.cff = parser.parse();\n    this.cff.duplicateFirstGlyph();\n    const compiler = new CFFCompiler(this.cff);\n    this.seacs = this.cff.seacs;\n    try {\n      this.data = compiler.compile();\n    } catch {\n      warn(\"Failed to compile font \" + properties.loadedName);\n      // There may have just been an issue with the compiler, set the data\n      // anyway and hope the font loaded.\n      this.data = file;\n    }\n    this._createBuiltInEncoding();\n  }\n\n  get numGlyphs() {\n    return this.cff.charStrings.count;\n  }\n\n  getCharset() {\n    return this.cff.charset.charset;\n  }\n\n  getGlyphMapping() {\n    const cff = this.cff;\n    const properties = this.properties;\n    const { cidToGidMap, cMap } = properties;\n    const charsets = cff.charset.charset;\n    let charCodeToGlyphId;\n    let glyphId;\n\n    if (properties.composite) {\n      let invCidToGidMap;\n      if (cidToGidMap?.length > 0) {\n        invCidToGidMap = Object.create(null);\n        for (let i = 0, ii = cidToGidMap.length; i < ii; i++) {\n          const gid = cidToGidMap[i];\n          if (gid !== undefined) {\n            invCidToGidMap[gid] = i;\n          }\n        }\n      }\n\n      charCodeToGlyphId = Object.create(null);\n      let charCode;\n      if (cff.isCIDFont) {\n        // If the font is actually a CID font then we should use the charset\n        // to map CIDs to GIDs.\n        for (glyphId = 0; glyphId < charsets.length; glyphId++) {\n          const cid = charsets[glyphId];\n          charCode = cMap.charCodeOf(cid);\n\n          if (invCidToGidMap?.[charCode] !== undefined) {\n            // According to the PDF specification, see Table 117, it's not clear\n            // that a /CIDToGIDMap should be used with any non-TrueType fonts,\n            // however it's necessary to do so in order to fix issue 15559.\n            //\n            // It seems, in the CFF-case, that the /CIDToGIDMap needs to be used\n            // \"inverted\" compared to the TrueType-case. Here it thus seem to be\n            // a charCode mapping, rather than the normal CID to GID mapping.\n            charCode = invCidToGidMap[charCode];\n          }\n          charCodeToGlyphId[charCode] = glyphId;\n        }\n      } else {\n        // If it is NOT actually a CID font then CIDs should be mapped\n        // directly to GIDs.\n        for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) {\n          charCode = cMap.charCodeOf(glyphId);\n          charCodeToGlyphId[charCode] = glyphId;\n        }\n      }\n      return charCodeToGlyphId;\n    }\n\n    let encoding = cff.encoding ? cff.encoding.encoding : null;\n    if (properties.isInternalFont) {\n      encoding = properties.defaultEncoding;\n    }\n    charCodeToGlyphId = type1FontGlyphMapping(properties, encoding, charsets);\n    return charCodeToGlyphId;\n  }\n\n  hasGlyphId(id) {\n    return this.cff.hasGlyphId(id);\n  }\n\n  /**\n   * @private\n   */\n  _createBuiltInEncoding() {\n    const { charset, encoding } = this.cff;\n    if (!charset || !encoding) {\n      return;\n    }\n    const charsets = charset.charset,\n      encodings = encoding.encoding;\n    const map = [];\n\n    for (const charCode in encodings) {\n      const glyphId = encodings[charCode];\n      if (glyphId >= 0) {\n        const glyphName = charsets[glyphId];\n        if (glyphName) {\n          map[charCode] = glyphName;\n        }\n      }\n    }\n    if (map.length > 0) {\n      this.properties.builtInEncoding = map;\n    }\n  }\n}\n\nexport { CFFFont };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  bytesToString,\n  FONT_IDENTITY_MATRIX,\n  FormatError,\n  unreachable,\n  warn,\n} from \"../shared/util.js\";\nimport { CFFParser } from \"./cff_parser.js\";\nimport { getGlyphsUnicode } from \"./glyphlist.js\";\nimport { StandardEncoding } from \"./encodings.js\";\nimport { Stream } from \"./stream.js\";\n\n// TODO: use DataView and its methods.\n\nfunction getUint32(data, offset) {\n  return (\n    ((data[offset] << 24) |\n      (data[offset + 1] << 16) |\n      (data[offset + 2] << 8) |\n      data[offset + 3]) >>>\n    0\n  );\n}\n\nfunction getUint16(data, offset) {\n  return (data[offset] << 8) | data[offset + 1];\n}\n\nfunction getInt16(data, offset) {\n  return ((data[offset] << 24) | (data[offset + 1] << 16)) >> 16;\n}\n\nfunction getInt8(data, offset) {\n  return (data[offset] << 24) >> 24;\n}\n\nfunction getFloat214(data, offset) {\n  return getInt16(data, offset) / 16384;\n}\n\nfunction getSubroutineBias(subrs) {\n  const numSubrs = subrs.length;\n  let bias = 32768;\n  if (numSubrs < 1240) {\n    bias = 107;\n  } else if (numSubrs < 33900) {\n    bias = 1131;\n  }\n  return bias;\n}\n\nfunction parseCmap(data, start, end) {\n  const offset =\n    getUint16(data, start + 2) === 1\n      ? getUint32(data, start + 8)\n      : getUint32(data, start + 16);\n  const format = getUint16(data, start + offset);\n  let ranges, p, i;\n  if (format === 4) {\n    getUint16(data, start + offset + 2); // length\n    const segCount = getUint16(data, start + offset + 6) >> 1;\n    p = start + offset + 14;\n    ranges = [];\n    for (i = 0; i < segCount; i++, p += 2) {\n      ranges[i] = { end: getUint16(data, p) };\n    }\n    p += 2;\n    for (i = 0; i < segCount; i++, p += 2) {\n      ranges[i].start = getUint16(data, p);\n    }\n    for (i = 0; i < segCount; i++, p += 2) {\n      ranges[i].idDelta = getUint16(data, p);\n    }\n    for (i = 0; i < segCount; i++, p += 2) {\n      let idOffset = getUint16(data, p);\n      if (idOffset === 0) {\n        continue;\n      }\n      ranges[i].ids = [];\n      for (let j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) {\n        ranges[i].ids[j] = getUint16(data, p + idOffset);\n        idOffset += 2;\n      }\n    }\n    return ranges;\n  } else if (format === 12) {\n    const groups = getUint32(data, start + offset + 12);\n    p = start + offset + 16;\n    ranges = [];\n    for (i = 0; i < groups; i++) {\n      start = getUint32(data, p);\n      ranges.push({\n        start,\n        end: getUint32(data, p + 4),\n        idDelta: getUint32(data, p + 8) - start,\n      });\n      p += 12;\n    }\n    return ranges;\n  }\n  throw new FormatError(`unsupported cmap: ${format}`);\n}\n\nfunction parseCff(data, start, end, seacAnalysisEnabled) {\n  const properties = {};\n  const parser = new CFFParser(\n    new Stream(data, start, end - start),\n    properties,\n    seacAnalysisEnabled\n  );\n  const cff = parser.parse();\n  return {\n    glyphs: cff.charStrings.objects,\n    subrs: cff.topDict.privateDict?.subrsIndex?.objects,\n    gsubrs: cff.globalSubrIndex?.objects,\n    isCFFCIDFont: cff.isCIDFont,\n    fdSelect: cff.fdSelect,\n    fdArray: cff.fdArray,\n  };\n}\n\nfunction parseGlyfTable(glyf, loca, isGlyphLocationsLong) {\n  let itemSize, itemDecode;\n  if (isGlyphLocationsLong) {\n    itemSize = 4;\n    itemDecode = getUint32;\n  } else {\n    itemSize = 2;\n    itemDecode = (data, offset) => 2 * getUint16(data, offset);\n  }\n  const glyphs = [];\n  let startOffset = itemDecode(loca, 0);\n  for (let j = itemSize; j < loca.length; j += itemSize) {\n    const endOffset = itemDecode(loca, j);\n    glyphs.push(glyf.subarray(startOffset, endOffset));\n    startOffset = endOffset;\n  }\n  return glyphs;\n}\n\nfunction lookupCmap(ranges, unicode) {\n  const code = unicode.codePointAt(0);\n  let gid = 0,\n    l = 0,\n    r = ranges.length - 1;\n  while (l < r) {\n    const c = (l + r + 1) >> 1;\n    if (code < ranges[c].start) {\n      r = c - 1;\n    } else {\n      l = c;\n    }\n  }\n  if (ranges[l].start <= code && code <= ranges[l].end) {\n    gid =\n      (ranges[l].idDelta +\n        (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code)) &\n      0xffff;\n  }\n  return {\n    charCode: code,\n    glyphId: gid,\n  };\n}\n\nfunction compileGlyf(code, cmds, font) {\n  function moveTo(x, y) {\n    cmds.push({ cmd: \"moveTo\", args: [x, y] });\n  }\n  function lineTo(x, y) {\n    cmds.push({ cmd: \"lineTo\", args: [x, y] });\n  }\n  function quadraticCurveTo(xa, ya, x, y) {\n    cmds.push({ cmd: \"quadraticCurveTo\", args: [xa, ya, x, y] });\n  }\n\n  let i = 0;\n  const numberOfContours = getInt16(code, i);\n  let flags;\n  let x = 0,\n    y = 0;\n  i += 10;\n  if (numberOfContours < 0) {\n    // composite glyph\n    do {\n      flags = getUint16(code, i);\n      const glyphIndex = getUint16(code, i + 2);\n      i += 4;\n      let arg1, arg2;\n      if (flags & 0x01) {\n        if (flags & 0x02) {\n          arg1 = getInt16(code, i);\n          arg2 = getInt16(code, i + 2);\n        } else {\n          arg1 = getUint16(code, i);\n          arg2 = getUint16(code, i + 2);\n        }\n        i += 4;\n      } else if (flags & 0x02) {\n        arg1 = getInt8(code, i++);\n        arg2 = getInt8(code, i++);\n      } else {\n        arg1 = code[i++];\n        arg2 = code[i++];\n      }\n      if (flags & 0x02) {\n        x = arg1;\n        y = arg2;\n      } else {\n        x = 0;\n        y = 0;\n      }\n      let scaleX = 1,\n        scaleY = 1,\n        scale01 = 0,\n        scale10 = 0;\n      if (flags & 0x08) {\n        scaleX = scaleY = getFloat214(code, i);\n        i += 2;\n      } else if (flags & 0x40) {\n        scaleX = getFloat214(code, i);\n        scaleY = getFloat214(code, i + 2);\n        i += 4;\n      } else if (flags & 0x80) {\n        scaleX = getFloat214(code, i);\n        scale01 = getFloat214(code, i + 2);\n        scale10 = getFloat214(code, i + 4);\n        scaleY = getFloat214(code, i + 6);\n        i += 8;\n      }\n      const subglyph = font.glyphs[glyphIndex];\n      if (subglyph) {\n        // TODO: the transform should be applied only if there is a scale:\n        // https://github.com/freetype/freetype/blob/edd4fedc5427cf1cf1f4b045e53ff91eb282e9d4/src/truetype/ttgload.c#L1205\n        cmds.push(\n          { cmd: \"save\" },\n          {\n            cmd: \"transform\",\n            args: [scaleX, scale01, scale10, scaleY, x, y],\n          }\n        );\n\n        if (!(flags & 0x02)) {\n          // TODO: we must use arg1 and arg2 to make something similar to:\n          // https://github.com/freetype/freetype/blob/edd4fedc5427cf1cf1f4b045e53ff91eb282e9d4/src/truetype/ttgload.c#L1209\n        }\n        compileGlyf(subglyph, cmds, font);\n        cmds.push({ cmd: \"restore\" });\n      }\n    } while (flags & 0x20);\n  } else {\n    // simple glyph\n    const endPtsOfContours = [];\n    let j, jj;\n    for (j = 0; j < numberOfContours; j++) {\n      endPtsOfContours.push(getUint16(code, i));\n      i += 2;\n    }\n    const instructionLength = getUint16(code, i);\n    i += 2 + instructionLength; // skipping the instructions\n    const numberOfPoints = endPtsOfContours.at(-1) + 1;\n    const points = [];\n    while (points.length < numberOfPoints) {\n      flags = code[i++];\n      let repeat = 1;\n      if (flags & 0x08) {\n        repeat += code[i++];\n      }\n      while (repeat-- > 0) {\n        points.push({ flags });\n      }\n    }\n    for (j = 0; j < numberOfPoints; j++) {\n      switch (points[j].flags & 0x12) {\n        case 0x00:\n          x += getInt16(code, i);\n          i += 2;\n          break;\n        case 0x02:\n          x -= code[i++];\n          break;\n        case 0x12:\n          x += code[i++];\n          break;\n      }\n      points[j].x = x;\n    }\n    for (j = 0; j < numberOfPoints; j++) {\n      switch (points[j].flags & 0x24) {\n        case 0x00:\n          y += getInt16(code, i);\n          i += 2;\n          break;\n        case 0x04:\n          y -= code[i++];\n          break;\n        case 0x24:\n          y += code[i++];\n          break;\n      }\n      points[j].y = y;\n    }\n\n    let startPoint = 0;\n    for (i = 0; i < numberOfContours; i++) {\n      const endPoint = endPtsOfContours[i];\n      // contours might have implicit points, which is located in the middle\n      // between two neighboring off-curve points\n      const contour = points.slice(startPoint, endPoint + 1);\n      if (contour[0].flags & 1) {\n        contour.push(contour[0]); // using start point at the contour end\n      } else if (contour.at(-1).flags & 1) {\n        // first is off-curve point, trying to use one from the end\n        contour.unshift(contour.at(-1));\n      } else {\n        // start and end are off-curve points, creating implicit one\n        const p = {\n          flags: 1,\n          x: (contour[0].x + contour.at(-1).x) / 2,\n          y: (contour[0].y + contour.at(-1).y) / 2,\n        };\n        contour.unshift(p);\n        contour.push(p);\n      }\n      moveTo(contour[0].x, contour[0].y);\n      for (j = 1, jj = contour.length; j < jj; j++) {\n        if (contour[j].flags & 1) {\n          lineTo(contour[j].x, contour[j].y);\n        } else if (contour[j + 1].flags & 1) {\n          quadraticCurveTo(\n            contour[j].x,\n            contour[j].y,\n            contour[j + 1].x,\n            contour[j + 1].y\n          );\n          j++;\n        } else {\n          quadraticCurveTo(\n            contour[j].x,\n            contour[j].y,\n            (contour[j].x + contour[j + 1].x) / 2,\n            (contour[j].y + contour[j + 1].y) / 2\n          );\n        }\n      }\n      startPoint = endPoint + 1;\n    }\n  }\n}\n\nfunction compileCharString(charStringCode, cmds, font, glyphId) {\n  function moveTo(x, y) {\n    cmds.push({ cmd: \"moveTo\", args: [x, y] });\n  }\n  function lineTo(x, y) {\n    cmds.push({ cmd: \"lineTo\", args: [x, y] });\n  }\n  function bezierCurveTo(x1, y1, x2, y2, x, y) {\n    cmds.push({ cmd: \"bezierCurveTo\", args: [x1, y1, x2, y2, x, y] });\n  }\n\n  const stack = [];\n  let x = 0,\n    y = 0;\n  let stems = 0;\n\n  function parse(code) {\n    let i = 0;\n    while (i < code.length) {\n      let stackClean = false;\n      let v = code[i++];\n      let xa, xb, ya, yb, y1, y2, y3, n, subrCode;\n      switch (v) {\n        case 1: // hstem\n          stems += stack.length >> 1;\n          stackClean = true;\n          break;\n        case 3: // vstem\n          stems += stack.length >> 1;\n          stackClean = true;\n          break;\n        case 4: // vmoveto\n          y += stack.pop();\n          moveTo(x, y);\n          stackClean = true;\n          break;\n        case 5: // rlineto\n          while (stack.length > 0) {\n            x += stack.shift();\n            y += stack.shift();\n            lineTo(x, y);\n          }\n          break;\n        case 6: // hlineto\n          while (stack.length > 0) {\n            x += stack.shift();\n            lineTo(x, y);\n            if (stack.length === 0) {\n              break;\n            }\n            y += stack.shift();\n            lineTo(x, y);\n          }\n          break;\n        case 7: // vlineto\n          while (stack.length > 0) {\n            y += stack.shift();\n            lineTo(x, y);\n            if (stack.length === 0) {\n              break;\n            }\n            x += stack.shift();\n            lineTo(x, y);\n          }\n          break;\n        case 8: // rrcurveto\n          while (stack.length > 0) {\n            xa = x + stack.shift();\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb + stack.shift();\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n          break;\n        case 10: // callsubr\n          n = stack.pop();\n          subrCode = null;\n          if (font.isCFFCIDFont) {\n            const fdIndex = font.fdSelect.getFDIndex(glyphId);\n            if (fdIndex >= 0 && fdIndex < font.fdArray.length) {\n              const fontDict = font.fdArray[fdIndex];\n              let subrs;\n              if (fontDict.privateDict?.subrsIndex) {\n                subrs = fontDict.privateDict.subrsIndex.objects;\n              }\n              if (subrs) {\n                // Add subroutine bias.\n                n += getSubroutineBias(subrs);\n                subrCode = subrs[n];\n              }\n            } else {\n              warn(\"Invalid fd index for glyph index.\");\n            }\n          } else {\n            subrCode = font.subrs[n + font.subrsBias];\n          }\n          if (subrCode) {\n            parse(subrCode);\n          }\n          break;\n        case 11: // return\n          return;\n        case 12:\n          v = code[i++];\n          switch (v) {\n            case 34: // flex\n              xa = x + stack.shift();\n              xb = xa + stack.shift();\n              y1 = y + stack.shift();\n              x = xb + stack.shift();\n              bezierCurveTo(xa, y, xb, y1, x, y1);\n              xa = x + stack.shift();\n              xb = xa + stack.shift();\n              x = xb + stack.shift();\n              bezierCurveTo(xa, y1, xb, y, x, y);\n              break;\n            case 35: // flex\n              xa = x + stack.shift();\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n              xa = x + stack.shift();\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n              stack.pop(); // fd\n              break;\n            case 36: // hflex1\n              xa = x + stack.shift();\n              y1 = y + stack.shift();\n              xb = xa + stack.shift();\n              y2 = y1 + stack.shift();\n              x = xb + stack.shift();\n              bezierCurveTo(xa, y1, xb, y2, x, y2);\n              xa = x + stack.shift();\n              xb = xa + stack.shift();\n              y3 = y2 + stack.shift();\n              x = xb + stack.shift();\n              bezierCurveTo(xa, y2, xb, y3, x, y);\n              break;\n            case 37: // flex1\n              const x0 = x,\n                y0 = y;\n              xa = x + stack.shift();\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n              xa = x + stack.shift();\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb;\n              y = yb;\n              if (Math.abs(x - x0) > Math.abs(y - y0)) {\n                x += stack.shift();\n              } else {\n                y += stack.shift();\n              }\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n              break;\n            default:\n              throw new FormatError(`unknown operator: 12 ${v}`);\n          }\n          break;\n        case 14: // endchar\n          if (stack.length >= 4) {\n            const achar = stack.pop();\n            const bchar = stack.pop();\n            y = stack.pop();\n            x = stack.pop();\n            cmds.push({ cmd: \"save\" }, { cmd: \"translate\", args: [x, y] });\n            let cmap = lookupCmap(\n              font.cmap,\n              String.fromCharCode(font.glyphNameMap[StandardEncoding[achar]])\n            );\n            compileCharString(\n              font.glyphs[cmap.glyphId],\n              cmds,\n              font,\n              cmap.glyphId\n            );\n            cmds.push({ cmd: \"restore\" });\n\n            cmap = lookupCmap(\n              font.cmap,\n              String.fromCharCode(font.glyphNameMap[StandardEncoding[bchar]])\n            );\n            compileCharString(\n              font.glyphs[cmap.glyphId],\n              cmds,\n              font,\n              cmap.glyphId\n            );\n          }\n          return;\n        case 18: // hstemhm\n          stems += stack.length >> 1;\n          stackClean = true;\n          break;\n        case 19: // hintmask\n          stems += stack.length >> 1;\n          i += (stems + 7) >> 3;\n          stackClean = true;\n          break;\n        case 20: // cntrmask\n          stems += stack.length >> 1;\n          i += (stems + 7) >> 3;\n          stackClean = true;\n          break;\n        case 21: // rmoveto\n          y += stack.pop();\n          x += stack.pop();\n          moveTo(x, y);\n          stackClean = true;\n          break;\n        case 22: // hmoveto\n          x += stack.pop();\n          moveTo(x, y);\n          stackClean = true;\n          break;\n        case 23: // vstemhm\n          stems += stack.length >> 1;\n          stackClean = true;\n          break;\n        case 24: // rcurveline\n          while (stack.length > 2) {\n            xa = x + stack.shift();\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb + stack.shift();\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n          x += stack.shift();\n          y += stack.shift();\n          lineTo(x, y);\n          break;\n        case 25: // rlinecurve\n          while (stack.length > 6) {\n            x += stack.shift();\n            y += stack.shift();\n            lineTo(x, y);\n          }\n          xa = x + stack.shift();\n          ya = y + stack.shift();\n          xb = xa + stack.shift();\n          yb = ya + stack.shift();\n          x = xb + stack.shift();\n          y = yb + stack.shift();\n          bezierCurveTo(xa, ya, xb, yb, x, y);\n          break;\n        case 26: // vvcurveto\n          if (stack.length % 2) {\n            x += stack.shift();\n          }\n          while (stack.length > 0) {\n            xa = x;\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb;\n            y = yb + stack.shift();\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n          break;\n        case 27: // hhcurveto\n          if (stack.length % 2) {\n            y += stack.shift();\n          }\n          while (stack.length > 0) {\n            xa = x + stack.shift();\n            ya = y;\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb;\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n          break;\n        case 28:\n          stack.push(((code[i] << 24) | (code[i + 1] << 16)) >> 16);\n          i += 2;\n          break;\n        case 29: // callgsubr\n          n = stack.pop() + font.gsubrsBias;\n          subrCode = font.gsubrs[n];\n          if (subrCode) {\n            parse(subrCode);\n          }\n          break;\n        case 30: // vhcurveto\n          while (stack.length > 0) {\n            xa = x;\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb + (stack.length === 1 ? stack.shift() : 0);\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n            if (stack.length === 0) {\n              break;\n            }\n\n            xa = x + stack.shift();\n            ya = y;\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            y = yb + stack.shift();\n            x = xb + (stack.length === 1 ? stack.shift() : 0);\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n          break;\n        case 31: // hvcurveto\n          while (stack.length > 0) {\n            xa = x + stack.shift();\n            ya = y;\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            y = yb + stack.shift();\n            x = xb + (stack.length === 1 ? stack.shift() : 0);\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n            if (stack.length === 0) {\n              break;\n            }\n\n            xa = x;\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb + (stack.length === 1 ? stack.shift() : 0);\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n          break;\n        default:\n          if (v < 32) {\n            throw new FormatError(`unknown operator: ${v}`);\n          }\n          if (v < 247) {\n            stack.push(v - 139);\n          } else if (v < 251) {\n            stack.push((v - 247) * 256 + code[i++] + 108);\n          } else if (v < 255) {\n            stack.push(-(v - 251) * 256 - code[i++] - 108);\n          } else {\n            stack.push(\n              ((code[i] << 24) |\n                (code[i + 1] << 16) |\n                (code[i + 2] << 8) |\n                code[i + 3]) /\n                65536\n            );\n            i += 4;\n          }\n          break;\n      }\n      if (stackClean) {\n        stack.length = 0;\n      }\n    }\n  }\n  parse(charStringCode);\n}\n\nconst NOOP = [];\n\nclass CompiledFont {\n  constructor(fontMatrix) {\n    if (this.constructor === CompiledFont) {\n      unreachable(\"Cannot initialize CompiledFont.\");\n    }\n    this.fontMatrix = fontMatrix;\n\n    this.compiledGlyphs = Object.create(null);\n    this.compiledCharCodeToGlyphId = Object.create(null);\n  }\n\n  getPathJs(unicode) {\n    const { charCode, glyphId } = lookupCmap(this.cmap, unicode);\n    let fn = this.compiledGlyphs[glyphId];\n    if (!fn) {\n      try {\n        fn = this.compileGlyph(this.glyphs[glyphId], glyphId);\n        this.compiledGlyphs[glyphId] = fn;\n      } catch (ex) {\n        // Avoid attempting to re-compile a corrupt glyph.\n        this.compiledGlyphs[glyphId] = NOOP;\n\n        if (this.compiledCharCodeToGlyphId[charCode] === undefined) {\n          this.compiledCharCodeToGlyphId[charCode] = glyphId;\n        }\n        throw ex;\n      }\n    }\n    if (this.compiledCharCodeToGlyphId[charCode] === undefined) {\n      this.compiledCharCodeToGlyphId[charCode] = glyphId;\n    }\n    return fn;\n  }\n\n  compileGlyph(code, glyphId) {\n    if (!code || code.length === 0 || code[0] === 14) {\n      return NOOP;\n    }\n\n    let fontMatrix = this.fontMatrix;\n    if (this.isCFFCIDFont) {\n      // Top DICT's FontMatrix can be ignored because CFFCompiler always\n      // removes it and copies to FDArray DICTs.\n      const fdIndex = this.fdSelect.getFDIndex(glyphId);\n      if (fdIndex >= 0 && fdIndex < this.fdArray.length) {\n        const fontDict = this.fdArray[fdIndex];\n        fontMatrix = fontDict.getByName(\"FontMatrix\") || FONT_IDENTITY_MATRIX;\n      } else {\n        warn(\"Invalid fd index for glyph index.\");\n      }\n    }\n\n    const cmds = [\n      { cmd: \"save\" },\n      { cmd: \"transform\", args: fontMatrix.slice() },\n      { cmd: \"scale\", args: [\"size\", \"-size\"] },\n    ];\n    this.compileGlyphImpl(code, cmds, glyphId);\n\n    cmds.push({ cmd: \"restore\" });\n\n    return cmds;\n  }\n\n  compileGlyphImpl() {\n    unreachable(\"Children classes should implement this.\");\n  }\n\n  hasBuiltPath(unicode) {\n    const { charCode, glyphId } = lookupCmap(this.cmap, unicode);\n    return (\n      this.compiledGlyphs[glyphId] !== undefined &&\n      this.compiledCharCodeToGlyphId[charCode] !== undefined\n    );\n  }\n}\n\nclass TrueTypeCompiled extends CompiledFont {\n  constructor(glyphs, cmap, fontMatrix) {\n    super(fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0]);\n\n    this.glyphs = glyphs;\n    this.cmap = cmap;\n  }\n\n  compileGlyphImpl(code, cmds) {\n    compileGlyf(code, cmds, this);\n  }\n}\n\nclass Type2Compiled extends CompiledFont {\n  constructor(cffInfo, cmap, fontMatrix, glyphNameMap) {\n    super(fontMatrix || [0.001, 0, 0, 0.001, 0, 0]);\n\n    this.glyphs = cffInfo.glyphs;\n    this.gsubrs = cffInfo.gsubrs || [];\n    this.subrs = cffInfo.subrs || [];\n    this.cmap = cmap;\n    this.glyphNameMap = glyphNameMap || getGlyphsUnicode();\n\n    this.gsubrsBias = getSubroutineBias(this.gsubrs);\n    this.subrsBias = getSubroutineBias(this.subrs);\n\n    this.isCFFCIDFont = cffInfo.isCFFCIDFont;\n    this.fdSelect = cffInfo.fdSelect;\n    this.fdArray = cffInfo.fdArray;\n  }\n\n  compileGlyphImpl(code, cmds, glyphId) {\n    compileCharString(code, cmds, this, glyphId);\n  }\n}\n\nclass FontRendererFactory {\n  static create(font, seacAnalysisEnabled) {\n    const data = new Uint8Array(font.data);\n    let cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm;\n    const numTables = getUint16(data, 4);\n    for (let i = 0, p = 12; i < numTables; i++, p += 16) {\n      const tag = bytesToString(data.subarray(p, p + 4));\n      const offset = getUint32(data, p + 8);\n      const length = getUint32(data, p + 12);\n      switch (tag) {\n        case \"cmap\":\n          cmap = parseCmap(data, offset, offset + length);\n          break;\n        case \"glyf\":\n          glyf = data.subarray(offset, offset + length);\n          break;\n        case \"loca\":\n          loca = data.subarray(offset, offset + length);\n          break;\n        case \"head\":\n          unitsPerEm = getUint16(data, offset + 18);\n          indexToLocFormat = getUint16(data, offset + 50);\n          break;\n        case \"CFF \":\n          cff = parseCff(data, offset, offset + length, seacAnalysisEnabled);\n          break;\n      }\n    }\n\n    if (glyf) {\n      const fontMatrix = !unitsPerEm\n        ? font.fontMatrix\n        : [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0];\n      return new TrueTypeCompiled(\n        parseGlyfTable(glyf, loca, indexToLocFormat),\n        cmap,\n        fontMatrix\n      );\n    }\n    return new Type2Compiled(cff, cmap, font.fontMatrix, font.glyphNameMap);\n  }\n}\n\nexport { FontRendererFactory };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getLookupTableFactory } from \"./core_utils.js\";\n\n// The Metrics object contains glyph widths (in glyph space units).\n// As per PDF spec, for most fonts (Type 3 being an exception) a glyph\n// space unit corresponds to 1/1000th of text space unit.\nconst getMetrics = getLookupTableFactory(function (t) {\n  t.Courier = 600;\n  t[\"Courier-Bold\"] = 600;\n  t[\"Courier-BoldOblique\"] = 600;\n  t[\"Courier-Oblique\"] = 600;\n  // eslint-disable-next-line no-shadow\n  t.Helvetica = getLookupTableFactory(function (t) {\n    t.space = 278;\n    t.exclam = 278;\n    t.quotedbl = 355;\n    t.numbersign = 556;\n    t.dollar = 556;\n    t.percent = 889;\n    t.ampersand = 667;\n    t.quoteright = 222;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 389;\n    t.plus = 584;\n    t.comma = 278;\n    t.hyphen = 333;\n    t.period = 278;\n    t.slash = 278;\n    t.zero = 556;\n    t.one = 556;\n    t.two = 556;\n    t.three = 556;\n    t.four = 556;\n    t.five = 556;\n    t.six = 556;\n    t.seven = 556;\n    t.eight = 556;\n    t.nine = 556;\n    t.colon = 278;\n    t.semicolon = 278;\n    t.less = 584;\n    t.equal = 584;\n    t.greater = 584;\n    t.question = 556;\n    t.at = 1015;\n    t.A = 667;\n    t.B = 667;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 722;\n    t.I = 278;\n    t.J = 500;\n    t.K = 667;\n    t.L = 556;\n    t.M = 833;\n    t.N = 722;\n    t.O = 778;\n    t.P = 667;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 667;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 944;\n    t.X = 667;\n    t.Y = 667;\n    t.Z = 611;\n    t.bracketleft = 278;\n    t.backslash = 278;\n    t.bracketright = 278;\n    t.asciicircum = 469;\n    t.underscore = 556;\n    t.quoteleft = 222;\n    t.a = 556;\n    t.b = 556;\n    t.c = 500;\n    t.d = 556;\n    t.e = 556;\n    t.f = 278;\n    t.g = 556;\n    t.h = 556;\n    t.i = 222;\n    t.j = 222;\n    t.k = 500;\n    t.l = 222;\n    t.m = 833;\n    t.n = 556;\n    t.o = 556;\n    t.p = 556;\n    t.q = 556;\n    t.r = 333;\n    t.s = 500;\n    t.t = 278;\n    t.u = 556;\n    t.v = 500;\n    t.w = 722;\n    t.x = 500;\n    t.y = 500;\n    t.z = 500;\n    t.braceleft = 334;\n    t.bar = 260;\n    t.braceright = 334;\n    t.asciitilde = 584;\n    t.exclamdown = 333;\n    t.cent = 556;\n    t.sterling = 556;\n    t.fraction = 167;\n    t.yen = 556;\n    t.florin = 556;\n    t.section = 556;\n    t.currency = 556;\n    t.quotesingle = 191;\n    t.quotedblleft = 333;\n    t.guillemotleft = 556;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 500;\n    t.fl = 500;\n    t.endash = 556;\n    t.dagger = 556;\n    t.daggerdbl = 556;\n    t.periodcentered = 278;\n    t.paragraph = 537;\n    t.bullet = 350;\n    t.quotesinglbase = 222;\n    t.quotedblbase = 333;\n    t.quotedblright = 333;\n    t.guillemotright = 556;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 611;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 370;\n    t.Lslash = 556;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 365;\n    t.ae = 889;\n    t.dotlessi = 278;\n    t.lslash = 222;\n    t.oslash = 611;\n    t.oe = 944;\n    t.germandbls = 611;\n    t.Idieresis = 278;\n    t.eacute = 556;\n    t.abreve = 556;\n    t.uhungarumlaut = 556;\n    t.ecaron = 556;\n    t.Ydieresis = 667;\n    t.divide = 584;\n    t.Yacute = 667;\n    t.Acircumflex = 667;\n    t.aacute = 556;\n    t.Ucircumflex = 722;\n    t.yacute = 500;\n    t.scommaaccent = 500;\n    t.ecircumflex = 556;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 556;\n    t.Uacute = 722;\n    t.uogonek = 556;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 737;\n    t.Emacron = 667;\n    t.ccaron = 500;\n    t.aring = 556;\n    t.Ncommaaccent = 722;\n    t.lacute = 222;\n    t.agrave = 556;\n    t.Tcommaaccent = 611;\n    t.Cacute = 722;\n    t.atilde = 556;\n    t.Edotaccent = 667;\n    t.scaron = 500;\n    t.scedilla = 500;\n    t.iacute = 278;\n    t.lozenge = 471;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 556;\n    t.acircumflex = 556;\n    t.Amacron = 667;\n    t.rcaron = 333;\n    t.ccedilla = 500;\n    t.Zdotaccent = 611;\n    t.Thorn = 667;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 667;\n    t.dcaron = 643;\n    t.Umacron = 722;\n    t.uring = 556;\n    t.threesuperior = 333;\n    t.Ograve = 778;\n    t.Agrave = 667;\n    t.Abreve = 667;\n    t.multiply = 584;\n    t.uacute = 556;\n    t.Tcaron = 611;\n    t.partialdiff = 476;\n    t.ydieresis = 500;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 556;\n    t.edieresis = 556;\n    t.cacute = 500;\n    t.nacute = 556;\n    t.umacron = 556;\n    t.Ncaron = 722;\n    t.Iacute = 278;\n    t.plusminus = 584;\n    t.brokenbar = 260;\n    t.registered = 737;\n    t.Gbreve = 778;\n    t.Idotaccent = 278;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 333;\n    t.omacron = 556;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 222;\n    t.tcaron = 317;\n    t.eogonek = 556;\n    t.Uogonek = 722;\n    t.Aacute = 667;\n    t.Adieresis = 667;\n    t.egrave = 556;\n    t.zacute = 500;\n    t.iogonek = 222;\n    t.Oacute = 778;\n    t.oacute = 556;\n    t.amacron = 556;\n    t.sacute = 500;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 556;\n    t.twosuperior = 333;\n    t.Odieresis = 778;\n    t.mu = 556;\n    t.igrave = 278;\n    t.ohungarumlaut = 556;\n    t.Eogonek = 667;\n    t.dcroat = 556;\n    t.threequarters = 834;\n    t.Scedilla = 667;\n    t.lcaron = 299;\n    t.Kcommaaccent = 667;\n    t.Lacute = 556;\n    t.trademark = 1000;\n    t.edotaccent = 556;\n    t.Igrave = 278;\n    t.Imacron = 278;\n    t.Lcaron = 556;\n    t.onehalf = 834;\n    t.lessequal = 549;\n    t.ocircumflex = 556;\n    t.ntilde = 556;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 556;\n    t.gbreve = 556;\n    t.onequarter = 834;\n    t.Scaron = 667;\n    t.Scommaaccent = 667;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 556;\n    t.Ccaron = 722;\n    t.ugrave = 556;\n    t.radical = 453;\n    t.Dcaron = 722;\n    t.rcommaaccent = 333;\n    t.Ntilde = 722;\n    t.otilde = 556;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 556;\n    t.Atilde = 667;\n    t.Aogonek = 667;\n    t.Aring = 667;\n    t.Otilde = 778;\n    t.zdotaccent = 500;\n    t.Ecaron = 667;\n    t.Iogonek = 278;\n    t.kcommaaccent = 500;\n    t.minus = 584;\n    t.Icircumflex = 278;\n    t.ncaron = 556;\n    t.tcommaaccent = 278;\n    t.logicalnot = 584;\n    t.odieresis = 556;\n    t.udieresis = 556;\n    t.notequal = 549;\n    t.gcommaaccent = 556;\n    t.eth = 556;\n    t.zcaron = 500;\n    t.ncommaaccent = 556;\n    t.onesuperior = 333;\n    t.imacron = 278;\n    t.Euro = 556;\n  });\n  // eslint-disable-next-line no-shadow\n  t[\"Helvetica-Bold\"] = getLookupTableFactory(function (t) {\n    t.space = 278;\n    t.exclam = 333;\n    t.quotedbl = 474;\n    t.numbersign = 556;\n    t.dollar = 556;\n    t.percent = 889;\n    t.ampersand = 722;\n    t.quoteright = 278;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 389;\n    t.plus = 584;\n    t.comma = 278;\n    t.hyphen = 333;\n    t.period = 278;\n    t.slash = 278;\n    t.zero = 556;\n    t.one = 556;\n    t.two = 556;\n    t.three = 556;\n    t.four = 556;\n    t.five = 556;\n    t.six = 556;\n    t.seven = 556;\n    t.eight = 556;\n    t.nine = 556;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 584;\n    t.equal = 584;\n    t.greater = 584;\n    t.question = 611;\n    t.at = 975;\n    t.A = 722;\n    t.B = 722;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 722;\n    t.I = 278;\n    t.J = 556;\n    t.K = 722;\n    t.L = 611;\n    t.M = 833;\n    t.N = 722;\n    t.O = 778;\n    t.P = 667;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 667;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 944;\n    t.X = 667;\n    t.Y = 667;\n    t.Z = 611;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 584;\n    t.underscore = 556;\n    t.quoteleft = 278;\n    t.a = 556;\n    t.b = 611;\n    t.c = 556;\n    t.d = 611;\n    t.e = 556;\n    t.f = 333;\n    t.g = 611;\n    t.h = 611;\n    t.i = 278;\n    t.j = 278;\n    t.k = 556;\n    t.l = 278;\n    t.m = 889;\n    t.n = 611;\n    t.o = 611;\n    t.p = 611;\n    t.q = 611;\n    t.r = 389;\n    t.s = 556;\n    t.t = 333;\n    t.u = 611;\n    t.v = 556;\n    t.w = 778;\n    t.x = 556;\n    t.y = 556;\n    t.z = 500;\n    t.braceleft = 389;\n    t.bar = 280;\n    t.braceright = 389;\n    t.asciitilde = 584;\n    t.exclamdown = 333;\n    t.cent = 556;\n    t.sterling = 556;\n    t.fraction = 167;\n    t.yen = 556;\n    t.florin = 556;\n    t.section = 556;\n    t.currency = 556;\n    t.quotesingle = 238;\n    t.quotedblleft = 500;\n    t.guillemotleft = 556;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 611;\n    t.fl = 611;\n    t.endash = 556;\n    t.dagger = 556;\n    t.daggerdbl = 556;\n    t.periodcentered = 278;\n    t.paragraph = 556;\n    t.bullet = 350;\n    t.quotesinglbase = 278;\n    t.quotedblbase = 500;\n    t.quotedblright = 500;\n    t.guillemotright = 556;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 611;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 370;\n    t.Lslash = 611;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 365;\n    t.ae = 889;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 611;\n    t.oe = 944;\n    t.germandbls = 611;\n    t.Idieresis = 278;\n    t.eacute = 556;\n    t.abreve = 556;\n    t.uhungarumlaut = 611;\n    t.ecaron = 556;\n    t.Ydieresis = 667;\n    t.divide = 584;\n    t.Yacute = 667;\n    t.Acircumflex = 722;\n    t.aacute = 556;\n    t.Ucircumflex = 722;\n    t.yacute = 556;\n    t.scommaaccent = 556;\n    t.ecircumflex = 556;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 556;\n    t.Uacute = 722;\n    t.uogonek = 611;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 737;\n    t.Emacron = 667;\n    t.ccaron = 556;\n    t.aring = 556;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 556;\n    t.Tcommaaccent = 611;\n    t.Cacute = 722;\n    t.atilde = 556;\n    t.Edotaccent = 667;\n    t.scaron = 556;\n    t.scedilla = 556;\n    t.iacute = 278;\n    t.lozenge = 494;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 611;\n    t.acircumflex = 556;\n    t.Amacron = 722;\n    t.rcaron = 389;\n    t.ccedilla = 556;\n    t.Zdotaccent = 611;\n    t.Thorn = 667;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 667;\n    t.dcaron = 743;\n    t.Umacron = 722;\n    t.uring = 611;\n    t.threesuperior = 333;\n    t.Ograve = 778;\n    t.Agrave = 722;\n    t.Abreve = 722;\n    t.multiply = 584;\n    t.uacute = 611;\n    t.Tcaron = 611;\n    t.partialdiff = 494;\n    t.ydieresis = 556;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 556;\n    t.edieresis = 556;\n    t.cacute = 556;\n    t.nacute = 611;\n    t.umacron = 611;\n    t.Ncaron = 722;\n    t.Iacute = 278;\n    t.plusminus = 584;\n    t.brokenbar = 280;\n    t.registered = 737;\n    t.Gbreve = 778;\n    t.Idotaccent = 278;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 389;\n    t.omacron = 611;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 278;\n    t.tcaron = 389;\n    t.eogonek = 556;\n    t.Uogonek = 722;\n    t.Aacute = 722;\n    t.Adieresis = 722;\n    t.egrave = 556;\n    t.zacute = 500;\n    t.iogonek = 278;\n    t.Oacute = 778;\n    t.oacute = 611;\n    t.amacron = 556;\n    t.sacute = 556;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 611;\n    t.twosuperior = 333;\n    t.Odieresis = 778;\n    t.mu = 611;\n    t.igrave = 278;\n    t.ohungarumlaut = 611;\n    t.Eogonek = 667;\n    t.dcroat = 611;\n    t.threequarters = 834;\n    t.Scedilla = 667;\n    t.lcaron = 400;\n    t.Kcommaaccent = 722;\n    t.Lacute = 611;\n    t.trademark = 1000;\n    t.edotaccent = 556;\n    t.Igrave = 278;\n    t.Imacron = 278;\n    t.Lcaron = 611;\n    t.onehalf = 834;\n    t.lessequal = 549;\n    t.ocircumflex = 611;\n    t.ntilde = 611;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 556;\n    t.gbreve = 611;\n    t.onequarter = 834;\n    t.Scaron = 667;\n    t.Scommaaccent = 667;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 611;\n    t.Ccaron = 722;\n    t.ugrave = 611;\n    t.radical = 549;\n    t.Dcaron = 722;\n    t.rcommaaccent = 389;\n    t.Ntilde = 722;\n    t.otilde = 611;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 611;\n    t.Atilde = 722;\n    t.Aogonek = 722;\n    t.Aring = 722;\n    t.Otilde = 778;\n    t.zdotaccent = 500;\n    t.Ecaron = 667;\n    t.Iogonek = 278;\n    t.kcommaaccent = 556;\n    t.minus = 584;\n    t.Icircumflex = 278;\n    t.ncaron = 611;\n    t.tcommaaccent = 333;\n    t.logicalnot = 584;\n    t.odieresis = 611;\n    t.udieresis = 611;\n    t.notequal = 549;\n    t.gcommaaccent = 611;\n    t.eth = 611;\n    t.zcaron = 500;\n    t.ncommaaccent = 611;\n    t.onesuperior = 333;\n    t.imacron = 278;\n    t.Euro = 556;\n  });\n  // eslint-disable-next-line no-shadow\n  t[\"Helvetica-BoldOblique\"] = getLookupTableFactory(function (t) {\n    t.space = 278;\n    t.exclam = 333;\n    t.quotedbl = 474;\n    t.numbersign = 556;\n    t.dollar = 556;\n    t.percent = 889;\n    t.ampersand = 722;\n    t.quoteright = 278;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 389;\n    t.plus = 584;\n    t.comma = 278;\n    t.hyphen = 333;\n    t.period = 278;\n    t.slash = 278;\n    t.zero = 556;\n    t.one = 556;\n    t.two = 556;\n    t.three = 556;\n    t.four = 556;\n    t.five = 556;\n    t.six = 556;\n    t.seven = 556;\n    t.eight = 556;\n    t.nine = 556;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 584;\n    t.equal = 584;\n    t.greater = 584;\n    t.question = 611;\n    t.at = 975;\n    t.A = 722;\n    t.B = 722;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 722;\n    t.I = 278;\n    t.J = 556;\n    t.K = 722;\n    t.L = 611;\n    t.M = 833;\n    t.N = 722;\n    t.O = 778;\n    t.P = 667;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 667;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 944;\n    t.X = 667;\n    t.Y = 667;\n    t.Z = 611;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 584;\n    t.underscore = 556;\n    t.quoteleft = 278;\n    t.a = 556;\n    t.b = 611;\n    t.c = 556;\n    t.d = 611;\n    t.e = 556;\n    t.f = 333;\n    t.g = 611;\n    t.h = 611;\n    t.i = 278;\n    t.j = 278;\n    t.k = 556;\n    t.l = 278;\n    t.m = 889;\n    t.n = 611;\n    t.o = 611;\n    t.p = 611;\n    t.q = 611;\n    t.r = 389;\n    t.s = 556;\n    t.t = 333;\n    t.u = 611;\n    t.v = 556;\n    t.w = 778;\n    t.x = 556;\n    t.y = 556;\n    t.z = 500;\n    t.braceleft = 389;\n    t.bar = 280;\n    t.braceright = 389;\n    t.asciitilde = 584;\n    t.exclamdown = 333;\n    t.cent = 556;\n    t.sterling = 556;\n    t.fraction = 167;\n    t.yen = 556;\n    t.florin = 556;\n    t.section = 556;\n    t.currency = 556;\n    t.quotesingle = 238;\n    t.quotedblleft = 500;\n    t.guillemotleft = 556;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 611;\n    t.fl = 611;\n    t.endash = 556;\n    t.dagger = 556;\n    t.daggerdbl = 556;\n    t.periodcentered = 278;\n    t.paragraph = 556;\n    t.bullet = 350;\n    t.quotesinglbase = 278;\n    t.quotedblbase = 500;\n    t.quotedblright = 500;\n    t.guillemotright = 556;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 611;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 370;\n    t.Lslash = 611;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 365;\n    t.ae = 889;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 611;\n    t.oe = 944;\n    t.germandbls = 611;\n    t.Idieresis = 278;\n    t.eacute = 556;\n    t.abreve = 556;\n    t.uhungarumlaut = 611;\n    t.ecaron = 556;\n    t.Ydieresis = 667;\n    t.divide = 584;\n    t.Yacute = 667;\n    t.Acircumflex = 722;\n    t.aacute = 556;\n    t.Ucircumflex = 722;\n    t.yacute = 556;\n    t.scommaaccent = 556;\n    t.ecircumflex = 556;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 556;\n    t.Uacute = 722;\n    t.uogonek = 611;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 737;\n    t.Emacron = 667;\n    t.ccaron = 556;\n    t.aring = 556;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 556;\n    t.Tcommaaccent = 611;\n    t.Cacute = 722;\n    t.atilde = 556;\n    t.Edotaccent = 667;\n    t.scaron = 556;\n    t.scedilla = 556;\n    t.iacute = 278;\n    t.lozenge = 494;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 611;\n    t.acircumflex = 556;\n    t.Amacron = 722;\n    t.rcaron = 389;\n    t.ccedilla = 556;\n    t.Zdotaccent = 611;\n    t.Thorn = 667;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 667;\n    t.dcaron = 743;\n    t.Umacron = 722;\n    t.uring = 611;\n    t.threesuperior = 333;\n    t.Ograve = 778;\n    t.Agrave = 722;\n    t.Abreve = 722;\n    t.multiply = 584;\n    t.uacute = 611;\n    t.Tcaron = 611;\n    t.partialdiff = 494;\n    t.ydieresis = 556;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 556;\n    t.edieresis = 556;\n    t.cacute = 556;\n    t.nacute = 611;\n    t.umacron = 611;\n    t.Ncaron = 722;\n    t.Iacute = 278;\n    t.plusminus = 584;\n    t.brokenbar = 280;\n    t.registered = 737;\n    t.Gbreve = 778;\n    t.Idotaccent = 278;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 389;\n    t.omacron = 611;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 278;\n    t.tcaron = 389;\n    t.eogonek = 556;\n    t.Uogonek = 722;\n    t.Aacute = 722;\n    t.Adieresis = 722;\n    t.egrave = 556;\n    t.zacute = 500;\n    t.iogonek = 278;\n    t.Oacute = 778;\n    t.oacute = 611;\n    t.amacron = 556;\n    t.sacute = 556;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 611;\n    t.twosuperior = 333;\n    t.Odieresis = 778;\n    t.mu = 611;\n    t.igrave = 278;\n    t.ohungarumlaut = 611;\n    t.Eogonek = 667;\n    t.dcroat = 611;\n    t.threequarters = 834;\n    t.Scedilla = 667;\n    t.lcaron = 400;\n    t.Kcommaaccent = 722;\n    t.Lacute = 611;\n    t.trademark = 1000;\n    t.edotaccent = 556;\n    t.Igrave = 278;\n    t.Imacron = 278;\n    t.Lcaron = 611;\n    t.onehalf = 834;\n    t.lessequal = 549;\n    t.ocircumflex = 611;\n    t.ntilde = 611;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 556;\n    t.gbreve = 611;\n    t.onequarter = 834;\n    t.Scaron = 667;\n    t.Scommaaccent = 667;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 611;\n    t.Ccaron = 722;\n    t.ugrave = 611;\n    t.radical = 549;\n    t.Dcaron = 722;\n    t.rcommaaccent = 389;\n    t.Ntilde = 722;\n    t.otilde = 611;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 611;\n    t.Atilde = 722;\n    t.Aogonek = 722;\n    t.Aring = 722;\n    t.Otilde = 778;\n    t.zdotaccent = 500;\n    t.Ecaron = 667;\n    t.Iogonek = 278;\n    t.kcommaaccent = 556;\n    t.minus = 584;\n    t.Icircumflex = 278;\n    t.ncaron = 611;\n    t.tcommaaccent = 333;\n    t.logicalnot = 584;\n    t.odieresis = 611;\n    t.udieresis = 611;\n    t.notequal = 549;\n    t.gcommaaccent = 611;\n    t.eth = 611;\n    t.zcaron = 500;\n    t.ncommaaccent = 611;\n    t.onesuperior = 333;\n    t.imacron = 278;\n    t.Euro = 556;\n  });\n  // eslint-disable-next-line no-shadow\n  t[\"Helvetica-Oblique\"] = getLookupTableFactory(function (t) {\n    t.space = 278;\n    t.exclam = 278;\n    t.quotedbl = 355;\n    t.numbersign = 556;\n    t.dollar = 556;\n    t.percent = 889;\n    t.ampersand = 667;\n    t.quoteright = 222;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 389;\n    t.plus = 584;\n    t.comma = 278;\n    t.hyphen = 333;\n    t.period = 278;\n    t.slash = 278;\n    t.zero = 556;\n    t.one = 556;\n    t.two = 556;\n    t.three = 556;\n    t.four = 556;\n    t.five = 556;\n    t.six = 556;\n    t.seven = 556;\n    t.eight = 556;\n    t.nine = 556;\n    t.colon = 278;\n    t.semicolon = 278;\n    t.less = 584;\n    t.equal = 584;\n    t.greater = 584;\n    t.question = 556;\n    t.at = 1015;\n    t.A = 667;\n    t.B = 667;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 722;\n    t.I = 278;\n    t.J = 500;\n    t.K = 667;\n    t.L = 556;\n    t.M = 833;\n    t.N = 722;\n    t.O = 778;\n    t.P = 667;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 667;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 944;\n    t.X = 667;\n    t.Y = 667;\n    t.Z = 611;\n    t.bracketleft = 278;\n    t.backslash = 278;\n    t.bracketright = 278;\n    t.asciicircum = 469;\n    t.underscore = 556;\n    t.quoteleft = 222;\n    t.a = 556;\n    t.b = 556;\n    t.c = 500;\n    t.d = 556;\n    t.e = 556;\n    t.f = 278;\n    t.g = 556;\n    t.h = 556;\n    t.i = 222;\n    t.j = 222;\n    t.k = 500;\n    t.l = 222;\n    t.m = 833;\n    t.n = 556;\n    t.o = 556;\n    t.p = 556;\n    t.q = 556;\n    t.r = 333;\n    t.s = 500;\n    t.t = 278;\n    t.u = 556;\n    t.v = 500;\n    t.w = 722;\n    t.x = 500;\n    t.y = 500;\n    t.z = 500;\n    t.braceleft = 334;\n    t.bar = 260;\n    t.braceright = 334;\n    t.asciitilde = 584;\n    t.exclamdown = 333;\n    t.cent = 556;\n    t.sterling = 556;\n    t.fraction = 167;\n    t.yen = 556;\n    t.florin = 556;\n    t.section = 556;\n    t.currency = 556;\n    t.quotesingle = 191;\n    t.quotedblleft = 333;\n    t.guillemotleft = 556;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 500;\n    t.fl = 500;\n    t.endash = 556;\n    t.dagger = 556;\n    t.daggerdbl = 556;\n    t.periodcentered = 278;\n    t.paragraph = 537;\n    t.bullet = 350;\n    t.quotesinglbase = 222;\n    t.quotedblbase = 333;\n    t.quotedblright = 333;\n    t.guillemotright = 556;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 611;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 370;\n    t.Lslash = 556;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 365;\n    t.ae = 889;\n    t.dotlessi = 278;\n    t.lslash = 222;\n    t.oslash = 611;\n    t.oe = 944;\n    t.germandbls = 611;\n    t.Idieresis = 278;\n    t.eacute = 556;\n    t.abreve = 556;\n    t.uhungarumlaut = 556;\n    t.ecaron = 556;\n    t.Ydieresis = 667;\n    t.divide = 584;\n    t.Yacute = 667;\n    t.Acircumflex = 667;\n    t.aacute = 556;\n    t.Ucircumflex = 722;\n    t.yacute = 500;\n    t.scommaaccent = 500;\n    t.ecircumflex = 556;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 556;\n    t.Uacute = 722;\n    t.uogonek = 556;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 737;\n    t.Emacron = 667;\n    t.ccaron = 500;\n    t.aring = 556;\n    t.Ncommaaccent = 722;\n    t.lacute = 222;\n    t.agrave = 556;\n    t.Tcommaaccent = 611;\n    t.Cacute = 722;\n    t.atilde = 556;\n    t.Edotaccent = 667;\n    t.scaron = 500;\n    t.scedilla = 500;\n    t.iacute = 278;\n    t.lozenge = 471;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 556;\n    t.acircumflex = 556;\n    t.Amacron = 667;\n    t.rcaron = 333;\n    t.ccedilla = 500;\n    t.Zdotaccent = 611;\n    t.Thorn = 667;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 667;\n    t.dcaron = 643;\n    t.Umacron = 722;\n    t.uring = 556;\n    t.threesuperior = 333;\n    t.Ograve = 778;\n    t.Agrave = 667;\n    t.Abreve = 667;\n    t.multiply = 584;\n    t.uacute = 556;\n    t.Tcaron = 611;\n    t.partialdiff = 476;\n    t.ydieresis = 500;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 556;\n    t.edieresis = 556;\n    t.cacute = 500;\n    t.nacute = 556;\n    t.umacron = 556;\n    t.Ncaron = 722;\n    t.Iacute = 278;\n    t.plusminus = 584;\n    t.brokenbar = 260;\n    t.registered = 737;\n    t.Gbreve = 778;\n    t.Idotaccent = 278;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 333;\n    t.omacron = 556;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 222;\n    t.tcaron = 317;\n    t.eogonek = 556;\n    t.Uogonek = 722;\n    t.Aacute = 667;\n    t.Adieresis = 667;\n    t.egrave = 556;\n    t.zacute = 500;\n    t.iogonek = 222;\n    t.Oacute = 778;\n    t.oacute = 556;\n    t.amacron = 556;\n    t.sacute = 500;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 556;\n    t.twosuperior = 333;\n    t.Odieresis = 778;\n    t.mu = 556;\n    t.igrave = 278;\n    t.ohungarumlaut = 556;\n    t.Eogonek = 667;\n    t.dcroat = 556;\n    t.threequarters = 834;\n    t.Scedilla = 667;\n    t.lcaron = 299;\n    t.Kcommaaccent = 667;\n    t.Lacute = 556;\n    t.trademark = 1000;\n    t.edotaccent = 556;\n    t.Igrave = 278;\n    t.Imacron = 278;\n    t.Lcaron = 556;\n    t.onehalf = 834;\n    t.lessequal = 549;\n    t.ocircumflex = 556;\n    t.ntilde = 556;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 556;\n    t.gbreve = 556;\n    t.onequarter = 834;\n    t.Scaron = 667;\n    t.Scommaaccent = 667;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 556;\n    t.Ccaron = 722;\n    t.ugrave = 556;\n    t.radical = 453;\n    t.Dcaron = 722;\n    t.rcommaaccent = 333;\n    t.Ntilde = 722;\n    t.otilde = 556;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 556;\n    t.Atilde = 667;\n    t.Aogonek = 667;\n    t.Aring = 667;\n    t.Otilde = 778;\n    t.zdotaccent = 500;\n    t.Ecaron = 667;\n    t.Iogonek = 278;\n    t.kcommaaccent = 500;\n    t.minus = 584;\n    t.Icircumflex = 278;\n    t.ncaron = 556;\n    t.tcommaaccent = 278;\n    t.logicalnot = 584;\n    t.odieresis = 556;\n    t.udieresis = 556;\n    t.notequal = 549;\n    t.gcommaaccent = 556;\n    t.eth = 556;\n    t.zcaron = 500;\n    t.ncommaaccent = 556;\n    t.onesuperior = 333;\n    t.imacron = 278;\n    t.Euro = 556;\n  });\n  // eslint-disable-next-line no-shadow\n  t.Symbol = getLookupTableFactory(function (t) {\n    t.space = 250;\n    t.exclam = 333;\n    t.universal = 713;\n    t.numbersign = 500;\n    t.existential = 549;\n    t.percent = 833;\n    t.ampersand = 778;\n    t.suchthat = 439;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asteriskmath = 500;\n    t.plus = 549;\n    t.comma = 250;\n    t.minus = 549;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 278;\n    t.semicolon = 278;\n    t.less = 549;\n    t.equal = 549;\n    t.greater = 549;\n    t.question = 444;\n    t.congruent = 549;\n    t.Alpha = 722;\n    t.Beta = 667;\n    t.Chi = 722;\n    t.Delta = 612;\n    t.Epsilon = 611;\n    t.Phi = 763;\n    t.Gamma = 603;\n    t.Eta = 722;\n    t.Iota = 333;\n    t.theta1 = 631;\n    t.Kappa = 722;\n    t.Lambda = 686;\n    t.Mu = 889;\n    t.Nu = 722;\n    t.Omicron = 722;\n    t.Pi = 768;\n    t.Theta = 741;\n    t.Rho = 556;\n    t.Sigma = 592;\n    t.Tau = 611;\n    t.Upsilon = 690;\n    t.sigma1 = 439;\n    t.Omega = 768;\n    t.Xi = 645;\n    t.Psi = 795;\n    t.Zeta = 611;\n    t.bracketleft = 333;\n    t.therefore = 863;\n    t.bracketright = 333;\n    t.perpendicular = 658;\n    t.underscore = 500;\n    t.radicalex = 500;\n    t.alpha = 631;\n    t.beta = 549;\n    t.chi = 549;\n    t.delta = 494;\n    t.epsilon = 439;\n    t.phi = 521;\n    t.gamma = 411;\n    t.eta = 603;\n    t.iota = 329;\n    t.phi1 = 603;\n    t.kappa = 549;\n    t.lambda = 549;\n    t.mu = 576;\n    t.nu = 521;\n    t.omicron = 549;\n    t.pi = 549;\n    t.theta = 521;\n    t.rho = 549;\n    t.sigma = 603;\n    t.tau = 439;\n    t.upsilon = 576;\n    t.omega1 = 713;\n    t.omega = 686;\n    t.xi = 493;\n    t.psi = 686;\n    t.zeta = 494;\n    t.braceleft = 480;\n    t.bar = 200;\n    t.braceright = 480;\n    t.similar = 549;\n    t.Euro = 750;\n    t.Upsilon1 = 620;\n    t.minute = 247;\n    t.lessequal = 549;\n    t.fraction = 167;\n    t.infinity = 713;\n    t.florin = 500;\n    t.club = 753;\n    t.diamond = 753;\n    t.heart = 753;\n    t.spade = 753;\n    t.arrowboth = 1042;\n    t.arrowleft = 987;\n    t.arrowup = 603;\n    t.arrowright = 987;\n    t.arrowdown = 603;\n    t.degree = 400;\n    t.plusminus = 549;\n    t.second = 411;\n    t.greaterequal = 549;\n    t.multiply = 549;\n    t.proportional = 713;\n    t.partialdiff = 494;\n    t.bullet = 460;\n    t.divide = 549;\n    t.notequal = 549;\n    t.equivalence = 549;\n    t.approxequal = 549;\n    t.ellipsis = 1000;\n    t.arrowvertex = 603;\n    t.arrowhorizex = 1000;\n    t.carriagereturn = 658;\n    t.aleph = 823;\n    t.Ifraktur = 686;\n    t.Rfraktur = 795;\n    t.weierstrass = 987;\n    t.circlemultiply = 768;\n    t.circleplus = 768;\n    t.emptyset = 823;\n    t.intersection = 768;\n    t.union = 768;\n    t.propersuperset = 713;\n    t.reflexsuperset = 713;\n    t.notsubset = 713;\n    t.propersubset = 713;\n    t.reflexsubset = 713;\n    t.element = 713;\n    t.notelement = 713;\n    t.angle = 768;\n    t.gradient = 713;\n    t.registerserif = 790;\n    t.copyrightserif = 790;\n    t.trademarkserif = 890;\n    t.product = 823;\n    t.radical = 549;\n    t.dotmath = 250;\n    t.logicalnot = 713;\n    t.logicaland = 603;\n    t.logicalor = 603;\n    t.arrowdblboth = 1042;\n    t.arrowdblleft = 987;\n    t.arrowdblup = 603;\n    t.arrowdblright = 987;\n    t.arrowdbldown = 603;\n    t.lozenge = 494;\n    t.angleleft = 329;\n    t.registersans = 790;\n    t.copyrightsans = 790;\n    t.trademarksans = 786;\n    t.summation = 713;\n    t.parenlefttp = 384;\n    t.parenleftex = 384;\n    t.parenleftbt = 384;\n    t.bracketlefttp = 384;\n    t.bracketleftex = 384;\n    t.bracketleftbt = 384;\n    t.bracelefttp = 494;\n    t.braceleftmid = 494;\n    t.braceleftbt = 494;\n    t.braceex = 494;\n    t.angleright = 329;\n    t.integral = 274;\n    t.integraltp = 686;\n    t.integralex = 686;\n    t.integralbt = 686;\n    t.parenrighttp = 384;\n    t.parenrightex = 384;\n    t.parenrightbt = 384;\n    t.bracketrighttp = 384;\n    t.bracketrightex = 384;\n    t.bracketrightbt = 384;\n    t.bracerighttp = 494;\n    t.bracerightmid = 494;\n    t.bracerightbt = 494;\n    t.apple = 790;\n  });\n  // eslint-disable-next-line no-shadow\n  t[\"Times-Roman\"] = getLookupTableFactory(function (t) {\n    t.space = 250;\n    t.exclam = 333;\n    t.quotedbl = 408;\n    t.numbersign = 500;\n    t.dollar = 500;\n    t.percent = 833;\n    t.ampersand = 778;\n    t.quoteright = 333;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 500;\n    t.plus = 564;\n    t.comma = 250;\n    t.hyphen = 333;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 278;\n    t.semicolon = 278;\n    t.less = 564;\n    t.equal = 564;\n    t.greater = 564;\n    t.question = 444;\n    t.at = 921;\n    t.A = 722;\n    t.B = 667;\n    t.C = 667;\n    t.D = 722;\n    t.E = 611;\n    t.F = 556;\n    t.G = 722;\n    t.H = 722;\n    t.I = 333;\n    t.J = 389;\n    t.K = 722;\n    t.L = 611;\n    t.M = 889;\n    t.N = 722;\n    t.O = 722;\n    t.P = 556;\n    t.Q = 722;\n    t.R = 667;\n    t.S = 556;\n    t.T = 611;\n    t.U = 722;\n    t.V = 722;\n    t.W = 944;\n    t.X = 722;\n    t.Y = 722;\n    t.Z = 611;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 469;\n    t.underscore = 500;\n    t.quoteleft = 333;\n    t.a = 444;\n    t.b = 500;\n    t.c = 444;\n    t.d = 500;\n    t.e = 444;\n    t.f = 333;\n    t.g = 500;\n    t.h = 500;\n    t.i = 278;\n    t.j = 278;\n    t.k = 500;\n    t.l = 278;\n    t.m = 778;\n    t.n = 500;\n    t.o = 500;\n    t.p = 500;\n    t.q = 500;\n    t.r = 333;\n    t.s = 389;\n    t.t = 278;\n    t.u = 500;\n    t.v = 500;\n    t.w = 722;\n    t.x = 500;\n    t.y = 500;\n    t.z = 444;\n    t.braceleft = 480;\n    t.bar = 200;\n    t.braceright = 480;\n    t.asciitilde = 541;\n    t.exclamdown = 333;\n    t.cent = 500;\n    t.sterling = 500;\n    t.fraction = 167;\n    t.yen = 500;\n    t.florin = 500;\n    t.section = 500;\n    t.currency = 500;\n    t.quotesingle = 180;\n    t.quotedblleft = 444;\n    t.guillemotleft = 500;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 556;\n    t.fl = 556;\n    t.endash = 500;\n    t.dagger = 500;\n    t.daggerdbl = 500;\n    t.periodcentered = 250;\n    t.paragraph = 453;\n    t.bullet = 350;\n    t.quotesinglbase = 333;\n    t.quotedblbase = 444;\n    t.quotedblright = 444;\n    t.guillemotright = 500;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 444;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 889;\n    t.ordfeminine = 276;\n    t.Lslash = 611;\n    t.Oslash = 722;\n    t.OE = 889;\n    t.ordmasculine = 310;\n    t.ae = 667;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 500;\n    t.oe = 722;\n    t.germandbls = 500;\n    t.Idieresis = 333;\n    t.eacute = 444;\n    t.abreve = 444;\n    t.uhungarumlaut = 500;\n    t.ecaron = 444;\n    t.Ydieresis = 722;\n    t.divide = 564;\n    t.Yacute = 722;\n    t.Acircumflex = 722;\n    t.aacute = 444;\n    t.Ucircumflex = 722;\n    t.yacute = 500;\n    t.scommaaccent = 389;\n    t.ecircumflex = 444;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 444;\n    t.Uacute = 722;\n    t.uogonek = 500;\n    t.Edieresis = 611;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 760;\n    t.Emacron = 611;\n    t.ccaron = 444;\n    t.aring = 444;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 444;\n    t.Tcommaaccent = 611;\n    t.Cacute = 667;\n    t.atilde = 444;\n    t.Edotaccent = 611;\n    t.scaron = 389;\n    t.scedilla = 389;\n    t.iacute = 278;\n    t.lozenge = 471;\n    t.Rcaron = 667;\n    t.Gcommaaccent = 722;\n    t.ucircumflex = 500;\n    t.acircumflex = 444;\n    t.Amacron = 722;\n    t.rcaron = 333;\n    t.ccedilla = 444;\n    t.Zdotaccent = 611;\n    t.Thorn = 556;\n    t.Omacron = 722;\n    t.Racute = 667;\n    t.Sacute = 556;\n    t.dcaron = 588;\n    t.Umacron = 722;\n    t.uring = 500;\n    t.threesuperior = 300;\n    t.Ograve = 722;\n    t.Agrave = 722;\n    t.Abreve = 722;\n    t.multiply = 564;\n    t.uacute = 500;\n    t.Tcaron = 611;\n    t.partialdiff = 476;\n    t.ydieresis = 500;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 611;\n    t.adieresis = 444;\n    t.edieresis = 444;\n    t.cacute = 444;\n    t.nacute = 500;\n    t.umacron = 500;\n    t.Ncaron = 722;\n    t.Iacute = 333;\n    t.plusminus = 564;\n    t.brokenbar = 200;\n    t.registered = 760;\n    t.Gbreve = 722;\n    t.Idotaccent = 333;\n    t.summation = 600;\n    t.Egrave = 611;\n    t.racute = 333;\n    t.omacron = 500;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 667;\n    t.lcommaaccent = 278;\n    t.tcaron = 326;\n    t.eogonek = 444;\n    t.Uogonek = 722;\n    t.Aacute = 722;\n    t.Adieresis = 722;\n    t.egrave = 444;\n    t.zacute = 444;\n    t.iogonek = 278;\n    t.Oacute = 722;\n    t.oacute = 500;\n    t.amacron = 444;\n    t.sacute = 389;\n    t.idieresis = 278;\n    t.Ocircumflex = 722;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 500;\n    t.twosuperior = 300;\n    t.Odieresis = 722;\n    t.mu = 500;\n    t.igrave = 278;\n    t.ohungarumlaut = 500;\n    t.Eogonek = 611;\n    t.dcroat = 500;\n    t.threequarters = 750;\n    t.Scedilla = 556;\n    t.lcaron = 344;\n    t.Kcommaaccent = 722;\n    t.Lacute = 611;\n    t.trademark = 980;\n    t.edotaccent = 444;\n    t.Igrave = 333;\n    t.Imacron = 333;\n    t.Lcaron = 611;\n    t.onehalf = 750;\n    t.lessequal = 549;\n    t.ocircumflex = 500;\n    t.ntilde = 500;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 611;\n    t.emacron = 444;\n    t.gbreve = 500;\n    t.onequarter = 750;\n    t.Scaron = 556;\n    t.Scommaaccent = 556;\n    t.Ohungarumlaut = 722;\n    t.degree = 400;\n    t.ograve = 500;\n    t.Ccaron = 667;\n    t.ugrave = 500;\n    t.radical = 453;\n    t.Dcaron = 722;\n    t.rcommaaccent = 333;\n    t.Ntilde = 722;\n    t.otilde = 500;\n    t.Rcommaaccent = 667;\n    t.Lcommaaccent = 611;\n    t.Atilde = 722;\n    t.Aogonek = 722;\n    t.Aring = 722;\n    t.Otilde = 722;\n    t.zdotaccent = 444;\n    t.Ecaron = 611;\n    t.Iogonek = 333;\n    t.kcommaaccent = 500;\n    t.minus = 564;\n    t.Icircumflex = 333;\n    t.ncaron = 500;\n    t.tcommaaccent = 278;\n    t.logicalnot = 564;\n    t.odieresis = 500;\n    t.udieresis = 500;\n    t.notequal = 549;\n    t.gcommaaccent = 500;\n    t.eth = 500;\n    t.zcaron = 444;\n    t.ncommaaccent = 500;\n    t.onesuperior = 300;\n    t.imacron = 278;\n    t.Euro = 500;\n  });\n  // eslint-disable-next-line no-shadow\n  t[\"Times-Bold\"] = getLookupTableFactory(function (t) {\n    t.space = 250;\n    t.exclam = 333;\n    t.quotedbl = 555;\n    t.numbersign = 500;\n    t.dollar = 500;\n    t.percent = 1000;\n    t.ampersand = 833;\n    t.quoteright = 333;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 500;\n    t.plus = 570;\n    t.comma = 250;\n    t.hyphen = 333;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 570;\n    t.equal = 570;\n    t.greater = 570;\n    t.question = 500;\n    t.at = 930;\n    t.A = 722;\n    t.B = 667;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 778;\n    t.I = 389;\n    t.J = 500;\n    t.K = 778;\n    t.L = 667;\n    t.M = 944;\n    t.N = 722;\n    t.O = 778;\n    t.P = 611;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 556;\n    t.T = 667;\n    t.U = 722;\n    t.V = 722;\n    t.W = 1000;\n    t.X = 722;\n    t.Y = 722;\n    t.Z = 667;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 581;\n    t.underscore = 500;\n    t.quoteleft = 333;\n    t.a = 500;\n    t.b = 556;\n    t.c = 444;\n    t.d = 556;\n    t.e = 444;\n    t.f = 333;\n    t.g = 500;\n    t.h = 556;\n    t.i = 278;\n    t.j = 333;\n    t.k = 556;\n    t.l = 278;\n    t.m = 833;\n    t.n = 556;\n    t.o = 500;\n    t.p = 556;\n    t.q = 556;\n    t.r = 444;\n    t.s = 389;\n    t.t = 333;\n    t.u = 556;\n    t.v = 500;\n    t.w = 722;\n    t.x = 500;\n    t.y = 500;\n    t.z = 444;\n    t.braceleft = 394;\n    t.bar = 220;\n    t.braceright = 394;\n    t.asciitilde = 520;\n    t.exclamdown = 333;\n    t.cent = 500;\n    t.sterling = 500;\n    t.fraction = 167;\n    t.yen = 500;\n    t.florin = 500;\n    t.section = 500;\n    t.currency = 500;\n    t.quotesingle = 278;\n    t.quotedblleft = 500;\n    t.guillemotleft = 500;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 556;\n    t.fl = 556;\n    t.endash = 500;\n    t.dagger = 500;\n    t.daggerdbl = 500;\n    t.periodcentered = 250;\n    t.paragraph = 540;\n    t.bullet = 350;\n    t.quotesinglbase = 333;\n    t.quotedblbase = 500;\n    t.quotedblright = 500;\n    t.guillemotright = 500;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 500;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 300;\n    t.Lslash = 667;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 330;\n    t.ae = 722;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 500;\n    t.oe = 722;\n    t.germandbls = 556;\n    t.Idieresis = 389;\n    t.eacute = 444;\n    t.abreve = 500;\n    t.uhungarumlaut = 556;\n    t.ecaron = 444;\n    t.Ydieresis = 722;\n    t.divide = 570;\n    t.Yacute = 722;\n    t.Acircumflex = 722;\n    t.aacute = 500;\n    t.Ucircumflex = 722;\n    t.yacute = 500;\n    t.scommaaccent = 389;\n    t.ecircumflex = 444;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 500;\n    t.Uacute = 722;\n    t.uogonek = 556;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 747;\n    t.Emacron = 667;\n    t.ccaron = 444;\n    t.aring = 500;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 500;\n    t.Tcommaaccent = 667;\n    t.Cacute = 722;\n    t.atilde = 500;\n    t.Edotaccent = 667;\n    t.scaron = 389;\n    t.scedilla = 389;\n    t.iacute = 278;\n    t.lozenge = 494;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 556;\n    t.acircumflex = 500;\n    t.Amacron = 722;\n    t.rcaron = 444;\n    t.ccedilla = 444;\n    t.Zdotaccent = 667;\n    t.Thorn = 611;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 556;\n    t.dcaron = 672;\n    t.Umacron = 722;\n    t.uring = 556;\n    t.threesuperior = 300;\n    t.Ograve = 778;\n    t.Agrave = 722;\n    t.Abreve = 722;\n    t.multiply = 570;\n    t.uacute = 556;\n    t.Tcaron = 667;\n    t.partialdiff = 494;\n    t.ydieresis = 500;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 500;\n    t.edieresis = 444;\n    t.cacute = 444;\n    t.nacute = 556;\n    t.umacron = 556;\n    t.Ncaron = 722;\n    t.Iacute = 389;\n    t.plusminus = 570;\n    t.brokenbar = 220;\n    t.registered = 747;\n    t.Gbreve = 778;\n    t.Idotaccent = 389;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 444;\n    t.omacron = 500;\n    t.Zacute = 667;\n    t.Zcaron = 667;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 278;\n    t.tcaron = 416;\n    t.eogonek = 444;\n    t.Uogonek = 722;\n    t.Aacute = 722;\n    t.Adieresis = 722;\n    t.egrave = 444;\n    t.zacute = 444;\n    t.iogonek = 278;\n    t.Oacute = 778;\n    t.oacute = 500;\n    t.amacron = 500;\n    t.sacute = 389;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 556;\n    t.twosuperior = 300;\n    t.Odieresis = 778;\n    t.mu = 556;\n    t.igrave = 278;\n    t.ohungarumlaut = 500;\n    t.Eogonek = 667;\n    t.dcroat = 556;\n    t.threequarters = 750;\n    t.Scedilla = 556;\n    t.lcaron = 394;\n    t.Kcommaaccent = 778;\n    t.Lacute = 667;\n    t.trademark = 1000;\n    t.edotaccent = 444;\n    t.Igrave = 389;\n    t.Imacron = 389;\n    t.Lcaron = 667;\n    t.onehalf = 750;\n    t.lessequal = 549;\n    t.ocircumflex = 500;\n    t.ntilde = 556;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 444;\n    t.gbreve = 500;\n    t.onequarter = 750;\n    t.Scaron = 556;\n    t.Scommaaccent = 556;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 500;\n    t.Ccaron = 722;\n    t.ugrave = 556;\n    t.radical = 549;\n    t.Dcaron = 722;\n    t.rcommaaccent = 444;\n    t.Ntilde = 722;\n    t.otilde = 500;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 667;\n    t.Atilde = 722;\n    t.Aogonek = 722;\n    t.Aring = 722;\n    t.Otilde = 778;\n    t.zdotaccent = 444;\n    t.Ecaron = 667;\n    t.Iogonek = 389;\n    t.kcommaaccent = 556;\n    t.minus = 570;\n    t.Icircumflex = 389;\n    t.ncaron = 556;\n    t.tcommaaccent = 333;\n    t.logicalnot = 570;\n    t.odieresis = 500;\n    t.udieresis = 556;\n    t.notequal = 549;\n    t.gcommaaccent = 500;\n    t.eth = 500;\n    t.zcaron = 444;\n    t.ncommaaccent = 556;\n    t.onesuperior = 300;\n    t.imacron = 278;\n    t.Euro = 500;\n  });\n  // eslint-disable-next-line no-shadow\n  t[\"Times-BoldItalic\"] = getLookupTableFactory(function (t) {\n    t.space = 250;\n    t.exclam = 389;\n    t.quotedbl = 555;\n    t.numbersign = 500;\n    t.dollar = 500;\n    t.percent = 833;\n    t.ampersand = 778;\n    t.quoteright = 333;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 500;\n    t.plus = 570;\n    t.comma = 250;\n    t.hyphen = 333;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 570;\n    t.equal = 570;\n    t.greater = 570;\n    t.question = 500;\n    t.at = 832;\n    t.A = 667;\n    t.B = 667;\n    t.C = 667;\n    t.D = 722;\n    t.E = 667;\n    t.F = 667;\n    t.G = 722;\n    t.H = 778;\n    t.I = 389;\n    t.J = 500;\n    t.K = 667;\n    t.L = 611;\n    t.M = 889;\n    t.N = 722;\n    t.O = 722;\n    t.P = 611;\n    t.Q = 722;\n    t.R = 667;\n    t.S = 556;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 889;\n    t.X = 667;\n    t.Y = 611;\n    t.Z = 611;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 570;\n    t.underscore = 500;\n    t.quoteleft = 333;\n    t.a = 500;\n    t.b = 500;\n    t.c = 444;\n    t.d = 500;\n    t.e = 444;\n    t.f = 333;\n    t.g = 500;\n    t.h = 556;\n    t.i = 278;\n    t.j = 278;\n    t.k = 500;\n    t.l = 278;\n    t.m = 778;\n    t.n = 556;\n    t.o = 500;\n    t.p = 500;\n    t.q = 500;\n    t.r = 389;\n    t.s = 389;\n    t.t = 278;\n    t.u = 556;\n    t.v = 444;\n    t.w = 667;\n    t.x = 500;\n    t.y = 444;\n    t.z = 389;\n    t.braceleft = 348;\n    t.bar = 220;\n    t.braceright = 348;\n    t.asciitilde = 570;\n    t.exclamdown = 389;\n    t.cent = 500;\n    t.sterling = 500;\n    t.fraction = 167;\n    t.yen = 500;\n    t.florin = 500;\n    t.section = 500;\n    t.currency = 500;\n    t.quotesingle = 278;\n    t.quotedblleft = 500;\n    t.guillemotleft = 500;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 556;\n    t.fl = 556;\n    t.endash = 500;\n    t.dagger = 500;\n    t.daggerdbl = 500;\n    t.periodcentered = 250;\n    t.paragraph = 500;\n    t.bullet = 350;\n    t.quotesinglbase = 333;\n    t.quotedblbase = 500;\n    t.quotedblright = 500;\n    t.guillemotright = 500;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 500;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 944;\n    t.ordfeminine = 266;\n    t.Lslash = 611;\n    t.Oslash = 722;\n    t.OE = 944;\n    t.ordmasculine = 300;\n    t.ae = 722;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 500;\n    t.oe = 722;\n    t.germandbls = 500;\n    t.Idieresis = 389;\n    t.eacute = 444;\n    t.abreve = 500;\n    t.uhungarumlaut = 556;\n    t.ecaron = 444;\n    t.Ydieresis = 611;\n    t.divide = 570;\n    t.Yacute = 611;\n    t.Acircumflex = 667;\n    t.aacute = 500;\n    t.Ucircumflex = 722;\n    t.yacute = 444;\n    t.scommaaccent = 389;\n    t.ecircumflex = 444;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 500;\n    t.Uacute = 722;\n    t.uogonek = 556;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 747;\n    t.Emacron = 667;\n    t.ccaron = 444;\n    t.aring = 500;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 500;\n    t.Tcommaaccent = 611;\n    t.Cacute = 667;\n    t.atilde = 500;\n    t.Edotaccent = 667;\n    t.scaron = 389;\n    t.scedilla = 389;\n    t.iacute = 278;\n    t.lozenge = 494;\n    t.Rcaron = 667;\n    t.Gcommaaccent = 722;\n    t.ucircumflex = 556;\n    t.acircumflex = 500;\n    t.Amacron = 667;\n    t.rcaron = 389;\n    t.ccedilla = 444;\n    t.Zdotaccent = 611;\n    t.Thorn = 611;\n    t.Omacron = 722;\n    t.Racute = 667;\n    t.Sacute = 556;\n    t.dcaron = 608;\n    t.Umacron = 722;\n    t.uring = 556;\n    t.threesuperior = 300;\n    t.Ograve = 722;\n    t.Agrave = 667;\n    t.Abreve = 667;\n    t.multiply = 570;\n    t.uacute = 556;\n    t.Tcaron = 611;\n    t.partialdiff = 494;\n    t.ydieresis = 444;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 500;\n    t.edieresis = 444;\n    t.cacute = 444;\n    t.nacute = 556;\n    t.umacron = 556;\n    t.Ncaron = 722;\n    t.Iacute = 389;\n    t.plusminus = 570;\n    t.brokenbar = 220;\n    t.registered = 747;\n    t.Gbreve = 722;\n    t.Idotaccent = 389;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 389;\n    t.omacron = 500;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 667;\n    t.lcommaaccent = 278;\n    t.tcaron = 366;\n    t.eogonek = 444;\n    t.Uogonek = 722;\n    t.Aacute = 667;\n    t.Adieresis = 667;\n    t.egrave = 444;\n    t.zacute = 389;\n    t.iogonek = 278;\n    t.Oacute = 722;\n    t.oacute = 500;\n    t.amacron = 500;\n    t.sacute = 389;\n    t.idieresis = 278;\n    t.Ocircumflex = 722;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 500;\n    t.twosuperior = 300;\n    t.Odieresis = 722;\n    t.mu = 576;\n    t.igrave = 278;\n    t.ohungarumlaut = 500;\n    t.Eogonek = 667;\n    t.dcroat = 500;\n    t.threequarters = 750;\n    t.Scedilla = 556;\n    t.lcaron = 382;\n    t.Kcommaaccent = 667;\n    t.Lacute = 611;\n    t.trademark = 1000;\n    t.edotaccent = 444;\n    t.Igrave = 389;\n    t.Imacron = 389;\n    t.Lcaron = 611;\n    t.onehalf = 750;\n    t.lessequal = 549;\n    t.ocircumflex = 500;\n    t.ntilde = 556;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 444;\n    t.gbreve = 500;\n    t.onequarter = 750;\n    t.Scaron = 556;\n    t.Scommaaccent = 556;\n    t.Ohungarumlaut = 722;\n    t.degree = 400;\n    t.ograve = 500;\n    t.Ccaron = 667;\n    t.ugrave = 556;\n    t.radical = 549;\n    t.Dcaron = 722;\n    t.rcommaaccent = 389;\n    t.Ntilde = 722;\n    t.otilde = 500;\n    t.Rcommaaccent = 667;\n    t.Lcommaaccent = 611;\n    t.Atilde = 667;\n    t.Aogonek = 667;\n    t.Aring = 667;\n    t.Otilde = 722;\n    t.zdotaccent = 389;\n    t.Ecaron = 667;\n    t.Iogonek = 389;\n    t.kcommaaccent = 500;\n    t.minus = 606;\n    t.Icircumflex = 389;\n    t.ncaron = 556;\n    t.tcommaaccent = 278;\n    t.logicalnot = 606;\n    t.odieresis = 500;\n    t.udieresis = 556;\n    t.notequal = 549;\n    t.gcommaaccent = 500;\n    t.eth = 500;\n    t.zcaron = 389;\n    t.ncommaaccent = 556;\n    t.onesuperior = 300;\n    t.imacron = 278;\n    t.Euro = 500;\n  });\n  // eslint-disable-next-line no-shadow\n  t[\"Times-Italic\"] = getLookupTableFactory(function (t) {\n    t.space = 250;\n    t.exclam = 333;\n    t.quotedbl = 420;\n    t.numbersign = 500;\n    t.dollar = 500;\n    t.percent = 833;\n    t.ampersand = 778;\n    t.quoteright = 333;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 500;\n    t.plus = 675;\n    t.comma = 250;\n    t.hyphen = 333;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 675;\n    t.equal = 675;\n    t.greater = 675;\n    t.question = 500;\n    t.at = 920;\n    t.A = 611;\n    t.B = 611;\n    t.C = 667;\n    t.D = 722;\n    t.E = 611;\n    t.F = 611;\n    t.G = 722;\n    t.H = 722;\n    t.I = 333;\n    t.J = 444;\n    t.K = 667;\n    t.L = 556;\n    t.M = 833;\n    t.N = 667;\n    t.O = 722;\n    t.P = 611;\n    t.Q = 722;\n    t.R = 611;\n    t.S = 500;\n    t.T = 556;\n    t.U = 722;\n    t.V = 611;\n    t.W = 833;\n    t.X = 611;\n    t.Y = 556;\n    t.Z = 556;\n    t.bracketleft = 389;\n    t.backslash = 278;\n    t.bracketright = 389;\n    t.asciicircum = 422;\n    t.underscore = 500;\n    t.quoteleft = 333;\n    t.a = 500;\n    t.b = 500;\n    t.c = 444;\n    t.d = 500;\n    t.e = 444;\n    t.f = 278;\n    t.g = 500;\n    t.h = 500;\n    t.i = 278;\n    t.j = 278;\n    t.k = 444;\n    t.l = 278;\n    t.m = 722;\n    t.n = 500;\n    t.o = 500;\n    t.p = 500;\n    t.q = 500;\n    t.r = 389;\n    t.s = 389;\n    t.t = 278;\n    t.u = 500;\n    t.v = 444;\n    t.w = 667;\n    t.x = 444;\n    t.y = 444;\n    t.z = 389;\n    t.braceleft = 400;\n    t.bar = 275;\n    t.braceright = 400;\n    t.asciitilde = 541;\n    t.exclamdown = 389;\n    t.cent = 500;\n    t.sterling = 500;\n    t.fraction = 167;\n    t.yen = 500;\n    t.florin = 500;\n    t.section = 500;\n    t.currency = 500;\n    t.quotesingle = 214;\n    t.quotedblleft = 556;\n    t.guillemotleft = 500;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 500;\n    t.fl = 500;\n    t.endash = 500;\n    t.dagger = 500;\n    t.daggerdbl = 500;\n    t.periodcentered = 250;\n    t.paragraph = 523;\n    t.bullet = 350;\n    t.quotesinglbase = 333;\n    t.quotedblbase = 556;\n    t.quotedblright = 556;\n    t.guillemotright = 500;\n    t.ellipsis = 889;\n    t.perthousand = 1000;\n    t.questiondown = 500;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 889;\n    t.AE = 889;\n    t.ordfeminine = 276;\n    t.Lslash = 556;\n    t.Oslash = 722;\n    t.OE = 944;\n    t.ordmasculine = 310;\n    t.ae = 667;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 500;\n    t.oe = 667;\n    t.germandbls = 500;\n    t.Idieresis = 333;\n    t.eacute = 444;\n    t.abreve = 500;\n    t.uhungarumlaut = 500;\n    t.ecaron = 444;\n    t.Ydieresis = 556;\n    t.divide = 675;\n    t.Yacute = 556;\n    t.Acircumflex = 611;\n    t.aacute = 500;\n    t.Ucircumflex = 722;\n    t.yacute = 444;\n    t.scommaaccent = 389;\n    t.ecircumflex = 444;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 500;\n    t.Uacute = 722;\n    t.uogonek = 500;\n    t.Edieresis = 611;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 760;\n    t.Emacron = 611;\n    t.ccaron = 444;\n    t.aring = 500;\n    t.Ncommaaccent = 667;\n    t.lacute = 278;\n    t.agrave = 500;\n    t.Tcommaaccent = 556;\n    t.Cacute = 667;\n    t.atilde = 500;\n    t.Edotaccent = 611;\n    t.scaron = 389;\n    t.scedilla = 389;\n    t.iacute = 278;\n    t.lozenge = 471;\n    t.Rcaron = 611;\n    t.Gcommaaccent = 722;\n    t.ucircumflex = 500;\n    t.acircumflex = 500;\n    t.Amacron = 611;\n    t.rcaron = 389;\n    t.ccedilla = 444;\n    t.Zdotaccent = 556;\n    t.Thorn = 611;\n    t.Omacron = 722;\n    t.Racute = 611;\n    t.Sacute = 500;\n    t.dcaron = 544;\n    t.Umacron = 722;\n    t.uring = 500;\n    t.threesuperior = 300;\n    t.Ograve = 722;\n    t.Agrave = 611;\n    t.Abreve = 611;\n    t.multiply = 675;\n    t.uacute = 500;\n    t.Tcaron = 556;\n    t.partialdiff = 476;\n    t.ydieresis = 444;\n    t.Nacute = 667;\n    t.icircumflex = 278;\n    t.Ecircumflex = 611;\n    t.adieresis = 500;\n    t.edieresis = 444;\n    t.cacute = 444;\n    t.nacute = 500;\n    t.umacron = 500;\n    t.Ncaron = 667;\n    t.Iacute = 333;\n    t.plusminus = 675;\n    t.brokenbar = 275;\n    t.registered = 760;\n    t.Gbreve = 722;\n    t.Idotaccent = 333;\n    t.summation = 600;\n    t.Egrave = 611;\n    t.racute = 389;\n    t.omacron = 500;\n    t.Zacute = 556;\n    t.Zcaron = 556;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 667;\n    t.lcommaaccent = 278;\n    t.tcaron = 300;\n    t.eogonek = 444;\n    t.Uogonek = 722;\n    t.Aacute = 611;\n    t.Adieresis = 611;\n    t.egrave = 444;\n    t.zacute = 389;\n    t.iogonek = 278;\n    t.Oacute = 722;\n    t.oacute = 500;\n    t.amacron = 500;\n    t.sacute = 389;\n    t.idieresis = 278;\n    t.Ocircumflex = 722;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 500;\n    t.twosuperior = 300;\n    t.Odieresis = 722;\n    t.mu = 500;\n    t.igrave = 278;\n    t.ohungarumlaut = 500;\n    t.Eogonek = 611;\n    t.dcroat = 500;\n    t.threequarters = 750;\n    t.Scedilla = 500;\n    t.lcaron = 300;\n    t.Kcommaaccent = 667;\n    t.Lacute = 556;\n    t.trademark = 980;\n    t.edotaccent = 444;\n    t.Igrave = 333;\n    t.Imacron = 333;\n    t.Lcaron = 611;\n    t.onehalf = 750;\n    t.lessequal = 549;\n    t.ocircumflex = 500;\n    t.ntilde = 500;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 611;\n    t.emacron = 444;\n    t.gbreve = 500;\n    t.onequarter = 750;\n    t.Scaron = 500;\n    t.Scommaaccent = 500;\n    t.Ohungarumlaut = 722;\n    t.degree = 400;\n    t.ograve = 500;\n    t.Ccaron = 667;\n    t.ugrave = 500;\n    t.radical = 453;\n    t.Dcaron = 722;\n    t.rcommaaccent = 389;\n    t.Ntilde = 667;\n    t.otilde = 500;\n    t.Rcommaaccent = 611;\n    t.Lcommaaccent = 556;\n    t.Atilde = 611;\n    t.Aogonek = 611;\n    t.Aring = 611;\n    t.Otilde = 722;\n    t.zdotaccent = 389;\n    t.Ecaron = 611;\n    t.Iogonek = 333;\n    t.kcommaaccent = 444;\n    t.minus = 675;\n    t.Icircumflex = 333;\n    t.ncaron = 500;\n    t.tcommaaccent = 278;\n    t.logicalnot = 675;\n    t.odieresis = 500;\n    t.udieresis = 500;\n    t.notequal = 549;\n    t.gcommaaccent = 500;\n    t.eth = 500;\n    t.zcaron = 389;\n    t.ncommaaccent = 500;\n    t.onesuperior = 300;\n    t.imacron = 278;\n    t.Euro = 500;\n  });\n  // eslint-disable-next-line no-shadow\n  t.ZapfDingbats = getLookupTableFactory(function (t) {\n    t.space = 278;\n    t.a1 = 974;\n    t.a2 = 961;\n    t.a202 = 974;\n    t.a3 = 980;\n    t.a4 = 719;\n    t.a5 = 789;\n    t.a119 = 790;\n    t.a118 = 791;\n    t.a117 = 690;\n    t.a11 = 960;\n    t.a12 = 939;\n    t.a13 = 549;\n    t.a14 = 855;\n    t.a15 = 911;\n    t.a16 = 933;\n    t.a105 = 911;\n    t.a17 = 945;\n    t.a18 = 974;\n    t.a19 = 755;\n    t.a20 = 846;\n    t.a21 = 762;\n    t.a22 = 761;\n    t.a23 = 571;\n    t.a24 = 677;\n    t.a25 = 763;\n    t.a26 = 760;\n    t.a27 = 759;\n    t.a28 = 754;\n    t.a6 = 494;\n    t.a7 = 552;\n    t.a8 = 537;\n    t.a9 = 577;\n    t.a10 = 692;\n    t.a29 = 786;\n    t.a30 = 788;\n    t.a31 = 788;\n    t.a32 = 790;\n    t.a33 = 793;\n    t.a34 = 794;\n    t.a35 = 816;\n    t.a36 = 823;\n    t.a37 = 789;\n    t.a38 = 841;\n    t.a39 = 823;\n    t.a40 = 833;\n    t.a41 = 816;\n    t.a42 = 831;\n    t.a43 = 923;\n    t.a44 = 744;\n    t.a45 = 723;\n    t.a46 = 749;\n    t.a47 = 790;\n    t.a48 = 792;\n    t.a49 = 695;\n    t.a50 = 776;\n    t.a51 = 768;\n    t.a52 = 792;\n    t.a53 = 759;\n    t.a54 = 707;\n    t.a55 = 708;\n    t.a56 = 682;\n    t.a57 = 701;\n    t.a58 = 826;\n    t.a59 = 815;\n    t.a60 = 789;\n    t.a61 = 789;\n    t.a62 = 707;\n    t.a63 = 687;\n    t.a64 = 696;\n    t.a65 = 689;\n    t.a66 = 786;\n    t.a67 = 787;\n    t.a68 = 713;\n    t.a69 = 791;\n    t.a70 = 785;\n    t.a71 = 791;\n    t.a72 = 873;\n    t.a73 = 761;\n    t.a74 = 762;\n    t.a203 = 762;\n    t.a75 = 759;\n    t.a204 = 759;\n    t.a76 = 892;\n    t.a77 = 892;\n    t.a78 = 788;\n    t.a79 = 784;\n    t.a81 = 438;\n    t.a82 = 138;\n    t.a83 = 277;\n    t.a84 = 415;\n    t.a97 = 392;\n    t.a98 = 392;\n    t.a99 = 668;\n    t.a100 = 668;\n    t.a89 = 390;\n    t.a90 = 390;\n    t.a93 = 317;\n    t.a94 = 317;\n    t.a91 = 276;\n    t.a92 = 276;\n    t.a205 = 509;\n    t.a85 = 509;\n    t.a206 = 410;\n    t.a86 = 410;\n    t.a87 = 234;\n    t.a88 = 234;\n    t.a95 = 334;\n    t.a96 = 334;\n    t.a101 = 732;\n    t.a102 = 544;\n    t.a103 = 544;\n    t.a104 = 910;\n    t.a106 = 667;\n    t.a107 = 760;\n    t.a108 = 760;\n    t.a112 = 776;\n    t.a111 = 595;\n    t.a110 = 694;\n    t.a109 = 626;\n    t.a120 = 788;\n    t.a121 = 788;\n    t.a122 = 788;\n    t.a123 = 788;\n    t.a124 = 788;\n    t.a125 = 788;\n    t.a126 = 788;\n    t.a127 = 788;\n    t.a128 = 788;\n    t.a129 = 788;\n    t.a130 = 788;\n    t.a131 = 788;\n    t.a132 = 788;\n    t.a133 = 788;\n    t.a134 = 788;\n    t.a135 = 788;\n    t.a136 = 788;\n    t.a137 = 788;\n    t.a138 = 788;\n    t.a139 = 788;\n    t.a140 = 788;\n    t.a141 = 788;\n    t.a142 = 788;\n    t.a143 = 788;\n    t.a144 = 788;\n    t.a145 = 788;\n    t.a146 = 788;\n    t.a147 = 788;\n    t.a148 = 788;\n    t.a149 = 788;\n    t.a150 = 788;\n    t.a151 = 788;\n    t.a152 = 788;\n    t.a153 = 788;\n    t.a154 = 788;\n    t.a155 = 788;\n    t.a156 = 788;\n    t.a157 = 788;\n    t.a158 = 788;\n    t.a159 = 788;\n    t.a160 = 894;\n    t.a161 = 838;\n    t.a163 = 1016;\n    t.a164 = 458;\n    t.a196 = 748;\n    t.a165 = 924;\n    t.a192 = 748;\n    t.a166 = 918;\n    t.a167 = 927;\n    t.a168 = 928;\n    t.a169 = 928;\n    t.a170 = 834;\n    t.a171 = 873;\n    t.a172 = 828;\n    t.a173 = 924;\n    t.a162 = 924;\n    t.a174 = 917;\n    t.a175 = 930;\n    t.a176 = 931;\n    t.a177 = 463;\n    t.a178 = 883;\n    t.a179 = 836;\n    t.a193 = 836;\n    t.a180 = 867;\n    t.a199 = 867;\n    t.a181 = 696;\n    t.a200 = 696;\n    t.a182 = 874;\n    t.a201 = 874;\n    t.a183 = 760;\n    t.a184 = 946;\n    t.a197 = 771;\n    t.a185 = 865;\n    t.a194 = 771;\n    t.a198 = 888;\n    t.a186 = 967;\n    t.a195 = 888;\n    t.a187 = 831;\n    t.a188 = 873;\n    t.a189 = 927;\n    t.a190 = 970;\n    t.a191 = 918;\n  });\n});\n\nconst getFontBasicMetrics = getLookupTableFactory(function (t) {\n  t.Courier = {\n    ascent: 629,\n    descent: -157,\n    capHeight: 562,\n    xHeight: -426,\n  };\n  t[\"Courier-Bold\"] = {\n    ascent: 629,\n    descent: -157,\n    capHeight: 562,\n    xHeight: 439,\n  };\n  t[\"Courier-Oblique\"] = {\n    ascent: 629,\n    descent: -157,\n    capHeight: 562,\n    xHeight: 426,\n  };\n  t[\"Courier-BoldOblique\"] = {\n    ascent: 629,\n    descent: -157,\n    capHeight: 562,\n    xHeight: 426,\n  };\n  t.Helvetica = {\n    ascent: 718,\n    descent: -207,\n    capHeight: 718,\n    xHeight: 523,\n  };\n  t[\"Helvetica-Bold\"] = {\n    ascent: 718,\n    descent: -207,\n    capHeight: 718,\n    xHeight: 532,\n  };\n  t[\"Helvetica-Oblique\"] = {\n    ascent: 718,\n    descent: -207,\n    capHeight: 718,\n    xHeight: 523,\n  };\n  t[\"Helvetica-BoldOblique\"] = {\n    ascent: 718,\n    descent: -207,\n    capHeight: 718,\n    xHeight: 532,\n  };\n  t[\"Times-Roman\"] = {\n    ascent: 683,\n    descent: -217,\n    capHeight: 662,\n    xHeight: 450,\n  };\n  t[\"Times-Bold\"] = {\n    ascent: 683,\n    descent: -217,\n    capHeight: 676,\n    xHeight: 461,\n  };\n  t[\"Times-Italic\"] = {\n    ascent: 683,\n    descent: -217,\n    capHeight: 653,\n    xHeight: 441,\n  };\n  t[\"Times-BoldItalic\"] = {\n    ascent: 683,\n    descent: -217,\n    capHeight: 669,\n    xHeight: 462,\n  };\n  t.Symbol = {\n    ascent: Math.NaN,\n    descent: Math.NaN,\n    capHeight: Math.NaN,\n    xHeight: Math.NaN,\n  };\n  t.ZapfDingbats = {\n    ascent: Math.NaN,\n    descent: Math.NaN,\n    capHeight: Math.NaN,\n    xHeight: Math.NaN,\n  };\n});\n\nexport { getFontBasicMetrics, getMetrics };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst ON_CURVE_POINT = 1 << 0;\nconst X_SHORT_VECTOR = 1 << 1;\nconst Y_SHORT_VECTOR = 1 << 2;\nconst REPEAT_FLAG = 1 << 3;\nconst X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR = 1 << 4;\nconst Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR = 1 << 5;\nconst OVERLAP_SIMPLE = 1 << 6;\n\nconst ARG_1_AND_2_ARE_WORDS = 1 << 0;\nconst ARGS_ARE_XY_VALUES = 1 << 1;\n// const ROUND_XY_TO_GRID = 1 << 2;\nconst WE_HAVE_A_SCALE = 1 << 3;\nconst MORE_COMPONENTS = 1 << 5;\nconst WE_HAVE_AN_X_AND_Y_SCALE = 1 << 6;\nconst WE_HAVE_A_TWO_BY_TWO = 1 << 7;\nconst WE_HAVE_INSTRUCTIONS = 1 << 8;\n// const USE_MY_METRICS = 1 << 9;\n// const OVERLAP_COMPOUND = 1 << 10;\n// const SCALED_COMPONENT_OFFSET = 1 << 11;\n// const UNSCALED_COMPONENT_OFFSET = 1 << 12;\n\n/**\n * GlyfTable object represents a glyf table containing glyph information:\n *  - glyph header (xMin, yMin, xMax, yMax);\n *  - contours if any;\n *  - components if the glyph is a composite.\n *\n * It's possible to re-scale each glyph in order to have a new font which\n * exactly fits an other one: the goal is to be able to build some substitution\n * font for well-known fonts (Myriad, Arial, ...).\n *\n * A full description of glyf table can be found here\n * https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html\n */\nclass GlyfTable {\n  constructor({ glyfTable, isGlyphLocationsLong, locaTable, numGlyphs }) {\n    this.glyphs = [];\n    const loca = new DataView(\n      locaTable.buffer,\n      locaTable.byteOffset,\n      locaTable.byteLength\n    );\n    const glyf = new DataView(\n      glyfTable.buffer,\n      glyfTable.byteOffset,\n      glyfTable.byteLength\n    );\n    const offsetSize = isGlyphLocationsLong ? 4 : 2;\n    let prev = isGlyphLocationsLong ? loca.getUint32(0) : 2 * loca.getUint16(0);\n    let pos = 0;\n    for (let i = 0; i < numGlyphs; i++) {\n      pos += offsetSize;\n      const next = isGlyphLocationsLong\n        ? loca.getUint32(pos)\n        : 2 * loca.getUint16(pos);\n      if (next === prev) {\n        this.glyphs.push(new Glyph({}));\n        continue;\n      }\n\n      const glyph = Glyph.parse(prev, glyf);\n      this.glyphs.push(glyph);\n\n      prev = next;\n    }\n  }\n\n  getSize() {\n    return this.glyphs.reduce((a, g) => {\n      const size = g.getSize();\n      // Round to next multiple of 4 if needed.\n      return a + ((size + 3) & ~3);\n    }, 0);\n  }\n\n  write() {\n    const totalSize = this.getSize();\n    const glyfTable = new DataView(new ArrayBuffer(totalSize));\n    const isLocationLong = totalSize > /* 0xffff * 2 */ 0x1fffe;\n    const offsetSize = isLocationLong ? 4 : 2;\n    const locaTable = new DataView(\n      new ArrayBuffer((this.glyphs.length + 1) * offsetSize)\n    );\n\n    if (isLocationLong) {\n      locaTable.setUint32(0, 0);\n    } else {\n      locaTable.setUint16(0, 0);\n    }\n\n    let pos = 0;\n    let locaIndex = 0;\n    for (const glyph of this.glyphs) {\n      pos += glyph.write(pos, glyfTable);\n      // Round to next multiple of 4 if needed.\n      pos = (pos + 3) & ~3;\n\n      locaIndex += offsetSize;\n      if (isLocationLong) {\n        locaTable.setUint32(locaIndex, pos);\n      } else {\n        locaTable.setUint16(locaIndex, pos >> 1);\n      }\n    }\n\n    return {\n      isLocationLong,\n      loca: new Uint8Array(locaTable.buffer),\n      glyf: new Uint8Array(glyfTable.buffer),\n    };\n  }\n\n  scale(factors) {\n    for (let i = 0, ii = this.glyphs.length; i < ii; i++) {\n      this.glyphs[i].scale(factors[i]);\n    }\n  }\n}\n\nclass Glyph {\n  constructor({ header = null, simple = null, composites = null }) {\n    this.header = header;\n    this.simple = simple;\n    this.composites = composites;\n  }\n\n  static parse(pos, glyf) {\n    const [read, header] = GlyphHeader.parse(pos, glyf);\n    pos += read;\n\n    if (header.numberOfContours < 0) {\n      // Composite glyph.\n      const composites = [];\n      while (true) {\n        const [n, composite] = CompositeGlyph.parse(pos, glyf);\n        pos += n;\n        composites.push(composite);\n        if (!(composite.flags & MORE_COMPONENTS)) {\n          break;\n        }\n      }\n\n      return new Glyph({ header, composites });\n    }\n\n    const simple = SimpleGlyph.parse(pos, glyf, header.numberOfContours);\n\n    return new Glyph({ header, simple });\n  }\n\n  getSize() {\n    if (!this.header) {\n      return 0;\n    }\n    const size = this.simple\n      ? this.simple.getSize()\n      : this.composites.reduce((a, c) => a + c.getSize(), 0);\n    return this.header.getSize() + size;\n  }\n\n  write(pos, buf) {\n    if (!this.header) {\n      return 0;\n    }\n\n    const spos = pos;\n    pos += this.header.write(pos, buf);\n    if (this.simple) {\n      pos += this.simple.write(pos, buf);\n    } else {\n      for (const composite of this.composites) {\n        pos += composite.write(pos, buf);\n      }\n    }\n\n    return pos - spos;\n  }\n\n  scale(factor) {\n    if (!this.header) {\n      return;\n    }\n\n    const xMiddle = (this.header.xMin + this.header.xMax) / 2;\n    this.header.scale(xMiddle, factor);\n    if (this.simple) {\n      this.simple.scale(xMiddle, factor);\n    } else {\n      for (const composite of this.composites) {\n        composite.scale(xMiddle, factor);\n      }\n    }\n  }\n}\n\nclass GlyphHeader {\n  constructor({ numberOfContours, xMin, yMin, xMax, yMax }) {\n    this.numberOfContours = numberOfContours;\n    this.xMin = xMin;\n    this.yMin = yMin;\n    this.xMax = xMax;\n    this.yMax = yMax;\n  }\n\n  static parse(pos, glyf) {\n    return [\n      10,\n      new GlyphHeader({\n        numberOfContours: glyf.getInt16(pos),\n        xMin: glyf.getInt16(pos + 2),\n        yMin: glyf.getInt16(pos + 4),\n        xMax: glyf.getInt16(pos + 6),\n        yMax: glyf.getInt16(pos + 8),\n      }),\n    ];\n  }\n\n  getSize() {\n    return 10;\n  }\n\n  write(pos, buf) {\n    buf.setInt16(pos, this.numberOfContours);\n    buf.setInt16(pos + 2, this.xMin);\n    buf.setInt16(pos + 4, this.yMin);\n    buf.setInt16(pos + 6, this.xMax);\n    buf.setInt16(pos + 8, this.yMax);\n\n    return 10;\n  }\n\n  scale(x, factor) {\n    this.xMin = Math.round(x + (this.xMin - x) * factor);\n    this.xMax = Math.round(x + (this.xMax - x) * factor);\n  }\n}\n\nclass Contour {\n  constructor({ flags, xCoordinates, yCoordinates }) {\n    this.xCoordinates = xCoordinates;\n    this.yCoordinates = yCoordinates;\n    this.flags = flags;\n  }\n}\n\nclass SimpleGlyph {\n  constructor({ contours, instructions }) {\n    this.contours = contours;\n    this.instructions = instructions;\n  }\n\n  static parse(pos, glyf, numberOfContours) {\n    const endPtsOfContours = [];\n    for (let i = 0; i < numberOfContours; i++) {\n      const endPt = glyf.getUint16(pos);\n      pos += 2;\n      endPtsOfContours.push(endPt);\n    }\n    const numberOfPt = endPtsOfContours[numberOfContours - 1] + 1;\n    const instructionLength = glyf.getUint16(pos);\n    pos += 2;\n    const instructions = new Uint8Array(glyf).slice(\n      pos,\n      pos + instructionLength\n    );\n    pos += instructionLength;\n\n    const flags = [];\n    for (let i = 0; i < numberOfPt; pos++, i++) {\n      let flag = glyf.getUint8(pos);\n      flags.push(flag);\n      if (flag & REPEAT_FLAG) {\n        const count = glyf.getUint8(++pos);\n        flag ^= REPEAT_FLAG;\n        for (let m = 0; m < count; m++) {\n          flags.push(flag);\n        }\n        i += count;\n      }\n    }\n\n    const allXCoordinates = [];\n    let xCoordinates = [];\n    let yCoordinates = [];\n    let pointFlags = [];\n    const contours = [];\n    let endPtsOfContoursIndex = 0;\n    let lastCoordinate = 0;\n\n    // Get x coordinates.\n    for (let i = 0; i < numberOfPt; i++) {\n      const flag = flags[i];\n      if (flag & X_SHORT_VECTOR) {\n        // 8-bits unsigned value.\n        const x = glyf.getUint8(pos++);\n        lastCoordinate += flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR ? x : -x;\n        xCoordinates.push(lastCoordinate);\n      } else if (flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR) {\n        // IS_SAME.\n        xCoordinates.push(lastCoordinate);\n      } else {\n        lastCoordinate += glyf.getInt16(pos);\n        pos += 2;\n        xCoordinates.push(lastCoordinate);\n      }\n\n      if (endPtsOfContours[endPtsOfContoursIndex] === i) {\n        // Next entry is the first one of a new contour.\n        endPtsOfContoursIndex++;\n        allXCoordinates.push(xCoordinates);\n        xCoordinates = [];\n      }\n    }\n\n    lastCoordinate = 0;\n    endPtsOfContoursIndex = 0;\n    for (let i = 0; i < numberOfPt; i++) {\n      const flag = flags[i];\n      if (flag & Y_SHORT_VECTOR) {\n        // 8-bits unsigned value.\n        const y = glyf.getUint8(pos++);\n        lastCoordinate += flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR ? y : -y;\n        yCoordinates.push(lastCoordinate);\n      } else if (flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR) {\n        // IS_SAME.\n        yCoordinates.push(lastCoordinate);\n      } else {\n        lastCoordinate += glyf.getInt16(pos);\n        pos += 2;\n        yCoordinates.push(lastCoordinate);\n      }\n\n      pointFlags.push((flag & ON_CURVE_POINT) | (flag & OVERLAP_SIMPLE));\n\n      if (endPtsOfContours[endPtsOfContoursIndex] === i) {\n        // Next entry is the first one of a new contour.\n        xCoordinates = allXCoordinates[endPtsOfContoursIndex];\n        endPtsOfContoursIndex++;\n        contours.push(\n          new Contour({\n            flags: pointFlags,\n            xCoordinates,\n            yCoordinates,\n          })\n        );\n        yCoordinates = [];\n        pointFlags = [];\n      }\n    }\n\n    return new SimpleGlyph({\n      contours,\n      instructions,\n    });\n  }\n\n  getSize() {\n    let size = this.contours.length * 2 + 2 + this.instructions.length;\n    let lastX = 0;\n    let lastY = 0;\n    for (const contour of this.contours) {\n      size += contour.flags.length;\n      for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n        const x = contour.xCoordinates[i];\n        const y = contour.yCoordinates[i];\n        let abs = Math.abs(x - lastX);\n        if (abs > 255) {\n          size += 2;\n        } else if (abs > 0) {\n          size += 1;\n        }\n        lastX = x;\n\n        abs = Math.abs(y - lastY);\n        if (abs > 255) {\n          size += 2;\n        } else if (abs > 0) {\n          size += 1;\n        }\n        lastY = y;\n      }\n    }\n    return size;\n  }\n\n  write(pos, buf) {\n    const spos = pos;\n    const xCoordinates = [];\n    const yCoordinates = [];\n    const flags = [];\n    let lastX = 0;\n    let lastY = 0;\n\n    for (const contour of this.contours) {\n      for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n        let flag = contour.flags[i];\n        const x = contour.xCoordinates[i];\n        let delta = x - lastX;\n        if (delta === 0) {\n          flag |= X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR;\n          xCoordinates.push(0);\n        } else {\n          const abs = Math.abs(delta);\n          if (abs <= 255) {\n            flag |=\n              delta >= 0\n                ? X_SHORT_VECTOR | X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR\n                : X_SHORT_VECTOR;\n            xCoordinates.push(abs);\n          } else {\n            xCoordinates.push(delta);\n          }\n        }\n        lastX = x;\n\n        const y = contour.yCoordinates[i];\n        delta = y - lastY;\n        if (delta === 0) {\n          flag |= Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR;\n          yCoordinates.push(0);\n        } else {\n          const abs = Math.abs(delta);\n          if (abs <= 255) {\n            flag |=\n              delta >= 0\n                ? Y_SHORT_VECTOR | Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR\n                : Y_SHORT_VECTOR;\n            yCoordinates.push(abs);\n          } else {\n            yCoordinates.push(delta);\n          }\n        }\n        lastY = y;\n\n        flags.push(flag);\n      }\n\n      // Write endPtsOfContours entry.\n      buf.setUint16(pos, xCoordinates.length - 1);\n      pos += 2;\n    }\n\n    // Write instructionLength.\n    buf.setUint16(pos, this.instructions.length);\n    pos += 2;\n    if (this.instructions.length) {\n      // Write instructions.\n      new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(\n        this.instructions,\n        pos\n      );\n      pos += this.instructions.length;\n    }\n\n    // Write flags.\n    for (const flag of flags) {\n      buf.setUint8(pos++, flag);\n    }\n\n    // Write xCoordinates.\n    for (let i = 0, ii = xCoordinates.length; i < ii; i++) {\n      const x = xCoordinates[i];\n      const flag = flags[i];\n      if (flag & X_SHORT_VECTOR) {\n        buf.setUint8(pos++, x);\n      } else if (!(flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR)) {\n        buf.setInt16(pos, x);\n        pos += 2;\n      }\n    }\n\n    // Write yCoordinates.\n    for (let i = 0, ii = yCoordinates.length; i < ii; i++) {\n      const y = yCoordinates[i];\n      const flag = flags[i];\n      if (flag & Y_SHORT_VECTOR) {\n        buf.setUint8(pos++, y);\n      } else if (!(flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR)) {\n        buf.setInt16(pos, y);\n        pos += 2;\n      }\n    }\n\n    return pos - spos;\n  }\n\n  scale(x, factor) {\n    for (const contour of this.contours) {\n      if (contour.xCoordinates.length === 0) {\n        continue;\n      }\n\n      for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n        contour.xCoordinates[i] = Math.round(\n          x + (contour.xCoordinates[i] - x) * factor\n        );\n      }\n    }\n  }\n}\n\nclass CompositeGlyph {\n  constructor({\n    flags,\n    glyphIndex,\n    argument1,\n    argument2,\n    transf,\n    instructions,\n  }) {\n    this.flags = flags;\n    this.glyphIndex = glyphIndex;\n    this.argument1 = argument1;\n    this.argument2 = argument2;\n    this.transf = transf;\n    this.instructions = instructions;\n  }\n\n  static parse(pos, glyf) {\n    const spos = pos;\n    const transf = [];\n    let flags = glyf.getUint16(pos);\n    const glyphIndex = glyf.getUint16(pos + 2);\n    pos += 4;\n\n    let argument1, argument2;\n    if (flags & ARG_1_AND_2_ARE_WORDS) {\n      if (flags & ARGS_ARE_XY_VALUES) {\n        argument1 = glyf.getInt16(pos);\n        argument2 = glyf.getInt16(pos + 2);\n      } else {\n        argument1 = glyf.getUint16(pos);\n        argument2 = glyf.getUint16(pos + 2);\n      }\n      pos += 4;\n      flags ^= ARG_1_AND_2_ARE_WORDS;\n    } else {\n      if (flags & ARGS_ARE_XY_VALUES) {\n        argument1 = glyf.getInt8(pos);\n        argument2 = glyf.getInt8(pos + 1);\n      } else {\n        argument1 = glyf.getUint8(pos);\n        argument2 = glyf.getUint8(pos + 1);\n      }\n      pos += 2;\n    }\n\n    if (flags & WE_HAVE_A_SCALE) {\n      // Single F2.14.\n      transf.push(glyf.getUint16(pos));\n      pos += 2;\n    } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n      // Two F2.14.\n      transf.push(glyf.getUint16(pos), glyf.getUint16(pos + 2));\n      pos += 4;\n    } else if (flags & WE_HAVE_A_TWO_BY_TWO) {\n      // Four F2.14.\n      transf.push(\n        glyf.getUint16(pos),\n        glyf.getUint16(pos + 2),\n        glyf.getUint16(pos + 4),\n        glyf.getUint16(pos + 6)\n      );\n      pos += 8;\n    }\n\n    let instructions = null;\n    if (flags & WE_HAVE_INSTRUCTIONS) {\n      const instructionLength = glyf.getUint16(pos);\n      pos += 2;\n      instructions = new Uint8Array(glyf).slice(pos, pos + instructionLength);\n      pos += instructionLength;\n    }\n\n    return [\n      pos - spos,\n      new CompositeGlyph({\n        flags,\n        glyphIndex,\n        argument1,\n        argument2,\n        transf,\n        instructions,\n      }),\n    ];\n  }\n\n  getSize() {\n    let size = 2 + 2 + this.transf.length * 2;\n    if (this.flags & WE_HAVE_INSTRUCTIONS) {\n      size += 2 + this.instructions.length;\n    }\n\n    size += 2;\n    if (this.flags & 2) {\n      // Arguments are signed.\n      if (\n        !(\n          this.argument1 >= -128 &&\n          this.argument1 <= 127 &&\n          this.argument2 >= -128 &&\n          this.argument2 <= 127\n        )\n      ) {\n        size += 2;\n      }\n    } else if (\n      !(\n        this.argument1 >= 0 &&\n        this.argument1 <= 255 &&\n        this.argument2 >= 0 &&\n        this.argument2 <= 255\n      )\n    ) {\n      size += 2;\n    }\n\n    return size;\n  }\n\n  write(pos, buf) {\n    const spos = pos;\n\n    if (this.flags & ARGS_ARE_XY_VALUES) {\n      // Arguments are signed.\n      if (\n        !(\n          this.argument1 >= -128 &&\n          this.argument1 <= 127 &&\n          this.argument2 >= -128 &&\n          this.argument2 <= 127\n        )\n      ) {\n        this.flags |= ARG_1_AND_2_ARE_WORDS;\n      }\n    } else if (\n      !(\n        this.argument1 >= 0 &&\n        this.argument1 <= 255 &&\n        this.argument2 >= 0 &&\n        this.argument2 <= 255\n      )\n    ) {\n      this.flags |= ARG_1_AND_2_ARE_WORDS;\n    }\n\n    buf.setUint16(pos, this.flags);\n    buf.setUint16(pos + 2, this.glyphIndex);\n    pos += 4;\n\n    if (this.flags & ARG_1_AND_2_ARE_WORDS) {\n      if (this.flags & ARGS_ARE_XY_VALUES) {\n        buf.setInt16(pos, this.argument1);\n        buf.setInt16(pos + 2, this.argument2);\n      } else {\n        buf.setUint16(pos, this.argument1);\n        buf.setUint16(pos + 2, this.argument2);\n      }\n      pos += 4;\n    } else {\n      buf.setUint8(pos, this.argument1);\n      buf.setUint8(pos + 1, this.argument2);\n      pos += 2;\n    }\n\n    if (this.flags & WE_HAVE_INSTRUCTIONS) {\n      buf.setUint16(pos, this.instructions.length);\n      pos += 2;\n      // Write instructions.\n      if (this.instructions.length) {\n        new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(\n          this.instructions,\n          pos\n        );\n        pos += this.instructions.length;\n      }\n    }\n\n    return pos - spos;\n  }\n\n  scale(x, factor) {}\n}\n\nexport { GlyfTable };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { readUint32 } from \"./core_utils.js\";\nimport { string32 } from \"../shared/util.js\";\n\nfunction writeInt16(dest, offset, num) {\n  dest[offset] = (num >> 8) & 0xff;\n  dest[offset + 1] = num & 0xff;\n}\n\nfunction writeInt32(dest, offset, num) {\n  dest[offset] = (num >> 24) & 0xff;\n  dest[offset + 1] = (num >> 16) & 0xff;\n  dest[offset + 2] = (num >> 8) & 0xff;\n  dest[offset + 3] = num & 0xff;\n}\n\nfunction writeData(dest, offset, data) {\n  if (data instanceof Uint8Array) {\n    dest.set(data, offset);\n  } else if (typeof data === \"string\") {\n    for (let i = 0, ii = data.length; i < ii; i++) {\n      dest[offset++] = data.charCodeAt(i) & 0xff;\n    }\n  } else {\n    // treating everything else as array\n    for (const num of data) {\n      dest[offset++] = num & 0xff;\n    }\n  }\n}\n\nconst OTF_HEADER_SIZE = 12;\nconst OTF_TABLE_ENTRY_SIZE = 16;\n\nclass OpenTypeFileBuilder {\n  constructor(sfnt) {\n    this.sfnt = sfnt;\n    this.tables = Object.create(null);\n  }\n\n  static getSearchParams(entriesCount, entrySize) {\n    let maxPower2 = 1,\n      log2 = 0;\n    while ((maxPower2 ^ entriesCount) > maxPower2) {\n      maxPower2 <<= 1;\n      log2++;\n    }\n    const searchRange = maxPower2 * entrySize;\n    return {\n      range: searchRange,\n      entry: log2,\n      rangeShift: entrySize * entriesCount - searchRange,\n    };\n  }\n\n  toArray() {\n    let sfnt = this.sfnt;\n\n    // Tables needs to be written by ascendant alphabetic order\n    const tables = this.tables;\n    const tablesNames = Object.keys(tables);\n    tablesNames.sort();\n    const numTables = tablesNames.length;\n\n    let i, j, jj, table, tableName;\n    // layout the tables data\n    let offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE;\n    const tableOffsets = [offset];\n    for (i = 0; i < numTables; i++) {\n      table = tables[tablesNames[i]];\n      const paddedLength = ((table.length + 3) & ~3) >>> 0;\n      offset += paddedLength;\n      tableOffsets.push(offset);\n    }\n\n    const file = new Uint8Array(offset);\n    // write the table data first (mostly for checksum)\n    for (i = 0; i < numTables; i++) {\n      table = tables[tablesNames[i]];\n      writeData(file, tableOffsets[i], table);\n    }\n\n    // sfnt version (4 bytes)\n    if (sfnt === \"true\") {\n      // Windows hates the Mac TrueType sfnt version number\n      sfnt = string32(0x00010000);\n    }\n    file[0] = sfnt.charCodeAt(0) & 0xff;\n    file[1] = sfnt.charCodeAt(1) & 0xff;\n    file[2] = sfnt.charCodeAt(2) & 0xff;\n    file[3] = sfnt.charCodeAt(3) & 0xff;\n\n    // numTables (2 bytes)\n    writeInt16(file, 4, numTables);\n\n    const searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16);\n\n    // searchRange (2 bytes)\n    writeInt16(file, 6, searchParams.range);\n    // entrySelector (2 bytes)\n    writeInt16(file, 8, searchParams.entry);\n    // rangeShift (2 bytes)\n    writeInt16(file, 10, searchParams.rangeShift);\n\n    offset = OTF_HEADER_SIZE;\n    // writing table entries\n    for (i = 0; i < numTables; i++) {\n      tableName = tablesNames[i];\n      file[offset] = tableName.charCodeAt(0) & 0xff;\n      file[offset + 1] = tableName.charCodeAt(1) & 0xff;\n      file[offset + 2] = tableName.charCodeAt(2) & 0xff;\n      file[offset + 3] = tableName.charCodeAt(3) & 0xff;\n\n      // checksum\n      let checksum = 0;\n      for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) {\n        const quad = readUint32(file, j);\n        checksum = (checksum + quad) >>> 0;\n      }\n      writeInt32(file, offset + 4, checksum);\n\n      // offset\n      writeInt32(file, offset + 8, tableOffsets[i]);\n      // length\n      writeInt32(file, offset + 12, tables[tableName].length);\n\n      offset += OTF_TABLE_ENTRY_SIZE;\n    }\n    return file;\n  }\n\n  addTable(tag, data) {\n    if (tag in this.tables) {\n      throw new Error(\"Table \" + tag + \" already exists\");\n    }\n    this.tables[tag] = data;\n  }\n}\n\nexport { OpenTypeFileBuilder };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getEncoding } from \"./encodings.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\nimport { warn } from \"../shared/util.js\";\n\n// Hinting is currently disabled due to unknown problems on windows\n// in tracemonkey and various other pdfs with type1 fonts.\nconst HINTING_ENABLED = false;\n\nconst COMMAND_MAP = {\n  hstem: [1],\n  vstem: [3],\n  vmoveto: [4],\n  rlineto: [5],\n  hlineto: [6],\n  vlineto: [7],\n  rrcurveto: [8],\n  callsubr: [10],\n  flex: [12, 35],\n  drop: [12, 18],\n  endchar: [14],\n  rmoveto: [21],\n  hmoveto: [22],\n  vhcurveto: [30],\n  hvcurveto: [31],\n};\n\n/**\n * CharStrings are encoded following the the CharString Encoding sequence\n * describe in Chapter 6 of the \"Adobe Type1 Font Format\" specification.\n * The value in a byte indicates a command, a number, or subsequent bytes\n * that are to be interpreted in a special way.\n *\n * CharString Number Encoding:\n *  A CharString byte containing the values from 32 through 255 inclusive\n *  indicate an integer. These values are decoded in four ranges.\n *\n * 1. A CharString byte containing a value, v, between 32 and 246 inclusive,\n * indicate the integer v - 139. Thus, the integer values from -107 through\n * 107 inclusive may be encoded in single byte.\n *\n * 2. A CharString byte containing a value, v, between 247 and 250 inclusive,\n * indicates an integer involving the next byte, w, according to the formula:\n * [(v - 247) x 256] + w + 108\n *\n * 3. A CharString byte containing a value, v, between 251 and 254 inclusive,\n * indicates an integer involving the next byte, w, according to the formula:\n * -[(v - 251) * 256] - w - 108\n *\n * 4. A CharString containing the value 255 indicates that the next 4 bytes\n * are a two complement signed integer. The first of these bytes contains the\n * highest order bits, the second byte contains the next higher order bits\n * and the fourth byte contain the lowest order bits.\n *\n *\n * CharString Command Encoding:\n *  CharStrings commands are encoded in 1 or 2 bytes.\n *\n *  Single byte commands are encoded in 1 byte that contains a value between\n *  0 and 31 inclusive.\n *  If a command byte contains the value 12, then the value in the next byte\n *  indicates a command. This \"escape\" mechanism allows many extra commands\n *  to be encoded and this encoding technique helps to minimize the length of\n *  the charStrings.\n */\nclass Type1CharString {\n  constructor() {\n    this.width = 0;\n    this.lsb = 0;\n    this.flexing = false;\n    this.output = [];\n    this.stack = [];\n  }\n\n  convert(encoded, subrs, seacAnalysisEnabled) {\n    const count = encoded.length;\n    let error = false;\n    let wx, sbx, subrNumber;\n    for (let i = 0; i < count; i++) {\n      let value = encoded[i];\n      if (value < 32) {\n        if (value === 12) {\n          value = (value << 8) + encoded[++i];\n        }\n        switch (value) {\n          case 1: // hstem\n            if (!HINTING_ENABLED) {\n              this.stack = [];\n              break;\n            }\n            error = this.executeCommand(2, COMMAND_MAP.hstem);\n            break;\n          case 3: // vstem\n            if (!HINTING_ENABLED) {\n              this.stack = [];\n              break;\n            }\n            error = this.executeCommand(2, COMMAND_MAP.vstem);\n            break;\n          case 4: // vmoveto\n            if (this.flexing) {\n              if (this.stack.length < 1) {\n                error = true;\n                break;\n              }\n              // Add the dx for flex and but also swap the values so they are\n              // the right order.\n              const dy = this.stack.pop();\n              this.stack.push(0, dy);\n              break;\n            }\n            error = this.executeCommand(1, COMMAND_MAP.vmoveto);\n            break;\n          case 5: // rlineto\n            error = this.executeCommand(2, COMMAND_MAP.rlineto);\n            break;\n          case 6: // hlineto\n            error = this.executeCommand(1, COMMAND_MAP.hlineto);\n            break;\n          case 7: // vlineto\n            error = this.executeCommand(1, COMMAND_MAP.vlineto);\n            break;\n          case 8: // rrcurveto\n            error = this.executeCommand(6, COMMAND_MAP.rrcurveto);\n            break;\n          case 9: // closepath\n            // closepath is a Type1 command that does not take argument and is\n            // useless in Type2 and it can simply be ignored.\n            this.stack = [];\n            break;\n          case 10: // callsubr\n            if (this.stack.length < 1) {\n              error = true;\n              break;\n            }\n            subrNumber = this.stack.pop();\n            if (!subrs[subrNumber]) {\n              error = true;\n              break;\n            }\n            error = this.convert(subrs[subrNumber], subrs, seacAnalysisEnabled);\n            break;\n          case 11: // return\n            return error;\n          case 13: // hsbw\n            if (this.stack.length < 2) {\n              error = true;\n              break;\n            }\n            // To convert to type2 we have to move the width value to the\n            // first part of the charstring and then use hmoveto with lsb.\n            wx = this.stack.pop();\n            sbx = this.stack.pop();\n            this.lsb = sbx;\n            this.width = wx;\n            this.stack.push(wx, sbx);\n            error = this.executeCommand(2, COMMAND_MAP.hmoveto);\n            break;\n          case 14: // endchar\n            this.output.push(COMMAND_MAP.endchar[0]);\n            break;\n          case 21: // rmoveto\n            if (this.flexing) {\n              break;\n            }\n            error = this.executeCommand(2, COMMAND_MAP.rmoveto);\n            break;\n          case 22: // hmoveto\n            if (this.flexing) {\n              // Add the dy for flex.\n              this.stack.push(0);\n              break;\n            }\n            error = this.executeCommand(1, COMMAND_MAP.hmoveto);\n            break;\n          case 30: // vhcurveto\n            error = this.executeCommand(4, COMMAND_MAP.vhcurveto);\n            break;\n          case 31: // hvcurveto\n            error = this.executeCommand(4, COMMAND_MAP.hvcurveto);\n            break;\n          case (12 << 8) + 0: // dotsection\n            // dotsection is a Type1 command to specify some hinting feature\n            // for dots that do not take a parameter and it can safely be\n            // ignored for Type2.\n            this.stack = [];\n            break;\n          case (12 << 8) + 1: // vstem3\n            if (!HINTING_ENABLED) {\n              this.stack = [];\n              break;\n            }\n            // [vh]stem3 are Type1 only and Type2 supports [vh]stem with\n            // multiple parameters, so instead of returning [vh]stem3 take a\n            // shortcut and return [vhstem] instead.\n            error = this.executeCommand(2, COMMAND_MAP.vstem);\n            break;\n          case (12 << 8) + 2: // hstem3\n            if (!HINTING_ENABLED) {\n              this.stack = [];\n              break;\n            }\n            // See vstem3.\n            error = this.executeCommand(2, COMMAND_MAP.hstem);\n            break;\n          case (12 << 8) + 6: // seac\n            // seac is like type 2's special endchar but it doesn't use the\n            // first argument asb, so remove it.\n            if (seacAnalysisEnabled) {\n              const asb = this.stack.at(-5);\n              this.seac = this.stack.splice(-4, 4);\n              this.seac[0] += this.lsb - asb;\n              error = this.executeCommand(0, COMMAND_MAP.endchar);\n            } else {\n              error = this.executeCommand(4, COMMAND_MAP.endchar);\n            }\n            break;\n          case (12 << 8) + 7: // sbw\n            if (this.stack.length < 4) {\n              error = true;\n              break;\n            }\n            // To convert to type2 we have to move the width value to the\n            // first part of the charstring and then use rmoveto with\n            // (dx, dy). The height argument will not be used for vmtx and\n            // vhea tables reconstruction -- ignoring it.\n            this.stack.pop(); // wy\n            wx = this.stack.pop();\n            const sby = this.stack.pop();\n            sbx = this.stack.pop();\n            this.lsb = sbx;\n            this.width = wx;\n            this.stack.push(wx, sbx, sby);\n            error = this.executeCommand(3, COMMAND_MAP.rmoveto);\n            break;\n          case (12 << 8) + 12: // div\n            if (this.stack.length < 2) {\n              error = true;\n              break;\n            }\n            const num2 = this.stack.pop();\n            const num1 = this.stack.pop();\n            this.stack.push(num1 / num2);\n            break;\n          case (12 << 8) + 16: // callothersubr\n            if (this.stack.length < 2) {\n              error = true;\n              break;\n            }\n            subrNumber = this.stack.pop();\n            const numArgs = this.stack.pop();\n            if (subrNumber === 0 && numArgs === 3) {\n              const flexArgs = this.stack.splice(-17, 17);\n              this.stack.push(\n                flexArgs[2] + flexArgs[0], // bcp1x + rpx\n                flexArgs[3] + flexArgs[1], // bcp1y + rpy\n                flexArgs[4], // bcp2x\n                flexArgs[5], // bcp2y\n                flexArgs[6], // p2x\n                flexArgs[7], // p2y\n                flexArgs[8], // bcp3x\n                flexArgs[9], // bcp3y\n                flexArgs[10], // bcp4x\n                flexArgs[11], // bcp4y\n                flexArgs[12], // p3x\n                flexArgs[13], // p3y\n                flexArgs[14] // flexDepth\n                // 15 = finalx unused by flex\n                // 16 = finaly unused by flex\n              );\n              error = this.executeCommand(13, COMMAND_MAP.flex, true);\n              this.flexing = false;\n              this.stack.push(flexArgs[15], flexArgs[16]);\n            } else if (subrNumber === 1 && numArgs === 0) {\n              this.flexing = true;\n            }\n            break;\n          case (12 << 8) + 17: // pop\n            // Ignore this since it is only used with othersubr.\n            break;\n          case (12 << 8) + 33: // setcurrentpoint\n            // Ignore for now.\n            this.stack = [];\n            break;\n          default:\n            warn('Unknown type 1 charstring command of \"' + value + '\"');\n            break;\n        }\n        if (error) {\n          break;\n        }\n        continue;\n      } else if (value <= 246) {\n        value -= 139;\n      } else if (value <= 250) {\n        value = (value - 247) * 256 + encoded[++i] + 108;\n      } else if (value <= 254) {\n        value = -((value - 251) * 256) - encoded[++i] - 108;\n      } else {\n        value =\n          ((encoded[++i] & 0xff) << 24) |\n          ((encoded[++i] & 0xff) << 16) |\n          ((encoded[++i] & 0xff) << 8) |\n          ((encoded[++i] & 0xff) << 0);\n      }\n      this.stack.push(value);\n    }\n    return error;\n  }\n\n  executeCommand(howManyArgs, command, keepStack) {\n    const stackLength = this.stack.length;\n    if (howManyArgs > stackLength) {\n      return true;\n    }\n    const start = stackLength - howManyArgs;\n    for (let i = start; i < stackLength; i++) {\n      let value = this.stack[i];\n      if (Number.isInteger(value)) {\n        this.output.push(28, (value >> 8) & 0xff, value & 0xff);\n      } else {\n        // fixed point\n        value = (65536 * value) | 0;\n        this.output.push(\n          255,\n          (value >> 24) & 0xff,\n          (value >> 16) & 0xff,\n          (value >> 8) & 0xff,\n          value & 0xff\n        );\n      }\n    }\n    this.output.push(...command);\n    if (keepStack) {\n      this.stack.splice(start, howManyArgs);\n    } else {\n      this.stack.length = 0;\n    }\n    return false;\n  }\n}\n\n/**\n * Decrypt a Sequence of Ciphertext Bytes to Produce the Original Sequence\n * of Plaintext Bytes. The function takes a key as a parameter which can be\n * for decrypting the eexec block or for decoding charStrings.\n */\nconst EEXEC_ENCRYPT_KEY = 55665;\nconst CHAR_STRS_ENCRYPT_KEY = 4330;\n\nfunction isHexDigit(code) {\n  return (\n    (code >= 48 && code <= 57) || // '0'-'9'\n    (code >= 65 && code <= 70) || // 'A'-'F'\n    (code >= 97 && code <= 102) // 'a'-'f'\n  );\n}\n\nfunction decrypt(data, key, discardNumber) {\n  if (discardNumber >= data.length) {\n    return new Uint8Array(0);\n  }\n  const c1 = 52845,\n    c2 = 22719;\n  let r = key | 0,\n    i,\n    j;\n  for (i = 0; i < discardNumber; i++) {\n    r = ((data[i] + r) * c1 + c2) & ((1 << 16) - 1);\n  }\n  const count = data.length - discardNumber;\n  const decrypted = new Uint8Array(count);\n  for (i = discardNumber, j = 0; j < count; i++, j++) {\n    const value = data[i];\n    decrypted[j] = value ^ (r >> 8);\n    r = ((value + r) * c1 + c2) & ((1 << 16) - 1);\n  }\n  return decrypted;\n}\n\nfunction decryptAscii(data, key, discardNumber) {\n  const c1 = 52845,\n    c2 = 22719;\n  let r = key | 0;\n  const count = data.length,\n    maybeLength = count >>> 1;\n  const decrypted = new Uint8Array(maybeLength);\n  let i, j;\n  for (i = 0, j = 0; i < count; i++) {\n    const digit1 = data[i];\n    if (!isHexDigit(digit1)) {\n      continue;\n    }\n    i++;\n    let digit2;\n    while (i < count && !isHexDigit((digit2 = data[i]))) {\n      i++;\n    }\n    if (i < count) {\n      const value = parseInt(String.fromCharCode(digit1, digit2), 16);\n      decrypted[j++] = value ^ (r >> 8);\n      r = ((value + r) * c1 + c2) & ((1 << 16) - 1);\n    }\n  }\n  return decrypted.slice(discardNumber, j);\n}\n\nfunction isSpecial(c) {\n  return (\n    c === /* '/' = */ 0x2f ||\n    c === /* '[' = */ 0x5b ||\n    c === /* ']' = */ 0x5d ||\n    c === /* '{' = */ 0x7b ||\n    c === /* '}' = */ 0x7d ||\n    c === /* '(' = */ 0x28 ||\n    c === /* ')' = */ 0x29\n  );\n}\n\n/**\n * Type1Parser encapsulate the needed code for parsing a Type1 font program.\n * Some of its logic depends on the Type2 charstrings structure.\n * NOTE: This doesn't really parse the font since that would require evaluation\n *       of PostScript, but it is possible in most cases to extract what we need\n *       without a full parse.\n */\nclass Type1Parser {\n  constructor(stream, encrypted, seacAnalysisEnabled) {\n    if (encrypted) {\n      const data = stream.getBytes();\n      const isBinary = !(\n        (isHexDigit(data[0]) || isWhiteSpace(data[0])) &&\n        isHexDigit(data[1]) &&\n        isHexDigit(data[2]) &&\n        isHexDigit(data[3]) &&\n        isHexDigit(data[4]) &&\n        isHexDigit(data[5]) &&\n        isHexDigit(data[6]) &&\n        isHexDigit(data[7])\n      );\n      stream = new Stream(\n        isBinary\n          ? decrypt(data, EEXEC_ENCRYPT_KEY, 4)\n          : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4)\n      );\n    }\n    this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n\n    this.stream = stream;\n    this.nextChar();\n  }\n\n  readNumberArray() {\n    this.getToken(); // read '[' or '{' (arrays can start with either)\n    const array = [];\n    while (true) {\n      const token = this.getToken();\n      if (token === null || token === \"]\" || token === \"}\") {\n        break;\n      }\n      array.push(parseFloat(token || 0));\n    }\n    return array;\n  }\n\n  readNumber() {\n    const token = this.getToken();\n    return parseFloat(token || 0);\n  }\n\n  readInt() {\n    // Use '| 0' to prevent setting a double into length such as the double\n    // does not flow into the loop variable.\n    const token = this.getToken();\n    return parseInt(token || 0, 10) | 0;\n  }\n\n  readBoolean() {\n    const token = this.getToken();\n    // Use 1 and 0 since that's what type2 charstrings use.\n    return token === \"true\" ? 1 : 0;\n  }\n\n  nextChar() {\n    return (this.currentChar = this.stream.getByte());\n  }\n\n  prevChar() {\n    this.stream.skip(-2);\n    return (this.currentChar = this.stream.getByte());\n  }\n\n  getToken() {\n    // Eat whitespace and comments.\n    let comment = false;\n    let ch = this.currentChar;\n    while (true) {\n      if (ch === -1) {\n        return null;\n      }\n\n      if (comment) {\n        if (ch === 0x0a || ch === 0x0d) {\n          comment = false;\n        }\n      } else if (ch === /* '%' = */ 0x25) {\n        comment = true;\n      } else if (!isWhiteSpace(ch)) {\n        break;\n      }\n      ch = this.nextChar();\n    }\n    if (isSpecial(ch)) {\n      this.nextChar();\n      return String.fromCharCode(ch);\n    }\n    let token = \"\";\n    do {\n      token += String.fromCharCode(ch);\n      ch = this.nextChar();\n    } while (ch >= 0 && !isWhiteSpace(ch) && !isSpecial(ch));\n    return token;\n  }\n\n  readCharStrings(bytes, lenIV) {\n    if (lenIV === -1) {\n      // This isn't in the spec, but Adobe's tx program handles -1\n      // as plain text.\n      return bytes;\n    }\n    return decrypt(bytes, CHAR_STRS_ENCRYPT_KEY, lenIV);\n  }\n\n  /*\n   * Returns an object containing a Subrs array and a CharStrings\n   * array extracted from and eexec encrypted block of data\n   */\n  extractFontProgram(properties) {\n    const stream = this.stream;\n\n    const subrs = [],\n      charstrings = [];\n    const privateData = Object.create(null);\n    privateData.lenIV = 4;\n    const program = {\n      subrs: [],\n      charstrings: [],\n      properties: {\n        privateData,\n      },\n    };\n    let token, length, data, lenIV;\n    while ((token = this.getToken()) !== null) {\n      if (token !== \"/\") {\n        continue;\n      }\n      token = this.getToken();\n      switch (token) {\n        case \"CharStrings\":\n          // The number immediately following CharStrings must be greater or\n          // equal to the number of CharStrings.\n          this.getToken();\n          this.getToken(); // read in 'dict'\n          this.getToken(); // read in 'dup'\n          this.getToken(); // read in 'begin'\n          while (true) {\n            token = this.getToken();\n            if (token === null || token === \"end\") {\n              break;\n            }\n\n            if (token !== \"/\") {\n              continue;\n            }\n            const glyph = this.getToken();\n            length = this.readInt();\n            this.getToken(); // read in 'RD' or '-|'\n            data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n            lenIV = program.properties.privateData.lenIV;\n            const encoded = this.readCharStrings(data, lenIV);\n            this.nextChar();\n            token = this.getToken(); // read in 'ND' or '|-'\n            if (token === \"noaccess\") {\n              this.getToken(); // read in 'def'\n            } else if (token === \"/\") {\n              // The expected 'ND' or '|-' token is missing, avoid swallowing\n              // the start of the next glyph (fixes issue14462_reduced.pdf).\n              this.prevChar();\n            }\n            charstrings.push({\n              glyph,\n              encoded,\n            });\n          }\n          break;\n        case \"Subrs\":\n          this.readInt(); // num\n          this.getToken(); // read in 'array'\n          while (this.getToken() === \"dup\") {\n            const index = this.readInt();\n            length = this.readInt();\n            this.getToken(); // read in 'RD' or '-|'\n            data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n            lenIV = program.properties.privateData.lenIV;\n            const encoded = this.readCharStrings(data, lenIV);\n            this.nextChar();\n            token = this.getToken(); // read in 'NP' or '|'\n            if (token === \"noaccess\") {\n              this.getToken(); // read in 'put'\n            }\n            subrs[index] = encoded;\n          }\n          break;\n        case \"BlueValues\":\n        case \"OtherBlues\":\n        case \"FamilyBlues\":\n        case \"FamilyOtherBlues\":\n          const blueArray = this.readNumberArray();\n          // *Blue* values may contain invalid data: disables reading of\n          // those values when hinting is disabled.\n          if (\n            blueArray.length > 0 &&\n            blueArray.length % 2 === 0 &&\n            HINTING_ENABLED\n          ) {\n            program.properties.privateData[token] = blueArray;\n          }\n          break;\n        case \"StemSnapH\":\n        case \"StemSnapV\":\n          program.properties.privateData[token] = this.readNumberArray();\n          break;\n        case \"StdHW\":\n        case \"StdVW\":\n          program.properties.privateData[token] = this.readNumberArray()[0];\n          break;\n        case \"BlueShift\":\n        case \"lenIV\":\n        case \"BlueFuzz\":\n        case \"BlueScale\":\n        case \"LanguageGroup\":\n          program.properties.privateData[token] = this.readNumber();\n          break;\n        case \"ExpansionFactor\":\n          // Firefox doesn't render correctly a font with a null factor on\n          // Windows (see issue 15289), hence we just reset it to its default\n          // value (0.06).\n          program.properties.privateData[token] = this.readNumber() || 0.06;\n          break;\n        case \"ForceBold\":\n          program.properties.privateData[token] = this.readBoolean();\n          break;\n      }\n    }\n\n    for (const { encoded, glyph } of charstrings) {\n      const charString = new Type1CharString();\n      const error = charString.convert(\n        encoded,\n        subrs,\n        this.seacAnalysisEnabled\n      );\n      let output = charString.output;\n      if (error) {\n        // It seems when FreeType encounters an error while evaluating a glyph\n        // that it completely ignores the glyph so we'll mimic that behaviour\n        // here and put an endchar to make the validator happy.\n        output = [14];\n      }\n      const charStringObject = {\n        glyphName: glyph,\n        charstring: output,\n        width: charString.width,\n        lsb: charString.lsb,\n        seac: charString.seac,\n      };\n      if (glyph === \".notdef\") {\n        // Make sure .notdef is at index zero (issue #11477).\n        program.charstrings.unshift(charStringObject);\n      } else {\n        program.charstrings.push(charStringObject);\n      }\n\n      // Attempt to replace missing widths, from the font dictionary /Widths\n      // entry, with ones from the font data (fixes issue11150_reduced.pdf).\n      if (properties.builtInEncoding) {\n        const index = properties.builtInEncoding.indexOf(glyph);\n        if (\n          index > -1 &&\n          properties.widths[index] === undefined &&\n          index >= properties.firstChar &&\n          index <= properties.lastChar\n        ) {\n          properties.widths[index] = charString.width;\n        }\n      }\n    }\n\n    return program;\n  }\n\n  extractFontHeader(properties) {\n    let token;\n    while ((token = this.getToken()) !== null) {\n      if (token !== \"/\") {\n        continue;\n      }\n      token = this.getToken();\n      switch (token) {\n        case \"FontMatrix\":\n          const matrix = this.readNumberArray();\n          properties.fontMatrix = matrix;\n          break;\n        case \"Encoding\":\n          const encodingArg = this.getToken();\n          let encoding;\n          if (!/^\\d+$/.test(encodingArg)) {\n            // encoding name is specified\n            encoding = getEncoding(encodingArg);\n          } else {\n            encoding = [];\n            const size = parseInt(encodingArg, 10) | 0;\n            this.getToken(); // read in 'array'\n\n            for (let j = 0; j < size; j++) {\n              token = this.getToken();\n              // skipping till first dup or def (e.g. ignoring for statement)\n              while (token !== \"dup\" && token !== \"def\") {\n                token = this.getToken();\n                if (token === null) {\n                  return; // invalid header\n                }\n              }\n              if (token === \"def\") {\n                break; // read all array data\n              }\n              const index = this.readInt();\n              this.getToken(); // read in '/'\n              const glyph = this.getToken();\n              encoding[index] = glyph;\n              this.getToken(); // read the in 'put'\n            }\n          }\n          properties.builtInEncoding = encoding;\n          break;\n        case \"FontBBox\":\n          const fontBBox = this.readNumberArray();\n          // adjusting ascent/descent\n          properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n          properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n          properties.ascentScaled = true;\n          break;\n      }\n    }\n  }\n}\n\nexport { Type1Parser };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  CFF,\n  CFFCharset,\n  CFFCompiler,\n  CFFHeader,\n  CFFIndex,\n  CFFPrivateDict,\n  CFFStandardStrings,\n  CFFStrings,\n  CFFTopDict,\n} from \"./cff_parser.js\";\nimport { FormatError, warn } from \"../shared/util.js\";\nimport { SEAC_ANALYSIS_ENABLED, type1FontGlyphMapping } from \"./fonts_utils.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\nimport { Type1Parser } from \"./type1_parser.js\";\n\nfunction findBlock(streamBytes, signature, startIndex) {\n  const streamBytesLength = streamBytes.length;\n  const signatureLength = signature.length;\n  const scanLength = streamBytesLength - signatureLength;\n\n  let i = startIndex,\n    found = false;\n  while (i < scanLength) {\n    let j = 0;\n    while (j < signatureLength && streamBytes[i + j] === signature[j]) {\n      j++;\n    }\n    if (j >= signatureLength) {\n      // `signature` found, skip over whitespace.\n      i += j;\n      while (i < streamBytesLength && isWhiteSpace(streamBytes[i])) {\n        i++;\n      }\n      found = true;\n      break;\n    }\n    i++;\n  }\n  return {\n    found,\n    length: i,\n  };\n}\n\nfunction getHeaderBlock(stream, suggestedLength) {\n  const EEXEC_SIGNATURE = [0x65, 0x65, 0x78, 0x65, 0x63];\n\n  const streamStartPos = stream.pos; // Save the initial stream position.\n  let headerBytes, headerBytesLength, block;\n  try {\n    headerBytes = stream.getBytes(suggestedLength);\n    headerBytesLength = headerBytes.length;\n  } catch {\n    // Ignore errors if the `suggestedLength` is huge enough that a Uint8Array\n    // cannot hold the result of `getBytes`, and fallback to simply checking\n    // the entire stream (fixes issue3928.pdf).\n  }\n\n  if (headerBytesLength === suggestedLength) {\n    // Most of the time `suggestedLength` is correct, so to speed things up we\n    // initially only check the last few bytes to see if the header was found.\n    // Otherwise we (potentially) check the entire stream to prevent errors in\n    // `Type1Parser` (fixes issue5686.pdf).\n    block = findBlock(\n      headerBytes,\n      EEXEC_SIGNATURE,\n      suggestedLength - 2 * EEXEC_SIGNATURE.length\n    );\n\n    if (block.found && block.length === suggestedLength) {\n      return {\n        stream: new Stream(headerBytes),\n        length: suggestedLength,\n      };\n    }\n  }\n  warn('Invalid \"Length1\" property in Type1 font -- trying to recover.');\n  stream.pos = streamStartPos; // Reset the stream position.\n\n  const SCAN_BLOCK_LENGTH = 2048;\n  let actualLength;\n  while (true) {\n    const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n    block = findBlock(scanBytes, EEXEC_SIGNATURE, 0);\n\n    if (block.length === 0) {\n      break;\n    }\n    stream.pos += block.length; // Update the stream position.\n\n    if (block.found) {\n      actualLength = stream.pos - streamStartPos;\n      break;\n    }\n  }\n  stream.pos = streamStartPos; // Reset the stream position.\n\n  if (actualLength) {\n    return {\n      stream: new Stream(stream.getBytes(actualLength)),\n      length: actualLength,\n    };\n  }\n  warn('Unable to recover \"Length1\" property in Type1 font -- using as is.');\n  return {\n    stream: new Stream(stream.getBytes(suggestedLength)),\n    length: suggestedLength,\n  };\n}\n\nfunction getEexecBlock(stream, suggestedLength) {\n  // We should ideally parse the eexec block to ensure that `suggestedLength`\n  // is correct, so we don't truncate the block data if it's too small.\n  // However, this would also require checking if the fixed-content portion\n  // exists (using the 'Length3' property), and ensuring that it's valid.\n  //\n  // Given that `suggestedLength` almost always is correct, all the validation\n  // would require a great deal of unnecessary parsing for most fonts.\n  // To save time, we always fetch the entire stream instead, which also avoid\n  // issues if `suggestedLength` is huge (see comment in `getHeaderBlock`).\n  //\n  // NOTE: This means that the function can include the fixed-content portion\n  // in the returned eexec block. In practice this does *not* seem to matter,\n  // since `Type1Parser_extractFontProgram` will skip over any non-commands.\n  const eexecBytes = stream.getBytes();\n  if (eexecBytes.length === 0) {\n    throw new FormatError(\"getEexecBlock - no font program found.\");\n  }\n  return {\n    stream: new Stream(eexecBytes),\n    length: eexecBytes.length,\n  };\n}\n\n/**\n * Type1Font is also a CIDFontType0.\n */\nclass Type1Font {\n  constructor(name, file, properties) {\n    // Some bad generators embed pfb file as is, we have to strip 6-byte header.\n    // Also, length1 and length2 might be off by 6 bytes as well.\n    // http://www.math.ubc.ca/~cass/piscript/type1.pdf\n    const PFB_HEADER_SIZE = 6;\n    let headerBlockLength = properties.length1;\n    let eexecBlockLength = properties.length2;\n    let pfbHeader = file.peekBytes(PFB_HEADER_SIZE);\n    const pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01;\n    if (pfbHeaderPresent) {\n      file.skip(PFB_HEADER_SIZE);\n      headerBlockLength =\n        (pfbHeader[5] << 24) |\n        (pfbHeader[4] << 16) |\n        (pfbHeader[3] << 8) |\n        pfbHeader[2];\n    }\n\n    // Get the data block containing glyphs and subrs information\n    const headerBlock = getHeaderBlock(file, headerBlockLength);\n    const headerBlockParser = new Type1Parser(\n      headerBlock.stream,\n      false,\n      SEAC_ANALYSIS_ENABLED\n    );\n    headerBlockParser.extractFontHeader(properties);\n\n    if (pfbHeaderPresent) {\n      pfbHeader = file.getBytes(PFB_HEADER_SIZE);\n      eexecBlockLength =\n        (pfbHeader[5] << 24) |\n        (pfbHeader[4] << 16) |\n        (pfbHeader[3] << 8) |\n        pfbHeader[2];\n    }\n\n    // Decrypt the data blocks and retrieve it's content\n    const eexecBlock = getEexecBlock(file, eexecBlockLength);\n    const eexecBlockParser = new Type1Parser(\n      eexecBlock.stream,\n      true,\n      SEAC_ANALYSIS_ENABLED\n    );\n    const data = eexecBlockParser.extractFontProgram(properties);\n    for (const key in data.properties) {\n      properties[key] = data.properties[key];\n    }\n\n    const charstrings = data.charstrings;\n    const type2Charstrings = this.getType2Charstrings(charstrings);\n    const subrs = this.getType2Subrs(data.subrs);\n\n    this.charstrings = charstrings;\n    this.data = this.wrap(\n      name,\n      type2Charstrings,\n      this.charstrings,\n      subrs,\n      properties\n    );\n    this.seacs = this.getSeacs(data.charstrings);\n  }\n\n  get numGlyphs() {\n    return this.charstrings.length + 1;\n  }\n\n  getCharset() {\n    const charset = [\".notdef\"];\n    for (const { glyphName } of this.charstrings) {\n      charset.push(glyphName);\n    }\n    return charset;\n  }\n\n  getGlyphMapping(properties) {\n    const charstrings = this.charstrings;\n\n    if (properties.composite) {\n      const charCodeToGlyphId = Object.create(null);\n      // Map CIDs directly to GIDs.\n      for (\n        let glyphId = 0, charstringsLen = charstrings.length;\n        glyphId < charstringsLen;\n        glyphId++\n      ) {\n        const charCode = properties.cMap.charCodeOf(glyphId);\n        // Add 1 because glyph 0 is duplicated.\n        charCodeToGlyphId[charCode] = glyphId + 1;\n      }\n      return charCodeToGlyphId;\n    }\n\n    const glyphNames = [\".notdef\"];\n    let builtInEncoding, glyphId;\n    for (glyphId = 0; glyphId < charstrings.length; glyphId++) {\n      glyphNames.push(charstrings[glyphId].glyphName);\n    }\n    const encoding = properties.builtInEncoding;\n    if (encoding) {\n      builtInEncoding = Object.create(null);\n      for (const charCode in encoding) {\n        glyphId = glyphNames.indexOf(encoding[charCode]);\n        if (glyphId >= 0) {\n          builtInEncoding[charCode] = glyphId;\n        }\n      }\n    }\n\n    return type1FontGlyphMapping(properties, builtInEncoding, glyphNames);\n  }\n\n  hasGlyphId(id) {\n    if (id < 0 || id >= this.numGlyphs) {\n      return false;\n    }\n    if (id === 0) {\n      // notdef is always defined.\n      return true;\n    }\n    const glyph = this.charstrings[id - 1];\n    return glyph.charstring.length > 0;\n  }\n\n  getSeacs(charstrings) {\n    const seacMap = [];\n    for (let i = 0, ii = charstrings.length; i < ii; i++) {\n      const charstring = charstrings[i];\n      if (charstring.seac) {\n        // Offset by 1 for .notdef\n        seacMap[i + 1] = charstring.seac;\n      }\n    }\n    return seacMap;\n  }\n\n  getType2Charstrings(type1Charstrings) {\n    const type2Charstrings = [];\n    for (const type1Charstring of type1Charstrings) {\n      type2Charstrings.push(type1Charstring.charstring);\n    }\n    return type2Charstrings;\n  }\n\n  getType2Subrs(type1Subrs) {\n    let bias = 0;\n    const count = type1Subrs.length;\n    if (count < 1133) {\n      bias = 107;\n    } else if (count < 33769) {\n      bias = 1131;\n    } else {\n      bias = 32768;\n    }\n\n    // Add a bunch of empty subrs to deal with the Type2 bias\n    const type2Subrs = [];\n    let i;\n    for (i = 0; i < bias; i++) {\n      type2Subrs.push([0x0b]);\n    }\n\n    for (i = 0; i < count; i++) {\n      type2Subrs.push(type1Subrs[i]);\n    }\n\n    return type2Subrs;\n  }\n\n  wrap(name, glyphs, charstrings, subrs, properties) {\n    const cff = new CFF();\n    cff.header = new CFFHeader(1, 0, 4, 4);\n\n    cff.names = [name];\n\n    const topDict = new CFFTopDict();\n    // CFF strings IDs 0...390 are predefined names, so refering\n    // to entries in our own String INDEX starts at SID 391.\n    topDict.setByName(\"version\", 391);\n    topDict.setByName(\"Notice\", 392);\n    topDict.setByName(\"FullName\", 393);\n    topDict.setByName(\"FamilyName\", 394);\n    topDict.setByName(\"Weight\", 395);\n    topDict.setByName(\"Encoding\", null); // placeholder\n    topDict.setByName(\"FontMatrix\", properties.fontMatrix);\n    topDict.setByName(\"FontBBox\", properties.bbox);\n    topDict.setByName(\"charset\", null); // placeholder\n    topDict.setByName(\"CharStrings\", null); // placeholder\n    topDict.setByName(\"Private\", null); // placeholder\n    cff.topDict = topDict;\n\n    const strings = new CFFStrings();\n    strings.add(\"Version 0.11\"); // Version\n    strings.add(\"See original notice\"); // Notice\n    strings.add(name); // FullName\n    strings.add(name); // FamilyName\n    strings.add(\"Medium\"); // Weight\n    cff.strings = strings;\n\n    cff.globalSubrIndex = new CFFIndex();\n\n    const count = glyphs.length;\n    const charsetArray = [\".notdef\"];\n    let i, ii;\n    for (i = 0; i < count; i++) {\n      const glyphName = charstrings[i].glyphName;\n      const index = CFFStandardStrings.indexOf(glyphName);\n      if (index === -1) {\n        strings.add(glyphName);\n      }\n      charsetArray.push(glyphName);\n    }\n    cff.charset = new CFFCharset(false, 0, charsetArray);\n\n    const charStringsIndex = new CFFIndex();\n    charStringsIndex.add([0x8b, 0x0e]); // .notdef\n    for (i = 0; i < count; i++) {\n      charStringsIndex.add(glyphs[i]);\n    }\n    cff.charStrings = charStringsIndex;\n\n    const privateDict = new CFFPrivateDict();\n    privateDict.setByName(\"Subrs\", null); // placeholder\n    const fields = [\n      \"BlueValues\",\n      \"OtherBlues\",\n      \"FamilyBlues\",\n      \"FamilyOtherBlues\",\n      \"StemSnapH\",\n      \"StemSnapV\",\n      \"BlueShift\",\n      \"BlueFuzz\",\n      \"BlueScale\",\n      \"LanguageGroup\",\n      \"ExpansionFactor\",\n      \"ForceBold\",\n      \"StdHW\",\n      \"StdVW\",\n    ];\n    for (i = 0, ii = fields.length; i < ii; i++) {\n      const field = fields[i];\n      if (!(field in properties.privateData)) {\n        continue;\n      }\n      const value = properties.privateData[field];\n      if (Array.isArray(value)) {\n        // All of the private dictionary array data in CFF must be stored as\n        // \"delta-encoded\" numbers.\n        for (let j = value.length - 1; j > 0; j--) {\n          value[j] -= value[j - 1]; // ... difference from previous value\n        }\n      }\n      privateDict.setByName(field, value);\n    }\n    cff.topDict.privateDict = privateDict;\n\n    const subrIndex = new CFFIndex();\n    for (i = 0, ii = subrs.length; i < ii; i++) {\n      subrIndex.add(subrs[i]);\n    }\n    privateDict.subrsIndex = subrIndex;\n\n    const compiler = new CFFCompiler(cff);\n    return compiler.compile();\n  }\n}\n\nexport { Type1Font };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  assert,\n  bytesToString,\n  FONT_IDENTITY_MATRIX,\n  FormatError,\n  info,\n  shadow,\n  string32,\n  warn,\n} from \"../shared/util.js\";\nimport { CFFCompiler, CFFParser } from \"./cff_parser.js\";\nimport {\n  FontFlags,\n  MacStandardGlyphOrdering,\n  normalizeFontName,\n  recoverGlyphName,\n  SEAC_ANALYSIS_ENABLED,\n} from \"./fonts_utils.js\";\nimport {\n  getCharUnicodeCategory,\n  getUnicodeForGlyph,\n  getUnicodeRangeFor,\n  mapSpecialUnicodeValues,\n} from \"./unicode.js\";\nimport { getDingbatsGlyphsUnicode, getGlyphsUnicode } from \"./glyphlist.js\";\nimport {\n  getEncoding,\n  MacRomanEncoding,\n  StandardEncoding,\n  SymbolSetEncoding,\n  WinAnsiEncoding,\n  ZapfDingbatsEncoding,\n} from \"./encodings.js\";\nimport {\n  getGlyphMapForStandardFonts,\n  getNonStdFontMap,\n  getSerifFonts,\n  getStdFontMap,\n  getSupplementalGlyphMapForArialBlack,\n  getSupplementalGlyphMapForCalibri,\n} from \"./standard_fonts.js\";\nimport { IdentityToUnicodeMap, ToUnicodeMap } from \"./to_unicode_map.js\";\nimport { CFFFont } from \"./cff_font.js\";\nimport { FontRendererFactory } from \"./font_renderer.js\";\nimport { getFontBasicMetrics } from \"./metrics.js\";\nimport { GlyfTable } from \"./glyf.js\";\nimport { IdentityCMap } from \"./cmap.js\";\nimport { OpenTypeFileBuilder } from \"./opentype_file_builder.js\";\nimport { readUint32 } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\nimport { Type1Font } from \"./type1_font.js\";\n\n// Unicode Private Use Areas:\nconst PRIVATE_USE_AREAS = [\n  [0xe000, 0xf8ff], // BMP (0)\n  [0x100000, 0x10fffd], // PUP (16)\n];\n\n// PDF Glyph Space Units are one Thousandth of a TextSpace Unit\n// except for Type 3 fonts\nconst PDF_GLYPH_SPACE_UNITS = 1000;\n\nconst EXPORT_DATA_PROPERTIES = [\n  \"ascent\",\n  \"bbox\",\n  \"black\",\n  \"bold\",\n  \"charProcOperatorList\",\n  \"composite\",\n  \"cssFontInfo\",\n  \"data\",\n  \"defaultVMetrics\",\n  \"defaultWidth\",\n  \"descent\",\n  \"fallbackName\",\n  \"fontMatrix\",\n  \"isInvalidPDFjsFont\",\n  \"isType3Font\",\n  \"italic\",\n  \"loadedName\",\n  \"mimetype\",\n  \"missingFile\",\n  \"name\",\n  \"remeasure\",\n  \"subtype\",\n  \"systemFontInfo\",\n  \"type\",\n  \"vertical\",\n];\n\nconst EXPORT_DATA_EXTRA_PROPERTIES = [\n  \"cMap\",\n  \"defaultEncoding\",\n  \"differences\",\n  \"isMonospace\",\n  \"isSerifFont\",\n  \"isSymbolicFont\",\n  \"seacMap\",\n  \"toFontChar\",\n  \"toUnicode\",\n  \"vmetrics\",\n  \"widths\",\n];\n\nfunction adjustWidths(properties) {\n  if (!properties.fontMatrix) {\n    return;\n  }\n  if (properties.fontMatrix[0] === FONT_IDENTITY_MATRIX[0]) {\n    return;\n  }\n  // adjusting width to fontMatrix scale\n  const scale = 0.001 / properties.fontMatrix[0];\n  const glyphsWidths = properties.widths;\n  for (const glyph in glyphsWidths) {\n    glyphsWidths[glyph] *= scale;\n  }\n  properties.defaultWidth *= scale;\n}\n\nfunction adjustTrueTypeToUnicode(properties, isSymbolicFont, nameRecords) {\n  if (properties.isInternalFont) {\n    return;\n  }\n  if (properties.hasIncludedToUnicodeMap) {\n    return; // The font dictionary has a `ToUnicode` entry.\n  }\n  if (properties.hasEncoding) {\n    return; // The font dictionary has an `Encoding` entry.\n  }\n  if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n    return;\n  }\n  if (!isSymbolicFont) {\n    return; // A non-symbolic font should default to `StandardEncoding`.\n  }\n  if (nameRecords.length === 0) {\n    return;\n  }\n\n  // Try to infer if the fallback encoding should really be `WinAnsiEncoding`.\n  if (properties.defaultEncoding === WinAnsiEncoding) {\n    return;\n  }\n  for (const r of nameRecords) {\n    if (!isWinNameRecord(r)) {\n      return; // Not Windows, hence `WinAnsiEncoding` wouldn't make sense.\n    }\n  }\n  const encoding = WinAnsiEncoding;\n\n  const toUnicode = [],\n    glyphsUnicodeMap = getGlyphsUnicode();\n  for (const charCode in encoding) {\n    const glyphName = encoding[charCode];\n    if (glyphName === \"\") {\n      continue;\n    }\n    const unicode = glyphsUnicodeMap[glyphName];\n    if (unicode === undefined) {\n      continue;\n    }\n    toUnicode[charCode] = String.fromCharCode(unicode);\n  }\n  if (toUnicode.length > 0) {\n    properties.toUnicode.amend(toUnicode);\n  }\n}\n\nfunction adjustType1ToUnicode(properties, builtInEncoding) {\n  if (properties.isInternalFont) {\n    return;\n  }\n  if (properties.hasIncludedToUnicodeMap) {\n    return; // The font dictionary has a `ToUnicode` entry.\n  }\n  if (builtInEncoding === properties.defaultEncoding) {\n    return; // No point in trying to adjust `toUnicode` if the encodings match.\n  }\n  if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n    return;\n  }\n  const toUnicode = [],\n    glyphsUnicodeMap = getGlyphsUnicode();\n  for (const charCode in builtInEncoding) {\n    if (properties.hasEncoding) {\n      if (\n        properties.baseEncodingName ||\n        properties.differences[charCode] !== undefined\n      ) {\n        continue; // The font dictionary has an `Encoding`/`Differences` entry.\n      }\n    }\n    const glyphName = builtInEncoding[charCode];\n    const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n    if (unicode !== -1) {\n      toUnicode[charCode] = String.fromCharCode(unicode);\n    }\n  }\n  if (toUnicode.length > 0) {\n    properties.toUnicode.amend(toUnicode);\n  }\n}\n\n/**\n * NOTE: This function should only be called at the *end* of font-parsing,\n *       after e.g. `adjustType1ToUnicode` has run, to prevent any issues.\n */\nfunction amendFallbackToUnicode(properties) {\n  if (!properties.fallbackToUnicode) {\n    return;\n  }\n  if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n    return;\n  }\n  const toUnicode = [];\n  for (const charCode in properties.fallbackToUnicode) {\n    if (properties.toUnicode.has(charCode)) {\n      continue; // The font dictionary has a `ToUnicode` entry.\n    }\n    toUnicode[charCode] = properties.fallbackToUnicode[charCode];\n  }\n  if (toUnicode.length > 0) {\n    properties.toUnicode.amend(toUnicode);\n  }\n}\n\nclass Glyph {\n  constructor(\n    originalCharCode,\n    fontChar,\n    unicode,\n    accent,\n    width,\n    vmetric,\n    operatorListId,\n    isSpace,\n    isInFont\n  ) {\n    this.originalCharCode = originalCharCode;\n    this.fontChar = fontChar;\n    this.unicode = unicode;\n    this.accent = accent;\n    this.width = width;\n    this.vmetric = vmetric;\n    this.operatorListId = operatorListId;\n    this.isSpace = isSpace;\n    this.isInFont = isInFont;\n  }\n\n  /**\n   * This property, which is only used by `PartialEvaluator.getTextContent`,\n   * is purposely made non-serializable.\n   * @type {Object}\n   */\n  get category() {\n    return shadow(\n      this,\n      \"category\",\n      getCharUnicodeCategory(this.unicode),\n      /* nonSerializable = */ true\n    );\n  }\n}\n\nfunction int16(b0, b1) {\n  return (b0 << 8) + b1;\n}\n\nfunction writeSignedInt16(bytes, index, value) {\n  bytes[index + 1] = value;\n  bytes[index] = value >>> 8;\n}\n\nfunction signedInt16(b0, b1) {\n  const value = (b0 << 8) + b1;\n  return value & (1 << 15) ? value - 0x10000 : value;\n}\n\nfunction writeUint32(bytes, index, value) {\n  bytes[index + 3] = value & 0xff;\n  bytes[index + 2] = value >>> 8;\n  bytes[index + 1] = value >>> 16;\n  bytes[index] = value >>> 24;\n}\n\nfunction int32(b0, b1, b2, b3) {\n  return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n}\n\nfunction string16(value) {\n  if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n    assert(\n      typeof value === \"number\" && Math.abs(value) < 2 ** 16,\n      `string16: Unexpected input \"${value}\".`\n    );\n  }\n  return String.fromCharCode((value >> 8) & 0xff, value & 0xff);\n}\n\nfunction safeString16(value) {\n  if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n    assert(\n      typeof value === \"number\" && !Number.isNaN(value),\n      `safeString16: Unexpected input \"${value}\".`\n    );\n  }\n  // clamp value to the 16-bit int range\n  if (value > 0x7fff) {\n    value = 0x7fff;\n  } else if (value < -0x8000) {\n    value = -0x8000;\n  }\n  return String.fromCharCode((value >> 8) & 0xff, value & 0xff);\n}\n\nfunction isTrueTypeFile(file) {\n  const header = file.peekBytes(4);\n  return (\n    readUint32(header, 0) === 0x00010000 || bytesToString(header) === \"true\"\n  );\n}\n\nfunction isTrueTypeCollectionFile(file) {\n  const header = file.peekBytes(4);\n  return bytesToString(header) === \"ttcf\";\n}\n\nfunction isOpenTypeFile(file) {\n  const header = file.peekBytes(4);\n  return bytesToString(header) === \"OTTO\";\n}\n\nfunction isType1File(file) {\n  const header = file.peekBytes(2);\n  // All Type1 font programs must begin with the comment '%!' (0x25 + 0x21).\n  if (header[0] === 0x25 && header[1] === 0x21) {\n    return true;\n  }\n  // ... obviously some fonts violate that part of the specification,\n  // please refer to the comment in |Type1Font| below (pfb file header).\n  if (header[0] === 0x80 && header[1] === 0x01) {\n    return true;\n  }\n  return false;\n}\n\n/**\n * Compared to other font formats, the header in CFF files is not constant\n * but contains version numbers. To reduce the possibility of misclassifying\n * font files as CFF, it's recommended to check for other font formats first.\n */\nfunction isCFFFile(file) {\n  const header = file.peekBytes(4);\n  if (\n    /* major version, [1, 255] */ header[0] >= 1 &&\n    /* minor version, [0, 255]; header[1] */\n    /* header size, [0, 255]; header[2] */\n    /* offset(0) size, [1, 4] */ header[3] >= 1 &&\n    header[3] <= 4\n  ) {\n    return true;\n  }\n  return false;\n}\n\nfunction getFontFileType(file, { type, subtype, composite }) {\n  let fileType, fileSubtype;\n\n  if (isTrueTypeFile(file) || isTrueTypeCollectionFile(file)) {\n    fileType = composite ? \"CIDFontType2\" : \"TrueType\";\n  } else if (isOpenTypeFile(file)) {\n    fileType = composite ? \"CIDFontType2\" : \"OpenType\";\n  } else if (isType1File(file)) {\n    if (composite) {\n      fileType = \"CIDFontType0\";\n    } else {\n      fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n    }\n  } else if (isCFFFile(file)) {\n    if (composite) {\n      fileType = \"CIDFontType0\";\n      fileSubtype = \"CIDFontType0C\";\n    } else {\n      fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n      fileSubtype = \"Type1C\";\n    }\n  } else {\n    warn(\"getFontFileType: Unable to detect correct font file Type/Subtype.\");\n    fileType = type;\n    fileSubtype = subtype;\n  }\n\n  return [fileType, fileSubtype];\n}\n\nfunction applyStandardFontGlyphMap(map, glyphMap) {\n  for (const charCode in glyphMap) {\n    map[+charCode] = glyphMap[charCode];\n  }\n}\n\nfunction buildToFontChar(encoding, glyphsUnicodeMap, differences) {\n  const toFontChar = [];\n  let unicode;\n  for (let i = 0, ii = encoding.length; i < ii; i++) {\n    unicode = getUnicodeForGlyph(encoding[i], glyphsUnicodeMap);\n    if (unicode !== -1) {\n      toFontChar[i] = unicode;\n    }\n  }\n  for (const charCode in differences) {\n    unicode = getUnicodeForGlyph(differences[charCode], glyphsUnicodeMap);\n    if (unicode !== -1) {\n      toFontChar[+charCode] = unicode;\n    }\n  }\n  return toFontChar;\n}\n\n// Please refer to:\n//  - https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6name.html\nfunction isMacNameRecord(r) {\n  return r.platform === 1 && r.encoding === 0 && r.language === 0;\n}\n\n// Please refer to:\n//  - https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6name.html\n//  - https://learn.microsoft.com/en-us/typography/opentype/spec/name#windows-language-ids\nfunction isWinNameRecord(r) {\n  return r.platform === 3 && r.encoding === 1 && r.language === 0x409;\n}\n\nfunction convertCidString(charCode, cid, shouldThrow = false) {\n  switch (cid.length) {\n    case 1:\n      return cid.charCodeAt(0);\n    case 2:\n      return (cid.charCodeAt(0) << 8) | cid.charCodeAt(1);\n  }\n  const msg = `Unsupported CID string (charCode ${charCode}): \"${cid}\".`;\n  if (shouldThrow) {\n    throw new FormatError(msg);\n  }\n  warn(msg);\n  return cid;\n}\n\n/**\n * Rebuilds the char code to glyph ID map by moving all char codes to the\n * private use area. This is done to avoid issues with various problematic\n * unicode areas where either a glyph won't be drawn or is deformed by a\n * shaper.\n * @returns {Object} Two properties:\n * 'toFontChar' - maps original char codes(the value that will be read\n * from commands such as show text) to the char codes that will be used in the\n * font that we build\n * 'charCodeToGlyphId' - maps the new font char codes to glyph ids\n */\nfunction adjustMapping(charCodeToGlyphId, hasGlyph, newGlyphZeroId, toUnicode) {\n  const newMap = Object.create(null);\n  const toUnicodeExtraMap = new Map();\n  const toFontChar = [];\n  const usedGlyphIds = new Set();\n  let privateUseAreaIndex = 0;\n  const privateUseOffetStart = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n  let nextAvailableFontCharCode = privateUseOffetStart;\n  let privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n  const isInPrivateArea = code =>\n    (PRIVATE_USE_AREAS[0][0] <= code && code <= PRIVATE_USE_AREAS[0][1]) ||\n    (PRIVATE_USE_AREAS[1][0] <= code && code <= PRIVATE_USE_AREAS[1][1]);\n  for (let originalCharCode in charCodeToGlyphId) {\n    originalCharCode |= 0;\n    let glyphId = charCodeToGlyphId[originalCharCode];\n    // For missing glyphs don't create the mappings so the glyph isn't\n    // drawn.\n    if (!hasGlyph(glyphId)) {\n      continue;\n    }\n    if (nextAvailableFontCharCode > privateUseOffetEnd) {\n      privateUseAreaIndex++;\n      if (privateUseAreaIndex >= PRIVATE_USE_AREAS.length) {\n        warn(\"Ran out of space in font private use area.\");\n        break;\n      }\n      nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n      privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n    }\n    const fontCharCode = nextAvailableFontCharCode++;\n    if (glyphId === 0) {\n      glyphId = newGlyphZeroId;\n    }\n\n    // Fix for bug 1778484:\n    // The charcodes are moved into a private use area to fix some rendering\n    // issues (https://github.com/mozilla/pdf.js/pull/9340) but when printing\n    // to PDF the generated font will contain wrong chars. We can avoid that by\n    // adding the unicode to the cmap and the print backend will then map the\n    // glyph ids to the correct unicode.\n    let unicode = toUnicode.get(originalCharCode);\n    if (typeof unicode === \"string\") {\n      unicode = unicode.codePointAt(0);\n    }\n    if (unicode && !isInPrivateArea(unicode) && !usedGlyphIds.has(glyphId)) {\n      toUnicodeExtraMap.set(unicode, glyphId);\n      usedGlyphIds.add(glyphId);\n    }\n\n    newMap[fontCharCode] = glyphId;\n    toFontChar[originalCharCode] = fontCharCode;\n  }\n  return {\n    toFontChar,\n    charCodeToGlyphId: newMap,\n    toUnicodeExtraMap,\n    nextAvailableFontCharCode,\n  };\n}\n\nfunction getRanges(glyphs, toUnicodeExtraMap, numGlyphs) {\n  // Array.sort() sorts by characters, not numerically, so convert to an\n  // array of characters.\n  const codes = [];\n  for (const charCode in glyphs) {\n    // Remove an invalid glyph ID mappings to make OTS happy.\n    if (glyphs[charCode] >= numGlyphs) {\n      continue;\n    }\n    codes.push({ fontCharCode: charCode | 0, glyphId: glyphs[charCode] });\n  }\n  if (toUnicodeExtraMap) {\n    for (const [unicode, glyphId] of toUnicodeExtraMap) {\n      if (glyphId >= numGlyphs) {\n        continue;\n      }\n      codes.push({ fontCharCode: unicode, glyphId });\n    }\n  }\n  // Some fonts have zero glyphs and are used only for text selection, but\n  // there needs to be at least one to build a valid cmap table.\n  if (codes.length === 0) {\n    codes.push({ fontCharCode: 0, glyphId: 0 });\n  }\n  codes.sort(function fontGetRangesSort(a, b) {\n    return a.fontCharCode - b.fontCharCode;\n  });\n\n  // Split the sorted codes into ranges.\n  const ranges = [];\n  const length = codes.length;\n  for (let n = 0; n < length; ) {\n    const start = codes[n].fontCharCode;\n    const codeIndices = [codes[n].glyphId];\n    ++n;\n    let end = start;\n    while (n < length && end + 1 === codes[n].fontCharCode) {\n      codeIndices.push(codes[n].glyphId);\n      ++end;\n      ++n;\n      if (end === 0xffff) {\n        break;\n      }\n    }\n    ranges.push([start, end, codeIndices]);\n  }\n\n  return ranges;\n}\n\nfunction createCmapTable(glyphs, toUnicodeExtraMap, numGlyphs) {\n  const ranges = getRanges(glyphs, toUnicodeExtraMap, numGlyphs);\n  const numTables = ranges.at(-1)[1] > 0xffff ? 2 : 1;\n  let cmap =\n    \"\\x00\\x00\" + // version\n    string16(numTables) + // numTables\n    \"\\x00\\x03\" + // platformID\n    \"\\x00\\x01\" + // encodingID\n    string32(4 + numTables * 8); // start of the table record\n\n  let i, ii, j, jj;\n  for (i = ranges.length - 1; i >= 0; --i) {\n    if (ranges[i][0] <= 0xffff) {\n      break;\n    }\n  }\n  const bmpLength = i + 1;\n\n  if (ranges[i][0] < 0xffff && ranges[i][1] === 0xffff) {\n    ranges[i][1] = 0xfffe;\n  }\n  const trailingRangesCount = ranges[i][1] < 0xffff ? 1 : 0;\n  const segCount = bmpLength + trailingRangesCount;\n  const searchParams = OpenTypeFileBuilder.getSearchParams(segCount, 2);\n\n  // Fill up the 4 parallel arrays describing the segments.\n  let startCount = \"\";\n  let endCount = \"\";\n  let idDeltas = \"\";\n  let idRangeOffsets = \"\";\n  let glyphsIds = \"\";\n  let bias = 0;\n\n  let range, start, end, codes;\n  for (i = 0, ii = bmpLength; i < ii; i++) {\n    range = ranges[i];\n    start = range[0];\n    end = range[1];\n    startCount += string16(start);\n    endCount += string16(end);\n    codes = range[2];\n    let contiguous = true;\n    for (j = 1, jj = codes.length; j < jj; ++j) {\n      if (codes[j] !== codes[j - 1] + 1) {\n        contiguous = false;\n        break;\n      }\n    }\n    if (!contiguous) {\n      const offset = (segCount - i) * 2 + bias * 2;\n      bias += end - start + 1;\n\n      idDeltas += string16(0);\n      idRangeOffsets += string16(offset);\n\n      for (j = 0, jj = codes.length; j < jj; ++j) {\n        glyphsIds += string16(codes[j]);\n      }\n    } else {\n      const startCode = codes[0];\n\n      idDeltas += string16((startCode - start) & 0xffff);\n      idRangeOffsets += string16(0);\n    }\n  }\n\n  if (trailingRangesCount > 0) {\n    endCount += \"\\xFF\\xFF\";\n    startCount += \"\\xFF\\xFF\";\n    idDeltas += \"\\x00\\x01\";\n    idRangeOffsets += \"\\x00\\x00\";\n  }\n\n  const format314 =\n    \"\\x00\\x00\" + // language\n    string16(2 * segCount) +\n    string16(searchParams.range) +\n    string16(searchParams.entry) +\n    string16(searchParams.rangeShift) +\n    endCount +\n    \"\\x00\\x00\" +\n    startCount +\n    idDeltas +\n    idRangeOffsets +\n    glyphsIds;\n\n  let format31012 = \"\";\n  let header31012 = \"\";\n  if (numTables > 1) {\n    cmap +=\n      \"\\x00\\x03\" + // platformID\n      \"\\x00\\x0A\" + // encodingID\n      string32(4 + numTables * 8 + 4 + format314.length); // start of the table record\n    format31012 = \"\";\n    for (i = 0, ii = ranges.length; i < ii; i++) {\n      range = ranges[i];\n      start = range[0];\n      codes = range[2];\n      let code = codes[0];\n      for (j = 1, jj = codes.length; j < jj; ++j) {\n        if (codes[j] !== codes[j - 1] + 1) {\n          end = range[0] + j - 1;\n          format31012 +=\n            string32(start) + // startCharCode\n            string32(end) + // endCharCode\n            string32(code); // startGlyphID\n          start = end + 1;\n          code = codes[j];\n        }\n      }\n      format31012 +=\n        string32(start) + // startCharCode\n        string32(range[1]) + // endCharCode\n        string32(code); // startGlyphID\n    }\n    header31012 =\n      \"\\x00\\x0C\" + // format\n      \"\\x00\\x00\" + // reserved\n      string32(format31012.length + 16) + // length\n      \"\\x00\\x00\\x00\\x00\" + // language\n      string32(format31012.length / 12); // nGroups\n  }\n\n  return (\n    cmap +\n    \"\\x00\\x04\" + // format\n    string16(format314.length + 4) + // length\n    format314 +\n    header31012 +\n    format31012\n  );\n}\n\nfunction validateOS2Table(os2, file) {\n  file.pos = (file.start || 0) + os2.offset;\n  const version = file.getUint16();\n  // TODO verify all OS/2 tables fields, but currently we validate only those\n  // that give us issues\n  file.skip(60); // skipping type, misc sizes, panose, unicode ranges\n  const selection = file.getUint16();\n  if (version < 4 && selection & 0x0300) {\n    return false;\n  }\n  const firstChar = file.getUint16();\n  const lastChar = file.getUint16();\n  if (firstChar > lastChar) {\n    return false;\n  }\n  file.skip(6); // skipping sTypoAscender/Descender/LineGap\n  const usWinAscent = file.getUint16();\n  if (usWinAscent === 0) {\n    // makes font unreadable by windows\n    return false;\n  }\n\n  // OS/2 appears to be valid, resetting some fields\n  os2.data[8] = os2.data[9] = 0; // IE rejects fonts if fsType != 0\n  return true;\n}\n\nfunction createOS2Table(properties, charstrings, override) {\n  override ||= {\n    unitsPerEm: 0,\n    yMax: 0,\n    yMin: 0,\n    ascent: 0,\n    descent: 0,\n  };\n\n  let ulUnicodeRange1 = 0;\n  let ulUnicodeRange2 = 0;\n  let ulUnicodeRange3 = 0;\n  let ulUnicodeRange4 = 0;\n\n  let firstCharIndex = null;\n  let lastCharIndex = 0;\n  let position = -1;\n\n  if (charstrings) {\n    for (let code in charstrings) {\n      code |= 0;\n      if (firstCharIndex > code || !firstCharIndex) {\n        firstCharIndex = code;\n      }\n      if (lastCharIndex < code) {\n        lastCharIndex = code;\n      }\n\n      position = getUnicodeRangeFor(code, position);\n      if (position < 32) {\n        ulUnicodeRange1 |= 1 << position;\n      } else if (position < 64) {\n        ulUnicodeRange2 |= 1 << (position - 32);\n      } else if (position < 96) {\n        ulUnicodeRange3 |= 1 << (position - 64);\n      } else if (position < 123) {\n        ulUnicodeRange4 |= 1 << (position - 96);\n      } else {\n        throw new FormatError(\n          \"Unicode ranges Bits > 123 are reserved for internal usage\"\n        );\n      }\n    }\n    if (lastCharIndex > 0xffff) {\n      // OS2 only supports a 16 bit int. The spec says if supplementary\n      // characters are used the field should just be set to 0xFFFF.\n      lastCharIndex = 0xffff;\n    }\n  } else {\n    // TODO\n    firstCharIndex = 0;\n    lastCharIndex = 255;\n  }\n\n  const bbox = properties.bbox || [0, 0, 0, 0];\n  const unitsPerEm =\n    override.unitsPerEm ||\n    1 / (properties.fontMatrix || FONT_IDENTITY_MATRIX)[0];\n\n  // if the font units differ to the PDF glyph space units\n  // then scale up the values\n  const scale = properties.ascentScaled\n    ? 1.0\n    : unitsPerEm / PDF_GLYPH_SPACE_UNITS;\n\n  const typoAscent =\n    override.ascent || Math.round(scale * (properties.ascent || bbox[3]));\n  let typoDescent =\n    override.descent || Math.round(scale * (properties.descent || bbox[1]));\n  if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) {\n    typoDescent = -typoDescent; // fixing incorrect descent\n  }\n  const winAscent = override.yMax || typoAscent;\n  const winDescent = -override.yMin || -typoDescent;\n\n  return (\n    \"\\x00\\x03\" + // version\n    \"\\x02\\x24\" + // xAvgCharWidth\n    \"\\x01\\xF4\" + // usWeightClass\n    \"\\x00\\x05\" + // usWidthClass\n    \"\\x00\\x00\" + // fstype (0 to let the font loads via font-face on IE)\n    \"\\x02\\x8A\" + // ySubscriptXSize\n    \"\\x02\\xBB\" + // ySubscriptYSize\n    \"\\x00\\x00\" + // ySubscriptXOffset\n    \"\\x00\\x8C\" + // ySubscriptYOffset\n    \"\\x02\\x8A\" + // ySuperScriptXSize\n    \"\\x02\\xBB\" + // ySuperScriptYSize\n    \"\\x00\\x00\" + // ySuperScriptXOffset\n    \"\\x01\\xDF\" + // ySuperScriptYOffset\n    \"\\x00\\x31\" + // yStrikeOutSize\n    \"\\x01\\x02\" + // yStrikeOutPosition\n    \"\\x00\\x00\" + // sFamilyClass\n    \"\\x00\\x00\\x06\" +\n    String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) +\n    \"\\x00\\x00\\x00\\x00\\x00\\x00\" + // Panose\n    string32(ulUnicodeRange1) + // ulUnicodeRange1 (Bits 0-31)\n    string32(ulUnicodeRange2) + // ulUnicodeRange2 (Bits 32-63)\n    string32(ulUnicodeRange3) + // ulUnicodeRange3 (Bits 64-95)\n    string32(ulUnicodeRange4) + // ulUnicodeRange4 (Bits 96-127)\n    \"\\x2A\\x32\\x31\\x2A\" + // achVendID\n    string16(properties.italicAngle ? 1 : 0) + // fsSelection\n    string16(firstCharIndex || properties.firstChar) + // usFirstCharIndex\n    string16(lastCharIndex || properties.lastChar) + // usLastCharIndex\n    string16(typoAscent) + // sTypoAscender\n    string16(typoDescent) + // sTypoDescender\n    \"\\x00\\x64\" + // sTypoLineGap (7%-10% of the unitsPerEM value)\n    string16(winAscent) + // usWinAscent\n    string16(winDescent) + // usWinDescent\n    \"\\x00\\x00\\x00\\x00\" + // ulCodePageRange1 (Bits 0-31)\n    \"\\x00\\x00\\x00\\x00\" + // ulCodePageRange2 (Bits 32-63)\n    string16(properties.xHeight) + // sxHeight\n    string16(properties.capHeight) + // sCapHeight\n    string16(0) + // usDefaultChar\n    string16(firstCharIndex || properties.firstChar) + // usBreakChar\n    \"\\x00\\x03\"\n  ); // usMaxContext\n}\n\nfunction createPostTable(properties) {\n  const angle = Math.floor(properties.italicAngle * 2 ** 16);\n  return (\n    \"\\x00\\x03\\x00\\x00\" + // Version number\n    string32(angle) + // italicAngle\n    \"\\x00\\x00\" + // underlinePosition\n    \"\\x00\\x00\" + // underlineThickness\n    string32(properties.fixedPitch ? 1 : 0) + // isFixedPitch\n    \"\\x00\\x00\\x00\\x00\" + // minMemType42\n    \"\\x00\\x00\\x00\\x00\" + // maxMemType42\n    \"\\x00\\x00\\x00\\x00\" + // minMemType1\n    \"\\x00\\x00\\x00\\x00\"\n  ); // maxMemType1\n}\n\nfunction createPostscriptName(name) {\n  // See https://docs.microsoft.com/en-us/typography/opentype/spec/recom#name.\n  return name.replaceAll(/[^\\x21-\\x7E]|[[\\](){}<>/%]/g, \"\").slice(0, 63);\n}\n\nfunction createNameTable(name, proto) {\n  if (!proto) {\n    proto = [[], []]; // no strings and unicode strings\n  }\n\n  const strings = [\n    proto[0][0] || \"Original licence\", // 0.Copyright\n    proto[0][1] || name, // 1.Font family\n    proto[0][2] || \"Unknown\", // 2.Font subfamily (font weight)\n    proto[0][3] || \"uniqueID\", // 3.Unique ID\n    proto[0][4] || name, // 4.Full font name\n    proto[0][5] || \"Version 0.11\", // 5.Version\n    proto[0][6] || createPostscriptName(name), // 6.Postscript name\n    proto[0][7] || \"Unknown\", // 7.Trademark\n    proto[0][8] || \"Unknown\", // 8.Manufacturer\n    proto[0][9] || \"Unknown\", // 9.Designer\n  ];\n\n  // Mac want 1-byte per character strings while Windows want\n  // 2-bytes per character, so duplicate the names table\n  const stringsUnicode = [];\n  let i, ii, j, jj, str;\n  for (i = 0, ii = strings.length; i < ii; i++) {\n    str = proto[1][i] || strings[i];\n\n    const strBufUnicode = [];\n    for (j = 0, jj = str.length; j < jj; j++) {\n      strBufUnicode.push(string16(str.charCodeAt(j)));\n    }\n    stringsUnicode.push(strBufUnicode.join(\"\"));\n  }\n\n  const names = [strings, stringsUnicode];\n  const platforms = [\"\\x00\\x01\", \"\\x00\\x03\"];\n  const encodings = [\"\\x00\\x00\", \"\\x00\\x01\"];\n  const languages = [\"\\x00\\x00\", \"\\x04\\x09\"];\n\n  const namesRecordCount = strings.length * platforms.length;\n  let nameTable =\n    \"\\x00\\x00\" + // format\n    string16(namesRecordCount) + // Number of names Record\n    string16(namesRecordCount * 12 + 6); // Storage\n\n  // Build the name records field\n  let strOffset = 0;\n  for (i = 0, ii = platforms.length; i < ii; i++) {\n    const strs = names[i];\n    for (j = 0, jj = strs.length; j < jj; j++) {\n      str = strs[j];\n      const nameRecord =\n        platforms[i] + // platform ID\n        encodings[i] + // encoding ID\n        languages[i] + // language ID\n        string16(j) + // name ID\n        string16(str.length) +\n        string16(strOffset);\n      nameTable += nameRecord;\n      strOffset += str.length;\n    }\n  }\n\n  nameTable += strings.join(\"\") + stringsUnicode.join(\"\");\n  return nameTable;\n}\n\n/**\n * 'Font' is the class the outside world should use, it encapsulate all the font\n * decoding logics whatever type it is (assuming the font type is supported).\n */\nclass Font {\n  constructor(name, file, properties) {\n    this.name = name;\n    this.psName = null;\n    this.mimetype = null;\n    this.disableFontFace = false;\n\n    this.loadedName = properties.loadedName;\n    this.isType3Font = properties.isType3Font;\n    this.missingFile = false;\n    this.cssFontInfo = properties.cssFontInfo;\n\n    this._charsCache = Object.create(null);\n    this._glyphCache = Object.create(null);\n\n    let isSerifFont = !!(properties.flags & FontFlags.Serif);\n    // Fallback to checking the font name, in order to improve text-selection,\n    // since the /Flags-entry is often wrong (fixes issue13845.pdf).\n    if (!isSerifFont && !properties.isSimulatedFlags) {\n      const baseName = name.replaceAll(/[,_]/g, \"-\").split(\"-\")[0],\n        serifFonts = getSerifFonts();\n      for (const namePart of baseName.split(\"+\")) {\n        if (serifFonts[namePart]) {\n          isSerifFont = true;\n          break;\n        }\n      }\n    }\n    this.isSerifFont = isSerifFont;\n\n    this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n    this.isMonospace = !!(properties.flags & FontFlags.FixedPitch);\n\n    let { type, subtype } = properties;\n    this.type = type;\n    this.subtype = subtype;\n    this.systemFontInfo = properties.systemFontInfo;\n\n    const matches = name.match(/^InvalidPDFjsFont_(.*)_\\d+$/);\n    this.isInvalidPDFjsFont = !!matches;\n    if (this.isInvalidPDFjsFont) {\n      this.fallbackName = matches[1];\n    } else if (this.isMonospace) {\n      this.fallbackName = \"monospace\";\n    } else if (this.isSerifFont) {\n      this.fallbackName = \"serif\";\n    } else {\n      this.fallbackName = \"sans-serif\";\n    }\n\n    if (this.systemFontInfo?.guessFallback) {\n      // Once the fallback name is guessed, we don't want to guess it again.\n      this.systemFontInfo.guessFallback = false;\n      this.systemFontInfo.css += `,${this.fallbackName}`;\n    }\n\n    this.differences = properties.differences;\n    this.widths = properties.widths;\n    this.defaultWidth = properties.defaultWidth;\n    this.composite = properties.composite;\n    this.cMap = properties.cMap;\n    this.capHeight = properties.capHeight / PDF_GLYPH_SPACE_UNITS;\n    this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS;\n    this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS;\n    this.lineHeight = this.ascent - this.descent;\n    this.fontMatrix = properties.fontMatrix;\n    this.bbox = properties.bbox;\n    this.defaultEncoding = properties.defaultEncoding;\n\n    this.toUnicode = properties.toUnicode;\n    this.toFontChar = [];\n\n    if (properties.type === \"Type3\") {\n      for (let charCode = 0; charCode < 256; charCode++) {\n        this.toFontChar[charCode] =\n          this.differences[charCode] || properties.defaultEncoding[charCode];\n      }\n      return;\n    }\n\n    this.cidEncoding = properties.cidEncoding || \"\";\n    this.vertical = !!properties.vertical;\n    if (this.vertical) {\n      this.vmetrics = properties.vmetrics;\n      this.defaultVMetrics = properties.defaultVMetrics;\n    }\n\n    if (!file || file.isEmpty) {\n      if (file) {\n        // Some bad PDF generators will include empty font files,\n        // attempting to recover by assuming that no file exists.\n        warn('Font file is empty in \"' + name + '\" (' + this.loadedName + \")\");\n      }\n      this.fallbackToSystemFont(properties);\n      return;\n    }\n\n    // Parse the font file to determine the correct type/subtype, rather than\n    // relying on the (often incorrect) data in the font dictionary; (see e.g.\n    //  issue6782.pdf, issue7598.pdf, and issue9949.pdf).\n    [type, subtype] = getFontFileType(file, properties);\n\n    if (type !== this.type || subtype !== this.subtype) {\n      info(\n        \"Inconsistent font file Type/SubType, expected: \" +\n          `${this.type}/${this.subtype} but found: ${type}/${subtype}.`\n      );\n    }\n\n    let data;\n    try {\n      switch (type) {\n        case \"MMType1\":\n          info(\"MMType1 font (\" + name + \"), falling back to Type1.\");\n        /* falls through */\n        case \"Type1\":\n        case \"CIDFontType0\":\n          this.mimetype = \"font/opentype\";\n\n          const cff =\n            subtype === \"Type1C\" || subtype === \"CIDFontType0C\"\n              ? new CFFFont(file, properties)\n              : new Type1Font(name, file, properties);\n\n          adjustWidths(properties);\n\n          // Wrap the CFF data inside an OTF font file\n          data = this.convert(name, cff, properties);\n          break;\n\n        case \"OpenType\":\n        case \"TrueType\":\n        case \"CIDFontType2\":\n          this.mimetype = \"font/opentype\";\n\n          // Repair the TrueType file. It is can be damaged in the point of\n          // view of the sanitizer\n          data = this.checkAndRepair(name, file, properties);\n          if (this.isOpenType) {\n            adjustWidths(properties);\n\n            type = \"OpenType\";\n          }\n          break;\n\n        default:\n          throw new FormatError(`Font ${type} is not supported`);\n      }\n    } catch (e) {\n      warn(e);\n      this.fallbackToSystemFont(properties);\n      return;\n    }\n\n    amendFallbackToUnicode(properties);\n    this.data = data;\n\n    // Transfer some properties again that could change during font conversion\n    this.type = type;\n    this.subtype = subtype;\n    this.fontMatrix = properties.fontMatrix;\n    this.widths = properties.widths;\n    this.defaultWidth = properties.defaultWidth;\n    this.toUnicode = properties.toUnicode;\n    this.seacMap = properties.seacMap;\n  }\n\n  get renderer() {\n    const renderer = FontRendererFactory.create(this, SEAC_ANALYSIS_ENABLED);\n    return shadow(this, \"renderer\", renderer);\n  }\n\n  exportData(extraProperties = false) {\n    const exportDataProperties = extraProperties\n      ? [...EXPORT_DATA_PROPERTIES, ...EXPORT_DATA_EXTRA_PROPERTIES]\n      : EXPORT_DATA_PROPERTIES;\n\n    const data = Object.create(null);\n    let property, value;\n    for (property of exportDataProperties) {\n      value = this[property];\n      // Ignore properties that haven't been explicitly set.\n      if (value !== undefined) {\n        data[property] = value;\n      }\n    }\n    return data;\n  }\n\n  fallbackToSystemFont(properties) {\n    this.missingFile = true;\n    // The file data is not specified. Trying to fix the font name\n    // to be used with the canvas.font.\n    const { name, type } = this;\n    let fontName = normalizeFontName(name);\n    const stdFontMap = getStdFontMap(),\n      nonStdFontMap = getNonStdFontMap();\n    const isStandardFont = !!stdFontMap[fontName];\n    const isMappedToStandardFont = !!(\n      nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]\n    );\n\n    fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;\n\n    const fontBasicMetricsMap = getFontBasicMetrics();\n    const metrics = fontBasicMetricsMap[fontName];\n    if (metrics) {\n      if (isNaN(this.ascent)) {\n        this.ascent = metrics.ascent / PDF_GLYPH_SPACE_UNITS;\n      }\n      if (isNaN(this.descent)) {\n        this.descent = metrics.descent / PDF_GLYPH_SPACE_UNITS;\n      }\n      if (isNaN(this.capHeight)) {\n        this.capHeight = metrics.capHeight / PDF_GLYPH_SPACE_UNITS;\n      }\n    }\n\n    this.bold = /bold/gi.test(fontName);\n    this.italic = /oblique|italic/gi.test(fontName);\n\n    // Use 'name' instead of 'fontName' here because the original\n    // name ArialBlack for example will be replaced by Helvetica.\n    this.black = /Black/g.test(name);\n\n    // Use 'name' instead of 'fontName' here because the original\n    // name ArialNarrow for example will be replaced by Helvetica.\n    const isNarrow = /Narrow/g.test(name);\n\n    // if at least one width is present, remeasure all chars when exists\n    this.remeasure =\n      (!isStandardFont || isNarrow) && Object.keys(this.widths).length > 0;\n    if (\n      (isStandardFont || isMappedToStandardFont) &&\n      type === \"CIDFontType2\" &&\n      this.cidEncoding.startsWith(\"Identity-\")\n    ) {\n      const cidToGidMap = properties.cidToGidMap;\n      // Standard fonts might be embedded as CID font without glyph mapping.\n      // Building one based on GlyphMapForStandardFonts.\n      const map = [];\n      applyStandardFontGlyphMap(map, getGlyphMapForStandardFonts());\n\n      if (/Arial-?Black/i.test(name)) {\n        applyStandardFontGlyphMap(map, getSupplementalGlyphMapForArialBlack());\n      } else if (/Calibri/i.test(name)) {\n        applyStandardFontGlyphMap(map, getSupplementalGlyphMapForCalibri());\n      }\n\n      // Always update the glyph mapping with the `cidToGidMap` when it exists\n      // (fixes issue12418_reduced.pdf).\n      if (cidToGidMap) {\n        for (const charCode in map) {\n          const cid = map[charCode];\n          if (cidToGidMap[cid] !== undefined) {\n            map[+charCode] = cidToGidMap[cid];\n          }\n        }\n        // When the /CIDToGIDMap is \"incomplete\", fallback to the included\n        // /ToUnicode-map regardless of its encoding (fixes issue11915.pdf).\n        if (\n          cidToGidMap.length !== this.toUnicode.length &&\n          properties.hasIncludedToUnicodeMap &&\n          this.toUnicode instanceof IdentityToUnicodeMap\n        ) {\n          this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n            const cid = map[charCode];\n            if (cidToGidMap[cid] === undefined) {\n              map[+charCode] = unicodeCharCode;\n            }\n          });\n        }\n      }\n\n      if (!(this.toUnicode instanceof IdentityToUnicodeMap)) {\n        this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n          map[+charCode] = unicodeCharCode;\n        });\n      }\n      this.toFontChar = map;\n      this.toUnicode = new ToUnicodeMap(map);\n    } else if (/Symbol/i.test(fontName)) {\n      this.toFontChar = buildToFontChar(\n        SymbolSetEncoding,\n        getGlyphsUnicode(),\n        this.differences\n      );\n    } else if (/Dingbats/i.test(fontName)) {\n      this.toFontChar = buildToFontChar(\n        ZapfDingbatsEncoding,\n        getDingbatsGlyphsUnicode(),\n        this.differences\n      );\n    } else if (isStandardFont) {\n      const map = buildToFontChar(\n        this.defaultEncoding,\n        getGlyphsUnicode(),\n        this.differences\n      );\n\n      if (\n        type === \"CIDFontType2\" &&\n        !this.cidEncoding.startsWith(\"Identity-\") &&\n        !(this.toUnicode instanceof IdentityToUnicodeMap)\n      ) {\n        this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n          map[+charCode] = unicodeCharCode;\n        });\n      }\n      this.toFontChar = map;\n    } else {\n      const glyphsUnicodeMap = getGlyphsUnicode();\n      const map = [];\n      this.toUnicode.forEach((charCode, unicodeCharCode) => {\n        if (!this.composite) {\n          const glyphName =\n            this.differences[charCode] || this.defaultEncoding[charCode];\n          const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n          if (unicode !== -1) {\n            unicodeCharCode = unicode;\n          }\n        }\n        map[+charCode] = unicodeCharCode;\n      });\n\n      // Attempt to improve the glyph mapping for (some) composite fonts that\n      // appear to lack meaningful ToUnicode data.\n      if (this.composite && this.toUnicode instanceof IdentityToUnicodeMap) {\n        if (/Tahoma|Verdana/i.test(name)) {\n          // Fixes issue15719.pdf and issue11242_reduced.pdf.\n          applyStandardFontGlyphMap(map, getGlyphMapForStandardFonts());\n        }\n      }\n      this.toFontChar = map;\n    }\n\n    amendFallbackToUnicode(properties);\n    this.loadedName = fontName.split(\"-\")[0];\n  }\n\n  checkAndRepair(name, font, properties) {\n    const VALID_TABLES = [\n      \"OS/2\",\n      \"cmap\",\n      \"head\",\n      \"hhea\",\n      \"hmtx\",\n      \"maxp\",\n      \"name\",\n      \"post\",\n      \"loca\",\n      \"glyf\",\n      \"fpgm\",\n      \"prep\",\n      \"cvt \",\n      \"CFF \",\n    ];\n\n    function readTables(file, numTables) {\n      const tables = Object.create(null);\n      tables[\"OS/2\"] = null;\n      tables.cmap = null;\n      tables.head = null;\n      tables.hhea = null;\n      tables.hmtx = null;\n      tables.maxp = null;\n      tables.name = null;\n      tables.post = null;\n\n      for (let i = 0; i < numTables; i++) {\n        const table = readTableEntry(file);\n        if (!VALID_TABLES.includes(table.tag)) {\n          continue; // skipping table if it's not a required or optional table\n        }\n        if (table.length === 0) {\n          continue; // skipping empty tables\n        }\n        tables[table.tag] = table;\n      }\n      return tables;\n    }\n\n    function readTableEntry(file) {\n      const tag = file.getString(4);\n\n      const checksum = file.getInt32() >>> 0;\n      const offset = file.getInt32() >>> 0;\n      const length = file.getInt32() >>> 0;\n\n      // Read the table associated data\n      const previousPosition = file.pos;\n      file.pos = file.start || 0;\n      file.skip(offset);\n      const data = file.getBytes(length);\n      file.pos = previousPosition;\n\n      if (tag === \"head\") {\n        // clearing checksum adjustment\n        data[8] = data[9] = data[10] = data[11] = 0;\n        data[17] |= 0x20; // Set font optimized for cleartype flag.\n      }\n\n      return {\n        tag,\n        checksum,\n        length,\n        offset,\n        data,\n      };\n    }\n\n    function readOpenTypeHeader(ttf) {\n      return {\n        version: ttf.getString(4),\n        numTables: ttf.getUint16(),\n        searchRange: ttf.getUint16(),\n        entrySelector: ttf.getUint16(),\n        rangeShift: ttf.getUint16(),\n      };\n    }\n\n    function readTrueTypeCollectionHeader(ttc) {\n      const ttcTag = ttc.getString(4);\n      assert(ttcTag === \"ttcf\", \"Must be a TrueType Collection font.\");\n\n      const majorVersion = ttc.getUint16();\n      const minorVersion = ttc.getUint16();\n      const numFonts = ttc.getInt32() >>> 0;\n      const offsetTable = [];\n      for (let i = 0; i < numFonts; i++) {\n        offsetTable.push(ttc.getInt32() >>> 0);\n      }\n\n      const header = {\n        ttcTag,\n        majorVersion,\n        minorVersion,\n        numFonts,\n        offsetTable,\n      };\n      switch (majorVersion) {\n        case 1:\n          return header;\n        case 2:\n          header.dsigTag = ttc.getInt32() >>> 0;\n          header.dsigLength = ttc.getInt32() >>> 0;\n          header.dsigOffset = ttc.getInt32() >>> 0;\n          return header;\n      }\n      throw new FormatError(\n        `Invalid TrueType Collection majorVersion: ${majorVersion}.`\n      );\n    }\n\n    function readTrueTypeCollectionData(ttc, fontName) {\n      const { numFonts, offsetTable } = readTrueTypeCollectionHeader(ttc);\n      const fontNameParts = fontName.split(\"+\");\n      let fallbackData;\n\n      for (let i = 0; i < numFonts; i++) {\n        ttc.pos = (ttc.start || 0) + offsetTable[i];\n        const potentialHeader = readOpenTypeHeader(ttc);\n        const potentialTables = readTables(ttc, potentialHeader.numTables);\n\n        if (!potentialTables.name) {\n          throw new FormatError(\n            'TrueType Collection font must contain a \"name\" table.'\n          );\n        }\n        const [nameTable] = readNameTable(potentialTables.name);\n\n        for (let j = 0, jj = nameTable.length; j < jj; j++) {\n          for (let k = 0, kk = nameTable[j].length; k < kk; k++) {\n            const nameEntry = nameTable[j][k]?.replaceAll(/\\s/g, \"\");\n            if (!nameEntry) {\n              continue;\n            }\n            if (nameEntry === fontName) {\n              return {\n                header: potentialHeader,\n                tables: potentialTables,\n              };\n            }\n            if (fontNameParts.length < 2) {\n              continue;\n            }\n            for (const part of fontNameParts) {\n              if (nameEntry === part) {\n                fallbackData = {\n                  name: part,\n                  header: potentialHeader,\n                  tables: potentialTables,\n                };\n              }\n            }\n          }\n        }\n      }\n      if (fallbackData) {\n        warn(\n          `TrueType Collection does not contain \"${fontName}\" font, ` +\n            `falling back to \"${fallbackData.name}\" font instead.`\n        );\n        return {\n          header: fallbackData.header,\n          tables: fallbackData.tables,\n        };\n      }\n      throw new FormatError(\n        `TrueType Collection does not contain \"${fontName}\" font.`\n      );\n    }\n\n    /**\n     * Read the appropriate subtable from the cmap according to 9.6.6.4 from\n     * PDF spec\n     */\n    function readCmapTable(cmap, file, isSymbolicFont, hasEncoding) {\n      if (!cmap) {\n        warn(\"No cmap table available.\");\n        return {\n          platformId: -1,\n          encodingId: -1,\n          mappings: [],\n          hasShortCmap: false,\n        };\n      }\n      let segment;\n      let start = (file.start || 0) + cmap.offset;\n      file.pos = start;\n\n      file.skip(2); // version\n      const numTables = file.getUint16();\n\n      let potentialTable;\n      let canBreak = false;\n      // There's an order of preference in terms of which cmap subtable to\n      // use:\n      // - non-symbolic fonts the preference is a 3,1 table then a 1,0 table\n      // - symbolic fonts the preference is a 3,0 table then a 1,0 table\n      // The following takes advantage of the fact that the tables are sorted\n      // to work.\n      for (let i = 0; i < numTables; i++) {\n        const platformId = file.getUint16();\n        const encodingId = file.getUint16();\n        const offset = file.getInt32() >>> 0;\n        let useTable = false;\n\n        // Sometimes there are multiple of the same type of table. Default\n        // to choosing the first table and skip the rest.\n        if (\n          potentialTable?.platformId === platformId &&\n          potentialTable?.encodingId === encodingId\n        ) {\n          continue;\n        }\n\n        if (\n          platformId === 0 &&\n          (encodingId === /* Unicode Default */ 0 ||\n            encodingId === /* Unicode 1.1 */ 1 ||\n            encodingId === /* Unicode BMP */ 3)\n        ) {\n          useTable = true;\n          // Continue the loop since there still may be a higher priority\n          // table.\n        } else if (platformId === 1 && encodingId === 0) {\n          useTable = true;\n          // Continue the loop since there still may be a higher priority\n          // table.\n        } else if (\n          platformId === 3 &&\n          encodingId === 1 &&\n          (hasEncoding || !potentialTable)\n        ) {\n          useTable = true;\n          if (!isSymbolicFont) {\n            canBreak = true;\n          }\n        } else if (isSymbolicFont && platformId === 3 && encodingId === 0) {\n          useTable = true;\n\n          let correctlySorted = true;\n          if (i < numTables - 1) {\n            const nextBytes = file.peekBytes(2),\n              nextPlatformId = int16(nextBytes[0], nextBytes[1]);\n            if (nextPlatformId < platformId) {\n              correctlySorted = false;\n            }\n          }\n          if (correctlySorted) {\n            canBreak = true;\n          }\n        }\n\n        if (useTable) {\n          potentialTable = {\n            platformId,\n            encodingId,\n            offset,\n          };\n        }\n        if (canBreak) {\n          break;\n        }\n      }\n\n      if (potentialTable) {\n        file.pos = start + potentialTable.offset;\n      }\n      if (!potentialTable || file.peekByte() === -1) {\n        warn(\"Could not find a preferred cmap table.\");\n        return {\n          platformId: -1,\n          encodingId: -1,\n          mappings: [],\n          hasShortCmap: false,\n        };\n      }\n\n      const format = file.getUint16();\n      let hasShortCmap = false;\n      const mappings = [];\n      let j, glyphId;\n\n      // TODO(mack): refactor this cmap subtable reading logic out\n      if (format === 0) {\n        file.skip(2 + 2); // length + language\n\n        for (j = 0; j < 256; j++) {\n          const index = file.getByte();\n          if (!index) {\n            continue;\n          }\n          mappings.push({\n            charCode: j,\n            glyphId: index,\n          });\n        }\n        hasShortCmap = true;\n      } else if (format === 2) {\n        file.skip(2 + 2); // length + language\n\n        const subHeaderKeys = [];\n        let maxSubHeaderKey = 0;\n        // Read subHeaderKeys. If subHeaderKeys[i] === 0, then i is a\n        // single-byte character. Otherwise, i is the first byte of a\n        // multi-byte character, and the value is 8*index into\n        // subHeaders.\n        for (let i = 0; i < 256; i++) {\n          const subHeaderKey = file.getUint16() >> 3;\n          subHeaderKeys.push(subHeaderKey);\n          maxSubHeaderKey = Math.max(subHeaderKey, maxSubHeaderKey);\n        }\n        // Read subHeaders. The number of entries is determined\n        // dynamically based on the subHeaderKeys found above.\n        const subHeaders = [];\n        for (let i = 0; i <= maxSubHeaderKey; i++) {\n          subHeaders.push({\n            firstCode: file.getUint16(),\n            entryCount: file.getUint16(),\n            idDelta: signedInt16(file.getByte(), file.getByte()),\n            idRangePos: file.pos + file.getUint16(),\n          });\n        }\n        for (let i = 0; i < 256; i++) {\n          if (subHeaderKeys[i] === 0) {\n            // i is a single-byte code.\n            file.pos = subHeaders[0].idRangePos + 2 * i;\n            glyphId = file.getUint16();\n            mappings.push({\n              charCode: i,\n              glyphId,\n            });\n          } else {\n            // i is the first byte of a two-byte code.\n            const s = subHeaders[subHeaderKeys[i]];\n            for (j = 0; j < s.entryCount; j++) {\n              const charCode = (i << 8) + j + s.firstCode;\n              file.pos = s.idRangePos + 2 * j;\n              glyphId = file.getUint16();\n              if (glyphId !== 0) {\n                glyphId = (glyphId + s.idDelta) % 65536;\n              }\n              mappings.push({\n                charCode,\n                glyphId,\n              });\n            }\n          }\n        }\n      } else if (format === 4) {\n        file.skip(2 + 2); // length + language\n\n        // re-creating the table in format 4 since the encoding\n        // might be changed\n        const segCount = file.getUint16() >> 1;\n        file.skip(6); // skipping range fields\n        const segments = [];\n        let segIndex;\n        for (segIndex = 0; segIndex < segCount; segIndex++) {\n          segments.push({ end: file.getUint16() });\n        }\n        file.skip(2);\n        for (segIndex = 0; segIndex < segCount; segIndex++) {\n          segments[segIndex].start = file.getUint16();\n        }\n\n        for (segIndex = 0; segIndex < segCount; segIndex++) {\n          segments[segIndex].delta = file.getUint16();\n        }\n\n        let offsetsCount = 0,\n          offsetIndex;\n        for (segIndex = 0; segIndex < segCount; segIndex++) {\n          segment = segments[segIndex];\n          const rangeOffset = file.getUint16();\n          if (!rangeOffset) {\n            segment.offsetIndex = -1;\n            continue;\n          }\n\n          offsetIndex = (rangeOffset >> 1) - (segCount - segIndex);\n          segment.offsetIndex = offsetIndex;\n          offsetsCount = Math.max(\n            offsetsCount,\n            offsetIndex + segment.end - segment.start + 1\n          );\n        }\n\n        const offsets = [];\n        for (j = 0; j < offsetsCount; j++) {\n          offsets.push(file.getUint16());\n        }\n\n        for (segIndex = 0; segIndex < segCount; segIndex++) {\n          segment = segments[segIndex];\n          start = segment.start;\n          const end = segment.end;\n          const delta = segment.delta;\n          offsetIndex = segment.offsetIndex;\n\n          for (j = start; j <= end; j++) {\n            if (j === 0xffff) {\n              continue;\n            }\n\n            glyphId = offsetIndex < 0 ? j : offsets[offsetIndex + j - start];\n            glyphId = (glyphId + delta) & 0xffff;\n            mappings.push({\n              charCode: j,\n              glyphId,\n            });\n          }\n        }\n      } else if (format === 6) {\n        file.skip(2 + 2); // length + language\n\n        // Format 6 is a 2-bytes dense mapping, which means the font data\n        // lives glue together even if they are pretty far in the unicode\n        // table. (This looks weird, so I can have missed something), this\n        // works on Linux but seems to fails on Mac so let's rewrite the\n        // cmap table to a 3-1-4 style\n        const firstCode = file.getUint16();\n        const entryCount = file.getUint16();\n\n        for (j = 0; j < entryCount; j++) {\n          glyphId = file.getUint16();\n          const charCode = firstCode + j;\n\n          mappings.push({\n            charCode,\n            glyphId,\n          });\n        }\n      } else if (format === 12) {\n        file.skip(2 + 4 + 4); // reserved + length + language\n\n        const nGroups = file.getInt32() >>> 0;\n        for (j = 0; j < nGroups; j++) {\n          const startCharCode = file.getInt32() >>> 0;\n          const endCharCode = file.getInt32() >>> 0;\n          let glyphCode = file.getInt32() >>> 0;\n\n          for (\n            let charCode = startCharCode;\n            charCode <= endCharCode;\n            charCode++\n          ) {\n            mappings.push({\n              charCode,\n              glyphId: glyphCode++,\n            });\n          }\n        }\n      } else {\n        warn(\"cmap table has unsupported format: \" + format);\n        return {\n          platformId: -1,\n          encodingId: -1,\n          mappings: [],\n          hasShortCmap: false,\n        };\n      }\n\n      // removing duplicate entries\n      mappings.sort(function (a, b) {\n        return a.charCode - b.charCode;\n      });\n      for (let i = 1; i < mappings.length; i++) {\n        if (mappings[i - 1].charCode === mappings[i].charCode) {\n          mappings.splice(i, 1);\n          i--;\n        }\n      }\n\n      return {\n        platformId: potentialTable.platformId,\n        encodingId: potentialTable.encodingId,\n        mappings,\n        hasShortCmap,\n      };\n    }\n\n    function sanitizeMetrics(\n      file,\n      header,\n      metrics,\n      headTable,\n      numGlyphs,\n      dupFirstEntry\n    ) {\n      if (!header) {\n        if (metrics) {\n          metrics.data = null;\n        }\n        return;\n      }\n\n      file.pos = (file.start || 0) + header.offset;\n      file.pos += 4; // version\n      file.pos += 2; // ascent\n      file.pos += 2; // descent\n      file.pos += 2; // linegap\n      file.pos += 2; // adv_width_max\n      file.pos += 2; // min_sb1\n      file.pos += 2; // min_sb2\n      file.pos += 2; // max_extent\n      file.pos += 2; // caret_slope_rise\n      file.pos += 2; // caret_slope_run\n      const caretOffset = file.getUint16();\n      file.pos += 8; // reserved\n      file.pos += 2; // format\n      let numOfMetrics = file.getUint16();\n\n      if (caretOffset !== 0) {\n        const macStyle = int16(headTable.data[44], headTable.data[45]);\n        if (!(macStyle & 2)) {\n          // Suppress OTS warnings about the `caretOffset` in the hhea-table.\n          header.data[22] = 0;\n          header.data[23] = 0;\n        }\n      }\n\n      if (numOfMetrics > numGlyphs) {\n        info(\n          `The numOfMetrics (${numOfMetrics}) should not be ` +\n            `greater than the numGlyphs (${numGlyphs}).`\n        );\n        // Reduce numOfMetrics if it is greater than numGlyphs\n        numOfMetrics = numGlyphs;\n        header.data[34] = (numOfMetrics & 0xff00) >> 8;\n        header.data[35] = numOfMetrics & 0x00ff;\n      }\n\n      const numOfSidebearings = numGlyphs - numOfMetrics;\n      const numMissing =\n        numOfSidebearings - ((metrics.length - numOfMetrics * 4) >> 1);\n\n      if (numMissing > 0) {\n        // For each missing glyph, we set both the width and lsb to 0 (zero).\n        // Since we need to add two properties for each glyph, this explains\n        // the use of |numMissing * 2| when initializing the typed array.\n        const entries = new Uint8Array(metrics.length + numMissing * 2);\n        entries.set(metrics.data);\n        if (dupFirstEntry) {\n          // Set the sidebearing value of the duplicated glyph.\n          entries[metrics.length] = metrics.data[2];\n          entries[metrics.length + 1] = metrics.data[3];\n        }\n        metrics.data = entries;\n      }\n    }\n\n    function sanitizeGlyph(\n      source,\n      sourceStart,\n      sourceEnd,\n      dest,\n      destStart,\n      hintsValid\n    ) {\n      const glyphProfile = {\n        length: 0,\n        sizeOfInstructions: 0,\n      };\n      if (\n        sourceStart < 0 ||\n        sourceStart >= source.length ||\n        sourceEnd > source.length ||\n        sourceEnd - sourceStart <= 12\n      ) {\n        // If the offsets are wrong or the glyph is too small, remove it.\n        return glyphProfile;\n      }\n      const glyf = source.subarray(sourceStart, sourceEnd);\n\n      // Sanitize the glyph bounding box.\n      const xMin = signedInt16(glyf[2], glyf[3]);\n      const yMin = signedInt16(glyf[4], glyf[5]);\n      const xMax = signedInt16(glyf[6], glyf[7]);\n      const yMax = signedInt16(glyf[8], glyf[9]);\n\n      if (xMin > xMax) {\n        writeSignedInt16(glyf, 2, xMax);\n        writeSignedInt16(glyf, 6, xMin);\n      }\n      if (yMin > yMax) {\n        writeSignedInt16(glyf, 4, yMax);\n        writeSignedInt16(glyf, 8, yMin);\n      }\n\n      const contoursCount = signedInt16(glyf[0], glyf[1]);\n      if (contoursCount < 0) {\n        if (contoursCount < -1) {\n          // OTS doesn't like contour count to be less than -1.\n          // The glyph data offsets are very likely wrong and\n          // having something lower than -1, very likely, implies\n          // to have some garbage data.\n          return glyphProfile;\n        }\n        // complex glyph, writing as is\n        dest.set(glyf, destStart);\n        glyphProfile.length = glyf.length;\n        return glyphProfile;\n      }\n\n      let i,\n        j = 10,\n        flagsCount = 0;\n      for (i = 0; i < contoursCount; i++) {\n        const endPoint = (glyf[j] << 8) | glyf[j + 1];\n        flagsCount = endPoint + 1;\n        j += 2;\n      }\n      // skipping instructions\n      const instructionsStart = j;\n      const instructionsLength = (glyf[j] << 8) | glyf[j + 1];\n      glyphProfile.sizeOfInstructions = instructionsLength;\n      j += 2 + instructionsLength;\n      const instructionsEnd = j;\n      // validating flags\n      let coordinatesLength = 0;\n      for (i = 0; i < flagsCount; i++) {\n        const flag = glyf[j++];\n        if (flag & 0xc0) {\n          // reserved flags must be zero, cleaning up\n          glyf[j - 1] = flag & 0x3f;\n        }\n        let xLength = 2;\n        if (flag & 2) {\n          xLength = 1;\n        } else if (flag & 16) {\n          xLength = 0;\n        }\n        let yLength = 2;\n        if (flag & 4) {\n          yLength = 1;\n        } else if (flag & 32) {\n          yLength = 0;\n        }\n        const xyLength = xLength + yLength;\n        coordinatesLength += xyLength;\n        if (flag & 8) {\n          const repeat = glyf[j++];\n          if (repeat === 0) {\n            // The repeat count should be non-zero when the repeat flag is set.\n            glyf[j - 1] ^= 8;\n          }\n          i += repeat;\n          coordinatesLength += repeat * xyLength;\n        }\n      }\n      // glyph without coordinates will be rejected\n      if (coordinatesLength === 0) {\n        return glyphProfile;\n      }\n      let glyphDataLength = j + coordinatesLength;\n      if (glyphDataLength > glyf.length) {\n        // not enough data for coordinates\n        return glyphProfile;\n      }\n      if (!hintsValid && instructionsLength > 0) {\n        dest.set(glyf.subarray(0, instructionsStart), destStart);\n        dest.set([0, 0], destStart + instructionsStart);\n        dest.set(\n          glyf.subarray(instructionsEnd, glyphDataLength),\n          destStart + instructionsStart + 2\n        );\n        glyphDataLength -= instructionsLength;\n        if (glyf.length - glyphDataLength > 3) {\n          glyphDataLength = (glyphDataLength + 3) & ~3;\n        }\n        glyphProfile.length = glyphDataLength;\n        return glyphProfile;\n      }\n      if (glyf.length - glyphDataLength > 3) {\n        // truncating and aligning to 4 bytes the long glyph data\n        glyphDataLength = (glyphDataLength + 3) & ~3;\n        dest.set(glyf.subarray(0, glyphDataLength), destStart);\n        glyphProfile.length = glyphDataLength;\n        return glyphProfile;\n      }\n      // glyph data is fine\n      dest.set(glyf, destStart);\n      glyphProfile.length = glyf.length;\n      return glyphProfile;\n    }\n\n    function sanitizeHead(head, numGlyphs, locaLength) {\n      const data = head.data;\n\n      // Validate version:\n      // Should always be 0x00010000\n      const version = int32(data[0], data[1], data[2], data[3]);\n      if (version >> 16 !== 1) {\n        info(\"Attempting to fix invalid version in head table: \" + version);\n        data[0] = 0;\n        data[1] = 1;\n        data[2] = 0;\n        data[3] = 0;\n      }\n\n      const indexToLocFormat = int16(data[50], data[51]);\n      if (indexToLocFormat < 0 || indexToLocFormat > 1) {\n        info(\n          \"Attempting to fix invalid indexToLocFormat in head table: \" +\n            indexToLocFormat\n        );\n\n        // The value of indexToLocFormat should be 0 if the loca table\n        // consists of short offsets, and should be 1 if the loca table\n        // consists of long offsets.\n        //\n        // The number of entries in the loca table should be numGlyphs + 1.\n        //\n        // Using this information, we can work backwards to deduce if the\n        // size of each offset in the loca table, and thus figure out the\n        // appropriate value for indexToLocFormat.\n\n        const numGlyphsPlusOne = numGlyphs + 1;\n        if (locaLength === numGlyphsPlusOne << 1) {\n          // 0x0000 indicates the loca table consists of short offsets\n          data[50] = 0;\n          data[51] = 0;\n        } else if (locaLength === numGlyphsPlusOne << 2) {\n          // 0x0001 indicates the loca table consists of long offsets\n          data[50] = 0;\n          data[51] = 1;\n        } else {\n          throw new FormatError(\n            \"Could not fix indexToLocFormat: \" + indexToLocFormat\n          );\n        }\n      }\n    }\n\n    function sanitizeGlyphLocations(\n      loca,\n      glyf,\n      numGlyphs,\n      isGlyphLocationsLong,\n      hintsValid,\n      dupFirstEntry,\n      maxSizeOfInstructions\n    ) {\n      let itemSize, itemDecode, itemEncode;\n      if (isGlyphLocationsLong) {\n        itemSize = 4;\n        itemDecode = function fontItemDecodeLong(data, offset) {\n          return (\n            (data[offset] << 24) |\n            (data[offset + 1] << 16) |\n            (data[offset + 2] << 8) |\n            data[offset + 3]\n          );\n        };\n        itemEncode = function fontItemEncodeLong(data, offset, value) {\n          data[offset] = (value >>> 24) & 0xff;\n          data[offset + 1] = (value >> 16) & 0xff;\n          data[offset + 2] = (value >> 8) & 0xff;\n          data[offset + 3] = value & 0xff;\n        };\n      } else {\n        itemSize = 2;\n        itemDecode = function fontItemDecode(data, offset) {\n          return (data[offset] << 9) | (data[offset + 1] << 1);\n        };\n        itemEncode = function fontItemEncode(data, offset, value) {\n          data[offset] = (value >> 9) & 0xff;\n          data[offset + 1] = (value >> 1) & 0xff;\n        };\n      }\n      // The first glyph is duplicated.\n      const numGlyphsOut = dupFirstEntry ? numGlyphs + 1 : numGlyphs;\n      const locaDataSize = itemSize * (1 + numGlyphsOut);\n      // Resize loca table to account for duplicated glyph.\n      const locaData = new Uint8Array(locaDataSize);\n      locaData.set(loca.data.subarray(0, locaDataSize));\n      loca.data = locaData;\n      // removing the invalid glyphs\n      const oldGlyfData = glyf.data;\n      const oldGlyfDataLength = oldGlyfData.length;\n      const newGlyfData = new Uint8Array(oldGlyfDataLength);\n\n      // The spec says the offsets should be in ascending order, however\n      // this is not true for some fonts or they use the offset of 0 to mark a\n      // glyph as missing. OTS requires the offsets to be in order and not to\n      // be zero, so we must sort and rebuild the loca table and potentially\n      // re-arrange the glyf data.\n      let i, j;\n      const locaEntries = [];\n      // There are numGlyphs + 1 loca table entries.\n      for (i = 0, j = 0; i < numGlyphs + 1; i++, j += itemSize) {\n        let offset = itemDecode(locaData, j);\n        if (offset > oldGlyfDataLength) {\n          offset = oldGlyfDataLength;\n        }\n        locaEntries.push({\n          index: i,\n          offset,\n          endOffset: 0,\n        });\n      }\n      locaEntries.sort((a, b) => {\n        return a.offset - b.offset;\n      });\n      // Now the offsets are sorted, calculate the end offset of each glyph.\n      // The last loca entry's endOffset is not calculated since it's the end\n      // of the data and will be stored on the previous entry's endOffset.\n      for (i = 0; i < numGlyphs; i++) {\n        locaEntries[i].endOffset = locaEntries[i + 1].offset;\n      }\n      // Re-sort so glyphs aren't out of order.\n      locaEntries.sort((a, b) => {\n        return a.index - b.index;\n      });\n      // Calculate the endOffset of the \"first\" glyph correctly when there are\n      // *multiple* empty ones at the start of the data (fixes issue14618.pdf).\n      for (i = 0; i < numGlyphs; i++) {\n        const { offset, endOffset } = locaEntries[i];\n        if (offset !== 0 || endOffset !== 0) {\n          break;\n        }\n        const nextOffset = locaEntries[i + 1].offset;\n        if (nextOffset === 0) {\n          continue;\n        }\n        locaEntries[i].endOffset = nextOffset;\n        break;\n      }\n\n      const missingGlyphs = Object.create(null);\n      let writeOffset = 0;\n      itemEncode(locaData, 0, writeOffset);\n      for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) {\n        const glyphProfile = sanitizeGlyph(\n          oldGlyfData,\n          locaEntries[i].offset,\n          locaEntries[i].endOffset,\n          newGlyfData,\n          writeOffset,\n          hintsValid\n        );\n        const newLength = glyphProfile.length;\n        if (newLength === 0) {\n          missingGlyphs[i] = true;\n        }\n        if (glyphProfile.sizeOfInstructions > maxSizeOfInstructions) {\n          maxSizeOfInstructions = glyphProfile.sizeOfInstructions;\n        }\n        writeOffset += newLength;\n        itemEncode(locaData, j, writeOffset);\n      }\n\n      if (writeOffset === 0) {\n        // glyf table cannot be empty -- redoing the glyf and loca tables\n        // to have single glyph with one point\n        const simpleGlyph = new Uint8Array([\n          0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0,\n        ]);\n        for (i = 0, j = itemSize; i < numGlyphsOut; i++, j += itemSize) {\n          itemEncode(locaData, j, simpleGlyph.length);\n        }\n        glyf.data = simpleGlyph;\n      } else if (dupFirstEntry) {\n        // Browsers will not display a glyph at position 0. Typically glyph 0\n        // is notdef, but a number of fonts put a valid glyph there so it must\n        // be duplicated and appended.\n        const firstEntryLength = itemDecode(locaData, itemSize);\n        if (newGlyfData.length > firstEntryLength + writeOffset) {\n          glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset);\n        } else {\n          glyf.data = new Uint8Array(firstEntryLength + writeOffset);\n          glyf.data.set(newGlyfData.subarray(0, writeOffset));\n        }\n        glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset);\n        itemEncode(\n          loca.data,\n          locaData.length - itemSize,\n          writeOffset + firstEntryLength\n        );\n      } else {\n        glyf.data = newGlyfData.subarray(0, writeOffset);\n      }\n      return {\n        missingGlyphs,\n        maxSizeOfInstructions,\n      };\n    }\n\n    function readPostScriptTable(post, propertiesObj, maxpNumGlyphs) {\n      const start = (font.start || 0) + post.offset;\n      font.pos = start;\n\n      const length = post.length,\n        end = start + length;\n      const version = font.getInt32();\n      // skip rest to the tables\n      font.skip(28);\n\n      let glyphNames;\n      let valid = true;\n      let i;\n\n      switch (version) {\n        case 0x00010000:\n          glyphNames = MacStandardGlyphOrdering;\n          break;\n        case 0x00020000:\n          const numGlyphs = font.getUint16();\n          if (numGlyphs !== maxpNumGlyphs) {\n            valid = false;\n            break;\n          }\n          const glyphNameIndexes = [];\n          for (i = 0; i < numGlyphs; ++i) {\n            const index = font.getUint16();\n            if (index >= 32768) {\n              valid = false;\n              break;\n            }\n            glyphNameIndexes.push(index);\n          }\n          if (!valid) {\n            break;\n          }\n          const customNames = [],\n            strBuf = [];\n          while (font.pos < end) {\n            const stringLength = font.getByte();\n            strBuf.length = stringLength;\n            for (i = 0; i < stringLength; ++i) {\n              strBuf[i] = String.fromCharCode(font.getByte());\n            }\n            customNames.push(strBuf.join(\"\"));\n          }\n          glyphNames = [];\n          for (i = 0; i < numGlyphs; ++i) {\n            const j = glyphNameIndexes[i];\n            if (j < 258) {\n              glyphNames.push(MacStandardGlyphOrdering[j]);\n              continue;\n            }\n            glyphNames.push(customNames[j - 258]);\n          }\n          break;\n        case 0x00030000:\n          break;\n        default:\n          warn(\"Unknown/unsupported post table version \" + version);\n          valid = false;\n          if (propertiesObj.defaultEncoding) {\n            glyphNames = propertiesObj.defaultEncoding;\n          }\n          break;\n      }\n      propertiesObj.glyphNames = glyphNames;\n      return valid;\n    }\n\n    function readNameTable(nameTable) {\n      const start = (font.start || 0) + nameTable.offset;\n      font.pos = start;\n\n      const names = [[], []],\n        records = [];\n      const length = nameTable.length,\n        end = start + length;\n      const format = font.getUint16();\n      const FORMAT_0_HEADER_LENGTH = 6;\n      if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) {\n        // unsupported name table format or table \"too\" small\n        return [names, records];\n      }\n      const numRecords = font.getUint16();\n      const stringsStart = font.getUint16();\n      const NAME_RECORD_LENGTH = 12;\n      let i, ii;\n\n      for (i = 0; i < numRecords && font.pos + NAME_RECORD_LENGTH <= end; i++) {\n        const r = {\n          platform: font.getUint16(),\n          encoding: font.getUint16(),\n          language: font.getUint16(),\n          name: font.getUint16(),\n          length: font.getUint16(),\n          offset: font.getUint16(),\n        };\n        // using only Macintosh and Windows platform/encoding names\n        if (isMacNameRecord(r) || isWinNameRecord(r)) {\n          records.push(r);\n        }\n      }\n      for (i = 0, ii = records.length; i < ii; i++) {\n        const record = records[i];\n        if (record.length <= 0) {\n          continue; // Nothing to process, ignoring.\n        }\n        const pos = start + stringsStart + record.offset;\n        if (pos + record.length > end) {\n          continue; // outside of name table, ignoring\n        }\n        font.pos = pos;\n        const nameIndex = record.name;\n        if (record.encoding) {\n          // unicode\n          let str = \"\";\n          for (let j = 0, jj = record.length; j < jj; j += 2) {\n            str += String.fromCharCode(font.getUint16());\n          }\n          names[1][nameIndex] = str;\n        } else {\n          names[0][nameIndex] = font.getString(record.length);\n        }\n      }\n      return [names, records];\n    }\n\n    // prettier-ignore\n    const TTOpsStackDeltas = [\n      0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5,\n      -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1,\n      1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1,\n      0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2,\n      0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1,\n      -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1,\n      -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1,\n      -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2];\n    // 0xC0-DF == -1 and 0xE0-FF == -2\n\n    function sanitizeTTProgram(table, ttContext) {\n      let data = table.data;\n      let i = 0,\n        j,\n        n,\n        b,\n        funcId,\n        pc,\n        lastEndf = 0,\n        lastDeff = 0;\n      const stack = [];\n      const callstack = [];\n      const functionsCalled = [];\n      let tooComplexToFollowFunctions = ttContext.tooComplexToFollowFunctions;\n      let inFDEF = false,\n        ifLevel = 0,\n        inELSE = 0;\n      for (let ii = data.length; i < ii; ) {\n        const op = data[i++];\n        // The TrueType instruction set docs can be found at\n        // https://developer.apple.com/fonts/TTRefMan/RM05/Chap5.html\n        if (op === 0x40) {\n          // NPUSHB - pushes n bytes\n          n = data[i++];\n          if (inFDEF || inELSE) {\n            i += n;\n          } else {\n            for (j = 0; j < n; j++) {\n              stack.push(data[i++]);\n            }\n          }\n        } else if (op === 0x41) {\n          // NPUSHW - pushes n words\n          n = data[i++];\n          if (inFDEF || inELSE) {\n            i += n * 2;\n          } else {\n            for (j = 0; j < n; j++) {\n              b = data[i++];\n              stack.push((b << 8) | data[i++]);\n            }\n          }\n        } else if ((op & 0xf8) === 0xb0) {\n          // PUSHB - pushes bytes\n          n = op - 0xb0 + 1;\n          if (inFDEF || inELSE) {\n            i += n;\n          } else {\n            for (j = 0; j < n; j++) {\n              stack.push(data[i++]);\n            }\n          }\n        } else if ((op & 0xf8) === 0xb8) {\n          // PUSHW - pushes words\n          n = op - 0xb8 + 1;\n          if (inFDEF || inELSE) {\n            i += n * 2;\n          } else {\n            for (j = 0; j < n; j++) {\n              b = data[i++];\n              stack.push((b << 8) | data[i++]);\n            }\n          }\n        } else if (op === 0x2b && !tooComplexToFollowFunctions) {\n          // CALL\n          if (!inFDEF && !inELSE) {\n            // collecting information about which functions are used\n            funcId = stack.at(-1);\n            if (isNaN(funcId)) {\n              info(\"TT: CALL empty stack (or invalid entry).\");\n            } else {\n              ttContext.functionsUsed[funcId] = true;\n              if (funcId in ttContext.functionsStackDeltas) {\n                const newStackLength =\n                  stack.length + ttContext.functionsStackDeltas[funcId];\n                if (newStackLength < 0) {\n                  warn(\"TT: CALL invalid functions stack delta.\");\n                  ttContext.hintsValid = false;\n                  return;\n                }\n                stack.length = newStackLength;\n              } else if (\n                funcId in ttContext.functionsDefined &&\n                !functionsCalled.includes(funcId)\n              ) {\n                callstack.push({ data, i, stackTop: stack.length - 1 });\n                functionsCalled.push(funcId);\n                pc = ttContext.functionsDefined[funcId];\n                if (!pc) {\n                  warn(\"TT: CALL non-existent function\");\n                  ttContext.hintsValid = false;\n                  return;\n                }\n                data = pc.data;\n                i = pc.i;\n              }\n            }\n          }\n        } else if (op === 0x2c && !tooComplexToFollowFunctions) {\n          // FDEF\n          if (inFDEF || inELSE) {\n            warn(\"TT: nested FDEFs not allowed\");\n            tooComplexToFollowFunctions = true;\n          }\n          inFDEF = true;\n          // collecting information about which functions are defined\n          lastDeff = i;\n          funcId = stack.pop();\n          ttContext.functionsDefined[funcId] = { data, i };\n        } else if (op === 0x2d) {\n          // ENDF - end of function\n          if (inFDEF) {\n            inFDEF = false;\n            lastEndf = i;\n          } else {\n            pc = callstack.pop();\n            if (!pc) {\n              warn(\"TT: ENDF bad stack\");\n              ttContext.hintsValid = false;\n              return;\n            }\n            funcId = functionsCalled.pop();\n            data = pc.data;\n            i = pc.i;\n            ttContext.functionsStackDeltas[funcId] = stack.length - pc.stackTop;\n          }\n        } else if (op === 0x89) {\n          // IDEF - instruction definition\n          if (inFDEF || inELSE) {\n            warn(\"TT: nested IDEFs not allowed\");\n            tooComplexToFollowFunctions = true;\n          }\n          inFDEF = true;\n          // recording it as a function to track ENDF\n          lastDeff = i;\n        } else if (op === 0x58) {\n          // IF\n          ++ifLevel;\n        } else if (op === 0x1b) {\n          // ELSE\n          inELSE = ifLevel;\n        } else if (op === 0x59) {\n          // EIF\n          if (inELSE === ifLevel) {\n            inELSE = 0;\n          }\n          --ifLevel;\n        } else if (op === 0x1c) {\n          // JMPR\n          if (!inFDEF && !inELSE) {\n            const offset = stack.at(-1);\n            // only jumping forward to prevent infinite loop\n            if (offset > 0) {\n              i += offset - 1;\n            }\n          }\n        }\n        // Adjusting stack not extactly, but just enough to get function id\n        if (!inFDEF && !inELSE) {\n          let stackDelta = 0;\n          if (op <= 0x8e) {\n            stackDelta = TTOpsStackDeltas[op];\n          } else if (op >= 0xc0 && op <= 0xdf) {\n            stackDelta = -1;\n          } else if (op >= 0xe0) {\n            stackDelta = -2;\n          }\n          if (op >= 0x71 && op <= 0x75) {\n            n = stack.pop();\n            if (!isNaN(n)) {\n              stackDelta = -n * 2;\n            }\n          }\n          while (stackDelta < 0 && stack.length > 0) {\n            stack.pop();\n            stackDelta++;\n          }\n          while (stackDelta > 0) {\n            stack.push(NaN); // pushing any number into stack\n            stackDelta--;\n          }\n        }\n      }\n      ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions;\n      const content = [data];\n      if (i > data.length) {\n        content.push(new Uint8Array(i - data.length));\n      }\n      if (lastDeff > lastEndf) {\n        warn(\"TT: complementing a missing function tail\");\n        // new function definition started, but not finished\n        // complete function by [CLEAR, ENDF]\n        content.push(new Uint8Array([0x22, 0x2d]));\n      }\n      foldTTTable(table, content);\n    }\n\n    function checkInvalidFunctions(ttContext, maxFunctionDefs) {\n      if (ttContext.tooComplexToFollowFunctions) {\n        return;\n      }\n      if (ttContext.functionsDefined.length > maxFunctionDefs) {\n        warn(\"TT: more functions defined than expected\");\n        ttContext.hintsValid = false;\n        return;\n      }\n      for (let j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) {\n        if (j > maxFunctionDefs) {\n          warn(\"TT: invalid function id: \" + j);\n          ttContext.hintsValid = false;\n          return;\n        }\n        if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) {\n          warn(\"TT: undefined function: \" + j);\n          ttContext.hintsValid = false;\n          return;\n        }\n      }\n    }\n\n    function foldTTTable(table, content) {\n      if (content.length > 1) {\n        // concatenating the content items\n        let newLength = 0;\n        let j, jj;\n        for (j = 0, jj = content.length; j < jj; j++) {\n          newLength += content[j].length;\n        }\n        newLength = (newLength + 3) & ~3;\n        const result = new Uint8Array(newLength);\n        let pos = 0;\n        for (j = 0, jj = content.length; j < jj; j++) {\n          result.set(content[j], pos);\n          pos += content[j].length;\n        }\n        table.data = result;\n        table.length = newLength;\n      }\n    }\n\n    function sanitizeTTPrograms(fpgm, prep, cvt, maxFunctionDefs) {\n      const ttContext = {\n        functionsDefined: [],\n        functionsUsed: [],\n        functionsStackDeltas: [],\n        tooComplexToFollowFunctions: false,\n        hintsValid: true,\n      };\n      if (fpgm) {\n        sanitizeTTProgram(fpgm, ttContext);\n      }\n      if (prep) {\n        sanitizeTTProgram(prep, ttContext);\n      }\n      if (fpgm) {\n        checkInvalidFunctions(ttContext, maxFunctionDefs);\n      }\n      if (cvt && cvt.length & 1) {\n        const cvtData = new Uint8Array(cvt.length + 1);\n        cvtData.set(cvt.data);\n        cvt.data = cvtData;\n      }\n      return ttContext.hintsValid;\n    }\n\n    // The following steps modify the original font data, making copy\n    font = new Stream(new Uint8Array(font.getBytes()));\n\n    let header, tables;\n    if (isTrueTypeCollectionFile(font)) {\n      const ttcData = readTrueTypeCollectionData(font, this.name);\n      header = ttcData.header;\n      tables = ttcData.tables;\n    } else {\n      header = readOpenTypeHeader(font);\n      tables = readTables(font, header.numTables);\n    }\n    let cff, cffFile;\n\n    const isTrueType = !tables[\"CFF \"];\n    if (!isTrueType) {\n      const isComposite =\n        properties.composite &&\n        (properties.cidToGidMap?.length > 0 ||\n          !(properties.cMap instanceof IdentityCMap));\n      // OpenType font (skip composite fonts with non-default glyph mapping).\n      if (\n        (header.version === \"OTTO\" && !isComposite) ||\n        !tables.head ||\n        !tables.hhea ||\n        !tables.maxp ||\n        !tables.post\n      ) {\n        // No major tables: throwing everything at `CFFFont`.\n        cffFile = new Stream(tables[\"CFF \"].data);\n        cff = new CFFFont(cffFile, properties);\n\n        adjustWidths(properties);\n\n        return this.convert(name, cff, properties);\n      }\n\n      delete tables.glyf;\n      delete tables.loca;\n      delete tables.fpgm;\n      delete tables.prep;\n      delete tables[\"cvt \"];\n      this.isOpenType = true;\n    } else {\n      if (!tables.loca) {\n        throw new FormatError('Required \"loca\" table is not found');\n      }\n      if (!tables.glyf) {\n        warn('Required \"glyf\" table is not found -- trying to recover.');\n        // Note: We use `sanitizeGlyphLocations` to add dummy glyf data below.\n        tables.glyf = {\n          tag: \"glyf\",\n          data: new Uint8Array(0),\n        };\n      }\n      this.isOpenType = false;\n    }\n\n    if (!tables.maxp) {\n      throw new FormatError('Required \"maxp\" table is not found');\n    }\n\n    font.pos = (font.start || 0) + tables.maxp.offset;\n    let version = font.getInt32();\n    const numGlyphs = font.getUint16();\n\n    if (version !== 0x00010000 && version !== 0x00005000) {\n      // https://learn.microsoft.com/en-us/typography/opentype/spec/maxp\n      if (tables.maxp.length === 6) {\n        version = 0x0005000;\n      } else if (tables.maxp.length >= 32) {\n        version = 0x00010000;\n      } else {\n        throw new FormatError(`\"maxp\" table has a wrong version number`);\n      }\n      writeUint32(tables.maxp.data, 0, version);\n    }\n\n    if (properties.scaleFactors?.length === numGlyphs && isTrueType) {\n      const { scaleFactors } = properties;\n      const isGlyphLocationsLong = int16(\n        tables.head.data[50],\n        tables.head.data[51]\n      );\n\n      const glyphs = new GlyfTable({\n        glyfTable: tables.glyf.data,\n        isGlyphLocationsLong,\n        locaTable: tables.loca.data,\n        numGlyphs,\n      });\n      glyphs.scale(scaleFactors);\n\n      const { glyf, loca, isLocationLong } = glyphs.write();\n      tables.glyf.data = glyf;\n      tables.loca.data = loca;\n\n      if (isLocationLong !== !!isGlyphLocationsLong) {\n        tables.head.data[50] = 0;\n        tables.head.data[51] = isLocationLong ? 1 : 0;\n      }\n\n      const metrics = tables.hmtx.data;\n\n      for (let i = 0; i < numGlyphs; i++) {\n        const j = 4 * i;\n        const advanceWidth = Math.round(\n          scaleFactors[i] * int16(metrics[j], metrics[j + 1])\n        );\n        metrics[j] = (advanceWidth >> 8) & 0xff;\n        metrics[j + 1] = advanceWidth & 0xff;\n        const lsb = Math.round(\n          scaleFactors[i] * signedInt16(metrics[j + 2], metrics[j + 3])\n        );\n        writeSignedInt16(metrics, j + 2, lsb);\n      }\n    }\n\n    // Glyph 0 is duplicated and appended.\n    let numGlyphsOut = numGlyphs + 1;\n    let dupFirstEntry = true;\n    if (numGlyphsOut > 0xffff) {\n      dupFirstEntry = false;\n      numGlyphsOut = numGlyphs;\n      warn(\"Not enough space in glyfs to duplicate first glyph.\");\n    }\n    let maxFunctionDefs = 0;\n    let maxSizeOfInstructions = 0;\n    if (version >= 0x00010000 && tables.maxp.length >= 32) {\n      // maxZones can be invalid\n      font.pos += 8;\n      const maxZones = font.getUint16();\n      if (maxZones > 2) {\n        // reset to 2 if font has invalid maxZones\n        tables.maxp.data[14] = 0;\n        tables.maxp.data[15] = 2;\n      }\n      font.pos += 4;\n      maxFunctionDefs = font.getUint16();\n      font.pos += 4;\n      maxSizeOfInstructions = font.getUint16();\n    }\n\n    tables.maxp.data[4] = numGlyphsOut >> 8;\n    tables.maxp.data[5] = numGlyphsOut & 255;\n\n    const hintsValid = sanitizeTTPrograms(\n      tables.fpgm,\n      tables.prep,\n      tables[\"cvt \"],\n      maxFunctionDefs\n    );\n    if (!hintsValid) {\n      delete tables.fpgm;\n      delete tables.prep;\n      delete tables[\"cvt \"];\n    }\n\n    // Ensure the hmtx table contains the advance width and\n    // sidebearings information for numGlyphs in the maxp table\n    sanitizeMetrics(\n      font,\n      tables.hhea,\n      tables.hmtx,\n      tables.head,\n      numGlyphsOut,\n      dupFirstEntry\n    );\n\n    if (!tables.head) {\n      throw new FormatError('Required \"head\" table is not found');\n    }\n\n    sanitizeHead(tables.head, numGlyphs, isTrueType ? tables.loca.length : 0);\n\n    let missingGlyphs = Object.create(null);\n    if (isTrueType) {\n      const isGlyphLocationsLong = int16(\n        tables.head.data[50],\n        tables.head.data[51]\n      );\n      const glyphsInfo = sanitizeGlyphLocations(\n        tables.loca,\n        tables.glyf,\n        numGlyphs,\n        isGlyphLocationsLong,\n        hintsValid,\n        dupFirstEntry,\n        maxSizeOfInstructions\n      );\n      missingGlyphs = glyphsInfo.missingGlyphs;\n\n      // Some fonts have incorrect maxSizeOfInstructions values, so we use\n      // the computed value instead.\n      if (version >= 0x00010000 && tables.maxp.length >= 32) {\n        tables.maxp.data[26] = glyphsInfo.maxSizeOfInstructions >> 8;\n        tables.maxp.data[27] = glyphsInfo.maxSizeOfInstructions & 255;\n      }\n    }\n    if (!tables.hhea) {\n      throw new FormatError('Required \"hhea\" table is not found');\n    }\n\n    // Sanitizer reduces the glyph advanceWidth to the maxAdvanceWidth\n    // Sometimes it's 0. That needs to be fixed\n    if (tables.hhea.data[10] === 0 && tables.hhea.data[11] === 0) {\n      tables.hhea.data[10] = 0xff;\n      tables.hhea.data[11] = 0xff;\n    }\n\n    // Extract some more font properties from the OpenType head and\n    // hhea tables; yMin and descent value are always negative.\n    const metricsOverride = {\n      unitsPerEm: int16(tables.head.data[18], tables.head.data[19]),\n      yMax: signedInt16(tables.head.data[42], tables.head.data[43]),\n      yMin: signedInt16(tables.head.data[38], tables.head.data[39]),\n      ascent: signedInt16(tables.hhea.data[4], tables.hhea.data[5]),\n      descent: signedInt16(tables.hhea.data[6], tables.hhea.data[7]),\n      lineGap: signedInt16(tables.hhea.data[8], tables.hhea.data[9]),\n    };\n\n    // PDF FontDescriptor metrics lie -- using data from actual font.\n    this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm;\n    this.descent = metricsOverride.descent / metricsOverride.unitsPerEm;\n    this.lineGap = metricsOverride.lineGap / metricsOverride.unitsPerEm;\n\n    if (this.cssFontInfo?.lineHeight) {\n      this.lineHeight = this.cssFontInfo.metrics.lineHeight;\n      this.lineGap = this.cssFontInfo.metrics.lineGap;\n    } else {\n      this.lineHeight = this.ascent - this.descent + this.lineGap;\n    }\n\n    // The 'post' table has glyphs names.\n    if (tables.post) {\n      readPostScriptTable(tables.post, properties, numGlyphs);\n    }\n\n    // The original 'post' table is not needed, replace it.\n    tables.post = {\n      tag: \"post\",\n      data: createPostTable(properties),\n    };\n\n    const charCodeToGlyphId = [];\n\n    // Helper function to try to skip mapping of empty glyphs.\n    function hasGlyph(glyphId) {\n      return !missingGlyphs[glyphId];\n    }\n\n    if (properties.composite) {\n      const cidToGidMap = properties.cidToGidMap || [];\n      const isCidToGidMapEmpty = cidToGidMap.length === 0;\n\n      properties.cMap.forEach(function (charCode, cid) {\n        if (typeof cid === \"string\") {\n          cid = convertCidString(charCode, cid, /* shouldThrow = */ true);\n        }\n        if (cid > 0xffff) {\n          throw new FormatError(\"Max size of CID is 65,535\");\n        }\n        let glyphId = -1;\n        if (isCidToGidMapEmpty) {\n          glyphId = cid;\n        } else if (cidToGidMap[cid] !== undefined) {\n          glyphId = cidToGidMap[cid];\n        }\n\n        if (glyphId >= 0 && glyphId < numGlyphs && hasGlyph(glyphId)) {\n          charCodeToGlyphId[charCode] = glyphId;\n        }\n      });\n    } else {\n      // Most of the following logic in this code branch is based on the\n      // 9.6.6.4 of the PDF spec.\n      const cmapTable = readCmapTable(\n        tables.cmap,\n        font,\n        this.isSymbolicFont,\n        properties.hasEncoding\n      );\n      const cmapPlatformId = cmapTable.platformId;\n      const cmapEncodingId = cmapTable.encodingId;\n      const cmapMappings = cmapTable.mappings;\n      let baseEncoding = [],\n        forcePostTable = false;\n      if (\n        properties.hasEncoding &&\n        (properties.baseEncodingName === \"MacRomanEncoding\" ||\n          properties.baseEncodingName === \"WinAnsiEncoding\")\n      ) {\n        baseEncoding = getEncoding(properties.baseEncodingName);\n      }\n\n      // If the font has an encoding and is not symbolic then follow the rules\n      // in section 9.6.6.4 of the spec on how to map 3,1 and 1,0 cmaps.\n      if (\n        properties.hasEncoding &&\n        !this.isSymbolicFont &&\n        ((cmapPlatformId === 3 && cmapEncodingId === 1) ||\n          (cmapPlatformId === 1 && cmapEncodingId === 0))\n      ) {\n        const glyphsUnicodeMap = getGlyphsUnicode();\n        for (let charCode = 0; charCode < 256; charCode++) {\n          let glyphName;\n          if (this.differences[charCode] !== undefined) {\n            glyphName = this.differences[charCode];\n          } else if (baseEncoding.length && baseEncoding[charCode] !== \"\") {\n            glyphName = baseEncoding[charCode];\n          } else {\n            glyphName = StandardEncoding[charCode];\n          }\n          if (!glyphName) {\n            continue;\n          }\n          // Ensure that non-standard glyph names are resolved to valid ones.\n          const standardGlyphName = recoverGlyphName(\n            glyphName,\n            glyphsUnicodeMap\n          );\n\n          let unicodeOrCharCode;\n          if (cmapPlatformId === 3 && cmapEncodingId === 1) {\n            unicodeOrCharCode = glyphsUnicodeMap[standardGlyphName];\n          } else if (cmapPlatformId === 1 && cmapEncodingId === 0) {\n            // TODO: the encoding needs to be updated with mac os table.\n            unicodeOrCharCode = MacRomanEncoding.indexOf(standardGlyphName);\n          }\n\n          if (unicodeOrCharCode === undefined) {\n            // Not a valid glyph name, fallback to using the /ToUnicode map\n            // when no post-table exists (fixes issue13316_reduced.pdf).\n            if (\n              !properties.glyphNames &&\n              properties.hasIncludedToUnicodeMap &&\n              !(this.toUnicode instanceof IdentityToUnicodeMap)\n            ) {\n              const unicode = this.toUnicode.get(charCode);\n              if (unicode) {\n                unicodeOrCharCode = unicode.codePointAt(0);\n              }\n            }\n\n            if (unicodeOrCharCode === undefined) {\n              continue; // No valid glyph mapping found.\n            }\n          }\n\n          for (const mapping of cmapMappings) {\n            if (mapping.charCode !== unicodeOrCharCode) {\n              continue;\n            }\n            charCodeToGlyphId[charCode] = mapping.glyphId;\n            break;\n          }\n        }\n      } else if (cmapPlatformId === 0) {\n        // Default Unicode semantics, use the charcodes as is.\n        for (const mapping of cmapMappings) {\n          charCodeToGlyphId[mapping.charCode] = mapping.glyphId;\n        }\n        // Always prefer the BaseEncoding/Differences arrays, when they exist\n        // (fixes issue13433.pdf).\n        forcePostTable = true;\n      } else {\n        // When there is only a (1, 0) cmap table, the char code is a single\n        // byte and it is used directly as the char code.\n\n        // When a (3, 0) cmap table is present, it is used instead but the\n        // spec has special rules for char codes in the range of 0xF000 to\n        // 0xF0FF and it says the (3, 0) table should map the values from\n        // the (1, 0) table by prepending 0xF0 to the char codes. To reverse\n        // this, the upper bits of the char code are cleared, but only for the\n        // special range since some PDFs have char codes outside of this range\n        // (e.g. 0x2013) which when masked would overwrite other values in the\n        // cmap.\n        for (const mapping of cmapMappings) {\n          let charCode = mapping.charCode;\n          if (\n            cmapPlatformId === 3 &&\n            charCode >= 0xf000 &&\n            charCode <= 0xf0ff\n          ) {\n            charCode &= 0xff;\n          }\n          charCodeToGlyphId[charCode] = mapping.glyphId;\n        }\n      }\n\n      // Last, try to map any missing charcodes using the post table.\n      if (\n        properties.glyphNames &&\n        (baseEncoding.length || this.differences.length)\n      ) {\n        for (let i = 0; i < 256; ++i) {\n          if (!forcePostTable && charCodeToGlyphId[i] !== undefined) {\n            continue;\n          }\n          const glyphName = this.differences[i] || baseEncoding[i];\n          if (!glyphName) {\n            continue;\n          }\n          const glyphId = properties.glyphNames.indexOf(glyphName);\n          if (glyphId > 0 && hasGlyph(glyphId)) {\n            charCodeToGlyphId[i] = glyphId;\n          }\n        }\n      }\n    }\n\n    if (charCodeToGlyphId.length === 0) {\n      // defines at least one glyph\n      charCodeToGlyphId[0] = 0;\n    }\n\n    // Typically glyph 0 is duplicated and the mapping must be updated, but if\n    // there isn't enough room to duplicate, the glyph id is left the same. In\n    // this case, glyph 0 may not work correctly, but that is better than\n    // having the whole font fail.\n    let glyphZeroId = numGlyphsOut - 1;\n    if (!dupFirstEntry) {\n      glyphZeroId = 0;\n    }\n\n    // When `cssFontInfo` is set, the font is used to render text in the HTML\n    // view (e.g. with Xfa) so nothing must be moved in the private use area.\n    if (!properties.cssFontInfo) {\n      // Converting glyphs and ids into font's cmap table\n      const newMapping = adjustMapping(\n        charCodeToGlyphId,\n        hasGlyph,\n        glyphZeroId,\n        this.toUnicode\n      );\n      this.toFontChar = newMapping.toFontChar;\n      tables.cmap = {\n        tag: \"cmap\",\n        data: createCmapTable(\n          newMapping.charCodeToGlyphId,\n          newMapping.toUnicodeExtraMap,\n          numGlyphsOut\n        ),\n      };\n\n      if (!tables[\"OS/2\"] || !validateOS2Table(tables[\"OS/2\"], font)) {\n        tables[\"OS/2\"] = {\n          tag: \"OS/2\",\n          data: createOS2Table(\n            properties,\n            newMapping.charCodeToGlyphId,\n            metricsOverride\n          ),\n        };\n      }\n    }\n\n    if (!isTrueType) {\n      try {\n        // Trying to repair CFF file\n        cffFile = new Stream(tables[\"CFF \"].data);\n        const parser = new CFFParser(\n          cffFile,\n          properties,\n          SEAC_ANALYSIS_ENABLED\n        );\n        cff = parser.parse();\n        cff.duplicateFirstGlyph();\n        const compiler = new CFFCompiler(cff);\n        tables[\"CFF \"].data = compiler.compile();\n      } catch {\n        warn(\"Failed to compile font \" + properties.loadedName);\n      }\n    }\n\n    // Re-creating 'name' table\n    if (!tables.name) {\n      tables.name = {\n        tag: \"name\",\n        data: createNameTable(this.name),\n      };\n    } else {\n      // ... using existing 'name' table as prototype\n      const [namePrototype, nameRecords] = readNameTable(tables.name);\n\n      tables.name.data = createNameTable(name, namePrototype);\n      this.psName = namePrototype[0][6] || null;\n\n      if (!properties.composite) {\n        // For TrueType fonts that do not include `ToUnicode` or `Encoding`\n        // data, attempt to use the name-table to improve text selection.\n        adjustTrueTypeToUnicode(properties, this.isSymbolicFont, nameRecords);\n      }\n    }\n\n    const builder = new OpenTypeFileBuilder(header.version);\n    for (const tableTag in tables) {\n      builder.addTable(tableTag, tables[tableTag].data);\n    }\n    return builder.toArray();\n  }\n\n  convert(fontName, font, properties) {\n    // TODO: Check the charstring widths to determine this.\n    properties.fixedPitch = false;\n\n    if (properties.builtInEncoding) {\n      // For Type1 fonts that do not include either `ToUnicode` or `Encoding`\n      // data, attempt to use the `builtInEncoding` to improve text selection.\n      adjustType1ToUnicode(properties, properties.builtInEncoding);\n    }\n\n    // Type 1 fonts have a notdef inserted at the beginning, so glyph 0\n    // becomes glyph 1. In a CFF font glyph 0 is appended to the end of the\n    // char strings.\n    let glyphZeroId = 1;\n    if (font instanceof CFFFont) {\n      glyphZeroId = font.numGlyphs - 1;\n    }\n    const mapping = font.getGlyphMapping(properties);\n    let newMapping = null;\n    let newCharCodeToGlyphId = mapping;\n    let toUnicodeExtraMap = null;\n\n    // When `cssFontInfo` is set, the font is used to render text in the HTML\n    // view (e.g. with Xfa) so nothing must be moved in the private use area.\n    if (!properties.cssFontInfo) {\n      newMapping = adjustMapping(\n        mapping,\n        font.hasGlyphId.bind(font),\n        glyphZeroId,\n        this.toUnicode\n      );\n      this.toFontChar = newMapping.toFontChar;\n      newCharCodeToGlyphId = newMapping.charCodeToGlyphId;\n      toUnicodeExtraMap = newMapping.toUnicodeExtraMap;\n    }\n    const numGlyphs = font.numGlyphs;\n\n    function getCharCodes(charCodeToGlyphId, glyphId) {\n      let charCodes = null;\n      for (const charCode in charCodeToGlyphId) {\n        if (glyphId === charCodeToGlyphId[charCode]) {\n          (charCodes ||= []).push(charCode | 0);\n        }\n      }\n      return charCodes;\n    }\n\n    function createCharCode(charCodeToGlyphId, glyphId) {\n      for (const charCode in charCodeToGlyphId) {\n        if (glyphId === charCodeToGlyphId[charCode]) {\n          return charCode | 0;\n        }\n      }\n      newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode] =\n        glyphId;\n      return newMapping.nextAvailableFontCharCode++;\n    }\n\n    const seacs = font.seacs;\n    if (newMapping && SEAC_ANALYSIS_ENABLED && seacs?.length) {\n      const matrix = properties.fontMatrix || FONT_IDENTITY_MATRIX;\n      const charset = font.getCharset();\n      const seacMap = Object.create(null);\n      for (let glyphId in seacs) {\n        glyphId |= 0;\n        const seac = seacs[glyphId];\n        const baseGlyphName = StandardEncoding[seac[2]];\n        const accentGlyphName = StandardEncoding[seac[3]];\n        const baseGlyphId = charset.indexOf(baseGlyphName);\n        const accentGlyphId = charset.indexOf(accentGlyphName);\n        if (baseGlyphId < 0 || accentGlyphId < 0) {\n          continue;\n        }\n        const accentOffset = {\n          x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4],\n          y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5],\n        };\n\n        const charCodes = getCharCodes(mapping, glyphId);\n        if (!charCodes) {\n          // There's no point in mapping it if the char code was never mapped\n          // to begin with.\n          continue;\n        }\n        for (const charCode of charCodes) {\n          // Find a fontCharCode that maps to the base and accent glyphs.\n          // If one doesn't exists, create it.\n          const charCodeToGlyphId = newMapping.charCodeToGlyphId;\n          const baseFontCharCode = createCharCode(\n            charCodeToGlyphId,\n            baseGlyphId\n          );\n          const accentFontCharCode = createCharCode(\n            charCodeToGlyphId,\n            accentGlyphId\n          );\n          seacMap[charCode] = {\n            baseFontCharCode,\n            accentFontCharCode,\n            accentOffset,\n          };\n        }\n      }\n      properties.seacMap = seacMap;\n    }\n\n    const unitsPerEm = 1 / (properties.fontMatrix || FONT_IDENTITY_MATRIX)[0];\n\n    const builder = new OpenTypeFileBuilder(\"\\x4F\\x54\\x54\\x4F\");\n    // PostScript Font Program\n    builder.addTable(\"CFF \", font.data);\n    // OS/2 and Windows Specific metrics\n    builder.addTable(\"OS/2\", createOS2Table(properties, newCharCodeToGlyphId));\n    // Character to glyphs mapping\n    builder.addTable(\n      \"cmap\",\n      createCmapTable(newCharCodeToGlyphId, toUnicodeExtraMap, numGlyphs)\n    );\n    // Font header\n    builder.addTable(\n      \"head\",\n      \"\\x00\\x01\\x00\\x00\" + // Version number\n        \"\\x00\\x00\\x10\\x00\" + // fontRevision\n        \"\\x00\\x00\\x00\\x00\" + // checksumAdjustement\n        \"\\x5F\\x0F\\x3C\\xF5\" + // magicNumber\n        \"\\x00\\x00\" + // Flags\n        safeString16(unitsPerEm) + // unitsPerEM\n        \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + // creation date\n        \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + // modifification date\n        \"\\x00\\x00\" + // xMin\n        safeString16(properties.descent) + // yMin\n        \"\\x0F\\xFF\" + // xMax\n        safeString16(properties.ascent) + // yMax\n        string16(properties.italicAngle ? 2 : 0) + // macStyle\n        \"\\x00\\x11\" + // lowestRecPPEM\n        \"\\x00\\x00\" + // fontDirectionHint\n        \"\\x00\\x00\" + // indexToLocFormat\n        \"\\x00\\x00\"\n    ); // glyphDataFormat\n\n    // Horizontal header\n    builder.addTable(\n      \"hhea\",\n      \"\\x00\\x01\\x00\\x00\" + // Version number\n        safeString16(properties.ascent) + // Typographic Ascent\n        safeString16(properties.descent) + // Typographic Descent\n        \"\\x00\\x00\" + // Line Gap\n        \"\\xFF\\xFF\" + // advanceWidthMax\n        \"\\x00\\x00\" + // minLeftSidebearing\n        \"\\x00\\x00\" + // minRightSidebearing\n        \"\\x00\\x00\" + // xMaxExtent\n        safeString16(properties.capHeight) + // caretSlopeRise\n        safeString16(Math.tan(properties.italicAngle) * properties.xHeight) + // caretSlopeRun\n        \"\\x00\\x00\" + // caretOffset\n        \"\\x00\\x00\" + // -reserved-\n        \"\\x00\\x00\" + // -reserved-\n        \"\\x00\\x00\" + // -reserved-\n        \"\\x00\\x00\" + // -reserved-\n        \"\\x00\\x00\" + // metricDataFormat\n        string16(numGlyphs)\n    ); // Number of HMetrics\n\n    // Horizontal metrics\n    builder.addTable(\n      \"hmtx\",\n      (function fontFieldsHmtx() {\n        const charstrings = font.charstrings;\n        const cffWidths = font.cff ? font.cff.widths : null;\n        let hmtx = \"\\x00\\x00\\x00\\x00\"; // Fake .notdef\n        for (let i = 1, ii = numGlyphs; i < ii; i++) {\n          let width = 0;\n          if (charstrings) {\n            const charstring = charstrings[i - 1];\n            width = \"width\" in charstring ? charstring.width : 0;\n          } else if (cffWidths) {\n            width = Math.ceil(cffWidths[i] || 0);\n          }\n          hmtx += string16(width) + string16(0);\n        }\n        return hmtx;\n      })()\n    );\n\n    // Maximum profile\n    builder.addTable(\n      \"maxp\",\n      \"\\x00\\x00\\x50\\x00\" + string16(numGlyphs) // Version number\n    ); // Num of glyphs\n\n    // Naming tables\n    builder.addTable(\"name\", createNameTable(fontName));\n\n    // PostScript information\n    builder.addTable(\"post\", createPostTable(properties));\n\n    return builder.toArray();\n  }\n\n  get spaceWidth() {\n    // trying to estimate space character width\n    const possibleSpaceReplacements = [\"space\", \"minus\", \"one\", \"i\", \"I\"];\n    let width;\n    for (const glyphName of possibleSpaceReplacements) {\n      // if possible, getting width by glyph name\n      if (glyphName in this.widths) {\n        width = this.widths[glyphName];\n        break;\n      }\n      const glyphsUnicodeMap = getGlyphsUnicode();\n      const glyphUnicode = glyphsUnicodeMap[glyphName];\n      // finding the charcode via unicodeToCID map\n      let charcode = 0;\n      if (this.composite && this.cMap.contains(glyphUnicode)) {\n        charcode = this.cMap.lookup(glyphUnicode);\n\n        if (typeof charcode === \"string\") {\n          charcode = convertCidString(glyphUnicode, charcode);\n        }\n      }\n      // ... via toUnicode map\n      if (!charcode && this.toUnicode) {\n        charcode = this.toUnicode.charCodeOf(glyphUnicode);\n      }\n      // setting it to unicode if negative or undefined\n      if (charcode <= 0) {\n        charcode = glyphUnicode;\n      }\n      // trying to get width via charcode\n      width = this.widths[charcode];\n      if (width) {\n        break; // the non-zero width found\n      }\n    }\n    return shadow(this, \"spaceWidth\", width || this.defaultWidth);\n  }\n\n  /**\n   * @private\n   */\n  _charToGlyph(charcode, isSpace = false) {\n    let glyph = this._glyphCache[charcode];\n    // All `Glyph`-properties, except `isSpace` in multi-byte strings,\n    // depend indirectly on the `charcode`.\n    if (glyph?.isSpace === isSpace) {\n      return glyph;\n    }\n    let fontCharCode, width, operatorListId;\n\n    let widthCode = charcode;\n    if (this.cMap?.contains(charcode)) {\n      widthCode = this.cMap.lookup(charcode);\n\n      if (typeof widthCode === \"string\") {\n        widthCode = convertCidString(charcode, widthCode);\n      }\n    }\n    width = this.widths[widthCode];\n    if (typeof width !== \"number\") {\n      width = this.defaultWidth;\n    }\n    const vmetric = this.vmetrics?.[widthCode];\n\n    let unicode = this.toUnicode.get(charcode) || charcode;\n    if (typeof unicode === \"number\") {\n      unicode = String.fromCharCode(unicode);\n    }\n\n    let isInFont = this.toFontChar[charcode] !== undefined;\n    // First try the toFontChar map, if it's not there then try falling\n    // back to the char code.\n    fontCharCode = this.toFontChar[charcode] || charcode;\n    if (this.missingFile) {\n      const glyphName =\n        this.differences[charcode] || this.defaultEncoding[charcode];\n      if (\n        (glyphName === \".notdef\" || glyphName === \"\") &&\n        this.type === \"Type1\"\n      ) {\n        // .notdef glyphs should be invisible in non-embedded Type1 fonts, so\n        // replace them with spaces.\n        fontCharCode = 0x20;\n      }\n      fontCharCode = mapSpecialUnicodeValues(fontCharCode);\n    }\n\n    if (this.isType3Font) {\n      // Font char code in this case is actually a glyph name.\n      operatorListId = fontCharCode;\n    }\n\n    let accent = null;\n    if (this.seacMap?.[charcode]) {\n      isInFont = true;\n      const seac = this.seacMap[charcode];\n      fontCharCode = seac.baseFontCharCode;\n      accent = {\n        fontChar: String.fromCodePoint(seac.accentFontCharCode),\n        offset: seac.accentOffset,\n      };\n    }\n\n    let fontChar = \"\";\n    if (typeof fontCharCode === \"number\") {\n      if (fontCharCode <= 0x10ffff) {\n        fontChar = String.fromCodePoint(fontCharCode);\n      } else {\n        warn(`charToGlyph - invalid fontCharCode: ${fontCharCode}`);\n      }\n    }\n\n    glyph = new Glyph(\n      charcode,\n      fontChar,\n      unicode,\n      accent,\n      width,\n      vmetric,\n      operatorListId,\n      isSpace,\n      isInFont\n    );\n    return (this._glyphCache[charcode] = glyph);\n  }\n\n  charsToGlyphs(chars) {\n    // If we translated this string before, just grab it from the cache.\n    let glyphs = this._charsCache[chars];\n    if (glyphs) {\n      return glyphs;\n    }\n    glyphs = [];\n\n    if (this.cMap) {\n      // Composite fonts have multi-byte strings, convert the string from\n      // single-byte to multi-byte.\n      const c = Object.create(null),\n        ii = chars.length;\n      let i = 0;\n      while (i < ii) {\n        this.cMap.readCharCode(chars, i, c);\n        const { charcode, length } = c;\n        i += length;\n        // Space is char with code 0x20 and length 1 in multiple-byte codes.\n        const glyph = this._charToGlyph(\n          charcode,\n          length === 1 && chars.charCodeAt(i - 1) === 0x20\n        );\n        glyphs.push(glyph);\n      }\n    } else {\n      for (let i = 0, ii = chars.length; i < ii; ++i) {\n        const charcode = chars.charCodeAt(i);\n        const glyph = this._charToGlyph(charcode, charcode === 0x20);\n        glyphs.push(glyph);\n      }\n    }\n\n    // Enter the translated string into the cache.\n    return (this._charsCache[chars] = glyphs);\n  }\n\n  /**\n   * Chars can have different sizes (depends on the encoding).\n   * @param {String} a string encoded with font encoding.\n   * @returns {Array<Array<number>>} the positions of each char in the string.\n   */\n  getCharPositions(chars) {\n    // This function doesn't use a cache because\n    // it's called only when saving or printing.\n    const positions = [];\n\n    if (this.cMap) {\n      const c = Object.create(null);\n      let i = 0;\n      while (i < chars.length) {\n        this.cMap.readCharCode(chars, i, c);\n        const length = c.length;\n        positions.push([i, i + length]);\n        i += length;\n      }\n    } else {\n      for (let i = 0, ii = chars.length; i < ii; ++i) {\n        positions.push([i, i + 1]);\n      }\n    }\n\n    return positions;\n  }\n\n  get glyphCacheValues() {\n    return Object.values(this._glyphCache);\n  }\n\n  /**\n   * Encode a js string using font encoding.\n   * The resulting array contains an encoded string at even positions\n   * (can be empty) and a non-encoded one at odd positions.\n   * @param {String} a js string.\n   * @returns {Array<String>} an array of encoded strings or non-encoded ones.\n   */\n  encodeString(str) {\n    const buffers = [];\n    const currentBuf = [];\n\n    // buffers will contain: encoded, non-encoded, encoded, ...\n    // currentBuf is pushed in buffers each time there is a change.\n    // So when buffers.length is odd then the last string is an encoded one\n    // and currentBuf contains non-encoded chars.\n    const hasCurrentBufErrors = () => buffers.length % 2 === 1;\n\n    const getCharCode =\n      this.toUnicode instanceof IdentityToUnicodeMap\n        ? unicode => this.toUnicode.charCodeOf(unicode)\n        : unicode => this.toUnicode.charCodeOf(String.fromCodePoint(unicode));\n\n    for (let i = 0, ii = str.length; i < ii; i++) {\n      const unicode = str.codePointAt(i);\n      if (unicode > 0xd7ff && (unicode < 0xe000 || unicode > 0xfffd)) {\n        // unicode is represented by two uint16\n        i++;\n      }\n      if (this.toUnicode) {\n        const charCode = getCharCode(unicode);\n        if (charCode !== -1) {\n          if (hasCurrentBufErrors()) {\n            buffers.push(currentBuf.join(\"\"));\n            currentBuf.length = 0;\n          }\n          const charCodeLength = this.cMap\n            ? this.cMap.getCharCodeLength(charCode)\n            : 1;\n          for (let j = charCodeLength - 1; j >= 0; j--) {\n            currentBuf.push(String.fromCharCode((charCode >> (8 * j)) & 0xff));\n          }\n          continue;\n        }\n      }\n\n      // unicode can't be encoded\n      if (!hasCurrentBufErrors()) {\n        buffers.push(currentBuf.join(\"\"));\n        currentBuf.length = 0;\n      }\n      currentBuf.push(String.fromCodePoint(unicode));\n    }\n\n    buffers.push(currentBuf.join(\"\"));\n\n    return buffers;\n  }\n}\n\nclass ErrorFont {\n  constructor(error) {\n    this.error = error;\n    this.loadedName = \"g_font_error\";\n    this.missingFile = true;\n  }\n\n  charsToGlyphs() {\n    return [];\n  }\n\n  encodeString(chars) {\n    return [chars];\n  }\n\n  exportData(extraProperties = false) {\n    return { error: this.error };\n  }\n}\n\nexport { ErrorFont, Font };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  assert,\n  FormatError,\n  info,\n  unreachable,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { MissingDataException } from \"./core_utils.js\";\n\nconst ShadingType = {\n  FUNCTION_BASED: 1,\n  AXIAL: 2,\n  RADIAL: 3,\n  FREE_FORM_MESH: 4,\n  LATTICE_FORM_MESH: 5,\n  COONS_PATCH_MESH: 6,\n  TENSOR_PATCH_MESH: 7,\n};\n\nclass Pattern {\n  constructor() {\n    unreachable(\"Cannot initialize Pattern.\");\n  }\n\n  static parseShading(\n    shading,\n    xref,\n    res,\n    pdfFunctionFactory,\n    localColorSpaceCache\n  ) {\n    const dict = shading instanceof BaseStream ? shading.dict : shading;\n    const type = dict.get(\"ShadingType\");\n\n    try {\n      switch (type) {\n        case ShadingType.AXIAL:\n        case ShadingType.RADIAL:\n          return new RadialAxialShading(\n            dict,\n            xref,\n            res,\n            pdfFunctionFactory,\n            localColorSpaceCache\n          );\n        case ShadingType.FREE_FORM_MESH:\n        case ShadingType.LATTICE_FORM_MESH:\n        case ShadingType.COONS_PATCH_MESH:\n        case ShadingType.TENSOR_PATCH_MESH:\n          return new MeshShading(\n            shading,\n            xref,\n            res,\n            pdfFunctionFactory,\n            localColorSpaceCache\n          );\n        default:\n          throw new FormatError(\"Unsupported ShadingType: \" + type);\n      }\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(ex);\n      return new DummyShading();\n    }\n  }\n}\n\nclass BaseShading {\n  // A small number to offset the first/last color stops so we can insert ones\n  // to support extend. Number.MIN_VALUE is too small and breaks the extend.\n  static SMALL_NUMBER = 1e-6;\n\n  constructor() {\n    if (this.constructor === BaseShading) {\n      unreachable(\"Cannot initialize BaseShading.\");\n    }\n  }\n\n  getIR() {\n    unreachable(\"Abstract method `getIR` called.\");\n  }\n}\n\n// Radial and axial shading have very similar implementations\n// If needed, the implementations can be broken into two classes.\nclass RadialAxialShading extends BaseShading {\n  constructor(dict, xref, resources, pdfFunctionFactory, localColorSpaceCache) {\n    super();\n    this.coordsArr = dict.getArray(\"Coords\");\n    this.shadingType = dict.get(\"ShadingType\");\n    const cs = ColorSpace.parse({\n      cs: dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\"),\n      xref,\n      resources,\n      pdfFunctionFactory,\n      localColorSpaceCache,\n    });\n    const bbox = dict.getArray(\"BBox\");\n    this.bbox =\n      Array.isArray(bbox) && bbox.length === 4\n        ? Util.normalizeRect(bbox)\n        : null;\n\n    let t0 = 0.0,\n      t1 = 1.0;\n    if (dict.has(\"Domain\")) {\n      const domainArr = dict.getArray(\"Domain\");\n      t0 = domainArr[0];\n      t1 = domainArr[1];\n    }\n\n    let extendStart = false,\n      extendEnd = false;\n    if (dict.has(\"Extend\")) {\n      const extendArr = dict.getArray(\"Extend\");\n      extendStart = extendArr[0];\n      extendEnd = extendArr[1];\n    }\n\n    if (\n      this.shadingType === ShadingType.RADIAL &&\n      (!extendStart || !extendEnd)\n    ) {\n      // Radial gradient only currently works if either circle is fully within\n      // the other circle.\n      const [x1, y1, r1, x2, y2, r2] = this.coordsArr;\n      const distance = Math.hypot(x1 - x2, y1 - y2);\n      if (r1 <= r2 + distance && r2 <= r1 + distance) {\n        warn(\"Unsupported radial gradient.\");\n      }\n    }\n\n    this.extendStart = extendStart;\n    this.extendEnd = extendEnd;\n\n    const fnObj = dict.getRaw(\"Function\");\n    const fn = pdfFunctionFactory.createFromArray(fnObj);\n\n    // Use lcm(1,2,3,4,5,6,7,8,10) = 840 (including 9 increases this to 2520)\n    // to catch evenly spaced stops. oeis.org/A003418\n    const NUMBER_OF_SAMPLES = 840;\n    const step = (t1 - t0) / NUMBER_OF_SAMPLES;\n\n    const colorStops = (this.colorStops = []);\n\n    // Protect against bad domains.\n    if (t0 >= t1 || step <= 0) {\n      // Acrobat doesn't seem to handle these cases so we'll ignore for\n      // now.\n      info(\"Bad shading domain.\");\n      return;\n    }\n\n    const color = new Float32Array(cs.numComps),\n      ratio = new Float32Array(1);\n    let rgbColor;\n\n    let iBase = 0;\n    ratio[0] = t0;\n    fn(ratio, 0, color, 0);\n    let rgbBase = cs.getRgb(color, 0);\n    const cssColorBase = Util.makeHexColor(rgbBase[0], rgbBase[1], rgbBase[2]);\n    colorStops.push([0, cssColorBase]);\n\n    let iPrev = 1;\n    ratio[0] = t0 + step;\n    fn(ratio, 0, color, 0);\n    let rgbPrev = cs.getRgb(color, 0);\n\n    // Slopes are rise / run.\n    // A max slope is from the least value the base component could have been\n    // to the greatest value the current component could have been.\n    // A min slope is from the greatest value the base component could have been\n    // to the least value the current component could have been.\n    // Each component could have been rounded up to .5 from its original value\n    // so the conservative deltas are +-1 (+-.5 for base and -+.5 for current).\n\n    // The run is iPrev - iBase = 1, so omitted.\n    let maxSlopeR = rgbPrev[0] - rgbBase[0] + 1;\n    let maxSlopeG = rgbPrev[1] - rgbBase[1] + 1;\n    let maxSlopeB = rgbPrev[2] - rgbBase[2] + 1;\n    let minSlopeR = rgbPrev[0] - rgbBase[0] - 1;\n    let minSlopeG = rgbPrev[1] - rgbBase[1] - 1;\n    let minSlopeB = rgbPrev[2] - rgbBase[2] - 1;\n\n    for (let i = 2; i < NUMBER_OF_SAMPLES; i++) {\n      ratio[0] = t0 + i * step;\n      fn(ratio, 0, color, 0);\n      rgbColor = cs.getRgb(color, 0);\n\n      // Keep going if the maximum minimum slope <= the minimum maximum slope.\n      // Otherwise add a rgbPrev color stop and make it the new base.\n\n      const run = i - iBase;\n      maxSlopeR = Math.min(maxSlopeR, (rgbColor[0] - rgbBase[0] + 1) / run);\n      maxSlopeG = Math.min(maxSlopeG, (rgbColor[1] - rgbBase[1] + 1) / run);\n      maxSlopeB = Math.min(maxSlopeB, (rgbColor[2] - rgbBase[2] + 1) / run);\n      minSlopeR = Math.max(minSlopeR, (rgbColor[0] - rgbBase[0] - 1) / run);\n      minSlopeG = Math.max(minSlopeG, (rgbColor[1] - rgbBase[1] - 1) / run);\n      minSlopeB = Math.max(minSlopeB, (rgbColor[2] - rgbBase[2] - 1) / run);\n\n      const slopesExist =\n        minSlopeR <= maxSlopeR &&\n        minSlopeG <= maxSlopeG &&\n        minSlopeB <= maxSlopeB;\n\n      if (!slopesExist) {\n        const cssColor = Util.makeHexColor(rgbPrev[0], rgbPrev[1], rgbPrev[2]);\n        colorStops.push([iPrev / NUMBER_OF_SAMPLES, cssColor]);\n\n        // TODO: When fn frequency is high (iPrev - iBase === 1 twice in a row),\n        // send the color space and function to do the sampling display side.\n\n        // The run is i - iPrev = 1, so omitted.\n        maxSlopeR = rgbColor[0] - rgbPrev[0] + 1;\n        maxSlopeG = rgbColor[1] - rgbPrev[1] + 1;\n        maxSlopeB = rgbColor[2] - rgbPrev[2] + 1;\n        minSlopeR = rgbColor[0] - rgbPrev[0] - 1;\n        minSlopeG = rgbColor[1] - rgbPrev[1] - 1;\n        minSlopeB = rgbColor[2] - rgbPrev[2] - 1;\n\n        iBase = iPrev;\n        rgbBase = rgbPrev;\n      }\n\n      iPrev = i;\n      rgbPrev = rgbColor;\n    }\n    const cssColor = Util.makeHexColor(rgbPrev[0], rgbPrev[1], rgbPrev[2]);\n    colorStops.push([1, cssColor]);\n\n    let background = \"transparent\";\n    if (dict.has(\"Background\")) {\n      rgbColor = cs.getRgb(dict.get(\"Background\"), 0);\n      background = Util.makeHexColor(rgbColor[0], rgbColor[1], rgbColor[2]);\n    }\n\n    if (!extendStart) {\n      // Insert a color stop at the front and offset the first real color stop\n      // so it doesn't conflict with the one we insert.\n      colorStops.unshift([0, background]);\n      colorStops[1][0] += BaseShading.SMALL_NUMBER;\n    }\n    if (!extendEnd) {\n      // Same idea as above in extendStart but for the end.\n      colorStops.at(-1)[0] -= BaseShading.SMALL_NUMBER;\n      colorStops.push([1, background]);\n    }\n\n    this.colorStops = colorStops;\n  }\n\n  getIR() {\n    const coordsArr = this.coordsArr;\n    const shadingType = this.shadingType;\n    let type, p0, p1, r0, r1;\n    if (shadingType === ShadingType.AXIAL) {\n      p0 = [coordsArr[0], coordsArr[1]];\n      p1 = [coordsArr[2], coordsArr[3]];\n      r0 = null;\n      r1 = null;\n      type = \"axial\";\n    } else if (shadingType === ShadingType.RADIAL) {\n      p0 = [coordsArr[0], coordsArr[1]];\n      p1 = [coordsArr[3], coordsArr[4]];\n      r0 = coordsArr[2];\n      r1 = coordsArr[5];\n      type = \"radial\";\n    } else {\n      unreachable(`getPattern type unknown: ${shadingType}`);\n    }\n\n    return [\"RadialAxial\", type, this.bbox, this.colorStops, p0, p1, r0, r1];\n  }\n}\n\n// All mesh shadings. For now, they will be presented as set of the triangles\n// to be drawn on the canvas and rgb color for each vertex.\nclass MeshStreamReader {\n  constructor(stream, context) {\n    this.stream = stream;\n    this.context = context;\n    this.buffer = 0;\n    this.bufferLength = 0;\n\n    const numComps = context.numComps;\n    this.tmpCompsBuf = new Float32Array(numComps);\n    const csNumComps = context.colorSpace.numComps;\n    this.tmpCsCompsBuf = context.colorFn\n      ? new Float32Array(csNumComps)\n      : this.tmpCompsBuf;\n  }\n\n  get hasData() {\n    if (this.stream.end) {\n      return this.stream.pos < this.stream.end;\n    }\n    if (this.bufferLength > 0) {\n      return true;\n    }\n    const nextByte = this.stream.getByte();\n    if (nextByte < 0) {\n      return false;\n    }\n    this.buffer = nextByte;\n    this.bufferLength = 8;\n    return true;\n  }\n\n  readBits(n) {\n    let buffer = this.buffer;\n    let bufferLength = this.bufferLength;\n    if (n === 32) {\n      if (bufferLength === 0) {\n        return (\n          ((this.stream.getByte() << 24) |\n            (this.stream.getByte() << 16) |\n            (this.stream.getByte() << 8) |\n            this.stream.getByte()) >>>\n          0\n        );\n      }\n      buffer =\n        (buffer << 24) |\n        (this.stream.getByte() << 16) |\n        (this.stream.getByte() << 8) |\n        this.stream.getByte();\n      const nextByte = this.stream.getByte();\n      this.buffer = nextByte & ((1 << bufferLength) - 1);\n      return (\n        ((buffer << (8 - bufferLength)) |\n          ((nextByte & 0xff) >> bufferLength)) >>>\n        0\n      );\n    }\n    if (n === 8 && bufferLength === 0) {\n      return this.stream.getByte();\n    }\n    while (bufferLength < n) {\n      buffer = (buffer << 8) | this.stream.getByte();\n      bufferLength += 8;\n    }\n    bufferLength -= n;\n    this.bufferLength = bufferLength;\n    this.buffer = buffer & ((1 << bufferLength) - 1);\n    return buffer >> bufferLength;\n  }\n\n  align() {\n    this.buffer = 0;\n    this.bufferLength = 0;\n  }\n\n  readFlag() {\n    return this.readBits(this.context.bitsPerFlag);\n  }\n\n  readCoordinate() {\n    const bitsPerCoordinate = this.context.bitsPerCoordinate;\n    const xi = this.readBits(bitsPerCoordinate);\n    const yi = this.readBits(bitsPerCoordinate);\n    const decode = this.context.decode;\n    const scale =\n      bitsPerCoordinate < 32\n        ? 1 / ((1 << bitsPerCoordinate) - 1)\n        : 2.3283064365386963e-10; // 2 ^ -32\n    return [\n      xi * scale * (decode[1] - decode[0]) + decode[0],\n      yi * scale * (decode[3] - decode[2]) + decode[2],\n    ];\n  }\n\n  readComponents() {\n    const numComps = this.context.numComps;\n    const bitsPerComponent = this.context.bitsPerComponent;\n    const scale =\n      bitsPerComponent < 32\n        ? 1 / ((1 << bitsPerComponent) - 1)\n        : 2.3283064365386963e-10; // 2 ^ -32\n    const decode = this.context.decode;\n    const components = this.tmpCompsBuf;\n    for (let i = 0, j = 4; i < numComps; i++, j += 2) {\n      const ci = this.readBits(bitsPerComponent);\n      components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j];\n    }\n    const color = this.tmpCsCompsBuf;\n    if (this.context.colorFn) {\n      this.context.colorFn(components, 0, color, 0);\n    }\n    return this.context.colorSpace.getRgb(color, 0);\n  }\n}\n\nlet bCache = Object.create(null);\n\nfunction buildB(count) {\n  const lut = [];\n  for (let i = 0; i <= count; i++) {\n    const t = i / count,\n      t_ = 1 - t;\n    lut.push(\n      new Float32Array([t_ ** 3, 3 * t * t_ ** 2, 3 * t ** 2 * t_, t ** 3])\n    );\n  }\n  return lut;\n}\nfunction getB(count) {\n  return (bCache[count] ||= buildB(count));\n}\n\nfunction clearPatternCaches() {\n  bCache = Object.create(null);\n}\n\nclass MeshShading extends BaseShading {\n  static MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3;\n\n  static MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20;\n\n  // Count of triangles per entire mesh bounds.\n  static TRIANGLE_DENSITY = 20;\n\n  constructor(\n    stream,\n    xref,\n    resources,\n    pdfFunctionFactory,\n    localColorSpaceCache\n  ) {\n    super();\n    if (!(stream instanceof BaseStream)) {\n      throw new FormatError(\"Mesh data is not a stream\");\n    }\n    const dict = stream.dict;\n    this.shadingType = dict.get(\"ShadingType\");\n    const bbox = dict.getArray(\"BBox\");\n    this.bbox =\n      Array.isArray(bbox) && bbox.length === 4\n        ? Util.normalizeRect(bbox)\n        : null;\n    const cs = ColorSpace.parse({\n      cs: dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\"),\n      xref,\n      resources,\n      pdfFunctionFactory,\n      localColorSpaceCache,\n    });\n    this.background = dict.has(\"Background\")\n      ? cs.getRgb(dict.get(\"Background\"), 0)\n      : null;\n\n    const fnObj = dict.getRaw(\"Function\");\n    const fn = fnObj ? pdfFunctionFactory.createFromArray(fnObj) : null;\n\n    this.coords = [];\n    this.colors = [];\n    this.figures = [];\n\n    const decodeContext = {\n      bitsPerCoordinate: dict.get(\"BitsPerCoordinate\"),\n      bitsPerComponent: dict.get(\"BitsPerComponent\"),\n      bitsPerFlag: dict.get(\"BitsPerFlag\"),\n      decode: dict.getArray(\"Decode\"),\n      colorFn: fn,\n      colorSpace: cs,\n      numComps: fn ? 1 : cs.numComps,\n    };\n    const reader = new MeshStreamReader(stream, decodeContext);\n\n    let patchMesh = false;\n    switch (this.shadingType) {\n      case ShadingType.FREE_FORM_MESH:\n        this._decodeType4Shading(reader);\n        break;\n      case ShadingType.LATTICE_FORM_MESH:\n        const verticesPerRow = dict.get(\"VerticesPerRow\") | 0;\n        if (verticesPerRow < 2) {\n          throw new FormatError(\"Invalid VerticesPerRow\");\n        }\n        this._decodeType5Shading(reader, verticesPerRow);\n        break;\n      case ShadingType.COONS_PATCH_MESH:\n        this._decodeType6Shading(reader);\n        patchMesh = true;\n        break;\n      case ShadingType.TENSOR_PATCH_MESH:\n        this._decodeType7Shading(reader);\n        patchMesh = true;\n        break;\n      default:\n        unreachable(\"Unsupported mesh type.\");\n        break;\n    }\n\n    if (patchMesh) {\n      // Dirty bounds calculation, to determine how dense the triangles will be.\n      this._updateBounds();\n      for (let i = 0, ii = this.figures.length; i < ii; i++) {\n        this._buildFigureFromPatch(i);\n      }\n    }\n    // Calculate bounds.\n    this._updateBounds();\n\n    this._packData();\n  }\n\n  _decodeType4Shading(reader) {\n    const coords = this.coords;\n    const colors = this.colors;\n    const operators = [];\n    const ps = []; // not maintaining cs since that will match ps\n    let verticesLeft = 0; // assuming we have all data to start a new triangle\n    while (reader.hasData) {\n      const f = reader.readFlag();\n      const coord = reader.readCoordinate();\n      const color = reader.readComponents();\n      if (verticesLeft === 0) {\n        // ignoring flags if we started a triangle\n        if (!(0 <= f && f <= 2)) {\n          throw new FormatError(\"Unknown type4 flag\");\n        }\n        switch (f) {\n          case 0:\n            verticesLeft = 3;\n            break;\n          case 1:\n            ps.push(ps.at(-2), ps.at(-1));\n            verticesLeft = 1;\n            break;\n          case 2:\n            ps.push(ps.at(-3), ps.at(-1));\n            verticesLeft = 1;\n            break;\n        }\n        operators.push(f);\n      }\n      ps.push(coords.length);\n      coords.push(coord);\n      colors.push(color);\n      verticesLeft--;\n\n      reader.align();\n    }\n    this.figures.push({\n      type: \"triangles\",\n      coords: new Int32Array(ps),\n      colors: new Int32Array(ps),\n    });\n  }\n\n  _decodeType5Shading(reader, verticesPerRow) {\n    const coords = this.coords;\n    const colors = this.colors;\n    const ps = []; // not maintaining cs since that will match ps\n    while (reader.hasData) {\n      const coord = reader.readCoordinate();\n      const color = reader.readComponents();\n      ps.push(coords.length);\n      coords.push(coord);\n      colors.push(color);\n    }\n    this.figures.push({\n      type: \"lattice\",\n      coords: new Int32Array(ps),\n      colors: new Int32Array(ps),\n      verticesPerRow,\n    });\n  }\n\n  _decodeType6Shading(reader) {\n    // A special case of Type 7. The p11, p12, p21, p22 automatically filled\n    const coords = this.coords;\n    const colors = this.colors;\n    const ps = new Int32Array(16); // p00, p10, ..., p30, p01, ..., p33\n    const cs = new Int32Array(4); // c00, c30, c03, c33\n    while (reader.hasData) {\n      const f = reader.readFlag();\n      if (!(0 <= f && f <= 3)) {\n        throw new FormatError(\"Unknown type6 flag\");\n      }\n      const pi = coords.length;\n      for (let i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) {\n        coords.push(reader.readCoordinate());\n      }\n      const ci = colors.length;\n      for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n        colors.push(reader.readComponents());\n      }\n      let tmp1, tmp2, tmp3, tmp4;\n      switch (f) {\n        // prettier-ignore\n        case 0:\n          ps[12] = pi + 3; ps[13] = pi + 4;  ps[14] = pi + 5;  ps[15] = pi + 6;\n          ps[ 8] = pi + 2; /* values for 5, 6, 9, 10 are    */ ps[11] = pi + 7;\n          ps[ 4] = pi + 1; /* calculated below              */ ps[ 7] = pi + 8;\n          ps[ 0] = pi;     ps[ 1] = pi + 11; ps[ 2] = pi + 10; ps[ 3] = pi + 9;\n          cs[2] = ci + 1; cs[3] = ci + 2;\n          cs[0] = ci;     cs[1] = ci + 3;\n          break;\n        // prettier-ignore\n        case 1:\n          tmp1 = ps[12]; tmp2 = ps[13]; tmp3 = ps[14]; tmp4 = ps[15];\n          ps[12] = tmp4; ps[13] = pi + 0;  ps[14] = pi + 1;  ps[15] = pi + 2;\n          ps[ 8] = tmp3; /* values for 5, 6, 9, 10 are    */ ps[11] = pi + 3;\n          ps[ 4] = tmp2; /* calculated below              */ ps[ 7] = pi + 4;\n          ps[ 0] = tmp1; ps[ 1] = pi + 7;   ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n          tmp1 = cs[2]; tmp2 = cs[3];\n          cs[2] = tmp2;   cs[3] = ci;\n          cs[0] = tmp1;   cs[1] = ci + 1;\n          break;\n        // prettier-ignore\n        case 2:\n          tmp1 = ps[15];\n          tmp2 = ps[11];\n          ps[12] = ps[3];  ps[13] = pi + 0; ps[14] = pi + 1;   ps[15] = pi + 2;\n          ps[ 8] = ps[7];  /* values for 5, 6, 9, 10 are    */ ps[11] = pi + 3;\n          ps[ 4] = tmp2;   /* calculated below              */ ps[ 7] = pi + 4;\n          ps[ 0] = tmp1;  ps[ 1] = pi + 7;   ps[ 2] = pi + 6;  ps[ 3] = pi + 5;\n          tmp1 = cs[3];\n          cs[2] = cs[1]; cs[3] = ci;\n          cs[0] = tmp1;  cs[1] = ci + 1;\n          break;\n        // prettier-ignore\n        case 3:\n          ps[12] = ps[0];  ps[13] = pi + 0;   ps[14] = pi + 1; ps[15] = pi + 2;\n          ps[ 8] = ps[1];  /* values for 5, 6, 9, 10 are    */ ps[11] = pi + 3;\n          ps[ 4] = ps[2];  /* calculated below              */ ps[ 7] = pi + 4;\n          ps[ 0] = ps[3];  ps[ 1] = pi + 7;   ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n          cs[2] = cs[0]; cs[3] = ci;\n          cs[0] = cs[1]; cs[1] = ci + 1;\n          break;\n      }\n      // set p11, p12, p21, p22\n      ps[5] = coords.length;\n      coords.push([\n        (-4 * coords[ps[0]][0] -\n          coords[ps[15]][0] +\n          6 * (coords[ps[4]][0] + coords[ps[1]][0]) -\n          2 * (coords[ps[12]][0] + coords[ps[3]][0]) +\n          3 * (coords[ps[13]][0] + coords[ps[7]][0])) /\n          9,\n        (-4 * coords[ps[0]][1] -\n          coords[ps[15]][1] +\n          6 * (coords[ps[4]][1] + coords[ps[1]][1]) -\n          2 * (coords[ps[12]][1] + coords[ps[3]][1]) +\n          3 * (coords[ps[13]][1] + coords[ps[7]][1])) /\n          9,\n      ]);\n      ps[6] = coords.length;\n      coords.push([\n        (-4 * coords[ps[3]][0] -\n          coords[ps[12]][0] +\n          6 * (coords[ps[2]][0] + coords[ps[7]][0]) -\n          2 * (coords[ps[0]][0] + coords[ps[15]][0]) +\n          3 * (coords[ps[4]][0] + coords[ps[14]][0])) /\n          9,\n        (-4 * coords[ps[3]][1] -\n          coords[ps[12]][1] +\n          6 * (coords[ps[2]][1] + coords[ps[7]][1]) -\n          2 * (coords[ps[0]][1] + coords[ps[15]][1]) +\n          3 * (coords[ps[4]][1] + coords[ps[14]][1])) /\n          9,\n      ]);\n      ps[9] = coords.length;\n      coords.push([\n        (-4 * coords[ps[12]][0] -\n          coords[ps[3]][0] +\n          6 * (coords[ps[8]][0] + coords[ps[13]][0]) -\n          2 * (coords[ps[0]][0] + coords[ps[15]][0]) +\n          3 * (coords[ps[11]][0] + coords[ps[1]][0])) /\n          9,\n        (-4 * coords[ps[12]][1] -\n          coords[ps[3]][1] +\n          6 * (coords[ps[8]][1] + coords[ps[13]][1]) -\n          2 * (coords[ps[0]][1] + coords[ps[15]][1]) +\n          3 * (coords[ps[11]][1] + coords[ps[1]][1])) /\n          9,\n      ]);\n      ps[10] = coords.length;\n      coords.push([\n        (-4 * coords[ps[15]][0] -\n          coords[ps[0]][0] +\n          6 * (coords[ps[11]][0] + coords[ps[14]][0]) -\n          2 * (coords[ps[12]][0] + coords[ps[3]][0]) +\n          3 * (coords[ps[2]][0] + coords[ps[8]][0])) /\n          9,\n        (-4 * coords[ps[15]][1] -\n          coords[ps[0]][1] +\n          6 * (coords[ps[11]][1] + coords[ps[14]][1]) -\n          2 * (coords[ps[12]][1] + coords[ps[3]][1]) +\n          3 * (coords[ps[2]][1] + coords[ps[8]][1])) /\n          9,\n      ]);\n      this.figures.push({\n        type: \"patch\",\n        coords: new Int32Array(ps), // making copies of ps and cs\n        colors: new Int32Array(cs),\n      });\n    }\n  }\n\n  _decodeType7Shading(reader) {\n    const coords = this.coords;\n    const colors = this.colors;\n    const ps = new Int32Array(16); // p00, p10, ..., p30, p01, ..., p33\n    const cs = new Int32Array(4); // c00, c30, c03, c33\n    while (reader.hasData) {\n      const f = reader.readFlag();\n      if (!(0 <= f && f <= 3)) {\n        throw new FormatError(\"Unknown type7 flag\");\n      }\n      const pi = coords.length;\n      for (let i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) {\n        coords.push(reader.readCoordinate());\n      }\n      const ci = colors.length;\n      for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n        colors.push(reader.readComponents());\n      }\n      let tmp1, tmp2, tmp3, tmp4;\n      switch (f) {\n        // prettier-ignore\n        case 0:\n          ps[12] = pi + 3; ps[13] = pi + 4;  ps[14] = pi + 5;  ps[15] = pi + 6;\n          ps[ 8] = pi + 2; ps[ 9] = pi + 13; ps[10] = pi + 14; ps[11] = pi + 7;\n          ps[ 4] = pi + 1; ps[ 5] = pi + 12; ps[ 6] = pi + 15; ps[ 7] = pi + 8;\n          ps[ 0] = pi;     ps[ 1] = pi + 11; ps[ 2] = pi + 10; ps[ 3] = pi + 9;\n          cs[2] = ci + 1; cs[3] = ci + 2;\n          cs[0] = ci;     cs[1] = ci + 3;\n          break;\n        // prettier-ignore\n        case 1:\n          tmp1 = ps[12]; tmp2 = ps[13]; tmp3 = ps[14]; tmp4 = ps[15];\n          ps[12] = tmp4;   ps[13] = pi + 0;  ps[14] = pi + 1;  ps[15] = pi + 2;\n          ps[ 8] = tmp3;   ps[ 9] = pi + 9;  ps[10] = pi + 10; ps[11] = pi + 3;\n          ps[ 4] = tmp2;   ps[ 5] = pi + 8;  ps[ 6] = pi + 11; ps[ 7] = pi + 4;\n          ps[ 0] = tmp1;   ps[ 1] = pi + 7;  ps[ 2] = pi + 6;  ps[ 3] = pi + 5;\n          tmp1 = cs[2]; tmp2 = cs[3];\n          cs[2] = tmp2;   cs[3] = ci;\n          cs[0] = tmp1;   cs[1] = ci + 1;\n          break;\n        // prettier-ignore\n        case 2:\n          tmp1 = ps[15];\n          tmp2 = ps[11];\n          ps[12] = ps[3]; ps[13] = pi + 0; ps[14] = pi + 1;  ps[15] = pi + 2;\n          ps[ 8] = ps[7]; ps[ 9] = pi + 9; ps[10] = pi + 10; ps[11] = pi + 3;\n          ps[ 4] = tmp2;  ps[ 5] = pi + 8; ps[ 6] = pi + 11; ps[ 7] = pi + 4;\n          ps[ 0] = tmp1;  ps[ 1] = pi + 7; ps[ 2] = pi + 6;  ps[ 3] = pi + 5;\n          tmp1 = cs[3];\n          cs[2] = cs[1]; cs[3] = ci;\n          cs[0] = tmp1;  cs[1] = ci + 1;\n          break;\n        // prettier-ignore\n        case 3:\n          ps[12] = ps[0];  ps[13] = pi + 0;  ps[14] = pi + 1;  ps[15] = pi + 2;\n          ps[ 8] = ps[1];  ps[ 9] = pi + 9;  ps[10] = pi + 10; ps[11] = pi + 3;\n          ps[ 4] = ps[2];  ps[ 5] = pi + 8;  ps[ 6] = pi + 11; ps[ 7] = pi + 4;\n          ps[ 0] = ps[3];  ps[ 1] = pi + 7;  ps[ 2] = pi + 6;  ps[ 3] = pi + 5;\n          cs[2] = cs[0]; cs[3] = ci;\n          cs[0] = cs[1]; cs[1] = ci + 1;\n          break;\n      }\n      this.figures.push({\n        type: \"patch\",\n        coords: new Int32Array(ps), // making copies of ps and cs\n        colors: new Int32Array(cs),\n      });\n    }\n  }\n\n  _buildFigureFromPatch(index) {\n    const figure = this.figures[index];\n    assert(figure.type === \"patch\", \"Unexpected patch mesh figure\");\n\n    const coords = this.coords,\n      colors = this.colors;\n    const pi = figure.coords;\n    const ci = figure.colors;\n\n    const figureMinX = Math.min(\n      coords[pi[0]][0],\n      coords[pi[3]][0],\n      coords[pi[12]][0],\n      coords[pi[15]][0]\n    );\n    const figureMinY = Math.min(\n      coords[pi[0]][1],\n      coords[pi[3]][1],\n      coords[pi[12]][1],\n      coords[pi[15]][1]\n    );\n    const figureMaxX = Math.max(\n      coords[pi[0]][0],\n      coords[pi[3]][0],\n      coords[pi[12]][0],\n      coords[pi[15]][0]\n    );\n    const figureMaxY = Math.max(\n      coords[pi[0]][1],\n      coords[pi[3]][1],\n      coords[pi[12]][1],\n      coords[pi[15]][1]\n    );\n    let splitXBy = Math.ceil(\n      ((figureMaxX - figureMinX) * MeshShading.TRIANGLE_DENSITY) /\n        (this.bounds[2] - this.bounds[0])\n    );\n    splitXBy = Math.max(\n      MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,\n      Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitXBy)\n    );\n    let splitYBy = Math.ceil(\n      ((figureMaxY - figureMinY) * MeshShading.TRIANGLE_DENSITY) /\n        (this.bounds[3] - this.bounds[1])\n    );\n    splitYBy = Math.max(\n      MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,\n      Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitYBy)\n    );\n\n    const verticesPerRow = splitXBy + 1;\n    const figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow);\n    const figureColors = new Int32Array((splitYBy + 1) * verticesPerRow);\n    let k = 0;\n    const cl = new Uint8Array(3),\n      cr = new Uint8Array(3);\n    const c0 = colors[ci[0]],\n      c1 = colors[ci[1]],\n      c2 = colors[ci[2]],\n      c3 = colors[ci[3]];\n    const bRow = getB(splitYBy),\n      bCol = getB(splitXBy);\n    for (let row = 0; row <= splitYBy; row++) {\n      cl[0] = ((c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy) | 0;\n      cl[1] = ((c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy) | 0;\n      cl[2] = ((c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy) | 0;\n\n      cr[0] = ((c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy) | 0;\n      cr[1] = ((c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy) | 0;\n      cr[2] = ((c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy) | 0;\n\n      for (let col = 0; col <= splitXBy; col++, k++) {\n        if (\n          (row === 0 || row === splitYBy) &&\n          (col === 0 || col === splitXBy)\n        ) {\n          continue;\n        }\n        let x = 0,\n          y = 0;\n        let q = 0;\n        for (let i = 0; i <= 3; i++) {\n          for (let j = 0; j <= 3; j++, q++) {\n            const m = bRow[row][i] * bCol[col][j];\n            x += coords[pi[q]][0] * m;\n            y += coords[pi[q]][1] * m;\n          }\n        }\n        figureCoords[k] = coords.length;\n        coords.push([x, y]);\n        figureColors[k] = colors.length;\n        const newColor = new Uint8Array(3);\n        newColor[0] = ((cl[0] * (splitXBy - col) + cr[0] * col) / splitXBy) | 0;\n        newColor[1] = ((cl[1] * (splitXBy - col) + cr[1] * col) / splitXBy) | 0;\n        newColor[2] = ((cl[2] * (splitXBy - col) + cr[2] * col) / splitXBy) | 0;\n        colors.push(newColor);\n      }\n    }\n    figureCoords[0] = pi[0];\n    figureColors[0] = ci[0];\n    figureCoords[splitXBy] = pi[3];\n    figureColors[splitXBy] = ci[1];\n    figureCoords[verticesPerRow * splitYBy] = pi[12];\n    figureColors[verticesPerRow * splitYBy] = ci[2];\n    figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15];\n    figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3];\n\n    this.figures[index] = {\n      type: \"lattice\",\n      coords: figureCoords,\n      colors: figureColors,\n      verticesPerRow,\n    };\n  }\n\n  _updateBounds() {\n    let minX = this.coords[0][0],\n      minY = this.coords[0][1],\n      maxX = minX,\n      maxY = minY;\n    for (let i = 1, ii = this.coords.length; i < ii; i++) {\n      const x = this.coords[i][0],\n        y = this.coords[i][1];\n      minX = minX > x ? x : minX;\n      minY = minY > y ? y : minY;\n      maxX = maxX < x ? x : maxX;\n      maxY = maxY < y ? y : maxY;\n    }\n    this.bounds = [minX, minY, maxX, maxY];\n  }\n\n  _packData() {\n    let i, ii, j, jj;\n\n    const coords = this.coords;\n    const coordsPacked = new Float32Array(coords.length * 2);\n    for (i = 0, j = 0, ii = coords.length; i < ii; i++) {\n      const xy = coords[i];\n      coordsPacked[j++] = xy[0];\n      coordsPacked[j++] = xy[1];\n    }\n    this.coords = coordsPacked;\n\n    const colors = this.colors;\n    const colorsPacked = new Uint8Array(colors.length * 3);\n    for (i = 0, j = 0, ii = colors.length; i < ii; i++) {\n      const c = colors[i];\n      colorsPacked[j++] = c[0];\n      colorsPacked[j++] = c[1];\n      colorsPacked[j++] = c[2];\n    }\n    this.colors = colorsPacked;\n\n    const figures = this.figures;\n    for (i = 0, ii = figures.length; i < ii; i++) {\n      const figure = figures[i],\n        ps = figure.coords,\n        cs = figure.colors;\n      for (j = 0, jj = ps.length; j < jj; j++) {\n        ps[j] *= 2;\n        cs[j] *= 3;\n      }\n    }\n  }\n\n  getIR() {\n    return [\n      \"Mesh\",\n      this.shadingType,\n      this.coords,\n      this.colors,\n      this.figures,\n      this.bounds,\n      this.bbox,\n      this.background,\n    ];\n  }\n}\n\nclass DummyShading extends BaseShading {\n  getIR() {\n    return [\"Dummy\"];\n  }\n}\n\nfunction getTilingPatternIR(operatorList, dict, color) {\n  const matrix = dict.getArray(\"Matrix\");\n  const bbox = Util.normalizeRect(dict.getArray(\"BBox\"));\n  const xstep = dict.get(\"XStep\");\n  const ystep = dict.get(\"YStep\");\n  const paintType = dict.get(\"PaintType\");\n  const tilingType = dict.get(\"TilingType\");\n\n  // Ensure that the pattern has a non-zero width and height, to prevent errors\n  // in `pattern_helper.js` (fixes issue8330.pdf).\n  if (bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) {\n    throw new FormatError(`Invalid getTilingPatternIR /BBox array: [${bbox}].`);\n  }\n\n  return [\n    \"TilingPattern\",\n    color,\n    operatorList,\n    matrix,\n    bbox,\n    xstep,\n    ystep,\n    paintType,\n    tilingType,\n  ];\n}\n\nexport { clearPatternCaches, getTilingPatternIR, Pattern };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as calibrib.ttf.\nconst CalibriBoldFactors = [\n  1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566,\n  0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.54657,\n  0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n  0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859,\n  0.92138, 0.83908, 0.7762, 0.73293, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356,\n  0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.9121, 0.86943, 0.79795,\n  0.88198, 0.77958, 0.70864, 0.81055, 0.90399, 0.88653, 0.96017, 0.82577,\n  0.77892, 0.78257, 0.97507, 1.54657, 0.97507, 0.85284, 0.89552, 0.90176,\n  0.88762, 0.8785, 0.75241, 0.8785, 0.90518, 0.95015, 0.77618, 0.8785, 0.88401,\n  0.91916, 0.86304, 0.88401, 0.91488, 0.8785, 0.8801, 0.8785, 0.8785, 0.91343,\n  0.7173, 1.04106, 0.8785, 0.85075, 0.95794, 0.82616, 0.85162, 0.79492, 0.88331,\n  1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133,\n  1.7801, 0.89552, 1.24487, 1.13254, 1.12401, 0.96839, 0.85284, 0.68787,\n  0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1, 1.07463, 1, 0.91056,\n  0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133, 0.75859, 0.83908,\n  0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539, 0.73293, 0.73133,\n  0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958, 0.95958, 0.88506,\n  0.9121, 0.86943, 0.86943, 0.86943, 0.86943, 0.86943, 0.85284, 0.87508,\n  0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795, 0.90807, 0.88762,\n  0.88762, 0.88762, 0.88762, 0.88762, 0.88762, 0.8715, 0.75241, 0.90518,\n  0.90518, 0.90518, 0.90518, 0.88401, 0.88401, 0.88401, 0.88401, 0.8785, 0.8785,\n  0.8801, 0.8801, 0.8801, 0.8801, 0.8801, 0.90747, 0.89049, 0.8785, 0.8785,\n  0.8785, 0.8785, 0.85162, 0.8785, 0.85162, 0.83908, 0.88762, 0.83908, 0.88762,\n  0.83908, 0.88762, 0.73293, 0.75241, 0.73293, 0.75241, 0.73293, 0.75241,\n  0.73293, 0.75241, 0.87289, 0.83016, 0.88506, 0.93125, 0.73133, 0.90518,\n  0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518,\n  0.81921, 0.77618, 0.81921, 0.77618, 0.81921, 0.77618, 1, 1, 0.87356, 0.8785,\n  0.91075, 0.89608, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401,\n  0.95958, 0.88401, 0.95958, 0.88401, 0.76229, 0.90167, 0.59526, 0.91916, 1, 1,\n  0.86304, 0.69225, 0.88401, 1, 1, 0.70424, 0.79468, 0.91926, 0.88175, 0.70823,\n  0.94903, 0.9121, 0.8785, 1, 1, 0.9121, 0.8785, 0.87802, 0.88656, 0.8785,\n  0.86943, 0.8801, 0.86943, 0.8801, 0.86943, 0.8801, 0.87402, 0.89291, 0.77958,\n  0.91343, 1, 1, 0.77958, 0.91343, 0.70864, 0.7173, 0.70864, 0.7173, 0.70864,\n  0.7173, 0.70864, 0.7173, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399,\n  0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785,\n  0.90399, 0.8785, 0.96017, 0.95794, 0.77892, 0.85162, 0.77892, 0.78257,\n  0.79492, 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908,\n  0.88762, 0.77539, 0.8715, 0.87508, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528,\n  1.20528, 1, 1.15543, 0.70674, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161,\n  1.06303, 0.83908, 0.80352, 0.57184, 0.6965, 0.56289, 0.82001, 0.56029,\n  0.81235, 1.02988, 0.83908, 0.7762, 0.68156, 0.80367, 0.73133, 0.78257,\n  0.87356, 0.86943, 0.95958, 0.75727, 0.89019, 1.04924, 0.9121, 0.7648, 0.86943,\n  0.87356, 0.79795, 0.78275, 0.81055, 0.77892, 0.9762, 0.82577, 0.99819,\n  0.84896, 0.95958, 0.77892, 0.96108, 1.01407, 0.89049, 1.02988, 0.94211,\n  0.96108, 0.8936, 0.84021, 0.87842, 0.96399, 0.79109, 0.89049, 1.00813,\n  1.02988, 0.86077, 0.87445, 0.92099, 0.84723, 0.86513, 0.8801, 0.75638,\n  0.85714, 0.78216, 0.79586, 0.87965, 0.94211, 0.97747, 0.78287, 0.97926,\n  0.84971, 1.02988, 0.94211, 0.8801, 0.94211, 0.84971, 0.73133, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 0.90264, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  0.90518, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90548, 1, 1, 1, 1, 1, 1,\n  0.96017, 0.95794, 0.96017, 0.95794, 0.96017, 0.95794, 0.77892, 0.85162, 1, 1,\n  0.89552, 0.90527, 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.92794, 0.87012,\n  0.87012, 0.87012, 0.89552, 0.89552, 1.42259, 0.71143, 1.06152, 1, 1, 1.03372,\n  1.03372, 0.97171, 1.4956, 2.2807, 0.93835, 0.83406, 0.91133, 0.84107, 0.91133,\n  1, 1, 1, 0.72021, 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90527,\n  1.81055, 0.90527, 1.81055, 1.31006, 1.53711, 0.94434, 1.08696, 1, 0.95018,\n  0.77192, 0.85284, 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747,\n  0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572,\n  0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1,\n  0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriBoldMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as calibriz.ttf.\nconst CalibriBoldItalicFactors = [\n  1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566,\n  0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.56239,\n  0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n  0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859,\n  0.92138, 0.83908, 0.7762, 0.71805, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356,\n  0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.90872, 0.85938, 0.79795,\n  0.87068, 0.77958, 0.69766, 0.81055, 0.90399, 0.88653, 0.96068, 0.82577,\n  0.77892, 0.78257, 0.97507, 1.529, 0.97507, 0.85284, 0.89552, 0.90176, 0.94908,\n  0.86411, 0.74012, 0.86411, 0.88323, 0.95015, 0.86411, 0.86331, 0.88401,\n  0.91916, 0.86304, 0.88401, 0.9039, 0.86331, 0.86331, 0.86411, 0.86411,\n  0.90464, 0.70852, 1.04106, 0.86331, 0.84372, 0.95794, 0.82616, 0.84548,\n  0.79492, 0.88331, 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133,\n  0.89552, 0.91133, 1.7801, 0.89552, 1.24487, 1.13254, 1.19129, 0.96839,\n  0.85284, 0.68787, 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1,\n  1.07463, 1, 0.91056, 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133,\n  0.75859, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539,\n  0.71805, 0.73133, 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958,\n  0.95958, 0.88506, 0.90872, 0.85938, 0.85938, 0.85938, 0.85938, 0.85938,\n  0.85284, 0.87068, 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795,\n  0.90807, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.85887,\n  0.74012, 0.88323, 0.88323, 0.88323, 0.88323, 0.88401, 0.88401, 0.88401,\n  0.88401, 0.8785, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331,\n  0.90747, 0.89049, 0.86331, 0.86331, 0.86331, 0.86331, 0.84548, 0.86411,\n  0.84548, 0.83908, 0.94908, 0.83908, 0.94908, 0.83908, 0.94908, 0.71805,\n  0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.87289,\n  0.79538, 0.88506, 0.92726, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133,\n  0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.81921, 0.86411, 0.81921,\n  0.86411, 0.81921, 0.86411, 1, 1, 0.87356, 0.86331, 0.91075, 0.8777, 0.95958,\n  0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958,\n  0.88401, 0.76467, 0.90167, 0.59526, 0.91916, 1, 1, 0.86304, 0.69225, 0.88401,\n  1, 1, 0.70424, 0.77312, 0.91926, 0.88175, 0.70823, 0.94903, 0.90872, 0.86331,\n  1, 1, 0.90872, 0.86331, 0.86906, 0.88116, 0.86331, 0.85938, 0.86331, 0.85938,\n  0.86331, 0.85938, 0.86331, 0.87402, 0.86549, 0.77958, 0.90464, 1, 1, 0.77958,\n  0.90464, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766,\n  0.70852, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399, 0.86331, 0.90399,\n  0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399,\n  0.86331, 0.96068, 0.95794, 0.77892, 0.84548, 0.77892, 0.78257, 0.79492,\n  0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908, 0.94908,\n  0.77539, 0.85887, 0.87068, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528, 1.20528,\n  1, 1.15543, 0.70088, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161, 1.48387,\n  0.83908, 0.80352, 0.57118, 0.6965, 0.56347, 0.79179, 0.55853, 0.80346,\n  1.02988, 0.83908, 0.7762, 0.67174, 0.86036, 0.73133, 0.78257, 0.87356,\n  0.86441, 0.95958, 0.75727, 0.89019, 1.04924, 0.90872, 0.74889, 0.85938,\n  0.87891, 0.79795, 0.7957, 0.81055, 0.77892, 0.97447, 0.82577, 0.97466,\n  0.87179, 0.95958, 0.77892, 0.94252, 0.95612, 0.8753, 1.02988, 0.92733,\n  0.94252, 0.87411, 0.84021, 0.8728, 0.95612, 0.74081, 0.8753, 1.02189, 1.02988,\n  0.84814, 0.87445, 0.91822, 0.84723, 0.85668, 0.86331, 0.81344, 0.87581,\n  0.76422, 0.82046, 0.96057, 0.92733, 0.99375, 0.78022, 0.95452, 0.86015,\n  1.02988, 0.92733, 0.86331, 0.92733, 0.86015, 0.73133, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 0.90631, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.88323, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85174, 1, 1, 1, 1, 1, 1, 0.96068, 0.95794,\n  0.96068, 0.95794, 0.96068, 0.95794, 0.77892, 0.84548, 1, 1, 0.89552, 0.90527,\n  1, 0.90363, 0.92794, 0.92794, 0.92794, 0.89807, 0.87012, 0.87012, 0.87012,\n  0.89552, 0.89552, 1.42259, 0.71094, 1.06152, 1, 1, 1.03372, 1.03372, 0.97171,\n  1.4956, 2.2807, 0.92972, 0.83406, 0.91133, 0.83326, 0.91133, 1, 1, 1, 0.72021,\n  1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90616, 1.81055, 0.90527,\n  1.81055, 1.3107, 1.53711, 0.94434, 1.08696, 1, 0.95018, 0.77192, 0.85284,\n  0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747, 0.90747, 0.85356,\n  0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572,\n  0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1, 0.99862, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriBoldItalicMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as calibrii.ttf.\nconst CalibriItalicFactors = [\n  1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601,\n  0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39543, 0.91133,\n  0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n  0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071,\n  0.8675, 0.81552, 0.72346, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685,\n  0.6377, 0.77892, 0.75593, 1.02638, 0.89249, 0.84118, 0.77452, 0.85374,\n  0.75186, 0.67789, 0.79776, 0.88844, 0.85066, 0.94309, 0.77818, 0.7306,\n  0.76659, 1.10369, 1.38313, 1.10369, 1.06139, 0.89552, 0.8739, 0.9245, 0.9245,\n  0.83203, 0.9245, 0.85865, 1.09842, 0.9245, 0.9245, 1.03297, 1.07692, 0.90918,\n  1.03297, 0.94959, 0.9245, 0.92274, 0.9245, 0.9245, 1.02933, 0.77832, 1.20562,\n  0.9245, 0.8916, 0.98986, 0.86621, 0.89453, 0.79004, 0.94152, 1.77256, 0.94152,\n  0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.91729, 0.89552,\n  1.17889, 1.13254, 1.16359, 0.92098, 0.85284, 0.68787, 0.71353, 0.84737,\n  0.90747, 1.0088, 1.0044, 0.87683, 1, 1.09091, 1, 0.92229, 0.739, 1.15642,\n  0.92098, 0.76288, 0.80504, 0.80972, 0.75859, 0.8675, 0.8675, 0.8675, 0.8675,\n  0.8675, 0.8675, 0.76318, 0.72346, 0.73206, 0.73206, 0.73206, 0.73206, 0.90685,\n  0.90685, 0.90685, 0.90685, 0.86477, 0.89249, 0.84118, 0.84118, 0.84118,\n  0.84118, 0.84118, 0.85284, 0.84557, 0.88844, 0.88844, 0.88844, 0.88844,\n  0.7306, 0.77452, 0.86331, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245,\n  0.84843, 0.83203, 0.85865, 0.85865, 0.85865, 0.85865, 0.82601, 0.82601,\n  0.82601, 0.82601, 0.94469, 0.9245, 0.92274, 0.92274, 0.92274, 0.92274,\n  0.92274, 0.90747, 0.86651, 0.9245, 0.9245, 0.9245, 0.9245, 0.89453, 0.9245,\n  0.89453, 0.8675, 0.9245, 0.8675, 0.9245, 0.8675, 0.9245, 0.72346, 0.83203,\n  0.72346, 0.83203, 0.72346, 0.83203, 0.72346, 0.83203, 0.85193, 0.8875,\n  0.86477, 0.99034, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865,\n  0.73206, 0.85865, 0.73206, 0.85865, 0.81105, 0.9245, 0.81105, 0.9245, 0.81105,\n  0.9245, 1, 1, 0.86275, 0.9245, 0.90872, 0.93591, 0.90685, 0.82601, 0.90685,\n  0.82601, 0.90685, 0.82601, 0.90685, 1.03297, 0.90685, 0.82601, 0.77896,\n  1.05611, 0.6377, 1.07692, 1, 1, 0.90918, 0.75593, 1.03297, 1, 1, 0.76032,\n  0.9375, 0.98156, 0.93407, 0.77261, 1.11429, 0.89249, 0.9245, 1, 1, 0.89249,\n  0.9245, 0.92534, 0.86698, 0.9245, 0.84118, 0.92274, 0.84118, 0.92274, 0.84118,\n  0.92274, 0.8667, 0.86291, 0.75186, 1.02933, 1, 1, 0.75186, 1.02933, 0.67789,\n  0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 1, 1, 0.79776,\n  0.97655, 0.79776, 1.23023, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245,\n  0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.94309, 0.98986, 0.7306,\n  0.89453, 0.7306, 0.76659, 0.79004, 0.76659, 0.79004, 0.76659, 0.79004,\n  1.09231, 0.54873, 0.8675, 0.9245, 0.76318, 0.84843, 0.84557, 0.86651, 1, 1,\n  0.79776, 1.20562, 1.18622, 1.18622, 1, 1.1437, 0.67009, 0.96334, 0.93695,\n  1.35191, 1.40909, 0.95161, 1.48387, 0.8675, 0.90861, 0.6192, 0.7363, 0.64824,\n  0.82411, 0.56321, 0.85696, 1.23516, 0.8675, 0.81552, 0.7286, 0.84134, 0.73206,\n  0.76659, 0.86275, 0.84369, 0.90685, 0.77892, 0.85871, 1.02638, 0.89249,\n  0.75828, 0.84118, 0.85984, 0.77452, 0.76466, 0.79776, 0.7306, 0.90782,\n  0.77818, 0.903, 0.87291, 0.90685, 0.7306, 0.99058, 1.03667, 0.94635, 1.23516,\n  0.9849, 0.99058, 0.92393, 0.8916, 0.942, 1.03667, 0.75026, 0.94635, 1.0297,\n  1.23516, 0.90918, 0.94048, 0.98217, 0.89746, 0.84153, 0.92274, 0.82507,\n  0.88832, 0.84438, 0.88178, 1.03525, 0.9849, 1.00225, 0.78086, 0.97248,\n  0.89404, 1.23516, 0.9849, 0.92274, 0.9849, 0.89404, 0.73206, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 0.89693, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85865,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90933, 1, 1, 1, 1, 1, 1, 0.94309,\n  0.98986, 0.94309, 0.98986, 0.94309, 0.98986, 0.7306, 0.89453, 1, 1, 0.89552,\n  0.90527, 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566,\n  1.2566, 0.89552, 0.89552, 1.42259, 0.68994, 1.03809, 1, 1, 1.0176, 1.0176,\n  1.11523, 1.4956, 2.01462, 0.97858, 0.82616, 0.91133, 0.83437, 0.91133, 1, 1,\n  1, 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90572, 1.81055,\n  0.90749, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589,\n  0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747,\n  0.85284, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8,\n  0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1,\n  0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriItalicMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as calibri.ttf.\nconst CalibriRegularFactors = [\n  1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601,\n  0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39016, 0.91133,\n  0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n  0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071,\n  0.8675, 0.81552, 0.73834, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685,\n  0.6377, 0.77892, 0.75593, 1.02638, 0.89385, 0.85122, 0.77452, 0.86503,\n  0.75186, 0.68887, 0.79776, 0.88844, 0.85066, 0.94258, 0.77818, 0.7306,\n  0.76659, 1.10369, 1.39016, 1.10369, 1.06139, 0.89552, 0.8739, 0.86128,\n  0.94469, 0.8457, 0.94469, 0.89464, 1.09842, 0.84636, 0.94469, 1.03297,\n  1.07692, 0.90918, 1.03297, 0.95897, 0.94469, 0.9482, 0.94469, 0.94469,\n  1.04692, 0.78223, 1.20562, 0.94469, 0.90332, 0.98986, 0.86621, 0.90527,\n  0.79004, 0.94152, 1.77256, 0.94152, 0.85284, 0.97801, 0.89552, 0.91133,\n  0.89552, 0.91133, 1.91729, 0.89552, 1.17889, 1.13254, 1.08707, 0.92098,\n  0.85284, 0.68787, 0.71353, 0.84737, 0.90747, 1.0088, 1.0044, 0.87683, 1,\n  1.09091, 1, 0.92229, 0.739, 1.15642, 0.92098, 0.76288, 0.80504, 0.80972,\n  0.75859, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.76318, 0.73834,\n  0.73206, 0.73206, 0.73206, 0.73206, 0.90685, 0.90685, 0.90685, 0.90685,\n  0.86477, 0.89385, 0.85122, 0.85122, 0.85122, 0.85122, 0.85122, 0.85284,\n  0.85311, 0.88844, 0.88844, 0.88844, 0.88844, 0.7306, 0.77452, 0.86331,\n  0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.8693, 0.8457, 0.89464,\n  0.89464, 0.89464, 0.89464, 0.82601, 0.82601, 0.82601, 0.82601, 0.94469,\n  0.94469, 0.9482, 0.9482, 0.9482, 0.9482, 0.9482, 0.90747, 0.86651, 0.94469,\n  0.94469, 0.94469, 0.94469, 0.90527, 0.94469, 0.90527, 0.8675, 0.86128, 0.8675,\n  0.86128, 0.8675, 0.86128, 0.73834, 0.8457, 0.73834, 0.8457, 0.73834, 0.8457,\n  0.73834, 0.8457, 0.85193, 0.92454, 0.86477, 0.9921, 0.73206, 0.89464, 0.73206,\n  0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.81105,\n  0.84636, 0.81105, 0.84636, 0.81105, 0.84636, 1, 1, 0.86275, 0.94469, 0.90872,\n  0.95786, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685,\n  1.03297, 0.90685, 0.82601, 0.77741, 1.05611, 0.6377, 1.07692, 1, 1, 0.90918,\n  0.75593, 1.03297, 1, 1, 0.76032, 0.90452, 0.98156, 1.11842, 0.77261, 1.11429,\n  0.89385, 0.94469, 1, 1, 0.89385, 0.94469, 0.95877, 0.86901, 0.94469, 0.85122,\n  0.9482, 0.85122, 0.9482, 0.85122, 0.9482, 0.8667, 0.90016, 0.75186, 1.04692,\n  1, 1, 0.75186, 1.04692, 0.68887, 0.78223, 0.68887, 0.78223, 0.68887, 0.78223,\n  0.68887, 0.78223, 1, 1, 0.79776, 0.92188, 0.79776, 1.23023, 0.88844, 0.94469,\n  0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469,\n  0.88844, 0.94469, 0.94258, 0.98986, 0.7306, 0.90527, 0.7306, 0.76659, 0.79004,\n  0.76659, 0.79004, 0.76659, 0.79004, 1.09231, 0.54873, 0.8675, 0.86128,\n  0.76318, 0.8693, 0.85311, 0.86651, 1, 1, 0.79776, 1.20562, 1.18622, 1.18622,\n  1, 1.1437, 0.67742, 0.96334, 0.93695, 1.35191, 1.40909, 0.95161, 1.48387,\n  0.86686, 0.90861, 0.62267, 0.74359, 0.65649, 0.85498, 0.56963, 0.88254,\n  1.23516, 0.8675, 0.81552, 0.75443, 0.84503, 0.73206, 0.76659, 0.86275,\n  0.85122, 0.90685, 0.77892, 0.85746, 1.02638, 0.89385, 0.75657, 0.85122,\n  0.86275, 0.77452, 0.74171, 0.79776, 0.7306, 0.95165, 0.77818, 0.89772,\n  0.88831, 0.90685, 0.7306, 0.98142, 1.02191, 0.96576, 1.23516, 0.99018,\n  0.98142, 0.9236, 0.89258, 0.94035, 1.02191, 0.78848, 0.96576, 0.9561, 1.23516,\n  0.90918, 0.92578, 0.95424, 0.89746, 0.83969, 0.9482, 0.80113, 0.89442,\n  0.85208, 0.86155, 0.98022, 0.99018, 1.00452, 0.81209, 0.99247, 0.89181,\n  1.23516, 0.99018, 0.9482, 0.99018, 0.89181, 0.73206, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 0.88844, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89464, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.96766, 1, 1, 1, 1, 1, 1, 0.94258, 0.98986,\n  0.94258, 0.98986, 0.94258, 0.98986, 0.7306, 0.90527, 1, 1, 0.89552, 0.90527,\n  1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566, 1.2566,\n  0.89552, 0.89552, 1.42259, 0.69043, 1.03809, 1, 1, 1.0176, 1.0176, 1.11523,\n  1.4956, 2.01462, 0.99331, 0.82616, 0.91133, 0.84286, 0.91133, 1, 1, 1,\n  0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90527, 1.81055,\n  0.90527, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589,\n  0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747,\n  0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8,\n  0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1,\n  0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1,\n  1.07185, 0.99413, 0.96334, 1.08065, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriRegularMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\nexport {\n  CalibriBoldFactors,\n  CalibriBoldItalicFactors,\n  CalibriBoldItalicMetrics,\n  CalibriBoldMetrics,\n  CalibriItalicFactors,\n  CalibriItalicMetrics,\n  CalibriRegularFactors,\n  CalibriRegularMetrics,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as NimbusSans-Bold.otf.\nconst HelveticaBoldFactors = [\n  0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977,\n  1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n  0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n  0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999,\n  0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n  1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001,\n  1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001,\n  1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998,\n  0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026,\n  1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026,\n  0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1,\n  0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973,\n  0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003,\n  1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006,\n  0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977,\n  0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001,\n  1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022,\n  1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977,\n  0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973,\n  0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973,\n  0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026,\n  1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026,\n  1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n  0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n  0.99977, 0.99973, 0.99977, 1.03374, 0.99977, 1.00026, 1.00001, 0.99973,\n  1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n  1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n  0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006,\n  1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.00042, 0.99973, 0.99973, 1.0006,\n  0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.03828,\n  1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026,\n  0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n  1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977,\n  0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n  0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977,\n  1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977,\n  1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001,\n  1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1,\n  0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998,\n  0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n  0.99998, 1.00034, 0.99977, 1, 0.99997, 1.00026, 1.00078, 1.00036, 0.99973,\n  1.00013, 1.0006, 0.99977, 0.99977, 0.99988, 0.85148, 1.00001, 1.00026,\n  0.99977, 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 1.00069,\n  1.00022, 0.99977, 1.00001, 0.99984, 1.00026, 1.00001, 1.00024, 1.00001,\n  0.9999, 1, 1.0006, 1.00001, 1.00041, 0.99962, 1.00026, 1.0006, 0.99995,\n  1.00041, 0.99942, 0.99973, 0.99927, 1.00082, 0.99902, 1.00026, 1.00087,\n  1.0006, 1.00069, 0.99973, 0.99867, 0.99973, 0.9993, 1.00026, 1.00049, 1.00056,\n  1, 0.99988, 0.99935, 0.99995, 0.99954, 1.00055, 0.99945, 1.00032, 1.0006,\n  0.99995, 1.00026, 0.99995, 1.00032, 1.00001, 1.00008, 0.99971, 1.00019,\n  0.9994, 1.00001, 1.0006, 1.00044, 0.99973, 1.00023, 1.00047, 1, 0.99942,\n  0.99561, 0.99989, 1.00035, 0.99977, 1.00035, 0.99977, 1.00019, 0.99944,\n  1.00001, 1.00021, 0.99926, 1.00035, 1.00035, 0.99942, 1.00048, 0.99999,\n  0.99977, 1.00022, 1.00035, 1.00001, 0.99977, 1.00026, 0.99989, 1.00057,\n  1.00001, 0.99936, 1.00052, 1.00012, 0.99996, 1.00043, 1, 1.00035, 0.9994,\n  0.99976, 1.00035, 0.99973, 1.00052, 1.00041, 1.00119, 1.00037, 0.99973,\n  1.00002, 0.99986, 1.00041, 1.00041, 0.99902, 0.9996, 1.00034, 0.99999,\n  1.00026, 0.99999, 1.00026, 0.99973, 1.00052, 0.99973, 1, 0.99973, 1.00041,\n  1.00075, 0.9994, 1.0003, 0.99999, 1, 1.00041, 0.99955, 1, 0.99915, 0.99973,\n  0.99973, 1.00026, 1.00119, 0.99955, 0.99973, 1.0006, 0.99911, 1.0006, 1.00026,\n  0.99972, 1.00026, 0.99902, 1.00041, 0.99973, 0.99999, 1, 1, 1.00038, 1.0005,\n  1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1,\n  0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973,\n  0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998,\n  1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 0.99971, 1.00047, 1.00023, 1,\n  0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1, 1, 1, 1, 1, 1, 1,\n  0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027,\n  1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999,\n  0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n  1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n  1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n  1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n  1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n  1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625,\n  0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972,\n  0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1,\n  0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998,\n  0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaBoldMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as NimbusSans-BoldItalic.otf.\nconst HelveticaBoldItalicFactors = [\n  0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977,\n  1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n  0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n  0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999,\n  0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n  1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001,\n  1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001,\n  1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998,\n  0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026,\n  1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026,\n  0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1,\n  0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973,\n  0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003,\n  1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006,\n  0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977,\n  0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001,\n  1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022,\n  1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977,\n  0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973,\n  0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973,\n  0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026,\n  1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026,\n  1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n  0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n  0.99977, 0.99973, 0.99977, 1.0044, 0.99977, 1.00026, 1.00001, 0.99973,\n  1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n  1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n  0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006,\n  1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99971, 0.99973, 0.99973, 1.0006,\n  0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.01011,\n  1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026,\n  0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n  1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977,\n  0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n  0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977,\n  1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977,\n  1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001,\n  1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1,\n  0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998,\n  0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n  0.99998, 0.99998, 0.99977, 1, 1, 1.00026, 0.99969, 0.99972, 0.99981, 0.9998,\n  1.0006, 0.99977, 0.99977, 1.00022, 0.91155, 1.00001, 1.00026, 0.99977,\n  1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 0.99966, 1.00022,\n  1.00032, 1.00001, 0.99944, 1.00026, 1.00001, 0.99968, 1.00001, 1.00047, 1,\n  1.0006, 1.00001, 0.99981, 1.00101, 1.00026, 1.0006, 0.99948, 0.99981, 1.00064,\n  0.99973, 0.99942, 1.00101, 1.00061, 1.00026, 1.00069, 1.0006, 1.00014,\n  0.99973, 1.01322, 0.99973, 1.00065, 1.00026, 1.00012, 0.99923, 1, 1.00064,\n  1.00076, 0.99948, 1.00055, 1.00063, 1.00007, 0.99943, 1.0006, 0.99948,\n  1.00026, 0.99948, 0.99943, 1.00001, 1.00001, 1.00029, 1.00038, 1.00035,\n  1.00001, 1.0006, 1.0006, 0.99973, 0.99978, 1.00001, 1.00057, 0.99989, 0.99967,\n  0.99964, 0.99967, 0.99977, 0.99999, 0.99977, 1.00038, 0.99977, 1.00001,\n  0.99973, 1.00066, 0.99967, 0.99967, 1.00041, 0.99998, 0.99999, 0.99977,\n  1.00022, 0.99967, 1.00001, 0.99977, 1.00026, 0.99964, 1.00031, 1.00001,\n  0.99999, 0.99999, 1, 1.00023, 1, 1, 0.99999, 1.00035, 1.00001, 0.99999,\n  0.99973, 0.99977, 0.99999, 1.00058, 0.99973, 0.99973, 0.99955, 0.9995,\n  1.00026, 1.00026, 1.00032, 0.99989, 1.00034, 0.99999, 1.00026, 1.00026,\n  1.00026, 0.99973, 0.45998, 0.99973, 1.00026, 0.99973, 1.00001, 0.99999,\n  0.99982, 0.99994, 0.99996, 1, 1.00042, 1.00044, 1.00029, 1.00023, 0.99973,\n  0.99973, 1.00026, 0.99949, 1.00002, 0.99973, 1.0006, 1.0006, 1.0006, 0.99975,\n  1.00026, 1.00026, 1.00032, 0.98685, 0.99973, 1.00026, 1, 1, 0.99966, 1.00044,\n  1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1,\n  0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973,\n  0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998,\n  1.66475, 1, 0.99973, 0.99973, 1, 0.99973, 0.99971, 0.99978, 1, 1, 0.99991,\n  0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1.00098, 1, 1, 1, 1.00049, 1, 1,\n  0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027,\n  1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999,\n  0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n  1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n  1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n  1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n  1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n  1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625,\n  0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972,\n  0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1,\n  0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998,\n  0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaBoldItalicMetrics = { lineHeight: 1.35, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as NimbusSans-Italic.otf.\nconst HelveticaItalicFactors = [\n  0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001,\n  1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n  0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n  0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987,\n  1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n  1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022,\n  0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001,\n  1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973,\n  1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924,\n  0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1,\n  0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973,\n  0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968,\n  0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1,\n  0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002,\n  1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977,\n  1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977,\n  0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022,\n  0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973,\n  0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973,\n  0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973,\n  0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973,\n  0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n  0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.0288,\n  0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n  1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973,\n  1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n  1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006,\n  1.0006, 0.99946, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924,\n  0.99973, 0.99924, 0.99973, 1.06311, 0.99973, 1.00024, 0.99973, 0.99924,\n  0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00041, 0.9998,\n  0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016,\n  0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1,\n  1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.89547, 1.00026, 1.0006,\n  0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n  0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001,\n  1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1,\n  0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998,\n  0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n  0.99998, 1.00001, 1, 1.00054, 0.99977, 1.00084, 1.00007, 0.99973, 1.00013,\n  0.99924, 1.00001, 1.00001, 0.99945, 0.91221, 1.00001, 1.00026, 0.99977,\n  1.00022, 1.0006, 1.00001, 1.00001, 0.99999, 0.99977, 0.99933, 1.00022,\n  1.00054, 1.00001, 1.00065, 1.00026, 1.00001, 1.0001, 1.00001, 1.00052, 1,\n  1.0006, 1.00001, 0.99945, 0.99897, 0.99968, 0.99924, 1.00036, 0.99945,\n  0.99949, 1, 1.0006, 0.99897, 0.99918, 0.99968, 0.99911, 0.99924, 1, 0.99962,\n  1.01487, 1, 1.0005, 0.99973, 1.00012, 1.00043, 1, 0.99995, 0.99994, 1.00036,\n  0.99947, 1.00019, 1.00063, 1.00025, 0.99924, 1.00036, 0.99973, 1.00036,\n  1.00025, 1.00001, 1.00001, 1.00027, 1.0001, 1.00068, 1.00001, 1.0006, 1.0006,\n  1, 1.00008, 0.99957, 0.99972, 0.9994, 0.99954, 0.99975, 1.00051, 1.00001,\n  1.00019, 1.00001, 1.0001, 0.99986, 1.00001, 1.00001, 1.00038, 0.99954,\n  0.99954, 0.9994, 1.00066, 0.99999, 0.99977, 1.00022, 1.00054, 1.00001,\n  0.99977, 1.00026, 0.99975, 1.0001, 1.00001, 0.99993, 0.9995, 0.99955, 1.00016,\n  0.99978, 0.99974, 1.00019, 1.00022, 0.99955, 1.00053, 0.99973, 1.00089,\n  1.00005, 0.99967, 1.00048, 0.99973, 1.00002, 1.00034, 0.99973, 0.99973,\n  0.99964, 1.00006, 1.00066, 0.99947, 0.99973, 0.98894, 0.99973, 1, 0.44898, 1,\n  0.99946, 1, 1.00039, 1.00082, 0.99991, 0.99991, 0.99985, 1.00022, 1.00023,\n  1.00061, 1.00006, 0.99966, 0.99973, 0.99973, 0.99973, 1.00019, 1.0008, 1,\n  0.99924, 0.99924, 0.99924, 0.99983, 1.00044, 0.99973, 0.99964, 0.98332, 1,\n  0.99973, 1, 1, 0.99962, 0.99895, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016,\n  0.99977, 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924,\n  0.99924, 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267,\n  0.99999, 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023,\n  0.99973, 1.00423, 0.99925, 0.99999, 1, 0.99991, 0.99984, 1.00002, 1.00002,\n  1.00002, 1.00002, 1.00049, 1, 1.00245, 1, 1, 1, 1, 0.96329, 1, 1.20985,\n  1.39713, 1.00003, 0.8254, 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031,\n  1.00003, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6,\n  1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n  1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n  1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n  1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n  1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n  1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861,\n  0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.95317, 0.99999, 0.99999,\n  0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962,\n  1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaItalicMetrics = { lineHeight: 1.35, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as NimbusSans-Regular.otf.\nconst HelveticaRegularFactors = [\n  0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001,\n  1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n  0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n  0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987,\n  1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n  1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022,\n  0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001,\n  1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973,\n  1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924,\n  0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1,\n  0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973,\n  0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968,\n  0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1,\n  0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002,\n  1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977,\n  1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977,\n  0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022,\n  0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973,\n  0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973,\n  0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973,\n  0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973,\n  0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n  0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.04596,\n  0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n  1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973,\n  1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n  1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006,\n  1.0006, 1.00019, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924,\n  0.99973, 0.99924, 0.99973, 1.02572, 0.99973, 1.00005, 0.99973, 0.99924,\n  0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99999, 0.9998,\n  0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016,\n  0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1,\n  1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.84533, 1.00026, 1.0006,\n  0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n  0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001,\n  1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1,\n  0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998,\n  0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n  0.99998, 0.99928, 1, 0.99977, 1.00013, 1.00055, 0.99947, 0.99945, 0.99941,\n  0.99924, 1.00001, 1.00001, 1.0004, 0.91621, 1.00001, 1.00026, 0.99977,\n  1.00022, 1.0006, 1.00001, 1.00005, 0.99999, 0.99977, 1.00015, 1.00022,\n  0.99977, 1.00001, 0.99973, 1.00026, 1.00001, 1.00019, 1.00001, 0.99946, 1,\n  1.0006, 1.00001, 0.99978, 1.00045, 0.99973, 0.99924, 1.00023, 0.99978,\n  0.99966, 1, 1.00065, 1.00045, 1.00019, 0.99973, 0.99973, 0.99924, 1, 1,\n  0.96499, 1, 1.00055, 0.99973, 1.00008, 1.00027, 1, 0.9997, 0.99995, 1.00023,\n  0.99933, 1.00019, 1.00015, 1.00031, 0.99924, 1.00023, 0.99973, 1.00023,\n  1.00031, 1.00001, 0.99928, 1.00029, 1.00092, 1.00035, 1.00001, 1.0006, 1.0006,\n  1, 0.99988, 0.99975, 1, 1.00082, 0.99561, 0.9996, 1.00035, 1.00001, 0.99962,\n  1.00001, 1.00092, 0.99964, 1.00001, 0.99963, 0.99999, 1.00035, 1.00035,\n  1.00082, 0.99962, 0.99999, 0.99977, 1.00022, 1.00035, 1.00001, 0.99977,\n  1.00026, 0.9996, 0.99967, 1.00001, 1.00034, 1.00074, 1.00054, 1.00053,\n  1.00063, 0.99971, 0.99962, 1.00035, 0.99975, 0.99977, 0.99973, 1.00043,\n  0.99953, 1.0007, 0.99915, 0.99973, 1.00008, 0.99892, 1.00073, 1.00073,\n  1.00114, 0.99915, 1.00073, 0.99955, 0.99973, 1.00092, 0.99973, 1, 0.99998, 1,\n  1.0003, 1, 1.00043, 1.00001, 0.99969, 1.0003, 1, 1.00035, 1.00001, 0.9995, 1,\n  1.00092, 0.99973, 0.99973, 0.99973, 1.0007, 0.9995, 1, 0.99924, 1.0006,\n  0.99924, 0.99972, 1.00062, 0.99973, 1.00114, 1.00073, 1, 0.99955, 1, 1,\n  1.00047, 0.99968, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016, 0.99977,\n  1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924, 0.99924,\n  0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267, 0.99999,\n  0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973,\n  0.99971, 0.99925, 1.00023, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002,\n  1.00002, 1, 1, 1, 1, 1, 1, 1, 0.96329, 1, 1.20985, 1.39713, 1.00003, 0.8254,\n  1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031,\n  0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144,\n  1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n  1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n  1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n  1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n  1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n  1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026,\n  1.00026, 1.00026, 0.95317, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1,\n  0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaRegularMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\nexport {\n  HelveticaBoldFactors,\n  HelveticaBoldItalicFactors,\n  HelveticaBoldItalicMetrics,\n  HelveticaBoldMetrics,\n  HelveticaItalicFactors,\n  HelveticaItalicMetrics,\n  HelveticaRegularFactors,\n  HelveticaRegularMetrics,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Widths of glyphs in LiberationSans-Bold.ttf.\nconst LiberationSansBoldWidths = [\n  365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278,\n  333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333,\n  584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556,\n  722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n  611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611,\n  278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778,\n  556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333,\n  737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333,\n  333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722,\n  667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n  584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n  889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611,\n  611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556,\n  722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 719, 722, 611, 667,\n  556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611,\n  778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278,\n  278, 785, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 385, 611,\n  479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778,\n  611, 778, 611, 1000, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556,\n  667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722,\n  611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611,\n  500, 611, 500, 278, 556, 722, 556, 1000, 889, 778, 611, 667, 556, 611, 333,\n  333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 465, 722, 333, 853, 906,\n  474, 825, 927, 838, 278, 722, 722, 601, 719, 667, 611, 722, 778, 278, 722,\n  667, 833, 722, 644, 778, 722, 667, 600, 611, 667, 821, 667, 809, 802, 278,\n  667, 615, 451, 611, 278, 582, 615, 610, 556, 606, 475, 460, 611, 541, 278,\n  558, 556, 612, 556, 445, 611, 766, 619, 520, 684, 446, 582, 715, 576, 753,\n  845, 278, 582, 611, 582, 845, 667, 669, 885, 567, 711, 667, 278, 276, 556,\n  1094, 1062, 875, 610, 722, 622, 719, 722, 719, 722, 567, 712, 667, 904, 626,\n  719, 719, 610, 702, 833, 722, 778, 719, 667, 722, 611, 622, 854, 667, 730,\n  703, 1005, 1019, 870, 979, 719, 711, 1031, 719, 556, 618, 615, 417, 635, 556,\n  709, 497, 615, 615, 500, 635, 740, 604, 611, 604, 611, 556, 490, 556, 875,\n  556, 615, 581, 833, 844, 729, 854, 615, 552, 854, 583, 556, 556, 611, 417,\n  552, 556, 278, 281, 278, 969, 906, 611, 500, 615, 556, 604, 778, 611, 487,\n  447, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1000, 1000, 552,\n  278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1000, 1000, 240, 479, 333,\n  333, 604, 333, 167, 396, 556, 556, 1094, 556, 885, 489, 1115, 1000, 768, 600,\n  834, 834, 834, 834, 1000, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713,\n  584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604,\n  708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n  708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n  708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n  708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n  604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n  611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333,\n  333, 333, 333, 333, 333,\n];\n\n// Char code of glyphs in LiberationSans-Bold.ttf.\nconst LiberationSansBoldMapping = [\n  -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n  67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n  86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n  104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n  119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n  168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n  184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n  199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n  214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n  229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n  244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n  259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n  274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n  289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n  304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n  319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n  334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n  349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n  364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n  379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n  539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n  905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n  922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n  938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n  953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n  968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n  1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n  1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n  1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n  1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n  1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n  1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n  1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n  1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n  8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n  8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n  8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n  8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n  8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n  9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n  9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n  9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n  9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n  9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n  9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\n// Widths of glyphs in LiberationSans-BoldItalic.ttf.\nconst LiberationSansBoldItalicWidths = [\n  365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278,\n  333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333,\n  584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556,\n  722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n  611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611,\n  278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778,\n  556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333,\n  737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333,\n  333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722,\n  667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n  584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n  889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611,\n  611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556,\n  722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 740, 722, 611, 667,\n  556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611,\n  778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278,\n  278, 782, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 396, 611,\n  479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778,\n  611, 778, 611, 1000, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556,\n  667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722,\n  611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611,\n  500, 611, 500, 278, 556, 722, 556, 1000, 889, 778, 611, 667, 556, 611, 333,\n  333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 722, 333, 854, 906,\n  473, 844, 930, 847, 278, 722, 722, 610, 671, 667, 611, 722, 778, 278, 722,\n  667, 833, 722, 657, 778, 718, 667, 590, 611, 667, 822, 667, 829, 781, 278,\n  667, 620, 479, 611, 278, 591, 620, 621, 556, 610, 479, 492, 611, 558, 278,\n  566, 556, 603, 556, 450, 611, 712, 605, 532, 664, 409, 591, 704, 578, 773,\n  834, 278, 591, 611, 591, 834, 667, 667, 886, 614, 719, 667, 278, 278, 556,\n  1094, 1042, 854, 622, 719, 677, 719, 722, 708, 722, 614, 722, 667, 927, 643,\n  719, 719, 615, 687, 833, 722, 778, 719, 667, 722, 611, 677, 781, 667, 729,\n  708, 979, 989, 854, 1000, 708, 719, 1042, 729, 556, 619, 604, 534, 618, 556,\n  736, 510, 611, 611, 507, 622, 740, 604, 611, 611, 611, 556, 889, 556, 885,\n  556, 646, 583, 889, 935, 707, 854, 594, 552, 865, 589, 556, 556, 611, 469,\n  563, 556, 278, 278, 278, 969, 906, 611, 507, 619, 556, 611, 778, 611, 575,\n  467, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1000, 1000, 552,\n  278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1000, 1000, 240, 479, 333,\n  333, 604, 333, 167, 396, 556, 556, 1104, 556, 885, 516, 1146, 1000, 768, 600,\n  834, 834, 834, 834, 999, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713,\n  584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604,\n  708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n  708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n  708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n  708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n  604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n  611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333,\n  333, 333, 333, 333, 333,\n];\n\n// Char code of glyphs in LiberationSans-BoldItalic.ttf.\nconst LiberationSansBoldItalicMapping = [\n  -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n  67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n  86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n  104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n  119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n  168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n  184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n  199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n  214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n  229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n  244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n  259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n  274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n  289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n  304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n  319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n  334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n  349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n  364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n  379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n  539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n  905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n  922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n  938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n  953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n  968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n  1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n  1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n  1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n  1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n  1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n  1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n  1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n  1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n  8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n  8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n  8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n  8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n  8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n  9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n  9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n  9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n  9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n  9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n  9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\n// Widths of glyphs in LiberationSans-Italic.ttf.\nconst LiberationSansItalicWidths = [\n  365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278,\n  333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278,\n  584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500,\n  667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n  611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556,\n  222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722,\n  500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333,\n  737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333,\n  333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722,\n  667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n  584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n  889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556,\n  556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556,\n  667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 625, 722, 556, 667,\n  556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556,\n  778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278,\n  278, 733, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 281, 556,\n  400, 556, 222, 722, 556, 722, 556, 722, 556, 615, 723, 556, 778, 556, 778,\n  556, 778, 556, 1000, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500,\n  667, 500, 667, 500, 611, 278, 611, 354, 611, 278, 722, 556, 722, 556, 722,\n  556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611,\n  500, 611, 500, 222, 556, 667, 556, 1000, 889, 778, 611, 667, 500, 611, 278,\n  333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 789, 846,\n  389, 794, 865, 775, 222, 667, 667, 570, 671, 667, 611, 722, 778, 278, 667,\n  667, 833, 722, 648, 778, 725, 667, 600, 611, 667, 837, 667, 831, 761, 278,\n  667, 570, 439, 555, 222, 550, 570, 571, 500, 556, 439, 463, 555, 542, 222,\n  500, 492, 548, 500, 447, 556, 670, 573, 486, 603, 374, 550, 652, 546, 728,\n  779, 222, 550, 556, 550, 779, 667, 667, 843, 544, 708, 667, 278, 278, 500,\n  1066, 982, 844, 589, 715, 639, 724, 667, 651, 667, 544, 704, 667, 917, 614,\n  715, 715, 589, 686, 833, 722, 778, 725, 667, 722, 611, 639, 795, 667, 727,\n  673, 920, 923, 805, 886, 651, 694, 1022, 682, 556, 562, 522, 493, 553, 556,\n  688, 465, 556, 556, 472, 564, 686, 550, 556, 556, 556, 500, 833, 500, 835,\n  500, 572, 518, 830, 851, 621, 736, 526, 492, 752, 534, 556, 556, 556, 378,\n  496, 500, 222, 222, 222, 910, 828, 556, 472, 565, 500, 556, 778, 556, 492,\n  339, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1000, 1000, 552,\n  222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1000, 1000, 188, 354, 333,\n  333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1083, 1000, 768, 600,\n  834, 834, 834, 834, 1000, 500, 998, 500, 1000, 500, 500, 494, 612, 823, 713,\n  584, 549, 713, 979, 719, 274, 549, 549, 584, 549, 549, 604, 584, 604, 604,\n  708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n  708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n  708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n  708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n  604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n  500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324,\n  324, 316, 328, 398, 285,\n];\n\n// Char code of glyphs in LiberationSans-Italic.ttf.\nconst LiberationSansItalicMapping = [\n  -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n  67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n  86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n  104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n  119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n  168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n  184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n  199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n  214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n  229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n  244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n  259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n  274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n  289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n  304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n  319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n  334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n  349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n  364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n  379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n  539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n  905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n  922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n  938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n  953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n  968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n  1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n  1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n  1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n  1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n  1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n  1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n  1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n  1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n  8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n  8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n  8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n  8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n  8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n  9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n  9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n  9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n  9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n  9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n  9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\n// Widths of glyphs in LiberationSans-Regular.ttf.\nconst LiberationSansRegularWidths = [\n  365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278,\n  333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278,\n  584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500,\n  667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n  611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556,\n  222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722,\n  500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333,\n  737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333,\n  333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722,\n  667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n  584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n  889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556,\n  556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556,\n  667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 615, 722, 556, 667,\n  556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556,\n  778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278,\n  278, 735, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 292, 556,\n  334, 556, 222, 722, 556, 722, 556, 722, 556, 604, 723, 556, 778, 556, 778,\n  556, 778, 556, 1000, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500,\n  667, 500, 667, 500, 611, 278, 611, 375, 611, 278, 722, 556, 722, 556, 722,\n  556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611,\n  500, 611, 500, 222, 556, 667, 556, 1000, 889, 778, 611, 667, 500, 611, 278,\n  333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 784, 838,\n  384, 774, 855, 752, 222, 667, 667, 551, 668, 667, 611, 722, 778, 278, 667,\n  668, 833, 722, 650, 778, 722, 667, 618, 611, 667, 798, 667, 835, 748, 278,\n  667, 578, 446, 556, 222, 547, 578, 575, 500, 557, 446, 441, 556, 556, 222,\n  500, 500, 576, 500, 448, 556, 690, 569, 482, 617, 395, 547, 648, 525, 713,\n  781, 222, 547, 556, 547, 781, 667, 667, 865, 542, 719, 667, 278, 278, 500,\n  1057, 1010, 854, 583, 722, 635, 719, 667, 656, 667, 542, 677, 667, 923, 604,\n  719, 719, 583, 656, 833, 722, 778, 719, 667, 722, 611, 635, 760, 667, 740,\n  667, 917, 938, 792, 885, 656, 719, 1010, 722, 556, 573, 531, 365, 583, 556,\n  669, 458, 559, 559, 438, 583, 688, 552, 556, 542, 556, 500, 458, 500, 823,\n  500, 573, 521, 802, 823, 625, 719, 521, 510, 750, 542, 556, 556, 556, 365,\n  510, 500, 222, 278, 222, 906, 812, 556, 438, 559, 500, 552, 778, 556, 489,\n  411, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1000, 1000, 552,\n  222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1000, 1000, 188, 354, 333,\n  333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1073, 1000, 768, 600,\n  834, 834, 834, 834, 1000, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713,\n  584, 549, 713, 979, 719, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604,\n  708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n  708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n  708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n  708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n  604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n  500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324,\n  324, 316, 328, 398, 285,\n];\n\n// Char code of glyphs in LiberationSans-Regular.ttf.\nconst LiberationSansRegularMapping = [\n  -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n  67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n  86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n  104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n  119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n  168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n  184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n  199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n  214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n  229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n  244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n  259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n  274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n  289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n  304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n  319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n  334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n  349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n  364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n  379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n  539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n  905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n  922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n  938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n  953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n  968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n  1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n  1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n  1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n  1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n  1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n  1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n  1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n  1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n  8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n  8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n  8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n  8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n  8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n  9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n  9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n  9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n  9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n  9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n  9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\nexport {\n  LiberationSansBoldItalicMapping,\n  LiberationSansBoldItalicWidths,\n  LiberationSansBoldMapping,\n  LiberationSansBoldWidths,\n  LiberationSansItalicMapping,\n  LiberationSansItalicWidths,\n  LiberationSansRegularMapping,\n  LiberationSansRegularWidths,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as MyriadPro-Bold.otf.\nconst MyriadProBoldFactors = [\n  1.36898, 1, 1, 0.72706, 0.80479, 0.83734, 0.98894, 0.99793, 0.9897, 0.93884,\n  0.86209, 0.94292, 0.94292, 1.16661, 1.02058, 0.93582, 0.96694, 0.93582,\n  1.19137, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793,\n  0.99793, 0.99793, 0.99793, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058,\n  0.72851, 0.78966, 0.90838, 0.83637, 0.82391, 0.96376, 0.80061, 0.86275,\n  0.8768, 0.95407, 1.0258, 0.73901, 0.85022, 0.83655, 1.0156, 0.95546, 0.92179,\n  0.87107, 0.92179, 0.82114, 0.8096, 0.89713, 0.94438, 0.95353, 0.94083,\n  0.91905, 0.90406, 0.9446, 0.94292, 1.18777, 0.94292, 1.02058, 0.89903,\n  0.90088, 0.94938, 0.97898, 0.81093, 0.97571, 0.94938, 1.024, 0.9577, 0.95933,\n  0.98621, 1.0474, 0.97455, 0.98981, 0.9672, 0.95933, 0.9446, 0.97898, 0.97407,\n  0.97646, 0.78036, 1.10208, 0.95442, 0.95298, 0.97579, 0.9332, 0.94039, 0.938,\n  0.80687, 1.01149, 0.80687, 1.02058, 0.80479, 0.99793, 0.99793, 0.99793,\n  0.99793, 1.01149, 1.00872, 0.90088, 0.91882, 1.0213, 0.8361, 1.02058, 0.62295,\n  0.54324, 0.89022, 1.08595, 1, 1, 0.90088, 1, 0.97455, 0.93582, 0.90088, 1,\n  1.05686, 0.8361, 0.99642, 0.99642, 0.99642, 0.72851, 0.90838, 0.90838,\n  0.90838, 0.90838, 0.90838, 0.90838, 0.868, 0.82391, 0.80061, 0.80061, 0.80061,\n  0.80061, 1.0258, 1.0258, 1.0258, 1.0258, 0.97484, 0.95546, 0.92179, 0.92179,\n  0.92179, 0.92179, 0.92179, 1.02058, 0.92179, 0.94438, 0.94438, 0.94438,\n  0.94438, 0.90406, 0.86958, 0.98225, 0.94938, 0.94938, 0.94938, 0.94938,\n  0.94938, 0.94938, 0.9031, 0.81093, 0.94938, 0.94938, 0.94938, 0.94938,\n  0.98621, 0.98621, 0.98621, 0.98621, 0.93969, 0.95933, 0.9446, 0.9446, 0.9446,\n  0.9446, 0.9446, 1.08595, 0.9446, 0.95442, 0.95442, 0.95442, 0.95442, 0.94039,\n  0.97898, 0.94039, 0.90838, 0.94938, 0.90838, 0.94938, 0.90838, 0.94938,\n  0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093,\n  0.96376, 0.84313, 0.97484, 0.97571, 0.80061, 0.94938, 0.80061, 0.94938,\n  0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.8768, 0.9577, 0.8768,\n  0.9577, 0.8768, 0.9577, 1, 1, 0.95407, 0.95933, 0.97069, 0.95933, 1.0258,\n  0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621,\n  0.887, 1.01591, 0.73901, 1.0474, 1, 1, 0.97455, 0.83655, 0.98981, 1, 1,\n  0.83655, 0.73977, 0.83655, 0.73903, 0.84638, 1.033, 0.95546, 0.95933, 1, 1,\n  0.95546, 0.95933, 0.8271, 0.95417, 0.95933, 0.92179, 0.9446, 0.92179, 0.9446,\n  0.92179, 0.9446, 0.936, 0.91964, 0.82114, 0.97646, 1, 1, 0.82114, 0.97646,\n  0.8096, 0.78036, 0.8096, 0.78036, 1, 1, 0.8096, 0.78036, 1, 1, 0.89713,\n  0.77452, 0.89713, 1.10208, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438,\n  0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94083,\n  0.97579, 0.90406, 0.94039, 0.90406, 0.9446, 0.938, 0.9446, 0.938, 0.9446,\n  0.938, 1, 0.99793, 0.90838, 0.94938, 0.868, 0.9031, 0.92179, 0.9446, 1, 1,\n  0.89713, 1.10208, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088,\n  0.90088, 0.90088, 0.90088, 0.90989, 0.9358, 0.91945, 0.83181, 0.75261,\n  0.87992, 0.82976, 0.96034, 0.83689, 0.97268, 1.0078, 0.90838, 0.83637, 0.8019,\n  0.90157, 0.80061, 0.9446, 0.95407, 0.92436, 1.0258, 0.85022, 0.97153, 1.0156,\n  0.95546, 0.89192, 0.92179, 0.92361, 0.87107, 0.96318, 0.89713, 0.93704,\n  0.95638, 0.91905, 0.91709, 0.92796, 1.0258, 0.93704, 0.94836, 1.0373, 0.95933,\n  1.0078, 0.95871, 0.94836, 0.96174, 0.92601, 0.9498, 0.98607, 0.95776, 0.95933,\n  1.05453, 1.0078, 0.98275, 0.9314, 0.95617, 0.91701, 1.05993, 0.9446, 0.78367,\n  0.9553, 1, 0.86832, 1.0128, 0.95871, 0.99394, 0.87548, 0.96361, 0.86774,\n  1.0078, 0.95871, 0.9446, 0.95871, 0.86774, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.94083, 0.97579, 0.94083, 0.97579, 0.94083,\n  0.97579, 0.90406, 0.94039, 0.96694, 1, 0.89903, 1, 1, 1, 0.93582, 0.93582,\n  0.93582, 1, 0.908, 0.908, 0.918, 0.94219, 0.94219, 0.96544, 1, 1.285, 1, 1,\n  0.81079, 0.81079, 1, 1, 0.74854, 1, 1, 1, 1, 0.99793, 1, 1, 1, 0.65, 1,\n  1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.17173, 1, 0.80535, 0.76169,\n  1.02058, 1.0732, 1.05486, 1, 1, 1.30692, 1.08595, 1.08595, 1, 1.08595,\n  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,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  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,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst MyriadProBoldMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as MyriadPro-BoldIt.otf.\nconst MyriadProBoldItalicFactors = [\n  1.36898, 1, 1, 0.66227, 0.80779, 0.81625, 0.97276, 0.97276, 0.97733, 0.92222,\n  0.83266, 0.94292, 0.94292, 1.16148, 1.02058, 0.93582, 0.96694, 0.93582,\n  1.17337, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276,\n  0.97276, 0.97276, 0.97276, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058,\n  0.71541, 0.76813, 0.85576, 0.80591, 0.80729, 0.94299, 0.77512, 0.83655,\n  0.86523, 0.92222, 0.98621, 0.71743, 0.81698, 0.79726, 0.98558, 0.92222,\n  0.90637, 0.83809, 0.90637, 0.80729, 0.76463, 0.86275, 0.90699, 0.91605,\n  0.9154, 0.85308, 0.85458, 0.90531, 0.94292, 1.21296, 0.94292, 1.02058,\n  0.89903, 1.18616, 0.99613, 0.91677, 0.78216, 0.91677, 0.90083, 0.98796,\n  0.9135, 0.92168, 0.95381, 0.98981, 0.95298, 0.95381, 0.93459, 0.92168,\n  0.91513, 0.92004, 0.91677, 0.95077, 0.748, 1.04502, 0.91677, 0.92061, 0.94236,\n  0.89544, 0.89364, 0.9, 0.80687, 0.8578, 0.80687, 1.02058, 0.80779, 0.97276,\n  0.97276, 0.97276, 0.97276, 0.8578, 0.99973, 1.18616, 0.91339, 1.08074,\n  0.82891, 1.02058, 0.55509, 0.71526, 0.89022, 1.08595, 1, 1, 1.18616, 1,\n  0.96736, 0.93582, 1.18616, 1, 1.04864, 0.82711, 0.99043, 0.99043, 0.99043,\n  0.71541, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.845, 0.80729,\n  0.77512, 0.77512, 0.77512, 0.77512, 0.98621, 0.98621, 0.98621, 0.98621,\n  0.95961, 0.92222, 0.90637, 0.90637, 0.90637, 0.90637, 0.90637, 1.02058,\n  0.90251, 0.90699, 0.90699, 0.90699, 0.90699, 0.85458, 0.83659, 0.94951,\n  0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.85811, 0.78216,\n  0.90083, 0.90083, 0.90083, 0.90083, 0.95381, 0.95381, 0.95381, 0.95381,\n  0.9135, 0.92168, 0.91513, 0.91513, 0.91513, 0.91513, 0.91513, 1.08595,\n  0.91677, 0.91677, 0.91677, 0.91677, 0.91677, 0.89364, 0.92332, 0.89364,\n  0.85576, 0.99613, 0.85576, 0.99613, 0.85576, 0.99613, 0.80729, 0.78216,\n  0.80729, 0.78216, 0.80729, 0.78216, 0.80729, 0.78216, 0.94299, 0.76783,\n  0.95961, 0.91677, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083,\n  0.77512, 0.90083, 0.77512, 0.90083, 0.86523, 0.9135, 0.86523, 0.9135, 0.86523,\n  0.9135, 1, 1, 0.92222, 0.92168, 0.92222, 0.92168, 0.98621, 0.95381, 0.98621,\n  0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.86036,\n  0.97096, 0.71743, 0.98981, 1, 1, 0.95298, 0.79726, 0.95381, 1, 1, 0.79726,\n  0.6894, 0.79726, 0.74321, 0.81691, 1.0006, 0.92222, 0.92168, 1, 1, 0.92222,\n  0.92168, 0.79464, 0.92098, 0.92168, 0.90637, 0.91513, 0.90637, 0.91513,\n  0.90637, 0.91513, 0.909, 0.87514, 0.80729, 0.95077, 1, 1, 0.80729, 0.95077,\n  0.76463, 0.748, 0.76463, 0.748, 1, 1, 0.76463, 0.748, 1, 1, 0.86275, 0.72651,\n  0.86275, 1.04502, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677,\n  0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.9154, 0.94236,\n  0.85458, 0.89364, 0.85458, 0.90531, 0.9, 0.90531, 0.9, 0.90531, 0.9, 1,\n  0.97276, 0.85576, 0.99613, 0.845, 0.85811, 0.90251, 0.91677, 1, 1, 0.86275,\n  1.04502, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616,\n  1.18616, 1.18616, 1.00899, 1.30628, 0.85576, 0.80178, 0.66862, 0.7927,\n  0.69323, 0.88127, 0.72459, 0.89711, 0.95381, 0.85576, 0.80591, 0.7805,\n  0.94729, 0.77512, 0.90531, 0.92222, 0.90637, 0.98621, 0.81698, 0.92655,\n  0.98558, 0.92222, 0.85359, 0.90637, 0.90976, 0.83809, 0.94523, 0.86275,\n  0.83509, 0.93157, 0.85308, 0.83392, 0.92346, 0.98621, 0.83509, 0.92886,\n  0.91324, 0.92168, 0.95381, 0.90646, 0.92886, 0.90557, 0.86847, 0.90276,\n  0.91324, 0.86842, 0.92168, 0.99531, 0.95381, 0.9224, 0.85408, 0.92699,\n  0.86847, 1.0051, 0.91513, 0.80487, 0.93481, 1, 0.88159, 1.05214, 0.90646,\n  0.97355, 0.81539, 0.89398, 0.85923, 0.95381, 0.90646, 0.91513, 0.90646,\n  0.85923, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  0.9154, 0.94236, 0.9154, 0.94236, 0.9154, 0.94236, 0.85458, 0.89364, 0.96694,\n  1, 0.89903, 1, 1, 1, 0.91782, 0.91782, 0.91782, 1, 0.896, 0.896, 0.896,\n  0.9332, 0.9332, 0.95973, 1, 1.26, 1, 1, 0.80479, 0.80178, 1, 1, 0.85633, 1, 1,\n  1, 1, 0.97276, 1, 1, 1, 0.698, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1.14542, 1, 0.79199, 0.78694, 1.02058, 1.03493, 1.05486, 1, 1, 1.23026,\n  1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  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,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst MyriadProBoldItalicMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as MyriadPro-It.otf.\nconst MyriadProItalicFactors = [\n  1.36898, 1, 1, 0.65507, 0.84943, 0.85639, 0.88465, 0.88465, 0.86936, 0.88307,\n  0.86948, 0.85283, 0.85283, 1.06383, 1.02058, 0.75945, 0.9219, 0.75945,\n  1.17337, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465,\n  0.88465, 0.88465, 0.88465, 0.75945, 0.75945, 1.02058, 1.02058, 1.02058,\n  0.69046, 0.70926, 0.85158, 0.77812, 0.76852, 0.89591, 0.70466, 0.76125,\n  0.80094, 0.86822, 0.83864, 0.728, 0.77212, 0.79475, 0.93637, 0.87514, 0.8588,\n  0.76013, 0.8588, 0.72421, 0.69866, 0.77598, 0.85991, 0.80811, 0.87832,\n  0.78112, 0.77512, 0.8562, 1.0222, 1.18417, 1.0222, 1.27014, 0.89903, 1.15012,\n  0.93859, 0.94399, 0.846, 0.94399, 0.81453, 1.0186, 0.94219, 0.96017, 1.03075,\n  1.02175, 0.912, 1.03075, 0.96998, 0.96017, 0.93859, 0.94399, 0.94399, 0.95493,\n  0.746, 1.12658, 0.94578, 0.91, 0.979, 0.882, 0.882, 0.83, 0.85034, 0.83537,\n  0.85034, 1.02058, 0.70869, 0.88465, 0.88465, 0.88465, 0.88465, 0.83537,\n  0.90083, 1.15012, 0.9161, 0.94565, 0.73541, 1.02058, 0.53609, 0.69353,\n  0.79519, 1.08595, 1, 1, 1.15012, 1, 0.91974, 0.75945, 1.15012, 1, 0.9446,\n  0.73361, 0.9005, 0.9005, 0.9005, 0.62864, 0.85158, 0.85158, 0.85158, 0.85158,\n  0.85158, 0.85158, 0.773, 0.76852, 0.70466, 0.70466, 0.70466, 0.70466, 0.83864,\n  0.83864, 0.83864, 0.83864, 0.90561, 0.87514, 0.8588, 0.8588, 0.8588, 0.8588,\n  0.8588, 1.02058, 0.85751, 0.85991, 0.85991, 0.85991, 0.85991, 0.77512,\n  0.76013, 0.88075, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859,\n  0.8075, 0.846, 0.81453, 0.81453, 0.81453, 0.81453, 0.82424, 0.82424, 0.82424,\n  0.82424, 0.9278, 0.96017, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859,\n  1.08595, 0.8562, 0.94578, 0.94578, 0.94578, 0.94578, 0.882, 0.94578, 0.882,\n  0.85158, 0.93859, 0.85158, 0.93859, 0.85158, 0.93859, 0.76852, 0.846, 0.76852,\n  0.846, 0.76852, 0.846, 0.76852, 0.846, 0.89591, 0.8544, 0.90561, 0.94399,\n  0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453,\n  0.70466, 0.81453, 0.80094, 0.94219, 0.80094, 0.94219, 0.80094, 0.94219, 1, 1,\n  0.86822, 0.96017, 0.86822, 0.96017, 0.83864, 0.82424, 0.83864, 0.82424,\n  0.83864, 0.82424, 0.83864, 1.03075, 0.83864, 0.82424, 0.81402, 1.02738, 0.728,\n  1.02175, 1, 1, 0.912, 0.79475, 1.03075, 1, 1, 0.79475, 0.83911, 0.79475,\n  0.66266, 0.80553, 1.06676, 0.87514, 0.96017, 1, 1, 0.87514, 0.96017, 0.86865,\n  0.87396, 0.96017, 0.8588, 0.93859, 0.8588, 0.93859, 0.8588, 0.93859, 0.867,\n  0.84759, 0.72421, 0.95493, 1, 1, 0.72421, 0.95493, 0.69866, 0.746, 0.69866,\n  0.746, 1, 1, 0.69866, 0.746, 1, 1, 0.77598, 0.88417, 0.77598, 1.12658,\n  0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578,\n  0.85991, 0.94578, 0.85991, 0.94578, 0.87832, 0.979, 0.77512, 0.882, 0.77512,\n  0.8562, 0.83, 0.8562, 0.83, 0.8562, 0.83, 1, 0.88465, 0.85158, 0.93859, 0.773,\n  0.8075, 0.85751, 0.8562, 1, 1, 0.77598, 1.12658, 1.15012, 1.15012, 1.15012,\n  1.15012, 1.15012, 1.15313, 1.15012, 1.15012, 1.15012, 1.08106, 1.03901,\n  0.85158, 0.77025, 0.62264, 0.7646, 0.65351, 0.86026, 0.69461, 0.89947,\n  1.03075, 0.85158, 0.77812, 0.76449, 0.88836, 0.70466, 0.8562, 0.86822, 0.8588,\n  0.83864, 0.77212, 0.85308, 0.93637, 0.87514, 0.82352, 0.8588, 0.85701,\n  0.76013, 0.89058, 0.77598, 0.8156, 0.82565, 0.78112, 0.77899, 0.89386,\n  0.83864, 0.8156, 0.9486, 0.92388, 0.96186, 1.03075, 0.91123, 0.9486, 0.93298,\n  0.878, 0.93942, 0.92388, 0.84596, 0.96186, 0.95119, 1.03075, 0.922, 0.88787,\n  0.95829, 0.88, 0.93559, 0.93859, 0.78815, 0.93758, 1, 0.89217, 1.03737,\n  0.91123, 0.93969, 0.77487, 0.85769, 0.86799, 1.03075, 0.91123, 0.93859,\n  0.91123, 0.86799, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 0.87832, 0.979, 0.87832, 0.979, 0.87832, 0.979, 0.77512, 0.882, 0.9219,\n  1, 0.89903, 1, 1, 1, 0.87321, 0.87321, 0.87321, 1, 1.027, 1.027, 1.027,\n  0.86847, 0.86847, 0.79121, 1, 1.124, 1, 1, 0.73572, 0.73572, 1, 1, 0.85034, 1,\n  1, 1, 1, 0.88465, 1, 1, 1, 0.669, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1.04828, 1, 0.74948, 0.75187, 1.02058, 0.98391, 1.02119, 1, 1, 1.06233,\n  1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  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,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst MyriadProItalicMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as MyriadPro-Regular.otf.\nconst MyriadProRegularFactors = [\n  1.36898, 1, 1, 0.76305, 0.82784, 0.94935, 0.89364, 0.92241, 0.89073, 0.90706,\n  0.98472, 0.85283, 0.85283, 1.0664, 1.02058, 0.74505, 0.9219, 0.74505, 1.23456,\n  0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241,\n  0.92241, 0.92241, 0.74505, 0.74505, 1.02058, 1.02058, 1.02058, 0.73002,\n  0.72601, 0.91755, 0.8126, 0.80314, 0.92222, 0.73764, 0.79726, 0.83051,\n  0.90284, 0.86023, 0.74, 0.8126, 0.84869, 0.96518, 0.91115, 0.8858, 0.79761,\n  0.8858, 0.74498, 0.73914, 0.81363, 0.89591, 0.83659, 0.89633, 0.85608, 0.8111,\n  0.90531, 1.0222, 1.22736, 1.0222, 1.27014, 0.89903, 0.90088, 0.86667, 1.0231,\n  0.896, 1.01411, 0.90083, 1.05099, 1.00512, 0.99793, 1.05326, 1.09377, 0.938,\n  1.06226, 1.00119, 0.99793, 0.98714, 1.0231, 1.01231, 0.98196, 0.792, 1.19137,\n  0.99074, 0.962, 1.01915, 0.926, 0.942, 0.856, 0.85034, 0.92006, 0.85034,\n  1.02058, 0.69067, 0.92241, 0.92241, 0.92241, 0.92241, 0.92006, 0.9332,\n  0.90088, 0.91882, 0.93484, 0.75339, 1.02058, 0.56866, 0.54324, 0.79519,\n  1.08595, 1, 1, 0.90088, 1, 0.95325, 0.74505, 0.90088, 1, 0.97198, 0.75339,\n  0.91009, 0.91009, 0.91009, 0.66466, 0.91755, 0.91755, 0.91755, 0.91755,\n  0.91755, 0.91755, 0.788, 0.80314, 0.73764, 0.73764, 0.73764, 0.73764, 0.86023,\n  0.86023, 0.86023, 0.86023, 0.92915, 0.91115, 0.8858, 0.8858, 0.8858, 0.8858,\n  0.8858, 1.02058, 0.8858, 0.89591, 0.89591, 0.89591, 0.89591, 0.8111, 0.79611,\n  0.89713, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86936, 0.896,\n  0.90083, 0.90083, 0.90083, 0.90083, 0.84224, 0.84224, 0.84224, 0.84224,\n  0.97276, 0.99793, 0.98714, 0.98714, 0.98714, 0.98714, 0.98714, 1.08595,\n  0.89876, 0.99074, 0.99074, 0.99074, 0.99074, 0.942, 1.0231, 0.942, 0.91755,\n  0.86667, 0.91755, 0.86667, 0.91755, 0.86667, 0.80314, 0.896, 0.80314, 0.896,\n  0.80314, 0.896, 0.80314, 0.896, 0.92222, 0.93372, 0.92915, 1.01411, 0.73764,\n  0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764,\n  0.90083, 0.83051, 1.00512, 0.83051, 1.00512, 0.83051, 1.00512, 1, 1, 0.90284,\n  0.99793, 0.90976, 0.99793, 0.86023, 0.84224, 0.86023, 0.84224, 0.86023,\n  0.84224, 0.86023, 1.05326, 0.86023, 0.84224, 0.82873, 1.07469, 0.74, 1.09377,\n  1, 1, 0.938, 0.84869, 1.06226, 1, 1, 0.84869, 0.83704, 0.84869, 0.81441,\n  0.85588, 1.08927, 0.91115, 0.99793, 1, 1, 0.91115, 0.99793, 0.91887, 0.90991,\n  0.99793, 0.8858, 0.98714, 0.8858, 0.98714, 0.8858, 0.98714, 0.894, 0.91434,\n  0.74498, 0.98196, 1, 1, 0.74498, 0.98196, 0.73914, 0.792, 0.73914, 0.792, 1,\n  1, 0.73914, 0.792, 1, 1, 0.81363, 0.904, 0.81363, 1.19137, 0.89591, 0.99074,\n  0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074,\n  0.89591, 0.99074, 0.89633, 1.01915, 0.8111, 0.942, 0.8111, 0.90531, 0.856,\n  0.90531, 0.856, 0.90531, 0.856, 1, 0.92241, 0.91755, 0.86667, 0.788, 0.86936,\n  0.8858, 0.89876, 1, 1, 0.81363, 1.19137, 0.90088, 0.90088, 0.90088, 0.90088,\n  0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90388, 1.03901, 0.92138,\n  0.78105, 0.7154, 0.86169, 0.80513, 0.94007, 0.82528, 0.98612, 1.06226,\n  0.91755, 0.8126, 0.81884, 0.92819, 0.73764, 0.90531, 0.90284, 0.8858, 0.86023,\n  0.8126, 0.91172, 0.96518, 0.91115, 0.83089, 0.8858, 0.87791, 0.79761, 0.89297,\n  0.81363, 0.88157, 0.89992, 0.85608, 0.81992, 0.94307, 0.86023, 0.88157,\n  0.95308, 0.98699, 0.99793, 1.06226, 0.95817, 0.95308, 0.97358, 0.928, 0.98088,\n  0.98699, 0.92761, 0.99793, 0.96017, 1.06226, 0.986, 0.944, 0.95978, 0.938,\n  0.96705, 0.98714, 0.80442, 0.98972, 1, 0.89762, 1.04552, 0.95817, 0.99007,\n  0.87064, 0.91879, 0.88888, 1.06226, 0.95817, 0.98714, 0.95817, 0.88888, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89633, 1.01915,\n  0.89633, 1.01915, 0.89633, 1.01915, 0.8111, 0.942, 0.9219, 1, 0.89903, 1, 1,\n  1, 0.93173, 0.93173, 0.93173, 1, 1.06304, 1.06304, 1.06904, 0.89903, 0.89903,\n  0.80549, 1, 1.156, 1, 1, 0.76575, 0.76575, 1, 1, 0.72458, 1, 1, 1, 1, 0.92241,\n  1, 1, 1, 0.619, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.07257, 1,\n  0.74705, 0.71119, 1.02058, 1.024, 1.02119, 1, 1, 1.1536, 1.08595, 1.08595, 1,\n  1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  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,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1,\n];\nconst MyriadProRegularMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\nexport {\n  MyriadProBoldFactors,\n  MyriadProBoldItalicFactors,\n  MyriadProBoldItalicMetrics,\n  MyriadProBoldMetrics,\n  MyriadProItalicFactors,\n  MyriadProItalicMetrics,\n  MyriadProRegularFactors,\n  MyriadProRegularMetrics,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as segoeuib.ttf.\nconst SegoeuiBoldFactors = [\n  1.76738, 1, 1, 0.99297, 0.9824, 1.04016, 1.06497, 1.03424, 0.97529, 1.17647,\n  1.23203, 1.1085, 1.1085, 1.16939, 1.2107, 0.9754, 1.21408, 0.9754, 1.59578,\n  1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424,\n  1.03424, 1.03424, 0.81378, 0.81378, 1.2107, 1.2107, 1.2107, 0.71703, 0.97847,\n  0.97363, 0.88776, 0.8641, 1.02096, 0.79795, 0.85132, 0.914, 1.06085, 1.1406,\n  0.8007, 0.89858, 0.83693, 1.14889, 1.09398, 0.97489, 0.92094, 0.97489,\n  0.90399, 0.84041, 0.95923, 1.00135, 1, 1.06467, 0.98243, 0.90996, 0.99361,\n  1.1085, 1.56942, 1.1085, 1.2107, 0.74627, 0.94282, 0.96752, 1.01519, 0.86304,\n  1.01359, 0.97278, 1.15103, 1.01359, 0.98561, 1.02285, 1.02285, 1.00527,\n  1.02285, 1.0302, 0.99041, 1.0008, 1.01519, 1.01359, 1.02258, 0.79104, 1.16862,\n  0.99041, 0.97454, 1.02511, 0.99298, 0.96752, 0.95801, 0.94856, 1.16579,\n  0.94856, 1.2107, 0.9824, 1.03424, 1.03424, 1, 1.03424, 1.16579, 0.8727,\n  1.3871, 1.18622, 1.10818, 1.04478, 1.2107, 1.18622, 0.75155, 0.94994, 1.28826,\n  1.21408, 1.21408, 0.91056, 1, 0.91572, 0.9754, 0.64663, 1.18328, 1.24866,\n  1.04478, 1.14169, 1.15749, 1.17389, 0.71703, 0.97363, 0.97363, 0.97363,\n  0.97363, 0.97363, 0.97363, 0.93506, 0.8641, 0.79795, 0.79795, 0.79795,\n  0.79795, 1.1406, 1.1406, 1.1406, 1.1406, 1.02096, 1.09398, 0.97426, 0.97426,\n  0.97426, 0.97426, 0.97426, 1.2107, 0.97489, 1.00135, 1.00135, 1.00135,\n  1.00135, 0.90996, 0.92094, 1.02798, 0.96752, 0.96752, 0.96752, 0.96752,\n  0.96752, 0.96752, 0.93136, 0.86304, 0.97278, 0.97278, 0.97278, 0.97278,\n  1.02285, 1.02285, 1.02285, 1.02285, 0.97122, 0.99041, 1, 1, 1, 1, 1, 1.28826,\n  1.0008, 0.99041, 0.99041, 0.99041, 0.99041, 0.96752, 1.01519, 0.96752,\n  0.97363, 0.96752, 0.97363, 0.96752, 0.97363, 0.96752, 0.8641, 0.86304, 0.8641,\n  0.86304, 0.8641, 0.86304, 0.8641, 0.86304, 1.02096, 1.03057, 1.02096, 1.03517,\n  0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278,\n  0.79795, 0.97278, 0.914, 1.01359, 0.914, 1.01359, 0.914, 1.01359, 1, 1,\n  1.06085, 0.98561, 1.06085, 1.00879, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406,\n  1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 0.97138, 1.08692, 0.8007, 1.02285,\n  1, 1, 1.00527, 0.83693, 1.02285, 1, 1, 0.83693, 0.9455, 0.83693, 0.90418,\n  0.83693, 1.13005, 1.09398, 0.99041, 1, 1, 1.09398, 0.99041, 0.96692, 1.09251,\n  0.99041, 0.97489, 1.0008, 0.97489, 1.0008, 0.97489, 1.0008, 0.93994, 0.97931,\n  0.90399, 1.02258, 1, 1, 0.90399, 1.02258, 0.84041, 0.79104, 0.84041, 0.79104,\n  0.84041, 0.79104, 0.84041, 0.79104, 1, 1, 0.95923, 1.07034, 0.95923, 1.16862,\n  1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041,\n  1.00135, 0.99041, 1.00135, 0.99041, 1.06467, 1.02511, 0.90996, 0.96752,\n  0.90996, 0.99361, 0.95801, 0.99361, 0.95801, 0.99361, 0.95801, 1.07733,\n  1.03424, 0.97363, 0.96752, 0.93506, 0.93136, 0.97489, 1.0008, 1, 1, 0.95923,\n  1.16862, 1.15103, 1.15103, 1.01173, 1.03959, 0.75953, 0.81378, 0.79912,\n  1.15103, 1.21994, 0.95161, 0.87815, 1.01149, 0.81525, 0.7676, 0.98167,\n  1.01134, 1.02546, 0.84097, 1.03089, 1.18102, 0.97363, 0.88776, 0.85134,\n  0.97826, 0.79795, 0.99361, 1.06085, 0.97489, 1.1406, 0.89858, 1.0388, 1.14889,\n  1.09398, 0.86039, 0.97489, 1.0595, 0.92094, 0.94793, 0.95923, 0.90996,\n  0.99346, 0.98243, 1.02112, 0.95493, 1.1406, 0.90996, 1.03574, 1.02597, 1.0008,\n  1.18102, 1.06628, 1.03574, 1.0192, 1.01932, 1.00886, 0.97531, 1.0106, 1.0008,\n  1.13189, 1.18102, 1.02277, 0.98683, 1.0016, 0.99561, 1.07237, 1.0008, 0.90434,\n  0.99921, 0.93803, 0.8965, 1.23085, 1.06628, 1.04983, 0.96268, 1.0499, 0.98439,\n  1.18102, 1.06628, 1.0008, 1.06628, 0.98439, 0.79795, 1, 1, 1, 1, 1, 1, 1, 1,\n  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,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.97278, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.02065, 1, 1, 1, 1, 1, 1, 1.06467, 1.02511,\n  1.06467, 1.02511, 1.06467, 1.02511, 0.90996, 0.96752, 1, 1.21408, 0.89903, 1,\n  1, 0.75155, 1.04394, 1.04394, 1.04394, 1.04394, 0.98633, 0.98633, 0.98633,\n  0.73047, 0.73047, 1.20642, 0.91211, 1.25635, 1.222, 1.02956, 1.03372, 1.03372,\n  0.96039, 1.24633, 1, 1.12454, 0.93503, 1.03424, 1.19687, 1.03424, 1, 1, 1,\n  0.771, 1, 1, 1.15749, 1.15749, 1.15749, 1.10948, 0.86279, 0.94434, 0.86279,\n  0.94434, 0.86182, 1, 1, 1.16897, 1, 0.96085, 0.90137, 1.2107, 1.18416,\n  1.13973, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21172, 1.29004,\n  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,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025,\n  1.18874, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886,\n  1.04315, 1.15296, 1.34163, 1, 1, 1, 1.09193, 1.09193, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiBoldMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as segoeuiz.ttf.\nconst SegoeuiBoldItalicFactors = [\n  1.76738, 1, 1, 0.98946, 1.03959, 1.04016, 1.02809, 1.036, 0.97639, 1.10953,\n  1.23203, 1.11144, 1.11144, 1.16939, 1.21237, 0.9754, 1.21261, 0.9754, 1.59754,\n  1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 0.81378,\n  0.81378, 1.21237, 1.21237, 1.21237, 0.73541, 0.97847, 0.97363, 0.89723,\n  0.87897, 1.0426, 0.79429, 0.85292, 0.91149, 1.05815, 1.1406, 0.79631, 0.90128,\n  0.83853, 1.04396, 1.10615, 0.97552, 0.94436, 0.97552, 0.88641, 0.80527,\n  0.96083, 1.00135, 1, 1.06777, 0.9817, 0.91142, 0.99361, 1.11144, 1.57293,\n  1.11144, 1.21237, 0.74627, 1.31818, 1.06585, 0.97042, 0.83055, 0.97042,\n  0.93503, 1.1261, 0.97042, 0.97922, 1.14236, 0.94552, 1.01054, 1.14236,\n  1.02471, 0.97922, 0.94165, 0.97042, 0.97042, 1.0276, 0.78929, 1.1261, 0.97922,\n  0.95874, 1.02197, 0.98507, 0.96752, 0.97168, 0.95107, 1.16579, 0.95107,\n  1.21237, 1.03959, 1.036, 1.036, 1, 1.036, 1.16579, 0.87357, 1.31818, 1.18754,\n  1.26781, 1.05356, 1.21237, 1.18622, 0.79487, 0.94994, 1.29004, 1.24047,\n  1.24047, 1.31818, 1, 0.91484, 0.9754, 1.31818, 1.1349, 1.24866, 1.05356,\n  1.13934, 1.15574, 1.17389, 0.73541, 0.97363, 0.97363, 0.97363, 0.97363,\n  0.97363, 0.97363, 0.94385, 0.87897, 0.79429, 0.79429, 0.79429, 0.79429,\n  1.1406, 1.1406, 1.1406, 1.1406, 1.0426, 1.10615, 0.97552, 0.97552, 0.97552,\n  0.97552, 0.97552, 1.21237, 0.97552, 1.00135, 1.00135, 1.00135, 1.00135,\n  0.91142, 0.94436, 0.98721, 1.06585, 1.06585, 1.06585, 1.06585, 1.06585,\n  1.06585, 0.96705, 0.83055, 0.93503, 0.93503, 0.93503, 0.93503, 1.14236,\n  1.14236, 1.14236, 1.14236, 0.93125, 0.97922, 0.94165, 0.94165, 0.94165,\n  0.94165, 0.94165, 1.29004, 0.94165, 0.97922, 0.97922, 0.97922, 0.97922,\n  0.96752, 0.97042, 0.96752, 0.97363, 1.06585, 0.97363, 1.06585, 0.97363,\n  1.06585, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897,\n  0.83055, 1.0426, 1.0033, 1.0426, 0.97042, 0.79429, 0.93503, 0.79429, 0.93503,\n  0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.91149, 0.97042,\n  0.91149, 0.97042, 0.91149, 0.97042, 1, 1, 1.05815, 0.97922, 1.05815, 0.97922,\n  1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406,\n  1.14236, 0.97441, 1.04302, 0.79631, 1.01582, 1, 1, 1.01054, 0.83853, 1.14236,\n  1, 1, 0.83853, 1.09125, 0.83853, 0.90418, 0.83853, 1.19508, 1.10615, 0.97922,\n  1, 1, 1.10615, 0.97922, 1.01034, 1.10466, 0.97922, 0.97552, 0.94165, 0.97552,\n  0.94165, 0.97552, 0.94165, 0.91602, 0.91981, 0.88641, 1.0276, 1, 1, 0.88641,\n  1.0276, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527,\n  0.78929, 1, 1, 0.96083, 1.05403, 0.95923, 1.16862, 1.00135, 0.97922, 1.00135,\n  0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135,\n  0.97922, 1.06777, 1.02197, 0.91142, 0.96752, 0.91142, 0.99361, 0.97168,\n  0.99361, 0.97168, 0.99361, 0.97168, 1.23199, 1.036, 0.97363, 1.06585, 0.94385,\n  0.96705, 0.97552, 0.94165, 1, 1, 0.96083, 1.1261, 1.31818, 1.31818, 1.31818,\n  1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 0.95161, 1.27126,\n  1.00811, 0.83284, 0.77702, 0.99137, 0.95253, 1.0347, 0.86142, 1.07205,\n  1.14236, 0.97363, 0.89723, 0.86869, 1.09818, 0.79429, 0.99361, 1.05815,\n  0.97552, 1.1406, 0.90128, 1.06662, 1.04396, 1.10615, 0.84918, 0.97552,\n  1.04694, 0.94436, 0.98015, 0.96083, 0.91142, 1.00356, 0.9817, 1.01945,\n  0.98999, 1.1406, 0.91142, 1.04961, 0.9898, 1.00639, 1.14236, 1.07514, 1.04961,\n  0.99607, 1.02897, 1.008, 0.9898, 0.95134, 1.00639, 1.11121, 1.14236, 1.00518,\n  0.97981, 1.02186, 1, 1.08578, 0.94165, 0.99314, 0.98387, 0.93028, 0.93377,\n  1.35125, 1.07514, 1.10687, 0.93491, 1.04232, 1.00351, 1.14236, 1.07514,\n  0.94165, 1.07514, 1.00351, 0.79429, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  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,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.93503, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 0.96609, 1, 1, 1, 1, 1, 1, 1.06777, 1.02197, 1.06777,\n  1.02197, 1.06777, 1.02197, 0.91142, 0.96752, 1, 1.21261, 0.89903, 1, 1,\n  0.75155, 1.04745, 1.04745, 1.04745, 1.04394, 0.98633, 0.98633, 0.98633,\n  0.72959, 0.72959, 1.20502, 0.91406, 1.26514, 1.222, 1.02956, 1.03372, 1.03372,\n  0.96039, 1.24633, 1, 1.09125, 0.93327, 1.03336, 1.16541, 1.036, 1, 1, 1,\n  0.771, 1, 1, 1.15574, 1.15574, 1.15574, 1.15574, 0.86364, 0.94434, 0.86279,\n  0.94434, 0.86224, 1, 1, 1.16798, 1, 0.96085, 0.90068, 1.21237, 1.18416,\n  1.13904, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21339, 1.29004,\n  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,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025,\n  1.18775, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886,\n  1.04315, 1.15296, 1.34163, 1, 1, 1, 1.13269, 1.13269, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiBoldItalicMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as segoeuii.ttf.\nconst SegoeuiItalicFactors = [\n  1.76738, 1, 1, 0.98946, 1.14763, 1.05365, 1.06234, 0.96927, 0.92586, 1.15373,\n  1.18414, 0.91349, 0.91349, 1.07403, 1.17308, 0.78383, 1.20088, 0.78383,\n  1.42531, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927,\n  0.96927, 0.96927, 0.96927, 0.78383, 0.78383, 1.17308, 1.17308, 1.17308,\n  0.77349, 0.94565, 0.94729, 0.85944, 0.88506, 0.9858, 0.74817, 0.80016,\n  0.88449, 0.98039, 0.95782, 0.69238, 0.89898, 0.83231, 0.98183, 1.03989,\n  0.96924, 0.86237, 0.96924, 0.80595, 0.74524, 0.86091, 0.95402, 0.94143,\n  0.98448, 0.8858, 0.83089, 0.93285, 1.0949, 1.39016, 1.0949, 1.45994, 0.74627,\n  1.04839, 0.97454, 0.97454, 0.87207, 0.97454, 0.87533, 1.06151, 0.97454,\n  1.00176, 1.16484, 1.08132, 0.98047, 1.16484, 1.02989, 1.01054, 0.96225,\n  0.97454, 0.97454, 1.06598, 0.79004, 1.16344, 1.00351, 0.94629, 0.9973,\n  0.91016, 0.96777, 0.9043, 0.91082, 0.92481, 0.91082, 1.17308, 0.95748,\n  0.96927, 0.96927, 1, 0.96927, 0.92481, 0.80597, 1.04839, 1.23393, 1.1781,\n  0.9245, 1.17308, 1.20808, 0.63218, 0.94261, 1.24822, 1.09971, 1.09971,\n  1.04839, 1, 0.85273, 0.78032, 1.04839, 1.09971, 1.22326, 0.9245, 1.09836,\n  1.13525, 1.15222, 0.70424, 0.94729, 0.94729, 0.94729, 0.94729, 0.94729,\n  0.94729, 0.85498, 0.88506, 0.74817, 0.74817, 0.74817, 0.74817, 0.95782,\n  0.95782, 0.95782, 0.95782, 0.9858, 1.03989, 0.96924, 0.96924, 0.96924,\n  0.96924, 0.96924, 1.17308, 0.96924, 0.95402, 0.95402, 0.95402, 0.95402,\n  0.83089, 0.86237, 0.88409, 0.97454, 0.97454, 0.97454, 0.97454, 0.97454,\n  0.97454, 0.92916, 0.87207, 0.87533, 0.87533, 0.87533, 0.87533, 0.93146,\n  0.93146, 0.93146, 0.93146, 0.93854, 1.01054, 0.96225, 0.96225, 0.96225,\n  0.96225, 0.96225, 1.24822, 0.8761, 1.00351, 1.00351, 1.00351, 1.00351,\n  0.96777, 0.97454, 0.96777, 0.94729, 0.97454, 0.94729, 0.97454, 0.94729,\n  0.97454, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506,\n  0.87207, 0.9858, 0.95391, 0.9858, 0.97454, 0.74817, 0.87533, 0.74817, 0.87533,\n  0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.88449, 0.97454,\n  0.88449, 0.97454, 0.88449, 0.97454, 1, 1, 0.98039, 1.00176, 0.98039, 1.00176,\n  0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 1.16484,\n  0.95782, 0.93146, 0.84421, 1.12761, 0.69238, 1.08132, 1, 1, 0.98047, 0.83231,\n  1.16484, 1, 1, 0.84723, 1.04861, 0.84723, 0.78755, 0.83231, 1.23736, 1.03989,\n  1.01054, 1, 1, 1.03989, 1.01054, 0.9857, 1.03849, 1.01054, 0.96924, 0.96225,\n  0.96924, 0.96225, 0.96924, 0.96225, 0.92383, 0.90171, 0.80595, 1.06598, 1, 1,\n  0.80595, 1.06598, 0.74524, 0.79004, 0.74524, 0.79004, 0.74524, 0.79004,\n  0.74524, 0.79004, 1, 1, 0.86091, 1.02759, 0.85771, 1.16344, 0.95402, 1.00351,\n  0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351,\n  0.95402, 1.00351, 0.98448, 0.9973, 0.83089, 0.96777, 0.83089, 0.93285, 0.9043,\n  0.93285, 0.9043, 0.93285, 0.9043, 1.31868, 0.96927, 0.94729, 0.97454, 0.85498,\n  0.92916, 0.96924, 0.8761, 1, 1, 0.86091, 1.16344, 1.04839, 1.04839, 1.04839,\n  1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 0.81965, 0.81965,\n  0.94729, 0.78032, 0.71022, 0.90883, 0.84171, 0.99877, 0.77596, 1.05734, 1.2,\n  0.94729, 0.85944, 0.82791, 0.9607, 0.74817, 0.93285, 0.98039, 0.96924,\n  0.95782, 0.89898, 0.98316, 0.98183, 1.03989, 0.78614, 0.96924, 0.97642,\n  0.86237, 0.86075, 0.86091, 0.83089, 0.90082, 0.8858, 0.97296, 1.01284,\n  0.95782, 0.83089, 1.0976, 1.04, 1.03342, 1.2, 1.0675, 1.0976, 0.98205,\n  1.03809, 1.05097, 1.04, 0.95364, 1.03342, 1.05401, 1.2, 1.02148, 1.0119,\n  1.04724, 1.0127, 1.02732, 0.96225, 0.8965, 0.97783, 0.93574, 0.94818, 1.30679,\n  1.0675, 1.11826, 0.99821, 1.0557, 1.0326, 1.2, 1.0675, 0.96225, 1.0675,\n  1.0326, 0.74817, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.03754, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 0.87533, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  0.98705, 1, 1, 1, 1, 1, 1, 0.98448, 0.9973, 0.98448, 0.9973, 0.98448, 0.9973,\n  0.83089, 0.96777, 1, 1.20088, 0.89903, 1, 1, 0.75155, 0.94945, 0.94945,\n  0.94945, 0.94945, 1.12317, 1.12317, 1.12317, 0.67603, 0.67603, 1.15621,\n  0.73584, 1.21191, 1.22135, 1.06483, 0.94868, 0.94868, 0.95996, 1.24633, 1,\n  1.07497, 0.87709, 0.96927, 1.01473, 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.09836,\n  1.09836, 1.09836, 1.01522, 0.86321, 0.94434, 0.8649, 0.94434, 0.86182, 1, 1,\n  1.083, 1, 0.91578, 0.86438, 1.17308, 1.18416, 1.14589, 0.69825, 0.97622,\n  1.96791, 1.24822, 1.24822, 1.17308, 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862,\n  0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.17984, 1.42603, 1, 1.42603,\n  1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1,\n  1.10742, 1.10742, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiItalicMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as segoeui.ttf.\nconst SegoeuiRegularFactors = [\n  1.76738, 1, 1, 0.98594, 1.02285, 1.10454, 1.06234, 0.96927, 0.92037, 1.19985,\n  1.2046, 0.90616, 0.90616, 1.07152, 1.1714, 0.78032, 1.20088, 0.78032, 1.40246,\n  0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927,\n  0.96927, 0.96927, 0.78032, 0.78032, 1.1714, 1.1714, 1.1714, 0.80597, 0.94084,\n  0.96706, 0.85944, 0.85734, 0.97093, 0.75842, 0.79936, 0.88198, 0.9831,\n  0.95782, 0.71387, 0.86969, 0.84636, 1.07796, 1.03584, 0.96924, 0.83968,\n  0.96924, 0.82826, 0.79649, 0.85771, 0.95132, 0.93119, 0.98965, 0.88433,\n  0.8287, 0.93365, 1.08612, 1.3638, 1.08612, 1.45786, 0.74627, 0.80499, 0.91484,\n  1.05707, 0.92383, 1.05882, 0.9403, 1.12654, 1.05882, 1.01756, 1.09011,\n  1.09011, 0.99414, 1.09011, 1.034, 1.01756, 1.05356, 1.05707, 1.05882, 1.04399,\n  0.84863, 1.21968, 1.01756, 0.95801, 1.00068, 0.91797, 0.96777, 0.9043,\n  0.90351, 0.92105, 0.90351, 1.1714, 0.85337, 0.96927, 0.96927, 0.99912,\n  0.96927, 0.92105, 0.80597, 1.2434, 1.20808, 1.05937, 0.90957, 1.1714, 1.20808,\n  0.75155, 0.94261, 1.24644, 1.09971, 1.09971, 0.84751, 1, 0.85273, 0.78032,\n  0.61584, 1.05425, 1.17914, 0.90957, 1.08665, 1.11593, 1.14169, 0.73381,\n  0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.86035, 0.85734,\n  0.75842, 0.75842, 0.75842, 0.75842, 0.95782, 0.95782, 0.95782, 0.95782,\n  0.97093, 1.03584, 0.96924, 0.96924, 0.96924, 0.96924, 0.96924, 1.1714,\n  0.96924, 0.95132, 0.95132, 0.95132, 0.95132, 0.8287, 0.83968, 0.89049,\n  0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.93575, 0.92383,\n  0.9403, 0.9403, 0.9403, 0.9403, 0.8717, 0.8717, 0.8717, 0.8717, 1.00527,\n  1.01756, 1.05356, 1.05356, 1.05356, 1.05356, 1.05356, 1.24644, 0.95923,\n  1.01756, 1.01756, 1.01756, 1.01756, 0.96777, 1.05707, 0.96777, 0.96706,\n  0.91484, 0.96706, 0.91484, 0.96706, 0.91484, 0.85734, 0.92383, 0.85734,\n  0.92383, 0.85734, 0.92383, 0.85734, 0.92383, 0.97093, 1.0969, 0.97093,\n  1.05882, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403,\n  0.75842, 0.9403, 0.88198, 1.05882, 0.88198, 1.05882, 0.88198, 1.05882, 1, 1,\n  0.9831, 1.01756, 0.9831, 1.01756, 0.95782, 0.8717, 0.95782, 0.8717, 0.95782,\n  0.8717, 0.95782, 1.09011, 0.95782, 0.8717, 0.84784, 1.11551, 0.71387, 1.09011,\n  1, 1, 0.99414, 0.84636, 1.09011, 1, 1, 0.84636, 1.0536, 0.84636, 0.94298,\n  0.84636, 1.23297, 1.03584, 1.01756, 1, 1, 1.03584, 1.01756, 1.00323, 1.03444,\n  1.01756, 0.96924, 1.05356, 0.96924, 1.05356, 0.96924, 1.05356, 0.93066,\n  0.98293, 0.82826, 1.04399, 1, 1, 0.82826, 1.04399, 0.79649, 0.84863, 0.79649,\n  0.84863, 0.79649, 0.84863, 0.79649, 0.84863, 1, 1, 0.85771, 1.17318, 0.85771,\n  1.21968, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132,\n  1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.98965, 1.00068, 0.8287,\n  0.96777, 0.8287, 0.93365, 0.9043, 0.93365, 0.9043, 0.93365, 0.9043, 1.08571,\n  0.96927, 0.96706, 0.91484, 0.86035, 0.93575, 0.96924, 0.95923, 1, 1, 0.85771,\n  1.21968, 1.11437, 1.11437, 0.93109, 0.91202, 0.60411, 0.84164, 0.55572,\n  1.01173, 0.97361, 0.81818, 0.81818, 0.96635, 0.78032, 0.72727, 0.92366,\n  0.98601, 1.03405, 0.77968, 1.09799, 1.2, 0.96706, 0.85944, 0.85638, 0.96491,\n  0.75842, 0.93365, 0.9831, 0.96924, 0.95782, 0.86969, 0.94152, 1.07796,\n  1.03584, 0.78437, 0.96924, 0.98715, 0.83968, 0.83491, 0.85771, 0.8287,\n  0.94492, 0.88433, 0.9287, 1.0098, 0.95782, 0.8287, 1.0625, 0.98248, 1.03424,\n  1.2, 1.01071, 1.0625, 0.95246, 1.03809, 1.04912, 0.98248, 1.00221, 1.03424,\n  1.05443, 1.2, 1.04785, 0.99609, 1.00169, 1.05176, 0.99346, 1.05356, 0.9087,\n  1.03004, 0.95542, 0.93117, 1.23362, 1.01071, 1.07831, 1.02512, 1.05205,\n  1.03502, 1.2, 1.01071, 1.05356, 1.01071, 1.03502, 0.75842, 1, 1, 1, 1, 1, 1,\n  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,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.9403,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.04021, 1, 1, 1, 1, 1, 1, 0.98965,\n  1.00068, 0.98965, 1.00068, 0.98965, 1.00068, 0.8287, 0.96777, 1, 1.20088,\n  0.89903, 1, 1, 0.75155, 1.03077, 1.03077, 1.03077, 1.03077, 1.13196, 1.13196,\n  1.13196, 0.67428, 0.67428, 1.16039, 0.73291, 1.20996, 1.22135, 1.06483,\n  0.94868, 0.94868, 0.95996, 1.24633, 1, 1.07497, 0.87796, 0.96927, 1.01518,\n  0.96927, 1, 1, 1, 0.77295, 1, 1, 1.10539, 1.10539, 1.11358, 1.06967, 0.86279,\n  0.94434, 0.86279, 0.94434, 0.86182, 1, 1, 1.083, 1, 0.91578, 0.86507, 1.1714,\n  1.18416, 1.14589, 0.69825, 0.97622, 1.9697, 1.24822, 1.24822, 1.17238,\n  1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n  1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025,\n  0.87025, 1.18083, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1,\n  1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.10938, 1.10938, 1, 1, 1,\n  1.05425, 1.09971, 1.09971, 1.09971, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiRegularMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\nexport {\n  SegoeuiBoldFactors,\n  SegoeuiBoldItalicFactors,\n  SegoeuiBoldItalicMetrics,\n  SegoeuiBoldMetrics,\n  SegoeuiItalicFactors,\n  SegoeuiItalicMetrics,\n  SegoeuiRegularFactors,\n  SegoeuiRegularMetrics,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  CalibriBoldFactors,\n  CalibriBoldItalicFactors,\n  CalibriBoldItalicMetrics,\n  CalibriBoldMetrics,\n  CalibriItalicFactors,\n  CalibriItalicMetrics,\n  CalibriRegularFactors,\n  CalibriRegularMetrics,\n} from \"./calibri_factors.js\";\nimport { Dict, Name } from \"./primitives.js\";\nimport {\n  HelveticaBoldFactors,\n  HelveticaBoldItalicFactors,\n  HelveticaBoldItalicMetrics,\n  HelveticaBoldMetrics,\n  HelveticaItalicFactors,\n  HelveticaItalicMetrics,\n  HelveticaRegularFactors,\n  HelveticaRegularMetrics,\n} from \"./helvetica_factors.js\";\nimport {\n  LiberationSansBoldItalicMapping,\n  LiberationSansBoldItalicWidths,\n  LiberationSansBoldMapping,\n  LiberationSansBoldWidths,\n  LiberationSansItalicMapping,\n  LiberationSansItalicWidths,\n  LiberationSansRegularMapping,\n  LiberationSansRegularWidths,\n} from \"./liberationsans_widths.js\";\nimport {\n  MyriadProBoldFactors,\n  MyriadProBoldItalicFactors,\n  MyriadProBoldItalicMetrics,\n  MyriadProBoldMetrics,\n  MyriadProItalicFactors,\n  MyriadProItalicMetrics,\n  MyriadProRegularFactors,\n  MyriadProRegularMetrics,\n} from \"./myriadpro_factors.js\";\nimport {\n  SegoeuiBoldFactors,\n  SegoeuiBoldItalicFactors,\n  SegoeuiBoldItalicMetrics,\n  SegoeuiBoldMetrics,\n  SegoeuiItalicFactors,\n  SegoeuiItalicMetrics,\n  SegoeuiRegularFactors,\n  SegoeuiRegularMetrics,\n} from \"./segoeui_factors.js\";\nimport { getLookupTableFactory } from \"./core_utils.js\";\nimport { normalizeFontName } from \"./fonts_utils.js\";\n\nconst getXFAFontMap = getLookupTableFactory(function (t) {\n  t[\"MyriadPro-Regular\"] = t[\"PdfJS-Fallback-Regular\"] = {\n    name: \"LiberationSans-Regular\",\n    factors: MyriadProRegularFactors,\n    baseWidths: LiberationSansRegularWidths,\n    baseMapping: LiberationSansRegularMapping,\n    metrics: MyriadProRegularMetrics,\n  };\n  t[\"MyriadPro-Bold\"] = t[\"PdfJS-Fallback-Bold\"] = {\n    name: \"LiberationSans-Bold\",\n    factors: MyriadProBoldFactors,\n    baseWidths: LiberationSansBoldWidths,\n    baseMapping: LiberationSansBoldMapping,\n    metrics: MyriadProBoldMetrics,\n  };\n  t[\"MyriadPro-It\"] =\n    t[\"MyriadPro-Italic\"] =\n    t[\"PdfJS-Fallback-Italic\"] =\n      {\n        name: \"LiberationSans-Italic\",\n        factors: MyriadProItalicFactors,\n        baseWidths: LiberationSansItalicWidths,\n        baseMapping: LiberationSansItalicMapping,\n        metrics: MyriadProItalicMetrics,\n      };\n  t[\"MyriadPro-BoldIt\"] =\n    t[\"MyriadPro-BoldItalic\"] =\n    t[\"PdfJS-Fallback-BoldItalic\"] =\n      {\n        name: \"LiberationSans-BoldItalic\",\n        factors: MyriadProBoldItalicFactors,\n        baseWidths: LiberationSansBoldItalicWidths,\n        baseMapping: LiberationSansBoldItalicMapping,\n        metrics: MyriadProBoldItalicMetrics,\n      };\n  t.ArialMT =\n    t.Arial =\n    t[\"Arial-Regular\"] =\n      {\n        name: \"LiberationSans-Regular\",\n        baseWidths: LiberationSansRegularWidths,\n        baseMapping: LiberationSansRegularMapping,\n      };\n  t[\"Arial-BoldMT\"] = t[\"Arial-Bold\"] = {\n    name: \"LiberationSans-Bold\",\n    baseWidths: LiberationSansBoldWidths,\n    baseMapping: LiberationSansBoldMapping,\n  };\n  t[\"Arial-ItalicMT\"] = t[\"Arial-Italic\"] = {\n    name: \"LiberationSans-Italic\",\n    baseWidths: LiberationSansItalicWidths,\n    baseMapping: LiberationSansItalicMapping,\n  };\n  t[\"Arial-BoldItalicMT\"] = t[\"Arial-BoldItalic\"] = {\n    name: \"LiberationSans-BoldItalic\",\n    baseWidths: LiberationSansBoldItalicWidths,\n    baseMapping: LiberationSansBoldItalicMapping,\n  };\n  t[\"Calibri-Regular\"] = {\n    name: \"LiberationSans-Regular\",\n    factors: CalibriRegularFactors,\n    baseWidths: LiberationSansRegularWidths,\n    baseMapping: LiberationSansRegularMapping,\n    metrics: CalibriRegularMetrics,\n  };\n  t[\"Calibri-Bold\"] = {\n    name: \"LiberationSans-Bold\",\n    factors: CalibriBoldFactors,\n    baseWidths: LiberationSansBoldWidths,\n    baseMapping: LiberationSansBoldMapping,\n    metrics: CalibriBoldMetrics,\n  };\n  t[\"Calibri-Italic\"] = {\n    name: \"LiberationSans-Italic\",\n    factors: CalibriItalicFactors,\n    baseWidths: LiberationSansItalicWidths,\n    baseMapping: LiberationSansItalicMapping,\n    metrics: CalibriItalicMetrics,\n  };\n  t[\"Calibri-BoldItalic\"] = {\n    name: \"LiberationSans-BoldItalic\",\n    factors: CalibriBoldItalicFactors,\n    baseWidths: LiberationSansBoldItalicWidths,\n    baseMapping: LiberationSansBoldItalicMapping,\n    metrics: CalibriBoldItalicMetrics,\n  };\n  t[\"Segoeui-Regular\"] = {\n    name: \"LiberationSans-Regular\",\n    factors: SegoeuiRegularFactors,\n    baseWidths: LiberationSansRegularWidths,\n    baseMapping: LiberationSansRegularMapping,\n    metrics: SegoeuiRegularMetrics,\n  };\n  t[\"Segoeui-Bold\"] = {\n    name: \"LiberationSans-Bold\",\n    factors: SegoeuiBoldFactors,\n    baseWidths: LiberationSansBoldWidths,\n    baseMapping: LiberationSansBoldMapping,\n    metrics: SegoeuiBoldMetrics,\n  };\n  t[\"Segoeui-Italic\"] = {\n    name: \"LiberationSans-Italic\",\n    factors: SegoeuiItalicFactors,\n    baseWidths: LiberationSansItalicWidths,\n    baseMapping: LiberationSansItalicMapping,\n    metrics: SegoeuiItalicMetrics,\n  };\n  t[\"Segoeui-BoldItalic\"] = {\n    name: \"LiberationSans-BoldItalic\",\n    factors: SegoeuiBoldItalicFactors,\n    baseWidths: LiberationSansBoldItalicWidths,\n    baseMapping: LiberationSansBoldItalicMapping,\n    metrics: SegoeuiBoldItalicMetrics,\n  };\n  t[\"Helvetica-Regular\"] = t.Helvetica = {\n    name: \"LiberationSans-Regular\",\n    factors: HelveticaRegularFactors,\n    baseWidths: LiberationSansRegularWidths,\n    baseMapping: LiberationSansRegularMapping,\n    metrics: HelveticaRegularMetrics,\n  };\n  t[\"Helvetica-Bold\"] = {\n    name: \"LiberationSans-Bold\",\n    factors: HelveticaBoldFactors,\n    baseWidths: LiberationSansBoldWidths,\n    baseMapping: LiberationSansBoldMapping,\n    metrics: HelveticaBoldMetrics,\n  };\n  t[\"Helvetica-Italic\"] = {\n    name: \"LiberationSans-Italic\",\n    factors: HelveticaItalicFactors,\n    baseWidths: LiberationSansItalicWidths,\n    baseMapping: LiberationSansItalicMapping,\n    metrics: HelveticaItalicMetrics,\n  };\n  t[\"Helvetica-BoldItalic\"] = {\n    name: \"LiberationSans-BoldItalic\",\n    factors: HelveticaBoldItalicFactors,\n    baseWidths: LiberationSansBoldItalicWidths,\n    baseMapping: LiberationSansBoldItalicMapping,\n    metrics: HelveticaBoldItalicMetrics,\n  };\n});\n\nfunction getXfaFontName(name) {\n  const fontName = normalizeFontName(name);\n  const fontMap = getXFAFontMap();\n  return fontMap[fontName];\n}\n\nfunction getXfaFontWidths(name) {\n  const info = getXfaFontName(name);\n  if (!info) {\n    return null;\n  }\n\n  const { baseWidths, baseMapping, factors } = info;\n  const rescaledBaseWidths = !factors\n    ? baseWidths\n    : baseWidths.map((w, i) => w * factors[i]);\n\n  let currentCode = -2;\n  let currentArray;\n\n  // Widths array for composite font is:\n  // CharCode1 [10, 20, 30] ...\n  // which means:\n  //   - CharCode1 has a width equal to 10\n  //   - CharCode1+1 has a width equal to 20\n  //   - CharCode1+2 has a width equal to 30\n  //\n  // The baseMapping array contains a map for glyph index to unicode.\n  // So from baseMapping we'll get sorted unicodes and their positions\n  // (i.e. glyph indices) and then we put widths in an array for the\n  // the consecutive unicodes.\n  const newWidths = [];\n  for (const [unicode, glyphIndex] of baseMapping\n    .map(\n      (charUnicode, index) => [\n        charUnicode,\n        index,\n      ] /* collect unicode and glyph index */\n    )\n    .sort(\n      ([unicode1], [unicode2]) =>\n        unicode1 - unicode2 /* order by unicode only */\n    )) {\n    if (unicode === -1) {\n      continue;\n    }\n\n    if (unicode === currentCode + 1) {\n      currentArray.push(rescaledBaseWidths[glyphIndex]);\n      currentCode += 1;\n    } else {\n      currentCode = unicode;\n      currentArray = [rescaledBaseWidths[glyphIndex]];\n      newWidths.push(unicode, currentArray);\n    }\n  }\n\n  return newWidths;\n}\n\nfunction getXfaFontDict(name) {\n  const widths = getXfaFontWidths(name);\n  const dict = new Dict(null);\n  dict.set(\"BaseFont\", Name.get(name));\n  dict.set(\"Type\", Name.get(\"Font\"));\n  dict.set(\"Subtype\", Name.get(\"CIDFontType2\"));\n  dict.set(\"Encoding\", Name.get(\"Identity-H\"));\n  dict.set(\"CIDToGIDMap\", Name.get(\"Identity\"));\n  dict.set(\"W\", widths);\n  dict.set(\"FirstChar\", widths[0]);\n  dict.set(\"LastChar\", widths.at(-2) + widths.at(-1).length - 1);\n  const descriptor = new Dict(null);\n  dict.set(\"FontDescriptor\", descriptor);\n  const systemInfo = new Dict(null);\n  systemInfo.set(\"Ordering\", \"Identity\");\n  systemInfo.set(\"Registry\", \"Adobe\");\n  systemInfo.set(\"Supplement\", 0);\n  dict.set(\"CIDSystemInfo\", systemInfo);\n\n  return dict;\n}\n\nexport { getXfaFontDict, getXfaFontName };\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FormatError, shadow } from \"../shared/util.js\";\nimport { EOF } from \"./primitives.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\n\nclass PostScriptParser {\n  constructor(lexer) {\n    this.lexer = lexer;\n    this.operators = [];\n    this.token = null;\n    this.prev = null;\n  }\n\n  nextToken() {\n    this.prev = this.token;\n    this.token = this.lexer.getToken();\n  }\n\n  accept(type) {\n    if (this.token.type === type) {\n      this.nextToken();\n      return true;\n    }\n    return false;\n  }\n\n  expect(type) {\n    if (this.accept(type)) {\n      return true;\n    }\n    throw new FormatError(\n      `Unexpected symbol: found ${this.token.type} expected ${type}.`\n    );\n  }\n\n  parse() {\n    this.nextToken();\n    this.expect(PostScriptTokenTypes.LBRACE);\n    this.parseBlock();\n    this.expect(PostScriptTokenTypes.RBRACE);\n    return this.operators;\n  }\n\n  parseBlock() {\n    while (true) {\n      if (this.accept(PostScriptTokenTypes.NUMBER)) {\n        this.operators.push(this.prev.value);\n      } else if (this.accept(PostScriptTokenTypes.OPERATOR)) {\n        this.operators.push(this.prev.value);\n      } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n        this.parseCondition();\n      } else {\n        return;\n      }\n    }\n  }\n\n  parseCondition() {\n    // Add two place holders that will be updated later\n    const conditionLocation = this.operators.length;\n    this.operators.push(null, null);\n\n    this.parseBlock();\n    this.expect(PostScriptTokenTypes.RBRACE);\n    if (this.accept(PostScriptTokenTypes.IF)) {\n      // The true block is right after the 'if' so it just falls through on true\n      // else it jumps and skips the true block.\n      this.operators[conditionLocation] = this.operators.length;\n      this.operators[conditionLocation + 1] = \"jz\";\n    } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n      const jumpLocation = this.operators.length;\n      this.operators.push(null, null);\n      const endOfTrue = this.operators.length;\n      this.parseBlock();\n      this.expect(PostScriptTokenTypes.RBRACE);\n      this.expect(PostScriptTokenTypes.IFELSE);\n      // The jump is added at the end of the true block to skip the false block.\n      this.operators[jumpLocation] = this.operators.length;\n      this.operators[jumpLocation + 1] = \"j\";\n\n      this.operators[conditionLocation] = endOfTrue;\n      this.operators[conditionLocation + 1] = \"jz\";\n    } else {\n      throw new FormatError(\"PS Function: error parsing conditional.\");\n    }\n  }\n}\n\nconst PostScriptTokenTypes = {\n  LBRACE: 0,\n  RBRACE: 1,\n  NUMBER: 2,\n  OPERATOR: 3,\n  IF: 4,\n  IFELSE: 5,\n};\n\nclass PostScriptToken {\n  static get opCache() {\n    return shadow(this, \"opCache\", Object.create(null));\n  }\n\n  constructor(type, value) {\n    this.type = type;\n    this.value = value;\n  }\n\n  static getOperator(op) {\n    return (PostScriptToken.opCache[op] ||= new PostScriptToken(\n      PostScriptTokenTypes.OPERATOR,\n      op\n    ));\n  }\n\n  static get LBRACE() {\n    return shadow(\n      this,\n      \"LBRACE\",\n      new PostScriptToken(PostScriptTokenTypes.LBRACE, \"{\")\n    );\n  }\n\n  static get RBRACE() {\n    return shadow(\n      this,\n      \"RBRACE\",\n      new PostScriptToken(PostScriptTokenTypes.RBRACE, \"}\")\n    );\n  }\n\n  static get IF() {\n    return shadow(\n      this,\n      \"IF\",\n      new PostScriptToken(PostScriptTokenTypes.IF, \"IF\")\n    );\n  }\n\n  static get IFELSE() {\n    return shadow(\n      this,\n      \"IFELSE\",\n      new PostScriptToken(PostScriptTokenTypes.IFELSE, \"IFELSE\")\n    );\n  }\n}\n\nclass PostScriptLexer {\n  constructor(stream) {\n    this.stream = stream;\n    this.nextChar();\n\n    this.strBuf = [];\n  }\n\n  nextChar() {\n    return (this.currentChar = this.stream.getByte());\n  }\n\n  getToken() {\n    let comment = false;\n    let ch = this.currentChar;\n\n    // skip comments\n    while (true) {\n      if (ch < 0) {\n        return EOF;\n      }\n\n      if (comment) {\n        if (ch === 0x0a || ch === 0x0d) {\n          comment = false;\n        }\n      } else if (ch === /* '%' = */ 0x25) {\n        comment = true;\n      } else if (!isWhiteSpace(ch)) {\n        break;\n      }\n      ch = this.nextChar();\n    }\n    switch (ch | 0) {\n      case 0x30: // '0'\n      case 0x31: // '1'\n      case 0x32: // '2'\n      case 0x33: // '3'\n      case 0x34: // '4'\n      case 0x35: // '5'\n      case 0x36: // '6'\n      case 0x37: // '7'\n      case 0x38: // '8'\n      case 0x39: // '9'\n      case 0x2b: // '+'\n      case 0x2d: // '-'\n      case 0x2e: // '.'\n        return new PostScriptToken(\n          PostScriptTokenTypes.NUMBER,\n          this.getNumber()\n        );\n      case 0x7b: // '{'\n        this.nextChar();\n        return PostScriptToken.LBRACE;\n      case 0x7d: // '}'\n        this.nextChar();\n        return PostScriptToken.RBRACE;\n    }\n    // operator\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n    strBuf[0] = String.fromCharCode(ch);\n\n    while (\n      (ch = this.nextChar()) >= 0 &&\n      ((ch >= /* 'A' = */ 0x41 && ch <= /* 'Z' = */ 0x5a) ||\n        (ch >= /* 'a' = */ 0x61 && ch <= /* 'z' = */ 0x7a))\n    ) {\n      strBuf.push(String.fromCharCode(ch));\n    }\n    const str = strBuf.join(\"\");\n    switch (str.toLowerCase()) {\n      case \"if\":\n        return PostScriptToken.IF;\n      case \"ifelse\":\n        return PostScriptToken.IFELSE;\n      default:\n        return PostScriptToken.getOperator(str);\n    }\n  }\n\n  getNumber() {\n    let ch = this.currentChar;\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n    strBuf[0] = String.fromCharCode(ch);\n\n    while ((ch = this.nextChar()) >= 0) {\n      if (\n        (ch >= /* '0' = */ 0x30 && ch <= /* '9' = */ 0x39) ||\n        ch === /* '-' = */ 0x2d ||\n        ch === /* '.' = */ 0x2e\n      ) {\n        strBuf.push(String.fromCharCode(ch));\n      } else {\n        break;\n      }\n    }\n    const value = parseFloat(strBuf.join(\"\"));\n    if (isNaN(value)) {\n      throw new FormatError(`Invalid floating point number: ${value}`);\n    }\n    return value;\n  }\n}\n\nexport { PostScriptLexer, PostScriptParser };\n","/* Copyright 2019 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  assert,\n  MAX_IMAGE_SIZE_TO_CACHE,\n  unreachable,\n  warn,\n} from \"../shared/util.js\";\nimport { RefSetCache } from \"./primitives.js\";\n\nclass BaseLocalCache {\n  constructor(options) {\n    if (this.constructor === BaseLocalCache) {\n      unreachable(\"Cannot initialize BaseLocalCache.\");\n    }\n    this._onlyRefs = options?.onlyRefs === true;\n\n    if (!this._onlyRefs) {\n      this._nameRefMap = new Map();\n      this._imageMap = new Map();\n    }\n    this._imageCache = new RefSetCache();\n  }\n\n  getByName(name) {\n    if (this._onlyRefs) {\n      unreachable(\"Should not call `getByName` method.\");\n    }\n    const ref = this._nameRefMap.get(name);\n    if (ref) {\n      return this.getByRef(ref);\n    }\n    return this._imageMap.get(name) || null;\n  }\n\n  getByRef(ref) {\n    return this._imageCache.get(ref) || null;\n  }\n\n  set(name, ref, data) {\n    unreachable(\"Abstract method `set` called.\");\n  }\n}\n\nclass LocalImageCache extends BaseLocalCache {\n  set(name, ref = null, data) {\n    if (typeof name !== \"string\") {\n      throw new Error('LocalImageCache.set - expected \"name\" argument.');\n    }\n    if (ref) {\n      if (this._imageCache.has(ref)) {\n        return;\n      }\n      this._nameRefMap.set(name, ref);\n      this._imageCache.put(ref, data);\n      return;\n    }\n    // name\n    if (this._imageMap.has(name)) {\n      return;\n    }\n    this._imageMap.set(name, data);\n  }\n}\n\nclass LocalColorSpaceCache extends BaseLocalCache {\n  set(name = null, ref = null, data) {\n    if (typeof name !== \"string\" && !ref) {\n      throw new Error(\n        'LocalColorSpaceCache.set - expected \"name\" and/or \"ref\" argument.'\n      );\n    }\n    if (ref) {\n      if (this._imageCache.has(ref)) {\n        return;\n      }\n      if (name !== null) {\n        // Optional when `ref` is defined.\n        this._nameRefMap.set(name, ref);\n      }\n      this._imageCache.put(ref, data);\n      return;\n    }\n    // name\n    if (this._imageMap.has(name)) {\n      return;\n    }\n    this._imageMap.set(name, data);\n  }\n}\n\nclass LocalFunctionCache extends BaseLocalCache {\n  constructor(options) {\n    super({ onlyRefs: true });\n  }\n\n  set(name = null, ref, data) {\n    if (!ref) {\n      throw new Error('LocalFunctionCache.set - expected \"ref\" argument.');\n    }\n    if (this._imageCache.has(ref)) {\n      return;\n    }\n    this._imageCache.put(ref, data);\n  }\n}\n\nclass LocalGStateCache extends BaseLocalCache {\n  set(name, ref = null, data) {\n    if (typeof name !== \"string\") {\n      throw new Error('LocalGStateCache.set - expected \"name\" argument.');\n    }\n    if (ref) {\n      if (this._imageCache.has(ref)) {\n        return;\n      }\n      this._nameRefMap.set(name, ref);\n      this._imageCache.put(ref, data);\n      return;\n    }\n    // name\n    if (this._imageMap.has(name)) {\n      return;\n    }\n    this._imageMap.set(name, data);\n  }\n}\n\nclass LocalTilingPatternCache extends BaseLocalCache {\n  constructor(options) {\n    super({ onlyRefs: true });\n  }\n\n  set(name = null, ref, data) {\n    if (!ref) {\n      throw new Error('LocalTilingPatternCache.set - expected \"ref\" argument.');\n    }\n    if (this._imageCache.has(ref)) {\n      return;\n    }\n    this._imageCache.put(ref, data);\n  }\n}\n\nclass RegionalImageCache extends BaseLocalCache {\n  constructor(options) {\n    super({ onlyRefs: true });\n  }\n\n  set(name = null, ref, data) {\n    if (!ref) {\n      throw new Error('RegionalImageCache.set - expected \"ref\" argument.');\n    }\n    if (this._imageCache.has(ref)) {\n      return;\n    }\n    this._imageCache.put(ref, data);\n  }\n}\n\nclass GlobalImageCache {\n  static NUM_PAGES_THRESHOLD = 2;\n\n  static MIN_IMAGES_TO_CACHE = 10;\n\n  static MAX_BYTE_SIZE = 5 * MAX_IMAGE_SIZE_TO_CACHE;\n\n  constructor() {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        GlobalImageCache.NUM_PAGES_THRESHOLD > 1,\n        \"GlobalImageCache - invalid NUM_PAGES_THRESHOLD constant.\"\n      );\n    }\n    this._refCache = new RefSetCache();\n    this._imageCache = new RefSetCache();\n  }\n\n  get _byteSize() {\n    let byteSize = 0;\n    for (const imageData of this._imageCache) {\n      byteSize += imageData.byteSize;\n    }\n    return byteSize;\n  }\n\n  get _cacheLimitReached() {\n    if (this._imageCache.size < GlobalImageCache.MIN_IMAGES_TO_CACHE) {\n      return false;\n    }\n    if (this._byteSize < GlobalImageCache.MAX_BYTE_SIZE) {\n      return false;\n    }\n    return true;\n  }\n\n  shouldCache(ref, pageIndex) {\n    let pageIndexSet = this._refCache.get(ref);\n    if (!pageIndexSet) {\n      pageIndexSet = new Set();\n      this._refCache.put(ref, pageIndexSet);\n    }\n    pageIndexSet.add(pageIndex);\n\n    if (pageIndexSet.size < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n      return false;\n    }\n    if (!this._imageCache.has(ref) && this._cacheLimitReached) {\n      return false;\n    }\n    return true;\n  }\n\n  /**\n   * PLEASE NOTE: Must be called *after* the `setData` method.\n   */\n  addByteSize(ref, byteSize) {\n    const imageData = this._imageCache.get(ref);\n    if (!imageData) {\n      return; // The image data isn't cached (the limit was reached).\n    }\n    if (imageData.byteSize) {\n      return; // The byte-size has already been set.\n    }\n    imageData.byteSize = byteSize;\n  }\n\n  getData(ref, pageIndex) {\n    const pageIndexSet = this._refCache.get(ref);\n    if (!pageIndexSet) {\n      return null;\n    }\n    if (pageIndexSet.size < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n      return null;\n    }\n    const imageData = this._imageCache.get(ref);\n    if (!imageData) {\n      return null;\n    }\n    // Ensure that we keep track of all pages containing the image reference.\n    pageIndexSet.add(pageIndex);\n\n    return imageData;\n  }\n\n  setData(ref, data) {\n    if (!this._refCache.has(ref)) {\n      throw new Error(\n        'GlobalImageCache.setData - expected \"shouldCache\" to have been called.'\n      );\n    }\n    if (this._imageCache.has(ref)) {\n      return;\n    }\n    if (this._cacheLimitReached) {\n      warn(\"GlobalImageCache.setData - cache limit reached.\");\n      return;\n    }\n    this._imageCache.put(ref, data);\n  }\n\n  clear(onlyData = false) {\n    if (!onlyData) {\n      this._refCache.clear();\n    }\n    this._imageCache.clear();\n  }\n}\n\nexport {\n  GlobalImageCache,\n  LocalColorSpaceCache,\n  LocalFunctionCache,\n  LocalGStateCache,\n  LocalImageCache,\n  LocalTilingPatternCache,\n  RegionalImageCache,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, Ref } from \"./primitives.js\";\nimport {\n  FeatureTest,\n  FormatError,\n  info,\n  shadow,\n  unreachable,\n} from \"../shared/util.js\";\nimport { PostScriptLexer, PostScriptParser } from \"./ps_parser.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { LocalFunctionCache } from \"./image_utils.js\";\n\nclass PDFFunctionFactory {\n  constructor({ xref, isEvalSupported = true }) {\n    this.xref = xref;\n    this.isEvalSupported = isEvalSupported !== false;\n  }\n\n  create(fn) {\n    const cachedFunction = this.getCached(fn);\n    if (cachedFunction) {\n      return cachedFunction;\n    }\n    const parsedFunction = PDFFunction.parse({\n      xref: this.xref,\n      isEvalSupported: this.isEvalSupported,\n      fn: fn instanceof Ref ? this.xref.fetch(fn) : fn,\n    });\n\n    // Attempt to cache the parsed Function, by reference.\n    this._cache(fn, parsedFunction);\n\n    return parsedFunction;\n  }\n\n  createFromArray(fnObj) {\n    const cachedFunction = this.getCached(fnObj);\n    if (cachedFunction) {\n      return cachedFunction;\n    }\n    const parsedFunction = PDFFunction.parseArray({\n      xref: this.xref,\n      isEvalSupported: this.isEvalSupported,\n      fnObj: fnObj instanceof Ref ? this.xref.fetch(fnObj) : fnObj,\n    });\n\n    // Attempt to cache the parsed Function, by reference.\n    this._cache(fnObj, parsedFunction);\n\n    return parsedFunction;\n  }\n\n  getCached(cacheKey) {\n    let fnRef;\n    if (cacheKey instanceof Ref) {\n      fnRef = cacheKey;\n    } else if (cacheKey instanceof Dict) {\n      fnRef = cacheKey.objId;\n    } else if (cacheKey instanceof BaseStream) {\n      fnRef = cacheKey.dict?.objId;\n    }\n    if (fnRef) {\n      const localFunction = this._localFunctionCache.getByRef(fnRef);\n      if (localFunction) {\n        return localFunction;\n      }\n    }\n    return null;\n  }\n\n  /**\n   * @private\n   */\n  _cache(cacheKey, parsedFunction) {\n    if (!parsedFunction) {\n      throw new Error(\n        'PDFFunctionFactory._cache - expected \"parsedFunction\" argument.'\n      );\n    }\n    let fnRef;\n    if (cacheKey instanceof Ref) {\n      fnRef = cacheKey;\n    } else if (cacheKey instanceof Dict) {\n      fnRef = cacheKey.objId;\n    } else if (cacheKey instanceof BaseStream) {\n      fnRef = cacheKey.dict?.objId;\n    }\n    if (fnRef) {\n      this._localFunctionCache.set(/* name = */ null, fnRef, parsedFunction);\n    }\n  }\n\n  /**\n   * @private\n   */\n  get _localFunctionCache() {\n    return shadow(this, \"_localFunctionCache\", new LocalFunctionCache());\n  }\n}\n\nfunction toNumberArray(arr) {\n  if (!Array.isArray(arr)) {\n    return null;\n  }\n  const length = arr.length;\n  for (let i = 0; i < length; i++) {\n    if (typeof arr[i] !== \"number\") {\n      // Non-number is found -- convert all items to numbers.\n      const result = new Array(length);\n      for (let j = 0; j < length; j++) {\n        result[j] = +arr[j];\n      }\n      return result;\n    }\n  }\n  return arr;\n}\n\nclass PDFFunction {\n  static getSampleArray(size, outputSize, bps, stream) {\n    let i, ii;\n    let length = 1;\n    for (i = 0, ii = size.length; i < ii; i++) {\n      length *= size[i];\n    }\n    length *= outputSize;\n\n    const array = new Array(length);\n    let codeSize = 0;\n    let codeBuf = 0;\n    // 32 is a valid bps so shifting won't work\n    const sampleMul = 1.0 / (2.0 ** bps - 1);\n\n    const strBytes = stream.getBytes((length * bps + 7) / 8);\n    let strIdx = 0;\n    for (i = 0; i < length; i++) {\n      while (codeSize < bps) {\n        codeBuf <<= 8;\n        codeBuf |= strBytes[strIdx++];\n        codeSize += 8;\n      }\n      codeSize -= bps;\n      array[i] = (codeBuf >> codeSize) * sampleMul;\n      codeBuf &= (1 << codeSize) - 1;\n    }\n    return array;\n  }\n\n  static parse({ xref, isEvalSupported, fn }) {\n    const dict = fn.dict || fn;\n    const typeNum = dict.get(\"FunctionType\");\n\n    switch (typeNum) {\n      case 0:\n        return this.constructSampled({ xref, isEvalSupported, fn, dict });\n      case 1:\n        break;\n      case 2:\n        return this.constructInterpolated({ xref, isEvalSupported, dict });\n      case 3:\n        return this.constructStiched({ xref, isEvalSupported, dict });\n      case 4:\n        return this.constructPostScript({ xref, isEvalSupported, fn, dict });\n    }\n    throw new FormatError(\"Unknown type of function\");\n  }\n\n  static parseArray({ xref, isEvalSupported, fnObj }) {\n    if (!Array.isArray(fnObj)) {\n      // not an array -- parsing as regular function\n      return this.parse({ xref, isEvalSupported, fn: fnObj });\n    }\n\n    const fnArray = [];\n    for (const fn of fnObj) {\n      fnArray.push(\n        this.parse({ xref, isEvalSupported, fn: xref.fetchIfRef(fn) })\n      );\n    }\n    return function (src, srcOffset, dest, destOffset) {\n      for (let i = 0, ii = fnArray.length; i < ii; i++) {\n        fnArray[i](src, srcOffset, dest, destOffset + i);\n      }\n    };\n  }\n\n  static constructSampled({ xref, isEvalSupported, fn, dict }) {\n    function toMultiArray(arr) {\n      const inputLength = arr.length;\n      const out = [];\n      let index = 0;\n      for (let i = 0; i < inputLength; i += 2) {\n        out[index++] = [arr[i], arr[i + 1]];\n      }\n      return out;\n    }\n    // See chapter 3, page 109 of the PDF reference\n    function interpolate(x, xmin, xmax, ymin, ymax) {\n      return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin));\n    }\n\n    let domain = toNumberArray(dict.getArray(\"Domain\"));\n    let range = toNumberArray(dict.getArray(\"Range\"));\n\n    if (!domain || !range) {\n      throw new FormatError(\"No domain or range\");\n    }\n\n    const inputSize = domain.length / 2;\n    const outputSize = range.length / 2;\n\n    domain = toMultiArray(domain);\n    range = toMultiArray(range);\n\n    const size = toNumberArray(dict.getArray(\"Size\"));\n    const bps = dict.get(\"BitsPerSample\");\n    const order = dict.get(\"Order\") || 1;\n    if (order !== 1) {\n      // No description how cubic spline interpolation works in PDF32000:2008\n      // As in poppler, ignoring order, linear interpolation may work as good\n      info(\"No support for cubic spline interpolation: \" + order);\n    }\n\n    let encode = toNumberArray(dict.getArray(\"Encode\"));\n    if (!encode) {\n      encode = [];\n      for (let i = 0; i < inputSize; ++i) {\n        encode.push([0, size[i] - 1]);\n      }\n    } else {\n      encode = toMultiArray(encode);\n    }\n\n    let decode = toNumberArray(dict.getArray(\"Decode\"));\n    decode = !decode ? range : toMultiArray(decode);\n\n    const samples = this.getSampleArray(size, outputSize, bps, fn);\n    // const mask = 2 ** bps - 1;\n\n    return function constructSampledFn(src, srcOffset, dest, destOffset) {\n      // See chapter 3, page 110 of the PDF reference.\n\n      // Building the cube vertices: its part and sample index\n      // http://rjwagner49.com/Mathematics/Interpolation.pdf\n      const cubeVertices = 1 << inputSize;\n      const cubeN = new Float64Array(cubeVertices);\n      const cubeVertex = new Uint32Array(cubeVertices);\n      let i, j;\n      for (j = 0; j < cubeVertices; j++) {\n        cubeN[j] = 1;\n      }\n\n      let k = outputSize,\n        pos = 1;\n      // Map x_i to y_j for 0 <= i < m using the sampled function.\n      for (i = 0; i < inputSize; ++i) {\n        // x_i' = min(max(x_i, Domain_2i), Domain_2i+1)\n        const domain_2i = domain[i][0];\n        const domain_2i_1 = domain[i][1];\n        const xi = Math.min(\n          Math.max(src[srcOffset + i], domain_2i),\n          domain_2i_1\n        );\n\n        // e_i = Interpolate(x_i', Domain_2i, Domain_2i+1,\n        //                   Encode_2i, Encode_2i+1)\n        let e = interpolate(\n          xi,\n          domain_2i,\n          domain_2i_1,\n          encode[i][0],\n          encode[i][1]\n        );\n\n        // e_i' = min(max(e_i, 0), Size_i - 1)\n        const size_i = size[i];\n        e = Math.min(Math.max(e, 0), size_i - 1);\n\n        // Adjusting the cube: N and vertex sample index\n        const e0 = e < size_i - 1 ? Math.floor(e) : e - 1; // e1 = e0 + 1;\n        const n0 = e0 + 1 - e; // (e1 - e) / (e1 - e0);\n        const n1 = e - e0; // (e - e0) / (e1 - e0);\n        const offset0 = e0 * k;\n        const offset1 = offset0 + k; // e1 * k\n        for (j = 0; j < cubeVertices; j++) {\n          if (j & pos) {\n            cubeN[j] *= n1;\n            cubeVertex[j] += offset1;\n          } else {\n            cubeN[j] *= n0;\n            cubeVertex[j] += offset0;\n          }\n        }\n\n        k *= size_i;\n        pos <<= 1;\n      }\n\n      for (j = 0; j < outputSize; ++j) {\n        // Sum all cube vertices' samples portions\n        let rj = 0;\n        for (i = 0; i < cubeVertices; i++) {\n          rj += samples[cubeVertex[i] + j] * cubeN[i];\n        }\n\n        // r_j' = Interpolate(r_j, 0, 2^BitsPerSample - 1,\n        //                    Decode_2j, Decode_2j+1)\n        rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]);\n\n        // y_j = min(max(r_j, range_2j), range_2j+1)\n        dest[destOffset + j] = Math.min(Math.max(rj, range[j][0]), range[j][1]);\n      }\n    };\n  }\n\n  static constructInterpolated({ xref, isEvalSupported, dict }) {\n    const c0 = toNumberArray(dict.getArray(\"C0\")) || [0];\n    const c1 = toNumberArray(dict.getArray(\"C1\")) || [1];\n    const n = dict.get(\"N\");\n\n    const diff = [];\n    for (let i = 0, ii = c0.length; i < ii; ++i) {\n      diff.push(c1[i] - c0[i]);\n    }\n    const length = diff.length;\n\n    return function constructInterpolatedFn(src, srcOffset, dest, destOffset) {\n      const x = n === 1 ? src[srcOffset] : src[srcOffset] ** n;\n\n      for (let j = 0; j < length; ++j) {\n        dest[destOffset + j] = c0[j] + x * diff[j];\n      }\n    };\n  }\n\n  static constructStiched({ xref, isEvalSupported, dict }) {\n    const domain = toNumberArray(dict.getArray(\"Domain\"));\n\n    if (!domain) {\n      throw new FormatError(\"No domain\");\n    }\n\n    const inputSize = domain.length / 2;\n    if (inputSize !== 1) {\n      throw new FormatError(\"Bad domain for stiched function\");\n    }\n\n    const fns = [];\n    for (const fn of dict.get(\"Functions\")) {\n      fns.push(this.parse({ xref, isEvalSupported, fn: xref.fetchIfRef(fn) }));\n    }\n\n    const bounds = toNumberArray(dict.getArray(\"Bounds\"));\n    const encode = toNumberArray(dict.getArray(\"Encode\"));\n    const tmpBuf = new Float32Array(1);\n\n    return function constructStichedFn(src, srcOffset, dest, destOffset) {\n      const clip = function constructStichedFromIRClip(v, min, max) {\n        if (v > max) {\n          v = max;\n        } else if (v < min) {\n          v = min;\n        }\n        return v;\n      };\n\n      // clip to domain\n      const v = clip(src[srcOffset], domain[0], domain[1]);\n      // calculate which bound the value is in\n      const length = bounds.length;\n      let i;\n      for (i = 0; i < length; ++i) {\n        if (v < bounds[i]) {\n          break;\n        }\n      }\n\n      // encode value into domain of function\n      let dmin = domain[0];\n      if (i > 0) {\n        dmin = bounds[i - 1];\n      }\n      let dmax = domain[1];\n      if (i < bounds.length) {\n        dmax = bounds[i];\n      }\n\n      const rmin = encode[2 * i];\n      const rmax = encode[2 * i + 1];\n\n      // Prevent the value from becoming NaN as a result\n      // of division by zero (fixes issue6113.pdf).\n      tmpBuf[0] =\n        dmin === dmax\n          ? rmin\n          : rmin + ((v - dmin) * (rmax - rmin)) / (dmax - dmin);\n\n      // call the appropriate function\n      fns[i](tmpBuf, 0, dest, destOffset);\n    };\n  }\n\n  static constructPostScript({ xref, isEvalSupported, fn, dict }) {\n    const domain = toNumberArray(dict.getArray(\"Domain\"));\n    const range = toNumberArray(dict.getArray(\"Range\"));\n\n    if (!domain) {\n      throw new FormatError(\"No domain.\");\n    }\n\n    if (!range) {\n      throw new FormatError(\"No range.\");\n    }\n\n    const lexer = new PostScriptLexer(fn);\n    const parser = new PostScriptParser(lexer);\n    const code = parser.parse();\n\n    if (isEvalSupported && FeatureTest.isEvalSupported) {\n      const compiled = new PostScriptCompiler().compile(code, domain, range);\n      if (compiled) {\n        // Compiled function consists of simple expressions such as addition,\n        // subtraction, Math.max, and also contains 'var' and 'return'\n        // statements. See the generation in the PostScriptCompiler below.\n        // eslint-disable-next-line no-new-func\n        return new Function(\"src\", \"srcOffset\", \"dest\", \"destOffset\", compiled);\n      }\n    }\n    info(\"Unable to compile PS function\");\n\n    const numOutputs = range.length >> 1;\n    const numInputs = domain.length >> 1;\n    const evaluator = new PostScriptEvaluator(code);\n    // Cache the values for a big speed up, the cache size is limited though\n    // since the number of possible values can be huge from a PS function.\n    const cache = Object.create(null);\n    // The MAX_CACHE_SIZE is set to ~4x the maximum number of distinct values\n    // seen in our tests.\n    const MAX_CACHE_SIZE = 2048 * 4;\n    let cache_available = MAX_CACHE_SIZE;\n    const tmpBuf = new Float32Array(numInputs);\n\n    return function constructPostScriptFn(src, srcOffset, dest, destOffset) {\n      let i, value;\n      let key = \"\";\n      const input = tmpBuf;\n      for (i = 0; i < numInputs; i++) {\n        value = src[srcOffset + i];\n        input[i] = value;\n        key += value + \"_\";\n      }\n\n      const cachedValue = cache[key];\n      if (cachedValue !== undefined) {\n        dest.set(cachedValue, destOffset);\n        return;\n      }\n\n      const output = new Float32Array(numOutputs);\n      const stack = evaluator.execute(input);\n      const stackIndex = stack.length - numOutputs;\n      for (i = 0; i < numOutputs; i++) {\n        value = stack[stackIndex + i];\n        let bound = range[i * 2];\n        if (value < bound) {\n          value = bound;\n        } else {\n          bound = range[i * 2 + 1];\n          if (value > bound) {\n            value = bound;\n          }\n        }\n        output[i] = value;\n      }\n      if (cache_available > 0) {\n        cache_available--;\n        cache[key] = output;\n      }\n      dest.set(output, destOffset);\n    };\n  }\n}\n\nfunction isPDFFunction(v) {\n  let fnDict;\n  if (v instanceof Dict) {\n    fnDict = v;\n  } else if (v instanceof BaseStream) {\n    fnDict = v.dict;\n  } else {\n    return false;\n  }\n  return fnDict.has(\"FunctionType\");\n}\n\nclass PostScriptStack {\n  static MAX_STACK_SIZE = 100;\n\n  constructor(initialStack) {\n    this.stack = initialStack ? Array.from(initialStack) : [];\n  }\n\n  push(value) {\n    if (this.stack.length >= PostScriptStack.MAX_STACK_SIZE) {\n      throw new Error(\"PostScript function stack overflow.\");\n    }\n    this.stack.push(value);\n  }\n\n  pop() {\n    if (this.stack.length <= 0) {\n      throw new Error(\"PostScript function stack underflow.\");\n    }\n    return this.stack.pop();\n  }\n\n  copy(n) {\n    if (this.stack.length + n >= PostScriptStack.MAX_STACK_SIZE) {\n      throw new Error(\"PostScript function stack overflow.\");\n    }\n    const stack = this.stack;\n    for (let i = stack.length - n, j = n - 1; j >= 0; j--, i++) {\n      stack.push(stack[i]);\n    }\n  }\n\n  index(n) {\n    this.push(this.stack[this.stack.length - n - 1]);\n  }\n\n  // rotate the last n stack elements p times\n  roll(n, p) {\n    const stack = this.stack;\n    const l = stack.length - n;\n    const r = stack.length - 1;\n    const c = l + (p - Math.floor(p / n) * n);\n\n    for (let i = l, j = r; i < j; i++, j--) {\n      const t = stack[i];\n      stack[i] = stack[j];\n      stack[j] = t;\n    }\n    for (let i = l, j = c - 1; i < j; i++, j--) {\n      const t = stack[i];\n      stack[i] = stack[j];\n      stack[j] = t;\n    }\n    for (let i = c, j = r; i < j; i++, j--) {\n      const t = stack[i];\n      stack[i] = stack[j];\n      stack[j] = t;\n    }\n  }\n}\n\nclass PostScriptEvaluator {\n  constructor(operators) {\n    this.operators = operators;\n  }\n\n  execute(initialStack) {\n    const stack = new PostScriptStack(initialStack);\n    let counter = 0;\n    const operators = this.operators;\n    const length = operators.length;\n    let operator, a, b;\n    while (counter < length) {\n      operator = operators[counter++];\n      if (typeof operator === \"number\") {\n        // Operator is really an operand and should be pushed to the stack.\n        stack.push(operator);\n        continue;\n      }\n      switch (operator) {\n        // non standard ps operators\n        case \"jz\": // jump if false\n          b = stack.pop();\n          a = stack.pop();\n          if (!a) {\n            counter = b;\n          }\n          break;\n        case \"j\": // jump\n          a = stack.pop();\n          counter = a;\n          break;\n\n        // all ps operators in alphabetical order (excluding if/ifelse)\n        case \"abs\":\n          a = stack.pop();\n          stack.push(Math.abs(a));\n          break;\n        case \"add\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a + b);\n          break;\n        case \"and\":\n          b = stack.pop();\n          a = stack.pop();\n          if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n            stack.push(a && b);\n          } else {\n            stack.push(a & b);\n          }\n          break;\n        case \"atan\":\n          b = stack.pop();\n          a = stack.pop();\n          a = (Math.atan2(a, b) / Math.PI) * 180;\n          if (a < 0) {\n            a += 360;\n          }\n          stack.push(a);\n          break;\n        case \"bitshift\":\n          b = stack.pop();\n          a = stack.pop();\n          if (a > 0) {\n            stack.push(a << b);\n          } else {\n            stack.push(a >> b);\n          }\n          break;\n        case \"ceiling\":\n          a = stack.pop();\n          stack.push(Math.ceil(a));\n          break;\n        case \"copy\":\n          a = stack.pop();\n          stack.copy(a);\n          break;\n        case \"cos\":\n          a = stack.pop();\n          stack.push(Math.cos(((a % 360) / 180) * Math.PI));\n          break;\n        case \"cvi\":\n          a = stack.pop() | 0;\n          stack.push(a);\n          break;\n        case \"cvr\":\n          // noop\n          break;\n        case \"div\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a / b);\n          break;\n        case \"dup\":\n          stack.copy(1);\n          break;\n        case \"eq\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a === b);\n          break;\n        case \"exch\":\n          stack.roll(2, 1);\n          break;\n        case \"exp\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a ** b);\n          break;\n        case \"false\":\n          stack.push(false);\n          break;\n        case \"floor\":\n          a = stack.pop();\n          stack.push(Math.floor(a));\n          break;\n        case \"ge\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a >= b);\n          break;\n        case \"gt\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a > b);\n          break;\n        case \"idiv\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push((a / b) | 0);\n          break;\n        case \"index\":\n          a = stack.pop();\n          stack.index(a);\n          break;\n        case \"le\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a <= b);\n          break;\n        case \"ln\":\n          a = stack.pop();\n          stack.push(Math.log(a));\n          break;\n        case \"log\":\n          a = stack.pop();\n          stack.push(Math.log10(a));\n          break;\n        case \"lt\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a < b);\n          break;\n        case \"mod\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a % b);\n          break;\n        case \"mul\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a * b);\n          break;\n        case \"ne\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a !== b);\n          break;\n        case \"neg\":\n          a = stack.pop();\n          stack.push(-a);\n          break;\n        case \"not\":\n          a = stack.pop();\n          if (typeof a === \"boolean\") {\n            stack.push(!a);\n          } else {\n            stack.push(~a);\n          }\n          break;\n        case \"or\":\n          b = stack.pop();\n          a = stack.pop();\n          if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n            stack.push(a || b);\n          } else {\n            stack.push(a | b);\n          }\n          break;\n        case \"pop\":\n          stack.pop();\n          break;\n        case \"roll\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.roll(a, b);\n          break;\n        case \"round\":\n          a = stack.pop();\n          stack.push(Math.round(a));\n          break;\n        case \"sin\":\n          a = stack.pop();\n          stack.push(Math.sin(((a % 360) / 180) * Math.PI));\n          break;\n        case \"sqrt\":\n          a = stack.pop();\n          stack.push(Math.sqrt(a));\n          break;\n        case \"sub\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a - b);\n          break;\n        case \"true\":\n          stack.push(true);\n          break;\n        case \"truncate\":\n          a = stack.pop();\n          a = a < 0 ? Math.ceil(a) : Math.floor(a);\n          stack.push(a);\n          break;\n        case \"xor\":\n          b = stack.pop();\n          a = stack.pop();\n          if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n            stack.push(a !== b);\n          } else {\n            stack.push(a ^ b);\n          }\n          break;\n        default:\n          throw new FormatError(`Unknown operator ${operator}`);\n      }\n    }\n    return stack.stack;\n  }\n}\n\nclass AstNode {\n  constructor(type) {\n    this.type = type;\n  }\n\n  visit(visitor) {\n    unreachable(\"abstract method\");\n  }\n}\n\nclass AstArgument extends AstNode {\n  constructor(index, min, max) {\n    super(\"args\");\n    this.index = index;\n    this.min = min;\n    this.max = max;\n  }\n\n  visit(visitor) {\n    visitor.visitArgument(this);\n  }\n}\n\nclass AstLiteral extends AstNode {\n  constructor(number) {\n    super(\"literal\");\n    this.number = number;\n    this.min = number;\n    this.max = number;\n  }\n\n  visit(visitor) {\n    visitor.visitLiteral(this);\n  }\n}\n\nclass AstBinaryOperation extends AstNode {\n  constructor(op, arg1, arg2, min, max) {\n    super(\"binary\");\n    this.op = op;\n    this.arg1 = arg1;\n    this.arg2 = arg2;\n    this.min = min;\n    this.max = max;\n  }\n\n  visit(visitor) {\n    visitor.visitBinaryOperation(this);\n  }\n}\n\nclass AstMin extends AstNode {\n  constructor(arg, max) {\n    super(\"max\");\n    this.arg = arg;\n    this.min = arg.min;\n    this.max = max;\n  }\n\n  visit(visitor) {\n    visitor.visitMin(this);\n  }\n}\n\nclass AstVariable extends AstNode {\n  constructor(index, min, max) {\n    super(\"var\");\n    this.index = index;\n    this.min = min;\n    this.max = max;\n  }\n\n  visit(visitor) {\n    visitor.visitVariable(this);\n  }\n}\n\nclass AstVariableDefinition extends AstNode {\n  constructor(variable, arg) {\n    super(\"definition\");\n    this.variable = variable;\n    this.arg = arg;\n  }\n\n  visit(visitor) {\n    visitor.visitVariableDefinition(this);\n  }\n}\n\nclass ExpressionBuilderVisitor {\n  constructor() {\n    this.parts = [];\n  }\n\n  visitArgument(arg) {\n    this.parts.push(\n      \"Math.max(\",\n      arg.min,\n      \", Math.min(\",\n      arg.max,\n      \", src[srcOffset + \",\n      arg.index,\n      \"]))\"\n    );\n  }\n\n  visitVariable(variable) {\n    this.parts.push(\"v\", variable.index);\n  }\n\n  visitLiteral(literal) {\n    this.parts.push(literal.number);\n  }\n\n  visitBinaryOperation(operation) {\n    this.parts.push(\"(\");\n    operation.arg1.visit(this);\n    this.parts.push(\" \", operation.op, \" \");\n    operation.arg2.visit(this);\n    this.parts.push(\")\");\n  }\n\n  visitVariableDefinition(definition) {\n    this.parts.push(\"var \");\n    definition.variable.visit(this);\n    this.parts.push(\" = \");\n    definition.arg.visit(this);\n    this.parts.push(\";\");\n  }\n\n  visitMin(max) {\n    this.parts.push(\"Math.min(\");\n    max.arg.visit(this);\n    this.parts.push(\", \", max.max, \")\");\n  }\n\n  toString() {\n    return this.parts.join(\"\");\n  }\n}\n\nfunction buildAddOperation(num1, num2) {\n  if (num2.type === \"literal\" && num2.number === 0) {\n    // optimization: second operand is 0\n    return num1;\n  }\n  if (num1.type === \"literal\" && num1.number === 0) {\n    // optimization: first operand is 0\n    return num2;\n  }\n  if (num2.type === \"literal\" && num1.type === \"literal\") {\n    // optimization: operands operand are literals\n    return new AstLiteral(num1.number + num2.number);\n  }\n  return new AstBinaryOperation(\n    \"+\",\n    num1,\n    num2,\n    num1.min + num2.min,\n    num1.max + num2.max\n  );\n}\n\nfunction buildMulOperation(num1, num2) {\n  if (num2.type === \"literal\") {\n    // optimization: second operands is a literal...\n    if (num2.number === 0) {\n      return new AstLiteral(0); // and it's 0\n    } else if (num2.number === 1) {\n      return num1; // and it's 1\n    } else if (num1.type === \"literal\") {\n      // ... and first operands is a literal too\n      return new AstLiteral(num1.number * num2.number);\n    }\n  }\n  if (num1.type === \"literal\") {\n    // optimization: first operands is a literal...\n    if (num1.number === 0) {\n      return new AstLiteral(0); // and it's 0\n    } else if (num1.number === 1) {\n      return num2; // and it's 1\n    }\n  }\n  const min = Math.min(\n    num1.min * num2.min,\n    num1.min * num2.max,\n    num1.max * num2.min,\n    num1.max * num2.max\n  );\n  const max = Math.max(\n    num1.min * num2.min,\n    num1.min * num2.max,\n    num1.max * num2.min,\n    num1.max * num2.max\n  );\n  return new AstBinaryOperation(\"*\", num1, num2, min, max);\n}\n\nfunction buildSubOperation(num1, num2) {\n  if (num2.type === \"literal\") {\n    // optimization: second operands is a literal...\n    if (num2.number === 0) {\n      return num1; // ... and it's 0\n    } else if (num1.type === \"literal\") {\n      // ... and first operands is a literal too\n      return new AstLiteral(num1.number - num2.number);\n    }\n  }\n  if (\n    num2.type === \"binary\" &&\n    num2.op === \"-\" &&\n    num1.type === \"literal\" &&\n    num1.number === 1 &&\n    num2.arg1.type === \"literal\" &&\n    num2.arg1.number === 1\n  ) {\n    // optimization for case: 1 - (1 - x)\n    return num2.arg2;\n  }\n  return new AstBinaryOperation(\n    \"-\",\n    num1,\n    num2,\n    num1.min - num2.max,\n    num1.max - num2.min\n  );\n}\n\nfunction buildMinOperation(num1, max) {\n  if (num1.min >= max) {\n    // optimization: num1 min value is not less than required max\n    return new AstLiteral(max); // just returning max\n  } else if (num1.max <= max) {\n    // optimization: num1 max value is not greater than required max\n    return num1; // just returning an argument\n  }\n  return new AstMin(num1, max);\n}\n\n// Most of the PDFs functions consist of simple operations such as:\n//   roll, exch, sub, cvr, pop, index, dup, mul, if, gt, add.\n//\n// We can compile most of such programs, and at the same moment, we can\n// optimize some expressions using basic math properties. Keeping track of\n// min/max values will allow us to avoid extra Math.min/Math.max calls.\nclass PostScriptCompiler {\n  compile(code, domain, range) {\n    const stack = [];\n    const instructions = [];\n    const inputSize = domain.length >> 1,\n      outputSize = range.length >> 1;\n    let lastRegister = 0;\n    let n, j;\n    let num1, num2, ast1, ast2, tmpVar, item;\n    for (let i = 0; i < inputSize; i++) {\n      stack.push(new AstArgument(i, domain[i * 2], domain[i * 2 + 1]));\n    }\n\n    for (let i = 0, ii = code.length; i < ii; i++) {\n      item = code[i];\n      if (typeof item === \"number\") {\n        stack.push(new AstLiteral(item));\n        continue;\n      }\n\n      switch (item) {\n        case \"add\":\n          if (stack.length < 2) {\n            return null;\n          }\n          num2 = stack.pop();\n          num1 = stack.pop();\n          stack.push(buildAddOperation(num1, num2));\n          break;\n        case \"cvr\":\n          if (stack.length < 1) {\n            return null;\n          }\n          break;\n        case \"mul\":\n          if (stack.length < 2) {\n            return null;\n          }\n          num2 = stack.pop();\n          num1 = stack.pop();\n          stack.push(buildMulOperation(num1, num2));\n          break;\n        case \"sub\":\n          if (stack.length < 2) {\n            return null;\n          }\n          num2 = stack.pop();\n          num1 = stack.pop();\n          stack.push(buildSubOperation(num1, num2));\n          break;\n        case \"exch\":\n          if (stack.length < 2) {\n            return null;\n          }\n          ast1 = stack.pop();\n          ast2 = stack.pop();\n          stack.push(ast1, ast2);\n          break;\n        case \"pop\":\n          if (stack.length < 1) {\n            return null;\n          }\n          stack.pop();\n          break;\n        case \"index\":\n          if (stack.length < 1) {\n            return null;\n          }\n          num1 = stack.pop();\n          if (num1.type !== \"literal\") {\n            return null;\n          }\n          n = num1.number;\n          if (n < 0 || !Number.isInteger(n) || stack.length < n) {\n            return null;\n          }\n          ast1 = stack[stack.length - n - 1];\n          if (ast1.type === \"literal\" || ast1.type === \"var\") {\n            stack.push(ast1);\n            break;\n          }\n          tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n          stack[stack.length - n - 1] = tmpVar;\n          stack.push(tmpVar);\n          instructions.push(new AstVariableDefinition(tmpVar, ast1));\n          break;\n        case \"dup\":\n          if (stack.length < 1) {\n            return null;\n          }\n          if (\n            typeof code[i + 1] === \"number\" &&\n            code[i + 2] === \"gt\" &&\n            code[i + 3] === i + 7 &&\n            code[i + 4] === \"jz\" &&\n            code[i + 5] === \"pop\" &&\n            code[i + 6] === code[i + 1]\n          ) {\n            // special case of the commands sequence for the min operation\n            num1 = stack.pop();\n            stack.push(buildMinOperation(num1, code[i + 1]));\n            i += 6;\n            break;\n          }\n          ast1 = stack.at(-1);\n          if (ast1.type === \"literal\" || ast1.type === \"var\") {\n            // we don't have to save into intermediate variable a literal or\n            // variable.\n            stack.push(ast1);\n            break;\n          }\n          tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n          stack[stack.length - 1] = tmpVar;\n          stack.push(tmpVar);\n          instructions.push(new AstVariableDefinition(tmpVar, ast1));\n          break;\n        case \"roll\":\n          if (stack.length < 2) {\n            return null;\n          }\n          num2 = stack.pop();\n          num1 = stack.pop();\n          if (num2.type !== \"literal\" || num1.type !== \"literal\") {\n            // both roll operands must be numbers\n            return null;\n          }\n          j = num2.number;\n          n = num1.number;\n          if (\n            n <= 0 ||\n            !Number.isInteger(n) ||\n            !Number.isInteger(j) ||\n            stack.length < n\n          ) {\n            // ... and integers\n            return null;\n          }\n          j = ((j % n) + n) % n;\n          if (j === 0) {\n            break; // just skipping -- there are nothing to rotate\n          }\n          stack.push(...stack.splice(stack.length - n, n - j));\n          break;\n        default:\n          return null; // unsupported operator\n      }\n    }\n\n    if (stack.length !== outputSize) {\n      return null;\n    }\n\n    const result = [];\n    for (const instruction of instructions) {\n      const statementBuilder = new ExpressionBuilderVisitor();\n      instruction.visit(statementBuilder);\n      result.push(statementBuilder.toString());\n    }\n    for (let i = 0, ii = stack.length; i < ii; i++) {\n      const expr = stack[i],\n        statementBuilder = new ExpressionBuilderVisitor();\n      expr.visit(statementBuilder);\n      const min = range[i * 2],\n        max = range[i * 2 + 1];\n      const out = [statementBuilder.toString()];\n      if (min > expr.min) {\n        out.unshift(\"Math.max(\", min, \", \");\n        out.push(\")\");\n      }\n      if (max < expr.max) {\n        out.unshift(\"Math.min(\", max, \", \");\n        out.push(\")\");\n      }\n      out.unshift(\"dest[destOffset + \", i, \"] = \");\n      out.push(\";\");\n      result.push(out.join(\"\"));\n    }\n    return result.join(\"\\n\");\n  }\n}\n\nexport {\n  isPDFFunction,\n  PDFFunctionFactory,\n  PostScriptCompiler,\n  PostScriptEvaluator,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { warn } from \"../shared/util.js\";\n\n// Character types for symbols from 0000 to 00FF.\n// Source: ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt\n// prettier-ignore\nconst baseTypes = [\n  \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"S\", \"B\", \"S\",\n  \"WS\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\",\n  \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"B\", \"B\", \"S\", \"WS\", \"ON\", \"ON\", \"ET\",\n  \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ES\", \"CS\", \"ES\", \"CS\", \"CS\",\n  \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"CS\", \"ON\",\n  \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n  \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n  \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\",\n  \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n  \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\",\n  \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\",\n  \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\",\n  \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"CS\", \"ON\", \"ET\",\n  \"ET\", \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"ON\", \"ON\", \"BN\", \"ON\",\n  \"ON\", \"ET\", \"ET\", \"EN\", \"EN\", \"ON\", \"L\", \"ON\", \"ON\", \"ON\", \"EN\", \"L\",\n  \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n  \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n  \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n  \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n  \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\"\n];\n\n// Character types for symbols from 0600 to 06FF.\n// Source: ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt\n// Note that 061D does not exist in the Unicode standard (see\n// http://unicode.org/charts/PDF/U0600.pdf), so we replace it with an\n// empty string and issue a warning if we encounter this character. The\n// empty string is required to properly index the items after it.\n// prettier-ignore\nconst arabicTypes = [\n  \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"ON\", \"ON\", \"AL\", \"ET\", \"ET\", \"AL\",\n  \"CS\", \"AL\", \"ON\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\",\n  \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\",\n  \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\",\n  \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\",\n  \"AN\", \"AN\", \"AN\", \"ET\", \"AN\", \"AN\", \"AL\", \"AL\", \"AL\", \"NSM\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n  \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\",\n  \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"NSM\", \"NSM\",\n  \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"EN\", \"EN\", \"EN\", \"EN\",\n  \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\"\n];\n\nfunction isOdd(i) {\n  return (i & 1) !== 0;\n}\n\nfunction isEven(i) {\n  return (i & 1) === 0;\n}\n\nfunction findUnequal(arr, start, value) {\n  let j, jj;\n  for (j = start, jj = arr.length; j < jj; ++j) {\n    if (arr[j] !== value) {\n      return j;\n    }\n  }\n  return j;\n}\n\nfunction setValues(arr, start, end, value) {\n  for (let j = start; j < end; ++j) {\n    arr[j] = value;\n  }\n}\n\nfunction reverseValues(arr, start, end) {\n  for (let i = start, j = end - 1; i < j; ++i, --j) {\n    const temp = arr[i];\n    arr[i] = arr[j];\n    arr[j] = temp;\n  }\n}\n\nfunction createBidiText(str, isLTR, vertical = false) {\n  let dir = \"ltr\";\n  if (vertical) {\n    dir = \"ttb\";\n  } else if (!isLTR) {\n    dir = \"rtl\";\n  }\n  return { str, dir };\n}\n\n// These are used in bidi(), which is called frequently. We re-use them on\n// each call to avoid unnecessary allocations.\nconst chars = [];\nconst types = [];\n\nfunction bidi(str, startLevel = -1, vertical = false) {\n  let isLTR = true;\n  const strLength = str.length;\n  if (strLength === 0 || vertical) {\n    return createBidiText(str, isLTR, vertical);\n  }\n\n  // Get types and fill arrays\n  chars.length = strLength;\n  types.length = strLength;\n  let numBidi = 0;\n\n  let i, ii;\n  for (i = 0; i < strLength; ++i) {\n    chars[i] = str.charAt(i);\n\n    const charCode = str.charCodeAt(i);\n    let charType = \"L\";\n    if (charCode <= 0x00ff) {\n      charType = baseTypes[charCode];\n    } else if (0x0590 <= charCode && charCode <= 0x05f4) {\n      charType = \"R\";\n    } else if (0x0600 <= charCode && charCode <= 0x06ff) {\n      charType = arabicTypes[charCode & 0xff];\n      if (!charType) {\n        warn(\"Bidi: invalid Unicode character \" + charCode.toString(16));\n      }\n    } else if (\n      (0x0700 <= charCode && charCode <= 0x08ac) ||\n      (0xfb50 <= charCode && charCode <= 0xfdff) ||\n      (0xfe70 <= charCode && charCode <= 0xfeff)\n    ) {\n      charType = \"AL\";\n    }\n    if (charType === \"R\" || charType === \"AL\" || charType === \"AN\") {\n      numBidi++;\n    }\n    types[i] = charType;\n  }\n\n  // Detect the bidi method\n  // - If there are no rtl characters then no bidi needed\n  // - If less than 30% chars are rtl then string is primarily ltr,\n  //   unless the string is very short.\n  // - If more than 30% chars are rtl then string is primarily rtl\n  if (numBidi === 0) {\n    isLTR = true;\n    return createBidiText(str, isLTR);\n  }\n\n  if (startLevel === -1) {\n    if (numBidi / strLength < 0.3 && strLength > 4) {\n      isLTR = true;\n      startLevel = 0;\n    } else {\n      isLTR = false;\n      startLevel = 1;\n    }\n  }\n\n  const levels = [];\n  for (i = 0; i < strLength; ++i) {\n    levels[i] = startLevel;\n  }\n\n  /*\n   X1-X10: skip most of this, since we are NOT doing the embeddings.\n   */\n  const e = isOdd(startLevel) ? \"R\" : \"L\";\n  const sor = e;\n  const eor = sor;\n\n  /*\n   W1. Examine each non-spacing mark (NSM) in the level run, and change the\n   type of the NSM to the type of the previous character. If the NSM is at the\n   start of the level run, it will get the type of sor.\n   */\n  let lastType = sor;\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === \"NSM\") {\n      types[i] = lastType;\n    } else {\n      lastType = types[i];\n    }\n  }\n\n  /*\n   W2. Search backwards from each instance of a European number until the\n   first strong type (R, L, AL, or sor) is found.  If an AL is found, change\n   the type of the European number to Arabic number.\n   */\n  lastType = sor;\n  let t;\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n    if (t === \"EN\") {\n      types[i] = lastType === \"AL\" ? \"AN\" : \"EN\";\n    } else if (t === \"R\" || t === \"L\" || t === \"AL\") {\n      lastType = t;\n    }\n  }\n\n  /*\n   W3. Change all ALs to R.\n   */\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n    if (t === \"AL\") {\n      types[i] = \"R\";\n    }\n  }\n\n  /*\n   W4. A single European separator between two European numbers changes to a\n   European number. A single common separator between two numbers of the same\n   type changes to that type:\n   */\n  for (i = 1; i < strLength - 1; ++i) {\n    if (types[i] === \"ES\" && types[i - 1] === \"EN\" && types[i + 1] === \"EN\") {\n      types[i] = \"EN\";\n    }\n    if (\n      types[i] === \"CS\" &&\n      (types[i - 1] === \"EN\" || types[i - 1] === \"AN\") &&\n      types[i + 1] === types[i - 1]\n    ) {\n      types[i] = types[i - 1];\n    }\n  }\n\n  /*\n   W5. A sequence of European terminators adjacent to European numbers changes\n   to all European numbers:\n   */\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === \"EN\") {\n      // do before\n      for (let j = i - 1; j >= 0; --j) {\n        if (types[j] !== \"ET\") {\n          break;\n        }\n        types[j] = \"EN\";\n      }\n      // do after\n      for (let j = i + 1; j < strLength; ++j) {\n        if (types[j] !== \"ET\") {\n          break;\n        }\n        types[j] = \"EN\";\n      }\n    }\n  }\n\n  /*\n   W6. Otherwise, separators and terminators change to Other Neutral:\n   */\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n    if (t === \"WS\" || t === \"ES\" || t === \"ET\" || t === \"CS\") {\n      types[i] = \"ON\";\n    }\n  }\n\n  /*\n   W7. Search backwards from each instance of a European number until the\n   first strong type (R, L, or sor) is found. If an L is found,  then change\n   the type of the European number to L.\n   */\n  lastType = sor;\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n    if (t === \"EN\") {\n      types[i] = lastType === \"L\" ? \"L\" : \"EN\";\n    } else if (t === \"R\" || t === \"L\") {\n      lastType = t;\n    }\n  }\n\n  /*\n   N1. A sequence of neutrals takes the direction of the surrounding strong\n   text if the text on both sides has the same direction. European and Arabic\n   numbers are treated as though they were R. Start-of-level-run (sor) and\n   end-of-level-run (eor) are used at level run boundaries.\n   */\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === \"ON\") {\n      const end = findUnequal(types, i + 1, \"ON\");\n      let before = sor;\n      if (i > 0) {\n        before = types[i - 1];\n      }\n\n      let after = eor;\n      if (end + 1 < strLength) {\n        after = types[end + 1];\n      }\n      if (before !== \"L\") {\n        before = \"R\";\n      }\n      if (after !== \"L\") {\n        after = \"R\";\n      }\n      if (before === after) {\n        setValues(types, i, end, before);\n      }\n      i = end - 1; // reset to end (-1 so next iteration is ok)\n    }\n  }\n\n  /*\n   N2. Any remaining neutrals take the embedding direction.\n   */\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === \"ON\") {\n      types[i] = e;\n    }\n  }\n\n  /*\n   I1. For all characters with an even (left-to-right) embedding direction,\n   those of type R go up one level and those of type AN or EN go up two\n   levels.\n   I2. For all characters with an odd (right-to-left) embedding direction,\n   those of type L, EN or AN go up one level.\n   */\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n    if (isEven(levels[i])) {\n      if (t === \"R\") {\n        levels[i] += 1;\n      } else if (t === \"AN\" || t === \"EN\") {\n        levels[i] += 2;\n      }\n    } else if (/* isOdd && */ t === \"L\" || t === \"AN\" || t === \"EN\") {\n      levels[i] += 1;\n    }\n  }\n\n  /*\n   L1. On each line, reset the embedding level of the following characters to\n   the paragraph embedding level:\n\n   segment separators,\n   paragraph separators,\n   any sequence of whitespace characters preceding a segment separator or\n   paragraph separator, and any sequence of white space characters at the end\n   of the line.\n   */\n\n  // don't bother as text is only single line\n\n  /*\n   L2. From the highest level found in the text to the lowest odd level on\n   each line, reverse any contiguous sequence of characters that are at that\n   level or higher.\n   */\n\n  // find highest level & lowest odd level\n  let highestLevel = -1;\n  let lowestOddLevel = 99;\n  let level;\n  for (i = 0, ii = levels.length; i < ii; ++i) {\n    level = levels[i];\n    if (highestLevel < level) {\n      highestLevel = level;\n    }\n    if (lowestOddLevel > level && isOdd(level)) {\n      lowestOddLevel = level;\n    }\n  }\n\n  // now reverse between those limits\n  for (level = highestLevel; level >= lowestOddLevel; --level) {\n    // find segments to reverse\n    let start = -1;\n    for (i = 0, ii = levels.length; i < ii; ++i) {\n      if (levels[i] < level) {\n        if (start >= 0) {\n          reverseValues(chars, start, i);\n          start = -1;\n        }\n      } else if (start < 0) {\n        start = i;\n      }\n    }\n    if (start >= 0) {\n      reverseValues(chars, start, levels.length);\n    }\n  }\n\n  /*\n   L3. Combining marks applied to a right-to-left base character will at this\n   point precede their base character. If the rendering engine expects them to\n   follow the base characters in the final display process, then the ordering\n   of the marks and the base character must be reversed.\n   */\n\n  // don't bother for now\n\n  /*\n   L4. A character that possesses the mirrored property as specified by\n   Section 4.7, Mirrored, must be depicted by a mirrored glyph if the resolved\n   directionality of that character is R.\n   */\n\n  // don't mirror as characters are already mirrored in the pdf\n\n  // Finally, return string\n  for (i = 0, ii = chars.length; i < ii; ++i) {\n    const ch = chars[i];\n    if (ch === \"<\" || ch === \">\") {\n      chars[i] = \"\";\n    }\n  }\n  return createBidiText(chars.join(\"\"), isLTR);\n}\n\nexport { bidi };\n","/* Copyright 2023 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { normalizeFontName } from \"./fonts_utils.js\";\nimport { validateFontName } from \"./core_utils.js\";\n\nconst NORMAL = {\n  style: \"normal\",\n  weight: \"normal\",\n};\nconst BOLD = {\n  style: \"normal\",\n  weight: \"bold\",\n};\nconst ITALIC = {\n  style: \"italic\",\n  weight: \"normal\",\n};\nconst BOLDITALIC = {\n  style: \"italic\",\n  weight: \"bold\",\n};\n\nconst substitutionMap = new Map([\n  [\n    \"Times-Roman\",\n    {\n      local: [\n        \"Times New Roman\",\n        \"Times-Roman\",\n        \"Times\",\n        \"Liberation Serif\",\n        \"Nimbus Roman\",\n        \"Nimbus Roman L\",\n        \"Tinos\",\n        \"Thorndale\",\n        \"TeX Gyre Termes\",\n        \"FreeSerif\",\n        \"DejaVu Serif\",\n        \"Bitstream Vera Serif\",\n        \"Ubuntu\",\n      ],\n      style: NORMAL,\n      ultimate: \"serif\",\n    },\n  ],\n  [\n    \"Times-Bold\",\n    {\n      alias: \"Times-Roman\",\n      style: BOLD,\n      ultimate: \"serif\",\n    },\n  ],\n  [\n    \"Times-Italic\",\n    {\n      alias: \"Times-Roman\",\n      style: ITALIC,\n      ultimate: \"serif\",\n    },\n  ],\n  [\n    \"Times-BoldItalic\",\n    {\n      alias: \"Times-Roman\",\n      style: BOLDITALIC,\n      ultimate: \"serif\",\n    },\n  ],\n  [\n    \"Helvetica\",\n    {\n      local: [\n        \"Helvetica\",\n        \"Helvetica Neue\",\n        \"Arial\",\n        \"Arial Nova\",\n        \"Liberation Sans\",\n        \"Arimo\",\n        \"Nimbus Sans\",\n        \"Nimbus Sans L\",\n        \"A030\",\n        \"TeX Gyre Heros\",\n        \"FreeSans\",\n        \"DejaVu Sans\",\n        \"Albany\",\n        \"Bitstream Vera Sans\",\n        \"Arial Unicode MS\",\n        \"Microsoft Sans Serif\",\n        \"Apple Symbols\",\n        \"Cantarell\",\n      ],\n      path: \"LiberationSans-Regular.ttf\",\n      style: NORMAL,\n      ultimate: \"sans-serif\",\n    },\n  ],\n  [\n    \"Helvetica-Bold\",\n    {\n      alias: \"Helvetica\",\n      path: \"LiberationSans-Bold.ttf\",\n      style: BOLD,\n      ultimate: \"sans-serif\",\n    },\n  ],\n  [\n    \"Helvetica-Oblique\",\n    {\n      alias: \"Helvetica\",\n      path: \"LiberationSans-Italic.ttf\",\n      style: ITALIC,\n      ultimate: \"sans-serif\",\n    },\n  ],\n  [\n    \"Helvetica-BoldOblique\",\n    {\n      alias: \"Helvetica\",\n      path: \"LiberationSans-BoldItalic.ttf\",\n      style: BOLDITALIC,\n      ultimate: \"sans-serif\",\n    },\n  ],\n  [\n    \"Courier\",\n    {\n      local: [\n        \"Courier\",\n        \"Courier New\",\n        \"Liberation Mono\",\n        \"Nimbus Mono\",\n        \"Nimbus Mono L\",\n        \"Cousine\",\n        \"Cumberland\",\n        \"TeX Gyre Cursor\",\n        \"FreeMono\",\n      ],\n      style: NORMAL,\n      ultimate: \"monospace\",\n    },\n  ],\n  [\n    \"Courier-Bold\",\n    {\n      alias: \"Courier\",\n      style: BOLD,\n      ultimate: \"monospace\",\n    },\n  ],\n  [\n    \"Courier-Oblique\",\n    {\n      alias: \"Courier\",\n      style: ITALIC,\n      ultimate: \"monospace\",\n    },\n  ],\n  [\n    \"Courier-BoldOblique\",\n    {\n      alias: \"Courier\",\n      style: BOLDITALIC,\n      ultimate: \"monospace\",\n    },\n  ],\n  [\n    \"ArialBlack\",\n    {\n      local: [\"Arial Black\"],\n      style: {\n        style: \"normal\",\n        weight: \"900\",\n      },\n      fallback: \"Helvetica-Bold\",\n    },\n  ],\n  [\n    \"ArialBlack-Bold\",\n    {\n      alias: \"ArialBlack\",\n    },\n  ],\n  [\n    \"ArialBlack-Italic\",\n    {\n      alias: \"ArialBlack\",\n      style: {\n        style: \"italic\",\n        weight: \"900\",\n      },\n      fallback: \"Helvetica-BoldOblique\",\n    },\n  ],\n  [\n    \"ArialBlack-BoldItalic\",\n    {\n      alias: \"ArialBlack-Italic\",\n    },\n  ],\n  [\n    \"ArialNarrow\",\n    {\n      local: [\n        \"Arial Narrow\",\n        \"Liberation Sans Narrow\",\n        \"Helvetica Condensed\",\n        \"Nimbus Sans Narrow\",\n        \"TeX Gyre Heros Cn\",\n      ],\n      style: NORMAL,\n      fallback: \"Helvetica\",\n    },\n  ],\n  [\n    \"ArialNarrow-Bold\",\n    {\n      alias: \"ArialNarrow\",\n      style: BOLD,\n      fallback: \"Helvetica-Bold\",\n    },\n  ],\n  [\n    \"ArialNarrow-Italic\",\n    {\n      alias: \"ArialNarrow\",\n      style: ITALIC,\n      fallback: \"Helvetica-Oblique\",\n    },\n  ],\n  [\n    \"ArialNarrow-BoldItalic\",\n    {\n      alias: \"ArialNarrow\",\n      style: BOLDITALIC,\n      fallback: \"Helvetica-BoldOblique\",\n    },\n  ],\n  [\n    \"Calibri\",\n    {\n      local: [\"Calibri\", \"Carlito\"],\n      style: NORMAL,\n      fallback: \"Helvetica\",\n    },\n  ],\n  [\n    \"Calibri-Bold\",\n    {\n      alias: \"Calibri\",\n      style: BOLD,\n      fallback: \"Helvetica-Bold\",\n    },\n  ],\n  [\n    \"Calibri-Italic\",\n    {\n      alias: \"Calibri\",\n      style: ITALIC,\n      fallback: \"Helvetica-Oblique\",\n    },\n  ],\n  [\n    \"Calibri-BoldItalic\",\n    {\n      alias: \"Calibri\",\n      style: BOLDITALIC,\n      fallback: \"Helvetica-BoldOblique\",\n    },\n  ],\n  [\n    \"Wingdings\",\n    {\n      local: [\"Wingdings\", \"URW Dingbats\"],\n      style: NORMAL,\n    },\n  ],\n  [\n    \"Wingdings-Regular\",\n    {\n      alias: \"Wingdings\",\n    },\n  ],\n  [\n    \"Wingdings-Bold\",\n    {\n      alias: \"Wingdings\",\n    },\n  ],\n]);\n\nconst fontAliases = new Map([[\"Arial-Black\", \"ArialBlack\"]]);\n\nfunction getStyleToAppend(style) {\n  switch (style) {\n    case BOLD:\n      return \"Bold\";\n    case ITALIC:\n      return \"Italic\";\n    case BOLDITALIC:\n      return \"Bold Italic\";\n    default:\n      if (style?.weight === \"bold\") {\n        return \"Bold\";\n      }\n      if (style?.style === \"italic\") {\n        return \"Italic\";\n      }\n  }\n  return \"\";\n}\n\n/**\n * Generate font description.\n * @param {Object} param0, font substitution description.\n * @param {Array<String>} src, contains src values (local(...) or url(...)).\n * @param {String} localFontPath, path to local fonts.\n * @param {boolean} useFallback, whether to use fallback font.\n * @param {boolean} usePath, whether to use path to font.\n * @param {String} append, style (Bold, Italic, ...) to append to font name.\n * @return {Object} { style, ultimate }.\n */\nfunction generateFont(\n  { alias, local, path, fallback, style, ultimate },\n  src,\n  localFontPath,\n  useFallback = true,\n  usePath = true,\n  append = \"\"\n) {\n  const result = {\n    style: null,\n    ultimate: null,\n  };\n  if (local) {\n    const extra = append ? ` ${append}` : \"\";\n    for (const name of local) {\n      src.push(`local(${name}${extra})`);\n    }\n  }\n  if (alias) {\n    const substitution = substitutionMap.get(alias);\n    const aliasAppend = append || getStyleToAppend(style);\n    Object.assign(\n      result,\n      generateFont(\n        substitution,\n        src,\n        localFontPath,\n        /* useFallback = */ useFallback && !fallback,\n        /* usePath = */ usePath && !path,\n        aliasAppend\n      )\n    );\n  }\n  if (style) {\n    result.style = style;\n  }\n  if (ultimate) {\n    result.ultimate = ultimate;\n  }\n  if (useFallback && fallback) {\n    const fallbackInfo = substitutionMap.get(fallback);\n    const { ultimate: fallbackUltimate } = generateFont(\n      fallbackInfo,\n      src,\n      localFontPath,\n      useFallback,\n      /* usePath = */ usePath && !path,\n      append\n    );\n    result.ultimate ||= fallbackUltimate;\n  }\n  if (usePath && path && localFontPath) {\n    src.push(`url(${localFontPath}${path})`);\n  }\n\n  return result;\n}\n\n/**\n * Get a font substitution for a given font.\n * The general idea is to have enough information to create a CSS rule like\n * this:\n *   @font-face {\n *    font-family: 'Times';\n *    src: local('Times New Roman'), local('Subst1'), local('Subst2'),\n *         url(.../TimesNewRoman.ttf)\n *    font-weight: normal;\n *    font-style: normal;\n *   }\n * or use the FontFace API.\n *\n * @param {Map} systemFontCache The cache of local fonts.\n * @param {Object} idFactory The ids factory.\n * @param {String} localFontPath Path to the fonts directory.\n * @param {String} baseFontName The font name to be substituted.\n * @param {String|undefined} standardFontName The standard font name to use\n *   if the base font is not available.\n * @returns an Object with the CSS, the loaded name, the src and the style.\n */\nfunction getFontSubstitution(\n  systemFontCache,\n  idFactory,\n  localFontPath,\n  baseFontName,\n  standardFontName\n) {\n  if (baseFontName.startsWith(\"InvalidPDFjsFont_\")) {\n    return null;\n  }\n\n  // It's possible to have a font name with spaces, commas or dashes, hence we\n  // just replace them by a dash.\n  baseFontName = normalizeFontName(baseFontName);\n\n  const key = baseFontName;\n  let substitutionInfo = systemFontCache.get(key);\n  if (substitutionInfo) {\n    return substitutionInfo;\n  }\n\n  // First, check if we've a substitution for the base font.\n  let substitution = substitutionMap.get(baseFontName);\n  if (!substitution) {\n    // Check if we've an alias for the base font, Arial-Black is the same as\n    // ArialBlack\n    for (const [alias, subst] of fontAliases) {\n      if (baseFontName.startsWith(alias)) {\n        baseFontName = `${subst}${baseFontName.substring(alias.length)}`;\n        substitution = substitutionMap.get(baseFontName);\n        break;\n      }\n    }\n  }\n\n  let mustAddBaseFont = false;\n  if (!substitution) {\n    // If not, check if we've a substitution for the standard font.\n    substitution = substitutionMap.get(standardFontName);\n    mustAddBaseFont = true;\n  }\n\n  const loadedName = `${idFactory.getDocId()}_s${idFactory.createFontId()}`;\n  if (!substitution) {\n    if (!validateFontName(baseFontName)) {\n      systemFontCache.set(key, null);\n      // If the baseFontName is not valid we don't want to use it.\n      return null;\n    }\n    // Maybe we'll be lucky and the OS will have the font.\n    const bold = /bold/gi.test(baseFontName);\n    const italic = /oblique|italic/gi.test(baseFontName);\n    const style =\n      (bold && italic && BOLDITALIC) ||\n      (bold && BOLD) ||\n      (italic && ITALIC) ||\n      NORMAL;\n    substitutionInfo = {\n      css: loadedName,\n      guessFallback: true,\n      loadedName,\n      baseFontName,\n      src: `local(${baseFontName})`,\n      style,\n    };\n    systemFontCache.set(key, substitutionInfo);\n    return substitutionInfo;\n  }\n\n  const src = [];\n  // Maybe the OS will have the exact font we want so just prepend it to the\n  // list.\n  if (mustAddBaseFont && validateFontName(baseFontName)) {\n    src.push(`local(${baseFontName})`);\n  }\n  const { style, ultimate } = generateFont(substitution, src, localFontPath);\n  const guessFallback = ultimate === null;\n  const fallback = guessFallback ? \"\" : `,${ultimate}`;\n\n  substitutionInfo = {\n    css: `${loadedName}${fallback}`,\n    guessFallback,\n    loadedName,\n    baseFontName,\n    src: src.join(\",\"),\n    style,\n  };\n  systemFontCache.set(key, substitutionInfo);\n\n  return substitutionInfo;\n}\n\nexport { getFontSubstitution };\n","/* Copyright 2023 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FeatureTest, ImageKind, shadow } from \"../shared/util.js\";\n\nconst MIN_IMAGE_DIM = 2048;\n\n// In Chrome, there aren't max dimensions but only a max area. So an image with\n// a very large dimensions is acceptable but it probably doesn't hurt to reduce\n// it when considering that it will finally rendered on a small canvas.\nconst MAX_IMAGE_DIM = 65537;\nconst MAX_ERROR = 128;\n\n// Large images are encoded in using the BMP format (it's a way faster than\n// encoding in PNG because there are no checksums to compute).\n// Unfortunately, createImageBitmap will create a task in the main thread in\n// order to build the bitmap, hence the main thread is blocked during the\n// decoding which can be a bit long (see bug 1817244).\n// When bug 1759728 is fixed we can remove the BMP workaround and at least it\n// should be a way faster to create the bitmap.\n\nclass ImageResizer {\n  constructor(imgData, isMask) {\n    this._imgData = imgData;\n    this._isMask = isMask;\n  }\n\n  static needsToBeResized(width, height) {\n    if (width <= this._goodSquareLength && height <= this._goodSquareLength) {\n      return false;\n    }\n\n    const { MAX_DIM } = this;\n    if (width > MAX_DIM || height > MAX_DIM) {\n      return true;\n    }\n\n    const area = width * height;\n    if (this._hasMaxArea) {\n      return area > this.MAX_AREA;\n    }\n\n    if (area < this._goodSquareLength ** 2) {\n      return false;\n    }\n\n    // We try as much as possible to avoid to compute the max area.\n    if (this._areGoodDims(width, height)) {\n      this._goodSquareLength = Math.max(\n        this._goodSquareLength,\n        Math.floor(Math.sqrt(width * height))\n      );\n      return false;\n    }\n\n    // TODO: the computation can be a bit long because we potentially allocate\n    // some large canvas, so in the Firefox case this value (and MAX_DIM) can be\n    // infered from prefs (MAX_AREA = gfx.max-alloc-size / 4, 4 is because of\n    // RGBA).\n    this._goodSquareLength = this._guessMax(\n      this._goodSquareLength,\n      MAX_DIM,\n      MAX_ERROR,\n      0\n    );\n    const maxArea = (this.MAX_AREA = this._goodSquareLength ** 2);\n\n    return area > maxArea;\n  }\n\n  static get MAX_DIM() {\n    return shadow(\n      this,\n      \"MAX_DIM\",\n      this._guessMax(MIN_IMAGE_DIM, MAX_IMAGE_DIM, 0, 1)\n    );\n  }\n\n  static get MAX_AREA() {\n    this._hasMaxArea = true;\n    return shadow(\n      this,\n      \"MAX_AREA\",\n      this._guessMax(\n        ImageResizer._goodSquareLength,\n        this.MAX_DIM,\n        MAX_ERROR,\n        0\n      ) ** 2\n    );\n  }\n\n  static set MAX_AREA(area) {\n    if (area >= 0) {\n      this._hasMaxArea = true;\n      shadow(this, \"MAX_AREA\", area);\n    }\n  }\n\n  static setMaxArea(area) {\n    if (!this._hasMaxArea) {\n      // Divide by 4 to have the value in pixels.\n      this.MAX_AREA = area >> 2;\n    }\n  }\n\n  static _areGoodDims(width, height) {\n    try {\n      // This code is working in either Firefox or Chrome.\n      // There is a faster solution using transferToImageBitmap which is faster\n      // in Firefox (when the dimensions are wrong the resulting bitmap has its\n      // dimensions equal to 1) but it doesn't find the correct values in\n      // Chrome.\n      const canvas = new OffscreenCanvas(width, height);\n      const ctx = canvas.getContext(\"2d\");\n      ctx.fillRect(0, 0, 1, 1);\n      const opacity = ctx.getImageData(0, 0, 1, 1).data[3];\n      canvas.width = canvas.height = 1;\n      return opacity !== 0;\n    } catch {\n      return false;\n    }\n  }\n\n  static _guessMax(start, end, tolerance, defaultHeight) {\n    // We don't really need to have exact values.\n    // When we're here then we're in a corner case: we've a very large image.\n    // So we could potentially downscale an image which fits in the canvas,\n    // it's maybe a pity in term of perfs but we'll reduce the memory use.\n    // The tolerance is the acceptable error we can make on the limit we want.\n    // On Chrome, when the tolerance 0 then it can take ~5s to compute the max\n    // area... and having a tolerance of 128 divides the time by 2.\n    while (start + tolerance + 1 < end) {\n      const middle = Math.floor((start + end) / 2);\n      const height = defaultHeight || middle;\n      if (this._areGoodDims(middle, height)) {\n        start = middle;\n      } else {\n        end = middle;\n      }\n    }\n    return start;\n  }\n\n  static async createImage(imgData, isMask = false) {\n    return new ImageResizer(imgData, isMask)._createImage();\n  }\n\n  async _createImage() {\n    const data = this._encodeBMP();\n    const blob = new Blob([data.buffer], {\n      type: \"image/bmp\",\n    });\n    const bitmapPromise = createImageBitmap(blob);\n\n    const { MAX_AREA, MAX_DIM } = ImageResizer;\n    const { _imgData: imgData } = this;\n    const { width, height } = imgData;\n    const minFactor = Math.max(\n      width / MAX_DIM,\n      height / MAX_DIM,\n      Math.sqrt((width * height) / MAX_AREA)\n    );\n\n    const firstFactor = Math.max(minFactor, 2);\n\n    // Add 1 to the ratio and round it with 1 digit.\n    // We add 1.25 in order to have a final image under the limits\n    // (and not just at the limits) to reduce memory use.\n    const factor = Math.round(10 * (minFactor + 1.25)) / 10 / firstFactor;\n\n    const N = Math.floor(Math.log2(factor));\n    const steps = new Array(N + 2).fill(2);\n    steps[0] = firstFactor;\n    steps.splice(-1, 1, factor / (1 << N));\n\n    let newWidth = width;\n    let newHeight = height;\n    let bitmap = await bitmapPromise;\n\n    for (const step of steps) {\n      const prevWidth = newWidth;\n      const prevHeight = newHeight;\n\n      // See bug 1820511 (Windows specific bug).\n      // TODO: once the above bug is fixed we could revert to:\n      // newWidth = Math.floor(newWidth / 2);\n      newWidth = Math.floor(newWidth / step) - 1;\n      newHeight = Math.floor(newHeight / step) - 1;\n\n      const canvas = new OffscreenCanvas(newWidth, newHeight);\n      const ctx = canvas.getContext(\"2d\");\n      ctx.drawImage(\n        bitmap,\n        0,\n        0,\n        prevWidth,\n        prevHeight,\n        0,\n        0,\n        newWidth,\n        newHeight\n      );\n      bitmap = canvas.transferToImageBitmap();\n    }\n\n    imgData.data = null;\n    imgData.bitmap = bitmap;\n    imgData.width = newWidth;\n    imgData.height = newHeight;\n\n    return imgData;\n  }\n\n  _encodeBMP() {\n    const { width, height, kind } = this._imgData;\n    let data = this._imgData.data;\n    let bitPerPixel;\n    let colorTable = new Uint8Array(0);\n    let maskTable = colorTable;\n    let compression = 0;\n\n    // Each row of the image must be padded in order to have a final size which\n    // is a multiple of 4.\n\n    switch (kind) {\n      case ImageKind.GRAYSCALE_1BPP: {\n        bitPerPixel = 1;\n        colorTable = new Uint8Array(\n          this._isMask\n            ? [255, 255, 255, 255, 0, 0, 0, 0]\n            : [0, 0, 0, 0, 255, 255, 255, 255]\n        );\n        const rowLen = (width + 7) >> 3;\n        const rowSize = (rowLen + 3) & -4;\n        if (rowLen !== rowSize) {\n          const newData = new Uint8Array(rowSize * height);\n          let k = 0;\n          for (\n            let i = 0, ii = height * rowLen;\n            i < ii;\n            i += rowLen, k += rowSize\n          ) {\n            newData.set(data.subarray(i, i + rowLen), k);\n          }\n          data = newData;\n        }\n        break;\n      }\n      case ImageKind.RGB_24BPP: {\n        bitPerPixel = 24;\n        if (width & 3) {\n          const rowLen = 3 * width;\n          const rowSize = (rowLen + 3) & -4;\n          const extraLen = rowSize - rowLen;\n          const newData = new Uint8Array(rowSize * height);\n          let k = 0;\n          for (let i = 0, ii = height * rowLen; i < ii; i += rowLen) {\n            const row = data.subarray(i, i + rowLen);\n            for (let j = 0; j < rowLen; j += 3) {\n              newData[k++] = row[j + 2];\n              newData[k++] = row[j + 1];\n              newData[k++] = row[j];\n            }\n            k += extraLen;\n          }\n          data = newData;\n        } else {\n          for (let i = 0, ii = data.length; i < ii; i += 3) {\n            // Just swap R and B.\n            const tmp = data[i];\n            data[i] = data[i + 2];\n            data[i + 2] = tmp;\n          }\n        }\n        break;\n      }\n      case ImageKind.RGBA_32BPP:\n        bitPerPixel = 32;\n        compression = 3;\n        maskTable = new Uint8Array(\n          4 /* R mask */ +\n            4 /* G mask */ +\n            4 /* B mask */ +\n            4 /* A mask */ +\n            52 /* Windows color space stuff */\n        );\n        const view = new DataView(maskTable.buffer);\n        if (FeatureTest.isLittleEndian) {\n          view.setUint32(0, 0x000000ff, true);\n          view.setUint32(4, 0x0000ff00, true);\n          view.setUint32(8, 0x00ff0000, true);\n          view.setUint32(12, 0xff000000, true);\n        } else {\n          view.setUint32(0, 0xff000000, true);\n          view.setUint32(4, 0x00ff0000, true);\n          view.setUint32(8, 0x0000ff00, true);\n          view.setUint32(12, 0x000000ff, true);\n        }\n        break;\n      default:\n        throw new Error(\"invalid format\");\n    }\n\n    let i = 0;\n    const headerLength = 40 + maskTable.length;\n    const fileLength = 14 + headerLength + colorTable.length + data.length;\n    const bmpData = new Uint8Array(fileLength);\n    const view = new DataView(bmpData.buffer);\n\n    // Signature.\n    view.setUint16(i, 0x4d42, true);\n    i += 2;\n\n    // File size.\n    view.setUint32(i, fileLength, true);\n    i += 4;\n\n    // Reserved.\n    view.setUint32(i, 0, true);\n    i += 4;\n\n    // Data offset.\n    view.setUint32(i, 14 + headerLength + colorTable.length, true);\n    i += 4;\n\n    // Header size.\n    view.setUint32(i, headerLength, true);\n    i += 4;\n\n    // Width.\n    view.setInt32(i, width, true);\n    i += 4;\n\n    // Height.\n    // Negative height indicates that the image is stored from top to bottom.\n    view.setInt32(i, -height, true);\n    i += 4;\n\n    // Number of planes (must be 1).\n    view.setUint16(i, 1, true);\n    i += 2;\n\n    // Number of bit per pixel.\n    view.setUint16(i, bitPerPixel, true);\n    i += 2;\n\n    // Compression method.\n    view.setUint32(i, compression, true);\n    i += 4;\n\n    // The image size.\n    view.setUint32(i, 0, true);\n    i += 4;\n\n    // Horizontal resolution.\n    view.setInt32(i, 0, true);\n    i += 4;\n\n    // Vertical resolution.\n    view.setInt32(i, 0, true);\n    i += 4;\n\n    // Number of colors in the palette (0 to default).\n    view.setUint32(i, colorTable.length / 4, true);\n    i += 4;\n\n    // Number of important colors used (0 to default).\n    view.setUint32(i, 0, true);\n    i += 4;\n\n    bmpData.set(maskTable, i);\n    i += maskTable.length;\n\n    bmpData.set(colorTable, i);\n    i += colorTable.length;\n\n    bmpData.set(data, i);\n\n    return bmpData;\n  }\n}\n\nImageResizer._goodSquareLength = MIN_IMAGE_DIM;\n\nexport { ImageResizer };\n","/* Copyright 2014 Opera Software ASA\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n *\n * Based on https://code.google.com/p/smhasher/wiki/MurmurHash3.\n * Hashes roughly 100 KB per millisecond on i7 3.4 GHz.\n */\n\nimport { isArrayBuffer } from \"./util.js\";\n\nconst SEED = 0xc3d2e1f0;\n// Workaround for missing math precision in JS.\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\n\nclass MurmurHash3_64 {\n  constructor(seed) {\n    this.h1 = seed ? seed & 0xffffffff : SEED;\n    this.h2 = seed ? seed & 0xffffffff : SEED;\n  }\n\n  update(input) {\n    let data, length;\n    if (typeof input === \"string\") {\n      data = new Uint8Array(input.length * 2);\n      length = 0;\n      for (let i = 0, ii = input.length; i < ii; i++) {\n        const code = input.charCodeAt(i);\n        if (code <= 0xff) {\n          data[length++] = code;\n        } else {\n          data[length++] = code >>> 8;\n          data[length++] = code & 0xff;\n        }\n      }\n    } else if (isArrayBuffer(input)) {\n      data = input.slice();\n      length = data.byteLength;\n    } else {\n      throw new Error(\n        \"Wrong data format in MurmurHash3_64_update. \" +\n          \"Input must be a string or array.\"\n      );\n    }\n\n    const blockCounts = length >> 2;\n    const tailLength = length - blockCounts * 4;\n    // We don't care about endianness here.\n    const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n    let k1 = 0,\n      k2 = 0;\n    let h1 = this.h1,\n      h2 = this.h2;\n    const C1 = 0xcc9e2d51,\n      C2 = 0x1b873593;\n    const C1_LOW = C1 & MASK_LOW,\n      C2_LOW = C2 & MASK_LOW;\n\n    for (let i = 0; i < blockCounts; i++) {\n      if (i & 1) {\n        k1 = dataUint32[i];\n        k1 = ((k1 * C1) & MASK_HIGH) | ((k1 * C1_LOW) & MASK_LOW);\n        k1 = (k1 << 15) | (k1 >>> 17);\n        k1 = ((k1 * C2) & MASK_HIGH) | ((k1 * C2_LOW) & MASK_LOW);\n        h1 ^= k1;\n        h1 = (h1 << 13) | (h1 >>> 19);\n        h1 = h1 * 5 + 0xe6546b64;\n      } else {\n        k2 = dataUint32[i];\n        k2 = ((k2 * C1) & MASK_HIGH) | ((k2 * C1_LOW) & MASK_LOW);\n        k2 = (k2 << 15) | (k2 >>> 17);\n        k2 = ((k2 * C2) & MASK_HIGH) | ((k2 * C2_LOW) & MASK_LOW);\n        h2 ^= k2;\n        h2 = (h2 << 13) | (h2 >>> 19);\n        h2 = h2 * 5 + 0xe6546b64;\n      }\n    }\n\n    k1 = 0;\n\n    switch (tailLength) {\n      case 3:\n        k1 ^= data[blockCounts * 4 + 2] << 16;\n      /* falls through */\n      case 2:\n        k1 ^= data[blockCounts * 4 + 1] << 8;\n      /* falls through */\n      case 1:\n        k1 ^= data[blockCounts * 4];\n        /* falls through */\n\n        k1 = ((k1 * C1) & MASK_HIGH) | ((k1 * C1_LOW) & MASK_LOW);\n        k1 = (k1 << 15) | (k1 >>> 17);\n        k1 = ((k1 * C2) & MASK_HIGH) | ((k1 * C2_LOW) & MASK_LOW);\n        if (blockCounts & 1) {\n          h1 ^= k1;\n        } else {\n          h2 ^= k1;\n        }\n    }\n\n    this.h1 = h1;\n    this.h2 = h2;\n  }\n\n  hexdigest() {\n    let h1 = this.h1,\n      h2 = this.h2;\n\n    h1 ^= h2 >>> 1;\n    h1 = ((h1 * 0xed558ccd) & MASK_HIGH) | ((h1 * 0x8ccd) & MASK_LOW);\n    h2 =\n      ((h2 * 0xff51afd7) & MASK_HIGH) |\n      (((((h2 << 16) | (h1 >>> 16)) * 0xafd7ed55) & MASK_HIGH) >>> 16);\n    h1 ^= h2 >>> 1;\n    h1 = ((h1 * 0x1a85ec53) & MASK_HIGH) | ((h1 * 0xec53) & MASK_LOW);\n    h2 =\n      ((h2 * 0xc4ceb9fe) & MASK_HIGH) |\n      (((((h2 << 16) | (h1 >>> 16)) * 0xb9fe1a85) & MASK_HIGH) >>> 16);\n    h1 ^= h2 >>> 1;\n\n    return (\n      (h1 >>> 0).toString(16).padStart(8, \"0\") +\n      (h2 >>> 0).toString(16).padStart(8, \"0\")\n    );\n  }\n}\n\nexport { MurmurHash3_64 };\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ImageKind, OPS, RenderingIntentFlag, warn } from \"../shared/util.js\";\n\nfunction addState(parentState, pattern, checkFn, iterateFn, processFn) {\n  let state = parentState;\n  for (let i = 0, ii = pattern.length - 1; i < ii; i++) {\n    const item = pattern[i];\n    state = state[item] ||= [];\n  }\n  state[pattern.at(-1)] = {\n    checkFn,\n    iterateFn,\n    processFn,\n  };\n}\n\nconst InitialState = [];\n\n// This replaces (save, transform, paintInlineImageXObject, restore)+\n// sequences with one |paintInlineImageXObjectGroup| operation.\naddState(\n  InitialState,\n  [OPS.save, OPS.transform, OPS.paintInlineImageXObject, OPS.restore],\n  null,\n  function iterateInlineImageGroup(context, i) {\n    const fnArray = context.fnArray;\n    const iFirstSave = context.iCurr - 3;\n    const pos = (i - iFirstSave) % 4;\n    switch (pos) {\n      case 0:\n        return fnArray[i] === OPS.save;\n      case 1:\n        return fnArray[i] === OPS.transform;\n      case 2:\n        return fnArray[i] === OPS.paintInlineImageXObject;\n      case 3:\n        return fnArray[i] === OPS.restore;\n    }\n    throw new Error(`iterateInlineImageGroup - invalid pos: ${pos}`);\n  },\n  function foundInlineImageGroup(context, i) {\n    const MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;\n    const MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;\n    const MAX_WIDTH = 1000;\n    const IMAGE_PADDING = 1;\n\n    const fnArray = context.fnArray,\n      argsArray = context.argsArray;\n    const curr = context.iCurr;\n    const iFirstSave = curr - 3;\n    const iFirstTransform = curr - 2;\n    const iFirstPIIXO = curr - 1;\n\n    const count = Math.min(\n      Math.floor((i - iFirstSave) / 4),\n      MAX_IMAGES_IN_INLINE_IMAGES_BLOCK\n    );\n    if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) {\n      return i - ((i - iFirstSave) % 4);\n    }\n\n    // assuming that heights of those image is too small (~1 pixel)\n    // packing as much as possible by lines\n    let maxX = 0;\n    const map = [];\n    let maxLineHeight = 0;\n    let currentX = IMAGE_PADDING,\n      currentY = IMAGE_PADDING;\n    for (let q = 0; q < count; q++) {\n      const transform = argsArray[iFirstTransform + (q << 2)];\n      const img = argsArray[iFirstPIIXO + (q << 2)][0];\n      if (currentX + img.width > MAX_WIDTH) {\n        // starting new line\n        maxX = Math.max(maxX, currentX);\n        currentY += maxLineHeight + 2 * IMAGE_PADDING;\n        currentX = 0;\n        maxLineHeight = 0;\n      }\n      map.push({\n        transform,\n        x: currentX,\n        y: currentY,\n        w: img.width,\n        h: img.height,\n      });\n      currentX += img.width + 2 * IMAGE_PADDING;\n      maxLineHeight = Math.max(maxLineHeight, img.height);\n    }\n    const imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING;\n    const imgHeight = currentY + maxLineHeight + IMAGE_PADDING;\n    const imgData = new Uint8Array(imgWidth * imgHeight * 4);\n    const imgRowSize = imgWidth << 2;\n    for (let q = 0; q < count; q++) {\n      const data = argsArray[iFirstPIIXO + (q << 2)][0].data;\n      // Copy image by lines and extends pixels into padding.\n      const rowSize = map[q].w << 2;\n      let dataOffset = 0;\n      let offset = (map[q].x + map[q].y * imgWidth) << 2;\n      imgData.set(data.subarray(0, rowSize), offset - imgRowSize);\n      for (let k = 0, kk = map[q].h; k < kk; k++) {\n        imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset);\n        dataOffset += rowSize;\n        offset += imgRowSize;\n      }\n      imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset);\n      while (offset >= 0) {\n        data[offset - 4] = data[offset];\n        data[offset - 3] = data[offset + 1];\n        data[offset - 2] = data[offset + 2];\n        data[offset - 1] = data[offset + 3];\n        data[offset + rowSize] = data[offset + rowSize - 4];\n        data[offset + rowSize + 1] = data[offset + rowSize - 3];\n        data[offset + rowSize + 2] = data[offset + rowSize - 2];\n        data[offset + rowSize + 3] = data[offset + rowSize - 1];\n        offset -= imgRowSize;\n      }\n    }\n\n    const img = {\n      width: imgWidth,\n      height: imgHeight,\n    };\n    if (context.isOffscreenCanvasSupported) {\n      const canvas = new OffscreenCanvas(imgWidth, imgHeight);\n      const ctx = canvas.getContext(\"2d\");\n      ctx.putImageData(\n        new ImageData(\n          new Uint8ClampedArray(imgData.buffer),\n          imgWidth,\n          imgHeight\n        ),\n        0,\n        0\n      );\n      img.bitmap = canvas.transferToImageBitmap();\n      img.data = null;\n    } else {\n      img.kind = ImageKind.RGBA_32BPP;\n      img.data = imgData;\n    }\n\n    // Replace queue items.\n    fnArray.splice(iFirstSave, count * 4, OPS.paintInlineImageXObjectGroup);\n    argsArray.splice(iFirstSave, count * 4, [img, map]);\n\n    return iFirstSave + 1;\n  }\n);\n\n// This replaces (save, transform, paintImageMaskXObject, restore)+\n// sequences with one |paintImageMaskXObjectGroup| or one\n// |paintImageMaskXObjectRepeat| operation.\naddState(\n  InitialState,\n  [OPS.save, OPS.transform, OPS.paintImageMaskXObject, OPS.restore],\n  null,\n  function iterateImageMaskGroup(context, i) {\n    const fnArray = context.fnArray;\n    const iFirstSave = context.iCurr - 3;\n    const pos = (i - iFirstSave) % 4;\n    switch (pos) {\n      case 0:\n        return fnArray[i] === OPS.save;\n      case 1:\n        return fnArray[i] === OPS.transform;\n      case 2:\n        return fnArray[i] === OPS.paintImageMaskXObject;\n      case 3:\n        return fnArray[i] === OPS.restore;\n    }\n    throw new Error(`iterateImageMaskGroup - invalid pos: ${pos}`);\n  },\n  function foundImageMaskGroup(context, i) {\n    const MIN_IMAGES_IN_MASKS_BLOCK = 10;\n    const MAX_IMAGES_IN_MASKS_BLOCK = 100;\n    const MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000;\n\n    const fnArray = context.fnArray,\n      argsArray = context.argsArray;\n    const curr = context.iCurr;\n    const iFirstSave = curr - 3;\n    const iFirstTransform = curr - 2;\n    const iFirstPIMXO = curr - 1;\n\n    // At this point, i is the index of the first op past the last valid\n    // quartet.\n    let count = Math.floor((i - iFirstSave) / 4);\n    if (count < MIN_IMAGES_IN_MASKS_BLOCK) {\n      return i - ((i - iFirstSave) % 4);\n    }\n\n    let isSameImage = false;\n    let iTransform, transformArgs;\n    const firstPIMXOArg0 = argsArray[iFirstPIMXO][0];\n    const firstTransformArg0 = argsArray[iFirstTransform][0],\n      firstTransformArg1 = argsArray[iFirstTransform][1],\n      firstTransformArg2 = argsArray[iFirstTransform][2],\n      firstTransformArg3 = argsArray[iFirstTransform][3];\n\n    if (firstTransformArg1 === firstTransformArg2) {\n      isSameImage = true;\n      iTransform = iFirstTransform + 4;\n      let iPIMXO = iFirstPIMXO + 4;\n      for (let q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) {\n        transformArgs = argsArray[iTransform];\n        if (\n          argsArray[iPIMXO][0] !== firstPIMXOArg0 ||\n          transformArgs[0] !== firstTransformArg0 ||\n          transformArgs[1] !== firstTransformArg1 ||\n          transformArgs[2] !== firstTransformArg2 ||\n          transformArgs[3] !== firstTransformArg3\n        ) {\n          if (q < MIN_IMAGES_IN_MASKS_BLOCK) {\n            isSameImage = false;\n          } else {\n            count = q;\n          }\n          break; // different image or transform\n        }\n      }\n    }\n\n    if (isSameImage) {\n      count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK);\n      const positions = new Float32Array(count * 2);\n      iTransform = iFirstTransform;\n      for (let q = 0; q < count; q++, iTransform += 4) {\n        transformArgs = argsArray[iTransform];\n        positions[q << 1] = transformArgs[4];\n        positions[(q << 1) + 1] = transformArgs[5];\n      }\n\n      // Replace queue items.\n      fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectRepeat);\n      argsArray.splice(iFirstSave, count * 4, [\n        firstPIMXOArg0,\n        firstTransformArg0,\n        firstTransformArg1,\n        firstTransformArg2,\n        firstTransformArg3,\n        positions,\n      ]);\n    } else {\n      count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK);\n      const images = [];\n      for (let q = 0; q < count; q++) {\n        transformArgs = argsArray[iFirstTransform + (q << 2)];\n        const maskParams = argsArray[iFirstPIMXO + (q << 2)][0];\n        images.push({\n          data: maskParams.data,\n          width: maskParams.width,\n          height: maskParams.height,\n          interpolate: maskParams.interpolate,\n          count: maskParams.count,\n          transform: transformArgs,\n        });\n      }\n\n      // Replace queue items.\n      fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectGroup);\n      argsArray.splice(iFirstSave, count * 4, [images]);\n    }\n\n    return iFirstSave + 1;\n  }\n);\n\n// This replaces (save, transform, paintImageXObject, restore)+ sequences\n// with one paintImageXObjectRepeat operation, if the |transform| and\n// |paintImageXObjectRepeat| ops are appropriate.\naddState(\n  InitialState,\n  [OPS.save, OPS.transform, OPS.paintImageXObject, OPS.restore],\n  function (context) {\n    const argsArray = context.argsArray;\n    const iFirstTransform = context.iCurr - 2;\n    return (\n      argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0\n    );\n  },\n  function iterateImageGroup(context, i) {\n    const fnArray = context.fnArray,\n      argsArray = context.argsArray;\n    const iFirstSave = context.iCurr - 3;\n    const pos = (i - iFirstSave) % 4;\n    switch (pos) {\n      case 0:\n        return fnArray[i] === OPS.save;\n      case 1:\n        if (fnArray[i] !== OPS.transform) {\n          return false;\n        }\n        const iFirstTransform = context.iCurr - 2;\n        const firstTransformArg0 = argsArray[iFirstTransform][0];\n        const firstTransformArg3 = argsArray[iFirstTransform][3];\n        if (\n          argsArray[i][0] !== firstTransformArg0 ||\n          argsArray[i][1] !== 0 ||\n          argsArray[i][2] !== 0 ||\n          argsArray[i][3] !== firstTransformArg3\n        ) {\n          return false; // transforms don't match\n        }\n        return true;\n      case 2:\n        if (fnArray[i] !== OPS.paintImageXObject) {\n          return false;\n        }\n        const iFirstPIXO = context.iCurr - 1;\n        const firstPIXOArg0 = argsArray[iFirstPIXO][0];\n        if (argsArray[i][0] !== firstPIXOArg0) {\n          return false; // images don't match\n        }\n        return true;\n      case 3:\n        return fnArray[i] === OPS.restore;\n    }\n    throw new Error(`iterateImageGroup - invalid pos: ${pos}`);\n  },\n  function (context, i) {\n    const MIN_IMAGES_IN_BLOCK = 3;\n    const MAX_IMAGES_IN_BLOCK = 1000;\n\n    const fnArray = context.fnArray,\n      argsArray = context.argsArray;\n    const curr = context.iCurr;\n    const iFirstSave = curr - 3;\n    const iFirstTransform = curr - 2;\n    const iFirstPIXO = curr - 1;\n    const firstPIXOArg0 = argsArray[iFirstPIXO][0];\n    const firstTransformArg0 = argsArray[iFirstTransform][0];\n    const firstTransformArg3 = argsArray[iFirstTransform][3];\n\n    // At this point, i is the index of the first op past the last valid\n    // quartet.\n    const count = Math.min(\n      Math.floor((i - iFirstSave) / 4),\n      MAX_IMAGES_IN_BLOCK\n    );\n    if (count < MIN_IMAGES_IN_BLOCK) {\n      return i - ((i - iFirstSave) % 4);\n    }\n\n    // Extract the (x,y) positions from all of the matching transforms.\n    const positions = new Float32Array(count * 2);\n    let iTransform = iFirstTransform;\n    for (let q = 0; q < count; q++, iTransform += 4) {\n      const transformArgs = argsArray[iTransform];\n      positions[q << 1] = transformArgs[4];\n      positions[(q << 1) + 1] = transformArgs[5];\n    }\n\n    // Replace queue items.\n    const args = [\n      firstPIXOArg0,\n      firstTransformArg0,\n      firstTransformArg3,\n      positions,\n    ];\n    fnArray.splice(iFirstSave, count * 4, OPS.paintImageXObjectRepeat);\n    argsArray.splice(iFirstSave, count * 4, args);\n\n    return iFirstSave + 1;\n  }\n);\n\n// This replaces (beginText, setFont, setTextMatrix, showText, endText)+\n// sequences with (beginText, setFont, (setTextMatrix, showText)+, endText)+\n// sequences, if the font for each one is the same.\naddState(\n  InitialState,\n  [OPS.beginText, OPS.setFont, OPS.setTextMatrix, OPS.showText, OPS.endText],\n  null,\n  function iterateShowTextGroup(context, i) {\n    const fnArray = context.fnArray,\n      argsArray = context.argsArray;\n    const iFirstSave = context.iCurr - 4;\n    const pos = (i - iFirstSave) % 5;\n    switch (pos) {\n      case 0:\n        return fnArray[i] === OPS.beginText;\n      case 1:\n        return fnArray[i] === OPS.setFont;\n      case 2:\n        return fnArray[i] === OPS.setTextMatrix;\n      case 3:\n        if (fnArray[i] !== OPS.showText) {\n          return false;\n        }\n        const iFirstSetFont = context.iCurr - 3;\n        const firstSetFontArg0 = argsArray[iFirstSetFont][0];\n        const firstSetFontArg1 = argsArray[iFirstSetFont][1];\n        if (\n          argsArray[i][0] !== firstSetFontArg0 ||\n          argsArray[i][1] !== firstSetFontArg1\n        ) {\n          return false; // fonts don't match\n        }\n        return true;\n      case 4:\n        return fnArray[i] === OPS.endText;\n    }\n    throw new Error(`iterateShowTextGroup - invalid pos: ${pos}`);\n  },\n  function (context, i) {\n    const MIN_CHARS_IN_BLOCK = 3;\n    const MAX_CHARS_IN_BLOCK = 1000;\n\n    const fnArray = context.fnArray,\n      argsArray = context.argsArray;\n    const curr = context.iCurr;\n    const iFirstBeginText = curr - 4;\n    const iFirstSetFont = curr - 3;\n    const iFirstSetTextMatrix = curr - 2;\n    const iFirstShowText = curr - 1;\n    const iFirstEndText = curr;\n    const firstSetFontArg0 = argsArray[iFirstSetFont][0];\n    const firstSetFontArg1 = argsArray[iFirstSetFont][1];\n\n    // At this point, i is the index of the first op past the last valid\n    // quintet.\n    let count = Math.min(\n      Math.floor((i - iFirstBeginText) / 5),\n      MAX_CHARS_IN_BLOCK\n    );\n    if (count < MIN_CHARS_IN_BLOCK) {\n      return i - ((i - iFirstBeginText) % 5);\n    }\n\n    // If the preceding quintet is (<something>, setFont, setTextMatrix,\n    // showText, endText), include that as well. (E.g. <something> might be\n    // |dependency|.)\n    let iFirst = iFirstBeginText;\n    if (\n      iFirstBeginText >= 4 &&\n      fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] &&\n      fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] &&\n      fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] &&\n      fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] &&\n      argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 &&\n      argsArray[iFirstBeginText - 4][1] === firstSetFontArg1\n    ) {\n      count++;\n      iFirst -= 5;\n    }\n\n    // Remove (endText, beginText, setFont) trios.\n    let iEndText = iFirst + 4;\n    for (let q = 1; q < count; q++) {\n      fnArray.splice(iEndText, 3);\n      argsArray.splice(iEndText, 3);\n      iEndText += 2;\n    }\n\n    return iEndText + 1;\n  }\n);\n\nclass NullOptimizer {\n  constructor(queue) {\n    this.queue = queue;\n  }\n\n  _optimize() {}\n\n  push(fn, args) {\n    this.queue.fnArray.push(fn);\n    this.queue.argsArray.push(args);\n    this._optimize();\n  }\n\n  flush() {}\n\n  reset() {}\n}\n\nclass QueueOptimizer extends NullOptimizer {\n  constructor(queue) {\n    super(queue);\n    this.state = null;\n    this.context = {\n      iCurr: 0,\n      fnArray: queue.fnArray,\n      argsArray: queue.argsArray,\n      isOffscreenCanvasSupported: false,\n    };\n    this.match = null;\n    this.lastProcessed = 0;\n  }\n\n  // eslint-disable-next-line accessor-pairs\n  set isOffscreenCanvasSupported(value) {\n    this.context.isOffscreenCanvasSupported = value;\n  }\n\n  _optimize() {\n    // Process new fnArray item(s) chunk.\n    const fnArray = this.queue.fnArray;\n    let i = this.lastProcessed,\n      ii = fnArray.length;\n    let state = this.state;\n    let match = this.match;\n    if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) {\n      // Micro-optimization for the common case: last item is not\n      // optimizable, just skipping it.\n      this.lastProcessed = ii;\n      return;\n    }\n\n    const context = this.context;\n    while (i < ii) {\n      if (match) {\n        // Already find a block of potentially optimizable items, iterating...\n        const iterate = (0, match.iterateFn)(context, i);\n        if (iterate) {\n          i++;\n          continue;\n        }\n        // Found last items for the block, processing...\n        i = (0, match.processFn)(context, i + 1);\n        ii = fnArray.length;\n        match = null;\n        state = null;\n        if (i >= ii) {\n          break;\n        }\n      }\n      // Find the potentially optimizable items.\n      state = (state || InitialState)[fnArray[i]];\n      if (!state || Array.isArray(state)) {\n        i++;\n        continue;\n      }\n      // Found a start of the block based on addState rules.\n      context.iCurr = i;\n      i++;\n      if (state.checkFn && !(0, state.checkFn)(context)) {\n        // Check failed, continue search...\n        state = null;\n        continue;\n      }\n      match = state;\n      state = null;\n    }\n    this.state = state;\n    this.match = match;\n    this.lastProcessed = i;\n  }\n\n  flush() {\n    while (this.match) {\n      const length = this.queue.fnArray.length;\n      this.lastProcessed = (0, this.match.processFn)(this.context, length);\n      this.match = null;\n      this.state = null;\n      // Repeat optimization until all chunks are exhausted.\n      this._optimize();\n    }\n  }\n\n  reset() {\n    this.state = null;\n    this.match = null;\n    this.lastProcessed = 0;\n  }\n}\n\nclass OperatorList {\n  static CHUNK_SIZE = 1000;\n\n  // Close to chunk size.\n  static CHUNK_SIZE_ABOUT = this.CHUNK_SIZE - 5;\n\n  constructor(intent = 0, streamSink) {\n    this._streamSink = streamSink;\n    this.fnArray = [];\n    this.argsArray = [];\n    this.optimizer =\n      streamSink && !(intent & RenderingIntentFlag.OPLIST)\n        ? new QueueOptimizer(this)\n        : new NullOptimizer(this);\n    this.dependencies = new Set();\n    this._totalLength = 0;\n    this.weight = 0;\n    this._resolved = streamSink ? null : Promise.resolve();\n  }\n\n  // eslint-disable-next-line accessor-pairs\n  set isOffscreenCanvasSupported(value) {\n    this.optimizer.isOffscreenCanvasSupported = value;\n  }\n\n  get length() {\n    return this.argsArray.length;\n  }\n\n  get ready() {\n    return this._resolved || this._streamSink.ready;\n  }\n\n  /**\n   * @type {number} The total length of the entire operator list, since\n   *                `this.length === 0` after flushing.\n   */\n  get totalLength() {\n    return this._totalLength + this.length;\n  }\n\n  addOp(fn, args) {\n    this.optimizer.push(fn, args);\n    this.weight++;\n    if (this._streamSink) {\n      if (this.weight >= OperatorList.CHUNK_SIZE) {\n        this.flush();\n      } else if (\n        this.weight >= OperatorList.CHUNK_SIZE_ABOUT &&\n        (fn === OPS.restore || fn === OPS.endText)\n      ) {\n        // Heuristic to flush on boundary of restore or endText.\n        this.flush();\n      }\n    }\n  }\n\n  addImageOps(fn, args, optionalContent) {\n    if (optionalContent !== undefined) {\n      this.addOp(OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n    }\n\n    this.addOp(fn, args);\n\n    if (optionalContent !== undefined) {\n      this.addOp(OPS.endMarkedContent, []);\n    }\n  }\n\n  addDependency(dependency) {\n    if (this.dependencies.has(dependency)) {\n      return;\n    }\n    this.dependencies.add(dependency);\n    this.addOp(OPS.dependency, [dependency]);\n  }\n\n  addDependencies(dependencies) {\n    for (const dependency of dependencies) {\n      this.addDependency(dependency);\n    }\n  }\n\n  addOpList(opList) {\n    if (!(opList instanceof OperatorList)) {\n      warn('addOpList - ignoring invalid \"opList\" parameter.');\n      return;\n    }\n    for (const dependency of opList.dependencies) {\n      this.dependencies.add(dependency);\n    }\n    for (let i = 0, ii = opList.length; i < ii; i++) {\n      this.addOp(opList.fnArray[i], opList.argsArray[i]);\n    }\n  }\n\n  getIR() {\n    return {\n      fnArray: this.fnArray,\n      argsArray: this.argsArray,\n      length: this.length,\n    };\n  }\n\n  get _transfers() {\n    const transfers = [];\n    const { fnArray, argsArray, length } = this;\n    for (let i = 0; i < length; i++) {\n      switch (fnArray[i]) {\n        case OPS.paintInlineImageXObject:\n        case OPS.paintInlineImageXObjectGroup:\n        case OPS.paintImageMaskXObject:\n          const arg = argsArray[i][0]; // First parameter in imgData.\n          if (!arg.cached && arg.data?.buffer instanceof ArrayBuffer) {\n            transfers.push(arg.data.buffer);\n          }\n          break;\n      }\n    }\n    return transfers;\n  }\n\n  flush(lastChunk = false, separateAnnots = null) {\n    this.optimizer.flush();\n    const length = this.length;\n    this._totalLength += length;\n\n    this._streamSink.enqueue(\n      {\n        fnArray: this.fnArray,\n        argsArray: this.argsArray,\n        lastChunk,\n        separateAnnots,\n        length,\n      },\n      1,\n      this._transfers\n    );\n\n    this.dependencies.clear();\n    this.fnArray.length = 0;\n    this.argsArray.length = 0;\n    this.weight = 0;\n    this.optimizer.reset();\n  }\n}\n\nexport { OperatorList };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  assert,\n  FeatureTest,\n  FormatError,\n  ImageKind,\n  info,\n  warn,\n} from \"../shared/util.js\";\nimport {\n  convertBlackAndWhiteToRGBA,\n  convertToRGBA,\n} from \"../shared/image_utils.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { ImageResizer } from \"./image_resizer.js\";\nimport { JpegStream } from \"./jpeg_stream.js\";\nimport { JpxImage } from \"./jpx.js\";\nimport { Name } from \"./primitives.js\";\n\n/**\n * Decode and clamp a value. The formula is different from the spec because we\n * don't decode to float range [0,1], we decode it in the [0,max] range.\n */\nfunction decodeAndClamp(value, addend, coefficient, max) {\n  value = addend + value * coefficient;\n  // Clamp the value to the range\n  if (value < 0) {\n    value = 0;\n  } else if (value > max) {\n    value = max;\n  }\n  return value;\n}\n\n/**\n * Resizes an image mask with 1 component.\n * @param {TypedArray} src - The source buffer.\n * @param {number} bpc - Number of bits per component.\n * @param {number} w1 - Original width.\n * @param {number} h1 - Original height.\n * @param {number} w2 - New width.\n * @param {number} h2 - New height.\n * @returns {TypedArray} The resized image mask buffer.\n */\nfunction resizeImageMask(src, bpc, w1, h1, w2, h2) {\n  const length = w2 * h2;\n  let dest;\n  if (bpc <= 8) {\n    dest = new Uint8Array(length);\n  } else if (bpc <= 16) {\n    dest = new Uint16Array(length);\n  } else {\n    dest = new Uint32Array(length);\n  }\n  const xRatio = w1 / w2;\n  const yRatio = h1 / h2;\n  let i,\n    j,\n    py,\n    newIndex = 0,\n    oldIndex;\n  const xScaled = new Uint16Array(w2);\n  const w1Scanline = w1;\n\n  for (i = 0; i < w2; i++) {\n    xScaled[i] = Math.floor(i * xRatio);\n  }\n  for (i = 0; i < h2; i++) {\n    py = Math.floor(i * yRatio) * w1Scanline;\n    for (j = 0; j < w2; j++) {\n      oldIndex = py + xScaled[j];\n      dest[newIndex++] = src[oldIndex];\n    }\n  }\n  return dest;\n}\n\nclass PDFImage {\n  constructor({\n    xref,\n    res,\n    image,\n    isInline = false,\n    smask = null,\n    mask = null,\n    isMask = false,\n    pdfFunctionFactory,\n    localColorSpaceCache,\n  }) {\n    this.image = image;\n    const dict = image.dict;\n\n    const filter = dict.get(\"F\", \"Filter\");\n    let filterName;\n    if (filter instanceof Name) {\n      filterName = filter.name;\n    } else if (Array.isArray(filter)) {\n      const filterZero = xref.fetchIfRef(filter[0]);\n      if (filterZero instanceof Name) {\n        filterName = filterZero.name;\n      }\n    }\n    switch (filterName) {\n      case \"JPXDecode\":\n        const jpxImage = new JpxImage();\n        jpxImage.parseImageProperties(image.stream);\n        image.stream.reset();\n\n        image.width = jpxImage.width;\n        image.height = jpxImage.height;\n        image.bitsPerComponent = jpxImage.bitsPerComponent;\n        image.numComps = jpxImage.componentsCount;\n        break;\n      case \"JBIG2Decode\":\n        image.bitsPerComponent = 1;\n        image.numComps = 1;\n        break;\n    }\n\n    let width = dict.get(\"W\", \"Width\");\n    let height = dict.get(\"H\", \"Height\");\n\n    if (\n      Number.isInteger(image.width) &&\n      image.width > 0 &&\n      Number.isInteger(image.height) &&\n      image.height > 0 &&\n      (image.width !== width || image.height !== height)\n    ) {\n      warn(\n        \"PDFImage - using the Width/Height of the image data, \" +\n          \"rather than the image dictionary.\"\n      );\n      width = image.width;\n      height = image.height;\n    }\n    if (width < 1 || height < 1) {\n      throw new FormatError(\n        `Invalid image width: ${width} or height: ${height}`\n      );\n    }\n    this.width = width;\n    this.height = height;\n\n    this.interpolate = dict.get(\"I\", \"Interpolate\");\n    this.imageMask = dict.get(\"IM\", \"ImageMask\") || false;\n    this.matte = dict.get(\"Matte\") || false;\n\n    let bitsPerComponent = image.bitsPerComponent;\n    if (!bitsPerComponent) {\n      bitsPerComponent = dict.get(\"BPC\", \"BitsPerComponent\");\n      if (!bitsPerComponent) {\n        if (this.imageMask) {\n          bitsPerComponent = 1;\n        } else {\n          throw new FormatError(\n            `Bits per component missing in image: ${this.imageMask}`\n          );\n        }\n      }\n    }\n    this.bpc = bitsPerComponent;\n\n    if (!this.imageMask) {\n      let colorSpace = dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\");\n      if (!colorSpace) {\n        info(\"JPX images (which do not require color spaces)\");\n        switch (image.numComps) {\n          case 1:\n            colorSpace = Name.get(\"DeviceGray\");\n            break;\n          case 3:\n            colorSpace = Name.get(\"DeviceRGB\");\n            break;\n          case 4:\n            colorSpace = Name.get(\"DeviceCMYK\");\n            break;\n          default:\n            throw new Error(\n              `JPX images with ${image.numComps} color components not supported.`\n            );\n        }\n      }\n      this.colorSpace = ColorSpace.parse({\n        cs: colorSpace,\n        xref,\n        resources: isInline ? res : null,\n        pdfFunctionFactory,\n        localColorSpaceCache,\n      });\n      this.numComps = this.colorSpace.numComps;\n    }\n\n    this.decode = dict.getArray(\"D\", \"Decode\");\n    this.needsDecode = false;\n    if (\n      this.decode &&\n      ((this.colorSpace &&\n        !this.colorSpace.isDefaultDecode(this.decode, bitsPerComponent)) ||\n        (isMask &&\n          !ColorSpace.isDefaultDecode(this.decode, /* numComps = */ 1)))\n    ) {\n      this.needsDecode = true;\n      // Do some preprocessing to avoid more math.\n      const max = (1 << bitsPerComponent) - 1;\n      this.decodeCoefficients = [];\n      this.decodeAddends = [];\n      const isIndexed = this.colorSpace?.name === \"Indexed\";\n      for (let i = 0, j = 0; i < this.decode.length; i += 2, ++j) {\n        const dmin = this.decode[i];\n        const dmax = this.decode[i + 1];\n        this.decodeCoefficients[j] = isIndexed\n          ? (dmax - dmin) / max\n          : dmax - dmin;\n        this.decodeAddends[j] = isIndexed ? dmin : max * dmin;\n      }\n    }\n\n    if (smask) {\n      this.smask = new PDFImage({\n        xref,\n        res,\n        image: smask,\n        isInline,\n        pdfFunctionFactory,\n        localColorSpaceCache,\n      });\n    } else if (mask) {\n      if (mask instanceof BaseStream) {\n        const maskDict = mask.dict,\n          imageMask = maskDict.get(\"IM\", \"ImageMask\");\n        if (!imageMask) {\n          warn(\"Ignoring /Mask in image without /ImageMask.\");\n        } else {\n          this.mask = new PDFImage({\n            xref,\n            res,\n            image: mask,\n            isInline,\n            isMask: true,\n            pdfFunctionFactory,\n            localColorSpaceCache,\n          });\n        }\n      } else {\n        // Color key mask (just an array).\n        this.mask = mask;\n      }\n    }\n  }\n\n  /**\n   * Handles processing of image data and returns the Promise that is resolved\n   * with a PDFImage when the image is ready to be used.\n   */\n  static async buildImage({\n    xref,\n    res,\n    image,\n    isInline = false,\n    pdfFunctionFactory,\n    localColorSpaceCache,\n  }) {\n    const imageData = image;\n    let smaskData = null;\n    let maskData = null;\n\n    const smask = image.dict.get(\"SMask\");\n    const mask = image.dict.get(\"Mask\");\n\n    if (smask) {\n      if (smask instanceof BaseStream) {\n        smaskData = smask;\n      } else {\n        warn(\"Unsupported /SMask format.\");\n      }\n    } else if (mask) {\n      if (mask instanceof BaseStream || Array.isArray(mask)) {\n        maskData = mask;\n      } else {\n        warn(\"Unsupported /Mask format.\");\n      }\n    }\n\n    return new PDFImage({\n      xref,\n      res,\n      image: imageData,\n      isInline,\n      smask: smaskData,\n      mask: maskData,\n      pdfFunctionFactory,\n      localColorSpaceCache,\n    });\n  }\n\n  static createRawMask({\n    imgArray,\n    width,\n    height,\n    imageIsFromDecodeStream,\n    inverseDecode,\n    interpolate,\n  }) {\n    // |imgArray| might not contain full data for every pixel of the mask, so\n    // we need to distinguish between |computedLength| and |actualLength|.\n    // In particular, if inverseDecode is true, then the array we return must\n    // have a length of |computedLength|.\n\n    const computedLength = ((width + 7) >> 3) * height;\n    const actualLength = imgArray.byteLength;\n    const haveFullData = computedLength === actualLength;\n    let data, i;\n\n    if (imageIsFromDecodeStream && (!inverseDecode || haveFullData)) {\n      // imgArray came from a DecodeStream and its data is in an appropriate\n      // form, so we can just transfer it.\n      data = imgArray;\n    } else if (!inverseDecode) {\n      data = new Uint8Array(imgArray);\n    } else {\n      data = new Uint8Array(computedLength);\n      data.set(imgArray);\n      data.fill(0xff, actualLength);\n    }\n\n    // If necessary, invert the original mask data (but not any extra we might\n    // have added above). It's safe to modify the array -- whether it's the\n    // original or a copy, we're about to transfer it anyway, so nothing else\n    // in this thread can be relying on its contents.\n    if (inverseDecode) {\n      for (i = 0; i < actualLength; i++) {\n        data[i] ^= 0xff;\n      }\n    }\n\n    return { data, width, height, interpolate };\n  }\n\n  static async createMask({\n    imgArray,\n    width,\n    height,\n    imageIsFromDecodeStream,\n    inverseDecode,\n    interpolate,\n    isOffscreenCanvasSupported = false,\n  }) {\n    const isSingleOpaquePixel =\n      width === 1 &&\n      height === 1 &&\n      inverseDecode === (imgArray.length === 0 || !!(imgArray[0] & 128));\n\n    if (isSingleOpaquePixel) {\n      return { isSingleOpaquePixel };\n    }\n\n    if (isOffscreenCanvasSupported) {\n      if (ImageResizer.needsToBeResized(width, height)) {\n        const data = new Uint8ClampedArray(width * height * 4);\n        convertBlackAndWhiteToRGBA({\n          src: imgArray,\n          dest: data,\n          width,\n          height,\n          nonBlackColor: 0,\n          inverseDecode,\n        });\n        return ImageResizer.createImage({\n          kind: ImageKind.RGBA_32BPP,\n          data,\n          width,\n          height,\n          interpolate,\n        });\n      }\n\n      const canvas = new OffscreenCanvas(width, height);\n      const ctx = canvas.getContext(\"2d\");\n      const imgData = ctx.createImageData(width, height);\n      convertBlackAndWhiteToRGBA({\n        src: imgArray,\n        dest: imgData.data,\n        width,\n        height,\n        nonBlackColor: 0,\n        inverseDecode,\n      });\n\n      ctx.putImageData(imgData, 0, 0);\n      const bitmap = canvas.transferToImageBitmap();\n\n      return {\n        data: null,\n        width,\n        height,\n        interpolate,\n        bitmap,\n      };\n    }\n\n    // Get the data almost as they're and they'll be decoded\n    // just before being drawn.\n    return this.createRawMask({\n      imgArray,\n      width,\n      height,\n      inverseDecode,\n      imageIsFromDecodeStream,\n      interpolate,\n    });\n  }\n\n  get drawWidth() {\n    return Math.max(this.width, this.smask?.width || 0, this.mask?.width || 0);\n  }\n\n  get drawHeight() {\n    return Math.max(\n      this.height,\n      this.smask?.height || 0,\n      this.mask?.height || 0\n    );\n  }\n\n  decodeBuffer(buffer) {\n    const bpc = this.bpc;\n    const numComps = this.numComps;\n\n    const decodeAddends = this.decodeAddends;\n    const decodeCoefficients = this.decodeCoefficients;\n    const max = (1 << bpc) - 1;\n    let i, ii;\n\n    if (bpc === 1) {\n      // If the buffer needed decode that means it just needs to be inverted.\n      for (i = 0, ii = buffer.length; i < ii; i++) {\n        buffer[i] = +!buffer[i];\n      }\n      return;\n    }\n    let index = 0;\n    for (i = 0, ii = this.width * this.height; i < ii; i++) {\n      for (let j = 0; j < numComps; j++) {\n        buffer[index] = decodeAndClamp(\n          buffer[index],\n          decodeAddends[j],\n          decodeCoefficients[j],\n          max\n        );\n        index++;\n      }\n    }\n  }\n\n  getComponents(buffer) {\n    const bpc = this.bpc;\n\n    // This image doesn't require any extra work.\n    if (bpc === 8) {\n      return buffer;\n    }\n\n    const width = this.width;\n    const height = this.height;\n    const numComps = this.numComps;\n\n    const length = width * height * numComps;\n    let bufferPos = 0;\n    let output;\n    if (bpc <= 8) {\n      output = new Uint8Array(length);\n    } else if (bpc <= 16) {\n      output = new Uint16Array(length);\n    } else {\n      output = new Uint32Array(length);\n    }\n    const rowComps = width * numComps;\n\n    const max = (1 << bpc) - 1;\n    let i = 0,\n      ii,\n      buf;\n\n    if (bpc === 1) {\n      // Optimization for reading 1 bpc images.\n      let mask, loop1End, loop2End;\n      for (let j = 0; j < height; j++) {\n        loop1End = i + (rowComps & ~7);\n        loop2End = i + rowComps;\n\n        // unroll loop for all full bytes\n        while (i < loop1End) {\n          buf = buffer[bufferPos++];\n          output[i] = (buf >> 7) & 1;\n          output[i + 1] = (buf >> 6) & 1;\n          output[i + 2] = (buf >> 5) & 1;\n          output[i + 3] = (buf >> 4) & 1;\n          output[i + 4] = (buf >> 3) & 1;\n          output[i + 5] = (buf >> 2) & 1;\n          output[i + 6] = (buf >> 1) & 1;\n          output[i + 7] = buf & 1;\n          i += 8;\n        }\n\n        // handle remaining bits\n        if (i < loop2End) {\n          buf = buffer[bufferPos++];\n          mask = 128;\n          while (i < loop2End) {\n            output[i++] = +!!(buf & mask);\n            mask >>= 1;\n          }\n        }\n      }\n    } else {\n      // The general case that handles all other bpc values.\n      let bits = 0;\n      buf = 0;\n      for (i = 0, ii = length; i < ii; ++i) {\n        if (i % rowComps === 0) {\n          buf = 0;\n          bits = 0;\n        }\n\n        while (bits < bpc) {\n          buf = (buf << 8) | buffer[bufferPos++];\n          bits += 8;\n        }\n\n        const remainingBits = bits - bpc;\n        let value = buf >> remainingBits;\n        if (value < 0) {\n          value = 0;\n        } else if (value > max) {\n          value = max;\n        }\n        output[i] = value;\n        buf &= (1 << remainingBits) - 1;\n        bits = remainingBits;\n      }\n    }\n    return output;\n  }\n\n  fillOpacity(rgbaBuf, width, height, actualHeight, image) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        rgbaBuf instanceof Uint8ClampedArray,\n        'PDFImage.fillOpacity: Unsupported \"rgbaBuf\" type.'\n      );\n    }\n    const smask = this.smask;\n    const mask = this.mask;\n    let alphaBuf, sw, sh, i, ii, j;\n\n    if (smask) {\n      sw = smask.width;\n      sh = smask.height;\n      alphaBuf = new Uint8ClampedArray(sw * sh);\n      smask.fillGrayBuffer(alphaBuf);\n      if (sw !== width || sh !== height) {\n        alphaBuf = resizeImageMask(alphaBuf, smask.bpc, sw, sh, width, height);\n      }\n    } else if (mask) {\n      if (mask instanceof PDFImage) {\n        sw = mask.width;\n        sh = mask.height;\n        alphaBuf = new Uint8ClampedArray(sw * sh);\n        mask.numComps = 1;\n        mask.fillGrayBuffer(alphaBuf);\n\n        // Need to invert values in rgbaBuf\n        for (i = 0, ii = sw * sh; i < ii; ++i) {\n          alphaBuf[i] = 255 - alphaBuf[i];\n        }\n\n        if (sw !== width || sh !== height) {\n          alphaBuf = resizeImageMask(alphaBuf, mask.bpc, sw, sh, width, height);\n        }\n      } else if (Array.isArray(mask)) {\n        // Color key mask: if any of the components are outside the range\n        // then they should be painted.\n        alphaBuf = new Uint8ClampedArray(width * height);\n        const numComps = this.numComps;\n        for (i = 0, ii = width * height; i < ii; ++i) {\n          let opacity = 0;\n          const imageOffset = i * numComps;\n          for (j = 0; j < numComps; ++j) {\n            const color = image[imageOffset + j];\n            const maskOffset = j * 2;\n            if (color < mask[maskOffset] || color > mask[maskOffset + 1]) {\n              opacity = 255;\n              break;\n            }\n          }\n          alphaBuf[i] = opacity;\n        }\n      } else {\n        throw new FormatError(\"Unknown mask format.\");\n      }\n    }\n\n    if (alphaBuf) {\n      for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n        rgbaBuf[j] = alphaBuf[i];\n      }\n    } else {\n      // No mask.\n      for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n        rgbaBuf[j] = 255;\n      }\n    }\n  }\n\n  undoPreblend(buffer, width, height) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        buffer instanceof Uint8ClampedArray,\n        'PDFImage.undoPreblend: Unsupported \"buffer\" type.'\n      );\n    }\n    const matte = this.smask?.matte;\n    if (!matte) {\n      return;\n    }\n    const matteRgb = this.colorSpace.getRgb(matte, 0);\n    const matteR = matteRgb[0];\n    const matteG = matteRgb[1];\n    const matteB = matteRgb[2];\n    const length = width * height * 4;\n    for (let i = 0; i < length; i += 4) {\n      const alpha = buffer[i + 3];\n      if (alpha === 0) {\n        // according formula we have to get Infinity in all components\n        // making it white (typical paper color) should be okay\n        buffer[i] = 255;\n        buffer[i + 1] = 255;\n        buffer[i + 2] = 255;\n        continue;\n      }\n      const k = 255 / alpha;\n      buffer[i] = (buffer[i] - matteR) * k + matteR;\n      buffer[i + 1] = (buffer[i + 1] - matteG) * k + matteG;\n      buffer[i + 2] = (buffer[i + 2] - matteB) * k + matteB;\n    }\n  }\n\n  async createImageData(forceRGBA = false, isOffscreenCanvasSupported = false) {\n    const drawWidth = this.drawWidth;\n    const drawHeight = this.drawHeight;\n    const imgData = {\n      width: drawWidth,\n      height: drawHeight,\n      interpolate: this.interpolate,\n      kind: 0,\n      data: null,\n      // Other fields are filled in below.\n    };\n\n    const numComps = this.numComps;\n    const originalWidth = this.width;\n    const originalHeight = this.height;\n    const bpc = this.bpc;\n\n    // Rows start at byte boundary.\n    const rowBytes = (originalWidth * numComps * bpc + 7) >> 3;\n    const mustBeResized =\n      isOffscreenCanvasSupported &&\n      ImageResizer.needsToBeResized(drawWidth, drawHeight);\n\n    if (!forceRGBA) {\n      // If it is a 1-bit-per-pixel grayscale (i.e. black-and-white) image\n      // without any complications, we pass a same-sized copy to the main\n      // thread rather than expanding by 32x to RGBA form. This saves *lots*\n      // of memory for many scanned documents. It's also much faster.\n      //\n      // Similarly, if it is a 24-bit-per pixel RGB image without any\n      // complications, we avoid expanding by 1.333x to RGBA form.\n      let kind;\n      if (this.colorSpace.name === \"DeviceGray\" && bpc === 1) {\n        kind = ImageKind.GRAYSCALE_1BPP;\n      } else if (\n        this.colorSpace.name === \"DeviceRGB\" &&\n        bpc === 8 &&\n        !this.needsDecode\n      ) {\n        kind = ImageKind.RGB_24BPP;\n      }\n      if (\n        kind &&\n        !this.smask &&\n        !this.mask &&\n        drawWidth === originalWidth &&\n        drawHeight === originalHeight\n      ) {\n        const data = this.getImageBytes(originalHeight * rowBytes, {});\n        if (isOffscreenCanvasSupported) {\n          if (mustBeResized) {\n            return ImageResizer.createImage(\n              {\n                data,\n                kind,\n                width: drawWidth,\n                height: drawHeight,\n                interpolate: this.interpolate,\n              },\n              this.needsDecode\n            );\n          }\n          return this.createBitmap(kind, originalWidth, originalHeight, data);\n        }\n        imgData.kind = kind;\n        imgData.data = data;\n\n        if (this.needsDecode) {\n          // Invert the buffer (which must be grayscale if we reached here).\n          assert(\n            kind === ImageKind.GRAYSCALE_1BPP,\n            \"PDFImage.createImageData: The image must be grayscale.\"\n          );\n          const buffer = imgData.data;\n          for (let i = 0, ii = buffer.length; i < ii; i++) {\n            buffer[i] ^= 0xff;\n          }\n        }\n        return imgData;\n      }\n      if (\n        this.image instanceof JpegStream &&\n        !this.smask &&\n        !this.mask &&\n        !this.needsDecode\n      ) {\n        let imageLength = originalHeight * rowBytes;\n        if (isOffscreenCanvasSupported && !mustBeResized) {\n          let isHandled = false;\n          switch (this.colorSpace.name) {\n            case \"DeviceGray\":\n              // Avoid truncating the image, since `JpegImage.getData`\n              // will expand the image data when `forceRGB === true`.\n              imageLength *= 4;\n              isHandled = true;\n              break;\n            case \"DeviceRGB\":\n              imageLength = (imageLength / 3) * 4;\n              isHandled = true;\n              break;\n            case \"DeviceCMYK\":\n              isHandled = true;\n              break;\n          }\n\n          if (isHandled) {\n            const rgba = this.getImageBytes(imageLength, {\n              drawWidth,\n              drawHeight,\n              forceRGBA: true,\n            });\n            return this.createBitmap(\n              ImageKind.RGBA_32BPP,\n              drawWidth,\n              drawHeight,\n              rgba\n            );\n          }\n        } else {\n          switch (this.colorSpace.name) {\n            case \"DeviceGray\":\n              imageLength *= 3;\n            /* falls through */\n            case \"DeviceRGB\":\n            case \"DeviceCMYK\":\n              imgData.kind = ImageKind.RGB_24BPP;\n              imgData.data = this.getImageBytes(imageLength, {\n                drawWidth,\n                drawHeight,\n                forceRGB: true,\n              });\n              if (mustBeResized) {\n                // The image is too big so we resize it.\n                return ImageResizer.createImage(imgData);\n              }\n              return imgData;\n          }\n        }\n      }\n    }\n\n    const imgArray = this.getImageBytes(originalHeight * rowBytes, {\n      internal: true,\n    });\n    // imgArray can be incomplete (e.g. after CCITT fax encoding).\n    const actualHeight =\n      0 | (((imgArray.length / rowBytes) * drawHeight) / originalHeight);\n\n    const comps = this.getComponents(imgArray);\n\n    // If opacity data is present, use RGBA_32BPP form. Otherwise, use the\n    // more compact RGB_24BPP form if allowable.\n    let alpha01, maybeUndoPreblend;\n\n    let canvas, ctx, canvasImgData, data;\n    if (isOffscreenCanvasSupported && !mustBeResized) {\n      canvas = new OffscreenCanvas(drawWidth, drawHeight);\n      ctx = canvas.getContext(\"2d\");\n      canvasImgData = ctx.createImageData(drawWidth, drawHeight);\n      data = canvasImgData.data;\n    }\n\n    imgData.kind = ImageKind.RGBA_32BPP;\n\n    if (!forceRGBA && !this.smask && !this.mask) {\n      if (!isOffscreenCanvasSupported || mustBeResized) {\n        imgData.kind = ImageKind.RGB_24BPP;\n        data = new Uint8ClampedArray(drawWidth * drawHeight * 3);\n        alpha01 = 0;\n      } else {\n        const arr = new Uint32Array(data.buffer);\n        arr.fill(FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff);\n        alpha01 = 1;\n      }\n      maybeUndoPreblend = false;\n    } else {\n      if (!isOffscreenCanvasSupported || mustBeResized) {\n        data = new Uint8ClampedArray(drawWidth * drawHeight * 4);\n      }\n\n      alpha01 = 1;\n      maybeUndoPreblend = true;\n\n      // Color key masking (opacity) must be performed before decoding.\n      this.fillOpacity(data, drawWidth, drawHeight, actualHeight, comps);\n    }\n\n    if (this.needsDecode) {\n      this.decodeBuffer(comps);\n    }\n    this.colorSpace.fillRgb(\n      data,\n      originalWidth,\n      originalHeight,\n      drawWidth,\n      drawHeight,\n      actualHeight,\n      bpc,\n      comps,\n      alpha01\n    );\n    if (maybeUndoPreblend) {\n      this.undoPreblend(data, drawWidth, actualHeight);\n    }\n\n    if (isOffscreenCanvasSupported && !mustBeResized) {\n      ctx.putImageData(canvasImgData, 0, 0);\n      const bitmap = canvas.transferToImageBitmap();\n\n      return {\n        data: null,\n        width: drawWidth,\n        height: drawHeight,\n        bitmap,\n        interpolate: this.interpolate,\n      };\n    }\n\n    imgData.data = data;\n    if (mustBeResized) {\n      return ImageResizer.createImage(imgData);\n    }\n    return imgData;\n  }\n\n  fillGrayBuffer(buffer) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        buffer instanceof Uint8ClampedArray,\n        'PDFImage.fillGrayBuffer: Unsupported \"buffer\" type.'\n      );\n    }\n    const numComps = this.numComps;\n    if (numComps !== 1) {\n      throw new FormatError(\n        `Reading gray scale from a color image: ${numComps}`\n      );\n    }\n\n    const width = this.width;\n    const height = this.height;\n    const bpc = this.bpc;\n\n    // rows start at byte boundary\n    const rowBytes = (width * numComps * bpc + 7) >> 3;\n    const imgArray = this.getImageBytes(height * rowBytes, { internal: true });\n\n    const comps = this.getComponents(imgArray);\n    let i, length;\n\n    if (bpc === 1) {\n      // inline decoding (= inversion) for 1 bpc images\n      length = width * height;\n      if (this.needsDecode) {\n        // invert and scale to {0, 255}\n        for (i = 0; i < length; ++i) {\n          buffer[i] = (comps[i] - 1) & 255;\n        }\n      } else {\n        // scale to {0, 255}\n        for (i = 0; i < length; ++i) {\n          buffer[i] = -comps[i] & 255;\n        }\n      }\n      return;\n    }\n\n    if (this.needsDecode) {\n      this.decodeBuffer(comps);\n    }\n    length = width * height;\n    // we aren't using a colorspace so we need to scale the value\n    const scale = 255 / ((1 << bpc) - 1);\n    for (i = 0; i < length; ++i) {\n      buffer[i] = scale * comps[i];\n    }\n  }\n\n  createBitmap(kind, width, height, src) {\n    const canvas = new OffscreenCanvas(width, height);\n    const ctx = canvas.getContext(\"2d\");\n    let imgData;\n    if (kind === ImageKind.RGBA_32BPP) {\n      imgData = new ImageData(src, width, height);\n    } else {\n      imgData = ctx.createImageData(width, height);\n      convertToRGBA({\n        kind,\n        src,\n        dest: new Uint32Array(imgData.data.buffer),\n        width,\n        height,\n        inverseDecode: this.needsDecode,\n      });\n    }\n    ctx.putImageData(imgData, 0, 0);\n    const bitmap = canvas.transferToImageBitmap();\n\n    return {\n      data: null,\n      width,\n      height,\n      bitmap,\n      interpolate: this.interpolate,\n    };\n  }\n\n  getImageBytes(\n    length,\n    {\n      drawWidth,\n      drawHeight,\n      forceRGBA = false,\n      forceRGB = false,\n      internal = false,\n    }\n  ) {\n    this.image.reset();\n    this.image.drawWidth = drawWidth || this.width;\n    this.image.drawHeight = drawHeight || this.height;\n    this.image.forceRGBA = !!forceRGBA;\n    this.image.forceRGB = !!forceRGB;\n    const imageBytes = this.image.getBytes(length);\n\n    // If imageBytes came from a DecodeStream, we're safe to transfer it\n    // (and thus detach its underlying buffer) because it will constitute\n    // the entire DecodeStream's data.  But if it came from a Stream, we\n    // need to copy it because it'll only be a portion of the Stream's\n    // data, and the rest will be read later on.\n    if (internal || this.image instanceof DecodeStream) {\n      return imageBytes;\n    }\n    assert(\n      imageBytes instanceof Uint8Array,\n      'PDFImage.getImageBytes: Unsupported \"imageBytes\" type.'\n    );\n    return new Uint8Array(imageBytes);\n  }\n}\n\nexport { PDFImage };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable no-var */\n\nimport {\n  AbortException,\n  assert,\n  CMapCompressionType,\n  FONT_IDENTITY_MATRIX,\n  FormatError,\n  IDENTITY_MATRIX,\n  info,\n  isArrayEqual,\n  normalizeUnicode,\n  OPS,\n  PromiseCapability,\n  shadow,\n  stringToPDFString,\n  TextRenderingMode,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport { CMapFactory, IdentityCMap } from \"./cmap.js\";\nimport { Cmd, Dict, EOF, isName, Name, Ref, RefSet } from \"./primitives.js\";\nimport { ErrorFont, Font } from \"./fonts.js\";\nimport {\n  getEncoding,\n  MacRomanEncoding,\n  StandardEncoding,\n  SymbolSetEncoding,\n  WinAnsiEncoding,\n  ZapfDingbatsEncoding,\n} from \"./encodings.js\";\nimport {\n  getFontNameToFileMap,\n  getSerifFonts,\n  getStandardFontName,\n  getStdFontMap,\n  getSymbolsFonts,\n  isKnownFontName,\n} from \"./standard_fonts.js\";\nimport { getTilingPatternIR, Pattern } from \"./pattern.js\";\nimport { getXfaFontDict, getXfaFontName } from \"./xfa_fonts.js\";\nimport { IdentityToUnicodeMap, ToUnicodeMap } from \"./to_unicode_map.js\";\nimport { isPDFFunction, PDFFunctionFactory } from \"./function.js\";\nimport { Lexer, Parser } from \"./parser.js\";\nimport {\n  LocalColorSpaceCache,\n  LocalGStateCache,\n  LocalImageCache,\n  LocalTilingPatternCache,\n  RegionalImageCache,\n} from \"./image_utils.js\";\nimport { NullStream, Stream } from \"./stream.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { bidi } from \"./bidi.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { FontFlags } from \"./fonts_utils.js\";\nimport { getFontSubstitution } from \"./font_substitutions.js\";\nimport { getGlyphsUnicode } from \"./glyphlist.js\";\nimport { getMetrics } from \"./metrics.js\";\nimport { getUnicodeForGlyph } from \"./unicode.js\";\nimport { ImageResizer } from \"./image_resizer.js\";\nimport { MurmurHash3_64 } from \"../shared/murmurhash3.js\";\nimport { OperatorList } from \"./operator_list.js\";\nimport { PDFImage } from \"./image.js\";\n\nconst DefaultPartialEvaluatorOptions = Object.freeze({\n  maxImageSize: -1,\n  disableFontFace: false,\n  ignoreErrors: false,\n  isEvalSupported: true,\n  isOffscreenCanvasSupported: false,\n  canvasMaxAreaInBytes: -1,\n  fontExtraProperties: false,\n  useSystemFonts: true,\n  cMapUrl: null,\n  standardFontDataUrl: null,\n});\n\nconst PatternType = {\n  TILING: 1,\n  SHADING: 2,\n};\n\n// Optionally avoid sending individual, or very few, text chunks to reduce\n// `postMessage` overhead with ReadableStream (see issue 13962).\n//\n// PLEASE NOTE: This value should *not* be too large (it's used as a lower limit\n// in `enqueueChunk`), since that would cause streaming of textContent to become\n// essentially useless in practice by sending all (or most) chunks at once.\n// Also, a too large value would (indirectly) affect the main-thread `textLayer`\n// building negatively by forcing all textContent to be handled at once, which\n// could easily end up hurting *overall* performance (e.g. rendering as well).\nconst TEXT_CHUNK_BATCH_SIZE = 10;\n\nconst deferred = Promise.resolve();\n\n// Convert PDF blend mode names to HTML5 blend mode names.\nfunction normalizeBlendMode(value, parsingArray = false) {\n  if (Array.isArray(value)) {\n    // Use the first *supported* BM value in the Array (fixes issue11279.pdf).\n    for (const val of value) {\n      const maybeBM = normalizeBlendMode(val, /* parsingArray = */ true);\n      if (maybeBM) {\n        return maybeBM;\n      }\n    }\n    warn(`Unsupported blend mode Array: ${value}`);\n    return \"source-over\";\n  }\n\n  if (!(value instanceof Name)) {\n    if (parsingArray) {\n      return null;\n    }\n    return \"source-over\";\n  }\n  switch (value.name) {\n    case \"Normal\":\n    case \"Compatible\":\n      return \"source-over\";\n    case \"Multiply\":\n      return \"multiply\";\n    case \"Screen\":\n      return \"screen\";\n    case \"Overlay\":\n      return \"overlay\";\n    case \"Darken\":\n      return \"darken\";\n    case \"Lighten\":\n      return \"lighten\";\n    case \"ColorDodge\":\n      return \"color-dodge\";\n    case \"ColorBurn\":\n      return \"color-burn\";\n    case \"HardLight\":\n      return \"hard-light\";\n    case \"SoftLight\":\n      return \"soft-light\";\n    case \"Difference\":\n      return \"difference\";\n    case \"Exclusion\":\n      return \"exclusion\";\n    case \"Hue\":\n      return \"hue\";\n    case \"Saturation\":\n      return \"saturation\";\n    case \"Color\":\n      return \"color\";\n    case \"Luminosity\":\n      return \"luminosity\";\n  }\n  if (parsingArray) {\n    return null;\n  }\n  warn(`Unsupported blend mode: ${value.name}`);\n  return \"source-over\";\n}\n\nfunction incrementCachedImageMaskCount(data) {\n  if (data.fn === OPS.paintImageMaskXObject && data.args[0]?.count > 0) {\n    data.args[0].count++;\n  }\n}\n\n// Trying to minimize Date.now() usage and check every 100 time.\nclass TimeSlotManager {\n  static TIME_SLOT_DURATION_MS = 20;\n\n  static CHECK_TIME_EVERY = 100;\n\n  constructor() {\n    this.reset();\n  }\n\n  check() {\n    if (++this.checked < TimeSlotManager.CHECK_TIME_EVERY) {\n      return false;\n    }\n    this.checked = 0;\n    return this.endTime <= Date.now();\n  }\n\n  reset() {\n    this.endTime = Date.now() + TimeSlotManager.TIME_SLOT_DURATION_MS;\n    this.checked = 0;\n  }\n}\n\nclass PartialEvaluator {\n  constructor({\n    xref,\n    handler,\n    pageIndex,\n    idFactory,\n    fontCache,\n    builtInCMapCache,\n    standardFontDataCache,\n    globalImageCache,\n    systemFontCache,\n    options = null,\n  }) {\n    this.xref = xref;\n    this.handler = handler;\n    this.pageIndex = pageIndex;\n    this.idFactory = idFactory;\n    this.fontCache = fontCache;\n    this.builtInCMapCache = builtInCMapCache;\n    this.standardFontDataCache = standardFontDataCache;\n    this.globalImageCache = globalImageCache;\n    this.systemFontCache = systemFontCache;\n    this.options = options || DefaultPartialEvaluatorOptions;\n    this.parsingType3Font = false;\n\n    this._regionalImageCache = new RegionalImageCache();\n    this._fetchBuiltInCMapBound = this.fetchBuiltInCMap.bind(this);\n    ImageResizer.setMaxArea(this.options.canvasMaxAreaInBytes);\n  }\n\n  /**\n   * Since Functions are only cached (locally) by reference, we can share one\n   * `PDFFunctionFactory` instance within this `PartialEvaluator` instance.\n   */\n  get _pdfFunctionFactory() {\n    const pdfFunctionFactory = new PDFFunctionFactory({\n      xref: this.xref,\n      isEvalSupported: this.options.isEvalSupported,\n    });\n    return shadow(this, \"_pdfFunctionFactory\", pdfFunctionFactory);\n  }\n\n  clone(newOptions = null) {\n    const newEvaluator = Object.create(this);\n    newEvaluator.options = Object.assign(\n      Object.create(null),\n      this.options,\n      newOptions\n    );\n    return newEvaluator;\n  }\n\n  hasBlendModes(resources, nonBlendModesSet) {\n    if (!(resources instanceof Dict)) {\n      return false;\n    }\n    if (resources.objId && nonBlendModesSet.has(resources.objId)) {\n      return false;\n    }\n\n    const processed = new RefSet(nonBlendModesSet);\n    if (resources.objId) {\n      processed.put(resources.objId);\n    }\n\n    const nodes = [resources],\n      xref = this.xref;\n    while (nodes.length) {\n      const node = nodes.shift();\n      // First check the current resources for blend modes.\n      const graphicStates = node.get(\"ExtGState\");\n      if (graphicStates instanceof Dict) {\n        for (let graphicState of graphicStates.getRawValues()) {\n          if (graphicState instanceof Ref) {\n            if (processed.has(graphicState)) {\n              continue; // The ExtGState has already been processed.\n            }\n            try {\n              graphicState = xref.fetch(graphicState);\n            } catch (ex) {\n              // Avoid parsing a corrupt ExtGState more than once.\n              processed.put(graphicState);\n\n              info(`hasBlendModes - ignoring ExtGState: \"${ex}\".`);\n              continue;\n            }\n          }\n          if (!(graphicState instanceof Dict)) {\n            continue;\n          }\n          if (graphicState.objId) {\n            processed.put(graphicState.objId);\n          }\n\n          const bm = graphicState.get(\"BM\");\n          if (bm instanceof Name) {\n            if (bm.name !== \"Normal\") {\n              return true;\n            }\n            continue;\n          }\n          if (bm !== undefined && Array.isArray(bm)) {\n            for (const element of bm) {\n              if (element instanceof Name && element.name !== \"Normal\") {\n                return true;\n              }\n            }\n          }\n        }\n      }\n      // Descend into the XObjects to look for more resources and blend modes.\n      const xObjects = node.get(\"XObject\");\n      if (!(xObjects instanceof Dict)) {\n        continue;\n      }\n      for (let xObject of xObjects.getRawValues()) {\n        if (xObject instanceof Ref) {\n          if (processed.has(xObject)) {\n            // The XObject has already been processed, and by avoiding a\n            // redundant `xref.fetch` we can *significantly* reduce the load\n            // time for badly generated PDF files (fixes issue6961.pdf).\n            continue;\n          }\n          try {\n            xObject = xref.fetch(xObject);\n          } catch (ex) {\n            // Avoid parsing a corrupt XObject more than once.\n            processed.put(xObject);\n\n            info(`hasBlendModes - ignoring XObject: \"${ex}\".`);\n            continue;\n          }\n        }\n        if (!(xObject instanceof BaseStream)) {\n          continue;\n        }\n        if (xObject.dict.objId) {\n          processed.put(xObject.dict.objId);\n        }\n        const xResources = xObject.dict.get(\"Resources\");\n        if (!(xResources instanceof Dict)) {\n          continue;\n        }\n        // Checking objId to detect an infinite loop.\n        if (xResources.objId && processed.has(xResources.objId)) {\n          continue;\n        }\n\n        nodes.push(xResources);\n        if (xResources.objId) {\n          processed.put(xResources.objId);\n        }\n      }\n    }\n\n    // When no blend modes exist, there's no need re-fetch/re-parse any of the\n    // processed `Ref`s again for subsequent pages. This helps reduce redundant\n    // `XRef.fetch` calls for some documents (e.g. issue6961.pdf).\n    for (const ref of processed) {\n      nonBlendModesSet.put(ref);\n    }\n    return false;\n  }\n\n  async fetchBuiltInCMap(name) {\n    const cachedData = this.builtInCMapCache.get(name);\n    if (cachedData) {\n      return cachedData;\n    }\n    let data;\n\n    if (this.options.cMapUrl !== null) {\n      // Only compressed CMaps are (currently) supported here.\n      const url = `${this.options.cMapUrl}${name}.bcmap`;\n      const response = await fetch(url);\n      if (!response.ok) {\n        throw new Error(\n          `fetchBuiltInCMap: failed to fetch file \"${url}\" with \"${response.statusText}\".`\n        );\n      }\n      data = {\n        cMapData: new Uint8Array(await response.arrayBuffer()),\n        compressionType: CMapCompressionType.BINARY,\n      };\n    } else {\n      // Get the data on the main-thread instead.\n      data = await this.handler.sendWithPromise(\"FetchBuiltInCMap\", { name });\n    }\n\n    if (data.compressionType !== CMapCompressionType.NONE) {\n      // Given the size of uncompressed CMaps, only cache compressed ones.\n      this.builtInCMapCache.set(name, data);\n    }\n    return data;\n  }\n\n  async fetchStandardFontData(name) {\n    const cachedData = this.standardFontDataCache.get(name);\n    if (cachedData) {\n      return new Stream(cachedData);\n    }\n\n    // The symbol fonts are not consistent across platforms, always load the\n    // standard font data for them.\n    if (\n      this.options.useSystemFonts &&\n      name !== \"Symbol\" &&\n      name !== \"ZapfDingbats\"\n    ) {\n      return null;\n    }\n\n    const standardFontNameToFileName = getFontNameToFileMap(),\n      filename = standardFontNameToFileName[name];\n    let data;\n\n    if (this.options.standardFontDataUrl !== null) {\n      const url = `${this.options.standardFontDataUrl}${filename}`;\n      const response = await fetch(url);\n      if (!response.ok) {\n        warn(\n          `fetchStandardFontData: failed to fetch file \"${url}\" with \"${response.statusText}\".`\n        );\n      } else {\n        data = new Uint8Array(await response.arrayBuffer());\n      }\n    } else {\n      // Get the data on the main-thread instead.\n      try {\n        data = await this.handler.sendWithPromise(\"FetchStandardFontData\", {\n          filename,\n        });\n      } catch (e) {\n        warn(\n          `fetchStandardFontData: failed to fetch file \"${filename}\" with \"${e}\".`\n        );\n      }\n    }\n\n    if (!data) {\n      return null;\n    }\n    // Cache the \"raw\" standard font data, to avoid fetching it repeatedly\n    // (see e.g. issue 11399).\n    this.standardFontDataCache.set(name, data);\n\n    return new Stream(data);\n  }\n\n  async buildFormXObject(\n    resources,\n    xobj,\n    smask,\n    operatorList,\n    task,\n    initialState,\n    localColorSpaceCache\n  ) {\n    const dict = xobj.dict;\n    const matrix = dict.getArray(\"Matrix\");\n    let bbox = dict.getArray(\"BBox\");\n    bbox =\n      Array.isArray(bbox) && bbox.length === 4\n        ? Util.normalizeRect(bbox)\n        : null;\n\n    let optionalContent, groupOptions;\n    if (dict.has(\"OC\")) {\n      optionalContent = await this.parseMarkedContentProps(\n        dict.get(\"OC\"),\n        resources\n      );\n    }\n    if (optionalContent !== undefined) {\n      operatorList.addOp(OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n    }\n    const group = dict.get(\"Group\");\n    if (group) {\n      groupOptions = {\n        matrix,\n        bbox,\n        smask,\n        isolated: false,\n        knockout: false,\n      };\n\n      const groupSubtype = group.get(\"S\");\n      let colorSpace = null;\n      if (isName(groupSubtype, \"Transparency\")) {\n        groupOptions.isolated = group.get(\"I\") || false;\n        groupOptions.knockout = group.get(\"K\") || false;\n        if (group.has(\"CS\")) {\n          const cs = group.getRaw(\"CS\");\n\n          const cachedColorSpace = ColorSpace.getCached(\n            cs,\n            this.xref,\n            localColorSpaceCache\n          );\n          if (cachedColorSpace) {\n            colorSpace = cachedColorSpace;\n          } else {\n            colorSpace = await this.parseColorSpace({\n              cs,\n              resources,\n              localColorSpaceCache,\n            });\n          }\n        }\n      }\n\n      if (smask?.backdrop) {\n        colorSpace ||= ColorSpace.singletons.rgb;\n        smask.backdrop = colorSpace.getRgb(smask.backdrop, 0);\n      }\n\n      operatorList.addOp(OPS.beginGroup, [groupOptions]);\n    }\n\n    // If it's a group, a new canvas will be created that is the size of the\n    // bounding box and translated to the correct position so we don't need to\n    // apply the bounding box to it.\n    const args = group ? [matrix, null] : [matrix, bbox];\n    operatorList.addOp(OPS.paintFormXObjectBegin, args);\n\n    return this.getOperatorList({\n      stream: xobj,\n      task,\n      resources: dict.get(\"Resources\") || resources,\n      operatorList,\n      initialState,\n    }).then(function () {\n      operatorList.addOp(OPS.paintFormXObjectEnd, []);\n\n      if (group) {\n        operatorList.addOp(OPS.endGroup, [groupOptions]);\n      }\n\n      if (optionalContent !== undefined) {\n        operatorList.addOp(OPS.endMarkedContent, []);\n      }\n    });\n  }\n\n  _sendImgData(objId, imgData, cacheGlobally = false) {\n    if (\n      (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n      imgData\n    ) {\n      assert(Number.isInteger(imgData.dataLen), \"Expected dataLen to be set.\");\n    }\n    const transfers = imgData ? [imgData.bitmap || imgData.data.buffer] : null;\n\n    if (this.parsingType3Font || cacheGlobally) {\n      return this.handler.send(\n        \"commonobj\",\n        [objId, \"Image\", imgData],\n        transfers\n      );\n    }\n    return this.handler.send(\n      \"obj\",\n      [objId, this.pageIndex, \"Image\", imgData],\n      transfers\n    );\n  }\n\n  async buildPaintImageXObject({\n    resources,\n    image,\n    isInline = false,\n    operatorList,\n    cacheKey,\n    localImageCache,\n    localColorSpaceCache,\n  }) {\n    const dict = image.dict;\n    const imageRef = dict.objId;\n    const w = dict.get(\"W\", \"Width\");\n    const h = dict.get(\"H\", \"Height\");\n\n    if (!(w && typeof w === \"number\") || !(h && typeof h === \"number\")) {\n      warn(\"Image dimensions are missing, or not numbers.\");\n      return;\n    }\n    const maxImageSize = this.options.maxImageSize;\n    if (maxImageSize !== -1 && w * h > maxImageSize) {\n      const msg = \"Image exceeded maximum allowed size and was removed.\";\n\n      if (this.options.ignoreErrors) {\n        warn(msg);\n        return;\n      }\n      throw new Error(msg);\n    }\n\n    let optionalContent;\n    if (dict.has(\"OC\")) {\n      optionalContent = await this.parseMarkedContentProps(\n        dict.get(\"OC\"),\n        resources\n      );\n    }\n\n    const imageMask = dict.get(\"IM\", \"ImageMask\") || false;\n    let imgData, args;\n    if (imageMask) {\n      // This depends on a tmpCanvas being filled with the\n      // current fillStyle, such that processing the pixel\n      // data can't be done here. Instead of creating a\n      // complete PDFImage, only read the information needed\n      // for later.\n      const interpolate = dict.get(\"I\", \"Interpolate\");\n      const bitStrideLength = (w + 7) >> 3;\n      const imgArray = image.getBytes(bitStrideLength * h);\n      const decode = dict.getArray(\"D\", \"Decode\");\n\n      if (this.parsingType3Font) {\n        imgData = PDFImage.createRawMask({\n          imgArray,\n          width: w,\n          height: h,\n          imageIsFromDecodeStream: image instanceof DecodeStream,\n          inverseDecode: decode?.[0] > 0,\n          interpolate,\n        });\n\n        imgData.cached = !!cacheKey;\n        args = [imgData];\n\n        operatorList.addImageOps(\n          OPS.paintImageMaskXObject,\n          args,\n          optionalContent\n        );\n\n        if (cacheKey) {\n          const cacheData = {\n            fn: OPS.paintImageMaskXObject,\n            args,\n            optionalContent,\n          };\n          localImageCache.set(cacheKey, imageRef, cacheData);\n\n          if (imageRef) {\n            this._regionalImageCache.set(\n              /* name = */ null,\n              imageRef,\n              cacheData\n            );\n          }\n        }\n        return;\n      }\n\n      imgData = await PDFImage.createMask({\n        imgArray,\n        width: w,\n        height: h,\n        imageIsFromDecodeStream: image instanceof DecodeStream,\n        inverseDecode: decode?.[0] > 0,\n        interpolate,\n        isOffscreenCanvasSupported: this.options.isOffscreenCanvasSupported,\n      });\n\n      if (imgData.isSingleOpaquePixel) {\n        // Handles special case of mainly LaTeX documents which use image\n        // masks to draw lines with the current fill style.\n        operatorList.addImageOps(\n          OPS.paintSolidColorImageMask,\n          [],\n          optionalContent\n        );\n\n        if (cacheKey) {\n          const cacheData = {\n            fn: OPS.paintSolidColorImageMask,\n            args: [],\n            optionalContent,\n          };\n          localImageCache.set(cacheKey, imageRef, cacheData);\n\n          if (imageRef) {\n            this._regionalImageCache.set(\n              /* name = */ null,\n              imageRef,\n              cacheData\n            );\n          }\n        }\n        return;\n      }\n\n      const objId = `mask_${this.idFactory.createObjId()}`;\n      operatorList.addDependency(objId);\n\n      imgData.dataLen = imgData.bitmap\n        ? imgData.width * imgData.height * 4\n        : imgData.data.length;\n      this._sendImgData(objId, imgData);\n\n      args = [\n        {\n          data: objId,\n          width: imgData.width,\n          height: imgData.height,\n          interpolate: imgData.interpolate,\n          count: 1,\n        },\n      ];\n      operatorList.addImageOps(\n        OPS.paintImageMaskXObject,\n        args,\n        optionalContent\n      );\n\n      if (cacheKey) {\n        const cacheData = {\n          fn: OPS.paintImageMaskXObject,\n          args,\n          optionalContent,\n        };\n        localImageCache.set(cacheKey, imageRef, cacheData);\n\n        if (imageRef) {\n          this._regionalImageCache.set(/* name = */ null, imageRef, cacheData);\n        }\n      }\n      return;\n    }\n\n    const SMALL_IMAGE_DIMENSIONS = 200;\n    // Inlining small images into the queue as RGB data\n    if (\n      isInline &&\n      !dict.has(\"SMask\") &&\n      !dict.has(\"Mask\") &&\n      w + h < SMALL_IMAGE_DIMENSIONS\n    ) {\n      const imageObj = new PDFImage({\n        xref: this.xref,\n        res: resources,\n        image,\n        isInline,\n        pdfFunctionFactory: this._pdfFunctionFactory,\n        localColorSpaceCache,\n      });\n      // We force the use of RGBA_32BPP images here, because we can't handle\n      // any other kind.\n      imgData = await imageObj.createImageData(\n        /* forceRGBA = */ true,\n        /* isOffscreenCanvasSupported = */ false\n      );\n      operatorList.isOffscreenCanvasSupported =\n        this.options.isOffscreenCanvasSupported;\n      operatorList.addImageOps(\n        OPS.paintInlineImageXObject,\n        [imgData],\n        optionalContent\n      );\n      return;\n    }\n\n    // If there is no imageMask, create the PDFImage and a lot\n    // of image processing can be done here.\n    let objId = `img_${this.idFactory.createObjId()}`,\n      cacheGlobally = false;\n\n    if (this.parsingType3Font) {\n      objId = `${this.idFactory.getDocId()}_type3_${objId}`;\n    } else if (cacheKey && imageRef) {\n      cacheGlobally = this.globalImageCache.shouldCache(\n        imageRef,\n        this.pageIndex\n      );\n\n      if (cacheGlobally) {\n        assert(!isInline, \"Cannot cache an inline image globally.\");\n\n        objId = `${this.idFactory.getDocId()}_${objId}`;\n      }\n    }\n\n    // Ensure that the dependency is added before the image is decoded.\n    operatorList.addDependency(objId);\n    args = [objId, w, h];\n    operatorList.addImageOps(OPS.paintImageXObject, args, optionalContent);\n\n    // For large images, at least 500x500 in size, that we'll cache globally\n    // check if the image is still cached locally on the main-thread to avoid\n    // having to re-parse the image (since that can be slow).\n    if (cacheGlobally && w * h > 250000) {\n      const localLength = await this.handler.sendWithPromise(\"commonobj\", [\n        objId,\n        \"CopyLocalImage\",\n        { imageRef },\n      ]);\n\n      if (localLength) {\n        this.globalImageCache.setData(imageRef, {\n          objId,\n          fn: OPS.paintImageXObject,\n          args,\n          optionalContent,\n          byteSize: 0, // Temporary entry, to avoid `setData` returning early.\n        });\n        this.globalImageCache.addByteSize(imageRef, localLength);\n        return;\n      }\n    }\n\n    PDFImage.buildImage({\n      xref: this.xref,\n      res: resources,\n      image,\n      isInline,\n      pdfFunctionFactory: this._pdfFunctionFactory,\n      localColorSpaceCache,\n    })\n      .then(async imageObj => {\n        imgData = await imageObj.createImageData(\n          /* forceRGBA = */ false,\n          /* isOffscreenCanvasSupported = */ this.options\n            .isOffscreenCanvasSupported\n        );\n        imgData.dataLen = imgData.bitmap\n          ? imgData.width * imgData.height * 4\n          : imgData.data.length;\n        imgData.ref = imageRef;\n\n        if (cacheGlobally) {\n          this.globalImageCache.addByteSize(imageRef, imgData.dataLen);\n        }\n        return this._sendImgData(objId, imgData, cacheGlobally);\n      })\n      .catch(reason => {\n        warn(`Unable to decode image \"${objId}\": \"${reason}\".`);\n\n        return this._sendImgData(objId, /* imgData = */ null, cacheGlobally);\n      });\n\n    if (cacheKey) {\n      const cacheData = {\n        fn: OPS.paintImageXObject,\n        args,\n        optionalContent,\n      };\n      localImageCache.set(cacheKey, imageRef, cacheData);\n\n      if (imageRef) {\n        this._regionalImageCache.set(/* name = */ null, imageRef, cacheData);\n\n        if (cacheGlobally) {\n          this.globalImageCache.setData(imageRef, {\n            objId,\n            fn: OPS.paintImageXObject,\n            args,\n            optionalContent,\n            byteSize: 0, // Temporary entry, note `addByteSize` above.\n          });\n        }\n      }\n    }\n  }\n\n  handleSMask(\n    smask,\n    resources,\n    operatorList,\n    task,\n    stateManager,\n    localColorSpaceCache\n  ) {\n    const smaskContent = smask.get(\"G\");\n    const smaskOptions = {\n      subtype: smask.get(\"S\").name,\n      backdrop: smask.get(\"BC\"),\n    };\n\n    // The SMask might have a alpha/luminosity value transfer function --\n    // we will build a map of integer values in range 0..255 to be fast.\n    const transferObj = smask.get(\"TR\");\n    if (isPDFFunction(transferObj)) {\n      const transferFn = this._pdfFunctionFactory.create(transferObj);\n      const transferMap = new Uint8Array(256);\n      const tmp = new Float32Array(1);\n      for (let i = 0; i < 256; i++) {\n        tmp[0] = i / 255;\n        transferFn(tmp, 0, tmp, 0);\n        transferMap[i] = (tmp[0] * 255) | 0;\n      }\n      smaskOptions.transferMap = transferMap;\n    }\n\n    return this.buildFormXObject(\n      resources,\n      smaskContent,\n      smaskOptions,\n      operatorList,\n      task,\n      stateManager.state.clone(),\n      localColorSpaceCache\n    );\n  }\n\n  handleTransferFunction(tr) {\n    let transferArray;\n    if (Array.isArray(tr)) {\n      transferArray = tr;\n    } else if (isPDFFunction(tr)) {\n      transferArray = [tr];\n    } else {\n      return null; // Not a valid transfer function entry.\n    }\n\n    const transferMaps = [];\n    let numFns = 0,\n      numEffectfulFns = 0;\n    for (const entry of transferArray) {\n      const transferObj = this.xref.fetchIfRef(entry);\n      numFns++;\n\n      if (isName(transferObj, \"Identity\")) {\n        transferMaps.push(null);\n        continue;\n      } else if (!isPDFFunction(transferObj)) {\n        return null; // Not a valid transfer function object.\n      }\n\n      const transferFn = this._pdfFunctionFactory.create(transferObj);\n      const transferMap = new Uint8Array(256),\n        tmp = new Float32Array(1);\n      for (let j = 0; j < 256; j++) {\n        tmp[0] = j / 255;\n        transferFn(tmp, 0, tmp, 0);\n        transferMap[j] = (tmp[0] * 255) | 0;\n      }\n      transferMaps.push(transferMap);\n      numEffectfulFns++;\n    }\n\n    if (!(numFns === 1 || numFns === 4)) {\n      return null; // Only 1 or 4 functions are supported, by the specification.\n    }\n    if (numEffectfulFns === 0) {\n      return null; // Only /Identity transfer functions found, which are no-ops.\n    }\n    return transferMaps;\n  }\n\n  handleTilingType(\n    fn,\n    color,\n    resources,\n    pattern,\n    patternDict,\n    operatorList,\n    task,\n    localTilingPatternCache\n  ) {\n    // Create an IR of the pattern code.\n    const tilingOpList = new OperatorList();\n    // Merge the available resources, to prevent issues when the patternDict\n    // is missing some /Resources entries (fixes issue6541.pdf).\n    const patternResources = Dict.merge({\n      xref: this.xref,\n      dictArray: [patternDict.get(\"Resources\"), resources],\n    });\n\n    return this.getOperatorList({\n      stream: pattern,\n      task,\n      resources: patternResources,\n      operatorList: tilingOpList,\n    })\n      .then(function () {\n        const operatorListIR = tilingOpList.getIR();\n        const tilingPatternIR = getTilingPatternIR(\n          operatorListIR,\n          patternDict,\n          color\n        );\n        // Add the dependencies to the parent operator list so they are\n        // resolved before the sub operator list is executed synchronously.\n        operatorList.addDependencies(tilingOpList.dependencies);\n        operatorList.addOp(fn, tilingPatternIR);\n\n        if (patternDict.objId) {\n          localTilingPatternCache.set(/* name = */ null, patternDict.objId, {\n            operatorListIR,\n            dict: patternDict,\n          });\n        }\n      })\n      .catch(reason => {\n        if (reason instanceof AbortException) {\n          return;\n        }\n        if (this.options.ignoreErrors) {\n          warn(`handleTilingType - ignoring pattern: \"${reason}\".`);\n          return;\n        }\n        throw reason;\n      });\n  }\n\n  handleSetFont(\n    resources,\n    fontArgs,\n    fontRef,\n    operatorList,\n    task,\n    state,\n    fallbackFontDict = null,\n    cssFontInfo = null\n  ) {\n    const fontName = fontArgs?.[0] instanceof Name ? fontArgs[0].name : null;\n\n    return this.loadFont(\n      fontName,\n      fontRef,\n      resources,\n      fallbackFontDict,\n      cssFontInfo\n    )\n      .then(translated => {\n        if (!translated.font.isType3Font) {\n          return translated;\n        }\n        return translated\n          .loadType3Data(this, resources, task)\n          .then(function () {\n            // Add the dependencies to the parent operatorList so they are\n            // resolved before Type3 operatorLists are executed synchronously.\n            operatorList.addDependencies(translated.type3Dependencies);\n\n            return translated;\n          })\n          .catch(reason => {\n            return new TranslatedFont({\n              loadedName: \"g_font_error\",\n              font: new ErrorFont(`Type3 font load error: ${reason}`),\n              dict: translated.font,\n              evaluatorOptions: this.options,\n            });\n          });\n      })\n      .then(translated => {\n        state.font = translated.font;\n        translated.send(this.handler);\n        return translated.loadedName;\n      });\n  }\n\n  handleText(chars, state) {\n    const font = state.font;\n    const glyphs = font.charsToGlyphs(chars);\n\n    if (font.data) {\n      const isAddToPathSet = !!(\n        state.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG\n      );\n      if (\n        isAddToPathSet ||\n        state.fillColorSpace.name === \"Pattern\" ||\n        font.disableFontFace ||\n        this.options.disableFontFace\n      ) {\n        PartialEvaluator.buildFontPaths(\n          font,\n          glyphs,\n          this.handler,\n          this.options\n        );\n      }\n    }\n    return glyphs;\n  }\n\n  ensureStateFont(state) {\n    if (state.font) {\n      return;\n    }\n    const reason = new FormatError(\n      \"Missing setFont (Tf) operator before text rendering operator.\"\n    );\n\n    if (this.options.ignoreErrors) {\n      warn(`ensureStateFont: \"${reason}\".`);\n      return;\n    }\n    throw reason;\n  }\n\n  async setGState({\n    resources,\n    gState,\n    operatorList,\n    cacheKey,\n    task,\n    stateManager,\n    localGStateCache,\n    localColorSpaceCache,\n  }) {\n    const gStateRef = gState.objId;\n    let isSimpleGState = true;\n    // This array holds the converted/processed state data.\n    const gStateObj = [];\n    let promise = Promise.resolve();\n    for (const key of gState.getKeys()) {\n      const value = gState.get(key);\n      switch (key) {\n        case \"Type\":\n          break;\n        case \"LW\":\n        case \"LC\":\n        case \"LJ\":\n        case \"ML\":\n        case \"D\":\n        case \"RI\":\n        case \"FL\":\n        case \"CA\":\n        case \"ca\":\n          gStateObj.push([key, value]);\n          break;\n        case \"Font\":\n          isSimpleGState = false;\n\n          promise = promise.then(() => {\n            return this.handleSetFont(\n              resources,\n              null,\n              value[0],\n              operatorList,\n              task,\n              stateManager.state\n            ).then(function (loadedName) {\n              operatorList.addDependency(loadedName);\n              gStateObj.push([key, [loadedName, value[1]]]);\n            });\n          });\n          break;\n        case \"BM\":\n          gStateObj.push([key, normalizeBlendMode(value)]);\n          break;\n        case \"SMask\":\n          if (isName(value, \"None\")) {\n            gStateObj.push([key, false]);\n            break;\n          }\n          if (value instanceof Dict) {\n            isSimpleGState = false;\n\n            promise = promise.then(() => {\n              return this.handleSMask(\n                value,\n                resources,\n                operatorList,\n                task,\n                stateManager,\n                localColorSpaceCache\n              );\n            });\n            gStateObj.push([key, true]);\n          } else {\n            warn(\"Unsupported SMask type\");\n          }\n          break;\n        case \"TR\":\n          const transferMaps = this.handleTransferFunction(value);\n          gStateObj.push([key, transferMaps]);\n          break;\n        // Only generate info log messages for the following since\n        // they are unlikely to have a big impact on the rendering.\n        case \"OP\":\n        case \"op\":\n        case \"OPM\":\n        case \"BG\":\n        case \"BG2\":\n        case \"UCR\":\n        case \"UCR2\":\n        case \"TR2\":\n        case \"HT\":\n        case \"SM\":\n        case \"SA\":\n        case \"AIS\":\n        case \"TK\":\n          // TODO implement these operators.\n          info(\"graphic state operator \" + key);\n          break;\n        default:\n          info(\"Unknown graphic state operator \" + key);\n          break;\n      }\n    }\n    return promise.then(function () {\n      if (gStateObj.length > 0) {\n        operatorList.addOp(OPS.setGState, [gStateObj]);\n      }\n\n      if (isSimpleGState) {\n        localGStateCache.set(cacheKey, gStateRef, gStateObj);\n      }\n    });\n  }\n\n  loadFont(\n    fontName,\n    font,\n    resources,\n    fallbackFontDict = null,\n    cssFontInfo = null\n  ) {\n    const errorFont = async () => {\n      return new TranslatedFont({\n        loadedName: \"g_font_error\",\n        font: new ErrorFont(`Font \"${fontName}\" is not available.`),\n        dict: font,\n        evaluatorOptions: this.options,\n      });\n    };\n\n    let fontRef;\n    if (font) {\n      // Loading by ref.\n      if (font instanceof Ref) {\n        fontRef = font;\n      }\n    } else {\n      // Loading by name.\n      const fontRes = resources.get(\"Font\");\n      if (fontRes) {\n        fontRef = fontRes.getRaw(fontName);\n      }\n    }\n    if (fontRef) {\n      if (this.parsingType3Font && this.type3FontRefs.has(fontRef)) {\n        return errorFont();\n      }\n\n      if (this.fontCache.has(fontRef)) {\n        return this.fontCache.get(fontRef);\n      }\n\n      font = this.xref.fetchIfRef(fontRef);\n    }\n\n    if (!(font instanceof Dict)) {\n      if (!this.options.ignoreErrors && !this.parsingType3Font) {\n        warn(`Font \"${fontName}\" is not available.`);\n        return errorFont();\n      }\n      warn(\n        `Font \"${fontName}\" is not available -- attempting to fallback to a default font.`\n      );\n\n      // Falling back to a default font to avoid completely broken rendering,\n      // but note that there're no guarantees that things will look \"correct\".\n      font = fallbackFontDict || PartialEvaluator.fallbackFontDict;\n    }\n\n    // We are holding `font.cacheKey` references only for `fontRef`s that\n    // are not actually `Ref`s, but rather `Dict`s. See explanation below.\n    if (font.cacheKey && this.fontCache.has(font.cacheKey)) {\n      return this.fontCache.get(font.cacheKey);\n    }\n\n    const fontCapability = new PromiseCapability();\n\n    let preEvaluatedFont;\n    try {\n      preEvaluatedFont = this.preEvaluateFont(font);\n      preEvaluatedFont.cssFontInfo = cssFontInfo;\n    } catch (reason) {\n      warn(`loadFont - preEvaluateFont failed: \"${reason}\".`);\n      return errorFont();\n    }\n    const { descriptor, hash } = preEvaluatedFont;\n\n    const fontRefIsRef = fontRef instanceof Ref;\n    let fontID;\n\n    if (hash && descriptor instanceof Dict) {\n      const fontAliases = (descriptor.fontAliases ||= Object.create(null));\n\n      if (fontAliases[hash]) {\n        const aliasFontRef = fontAliases[hash].aliasRef;\n        if (fontRefIsRef && aliasFontRef && this.fontCache.has(aliasFontRef)) {\n          this.fontCache.putAlias(fontRef, aliasFontRef);\n          return this.fontCache.get(fontRef);\n        }\n      } else {\n        fontAliases[hash] = {\n          fontID: this.idFactory.createFontId(),\n        };\n      }\n\n      if (fontRefIsRef) {\n        fontAliases[hash].aliasRef = fontRef;\n      }\n      fontID = fontAliases[hash].fontID;\n    } else {\n      fontID = this.idFactory.createFontId();\n    }\n    assert(\n      fontID?.startsWith(\"f\"),\n      'The \"fontID\" must be (correctly) defined.'\n    );\n\n    // Workaround for bad PDF generators that reference fonts incorrectly,\n    // where `fontRef` is a `Dict` rather than a `Ref` (fixes bug946506.pdf).\n    // In this case we cannot put the font into `this.fontCache` (which is\n    // a `RefSetCache`), since it's not possible to use a `Dict` as a key.\n    //\n    // However, if we don't cache the font it's not possible to remove it\n    // when `cleanup` is triggered from the API, which causes issues on\n    // subsequent rendering operations (see issue7403.pdf) and would force us\n    // to unnecessarily load the same fonts over and over.\n    //\n    // Instead, we cheat a bit by using a modified `fontID` as a key in\n    // `this.fontCache`, to allow the font to be cached.\n    // NOTE: This works because `RefSetCache` calls `toString()` on provided\n    //       keys. Also, since `fontRef` is used when getting cached fonts,\n    //       we'll not accidentally match fonts cached with the `fontID`.\n    if (fontRefIsRef) {\n      this.fontCache.put(fontRef, fontCapability.promise);\n    } else {\n      font.cacheKey = `cacheKey_${fontID}`;\n      this.fontCache.put(font.cacheKey, fontCapability.promise);\n    }\n\n    // Keep track of each font we translated so the caller can\n    // load them asynchronously before calling display on a page.\n    font.loadedName = `${this.idFactory.getDocId()}_${fontID}`;\n\n    this.translateFont(preEvaluatedFont)\n      .then(translatedFont => {\n        fontCapability.resolve(\n          new TranslatedFont({\n            loadedName: font.loadedName,\n            font: translatedFont,\n            dict: font,\n            evaluatorOptions: this.options,\n          })\n        );\n      })\n      .catch(reason => {\n        // TODO fontCapability.reject?\n        warn(`loadFont - translateFont failed: \"${reason}\".`);\n\n        fontCapability.resolve(\n          new TranslatedFont({\n            loadedName: font.loadedName,\n            font: new ErrorFont(\n              reason instanceof Error ? reason.message : reason\n            ),\n            dict: font,\n            evaluatorOptions: this.options,\n          })\n        );\n      });\n    return fontCapability.promise;\n  }\n\n  buildPath(operatorList, fn, args, parsingText = false) {\n    const lastIndex = operatorList.length - 1;\n    if (!args) {\n      args = [];\n    }\n    if (\n      lastIndex < 0 ||\n      operatorList.fnArray[lastIndex] !== OPS.constructPath\n    ) {\n      // Handle corrupt PDF documents that contains path operators inside of\n      // text objects, which may shift subsequent text, by enclosing the path\n      // operator in save/restore operators (fixes issue10542_reduced.pdf).\n      //\n      // Note that this will effectively disable the optimization in the\n      // `else` branch below, but given that this type of corruption is\n      // *extremely* rare that shouldn't really matter much in practice.\n      if (parsingText) {\n        warn(`Encountered path operator \"${fn}\" inside of a text object.`);\n        operatorList.addOp(OPS.save, null);\n      }\n\n      let minMax;\n      switch (fn) {\n        case OPS.rectangle:\n          const x = args[0] + args[2];\n          const y = args[1] + args[3];\n          minMax = [\n            Math.min(args[0], x),\n            Math.max(args[0], x),\n            Math.min(args[1], y),\n            Math.max(args[1], y),\n          ];\n          break;\n        case OPS.moveTo:\n        case OPS.lineTo:\n          minMax = [args[0], args[0], args[1], args[1]];\n          break;\n        default:\n          minMax = [Infinity, -Infinity, Infinity, -Infinity];\n          break;\n      }\n      operatorList.addOp(OPS.constructPath, [[fn], args, minMax]);\n\n      if (parsingText) {\n        operatorList.addOp(OPS.restore, null);\n      }\n    } else {\n      const opArgs = operatorList.argsArray[lastIndex];\n      opArgs[0].push(fn);\n      opArgs[1].push(...args);\n      const minMax = opArgs[2];\n\n      // Compute min/max in the worker instead of the main thread.\n      // If the current matrix (when drawing) is a scaling one\n      // then min/max can be easily computed in using those values.\n      // Only rectangle, lineTo and moveTo are handled here since\n      // Bezier stuff requires to have the starting point.\n      switch (fn) {\n        case OPS.rectangle:\n          const x = args[0] + args[2];\n          const y = args[1] + args[3];\n          minMax[0] = Math.min(minMax[0], args[0], x);\n          minMax[1] = Math.max(minMax[1], args[0], x);\n          minMax[2] = Math.min(minMax[2], args[1], y);\n          minMax[3] = Math.max(minMax[3], args[1], y);\n          break;\n        case OPS.moveTo:\n        case OPS.lineTo:\n          minMax[0] = Math.min(minMax[0], args[0]);\n          minMax[1] = Math.max(minMax[1], args[0]);\n          minMax[2] = Math.min(minMax[2], args[1]);\n          minMax[3] = Math.max(minMax[3], args[1]);\n          break;\n      }\n    }\n  }\n\n  parseColorSpace({ cs, resources, localColorSpaceCache }) {\n    return ColorSpace.parseAsync({\n      cs,\n      xref: this.xref,\n      resources,\n      pdfFunctionFactory: this._pdfFunctionFactory,\n      localColorSpaceCache,\n    }).catch(reason => {\n      if (reason instanceof AbortException) {\n        return null;\n      }\n      if (this.options.ignoreErrors) {\n        warn(`parseColorSpace - ignoring ColorSpace: \"${reason}\".`);\n        return null;\n      }\n      throw reason;\n    });\n  }\n\n  parseShading({\n    shading,\n    resources,\n    localColorSpaceCache,\n    localShadingPatternCache,\n  }) {\n    // Shadings and patterns may be referenced by the same name but the resource\n    // dictionary could be different so we can't use the name for the cache key.\n    let id = localShadingPatternCache.get(shading);\n    if (!id) {\n      var shadingFill = Pattern.parseShading(\n        shading,\n        this.xref,\n        resources,\n        this._pdfFunctionFactory,\n        localColorSpaceCache\n      );\n      const patternIR = shadingFill.getIR();\n      id = `pattern_${this.idFactory.createObjId()}`;\n      if (this.parsingType3Font) {\n        id = `${this.idFactory.getDocId()}_type3_${id}`;\n      }\n      localShadingPatternCache.set(shading, id);\n\n      if (this.parsingType3Font) {\n        this.handler.send(\"commonobj\", [id, \"Pattern\", patternIR]);\n      } else {\n        this.handler.send(\"obj\", [id, this.pageIndex, \"Pattern\", patternIR]);\n      }\n    }\n    return id;\n  }\n\n  handleColorN(\n    operatorList,\n    fn,\n    args,\n    cs,\n    patterns,\n    resources,\n    task,\n    localColorSpaceCache,\n    localTilingPatternCache,\n    localShadingPatternCache\n  ) {\n    // compile tiling patterns\n    const patternName = args.pop();\n    // SCN/scn applies patterns along with normal colors\n    if (patternName instanceof Name) {\n      const rawPattern = patterns.getRaw(patternName.name);\n\n      const localTilingPattern =\n        rawPattern instanceof Ref &&\n        localTilingPatternCache.getByRef(rawPattern);\n      if (localTilingPattern) {\n        try {\n          const color = cs.base ? cs.base.getRgb(args, 0) : null;\n          const tilingPatternIR = getTilingPatternIR(\n            localTilingPattern.operatorListIR,\n            localTilingPattern.dict,\n            color\n          );\n          operatorList.addOp(fn, tilingPatternIR);\n          return undefined;\n        } catch {\n          // Handle any errors during normal TilingPattern parsing.\n        }\n      }\n\n      const pattern = this.xref.fetchIfRef(rawPattern);\n      if (pattern) {\n        const dict = pattern instanceof BaseStream ? pattern.dict : pattern;\n        const typeNum = dict.get(\"PatternType\");\n\n        if (typeNum === PatternType.TILING) {\n          const color = cs.base ? cs.base.getRgb(args, 0) : null;\n          return this.handleTilingType(\n            fn,\n            color,\n            resources,\n            pattern,\n            dict,\n            operatorList,\n            task,\n            localTilingPatternCache\n          );\n        } else if (typeNum === PatternType.SHADING) {\n          const shading = dict.get(\"Shading\");\n          const matrix = dict.getArray(\"Matrix\");\n          const objId = this.parseShading({\n            shading,\n            resources,\n            localColorSpaceCache,\n            localShadingPatternCache,\n          });\n          operatorList.addOp(fn, [\"Shading\", objId, matrix]);\n          return undefined;\n        }\n        throw new FormatError(`Unknown PatternType: ${typeNum}`);\n      }\n    }\n    throw new FormatError(`Unknown PatternName: ${patternName}`);\n  }\n\n  _parseVisibilityExpression(array, nestingCounter, currentResult) {\n    const MAX_NESTING = 10;\n    if (++nestingCounter > MAX_NESTING) {\n      warn(\"Visibility expression is too deeply nested\");\n      return;\n    }\n    const length = array.length;\n    const operator = this.xref.fetchIfRef(array[0]);\n    if (length < 2 || !(operator instanceof Name)) {\n      warn(\"Invalid visibility expression\");\n      return;\n    }\n    switch (operator.name) {\n      case \"And\":\n      case \"Or\":\n      case \"Not\":\n        currentResult.push(operator.name);\n        break;\n      default:\n        warn(`Invalid operator ${operator.name} in visibility expression`);\n        return;\n    }\n    for (let i = 1; i < length; i++) {\n      const raw = array[i];\n      const object = this.xref.fetchIfRef(raw);\n      if (Array.isArray(object)) {\n        const nestedResult = [];\n        currentResult.push(nestedResult);\n        // Recursively parse a subarray.\n        this._parseVisibilityExpression(object, nestingCounter, nestedResult);\n      } else if (raw instanceof Ref) {\n        // Reference to an OCG dictionary.\n        currentResult.push(raw.toString());\n      }\n    }\n  }\n\n  async parseMarkedContentProps(contentProperties, resources) {\n    let optionalContent;\n    if (contentProperties instanceof Name) {\n      const properties = resources.get(\"Properties\");\n      optionalContent = properties.get(contentProperties.name);\n    } else if (contentProperties instanceof Dict) {\n      optionalContent = contentProperties;\n    } else {\n      throw new FormatError(\"Optional content properties malformed.\");\n    }\n\n    const optionalContentType = optionalContent.get(\"Type\")?.name;\n    if (optionalContentType === \"OCG\") {\n      return {\n        type: optionalContentType,\n        id: optionalContent.objId,\n      };\n    } else if (optionalContentType === \"OCMD\") {\n      const expression = optionalContent.get(\"VE\");\n      if (Array.isArray(expression)) {\n        const result = [];\n        this._parseVisibilityExpression(expression, 0, result);\n        if (result.length > 0) {\n          return {\n            type: \"OCMD\",\n            expression: result,\n          };\n        }\n      }\n\n      const optionalContentGroups = optionalContent.get(\"OCGs\");\n      if (\n        Array.isArray(optionalContentGroups) ||\n        optionalContentGroups instanceof Dict\n      ) {\n        const groupIds = [];\n        if (Array.isArray(optionalContentGroups)) {\n          for (const ocg of optionalContentGroups) {\n            groupIds.push(ocg.toString());\n          }\n        } else {\n          // Dictionary, just use the obj id.\n          groupIds.push(optionalContentGroups.objId);\n        }\n\n        return {\n          type: optionalContentType,\n          ids: groupIds,\n          policy:\n            optionalContent.get(\"P\") instanceof Name\n              ? optionalContent.get(\"P\").name\n              : null,\n          expression: null,\n        };\n      } else if (optionalContentGroups instanceof Ref) {\n        return {\n          type: optionalContentType,\n          id: optionalContentGroups.toString(),\n        };\n      }\n    }\n    return null;\n  }\n\n  getOperatorList({\n    stream,\n    task,\n    resources,\n    operatorList,\n    initialState = null,\n    fallbackFontDict = null,\n  }) {\n    // Ensure that `resources`/`initialState` is correctly initialized,\n    // even if the provided parameter is e.g. `null`.\n    resources ||= Dict.empty;\n    initialState ||= new EvalState();\n\n    if (!operatorList) {\n      throw new Error('getOperatorList: missing \"operatorList\" parameter');\n    }\n\n    const self = this;\n    const xref = this.xref;\n    let parsingText = false;\n    const localImageCache = new LocalImageCache();\n    const localColorSpaceCache = new LocalColorSpaceCache();\n    const localGStateCache = new LocalGStateCache();\n    const localTilingPatternCache = new LocalTilingPatternCache();\n    const localShadingPatternCache = new Map();\n\n    const xobjs = resources.get(\"XObject\") || Dict.empty;\n    const patterns = resources.get(\"Pattern\") || Dict.empty;\n    const stateManager = new StateManager(initialState);\n    const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n    const timeSlotManager = new TimeSlotManager();\n\n    function closePendingRestoreOPS(argument) {\n      for (let i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) {\n        operatorList.addOp(OPS.restore, []);\n      }\n    }\n\n    return new Promise(function promiseBody(resolve, reject) {\n      const next = function (promise) {\n        Promise.all([promise, operatorList.ready]).then(function () {\n          try {\n            promiseBody(resolve, reject);\n          } catch (ex) {\n            reject(ex);\n          }\n        }, reject);\n      };\n      task.ensureNotTerminated();\n      timeSlotManager.reset();\n\n      const operation = {};\n      let stop, i, ii, cs, name, isValidName;\n      while (!(stop = timeSlotManager.check())) {\n        // The arguments parsed by read() are used beyond this loop, so we\n        // cannot reuse the same array on each iteration. Therefore we pass\n        // in |null| as the initial value (see the comment on\n        // EvaluatorPreprocessor_read() for why).\n        operation.args = null;\n        if (!preprocessor.read(operation)) {\n          break;\n        }\n        let args = operation.args;\n        let fn = operation.fn;\n\n        switch (fn | 0) {\n          case OPS.paintXObject:\n            // eagerly compile XForm objects\n            isValidName = args[0] instanceof Name;\n            name = args[0].name;\n\n            if (isValidName) {\n              const localImage = localImageCache.getByName(name);\n              if (localImage) {\n                operatorList.addImageOps(\n                  localImage.fn,\n                  localImage.args,\n                  localImage.optionalContent\n                );\n\n                incrementCachedImageMaskCount(localImage);\n                args = null;\n                continue;\n              }\n            }\n\n            next(\n              new Promise(function (resolveXObject, rejectXObject) {\n                if (!isValidName) {\n                  throw new FormatError(\"XObject must be referred to by name.\");\n                }\n\n                let xobj = xobjs.getRaw(name);\n                if (xobj instanceof Ref) {\n                  const localImage =\n                    localImageCache.getByRef(xobj) ||\n                    self._regionalImageCache.getByRef(xobj);\n                  if (localImage) {\n                    operatorList.addImageOps(\n                      localImage.fn,\n                      localImage.args,\n                      localImage.optionalContent\n                    );\n\n                    incrementCachedImageMaskCount(localImage);\n                    resolveXObject();\n                    return;\n                  }\n\n                  const globalImage = self.globalImageCache.getData(\n                    xobj,\n                    self.pageIndex\n                  );\n                  if (globalImage) {\n                    operatorList.addDependency(globalImage.objId);\n                    operatorList.addImageOps(\n                      globalImage.fn,\n                      globalImage.args,\n                      globalImage.optionalContent\n                    );\n\n                    resolveXObject();\n                    return;\n                  }\n\n                  xobj = xref.fetch(xobj);\n                }\n\n                if (!(xobj instanceof BaseStream)) {\n                  throw new FormatError(\"XObject should be a stream\");\n                }\n\n                const type = xobj.dict.get(\"Subtype\");\n                if (!(type instanceof Name)) {\n                  throw new FormatError(\"XObject should have a Name subtype\");\n                }\n\n                if (type.name === \"Form\") {\n                  stateManager.save();\n                  self\n                    .buildFormXObject(\n                      resources,\n                      xobj,\n                      null,\n                      operatorList,\n                      task,\n                      stateManager.state.clone(),\n                      localColorSpaceCache\n                    )\n                    .then(function () {\n                      stateManager.restore();\n                      resolveXObject();\n                    }, rejectXObject);\n                  return;\n                } else if (type.name === \"Image\") {\n                  self\n                    .buildPaintImageXObject({\n                      resources,\n                      image: xobj,\n                      operatorList,\n                      cacheKey: name,\n                      localImageCache,\n                      localColorSpaceCache,\n                    })\n                    .then(resolveXObject, rejectXObject);\n                  return;\n                } else if (type.name === \"PS\") {\n                  // PostScript XObjects are unused when viewing documents.\n                  // See section 4.7.1 of Adobe's PDF reference.\n                  info(\"Ignored XObject subtype PS\");\n                } else {\n                  throw new FormatError(\n                    `Unhandled XObject subtype ${type.name}`\n                  );\n                }\n                resolveXObject();\n              }).catch(function (reason) {\n                if (reason instanceof AbortException) {\n                  return;\n                }\n                if (self.options.ignoreErrors) {\n                  warn(`getOperatorList - ignoring XObject: \"${reason}\".`);\n                  return;\n                }\n                throw reason;\n              })\n            );\n            return;\n          case OPS.setFont:\n            var fontSize = args[1];\n            // eagerly collect all fonts\n            next(\n              self\n                .handleSetFont(\n                  resources,\n                  args,\n                  null,\n                  operatorList,\n                  task,\n                  stateManager.state,\n                  fallbackFontDict\n                )\n                .then(function (loadedName) {\n                  operatorList.addDependency(loadedName);\n                  operatorList.addOp(OPS.setFont, [loadedName, fontSize]);\n                })\n            );\n            return;\n          case OPS.beginText:\n            parsingText = true;\n            break;\n          case OPS.endText:\n            parsingText = false;\n            break;\n          case OPS.endInlineImage:\n            var cacheKey = args[0].cacheKey;\n            if (cacheKey) {\n              const localImage = localImageCache.getByName(cacheKey);\n              if (localImage) {\n                operatorList.addImageOps(\n                  localImage.fn,\n                  localImage.args,\n                  localImage.optionalContent\n                );\n\n                incrementCachedImageMaskCount(localImage);\n                args = null;\n                continue;\n              }\n            }\n            next(\n              self.buildPaintImageXObject({\n                resources,\n                image: args[0],\n                isInline: true,\n                operatorList,\n                cacheKey,\n                localImageCache,\n                localColorSpaceCache,\n              })\n            );\n            return;\n          case OPS.showText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n            args[0] = self.handleText(args[0], stateManager.state);\n            break;\n          case OPS.showSpacedText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n            var combinedGlyphs = [];\n            var state = stateManager.state;\n            for (const arrItem of args[0]) {\n              if (typeof arrItem === \"string\") {\n                combinedGlyphs.push(...self.handleText(arrItem, state));\n              } else if (typeof arrItem === \"number\") {\n                combinedGlyphs.push(arrItem);\n              }\n            }\n            args[0] = combinedGlyphs;\n            fn = OPS.showText;\n            break;\n          case OPS.nextLineShowText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n            operatorList.addOp(OPS.nextLine);\n            args[0] = self.handleText(args[0], stateManager.state);\n            fn = OPS.showText;\n            break;\n          case OPS.nextLineSetSpacingShowText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n            operatorList.addOp(OPS.nextLine);\n            operatorList.addOp(OPS.setWordSpacing, [args.shift()]);\n            operatorList.addOp(OPS.setCharSpacing, [args.shift()]);\n            args[0] = self.handleText(args[0], stateManager.state);\n            fn = OPS.showText;\n            break;\n          case OPS.setTextRenderingMode:\n            stateManager.state.textRenderingMode = args[0];\n            break;\n\n          case OPS.setFillColorSpace: {\n            const cachedColorSpace = ColorSpace.getCached(\n              args[0],\n              xref,\n              localColorSpaceCache\n            );\n            if (cachedColorSpace) {\n              stateManager.state.fillColorSpace = cachedColorSpace;\n              continue;\n            }\n\n            next(\n              self\n                .parseColorSpace({\n                  cs: args[0],\n                  resources,\n                  localColorSpaceCache,\n                })\n                .then(function (colorSpace) {\n                  if (colorSpace) {\n                    stateManager.state.fillColorSpace = colorSpace;\n                  }\n                })\n            );\n            return;\n          }\n          case OPS.setStrokeColorSpace: {\n            const cachedColorSpace = ColorSpace.getCached(\n              args[0],\n              xref,\n              localColorSpaceCache\n            );\n            if (cachedColorSpace) {\n              stateManager.state.strokeColorSpace = cachedColorSpace;\n              continue;\n            }\n\n            next(\n              self\n                .parseColorSpace({\n                  cs: args[0],\n                  resources,\n                  localColorSpaceCache,\n                })\n                .then(function (colorSpace) {\n                  if (colorSpace) {\n                    stateManager.state.strokeColorSpace = colorSpace;\n                  }\n                })\n            );\n            return;\n          }\n          case OPS.setFillColor:\n            cs = stateManager.state.fillColorSpace;\n            args = cs.getRgb(args, 0);\n            fn = OPS.setFillRGBColor;\n            break;\n          case OPS.setStrokeColor:\n            cs = stateManager.state.strokeColorSpace;\n            args = cs.getRgb(args, 0);\n            fn = OPS.setStrokeRGBColor;\n            break;\n          case OPS.setFillGray:\n            stateManager.state.fillColorSpace = ColorSpace.singletons.gray;\n            args = ColorSpace.singletons.gray.getRgb(args, 0);\n            fn = OPS.setFillRGBColor;\n            break;\n          case OPS.setStrokeGray:\n            stateManager.state.strokeColorSpace = ColorSpace.singletons.gray;\n            args = ColorSpace.singletons.gray.getRgb(args, 0);\n            fn = OPS.setStrokeRGBColor;\n            break;\n          case OPS.setFillCMYKColor:\n            stateManager.state.fillColorSpace = ColorSpace.singletons.cmyk;\n            args = ColorSpace.singletons.cmyk.getRgb(args, 0);\n            fn = OPS.setFillRGBColor;\n            break;\n          case OPS.setStrokeCMYKColor:\n            stateManager.state.strokeColorSpace = ColorSpace.singletons.cmyk;\n            args = ColorSpace.singletons.cmyk.getRgb(args, 0);\n            fn = OPS.setStrokeRGBColor;\n            break;\n          case OPS.setFillRGBColor:\n            stateManager.state.fillColorSpace = ColorSpace.singletons.rgb;\n            args = ColorSpace.singletons.rgb.getRgb(args, 0);\n            break;\n          case OPS.setStrokeRGBColor:\n            stateManager.state.strokeColorSpace = ColorSpace.singletons.rgb;\n            args = ColorSpace.singletons.rgb.getRgb(args, 0);\n            break;\n          case OPS.setFillColorN:\n            cs = stateManager.state.fillColorSpace;\n            if (cs.name === \"Pattern\") {\n              next(\n                self.handleColorN(\n                  operatorList,\n                  OPS.setFillColorN,\n                  args,\n                  cs,\n                  patterns,\n                  resources,\n                  task,\n                  localColorSpaceCache,\n                  localTilingPatternCache,\n                  localShadingPatternCache\n                )\n              );\n              return;\n            }\n            args = cs.getRgb(args, 0);\n            fn = OPS.setFillRGBColor;\n            break;\n          case OPS.setStrokeColorN:\n            cs = stateManager.state.strokeColorSpace;\n            if (cs.name === \"Pattern\") {\n              next(\n                self.handleColorN(\n                  operatorList,\n                  OPS.setStrokeColorN,\n                  args,\n                  cs,\n                  patterns,\n                  resources,\n                  task,\n                  localColorSpaceCache,\n                  localTilingPatternCache,\n                  localShadingPatternCache\n                )\n              );\n              return;\n            }\n            args = cs.getRgb(args, 0);\n            fn = OPS.setStrokeRGBColor;\n            break;\n\n          case OPS.shadingFill:\n            var shadingRes = resources.get(\"Shading\");\n            if (!shadingRes) {\n              throw new FormatError(\"No shading resource found\");\n            }\n\n            var shading = shadingRes.get(args[0].name);\n            if (!shading) {\n              throw new FormatError(\"No shading object found\");\n            }\n            const patternId = self.parseShading({\n              shading,\n              resources,\n              localColorSpaceCache,\n              localShadingPatternCache,\n            });\n            args = [patternId];\n            fn = OPS.shadingFill;\n            break;\n          case OPS.setGState:\n            isValidName = args[0] instanceof Name;\n            name = args[0].name;\n\n            if (isValidName) {\n              const localGStateObj = localGStateCache.getByName(name);\n              if (localGStateObj) {\n                if (localGStateObj.length > 0) {\n                  operatorList.addOp(OPS.setGState, [localGStateObj]);\n                }\n                args = null;\n                continue;\n              }\n            }\n\n            next(\n              new Promise(function (resolveGState, rejectGState) {\n                if (!isValidName) {\n                  throw new FormatError(\"GState must be referred to by name.\");\n                }\n\n                const extGState = resources.get(\"ExtGState\");\n                if (!(extGState instanceof Dict)) {\n                  throw new FormatError(\"ExtGState should be a dictionary.\");\n                }\n\n                const gState = extGState.get(name);\n                // TODO: Attempt to lookup cached GStates by reference as well,\n                //       if and only if there are PDF documents where doing so\n                //       would significantly improve performance.\n                if (!(gState instanceof Dict)) {\n                  throw new FormatError(\"GState should be a dictionary.\");\n                }\n\n                self\n                  .setGState({\n                    resources,\n                    gState,\n                    operatorList,\n                    cacheKey: name,\n                    task,\n                    stateManager,\n                    localGStateCache,\n                    localColorSpaceCache,\n                  })\n                  .then(resolveGState, rejectGState);\n              }).catch(function (reason) {\n                if (reason instanceof AbortException) {\n                  return;\n                }\n                if (self.options.ignoreErrors) {\n                  warn(`getOperatorList - ignoring ExtGState: \"${reason}\".`);\n                  return;\n                }\n                throw reason;\n              })\n            );\n            return;\n          case OPS.moveTo:\n          case OPS.lineTo:\n          case OPS.curveTo:\n          case OPS.curveTo2:\n          case OPS.curveTo3:\n          case OPS.closePath:\n          case OPS.rectangle:\n            self.buildPath(operatorList, fn, args, parsingText);\n            continue;\n          case OPS.markPoint:\n          case OPS.markPointProps:\n          case OPS.beginCompat:\n          case OPS.endCompat:\n            // Ignore operators where the corresponding handlers are known to\n            // be no-op in CanvasGraphics (display/canvas.js). This prevents\n            // serialization errors and is also a bit more efficient.\n            // We could also try to serialize all objects in a general way,\n            // e.g. as done in https://github.com/mozilla/pdf.js/pull/6266,\n            // but doing so is meaningless without knowing the semantics.\n            continue;\n          case OPS.beginMarkedContentProps:\n            if (!(args[0] instanceof Name)) {\n              warn(`Expected name for beginMarkedContentProps arg0=${args[0]}`);\n              continue;\n            }\n            if (args[0].name === \"OC\") {\n              next(\n                self\n                  .parseMarkedContentProps(args[1], resources)\n                  .then(data => {\n                    operatorList.addOp(OPS.beginMarkedContentProps, [\n                      \"OC\",\n                      data,\n                    ]);\n                  })\n                  .catch(reason => {\n                    if (reason instanceof AbortException) {\n                      return;\n                    }\n                    if (self.options.ignoreErrors) {\n                      warn(\n                        `getOperatorList - ignoring beginMarkedContentProps: \"${reason}\".`\n                      );\n                      return;\n                    }\n                    throw reason;\n                  })\n              );\n              return;\n            }\n            // Other marked content types aren't supported yet.\n            args = [\n              args[0].name,\n              args[1] instanceof Dict ? args[1].get(\"MCID\") : null,\n            ];\n\n            break;\n          case OPS.beginMarkedContent:\n          case OPS.endMarkedContent:\n          default:\n            // Note: Ignore the operator if it has `Dict` arguments, since\n            // those are non-serializable, otherwise postMessage will throw\n            // \"An object could not be cloned.\".\n            if (args !== null) {\n              for (i = 0, ii = args.length; i < ii; i++) {\n                if (args[i] instanceof Dict) {\n                  break;\n                }\n              }\n              if (i < ii) {\n                warn(\"getOperatorList - ignoring operator: \" + fn);\n                continue;\n              }\n            }\n        }\n        operatorList.addOp(fn, args);\n      }\n      if (stop) {\n        next(deferred);\n        return;\n      }\n      // Some PDFs don't close all restores inside object/form.\n      // Closing those for them.\n      closePendingRestoreOPS();\n      resolve();\n    }).catch(reason => {\n      if (reason instanceof AbortException) {\n        return;\n      }\n      if (this.options.ignoreErrors) {\n        warn(\n          `getOperatorList - ignoring errors during \"${task.name}\" ` +\n            `task: \"${reason}\".`\n        );\n\n        closePendingRestoreOPS();\n        return;\n      }\n      throw reason;\n    });\n  }\n\n  getTextContent({\n    stream,\n    task,\n    resources,\n    stateManager = null,\n    includeMarkedContent = false,\n    sink,\n    seenStyles = new Set(),\n    viewBox,\n    markedContentData = null,\n    disableNormalization = false,\n  }) {\n    // Ensure that `resources`/`stateManager` is correctly initialized,\n    // even if the provided parameter is e.g. `null`.\n    resources ||= Dict.empty;\n    stateManager ||= new StateManager(new TextState());\n\n    if (includeMarkedContent) {\n      markedContentData ||= { level: 0 };\n    }\n\n    const textContent = {\n      items: [],\n      styles: Object.create(null),\n    };\n    const textContentItem = {\n      initialized: false,\n      str: [],\n      totalWidth: 0,\n      totalHeight: 0,\n      width: 0,\n      height: 0,\n      vertical: false,\n      prevTransform: null,\n      textAdvanceScale: 0,\n      spaceInFlowMin: 0,\n      spaceInFlowMax: 0,\n      trackingSpaceMin: Infinity,\n      negativeSpaceMax: -Infinity,\n      notASpace: -Infinity,\n      transform: null,\n      fontName: null,\n      hasEOL: false,\n    };\n\n    // Use a circular buffer (length === 2) to save the last chars in the\n    // text stream.\n    // This implementation of the circular buffer is using a fixed array\n    // and the position of the next element:\n    // function addElement(x) {\n    //   buffer[pos] = x;\n    //   pos = (pos + 1) % buffer.length;\n    // }\n    // It's a way faster than:\n    // function addElement(x) {\n    //   buffer.push(x);\n    //   buffer.shift();\n    // }\n    //\n    // It's useful to know when we need to add a whitespace in the\n    // text chunk.\n    const twoLastChars = [\" \", \" \"];\n    let twoLastCharsPos = 0;\n\n    /**\n     * Save the last char.\n     * @param {string} char\n     * @returns {boolean} true when the two last chars before adding the new one\n     * are a non-whitespace followed by a whitespace.\n     */\n    function saveLastChar(char) {\n      const nextPos = (twoLastCharsPos + 1) % 2;\n      const ret =\n        twoLastChars[twoLastCharsPos] !== \" \" && twoLastChars[nextPos] === \" \";\n      twoLastChars[twoLastCharsPos] = char;\n      twoLastCharsPos = nextPos;\n\n      return ret;\n    }\n\n    function shouldAddWhitepsace() {\n      return (\n        twoLastChars[twoLastCharsPos] !== \" \" &&\n        twoLastChars[(twoLastCharsPos + 1) % 2] === \" \"\n      );\n    }\n\n    function resetLastChars() {\n      twoLastChars[0] = twoLastChars[1] = \" \";\n      twoLastCharsPos = 0;\n    }\n\n    // Used in addFakeSpaces.\n\n    // A white <= fontSize * TRACKING_SPACE_FACTOR is a tracking space\n    // so it doesn't count as a space.\n    const TRACKING_SPACE_FACTOR = 0.102;\n\n    // When a white <= fontSize * NOT_A_SPACE_FACTOR, there is no space\n    // even if one is present in the text stream.\n    const NOT_A_SPACE_FACTOR = 0.03;\n\n    // A negative white < fontSize * NEGATIVE_SPACE_FACTOR induces\n    // a break (a new chunk of text is created).\n    // It doesn't change anything when the text is copied but\n    // it improves potential mismatch between text layer and canvas.\n    const NEGATIVE_SPACE_FACTOR = -0.2;\n\n    // A white with a width in [fontSize * MIN_FACTOR; fontSize * MAX_FACTOR]\n    // is a space which will be inserted in the current flow of words.\n    // If the width is outside of this range then the flow is broken\n    // (which means a new span in the text layer).\n    // It's useful to adjust the best as possible the span in the layer\n    // to what is displayed in the canvas.\n    const SPACE_IN_FLOW_MIN_FACTOR = 0.102;\n    const SPACE_IN_FLOW_MAX_FACTOR = 0.6;\n\n    // If a char is too high/too low compared to the previous we just create\n    // a new chunk.\n    // If the advance isn't in the +/-VERTICAL_SHIFT_RATIO * height range then\n    // a new chunk is created.\n    const VERTICAL_SHIFT_RATIO = 0.25;\n\n    const self = this;\n    const xref = this.xref;\n    const showSpacedTextBuffer = [];\n\n    // The xobj is parsed iff it's needed, e.g. if there is a `DO` cmd.\n    let xobjs = null;\n    const emptyXObjectCache = new LocalImageCache();\n    const emptyGStateCache = new LocalGStateCache();\n\n    const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n\n    let textState;\n\n    function pushWhitespace({\n      width = 0,\n      height = 0,\n      transform = textContentItem.prevTransform,\n      fontName = textContentItem.fontName,\n    }) {\n      textContent.items.push({\n        str: \" \",\n        dir: \"ltr\",\n        width,\n        height,\n        transform,\n        fontName,\n        hasEOL: false,\n      });\n    }\n\n    function getCurrentTextTransform() {\n      // 9.4.4 Text Space Details\n      const font = textState.font;\n      const tsm = [\n        textState.fontSize * textState.textHScale,\n        0,\n        0,\n        textState.fontSize,\n        0,\n        textState.textRise,\n      ];\n\n      if (\n        font.isType3Font &&\n        (textState.fontSize <= 1 || font.isCharBBox) &&\n        !isArrayEqual(textState.fontMatrix, FONT_IDENTITY_MATRIX)\n      ) {\n        const glyphHeight = font.bbox[3] - font.bbox[1];\n        if (glyphHeight > 0) {\n          tsm[3] *= glyphHeight * textState.fontMatrix[3];\n        }\n      }\n\n      return Util.transform(\n        textState.ctm,\n        Util.transform(textState.textMatrix, tsm)\n      );\n    }\n\n    function ensureTextContentItem() {\n      if (textContentItem.initialized) {\n        return textContentItem;\n      }\n      const { font, loadedName } = textState;\n      if (!seenStyles.has(loadedName)) {\n        seenStyles.add(loadedName);\n        textContent.styles[loadedName] = {\n          fontFamily: font.fallbackName,\n          ascent: font.ascent,\n          descent: font.descent,\n          vertical: font.vertical,\n        };\n        if (self.options.fontExtraProperties && font.systemFontInfo) {\n          const style = textContent.styles[loadedName];\n          style.fontSubstitution = font.systemFontInfo.css;\n          style.fontSubstitutionLoadedName = font.systemFontInfo.loadedName;\n        }\n      }\n      textContentItem.fontName = loadedName;\n\n      const trm = (textContentItem.transform = getCurrentTextTransform());\n      if (!font.vertical) {\n        textContentItem.width = textContentItem.totalWidth = 0;\n        textContentItem.height = textContentItem.totalHeight = Math.hypot(\n          trm[2],\n          trm[3]\n        );\n        textContentItem.vertical = false;\n      } else {\n        textContentItem.width = textContentItem.totalWidth = Math.hypot(\n          trm[0],\n          trm[1]\n        );\n        textContentItem.height = textContentItem.totalHeight = 0;\n        textContentItem.vertical = true;\n      }\n\n      const scaleLineX = Math.hypot(\n        textState.textLineMatrix[0],\n        textState.textLineMatrix[1]\n      );\n      const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]);\n      textContentItem.textAdvanceScale = scaleCtmX * scaleLineX;\n\n      const { fontSize } = textState;\n      textContentItem.trackingSpaceMin = fontSize * TRACKING_SPACE_FACTOR;\n      textContentItem.notASpace = fontSize * NOT_A_SPACE_FACTOR;\n      textContentItem.negativeSpaceMax = fontSize * NEGATIVE_SPACE_FACTOR;\n      textContentItem.spaceInFlowMin = fontSize * SPACE_IN_FLOW_MIN_FACTOR;\n      textContentItem.spaceInFlowMax = fontSize * SPACE_IN_FLOW_MAX_FACTOR;\n      textContentItem.hasEOL = false;\n\n      textContentItem.initialized = true;\n      return textContentItem;\n    }\n\n    function updateAdvanceScale() {\n      if (!textContentItem.initialized) {\n        return;\n      }\n\n      const scaleLineX = Math.hypot(\n        textState.textLineMatrix[0],\n        textState.textLineMatrix[1]\n      );\n      const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]);\n      const scaleFactor = scaleCtmX * scaleLineX;\n      if (scaleFactor === textContentItem.textAdvanceScale) {\n        return;\n      }\n\n      if (!textContentItem.vertical) {\n        textContentItem.totalWidth +=\n          textContentItem.width * textContentItem.textAdvanceScale;\n        textContentItem.width = 0;\n      } else {\n        textContentItem.totalHeight +=\n          textContentItem.height * textContentItem.textAdvanceScale;\n        textContentItem.height = 0;\n      }\n\n      textContentItem.textAdvanceScale = scaleFactor;\n    }\n\n    function runBidiTransform(textChunk) {\n      let text = textChunk.str.join(\"\");\n      if (!disableNormalization) {\n        text = normalizeUnicode(text);\n      }\n      const bidiResult = bidi(text, -1, textChunk.vertical);\n      return {\n        str: bidiResult.str,\n        dir: bidiResult.dir,\n        width: Math.abs(textChunk.totalWidth),\n        height: Math.abs(textChunk.totalHeight),\n        transform: textChunk.transform,\n        fontName: textChunk.fontName,\n        hasEOL: textChunk.hasEOL,\n      };\n    }\n\n    function handleSetFont(fontName, fontRef) {\n      return self\n        .loadFont(fontName, fontRef, resources)\n        .then(function (translated) {\n          if (!translated.font.isType3Font) {\n            return translated;\n          }\n          return translated\n            .loadType3Data(self, resources, task)\n            .catch(function () {\n              // Ignore Type3-parsing errors, since we only use `loadType3Data`\n              // here to ensure that we'll always obtain a useful /FontBBox.\n            })\n            .then(function () {\n              return translated;\n            });\n        })\n        .then(function (translated) {\n          textState.loadedName = translated.loadedName;\n          textState.font = translated.font;\n          textState.fontMatrix =\n            translated.font.fontMatrix || FONT_IDENTITY_MATRIX;\n        });\n    }\n\n    function applyInverseRotation(x, y, matrix) {\n      const scale = Math.hypot(matrix[0], matrix[1]);\n      return [\n        (matrix[0] * x + matrix[1] * y) / scale,\n        (matrix[2] * x + matrix[3] * y) / scale,\n      ];\n    }\n\n    function compareWithLastPosition(glyphWidth) {\n      const currentTransform = getCurrentTextTransform();\n      let posX = currentTransform[4];\n      let posY = currentTransform[5];\n\n      // Check if the glyph is in the viewbox.\n      if (textState.font?.vertical) {\n        if (\n          posX < viewBox[0] ||\n          posX > viewBox[2] ||\n          posY + glyphWidth < viewBox[1] ||\n          posY > viewBox[3]\n        ) {\n          return false;\n        }\n      } else if (\n        posX + glyphWidth < viewBox[0] ||\n        posX > viewBox[2] ||\n        posY < viewBox[1] ||\n        posY > viewBox[3]\n      ) {\n        return false;\n      }\n\n      if (!textState.font || !textContentItem.prevTransform) {\n        return true;\n      }\n\n      let lastPosX = textContentItem.prevTransform[4];\n      let lastPosY = textContentItem.prevTransform[5];\n\n      if (lastPosX === posX && lastPosY === posY) {\n        return true;\n      }\n\n      let rotate = -1;\n      // Take into account the rotation is the current transform.\n      if (\n        currentTransform[0] &&\n        currentTransform[1] === 0 &&\n        currentTransform[2] === 0\n      ) {\n        rotate = currentTransform[0] > 0 ? 0 : 180;\n      } else if (\n        currentTransform[1] &&\n        currentTransform[0] === 0 &&\n        currentTransform[3] === 0\n      ) {\n        rotate = currentTransform[1] > 0 ? 90 : 270;\n      }\n\n      switch (rotate) {\n        case 0:\n          break;\n        case 90:\n          [posX, posY] = [posY, posX];\n          [lastPosX, lastPosY] = [lastPosY, lastPosX];\n          break;\n        case 180:\n          [posX, posY, lastPosX, lastPosY] = [\n            -posX,\n            -posY,\n            -lastPosX,\n            -lastPosY,\n          ];\n          break;\n        case 270:\n          [posX, posY] = [-posY, -posX];\n          [lastPosX, lastPosY] = [-lastPosY, -lastPosX];\n          break;\n        default:\n          // This is not a 0, 90, 180, 270 rotation so:\n          //  - remove the scale factor from the matrix to get a rotation matrix\n          //  - apply the inverse (which is the transposed) to the positions\n          // and we can then compare positions of the glyphes to detect\n          // a whitespace.\n          [posX, posY] = applyInverseRotation(posX, posY, currentTransform);\n          [lastPosX, lastPosY] = applyInverseRotation(\n            lastPosX,\n            lastPosY,\n            textContentItem.prevTransform\n          );\n      }\n\n      if (textState.font.vertical) {\n        const advanceY = (lastPosY - posY) / textContentItem.textAdvanceScale;\n        const advanceX = posX - lastPosX;\n\n        // When the total height of the current chunk is negative\n        // then we're writing from bottom to top.\n        const textOrientation = Math.sign(textContentItem.height);\n        if (advanceY < textOrientation * textContentItem.negativeSpaceMax) {\n          if (\n            Math.abs(advanceX) >\n            0.5 * textContentItem.width /* not the same column */\n          ) {\n            appendEOL();\n            return true;\n          }\n\n          resetLastChars();\n          flushTextContentItem();\n          return true;\n        }\n\n        if (Math.abs(advanceX) > textContentItem.width) {\n          appendEOL();\n          return true;\n        }\n\n        if (advanceY <= textOrientation * textContentItem.notASpace) {\n          // The real spacing between 2 consecutive chars is thin enough to be\n          // considered a non-space.\n          resetLastChars();\n        }\n\n        if (advanceY <= textOrientation * textContentItem.trackingSpaceMin) {\n          if (shouldAddWhitepsace()) {\n            // The space is very thin, hence it deserves to have its own span in\n            // order to avoid too much shift between the canvas and the text\n            // layer.\n            resetLastChars();\n            flushTextContentItem();\n            pushWhitespace({ height: Math.abs(advanceY) });\n          } else {\n            textContentItem.height += advanceY;\n          }\n        } else if (\n          !addFakeSpaces(\n            advanceY,\n            textContentItem.prevTransform,\n            textOrientation\n          )\n        ) {\n          if (textContentItem.str.length === 0) {\n            resetLastChars();\n            pushWhitespace({ height: Math.abs(advanceY) });\n          } else {\n            textContentItem.height += advanceY;\n          }\n        }\n\n        if (Math.abs(advanceX) > textContentItem.width * VERTICAL_SHIFT_RATIO) {\n          flushTextContentItem();\n        }\n\n        return true;\n      }\n\n      const advanceX = (posX - lastPosX) / textContentItem.textAdvanceScale;\n      const advanceY = posY - lastPosY;\n\n      // When the total width of the current chunk is negative\n      // then we're writing from right to left.\n      const textOrientation = Math.sign(textContentItem.width);\n      if (advanceX < textOrientation * textContentItem.negativeSpaceMax) {\n        if (\n          Math.abs(advanceY) >\n          0.5 * textContentItem.height /* not the same line */\n        ) {\n          appendEOL();\n          return true;\n        }\n\n        // We're moving back so in case the last char was a whitespace\n        // we cancel it: it doesn't make sense to insert it.\n        resetLastChars();\n        flushTextContentItem();\n        return true;\n      }\n\n      if (Math.abs(advanceY) > textContentItem.height) {\n        appendEOL();\n        return true;\n      }\n\n      if (advanceX <= textOrientation * textContentItem.notASpace) {\n        // The real spacing between 2 consecutive chars is thin enough to be\n        // considered a non-space.\n        resetLastChars();\n      }\n\n      if (advanceX <= textOrientation * textContentItem.trackingSpaceMin) {\n        if (shouldAddWhitepsace()) {\n          // The space is very thin, hence it deserves to have its own span in\n          // order to avoid too much shift between the canvas and the text\n          // layer.\n          resetLastChars();\n          flushTextContentItem();\n          pushWhitespace({ width: Math.abs(advanceX) });\n        } else {\n          textContentItem.width += advanceX;\n        }\n      } else if (\n        !addFakeSpaces(advanceX, textContentItem.prevTransform, textOrientation)\n      ) {\n        if (textContentItem.str.length === 0) {\n          resetLastChars();\n          pushWhitespace({ width: Math.abs(advanceX) });\n        } else {\n          textContentItem.width += advanceX;\n        }\n      }\n\n      if (Math.abs(advanceY) > textContentItem.height * VERTICAL_SHIFT_RATIO) {\n        flushTextContentItem();\n      }\n\n      return true;\n    }\n\n    function buildTextContentItem({ chars, extraSpacing }) {\n      const font = textState.font;\n      if (!chars) {\n        // Just move according to the space we have.\n        const charSpacing = textState.charSpacing + extraSpacing;\n        if (charSpacing) {\n          if (!font.vertical) {\n            textState.translateTextMatrix(\n              charSpacing * textState.textHScale,\n              0\n            );\n          } else {\n            textState.translateTextMatrix(0, -charSpacing);\n          }\n        }\n\n        return;\n      }\n\n      const glyphs = font.charsToGlyphs(chars);\n      const scale = textState.fontMatrix[0] * textState.fontSize;\n\n      for (let i = 0, ii = glyphs.length; i < ii; i++) {\n        const glyph = glyphs[i];\n        const { category } = glyph;\n\n        if (category.isInvisibleFormatMark) {\n          continue;\n        }\n        let charSpacing =\n          textState.charSpacing + (i + 1 === ii ? extraSpacing : 0);\n\n        let glyphWidth = glyph.width;\n        if (font.vertical) {\n          glyphWidth = glyph.vmetric ? glyph.vmetric[0] : -glyphWidth;\n        }\n        let scaledDim = glyphWidth * scale;\n\n        if (category.isWhitespace) {\n          // Don't push a \" \" in the textContentItem\n          // (except when it's between two non-spaces chars),\n          // it will be done (if required) in next call to\n          // compareWithLastPosition.\n          // This way we can merge real spaces and spaces due to cursor moves.\n          if (!font.vertical) {\n            charSpacing += scaledDim + textState.wordSpacing;\n            textState.translateTextMatrix(\n              charSpacing * textState.textHScale,\n              0\n            );\n          } else {\n            charSpacing += -scaledDim + textState.wordSpacing;\n            textState.translateTextMatrix(0, -charSpacing);\n          }\n          saveLastChar(\" \");\n          continue;\n        }\n\n        if (\n          !category.isZeroWidthDiacritic &&\n          !compareWithLastPosition(scaledDim)\n        ) {\n          // The glyph is not in page so just skip it but move the cursor.\n          if (!font.vertical) {\n            textState.translateTextMatrix(scaledDim * textState.textHScale, 0);\n          } else {\n            textState.translateTextMatrix(0, scaledDim);\n          }\n          continue;\n        }\n\n        // Must be called after compareWithLastPosition because\n        // the textContentItem could have been flushed.\n        const textChunk = ensureTextContentItem();\n        if (category.isZeroWidthDiacritic) {\n          scaledDim = 0;\n        }\n\n        if (!font.vertical) {\n          scaledDim *= textState.textHScale;\n          textState.translateTextMatrix(scaledDim, 0);\n          textChunk.width += scaledDim;\n        } else {\n          textState.translateTextMatrix(0, scaledDim);\n          scaledDim = Math.abs(scaledDim);\n          textChunk.height += scaledDim;\n        }\n\n        if (scaledDim) {\n          // Save the position of the last visible character.\n          textChunk.prevTransform = getCurrentTextTransform();\n        }\n\n        const glyphUnicode = glyph.unicode;\n        if (saveLastChar(glyphUnicode)) {\n          // The two last chars are a non-whitespace followed by a whitespace\n          // and then this non-whitespace, so we insert a whitespace here.\n          // Replaces all whitespaces with standard spaces (0x20), to avoid\n          // alignment issues between the textLayer and the canvas if the text\n          // contains e.g. tabs (fixes issue6612.pdf).\n          textChunk.str.push(\" \");\n        }\n        textChunk.str.push(glyphUnicode);\n\n        if (charSpacing) {\n          if (!font.vertical) {\n            textState.translateTextMatrix(\n              charSpacing * textState.textHScale,\n              0\n            );\n          } else {\n            textState.translateTextMatrix(0, -charSpacing);\n          }\n        }\n      }\n    }\n\n    function appendEOL() {\n      resetLastChars();\n      if (textContentItem.initialized) {\n        textContentItem.hasEOL = true;\n        flushTextContentItem();\n      } else {\n        textContent.items.push({\n          str: \"\",\n          dir: \"ltr\",\n          width: 0,\n          height: 0,\n          transform: getCurrentTextTransform(),\n          fontName: textState.loadedName,\n          hasEOL: true,\n        });\n      }\n    }\n\n    function addFakeSpaces(width, transf, textOrientation) {\n      if (\n        textOrientation * textContentItem.spaceInFlowMin <= width &&\n        width <= textOrientation * textContentItem.spaceInFlowMax\n      ) {\n        if (textContentItem.initialized) {\n          resetLastChars();\n          textContentItem.str.push(\" \");\n        }\n        return false;\n      }\n\n      const fontName = textContentItem.fontName;\n\n      let height = 0;\n      if (textContentItem.vertical) {\n        height = width;\n        width = 0;\n      }\n\n      flushTextContentItem();\n      resetLastChars();\n      pushWhitespace({\n        width: Math.abs(width),\n        height: Math.abs(height),\n        transform: transf || getCurrentTextTransform(),\n        fontName,\n      });\n\n      return true;\n    }\n\n    function flushTextContentItem() {\n      if (!textContentItem.initialized || !textContentItem.str) {\n        return;\n      }\n\n      // Do final text scaling.\n      if (!textContentItem.vertical) {\n        textContentItem.totalWidth +=\n          textContentItem.width * textContentItem.textAdvanceScale;\n      } else {\n        textContentItem.totalHeight +=\n          textContentItem.height * textContentItem.textAdvanceScale;\n      }\n\n      textContent.items.push(runBidiTransform(textContentItem));\n      textContentItem.initialized = false;\n      textContentItem.str.length = 0;\n    }\n\n    function enqueueChunk(batch = false) {\n      const length = textContent.items.length;\n      if (length === 0) {\n        return;\n      }\n      if (batch && length < TEXT_CHUNK_BATCH_SIZE) {\n        return;\n      }\n      sink.enqueue(textContent, length);\n      textContent.items = [];\n      textContent.styles = Object.create(null);\n    }\n\n    const timeSlotManager = new TimeSlotManager();\n\n    return new Promise(function promiseBody(resolve, reject) {\n      const next = function (promise) {\n        enqueueChunk(/* batch = */ true);\n        Promise.all([promise, sink.ready]).then(function () {\n          try {\n            promiseBody(resolve, reject);\n          } catch (ex) {\n            reject(ex);\n          }\n        }, reject);\n      };\n      task.ensureNotTerminated();\n      timeSlotManager.reset();\n\n      const operation = {};\n      let stop,\n        args = [];\n      while (!(stop = timeSlotManager.check())) {\n        // The arguments parsed by read() are not used beyond this loop, so\n        // we can reuse the same array on every iteration, thus avoiding\n        // unnecessary allocations.\n        args.length = 0;\n        operation.args = args;\n        if (!preprocessor.read(operation)) {\n          break;\n        }\n\n        const previousState = textState;\n        textState = stateManager.state;\n        const fn = operation.fn;\n        args = operation.args;\n\n        switch (fn | 0) {\n          case OPS.setFont:\n            // Optimization to ignore multiple identical Tf commands.\n            var fontNameArg = args[0].name,\n              fontSizeArg = args[1];\n            if (\n              textState.font &&\n              fontNameArg === textState.fontName &&\n              fontSizeArg === textState.fontSize\n            ) {\n              break;\n            }\n\n            flushTextContentItem();\n            textState.fontName = fontNameArg;\n            textState.fontSize = fontSizeArg;\n            next(handleSetFont(fontNameArg, null));\n            return;\n          case OPS.setTextRise:\n            textState.textRise = args[0];\n            break;\n          case OPS.setHScale:\n            textState.textHScale = args[0] / 100;\n            break;\n          case OPS.setLeading:\n            textState.leading = args[0];\n            break;\n          case OPS.moveText:\n            textState.translateTextLineMatrix(args[0], args[1]);\n            textState.textMatrix = textState.textLineMatrix.slice();\n            break;\n          case OPS.setLeadingMoveText:\n            textState.leading = -args[1];\n            textState.translateTextLineMatrix(args[0], args[1]);\n            textState.textMatrix = textState.textLineMatrix.slice();\n            break;\n          case OPS.nextLine:\n            textState.carriageReturn();\n            break;\n          case OPS.setTextMatrix:\n            textState.setTextMatrix(\n              args[0],\n              args[1],\n              args[2],\n              args[3],\n              args[4],\n              args[5]\n            );\n            textState.setTextLineMatrix(\n              args[0],\n              args[1],\n              args[2],\n              args[3],\n              args[4],\n              args[5]\n            );\n            updateAdvanceScale();\n            break;\n          case OPS.setCharSpacing:\n            textState.charSpacing = args[0];\n            break;\n          case OPS.setWordSpacing:\n            textState.wordSpacing = args[0];\n            break;\n          case OPS.beginText:\n            textState.textMatrix = IDENTITY_MATRIX.slice();\n            textState.textLineMatrix = IDENTITY_MATRIX.slice();\n            break;\n          case OPS.showSpacedText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n\n            const spaceFactor =\n              ((textState.font.vertical ? 1 : -1) * textState.fontSize) / 1000;\n            const elements = args[0];\n            for (let i = 0, ii = elements.length; i < ii; i++) {\n              const item = elements[i];\n              if (typeof item === \"string\") {\n                showSpacedTextBuffer.push(item);\n              } else if (typeof item === \"number\" && item !== 0) {\n                // PDF Specification 5.3.2 states:\n                // The number is expressed in thousandths of a unit of text\n                // space.\n                // This amount is subtracted from the current horizontal or\n                // vertical coordinate, depending on the writing mode.\n                // In the default coordinate system, a positive adjustment\n                // has the effect of moving the next glyph painted either to\n                // the left or down by the given amount.\n                const str = showSpacedTextBuffer.join(\"\");\n                showSpacedTextBuffer.length = 0;\n                buildTextContentItem({\n                  chars: str,\n                  extraSpacing: item * spaceFactor,\n                });\n              }\n            }\n\n            if (showSpacedTextBuffer.length > 0) {\n              const str = showSpacedTextBuffer.join(\"\");\n              showSpacedTextBuffer.length = 0;\n              buildTextContentItem({\n                chars: str,\n                extraSpacing: 0,\n              });\n            }\n            break;\n          case OPS.showText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n            buildTextContentItem({\n              chars: args[0],\n              extraSpacing: 0,\n            });\n            break;\n          case OPS.nextLineShowText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n            textState.carriageReturn();\n            buildTextContentItem({\n              chars: args[0],\n              extraSpacing: 0,\n            });\n            break;\n          case OPS.nextLineSetSpacingShowText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n            textState.wordSpacing = args[0];\n            textState.charSpacing = args[1];\n            textState.carriageReturn();\n            buildTextContentItem({\n              chars: args[2],\n              extraSpacing: 0,\n            });\n            break;\n          case OPS.paintXObject:\n            flushTextContentItem();\n            if (!xobjs) {\n              xobjs = resources.get(\"XObject\") || Dict.empty;\n            }\n\n            var isValidName = args[0] instanceof Name;\n            var name = args[0].name;\n\n            if (isValidName && emptyXObjectCache.getByName(name)) {\n              break;\n            }\n\n            next(\n              new Promise(function (resolveXObject, rejectXObject) {\n                if (!isValidName) {\n                  throw new FormatError(\"XObject must be referred to by name.\");\n                }\n\n                let xobj = xobjs.getRaw(name);\n                if (xobj instanceof Ref) {\n                  if (emptyXObjectCache.getByRef(xobj)) {\n                    resolveXObject();\n                    return;\n                  }\n\n                  const globalImage = self.globalImageCache.getData(\n                    xobj,\n                    self.pageIndex\n                  );\n                  if (globalImage) {\n                    resolveXObject();\n                    return;\n                  }\n\n                  xobj = xref.fetch(xobj);\n                }\n\n                if (!(xobj instanceof BaseStream)) {\n                  throw new FormatError(\"XObject should be a stream\");\n                }\n\n                const type = xobj.dict.get(\"Subtype\");\n                if (!(type instanceof Name)) {\n                  throw new FormatError(\"XObject should have a Name subtype\");\n                }\n\n                if (type.name !== \"Form\") {\n                  emptyXObjectCache.set(name, xobj.dict.objId, true);\n\n                  resolveXObject();\n                  return;\n                }\n\n                // Use a new `StateManager` to prevent incorrect positioning\n                // of textItems *after* the Form XObject, since errors in the\n                // data can otherwise prevent `restore` operators from\n                // executing.\n                // NOTE: Only an issue when `options.ignoreErrors === true`.\n                const currentState = stateManager.state.clone();\n                const xObjStateManager = new StateManager(currentState);\n\n                const matrix = xobj.dict.getArray(\"Matrix\");\n                if (Array.isArray(matrix) && matrix.length === 6) {\n                  xObjStateManager.transform(matrix);\n                }\n\n                // Enqueue the `textContent` chunk before parsing the /Form\n                // XObject.\n                enqueueChunk();\n                const sinkWrapper = {\n                  enqueueInvoked: false,\n\n                  enqueue(chunk, size) {\n                    this.enqueueInvoked = true;\n                    sink.enqueue(chunk, size);\n                  },\n\n                  get desiredSize() {\n                    return sink.desiredSize;\n                  },\n\n                  get ready() {\n                    return sink.ready;\n                  },\n                };\n\n                self\n                  .getTextContent({\n                    stream: xobj,\n                    task,\n                    resources: xobj.dict.get(\"Resources\") || resources,\n                    stateManager: xObjStateManager,\n                    includeMarkedContent,\n                    sink: sinkWrapper,\n                    seenStyles,\n                    viewBox,\n                    markedContentData,\n                    disableNormalization,\n                  })\n                  .then(function () {\n                    if (!sinkWrapper.enqueueInvoked) {\n                      emptyXObjectCache.set(name, xobj.dict.objId, true);\n                    }\n                    resolveXObject();\n                  }, rejectXObject);\n              }).catch(function (reason) {\n                if (reason instanceof AbortException) {\n                  return;\n                }\n                if (self.options.ignoreErrors) {\n                  // Error(s) in the XObject -- allow text-extraction to\n                  // continue.\n                  warn(`getTextContent - ignoring XObject: \"${reason}\".`);\n                  return;\n                }\n                throw reason;\n              })\n            );\n            return;\n          case OPS.setGState:\n            isValidName = args[0] instanceof Name;\n            name = args[0].name;\n\n            if (isValidName && emptyGStateCache.getByName(name)) {\n              break;\n            }\n\n            next(\n              new Promise(function (resolveGState, rejectGState) {\n                if (!isValidName) {\n                  throw new FormatError(\"GState must be referred to by name.\");\n                }\n\n                const extGState = resources.get(\"ExtGState\");\n                if (!(extGState instanceof Dict)) {\n                  throw new FormatError(\"ExtGState should be a dictionary.\");\n                }\n\n                const gState = extGState.get(name);\n                // TODO: Attempt to lookup cached GStates by reference as well,\n                //       if and only if there are PDF documents where doing so\n                //       would significantly improve performance.\n                if (!(gState instanceof Dict)) {\n                  throw new FormatError(\"GState should be a dictionary.\");\n                }\n\n                const gStateFont = gState.get(\"Font\");\n                if (!gStateFont) {\n                  emptyGStateCache.set(name, gState.objId, true);\n\n                  resolveGState();\n                  return;\n                }\n                flushTextContentItem();\n\n                textState.fontName = null;\n                textState.fontSize = gStateFont[1];\n                handleSetFont(null, gStateFont[0]).then(\n                  resolveGState,\n                  rejectGState\n                );\n              }).catch(function (reason) {\n                if (reason instanceof AbortException) {\n                  return;\n                }\n                if (self.options.ignoreErrors) {\n                  // Error(s) in the ExtGState -- allow text-extraction to\n                  // continue.\n                  warn(`getTextContent - ignoring ExtGState: \"${reason}\".`);\n                  return;\n                }\n                throw reason;\n              })\n            );\n            return;\n          case OPS.beginMarkedContent:\n            flushTextContentItem();\n            if (includeMarkedContent) {\n              markedContentData.level++;\n\n              textContent.items.push({\n                type: \"beginMarkedContent\",\n                tag: args[0] instanceof Name ? args[0].name : null,\n              });\n            }\n            break;\n          case OPS.beginMarkedContentProps:\n            flushTextContentItem();\n            if (includeMarkedContent) {\n              markedContentData.level++;\n\n              let mcid = null;\n              if (args[1] instanceof Dict) {\n                mcid = args[1].get(\"MCID\");\n              }\n              textContent.items.push({\n                type: \"beginMarkedContentProps\",\n                id: Number.isInteger(mcid)\n                  ? `${self.idFactory.getPageObjId()}_mc${mcid}`\n                  : null,\n                tag: args[0] instanceof Name ? args[0].name : null,\n              });\n            }\n            break;\n          case OPS.endMarkedContent:\n            flushTextContentItem();\n            if (includeMarkedContent) {\n              if (markedContentData.level === 0) {\n                // Handle unbalanced beginMarkedContent/endMarkedContent\n                // operators (fixes issue15629.pdf).\n                break;\n              }\n              markedContentData.level--;\n\n              textContent.items.push({\n                type: \"endMarkedContent\",\n              });\n            }\n            break;\n          case OPS.restore:\n            if (\n              previousState &&\n              (previousState.font !== textState.font ||\n                previousState.fontSize !== textState.fontSize ||\n                previousState.fontName !== textState.fontName)\n            ) {\n              flushTextContentItem();\n            }\n            break;\n        } // switch\n        if (textContent.items.length >= sink.desiredSize) {\n          // Wait for ready, if we reach highWaterMark.\n          stop = true;\n          break;\n        }\n      } // while\n      if (stop) {\n        next(deferred);\n        return;\n      }\n      flushTextContentItem();\n      enqueueChunk();\n      resolve();\n    }).catch(reason => {\n      if (reason instanceof AbortException) {\n        return;\n      }\n      if (this.options.ignoreErrors) {\n        // Error(s) in the TextContent -- allow text-extraction to continue.\n        warn(\n          `getTextContent - ignoring errors during \"${task.name}\" ` +\n            `task: \"${reason}\".`\n        );\n\n        flushTextContentItem();\n        enqueueChunk();\n        return;\n      }\n      throw reason;\n    });\n  }\n\n  extractDataStructures(dict, baseDict, properties) {\n    const xref = this.xref;\n    let cidToGidBytes;\n    // 9.10.2\n    const toUnicodePromise = this.readToUnicode(\n      properties.toUnicode || dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\")\n    );\n\n    if (properties.composite) {\n      // CIDSystemInfo helps to match CID to glyphs\n      const cidSystemInfo = dict.get(\"CIDSystemInfo\");\n      if (cidSystemInfo instanceof Dict) {\n        properties.cidSystemInfo = {\n          registry: stringToPDFString(cidSystemInfo.get(\"Registry\")),\n          ordering: stringToPDFString(cidSystemInfo.get(\"Ordering\")),\n          supplement: cidSystemInfo.get(\"Supplement\"),\n        };\n      }\n\n      try {\n        const cidToGidMap = dict.get(\"CIDToGIDMap\");\n        if (cidToGidMap instanceof BaseStream) {\n          cidToGidBytes = cidToGidMap.getBytes();\n        }\n      } catch (ex) {\n        if (!this.options.ignoreErrors) {\n          throw ex;\n        }\n        warn(`extractDataStructures - ignoring CIDToGIDMap data: \"${ex}\".`);\n      }\n    }\n\n    // Based on 9.6.6 of the spec the encoding can come from multiple places\n    // and depends on the font type. The base encoding and differences are\n    // read here, but the encoding that is actually used is chosen during\n    // glyph mapping in the font.\n    // TODO: Loading the built in encoding in the font would allow the\n    // differences to be merged in here not require us to hold on to it.\n    const differences = [];\n    let baseEncodingName = null;\n    let encoding;\n    if (dict.has(\"Encoding\")) {\n      encoding = dict.get(\"Encoding\");\n      if (encoding instanceof Dict) {\n        baseEncodingName = encoding.get(\"BaseEncoding\");\n        baseEncodingName =\n          baseEncodingName instanceof Name ? baseEncodingName.name : null;\n        // Load the differences between the base and original\n        if (encoding.has(\"Differences\")) {\n          const diffEncoding = encoding.get(\"Differences\");\n          let index = 0;\n          for (const entry of diffEncoding) {\n            const data = xref.fetchIfRef(entry);\n            if (typeof data === \"number\") {\n              index = data;\n            } else if (data instanceof Name) {\n              differences[index++] = data.name;\n            } else {\n              throw new FormatError(\n                `Invalid entry in 'Differences' array: ${data}`\n              );\n            }\n          }\n        }\n      } else if (encoding instanceof Name) {\n        baseEncodingName = encoding.name;\n      } else {\n        const msg = \"Encoding is not a Name nor a Dict\";\n\n        if (!this.options.ignoreErrors) {\n          throw new FormatError(msg);\n        }\n        warn(msg);\n      }\n      // According to table 114 if the encoding is a named encoding it must be\n      // one of these predefined encodings.\n      if (\n        baseEncodingName !== \"MacRomanEncoding\" &&\n        baseEncodingName !== \"MacExpertEncoding\" &&\n        baseEncodingName !== \"WinAnsiEncoding\"\n      ) {\n        baseEncodingName = null;\n      }\n    }\n\n    const nonEmbeddedFont = !properties.file || properties.isInternalFont,\n      isSymbolsFontName = getSymbolsFonts()[properties.name];\n    // Ignore an incorrectly specified named encoding for non-embedded\n    // symbol fonts (fixes issue16464.pdf).\n    if (baseEncodingName && nonEmbeddedFont && isSymbolsFontName) {\n      baseEncodingName = null;\n    }\n\n    if (baseEncodingName) {\n      properties.defaultEncoding = getEncoding(baseEncodingName);\n    } else {\n      const isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n      const isNonsymbolicFont = !!(properties.flags & FontFlags.Nonsymbolic);\n      // According to \"Table 114\" in section \"9.6.6.1 General\" (under\n      // \"9.6.6 Character Encoding\") of the PDF specification, a Nonsymbolic\n      // font should use the `StandardEncoding` if no encoding is specified.\n      encoding = StandardEncoding;\n      if (properties.type === \"TrueType\" && !isNonsymbolicFont) {\n        encoding = WinAnsiEncoding;\n      }\n      // The Symbolic attribute can be misused for regular fonts\n      // Heuristic: we have to check if the font is a standard one also\n      if (isSymbolicFont || isSymbolsFontName) {\n        encoding = MacRomanEncoding;\n        if (nonEmbeddedFont) {\n          if (/Symbol/i.test(properties.name)) {\n            encoding = SymbolSetEncoding;\n          } else if (/Dingbats/i.test(properties.name)) {\n            encoding = ZapfDingbatsEncoding;\n          } else if (/Wingdings/i.test(properties.name)) {\n            encoding = WinAnsiEncoding;\n          }\n        }\n      }\n      properties.defaultEncoding = encoding;\n    }\n\n    properties.differences = differences;\n    properties.baseEncodingName = baseEncodingName;\n    properties.hasEncoding = !!baseEncodingName || differences.length > 0;\n    properties.dict = dict;\n    return toUnicodePromise\n      .then(readToUnicode => {\n        properties.toUnicode = readToUnicode;\n        return this.buildToUnicode(properties);\n      })\n      .then(builtToUnicode => {\n        properties.toUnicode = builtToUnicode;\n        if (cidToGidBytes) {\n          properties.cidToGidMap = this.readCidToGidMap(\n            cidToGidBytes,\n            builtToUnicode\n          );\n        }\n        return properties;\n      });\n  }\n\n  /**\n   * @returns {Array}\n   * @private\n   */\n  _simpleFontToUnicode(properties, forceGlyphs = false) {\n    assert(!properties.composite, \"Must be a simple font.\");\n\n    const toUnicode = [];\n    const encoding = properties.defaultEncoding.slice();\n    const baseEncodingName = properties.baseEncodingName;\n    // Merge in the differences array.\n    const differences = properties.differences;\n    for (const charcode in differences) {\n      const glyphName = differences[charcode];\n      if (glyphName === \".notdef\") {\n        // Skip .notdef to prevent rendering errors, e.g. boxes appearing\n        // where there should be spaces (fixes issue5256.pdf).\n        continue;\n      }\n      encoding[charcode] = glyphName;\n    }\n    const glyphsUnicodeMap = getGlyphsUnicode();\n    for (const charcode in encoding) {\n      // a) Map the character code to a character name.\n      let glyphName = encoding[charcode];\n      if (glyphName === \"\") {\n        continue;\n      }\n      // b) Look up the character name in the Adobe Glyph List (see the\n      //    Bibliography) to obtain the corresponding Unicode value.\n      let unicode = glyphsUnicodeMap[glyphName];\n      if (unicode !== undefined) {\n        toUnicode[charcode] = String.fromCharCode(unicode);\n        continue;\n      }\n      // (undocumented) c) Few heuristics to recognize unknown glyphs\n      // NOTE: Adobe Reader does not do this step, but OSX Preview does\n      let code = 0;\n      switch (glyphName[0]) {\n        case \"G\": // Gxx glyph\n          if (glyphName.length === 3) {\n            code = parseInt(glyphName.substring(1), 16);\n          }\n          break;\n        case \"g\": // g00xx glyph\n          if (glyphName.length === 5) {\n            code = parseInt(glyphName.substring(1), 16);\n          }\n          break;\n        case \"C\": // Cdd{d} glyph\n        case \"c\": // cdd{d} glyph\n          if (glyphName.length >= 3 && glyphName.length <= 4) {\n            const codeStr = glyphName.substring(1);\n\n            if (forceGlyphs) {\n              code = parseInt(codeStr, 16);\n              break;\n            }\n            // Normally the Cdd{d}/cdd{d} glyphName format will contain\n            // regular, i.e. base 10, charCodes (see issue4550.pdf)...\n            code = +codeStr;\n\n            // ... however some PDF generators violate that assumption by\n            // containing glyph, i.e. base 16, codes instead.\n            // In that case we need to re-parse the *entire* encoding to\n            // prevent broken text-selection (fixes issue9655_reduced.pdf).\n            if (Number.isNaN(code) && Number.isInteger(parseInt(codeStr, 16))) {\n              return this._simpleFontToUnicode(\n                properties,\n                /* forceGlyphs */ true\n              );\n            }\n          }\n          break;\n        case \"u\": // 'uniXXXX'/'uXXXX{XX}' glyphs\n          unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n          if (unicode !== -1) {\n            code = unicode;\n          }\n          break;\n        default:\n          // Support (some) non-standard ligatures.\n          switch (glyphName) {\n            case \"f_h\":\n            case \"f_t\":\n            case \"T_h\":\n              toUnicode[charcode] = glyphName.replaceAll(\"_\", \"\");\n              continue;\n          }\n          break;\n      }\n      if (code > 0 && code <= 0x10ffff && Number.isInteger(code)) {\n        // If `baseEncodingName` is one the predefined encodings, and `code`\n        // equals `charcode`, using the glyph defined in the baseEncoding\n        // seems to yield a better `toUnicode` mapping (fixes issue 5070).\n        if (baseEncodingName && code === +charcode) {\n          const baseEncoding = getEncoding(baseEncodingName);\n          if (baseEncoding && (glyphName = baseEncoding[charcode])) {\n            toUnicode[charcode] = String.fromCharCode(\n              glyphsUnicodeMap[glyphName]\n            );\n            continue;\n          }\n        }\n        toUnicode[charcode] = String.fromCodePoint(code);\n      }\n    }\n    return toUnicode;\n  }\n\n  /**\n   * Builds a char code to unicode map based on section 9.10 of the spec.\n   * @param {Object} properties Font properties object.\n   * @returns {Promise} A Promise that is resolved with a\n   *   {ToUnicodeMap|IdentityToUnicodeMap} object.\n   */\n  async buildToUnicode(properties) {\n    properties.hasIncludedToUnicodeMap = properties.toUnicode?.length > 0;\n\n    // Section 9.10.2 Mapping Character Codes to Unicode Values\n    if (properties.hasIncludedToUnicodeMap) {\n      // Some fonts contain incomplete ToUnicode data, causing issues with\n      // text-extraction. For simple fonts, containing encoding information,\n      // use a fallback ToUnicode map to improve this (fixes issue8229.pdf).\n      if (!properties.composite && properties.hasEncoding) {\n        properties.fallbackToUnicode = this._simpleFontToUnicode(properties);\n      }\n      return properties.toUnicode;\n    }\n\n    // According to the spec if the font is a simple font we should only map\n    // to unicode if the base encoding is MacRoman, MacExpert, or WinAnsi or\n    // the differences array only contains adobe standard or symbol set names,\n    // in pratice it seems better to always try to create a toUnicode map\n    // based of the default encoding.\n    if (!properties.composite /* is simple font */) {\n      return new ToUnicodeMap(this._simpleFontToUnicode(properties));\n    }\n\n    // If the font is a composite font that uses one of the predefined CMaps\n    // listed in Table 118 (except Identity–H and Identity–V) or whose\n    // descendant CIDFont uses the Adobe-GB1, Adobe-CNS1, Adobe-Japan1, or\n    // Adobe-Korea1 character collection:\n    if (\n      properties.composite &&\n      ((properties.cMap.builtInCMap &&\n        !(properties.cMap instanceof IdentityCMap)) ||\n        (properties.cidSystemInfo.registry === \"Adobe\" &&\n          (properties.cidSystemInfo.ordering === \"GB1\" ||\n            properties.cidSystemInfo.ordering === \"CNS1\" ||\n            properties.cidSystemInfo.ordering === \"Japan1\" ||\n            properties.cidSystemInfo.ordering === \"Korea1\")))\n    ) {\n      // Then:\n      // a) Map the character code to a character identifier (CID) according\n      // to the font’s CMap.\n      // b) Obtain the registry and ordering of the character collection used\n      // by the font’s CMap (for example, Adobe and Japan1) from its\n      // CIDSystemInfo dictionary.\n      const { registry, ordering } = properties.cidSystemInfo;\n      // c) Construct a second CMap name by concatenating the registry and\n      // ordering obtained in step (b) in the format registry–ordering–UCS2\n      // (for example, Adobe–Japan1–UCS2).\n      const ucs2CMapName = Name.get(`${registry}-${ordering}-UCS2`);\n      // d) Obtain the CMap with the name constructed in step (c) (available\n      // from the ASN Web site; see the Bibliography).\n      const ucs2CMap = await CMapFactory.create({\n        encoding: ucs2CMapName,\n        fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n        useCMap: null,\n      });\n      const toUnicode = [],\n        buf = [];\n      properties.cMap.forEach(function (charcode, cid) {\n        if (cid > 0xffff) {\n          throw new FormatError(\"Max size of CID is 65,535\");\n        }\n        // e) Map the CID obtained in step (a) according to the CMap\n        // obtained in step (d), producing a Unicode value.\n        const ucs2 = ucs2CMap.lookup(cid);\n        if (ucs2) {\n          buf.length = 0;\n          // Support multi-byte entries (fixes issue16176.pdf).\n          for (let i = 0, ii = ucs2.length; i < ii; i += 2) {\n            buf.push((ucs2.charCodeAt(i) << 8) + ucs2.charCodeAt(i + 1));\n          }\n          toUnicode[charcode] = String.fromCharCode(...buf);\n        }\n      });\n      return new ToUnicodeMap(toUnicode);\n    }\n\n    // The viewer's choice, just use an identity map.\n    return new IdentityToUnicodeMap(properties.firstChar, properties.lastChar);\n  }\n\n  readToUnicode(cmapObj) {\n    if (!cmapObj) {\n      return Promise.resolve(null);\n    }\n    if (cmapObj instanceof Name) {\n      return CMapFactory.create({\n        encoding: cmapObj,\n        fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n        useCMap: null,\n      }).then(function (cmap) {\n        if (cmap instanceof IdentityCMap) {\n          return new IdentityToUnicodeMap(0, 0xffff);\n        }\n        return new ToUnicodeMap(cmap.getMap());\n      });\n    } else if (cmapObj instanceof BaseStream) {\n      return CMapFactory.create({\n        encoding: cmapObj,\n        fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n        useCMap: null,\n      }).then(\n        function (cmap) {\n          if (cmap instanceof IdentityCMap) {\n            return new IdentityToUnicodeMap(0, 0xffff);\n          }\n          const map = new Array(cmap.length);\n          // Convert UTF-16BE\n          // NOTE: cmap can be a sparse array, so use forEach instead of\n          // `for(;;)` to iterate over all keys.\n          cmap.forEach(function (charCode, token) {\n            // Some cmaps contain *only* CID characters (fixes issue9367.pdf).\n            if (typeof token === \"number\") {\n              map[charCode] = String.fromCodePoint(token);\n              return;\n            }\n            const str = [];\n            for (let k = 0; k < token.length; k += 2) {\n              const w1 = (token.charCodeAt(k) << 8) | token.charCodeAt(k + 1);\n              if ((w1 & 0xf800) !== 0xd800) {\n                // w1 < 0xD800 || w1 > 0xDFFF\n                str.push(w1);\n                continue;\n              }\n              k += 2;\n              const w2 = (token.charCodeAt(k) << 8) | token.charCodeAt(k + 1);\n              str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000);\n            }\n            map[charCode] = String.fromCodePoint(...str);\n          });\n          return new ToUnicodeMap(map);\n        },\n        reason => {\n          if (reason instanceof AbortException) {\n            return null;\n          }\n          if (this.options.ignoreErrors) {\n            warn(`readToUnicode - ignoring ToUnicode data: \"${reason}\".`);\n            return null;\n          }\n          throw reason;\n        }\n      );\n    }\n    return Promise.resolve(null);\n  }\n\n  readCidToGidMap(glyphsData, toUnicode) {\n    // Extract the encoding from the CIDToGIDMap\n\n    // Set encoding 0 to later verify the font has an encoding\n    const result = [];\n    for (let j = 0, jj = glyphsData.length; j < jj; j++) {\n      const glyphID = (glyphsData[j++] << 8) | glyphsData[j];\n      const code = j >> 1;\n      if (glyphID === 0 && !toUnicode.has(code)) {\n        continue;\n      }\n      result[code] = glyphID;\n    }\n    return result;\n  }\n\n  extractWidths(dict, descriptor, properties) {\n    const xref = this.xref;\n    let glyphsWidths = [];\n    let defaultWidth = 0;\n    const glyphsVMetrics = [];\n    let defaultVMetrics;\n    let i, ii, j, jj, start, code, widths;\n    if (properties.composite) {\n      defaultWidth = dict.has(\"DW\") ? dict.get(\"DW\") : 1000;\n\n      widths = dict.get(\"W\");\n      if (widths) {\n        for (i = 0, ii = widths.length; i < ii; i++) {\n          start = xref.fetchIfRef(widths[i++]);\n          code = xref.fetchIfRef(widths[i]);\n          if (Array.isArray(code)) {\n            for (j = 0, jj = code.length; j < jj; j++) {\n              glyphsWidths[start++] = xref.fetchIfRef(code[j]);\n            }\n          } else {\n            const width = xref.fetchIfRef(widths[++i]);\n            for (j = start; j <= code; j++) {\n              glyphsWidths[j] = width;\n            }\n          }\n        }\n      }\n\n      if (properties.vertical) {\n        let vmetrics = dict.getArray(\"DW2\") || [880, -1000];\n        defaultVMetrics = [vmetrics[1], defaultWidth * 0.5, vmetrics[0]];\n        vmetrics = dict.get(\"W2\");\n        if (vmetrics) {\n          for (i = 0, ii = vmetrics.length; i < ii; i++) {\n            start = xref.fetchIfRef(vmetrics[i++]);\n            code = xref.fetchIfRef(vmetrics[i]);\n            if (Array.isArray(code)) {\n              for (j = 0, jj = code.length; j < jj; j++) {\n                glyphsVMetrics[start++] = [\n                  xref.fetchIfRef(code[j++]),\n                  xref.fetchIfRef(code[j++]),\n                  xref.fetchIfRef(code[j]),\n                ];\n              }\n            } else {\n              const vmetric = [\n                xref.fetchIfRef(vmetrics[++i]),\n                xref.fetchIfRef(vmetrics[++i]),\n                xref.fetchIfRef(vmetrics[++i]),\n              ];\n              for (j = start; j <= code; j++) {\n                glyphsVMetrics[j] = vmetric;\n              }\n            }\n          }\n        }\n      }\n    } else {\n      const firstChar = properties.firstChar;\n      widths = dict.get(\"Widths\");\n      if (widths) {\n        j = firstChar;\n        for (i = 0, ii = widths.length; i < ii; i++) {\n          glyphsWidths[j++] = xref.fetchIfRef(widths[i]);\n        }\n        defaultWidth = parseFloat(descriptor.get(\"MissingWidth\")) || 0;\n      } else {\n        // Trying get the BaseFont metrics (see comment above).\n        const baseFontName = dict.get(\"BaseFont\");\n        if (baseFontName instanceof Name) {\n          const metrics = this.getBaseFontMetrics(baseFontName.name);\n\n          glyphsWidths = this.buildCharCodeToWidth(metrics.widths, properties);\n          defaultWidth = metrics.defaultWidth;\n        }\n      }\n    }\n\n    // Heuristic: detection of monospace font by checking all non-zero widths\n    let isMonospace = true;\n    let firstWidth = defaultWidth;\n    for (const glyph in glyphsWidths) {\n      const glyphWidth = glyphsWidths[glyph];\n      if (!glyphWidth) {\n        continue;\n      }\n      if (!firstWidth) {\n        firstWidth = glyphWidth;\n        continue;\n      }\n      if (firstWidth !== glyphWidth) {\n        isMonospace = false;\n        break;\n      }\n    }\n    if (isMonospace) {\n      properties.flags |= FontFlags.FixedPitch;\n    } else {\n      // Clear the flag.\n      properties.flags &= ~FontFlags.FixedPitch;\n    }\n\n    properties.defaultWidth = defaultWidth;\n    properties.widths = glyphsWidths;\n    properties.defaultVMetrics = defaultVMetrics;\n    properties.vmetrics = glyphsVMetrics;\n  }\n\n  isSerifFont(baseFontName) {\n    // Simulating descriptor flags attribute\n    const fontNameWoStyle = baseFontName.split(\"-\")[0];\n    return (\n      fontNameWoStyle in getSerifFonts() || /serif/gi.test(fontNameWoStyle)\n    );\n  }\n\n  getBaseFontMetrics(name) {\n    let defaultWidth = 0;\n    let widths = Object.create(null);\n    let monospace = false;\n    const stdFontMap = getStdFontMap();\n    let lookupName = stdFontMap[name] || name;\n    const Metrics = getMetrics();\n\n    if (!(lookupName in Metrics)) {\n      // Use default fonts for looking up font metrics if the passed\n      // font is not a base font\n      lookupName = this.isSerifFont(name) ? \"Times-Roman\" : \"Helvetica\";\n    }\n    const glyphWidths = Metrics[lookupName];\n\n    if (typeof glyphWidths === \"number\") {\n      defaultWidth = glyphWidths;\n      monospace = true;\n    } else {\n      widths = glyphWidths(); // expand lazy widths array\n    }\n\n    return {\n      defaultWidth,\n      monospace,\n      widths,\n    };\n  }\n\n  buildCharCodeToWidth(widthsByGlyphName, properties) {\n    const widths = Object.create(null);\n    const differences = properties.differences;\n    const encoding = properties.defaultEncoding;\n    for (let charCode = 0; charCode < 256; charCode++) {\n      if (charCode in differences && widthsByGlyphName[differences[charCode]]) {\n        widths[charCode] = widthsByGlyphName[differences[charCode]];\n        continue;\n      }\n      if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) {\n        widths[charCode] = widthsByGlyphName[encoding[charCode]];\n        continue;\n      }\n    }\n    return widths;\n  }\n\n  preEvaluateFont(dict) {\n    const baseDict = dict;\n    let type = dict.get(\"Subtype\");\n    if (!(type instanceof Name)) {\n      throw new FormatError(\"invalid font Subtype\");\n    }\n\n    let composite = false;\n    let hash, toUnicode;\n    if (type.name === \"Type0\") {\n      // If font is a composite\n      //  - get the descendant font\n      //  - set the type according to the descendant font\n      //  - get the FontDescriptor from the descendant font\n      const df = dict.get(\"DescendantFonts\");\n      if (!df) {\n        throw new FormatError(\"Descendant fonts are not specified\");\n      }\n      dict = Array.isArray(df) ? this.xref.fetchIfRef(df[0]) : df;\n\n      if (!(dict instanceof Dict)) {\n        throw new FormatError(\"Descendant font is not a dictionary.\");\n      }\n      type = dict.get(\"Subtype\");\n      if (!(type instanceof Name)) {\n        throw new FormatError(\"invalid font Subtype\");\n      }\n      composite = true;\n    }\n\n    const firstChar = dict.get(\"FirstChar\") || 0,\n      lastChar = dict.get(\"LastChar\") || (composite ? 0xffff : 0xff);\n    const descriptor = dict.get(\"FontDescriptor\");\n    if (descriptor) {\n      hash = new MurmurHash3_64();\n\n      const encoding = baseDict.getRaw(\"Encoding\");\n      if (encoding instanceof Name) {\n        hash.update(encoding.name);\n      } else if (encoding instanceof Ref) {\n        hash.update(encoding.toString());\n      } else if (encoding instanceof Dict) {\n        for (const entry of encoding.getRawValues()) {\n          if (entry instanceof Name) {\n            hash.update(entry.name);\n          } else if (entry instanceof Ref) {\n            hash.update(entry.toString());\n          } else if (Array.isArray(entry)) {\n            // 'Differences' array (fixes bug1157493.pdf).\n            const diffLength = entry.length,\n              diffBuf = new Array(diffLength);\n\n            for (let j = 0; j < diffLength; j++) {\n              const diffEntry = entry[j];\n              if (diffEntry instanceof Name) {\n                diffBuf[j] = diffEntry.name;\n              } else if (\n                typeof diffEntry === \"number\" ||\n                diffEntry instanceof Ref\n              ) {\n                diffBuf[j] = diffEntry.toString();\n              }\n            }\n            hash.update(diffBuf.join());\n          }\n        }\n      }\n\n      hash.update(`${firstChar}-${lastChar}`); // Fixes issue10665_reduced.pdf\n\n      toUnicode = dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\");\n      if (toUnicode instanceof BaseStream) {\n        const stream = toUnicode.str || toUnicode;\n        const uint8array = stream.buffer\n          ? new Uint8Array(stream.buffer.buffer, 0, stream.bufferLength)\n          : new Uint8Array(\n              stream.bytes.buffer,\n              stream.start,\n              stream.end - stream.start\n            );\n        hash.update(uint8array);\n      } else if (toUnicode instanceof Name) {\n        hash.update(toUnicode.name);\n      }\n\n      const widths = dict.get(\"Widths\") || baseDict.get(\"Widths\");\n      if (Array.isArray(widths)) {\n        const widthsBuf = [];\n        for (const entry of widths) {\n          if (typeof entry === \"number\" || entry instanceof Ref) {\n            widthsBuf.push(entry.toString());\n          }\n        }\n        hash.update(widthsBuf.join());\n      }\n\n      if (composite) {\n        hash.update(\"compositeFont\");\n\n        const compositeWidths = dict.get(\"W\") || baseDict.get(\"W\");\n        if (Array.isArray(compositeWidths)) {\n          const widthsBuf = [];\n          for (const entry of compositeWidths) {\n            if (typeof entry === \"number\" || entry instanceof Ref) {\n              widthsBuf.push(entry.toString());\n            } else if (Array.isArray(entry)) {\n              const subWidthsBuf = [];\n              for (const element of entry) {\n                if (typeof element === \"number\" || element instanceof Ref) {\n                  subWidthsBuf.push(element.toString());\n                }\n              }\n              widthsBuf.push(`[${subWidthsBuf.join()}]`);\n            }\n          }\n          hash.update(widthsBuf.join());\n        }\n\n        const cidToGidMap =\n          dict.getRaw(\"CIDToGIDMap\") || baseDict.getRaw(\"CIDToGIDMap\");\n        if (cidToGidMap instanceof Name) {\n          hash.update(cidToGidMap.name);\n        } else if (cidToGidMap instanceof Ref) {\n          hash.update(cidToGidMap.toString());\n        } else if (cidToGidMap instanceof BaseStream) {\n          hash.update(cidToGidMap.peekBytes());\n        }\n      }\n    }\n\n    return {\n      descriptor,\n      dict,\n      baseDict,\n      composite,\n      type: type.name,\n      firstChar,\n      lastChar,\n      toUnicode,\n      hash: hash ? hash.hexdigest() : \"\",\n    };\n  }\n\n  async translateFont({\n    descriptor,\n    dict,\n    baseDict,\n    composite,\n    type,\n    firstChar,\n    lastChar,\n    toUnicode,\n    cssFontInfo,\n  }) {\n    const isType3Font = type === \"Type3\";\n    let properties;\n\n    if (!descriptor) {\n      if (isType3Font) {\n        // FontDescriptor is only required for Type3 fonts when the document\n        // is a tagged pdf. Create a barbebones one to get by.\n        descriptor = new Dict(null);\n        descriptor.set(\"FontName\", Name.get(type));\n        descriptor.set(\"FontBBox\", dict.getArray(\"FontBBox\") || [0, 0, 0, 0]);\n      } else {\n        // Before PDF 1.5 if the font was one of the base 14 fonts, having a\n        // FontDescriptor was not required.\n        // This case is here for compatibility.\n        let baseFontName = dict.get(\"BaseFont\");\n        if (!(baseFontName instanceof Name)) {\n          throw new FormatError(\"Base font is not specified\");\n        }\n\n        // Using base font name as a font name.\n        baseFontName = baseFontName.name.replaceAll(/[,_]/g, \"-\");\n        const metrics = this.getBaseFontMetrics(baseFontName);\n\n        // Simulating descriptor flags attribute\n        const fontNameWoStyle = baseFontName.split(\"-\")[0];\n        const flags =\n          (this.isSerifFont(fontNameWoStyle) ? FontFlags.Serif : 0) |\n          (metrics.monospace ? FontFlags.FixedPitch : 0) |\n          (getSymbolsFonts()[fontNameWoStyle]\n            ? FontFlags.Symbolic\n            : FontFlags.Nonsymbolic);\n\n        properties = {\n          type,\n          name: baseFontName,\n          loadedName: baseDict.loadedName,\n          systemFontInfo: null,\n          widths: metrics.widths,\n          defaultWidth: metrics.defaultWidth,\n          isSimulatedFlags: true,\n          flags,\n          firstChar,\n          lastChar,\n          toUnicode,\n          xHeight: 0,\n          capHeight: 0,\n          italicAngle: 0,\n          isType3Font,\n        };\n        const widths = dict.get(\"Widths\");\n\n        const standardFontName = getStandardFontName(baseFontName);\n        let file = null;\n        if (standardFontName) {\n          file = await this.fetchStandardFontData(standardFontName);\n          properties.isInternalFont = !!file;\n        }\n        if (!properties.isInternalFont && this.options.useSystemFonts) {\n          properties.systemFontInfo = getFontSubstitution(\n            this.systemFontCache,\n            this.idFactory,\n            this.options.standardFontDataUrl,\n            baseFontName,\n            standardFontName\n          );\n        }\n        return this.extractDataStructures(dict, dict, properties).then(\n          newProperties => {\n            if (widths) {\n              const glyphWidths = [];\n              let j = firstChar;\n              for (const width of widths) {\n                glyphWidths[j++] = this.xref.fetchIfRef(width);\n              }\n              newProperties.widths = glyphWidths;\n            } else {\n              newProperties.widths = this.buildCharCodeToWidth(\n                metrics.widths,\n                newProperties\n              );\n            }\n            return new Font(baseFontName, file, newProperties);\n          }\n        );\n      }\n    }\n\n    // According to the spec if 'FontDescriptor' is declared, 'FirstChar',\n    // 'LastChar' and 'Widths' should exist too, but some PDF encoders seem\n    // to ignore this rule when a variant of a standard font is used.\n    // TODO Fill the width array depending on which of the base font this is\n    // a variant.\n\n    let fontName = descriptor.get(\"FontName\");\n    let baseFont = dict.get(\"BaseFont\");\n    // Some bad PDFs have a string as the font name.\n    if (typeof fontName === \"string\") {\n      fontName = Name.get(fontName);\n    }\n    if (typeof baseFont === \"string\") {\n      baseFont = Name.get(baseFont);\n    }\n\n    const fontNameStr = fontName?.name;\n    const baseFontStr = baseFont?.name;\n    if (!isType3Font && fontNameStr !== baseFontStr) {\n      info(\n        `The FontDescriptor's FontName is \"${fontNameStr}\" but ` +\n          `should be the same as the Font's BaseFont \"${baseFontStr}\".`\n      );\n      // - Workaround for cases where e.g. fontNameStr = 'Arial' and\n      //   baseFontStr = 'Arial,Bold' (needed when no font file is embedded).\n      //\n      // - Workaround for cases where e.g. fontNameStr = 'wg09np' and\n      //   baseFontStr = 'Wingdings-Regular' (fixes issue7454.pdf).\n      if (\n        fontNameStr &&\n        baseFontStr &&\n        (baseFontStr.startsWith(fontNameStr) ||\n          (!isKnownFontName(fontNameStr) && isKnownFontName(baseFontStr)))\n      ) {\n        fontName = null;\n      }\n    }\n    fontName ||= baseFont;\n\n    if (!(fontName instanceof Name)) {\n      throw new FormatError(\"invalid font name\");\n    }\n\n    let fontFile, subtype, length1, length2, length3;\n    try {\n      fontFile = descriptor.get(\"FontFile\", \"FontFile2\", \"FontFile3\");\n    } catch (ex) {\n      if (!this.options.ignoreErrors) {\n        throw ex;\n      }\n      warn(`translateFont - fetching \"${fontName.name}\" font file: \"${ex}\".`);\n      fontFile = new NullStream();\n    }\n    let isInternalFont = false;\n    let glyphScaleFactors = null;\n    let systemFontInfo = null;\n    if (fontFile) {\n      if (fontFile.dict) {\n        const subtypeEntry = fontFile.dict.get(\"Subtype\");\n        if (subtypeEntry instanceof Name) {\n          subtype = subtypeEntry.name;\n        }\n        length1 = fontFile.dict.get(\"Length1\");\n        length2 = fontFile.dict.get(\"Length2\");\n        length3 = fontFile.dict.get(\"Length3\");\n      }\n    } else if (cssFontInfo) {\n      // We've a missing XFA font.\n      const standardFontName = getXfaFontName(fontName.name);\n      if (standardFontName) {\n        cssFontInfo.fontFamily = `${cssFontInfo.fontFamily}-PdfJS-XFA`;\n        cssFontInfo.metrics = standardFontName.metrics || null;\n        glyphScaleFactors = standardFontName.factors || null;\n        fontFile = await this.fetchStandardFontData(standardFontName.name);\n        isInternalFont = !!fontFile;\n\n        // We're using a substitution font but for example widths (if any)\n        // are related to the glyph positions in the font.\n        // So we overwrite everything here to be sure that widths are\n        // correct.\n        baseDict = dict = getXfaFontDict(fontName.name);\n        composite = true;\n      }\n    } else if (!isType3Font) {\n      const standardFontName = getStandardFontName(fontName.name);\n      if (standardFontName) {\n        fontFile = await this.fetchStandardFontData(standardFontName);\n        isInternalFont = !!fontFile;\n      }\n      if (!isInternalFont && this.options.useSystemFonts) {\n        systemFontInfo = getFontSubstitution(\n          this.systemFontCache,\n          this.idFactory,\n          this.options.standardFontDataUrl,\n          fontName.name,\n          standardFontName\n        );\n      }\n    }\n\n    properties = {\n      type,\n      name: fontName.name,\n      subtype,\n      file: fontFile,\n      length1,\n      length2,\n      length3,\n      isInternalFont,\n      loadedName: baseDict.loadedName,\n      composite,\n      fixedPitch: false,\n      fontMatrix: dict.getArray(\"FontMatrix\") || FONT_IDENTITY_MATRIX,\n      firstChar,\n      lastChar,\n      toUnicode,\n      bbox: descriptor.getArray(\"FontBBox\") || dict.getArray(\"FontBBox\"),\n      ascent: descriptor.get(\"Ascent\"),\n      descent: descriptor.get(\"Descent\"),\n      xHeight: descriptor.get(\"XHeight\") || 0,\n      capHeight: descriptor.get(\"CapHeight\") || 0,\n      flags: descriptor.get(\"Flags\"),\n      italicAngle: descriptor.get(\"ItalicAngle\") || 0,\n      isType3Font,\n      cssFontInfo,\n      scaleFactors: glyphScaleFactors,\n      systemFontInfo,\n    };\n\n    if (composite) {\n      const cidEncoding = baseDict.get(\"Encoding\");\n      if (cidEncoding instanceof Name) {\n        properties.cidEncoding = cidEncoding.name;\n      }\n      const cMap = await CMapFactory.create({\n        encoding: cidEncoding,\n        fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n        useCMap: null,\n      });\n      properties.cMap = cMap;\n      properties.vertical = properties.cMap.vertical;\n    }\n\n    return this.extractDataStructures(dict, baseDict, properties).then(\n      newProperties => {\n        this.extractWidths(dict, descriptor, newProperties);\n\n        return new Font(fontName.name, fontFile, newProperties);\n      }\n    );\n  }\n\n  static buildFontPaths(font, glyphs, handler, evaluatorOptions) {\n    function buildPath(fontChar) {\n      const glyphName = `${font.loadedName}_path_${fontChar}`;\n      try {\n        if (font.renderer.hasBuiltPath(fontChar)) {\n          return;\n        }\n        handler.send(\"commonobj\", [\n          glyphName,\n          \"FontPath\",\n          font.renderer.getPathJs(fontChar),\n        ]);\n      } catch (reason) {\n        if (evaluatorOptions.ignoreErrors) {\n          warn(`buildFontPaths - ignoring ${glyphName} glyph: \"${reason}\".`);\n          return;\n        }\n        throw reason;\n      }\n    }\n\n    for (const glyph of glyphs) {\n      buildPath(glyph.fontChar);\n\n      // If the glyph has an accent we need to build a path for its\n      // fontChar too, otherwise CanvasGraphics_paintChar will fail.\n      const accent = glyph.accent;\n      if (accent?.fontChar) {\n        buildPath(accent.fontChar);\n      }\n    }\n  }\n\n  static get fallbackFontDict() {\n    const dict = new Dict();\n    dict.set(\"BaseFont\", Name.get(\"Helvetica\"));\n    dict.set(\"Type\", Name.get(\"FallbackType\"));\n    dict.set(\"Subtype\", Name.get(\"FallbackType\"));\n    dict.set(\"Encoding\", Name.get(\"WinAnsiEncoding\"));\n\n    return shadow(this, \"fallbackFontDict\", dict);\n  }\n}\n\nclass TranslatedFont {\n  constructor({ loadedName, font, dict, evaluatorOptions }) {\n    this.loadedName = loadedName;\n    this.font = font;\n    this.dict = dict;\n    this._evaluatorOptions = evaluatorOptions || DefaultPartialEvaluatorOptions;\n    this.type3Loaded = null;\n    this.type3Dependencies = font.isType3Font ? new Set() : null;\n    this.sent = false;\n  }\n\n  send(handler) {\n    if (this.sent) {\n      return;\n    }\n    this.sent = true;\n\n    handler.send(\"commonobj\", [\n      this.loadedName,\n      \"Font\",\n      this.font.exportData(this._evaluatorOptions.fontExtraProperties),\n    ]);\n  }\n\n  fallback(handler) {\n    if (!this.font.data) {\n      return;\n    }\n    // When font loading failed, fall back to the built-in font renderer.\n    this.font.disableFontFace = true;\n    // An arbitrary number of text rendering operators could have been\n    // encountered between the point in time when the 'Font' message was sent\n    // to the main-thread, and the point in time when the 'FontFallback'\n    // message was received on the worker-thread.\n    // To ensure that all 'FontPath's are available on the main-thread, when\n    // font loading failed, attempt to resend *all* previously parsed glyphs.\n    PartialEvaluator.buildFontPaths(\n      this.font,\n      /* glyphs = */ this.font.glyphCacheValues,\n      handler,\n      this._evaluatorOptions\n    );\n  }\n\n  loadType3Data(evaluator, resources, task) {\n    if (this.type3Loaded) {\n      return this.type3Loaded;\n    }\n    if (!this.font.isType3Font) {\n      throw new Error(\"Must be a Type3 font.\");\n    }\n    // When parsing Type3 glyphs, always ignore them if there are errors.\n    // Compared to the parsing of e.g. an entire page, it doesn't really\n    // make sense to only be able to render a Type3 glyph partially.\n    const type3Evaluator = evaluator.clone({ ignoreErrors: false });\n    type3Evaluator.parsingType3Font = true;\n    // Prevent circular references in Type3 fonts.\n    const type3FontRefs = new RefSet(evaluator.type3FontRefs);\n    if (this.dict.objId && !type3FontRefs.has(this.dict.objId)) {\n      type3FontRefs.put(this.dict.objId);\n    }\n    type3Evaluator.type3FontRefs = type3FontRefs;\n\n    const translatedFont = this.font,\n      type3Dependencies = this.type3Dependencies;\n    let loadCharProcsPromise = Promise.resolve();\n    const charProcs = this.dict.get(\"CharProcs\");\n    const fontResources = this.dict.get(\"Resources\") || resources;\n    const charProcOperatorList = Object.create(null);\n\n    const fontBBox = Util.normalizeRect(translatedFont.bbox || [0, 0, 0, 0]),\n      width = fontBBox[2] - fontBBox[0],\n      height = fontBBox[3] - fontBBox[1];\n    const fontBBoxSize = Math.hypot(width, height);\n\n    for (const key of charProcs.getKeys()) {\n      loadCharProcsPromise = loadCharProcsPromise.then(() => {\n        const glyphStream = charProcs.get(key);\n        const operatorList = new OperatorList();\n        return type3Evaluator\n          .getOperatorList({\n            stream: glyphStream,\n            task,\n            resources: fontResources,\n            operatorList,\n          })\n          .then(() => {\n            // According to the PDF specification, section \"9.6.5 Type 3 Fonts\"\n            // and \"Table 113\":\n            //  \"A glyph description that begins with the d1 operator should\n            //   not execute any operators that set the colour (or other\n            //   colour-related parameters) in the graphics state;\n            //   any use of such operators shall be ignored.\"\n            if (operatorList.fnArray[0] === OPS.setCharWidthAndBounds) {\n              this._removeType3ColorOperators(operatorList, fontBBoxSize);\n            }\n            charProcOperatorList[key] = operatorList.getIR();\n\n            for (const dependency of operatorList.dependencies) {\n              type3Dependencies.add(dependency);\n            }\n          })\n          .catch(function (reason) {\n            warn(`Type3 font resource \"${key}\" is not available.`);\n            const dummyOperatorList = new OperatorList();\n            charProcOperatorList[key] = dummyOperatorList.getIR();\n          });\n      });\n    }\n    this.type3Loaded = loadCharProcsPromise.then(() => {\n      translatedFont.charProcOperatorList = charProcOperatorList;\n      if (this._bbox) {\n        translatedFont.isCharBBox = true;\n        translatedFont.bbox = this._bbox;\n      }\n    });\n    return this.type3Loaded;\n  }\n\n  /**\n   * @private\n   */\n  _removeType3ColorOperators(operatorList, fontBBoxSize = NaN) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        operatorList.fnArray[0] === OPS.setCharWidthAndBounds,\n        \"Type3 glyph shall start with the d1 operator.\"\n      );\n    }\n    const charBBox = Util.normalizeRect(operatorList.argsArray[0].slice(2)),\n      width = charBBox[2] - charBBox[0],\n      height = charBBox[3] - charBBox[1];\n    const charBBoxSize = Math.hypot(width, height);\n\n    if (width === 0 || height === 0) {\n      // Skip the d1 operator when its bounds are bogus (fixes issue14953.pdf).\n      operatorList.fnArray.splice(0, 1);\n      operatorList.argsArray.splice(0, 1);\n    } else if (\n      fontBBoxSize === 0 ||\n      Math.round(charBBoxSize / fontBBoxSize) >= 10\n    ) {\n      // Override the fontBBox when it's undefined/empty, or when it's at least\n      // (approximately) one order of magnitude smaller than the charBBox\n      // (fixes issue14999_reduced.pdf).\n      if (!this._bbox) {\n        this._bbox = [Infinity, Infinity, -Infinity, -Infinity];\n      }\n      this._bbox[0] = Math.min(this._bbox[0], charBBox[0]);\n      this._bbox[1] = Math.min(this._bbox[1], charBBox[1]);\n      this._bbox[2] = Math.max(this._bbox[2], charBBox[2]);\n      this._bbox[3] = Math.max(this._bbox[3], charBBox[3]);\n    }\n\n    let i = 0,\n      ii = operatorList.length;\n    while (i < ii) {\n      switch (operatorList.fnArray[i]) {\n        case OPS.setCharWidthAndBounds:\n          break; // Handled above.\n        case OPS.setStrokeColorSpace:\n        case OPS.setFillColorSpace:\n        case OPS.setStrokeColor:\n        case OPS.setStrokeColorN:\n        case OPS.setFillColor:\n        case OPS.setFillColorN:\n        case OPS.setStrokeGray:\n        case OPS.setFillGray:\n        case OPS.setStrokeRGBColor:\n        case OPS.setFillRGBColor:\n        case OPS.setStrokeCMYKColor:\n        case OPS.setFillCMYKColor:\n        case OPS.shadingFill:\n        case OPS.setRenderingIntent:\n          operatorList.fnArray.splice(i, 1);\n          operatorList.argsArray.splice(i, 1);\n          ii--;\n          continue;\n\n        case OPS.setGState:\n          const [gStateObj] = operatorList.argsArray[i];\n          let j = 0,\n            jj = gStateObj.length;\n          while (j < jj) {\n            const [gStateKey] = gStateObj[j];\n            switch (gStateKey) {\n              case \"TR\":\n              case \"TR2\":\n              case \"HT\":\n              case \"BG\":\n              case \"BG2\":\n              case \"UCR\":\n              case \"UCR2\":\n                gStateObj.splice(j, 1);\n                jj--;\n                continue;\n            }\n            j++;\n          }\n          break;\n      }\n      i++;\n    }\n  }\n}\n\nclass StateManager {\n  constructor(initialState = new EvalState()) {\n    this.state = initialState;\n    this.stateStack = [];\n  }\n\n  save() {\n    const old = this.state;\n    this.stateStack.push(this.state);\n    this.state = old.clone();\n  }\n\n  restore() {\n    const prev = this.stateStack.pop();\n    if (prev) {\n      this.state = prev;\n    }\n  }\n\n  transform(args) {\n    this.state.ctm = Util.transform(this.state.ctm, args);\n  }\n}\n\nclass TextState {\n  constructor() {\n    this.ctm = new Float32Array(IDENTITY_MATRIX);\n    this.fontName = null;\n    this.fontSize = 0;\n    this.loadedName = null;\n    this.font = null;\n    this.fontMatrix = FONT_IDENTITY_MATRIX;\n    this.textMatrix = IDENTITY_MATRIX.slice();\n    this.textLineMatrix = IDENTITY_MATRIX.slice();\n    this.charSpacing = 0;\n    this.wordSpacing = 0;\n    this.leading = 0;\n    this.textHScale = 1;\n    this.textRise = 0;\n  }\n\n  setTextMatrix(a, b, c, d, e, f) {\n    const m = this.textMatrix;\n    m[0] = a;\n    m[1] = b;\n    m[2] = c;\n    m[3] = d;\n    m[4] = e;\n    m[5] = f;\n  }\n\n  setTextLineMatrix(a, b, c, d, e, f) {\n    const m = this.textLineMatrix;\n    m[0] = a;\n    m[1] = b;\n    m[2] = c;\n    m[3] = d;\n    m[4] = e;\n    m[5] = f;\n  }\n\n  translateTextMatrix(x, y) {\n    const m = this.textMatrix;\n    m[4] = m[0] * x + m[2] * y + m[4];\n    m[5] = m[1] * x + m[3] * y + m[5];\n  }\n\n  translateTextLineMatrix(x, y) {\n    const m = this.textLineMatrix;\n    m[4] = m[0] * x + m[2] * y + m[4];\n    m[5] = m[1] * x + m[3] * y + m[5];\n  }\n\n  carriageReturn() {\n    this.translateTextLineMatrix(0, -this.leading);\n    this.textMatrix = this.textLineMatrix.slice();\n  }\n\n  clone() {\n    const clone = Object.create(this);\n    clone.textMatrix = this.textMatrix.slice();\n    clone.textLineMatrix = this.textLineMatrix.slice();\n    clone.fontMatrix = this.fontMatrix.slice();\n    return clone;\n  }\n}\n\nclass EvalState {\n  constructor() {\n    this.ctm = new Float32Array(IDENTITY_MATRIX);\n    this.font = null;\n    this.textRenderingMode = TextRenderingMode.FILL;\n    this.fillColorSpace = ColorSpace.singletons.gray;\n    this.strokeColorSpace = ColorSpace.singletons.gray;\n  }\n\n  clone() {\n    return Object.create(this);\n  }\n}\n\nclass EvaluatorPreprocessor {\n  static get opMap() {\n    // Specifies properties for each command\n    //\n    // If variableArgs === true: [0, `numArgs`] expected\n    // If variableArgs === false: exactly `numArgs` expected\n    return shadow(this, \"opMap\", {\n      // Graphic state\n      w: { id: OPS.setLineWidth, numArgs: 1, variableArgs: false },\n      J: { id: OPS.setLineCap, numArgs: 1, variableArgs: false },\n      j: { id: OPS.setLineJoin, numArgs: 1, variableArgs: false },\n      M: { id: OPS.setMiterLimit, numArgs: 1, variableArgs: false },\n      d: { id: OPS.setDash, numArgs: 2, variableArgs: false },\n      ri: { id: OPS.setRenderingIntent, numArgs: 1, variableArgs: false },\n      i: { id: OPS.setFlatness, numArgs: 1, variableArgs: false },\n      gs: { id: OPS.setGState, numArgs: 1, variableArgs: false },\n      q: { id: OPS.save, numArgs: 0, variableArgs: false },\n      Q: { id: OPS.restore, numArgs: 0, variableArgs: false },\n      cm: { id: OPS.transform, numArgs: 6, variableArgs: false },\n\n      // Path\n      m: { id: OPS.moveTo, numArgs: 2, variableArgs: false },\n      l: { id: OPS.lineTo, numArgs: 2, variableArgs: false },\n      c: { id: OPS.curveTo, numArgs: 6, variableArgs: false },\n      v: { id: OPS.curveTo2, numArgs: 4, variableArgs: false },\n      y: { id: OPS.curveTo3, numArgs: 4, variableArgs: false },\n      h: { id: OPS.closePath, numArgs: 0, variableArgs: false },\n      re: { id: OPS.rectangle, numArgs: 4, variableArgs: false },\n      S: { id: OPS.stroke, numArgs: 0, variableArgs: false },\n      s: { id: OPS.closeStroke, numArgs: 0, variableArgs: false },\n      f: { id: OPS.fill, numArgs: 0, variableArgs: false },\n      F: { id: OPS.fill, numArgs: 0, variableArgs: false },\n      \"f*\": { id: OPS.eoFill, numArgs: 0, variableArgs: false },\n      B: { id: OPS.fillStroke, numArgs: 0, variableArgs: false },\n      \"B*\": { id: OPS.eoFillStroke, numArgs: 0, variableArgs: false },\n      b: { id: OPS.closeFillStroke, numArgs: 0, variableArgs: false },\n      \"b*\": { id: OPS.closeEOFillStroke, numArgs: 0, variableArgs: false },\n      n: { id: OPS.endPath, numArgs: 0, variableArgs: false },\n\n      // Clipping\n      W: { id: OPS.clip, numArgs: 0, variableArgs: false },\n      \"W*\": { id: OPS.eoClip, numArgs: 0, variableArgs: false },\n\n      // Text\n      BT: { id: OPS.beginText, numArgs: 0, variableArgs: false },\n      ET: { id: OPS.endText, numArgs: 0, variableArgs: false },\n      Tc: { id: OPS.setCharSpacing, numArgs: 1, variableArgs: false },\n      Tw: { id: OPS.setWordSpacing, numArgs: 1, variableArgs: false },\n      Tz: { id: OPS.setHScale, numArgs: 1, variableArgs: false },\n      TL: { id: OPS.setLeading, numArgs: 1, variableArgs: false },\n      Tf: { id: OPS.setFont, numArgs: 2, variableArgs: false },\n      Tr: { id: OPS.setTextRenderingMode, numArgs: 1, variableArgs: false },\n      Ts: { id: OPS.setTextRise, numArgs: 1, variableArgs: false },\n      Td: { id: OPS.moveText, numArgs: 2, variableArgs: false },\n      TD: { id: OPS.setLeadingMoveText, numArgs: 2, variableArgs: false },\n      Tm: { id: OPS.setTextMatrix, numArgs: 6, variableArgs: false },\n      \"T*\": { id: OPS.nextLine, numArgs: 0, variableArgs: false },\n      Tj: { id: OPS.showText, numArgs: 1, variableArgs: false },\n      TJ: { id: OPS.showSpacedText, numArgs: 1, variableArgs: false },\n      \"'\": { id: OPS.nextLineShowText, numArgs: 1, variableArgs: false },\n      '\"': {\n        id: OPS.nextLineSetSpacingShowText,\n        numArgs: 3,\n        variableArgs: false,\n      },\n\n      // Type3 fonts\n      d0: { id: OPS.setCharWidth, numArgs: 2, variableArgs: false },\n      d1: {\n        id: OPS.setCharWidthAndBounds,\n        numArgs: 6,\n        variableArgs: false,\n      },\n\n      // Color\n      CS: { id: OPS.setStrokeColorSpace, numArgs: 1, variableArgs: false },\n      cs: { id: OPS.setFillColorSpace, numArgs: 1, variableArgs: false },\n      SC: { id: OPS.setStrokeColor, numArgs: 4, variableArgs: true },\n      SCN: { id: OPS.setStrokeColorN, numArgs: 33, variableArgs: true },\n      sc: { id: OPS.setFillColor, numArgs: 4, variableArgs: true },\n      scn: { id: OPS.setFillColorN, numArgs: 33, variableArgs: true },\n      G: { id: OPS.setStrokeGray, numArgs: 1, variableArgs: false },\n      g: { id: OPS.setFillGray, numArgs: 1, variableArgs: false },\n      RG: { id: OPS.setStrokeRGBColor, numArgs: 3, variableArgs: false },\n      rg: { id: OPS.setFillRGBColor, numArgs: 3, variableArgs: false },\n      K: { id: OPS.setStrokeCMYKColor, numArgs: 4, variableArgs: false },\n      k: { id: OPS.setFillCMYKColor, numArgs: 4, variableArgs: false },\n\n      // Shading\n      sh: { id: OPS.shadingFill, numArgs: 1, variableArgs: false },\n\n      // Images\n      BI: { id: OPS.beginInlineImage, numArgs: 0, variableArgs: false },\n      ID: { id: OPS.beginImageData, numArgs: 0, variableArgs: false },\n      EI: { id: OPS.endInlineImage, numArgs: 1, variableArgs: false },\n\n      // XObjects\n      Do: { id: OPS.paintXObject, numArgs: 1, variableArgs: false },\n      MP: { id: OPS.markPoint, numArgs: 1, variableArgs: false },\n      DP: { id: OPS.markPointProps, numArgs: 2, variableArgs: false },\n      BMC: { id: OPS.beginMarkedContent, numArgs: 1, variableArgs: false },\n      BDC: {\n        id: OPS.beginMarkedContentProps,\n        numArgs: 2,\n        variableArgs: false,\n      },\n      EMC: { id: OPS.endMarkedContent, numArgs: 0, variableArgs: false },\n\n      // Compatibility\n      BX: { id: OPS.beginCompat, numArgs: 0, variableArgs: false },\n      EX: { id: OPS.endCompat, numArgs: 0, variableArgs: false },\n\n      // (reserved partial commands for the lexer)\n      BM: null,\n      BD: null,\n      true: null,\n      fa: null,\n      fal: null,\n      fals: null,\n      false: null,\n      nu: null,\n      nul: null,\n      null: null,\n    });\n  }\n\n  static MAX_INVALID_PATH_OPS = 10;\n\n  constructor(stream, xref, stateManager = new StateManager()) {\n    // TODO(mduan): pass array of knownCommands rather than this.opMap\n    // dictionary\n    this.parser = new Parser({\n      lexer: new Lexer(stream, EvaluatorPreprocessor.opMap),\n      xref,\n    });\n    this.stateManager = stateManager;\n    this.nonProcessedArgs = [];\n    this._isPathOp = false;\n    this._numInvalidPathOPS = 0;\n  }\n\n  get savedStatesDepth() {\n    return this.stateManager.stateStack.length;\n  }\n\n  // |operation| is an object with two fields:\n  //\n  // - |fn| is an out param.\n  //\n  // - |args| is an inout param. On entry, it should have one of two values.\n  //\n  //   - An empty array. This indicates that the caller is providing the\n  //     array in which the args will be stored in. The caller should use\n  //     this value if it can reuse a single array for each call to read().\n  //\n  //   - |null|. This indicates that the caller needs this function to create\n  //     the array in which any args are stored in. If there are zero args,\n  //     this function will leave |operation.args| as |null| (thus avoiding\n  //     allocations that would occur if we used an empty array to represent\n  //     zero arguments). Otherwise, it will replace |null| with a new array\n  //     containing the arguments. The caller should use this value if it\n  //     cannot reuse an array for each call to read().\n  //\n  // These two modes are present because this function is very hot and so\n  // avoiding allocations where possible is worthwhile.\n  //\n  read(operation) {\n    let args = operation.args;\n    while (true) {\n      const obj = this.parser.getObj();\n      if (obj instanceof Cmd) {\n        const cmd = obj.cmd;\n        // Check that the command is valid\n        const opSpec = EvaluatorPreprocessor.opMap[cmd];\n        if (!opSpec) {\n          warn(`Unknown command \"${cmd}\".`);\n          continue;\n        }\n\n        const fn = opSpec.id;\n        const numArgs = opSpec.numArgs;\n        let argsLength = args !== null ? args.length : 0;\n\n        // If the *previous* command wasn't a path operator, reset the heuristic\n        // used with incomplete path operators below (fixes issue14917.pdf).\n        if (!this._isPathOp) {\n          this._numInvalidPathOPS = 0;\n        }\n        this._isPathOp = fn >= OPS.moveTo && fn <= OPS.endPath;\n\n        if (!opSpec.variableArgs) {\n          // Postscript commands can be nested, e.g. /F2 /GS2 gs 5.711 Tf\n          if (argsLength !== numArgs) {\n            const nonProcessedArgs = this.nonProcessedArgs;\n            while (argsLength > numArgs) {\n              nonProcessedArgs.push(args.shift());\n              argsLength--;\n            }\n            while (argsLength < numArgs && nonProcessedArgs.length !== 0) {\n              if (args === null) {\n                args = [];\n              }\n              args.unshift(nonProcessedArgs.pop());\n              argsLength++;\n            }\n          }\n\n          if (argsLength < numArgs) {\n            const partialMsg =\n              `command ${cmd}: expected ${numArgs} args, ` +\n              `but received ${argsLength} args.`;\n\n            // Incomplete path operators, in particular, can result in fairly\n            // chaotic rendering artifacts. Hence the following heuristics is\n            // used to error, rather than just warn, once a number of invalid\n            // path operators have been encountered (fixes bug1443140.pdf).\n            if (\n              this._isPathOp &&\n              ++this._numInvalidPathOPS >\n                EvaluatorPreprocessor.MAX_INVALID_PATH_OPS\n            ) {\n              throw new FormatError(`Invalid ${partialMsg}`);\n            }\n            // If we receive too few arguments, it's not possible to execute\n            // the command, hence we skip the command.\n            warn(`Skipping ${partialMsg}`);\n            if (args !== null) {\n              args.length = 0;\n            }\n            continue;\n          }\n        } else if (argsLength > numArgs) {\n          info(\n            `Command ${cmd}: expected [0, ${numArgs}] args, ` +\n              `but received ${argsLength} args.`\n          );\n        }\n\n        // TODO figure out how to type-check vararg functions\n        this.preprocessCommand(fn, args);\n\n        operation.fn = fn;\n        operation.args = args;\n        return true;\n      }\n      if (obj === EOF) {\n        return false; // no more commands\n      }\n      // argument\n      if (obj !== null) {\n        if (args === null) {\n          args = [];\n        }\n        args.push(obj);\n        if (args.length > 33) {\n          throw new FormatError(\"Too many arguments\");\n        }\n      }\n    }\n  }\n\n  preprocessCommand(fn, args) {\n    switch (fn | 0) {\n      case OPS.save:\n        this.stateManager.save();\n        break;\n      case OPS.restore:\n        this.stateManager.restore();\n        break;\n      case OPS.transform:\n        this.stateManager.transform(args);\n        break;\n    }\n  }\n}\n\nexport { EvaluatorPreprocessor, PartialEvaluator };\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, Name } from \"./primitives.js\";\nimport {\n  escapePDFName,\n  getRotationMatrix,\n  numberToString,\n  stringToUTF16HexString,\n} from \"./core_utils.js\";\nimport {\n  LINE_DESCENT_FACTOR,\n  LINE_FACTOR,\n  OPS,\n  shadow,\n  warn,\n} from \"../shared/util.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { EvaluatorPreprocessor } from \"./evaluator.js\";\nimport { LocalColorSpaceCache } from \"./image_utils.js\";\nimport { PDFFunctionFactory } from \"./function.js\";\nimport { StringStream } from \"./stream.js\";\n\nclass DefaultAppearanceEvaluator extends EvaluatorPreprocessor {\n  constructor(str) {\n    super(new StringStream(str));\n  }\n\n  parse() {\n    const operation = {\n      fn: 0,\n      args: [],\n    };\n    const result = {\n      fontSize: 0,\n      fontName: \"\",\n      fontColor: /* black = */ new Uint8ClampedArray(3),\n    };\n\n    try {\n      while (true) {\n        operation.args.length = 0; // Ensure that `args` it's always reset.\n\n        if (!this.read(operation)) {\n          break;\n        }\n        if (this.savedStatesDepth !== 0) {\n          continue; // Don't get info in save/restore sections.\n        }\n        const { fn, args } = operation;\n\n        switch (fn | 0) {\n          case OPS.setFont:\n            const [fontName, fontSize] = args;\n            if (fontName instanceof Name) {\n              result.fontName = fontName.name;\n            }\n            if (typeof fontSize === \"number\" && fontSize > 0) {\n              result.fontSize = fontSize;\n            }\n            break;\n          case OPS.setFillRGBColor:\n            ColorSpace.singletons.rgb.getRgbItem(args, 0, result.fontColor, 0);\n            break;\n          case OPS.setFillGray:\n            ColorSpace.singletons.gray.getRgbItem(args, 0, result.fontColor, 0);\n            break;\n          case OPS.setFillCMYKColor:\n            ColorSpace.singletons.cmyk.getRgbItem(args, 0, result.fontColor, 0);\n            break;\n        }\n      }\n    } catch (reason) {\n      warn(`parseDefaultAppearance - ignoring errors: \"${reason}\".`);\n    }\n\n    return result;\n  }\n}\n\n// Parse DA to extract font and color information.\nfunction parseDefaultAppearance(str) {\n  return new DefaultAppearanceEvaluator(str).parse();\n}\n\nclass AppearanceStreamEvaluator extends EvaluatorPreprocessor {\n  constructor(stream, evaluatorOptions, xref) {\n    super(stream);\n    this.stream = stream;\n    this.evaluatorOptions = evaluatorOptions;\n    this.xref = xref;\n\n    this.resources = stream.dict?.get(\"Resources\");\n  }\n\n  parse() {\n    const operation = {\n      fn: 0,\n      args: [],\n    };\n    let result = {\n      scaleFactor: 1,\n      fontSize: 0,\n      fontName: \"\",\n      fontColor: /* black = */ new Uint8ClampedArray(3),\n      fillColorSpace: ColorSpace.singletons.gray,\n    };\n    let breakLoop = false;\n    const stack = [];\n\n    try {\n      while (true) {\n        operation.args.length = 0; // Ensure that `args` it's always reset.\n\n        if (breakLoop || !this.read(operation)) {\n          break;\n        }\n        const { fn, args } = operation;\n\n        switch (fn | 0) {\n          case OPS.save:\n            stack.push({\n              scaleFactor: result.scaleFactor,\n              fontSize: result.fontSize,\n              fontName: result.fontName,\n              fontColor: result.fontColor.slice(),\n              fillColorSpace: result.fillColorSpace,\n            });\n            break;\n          case OPS.restore:\n            result = stack.pop() || result;\n            break;\n          case OPS.setTextMatrix:\n            result.scaleFactor *= Math.hypot(args[0], args[1]);\n            break;\n          case OPS.setFont:\n            const [fontName, fontSize] = args;\n            if (fontName instanceof Name) {\n              result.fontName = fontName.name;\n            }\n            if (typeof fontSize === \"number\" && fontSize > 0) {\n              result.fontSize = fontSize * result.scaleFactor;\n            }\n            break;\n          case OPS.setFillColorSpace:\n            result.fillColorSpace = ColorSpace.parse({\n              cs: args[0],\n              xref: this.xref,\n              resources: this.resources,\n              pdfFunctionFactory: this._pdfFunctionFactory,\n              localColorSpaceCache: this._localColorSpaceCache,\n            });\n            break;\n          case OPS.setFillColor:\n            const cs = result.fillColorSpace;\n            cs.getRgbItem(args, 0, result.fontColor, 0);\n            break;\n          case OPS.setFillRGBColor:\n            ColorSpace.singletons.rgb.getRgbItem(args, 0, result.fontColor, 0);\n            break;\n          case OPS.setFillGray:\n            ColorSpace.singletons.gray.getRgbItem(args, 0, result.fontColor, 0);\n            break;\n          case OPS.setFillCMYKColor:\n            ColorSpace.singletons.cmyk.getRgbItem(args, 0, result.fontColor, 0);\n            break;\n          case OPS.showText:\n          case OPS.showSpacedText:\n          case OPS.nextLineShowText:\n          case OPS.nextLineSetSpacingShowText:\n            breakLoop = true;\n            break;\n        }\n      }\n    } catch (reason) {\n      warn(`parseAppearanceStream - ignoring errors: \"${reason}\".`);\n    }\n    this.stream.reset();\n    delete result.scaleFactor;\n    delete result.fillColorSpace;\n\n    return result;\n  }\n\n  get _localColorSpaceCache() {\n    return shadow(this, \"_localColorSpaceCache\", new LocalColorSpaceCache());\n  }\n\n  get _pdfFunctionFactory() {\n    const pdfFunctionFactory = new PDFFunctionFactory({\n      xref: this.xref,\n      isEvalSupported: this.evaluatorOptions.isEvalSupported,\n    });\n    return shadow(this, \"_pdfFunctionFactory\", pdfFunctionFactory);\n  }\n}\n\n// Parse appearance stream to extract font and color information.\n// It returns the font properties used to render the first text object.\nfunction parseAppearanceStream(stream, evaluatorOptions, xref) {\n  return new AppearanceStreamEvaluator(stream, evaluatorOptions, xref).parse();\n}\n\nfunction getPdfColor(color, isFill) {\n  if (color[0] === color[1] && color[1] === color[2]) {\n    const gray = color[0] / 255;\n    return `${numberToString(gray)} ${isFill ? \"g\" : \"G\"}`;\n  }\n  return (\n    Array.from(color, c => numberToString(c / 255)).join(\" \") +\n    ` ${isFill ? \"rg\" : \"RG\"}`\n  );\n}\n\n// Create default appearance string from some information.\nfunction createDefaultAppearance({ fontSize, fontName, fontColor }) {\n  return `/${escapePDFName(fontName)} ${fontSize} Tf ${getPdfColor(\n    fontColor,\n    /* isFill */ true\n  )}`;\n}\n\nclass FakeUnicodeFont {\n  constructor(xref, fontFamily) {\n    this.xref = xref;\n    this.widths = null;\n    this.firstChar = Infinity;\n    this.lastChar = -Infinity;\n    this.fontFamily = fontFamily;\n\n    const canvas = new OffscreenCanvas(1, 1);\n    this.ctxMeasure = canvas.getContext(\"2d\");\n\n    if (!FakeUnicodeFont._fontNameId) {\n      FakeUnicodeFont._fontNameId = 1;\n    }\n    this.fontName = Name.get(\n      `InvalidPDFjsFont_${fontFamily}_${FakeUnicodeFont._fontNameId++}`\n    );\n  }\n\n  get toUnicodeRef() {\n    if (!FakeUnicodeFont._toUnicodeRef) {\n      const toUnicode = `/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> <FFFF>\nendcodespacerange\n1 beginbfrange\n<0000> <FFFF> <0000>\nendbfrange\nendcmap CMapName currentdict /CMap defineresource pop end end`;\n      const toUnicodeStream = (FakeUnicodeFont.toUnicodeStream =\n        new StringStream(toUnicode));\n      const toUnicodeDict = new Dict(this.xref);\n      toUnicodeStream.dict = toUnicodeDict;\n      toUnicodeDict.set(\"Length\", toUnicode.length);\n      FakeUnicodeFont._toUnicodeRef =\n        this.xref.getNewPersistentRef(toUnicodeStream);\n    }\n\n    return FakeUnicodeFont._toUnicodeRef;\n  }\n\n  get fontDescriptorRef() {\n    if (!FakeUnicodeFont._fontDescriptorRef) {\n      const fontDescriptor = new Dict(this.xref);\n      fontDescriptor.set(\"Type\", Name.get(\"FontDescriptor\"));\n      fontDescriptor.set(\"FontName\", this.fontName);\n      fontDescriptor.set(\"FontFamily\", \"MyriadPro Regular\");\n      fontDescriptor.set(\"FontBBox\", [0, 0, 0, 0]);\n      fontDescriptor.set(\"FontStretch\", Name.get(\"Normal\"));\n      fontDescriptor.set(\"FontWeight\", 400);\n      fontDescriptor.set(\"ItalicAngle\", 0);\n\n      FakeUnicodeFont._fontDescriptorRef =\n        this.xref.getNewPersistentRef(fontDescriptor);\n    }\n\n    return FakeUnicodeFont._fontDescriptorRef;\n  }\n\n  get descendantFontRef() {\n    const descendantFont = new Dict(this.xref);\n    descendantFont.set(\"BaseFont\", this.fontName);\n    descendantFont.set(\"Type\", Name.get(\"Font\"));\n    descendantFont.set(\"Subtype\", Name.get(\"CIDFontType0\"));\n    descendantFont.set(\"CIDToGIDMap\", Name.get(\"Identity\"));\n    descendantFont.set(\"FirstChar\", this.firstChar);\n    descendantFont.set(\"LastChar\", this.lastChar);\n    descendantFont.set(\"FontDescriptor\", this.fontDescriptorRef);\n    descendantFont.set(\"DW\", 1000);\n\n    const widths = [];\n    const chars = [...this.widths.entries()].sort();\n    let currentChar = null;\n    let currentWidths = null;\n    for (const [char, width] of chars) {\n      if (!currentChar) {\n        currentChar = char;\n        currentWidths = [width];\n        continue;\n      }\n      if (char === currentChar + currentWidths.length) {\n        currentWidths.push(width);\n      } else {\n        widths.push(currentChar, currentWidths);\n        currentChar = char;\n        currentWidths = [width];\n      }\n    }\n\n    if (currentChar) {\n      widths.push(currentChar, currentWidths);\n    }\n\n    descendantFont.set(\"W\", widths);\n\n    const cidSystemInfo = new Dict(this.xref);\n    cidSystemInfo.set(\"Ordering\", \"Identity\");\n    cidSystemInfo.set(\"Registry\", \"Adobe\");\n    cidSystemInfo.set(\"Supplement\", 0);\n    descendantFont.set(\"CIDSystemInfo\", cidSystemInfo);\n\n    return this.xref.getNewPersistentRef(descendantFont);\n  }\n\n  get baseFontRef() {\n    const baseFont = new Dict(this.xref);\n    baseFont.set(\"BaseFont\", this.fontName);\n    baseFont.set(\"Type\", Name.get(\"Font\"));\n    baseFont.set(\"Subtype\", Name.get(\"Type0\"));\n    baseFont.set(\"Encoding\", Name.get(\"Identity-H\"));\n    baseFont.set(\"DescendantFonts\", [this.descendantFontRef]);\n    baseFont.set(\"ToUnicode\", this.toUnicodeRef);\n\n    return this.xref.getNewPersistentRef(baseFont);\n  }\n\n  get resources() {\n    const resources = new Dict(this.xref);\n    const font = new Dict(this.xref);\n    font.set(this.fontName.name, this.baseFontRef);\n    resources.set(\"Font\", font);\n\n    return resources;\n  }\n\n  _createContext() {\n    this.widths = new Map();\n    this.ctxMeasure.font = `1000px ${this.fontFamily}`;\n\n    return this.ctxMeasure;\n  }\n\n  createFontResources(text) {\n    const ctx = this._createContext();\n    for (const line of text.split(/\\r\\n?|\\n/)) {\n      for (const char of line.split(\"\")) {\n        const code = char.charCodeAt(0);\n        if (this.widths.has(code)) {\n          continue;\n        }\n        const metrics = ctx.measureText(char);\n        const width = Math.ceil(metrics.width);\n        this.widths.set(code, width);\n        this.firstChar = Math.min(code, this.firstChar);\n        this.lastChar = Math.max(code, this.lastChar);\n      }\n    }\n\n    return this.resources;\n  }\n\n  createAppearance(text, rect, rotation, fontSize, bgColor, strokeAlpha) {\n    const ctx = this._createContext();\n    const lines = [];\n    let maxWidth = -Infinity;\n    for (const line of text.split(/\\r\\n?|\\n/)) {\n      lines.push(line);\n      // The line width isn't the sum of the char widths, because in some\n      // languages, like arabic, it'd be wrong because of ligatures.\n      const lineWidth = ctx.measureText(line).width;\n      maxWidth = Math.max(maxWidth, lineWidth);\n      for (const char of line.split(\"\")) {\n        const code = char.charCodeAt(0);\n        let width = this.widths.get(code);\n        if (width === undefined) {\n          const metrics = ctx.measureText(char);\n          width = Math.ceil(metrics.width);\n          this.widths.set(code, width);\n          this.firstChar = Math.min(code, this.firstChar);\n          this.lastChar = Math.max(code, this.lastChar);\n        }\n      }\n    }\n    maxWidth *= fontSize / 1000;\n\n    const [x1, y1, x2, y2] = rect;\n    let w = x2 - x1;\n    let h = y2 - y1;\n\n    if (rotation % 180 !== 0) {\n      [w, h] = [h, w];\n    }\n\n    let hscale = 1;\n    if (maxWidth > w) {\n      hscale = w / maxWidth;\n    }\n    let vscale = 1;\n    const lineHeight = LINE_FACTOR * fontSize;\n    const lineDescent = LINE_DESCENT_FACTOR * fontSize;\n    const maxHeight = lineHeight * lines.length;\n    if (maxHeight > h) {\n      vscale = h / maxHeight;\n    }\n    const fscale = Math.min(hscale, vscale);\n    const newFontSize = fontSize * fscale;\n\n    const buffer = [\n      \"q\",\n      `0 0 ${numberToString(w)} ${numberToString(h)} re W n`,\n      `BT`,\n      `1 0 0 1 0 ${numberToString(h + lineDescent)} Tm 0 Tc ${getPdfColor(\n        bgColor,\n        /* isFill */ true\n      )}`,\n      `/${this.fontName.name} ${numberToString(newFontSize)} Tf`,\n    ];\n\n    const { resources } = this;\n    strokeAlpha =\n      typeof strokeAlpha === \"number\" && strokeAlpha >= 0 && strokeAlpha <= 1\n        ? strokeAlpha\n        : 1;\n\n    if (strokeAlpha !== 1) {\n      buffer.push(\"/R0 gs\");\n      const extGState = new Dict(this.xref);\n      const r0 = new Dict(this.xref);\n      r0.set(\"ca\", strokeAlpha);\n      r0.set(\"CA\", strokeAlpha);\n      r0.set(\"Type\", Name.get(\"ExtGState\"));\n      extGState.set(\"R0\", r0);\n      resources.set(\"ExtGState\", extGState);\n    }\n\n    const vShift = numberToString(lineHeight);\n    for (const line of lines) {\n      buffer.push(`0 -${vShift} Td <${stringToUTF16HexString(line)}> Tj`);\n    }\n    buffer.push(\"ET\", \"Q\");\n    const appearance = buffer.join(\"\\n\");\n\n    const appearanceStreamDict = new Dict(this.xref);\n    appearanceStreamDict.set(\"Subtype\", Name.get(\"Form\"));\n    appearanceStreamDict.set(\"Type\", Name.get(\"XObject\"));\n    appearanceStreamDict.set(\"BBox\", [0, 0, w, h]);\n    appearanceStreamDict.set(\"Length\", appearance.length);\n    appearanceStreamDict.set(\"Resources\", resources);\n\n    if (rotation) {\n      const matrix = getRotationMatrix(rotation, w, h);\n      appearanceStreamDict.set(\"Matrix\", matrix);\n    }\n\n    const ap = new StringStream(appearance);\n    ap.dict = appearanceStreamDict;\n\n    return ap;\n  }\n}\n\nexport {\n  createDefaultAppearance,\n  FakeUnicodeFont,\n  getPdfColor,\n  parseAppearanceStream,\n  parseDefaultAppearance,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, RefSet } from \"./primitives.js\";\nimport { FormatError, unreachable, warn } from \"../shared/util.js\";\n\n/**\n * A NameTree/NumberTree is like a Dict but has some advantageous properties,\n * see the specification (7.9.6 and 7.9.7) for additional details.\n * TODO: implement all the Dict functions and make this more efficient.\n */\nclass NameOrNumberTree {\n  constructor(root, xref, type) {\n    if (this.constructor === NameOrNumberTree) {\n      unreachable(\"Cannot initialize NameOrNumberTree.\");\n    }\n    this.root = root;\n    this.xref = xref;\n    this._type = type;\n  }\n\n  getAll() {\n    const map = new Map();\n    if (!this.root) {\n      return map;\n    }\n    const xref = this.xref;\n    // Reading Name/Number tree.\n    const processed = new RefSet();\n    processed.put(this.root);\n    const queue = [this.root];\n    while (queue.length > 0) {\n      const obj = xref.fetchIfRef(queue.shift());\n      if (!(obj instanceof Dict)) {\n        continue;\n      }\n      if (obj.has(\"Kids\")) {\n        const kids = obj.get(\"Kids\");\n        if (!Array.isArray(kids)) {\n          continue;\n        }\n        for (const kid of kids) {\n          if (processed.has(kid)) {\n            throw new FormatError(`Duplicate entry in \"${this._type}\" tree.`);\n          }\n          queue.push(kid);\n          processed.put(kid);\n        }\n        continue;\n      }\n      const entries = obj.get(this._type);\n      if (!Array.isArray(entries)) {\n        continue;\n      }\n      for (let i = 0, ii = entries.length; i < ii; i += 2) {\n        map.set(xref.fetchIfRef(entries[i]), xref.fetchIfRef(entries[i + 1]));\n      }\n    }\n    return map;\n  }\n\n  get(key) {\n    if (!this.root) {\n      return null;\n    }\n    const xref = this.xref;\n    let kidsOrEntries = xref.fetchIfRef(this.root);\n    let loopCount = 0;\n    const MAX_LEVELS = 10;\n\n    // Perform a binary search to quickly find the entry that\n    // contains the key we are looking for.\n    while (kidsOrEntries.has(\"Kids\")) {\n      if (++loopCount > MAX_LEVELS) {\n        warn(`Search depth limit reached for \"${this._type}\" tree.`);\n        return null;\n      }\n\n      const kids = kidsOrEntries.get(\"Kids\");\n      if (!Array.isArray(kids)) {\n        return null;\n      }\n\n      let l = 0,\n        r = kids.length - 1;\n      while (l <= r) {\n        const m = (l + r) >> 1;\n        const kid = xref.fetchIfRef(kids[m]);\n        const limits = kid.get(\"Limits\");\n\n        if (key < xref.fetchIfRef(limits[0])) {\n          r = m - 1;\n        } else if (key > xref.fetchIfRef(limits[1])) {\n          l = m + 1;\n        } else {\n          kidsOrEntries = kid;\n          break;\n        }\n      }\n      if (l > r) {\n        return null;\n      }\n    }\n\n    // If we get here, then we have found the right entry. Now go through the\n    // entries in the dictionary until we find the key we're looking for.\n    const entries = kidsOrEntries.get(this._type);\n    if (Array.isArray(entries)) {\n      // Perform a binary search to reduce the lookup time.\n      let l = 0,\n        r = entries.length - 2;\n      while (l <= r) {\n        // Check only even indices (0, 2, 4, ...) because the\n        // odd indices contain the actual data.\n        const tmp = (l + r) >> 1,\n          m = tmp + (tmp & 1);\n        const currentKey = xref.fetchIfRef(entries[m]);\n        if (key < currentKey) {\n          r = m - 2;\n        } else if (key > currentKey) {\n          l = m + 2;\n        } else {\n          return xref.fetchIfRef(entries[m + 1]);\n        }\n      }\n    }\n    return null;\n  }\n}\n\nclass NameTree extends NameOrNumberTree {\n  constructor(root, xref) {\n    super(root, xref, \"Names\");\n  }\n}\n\nclass NumberTree extends NameOrNumberTree {\n  constructor(root, xref) {\n    super(root, xref, \"Nums\");\n  }\n}\n\nexport { NameTree, NumberTree };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { clearPatternCaches } from \"./pattern.js\";\nimport { clearPrimitiveCaches } from \"./primitives.js\";\nimport { clearUnicodeCaches } from \"./unicode.js\";\n\nfunction clearGlobalCaches() {\n  clearPatternCaches();\n  clearPrimitiveCaches();\n  clearUnicodeCaches();\n}\n\nexport { clearGlobalCaches };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { stringToPDFString, warn } from \"../shared/util.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { Dict } from \"./primitives.js\";\n\nfunction pickPlatformItem(dict) {\n  // Look for the filename in this order:\n  // UF, F, Unix, Mac, DOS\n  if (dict.has(\"UF\")) {\n    return dict.get(\"UF\");\n  } else if (dict.has(\"F\")) {\n    return dict.get(\"F\");\n  } else if (dict.has(\"Unix\")) {\n    return dict.get(\"Unix\");\n  } else if (dict.has(\"Mac\")) {\n    return dict.get(\"Mac\");\n  } else if (dict.has(\"DOS\")) {\n    return dict.get(\"DOS\");\n  }\n  return null;\n}\n\n/**\n * \"A PDF file can refer to the contents of another file by using a File\n * Specification (PDF 1.1)\", see the spec (7.11) for more details.\n * NOTE: Only embedded files are supported (as part of the attachments support)\n * TODO: support the 'URL' file system (with caching if !/V), portable\n * collections attributes and related files (/RF)\n */\nclass FileSpec {\n  constructor(root, xref) {\n    if (!(root instanceof Dict)) {\n      return;\n    }\n    this.xref = xref;\n    this.root = root;\n    if (root.has(\"FS\")) {\n      this.fs = root.get(\"FS\");\n    }\n    this.description = root.has(\"Desc\")\n      ? stringToPDFString(root.get(\"Desc\"))\n      : \"\";\n    if (root.has(\"RF\")) {\n      warn(\"Related file specifications are not supported\");\n    }\n    this.contentAvailable = true;\n    if (!root.has(\"EF\")) {\n      this.contentAvailable = false;\n      warn(\"Non-embedded file specifications are not supported\");\n    }\n  }\n\n  get filename() {\n    if (!this._filename && this.root) {\n      const filename = pickPlatformItem(this.root) || \"unnamed\";\n      this._filename = stringToPDFString(filename)\n        .replaceAll(\"\\\\\\\\\", \"\\\\\")\n        .replaceAll(\"\\\\/\", \"/\")\n        .replaceAll(\"\\\\\", \"/\");\n    }\n    return this._filename;\n  }\n\n  get content() {\n    if (!this.contentAvailable) {\n      return null;\n    }\n    if (!this.contentRef && this.root) {\n      this.contentRef = pickPlatformItem(this.root.get(\"EF\"));\n    }\n    let content = null;\n    if (this.contentRef) {\n      const fileObj = this.xref.fetchIfRef(this.contentRef);\n      if (fileObj instanceof BaseStream) {\n        content = fileObj.getBytes();\n      } else {\n        warn(\n          \"Embedded file specification points to non-existing/invalid content\"\n        );\n      }\n    } else {\n      warn(\"Embedded file specification does not have a content\");\n    }\n    return content;\n  }\n\n  get serializable() {\n    return {\n      filename: this.filename,\n      content: this.content,\n    };\n  }\n}\n\nexport { FileSpec };\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// The code for XMLParserBase copied from\n// https://github.com/mozilla/shumway/blob/16451d8836fa85f4b16eeda8b4bda2fa9e2b22b0/src/avm2/natives/xml.ts\n\nimport { encodeToXmlString } from \"./core_utils.js\";\n\nconst XMLParserErrorCode = {\n  NoError: 0,\n  EndOfDocument: -1,\n  UnterminatedCdat: -2,\n  UnterminatedXmlDeclaration: -3,\n  UnterminatedDoctypeDeclaration: -4,\n  UnterminatedComment: -5,\n  MalformedElement: -6,\n  OutOfMemory: -7,\n  UnterminatedAttributeValue: -8,\n  UnterminatedElement: -9,\n  ElementNeverBegun: -10,\n};\n\nfunction isWhitespace(s, index) {\n  const ch = s[index];\n  return ch === \" \" || ch === \"\\n\" || ch === \"\\r\" || ch === \"\\t\";\n}\n\nfunction isWhitespaceString(s) {\n  for (let i = 0, ii = s.length; i < ii; i++) {\n    if (!isWhitespace(s, i)) {\n      return false;\n    }\n  }\n  return true;\n}\n\nclass XMLParserBase {\n  _resolveEntities(s) {\n    return s.replaceAll(/&([^;]+);/g, (all, entity) => {\n      if (entity.substring(0, 2) === \"#x\") {\n        return String.fromCodePoint(parseInt(entity.substring(2), 16));\n      } else if (entity.substring(0, 1) === \"#\") {\n        return String.fromCodePoint(parseInt(entity.substring(1), 10));\n      }\n      switch (entity) {\n        case \"lt\":\n          return \"<\";\n        case \"gt\":\n          return \">\";\n        case \"amp\":\n          return \"&\";\n        case \"quot\":\n          return '\"';\n        case \"apos\":\n          return \"'\";\n      }\n      return this.onResolveEntity(entity);\n    });\n  }\n\n  _parseContent(s, start) {\n    const attributes = [];\n    let pos = start;\n\n    function skipWs() {\n      while (pos < s.length && isWhitespace(s, pos)) {\n        ++pos;\n      }\n    }\n\n    while (\n      pos < s.length &&\n      !isWhitespace(s, pos) &&\n      s[pos] !== \">\" &&\n      s[pos] !== \"/\"\n    ) {\n      ++pos;\n    }\n    const name = s.substring(start, pos);\n    skipWs();\n    while (\n      pos < s.length &&\n      s[pos] !== \">\" &&\n      s[pos] !== \"/\" &&\n      s[pos] !== \"?\"\n    ) {\n      skipWs();\n      let attrName = \"\",\n        attrValue = \"\";\n      while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \"=\") {\n        attrName += s[pos];\n        ++pos;\n      }\n      skipWs();\n      if (s[pos] !== \"=\") {\n        return null;\n      }\n      ++pos;\n      skipWs();\n      const attrEndChar = s[pos];\n      if (attrEndChar !== '\"' && attrEndChar !== \"'\") {\n        return null;\n      }\n      const attrEndIndex = s.indexOf(attrEndChar, ++pos);\n      if (attrEndIndex < 0) {\n        return null;\n      }\n      attrValue = s.substring(pos, attrEndIndex);\n      attributes.push({\n        name: attrName,\n        value: this._resolveEntities(attrValue),\n      });\n      pos = attrEndIndex + 1;\n      skipWs();\n    }\n    return {\n      name,\n      attributes,\n      parsed: pos - start,\n    };\n  }\n\n  _parseProcessingInstruction(s, start) {\n    let pos = start;\n\n    function skipWs() {\n      while (pos < s.length && isWhitespace(s, pos)) {\n        ++pos;\n      }\n    }\n\n    while (\n      pos < s.length &&\n      !isWhitespace(s, pos) &&\n      s[pos] !== \">\" &&\n      s[pos] !== \"?\" &&\n      s[pos] !== \"/\"\n    ) {\n      ++pos;\n    }\n    const name = s.substring(start, pos);\n    skipWs();\n    const attrStart = pos;\n    while (pos < s.length && (s[pos] !== \"?\" || s[pos + 1] !== \">\")) {\n      ++pos;\n    }\n    const value = s.substring(attrStart, pos);\n    return {\n      name,\n      value,\n      parsed: pos - start,\n    };\n  }\n\n  parseXml(s) {\n    let i = 0;\n    while (i < s.length) {\n      const ch = s[i];\n      let j = i;\n      if (ch === \"<\") {\n        ++j;\n        const ch2 = s[j];\n        let q;\n        switch (ch2) {\n          case \"/\":\n            ++j;\n            q = s.indexOf(\">\", j);\n            if (q < 0) {\n              this.onError(XMLParserErrorCode.UnterminatedElement);\n              return;\n            }\n            this.onEndElement(s.substring(j, q));\n            j = q + 1;\n            break;\n          case \"?\":\n            ++j;\n            const pi = this._parseProcessingInstruction(s, j);\n            if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== \"?>\") {\n              this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n              return;\n            }\n            this.onPi(pi.name, pi.value);\n            j += pi.parsed + 2;\n            break;\n          case \"!\":\n            if (s.substring(j + 1, j + 3) === \"--\") {\n              q = s.indexOf(\"-->\", j + 3);\n              if (q < 0) {\n                this.onError(XMLParserErrorCode.UnterminatedComment);\n                return;\n              }\n              this.onComment(s.substring(j + 3, q));\n              j = q + 3;\n            } else if (s.substring(j + 1, j + 8) === \"[CDATA[\") {\n              q = s.indexOf(\"]]>\", j + 8);\n              if (q < 0) {\n                this.onError(XMLParserErrorCode.UnterminatedCdat);\n                return;\n              }\n              this.onCdata(s.substring(j + 8, q));\n              j = q + 3;\n            } else if (s.substring(j + 1, j + 8) === \"DOCTYPE\") {\n              const q2 = s.indexOf(\"[\", j + 8);\n              let complexDoctype = false;\n              q = s.indexOf(\">\", j + 8);\n              if (q < 0) {\n                this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n                return;\n              }\n              if (q2 > 0 && q > q2) {\n                q = s.indexOf(\"]>\", j + 8);\n                if (q < 0) {\n                  this.onError(\n                    XMLParserErrorCode.UnterminatedDoctypeDeclaration\n                  );\n                  return;\n                }\n                complexDoctype = true;\n              }\n              const doctypeContent = s.substring(\n                j + 8,\n                q + (complexDoctype ? 1 : 0)\n              );\n              this.onDoctype(doctypeContent);\n              j = q + (complexDoctype ? 2 : 1);\n            } else {\n              this.onError(XMLParserErrorCode.MalformedElement);\n              return;\n            }\n            break;\n          default:\n            const content = this._parseContent(s, j);\n            if (content === null) {\n              this.onError(XMLParserErrorCode.MalformedElement);\n              return;\n            }\n            let isClosed = false;\n            if (\n              s.substring(j + content.parsed, j + content.parsed + 2) === \"/>\"\n            ) {\n              isClosed = true;\n            } else if (\n              s.substring(j + content.parsed, j + content.parsed + 1) !== \">\"\n            ) {\n              this.onError(XMLParserErrorCode.UnterminatedElement);\n              return;\n            }\n            this.onBeginElement(content.name, content.attributes, isClosed);\n            j += content.parsed + (isClosed ? 2 : 1);\n            break;\n        }\n      } else {\n        while (j < s.length && s[j] !== \"<\") {\n          j++;\n        }\n        const text = s.substring(i, j);\n        this.onText(this._resolveEntities(text));\n      }\n      i = j;\n    }\n  }\n\n  onResolveEntity(name) {\n    return `&${name};`;\n  }\n\n  onPi(name, value) {}\n\n  onComment(text) {}\n\n  onCdata(text) {}\n\n  onDoctype(doctypeContent) {}\n\n  onText(text) {}\n\n  onBeginElement(name, attributes, isEmpty) {}\n\n  onEndElement(name) {}\n\n  onError(code) {}\n}\n\nclass SimpleDOMNode {\n  constructor(nodeName, nodeValue) {\n    this.nodeName = nodeName;\n    this.nodeValue = nodeValue;\n\n    Object.defineProperty(this, \"parentNode\", { value: null, writable: true });\n  }\n\n  get firstChild() {\n    return this.childNodes?.[0];\n  }\n\n  get nextSibling() {\n    const childNodes = this.parentNode.childNodes;\n    if (!childNodes) {\n      return undefined;\n    }\n    const index = childNodes.indexOf(this);\n    if (index === -1) {\n      return undefined;\n    }\n    return childNodes[index + 1];\n  }\n\n  get textContent() {\n    if (!this.childNodes) {\n      return this.nodeValue || \"\";\n    }\n    return this.childNodes\n      .map(function (child) {\n        return child.textContent;\n      })\n      .join(\"\");\n  }\n\n  get children() {\n    return this.childNodes || [];\n  }\n\n  hasChildNodes() {\n    return this.childNodes?.length > 0;\n  }\n\n  /**\n   * Search a node in the tree with the given path\n   * foo.bar[nnn], i.e. find the nnn-th node named\n   * bar under a node named foo.\n   *\n   * @param {Array} paths - an array of objects as\n   * returned by {parseXFAPath}.\n   * @param {number} pos - the current position in\n   * the paths array.\n   * @returns {SimpleDOMNode} The node corresponding\n   * to the path or null if not found.\n   */\n  searchNode(paths, pos) {\n    if (pos >= paths.length) {\n      return this;\n    }\n\n    const component = paths[pos];\n    if (component.name.startsWith(\"#\") && pos < paths.length - 1) {\n      // If it starts with a # then it's a class which is not a concept for\n      // datasets elements (https://www.pdfa.org/norm-refs/XFA-3_3.pdf#page=96).\n      return this.searchNode(paths, pos + 1);\n    }\n    const stack = [];\n    let node = this;\n\n    while (true) {\n      if (component.name === node.nodeName) {\n        if (component.pos === 0) {\n          const res = node.searchNode(paths, pos + 1);\n          if (res !== null) {\n            return res;\n          }\n        } else if (stack.length === 0) {\n          return null;\n        } else {\n          const [parent] = stack.pop();\n          let siblingPos = 0;\n          for (const child of parent.childNodes) {\n            if (component.name === child.nodeName) {\n              if (siblingPos === component.pos) {\n                return child.searchNode(paths, pos + 1);\n              }\n              siblingPos++;\n            }\n          }\n          // We didn't find the correct sibling\n          // so just return the first found node\n          return node.searchNode(paths, pos + 1);\n        }\n      }\n\n      if (node.childNodes?.length > 0) {\n        stack.push([node, 0]);\n        node = node.childNodes[0];\n      } else if (stack.length === 0) {\n        return null;\n      } else {\n        while (stack.length !== 0) {\n          const [parent, currentPos] = stack.pop();\n          const newPos = currentPos + 1;\n          if (newPos < parent.childNodes.length) {\n            stack.push([parent, newPos]);\n            node = parent.childNodes[newPos];\n            break;\n          }\n        }\n        if (stack.length === 0) {\n          return null;\n        }\n      }\n    }\n  }\n\n  dump(buffer) {\n    if (this.nodeName === \"#text\") {\n      buffer.push(encodeToXmlString(this.nodeValue));\n      return;\n    }\n\n    buffer.push(`<${this.nodeName}`);\n    if (this.attributes) {\n      for (const attribute of this.attributes) {\n        buffer.push(\n          ` ${attribute.name}=\"${encodeToXmlString(attribute.value)}\"`\n        );\n      }\n    }\n    if (this.hasChildNodes()) {\n      buffer.push(\">\");\n      for (const child of this.childNodes) {\n        child.dump(buffer);\n      }\n      buffer.push(`</${this.nodeName}>`);\n    } else if (this.nodeValue) {\n      buffer.push(`>${encodeToXmlString(this.nodeValue)}</${this.nodeName}>`);\n    } else {\n      buffer.push(\"/>\");\n    }\n  }\n}\n\nclass SimpleXMLParser extends XMLParserBase {\n  constructor({ hasAttributes = false, lowerCaseName = false }) {\n    super();\n    this._currentFragment = null;\n    this._stack = null;\n    this._errorCode = XMLParserErrorCode.NoError;\n    this._hasAttributes = hasAttributes;\n    this._lowerCaseName = lowerCaseName;\n  }\n\n  parseFromString(data) {\n    this._currentFragment = [];\n    this._stack = [];\n    this._errorCode = XMLParserErrorCode.NoError;\n\n    this.parseXml(data);\n\n    if (this._errorCode !== XMLParserErrorCode.NoError) {\n      return undefined; // return undefined on error\n    }\n\n    // We should only have one root.\n    const [documentElement] = this._currentFragment;\n    if (!documentElement) {\n      return undefined; // Return undefined if no root was found.\n    }\n    return { documentElement };\n  }\n\n  onText(text) {\n    if (isWhitespaceString(text)) {\n      return;\n    }\n    const node = new SimpleDOMNode(\"#text\", text);\n    this._currentFragment.push(node);\n  }\n\n  onCdata(text) {\n    const node = new SimpleDOMNode(\"#text\", text);\n    this._currentFragment.push(node);\n  }\n\n  onBeginElement(name, attributes, isEmpty) {\n    if (this._lowerCaseName) {\n      name = name.toLowerCase();\n    }\n    const node = new SimpleDOMNode(name);\n    node.childNodes = [];\n    if (this._hasAttributes) {\n      node.attributes = attributes;\n    }\n    this._currentFragment.push(node);\n    if (isEmpty) {\n      return;\n    }\n    this._stack.push(this._currentFragment);\n    this._currentFragment = node.childNodes;\n  }\n\n  onEndElement(name) {\n    this._currentFragment = this._stack.pop() || [];\n    const lastElement = this._currentFragment.at(-1);\n    if (!lastElement) {\n      return null;\n    }\n    for (const childNode of lastElement.childNodes) {\n      childNode.parentNode = lastElement;\n    }\n    return lastElement;\n  }\n\n  onError(code) {\n    this._errorCode = code;\n  }\n}\n\nexport { SimpleDOMNode, SimpleXMLParser, XMLParserBase, XMLParserErrorCode };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SimpleXMLParser } from \"./xml_parser.js\";\n\nclass MetadataParser {\n  constructor(data) {\n    // Ghostscript may produce invalid metadata, so try to repair that first.\n    data = this._repair(data);\n\n    // Convert the string to an XML document.\n    const parser = new SimpleXMLParser({ lowerCaseName: true });\n    const xmlDocument = parser.parseFromString(data);\n\n    this._metadataMap = new Map();\n    this._data = data;\n\n    if (xmlDocument) {\n      this._parse(xmlDocument);\n    }\n  }\n\n  _repair(data) {\n    // Start by removing any \"junk\" before the first tag (see issue 10395).\n    return data\n      .replace(/^[^<]+/, \"\")\n      .replaceAll(/>\\\\376\\\\377([^<]+)/g, function (all, codes) {\n        const bytes = codes\n          .replaceAll(/\\\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) {\n            return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);\n          })\n          .replaceAll(/&(amp|apos|gt|lt|quot);/g, function (str, name) {\n            switch (name) {\n              case \"amp\":\n                return \"&\";\n              case \"apos\":\n                return \"'\";\n              case \"gt\":\n                return \">\";\n              case \"lt\":\n                return \"<\";\n              case \"quot\":\n                return '\"';\n            }\n            throw new Error(`_repair: ${name} isn't defined.`);\n          });\n\n        const charBuf = [\">\"];\n        for (let i = 0, ii = bytes.length; i < ii; i += 2) {\n          const code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n          if (\n            code >= /* Space = */ 32 &&\n            code < /* Delete = */ 127 &&\n            code !== /* '<' = */ 60 &&\n            code !== /* '>' = */ 62 &&\n            code !== /* '&' = */ 38\n          ) {\n            charBuf.push(String.fromCharCode(code));\n          } else {\n            charBuf.push(\n              \"&#x\" + (0x10000 + code).toString(16).substring(1) + \";\"\n            );\n          }\n        }\n        return charBuf.join(\"\");\n      });\n  }\n\n  _getSequence(entry) {\n    const name = entry.nodeName;\n    if (name !== \"rdf:bag\" && name !== \"rdf:seq\" && name !== \"rdf:alt\") {\n      return null;\n    }\n    return entry.childNodes.filter(node => node.nodeName === \"rdf:li\");\n  }\n\n  _parseArray(entry) {\n    if (!entry.hasChildNodes()) {\n      return;\n    }\n    // Child must be a Bag (unordered array) or a Seq.\n    const [seqNode] = entry.childNodes;\n    const sequence = this._getSequence(seqNode) || [];\n\n    this._metadataMap.set(\n      entry.nodeName,\n      sequence.map(node => node.textContent.trim())\n    );\n  }\n\n  _parse(xmlDocument) {\n    let rdf = xmlDocument.documentElement;\n\n    if (rdf.nodeName !== \"rdf:rdf\") {\n      // Wrapped in <xmpmeta>\n      rdf = rdf.firstChild;\n      while (rdf && rdf.nodeName !== \"rdf:rdf\") {\n        rdf = rdf.nextSibling;\n      }\n    }\n\n    if (!rdf || rdf.nodeName !== \"rdf:rdf\" || !rdf.hasChildNodes()) {\n      return;\n    }\n\n    for (const desc of rdf.childNodes) {\n      if (desc.nodeName !== \"rdf:description\") {\n        continue;\n      }\n\n      for (const entry of desc.childNodes) {\n        const name = entry.nodeName;\n        switch (name) {\n          case \"#text\":\n            continue;\n          case \"dc:creator\":\n          case \"dc:subject\":\n            this._parseArray(entry);\n            continue;\n        }\n        this._metadataMap.set(name, entry.textContent.trim());\n      }\n    }\n  }\n\n  get serializable() {\n    return {\n      parsedData: this._metadataMap,\n      rawData: this._data,\n    };\n  }\n}\n\nexport { MetadataParser };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nconst chunkSize = 512;\n\nclass DecryptStream extends DecodeStream {\n  constructor(str, maybeLength, decrypt) {\n    super(maybeLength);\n\n    this.str = str;\n    this.dict = str.dict;\n    this.decrypt = decrypt;\n    this.nextChunk = null;\n    this.initialized = false;\n  }\n\n  readBlock() {\n    let chunk;\n    if (this.initialized) {\n      chunk = this.nextChunk;\n    } else {\n      chunk = this.str.getBytes(chunkSize);\n      this.initialized = true;\n    }\n    if (!chunk || chunk.length === 0) {\n      this.eof = true;\n      return;\n    }\n    this.nextChunk = this.str.getBytes(chunkSize);\n    const hasMoreData = this.nextChunk?.length > 0;\n\n    const decrypt = this.decrypt;\n    chunk = decrypt(chunk, !hasMoreData);\n\n    const bufferLength = this.bufferLength,\n      newLength = bufferLength + chunk.length,\n      buffer = this.ensureBuffer(newLength);\n    buffer.set(chunk, bufferLength);\n    this.bufferLength = newLength;\n  }\n}\n\nexport { DecryptStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  bytesToString,\n  FormatError,\n  isArrayEqual,\n  PasswordException,\n  PasswordResponses,\n  stringToBytes,\n  unreachable,\n  utf8StringToString,\n  warn,\n} from \"../shared/util.js\";\nimport { Dict, isName, Name } from \"./primitives.js\";\nimport { DecryptStream } from \"./decrypt_stream.js\";\n\nclass ARCFourCipher {\n  constructor(key) {\n    this.a = 0;\n    this.b = 0;\n    const s = new Uint8Array(256);\n    const keyLength = key.length;\n\n    for (let i = 0; i < 256; ++i) {\n      s[i] = i;\n    }\n    for (let i = 0, j = 0; i < 256; ++i) {\n      const tmp = s[i];\n      j = (j + tmp + key[i % keyLength]) & 0xff;\n      s[i] = s[j];\n      s[j] = tmp;\n    }\n    this.s = s;\n  }\n\n  encryptBlock(data) {\n    let a = this.a,\n      b = this.b;\n    const s = this.s;\n    const n = data.length;\n    const output = new Uint8Array(n);\n    for (let i = 0; i < n; ++i) {\n      a = (a + 1) & 0xff;\n      const tmp = s[a];\n      b = (b + tmp) & 0xff;\n      const tmp2 = s[b];\n      s[a] = tmp2;\n      s[b] = tmp;\n      output[i] = data[i] ^ s[(tmp + tmp2) & 0xff];\n    }\n    this.a = a;\n    this.b = b;\n    return output;\n  }\n\n  decryptBlock(data) {\n    return this.encryptBlock(data);\n  }\n\n  encrypt(data) {\n    return this.encryptBlock(data);\n  }\n}\n\nconst calculateMD5 = (function calculateMD5Closure() {\n  const r = new Uint8Array([\n    7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5,\n    9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11,\n    16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10,\n    15, 21,\n  ]);\n\n  const k = new Int32Array([\n    -680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426,\n    -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162,\n    1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632,\n    643717713, -373897302, -701558691, 38016083, -660478335, -405537848,\n    568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784,\n    1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556,\n    -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222,\n    -722521979, 76029189, -640364487, -421815835, 530742520, -995338651,\n    -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606,\n    -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649,\n    -145523070, -1120210379, 718787259, -343485551,\n  ]);\n\n  function hash(data, offset, length) {\n    let h0 = 1732584193,\n      h1 = -271733879,\n      h2 = -1732584194,\n      h3 = 271733878;\n    // pre-processing\n    const paddedLength = (length + 72) & ~63; // data + 9 extra bytes\n    const padded = new Uint8Array(paddedLength);\n    let i, j;\n    for (i = 0; i < length; ++i) {\n      padded[i] = data[offset++];\n    }\n    padded[i++] = 0x80;\n    const n = paddedLength - 8;\n    while (i < n) {\n      padded[i++] = 0;\n    }\n    padded[i++] = (length << 3) & 0xff;\n    padded[i++] = (length >> 5) & 0xff;\n    padded[i++] = (length >> 13) & 0xff;\n    padded[i++] = (length >> 21) & 0xff;\n    padded[i++] = (length >>> 29) & 0xff;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    const w = new Int32Array(16);\n    for (i = 0; i < paddedLength; ) {\n      for (j = 0; j < 16; ++j, i += 4) {\n        w[j] =\n          padded[i] |\n          (padded[i + 1] << 8) |\n          (padded[i + 2] << 16) |\n          (padded[i + 3] << 24);\n      }\n      let a = h0,\n        b = h1,\n        c = h2,\n        d = h3,\n        f,\n        g;\n      for (j = 0; j < 64; ++j) {\n        if (j < 16) {\n          f = (b & c) | (~b & d);\n          g = j;\n        } else if (j < 32) {\n          f = (d & b) | (~d & c);\n          g = (5 * j + 1) & 15;\n        } else if (j < 48) {\n          f = b ^ c ^ d;\n          g = (3 * j + 5) & 15;\n        } else {\n          f = c ^ (b | ~d);\n          g = (7 * j) & 15;\n        }\n        const tmp = d,\n          rotateArg = (a + f + k[j] + w[g]) | 0,\n          rotate = r[j];\n        d = c;\n        c = b;\n        b = (b + ((rotateArg << rotate) | (rotateArg >>> (32 - rotate)))) | 0;\n        a = tmp;\n      }\n      h0 = (h0 + a) | 0;\n      h1 = (h1 + b) | 0;\n      h2 = (h2 + c) | 0;\n      h3 = (h3 + d) | 0;\n    }\n    // prettier-ignore\n    return new Uint8Array([\n      h0 & 0xFF, (h0 >> 8) & 0xFF, (h0 >> 16) & 0xFF, (h0 >>> 24) & 0xFF,\n      h1 & 0xFF, (h1 >> 8) & 0xFF, (h1 >> 16) & 0xFF, (h1 >>> 24) & 0xFF,\n      h2 & 0xFF, (h2 >> 8) & 0xFF, (h2 >> 16) & 0xFF, (h2 >>> 24) & 0xFF,\n      h3 & 0xFF, (h3 >> 8) & 0xFF, (h3 >> 16) & 0xFF, (h3 >>> 24) & 0xFF\n    ]);\n  }\n\n  return hash;\n})();\n\nclass Word64 {\n  constructor(highInteger, lowInteger) {\n    this.high = highInteger | 0;\n    this.low = lowInteger | 0;\n  }\n\n  and(word) {\n    this.high &= word.high;\n    this.low &= word.low;\n  }\n\n  xor(word) {\n    this.high ^= word.high;\n    this.low ^= word.low;\n  }\n\n  or(word) {\n    this.high |= word.high;\n    this.low |= word.low;\n  }\n\n  shiftRight(places) {\n    if (places >= 32) {\n      this.low = (this.high >>> (places - 32)) | 0;\n      this.high = 0;\n    } else {\n      this.low = (this.low >>> places) | (this.high << (32 - places));\n      this.high = (this.high >>> places) | 0;\n    }\n  }\n\n  shiftLeft(places) {\n    if (places >= 32) {\n      this.high = this.low << (places - 32);\n      this.low = 0;\n    } else {\n      this.high = (this.high << places) | (this.low >>> (32 - places));\n      this.low <<= places;\n    }\n  }\n\n  rotateRight(places) {\n    let low, high;\n    if (places & 32) {\n      high = this.low;\n      low = this.high;\n    } else {\n      low = this.low;\n      high = this.high;\n    }\n    places &= 31;\n    this.low = (low >>> places) | (high << (32 - places));\n    this.high = (high >>> places) | (low << (32 - places));\n  }\n\n  not() {\n    this.high = ~this.high;\n    this.low = ~this.low;\n  }\n\n  add(word) {\n    const lowAdd = (this.low >>> 0) + (word.low >>> 0);\n    let highAdd = (this.high >>> 0) + (word.high >>> 0);\n    if (lowAdd > 0xffffffff) {\n      highAdd += 1;\n    }\n    this.low = lowAdd | 0;\n    this.high = highAdd | 0;\n  }\n\n  copyTo(bytes, offset) {\n    bytes[offset] = (this.high >>> 24) & 0xff;\n    bytes[offset + 1] = (this.high >> 16) & 0xff;\n    bytes[offset + 2] = (this.high >> 8) & 0xff;\n    bytes[offset + 3] = this.high & 0xff;\n    bytes[offset + 4] = (this.low >>> 24) & 0xff;\n    bytes[offset + 5] = (this.low >> 16) & 0xff;\n    bytes[offset + 6] = (this.low >> 8) & 0xff;\n    bytes[offset + 7] = this.low & 0xff;\n  }\n\n  assign(word) {\n    this.high = word.high;\n    this.low = word.low;\n  }\n}\n\nconst calculateSHA256 = (function calculateSHA256Closure() {\n  function rotr(x, n) {\n    return (x >>> n) | (x << (32 - n));\n  }\n\n  function ch(x, y, z) {\n    return (x & y) ^ (~x & z);\n  }\n\n  function maj(x, y, z) {\n    return (x & y) ^ (x & z) ^ (y & z);\n  }\n\n  function sigma(x) {\n    return rotr(x, 2) ^ rotr(x, 13) ^ rotr(x, 22);\n  }\n\n  function sigmaPrime(x) {\n    return rotr(x, 6) ^ rotr(x, 11) ^ rotr(x, 25);\n  }\n\n  function littleSigma(x) {\n    return rotr(x, 7) ^ rotr(x, 18) ^ (x >>> 3);\n  }\n\n  function littleSigmaPrime(x) {\n    return rotr(x, 17) ^ rotr(x, 19) ^ (x >>> 10);\n  }\n\n  const k = [\n    0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1,\n    0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n    0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786,\n    0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n    0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n    0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n    0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b,\n    0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n    0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a,\n    0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n    0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,\n  ];\n\n  function hash(data, offset, length) {\n    // initial hash values\n    let h0 = 0x6a09e667,\n      h1 = 0xbb67ae85,\n      h2 = 0x3c6ef372,\n      h3 = 0xa54ff53a,\n      h4 = 0x510e527f,\n      h5 = 0x9b05688c,\n      h6 = 0x1f83d9ab,\n      h7 = 0x5be0cd19;\n    // pre-processing\n    const paddedLength = Math.ceil((length + 9) / 64) * 64;\n    const padded = new Uint8Array(paddedLength);\n    let i, j;\n    for (i = 0; i < length; ++i) {\n      padded[i] = data[offset++];\n    }\n    padded[i++] = 0x80;\n    const n = paddedLength - 8;\n    while (i < n) {\n      padded[i++] = 0;\n    }\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = (length >>> 29) & 0xff;\n    padded[i++] = (length >> 21) & 0xff;\n    padded[i++] = (length >> 13) & 0xff;\n    padded[i++] = (length >> 5) & 0xff;\n    padded[i++] = (length << 3) & 0xff;\n    const w = new Uint32Array(64);\n    // for each 512 bit block\n    for (i = 0; i < paddedLength; ) {\n      for (j = 0; j < 16; ++j) {\n        w[j] =\n          (padded[i] << 24) |\n          (padded[i + 1] << 16) |\n          (padded[i + 2] << 8) |\n          padded[i + 3];\n        i += 4;\n      }\n\n      for (j = 16; j < 64; ++j) {\n        w[j] =\n          (littleSigmaPrime(w[j - 2]) +\n            w[j - 7] +\n            littleSigma(w[j - 15]) +\n            w[j - 16]) |\n          0;\n      }\n      let a = h0,\n        b = h1,\n        c = h2,\n        d = h3,\n        e = h4,\n        f = h5,\n        g = h6,\n        h = h7,\n        t1,\n        t2;\n      for (j = 0; j < 64; ++j) {\n        t1 = h + sigmaPrime(e) + ch(e, f, g) + k[j] + w[j];\n        t2 = sigma(a) + maj(a, b, c);\n        h = g;\n        g = f;\n        f = e;\n        e = (d + t1) | 0;\n        d = c;\n        c = b;\n        b = a;\n        a = (t1 + t2) | 0;\n      }\n      h0 = (h0 + a) | 0;\n      h1 = (h1 + b) | 0;\n      h2 = (h2 + c) | 0;\n      h3 = (h3 + d) | 0;\n      h4 = (h4 + e) | 0;\n      h5 = (h5 + f) | 0;\n      h6 = (h6 + g) | 0;\n      h7 = (h7 + h) | 0;\n    }\n    // prettier-ignore\n    return new Uint8Array([\n      (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, (h0) & 0xFF,\n      (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, (h1) & 0xFF,\n      (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, (h2) & 0xFF,\n      (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, (h3) & 0xFF,\n      (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, (h4) & 0xFF,\n      (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, (h5) & 0xFF,\n      (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, (h6) & 0xFF,\n      (h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, (h7) & 0xFF\n    ]);\n  }\n\n  return hash;\n})();\n\nconst calculateSHA512 = (function calculateSHA512Closure() {\n  function ch(result, x, y, z, tmp) {\n    result.assign(x);\n    result.and(y);\n    tmp.assign(x);\n    tmp.not();\n    tmp.and(z);\n    result.xor(tmp);\n  }\n\n  function maj(result, x, y, z, tmp) {\n    result.assign(x);\n    result.and(y);\n    tmp.assign(x);\n    tmp.and(z);\n    result.xor(tmp);\n    tmp.assign(y);\n    tmp.and(z);\n    result.xor(tmp);\n  }\n\n  function sigma(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(28);\n    tmp.assign(x);\n    tmp.rotateRight(34);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.rotateRight(39);\n    result.xor(tmp);\n  }\n\n  function sigmaPrime(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(14);\n    tmp.assign(x);\n    tmp.rotateRight(18);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.rotateRight(41);\n    result.xor(tmp);\n  }\n\n  function littleSigma(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(1);\n    tmp.assign(x);\n    tmp.rotateRight(8);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.shiftRight(7);\n    result.xor(tmp);\n  }\n\n  function littleSigmaPrime(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(19);\n    tmp.assign(x);\n    tmp.rotateRight(61);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.shiftRight(6);\n    result.xor(tmp);\n  }\n\n  // prettier-ignore\n  const k = [\n    new Word64(0x428a2f98, 0xd728ae22), new Word64(0x71374491, 0x23ef65cd),\n    new Word64(0xb5c0fbcf, 0xec4d3b2f), new Word64(0xe9b5dba5, 0x8189dbbc),\n    new Word64(0x3956c25b, 0xf348b538), new Word64(0x59f111f1, 0xb605d019),\n    new Word64(0x923f82a4, 0xaf194f9b), new Word64(0xab1c5ed5, 0xda6d8118),\n    new Word64(0xd807aa98, 0xa3030242), new Word64(0x12835b01, 0x45706fbe),\n    new Word64(0x243185be, 0x4ee4b28c), new Word64(0x550c7dc3, 0xd5ffb4e2),\n    new Word64(0x72be5d74, 0xf27b896f), new Word64(0x80deb1fe, 0x3b1696b1),\n    new Word64(0x9bdc06a7, 0x25c71235), new Word64(0xc19bf174, 0xcf692694),\n    new Word64(0xe49b69c1, 0x9ef14ad2), new Word64(0xefbe4786, 0x384f25e3),\n    new Word64(0x0fc19dc6, 0x8b8cd5b5), new Word64(0x240ca1cc, 0x77ac9c65),\n    new Word64(0x2de92c6f, 0x592b0275), new Word64(0x4a7484aa, 0x6ea6e483),\n    new Word64(0x5cb0a9dc, 0xbd41fbd4), new Word64(0x76f988da, 0x831153b5),\n    new Word64(0x983e5152, 0xee66dfab), new Word64(0xa831c66d, 0x2db43210),\n    new Word64(0xb00327c8, 0x98fb213f), new Word64(0xbf597fc7, 0xbeef0ee4),\n    new Word64(0xc6e00bf3, 0x3da88fc2), new Word64(0xd5a79147, 0x930aa725),\n    new Word64(0x06ca6351, 0xe003826f), new Word64(0x14292967, 0x0a0e6e70),\n    new Word64(0x27b70a85, 0x46d22ffc), new Word64(0x2e1b2138, 0x5c26c926),\n    new Word64(0x4d2c6dfc, 0x5ac42aed), new Word64(0x53380d13, 0x9d95b3df),\n    new Word64(0x650a7354, 0x8baf63de), new Word64(0x766a0abb, 0x3c77b2a8),\n    new Word64(0x81c2c92e, 0x47edaee6), new Word64(0x92722c85, 0x1482353b),\n    new Word64(0xa2bfe8a1, 0x4cf10364), new Word64(0xa81a664b, 0xbc423001),\n    new Word64(0xc24b8b70, 0xd0f89791), new Word64(0xc76c51a3, 0x0654be30),\n    new Word64(0xd192e819, 0xd6ef5218), new Word64(0xd6990624, 0x5565a910),\n    new Word64(0xf40e3585, 0x5771202a), new Word64(0x106aa070, 0x32bbd1b8),\n    new Word64(0x19a4c116, 0xb8d2d0c8), new Word64(0x1e376c08, 0x5141ab53),\n    new Word64(0x2748774c, 0xdf8eeb99), new Word64(0x34b0bcb5, 0xe19b48a8),\n    new Word64(0x391c0cb3, 0xc5c95a63), new Word64(0x4ed8aa4a, 0xe3418acb),\n    new Word64(0x5b9cca4f, 0x7763e373), new Word64(0x682e6ff3, 0xd6b2b8a3),\n    new Word64(0x748f82ee, 0x5defb2fc), new Word64(0x78a5636f, 0x43172f60),\n    new Word64(0x84c87814, 0xa1f0ab72), new Word64(0x8cc70208, 0x1a6439ec),\n    new Word64(0x90befffa, 0x23631e28), new Word64(0xa4506ceb, 0xde82bde9),\n    new Word64(0xbef9a3f7, 0xb2c67915), new Word64(0xc67178f2, 0xe372532b),\n    new Word64(0xca273ece, 0xea26619c), new Word64(0xd186b8c7, 0x21c0c207),\n    new Word64(0xeada7dd6, 0xcde0eb1e), new Word64(0xf57d4f7f, 0xee6ed178),\n    new Word64(0x06f067aa, 0x72176fba), new Word64(0x0a637dc5, 0xa2c898a6),\n    new Word64(0x113f9804, 0xbef90dae), new Word64(0x1b710b35, 0x131c471b),\n    new Word64(0x28db77f5, 0x23047d84), new Word64(0x32caab7b, 0x40c72493),\n    new Word64(0x3c9ebe0a, 0x15c9bebc), new Word64(0x431d67c4, 0x9c100d4c),\n    new Word64(0x4cc5d4be, 0xcb3e42b6), new Word64(0x597f299c, 0xfc657e2a),\n    new Word64(0x5fcb6fab, 0x3ad6faec), new Word64(0x6c44198c, 0x4a475817)];\n\n  function hash(data, offset, length, mode384 = false) {\n    // initial hash values\n    let h0, h1, h2, h3, h4, h5, h6, h7;\n    if (!mode384) {\n      h0 = new Word64(0x6a09e667, 0xf3bcc908);\n      h1 = new Word64(0xbb67ae85, 0x84caa73b);\n      h2 = new Word64(0x3c6ef372, 0xfe94f82b);\n      h3 = new Word64(0xa54ff53a, 0x5f1d36f1);\n      h4 = new Word64(0x510e527f, 0xade682d1);\n      h5 = new Word64(0x9b05688c, 0x2b3e6c1f);\n      h6 = new Word64(0x1f83d9ab, 0xfb41bd6b);\n      h7 = new Word64(0x5be0cd19, 0x137e2179);\n    } else {\n      // SHA384 is exactly the same\n      // except with different starting values and a trimmed result\n      h0 = new Word64(0xcbbb9d5d, 0xc1059ed8);\n      h1 = new Word64(0x629a292a, 0x367cd507);\n      h2 = new Word64(0x9159015a, 0x3070dd17);\n      h3 = new Word64(0x152fecd8, 0xf70e5939);\n      h4 = new Word64(0x67332667, 0xffc00b31);\n      h5 = new Word64(0x8eb44a87, 0x68581511);\n      h6 = new Word64(0xdb0c2e0d, 0x64f98fa7);\n      h7 = new Word64(0x47b5481d, 0xbefa4fa4);\n    }\n\n    // pre-processing\n    const paddedLength = Math.ceil((length + 17) / 128) * 128;\n    const padded = new Uint8Array(paddedLength);\n    let i, j;\n    for (i = 0; i < length; ++i) {\n      padded[i] = data[offset++];\n    }\n    padded[i++] = 0x80;\n    const n = paddedLength - 16;\n    while (i < n) {\n      padded[i++] = 0;\n    }\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = (length >>> 29) & 0xff;\n    padded[i++] = (length >> 21) & 0xff;\n    padded[i++] = (length >> 13) & 0xff;\n    padded[i++] = (length >> 5) & 0xff;\n    padded[i++] = (length << 3) & 0xff;\n\n    const w = new Array(80);\n    for (i = 0; i < 80; i++) {\n      w[i] = new Word64(0, 0);\n    }\n    let a = new Word64(0, 0),\n      b = new Word64(0, 0),\n      c = new Word64(0, 0);\n    let d = new Word64(0, 0),\n      e = new Word64(0, 0),\n      f = new Word64(0, 0);\n    let g = new Word64(0, 0),\n      h = new Word64(0, 0);\n    const t1 = new Word64(0, 0),\n      t2 = new Word64(0, 0);\n    const tmp1 = new Word64(0, 0),\n      tmp2 = new Word64(0, 0);\n    let tmp3;\n\n    // for each 1024 bit block\n    for (i = 0; i < paddedLength; ) {\n      for (j = 0; j < 16; ++j) {\n        w[j].high =\n          (padded[i] << 24) |\n          (padded[i + 1] << 16) |\n          (padded[i + 2] << 8) |\n          padded[i + 3];\n        w[j].low =\n          (padded[i + 4] << 24) |\n          (padded[i + 5] << 16) |\n          (padded[i + 6] << 8) |\n          padded[i + 7];\n        i += 8;\n      }\n      for (j = 16; j < 80; ++j) {\n        tmp3 = w[j];\n        littleSigmaPrime(tmp3, w[j - 2], tmp2);\n        tmp3.add(w[j - 7]);\n        littleSigma(tmp1, w[j - 15], tmp2);\n        tmp3.add(tmp1);\n        tmp3.add(w[j - 16]);\n      }\n\n      a.assign(h0);\n      b.assign(h1);\n      c.assign(h2);\n      d.assign(h3);\n      e.assign(h4);\n      f.assign(h5);\n      g.assign(h6);\n      h.assign(h7);\n      for (j = 0; j < 80; ++j) {\n        t1.assign(h);\n        sigmaPrime(tmp1, e, tmp2);\n        t1.add(tmp1);\n        ch(tmp1, e, f, g, tmp2);\n        t1.add(tmp1);\n        t1.add(k[j]);\n        t1.add(w[j]);\n\n        sigma(t2, a, tmp2);\n        maj(tmp1, a, b, c, tmp2);\n        t2.add(tmp1);\n\n        tmp3 = h;\n        h = g;\n        g = f;\n        f = e;\n        d.add(t1);\n        e = d;\n        d = c;\n        c = b;\n        b = a;\n        tmp3.assign(t1);\n        tmp3.add(t2);\n        a = tmp3;\n      }\n      h0.add(a);\n      h1.add(b);\n      h2.add(c);\n      h3.add(d);\n      h4.add(e);\n      h5.add(f);\n      h6.add(g);\n      h7.add(h);\n    }\n\n    let result;\n    if (!mode384) {\n      result = new Uint8Array(64);\n      h0.copyTo(result, 0);\n      h1.copyTo(result, 8);\n      h2.copyTo(result, 16);\n      h3.copyTo(result, 24);\n      h4.copyTo(result, 32);\n      h5.copyTo(result, 40);\n      h6.copyTo(result, 48);\n      h7.copyTo(result, 56);\n    } else {\n      result = new Uint8Array(48);\n      h0.copyTo(result, 0);\n      h1.copyTo(result, 8);\n      h2.copyTo(result, 16);\n      h3.copyTo(result, 24);\n      h4.copyTo(result, 32);\n      h5.copyTo(result, 40);\n    }\n    return result;\n  }\n\n  return hash;\n})();\n\nfunction calculateSHA384(data, offset, length) {\n  return calculateSHA512(data, offset, length, /* mode384 = */ true);\n}\n\nclass NullCipher {\n  decryptBlock(data) {\n    return data;\n  }\n\n  encrypt(data) {\n    return data;\n  }\n}\n\nclass AESBaseCipher {\n  constructor() {\n    if (this.constructor === AESBaseCipher) {\n      unreachable(\"Cannot initialize AESBaseCipher.\");\n    }\n\n    this._s = new Uint8Array([\n      0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b,\n      0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0,\n      0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26,\n      0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,\n      0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2,\n      0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0,\n      0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed,\n      0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,\n      0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f,\n      0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5,\n      0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec,\n      0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,\n      0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14,\n      0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c,\n      0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d,\n      0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,\n      0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f,\n      0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e,\n      0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11,\n      0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,\n      0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f,\n      0xb0, 0x54, 0xbb, 0x16,\n    ]);\n\n    this._inv_s = new Uint8Array([\n      0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e,\n      0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87,\n      0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32,\n      0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e,\n      0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49,\n      0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16,\n      0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50,\n      0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84,\n      0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05,\n      0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02,\n      0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41,\n      0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73,\n      0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8,\n      0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89,\n      0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b,\n      0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4,\n      0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59,\n      0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d,\n      0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d,\n      0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61,\n      0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63,\n      0x55, 0x21, 0x0c, 0x7d,\n    ]);\n\n    this._mix = new Uint32Array([\n      0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927,\n      0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45,\n      0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb,\n      0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381,\n      0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf,\n      0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66,\n      0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28,\n      0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012,\n      0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec,\n      0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e,\n      0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd,\n      0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7,\n      0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89,\n      0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b,\n      0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815,\n      0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f,\n      0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa,\n      0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8,\n      0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36,\n      0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c,\n      0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742,\n      0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea,\n      0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4,\n      0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e,\n      0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360,\n      0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502,\n      0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87,\n      0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd,\n      0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3,\n      0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621,\n      0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f,\n      0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55,\n      0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26,\n      0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844,\n      0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba,\n      0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480,\n      0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce,\n      0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67,\n      0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929,\n      0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713,\n      0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed,\n      0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f,\n      0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3,\n    ]);\n\n    this._mixCol = new Uint8Array(256);\n    for (let i = 0; i < 256; i++) {\n      this._mixCol[i] = i < 128 ? i << 1 : (i << 1) ^ 0x1b;\n    }\n\n    this.buffer = new Uint8Array(16);\n    this.bufferPosition = 0;\n  }\n\n  _expandKey(cipherKey) {\n    unreachable(\"Cannot call `_expandKey` on the base class\");\n  }\n\n  _decrypt(input, key) {\n    let t, u, v;\n    const state = new Uint8Array(16);\n    state.set(input);\n\n    // AddRoundKey\n    for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n      state[j] ^= key[k];\n    }\n    for (let i = this._cyclesOfRepetition - 1; i >= 1; --i) {\n      // InvShiftRows\n      t = state[13];\n      state[13] = state[9];\n      state[9] = state[5];\n      state[5] = state[1];\n      state[1] = t;\n      t = state[14];\n      u = state[10];\n      state[14] = state[6];\n      state[10] = state[2];\n      state[6] = t;\n      state[2] = u;\n      t = state[15];\n      u = state[11];\n      v = state[7];\n      state[15] = state[3];\n      state[11] = t;\n      state[7] = u;\n      state[3] = v;\n      // InvSubBytes\n      for (let j = 0; j < 16; ++j) {\n        state[j] = this._inv_s[state[j]];\n      }\n      // AddRoundKey\n      for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n        state[j] ^= key[k];\n      }\n      // InvMixColumns\n      for (let j = 0; j < 16; j += 4) {\n        const s0 = this._mix[state[j]];\n        const s1 = this._mix[state[j + 1]];\n        const s2 = this._mix[state[j + 2]];\n        const s3 = this._mix[state[j + 3]];\n        t =\n          s0 ^\n          (s1 >>> 8) ^\n          (s1 << 24) ^\n          (s2 >>> 16) ^\n          (s2 << 16) ^\n          (s3 >>> 24) ^\n          (s3 << 8);\n        state[j] = (t >>> 24) & 0xff;\n        state[j + 1] = (t >> 16) & 0xff;\n        state[j + 2] = (t >> 8) & 0xff;\n        state[j + 3] = t & 0xff;\n      }\n    }\n    // InvShiftRows\n    t = state[13];\n    state[13] = state[9];\n    state[9] = state[5];\n    state[5] = state[1];\n    state[1] = t;\n    t = state[14];\n    u = state[10];\n    state[14] = state[6];\n    state[10] = state[2];\n    state[6] = t;\n    state[2] = u;\n    t = state[15];\n    u = state[11];\n    v = state[7];\n    state[15] = state[3];\n    state[11] = t;\n    state[7] = u;\n    state[3] = v;\n    for (let j = 0; j < 16; ++j) {\n      // InvSubBytes\n      state[j] = this._inv_s[state[j]];\n      // AddRoundKey\n      state[j] ^= key[j];\n    }\n    return state;\n  }\n\n  _encrypt(input, key) {\n    const s = this._s;\n\n    let t, u, v;\n    const state = new Uint8Array(16);\n    state.set(input);\n\n    for (let j = 0; j < 16; ++j) {\n      // AddRoundKey\n      state[j] ^= key[j];\n    }\n\n    for (let i = 1; i < this._cyclesOfRepetition; i++) {\n      // SubBytes\n      for (let j = 0; j < 16; ++j) {\n        state[j] = s[state[j]];\n      }\n      // ShiftRows\n      v = state[1];\n      state[1] = state[5];\n      state[5] = state[9];\n      state[9] = state[13];\n      state[13] = v;\n      v = state[2];\n      u = state[6];\n      state[2] = state[10];\n      state[6] = state[14];\n      state[10] = v;\n      state[14] = u;\n      v = state[3];\n      u = state[7];\n      t = state[11];\n      state[3] = state[15];\n      state[7] = v;\n      state[11] = u;\n      state[15] = t;\n      // MixColumns\n      for (let j = 0; j < 16; j += 4) {\n        const s0 = state[j + 0];\n        const s1 = state[j + 1];\n        const s2 = state[j + 2];\n        const s3 = state[j + 3];\n        t = s0 ^ s1 ^ s2 ^ s3;\n        state[j + 0] ^= t ^ this._mixCol[s0 ^ s1];\n        state[j + 1] ^= t ^ this._mixCol[s1 ^ s2];\n        state[j + 2] ^= t ^ this._mixCol[s2 ^ s3];\n        state[j + 3] ^= t ^ this._mixCol[s3 ^ s0];\n      }\n      // AddRoundKey\n      for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n        state[j] ^= key[k];\n      }\n    }\n\n    // SubBytes\n    for (let j = 0; j < 16; ++j) {\n      state[j] = s[state[j]];\n    }\n    // ShiftRows\n    v = state[1];\n    state[1] = state[5];\n    state[5] = state[9];\n    state[9] = state[13];\n    state[13] = v;\n    v = state[2];\n    u = state[6];\n    state[2] = state[10];\n    state[6] = state[14];\n    state[10] = v;\n    state[14] = u;\n    v = state[3];\n    u = state[7];\n    t = state[11];\n    state[3] = state[15];\n    state[7] = v;\n    state[11] = u;\n    state[15] = t;\n    // AddRoundKey\n    for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n      state[j] ^= key[k];\n    }\n    return state;\n  }\n\n  _decryptBlock2(data, finalize) {\n    const sourceLength = data.length;\n    let buffer = this.buffer,\n      bufferLength = this.bufferPosition;\n    const result = [];\n    let iv = this.iv;\n\n    for (let i = 0; i < sourceLength; ++i) {\n      buffer[bufferLength] = data[i];\n      ++bufferLength;\n      if (bufferLength < 16) {\n        continue;\n      }\n      // buffer is full, decrypting\n      const plain = this._decrypt(buffer, this._key);\n      // xor-ing the IV vector to get plain text\n      for (let j = 0; j < 16; ++j) {\n        plain[j] ^= iv[j];\n      }\n      iv = buffer;\n      result.push(plain);\n      buffer = new Uint8Array(16);\n      bufferLength = 0;\n    }\n    // saving incomplete buffer\n    this.buffer = buffer;\n    this.bufferLength = bufferLength;\n    this.iv = iv;\n    if (result.length === 0) {\n      return new Uint8Array(0);\n    }\n    // combining plain text blocks into one\n    let outputLength = 16 * result.length;\n    if (finalize) {\n      // undo a padding that is described in RFC 2898\n      const lastBlock = result.at(-1);\n      let psLen = lastBlock[15];\n      if (psLen <= 16) {\n        for (let i = 15, ii = 16 - psLen; i >= ii; --i) {\n          if (lastBlock[i] !== psLen) {\n            // Invalid padding, assume that the block has no padding.\n            psLen = 0;\n            break;\n          }\n        }\n        outputLength -= psLen;\n        result[result.length - 1] = lastBlock.subarray(0, 16 - psLen);\n      }\n    }\n    const output = new Uint8Array(outputLength);\n    for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n      output.set(result[i], j);\n    }\n    return output;\n  }\n\n  decryptBlock(data, finalize, iv = null) {\n    const sourceLength = data.length;\n    const buffer = this.buffer;\n    let bufferLength = this.bufferPosition;\n    // If an IV is not supplied, wait for IV values. They are at the start\n    // of the stream.\n    if (iv) {\n      this.iv = iv;\n    } else {\n      for (\n        let i = 0;\n        bufferLength < 16 && i < sourceLength;\n        ++i, ++bufferLength\n      ) {\n        buffer[bufferLength] = data[i];\n      }\n      if (bufferLength < 16) {\n        // Need more data.\n        this.bufferLength = bufferLength;\n        return new Uint8Array(0);\n      }\n      this.iv = buffer;\n      data = data.subarray(16);\n    }\n    this.buffer = new Uint8Array(16);\n    this.bufferLength = 0;\n    // starting decryption\n    this.decryptBlock = this._decryptBlock2;\n    return this.decryptBlock(data, finalize);\n  }\n\n  encrypt(data, iv) {\n    const sourceLength = data.length;\n    let buffer = this.buffer,\n      bufferLength = this.bufferPosition;\n    const result = [];\n\n    if (!iv) {\n      iv = new Uint8Array(16);\n    }\n    for (let i = 0; i < sourceLength; ++i) {\n      buffer[bufferLength] = data[i];\n      ++bufferLength;\n      if (bufferLength < 16) {\n        continue;\n      }\n\n      for (let j = 0; j < 16; ++j) {\n        buffer[j] ^= iv[j];\n      }\n\n      // buffer is full, encrypting\n      const cipher = this._encrypt(buffer, this._key);\n      iv = cipher;\n      result.push(cipher);\n      buffer = new Uint8Array(16);\n      bufferLength = 0;\n    }\n    // saving incomplete buffer\n    this.buffer = buffer;\n    this.bufferLength = bufferLength;\n    this.iv = iv;\n    if (result.length === 0) {\n      return new Uint8Array(0);\n    }\n    // combining plain text blocks into one\n    const outputLength = 16 * result.length;\n    const output = new Uint8Array(outputLength);\n    for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n      output.set(result[i], j);\n    }\n    return output;\n  }\n}\n\nclass AES128Cipher extends AESBaseCipher {\n  constructor(key) {\n    super();\n\n    this._cyclesOfRepetition = 10;\n    this._keySize = 160; // bits\n\n    this._rcon = new Uint8Array([\n      0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c,\n      0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a,\n      0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd,\n      0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a,\n      0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,\n      0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6,\n      0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72,\n      0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc,\n      0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10,\n      0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e,\n      0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5,\n      0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94,\n      0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02,\n      0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d,\n      0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d,\n      0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f,\n      0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb,\n      0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c,\n      0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a,\n      0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd,\n      0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a,\n      0x74, 0xe8, 0xcb, 0x8d,\n    ]);\n\n    this._key = this._expandKey(key);\n  }\n\n  _expandKey(cipherKey) {\n    const b = 176;\n    const s = this._s;\n    const rcon = this._rcon;\n\n    const result = new Uint8Array(b);\n    result.set(cipherKey);\n\n    for (let j = 16, i = 1; j < b; ++i) {\n      // RotWord\n      let t1 = result[j - 3];\n      let t2 = result[j - 2];\n      let t3 = result[j - 1];\n      let t4 = result[j - 4];\n      // SubWord\n      t1 = s[t1];\n      t2 = s[t2];\n      t3 = s[t3];\n      t4 = s[t4];\n      // Rcon\n      t1 ^= rcon[i];\n      for (let n = 0; n < 4; ++n) {\n        result[j] = t1 ^= result[j - 16];\n        j++;\n        result[j] = t2 ^= result[j - 16];\n        j++;\n        result[j] = t3 ^= result[j - 16];\n        j++;\n        result[j] = t4 ^= result[j - 16];\n        j++;\n      }\n    }\n    return result;\n  }\n}\n\nclass AES256Cipher extends AESBaseCipher {\n  constructor(key) {\n    super();\n\n    this._cyclesOfRepetition = 14;\n    this._keySize = 224; // bits\n\n    this._key = this._expandKey(key);\n  }\n\n  _expandKey(cipherKey) {\n    const b = 240;\n    const s = this._s;\n\n    const result = new Uint8Array(b);\n    result.set(cipherKey);\n\n    let r = 1;\n    let t1, t2, t3, t4;\n    for (let j = 32, i = 1; j < b; ++i) {\n      if (j % 32 === 16) {\n        t1 = s[t1];\n        t2 = s[t2];\n        t3 = s[t3];\n        t4 = s[t4];\n      } else if (j % 32 === 0) {\n        // RotWord\n        t1 = result[j - 3];\n        t2 = result[j - 2];\n        t3 = result[j - 1];\n        t4 = result[j - 4];\n        // SubWord\n        t1 = s[t1];\n        t2 = s[t2];\n        t3 = s[t3];\n        t4 = s[t4];\n        // Rcon\n        t1 ^= r;\n        if ((r <<= 1) >= 256) {\n          r = (r ^ 0x1b) & 0xff;\n        }\n      }\n\n      for (let n = 0; n < 4; ++n) {\n        result[j] = t1 ^= result[j - 32];\n        j++;\n        result[j] = t2 ^= result[j - 32];\n        j++;\n        result[j] = t3 ^= result[j - 32];\n        j++;\n        result[j] = t4 ^= result[j - 32];\n        j++;\n      }\n    }\n    return result;\n  }\n}\n\nclass PDF17 {\n  checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n    const hashData = new Uint8Array(password.length + 56);\n    hashData.set(password, 0);\n    hashData.set(ownerValidationSalt, password.length);\n    hashData.set(userBytes, password.length + ownerValidationSalt.length);\n    const result = calculateSHA256(hashData, 0, hashData.length);\n    return isArrayEqual(result, ownerPassword);\n  }\n\n  checkUserPassword(password, userValidationSalt, userPassword) {\n    const hashData = new Uint8Array(password.length + 8);\n    hashData.set(password, 0);\n    hashData.set(userValidationSalt, password.length);\n    const result = calculateSHA256(hashData, 0, hashData.length);\n    return isArrayEqual(result, userPassword);\n  }\n\n  getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n    const hashData = new Uint8Array(password.length + 56);\n    hashData.set(password, 0);\n    hashData.set(ownerKeySalt, password.length);\n    hashData.set(userBytes, password.length + ownerKeySalt.length);\n    const key = calculateSHA256(hashData, 0, hashData.length);\n    const cipher = new AES256Cipher(key);\n    return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n  }\n\n  getUserKey(password, userKeySalt, userEncryption) {\n    const hashData = new Uint8Array(password.length + 8);\n    hashData.set(password, 0);\n    hashData.set(userKeySalt, password.length);\n    // `key` is the decryption key for the UE string.\n    const key = calculateSHA256(hashData, 0, hashData.length);\n    const cipher = new AES256Cipher(key);\n    return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n  }\n}\n\nclass PDF20 {\n  _hash(password, input, userBytes) {\n    // This refers to Algorithm 2.B as defined in ISO 32000-2.\n    let k = calculateSHA256(input, 0, input.length).subarray(0, 32);\n    let e = [0];\n    let i = 0;\n    while (i < 64 || e.at(-1) > i - 32) {\n      const combinedLength = password.length + k.length + userBytes.length,\n        combinedArray = new Uint8Array(combinedLength);\n      let writeOffset = 0;\n      combinedArray.set(password, writeOffset);\n      writeOffset += password.length;\n      combinedArray.set(k, writeOffset);\n      writeOffset += k.length;\n      combinedArray.set(userBytes, writeOffset);\n\n      const k1 = new Uint8Array(combinedLength * 64);\n      for (let j = 0, pos = 0; j < 64; j++, pos += combinedLength) {\n        k1.set(combinedArray, pos);\n      }\n      // AES128 CBC NO PADDING with first 16 bytes of k as the key\n      // and the second 16 as the iv.\n      const cipher = new AES128Cipher(k.subarray(0, 16));\n      e = cipher.encrypt(k1, k.subarray(16, 32));\n      // Now we have to take the first 16 bytes of an unsigned big endian\n      // integer and compute the remainder modulo 3. That is a fairly large\n      // number and JavaScript isn't going to handle that well.\n      // The number is e0 + 256 * e1 + 256^2 * e2... and 256 % 3 === 1, hence\n      // the powers of 256 are === 1 modulo 3 and finally the number modulo 3\n      // is equal to the remainder modulo 3 of the sum of the e_n.\n      const remainder = e.slice(0, 16).reduce((a, b) => a + b, 0) % 3;\n      if (remainder === 0) {\n        k = calculateSHA256(e, 0, e.length);\n      } else if (remainder === 1) {\n        k = calculateSHA384(e, 0, e.length);\n      } else if (remainder === 2) {\n        k = calculateSHA512(e, 0, e.length);\n      }\n      i++;\n    }\n    return k.subarray(0, 32);\n  }\n\n  checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n    const hashData = new Uint8Array(password.length + 56);\n    hashData.set(password, 0);\n    hashData.set(ownerValidationSalt, password.length);\n    hashData.set(userBytes, password.length + ownerValidationSalt.length);\n    const result = this._hash(password, hashData, userBytes);\n    return isArrayEqual(result, ownerPassword);\n  }\n\n  checkUserPassword(password, userValidationSalt, userPassword) {\n    const hashData = new Uint8Array(password.length + 8);\n    hashData.set(password, 0);\n    hashData.set(userValidationSalt, password.length);\n    const result = this._hash(password, hashData, []);\n    return isArrayEqual(result, userPassword);\n  }\n\n  getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n    const hashData = new Uint8Array(password.length + 56);\n    hashData.set(password, 0);\n    hashData.set(ownerKeySalt, password.length);\n    hashData.set(userBytes, password.length + ownerKeySalt.length);\n    const key = this._hash(password, hashData, userBytes);\n    const cipher = new AES256Cipher(key);\n    return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n  }\n\n  getUserKey(password, userKeySalt, userEncryption) {\n    const hashData = new Uint8Array(password.length + 8);\n    hashData.set(password, 0);\n    hashData.set(userKeySalt, password.length);\n    // `key` is the decryption key for the UE string.\n    const key = this._hash(password, hashData, []);\n    const cipher = new AES256Cipher(key);\n    return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n  }\n}\n\nclass CipherTransform {\n  constructor(stringCipherConstructor, streamCipherConstructor) {\n    this.StringCipherConstructor = stringCipherConstructor;\n    this.StreamCipherConstructor = streamCipherConstructor;\n  }\n\n  createStream(stream, length) {\n    const cipher = new this.StreamCipherConstructor();\n    return new DecryptStream(\n      stream,\n      length,\n      function cipherTransformDecryptStream(data, finalize) {\n        return cipher.decryptBlock(data, finalize);\n      }\n    );\n  }\n\n  decryptString(s) {\n    const cipher = new this.StringCipherConstructor();\n    let data = stringToBytes(s);\n    data = cipher.decryptBlock(data, true);\n    return bytesToString(data);\n  }\n\n  encryptString(s) {\n    const cipher = new this.StringCipherConstructor();\n    if (cipher instanceof AESBaseCipher) {\n      // Append some chars equal to \"16 - (M mod 16)\"\n      // where M is the string length (see section 7.6.2 in PDF specification)\n      // to have a final string where the length is a multiple of 16.\n      // Special note:\n      //   \"Note that the pad is present when M is evenly divisible by 16;\n      //   it contains 16 bytes of 0x10.\"\n      const strLen = s.length;\n      const pad = 16 - (strLen % 16);\n      s += String.fromCharCode(pad).repeat(pad);\n\n      // Generate an initialization vector\n      const iv = new Uint8Array(16);\n      if (typeof crypto !== \"undefined\") {\n        crypto.getRandomValues(iv);\n      } else {\n        for (let i = 0; i < 16; i++) {\n          iv[i] = Math.floor(256 * Math.random());\n        }\n      }\n\n      let data = stringToBytes(s);\n      data = cipher.encrypt(data, iv);\n\n      const buf = new Uint8Array(16 + data.length);\n      buf.set(iv);\n      buf.set(data, 16);\n\n      return bytesToString(buf);\n    }\n\n    let data = stringToBytes(s);\n    data = cipher.encrypt(data);\n    return bytesToString(data);\n  }\n}\n\nclass CipherTransformFactory {\n  static #defaultPasswordBytes = new Uint8Array([\n    0x28, 0xbf, 0x4e, 0x5e, 0x4e, 0x75, 0x8a, 0x41, 0x64, 0x00, 0x4e, 0x56,\n    0xff, 0xfa, 0x01, 0x08, 0x2e, 0x2e, 0x00, 0xb6, 0xd0, 0x68, 0x3e, 0x80,\n    0x2f, 0x0c, 0xa9, 0xfe, 0x64, 0x53, 0x69, 0x7a,\n  ]);\n\n  #createEncryptionKey20(\n    revision,\n    password,\n    ownerPassword,\n    ownerValidationSalt,\n    ownerKeySalt,\n    uBytes,\n    userPassword,\n    userValidationSalt,\n    userKeySalt,\n    ownerEncryption,\n    userEncryption,\n    perms\n  ) {\n    if (password) {\n      const passwordLength = Math.min(127, password.length);\n      password = password.subarray(0, passwordLength);\n    } else {\n      password = [];\n    }\n    const pdfAlgorithm = revision === 6 ? new PDF20() : new PDF17();\n\n    if (\n      pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)\n    ) {\n      return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption);\n    } else if (\n      password.length &&\n      pdfAlgorithm.checkOwnerPassword(\n        password,\n        ownerValidationSalt,\n        uBytes,\n        ownerPassword\n      )\n    ) {\n      return pdfAlgorithm.getOwnerKey(\n        password,\n        ownerKeySalt,\n        uBytes,\n        ownerEncryption\n      );\n    }\n\n    return null;\n  }\n\n  #prepareKeyData(\n    fileId,\n    password,\n    ownerPassword,\n    userPassword,\n    flags,\n    revision,\n    keyLength,\n    encryptMetadata\n  ) {\n    const hashDataSize = 40 + ownerPassword.length + fileId.length;\n    const hashData = new Uint8Array(hashDataSize);\n    let i = 0,\n      j,\n      n;\n    if (password) {\n      n = Math.min(32, password.length);\n      for (; i < n; ++i) {\n        hashData[i] = password[i];\n      }\n    }\n    j = 0;\n    while (i < 32) {\n      hashData[i++] = CipherTransformFactory.#defaultPasswordBytes[j++];\n    }\n    // as now the padded password in the hashData[0..i]\n    for (j = 0, n = ownerPassword.length; j < n; ++j) {\n      hashData[i++] = ownerPassword[j];\n    }\n    hashData[i++] = flags & 0xff;\n    hashData[i++] = (flags >> 8) & 0xff;\n    hashData[i++] = (flags >> 16) & 0xff;\n    hashData[i++] = (flags >>> 24) & 0xff;\n    for (j = 0, n = fileId.length; j < n; ++j) {\n      hashData[i++] = fileId[j];\n    }\n    if (revision >= 4 && !encryptMetadata) {\n      hashData[i++] = 0xff;\n      hashData[i++] = 0xff;\n      hashData[i++] = 0xff;\n      hashData[i++] = 0xff;\n    }\n    let hash = calculateMD5(hashData, 0, i);\n    const keyLengthInBytes = keyLength >> 3;\n    if (revision >= 3) {\n      for (j = 0; j < 50; ++j) {\n        hash = calculateMD5(hash, 0, keyLengthInBytes);\n      }\n    }\n    const encryptionKey = hash.subarray(0, keyLengthInBytes);\n    let cipher, checkData;\n\n    if (revision >= 3) {\n      for (i = 0; i < 32; ++i) {\n        hashData[i] = CipherTransformFactory.#defaultPasswordBytes[i];\n      }\n      for (j = 0, n = fileId.length; j < n; ++j) {\n        hashData[i++] = fileId[j];\n      }\n      cipher = new ARCFourCipher(encryptionKey);\n      checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i));\n      n = encryptionKey.length;\n      const derivedKey = new Uint8Array(n);\n      for (j = 1; j <= 19; ++j) {\n        for (let k = 0; k < n; ++k) {\n          derivedKey[k] = encryptionKey[k] ^ j;\n        }\n        cipher = new ARCFourCipher(derivedKey);\n        checkData = cipher.encryptBlock(checkData);\n      }\n      for (j = 0, n = checkData.length; j < n; ++j) {\n        if (userPassword[j] !== checkData[j]) {\n          return null;\n        }\n      }\n    } else {\n      cipher = new ARCFourCipher(encryptionKey);\n      checkData = cipher.encryptBlock(\n        CipherTransformFactory.#defaultPasswordBytes\n      );\n      for (j = 0, n = checkData.length; j < n; ++j) {\n        if (userPassword[j] !== checkData[j]) {\n          return null;\n        }\n      }\n    }\n    return encryptionKey;\n  }\n\n  #decodeUserPassword(password, ownerPassword, revision, keyLength) {\n    const hashData = new Uint8Array(32);\n    let i = 0;\n    const n = Math.min(32, password.length);\n    for (; i < n; ++i) {\n      hashData[i] = password[i];\n    }\n    let j = 0;\n    while (i < 32) {\n      hashData[i++] = CipherTransformFactory.#defaultPasswordBytes[j++];\n    }\n    let hash = calculateMD5(hashData, 0, i);\n    const keyLengthInBytes = keyLength >> 3;\n    if (revision >= 3) {\n      for (j = 0; j < 50; ++j) {\n        hash = calculateMD5(hash, 0, hash.length);\n      }\n    }\n\n    let cipher, userPassword;\n    if (revision >= 3) {\n      userPassword = ownerPassword;\n      const derivedKey = new Uint8Array(keyLengthInBytes);\n      for (j = 19; j >= 0; j--) {\n        for (let k = 0; k < keyLengthInBytes; ++k) {\n          derivedKey[k] = hash[k] ^ j;\n        }\n        cipher = new ARCFourCipher(derivedKey);\n        userPassword = cipher.encryptBlock(userPassword);\n      }\n    } else {\n      cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes));\n      userPassword = cipher.encryptBlock(ownerPassword);\n    }\n    return userPassword;\n  }\n\n  #buildObjectKey(num, gen, encryptionKey, isAes = false) {\n    const key = new Uint8Array(encryptionKey.length + 9);\n    const n = encryptionKey.length;\n    let i;\n    for (i = 0; i < n; ++i) {\n      key[i] = encryptionKey[i];\n    }\n    key[i++] = num & 0xff;\n    key[i++] = (num >> 8) & 0xff;\n    key[i++] = (num >> 16) & 0xff;\n    key[i++] = gen & 0xff;\n    key[i++] = (gen >> 8) & 0xff;\n    if (isAes) {\n      key[i++] = 0x73;\n      key[i++] = 0x41;\n      key[i++] = 0x6c;\n      key[i++] = 0x54;\n    }\n    const hash = calculateMD5(key, 0, i);\n    return hash.subarray(0, Math.min(encryptionKey.length + 5, 16));\n  }\n\n  #buildCipherConstructor(cf, name, num, gen, key) {\n    if (!(name instanceof Name)) {\n      throw new FormatError(\"Invalid crypt filter name.\");\n    }\n    const self = this;\n    const cryptFilter = cf.get(name.name);\n    const cfm = cryptFilter?.get(\"CFM\");\n\n    if (!cfm || cfm.name === \"None\") {\n      return function () {\n        return new NullCipher();\n      };\n    }\n    if (cfm.name === \"V2\") {\n      return function () {\n        return new ARCFourCipher(\n          self.#buildObjectKey(num, gen, key, /* isAes = */ false)\n        );\n      };\n    }\n    if (cfm.name === \"AESV2\") {\n      return function () {\n        return new AES128Cipher(\n          self.#buildObjectKey(num, gen, key, /* isAes = */ true)\n        );\n      };\n    }\n    if (cfm.name === \"AESV3\") {\n      return function () {\n        return new AES256Cipher(key);\n      };\n    }\n    throw new FormatError(\"Unknown crypto method\");\n  }\n\n  constructor(dict, fileId, password) {\n    const filter = dict.get(\"Filter\");\n    if (!isName(filter, \"Standard\")) {\n      throw new FormatError(\"unknown encryption method\");\n    }\n    this.filterName = filter.name;\n    this.dict = dict;\n    const algorithm = dict.get(\"V\");\n    if (\n      !Number.isInteger(algorithm) ||\n      (algorithm !== 1 && algorithm !== 2 && algorithm !== 4 && algorithm !== 5)\n    ) {\n      throw new FormatError(\"unsupported encryption algorithm\");\n    }\n    this.algorithm = algorithm;\n    let keyLength = dict.get(\"Length\");\n    if (!keyLength) {\n      // Spec asks to rely on encryption dictionary's Length entry, however\n      // some PDFs don't have it. Trying to recover.\n      if (algorithm <= 3) {\n        // For 1 and 2 it's fixed to 40-bit, for 3 40-bit is a minimal value.\n        keyLength = 40;\n      } else {\n        // Trying to find default handler -- it usually has Length.\n        const cfDict = dict.get(\"CF\");\n        const streamCryptoName = dict.get(\"StmF\");\n        if (cfDict instanceof Dict && streamCryptoName instanceof Name) {\n          cfDict.suppressEncryption = true; // See comment below.\n          const handlerDict = cfDict.get(streamCryptoName.name);\n          keyLength = handlerDict?.get(\"Length\") || 128;\n          if (keyLength < 40) {\n            // Sometimes it's incorrect value of bits, generators specify\n            // bytes.\n            keyLength <<= 3;\n          }\n        }\n      }\n    }\n    if (!Number.isInteger(keyLength) || keyLength < 40 || keyLength % 8 !== 0) {\n      throw new FormatError(\"invalid key length\");\n    }\n\n    const ownerBytes = stringToBytes(dict.get(\"O\")),\n      userBytes = stringToBytes(dict.get(\"U\"));\n    // prepare keys\n    const ownerPassword = ownerBytes.subarray(0, 32);\n    const userPassword = userBytes.subarray(0, 32);\n    const flags = dict.get(\"P\");\n    const revision = dict.get(\"R\");\n    // meaningful when V is 4 or 5\n    const encryptMetadata =\n      (algorithm === 4 || algorithm === 5) &&\n      dict.get(\"EncryptMetadata\") !== false;\n    this.encryptMetadata = encryptMetadata;\n\n    const fileIdBytes = stringToBytes(fileId);\n    let passwordBytes;\n    if (password) {\n      if (revision === 6) {\n        try {\n          password = utf8StringToString(password);\n        } catch {\n          warn(\n            \"CipherTransformFactory: Unable to convert UTF8 encoded password.\"\n          );\n        }\n      }\n      passwordBytes = stringToBytes(password);\n    }\n\n    let encryptionKey;\n    if (algorithm !== 5) {\n      encryptionKey = this.#prepareKeyData(\n        fileIdBytes,\n        passwordBytes,\n        ownerPassword,\n        userPassword,\n        flags,\n        revision,\n        keyLength,\n        encryptMetadata\n      );\n    } else {\n      const ownerValidationSalt = ownerBytes.subarray(32, 40);\n      const ownerKeySalt = ownerBytes.subarray(40, 48);\n      const uBytes = userBytes.subarray(0, 48);\n      const userValidationSalt = userBytes.subarray(32, 40);\n      const userKeySalt = userBytes.subarray(40, 48);\n      const ownerEncryption = stringToBytes(dict.get(\"OE\"));\n      const userEncryption = stringToBytes(dict.get(\"UE\"));\n      const perms = stringToBytes(dict.get(\"Perms\"));\n      encryptionKey = this.#createEncryptionKey20(\n        revision,\n        passwordBytes,\n        ownerPassword,\n        ownerValidationSalt,\n        ownerKeySalt,\n        uBytes,\n        userPassword,\n        userValidationSalt,\n        userKeySalt,\n        ownerEncryption,\n        userEncryption,\n        perms\n      );\n    }\n    if (!encryptionKey && !password) {\n      throw new PasswordException(\n        \"No password given\",\n        PasswordResponses.NEED_PASSWORD\n      );\n    } else if (!encryptionKey && password) {\n      // Attempting use the password as an owner password\n      const decodedPassword = this.#decodeUserPassword(\n        passwordBytes,\n        ownerPassword,\n        revision,\n        keyLength\n      );\n      encryptionKey = this.#prepareKeyData(\n        fileIdBytes,\n        decodedPassword,\n        ownerPassword,\n        userPassword,\n        flags,\n        revision,\n        keyLength,\n        encryptMetadata\n      );\n    }\n\n    if (!encryptionKey) {\n      throw new PasswordException(\n        \"Incorrect Password\",\n        PasswordResponses.INCORRECT_PASSWORD\n      );\n    }\n\n    this.encryptionKey = encryptionKey;\n\n    if (algorithm >= 4) {\n      const cf = dict.get(\"CF\");\n      if (cf instanceof Dict) {\n        // The 'CF' dictionary itself should not be encrypted, and by setting\n        // `suppressEncryption` we can prevent an infinite loop inside of\n        // `XRef_fetchUncompressed` if the dictionary contains indirect\n        // objects (fixes issue7665.pdf).\n        cf.suppressEncryption = true;\n      }\n      this.cf = cf;\n      this.stmf = dict.get(\"StmF\") || Name.get(\"Identity\");\n      this.strf = dict.get(\"StrF\") || Name.get(\"Identity\");\n      this.eff = dict.get(\"EFF\") || this.stmf;\n    }\n  }\n\n  createCipherTransform(num, gen) {\n    if (this.algorithm === 4 || this.algorithm === 5) {\n      return new CipherTransform(\n        this.#buildCipherConstructor(\n          this.cf,\n          this.strf,\n          num,\n          gen,\n          this.encryptionKey\n        ),\n        this.#buildCipherConstructor(\n          this.cf,\n          this.stmf,\n          num,\n          gen,\n          this.encryptionKey\n        )\n      );\n    }\n    // algorithms 1 and 2\n    const key = this.#buildObjectKey(\n      num,\n      gen,\n      this.encryptionKey,\n      /* isAes = */ false\n    );\n    const cipherConstructor = function () {\n      return new ARCFourCipher(key);\n    };\n    return new CipherTransform(cipherConstructor, cipherConstructor);\n  }\n}\n\nexport {\n  AES128Cipher,\n  AES256Cipher,\n  ARCFourCipher,\n  calculateMD5,\n  calculateSHA256,\n  calculateSHA384,\n  calculateSHA512,\n  CipherTransformFactory,\n  PDF17,\n  PDF20,\n};\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bytesToString, info, warn } from \"../shared/util.js\";\nimport { Dict, isName, Name, Ref } from \"./primitives.js\";\nimport {\n  escapePDFName,\n  escapeString,\n  numberToString,\n  parseXFAPath,\n} from \"./core_utils.js\";\nimport { SimpleDOMNode, SimpleXMLParser } from \"./xml_parser.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { calculateMD5 } from \"./crypto.js\";\n\nasync function writeObject(ref, obj, buffer, { encrypt = null }) {\n  const transform = encrypt?.createCipherTransform(ref.num, ref.gen);\n  buffer.push(`${ref.num} ${ref.gen} obj\\n`);\n  if (obj instanceof Dict) {\n    await writeDict(obj, buffer, transform);\n  } else if (obj instanceof BaseStream) {\n    await writeStream(obj, buffer, transform);\n  } else if (Array.isArray(obj)) {\n    await writeArray(obj, buffer, transform);\n  }\n  buffer.push(\"\\nendobj\\n\");\n}\n\nasync function writeDict(dict, buffer, transform) {\n  buffer.push(\"<<\");\n  for (const key of dict.getKeys()) {\n    buffer.push(` /${escapePDFName(key)} `);\n    await writeValue(dict.getRaw(key), buffer, transform);\n  }\n  buffer.push(\">>\");\n}\n\nasync function writeStream(stream, buffer, transform) {\n  let bytes = stream.getBytes();\n  const { dict } = stream;\n\n  const [filter, params] = await Promise.all([\n    dict.getAsync(\"Filter\"),\n    dict.getAsync(\"DecodeParms\"),\n  ]);\n\n  const filterZero = Array.isArray(filter)\n    ? await dict.xref.fetchIfRefAsync(filter[0])\n    : filter;\n  const isFilterZeroFlateDecode = isName(filterZero, \"FlateDecode\");\n\n  // If the string is too small there is no real benefit in compressing it.\n  // The number 256 is arbitrary, but it should be reasonable.\n  const MIN_LENGTH_FOR_COMPRESSING = 256;\n\n  if (\n    typeof CompressionStream !== \"undefined\" &&\n    (bytes.length >= MIN_LENGTH_FOR_COMPRESSING || isFilterZeroFlateDecode)\n  ) {\n    try {\n      const cs = new CompressionStream(\"deflate\");\n      const writer = cs.writable.getWriter();\n      writer.write(bytes);\n      writer.close();\n\n      // Response::text doesn't return the correct data.\n      const buf = await new Response(cs.readable).arrayBuffer();\n      bytes = new Uint8Array(buf);\n\n      let newFilter, newParams;\n      if (!filter) {\n        newFilter = Name.get(\"FlateDecode\");\n      } else if (!isFilterZeroFlateDecode) {\n        newFilter = Array.isArray(filter)\n          ? [Name.get(\"FlateDecode\"), ...filter]\n          : [Name.get(\"FlateDecode\"), filter];\n        if (params) {\n          newParams = Array.isArray(params)\n            ? [null, ...params]\n            : [null, params];\n        }\n      }\n      if (newFilter) {\n        dict.set(\"Filter\", newFilter);\n      }\n      if (newParams) {\n        dict.set(\"DecodeParms\", newParams);\n      }\n    } catch (ex) {\n      info(`writeStream - cannot compress data: \"${ex}\".`);\n    }\n  }\n\n  let string = bytesToString(bytes);\n  if (transform) {\n    string = transform.encryptString(string);\n  }\n\n  dict.set(\"Length\", string.length);\n  await writeDict(dict, buffer, transform);\n  buffer.push(\" stream\\n\", string, \"\\nendstream\");\n}\n\nasync function writeArray(array, buffer, transform) {\n  buffer.push(\"[\");\n  let first = true;\n  for (const val of array) {\n    if (!first) {\n      buffer.push(\" \");\n    } else {\n      first = false;\n    }\n    await writeValue(val, buffer, transform);\n  }\n  buffer.push(\"]\");\n}\n\nasync function writeValue(value, buffer, transform) {\n  if (value instanceof Name) {\n    buffer.push(`/${escapePDFName(value.name)}`);\n  } else if (value instanceof Ref) {\n    buffer.push(`${value.num} ${value.gen} R`);\n  } else if (Array.isArray(value)) {\n    await writeArray(value, buffer, transform);\n  } else if (typeof value === \"string\") {\n    if (transform) {\n      value = transform.encryptString(value);\n    }\n    buffer.push(`(${escapeString(value)})`);\n  } else if (typeof value === \"number\") {\n    buffer.push(numberToString(value));\n  } else if (typeof value === \"boolean\") {\n    buffer.push(value.toString());\n  } else if (value instanceof Dict) {\n    await writeDict(value, buffer, transform);\n  } else if (value instanceof BaseStream) {\n    await writeStream(value, buffer, transform);\n  } else if (value === null) {\n    buffer.push(\"null\");\n  } else {\n    warn(`Unhandled value in writer: ${typeof value}, please file a bug.`);\n  }\n}\n\nfunction writeInt(number, size, offset, buffer) {\n  for (let i = size + offset - 1; i > offset - 1; i--) {\n    buffer[i] = number & 0xff;\n    number >>= 8;\n  }\n  return offset + size;\n}\n\nfunction writeString(string, offset, buffer) {\n  for (let i = 0, len = string.length; i < len; i++) {\n    buffer[offset + i] = string.charCodeAt(i) & 0xff;\n  }\n}\n\nfunction computeMD5(filesize, xrefInfo) {\n  const time = Math.floor(Date.now() / 1000);\n  const filename = xrefInfo.filename || \"\";\n  const md5Buffer = [time.toString(), filename, filesize.toString()];\n  let md5BufferLen = md5Buffer.reduce((a, str) => a + str.length, 0);\n  for (const value of Object.values(xrefInfo.info)) {\n    md5Buffer.push(value);\n    md5BufferLen += value.length;\n  }\n\n  const array = new Uint8Array(md5BufferLen);\n  let offset = 0;\n  for (const str of md5Buffer) {\n    writeString(str, offset, array);\n    offset += str.length;\n  }\n  return bytesToString(calculateMD5(array));\n}\n\nfunction writeXFADataForAcroform(str, newRefs) {\n  const xml = new SimpleXMLParser({ hasAttributes: true }).parseFromString(str);\n\n  for (const { xfa } of newRefs) {\n    if (!xfa) {\n      continue;\n    }\n    const { path, value } = xfa;\n    if (!path) {\n      continue;\n    }\n    const nodePath = parseXFAPath(path);\n    let node = xml.documentElement.searchNode(nodePath, 0);\n    if (!node && nodePath.length > 1) {\n      // If we're lucky the last element in the path will identify the node.\n      node = xml.documentElement.searchNode([nodePath.at(-1)], 0);\n    }\n    if (node) {\n      node.childNodes = Array.isArray(value)\n        ? value.map(val => new SimpleDOMNode(\"value\", val))\n        : [new SimpleDOMNode(\"#text\", value)];\n    } else {\n      warn(`Node not found for path: ${path}`);\n    }\n  }\n  const buffer = [];\n  xml.documentElement.dump(buffer);\n  return buffer.join(\"\");\n}\n\nasync function updateAcroform({\n  xref,\n  acroForm,\n  acroFormRef,\n  hasXfa,\n  hasXfaDatasetsEntry,\n  xfaDatasetsRef,\n  needAppearances,\n  newRefs,\n}) {\n  if (hasXfa && !hasXfaDatasetsEntry && !xfaDatasetsRef) {\n    warn(\"XFA - Cannot save it\");\n  }\n\n  if (!needAppearances && (!hasXfa || !xfaDatasetsRef || hasXfaDatasetsEntry)) {\n    return;\n  }\n\n  const dict = acroForm.clone();\n\n  if (hasXfa && !hasXfaDatasetsEntry) {\n    // We've a XFA array which doesn't contain a datasets entry.\n    // So we'll update the AcroForm dictionary to have an XFA containing\n    // the datasets.\n    const newXfa = acroForm.get(\"XFA\").slice();\n    newXfa.splice(2, 0, \"datasets\");\n    newXfa.splice(3, 0, xfaDatasetsRef);\n\n    dict.set(\"XFA\", newXfa);\n  }\n\n  if (needAppearances) {\n    dict.set(\"NeedAppearances\", true);\n  }\n\n  const buffer = [];\n  await writeObject(acroFormRef, dict, buffer, xref);\n\n  newRefs.push({ ref: acroFormRef, data: buffer.join(\"\") });\n}\n\nfunction updateXFA({ xfaData, xfaDatasetsRef, newRefs, xref }) {\n  if (xfaData === null) {\n    const datasets = xref.fetchIfRef(xfaDatasetsRef);\n    xfaData = writeXFADataForAcroform(datasets.getString(), newRefs);\n  }\n\n  const encrypt = xref.encrypt;\n  if (encrypt) {\n    const transform = encrypt.createCipherTransform(\n      xfaDatasetsRef.num,\n      xfaDatasetsRef.gen\n    );\n    xfaData = transform.encryptString(xfaData);\n  }\n  const data =\n    `${xfaDatasetsRef.num} ${xfaDatasetsRef.gen} obj\\n` +\n    `<< /Type /EmbeddedFile /Length ${xfaData.length}>>\\nstream\\n` +\n    xfaData +\n    \"\\nendstream\\nendobj\\n\";\n\n  newRefs.push({ ref: xfaDatasetsRef, data });\n}\n\nasync function incrementalUpdate({\n  originalData,\n  xrefInfo,\n  newRefs,\n  xref = null,\n  hasXfa = false,\n  xfaDatasetsRef = null,\n  hasXfaDatasetsEntry = false,\n  needAppearances,\n  acroFormRef = null,\n  acroForm = null,\n  xfaData = null,\n}) {\n  await updateAcroform({\n    xref,\n    acroForm,\n    acroFormRef,\n    hasXfa,\n    hasXfaDatasetsEntry,\n    xfaDatasetsRef,\n    needAppearances,\n    newRefs,\n  });\n\n  if (hasXfa) {\n    updateXFA({\n      xfaData,\n      xfaDatasetsRef,\n      newRefs,\n      xref,\n    });\n  }\n\n  const newXref = new Dict(null);\n  const refForXrefTable = xrefInfo.newRef;\n\n  let buffer, baseOffset;\n  const lastByte = originalData.at(-1);\n  if (lastByte === /* \\n */ 0x0a || lastByte === /* \\r */ 0x0d) {\n    buffer = [];\n    baseOffset = originalData.length;\n  } else {\n    // Avoid to concatenate %%EOF with an object definition\n    buffer = [\"\\n\"];\n    baseOffset = originalData.length + 1;\n  }\n\n  newXref.set(\"Size\", refForXrefTable.num + 1);\n  newXref.set(\"Prev\", xrefInfo.startXRef);\n  newXref.set(\"Type\", Name.get(\"XRef\"));\n\n  if (xrefInfo.rootRef !== null) {\n    newXref.set(\"Root\", xrefInfo.rootRef);\n  }\n  if (xrefInfo.infoRef !== null) {\n    newXref.set(\"Info\", xrefInfo.infoRef);\n  }\n  if (xrefInfo.encryptRef !== null) {\n    newXref.set(\"Encrypt\", xrefInfo.encryptRef);\n  }\n\n  // Add a ref for the new xref and sort them\n  newRefs.push({ ref: refForXrefTable, data: \"\" });\n  newRefs = newRefs.sort((a, b) => {\n    // compare the refs\n    return a.ref.num - b.ref.num;\n  });\n\n  const xrefTableData = [[0, 1, 0xffff]];\n  const indexes = [0, 1];\n  let maxOffset = 0;\n  for (const { ref, data } of newRefs) {\n    maxOffset = Math.max(maxOffset, baseOffset);\n    xrefTableData.push([1, baseOffset, Math.min(ref.gen, 0xffff)]);\n    baseOffset += data.length;\n    indexes.push(ref.num, 1);\n    buffer.push(data);\n  }\n\n  newXref.set(\"Index\", indexes);\n\n  if (Array.isArray(xrefInfo.fileIds) && xrefInfo.fileIds.length > 0) {\n    const md5 = computeMD5(baseOffset, xrefInfo);\n    newXref.set(\"ID\", [xrefInfo.fileIds[0], md5]);\n  }\n\n  const offsetSize = Math.ceil(Math.log2(maxOffset) / 8);\n  const sizes = [1, offsetSize, 2];\n  const structSize = sizes[0] + sizes[1] + sizes[2];\n  const tableLength = structSize * xrefTableData.length;\n  newXref.set(\"W\", sizes);\n  newXref.set(\"Length\", tableLength);\n\n  buffer.push(`${refForXrefTable.num} ${refForXrefTable.gen} obj\\n`);\n  await writeDict(newXref, buffer, null);\n  buffer.push(\" stream\\n\");\n\n  const bufferLen = buffer.reduce((a, str) => a + str.length, 0);\n  const footer = `\\nendstream\\nendobj\\nstartxref\\n${baseOffset}\\n%%EOF\\n`;\n  const array = new Uint8Array(\n    originalData.length + bufferLen + tableLength + footer.length\n  );\n\n  // Original data\n  array.set(originalData);\n  let offset = originalData.length;\n\n  // New data\n  for (const str of buffer) {\n    writeString(str, offset, array);\n    offset += str.length;\n  }\n\n  // New xref table\n  for (const [type, objOffset, gen] of xrefTableData) {\n    offset = writeInt(type, sizes[0], offset, array);\n    offset = writeInt(objOffset, sizes[1], offset, array);\n    offset = writeInt(gen, sizes[2], offset, array);\n  }\n\n  // Add the footer\n  writeString(footer, offset, array);\n\n  return array;\n}\n\nexport { incrementalUpdate, writeDict, writeObject };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AnnotationPrefix, stringToPDFString, warn } from \"../shared/util.js\";\nimport { Dict, isName, Name, Ref, RefSetCache } from \"./primitives.js\";\nimport { NumberTree } from \"./name_number_tree.js\";\nimport { writeObject } from \"./writer.js\";\n\nconst MAX_DEPTH = 40;\n\nconst StructElementType = {\n  PAGE_CONTENT: 1,\n  STREAM_CONTENT: 2,\n  OBJECT: 3,\n  ANNOTATION: 4,\n  ELEMENT: 5,\n};\n\nclass StructTreeRoot {\n  constructor(rootDict, rootRef) {\n    this.dict = rootDict;\n    this.ref = rootRef instanceof Ref ? rootRef : null;\n    this.roleMap = new Map();\n    this.structParentIds = null;\n  }\n\n  init() {\n    this.readRoleMap();\n  }\n\n  #addIdToPage(pageRef, id, type) {\n    if (!(pageRef instanceof Ref) || id < 0) {\n      return;\n    }\n    this.structParentIds ||= new RefSetCache();\n    let ids = this.structParentIds.get(pageRef);\n    if (!ids) {\n      ids = [];\n      this.structParentIds.put(pageRef, ids);\n    }\n    ids.push([id, type]);\n  }\n\n  addAnnotationIdToPage(pageRef, id) {\n    this.#addIdToPage(pageRef, id, StructElementType.ANNOTATION);\n  }\n\n  readRoleMap() {\n    const roleMapDict = this.dict.get(\"RoleMap\");\n    if (!(roleMapDict instanceof Dict)) {\n      return;\n    }\n    roleMapDict.forEach((key, value) => {\n      if (!(value instanceof Name)) {\n        return;\n      }\n      this.roleMap.set(key, value.name);\n    });\n  }\n\n  static async canCreateStructureTree({\n    catalogRef,\n    pdfManager,\n    newAnnotationsByPage,\n  }) {\n    if (!(catalogRef instanceof Ref)) {\n      warn(\"Cannot save the struct tree: no catalog reference.\");\n      return false;\n    }\n\n    let nextKey = 0;\n    let hasNothingToUpdate = true;\n\n    for (const [pageIndex, elements] of newAnnotationsByPage) {\n      const { ref: pageRef } = await pdfManager.getPage(pageIndex);\n      if (!(pageRef instanceof Ref)) {\n        warn(`Cannot save the struct tree: page ${pageIndex} has no ref.`);\n        hasNothingToUpdate = true;\n        break;\n      }\n      for (const element of elements) {\n        if (element.accessibilityData?.type) {\n          // Each tag must have a structure type.\n          element.parentTreeId = nextKey++;\n          hasNothingToUpdate = false;\n        }\n      }\n    }\n\n    if (hasNothingToUpdate) {\n      for (const elements of newAnnotationsByPage.values()) {\n        for (const element of elements) {\n          delete element.parentTreeId;\n        }\n      }\n      return false;\n    }\n\n    return true;\n  }\n\n  static async createStructureTree({\n    newAnnotationsByPage,\n    xref,\n    catalogRef,\n    pdfManager,\n    newRefs,\n  }) {\n    const root = pdfManager.catalog.cloneDict();\n    const structTreeRootRef = xref.getNewTemporaryRef();\n    root.set(\"StructTreeRoot\", structTreeRootRef);\n\n    const buffer = [];\n    await writeObject(catalogRef, root, buffer, xref);\n    newRefs.push({ ref: catalogRef, data: buffer.join(\"\") });\n\n    const structTreeRoot = new Dict(xref);\n    structTreeRoot.set(\"Type\", Name.get(\"StructTreeRoot\"));\n    const parentTreeRef = xref.getNewTemporaryRef();\n    structTreeRoot.set(\"ParentTree\", parentTreeRef);\n    const kids = [];\n    structTreeRoot.set(\"K\", kids);\n\n    const parentTree = new Dict(xref);\n    const nums = [];\n    parentTree.set(\"Nums\", nums);\n\n    const nextKey = await this.#writeKids({\n      newAnnotationsByPage,\n      structTreeRootRef,\n      kids,\n      nums,\n      xref,\n      pdfManager,\n      newRefs,\n      buffer,\n    });\n    structTreeRoot.set(\"ParentTreeNextKey\", nextKey);\n\n    buffer.length = 0;\n    await writeObject(parentTreeRef, parentTree, buffer, xref);\n    newRefs.push({ ref: parentTreeRef, data: buffer.join(\"\") });\n\n    buffer.length = 0;\n    await writeObject(structTreeRootRef, structTreeRoot, buffer, xref);\n    newRefs.push({ ref: structTreeRootRef, data: buffer.join(\"\") });\n  }\n\n  async canUpdateStructTree({ pdfManager, xref, newAnnotationsByPage }) {\n    if (!this.ref) {\n      warn(\"Cannot update the struct tree: no root reference.\");\n      return false;\n    }\n\n    let nextKey = this.dict.get(\"ParentTreeNextKey\");\n    if (!Number.isInteger(nextKey) || nextKey < 0) {\n      warn(\"Cannot update the struct tree: invalid next key.\");\n      return false;\n    }\n\n    const parentTree = this.dict.get(\"ParentTree\");\n    if (!(parentTree instanceof Dict)) {\n      warn(\"Cannot update the struct tree: ParentTree isn't a dict.\");\n      return false;\n    }\n    const nums = parentTree.get(\"Nums\");\n    if (!Array.isArray(nums)) {\n      warn(\"Cannot update the struct tree: nums isn't an array.\");\n      return false;\n    }\n    const numberTree = new NumberTree(parentTree, xref);\n\n    for (const pageIndex of newAnnotationsByPage.keys()) {\n      const { pageDict } = await pdfManager.getPage(pageIndex);\n      if (!pageDict.has(\"StructParents\")) {\n        // StructParents is required when the content stream has some tagged\n        // contents but a page can just have tagged annotations.\n        continue;\n      }\n      const id = pageDict.get(\"StructParents\");\n      if (!Number.isInteger(id) || !Array.isArray(numberTree.get(id))) {\n        warn(`Cannot save the struct tree: page ${pageIndex} has a wrong id.`);\n        return false;\n      }\n    }\n\n    let hasNothingToUpdate = true;\n    for (const [pageIndex, elements] of newAnnotationsByPage) {\n      const { pageDict } = await pdfManager.getPage(pageIndex);\n      StructTreeRoot.#collectParents({\n        elements,\n        xref: this.dict.xref,\n        pageDict,\n        numberTree,\n      });\n\n      for (const element of elements) {\n        if (element.accessibilityData?.type) {\n          // Each tag must have a structure type.\n          element.parentTreeId = nextKey++;\n          hasNothingToUpdate = false;\n        }\n      }\n    }\n\n    if (hasNothingToUpdate) {\n      for (const elements of newAnnotationsByPage.values()) {\n        for (const element of elements) {\n          delete element.parentTreeId;\n          delete element.structTreeParent;\n        }\n      }\n      return false;\n    }\n\n    return true;\n  }\n\n  async updateStructureTree({ newAnnotationsByPage, pdfManager, newRefs }) {\n    const xref = this.dict.xref;\n    const structTreeRoot = this.dict.clone();\n    const structTreeRootRef = this.ref;\n\n    let parentTreeRef = structTreeRoot.getRaw(\"ParentTree\");\n    let parentTree;\n    if (parentTreeRef instanceof Ref) {\n      parentTree = xref.fetch(parentTreeRef);\n    } else {\n      parentTree = parentTreeRef;\n      parentTreeRef = xref.getNewTemporaryRef();\n      structTreeRoot.set(\"ParentTree\", parentTreeRef);\n    }\n    parentTree = parentTree.clone();\n\n    let nums = parentTree.getRaw(\"Nums\");\n    let numsRef = null;\n    if (nums instanceof Ref) {\n      numsRef = nums;\n      nums = xref.fetch(numsRef);\n    }\n    nums = nums.slice();\n    if (!numsRef) {\n      parentTree.set(\"Nums\", nums);\n    }\n\n    let kids = structTreeRoot.getRaw(\"K\");\n    let kidsRef = null;\n    if (kids instanceof Ref) {\n      kidsRef = kids;\n      kids = xref.fetch(kidsRef);\n    } else {\n      kidsRef = xref.getNewTemporaryRef();\n      structTreeRoot.set(\"K\", kidsRef);\n    }\n    kids = Array.isArray(kids) ? kids.slice() : [kids];\n\n    const buffer = [];\n    const newNextkey = await StructTreeRoot.#writeKids({\n      newAnnotationsByPage,\n      structTreeRootRef,\n      kids,\n      nums,\n      xref,\n      pdfManager,\n      newRefs,\n      buffer,\n    });\n    structTreeRoot.set(\"ParentTreeNextKey\", newNextkey);\n\n    buffer.length = 0;\n    await writeObject(kidsRef, kids, buffer, xref);\n    newRefs.push({ ref: kidsRef, data: buffer.join(\"\") });\n\n    if (numsRef) {\n      buffer.length = 0;\n      await writeObject(numsRef, nums, buffer, xref);\n      newRefs.push({ ref: numsRef, data: buffer.join(\"\") });\n    }\n\n    buffer.length = 0;\n    await writeObject(parentTreeRef, parentTree, buffer, xref);\n    newRefs.push({ ref: parentTreeRef, data: buffer.join(\"\") });\n\n    buffer.length = 0;\n    await writeObject(structTreeRootRef, structTreeRoot, buffer, xref);\n    newRefs.push({ ref: structTreeRootRef, data: buffer.join(\"\") });\n  }\n\n  static async #writeKids({\n    newAnnotationsByPage,\n    structTreeRootRef,\n    kids,\n    nums,\n    xref,\n    pdfManager,\n    newRefs,\n    buffer,\n  }) {\n    const objr = Name.get(\"OBJR\");\n    let nextKey = -Infinity;\n\n    for (const [pageIndex, elements] of newAnnotationsByPage) {\n      const { ref: pageRef } = await pdfManager.getPage(pageIndex);\n      const isPageRef = pageRef instanceof Ref;\n      for (const {\n        accessibilityData,\n        ref,\n        parentTreeId,\n        structTreeParent,\n      } of elements) {\n        if (!accessibilityData?.type) {\n          continue;\n        }\n        const { type, title, lang, alt, expanded, actualText } =\n          accessibilityData;\n        nextKey = Math.max(nextKey, parentTreeId);\n\n        const tagRef = xref.getNewTemporaryRef();\n        const tagDict = new Dict(xref);\n\n        // The structure type is required.\n        tagDict.set(\"S\", Name.get(type));\n\n        if (title) {\n          tagDict.set(\"T\", title);\n        }\n        if (lang) {\n          tagDict.set(\"Lang\", lang);\n        }\n        if (alt) {\n          tagDict.set(\"Alt\", alt);\n        }\n        if (expanded) {\n          tagDict.set(\"E\", expanded);\n        }\n        if (actualText) {\n          tagDict.set(\"ActualText\", actualText);\n        }\n\n        if (structTreeParent) {\n          await this.#updateParentTag({\n            structTreeParent,\n            tagDict,\n            newTagRef: tagRef,\n            fallbackRef: structTreeRootRef,\n            xref,\n            newRefs,\n            buffer,\n          });\n        } else {\n          tagDict.set(\"P\", structTreeRootRef);\n        }\n\n        const objDict = new Dict(xref);\n        tagDict.set(\"K\", objDict);\n        objDict.set(\"Type\", objr);\n        if (isPageRef) {\n          // Pg is optional.\n          objDict.set(\"Pg\", pageRef);\n        }\n        objDict.set(\"Obj\", ref);\n\n        buffer.length = 0;\n        await writeObject(tagRef, tagDict, buffer, xref);\n        newRefs.push({ ref: tagRef, data: buffer.join(\"\") });\n\n        nums.push(parentTreeId, tagRef);\n        kids.push(tagRef);\n      }\n    }\n    return nextKey + 1;\n  }\n\n  static #collectParents({ elements, xref, pageDict, numberTree }) {\n    const idToElement = new Map();\n    for (const element of elements) {\n      if (element.structTreeParentId) {\n        const id = parseInt(element.structTreeParentId.split(\"_mc\")[1], 10);\n        idToElement.set(id, element);\n      }\n    }\n\n    const id = pageDict.get(\"StructParents\");\n    if (!Number.isInteger(id)) {\n      return;\n    }\n    // The parentArray type has already been checked by the caller.\n    const parentArray = numberTree.get(id);\n\n    const updateElement = (kid, pageKid, kidRef) => {\n      const element = idToElement.get(kid);\n      if (element) {\n        const parentRef = pageKid.getRaw(\"P\");\n        const parentDict = xref.fetchIfRef(parentRef);\n        if (parentRef instanceof Ref && parentDict instanceof Dict) {\n          // It should always the case, but we check just in case.\n          element.structTreeParent = { ref: kidRef, dict: pageKid };\n        }\n        return true;\n      }\n      return false;\n    };\n    for (const kidRef of parentArray) {\n      if (!(kidRef instanceof Ref)) {\n        continue;\n      }\n      const pageKid = xref.fetch(kidRef);\n      const k = pageKid.get(\"K\");\n      if (Number.isInteger(k)) {\n        updateElement(k, pageKid, kidRef);\n        continue;\n      }\n\n      if (!Array.isArray(k)) {\n        continue;\n      }\n      for (let kid of k) {\n        kid = xref.fetchIfRef(kid);\n        if (Number.isInteger(kid) && updateElement(kid, pageKid, kidRef)) {\n          break;\n        }\n      }\n    }\n  }\n\n  static async #updateParentTag({\n    structTreeParent: { ref, dict },\n    tagDict,\n    newTagRef,\n    fallbackRef,\n    xref,\n    newRefs,\n    buffer,\n  }) {\n    // We get the parent of the tag.\n    const parentRef = dict.getRaw(\"P\");\n    let parentDict = xref.fetchIfRef(parentRef);\n\n    tagDict.set(\"P\", parentRef);\n\n    // We get the kids in order to insert a new tag at the right position.\n    let saveParentDict = false;\n    let parentKids;\n    let parentKidsRef = parentDict.getRaw(\"K\");\n    if (!(parentKidsRef instanceof Ref)) {\n      parentKids = parentKidsRef;\n      parentKidsRef = xref.getNewTemporaryRef();\n      parentDict = parentDict.clone();\n      parentDict.set(\"K\", parentKidsRef);\n      saveParentDict = true;\n    } else {\n      parentKids = xref.fetch(parentKidsRef);\n    }\n\n    if (Array.isArray(parentKids)) {\n      const index = parentKids.indexOf(ref);\n      if (index >= 0) {\n        parentKids = parentKids.slice();\n        parentKids.splice(index + 1, 0, newTagRef);\n      } else {\n        warn(\"Cannot update the struct tree: parent kid not found.\");\n        tagDict.set(\"P\", fallbackRef);\n        return;\n      }\n    } else if (parentKids instanceof Dict) {\n      parentKids = [parentKidsRef, newTagRef];\n      parentKidsRef = xref.getNewTemporaryRef();\n      parentDict.set(\"K\", parentKidsRef);\n      saveParentDict = true;\n    }\n\n    buffer.length = 0;\n    await writeObject(parentKidsRef, parentKids, buffer, xref);\n    newRefs.push({ ref: parentKidsRef, data: buffer.join(\"\") });\n\n    if (!saveParentDict) {\n      return;\n    }\n\n    buffer.length = 0;\n    await writeObject(parentRef, parentDict, buffer, xref);\n    newRefs.push({ ref: parentRef, data: buffer.join(\"\") });\n  }\n}\n\n/**\n * Instead of loading the whole tree we load just the page's relevant structure\n * elements, which means we need a wrapper structure to represent the tree.\n */\nclass StructElementNode {\n  constructor(tree, dict) {\n    this.tree = tree;\n    this.dict = dict;\n    this.kids = [];\n    this.parseKids();\n  }\n\n  get role() {\n    const nameObj = this.dict.get(\"S\");\n    const name = nameObj instanceof Name ? nameObj.name : \"\";\n    const { root } = this.tree;\n    if (root.roleMap.has(name)) {\n      return root.roleMap.get(name);\n    }\n    return name;\n  }\n\n  parseKids() {\n    let pageObjId = null;\n    const objRef = this.dict.getRaw(\"Pg\");\n    if (objRef instanceof Ref) {\n      pageObjId = objRef.toString();\n    }\n    const kids = this.dict.get(\"K\");\n    if (Array.isArray(kids)) {\n      for (const kid of kids) {\n        const element = this.parseKid(pageObjId, kid);\n        if (element) {\n          this.kids.push(element);\n        }\n      }\n    } else {\n      const element = this.parseKid(pageObjId, kids);\n      if (element) {\n        this.kids.push(element);\n      }\n    }\n  }\n\n  parseKid(pageObjId, kid) {\n    // A direct link to content, the integer is an mcid.\n    if (Number.isInteger(kid)) {\n      if (this.tree.pageDict.objId !== pageObjId) {\n        return null;\n      }\n\n      return new StructElement({\n        type: StructElementType.PAGE_CONTENT,\n        mcid: kid,\n        pageObjId,\n      });\n    }\n\n    // Find the dictionary for the kid.\n    let kidDict = null;\n    if (kid instanceof Ref) {\n      kidDict = this.dict.xref.fetch(kid);\n    } else if (kid instanceof Dict) {\n      kidDict = kid;\n    }\n    if (!kidDict) {\n      return null;\n    }\n    const pageRef = kidDict.getRaw(\"Pg\");\n    if (pageRef instanceof Ref) {\n      pageObjId = pageRef.toString();\n    }\n\n    const type =\n      kidDict.get(\"Type\") instanceof Name ? kidDict.get(\"Type\").name : null;\n    if (type === \"MCR\") {\n      if (this.tree.pageDict.objId !== pageObjId) {\n        return null;\n      }\n      const kidRef = kidDict.getRaw(\"Stm\");\n      return new StructElement({\n        type: StructElementType.STREAM_CONTENT,\n        refObjId: kidRef instanceof Ref ? kidRef.toString() : null,\n        pageObjId,\n        mcid: kidDict.get(\"MCID\"),\n      });\n    }\n\n    if (type === \"OBJR\") {\n      if (this.tree.pageDict.objId !== pageObjId) {\n        return null;\n      }\n      const kidRef = kidDict.getRaw(\"Obj\");\n      return new StructElement({\n        type: StructElementType.OBJECT,\n        refObjId: kidRef instanceof Ref ? kidRef.toString() : null,\n        pageObjId,\n      });\n    }\n\n    return new StructElement({\n      type: StructElementType.ELEMENT,\n      dict: kidDict,\n    });\n  }\n}\n\nclass StructElement {\n  constructor({\n    type,\n    dict = null,\n    mcid = null,\n    pageObjId = null,\n    refObjId = null,\n  }) {\n    this.type = type;\n    this.dict = dict;\n    this.mcid = mcid;\n    this.pageObjId = pageObjId;\n    this.refObjId = refObjId;\n    this.parentNode = null;\n  }\n}\n\nclass StructTreePage {\n  constructor(structTreeRoot, pageDict) {\n    this.root = structTreeRoot;\n    this.rootDict = structTreeRoot ? structTreeRoot.dict : null;\n    this.pageDict = pageDict;\n    this.nodes = [];\n  }\n\n  parse(pageRef) {\n    if (!this.root || !this.rootDict) {\n      return;\n    }\n\n    const parentTree = this.rootDict.get(\"ParentTree\");\n    if (!parentTree) {\n      return;\n    }\n    const id = this.pageDict.get(\"StructParents\");\n    const ids =\n      pageRef instanceof Ref && this.root.structParentIds?.get(pageRef);\n    if (!Number.isInteger(id) && !ids) {\n      return;\n    }\n\n    const map = new Map();\n    const numberTree = new NumberTree(parentTree, this.rootDict.xref);\n\n    if (Number.isInteger(id)) {\n      const parentArray = numberTree.get(id);\n      if (Array.isArray(parentArray)) {\n        for (const ref of parentArray) {\n          if (ref instanceof Ref) {\n            this.addNode(this.rootDict.xref.fetch(ref), map);\n          }\n        }\n      }\n    }\n\n    if (!ids) {\n      return;\n    }\n    for (const [elemId, type] of ids) {\n      const obj = numberTree.get(elemId);\n      if (obj) {\n        const elem = this.addNode(this.rootDict.xref.fetchIfRef(obj), map);\n        if (\n          elem?.kids?.length === 1 &&\n          elem.kids[0].type === StructElementType.OBJECT\n        ) {\n          // The node in the struct tree is wrapping an object (annotation\n          // or xobject), so we need to update the type of the node to match\n          // the type of the object.\n          elem.kids[0].type = type;\n        }\n      }\n    }\n  }\n\n  addNode(dict, map, level = 0) {\n    if (level > MAX_DEPTH) {\n      warn(\"StructTree MAX_DEPTH reached.\");\n      return null;\n    }\n\n    if (map.has(dict)) {\n      return map.get(dict);\n    }\n\n    const element = new StructElementNode(this, dict);\n    map.set(dict, element);\n\n    const parent = dict.get(\"P\");\n\n    if (!parent || isName(parent.get(\"Type\"), \"StructTreeRoot\")) {\n      if (!this.addTopLevelNode(dict, element)) {\n        map.delete(dict);\n      }\n      return element;\n    }\n\n    const parentNode = this.addNode(parent, map, level + 1);\n    if (!parentNode) {\n      return element;\n    }\n    let save = false;\n    for (const kid of parentNode.kids) {\n      if (kid.type === StructElementType.ELEMENT && kid.dict === dict) {\n        kid.parentNode = element;\n        save = true;\n      }\n    }\n    if (!save) {\n      map.delete(dict);\n    }\n    return element;\n  }\n\n  addTopLevelNode(dict, element) {\n    const obj = this.rootDict.get(\"K\");\n    if (!obj) {\n      return false;\n    }\n\n    if (obj instanceof Dict) {\n      if (obj.objId !== dict.objId) {\n        return false;\n      }\n      this.nodes[0] = element;\n      return true;\n    }\n\n    if (!Array.isArray(obj)) {\n      return true;\n    }\n    let save = false;\n    for (let i = 0; i < obj.length; i++) {\n      const kidRef = obj[i];\n      if (kidRef?.toString() === dict.objId) {\n        this.nodes[i] = element;\n        save = true;\n      }\n    }\n    return save;\n  }\n\n  /**\n   * Convert the tree structure into a simplified object literal that can\n   * be sent to the main thread.\n   * @returns {Object}\n   */\n  get serializable() {\n    function nodeToSerializable(node, parent, level = 0) {\n      if (level > MAX_DEPTH) {\n        warn(\"StructTree too deep to be fully serialized.\");\n        return;\n      }\n      const obj = Object.create(null);\n      obj.role = node.role;\n      obj.children = [];\n      parent.children.push(obj);\n      const alt = node.dict.get(\"Alt\");\n      if (typeof alt === \"string\") {\n        obj.alt = stringToPDFString(alt);\n      }\n      const lang = node.dict.get(\"Lang\");\n      if (typeof lang === \"string\") {\n        obj.lang = stringToPDFString(lang);\n      }\n\n      for (const kid of node.kids) {\n        const kidElement =\n          kid.type === StructElementType.ELEMENT ? kid.parentNode : null;\n        if (kidElement) {\n          nodeToSerializable(kidElement, obj, level + 1);\n          continue;\n        } else if (\n          kid.type === StructElementType.PAGE_CONTENT ||\n          kid.type === StructElementType.STREAM_CONTENT\n        ) {\n          obj.children.push({\n            type: \"content\",\n            id: `p${kid.pageObjId}_mc${kid.mcid}`,\n          });\n        } else if (kid.type === StructElementType.OBJECT) {\n          obj.children.push({\n            type: \"object\",\n            id: kid.refObjId,\n          });\n        } else if (kid.type === StructElementType.ANNOTATION) {\n          obj.children.push({\n            type: \"annotation\",\n            id: `${AnnotationPrefix}${kid.refObjId}`,\n          });\n        }\n      }\n    }\n\n    const root = Object.create(null);\n    root.children = [];\n    root.role = \"Root\";\n    for (const child of this.nodes) {\n      if (!child) {\n        continue;\n      }\n      nodeToSerializable(child, root);\n    }\n    return root;\n  }\n}\n\nexport { StructTreePage, StructTreeRoot };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  collectActions,\n  MissingDataException,\n  PDF_VERSION_REGEXP,\n  recoverJsURL,\n  toRomanNumerals,\n  XRefEntryException,\n} from \"./core_utils.js\";\nimport {\n  createValidAbsoluteUrl,\n  DocumentActionEventType,\n  FormatError,\n  info,\n  objectSize,\n  PermissionFlag,\n  shadow,\n  stringToPDFString,\n  stringToUTF8String,\n  warn,\n} from \"../shared/util.js\";\nimport {\n  Dict,\n  isDict,\n  isName,\n  isRefsEqual,\n  Name,\n  Ref,\n  RefSet,\n  RefSetCache,\n} from \"./primitives.js\";\nimport { NameTree, NumberTree } from \"./name_number_tree.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { clearGlobalCaches } from \"./cleanup_helper.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { FileSpec } from \"./file_spec.js\";\nimport { GlobalImageCache } from \"./image_utils.js\";\nimport { MetadataParser } from \"./metadata_parser.js\";\nimport { StructTreeRoot } from \"./struct_tree.js\";\n\nfunction fetchDestination(dest) {\n  if (dest instanceof Dict) {\n    dest = dest.get(\"D\");\n  }\n  return Array.isArray(dest) ? dest : null;\n}\n\nfunction fetchRemoteDest(action) {\n  let dest = action.get(\"D\");\n  if (dest) {\n    if (dest instanceof Name) {\n      dest = dest.name;\n    }\n    if (typeof dest === \"string\") {\n      return stringToPDFString(dest);\n    } else if (Array.isArray(dest)) {\n      return JSON.stringify(dest);\n    }\n  }\n  return null;\n}\n\nclass Catalog {\n  constructor(pdfManager, xref) {\n    this.pdfManager = pdfManager;\n    this.xref = xref;\n\n    this._catDict = xref.getCatalogObj();\n    if (!(this._catDict instanceof Dict)) {\n      throw new FormatError(\"Catalog object is not a dictionary.\");\n    }\n    // Given that `XRef.parse` will both fetch *and* validate the /Pages-entry,\n    // the following call must always succeed here:\n    this.toplevelPagesDict; // eslint-disable-line no-unused-expressions\n\n    this._actualNumPages = null;\n\n    this.fontCache = new RefSetCache();\n    this.builtInCMapCache = new Map();\n    this.standardFontDataCache = new Map();\n    this.globalImageCache = new GlobalImageCache();\n    this.pageKidsCountCache = new RefSetCache();\n    this.pageIndexCache = new RefSetCache();\n    this.nonBlendModesSet = new RefSet();\n    this.systemFontCache = new Map();\n  }\n\n  cloneDict() {\n    return this._catDict.clone();\n  }\n\n  get version() {\n    const version = this._catDict.get(\"Version\");\n    if (version instanceof Name) {\n      if (PDF_VERSION_REGEXP.test(version.name)) {\n        return shadow(this, \"version\", version.name);\n      }\n      warn(`Invalid PDF catalog version: ${version.name}`);\n    }\n    return shadow(this, \"version\", null);\n  }\n\n  get lang() {\n    const lang = this._catDict.get(\"Lang\");\n    return shadow(\n      this,\n      \"lang\",\n      typeof lang === \"string\" ? stringToPDFString(lang) : null\n    );\n  }\n\n  /**\n   * @type {boolean} `true` for pure XFA documents,\n   *   `false` for XFA Foreground documents.\n   */\n  get needsRendering() {\n    const needsRendering = this._catDict.get(\"NeedsRendering\");\n    return shadow(\n      this,\n      \"needsRendering\",\n      typeof needsRendering === \"boolean\" ? needsRendering : false\n    );\n  }\n\n  get collection() {\n    let collection = null;\n    try {\n      const obj = this._catDict.get(\"Collection\");\n      if (obj instanceof Dict && obj.size > 0) {\n        collection = obj;\n      }\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      info(\"Cannot fetch Collection entry; assuming no collection is present.\");\n    }\n    return shadow(this, \"collection\", collection);\n  }\n\n  get acroForm() {\n    let acroForm = null;\n    try {\n      const obj = this._catDict.get(\"AcroForm\");\n      if (obj instanceof Dict && obj.size > 0) {\n        acroForm = obj;\n      }\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      info(\"Cannot fetch AcroForm entry; assuming no forms are present.\");\n    }\n    return shadow(this, \"acroForm\", acroForm);\n  }\n\n  get acroFormRef() {\n    const value = this._catDict.getRaw(\"AcroForm\");\n    return shadow(this, \"acroFormRef\", value instanceof Ref ? value : null);\n  }\n\n  get metadata() {\n    const streamRef = this._catDict.getRaw(\"Metadata\");\n    if (!(streamRef instanceof Ref)) {\n      return shadow(this, \"metadata\", null);\n    }\n\n    let metadata = null;\n    try {\n      const stream = this.xref.fetch(\n        streamRef,\n        /* suppressEncryption = */ !this.xref.encrypt?.encryptMetadata\n      );\n\n      if (stream instanceof BaseStream && stream.dict instanceof Dict) {\n        const type = stream.dict.get(\"Type\");\n        const subtype = stream.dict.get(\"Subtype\");\n\n        if (isName(type, \"Metadata\") && isName(subtype, \"XML\")) {\n          // XXX: This should examine the charset the XML document defines,\n          // however since there are currently no real means to decode arbitrary\n          // charsets, let's just hope that the author of the PDF was reasonable\n          // enough to stick with the XML default charset, which is UTF-8.\n          const data = stringToUTF8String(stream.getString());\n          if (data) {\n            metadata = new MetadataParser(data).serializable;\n          }\n        }\n      }\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      info(`Skipping invalid Metadata: \"${ex}\".`);\n    }\n    return shadow(this, \"metadata\", metadata);\n  }\n\n  get markInfo() {\n    let markInfo = null;\n    try {\n      markInfo = this._readMarkInfo();\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(\"Unable to read mark info.\");\n    }\n    return shadow(this, \"markInfo\", markInfo);\n  }\n\n  /**\n   * @private\n   */\n  _readMarkInfo() {\n    const obj = this._catDict.get(\"MarkInfo\");\n    if (!(obj instanceof Dict)) {\n      return null;\n    }\n\n    const markInfo = {\n      Marked: false,\n      UserProperties: false,\n      Suspects: false,\n    };\n    for (const key in markInfo) {\n      const value = obj.get(key);\n      if (typeof value === \"boolean\") {\n        markInfo[key] = value;\n      }\n    }\n\n    return markInfo;\n  }\n\n  get structTreeRoot() {\n    let structTree = null;\n    try {\n      structTree = this._readStructTreeRoot();\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(\"Unable read to structTreeRoot info.\");\n    }\n    return shadow(this, \"structTreeRoot\", structTree);\n  }\n\n  /**\n   * @private\n   */\n  _readStructTreeRoot() {\n    const rawObj = this._catDict.getRaw(\"StructTreeRoot\");\n    const obj = this.xref.fetchIfRef(rawObj);\n    if (!(obj instanceof Dict)) {\n      return null;\n    }\n\n    const root = new StructTreeRoot(obj, rawObj);\n    root.init();\n    return root;\n  }\n\n  get toplevelPagesDict() {\n    const pagesObj = this._catDict.get(\"Pages\");\n    if (!(pagesObj instanceof Dict)) {\n      throw new FormatError(\"Invalid top-level pages dictionary.\");\n    }\n    return shadow(this, \"toplevelPagesDict\", pagesObj);\n  }\n\n  get documentOutline() {\n    let obj = null;\n    try {\n      obj = this._readDocumentOutline();\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(\"Unable to read document outline.\");\n    }\n    return shadow(this, \"documentOutline\", obj);\n  }\n\n  /**\n   * @private\n   */\n  _readDocumentOutline() {\n    let obj = this._catDict.get(\"Outlines\");\n    if (!(obj instanceof Dict)) {\n      return null;\n    }\n    obj = obj.getRaw(\"First\");\n    if (!(obj instanceof Ref)) {\n      return null;\n    }\n\n    const root = { items: [] };\n    const queue = [{ obj, parent: root }];\n    // To avoid recursion, keep track of the already processed items.\n    const processed = new RefSet();\n    processed.put(obj);\n    const xref = this.xref,\n      blackColor = new Uint8ClampedArray(3);\n\n    while (queue.length > 0) {\n      const i = queue.shift();\n      const outlineDict = xref.fetchIfRef(i.obj);\n      if (outlineDict === null) {\n        continue;\n      }\n      if (!outlineDict.has(\"Title\")) {\n        throw new FormatError(\"Invalid outline item encountered.\");\n      }\n\n      const data = { url: null, dest: null, action: null };\n      Catalog.parseDestDictionary({\n        destDict: outlineDict,\n        resultObj: data,\n        docBaseUrl: this.baseUrl,\n        docAttachments: this.attachments,\n      });\n      const title = outlineDict.get(\"Title\");\n      const flags = outlineDict.get(\"F\") || 0;\n      const color = outlineDict.getArray(\"C\");\n      const count = outlineDict.get(\"Count\");\n      let rgbColor = blackColor;\n\n      // We only need to parse the color when it's valid, and non-default.\n      if (\n        Array.isArray(color) &&\n        color.length === 3 &&\n        (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)\n      ) {\n        rgbColor = ColorSpace.singletons.rgb.getRgb(color, 0);\n      }\n\n      const outlineItem = {\n        action: data.action,\n        attachment: data.attachment,\n        dest: data.dest,\n        url: data.url,\n        unsafeUrl: data.unsafeUrl,\n        newWindow: data.newWindow,\n        setOCGState: data.setOCGState,\n        title: stringToPDFString(title),\n        color: rgbColor,\n        count: Number.isInteger(count) ? count : undefined,\n        bold: !!(flags & 2),\n        italic: !!(flags & 1),\n        items: [],\n      };\n\n      i.parent.items.push(outlineItem);\n      obj = outlineDict.getRaw(\"First\");\n      if (obj instanceof Ref && !processed.has(obj)) {\n        queue.push({ obj, parent: outlineItem });\n        processed.put(obj);\n      }\n      obj = outlineDict.getRaw(\"Next\");\n      if (obj instanceof Ref && !processed.has(obj)) {\n        queue.push({ obj, parent: i.parent });\n        processed.put(obj);\n      }\n    }\n    return root.items.length > 0 ? root.items : null;\n  }\n\n  get permissions() {\n    let permissions = null;\n    try {\n      permissions = this._readPermissions();\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(\"Unable to read permissions.\");\n    }\n    return shadow(this, \"permissions\", permissions);\n  }\n\n  /**\n   * @private\n   */\n  _readPermissions() {\n    const encrypt = this.xref.trailer.get(\"Encrypt\");\n    if (!(encrypt instanceof Dict)) {\n      return null;\n    }\n\n    let flags = encrypt.get(\"P\");\n    if (typeof flags !== \"number\") {\n      return null;\n    }\n\n    // PDF integer objects are represented internally in signed 2's complement\n    // form. Therefore, convert the signed decimal integer to a signed 2's\n    // complement binary integer so we can use regular bitwise operations on it.\n    flags += 2 ** 32;\n\n    const permissions = [];\n    for (const key in PermissionFlag) {\n      const value = PermissionFlag[key];\n      if (flags & value) {\n        permissions.push(value);\n      }\n    }\n    return permissions;\n  }\n\n  get optionalContentConfig() {\n    let config = null;\n    try {\n      const properties = this._catDict.get(\"OCProperties\");\n      if (!properties) {\n        return shadow(this, \"optionalContentConfig\", null);\n      }\n      const defaultConfig = properties.get(\"D\");\n      if (!defaultConfig) {\n        return shadow(this, \"optionalContentConfig\", null);\n      }\n      const groupsData = properties.get(\"OCGs\");\n      if (!Array.isArray(groupsData)) {\n        return shadow(this, \"optionalContentConfig\", null);\n      }\n      const groups = [];\n      const groupRefs = new RefSet();\n      // Ensure all the optional content groups are valid.\n      for (const groupRef of groupsData) {\n        if (!(groupRef instanceof Ref) || groupRefs.has(groupRef)) {\n          continue;\n        }\n        groupRefs.put(groupRef);\n        const group = this.xref.fetch(groupRef);\n        groups.push({\n          id: groupRef.toString(),\n          name:\n            typeof group.get(\"Name\") === \"string\"\n              ? stringToPDFString(group.get(\"Name\"))\n              : null,\n          intent:\n            typeof group.get(\"Intent\") === \"string\"\n              ? stringToPDFString(group.get(\"Intent\"))\n              : null,\n        });\n      }\n      config = this._readOptionalContentConfig(defaultConfig, groupRefs);\n      config.groups = groups;\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(`Unable to read optional content config: ${ex}`);\n    }\n    return shadow(this, \"optionalContentConfig\", config);\n  }\n\n  _readOptionalContentConfig(config, contentGroupRefs) {\n    function parseOnOff(refs) {\n      const onParsed = [];\n      if (Array.isArray(refs)) {\n        for (const value of refs) {\n          if (!(value instanceof Ref)) {\n            continue;\n          }\n          if (contentGroupRefs.has(value)) {\n            onParsed.push(value.toString());\n          }\n        }\n      }\n      return onParsed;\n    }\n\n    function parseOrder(refs, nestedLevels = 0) {\n      if (!Array.isArray(refs)) {\n        return null;\n      }\n      const order = [];\n\n      for (const value of refs) {\n        if (value instanceof Ref && contentGroupRefs.has(value)) {\n          parsedOrderRefs.put(value); // Handle \"hidden\" groups, see below.\n\n          order.push(value.toString());\n          continue;\n        }\n        // Handle nested /Order arrays (see e.g. issue 9462 and bug 1240641).\n        const nestedOrder = parseNestedOrder(value, nestedLevels);\n        if (nestedOrder) {\n          order.push(nestedOrder);\n        }\n      }\n\n      if (nestedLevels > 0) {\n        return order;\n      }\n      const hiddenGroups = [];\n      for (const groupRef of contentGroupRefs) {\n        if (parsedOrderRefs.has(groupRef)) {\n          continue;\n        }\n        hiddenGroups.push(groupRef.toString());\n      }\n      if (hiddenGroups.length) {\n        order.push({ name: null, order: hiddenGroups });\n      }\n\n      return order;\n    }\n\n    function parseNestedOrder(ref, nestedLevels) {\n      if (++nestedLevels > MAX_NESTED_LEVELS) {\n        warn(\"parseNestedOrder - reached MAX_NESTED_LEVELS.\");\n        return null;\n      }\n      const value = xref.fetchIfRef(ref);\n      if (!Array.isArray(value)) {\n        return null;\n      }\n      const nestedName = xref.fetchIfRef(value[0]);\n      if (typeof nestedName !== \"string\") {\n        return null;\n      }\n      const nestedOrder = parseOrder(value.slice(1), nestedLevels);\n      if (!nestedOrder || !nestedOrder.length) {\n        return null;\n      }\n      return { name: stringToPDFString(nestedName), order: nestedOrder };\n    }\n\n    const xref = this.xref,\n      parsedOrderRefs = new RefSet(),\n      MAX_NESTED_LEVELS = 10;\n\n    return {\n      name:\n        typeof config.get(\"Name\") === \"string\"\n          ? stringToPDFString(config.get(\"Name\"))\n          : null,\n      creator:\n        typeof config.get(\"Creator\") === \"string\"\n          ? stringToPDFString(config.get(\"Creator\"))\n          : null,\n      baseState:\n        config.get(\"BaseState\") instanceof Name\n          ? config.get(\"BaseState\").name\n          : null,\n      on: parseOnOff(config.get(\"ON\")),\n      off: parseOnOff(config.get(\"OFF\")),\n      order: parseOrder(config.get(\"Order\")),\n      groups: null,\n    };\n  }\n\n  setActualNumPages(num = null) {\n    this._actualNumPages = num;\n  }\n\n  get hasActualNumPages() {\n    return this._actualNumPages !== null;\n  }\n\n  get _pagesCount() {\n    const obj = this.toplevelPagesDict.get(\"Count\");\n    if (!Number.isInteger(obj)) {\n      throw new FormatError(\n        \"Page count in top-level pages dictionary is not an integer.\"\n      );\n    }\n    return shadow(this, \"_pagesCount\", obj);\n  }\n\n  get numPages() {\n    return this.hasActualNumPages ? this._actualNumPages : this._pagesCount;\n  }\n\n  get destinations() {\n    const obj = this._readDests(),\n      dests = Object.create(null);\n    if (obj instanceof NameTree) {\n      for (const [key, value] of obj.getAll()) {\n        const dest = fetchDestination(value);\n        if (dest) {\n          dests[stringToPDFString(key)] = dest;\n        }\n      }\n    } else if (obj instanceof Dict) {\n      obj.forEach(function (key, value) {\n        const dest = fetchDestination(value);\n        if (dest) {\n          dests[key] = dest;\n        }\n      });\n    }\n    return shadow(this, \"destinations\", dests);\n  }\n\n  getDestination(id) {\n    const obj = this._readDests();\n    if (obj instanceof NameTree) {\n      const dest = fetchDestination(obj.get(id));\n      if (dest) {\n        return dest;\n      }\n      // Fallback to checking the *entire* NameTree, in an attempt to handle\n      // corrupt PDF documents with out-of-order NameTrees (fixes issue 10272).\n      const allDest = this.destinations[id];\n      if (allDest) {\n        warn(`Found \"${id}\" at an incorrect position in the NameTree.`);\n        return allDest;\n      }\n    } else if (obj instanceof Dict) {\n      const dest = fetchDestination(obj.get(id));\n      if (dest) {\n        return dest;\n      }\n    }\n    return null;\n  }\n\n  /**\n   * @private\n   */\n  _readDests() {\n    const obj = this._catDict.get(\"Names\");\n    if (obj?.has(\"Dests\")) {\n      return new NameTree(obj.getRaw(\"Dests\"), this.xref);\n    } else if (this._catDict.has(\"Dests\")) {\n      // Simple destination dictionary.\n      return this._catDict.get(\"Dests\");\n    }\n    return undefined;\n  }\n\n  get pageLabels() {\n    let obj = null;\n    try {\n      obj = this._readPageLabels();\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(\"Unable to read page labels.\");\n    }\n    return shadow(this, \"pageLabels\", obj);\n  }\n\n  /**\n   * @private\n   */\n  _readPageLabels() {\n    const obj = this._catDict.getRaw(\"PageLabels\");\n    if (!obj) {\n      return null;\n    }\n\n    const pageLabels = new Array(this.numPages);\n    let style = null,\n      prefix = \"\";\n\n    const numberTree = new NumberTree(obj, this.xref);\n    const nums = numberTree.getAll();\n    let currentLabel = \"\",\n      currentIndex = 1;\n\n    for (let i = 0, ii = this.numPages; i < ii; i++) {\n      const labelDict = nums.get(i);\n\n      if (labelDict !== undefined) {\n        if (!(labelDict instanceof Dict)) {\n          throw new FormatError(\"PageLabel is not a dictionary.\");\n        }\n\n        if (\n          labelDict.has(\"Type\") &&\n          !isName(labelDict.get(\"Type\"), \"PageLabel\")\n        ) {\n          throw new FormatError(\"Invalid type in PageLabel dictionary.\");\n        }\n\n        if (labelDict.has(\"S\")) {\n          const s = labelDict.get(\"S\");\n          if (!(s instanceof Name)) {\n            throw new FormatError(\"Invalid style in PageLabel dictionary.\");\n          }\n          style = s.name;\n        } else {\n          style = null;\n        }\n\n        if (labelDict.has(\"P\")) {\n          const p = labelDict.get(\"P\");\n          if (typeof p !== \"string\") {\n            throw new FormatError(\"Invalid prefix in PageLabel dictionary.\");\n          }\n          prefix = stringToPDFString(p);\n        } else {\n          prefix = \"\";\n        }\n\n        if (labelDict.has(\"St\")) {\n          const st = labelDict.get(\"St\");\n          if (!(Number.isInteger(st) && st >= 1)) {\n            throw new FormatError(\"Invalid start in PageLabel dictionary.\");\n          }\n          currentIndex = st;\n        } else {\n          currentIndex = 1;\n        }\n      }\n\n      switch (style) {\n        case \"D\":\n          currentLabel = currentIndex;\n          break;\n        case \"R\":\n        case \"r\":\n          currentLabel = toRomanNumerals(currentIndex, style === \"r\");\n          break;\n        case \"A\":\n        case \"a\":\n          const LIMIT = 26; // Use only the characters A-Z, or a-z.\n          const A_UPPER_CASE = 0x41,\n            A_LOWER_CASE = 0x61;\n\n          const baseCharCode = style === \"a\" ? A_LOWER_CASE : A_UPPER_CASE;\n          const letterIndex = currentIndex - 1;\n          const character = String.fromCharCode(\n            baseCharCode + (letterIndex % LIMIT)\n          );\n          currentLabel = character.repeat(Math.floor(letterIndex / LIMIT) + 1);\n          break;\n        default:\n          if (style) {\n            throw new FormatError(\n              `Invalid style \"${style}\" in PageLabel dictionary.`\n            );\n          }\n          currentLabel = \"\";\n      }\n\n      pageLabels[i] = prefix + currentLabel;\n      currentIndex++;\n    }\n    return pageLabels;\n  }\n\n  get pageLayout() {\n    const obj = this._catDict.get(\"PageLayout\");\n    // Purposely use a non-standard default value, rather than 'SinglePage', to\n    // allow differentiating between `undefined` and /SinglePage since that does\n    // affect the Scroll mode (continuous/non-continuous) used in Adobe Reader.\n    let pageLayout = \"\";\n\n    if (obj instanceof Name) {\n      switch (obj.name) {\n        case \"SinglePage\":\n        case \"OneColumn\":\n        case \"TwoColumnLeft\":\n        case \"TwoColumnRight\":\n        case \"TwoPageLeft\":\n        case \"TwoPageRight\":\n          pageLayout = obj.name;\n      }\n    }\n    return shadow(this, \"pageLayout\", pageLayout);\n  }\n\n  get pageMode() {\n    const obj = this._catDict.get(\"PageMode\");\n    let pageMode = \"UseNone\"; // Default value.\n\n    if (obj instanceof Name) {\n      switch (obj.name) {\n        case \"UseNone\":\n        case \"UseOutlines\":\n        case \"UseThumbs\":\n        case \"FullScreen\":\n        case \"UseOC\":\n        case \"UseAttachments\":\n          pageMode = obj.name;\n      }\n    }\n    return shadow(this, \"pageMode\", pageMode);\n  }\n\n  get viewerPreferences() {\n    const obj = this._catDict.get(\"ViewerPreferences\");\n    if (!(obj instanceof Dict)) {\n      return shadow(this, \"viewerPreferences\", null);\n    }\n    let prefs = null;\n\n    for (const key of obj.getKeys()) {\n      const value = obj.get(key);\n      let prefValue;\n\n      switch (key) {\n        case \"HideToolbar\":\n        case \"HideMenubar\":\n        case \"HideWindowUI\":\n        case \"FitWindow\":\n        case \"CenterWindow\":\n        case \"DisplayDocTitle\":\n        case \"PickTrayByPDFSize\":\n          if (typeof value === \"boolean\") {\n            prefValue = value;\n          }\n          break;\n        case \"NonFullScreenPageMode\":\n          if (value instanceof Name) {\n            switch (value.name) {\n              case \"UseNone\":\n              case \"UseOutlines\":\n              case \"UseThumbs\":\n              case \"UseOC\":\n                prefValue = value.name;\n                break;\n              default:\n                prefValue = \"UseNone\";\n            }\n          }\n          break;\n        case \"Direction\":\n          if (value instanceof Name) {\n            switch (value.name) {\n              case \"L2R\":\n              case \"R2L\":\n                prefValue = value.name;\n                break;\n              default:\n                prefValue = \"L2R\";\n            }\n          }\n          break;\n        case \"ViewArea\":\n        case \"ViewClip\":\n        case \"PrintArea\":\n        case \"PrintClip\":\n          if (value instanceof Name) {\n            switch (value.name) {\n              case \"MediaBox\":\n              case \"CropBox\":\n              case \"BleedBox\":\n              case \"TrimBox\":\n              case \"ArtBox\":\n                prefValue = value.name;\n                break;\n              default:\n                prefValue = \"CropBox\";\n            }\n          }\n          break;\n        case \"PrintScaling\":\n          if (value instanceof Name) {\n            switch (value.name) {\n              case \"None\":\n              case \"AppDefault\":\n                prefValue = value.name;\n                break;\n              default:\n                prefValue = \"AppDefault\";\n            }\n          }\n          break;\n        case \"Duplex\":\n          if (value instanceof Name) {\n            switch (value.name) {\n              case \"Simplex\":\n              case \"DuplexFlipShortEdge\":\n              case \"DuplexFlipLongEdge\":\n                prefValue = value.name;\n                break;\n              default:\n                prefValue = \"None\";\n            }\n          }\n          break;\n        case \"PrintPageRange\":\n          // The number of elements must be even.\n          if (Array.isArray(value) && value.length % 2 === 0) {\n            const isValid = value.every((page, i, arr) => {\n              return (\n                Number.isInteger(page) &&\n                page > 0 &&\n                (i === 0 || page >= arr[i - 1]) &&\n                page <= this.numPages\n              );\n            });\n            if (isValid) {\n              prefValue = value;\n            }\n          }\n          break;\n        case \"NumCopies\":\n          if (Number.isInteger(value) && value > 0) {\n            prefValue = value;\n          }\n          break;\n        default:\n          warn(`Ignoring non-standard key in ViewerPreferences: ${key}.`);\n          continue;\n      }\n\n      if (prefValue === undefined) {\n        warn(`Bad value, for key \"${key}\", in ViewerPreferences: ${value}.`);\n        continue;\n      }\n      if (!prefs) {\n        prefs = Object.create(null);\n      }\n      prefs[key] = prefValue;\n    }\n    return shadow(this, \"viewerPreferences\", prefs);\n  }\n\n  get openAction() {\n    const obj = this._catDict.get(\"OpenAction\");\n    const openAction = Object.create(null);\n\n    if (obj instanceof Dict) {\n      // Convert the OpenAction dictionary into a format that works with\n      // `parseDestDictionary`, to avoid having to re-implement those checks.\n      const destDict = new Dict(this.xref);\n      destDict.set(\"A\", obj);\n\n      const resultObj = { url: null, dest: null, action: null };\n      Catalog.parseDestDictionary({ destDict, resultObj });\n\n      if (Array.isArray(resultObj.dest)) {\n        openAction.dest = resultObj.dest;\n      } else if (resultObj.action) {\n        openAction.action = resultObj.action;\n      }\n    } else if (Array.isArray(obj)) {\n      openAction.dest = obj;\n    }\n    return shadow(\n      this,\n      \"openAction\",\n      objectSize(openAction) > 0 ? openAction : null\n    );\n  }\n\n  get attachments() {\n    const obj = this._catDict.get(\"Names\");\n    let attachments = null;\n\n    if (obj instanceof Dict && obj.has(\"EmbeddedFiles\")) {\n      const nameTree = new NameTree(obj.getRaw(\"EmbeddedFiles\"), this.xref);\n      for (const [key, value] of nameTree.getAll()) {\n        const fs = new FileSpec(value, this.xref);\n        if (!attachments) {\n          attachments = Object.create(null);\n        }\n        attachments[stringToPDFString(key)] = fs.serializable;\n      }\n    }\n    return shadow(this, \"attachments\", attachments);\n  }\n\n  get xfaImages() {\n    const obj = this._catDict.get(\"Names\");\n    let xfaImages = null;\n\n    if (obj instanceof Dict && obj.has(\"XFAImages\")) {\n      const nameTree = new NameTree(obj.getRaw(\"XFAImages\"), this.xref);\n      for (const [key, value] of nameTree.getAll()) {\n        if (!xfaImages) {\n          xfaImages = new Dict(this.xref);\n        }\n        xfaImages.set(stringToPDFString(key), value);\n      }\n    }\n    return shadow(this, \"xfaImages\", xfaImages);\n  }\n\n  _collectJavaScript() {\n    const obj = this._catDict.get(\"Names\");\n    let javaScript = null;\n\n    function appendIfJavaScriptDict(name, jsDict) {\n      if (!(jsDict instanceof Dict)) {\n        return;\n      }\n      if (!isName(jsDict.get(\"S\"), \"JavaScript\")) {\n        return;\n      }\n\n      let js = jsDict.get(\"JS\");\n      if (js instanceof BaseStream) {\n        js = js.getString();\n      } else if (typeof js !== \"string\") {\n        return;\n      }\n      js = stringToPDFString(js).replaceAll(\"\\x00\", \"\");\n      // Skip empty entries, similar to the `_collectJS` function.\n      if (js) {\n        (javaScript ||= new Map()).set(name, js);\n      }\n    }\n\n    if (obj instanceof Dict && obj.has(\"JavaScript\")) {\n      const nameTree = new NameTree(obj.getRaw(\"JavaScript\"), this.xref);\n      for (const [key, value] of nameTree.getAll()) {\n        appendIfJavaScriptDict(stringToPDFString(key), value);\n      }\n    }\n    // Append OpenAction \"JavaScript\" actions, if any, to the JavaScript map.\n    const openAction = this._catDict.get(\"OpenAction\");\n    if (openAction) {\n      appendIfJavaScriptDict(\"OpenAction\", openAction);\n    }\n\n    return javaScript;\n  }\n\n  get jsActions() {\n    const javaScript = this._collectJavaScript();\n    let actions = collectActions(\n      this.xref,\n      this._catDict,\n      DocumentActionEventType\n    );\n\n    if (javaScript) {\n      actions ||= Object.create(null);\n\n      for (const [key, val] of javaScript) {\n        if (key in actions) {\n          actions[key].push(val);\n        } else {\n          actions[key] = [val];\n        }\n      }\n    }\n    return shadow(this, \"jsActions\", actions);\n  }\n\n  async fontFallback(id, handler) {\n    const translatedFonts = await Promise.all(this.fontCache);\n\n    for (const translatedFont of translatedFonts) {\n      if (translatedFont.loadedName === id) {\n        translatedFont.fallback(handler);\n        return;\n      }\n    }\n  }\n\n  async cleanup(manuallyTriggered = false) {\n    clearGlobalCaches();\n    this.globalImageCache.clear(/* onlyData = */ manuallyTriggered);\n    this.pageKidsCountCache.clear();\n    this.pageIndexCache.clear();\n    this.nonBlendModesSet.clear();\n\n    const translatedFonts = await Promise.all(this.fontCache);\n\n    for (const { dict } of translatedFonts) {\n      delete dict.cacheKey;\n    }\n    this.fontCache.clear();\n    this.builtInCMapCache.clear();\n    this.standardFontDataCache.clear();\n    this.systemFontCache.clear();\n  }\n\n  async getPageDict(pageIndex) {\n    const nodesToVisit = [this.toplevelPagesDict];\n    const visitedNodes = new RefSet();\n\n    const pagesRef = this._catDict.getRaw(\"Pages\");\n    if (pagesRef instanceof Ref) {\n      visitedNodes.put(pagesRef);\n    }\n    const xref = this.xref,\n      pageKidsCountCache = this.pageKidsCountCache,\n      pageIndexCache = this.pageIndexCache;\n    let currentPageIndex = 0;\n\n    while (nodesToVisit.length) {\n      const currentNode = nodesToVisit.pop();\n\n      if (currentNode instanceof Ref) {\n        const count = pageKidsCountCache.get(currentNode);\n        // Skip nodes where the page can't be.\n        if (count >= 0 && currentPageIndex + count <= pageIndex) {\n          currentPageIndex += count;\n          continue;\n        }\n        // Prevent circular references in the /Pages tree.\n        if (visitedNodes.has(currentNode)) {\n          throw new FormatError(\"Pages tree contains circular reference.\");\n        }\n        visitedNodes.put(currentNode);\n\n        const obj = await xref.fetchAsync(currentNode);\n        if (obj instanceof Dict) {\n          let type = obj.getRaw(\"Type\");\n          if (type instanceof Ref) {\n            type = await xref.fetchAsync(type);\n          }\n          if (isName(type, \"Page\") || !obj.has(\"Kids\")) {\n            // Cache the Page reference, since it can *greatly* improve\n            // performance by reducing redundant lookups in long documents\n            // where all nodes are found at *one* level of the tree.\n            if (!pageKidsCountCache.has(currentNode)) {\n              pageKidsCountCache.put(currentNode, 1);\n            }\n            // Help improve performance of the `getPageIndex` method.\n            if (!pageIndexCache.has(currentNode)) {\n              pageIndexCache.put(currentNode, currentPageIndex);\n            }\n\n            if (currentPageIndex === pageIndex) {\n              return [obj, currentNode];\n            }\n            currentPageIndex++;\n            continue;\n          }\n        }\n        nodesToVisit.push(obj);\n        continue;\n      }\n\n      // Must be a child page dictionary.\n      if (!(currentNode instanceof Dict)) {\n        throw new FormatError(\n          \"Page dictionary kid reference points to wrong type of object.\"\n        );\n      }\n      const { objId } = currentNode;\n\n      let count = currentNode.getRaw(\"Count\");\n      if (count instanceof Ref) {\n        count = await xref.fetchAsync(count);\n      }\n      if (Number.isInteger(count) && count >= 0) {\n        // Cache the Kids count, since it can reduce redundant lookups in\n        // documents where all nodes are found at *one* level of the tree.\n        if (objId && !pageKidsCountCache.has(objId)) {\n          pageKidsCountCache.put(objId, count);\n        }\n\n        // Skip nodes where the page can't be.\n        if (currentPageIndex + count <= pageIndex) {\n          currentPageIndex += count;\n          continue;\n        }\n      }\n\n      let kids = currentNode.getRaw(\"Kids\");\n      if (kids instanceof Ref) {\n        kids = await xref.fetchAsync(kids);\n      }\n      if (!Array.isArray(kids)) {\n        // Prevent errors in corrupt PDF documents that violate the\n        // specification by *inlining* Page dicts directly in the Kids\n        // array, rather than using indirect objects (fixes issue9540.pdf).\n        let type = currentNode.getRaw(\"Type\");\n        if (type instanceof Ref) {\n          type = await xref.fetchAsync(type);\n        }\n        if (isName(type, \"Page\") || !currentNode.has(\"Kids\")) {\n          if (currentPageIndex === pageIndex) {\n            return [currentNode, null];\n          }\n          currentPageIndex++;\n          continue;\n        }\n\n        throw new FormatError(\"Page dictionary kids object is not an array.\");\n      }\n\n      // Always check all `Kids` nodes, to avoid getting stuck in an empty\n      // node further down in the tree (see issue5644.pdf, issue8088.pdf),\n      // and to ensure that we actually find the correct `Page` dict.\n      for (let last = kids.length - 1; last >= 0; last--) {\n        nodesToVisit.push(kids[last]);\n      }\n    }\n\n    throw new Error(`Page index ${pageIndex} not found.`);\n  }\n\n  /**\n   * Eagerly fetches the entire /Pages-tree; should ONLY be used as a fallback.\n   * @returns {Promise<Map>}\n   */\n  async getAllPageDicts(recoveryMode = false) {\n    const { ignoreErrors } = this.pdfManager.evaluatorOptions;\n\n    const queue = [{ currentNode: this.toplevelPagesDict, posInKids: 0 }];\n    const visitedNodes = new RefSet();\n\n    const pagesRef = this._catDict.getRaw(\"Pages\");\n    if (pagesRef instanceof Ref) {\n      visitedNodes.put(pagesRef);\n    }\n    const map = new Map(),\n      xref = this.xref,\n      pageIndexCache = this.pageIndexCache;\n    let pageIndex = 0;\n\n    function addPageDict(pageDict, pageRef) {\n      // Help improve performance of the `getPageIndex` method.\n      if (pageRef && !pageIndexCache.has(pageRef)) {\n        pageIndexCache.put(pageRef, pageIndex);\n      }\n\n      map.set(pageIndex++, [pageDict, pageRef]);\n    }\n    function addPageError(error) {\n      if (error instanceof XRefEntryException && !recoveryMode) {\n        throw error;\n      }\n      if (recoveryMode && ignoreErrors && pageIndex === 0) {\n        // Ensure that the viewer will always load (fixes issue15590.pdf).\n        warn(`getAllPageDicts - Skipping invalid first page: \"${error}\".`);\n        error = Dict.empty;\n      }\n\n      map.set(pageIndex++, [error, null]);\n    }\n\n    while (queue.length > 0) {\n      const queueItem = queue.at(-1);\n      const { currentNode, posInKids } = queueItem;\n\n      let kids = currentNode.getRaw(\"Kids\");\n      if (kids instanceof Ref) {\n        try {\n          kids = await xref.fetchAsync(kids);\n        } catch (ex) {\n          addPageError(ex);\n          break;\n        }\n      }\n      if (!Array.isArray(kids)) {\n        addPageError(\n          new FormatError(\"Page dictionary kids object is not an array.\")\n        );\n        break;\n      }\n\n      if (posInKids >= kids.length) {\n        queue.pop();\n        continue;\n      }\n\n      const kidObj = kids[posInKids];\n      let obj;\n      if (kidObj instanceof Ref) {\n        // Prevent circular references in the /Pages tree.\n        if (visitedNodes.has(kidObj)) {\n          addPageError(\n            new FormatError(\"Pages tree contains circular reference.\")\n          );\n          break;\n        }\n        visitedNodes.put(kidObj);\n\n        try {\n          obj = await xref.fetchAsync(kidObj);\n        } catch (ex) {\n          addPageError(ex);\n          break;\n        }\n      } else {\n        // Prevent errors in corrupt PDF documents that violate the\n        // specification by *inlining* Page dicts directly in the Kids\n        // array, rather than using indirect objects (see issue9540.pdf).\n        obj = kidObj;\n      }\n      if (!(obj instanceof Dict)) {\n        addPageError(\n          new FormatError(\n            \"Page dictionary kid reference points to wrong type of object.\"\n          )\n        );\n        break;\n      }\n\n      let type = obj.getRaw(\"Type\");\n      if (type instanceof Ref) {\n        try {\n          type = await xref.fetchAsync(type);\n        } catch (ex) {\n          addPageError(ex);\n          break;\n        }\n      }\n      if (isName(type, \"Page\") || !obj.has(\"Kids\")) {\n        addPageDict(obj, kidObj instanceof Ref ? kidObj : null);\n      } else {\n        queue.push({ currentNode: obj, posInKids: 0 });\n      }\n      queueItem.posInKids++;\n    }\n    return map;\n  }\n\n  getPageIndex(pageRef) {\n    const cachedPageIndex = this.pageIndexCache.get(pageRef);\n    if (cachedPageIndex !== undefined) {\n      return Promise.resolve(cachedPageIndex);\n    }\n\n    // The page tree nodes have the count of all the leaves below them. To get\n    // how many pages are before we just have to walk up the tree and keep\n    // adding the count of siblings to the left of the node.\n    const xref = this.xref;\n\n    function pagesBeforeRef(kidRef) {\n      let total = 0,\n        parentRef;\n\n      return xref\n        .fetchAsync(kidRef)\n        .then(function (node) {\n          if (\n            isRefsEqual(kidRef, pageRef) &&\n            !isDict(node, \"Page\") &&\n            !(node instanceof Dict && !node.has(\"Type\") && node.has(\"Contents\"))\n          ) {\n            throw new FormatError(\n              \"The reference does not point to a /Page dictionary.\"\n            );\n          }\n          if (!node) {\n            return null;\n          }\n          if (!(node instanceof Dict)) {\n            throw new FormatError(\"Node must be a dictionary.\");\n          }\n          parentRef = node.getRaw(\"Parent\");\n          return node.getAsync(\"Parent\");\n        })\n        .then(function (parent) {\n          if (!parent) {\n            return null;\n          }\n          if (!(parent instanceof Dict)) {\n            throw new FormatError(\"Parent must be a dictionary.\");\n          }\n          return parent.getAsync(\"Kids\");\n        })\n        .then(function (kids) {\n          if (!kids) {\n            return null;\n          }\n\n          const kidPromises = [];\n          let found = false;\n          for (const kid of kids) {\n            if (!(kid instanceof Ref)) {\n              throw new FormatError(\"Kid must be a reference.\");\n            }\n            if (isRefsEqual(kid, kidRef)) {\n              found = true;\n              break;\n            }\n            kidPromises.push(\n              xref.fetchAsync(kid).then(function (obj) {\n                if (!(obj instanceof Dict)) {\n                  throw new FormatError(\"Kid node must be a dictionary.\");\n                }\n                if (obj.has(\"Count\")) {\n                  total += obj.get(\"Count\");\n                } else {\n                  // Page leaf node.\n                  total++;\n                }\n              })\n            );\n          }\n          if (!found) {\n            throw new FormatError(\"Kid reference not found in parent's kids.\");\n          }\n          return Promise.all(kidPromises).then(function () {\n            return [total, parentRef];\n          });\n        });\n    }\n\n    let total = 0;\n    const next = ref =>\n      pagesBeforeRef(ref).then(args => {\n        if (!args) {\n          this.pageIndexCache.put(pageRef, total);\n          return total;\n        }\n        const [count, parentRef] = args;\n        total += count;\n        return next(parentRef);\n      });\n\n    return next(pageRef);\n  }\n\n  get baseUrl() {\n    const uri = this._catDict.get(\"URI\");\n    if (uri instanceof Dict) {\n      const base = uri.get(\"Base\");\n      if (typeof base === \"string\") {\n        const absoluteUrl = createValidAbsoluteUrl(base, null, {\n          tryConvertEncoding: true,\n        });\n        if (absoluteUrl) {\n          return shadow(this, \"baseUrl\", absoluteUrl.href);\n        }\n      }\n    }\n    return shadow(this, \"baseUrl\", this.pdfManager.docBaseUrl);\n  }\n\n  /**\n   * @typedef {Object} ParseDestDictionaryParameters\n   * @property {Dict} destDict - The dictionary containing the destination.\n   * @property {Object} resultObj - The object where the parsed destination\n   *   properties will be placed.\n   * @property {string} [docBaseUrl] - The document base URL that is used when\n   *   attempting to recover valid absolute URLs from relative ones.\n   * @property {Object} [docAttachments] - The document attachments (may not\n   *   exist in most PDF documents).\n   */\n\n  /**\n   * Helper function used to parse the contents of destination dictionaries.\n   * @param {ParseDestDictionaryParameters} params\n   */\n  static parseDestDictionary({\n    destDict,\n    resultObj,\n    docBaseUrl = null,\n    docAttachments = null,\n  }) {\n    if (!(destDict instanceof Dict)) {\n      warn(\"parseDestDictionary: `destDict` must be a dictionary.\");\n      return;\n    }\n\n    let action = destDict.get(\"A\"),\n      url,\n      dest;\n    if (!(action instanceof Dict)) {\n      if (destDict.has(\"Dest\")) {\n        // A /Dest entry should *only* contain a Name or an Array, but some bad\n        // PDF generators ignore that and treat it as an /A entry.\n        action = destDict.get(\"Dest\");\n      } else {\n        action = destDict.get(\"AA\");\n        if (action instanceof Dict) {\n          if (action.has(\"D\")) {\n            // MouseDown\n            action = action.get(\"D\");\n          } else if (action.has(\"U\")) {\n            // MouseUp\n            action = action.get(\"U\");\n          }\n        }\n      }\n    }\n\n    if (action instanceof Dict) {\n      const actionType = action.get(\"S\");\n      if (!(actionType instanceof Name)) {\n        warn(\"parseDestDictionary: Invalid type in Action dictionary.\");\n        return;\n      }\n      const actionName = actionType.name;\n\n      switch (actionName) {\n        case \"ResetForm\":\n          const flags = action.get(\"Flags\");\n          const include = ((typeof flags === \"number\" ? flags : 0) & 1) === 0;\n          const fields = [];\n          const refs = [];\n          for (const obj of action.get(\"Fields\") || []) {\n            if (obj instanceof Ref) {\n              refs.push(obj.toString());\n            } else if (typeof obj === \"string\") {\n              fields.push(stringToPDFString(obj));\n            }\n          }\n          resultObj.resetForm = { fields, refs, include };\n          break;\n        case \"URI\":\n          url = action.get(\"URI\");\n          if (url instanceof Name) {\n            // Some bad PDFs do not put parentheses around relative URLs.\n            url = \"/\" + url.name;\n          }\n          break;\n\n        case \"GoTo\":\n          dest = action.get(\"D\");\n          break;\n\n        case \"Launch\":\n        // We neither want, nor can, support arbitrary 'Launch' actions.\n        // However, in practice they are mostly used for linking to other PDF\n        // files, which we thus attempt to support (utilizing `docBaseUrl`).\n        /* falls through */\n\n        case \"GoToR\":\n          const urlDict = action.get(\"F\");\n          if (urlDict instanceof Dict) {\n            // We assume that we found a FileSpec dictionary\n            // and fetch the URL without checking any further.\n            url = urlDict.get(\"F\") || null;\n          } else if (typeof urlDict === \"string\") {\n            url = urlDict;\n          }\n\n          // NOTE: the destination is relative to the *remote* document.\n          const remoteDest = fetchRemoteDest(action);\n          if (remoteDest && typeof url === \"string\") {\n            url = /* baseUrl = */ url.split(\"#\", 1)[0] + \"#\" + remoteDest;\n          }\n          // The 'NewWindow' property, equal to `LinkTarget.BLANK`.\n          const newWindow = action.get(\"NewWindow\");\n          if (typeof newWindow === \"boolean\") {\n            resultObj.newWindow = newWindow;\n          }\n          break;\n\n        case \"GoToE\":\n          const target = action.get(\"T\");\n          let attachment;\n\n          if (docAttachments && target instanceof Dict) {\n            const relationship = target.get(\"R\");\n            const name = target.get(\"N\");\n\n            if (isName(relationship, \"C\") && typeof name === \"string\") {\n              attachment = docAttachments[stringToPDFString(name)];\n            }\n          }\n\n          if (attachment) {\n            resultObj.attachment = attachment;\n\n            // NOTE: the destination is relative to the *attachment*.\n            const attachmentDest = fetchRemoteDest(action);\n            if (attachmentDest) {\n              resultObj.attachmentDest = attachmentDest;\n            }\n          } else {\n            warn(`parseDestDictionary - unimplemented \"GoToE\" action.`);\n          }\n          break;\n\n        case \"Named\":\n          const namedAction = action.get(\"N\");\n          if (namedAction instanceof Name) {\n            resultObj.action = namedAction.name;\n          }\n          break;\n\n        case \"SetOCGState\":\n          const state = action.get(\"State\");\n          const preserveRB = action.get(\"PreserveRB\");\n\n          if (!Array.isArray(state) || state.length === 0) {\n            break;\n          }\n          const stateArr = [];\n\n          for (const elem of state) {\n            if (elem instanceof Name) {\n              switch (elem.name) {\n                case \"ON\":\n                case \"OFF\":\n                case \"Toggle\":\n                  stateArr.push(elem.name);\n                  break;\n              }\n            } else if (elem instanceof Ref) {\n              stateArr.push(elem.toString());\n            }\n          }\n\n          if (stateArr.length !== state.length) {\n            break; // Some of the original entries are not valid.\n          }\n          resultObj.setOCGState = {\n            state: stateArr,\n            preserveRB: typeof preserveRB === \"boolean\" ? preserveRB : true,\n          };\n          break;\n\n        case \"JavaScript\":\n          const jsAction = action.get(\"JS\");\n          let js;\n\n          if (jsAction instanceof BaseStream) {\n            js = jsAction.getString();\n          } else if (typeof jsAction === \"string\") {\n            js = jsAction;\n          }\n\n          const jsURL = js && recoverJsURL(stringToPDFString(js));\n          if (jsURL) {\n            url = jsURL.url;\n            resultObj.newWindow = jsURL.newWindow;\n            break;\n          }\n        /* falls through */\n        default:\n          if (actionName === \"JavaScript\" || actionName === \"SubmitForm\") {\n            // Don't bother the user with a warning for actions that require\n            // scripting support, since those will be handled separately.\n            break;\n          }\n          warn(`parseDestDictionary - unsupported action: \"${actionName}\".`);\n          break;\n      }\n    } else if (destDict.has(\"Dest\")) {\n      // Simple destination.\n      dest = destDict.get(\"Dest\");\n    }\n\n    if (typeof url === \"string\") {\n      const absoluteUrl = createValidAbsoluteUrl(url, docBaseUrl, {\n        addDefaultProtocol: true,\n        tryConvertEncoding: true,\n      });\n      if (absoluteUrl) {\n        resultObj.url = absoluteUrl.href;\n      }\n      resultObj.unsafeUrl = url;\n    }\n    if (dest) {\n      if (dest instanceof Name) {\n        dest = dest.name;\n      }\n      if (typeof dest === \"string\") {\n        resultObj.dest = stringToPDFString(dest);\n      } else if (Array.isArray(dest)) {\n        resultObj.dest = dest;\n      }\n    }\n  }\n}\n\nexport { Catalog };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { warn } from \"../shared/util.js\";\n\nfunction mayHaveChildren(value) {\n  return (\n    value instanceof Ref ||\n    value instanceof Dict ||\n    value instanceof BaseStream ||\n    Array.isArray(value)\n  );\n}\n\nfunction addChildren(node, nodesToVisit) {\n  if (node instanceof Dict) {\n    node = node.getRawValues();\n  } else if (node instanceof BaseStream) {\n    node = node.dict.getRawValues();\n  } else if (!Array.isArray(node)) {\n    return;\n  }\n  for (const rawValue of node) {\n    if (mayHaveChildren(rawValue)) {\n      nodesToVisit.push(rawValue);\n    }\n  }\n}\n\n/**\n * A helper for loading missing data in `Dict` graphs. It traverses the graph\n * depth first and queues up any objects that have missing data. Once it has\n * has traversed as many objects that are available it attempts to bundle the\n * missing data requests and then resume from the nodes that weren't ready.\n *\n * NOTE: It provides protection from circular references by keeping track of\n * loaded references. However, you must be careful not to load any graphs\n * that have references to the catalog or other pages since that will cause the\n * entire PDF document object graph to be traversed.\n */\nclass ObjectLoader {\n  constructor(dict, keys, xref) {\n    this.dict = dict;\n    this.keys = keys;\n    this.xref = xref;\n    this.refSet = null;\n  }\n\n  async load() {\n    // Don't walk the graph if all the data is already loaded.\n    if (this.xref.stream.isDataLoaded) {\n      return undefined;\n    }\n\n    const { keys, dict } = this;\n    this.refSet = new RefSet();\n    // Setup the initial nodes to visit.\n    const nodesToVisit = [];\n    for (const key of keys) {\n      const rawValue = dict.getRaw(key);\n      // Skip nodes that are guaranteed to be empty.\n      if (rawValue !== undefined) {\n        nodesToVisit.push(rawValue);\n      }\n    }\n    return this._walk(nodesToVisit);\n  }\n\n  async _walk(nodesToVisit) {\n    const nodesToRevisit = [];\n    const pendingRequests = [];\n    // DFS walk of the object graph.\n    while (nodesToVisit.length) {\n      let currentNode = nodesToVisit.pop();\n\n      // Only references or chunked streams can cause missing data exceptions.\n      if (currentNode instanceof Ref) {\n        // Skip nodes that have already been visited.\n        if (this.refSet.has(currentNode)) {\n          continue;\n        }\n        try {\n          this.refSet.put(currentNode);\n          currentNode = this.xref.fetch(currentNode);\n        } catch (ex) {\n          if (!(ex instanceof MissingDataException)) {\n            warn(`ObjectLoader._walk - requesting all data: \"${ex}\".`);\n            this.refSet = null;\n\n            const { manager } = this.xref.stream;\n            return manager.requestAllChunks();\n          }\n          nodesToRevisit.push(currentNode);\n          pendingRequests.push({ begin: ex.begin, end: ex.end });\n        }\n      }\n      if (currentNode instanceof BaseStream) {\n        const baseStreams = currentNode.getBaseStreams();\n        if (baseStreams) {\n          let foundMissingData = false;\n          for (const stream of baseStreams) {\n            if (stream.isDataLoaded) {\n              continue;\n            }\n            foundMissingData = true;\n            pendingRequests.push({ begin: stream.start, end: stream.end });\n          }\n          if (foundMissingData) {\n            nodesToRevisit.push(currentNode);\n          }\n        }\n      }\n\n      addChildren(currentNode, nodesToVisit);\n    }\n\n    if (pendingRequests.length) {\n      await this.xref.stream.manager.requestRanges(pendingRequests);\n\n      for (const node of nodesToRevisit) {\n        // Remove any reference nodes from the current `RefSet` so they\n        // aren't skipped when we revist them.\n        if (node instanceof Ref) {\n          this.refSet.remove(node);\n        }\n      }\n      return this._walk(nodesToRevisit);\n    }\n    // Everything is loaded.\n    this.refSet = null;\n    return undefined;\n  }\n}\n\nexport { ObjectLoader };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// We use these symbols to avoid name conflict between tags\n// and properties/methods names.\nconst $acceptWhitespace = Symbol();\nconst $addHTML = Symbol();\nconst $appendChild = Symbol();\nconst $childrenToHTML = Symbol();\nconst $clean = Symbol();\nconst $cleanPage = Symbol();\nconst $cleanup = Symbol();\nconst $clone = Symbol();\nconst $consumed = Symbol();\nconst $content = Symbol(\"content\");\nconst $data = Symbol(\"data\");\nconst $dump = Symbol();\nconst $extra = Symbol(\"extra\");\nconst $finalize = Symbol();\nconst $flushHTML = Symbol();\nconst $getAttributeIt = Symbol();\nconst $getAttributes = Symbol();\nconst $getAvailableSpace = Symbol();\nconst $getChildrenByClass = Symbol();\nconst $getChildrenByName = Symbol();\nconst $getChildrenByNameIt = Symbol();\nconst $getDataValue = Symbol();\nconst $getExtra = Symbol();\nconst $getRealChildrenByNameIt = Symbol();\nconst $getChildren = Symbol();\nconst $getContainedChildren = Symbol();\nconst $getNextPage = Symbol();\nconst $getSubformParent = Symbol();\nconst $getParent = Symbol();\nconst $getTemplateRoot = Symbol();\nconst $globalData = Symbol();\nconst $hasSettableValue = Symbol();\nconst $ids = Symbol();\nconst $indexOf = Symbol();\nconst $insertAt = Symbol();\nconst $isCDATAXml = Symbol();\nconst $isBindable = Symbol();\nconst $isDataValue = Symbol();\nconst $isDescendent = Symbol();\nconst $isNsAgnostic = Symbol();\nconst $isSplittable = Symbol();\nconst $isThereMoreWidth = Symbol();\nconst $isTransparent = Symbol();\nconst $isUsable = Symbol();\nconst $lastAttribute = Symbol();\nconst $namespaceId = Symbol(\"namespaceId\");\nconst $nodeName = Symbol(\"nodeName\");\nconst $nsAttributes = Symbol();\nconst $onChild = Symbol();\nconst $onChildCheck = Symbol();\nconst $onText = Symbol();\nconst $pushGlyphs = Symbol();\nconst $popPara = Symbol();\nconst $pushPara = Symbol();\nconst $removeChild = Symbol();\nconst $root = Symbol(\"root\");\nconst $resolvePrototypes = Symbol();\nconst $searchNode = Symbol();\nconst $setId = Symbol();\nconst $setSetAttributes = Symbol();\nconst $setValue = Symbol();\nconst $tabIndex = Symbol();\nconst $text = Symbol();\nconst $toPages = Symbol();\nconst $toHTML = Symbol();\nconst $toString = Symbol();\nconst $toStyle = Symbol();\nconst $uid = Symbol(\"uid\");\n\nexport {\n  $acceptWhitespace,\n  $addHTML,\n  $appendChild,\n  $childrenToHTML,\n  $clean,\n  $cleanPage,\n  $cleanup,\n  $clone,\n  $consumed,\n  $content,\n  $data,\n  $dump,\n  $extra,\n  $finalize,\n  $flushHTML,\n  $getAttributeIt,\n  $getAttributes,\n  $getAvailableSpace,\n  $getChildren,\n  $getChildrenByClass,\n  $getChildrenByName,\n  $getChildrenByNameIt,\n  $getContainedChildren,\n  $getDataValue,\n  $getExtra,\n  $getNextPage,\n  $getParent,\n  $getRealChildrenByNameIt,\n  $getSubformParent,\n  $getTemplateRoot,\n  $globalData,\n  $hasSettableValue,\n  $ids,\n  $indexOf,\n  $insertAt,\n  $isBindable,\n  $isCDATAXml,\n  $isDataValue,\n  $isDescendent,\n  $isNsAgnostic,\n  $isSplittable,\n  $isThereMoreWidth,\n  $isTransparent,\n  $isUsable,\n  $lastAttribute,\n  $namespaceId,\n  $nodeName,\n  $nsAttributes,\n  $onChild,\n  $onChildCheck,\n  $onText,\n  $popPara,\n  $pushGlyphs,\n  $pushPara,\n  $removeChild,\n  $resolvePrototypes,\n  $root,\n  $searchNode,\n  $setId,\n  $setSetAttributes,\n  $setValue,\n  $tabIndex,\n  $text,\n  $toHTML,\n  $toPages,\n  $toString,\n  $toStyle,\n  $uid,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst $buildXFAObject = Symbol();\n\nconst NamespaceIds = {\n  config: {\n    id: 0,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xci/\"),\n  },\n  connectionSet: {\n    id: 1,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-connection-set/\"),\n  },\n  datasets: {\n    id: 2,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-data/\"),\n  },\n  form: {\n    id: 3,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-form/\"),\n  },\n  localeSet: {\n    id: 4,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-locale-set/\"),\n  },\n  pdf: {\n    id: 5,\n    check: ns => ns === \"http://ns.adobe.com/xdp/pdf/\",\n  },\n  signature: {\n    id: 6,\n    check: ns => ns === \"http://www.w3.org/2000/09/xmldsig#\",\n  },\n  sourceSet: {\n    id: 7,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-source-set/\"),\n  },\n  stylesheet: {\n    id: 8,\n    check: ns => ns === \"http://www.w3.org/1999/XSL/Transform\",\n  },\n  template: {\n    id: 9,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-template/\"),\n  },\n  xdc: {\n    id: 10,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xdc/\"),\n  },\n  xdp: {\n    id: 11,\n    check: ns => ns === \"http://ns.adobe.com/xdp/\",\n  },\n  xfdf: {\n    id: 12,\n    check: ns => ns === \"http://ns.adobe.com/xfdf/\",\n  },\n  xhtml: {\n    id: 13,\n    check: ns => ns === \"http://www.w3.org/1999/xhtml\",\n  },\n  xmpmeta: {\n    id: 14,\n    check: ns => ns === \"http://ns.adobe.com/xmpmeta/\",\n  },\n};\n\nexport { $buildXFAObject, NamespaceIds };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { shadow } from \"../../shared/util.js\";\n\nconst dimConverters = {\n  pt: x => x,\n  cm: x => (x / 2.54) * 72,\n  mm: x => (x / (10 * 2.54)) * 72,\n  in: x => x * 72,\n  px: x => x,\n};\nconst measurementPattern = /([+-]?\\d+\\.?\\d*)(.*)/;\n\nfunction stripQuotes(str) {\n  if (str.startsWith(\"'\") || str.startsWith('\"')) {\n    return str.slice(1, -1);\n  }\n  return str;\n}\n\nfunction getInteger({ data, defaultValue, validate }) {\n  if (!data) {\n    return defaultValue;\n  }\n  data = data.trim();\n  const n = parseInt(data, 10);\n  if (!isNaN(n) && validate(n)) {\n    return n;\n  }\n  return defaultValue;\n}\n\nfunction getFloat({ data, defaultValue, validate }) {\n  if (!data) {\n    return defaultValue;\n  }\n  data = data.trim();\n  const n = parseFloat(data);\n  if (!isNaN(n) && validate(n)) {\n    return n;\n  }\n  return defaultValue;\n}\n\nfunction getKeyword({ data, defaultValue, validate }) {\n  if (!data) {\n    return defaultValue;\n  }\n  data = data.trim();\n  if (validate(data)) {\n    return data;\n  }\n  return defaultValue;\n}\n\nfunction getStringOption(data, options) {\n  return getKeyword({\n    data,\n    defaultValue: options[0],\n    validate: k => options.includes(k),\n  });\n}\n\nfunction getMeasurement(str, def = \"0\") {\n  def ||= \"0\";\n  if (!str) {\n    return getMeasurement(def);\n  }\n  const match = str.trim().match(measurementPattern);\n  if (!match) {\n    return getMeasurement(def);\n  }\n  const [, valueStr, unit] = match;\n  const value = parseFloat(valueStr);\n  if (isNaN(value)) {\n    return getMeasurement(def);\n  }\n\n  if (value === 0) {\n    return 0;\n  }\n\n  const conv = dimConverters[unit];\n  if (conv) {\n    return conv(value);\n  }\n\n  return value;\n}\n\nfunction getRatio(data) {\n  if (!data) {\n    return { num: 1, den: 1 };\n  }\n  const ratio = data\n    .trim()\n    .split(/\\s*:\\s*/)\n    .map(x => parseFloat(x))\n    .filter(x => !isNaN(x));\n  if (ratio.length === 1) {\n    ratio.push(1);\n  }\n\n  if (ratio.length === 0) {\n    return { num: 1, den: 1 };\n  }\n\n  const [num, den] = ratio;\n  return { num, den };\n}\n\nfunction getRelevant(data) {\n  if (!data) {\n    return [];\n  }\n  return data\n    .trim()\n    .split(/\\s+/)\n    .map(e => {\n      return {\n        excluded: e[0] === \"-\",\n        viewname: e.substring(1),\n      };\n    });\n}\n\nfunction getColor(data, def = [0, 0, 0]) {\n  let [r, g, b] = def;\n  if (!data) {\n    return { r, g, b };\n  }\n  const color = data\n    .trim()\n    .split(/\\s*,\\s*/)\n    .map(c => Math.min(Math.max(0, parseInt(c.trim(), 10)), 255))\n    .map(c => (isNaN(c) ? 0 : c));\n\n  if (color.length < 3) {\n    return { r, g, b };\n  }\n\n  [r, g, b] = color;\n  return { r, g, b };\n}\n\nfunction getBBox(data) {\n  const def = -1;\n  if (!data) {\n    return { x: def, y: def, width: def, height: def };\n  }\n  const bbox = data\n    .trim()\n    .split(/\\s*,\\s*/)\n    .map(m => getMeasurement(m, \"-1\"));\n  if (bbox.length < 4 || bbox[2] < 0 || bbox[3] < 0) {\n    return { x: def, y: def, width: def, height: def };\n  }\n\n  const [x, y, width, height] = bbox;\n  return { x, y, width, height };\n}\n\nclass HTMLResult {\n  static get FAILURE() {\n    return shadow(this, \"FAILURE\", new HTMLResult(false, null, null, null));\n  }\n\n  static get EMPTY() {\n    return shadow(this, \"EMPTY\", new HTMLResult(true, null, null, null));\n  }\n\n  constructor(success, html, bbox, breakNode) {\n    this.success = success;\n    this.html = html;\n    this.bbox = bbox;\n    this.breakNode = breakNode;\n  }\n\n  isBreak() {\n    return !!this.breakNode;\n  }\n\n  static breakNode(node) {\n    return new HTMLResult(false, null, null, node);\n  }\n\n  static success(html, bbox = null) {\n    return new HTMLResult(true, html, bbox, null);\n  }\n}\n\nexport {\n  getBBox,\n  getColor,\n  getFloat,\n  getInteger,\n  getKeyword,\n  getMeasurement,\n  getRatio,\n  getRelevant,\n  getStringOption,\n  HTMLResult,\n  stripQuotes,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $globalData } from \"./symbol_utils.js\";\nimport { stripQuotes } from \"./utils.js\";\nimport { warn } from \"../../shared/util.js\";\n\nclass FontFinder {\n  constructor(pdfFonts) {\n    this.fonts = new Map();\n    this.cache = new Map();\n    this.warned = new Set();\n    this.defaultFont = null;\n    this.add(pdfFonts);\n  }\n\n  add(pdfFonts, reallyMissingFonts = null) {\n    for (const pdfFont of pdfFonts) {\n      this.addPdfFont(pdfFont);\n    }\n    for (const pdfFont of this.fonts.values()) {\n      if (!pdfFont.regular) {\n        pdfFont.regular = pdfFont.italic || pdfFont.bold || pdfFont.bolditalic;\n      }\n    }\n\n    if (!reallyMissingFonts || reallyMissingFonts.size === 0) {\n      return;\n    }\n    const myriad = this.fonts.get(\"PdfJS-Fallback-PdfJS-XFA\");\n    for (const missing of reallyMissingFonts) {\n      this.fonts.set(missing, myriad);\n    }\n  }\n\n  addPdfFont(pdfFont) {\n    const cssFontInfo = pdfFont.cssFontInfo;\n    const name = cssFontInfo.fontFamily;\n    let font = this.fonts.get(name);\n    if (!font) {\n      font = Object.create(null);\n      this.fonts.set(name, font);\n      if (!this.defaultFont) {\n        this.defaultFont = font;\n      }\n    }\n    let property = \"\";\n    const fontWeight = parseFloat(cssFontInfo.fontWeight);\n    if (parseFloat(cssFontInfo.italicAngle) !== 0) {\n      property = fontWeight >= 700 ? \"bolditalic\" : \"italic\";\n    } else if (fontWeight >= 700) {\n      property = \"bold\";\n    }\n\n    if (!property) {\n      if (pdfFont.name.includes(\"Bold\") || pdfFont.psName?.includes(\"Bold\")) {\n        property = \"bold\";\n      }\n      if (\n        pdfFont.name.includes(\"Italic\") ||\n        pdfFont.name.endsWith(\"It\") ||\n        pdfFont.psName?.includes(\"Italic\") ||\n        pdfFont.psName?.endsWith(\"It\")\n      ) {\n        property += \"italic\";\n      }\n    }\n\n    if (!property) {\n      property = \"regular\";\n    }\n\n    font[property] = pdfFont;\n  }\n\n  getDefault() {\n    return this.defaultFont;\n  }\n\n  find(fontName, mustWarn = true) {\n    let font = this.fonts.get(fontName) || this.cache.get(fontName);\n    if (font) {\n      return font;\n    }\n\n    const pattern = /,|-|_| |bolditalic|bold|italic|regular|it/gi;\n    let name = fontName.replaceAll(pattern, \"\");\n    font = this.fonts.get(name);\n    if (font) {\n      this.cache.set(fontName, font);\n      return font;\n    }\n    name = name.toLowerCase();\n\n    const maybe = [];\n    for (const [family, pdfFont] of this.fonts.entries()) {\n      if (family.replaceAll(pattern, \"\").toLowerCase().startsWith(name)) {\n        maybe.push(pdfFont);\n      }\n    }\n\n    if (maybe.length === 0) {\n      for (const [, pdfFont] of this.fonts.entries()) {\n        if (\n          pdfFont.regular.name\n            ?.replaceAll(pattern, \"\")\n            .toLowerCase()\n            .startsWith(name)\n        ) {\n          maybe.push(pdfFont);\n        }\n      }\n    }\n\n    if (maybe.length === 0) {\n      name = name.replaceAll(/psmt|mt/gi, \"\");\n      for (const [family, pdfFont] of this.fonts.entries()) {\n        if (family.replaceAll(pattern, \"\").toLowerCase().startsWith(name)) {\n          maybe.push(pdfFont);\n        }\n      }\n    }\n\n    if (maybe.length === 0) {\n      for (const pdfFont of this.fonts.values()) {\n        if (\n          pdfFont.regular.name\n            ?.replaceAll(pattern, \"\")\n            .toLowerCase()\n            .startsWith(name)\n        ) {\n          maybe.push(pdfFont);\n        }\n      }\n    }\n\n    if (maybe.length >= 1) {\n      if (maybe.length !== 1 && mustWarn) {\n        warn(`XFA - Too many choices to guess the correct font: ${fontName}`);\n      }\n      this.cache.set(fontName, maybe[0]);\n      return maybe[0];\n    }\n\n    if (mustWarn && !this.warned.has(fontName)) {\n      this.warned.add(fontName);\n      warn(`XFA - Cannot find the font: ${fontName}`);\n    }\n    return null;\n  }\n}\n\nfunction selectFont(xfaFont, typeface) {\n  if (xfaFont.posture === \"italic\") {\n    if (xfaFont.weight === \"bold\") {\n      return typeface.bolditalic;\n    }\n    return typeface.italic;\n  } else if (xfaFont.weight === \"bold\") {\n    return typeface.bold;\n  }\n\n  return typeface.regular;\n}\n\nfunction getMetrics(xfaFont, real = false) {\n  let pdfFont = null;\n  if (xfaFont) {\n    const name = stripQuotes(xfaFont.typeface);\n    const typeface = xfaFont[$globalData].fontFinder.find(name);\n    pdfFont = selectFont(xfaFont, typeface);\n  }\n\n  if (!pdfFont) {\n    return {\n      lineHeight: 12,\n      lineGap: 2,\n      lineNoGap: 10,\n    };\n  }\n\n  const size = xfaFont.size || 10;\n  const lineHeight = pdfFont.lineHeight\n    ? Math.max(real ? 0 : 1.2, pdfFont.lineHeight)\n    : 1.2;\n  const lineGap = pdfFont.lineGap === undefined ? 0.2 : pdfFont.lineGap;\n  return {\n    lineHeight: lineHeight * size,\n    lineGap: lineGap * size,\n    lineNoGap: Math.max(1, lineHeight - lineGap) * size,\n  };\n}\n\nexport { FontFinder, getMetrics, selectFont };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { selectFont } from \"./fonts.js\";\n\nconst WIDTH_FACTOR = 1.02;\n\nclass FontInfo {\n  constructor(xfaFont, margin, lineHeight, fontFinder) {\n    this.lineHeight = lineHeight;\n    this.paraMargin = margin || {\n      top: 0,\n      bottom: 0,\n      left: 0,\n      right: 0,\n    };\n\n    if (!xfaFont) {\n      [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n      return;\n    }\n\n    this.xfaFont = {\n      typeface: xfaFont.typeface,\n      posture: xfaFont.posture,\n      weight: xfaFont.weight,\n      size: xfaFont.size,\n      letterSpacing: xfaFont.letterSpacing,\n    };\n    const typeface = fontFinder.find(xfaFont.typeface);\n    if (!typeface) {\n      [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n      return;\n    }\n\n    this.pdfFont = selectFont(xfaFont, typeface);\n\n    if (!this.pdfFont) {\n      [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n    }\n  }\n\n  defaultFont(fontFinder) {\n    // TODO: Add a default font based on Liberation.\n    const font =\n      fontFinder.find(\"Helvetica\", false) ||\n      fontFinder.find(\"Myriad Pro\", false) ||\n      fontFinder.find(\"Arial\", false) ||\n      fontFinder.getDefault();\n    if (font?.regular) {\n      const pdfFont = font.regular;\n      const info = pdfFont.cssFontInfo;\n      const xfaFont = {\n        typeface: info.fontFamily,\n        posture: \"normal\",\n        weight: \"normal\",\n        size: 10,\n        letterSpacing: 0,\n      };\n      return [pdfFont, xfaFont];\n    }\n\n    const xfaFont = {\n      typeface: \"Courier\",\n      posture: \"normal\",\n      weight: \"normal\",\n      size: 10,\n      letterSpacing: 0,\n    };\n    return [null, xfaFont];\n  }\n}\n\nclass FontSelector {\n  constructor(\n    defaultXfaFont,\n    defaultParaMargin,\n    defaultLineHeight,\n    fontFinder\n  ) {\n    this.fontFinder = fontFinder;\n    this.stack = [\n      new FontInfo(\n        defaultXfaFont,\n        defaultParaMargin,\n        defaultLineHeight,\n        fontFinder\n      ),\n    ];\n  }\n\n  pushData(xfaFont, margin, lineHeight) {\n    const lastFont = this.stack.at(-1);\n    for (const name of [\n      \"typeface\",\n      \"posture\",\n      \"weight\",\n      \"size\",\n      \"letterSpacing\",\n    ]) {\n      if (!xfaFont[name]) {\n        xfaFont[name] = lastFont.xfaFont[name];\n      }\n    }\n\n    for (const name of [\"top\", \"bottom\", \"left\", \"right\"]) {\n      if (isNaN(margin[name])) {\n        margin[name] = lastFont.paraMargin[name];\n      }\n    }\n\n    const fontInfo = new FontInfo(\n      xfaFont,\n      margin,\n      lineHeight || lastFont.lineHeight,\n      this.fontFinder\n    );\n    if (!fontInfo.pdfFont) {\n      fontInfo.pdfFont = lastFont.pdfFont;\n    }\n\n    this.stack.push(fontInfo);\n  }\n\n  popFont() {\n    this.stack.pop();\n  }\n\n  topFont() {\n    return this.stack.at(-1);\n  }\n}\n\n/**\n * Compute a text area dimensions based on font metrics.\n */\nclass TextMeasure {\n  constructor(defaultXfaFont, defaultParaMargin, defaultLineHeight, fonts) {\n    this.glyphs = [];\n    this.fontSelector = new FontSelector(\n      defaultXfaFont,\n      defaultParaMargin,\n      defaultLineHeight,\n      fonts\n    );\n    this.extraHeight = 0;\n  }\n\n  pushData(xfaFont, margin, lineHeight) {\n    this.fontSelector.pushData(xfaFont, margin, lineHeight);\n  }\n\n  popFont(xfaFont) {\n    return this.fontSelector.popFont();\n  }\n\n  addPara() {\n    const lastFont = this.fontSelector.topFont();\n    this.extraHeight += lastFont.paraMargin.top + lastFont.paraMargin.bottom;\n  }\n\n  addString(str) {\n    if (!str) {\n      return;\n    }\n\n    const lastFont = this.fontSelector.topFont();\n    const fontSize = lastFont.xfaFont.size;\n    if (lastFont.pdfFont) {\n      const letterSpacing = lastFont.xfaFont.letterSpacing;\n      const pdfFont = lastFont.pdfFont;\n      const fontLineHeight = pdfFont.lineHeight || 1.2;\n      const lineHeight =\n        lastFont.lineHeight || Math.max(1.2, fontLineHeight) * fontSize;\n      const lineGap = pdfFont.lineGap === undefined ? 0.2 : pdfFont.lineGap;\n      const noGap = fontLineHeight - lineGap;\n      const firstLineHeight = Math.max(1, noGap) * fontSize;\n      const scale = fontSize / 1000;\n      const fallbackWidth =\n        pdfFont.defaultWidth || pdfFont.charsToGlyphs(\" \")[0].width;\n\n      for (const line of str.split(/[\\u2029\\n]/)) {\n        const encodedLine = pdfFont.encodeString(line).join(\"\");\n        const glyphs = pdfFont.charsToGlyphs(encodedLine);\n\n        for (const glyph of glyphs) {\n          const width = glyph.width || fallbackWidth;\n          this.glyphs.push([\n            width * scale + letterSpacing,\n            lineHeight,\n            firstLineHeight,\n            glyph.unicode,\n            false,\n          ]);\n        }\n\n        this.glyphs.push([0, 0, 0, \"\\n\", true]);\n      }\n      this.glyphs.pop();\n      return;\n    }\n\n    // When we have no font in the pdf, just use the font size as default width.\n    for (const line of str.split(/[\\u2029\\n]/)) {\n      for (const char of line.split(\"\")) {\n        this.glyphs.push([fontSize, 1.2 * fontSize, fontSize, char, false]);\n      }\n\n      this.glyphs.push([0, 0, 0, \"\\n\", true]);\n    }\n    this.glyphs.pop();\n  }\n\n  compute(maxWidth) {\n    let lastSpacePos = -1,\n      lastSpaceWidth = 0,\n      width = 0,\n      height = 0,\n      currentLineWidth = 0,\n      currentLineHeight = 0;\n    let isBroken = false;\n    let isFirstLine = true;\n\n    for (let i = 0, ii = this.glyphs.length; i < ii; i++) {\n      const [glyphWidth, lineHeight, firstLineHeight, char, isEOL] =\n        this.glyphs[i];\n      const isSpace = char === \" \";\n      const glyphHeight = isFirstLine ? firstLineHeight : lineHeight;\n      if (isEOL) {\n        width = Math.max(width, currentLineWidth);\n        currentLineWidth = 0;\n        height += currentLineHeight;\n        currentLineHeight = glyphHeight;\n        lastSpacePos = -1;\n        lastSpaceWidth = 0;\n        isFirstLine = false;\n        continue;\n      }\n\n      if (isSpace) {\n        if (currentLineWidth + glyphWidth > maxWidth) {\n          // We can break here but the space is not taken into account.\n          width = Math.max(width, currentLineWidth);\n          currentLineWidth = 0;\n          height += currentLineHeight;\n          currentLineHeight = glyphHeight;\n          lastSpacePos = -1;\n          lastSpaceWidth = 0;\n          isBroken = true;\n          isFirstLine = false;\n        } else {\n          currentLineHeight = Math.max(glyphHeight, currentLineHeight);\n          lastSpaceWidth = currentLineWidth;\n          currentLineWidth += glyphWidth;\n          lastSpacePos = i;\n        }\n        continue;\n      }\n\n      if (currentLineWidth + glyphWidth > maxWidth) {\n        // We must break to the last white position (if available)\n        height += currentLineHeight;\n        currentLineHeight = glyphHeight;\n        if (lastSpacePos !== -1) {\n          i = lastSpacePos;\n          width = Math.max(width, lastSpaceWidth);\n          currentLineWidth = 0;\n          lastSpacePos = -1;\n          lastSpaceWidth = 0;\n        } else {\n          // Just break in the middle of the word\n          width = Math.max(width, currentLineWidth);\n          currentLineWidth = glyphWidth;\n        }\n        isBroken = true;\n        isFirstLine = false;\n\n        continue;\n      }\n\n      currentLineWidth += glyphWidth;\n      currentLineHeight = Math.max(glyphHeight, currentLineHeight);\n    }\n\n    width = Math.max(width, currentLineWidth);\n    height += currentLineHeight + this.extraHeight;\n\n    return { width: WIDTH_FACTOR * width, height, isBroken };\n  }\n}\n\nexport { TextMeasure };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  $getChildren,\n  $getChildrenByClass,\n  $getChildrenByName,\n  $getParent,\n} from \"./symbol_utils.js\";\nimport { warn } from \"../../shared/util.js\";\n\nconst namePattern = /^[^.[]+/;\nconst indexPattern = /^[^\\]]+/;\nconst operators = {\n  dot: 0,\n  dotDot: 1,\n  dotHash: 2,\n  dotBracket: 3,\n  dotParen: 4,\n};\n\nconst shortcuts = new Map([\n  [\"$data\", (root, current) => (root.datasets ? root.datasets.data : root)],\n  [\n    \"$record\",\n    (root, current) =>\n      (root.datasets ? root.datasets.data : root)[$getChildren]()[0],\n  ],\n  [\"$template\", (root, current) => root.template],\n  [\"$connectionSet\", (root, current) => root.connectionSet],\n  [\"$form\", (root, current) => root.form],\n  [\"$layout\", (root, current) => root.layout],\n  [\"$host\", (root, current) => root.host],\n  [\"$dataWindow\", (root, current) => root.dataWindow],\n  [\"$event\", (root, current) => root.event],\n  [\"!\", (root, current) => root.datasets],\n  [\"$xfa\", (root, current) => root],\n  [\"xfa\", (root, current) => root],\n  [\"$\", (root, current) => current],\n]);\n\nconst somCache = new WeakMap();\n\nfunction parseIndex(index) {\n  index = index.trim();\n  if (index === \"*\") {\n    return Infinity;\n  }\n  return parseInt(index, 10) || 0;\n}\n\n// For now expressions containing .[...] or .(...) are not\n// evaluated so don't parse them.\n// TODO: implement that stuff and the remove the noExpr param.\nfunction parseExpression(expr, dotDotAllowed, noExpr = true) {\n  let match = expr.match(namePattern);\n  if (!match) {\n    return null;\n  }\n\n  let [name] = match;\n  const parsed = [\n    {\n      name,\n      cacheName: \".\" + name,\n      index: 0,\n      js: null,\n      formCalc: null,\n      operator: operators.dot,\n    },\n  ];\n\n  let pos = name.length;\n\n  while (pos < expr.length) {\n    const spos = pos;\n    const char = expr.charAt(pos++);\n    if (char === \"[\") {\n      match = expr.slice(pos).match(indexPattern);\n      if (!match) {\n        warn(\"XFA - Invalid index in SOM expression\");\n        return null;\n      }\n      parsed.at(-1).index = parseIndex(match[0]);\n      pos += match[0].length + 1;\n      continue;\n    }\n\n    let operator;\n    switch (expr.charAt(pos)) {\n      case \".\":\n        if (!dotDotAllowed) {\n          return null;\n        }\n        pos++;\n        operator = operators.dotDot;\n        break;\n      case \"#\":\n        pos++;\n        operator = operators.dotHash;\n        break;\n      case \"[\":\n        if (noExpr) {\n          warn(\n            \"XFA - SOM expression contains a FormCalc subexpression which is not supported for now.\"\n          );\n          return null;\n        }\n        // TODO: FormCalc expression so need to use the parser\n        operator = operators.dotBracket;\n        break;\n      case \"(\":\n        if (noExpr) {\n          warn(\n            \"XFA - SOM expression contains a JavaScript subexpression which is not supported for now.\"\n          );\n          return null;\n        }\n        // TODO:\n        // JavaScript expression: should be a boolean operation with a path\n        // so maybe we can have our own parser for that stuff or\n        // maybe use the formcalc one.\n        operator = operators.dotParen;\n        break;\n      default:\n        operator = operators.dot;\n        break;\n    }\n\n    match = expr.slice(pos).match(namePattern);\n    if (!match) {\n      break;\n    }\n\n    [name] = match;\n    pos += name.length;\n    parsed.push({\n      name,\n      cacheName: expr.slice(spos, pos),\n      operator,\n      index: 0,\n      js: null,\n      formCalc: null,\n    });\n  }\n  return parsed;\n}\n\nfunction searchNode(\n  root,\n  container,\n  expr,\n  dotDotAllowed = true,\n  useCache = true\n) {\n  const parsed = parseExpression(expr, dotDotAllowed);\n  if (!parsed) {\n    return null;\n  }\n\n  const fn = shortcuts.get(parsed[0].name);\n  let i = 0;\n  let isQualified;\n  if (fn) {\n    isQualified = true;\n    root = [fn(root, container)];\n    i = 1;\n  } else {\n    isQualified = container === null;\n    root = [container || root];\n  }\n\n  for (let ii = parsed.length; i < ii; i++) {\n    const { name, cacheName, operator, index } = parsed[i];\n    const nodes = [];\n    for (const node of root) {\n      if (!node.isXFAObject) {\n        continue;\n      }\n\n      let children, cached;\n\n      if (useCache) {\n        cached = somCache.get(node);\n        if (!cached) {\n          cached = new Map();\n          somCache.set(node, cached);\n        }\n        children = cached.get(cacheName);\n      }\n\n      if (!children) {\n        switch (operator) {\n          case operators.dot:\n            children = node[$getChildrenByName](name, false);\n            break;\n          case operators.dotDot:\n            children = node[$getChildrenByName](name, true);\n            break;\n          case operators.dotHash:\n            children = node[$getChildrenByClass](name);\n            children = children.isXFAObjectArray\n              ? children.children\n              : [children];\n            break;\n          default:\n            break;\n        }\n        if (useCache) {\n          cached.set(cacheName, children);\n        }\n      }\n\n      if (children.length > 0) {\n        nodes.push(children);\n      }\n    }\n\n    if (nodes.length === 0 && !isQualified && i === 0) {\n      // We've an unqualified expression and we didn't find anything\n      // so look at container and siblings of container and so on.\n      // http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.364.2157&rep=rep1&type=pdf#page=114\n      const parent = container[$getParent]();\n      container = parent;\n      if (!container) {\n        return null;\n      }\n      i = -1;\n      root = [container];\n      continue;\n    }\n\n    root = isFinite(index)\n      ? nodes.filter(node => index < node.length).map(node => node[index])\n      : nodes.flat();\n  }\n\n  if (root.length === 0) {\n    return null;\n  }\n\n  return root;\n}\n\nfunction createDataNode(root, container, expr) {\n  const parsed = parseExpression(expr);\n  if (!parsed) {\n    return null;\n  }\n\n  if (parsed.some(x => x.operator === operators.dotDot)) {\n    return null;\n  }\n\n  const fn = shortcuts.get(parsed[0].name);\n  let i = 0;\n  if (fn) {\n    root = fn(root, container);\n    i = 1;\n  } else {\n    root = container || root;\n  }\n\n  for (let ii = parsed.length; i < ii; i++) {\n    const { name, operator, index } = parsed[i];\n    if (!isFinite(index)) {\n      parsed[i].index = 0;\n      return root.createNodes(parsed.slice(i));\n    }\n\n    let children;\n    switch (operator) {\n      case operators.dot:\n        children = root[$getChildrenByName](name, false);\n        break;\n      case operators.dotDot:\n        children = root[$getChildrenByName](name, true);\n        break;\n      case operators.dotHash:\n        children = root[$getChildrenByClass](name);\n        children = children.isXFAObjectArray ? children.children : [children];\n        break;\n      default:\n        break;\n    }\n\n    if (children.length === 0) {\n      return root.createNodes(parsed.slice(i));\n    }\n\n    if (index < children.length) {\n      const child = children[index];\n      if (!child.isXFAObject) {\n        warn(`XFA - Cannot create a node.`);\n        return null;\n      }\n      root = child;\n    } else {\n      parsed[i].index = index - children.length;\n      return root.createNodes(parsed.slice(i));\n    }\n  }\n  return null;\n}\n\nexport { createDataNode, searchNode };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  $acceptWhitespace,\n  $addHTML,\n  $appendChild,\n  $childrenToHTML,\n  $clean,\n  $cleanup,\n  $clone,\n  $consumed,\n  $content,\n  $dump,\n  $extra,\n  $finalize,\n  $flushHTML,\n  $getAttributeIt,\n  $getAttributes,\n  $getAvailableSpace,\n  $getChildren,\n  $getChildrenByClass,\n  $getChildrenByName,\n  $getChildrenByNameIt,\n  $getContainedChildren,\n  $getDataValue,\n  $getParent,\n  $getRealChildrenByNameIt,\n  $getSubformParent,\n  $getTemplateRoot,\n  $globalData,\n  $hasSettableValue,\n  $indexOf,\n  $insertAt,\n  $isBindable,\n  $isCDATAXml,\n  $isDataValue,\n  $isDescendent,\n  $isNsAgnostic,\n  $isSplittable,\n  $isThereMoreWidth,\n  $isTransparent,\n  $lastAttribute,\n  $namespaceId,\n  $nodeName,\n  $nsAttributes,\n  $onChild,\n  $onChildCheck,\n  $onText,\n  $popPara,\n  $pushPara,\n  $removeChild,\n  $resolvePrototypes,\n  $root,\n  $setId,\n  $setSetAttributes,\n  $setValue,\n  $text,\n  $toHTML,\n  $toString,\n  $toStyle,\n  $uid,\n} from \"./symbol_utils.js\";\nimport { getInteger, getKeyword, HTMLResult } from \"./utils.js\";\nimport { shadow, utf8StringToString, warn } from \"../../shared/util.js\";\nimport { encodeToXmlString } from \"../core_utils.js\";\nimport { NamespaceIds } from \"./namespaces.js\";\nimport { searchNode } from \"./som.js\";\n\nconst _applyPrototype = Symbol();\nconst _attributes = Symbol();\nconst _attributeNames = Symbol();\nconst _children = Symbol(\"_children\");\nconst _cloneAttribute = Symbol();\nconst _dataValue = Symbol();\nconst _defaultValue = Symbol();\nconst _filteredChildrenGenerator = Symbol();\nconst _getPrototype = Symbol();\nconst _getUnsetAttributes = Symbol();\nconst _hasChildren = Symbol();\nconst _max = Symbol();\nconst _options = Symbol();\nconst _parent = Symbol(\"parent\");\nconst _resolvePrototypesHelper = Symbol();\nconst _setAttributes = Symbol();\nconst _validator = Symbol();\n\nlet uid = 0;\n\nconst NS_DATASETS = NamespaceIds.datasets.id;\n\nclass XFAObject {\n  constructor(nsId, name, hasChildren = false) {\n    this[$namespaceId] = nsId;\n    this[$nodeName] = name;\n    this[_hasChildren] = hasChildren;\n    this[_parent] = null;\n    this[_children] = [];\n    this[$uid] = `${name}${uid++}`;\n    this[$globalData] = null;\n  }\n\n  get isXFAObject() {\n    return true;\n  }\n\n  get isXFAObjectArray() {\n    return false;\n  }\n\n  createNodes(path) {\n    let root = this,\n      node = null;\n    for (const { name, index } of path) {\n      for (let i = 0, ii = isFinite(index) ? index : 0; i <= ii; i++) {\n        const nsId =\n          root[$namespaceId] === NS_DATASETS ? -1 : root[$namespaceId];\n        node = new XmlObject(nsId, name);\n        root[$appendChild](node);\n      }\n      root = node;\n    }\n    return node;\n  }\n\n  [$onChild](child) {\n    if (!this[_hasChildren] || !this[$onChildCheck](child)) {\n      return false;\n    }\n\n    const name = child[$nodeName];\n    const node = this[name];\n\n    if (node instanceof XFAObjectArray) {\n      if (node.push(child)) {\n        this[$appendChild](child);\n        return true;\n      }\n    } else {\n      // IRL it's possible to already have a node.\n      // So just replace it with the last version.\n      if (node !== null) {\n        this[$removeChild](node);\n      }\n      this[name] = child;\n      this[$appendChild](child);\n      return true;\n    }\n\n    let id = \"\";\n    if (this.id) {\n      id = ` (id: ${this.id})`;\n    } else if (this.name) {\n      id = ` (name: ${this.name} ${this.h.value})`;\n    }\n    warn(`XFA - node \"${this[$nodeName]}\"${id} has already enough \"${name}\"!`);\n    return false;\n  }\n\n  [$onChildCheck](child) {\n    return (\n      this.hasOwnProperty(child[$nodeName]) &&\n      child[$namespaceId] === this[$namespaceId]\n    );\n  }\n\n  [$isNsAgnostic]() {\n    return false;\n  }\n\n  [$acceptWhitespace]() {\n    return false;\n  }\n\n  [$isCDATAXml]() {\n    return false;\n  }\n\n  [$isBindable]() {\n    return false;\n  }\n\n  [$popPara]() {\n    if (this.para) {\n      this[$getTemplateRoot]()[$extra].paraStack.pop();\n    }\n  }\n\n  [$pushPara]() {\n    this[$getTemplateRoot]()[$extra].paraStack.push(this.para);\n  }\n\n  [$setId](ids) {\n    if (this.id && this[$namespaceId] === NamespaceIds.template.id) {\n      ids.set(this.id, this);\n    }\n  }\n\n  [$getTemplateRoot]() {\n    return this[$globalData].template;\n  }\n\n  [$isSplittable]() {\n    return false;\n  }\n\n  /**\n     Return true if this node (typically a container)\n     can provide more width during layout.\n     The goal is to help to know what a descendant must\n     do in case of horizontal overflow.\n   */\n  [$isThereMoreWidth]() {\n    return false;\n  }\n\n  [$appendChild](child) {\n    child[_parent] = this;\n    this[_children].push(child);\n    if (!child[$globalData] && this[$globalData]) {\n      child[$globalData] = this[$globalData];\n    }\n  }\n\n  [$removeChild](child) {\n    const i = this[_children].indexOf(child);\n    this[_children].splice(i, 1);\n  }\n\n  [$hasSettableValue]() {\n    return this.hasOwnProperty(\"value\");\n  }\n\n  [$setValue](_) {}\n\n  [$onText](_) {}\n\n  [$finalize]() {}\n\n  [$clean](builder) {\n    delete this[_hasChildren];\n    if (this[$cleanup]) {\n      builder.clean(this[$cleanup]);\n      delete this[$cleanup];\n    }\n  }\n\n  [$indexOf](child) {\n    return this[_children].indexOf(child);\n  }\n\n  [$insertAt](i, child) {\n    child[_parent] = this;\n    this[_children].splice(i, 0, child);\n    if (!child[$globalData] && this[$globalData]) {\n      child[$globalData] = this[$globalData];\n    }\n  }\n\n  /**\n   * If true the element is transparent when searching a node using\n   * a SOM expression which means that looking for \"foo.bar\" in\n   * <... name=\"foo\"><toto><titi><... name=\"bar\"></titi></toto>...\n   * is fine because toto and titi are transparent.\n   */\n  [$isTransparent]() {\n    return !this.name;\n  }\n\n  [$lastAttribute]() {\n    return \"\";\n  }\n\n  [$text]() {\n    if (this[_children].length === 0) {\n      return this[$content];\n    }\n    return this[_children].map(c => c[$text]()).join(\"\");\n  }\n\n  get [_attributeNames]() {\n    // Lazily get attributes names\n    const proto = Object.getPrototypeOf(this);\n    if (!proto._attributes) {\n      const attributes = (proto._attributes = new Set());\n      for (const name of Object.getOwnPropertyNames(this)) {\n        if (\n          this[name] === null ||\n          this[name] instanceof XFAObject ||\n          this[name] instanceof XFAObjectArray\n        ) {\n          break;\n        }\n        attributes.add(name);\n      }\n    }\n    return shadow(this, _attributeNames, proto._attributes);\n  }\n\n  [$isDescendent](parent) {\n    let node = this;\n    while (node) {\n      if (node === parent) {\n        return true;\n      }\n      node = node[$getParent]();\n    }\n    return false;\n  }\n\n  [$getParent]() {\n    return this[_parent];\n  }\n\n  [$getSubformParent]() {\n    return this[$getParent]();\n  }\n\n  [$getChildren](name = null) {\n    if (!name) {\n      return this[_children];\n    }\n\n    return this[name];\n  }\n\n  [$dump]() {\n    const dumped = Object.create(null);\n    if (this[$content]) {\n      dumped.$content = this[$content];\n    }\n\n    for (const name of Object.getOwnPropertyNames(this)) {\n      const value = this[name];\n      if (value === null) {\n        continue;\n      }\n      if (value instanceof XFAObject) {\n        dumped[name] = value[$dump]();\n      } else if (value instanceof XFAObjectArray) {\n        if (!value.isEmpty()) {\n          dumped[name] = value.dump();\n        }\n      } else {\n        dumped[name] = value;\n      }\n    }\n\n    return dumped;\n  }\n\n  [$toStyle]() {\n    return null;\n  }\n\n  [$toHTML]() {\n    return HTMLResult.EMPTY;\n  }\n\n  *[$getContainedChildren]() {\n    // This function is overriden in Subform and SubformSet.\n    for (const node of this[$getChildren]()) {\n      yield node;\n    }\n  }\n\n  *[_filteredChildrenGenerator](filter, include) {\n    for (const node of this[$getContainedChildren]()) {\n      if (!filter || include === filter.has(node[$nodeName])) {\n        const availableSpace = this[$getAvailableSpace]();\n        const res = node[$toHTML](availableSpace);\n        if (!res.success) {\n          this[$extra].failingNode = node;\n        }\n        yield res;\n      }\n    }\n  }\n\n  [$flushHTML]() {\n    return null;\n  }\n\n  [$addHTML](html, bbox) {\n    this[$extra].children.push(html);\n  }\n\n  [$getAvailableSpace]() {}\n\n  [$childrenToHTML]({ filter = null, include = true }) {\n    if (!this[$extra].generator) {\n      this[$extra].generator = this[_filteredChildrenGenerator](\n        filter,\n        include\n      );\n    } else {\n      const availableSpace = this[$getAvailableSpace]();\n      const res = this[$extra].failingNode[$toHTML](availableSpace);\n      if (!res.success) {\n        return res;\n      }\n      if (res.html) {\n        this[$addHTML](res.html, res.bbox);\n      }\n      delete this[$extra].failingNode;\n    }\n\n    while (true) {\n      const gen = this[$extra].generator.next();\n      if (gen.done) {\n        break;\n      }\n      const res = gen.value;\n      if (!res.success) {\n        return res;\n      }\n      if (res.html) {\n        this[$addHTML](res.html, res.bbox);\n      }\n    }\n\n    this[$extra].generator = null;\n\n    return HTMLResult.EMPTY;\n  }\n\n  [$setSetAttributes](attributes) {\n    // Just keep set attributes because it can be used in a proto.\n    this[_setAttributes] = new Set(Object.keys(attributes));\n  }\n\n  /**\n   * Get attribute names which have been set in the proto but not in this.\n   */\n  [_getUnsetAttributes](protoAttributes) {\n    const allAttr = this[_attributeNames];\n    const setAttr = this[_setAttributes];\n    return [...protoAttributes].filter(x => allAttr.has(x) && !setAttr.has(x));\n  }\n\n  /**\n   * Update the node with properties coming from a prototype and apply\n   * this function recursively to all children.\n   */\n  [$resolvePrototypes](ids, ancestors = new Set()) {\n    for (const child of this[_children]) {\n      child[_resolvePrototypesHelper](ids, ancestors);\n    }\n  }\n\n  [_resolvePrototypesHelper](ids, ancestors) {\n    const proto = this[_getPrototype](ids, ancestors);\n    if (proto) {\n      // _applyPrototype will apply $resolvePrototypes with correct ancestors\n      // to avoid infinite loop.\n      this[_applyPrototype](proto, ids, ancestors);\n    } else {\n      this[$resolvePrototypes](ids, ancestors);\n    }\n  }\n\n  [_getPrototype](ids, ancestors) {\n    const { use, usehref } = this;\n    if (!use && !usehref) {\n      return null;\n    }\n\n    let proto = null;\n    let somExpression = null;\n    let id = null;\n    let ref = use;\n\n    // If usehref and use are non-empty then use usehref.\n    if (usehref) {\n      ref = usehref;\n      // Href can be one of the following:\n      // - #ID\n      // - URI#ID\n      // - #som(expression)\n      // - URI#som(expression)\n      // - URI\n      // For now we don't handle URI other than \".\" (current document).\n      if (usehref.startsWith(\"#som(\") && usehref.endsWith(\")\")) {\n        somExpression = usehref.slice(\"#som(\".length, -1);\n      } else if (usehref.startsWith(\".#som(\") && usehref.endsWith(\")\")) {\n        somExpression = usehref.slice(\".#som(\".length, -1);\n      } else if (usehref.startsWith(\"#\")) {\n        id = usehref.slice(1);\n      } else if (usehref.startsWith(\".#\")) {\n        id = usehref.slice(2);\n      }\n    } else if (use.startsWith(\"#\")) {\n      id = use.slice(1);\n    } else {\n      somExpression = use;\n    }\n\n    this.use = this.usehref = \"\";\n    if (id) {\n      proto = ids.get(id);\n    } else {\n      proto = searchNode(\n        ids.get($root),\n        this,\n        somExpression,\n        true /* = dotDotAllowed */,\n        false /* = useCache */\n      );\n      if (proto) {\n        proto = proto[0];\n      }\n    }\n\n    if (!proto) {\n      warn(`XFA - Invalid prototype reference: ${ref}.`);\n      return null;\n    }\n\n    if (proto[$nodeName] !== this[$nodeName]) {\n      warn(\n        `XFA - Incompatible prototype: ${proto[$nodeName]} !== ${this[$nodeName]}.`\n      );\n      return null;\n    }\n\n    if (ancestors.has(proto)) {\n      // We've a cycle so break it.\n      warn(`XFA - Cycle detected in prototypes use.`);\n      return null;\n    }\n\n    ancestors.add(proto);\n\n    // The prototype can have a \"use\" attribute itself.\n    const protoProto = proto[_getPrototype](ids, ancestors);\n    if (protoProto) {\n      proto[_applyPrototype](protoProto, ids, ancestors);\n    }\n\n    // The prototype can have a child which itself has a \"use\" property.\n    proto[$resolvePrototypes](ids, ancestors);\n\n    ancestors.delete(proto);\n\n    return proto;\n  }\n\n  [_applyPrototype](proto, ids, ancestors) {\n    if (ancestors.has(proto)) {\n      // We've a cycle so break it.\n      warn(`XFA - Cycle detected in prototypes use.`);\n      return;\n    }\n\n    if (!this[$content] && proto[$content]) {\n      this[$content] = proto[$content];\n    }\n\n    const newAncestors = new Set(ancestors);\n    newAncestors.add(proto);\n\n    for (const unsetAttrName of this[_getUnsetAttributes](\n      proto[_setAttributes]\n    )) {\n      this[unsetAttrName] = proto[unsetAttrName];\n      if (this[_setAttributes]) {\n        this[_setAttributes].add(unsetAttrName);\n      }\n    }\n\n    for (const name of Object.getOwnPropertyNames(this)) {\n      if (this[_attributeNames].has(name)) {\n        continue;\n      }\n      const value = this[name];\n      const protoValue = proto[name];\n\n      if (value instanceof XFAObjectArray) {\n        for (const child of value[_children]) {\n          child[_resolvePrototypesHelper](ids, ancestors);\n        }\n\n        for (\n          let i = value[_children].length, ii = protoValue[_children].length;\n          i < ii;\n          i++\n        ) {\n          const child = proto[_children][i][$clone]();\n          if (value.push(child)) {\n            child[_parent] = this;\n            this[_children].push(child);\n            child[_resolvePrototypesHelper](ids, ancestors);\n          } else {\n            // No need to continue: other nodes will be rejected.\n            break;\n          }\n        }\n        continue;\n      }\n\n      if (value !== null) {\n        value[$resolvePrototypes](ids, ancestors);\n        if (protoValue) {\n          // protoValue must be treated as a prototype for value.\n          value[_applyPrototype](protoValue, ids, ancestors);\n        }\n        continue;\n      }\n\n      if (protoValue !== null) {\n        const child = protoValue[$clone]();\n        child[_parent] = this;\n        this[name] = child;\n        this[_children].push(child);\n        child[_resolvePrototypesHelper](ids, ancestors);\n      }\n    }\n  }\n\n  static [_cloneAttribute](obj) {\n    if (Array.isArray(obj)) {\n      return obj.map(x => XFAObject[_cloneAttribute](x));\n    }\n    if (typeof obj === \"object\" && obj !== null) {\n      return Object.assign({}, obj);\n    }\n    return obj;\n  }\n\n  [$clone]() {\n    const clone = Object.create(Object.getPrototypeOf(this));\n    for (const $symbol of Object.getOwnPropertySymbols(this)) {\n      try {\n        clone[$symbol] = this[$symbol];\n      } catch {\n        shadow(clone, $symbol, this[$symbol]);\n      }\n    }\n    clone[$uid] = `${clone[$nodeName]}${uid++}`;\n    clone[_children] = [];\n\n    for (const name of Object.getOwnPropertyNames(this)) {\n      if (this[_attributeNames].has(name)) {\n        clone[name] = XFAObject[_cloneAttribute](this[name]);\n        continue;\n      }\n      const value = this[name];\n      clone[name] =\n        value instanceof XFAObjectArray\n          ? new XFAObjectArray(value[_max])\n          : null;\n    }\n\n    for (const child of this[_children]) {\n      const name = child[$nodeName];\n      const clonedChild = child[$clone]();\n      clone[_children].push(clonedChild);\n      clonedChild[_parent] = clone;\n      if (clone[name] === null) {\n        clone[name] = clonedChild;\n      } else {\n        clone[name][_children].push(clonedChild);\n      }\n    }\n\n    return clone;\n  }\n\n  [$getChildren](name = null) {\n    if (!name) {\n      return this[_children];\n    }\n\n    return this[_children].filter(c => c[$nodeName] === name);\n  }\n\n  [$getChildrenByClass](name) {\n    return this[name];\n  }\n\n  [$getChildrenByName](name, allTransparent, first = true) {\n    return Array.from(this[$getChildrenByNameIt](name, allTransparent, first));\n  }\n\n  *[$getChildrenByNameIt](name, allTransparent, first = true) {\n    if (name === \"parent\") {\n      yield this[_parent];\n      return;\n    }\n\n    for (const child of this[_children]) {\n      if (child[$nodeName] === name) {\n        yield child;\n      }\n\n      if (child.name === name) {\n        yield child;\n      }\n\n      if (allTransparent || child[$isTransparent]()) {\n        yield* child[$getChildrenByNameIt](name, allTransparent, false);\n      }\n    }\n\n    if (first && this[_attributeNames].has(name)) {\n      yield new XFAAttribute(this, name, this[name]);\n    }\n  }\n}\n\nclass XFAObjectArray {\n  constructor(max = Infinity) {\n    this[_max] = max;\n    this[_children] = [];\n  }\n\n  get isXFAObject() {\n    return false;\n  }\n\n  get isXFAObjectArray() {\n    return true;\n  }\n\n  push(child) {\n    const len = this[_children].length;\n    if (len <= this[_max]) {\n      this[_children].push(child);\n      return true;\n    }\n    warn(\n      `XFA - node \"${child[$nodeName]}\" accepts no more than ${this[_max]} children`\n    );\n    return false;\n  }\n\n  isEmpty() {\n    return this[_children].length === 0;\n  }\n\n  dump() {\n    return this[_children].length === 1\n      ? this[_children][0][$dump]()\n      : this[_children].map(x => x[$dump]());\n  }\n\n  [$clone]() {\n    const clone = new XFAObjectArray(this[_max]);\n    clone[_children] = this[_children].map(c => c[$clone]());\n    return clone;\n  }\n\n  get children() {\n    return this[_children];\n  }\n\n  clear() {\n    this[_children].length = 0;\n  }\n}\n\nclass XFAAttribute {\n  constructor(node, name, value) {\n    this[_parent] = node;\n    this[$nodeName] = name;\n    this[$content] = value;\n    this[$consumed] = false;\n    this[$uid] = `attribute${uid++}`;\n  }\n\n  [$getParent]() {\n    return this[_parent];\n  }\n\n  [$isDataValue]() {\n    return true;\n  }\n\n  [$getDataValue]() {\n    return this[$content].trim();\n  }\n\n  [$setValue](value) {\n    value = value.value || \"\";\n    this[$content] = value.toString();\n  }\n\n  [$text]() {\n    return this[$content];\n  }\n\n  [$isDescendent](parent) {\n    return this[_parent] === parent || this[_parent][$isDescendent](parent);\n  }\n}\n\nclass XmlObject extends XFAObject {\n  constructor(nsId, name, attributes = {}) {\n    super(nsId, name);\n    this[$content] = \"\";\n    this[_dataValue] = null;\n    if (name !== \"#text\") {\n      const map = new Map();\n      this[_attributes] = map;\n      for (const [attrName, value] of Object.entries(attributes)) {\n        map.set(attrName, new XFAAttribute(this, attrName, value));\n      }\n      if (attributes.hasOwnProperty($nsAttributes)) {\n        // XFA attributes.\n        const dataNode = attributes[$nsAttributes].xfa.dataNode;\n        if (dataNode !== undefined) {\n          if (dataNode === \"dataGroup\") {\n            this[_dataValue] = false;\n          } else if (dataNode === \"dataValue\") {\n            this[_dataValue] = true;\n          }\n        }\n      }\n    }\n    this[$consumed] = false;\n  }\n\n  [$toString](buf) {\n    const tagName = this[$nodeName];\n    if (tagName === \"#text\") {\n      buf.push(encodeToXmlString(this[$content]));\n      return;\n    }\n    const utf8TagName = utf8StringToString(tagName);\n    const prefix = this[$namespaceId] === NS_DATASETS ? \"xfa:\" : \"\";\n    buf.push(`<${prefix}${utf8TagName}`);\n    for (const [name, value] of this[_attributes].entries()) {\n      const utf8Name = utf8StringToString(name);\n      buf.push(` ${utf8Name}=\"${encodeToXmlString(value[$content])}\"`);\n    }\n    if (this[_dataValue] !== null) {\n      if (this[_dataValue]) {\n        buf.push(` xfa:dataNode=\"dataValue\"`);\n      } else {\n        buf.push(` xfa:dataNode=\"dataGroup\"`);\n      }\n    }\n    if (!this[$content] && this[_children].length === 0) {\n      buf.push(\"/>\");\n      return;\n    }\n\n    buf.push(\">\");\n    if (this[$content]) {\n      if (typeof this[$content] === \"string\") {\n        buf.push(encodeToXmlString(this[$content]));\n      } else {\n        this[$content][$toString](buf);\n      }\n    } else {\n      for (const child of this[_children]) {\n        child[$toString](buf);\n      }\n    }\n    buf.push(`</${prefix}${utf8TagName}>`);\n  }\n\n  [$onChild](child) {\n    if (this[$content]) {\n      const node = new XmlObject(this[$namespaceId], \"#text\");\n      this[$appendChild](node);\n      node[$content] = this[$content];\n      this[$content] = \"\";\n    }\n    this[$appendChild](child);\n    return true;\n  }\n\n  [$onText](str) {\n    this[$content] += str;\n  }\n\n  [$finalize]() {\n    if (this[$content] && this[_children].length > 0) {\n      const node = new XmlObject(this[$namespaceId], \"#text\");\n      this[$appendChild](node);\n      node[$content] = this[$content];\n      delete this[$content];\n    }\n  }\n\n  [$toHTML]() {\n    if (this[$nodeName] === \"#text\") {\n      return HTMLResult.success({\n        name: \"#text\",\n        value: this[$content],\n      });\n    }\n\n    return HTMLResult.EMPTY;\n  }\n\n  [$getChildren](name = null) {\n    if (!name) {\n      return this[_children];\n    }\n\n    return this[_children].filter(c => c[$nodeName] === name);\n  }\n\n  [$getAttributes]() {\n    return this[_attributes];\n  }\n\n  [$getChildrenByClass](name) {\n    const value = this[_attributes].get(name);\n    if (value !== undefined) {\n      return value;\n    }\n    return this[$getChildren](name);\n  }\n\n  *[$getChildrenByNameIt](name, allTransparent) {\n    const value = this[_attributes].get(name);\n    if (value) {\n      yield value;\n    }\n\n    for (const child of this[_children]) {\n      if (child[$nodeName] === name) {\n        yield child;\n      }\n\n      if (allTransparent) {\n        yield* child[$getChildrenByNameIt](name, allTransparent);\n      }\n    }\n  }\n\n  *[$getAttributeIt](name, skipConsumed) {\n    const value = this[_attributes].get(name);\n    if (value && (!skipConsumed || !value[$consumed])) {\n      yield value;\n    }\n    for (const child of this[_children]) {\n      yield* child[$getAttributeIt](name, skipConsumed);\n    }\n  }\n\n  *[$getRealChildrenByNameIt](name, allTransparent, skipConsumed) {\n    for (const child of this[_children]) {\n      if (child[$nodeName] === name && (!skipConsumed || !child[$consumed])) {\n        yield child;\n      }\n\n      if (allTransparent) {\n        yield* child[$getRealChildrenByNameIt](\n          name,\n          allTransparent,\n          skipConsumed\n        );\n      }\n    }\n  }\n\n  [$isDataValue]() {\n    if (this[_dataValue] === null) {\n      return (\n        this[_children].length === 0 ||\n        this[_children][0][$namespaceId] === NamespaceIds.xhtml.id\n      );\n    }\n    return this[_dataValue];\n  }\n\n  [$getDataValue]() {\n    if (this[_dataValue] === null) {\n      if (this[_children].length === 0) {\n        return this[$content].trim();\n      }\n      if (this[_children][0][$namespaceId] === NamespaceIds.xhtml.id) {\n        return this[_children][0][$text]().trim();\n      }\n      return null;\n    }\n    return this[$content].trim();\n  }\n\n  [$setValue](value) {\n    value = value.value || \"\";\n    this[$content] = value.toString();\n  }\n\n  [$dump](hasNS = false) {\n    const dumped = Object.create(null);\n    if (hasNS) {\n      dumped.$ns = this[$namespaceId];\n    }\n    if (this[$content]) {\n      dumped.$content = this[$content];\n    }\n    dumped.$name = this[$nodeName];\n\n    dumped.children = [];\n    for (const child of this[_children]) {\n      dumped.children.push(child[$dump](hasNS));\n    }\n\n    dumped.attributes = Object.create(null);\n    for (const [name, value] of this[_attributes]) {\n      dumped.attributes[name] = value[$content];\n    }\n\n    return dumped;\n  }\n}\n\nclass ContentObject extends XFAObject {\n  constructor(nsId, name) {\n    super(nsId, name);\n    this[$content] = \"\";\n  }\n\n  [$onText](text) {\n    this[$content] += text;\n  }\n\n  [$finalize]() {}\n}\n\nclass OptionObject extends ContentObject {\n  constructor(nsId, name, options) {\n    super(nsId, name);\n    this[_options] = options;\n  }\n\n  [$finalize]() {\n    this[$content] = getKeyword({\n      data: this[$content],\n      defaultValue: this[_options][0],\n      validate: k => this[_options].includes(k),\n    });\n  }\n\n  [$clean](builder) {\n    super[$clean](builder);\n    delete this[_options];\n  }\n}\n\nclass StringObject extends ContentObject {\n  [$finalize]() {\n    this[$content] = this[$content].trim();\n  }\n}\n\nclass IntegerObject extends ContentObject {\n  constructor(nsId, name, defaultValue, validator) {\n    super(nsId, name);\n    this[_defaultValue] = defaultValue;\n    this[_validator] = validator;\n  }\n\n  [$finalize]() {\n    this[$content] = getInteger({\n      data: this[$content],\n      defaultValue: this[_defaultValue],\n      validate: this[_validator],\n    });\n  }\n\n  [$clean](builder) {\n    super[$clean](builder);\n    delete this[_defaultValue];\n    delete this[_validator];\n  }\n}\n\nclass Option01 extends IntegerObject {\n  constructor(nsId, name) {\n    super(nsId, name, 0, n => n === 1);\n  }\n}\n\nclass Option10 extends IntegerObject {\n  constructor(nsId, name) {\n    super(nsId, name, 1, n => n === 0);\n  }\n}\n\nexport {\n  ContentObject,\n  IntegerObject,\n  Option01,\n  Option10,\n  OptionObject,\n  StringObject,\n  XFAAttribute,\n  XFAObject,\n  XFAObjectArray,\n  XmlObject,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  $content,\n  $extra,\n  $getParent,\n  $getSubformParent,\n  $getTemplateRoot,\n  $globalData,\n  $nodeName,\n  $pushGlyphs,\n  $text,\n  $toStyle,\n} from \"./symbol_utils.js\";\nimport { createValidAbsoluteUrl, warn } from \"../../shared/util.js\";\nimport { getMeasurement, stripQuotes } from \"./utils.js\";\nimport { selectFont } from \"./fonts.js\";\nimport { TextMeasure } from \"./text.js\";\nimport { XFAObject } from \"./xfa_object.js\";\n\nfunction measureToString(m) {\n  if (typeof m === \"string\") {\n    return \"0px\";\n  }\n\n  return Number.isInteger(m) ? `${m}px` : `${m.toFixed(2)}px`;\n}\n\nconst converters = {\n  anchorType(node, style) {\n    const parent = node[$getSubformParent]();\n    if (!parent || (parent.layout && parent.layout !== \"position\")) {\n      // anchorType is only used in a positioned layout.\n      return;\n    }\n\n    if (!(\"transform\" in style)) {\n      style.transform = \"\";\n    }\n    switch (node.anchorType) {\n      case \"bottomCenter\":\n        style.transform += \"translate(-50%, -100%)\";\n        break;\n      case \"bottomLeft\":\n        style.transform += \"translate(0,-100%)\";\n        break;\n      case \"bottomRight\":\n        style.transform += \"translate(-100%,-100%)\";\n        break;\n      case \"middleCenter\":\n        style.transform += \"translate(-50%,-50%)\";\n        break;\n      case \"middleLeft\":\n        style.transform += \"translate(0,-50%)\";\n        break;\n      case \"middleRight\":\n        style.transform += \"translate(-100%,-50%)\";\n        break;\n      case \"topCenter\":\n        style.transform += \"translate(-50%,0)\";\n        break;\n      case \"topRight\":\n        style.transform += \"translate(-100%,0)\";\n        break;\n    }\n  },\n  dimensions(node, style) {\n    const parent = node[$getSubformParent]();\n    let width = node.w;\n    const height = node.h;\n    if (parent.layout?.includes(\"row\")) {\n      const extra = parent[$extra];\n      const colSpan = node.colSpan;\n      let w;\n      if (colSpan === -1) {\n        w = extra.columnWidths\n          .slice(extra.currentColumn)\n          .reduce((a, x) => a + x, 0);\n        extra.currentColumn = 0;\n      } else {\n        w = extra.columnWidths\n          .slice(extra.currentColumn, extra.currentColumn + colSpan)\n          .reduce((a, x) => a + x, 0);\n        extra.currentColumn =\n          (extra.currentColumn + node.colSpan) % extra.columnWidths.length;\n      }\n\n      if (!isNaN(w)) {\n        width = node.w = w;\n      }\n    }\n\n    style.width = width !== \"\" ? measureToString(width) : \"auto\";\n\n    style.height = height !== \"\" ? measureToString(height) : \"auto\";\n  },\n  position(node, style) {\n    const parent = node[$getSubformParent]();\n    if (parent?.layout && parent.layout !== \"position\") {\n      // IRL, we've some x/y in tb layout.\n      // Specs say x/y is only used in positioned layout.\n      return;\n    }\n\n    style.position = \"absolute\";\n    style.left = measureToString(node.x);\n    style.top = measureToString(node.y);\n  },\n  rotate(node, style) {\n    if (node.rotate) {\n      if (!(\"transform\" in style)) {\n        style.transform = \"\";\n      }\n      style.transform += `rotate(-${node.rotate}deg)`;\n      style.transformOrigin = \"top left\";\n    }\n  },\n  presence(node, style) {\n    switch (node.presence) {\n      case \"invisible\":\n        style.visibility = \"hidden\";\n        break;\n      case \"hidden\":\n      case \"inactive\":\n        style.display = \"none\";\n        break;\n    }\n  },\n  hAlign(node, style) {\n    if (node[$nodeName] === \"para\") {\n      switch (node.hAlign) {\n        case \"justifyAll\":\n          style.textAlign = \"justify-all\";\n          break;\n        case \"radix\":\n          // TODO: implement this correctly !\n          style.textAlign = \"left\";\n          break;\n        default:\n          style.textAlign = node.hAlign;\n      }\n    } else {\n      switch (node.hAlign) {\n        case \"left\":\n          style.alignSelf = \"start\";\n          break;\n        case \"center\":\n          style.alignSelf = \"center\";\n          break;\n        case \"right\":\n          style.alignSelf = \"end\";\n          break;\n      }\n    }\n  },\n  margin(node, style) {\n    if (node.margin) {\n      style.margin = node.margin[$toStyle]().margin;\n    }\n  },\n};\n\nfunction setMinMaxDimensions(node, style) {\n  const parent = node[$getSubformParent]();\n  if (parent.layout === \"position\") {\n    if (node.minW > 0) {\n      style.minWidth = measureToString(node.minW);\n    }\n    if (node.maxW > 0) {\n      style.maxWidth = measureToString(node.maxW);\n    }\n    if (node.minH > 0) {\n      style.minHeight = measureToString(node.minH);\n    }\n    if (node.maxH > 0) {\n      style.maxHeight = measureToString(node.maxH);\n    }\n  }\n}\n\nfunction layoutText(text, xfaFont, margin, lineHeight, fontFinder, width) {\n  const measure = new TextMeasure(xfaFont, margin, lineHeight, fontFinder);\n  if (typeof text === \"string\") {\n    measure.addString(text);\n  } else {\n    text[$pushGlyphs](measure);\n  }\n\n  return measure.compute(width);\n}\n\nfunction layoutNode(node, availableSpace) {\n  let height = null;\n  let width = null;\n  let isBroken = false;\n\n  if ((!node.w || !node.h) && node.value) {\n    let marginH = 0;\n    let marginV = 0;\n    if (node.margin) {\n      marginH = node.margin.leftInset + node.margin.rightInset;\n      marginV = node.margin.topInset + node.margin.bottomInset;\n    }\n\n    let lineHeight = null;\n    let margin = null;\n    if (node.para) {\n      margin = Object.create(null);\n      lineHeight = node.para.lineHeight === \"\" ? null : node.para.lineHeight;\n      margin.top = node.para.spaceAbove === \"\" ? 0 : node.para.spaceAbove;\n      margin.bottom = node.para.spaceBelow === \"\" ? 0 : node.para.spaceBelow;\n      margin.left = node.para.marginLeft === \"\" ? 0 : node.para.marginLeft;\n      margin.right = node.para.marginRight === \"\" ? 0 : node.para.marginRight;\n    }\n\n    let font = node.font;\n    if (!font) {\n      const root = node[$getTemplateRoot]();\n      let parent = node[$getParent]();\n      while (parent && parent !== root) {\n        if (parent.font) {\n          font = parent.font;\n          break;\n        }\n        parent = parent[$getParent]();\n      }\n    }\n\n    const maxWidth = (node.w || availableSpace.width) - marginH;\n    const fontFinder = node[$globalData].fontFinder;\n    if (\n      node.value.exData &&\n      node.value.exData[$content] &&\n      node.value.exData.contentType === \"text/html\"\n    ) {\n      const res = layoutText(\n        node.value.exData[$content],\n        font,\n        margin,\n        lineHeight,\n        fontFinder,\n        maxWidth\n      );\n      width = res.width;\n      height = res.height;\n      isBroken = res.isBroken;\n    } else {\n      const text = node.value[$text]();\n      if (text) {\n        const res = layoutText(\n          text,\n          font,\n          margin,\n          lineHeight,\n          fontFinder,\n          maxWidth\n        );\n        width = res.width;\n        height = res.height;\n        isBroken = res.isBroken;\n      }\n    }\n\n    if (width !== null && !node.w) {\n      width += marginH;\n    }\n\n    if (height !== null && !node.h) {\n      height += marginV;\n    }\n  }\n  return { w: width, h: height, isBroken };\n}\n\nfunction computeBbox(node, html, availableSpace) {\n  let bbox;\n  if (node.w !== \"\" && node.h !== \"\") {\n    bbox = [node.x, node.y, node.w, node.h];\n  } else {\n    if (!availableSpace) {\n      return null;\n    }\n    let width = node.w;\n    if (width === \"\") {\n      if (node.maxW === 0) {\n        const parent = node[$getSubformParent]();\n        width = parent.layout === \"position\" && parent.w !== \"\" ? 0 : node.minW;\n      } else {\n        width = Math.min(node.maxW, availableSpace.width);\n      }\n      html.attributes.style.width = measureToString(width);\n    }\n\n    let height = node.h;\n    if (height === \"\") {\n      if (node.maxH === 0) {\n        const parent = node[$getSubformParent]();\n        height =\n          parent.layout === \"position\" && parent.h !== \"\" ? 0 : node.minH;\n      } else {\n        height = Math.min(node.maxH, availableSpace.height);\n      }\n      html.attributes.style.height = measureToString(height);\n    }\n\n    bbox = [node.x, node.y, width, height];\n  }\n  return bbox;\n}\n\nfunction fixDimensions(node) {\n  const parent = node[$getSubformParent]();\n  if (parent.layout?.includes(\"row\")) {\n    const extra = parent[$extra];\n    const colSpan = node.colSpan;\n    let width;\n    if (colSpan === -1) {\n      width = extra.columnWidths\n        .slice(extra.currentColumn)\n        .reduce((a, w) => a + w, 0);\n    } else {\n      width = extra.columnWidths\n        .slice(extra.currentColumn, extra.currentColumn + colSpan)\n        .reduce((a, w) => a + w, 0);\n    }\n    if (!isNaN(width)) {\n      node.w = width;\n    }\n  }\n\n  if (parent.layout && parent.layout !== \"position\") {\n    // Useless in this context.\n    node.x = node.y = 0;\n  }\n\n  if (node.layout === \"table\") {\n    if (node.w === \"\" && Array.isArray(node.columnWidths)) {\n      node.w = node.columnWidths.reduce((a, x) => a + x, 0);\n    }\n  }\n}\n\nfunction layoutClass(node) {\n  switch (node.layout) {\n    case \"position\":\n      return \"xfaPosition\";\n    case \"lr-tb\":\n      return \"xfaLrTb\";\n    case \"rl-row\":\n      return \"xfaRlRow\";\n    case \"rl-tb\":\n      return \"xfaRlTb\";\n    case \"row\":\n      return \"xfaRow\";\n    case \"table\":\n      return \"xfaTable\";\n    case \"tb\":\n      return \"xfaTb\";\n    default:\n      return \"xfaPosition\";\n  }\n}\n\nfunction toStyle(node, ...names) {\n  const style = Object.create(null);\n  for (const name of names) {\n    const value = node[name];\n    if (value === null) {\n      continue;\n    }\n    if (converters.hasOwnProperty(name)) {\n      converters[name](node, style);\n      continue;\n    }\n\n    if (value instanceof XFAObject) {\n      const newStyle = value[$toStyle]();\n      if (newStyle) {\n        Object.assign(style, newStyle);\n      } else {\n        warn(`(DEBUG) - XFA - style for ${name} not implemented yet`);\n      }\n    }\n  }\n  return style;\n}\n\nfunction createWrapper(node, html) {\n  const { attributes } = html;\n  const { style } = attributes;\n\n  const wrapper = {\n    name: \"div\",\n    attributes: {\n      class: [\"xfaWrapper\"],\n      style: Object.create(null),\n    },\n    children: [],\n  };\n\n  attributes.class.push(\"xfaWrapped\");\n\n  if (node.border) {\n    const { widths, insets } = node.border[$extra];\n    let width, height;\n    let top = insets[0];\n    let left = insets[3];\n    const insetsH = insets[0] + insets[2];\n    const insetsW = insets[1] + insets[3];\n    switch (node.border.hand) {\n      case \"even\":\n        top -= widths[0] / 2;\n        left -= widths[3] / 2;\n        width = `calc(100% + ${(widths[1] + widths[3]) / 2 - insetsW}px)`;\n        height = `calc(100% + ${(widths[0] + widths[2]) / 2 - insetsH}px)`;\n        break;\n      case \"left\":\n        top -= widths[0];\n        left -= widths[3];\n        width = `calc(100% + ${widths[1] + widths[3] - insetsW}px)`;\n        height = `calc(100% + ${widths[0] + widths[2] - insetsH}px)`;\n        break;\n      case \"right\":\n        width = insetsW ? `calc(100% - ${insetsW}px)` : \"100%\";\n        height = insetsH ? `calc(100% - ${insetsH}px)` : \"100%\";\n        break;\n    }\n    const classNames = [\"xfaBorder\"];\n    if (isPrintOnly(node.border)) {\n      classNames.push(\"xfaPrintOnly\");\n    }\n\n    const border = {\n      name: \"div\",\n      attributes: {\n        class: classNames,\n        style: {\n          top: `${top}px`,\n          left: `${left}px`,\n          width,\n          height,\n        },\n      },\n      children: [],\n    };\n\n    for (const key of [\n      \"border\",\n      \"borderWidth\",\n      \"borderColor\",\n      \"borderRadius\",\n      \"borderStyle\",\n    ]) {\n      if (style[key] !== undefined) {\n        border.attributes.style[key] = style[key];\n        delete style[key];\n      }\n    }\n    wrapper.children.push(border, html);\n  } else {\n    wrapper.children.push(html);\n  }\n\n  for (const key of [\n    \"background\",\n    \"backgroundClip\",\n    \"top\",\n    \"left\",\n    \"width\",\n    \"height\",\n    \"minWidth\",\n    \"minHeight\",\n    \"maxWidth\",\n    \"maxHeight\",\n    \"transform\",\n    \"transformOrigin\",\n    \"visibility\",\n  ]) {\n    if (style[key] !== undefined) {\n      wrapper.attributes.style[key] = style[key];\n      delete style[key];\n    }\n  }\n\n  wrapper.attributes.style.position =\n    style.position === \"absolute\" ? \"absolute\" : \"relative\";\n  delete style.position;\n\n  if (style.alignSelf) {\n    wrapper.attributes.style.alignSelf = style.alignSelf;\n    delete style.alignSelf;\n  }\n\n  return wrapper;\n}\n\nfunction fixTextIndent(styles) {\n  const indent = getMeasurement(styles.textIndent, \"0px\");\n  if (indent >= 0) {\n    return;\n  }\n\n  // If indent is negative then it's a hanging indent.\n  const align = styles.textAlign === \"right\" ? \"right\" : \"left\";\n  const name = \"padding\" + (align === \"left\" ? \"Left\" : \"Right\");\n  const padding = getMeasurement(styles[name], \"0px\");\n  styles[name] = `${padding - indent}px`;\n}\n\nfunction setAccess(node, classNames) {\n  switch (node.access) {\n    case \"nonInteractive\":\n      classNames.push(\"xfaNonInteractive\");\n      break;\n    case \"readOnly\":\n      classNames.push(\"xfaReadOnly\");\n      break;\n    case \"protected\":\n      classNames.push(\"xfaDisabled\");\n      break;\n  }\n}\n\nfunction isPrintOnly(node) {\n  return (\n    node.relevant.length > 0 &&\n    !node.relevant[0].excluded &&\n    node.relevant[0].viewname === \"print\"\n  );\n}\n\nfunction getCurrentPara(node) {\n  const stack = node[$getTemplateRoot]()[$extra].paraStack;\n  return stack.length ? stack.at(-1) : null;\n}\n\nfunction setPara(node, nodeStyle, value) {\n  if (value.attributes.class?.includes(\"xfaRich\")) {\n    if (nodeStyle) {\n      if (node.h === \"\") {\n        nodeStyle.height = \"auto\";\n      }\n      if (node.w === \"\") {\n        nodeStyle.width = \"auto\";\n      }\n    }\n\n    const para = getCurrentPara(node);\n    if (para) {\n      // By definition exData are external data so para\n      // has no effect on it.\n      const valueStyle = value.attributes.style;\n      valueStyle.display = \"flex\";\n      valueStyle.flexDirection = \"column\";\n      switch (para.vAlign) {\n        case \"top\":\n          valueStyle.justifyContent = \"start\";\n          break;\n        case \"bottom\":\n          valueStyle.justifyContent = \"end\";\n          break;\n        case \"middle\":\n          valueStyle.justifyContent = \"center\";\n          break;\n      }\n\n      const paraStyle = para[$toStyle]();\n      for (const [key, val] of Object.entries(paraStyle)) {\n        if (!(key in valueStyle)) {\n          valueStyle[key] = val;\n        }\n      }\n    }\n  }\n}\n\nfunction setFontFamily(xfaFont, node, fontFinder, style) {\n  if (!fontFinder) {\n    // The font cannot be found in the pdf so use the default one.\n    delete style.fontFamily;\n    return;\n  }\n\n  const name = stripQuotes(xfaFont.typeface);\n  style.fontFamily = `\"${name}\"`;\n\n  const typeface = fontFinder.find(name);\n  if (typeface) {\n    const { fontFamily } = typeface.regular.cssFontInfo;\n    if (fontFamily !== name) {\n      style.fontFamily = `\"${fontFamily}\"`;\n    }\n\n    const para = getCurrentPara(node);\n    if (para && para.lineHeight !== \"\") {\n      return;\n    }\n\n    if (style.lineHeight) {\n      // Already something so don't overwrite.\n      return;\n    }\n\n    const pdfFont = selectFont(xfaFont, typeface);\n    if (pdfFont) {\n      style.lineHeight = Math.max(1.2, pdfFont.lineHeight);\n    }\n  }\n}\n\nfunction fixURL(str) {\n  const absoluteUrl = createValidAbsoluteUrl(str, /* baseUrl = */ null, {\n    addDefaultProtocol: true,\n    tryConvertEncoding: true,\n  });\n  return absoluteUrl ? absoluteUrl.href : null;\n}\n\nexport {\n  computeBbox,\n  createWrapper,\n  fixDimensions,\n  fixTextIndent,\n  fixURL,\n  isPrintOnly,\n  layoutClass,\n  layoutNode,\n  measureToString,\n  setAccess,\n  setFontFamily,\n  setMinMaxDimensions,\n  setPara,\n  toStyle,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  $extra,\n  $flushHTML,\n  $getSubformParent,\n  $getTemplateRoot,\n  $isSplittable,\n  $isThereMoreWidth,\n} from \"./symbol_utils.js\";\nimport { measureToString } from \"./html_utils.js\";\n\n// Subform and ExclGroup have a layout so they share these functions.\n\n/**\n * How layout works ?\n *\n * A container has an initial space (with a width and a height) to fit in,\n * which means that once all the children have been added then\n * the total width/height must be lower than the given ones in\n * the initial space.\n * So if the container has known dimensions and these ones are ok with the\n * space then continue else we return HTMLResult.FAILURE: it's up to the\n * parent to deal with this failure (e.g. if parent layout is lr-tb and\n * we fail to add a child at end of line (lr) then we try to add it on the\n * next line).\n * And then we run through the children, each child gets its initial space\n * in calling its parent $getAvailableSpace method\n * (see _filteredChildrenGenerator and $childrenToHTML in xfa_object.js)\n * then we try to layout child in its space. If everything is ok then we add\n * the result to its parent through $addHTML which will recompute the available\n * space in parent according to its layout property else we return\n * HTMLResult.Failure.\n * Before a failure some children may have been layed out: they've been saved in\n * [$extra].children and [$extra] has properties generator and failingNode\n * in order to save the state where we were before a failure.\n * This [$extra].children property is useful when a container has to be splited.\n * So if a container is unbreakable, we must delete its [$extra] property before\n * returning.\n */\n\nfunction createLine(node, children) {\n  return {\n    name: \"div\",\n    attributes: {\n      class: [node.layout === \"lr-tb\" ? \"xfaLr\" : \"xfaRl\"],\n    },\n    children,\n  };\n}\n\nfunction flushHTML(node) {\n  if (!node[$extra]) {\n    return null;\n  }\n\n  const attributes = node[$extra].attributes;\n  const html = {\n    name: \"div\",\n    attributes,\n    children: node[$extra].children,\n  };\n\n  if (node[$extra].failingNode) {\n    const htmlFromFailing = node[$extra].failingNode[$flushHTML]();\n    if (htmlFromFailing) {\n      if (node.layout.endsWith(\"-tb\")) {\n        html.children.push(createLine(node, [htmlFromFailing]));\n      } else {\n        html.children.push(htmlFromFailing);\n      }\n    }\n  }\n\n  if (html.children.length === 0) {\n    return null;\n  }\n\n  return html;\n}\n\nfunction addHTML(node, html, bbox) {\n  const extra = node[$extra];\n  const availableSpace = extra.availableSpace;\n\n  const [x, y, w, h] = bbox;\n  switch (node.layout) {\n    case \"position\": {\n      extra.width = Math.max(extra.width, x + w);\n      extra.height = Math.max(extra.height, y + h);\n      extra.children.push(html);\n      break;\n    }\n    case \"lr-tb\":\n    case \"rl-tb\":\n      if (!extra.line || extra.attempt === 1) {\n        extra.line = createLine(node, []);\n        extra.children.push(extra.line);\n        extra.numberInLine = 0;\n      }\n\n      extra.numberInLine += 1;\n      extra.line.children.push(html);\n\n      if (extra.attempt === 0) {\n        // Add the element on the line\n        extra.currentWidth += w;\n        extra.height = Math.max(extra.height, extra.prevHeight + h);\n      } else {\n        extra.currentWidth = w;\n        extra.prevHeight = extra.height;\n        extra.height += h;\n\n        // The element has been added on a new line so switch to line mode now.\n        extra.attempt = 0;\n      }\n      extra.width = Math.max(extra.width, extra.currentWidth);\n      break;\n    case \"rl-row\":\n    case \"row\": {\n      extra.children.push(html);\n      extra.width += w;\n      extra.height = Math.max(extra.height, h);\n      const height = measureToString(extra.height);\n      for (const child of extra.children) {\n        child.attributes.style.height = height;\n      }\n      break;\n    }\n    case \"table\": {\n      extra.width = Math.min(availableSpace.width, Math.max(extra.width, w));\n      extra.height += h;\n      extra.children.push(html);\n      break;\n    }\n    case \"tb\": {\n      // Even if the subform can possibly take all the available width,\n      // we must compute the final width as it is in order to be able\n      // for example to center the subform within its parent.\n      extra.width = Math.min(availableSpace.width, Math.max(extra.width, w));\n      extra.height += h;\n      extra.children.push(html);\n      break;\n    }\n  }\n}\n\nfunction getAvailableSpace(node) {\n  const availableSpace = node[$extra].availableSpace;\n  const marginV = node.margin\n    ? node.margin.topInset + node.margin.bottomInset\n    : 0;\n  const marginH = node.margin\n    ? node.margin.leftInset + node.margin.rightInset\n    : 0;\n\n  switch (node.layout) {\n    case \"lr-tb\":\n    case \"rl-tb\":\n      if (node[$extra].attempt === 0) {\n        return {\n          width: availableSpace.width - marginH - node[$extra].currentWidth,\n          height: availableSpace.height - marginV - node[$extra].prevHeight,\n        };\n      }\n      return {\n        width: availableSpace.width - marginH,\n        height: availableSpace.height - marginV - node[$extra].height,\n      };\n    case \"rl-row\":\n    case \"row\":\n      const width = node[$extra].columnWidths\n        .slice(node[$extra].currentColumn)\n        .reduce((a, x) => a + x);\n      return { width, height: availableSpace.height - marginH };\n    case \"table\":\n    case \"tb\":\n      return {\n        width: availableSpace.width - marginH,\n        height: availableSpace.height - marginV - node[$extra].height,\n      };\n    case \"position\":\n    default:\n      return availableSpace;\n  }\n}\n\nfunction getTransformedBBox(node) {\n  // Take into account rotation and anchor to get the real bounding box.\n  let w = node.w === \"\" ? NaN : node.w;\n  let h = node.h === \"\" ? NaN : node.h;\n  let [centerX, centerY] = [0, 0];\n  switch (node.anchorType || \"\") {\n    case \"bottomCenter\":\n      [centerX, centerY] = [w / 2, h];\n      break;\n    case \"bottomLeft\":\n      [centerX, centerY] = [0, h];\n      break;\n    case \"bottomRight\":\n      [centerX, centerY] = [w, h];\n      break;\n    case \"middleCenter\":\n      [centerX, centerY] = [w / 2, h / 2];\n      break;\n    case \"middleLeft\":\n      [centerX, centerY] = [0, h / 2];\n      break;\n    case \"middleRight\":\n      [centerX, centerY] = [w, h / 2];\n      break;\n    case \"topCenter\":\n      [centerX, centerY] = [w / 2, 0];\n      break;\n    case \"topRight\":\n      [centerX, centerY] = [w, 0];\n      break;\n  }\n\n  let x, y;\n  switch (node.rotate || 0) {\n    case 0:\n      [x, y] = [-centerX, -centerY];\n      break;\n    case 90:\n      [x, y] = [-centerY, centerX];\n      [w, h] = [h, -w];\n      break;\n    case 180:\n      [x, y] = [centerX, centerY];\n      [w, h] = [-w, -h];\n      break;\n    case 270:\n      [x, y] = [centerY, -centerX];\n      [w, h] = [-h, w];\n      break;\n  }\n\n  return [\n    node.x + x + Math.min(0, w),\n    node.y + y + Math.min(0, h),\n    Math.abs(w),\n    Math.abs(h),\n  ];\n}\n\n/**\n * Returning true means that the node will be layed out\n * else the layout will go to its next step (changing of line\n * in case of lr-tb or changing content area...).\n */\nfunction checkDimensions(node, space) {\n  if (node[$getTemplateRoot]()[$extra].firstUnsplittable === null) {\n    return true;\n  }\n\n  if (node.w === 0 || node.h === 0) {\n    return true;\n  }\n\n  const ERROR = 2;\n  const parent = node[$getSubformParent]();\n  const attempt = parent[$extra]?.attempt || 0;\n\n  const [, y, w, h] = getTransformedBBox(node);\n  switch (parent.layout) {\n    case \"lr-tb\":\n    case \"rl-tb\":\n      if (attempt === 0) {\n        // Try to put an element in the line.\n\n        if (!node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n          if (node.h !== \"\" && Math.round(h - space.height) > ERROR) {\n            // Not enough height.\n            return false;\n          }\n\n          if (node.w !== \"\") {\n            if (Math.round(w - space.width) <= ERROR) {\n              return true;\n            }\n            if (parent[$extra].numberInLine === 0) {\n              return space.height > ERROR;\n            }\n\n            return false;\n          }\n\n          return space.width > ERROR;\n        }\n\n        // No layout failure.\n\n        // Put the element on the line but we can fail\n        // and then in the second step (next line) we'll accept.\n        if (node.w !== \"\") {\n          return Math.round(w - space.width) <= ERROR;\n        }\n\n        return space.width > ERROR;\n      }\n\n      // Second attempt: try to put the element on the next line.\n\n      if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n        // We cannot fail.\n        return true;\n      }\n\n      if (node.h !== \"\" && Math.round(h - space.height) > ERROR) {\n        return false;\n      }\n\n      if (node.w === \"\" || Math.round(w - space.width) <= ERROR) {\n        return space.height > ERROR;\n      }\n\n      if (parent[$isThereMoreWidth]()) {\n        return false;\n      }\n\n      return space.height > ERROR;\n    case \"table\":\n    case \"tb\":\n      if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n        return true;\n      }\n\n      // If the node has a height then check if it's fine with available height.\n      // If the node is breakable then we can return true.\n      if (node.h !== \"\" && !node[$isSplittable]()) {\n        return Math.round(h - space.height) <= ERROR;\n      }\n      // Else wait and see: this node will be layed out itself\n      // in the provided space and maybe a children won't fit.\n\n      if (node.w === \"\" || Math.round(w - space.width) <= ERROR) {\n        return space.height > ERROR;\n      }\n\n      if (parent[$isThereMoreWidth]()) {\n        return false;\n      }\n\n      return space.height > ERROR;\n    case \"position\":\n      if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n        return true;\n      }\n\n      if (node.h === \"\" || Math.round(h + y - space.height) <= ERROR) {\n        return true;\n      }\n\n      const area = node[$getTemplateRoot]()[$extra].currentContentArea;\n      return h + y > area.h;\n    case \"rl-row\":\n    case \"row\":\n      if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n        return true;\n      }\n\n      if (node.h !== \"\") {\n        return Math.round(h - space.height) <= ERROR;\n      }\n      return true;\n    default:\n      // No layout, so accept everything.\n      return true;\n  }\n}\n\nexport { addHTML, checkDimensions, flushHTML, getAvailableSpace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  $acceptWhitespace,\n  $addHTML,\n  $appendChild,\n  $childrenToHTML,\n  $clean,\n  $cleanPage,\n  $content,\n  $data,\n  $extra,\n  $finalize,\n  $flushHTML,\n  $getAvailableSpace,\n  $getChildren,\n  $getContainedChildren,\n  $getExtra,\n  $getNextPage,\n  $getParent,\n  $getSubformParent,\n  $getTemplateRoot,\n  $globalData,\n  $hasSettableValue,\n  $ids,\n  $isBindable,\n  $isCDATAXml,\n  $isSplittable,\n  $isThereMoreWidth,\n  $isTransparent,\n  $isUsable,\n  $namespaceId,\n  $nodeName,\n  $onChild,\n  $onText,\n  $popPara,\n  $pushPara,\n  $removeChild,\n  $searchNode,\n  $setSetAttributes,\n  $setValue,\n  $tabIndex,\n  $text,\n  $toHTML,\n  $toPages,\n  $toStyle,\n  $uid,\n} from \"./symbol_utils.js\";\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n  addHTML,\n  checkDimensions,\n  flushHTML,\n  getAvailableSpace,\n} from \"./layout.js\";\nimport {\n  computeBbox,\n  createWrapper,\n  fixDimensions,\n  fixTextIndent,\n  fixURL,\n  isPrintOnly,\n  layoutClass,\n  layoutNode,\n  measureToString,\n  setAccess,\n  setFontFamily,\n  setMinMaxDimensions,\n  setPara,\n  toStyle,\n} from \"./html_utils.js\";\nimport {\n  ContentObject,\n  Option01,\n  OptionObject,\n  StringObject,\n  XFAObject,\n  XFAObjectArray,\n} from \"./xfa_object.js\";\nimport {\n  getBBox,\n  getColor,\n  getFloat,\n  getInteger,\n  getKeyword,\n  getMeasurement,\n  getRatio,\n  getRelevant,\n  getStringOption,\n  HTMLResult,\n} from \"./utils.js\";\nimport { stringToBytes, Util, warn } from \"../../shared/util.js\";\nimport { getMetrics } from \"./fonts.js\";\nimport { recoverJsURL } from \"../core_utils.js\";\nimport { searchNode } from \"./som.js\";\n\nconst TEMPLATE_NS_ID = NamespaceIds.template.id;\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\n// In case of lr-tb (and rl-tb) layouts, we try:\n//  - to put the container at the end of a line\n//  - and if it fails we try on the next line.\n// If both tries failed then it's up to the parent\n// to handle the situation.\nconst MAX_ATTEMPTS_FOR_LRTB_LAYOUT = 2;\n\n// It's possible to have a bug in the layout and so as\n// a consequence we could loop for ever in Template::toHTML()\n// so in order to avoid that (and avoid a OOM crash) we break\n// the loop after having MAX_EMPTY_PAGES empty pages.\nconst MAX_EMPTY_PAGES = 3;\n\n// Default value to start with for the tabIndex property.\nconst DEFAULT_TAB_INDEX = 5000;\n\nconst HEADING_PATTERN = /^H(\\d+)$/;\n\n// Allowed mime types for images\nconst MIMES = new Set([\n  \"image/gif\",\n  \"image/jpeg\",\n  \"image/jpg\",\n  \"image/pjpeg\",\n  \"image/png\",\n  \"image/apng\",\n  \"image/x-png\",\n  \"image/bmp\",\n  \"image/x-ms-bmp\",\n  \"image/tiff\",\n  \"image/tif\",\n  \"application/octet-stream\",\n]);\n\nconst IMAGES_HEADERS = [\n  [[0x42, 0x4d], \"image/bmp\"],\n  [[0xff, 0xd8, 0xff], \"image/jpeg\"],\n  [[0x49, 0x49, 0x2a, 0x00], \"image/tiff\"],\n  [[0x4d, 0x4d, 0x00, 0x2a], \"image/tiff\"],\n  [[0x47, 0x49, 0x46, 0x38, 0x39, 0x61], \"image/gif\"],\n  [[0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a], \"image/png\"],\n];\n\nfunction getBorderDims(node) {\n  if (!node || !node.border) {\n    return { w: 0, h: 0 };\n  }\n\n  const borderExtra = node.border[$getExtra]();\n  if (!borderExtra) {\n    return { w: 0, h: 0 };\n  }\n\n  return {\n    w:\n      borderExtra.widths[0] +\n      borderExtra.widths[2] +\n      borderExtra.insets[0] +\n      borderExtra.insets[2],\n    h:\n      borderExtra.widths[1] +\n      borderExtra.widths[3] +\n      borderExtra.insets[1] +\n      borderExtra.insets[3],\n  };\n}\n\nfunction hasMargin(node) {\n  return (\n    node.margin &&\n    (node.margin.topInset ||\n      node.margin.rightInset ||\n      node.margin.bottomInset ||\n      node.margin.leftInset)\n  );\n}\n\nfunction _setValue(templateNode, value) {\n  if (!templateNode.value) {\n    const nodeValue = new Value({});\n    templateNode[$appendChild](nodeValue);\n    templateNode.value = nodeValue;\n  }\n  templateNode.value[$setValue](value);\n}\n\nfunction* getContainedChildren(node) {\n  for (const child of node[$getChildren]()) {\n    if (child instanceof SubformSet) {\n      yield* child[$getContainedChildren]();\n      continue;\n    }\n    yield child;\n  }\n}\n\nfunction isRequired(node) {\n  return node.validate?.nullTest === \"error\";\n}\n\nfunction setTabIndex(node) {\n  while (node) {\n    if (!node.traversal) {\n      node[$tabIndex] = node[$getParent]()[$tabIndex];\n      return;\n    }\n\n    if (node[$tabIndex]) {\n      return;\n    }\n\n    let next = null;\n    for (const child of node.traversal[$getChildren]()) {\n      if (child.operation === \"next\") {\n        next = child;\n        break;\n      }\n    }\n\n    if (!next || !next.ref) {\n      node[$tabIndex] = node[$getParent]()[$tabIndex];\n      return;\n    }\n\n    const root = node[$getTemplateRoot]();\n    node[$tabIndex] = ++root[$tabIndex];\n\n    const ref = root[$searchNode](next.ref, node);\n    if (!ref) {\n      return;\n    }\n\n    node = ref[0];\n  }\n}\n\nfunction applyAssist(obj, attributes) {\n  const assist = obj.assist;\n  if (assist) {\n    const assistTitle = assist[$toHTML]();\n    if (assistTitle) {\n      attributes.title = assistTitle;\n    }\n    const role = assist.role;\n    const match = role.match(HEADING_PATTERN);\n    if (match) {\n      const ariaRole = \"heading\";\n      const ariaLevel = match[1];\n      attributes.role = ariaRole;\n      attributes[\"aria-level\"] = ariaLevel;\n    }\n  }\n  // XXX: We could end up in a situation where the obj has a heading role and\n  // is also a table. For now prioritize the table role.\n  if (obj.layout === \"table\") {\n    attributes.role = \"table\";\n  } else if (obj.layout === \"row\") {\n    attributes.role = \"row\";\n  } else {\n    const parent = obj[$getParent]();\n    if (parent.layout === \"row\") {\n      attributes.role = parent.assist?.role === \"TH\" ? \"columnheader\" : \"cell\";\n    }\n  }\n}\n\nfunction ariaLabel(obj) {\n  if (!obj.assist) {\n    return null;\n  }\n  const assist = obj.assist;\n  if (assist.speak && assist.speak[$content] !== \"\") {\n    return assist.speak[$content];\n  }\n  if (assist.toolTip) {\n    return assist.toolTip[$content];\n  }\n  // TODO: support finding the related caption element. See xfa_bug1718037.pdf\n  // for an example.\n  return null;\n}\n\nfunction valueToHtml(value) {\n  return HTMLResult.success({\n    name: \"div\",\n    attributes: {\n      class: [\"xfaRich\"],\n      style: Object.create(null),\n    },\n    children: [\n      {\n        name: \"span\",\n        attributes: {\n          style: Object.create(null),\n        },\n        value,\n      },\n    ],\n  });\n}\n\nfunction setFirstUnsplittable(node) {\n  const root = node[$getTemplateRoot]();\n  if (root[$extra].firstUnsplittable === null) {\n    root[$extra].firstUnsplittable = node;\n    root[$extra].noLayoutFailure = true;\n  }\n}\n\nfunction unsetFirstUnsplittable(node) {\n  const root = node[$getTemplateRoot]();\n  if (root[$extra].firstUnsplittable === node) {\n    root[$extra].noLayoutFailure = false;\n  }\n}\n\nfunction handleBreak(node) {\n  if (node[$extra]) {\n    return false;\n  }\n\n  node[$extra] = Object.create(null);\n\n  if (node.targetType === \"auto\") {\n    return false;\n  }\n\n  const root = node[$getTemplateRoot]();\n  let target = null;\n  if (node.target) {\n    target = root[$searchNode](node.target, node[$getParent]());\n    if (!target) {\n      return false;\n    }\n    target = target[0];\n  }\n\n  const { currentPageArea, currentContentArea } = root[$extra];\n\n  if (node.targetType === \"pageArea\") {\n    if (!(target instanceof PageArea)) {\n      target = null;\n    }\n\n    if (node.startNew) {\n      node[$extra].target = target || currentPageArea;\n      return true;\n    } else if (target && target !== currentPageArea) {\n      node[$extra].target = target;\n      return true;\n    }\n\n    return false;\n  }\n\n  if (!(target instanceof ContentArea)) {\n    target = null;\n  }\n\n  const pageArea = target && target[$getParent]();\n\n  let index;\n  let nextPageArea = pageArea;\n  if (node.startNew) {\n    // startNew === 1 so we must create a new container (pageArea or\n    // contentArea).\n    if (target) {\n      const contentAreas = pageArea.contentArea.children;\n      const indexForCurrent = contentAreas.indexOf(currentContentArea);\n      const indexForTarget = contentAreas.indexOf(target);\n      if (indexForCurrent !== -1 && indexForCurrent < indexForTarget) {\n        // The next container is after the current container so\n        // we can stay on the same page.\n        nextPageArea = null;\n      }\n      index = indexForTarget - 1;\n    } else {\n      index = currentPageArea.contentArea.children.indexOf(currentContentArea);\n    }\n  } else if (target && target !== currentContentArea) {\n    const contentAreas = pageArea.contentArea.children;\n    index = contentAreas.indexOf(target) - 1;\n    nextPageArea = pageArea === currentPageArea ? null : pageArea;\n  } else {\n    return false;\n  }\n\n  node[$extra].target = nextPageArea;\n  node[$extra].index = index;\n  return true;\n}\n\nfunction handleOverflow(node, extraNode, space) {\n  const root = node[$getTemplateRoot]();\n  const saved = root[$extra].noLayoutFailure;\n  const savedMethod = extraNode[$getSubformParent];\n\n  // Replace $getSubformParent to emulate that extraNode is just\n  // under node.\n  extraNode[$getSubformParent] = () => node;\n\n  root[$extra].noLayoutFailure = true;\n  const res = extraNode[$toHTML](space);\n  node[$addHTML](res.html, res.bbox);\n  root[$extra].noLayoutFailure = saved;\n  extraNode[$getSubformParent] = savedMethod;\n}\n\nclass AppearanceFilter extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"appearanceFilter\");\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass Arc extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"arc\", /* hasChildren = */ true);\n    this.circular = getInteger({\n      data: attributes.circular,\n      defaultValue: 0,\n      validate: x => x === 1,\n    });\n    this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.startAngle = getFloat({\n      data: attributes.startAngle,\n      defaultValue: 0,\n      validate: x => true,\n    });\n    this.sweepAngle = getFloat({\n      data: attributes.sweepAngle,\n      defaultValue: 360,\n      validate: x => true,\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.edge = null;\n    this.fill = null;\n  }\n\n  [$toHTML]() {\n    const edge = this.edge || new Edge({});\n    const edgeStyle = edge[$toStyle]();\n    const style = Object.create(null);\n    if (this.fill?.presence === \"visible\") {\n      Object.assign(style, this.fill[$toStyle]());\n    } else {\n      style.fill = \"transparent\";\n    }\n    style.strokeWidth = measureToString(\n      edge.presence === \"visible\" ? edge.thickness : 0\n    );\n    style.stroke = edgeStyle.color;\n    let arc;\n    const attributes = {\n      xmlns: SVG_NS,\n      style: {\n        width: \"100%\",\n        height: \"100%\",\n        overflow: \"visible\",\n      },\n    };\n\n    if (this.sweepAngle === 360) {\n      arc = {\n        name: \"ellipse\",\n        attributes: {\n          xmlns: SVG_NS,\n          cx: \"50%\",\n          cy: \"50%\",\n          rx: \"50%\",\n          ry: \"50%\",\n          style,\n        },\n      };\n    } else {\n      const startAngle = (this.startAngle * Math.PI) / 180;\n      const sweepAngle = (this.sweepAngle * Math.PI) / 180;\n      const largeArc = this.sweepAngle > 180 ? 1 : 0;\n      const [x1, y1, x2, y2] = [\n        50 * (1 + Math.cos(startAngle)),\n        50 * (1 - Math.sin(startAngle)),\n        50 * (1 + Math.cos(startAngle + sweepAngle)),\n        50 * (1 - Math.sin(startAngle + sweepAngle)),\n      ];\n\n      arc = {\n        name: \"path\",\n        attributes: {\n          xmlns: SVG_NS,\n          d: `M ${x1} ${y1} A 50 50 0 ${largeArc} 0 ${x2} ${y2}`,\n          vectorEffect: \"non-scaling-stroke\",\n          style,\n        },\n      };\n\n      Object.assign(attributes, {\n        viewBox: \"0 0 100 100\",\n        preserveAspectRatio: \"none\",\n      });\n    }\n\n    const svg = {\n      name: \"svg\",\n      children: [arc],\n      attributes,\n    };\n\n    const parent = this[$getParent]()[$getParent]();\n    if (hasMargin(parent)) {\n      return HTMLResult.success({\n        name: \"div\",\n        attributes: {\n          style: {\n            display: \"inline\",\n            width: \"100%\",\n            height: \"100%\",\n          },\n        },\n        children: [svg],\n      });\n    }\n\n    svg.attributes.style.position = \"absolute\";\n    return HTMLResult.success(svg);\n  }\n}\n\nclass Area extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"area\", /* hasChildren = */ true);\n    this.colSpan = getInteger({\n      data: attributes.colSpan,\n      defaultValue: 1,\n      validate: n => n >= 1 || n === -1,\n    });\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.relevant = getRelevant(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.x = getMeasurement(attributes.x, \"0pt\");\n    this.y = getMeasurement(attributes.y, \"0pt\");\n    this.desc = null;\n    this.extras = null;\n    this.area = new XFAObjectArray();\n    this.draw = new XFAObjectArray();\n    this.exObject = new XFAObjectArray();\n    this.exclGroup = new XFAObjectArray();\n    this.field = new XFAObjectArray();\n    this.subform = new XFAObjectArray();\n    this.subformSet = new XFAObjectArray();\n  }\n\n  *[$getContainedChildren]() {\n    // This function is overriden in order to fake that subforms under\n    // this set are in fact under parent subform.\n    yield* getContainedChildren(this);\n  }\n\n  [$isTransparent]() {\n    return true;\n  }\n\n  [$isBindable]() {\n    return true;\n  }\n\n  [$addHTML](html, bbox) {\n    const [x, y, w, h] = bbox;\n    this[$extra].width = Math.max(this[$extra].width, x + w);\n    this[$extra].height = Math.max(this[$extra].height, y + h);\n\n    this[$extra].children.push(html);\n  }\n\n  [$getAvailableSpace]() {\n    return this[$extra].availableSpace;\n  }\n\n  [$toHTML](availableSpace) {\n    // TODO: incomplete.\n    const style = toStyle(this, \"position\");\n    const attributes = {\n      style,\n      id: this[$uid],\n      class: [\"xfaArea\"],\n    };\n\n    if (isPrintOnly(this)) {\n      attributes.class.push(\"xfaPrintOnly\");\n    }\n\n    if (this.name) {\n      attributes.xfaName = this.name;\n    }\n\n    const children = [];\n    this[$extra] = {\n      children,\n      width: 0,\n      height: 0,\n      availableSpace,\n    };\n\n    const result = this[$childrenToHTML]({\n      filter: new Set([\n        \"area\",\n        \"draw\",\n        \"field\",\n        \"exclGroup\",\n        \"subform\",\n        \"subformSet\",\n      ]),\n      include: true,\n    });\n\n    if (!result.success) {\n      if (result.isBreak()) {\n        return result;\n      }\n      // Nothing to propose for the element which doesn't fit the\n      // available space.\n      delete this[$extra];\n      return HTMLResult.FAILURE;\n    }\n\n    style.width = measureToString(this[$extra].width);\n    style.height = measureToString(this[$extra].height);\n\n    const html = {\n      name: \"div\",\n      attributes,\n      children,\n    };\n\n    const bbox = [this.x, this.y, this[$extra].width, this[$extra].height];\n    delete this[$extra];\n\n    return HTMLResult.success(html, bbox);\n  }\n}\n\nclass Assist extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"assist\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.role = attributes.role || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.speak = null;\n    this.toolTip = null;\n  }\n\n  [$toHTML]() {\n    return this.toolTip?.[$content] || null;\n  }\n}\n\nclass Barcode extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"barcode\", /* hasChildren = */ true);\n    this.charEncoding = getKeyword({\n      data: attributes.charEncoding\n        ? attributes.charEncoding.toLowerCase()\n        : \"\",\n      defaultValue: \"\",\n      validate: k =>\n        [\n          \"utf-8\",\n          \"big-five\",\n          \"fontspecific\",\n          \"gbk\",\n          \"gb-18030\",\n          \"gb-2312\",\n          \"ksc-5601\",\n          \"none\",\n          \"shift-jis\",\n          \"ucs-2\",\n          \"utf-16\",\n        ].includes(k) || k.match(/iso-8859-\\d{2}/),\n    });\n    this.checksum = getStringOption(attributes.checksum, [\n      \"none\",\n      \"1mod10\",\n      \"1mod10_1mod11\",\n      \"2mod10\",\n      \"auto\",\n    ]);\n    this.dataColumnCount = getInteger({\n      data: attributes.dataColumnCount,\n      defaultValue: -1,\n      validate: x => x >= 0,\n    });\n    this.dataLength = getInteger({\n      data: attributes.dataLength,\n      defaultValue: -1,\n      validate: x => x >= 0,\n    });\n    this.dataPrep = getStringOption(attributes.dataPrep, [\n      \"none\",\n      \"flateCompress\",\n    ]);\n    this.dataRowCount = getInteger({\n      data: attributes.dataRowCount,\n      defaultValue: -1,\n      validate: x => x >= 0,\n    });\n    this.endChar = attributes.endChar || \"\";\n    this.errorCorrectionLevel = getInteger({\n      data: attributes.errorCorrectionLevel,\n      defaultValue: -1,\n      validate: x => x >= 0 && x <= 8,\n    });\n    this.id = attributes.id || \"\";\n    this.moduleHeight = getMeasurement(attributes.moduleHeight, \"5mm\");\n    this.moduleWidth = getMeasurement(attributes.moduleWidth, \"0.25mm\");\n    this.printCheckDigit = getInteger({\n      data: attributes.printCheckDigit,\n      defaultValue: 0,\n      validate: x => x === 1,\n    });\n    this.rowColumnRatio = getRatio(attributes.rowColumnRatio);\n    this.startChar = attributes.startChar || \"\";\n    this.textLocation = getStringOption(attributes.textLocation, [\n      \"below\",\n      \"above\",\n      \"aboveEmbedded\",\n      \"belowEmbedded\",\n      \"none\",\n    ]);\n    this.truncate = getInteger({\n      data: attributes.truncate,\n      defaultValue: 0,\n      validate: x => x === 1,\n    });\n    this.type = getStringOption(\n      attributes.type ? attributes.type.toLowerCase() : \"\",\n      [\n        \"aztec\",\n        \"codabar\",\n        \"code2of5industrial\",\n        \"code2of5interleaved\",\n        \"code2of5matrix\",\n        \"code2of5standard\",\n        \"code3of9\",\n        \"code3of9extended\",\n        \"code11\",\n        \"code49\",\n        \"code93\",\n        \"code128\",\n        \"code128a\",\n        \"code128b\",\n        \"code128c\",\n        \"code128sscc\",\n        \"datamatrix\",\n        \"ean8\",\n        \"ean8add2\",\n        \"ean8add5\",\n        \"ean13\",\n        \"ean13add2\",\n        \"ean13add5\",\n        \"ean13pwcd\",\n        \"fim\",\n        \"logmars\",\n        \"maxicode\",\n        \"msi\",\n        \"pdf417\",\n        \"pdf417macro\",\n        \"plessey\",\n        \"postauscust2\",\n        \"postauscust3\",\n        \"postausreplypaid\",\n        \"postausstandard\",\n        \"postukrm4scc\",\n        \"postusdpbc\",\n        \"postusimb\",\n        \"postusstandard\",\n        \"postus5zip\",\n        \"qrcode\",\n        \"rfid\",\n        \"rss14\",\n        \"rss14expanded\",\n        \"rss14limited\",\n        \"rss14stacked\",\n        \"rss14stackedomni\",\n        \"rss14truncated\",\n        \"telepen\",\n        \"ucc128\",\n        \"ucc128random\",\n        \"ucc128sscc\",\n        \"upca\",\n        \"upcaadd2\",\n        \"upcaadd5\",\n        \"upcapwcd\",\n        \"upce\",\n        \"upceadd2\",\n        \"upceadd5\",\n        \"upcean2\",\n        \"upcean5\",\n        \"upsmaxicode\",\n      ]\n    );\n    this.upsMode = getStringOption(attributes.upsMode, [\n      \"usCarrier\",\n      \"internationalCarrier\",\n      \"secureSymbol\",\n      \"standardSymbol\",\n    ]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.wideNarrowRatio = getRatio(attributes.wideNarrowRatio);\n    this.encrypt = null;\n    this.extras = null;\n  }\n}\n\nclass Bind extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"bind\", /* hasChildren = */ true);\n    this.match = getStringOption(attributes.match, [\n      \"once\",\n      \"dataRef\",\n      \"global\",\n      \"none\",\n    ]);\n    this.ref = attributes.ref || \"\";\n    this.picture = null;\n  }\n}\n\nclass BindItems extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"bindItems\");\n    this.connection = attributes.connection || \"\";\n    this.labelRef = attributes.labelRef || \"\";\n    this.ref = attributes.ref || \"\";\n    this.valueRef = attributes.valueRef || \"\";\n  }\n}\n\nclass Bookend extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"bookend\");\n    this.id = attributes.id || \"\";\n    this.leader = attributes.leader || \"\";\n    this.trailer = attributes.trailer || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass BooleanElement extends Option01 {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"boolean\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [$toHTML](availableSpace) {\n    return valueToHtml(this[$content] === 1 ? \"1\" : \"0\");\n  }\n}\n\nclass Border extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"border\", /* hasChildren = */ true);\n    this.break = getStringOption(attributes.break, [\"close\", \"open\"]);\n    this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.presence = getStringOption(attributes.presence, [\n      \"visible\",\n      \"hidden\",\n      \"inactive\",\n      \"invisible\",\n    ]);\n    this.relevant = getRelevant(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.corner = new XFAObjectArray(4);\n    this.edge = new XFAObjectArray(4);\n    this.extras = null;\n    this.fill = null;\n    this.margin = null;\n  }\n\n  [$getExtra]() {\n    if (!this[$extra]) {\n      const edges = this.edge.children.slice();\n      if (edges.length < 4) {\n        const defaultEdge = edges.at(-1) || new Edge({});\n        for (let i = edges.length; i < 4; i++) {\n          edges.push(defaultEdge);\n        }\n      }\n\n      const widths = edges.map(edge => edge.thickness);\n      const insets = [0, 0, 0, 0];\n      if (this.margin) {\n        insets[0] = this.margin.topInset;\n        insets[1] = this.margin.rightInset;\n        insets[2] = this.margin.bottomInset;\n        insets[3] = this.margin.leftInset;\n      }\n      this[$extra] = { widths, insets, edges };\n    }\n    return this[$extra];\n  }\n\n  [$toStyle]() {\n    // TODO: incomplete (hand).\n    const { edges } = this[$getExtra]();\n    const edgeStyles = edges.map(node => {\n      const style = node[$toStyle]();\n      style.color ||= \"#000000\";\n      return style;\n    });\n\n    const style = Object.create(null);\n    if (this.margin) {\n      Object.assign(style, this.margin[$toStyle]());\n    }\n\n    if (this.fill?.presence === \"visible\") {\n      Object.assign(style, this.fill[$toStyle]());\n    }\n\n    if (this.corner.children.some(node => node.radius !== 0)) {\n      const cornerStyles = this.corner.children.map(node => node[$toStyle]());\n      if (cornerStyles.length === 2 || cornerStyles.length === 3) {\n        const last = cornerStyles.at(-1);\n        for (let i = cornerStyles.length; i < 4; i++) {\n          cornerStyles.push(last);\n        }\n      }\n\n      style.borderRadius = cornerStyles.map(s => s.radius).join(\" \");\n    }\n\n    switch (this.presence) {\n      case \"invisible\":\n      case \"hidden\":\n        style.borderStyle = \"\";\n        break;\n      case \"inactive\":\n        style.borderStyle = \"none\";\n        break;\n      default:\n        style.borderStyle = edgeStyles.map(s => s.style).join(\" \");\n        break;\n    }\n\n    style.borderWidth = edgeStyles.map(s => s.width).join(\" \");\n    style.borderColor = edgeStyles.map(s => s.color).join(\" \");\n\n    return style;\n  }\n}\n\nclass Break extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"break\", /* hasChildren = */ true);\n    this.after = getStringOption(attributes.after, [\n      \"auto\",\n      \"contentArea\",\n      \"pageArea\",\n      \"pageEven\",\n      \"pageOdd\",\n    ]);\n    this.afterTarget = attributes.afterTarget || \"\";\n    this.before = getStringOption(attributes.before, [\n      \"auto\",\n      \"contentArea\",\n      \"pageArea\",\n      \"pageEven\",\n      \"pageOdd\",\n    ]);\n    this.beforeTarget = attributes.beforeTarget || \"\";\n    this.bookendLeader = attributes.bookendLeader || \"\";\n    this.bookendTrailer = attributes.bookendTrailer || \"\";\n    this.id = attributes.id || \"\";\n    this.overflowLeader = attributes.overflowLeader || \"\";\n    this.overflowTarget = attributes.overflowTarget || \"\";\n    this.overflowTrailer = attributes.overflowTrailer || \"\";\n    this.startNew = getInteger({\n      data: attributes.startNew,\n      defaultValue: 0,\n      validate: x => x === 1,\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n}\n\nclass BreakAfter extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"breakAfter\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.leader = attributes.leader || \"\";\n    this.startNew = getInteger({\n      data: attributes.startNew,\n      defaultValue: 0,\n      validate: x => x === 1,\n    });\n    this.target = attributes.target || \"\";\n    this.targetType = getStringOption(attributes.targetType, [\n      \"auto\",\n      \"contentArea\",\n      \"pageArea\",\n    ]);\n    this.trailer = attributes.trailer || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.script = null;\n  }\n}\n\nclass BreakBefore extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"breakBefore\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.leader = attributes.leader || \"\";\n    this.startNew = getInteger({\n      data: attributes.startNew,\n      defaultValue: 0,\n      validate: x => x === 1,\n    });\n    this.target = attributes.target || \"\";\n    this.targetType = getStringOption(attributes.targetType, [\n      \"auto\",\n      \"contentArea\",\n      \"pageArea\",\n    ]);\n    this.trailer = attributes.trailer || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.script = null;\n  }\n\n  [$toHTML](availableSpace) {\n    this[$extra] = {};\n    return HTMLResult.FAILURE;\n  }\n}\n\nclass Button extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"button\", /* hasChildren = */ true);\n    this.highlight = getStringOption(attributes.highlight, [\n      \"inverted\",\n      \"none\",\n      \"outline\",\n      \"push\",\n    ]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n\n  [$toHTML](availableSpace) {\n    // TODO: highlight.\n\n    const parent = this[$getParent]();\n    const grandpa = parent[$getParent]();\n    const htmlButton = {\n      name: \"button\",\n      attributes: {\n        id: this[$uid],\n        class: [\"xfaButton\"],\n        style: {},\n      },\n      children: [],\n    };\n\n    for (const event of grandpa.event.children) {\n      // if (true) break;\n      if (event.activity !== \"click\" || !event.script) {\n        continue;\n      }\n      const jsURL = recoverJsURL(event.script[$content]);\n      if (!jsURL) {\n        continue;\n      }\n      const href = fixURL(jsURL.url);\n      if (!href) {\n        continue;\n      }\n\n      // we've an url so generate a <a>\n      htmlButton.children.push({\n        name: \"a\",\n        attributes: {\n          id: \"link\" + this[$uid],\n          href,\n          newWindow: jsURL.newWindow,\n          class: [\"xfaLink\"],\n          style: {},\n        },\n        children: [],\n      });\n    }\n\n    return HTMLResult.success(htmlButton);\n  }\n}\n\nclass Calculate extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"calculate\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.override = getStringOption(attributes.override, [\n      \"disabled\",\n      \"error\",\n      \"ignore\",\n      \"warning\",\n    ]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.message = null;\n    this.script = null;\n  }\n}\n\nclass Caption extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"caption\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.placement = getStringOption(attributes.placement, [\n      \"left\",\n      \"bottom\",\n      \"inline\",\n      \"right\",\n      \"top\",\n    ]);\n    this.presence = getStringOption(attributes.presence, [\n      \"visible\",\n      \"hidden\",\n      \"inactive\",\n      \"invisible\",\n    ]);\n    this.reserve = Math.ceil(getMeasurement(attributes.reserve));\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.font = null;\n    this.margin = null;\n    this.para = null;\n    this.value = null;\n  }\n\n  [$setValue](value) {\n    _setValue(this, value);\n  }\n\n  [$getExtra](availableSpace) {\n    if (!this[$extra]) {\n      let { width, height } = availableSpace;\n      switch (this.placement) {\n        case \"left\":\n        case \"right\":\n        case \"inline\":\n          width = this.reserve <= 0 ? width : this.reserve;\n          break;\n        case \"top\":\n        case \"bottom\":\n          height = this.reserve <= 0 ? height : this.reserve;\n          break;\n      }\n\n      this[$extra] = layoutNode(this, { width, height });\n    }\n    return this[$extra];\n  }\n\n  [$toHTML](availableSpace) {\n    // TODO: incomplete.\n    if (!this.value) {\n      return HTMLResult.EMPTY;\n    }\n\n    this[$pushPara]();\n    const value = this.value[$toHTML](availableSpace).html;\n\n    if (!value) {\n      this[$popPara]();\n      return HTMLResult.EMPTY;\n    }\n\n    const savedReserve = this.reserve;\n    if (this.reserve <= 0) {\n      const { w, h } = this[$getExtra](availableSpace);\n      switch (this.placement) {\n        case \"left\":\n        case \"right\":\n        case \"inline\":\n          this.reserve = w;\n          break;\n        case \"top\":\n        case \"bottom\":\n          this.reserve = h;\n          break;\n      }\n    }\n\n    const children = [];\n    if (typeof value === \"string\") {\n      children.push({\n        name: \"#text\",\n        value,\n      });\n    } else {\n      children.push(value);\n    }\n\n    const style = toStyle(this, \"font\", \"margin\", \"visibility\");\n    switch (this.placement) {\n      case \"left\":\n      case \"right\":\n        if (this.reserve > 0) {\n          style.width = measureToString(this.reserve);\n        }\n        break;\n      case \"top\":\n      case \"bottom\":\n        if (this.reserve > 0) {\n          style.height = measureToString(this.reserve);\n        }\n        break;\n    }\n\n    setPara(this, null, value);\n    this[$popPara]();\n\n    this.reserve = savedReserve;\n\n    return HTMLResult.success({\n      name: \"div\",\n      attributes: {\n        style,\n        class: [\"xfaCaption\"],\n      },\n      children,\n    });\n  }\n}\n\nclass Certificate extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"certificate\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass Certificates extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"certificates\", /* hasChildren = */ true);\n    this.credentialServerPolicy = getStringOption(\n      attributes.credentialServerPolicy,\n      [\"optional\", \"required\"]\n    );\n    this.id = attributes.id || \"\";\n    this.url = attributes.url || \"\";\n    this.urlPolicy = attributes.urlPolicy || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.encryption = null;\n    this.issuers = null;\n    this.keyUsage = null;\n    this.oids = null;\n    this.signing = null;\n    this.subjectDNs = null;\n  }\n}\n\nclass CheckButton extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"checkButton\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.mark = getStringOption(attributes.mark, [\n      \"default\",\n      \"check\",\n      \"circle\",\n      \"cross\",\n      \"diamond\",\n      \"square\",\n      \"star\",\n    ]);\n    this.shape = getStringOption(attributes.shape, [\"square\", \"round\"]);\n    this.size = getMeasurement(attributes.size, \"10pt\");\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.extras = null;\n    this.margin = null;\n  }\n\n  [$toHTML](availableSpace) {\n    // TODO: border, shape and mark.\n\n    const style = toStyle(\"margin\");\n    const size = measureToString(this.size);\n\n    style.width = style.height = size;\n\n    let type;\n    let className;\n    let groupId;\n    const field = this[$getParent]()[$getParent]();\n    const items =\n      (field.items.children.length &&\n        field.items.children[0][$toHTML]().html) ||\n      [];\n    const exportedValue = {\n      on: (items[0] !== undefined ? items[0] : \"on\").toString(),\n      off: (items[1] !== undefined ? items[1] : \"off\").toString(),\n    };\n\n    const value = field.value?.[$text]() || \"off\";\n    const checked = value === exportedValue.on || undefined;\n    const container = field[$getSubformParent]();\n    const fieldId = field[$uid];\n    let dataId;\n\n    if (container instanceof ExclGroup) {\n      groupId = container[$uid];\n      type = \"radio\";\n      className = \"xfaRadio\";\n      dataId = container[$data]?.[$uid] || container[$uid];\n    } else {\n      type = \"checkbox\";\n      className = \"xfaCheckbox\";\n      dataId = field[$data]?.[$uid] || field[$uid];\n    }\n\n    const input = {\n      name: \"input\",\n      attributes: {\n        class: [className],\n        style,\n        fieldId,\n        dataId,\n        type,\n        checked,\n        xfaOn: exportedValue.on,\n        xfaOff: exportedValue.off,\n        \"aria-label\": ariaLabel(field),\n        \"aria-required\": false,\n      },\n    };\n\n    if (groupId) {\n      input.attributes.name = groupId;\n    }\n\n    if (isRequired(field)) {\n      input.attributes[\"aria-required\"] = true;\n      input.attributes.required = true;\n    }\n\n    return HTMLResult.success({\n      name: \"label\",\n      attributes: {\n        class: [\"xfaLabel\"],\n      },\n      children: [input],\n    });\n  }\n}\n\nclass ChoiceList extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"choiceList\", /* hasChildren = */ true);\n    this.commitOn = getStringOption(attributes.commitOn, [\"select\", \"exit\"]);\n    this.id = attributes.id || \"\";\n    this.open = getStringOption(attributes.open, [\n      \"userControl\",\n      \"always\",\n      \"multiSelect\",\n      \"onEntry\",\n    ]);\n    this.textEntry = getInteger({\n      data: attributes.textEntry,\n      defaultValue: 0,\n      validate: x => x === 1,\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.extras = null;\n    this.margin = null;\n  }\n\n  [$toHTML](availableSpace) {\n    // TODO: incomplete.\n    const style = toStyle(this, \"border\", \"margin\");\n    const ui = this[$getParent]();\n    const field = ui[$getParent]();\n    const fontSize = field.font?.size || 10;\n    const optionStyle = {\n      fontSize: `calc(${fontSize}px * var(--scale-factor))`,\n    };\n    const children = [];\n\n    if (field.items.children.length > 0) {\n      const items = field.items;\n      let displayedIndex = 0;\n      let saveIndex = 0;\n      if (items.children.length === 2) {\n        displayedIndex = items.children[0].save;\n        saveIndex = 1 - displayedIndex;\n      }\n      const displayed = items.children[displayedIndex][$toHTML]().html;\n      const values = items.children[saveIndex][$toHTML]().html;\n\n      let selected = false;\n      const value = field.value?.[$text]() || \"\";\n      for (let i = 0, ii = displayed.length; i < ii; i++) {\n        const option = {\n          name: \"option\",\n          attributes: {\n            value: values[i] || displayed[i],\n            style: optionStyle,\n          },\n          value: displayed[i],\n        };\n        if (values[i] === value) {\n          option.attributes.selected = selected = true;\n        }\n        children.push(option);\n      }\n\n      if (!selected) {\n        children.splice(0, 0, {\n          name: \"option\",\n          attributes: {\n            hidden: true,\n            selected: true,\n          },\n          value: \" \",\n        });\n      }\n    }\n\n    const selectAttributes = {\n      class: [\"xfaSelect\"],\n      fieldId: field[$uid],\n      dataId: field[$data]?.[$uid] || field[$uid],\n      style,\n      \"aria-label\": ariaLabel(field),\n      \"aria-required\": false,\n    };\n\n    if (isRequired(field)) {\n      selectAttributes[\"aria-required\"] = true;\n      selectAttributes.required = true;\n    }\n\n    if (this.open === \"multiSelect\") {\n      selectAttributes.multiple = true;\n    }\n\n    return HTMLResult.success({\n      name: \"label\",\n      attributes: {\n        class: [\"xfaLabel\"],\n      },\n      children: [\n        {\n          name: \"select\",\n          children,\n          attributes: selectAttributes,\n        },\n      ],\n    });\n  }\n}\n\nclass Color extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"color\", /* hasChildren = */ true);\n    this.cSpace = getStringOption(attributes.cSpace, [\"SRGB\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.value = attributes.value ? getColor(attributes.value) : \"\";\n    this.extras = null;\n  }\n\n  [$hasSettableValue]() {\n    return false;\n  }\n\n  [$toStyle]() {\n    return this.value\n      ? Util.makeHexColor(this.value.r, this.value.g, this.value.b)\n      : null;\n  }\n}\n\nclass Comb extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"comb\");\n    this.id = attributes.id || \"\";\n    this.numberOfCells = getInteger({\n      data: attributes.numberOfCells,\n      defaultValue: 0,\n      validate: x => x >= 0,\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass Connect extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"connect\", /* hasChildren = */ true);\n    this.connection = attributes.connection || \"\";\n    this.id = attributes.id || \"\";\n    this.ref = attributes.ref || \"\";\n    this.usage = getStringOption(attributes.usage, [\n      \"exportAndImport\",\n      \"exportOnly\",\n      \"importOnly\",\n    ]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.picture = null;\n  }\n}\n\nclass ContentArea extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"contentArea\", /* hasChildren = */ true);\n    this.h = getMeasurement(attributes.h);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.relevant = getRelevant(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.w = getMeasurement(attributes.w);\n    this.x = getMeasurement(attributes.x, \"0pt\");\n    this.y = getMeasurement(attributes.y, \"0pt\");\n    this.desc = null;\n    this.extras = null;\n  }\n\n  [$toHTML](availableSpace) {\n    // TODO: incomplete.\n    const left = measureToString(this.x);\n    const top = measureToString(this.y);\n\n    const style = {\n      left,\n      top,\n      width: measureToString(this.w),\n      height: measureToString(this.h),\n    };\n\n    const classNames = [\"xfaContentarea\"];\n\n    if (isPrintOnly(this)) {\n      classNames.push(\"xfaPrintOnly\");\n    }\n\n    return HTMLResult.success({\n      name: \"div\",\n      children: [],\n      attributes: {\n        style,\n        class: classNames,\n        id: this[$uid],\n      },\n    });\n  }\n}\n\nclass Corner extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"corner\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.inverted = getInteger({\n      data: attributes.inverted,\n      defaultValue: 0,\n      validate: x => x === 1,\n    });\n    this.join = getStringOption(attributes.join, [\"square\", \"round\"]);\n    this.presence = getStringOption(attributes.presence, [\n      \"visible\",\n      \"hidden\",\n      \"inactive\",\n      \"invisible\",\n    ]);\n    this.radius = getMeasurement(attributes.radius);\n    this.stroke = getStringOption(attributes.stroke, [\n      \"solid\",\n      \"dashDot\",\n      \"dashDotDot\",\n      \"dashed\",\n      \"dotted\",\n      \"embossed\",\n      \"etched\",\n      \"lowered\",\n      \"raised\",\n    ]);\n    this.thickness = getMeasurement(attributes.thickness, \"0.5pt\");\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n\n  [$toStyle]() {\n    // In using CSS it's only possible to handle radius\n    // (at least with basic css).\n    // Is there a real use (interest ?) of all these properties ?\n    // Maybe it's possible to implement them using svg and border-image...\n    // TODO: implement all the missing properties.\n    const style = toStyle(this, \"visibility\");\n    style.radius = measureToString(this.join === \"square\" ? 0 : this.radius);\n    return style;\n  }\n}\n\nclass DateElement extends ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"date\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [$finalize]() {\n    const date = this[$content].trim();\n    this[$content] = date ? new Date(date) : null;\n  }\n\n  [$toHTML](availableSpace) {\n    return valueToHtml(this[$content] ? this[$content].toString() : \"\");\n  }\n}\n\nclass DateTime extends ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"dateTime\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [$finalize]() {\n    const date = this[$content].trim();\n    this[$content] = date ? new Date(date) : null;\n  }\n\n  [$toHTML](availableSpace) {\n    return valueToHtml(this[$content] ? this[$content].toString() : \"\");\n  }\n}\n\nclass DateTimeEdit extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"dateTimeEdit\", /* hasChildren = */ true);\n    this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n      \"auto\",\n      \"off\",\n      \"on\",\n    ]);\n    this.id = attributes.id || \"\";\n    this.picker = getStringOption(attributes.picker, [\"host\", \"none\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.comb = null;\n    this.extras = null;\n    this.margin = null;\n  }\n\n  [$toHTML](availableSpace) {\n    // TODO: incomplete.\n    // When the picker is host we should use type=date for the input\n    // but we need to put the buttons outside the text-field.\n    const style = toStyle(this, \"border\", \"font\", \"margin\");\n    const field = this[$getParent]()[$getParent]();\n    const html = {\n      name: \"input\",\n      attributes: {\n        type: \"text\",\n        fieldId: field[$uid],\n        dataId: field[$data]?.[$uid] || field[$uid],\n        class: [\"xfaTextfield\"],\n        style,\n        \"aria-label\": ariaLabel(field),\n        \"aria-required\": false,\n      },\n    };\n\n    if (isRequired(field)) {\n      html.attributes[\"aria-required\"] = true;\n      html.attributes.required = true;\n    }\n\n    return HTMLResult.success({\n      name: \"label\",\n      attributes: {\n        class: [\"xfaLabel\"],\n      },\n      children: [html],\n    });\n  }\n}\n\nclass Decimal extends ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"decimal\");\n    this.fracDigits = getInteger({\n      data: attributes.fracDigits,\n      defaultValue: 2,\n      validate: x => true,\n    });\n    this.id = attributes.id || \"\";\n    this.leadDigits = getInteger({\n      data: attributes.leadDigits,\n      defaultValue: -1,\n      validate: x => true,\n    });\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [$finalize]() {\n    const number = parseFloat(this[$content].trim());\n    this[$content] = isNaN(number) ? null : number;\n  }\n\n  [$toHTML](availableSpace) {\n    return valueToHtml(\n      this[$content] !== null ? this[$content].toString() : \"\"\n    );\n  }\n}\n\nclass DefaultUi extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"defaultUi\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n}\n\nclass Desc extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"desc\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.boolean = new XFAObjectArray();\n    this.date = new XFAObjectArray();\n    this.dateTime = new XFAObjectArray();\n    this.decimal = new XFAObjectArray();\n    this.exData = new XFAObjectArray();\n    this.float = new XFAObjectArray();\n    this.image = new XFAObjectArray();\n    this.integer = new XFAObjectArray();\n    this.text = new XFAObjectArray();\n    this.time = new XFAObjectArray();\n  }\n}\n\nclass DigestMethod extends OptionObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"digestMethod\", [\n      \"\",\n      \"SHA1\",\n      \"SHA256\",\n      \"SHA512\",\n      \"RIPEMD160\",\n    ]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass DigestMethods extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"digestMethods\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.digestMethod = new XFAObjectArray();\n  }\n}\n\nclass Draw extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"draw\", /* hasChildren = */ true);\n    this.anchorType = getStringOption(attributes.anchorType, [\n      \"topLeft\",\n      \"bottomCenter\",\n      \"bottomLeft\",\n      \"bottomRight\",\n      \"middleCenter\",\n      \"middleLeft\",\n      \"middleRight\",\n      \"topCenter\",\n      \"topRight\",\n    ]);\n    this.colSpan = getInteger({\n      data: attributes.colSpan,\n      defaultValue: 1,\n      validate: n => n >= 1 || n === -1,\n    });\n    this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n    this.hAlign = getStringOption(attributes.hAlign, [\n      \"left\",\n      \"center\",\n      \"justify\",\n      \"justifyAll\",\n      \"radix\",\n      \"right\",\n    ]);\n    this.id = attributes.id || \"\";\n    this.locale = attributes.locale || \"\";\n    this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n    this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n    this.minH = getMeasurement(attributes.minH, \"0pt\");\n    this.minW = getMeasurement(attributes.minW, \"0pt\");\n    this.name = attributes.name || \"\";\n    this.presence = getStringOption(attributes.presence, [\n      \"visible\",\n      \"hidden\",\n      \"inactive\",\n      \"invisible\",\n    ]);\n    this.relevant = getRelevant(attributes.relevant);\n    this.rotate = getInteger({\n      data: attributes.rotate,\n      defaultValue: 0,\n      validate: x => x % 90 === 0,\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n    this.x = getMeasurement(attributes.x, \"0pt\");\n    this.y = getMeasurement(attributes.y, \"0pt\");\n    this.assist = null;\n    this.border = null;\n    this.caption = null;\n    this.desc = null;\n    this.extras = null;\n    this.font = null;\n    this.keep = null;\n    this.margin = null;\n    this.para = null;\n    this.traversal = null;\n    this.ui = null;\n    this.value = null;\n    this.setProperty = new XFAObjectArray();\n  }\n\n  [$setValue](value) {\n    _setValue(this, value);\n  }\n\n  [$toHTML](availableSpace) {\n    setTabIndex(this);\n\n    if (this.presence === \"hidden\" || this.presence === \"inactive\") {\n      return HTMLResult.EMPTY;\n    }\n\n    fixDimensions(this);\n    this[$pushPara]();\n\n    // If at least one dimension is missing and we've a text\n    // then we can guess it in laying out the text.\n    const savedW = this.w;\n    const savedH = this.h;\n    const { w, h, isBroken } = layoutNode(this, availableSpace);\n    if (w && this.w === \"\") {\n      // If the parent layout is lr-tb with a w=100 and we already have a child\n      // which takes 90 on the current line.\n      // If we have a text with a length (in px) equal to 100 then it'll be\n      // splitted into almost 10 chunks: so it won't be nice.\n      // So if we've potentially more width to provide in some parent containers\n      // let's increase it to give a chance to have a better rendering.\n      if (isBroken && this[$getSubformParent]()[$isThereMoreWidth]()) {\n        this[$popPara]();\n        return HTMLResult.FAILURE;\n      }\n\n      this.w = w;\n    }\n    if (h && this.h === \"\") {\n      this.h = h;\n    }\n\n    setFirstUnsplittable(this);\n    if (!checkDimensions(this, availableSpace)) {\n      this.w = savedW;\n      this.h = savedH;\n      this[$popPara]();\n      return HTMLResult.FAILURE;\n    }\n    unsetFirstUnsplittable(this);\n\n    const style = toStyle(\n      this,\n      \"font\",\n      \"hAlign\",\n      \"dimensions\",\n      \"position\",\n      \"presence\",\n      \"rotate\",\n      \"anchorType\",\n      \"border\",\n      \"margin\"\n    );\n\n    setMinMaxDimensions(this, style);\n\n    if (style.margin) {\n      style.padding = style.margin;\n      delete style.margin;\n    }\n\n    const classNames = [\"xfaDraw\"];\n    if (this.font) {\n      classNames.push(\"xfaFont\");\n    }\n    if (isPrintOnly(this)) {\n      classNames.push(\"xfaPrintOnly\");\n    }\n\n    const attributes = {\n      style,\n      id: this[$uid],\n      class: classNames,\n    };\n\n    if (this.name) {\n      attributes.xfaName = this.name;\n    }\n\n    const html = {\n      name: \"div\",\n      attributes,\n      children: [],\n    };\n\n    applyAssist(this, attributes);\n\n    const bbox = computeBbox(this, html, availableSpace);\n\n    const value = this.value ? this.value[$toHTML](availableSpace).html : null;\n    if (value === null) {\n      this.w = savedW;\n      this.h = savedH;\n      this[$popPara]();\n      return HTMLResult.success(createWrapper(this, html), bbox);\n    }\n\n    html.children.push(value);\n    setPara(this, style, value);\n\n    this.w = savedW;\n    this.h = savedH;\n\n    this[$popPara]();\n    return HTMLResult.success(createWrapper(this, html), bbox);\n  }\n}\n\nclass Edge extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"edge\", /* hasChildren = */ true);\n    this.cap = getStringOption(attributes.cap, [\"square\", \"butt\", \"round\"]);\n    this.id = attributes.id || \"\";\n    this.presence = getStringOption(attributes.presence, [\n      \"visible\",\n      \"hidden\",\n      \"inactive\",\n      \"invisible\",\n    ]);\n    this.stroke = getStringOption(attributes.stroke, [\n      \"solid\",\n      \"dashDot\",\n      \"dashDotDot\",\n      \"dashed\",\n      \"dotted\",\n      \"embossed\",\n      \"etched\",\n      \"lowered\",\n      \"raised\",\n    ]);\n    this.thickness = getMeasurement(attributes.thickness, \"0.5pt\");\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n\n  [$toStyle]() {\n    // TODO: dashDot & dashDotDot.\n    const style = toStyle(this, \"visibility\");\n    Object.assign(style, {\n      linecap: this.cap,\n      width: measureToString(this.thickness),\n      color: this.color ? this.color[$toStyle]() : \"#000000\",\n      style: \"\",\n    });\n\n    if (this.presence !== \"visible\") {\n      style.style = \"none\";\n    } else {\n      switch (this.stroke) {\n        case \"solid\":\n          style.style = \"solid\";\n          break;\n        case \"dashDot\":\n          style.style = \"dashed\";\n          break;\n        case \"dashDotDot\":\n          style.style = \"dashed\";\n          break;\n        case \"dashed\":\n          style.style = \"dashed\";\n          break;\n        case \"dotted\":\n          style.style = \"dotted\";\n          break;\n        case \"embossed\":\n          style.style = \"ridge\";\n          break;\n        case \"etched\":\n          style.style = \"groove\";\n          break;\n        case \"lowered\":\n          style.style = \"inset\";\n          break;\n        case \"raised\":\n          style.style = \"outset\";\n          break;\n      }\n    }\n    return style;\n  }\n}\n\nclass Encoding extends OptionObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encoding\", [\n      \"adbe.x509.rsa_sha1\",\n      \"adbe.pkcs7.detached\",\n      \"adbe.pkcs7.sha1\",\n    ]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass Encodings extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encodings\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.encoding = new XFAObjectArray();\n  }\n}\n\nclass Encrypt extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encrypt\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.certificate = null;\n  }\n}\n\nclass EncryptData extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encryptData\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.operation = getStringOption(attributes.operation, [\n      \"encrypt\",\n      \"decrypt\",\n    ]);\n    this.target = attributes.target || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.filter = null;\n    this.manifest = null;\n  }\n}\n\nclass Encryption extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encryption\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.certificate = new XFAObjectArray();\n  }\n}\n\nclass EncryptionMethod extends OptionObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encryptionMethod\", [\n      \"\",\n      \"AES256-CBC\",\n      \"TRIPLEDES-CBC\",\n      \"AES128-CBC\",\n      \"AES192-CBC\",\n    ]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass EncryptionMethods extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encryptionMethods\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.encryptionMethod = new XFAObjectArray();\n  }\n}\n\nclass Event extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"event\", /* hasChildren = */ true);\n    this.activity = getStringOption(attributes.activity, [\n      \"click\",\n      \"change\",\n      \"docClose\",\n      \"docReady\",\n      \"enter\",\n      \"exit\",\n      \"full\",\n      \"indexChange\",\n      \"initialize\",\n      \"mouseDown\",\n      \"mouseEnter\",\n      \"mouseExit\",\n      \"mouseUp\",\n      \"postExecute\",\n      \"postOpen\",\n      \"postPrint\",\n      \"postSave\",\n      \"postSign\",\n      \"postSubmit\",\n      \"preExecute\",\n      \"preOpen\",\n      \"prePrint\",\n      \"preSave\",\n      \"preSign\",\n      \"preSubmit\",\n      \"ready\",\n      \"validationState\",\n    ]);\n    this.id = attributes.id || \"\";\n    this.listen = getStringOption(attributes.listen, [\n      \"refOnly\",\n      \"refAndDescendents\",\n    ]);\n    this.name = attributes.name || \"\";\n    this.ref = attributes.ref || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n\n    // One-of properties\n    this.encryptData = null;\n    this.execute = null;\n    this.script = null;\n    this.signData = null;\n    this.submit = null;\n  }\n}\n\nclass ExData extends ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"exData\");\n    this.contentType = attributes.contentType || \"\";\n    this.href = attributes.href || \"\";\n    this.id = attributes.id || \"\";\n    this.maxLength = getInteger({\n      data: attributes.maxLength,\n      defaultValue: -1,\n      validate: x => x >= -1,\n    });\n    this.name = attributes.name || \"\";\n    this.rid = attributes.rid || \"\";\n    this.transferEncoding = getStringOption(attributes.transferEncoding, [\n      \"none\",\n      \"base64\",\n      \"package\",\n    ]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [$isCDATAXml]() {\n    return this.contentType === \"text/html\";\n  }\n\n  [$onChild](child) {\n    if (\n      this.contentType === \"text/html\" &&\n      child[$namespaceId] === NamespaceIds.xhtml.id\n    ) {\n      this[$content] = child;\n      return true;\n    }\n\n    if (this.contentType === \"text/xml\") {\n      this[$content] = child;\n      return true;\n    }\n\n    return false;\n  }\n\n  [$toHTML](availableSpace) {\n    if (this.contentType !== \"text/html\" || !this[$content]) {\n      // TODO: fix other cases.\n      return HTMLResult.EMPTY;\n    }\n\n    return this[$content][$toHTML](availableSpace);\n  }\n}\n\nclass ExObject extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"exObject\", /* hasChildren = */ true);\n    this.archive = attributes.archive || \"\";\n    this.classId = attributes.classId || \"\";\n    this.codeBase = attributes.codeBase || \"\";\n    this.codeType = attributes.codeType || \"\";\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.boolean = new XFAObjectArray();\n    this.date = new XFAObjectArray();\n    this.dateTime = new XFAObjectArray();\n    this.decimal = new XFAObjectArray();\n    this.exData = new XFAObjectArray();\n    this.exObject = new XFAObjectArray();\n    this.float = new XFAObjectArray();\n    this.image = new XFAObjectArray();\n    this.integer = new XFAObjectArray();\n    this.text = new XFAObjectArray();\n    this.time = new XFAObjectArray();\n  }\n}\n\nclass ExclGroup extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"exclGroup\", /* hasChildren = */ true);\n    this.access = getStringOption(attributes.access, [\n      \"open\",\n      \"nonInteractive\",\n      \"protected\",\n      \"readOnly\",\n    ]);\n    this.accessKey = attributes.accessKey || \"\";\n    this.anchorType = getStringOption(attributes.anchorType, [\n      \"topLeft\",\n      \"bottomCenter\",\n      \"bottomLeft\",\n      \"bottomRight\",\n      \"middleCenter\",\n      \"middleLeft\",\n      \"middleRight\",\n      \"topCenter\",\n      \"topRight\",\n    ]);\n    this.colSpan = getInteger({\n      data: attributes.colSpan,\n      defaultValue: 1,\n      validate: n => n >= 1 || n === -1,\n    });\n    this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n    this.hAlign = getStringOption(attributes.hAlign, [\n      \"left\",\n      \"center\",\n      \"justify\",\n      \"justifyAll\",\n      \"radix\",\n      \"right\",\n    ]);\n    this.id = attributes.id || \"\";\n    this.layout = getStringOption(attributes.layout, [\n      \"position\",\n      \"lr-tb\",\n      \"rl-row\",\n      \"rl-tb\",\n      \"row\",\n      \"table\",\n      \"tb\",\n    ]);\n    this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n    this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n    this.minH = getMeasurement(attributes.minH, \"0pt\");\n    this.minW = getMeasurement(attributes.minW, \"0pt\");\n    this.name = attributes.name || \"\";\n    this.presence = getStringOption(attributes.presence, [\n      \"visible\",\n      \"hidden\",\n      \"inactive\",\n      \"invisible\",\n    ]);\n    this.relevant = getRelevant(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n    this.x = getMeasurement(attributes.x, \"0pt\");\n    this.y = getMeasurement(attributes.y, \"0pt\");\n    this.assist = null;\n    this.bind = null;\n    this.border = null;\n    this.calculate = null;\n    this.caption = null;\n    this.desc = null;\n    this.extras = null;\n    this.margin = null;\n    this.para = null;\n    this.traversal = null;\n    this.validate = null;\n    this.connect = new XFAObjectArray();\n    this.event = new XFAObjectArray();\n    this.field = new XFAObjectArray();\n    this.setProperty = new XFAObjectArray();\n  }\n\n  [$isBindable]() {\n    return true;\n  }\n\n  [$hasSettableValue]() {\n    return true;\n  }\n\n  [$setValue](value) {\n    for (const field of this.field.children) {\n      if (!field.value) {\n        const nodeValue = new Value({});\n        field[$appendChild](nodeValue);\n        field.value = nodeValue;\n      }\n\n      field.value[$setValue](value);\n    }\n  }\n\n  [$isThereMoreWidth]() {\n    return (\n      (this.layout.endsWith(\"-tb\") &&\n        this[$extra].attempt === 0 &&\n        this[$extra].numberInLine > 0) ||\n      this[$getParent]()[$isThereMoreWidth]()\n    );\n  }\n\n  [$isSplittable]() {\n    // We cannot cache the result here because the contentArea\n    // can change.\n    const parent = this[$getSubformParent]();\n    if (!parent[$isSplittable]()) {\n      return false;\n    }\n\n    if (this[$extra]._isSplittable !== undefined) {\n      return this[$extra]._isSplittable;\n    }\n\n    if (this.layout === \"position\" || this.layout.includes(\"row\")) {\n      this[$extra]._isSplittable = false;\n      return false;\n    }\n\n    if (parent.layout?.endsWith(\"-tb\") && parent[$extra].numberInLine !== 0) {\n      // See comment in Subform::[$isSplittable] for an explanation.\n      return false;\n    }\n\n    this[$extra]._isSplittable = true;\n    return true;\n  }\n\n  [$flushHTML]() {\n    return flushHTML(this);\n  }\n\n  [$addHTML](html, bbox) {\n    addHTML(this, html, bbox);\n  }\n\n  [$getAvailableSpace]() {\n    return getAvailableSpace(this);\n  }\n\n  [$toHTML](availableSpace) {\n    setTabIndex(this);\n    if (\n      this.presence === \"hidden\" ||\n      this.presence === \"inactive\" ||\n      this.h === 0 ||\n      this.w === 0\n    ) {\n      return HTMLResult.EMPTY;\n    }\n\n    fixDimensions(this);\n\n    const children = [];\n    const attributes = {\n      id: this[$uid],\n      class: [],\n    };\n\n    setAccess(this, attributes.class);\n\n    if (!this[$extra]) {\n      this[$extra] = Object.create(null);\n    }\n\n    Object.assign(this[$extra], {\n      children,\n      attributes,\n      attempt: 0,\n      line: null,\n      numberInLine: 0,\n      availableSpace: {\n        width: Math.min(this.w || Infinity, availableSpace.width),\n        height: Math.min(this.h || Infinity, availableSpace.height),\n      },\n      width: 0,\n      height: 0,\n      prevHeight: 0,\n      currentWidth: 0,\n    });\n\n    const isSplittable = this[$isSplittable]();\n    if (!isSplittable) {\n      setFirstUnsplittable(this);\n    }\n\n    if (!checkDimensions(this, availableSpace)) {\n      return HTMLResult.FAILURE;\n    }\n    const filter = new Set([\"field\"]);\n\n    if (this.layout.includes(\"row\")) {\n      const columnWidths = this[$getSubformParent]().columnWidths;\n      if (Array.isArray(columnWidths) && columnWidths.length > 0) {\n        this[$extra].columnWidths = columnWidths;\n        this[$extra].currentColumn = 0;\n      }\n    }\n\n    const style = toStyle(\n      this,\n      \"anchorType\",\n      \"dimensions\",\n      \"position\",\n      \"presence\",\n      \"border\",\n      \"margin\",\n      \"hAlign\"\n    );\n    const classNames = [\"xfaExclgroup\"];\n    const cl = layoutClass(this);\n    if (cl) {\n      classNames.push(cl);\n    }\n\n    if (isPrintOnly(this)) {\n      classNames.push(\"xfaPrintOnly\");\n    }\n\n    attributes.style = style;\n    attributes.class = classNames;\n\n    if (this.name) {\n      attributes.xfaName = this.name;\n    }\n\n    this[$pushPara]();\n    const isLrTb = this.layout === \"lr-tb\" || this.layout === \"rl-tb\";\n    const maxRun = isLrTb ? MAX_ATTEMPTS_FOR_LRTB_LAYOUT : 1;\n    for (; this[$extra].attempt < maxRun; this[$extra].attempt++) {\n      if (isLrTb && this[$extra].attempt === MAX_ATTEMPTS_FOR_LRTB_LAYOUT - 1) {\n        // If the layout is lr-tb then having attempt equals to\n        // MAX_ATTEMPTS_FOR_LRTB_LAYOUT-1 means that we're trying to layout\n        // on the next line so this on is empty.\n        this[$extra].numberInLine = 0;\n      }\n      const result = this[$childrenToHTML]({\n        filter,\n        include: true,\n      });\n      if (result.success) {\n        break;\n      }\n      if (result.isBreak()) {\n        this[$popPara]();\n        return result;\n      }\n      if (\n        isLrTb &&\n        this[$extra].attempt === 0 &&\n        this[$extra].numberInLine === 0 &&\n        !this[$getTemplateRoot]()[$extra].noLayoutFailure\n      ) {\n        // See comment in Subform::[$toHTML].\n        this[$extra].attempt = maxRun;\n        break;\n      }\n    }\n\n    this[$popPara]();\n\n    if (!isSplittable) {\n      unsetFirstUnsplittable(this);\n    }\n\n    if (this[$extra].attempt === maxRun) {\n      if (!isSplittable) {\n        delete this[$extra];\n      }\n      return HTMLResult.FAILURE;\n    }\n\n    let marginH = 0;\n    let marginV = 0;\n    if (this.margin) {\n      marginH = this.margin.leftInset + this.margin.rightInset;\n      marginV = this.margin.topInset + this.margin.bottomInset;\n    }\n\n    const width = Math.max(this[$extra].width + marginH, this.w || 0);\n    const height = Math.max(this[$extra].height + marginV, this.h || 0);\n    const bbox = [this.x, this.y, width, height];\n\n    if (this.w === \"\") {\n      style.width = measureToString(width);\n    }\n    if (this.h === \"\") {\n      style.height = measureToString(height);\n    }\n\n    const html = {\n      name: \"div\",\n      attributes,\n      children,\n    };\n\n    applyAssist(this, attributes);\n\n    delete this[$extra];\n\n    return HTMLResult.success(createWrapper(this, html), bbox);\n  }\n}\n\nclass Execute extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"execute\");\n    this.connection = attributes.connection || \"\";\n    this.executeType = getStringOption(attributes.executeType, [\n      \"import\",\n      \"remerge\",\n    ]);\n    this.id = attributes.id || \"\";\n    this.runAt = getStringOption(attributes.runAt, [\n      \"client\",\n      \"both\",\n      \"server\",\n    ]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass Extras extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"extras\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.boolean = new XFAObjectArray();\n    this.date = new XFAObjectArray();\n    this.dateTime = new XFAObjectArray();\n    this.decimal = new XFAObjectArray();\n    this.exData = new XFAObjectArray();\n    this.extras = new XFAObjectArray();\n    this.float = new XFAObjectArray();\n    this.image = new XFAObjectArray();\n    this.integer = new XFAObjectArray();\n    this.text = new XFAObjectArray();\n    this.time = new XFAObjectArray();\n  }\n\n  // (Spec) The XFA template grammar defines the extras and desc elements,\n  // which can be used to add human-readable or machine-readable\n  // data to a template.\n}\n\nclass Field extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"field\", /* hasChildren = */ true);\n    this.access = getStringOption(attributes.access, [\n      \"open\",\n      \"nonInteractive\",\n      \"protected\",\n      \"readOnly\",\n    ]);\n    this.accessKey = attributes.accessKey || \"\";\n    this.anchorType = getStringOption(attributes.anchorType, [\n      \"topLeft\",\n      \"bottomCenter\",\n      \"bottomLeft\",\n      \"bottomRight\",\n      \"middleCenter\",\n      \"middleLeft\",\n      \"middleRight\",\n      \"topCenter\",\n      \"topRight\",\n    ]);\n    this.colSpan = getInteger({\n      data: attributes.colSpan,\n      defaultValue: 1,\n      validate: n => n >= 1 || n === -1,\n    });\n    this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n    this.hAlign = getStringOption(attributes.hAlign, [\n      \"left\",\n      \"center\",\n      \"justify\",\n      \"justifyAll\",\n      \"radix\",\n      \"right\",\n    ]);\n    this.id = attributes.id || \"\";\n    this.locale = attributes.locale || \"\";\n    this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n    this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n    this.minH = getMeasurement(attributes.minH, \"0pt\");\n    this.minW = getMeasurement(attributes.minW, \"0pt\");\n    this.name = attributes.name || \"\";\n    this.presence = getStringOption(attributes.presence, [\n      \"visible\",\n      \"hidden\",\n      \"inactive\",\n      \"invisible\",\n    ]);\n    this.relevant = getRelevant(attributes.relevant);\n    this.rotate = getInteger({\n      data: attributes.rotate,\n      defaultValue: 0,\n      validate: x => x % 90 === 0,\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n    this.x = getMeasurement(attributes.x, \"0pt\");\n    this.y = getMeasurement(attributes.y, \"0pt\");\n    this.assist = null;\n    this.bind = null;\n    this.border = null;\n    this.calculate = null;\n    this.caption = null;\n    this.desc = null;\n    this.extras = null;\n    this.font = null;\n    this.format = null;\n    // For a choice list, one list is used to have display entries\n    // and the other for the exported values\n    this.items = new XFAObjectArray(2);\n    this.keep = null;\n    this.margin = null;\n    this.para = null;\n    this.traversal = null;\n    this.ui = null;\n    this.validate = null;\n    this.value = null;\n    this.bindItems = new XFAObjectArray();\n    this.connect = new XFAObjectArray();\n    this.event = new XFAObjectArray();\n    this.setProperty = new XFAObjectArray();\n  }\n\n  [$isBindable]() {\n    return true;\n  }\n\n  [$setValue](value) {\n    _setValue(this, value);\n  }\n\n  [$toHTML](availableSpace) {\n    setTabIndex(this);\n\n    if (!this.ui) {\n      // It's allowed to not have an ui, specs say:\n      //   If the UI element contains no children or is not present,\n      //   the application chooses a default user interface for the\n      //   container, based on the type of the container's content.\n\n      this.ui = new Ui({});\n      this.ui[$globalData] = this[$globalData];\n      this[$appendChild](this.ui);\n      let node;\n\n      // The items element can have 2 element max and\n      // according to the items specs it's likely a good\n      // way to guess the correct ui type.\n      switch (this.items.children.length) {\n        case 0:\n          node = new TextEdit({});\n          this.ui.textEdit = node;\n          break;\n        case 1:\n          node = new CheckButton({});\n          this.ui.checkButton = node;\n          break;\n        case 2:\n          node = new ChoiceList({});\n          this.ui.choiceList = node;\n          break;\n      }\n      this.ui[$appendChild](node);\n    }\n\n    if (\n      !this.ui ||\n      this.presence === \"hidden\" ||\n      this.presence === \"inactive\" ||\n      this.h === 0 ||\n      this.w === 0\n    ) {\n      return HTMLResult.EMPTY;\n    }\n\n    if (this.caption) {\n      // Maybe we already tried to layout this field with\n      // another availableSpace, so to avoid to use the cached\n      // value just delete it.\n      delete this.caption[$extra];\n    }\n\n    this[$pushPara]();\n\n    const caption = this.caption\n      ? this.caption[$toHTML](availableSpace).html\n      : null;\n    const savedW = this.w;\n    const savedH = this.h;\n    let marginH = 0;\n    let marginV = 0;\n    if (this.margin) {\n      marginH = this.margin.leftInset + this.margin.rightInset;\n      marginV = this.margin.topInset + this.margin.bottomInset;\n    }\n\n    let borderDims = null;\n    if (this.w === \"\" || this.h === \"\") {\n      let width = null;\n      let height = null;\n\n      let uiW = 0;\n      let uiH = 0;\n      if (this.ui.checkButton) {\n        uiW = uiH = this.ui.checkButton.size;\n      } else {\n        const { w, h } = layoutNode(this, availableSpace);\n        if (w !== null) {\n          uiW = w;\n          uiH = h;\n        } else {\n          uiH = getMetrics(this.font, /* real = */ true).lineNoGap;\n        }\n      }\n\n      borderDims = getBorderDims(this.ui[$getExtra]());\n      uiW += borderDims.w;\n      uiH += borderDims.h;\n\n      if (this.caption) {\n        const { w, h, isBroken } = this.caption[$getExtra](availableSpace);\n        // See comment in Draw::[$toHTML] to have an explanation\n        // about this line.\n        if (isBroken && this[$getSubformParent]()[$isThereMoreWidth]()) {\n          this[$popPara]();\n          return HTMLResult.FAILURE;\n        }\n\n        width = w;\n        height = h;\n\n        switch (this.caption.placement) {\n          case \"left\":\n          case \"right\":\n          case \"inline\":\n            width += uiW;\n            break;\n          case \"top\":\n          case \"bottom\":\n            height += uiH;\n            break;\n        }\n      } else {\n        width = uiW;\n        height = uiH;\n      }\n\n      if (width && this.w === \"\") {\n        width += marginH;\n        this.w = Math.min(\n          this.maxW <= 0 ? Infinity : this.maxW,\n          this.minW + 1 < width ? width : this.minW\n        );\n      }\n\n      if (height && this.h === \"\") {\n        height += marginV;\n        this.h = Math.min(\n          this.maxH <= 0 ? Infinity : this.maxH,\n          this.minH + 1 < height ? height : this.minH\n        );\n      }\n    }\n\n    this[$popPara]();\n\n    fixDimensions(this);\n\n    setFirstUnsplittable(this);\n    if (!checkDimensions(this, availableSpace)) {\n      this.w = savedW;\n      this.h = savedH;\n      this[$popPara]();\n      return HTMLResult.FAILURE;\n    }\n    unsetFirstUnsplittable(this);\n\n    const style = toStyle(\n      this,\n      \"font\",\n      \"dimensions\",\n      \"position\",\n      \"rotate\",\n      \"anchorType\",\n      \"presence\",\n      \"margin\",\n      \"hAlign\"\n    );\n\n    setMinMaxDimensions(this, style);\n\n    const classNames = [\"xfaField\"];\n    // If no font, font properties are inherited.\n    if (this.font) {\n      classNames.push(\"xfaFont\");\n    }\n\n    if (isPrintOnly(this)) {\n      classNames.push(\"xfaPrintOnly\");\n    }\n\n    const attributes = {\n      style,\n      id: this[$uid],\n      class: classNames,\n    };\n\n    if (style.margin) {\n      style.padding = style.margin;\n      delete style.margin;\n    }\n\n    setAccess(this, classNames);\n\n    if (this.name) {\n      attributes.xfaName = this.name;\n    }\n\n    const children = [];\n    const html = {\n      name: \"div\",\n      attributes,\n      children,\n    };\n\n    applyAssist(this, attributes);\n\n    const borderStyle = this.border ? this.border[$toStyle]() : null;\n    const bbox = computeBbox(this, html, availableSpace);\n    const ui = this.ui[$toHTML]().html;\n    if (!ui) {\n      Object.assign(style, borderStyle);\n      return HTMLResult.success(createWrapper(this, html), bbox);\n    }\n\n    if (this[$tabIndex]) {\n      if (ui.children?.[0]) {\n        ui.children[0].attributes.tabindex = this[$tabIndex];\n      } else {\n        ui.attributes.tabindex = this[$tabIndex];\n      }\n    }\n\n    if (!ui.attributes.style) {\n      ui.attributes.style = Object.create(null);\n    }\n\n    let aElement = null;\n\n    if (this.ui.button) {\n      if (ui.children.length === 1) {\n        [aElement] = ui.children.splice(0, 1);\n      }\n      Object.assign(ui.attributes.style, borderStyle);\n    } else {\n      Object.assign(style, borderStyle);\n    }\n\n    children.push(ui);\n\n    if (this.value) {\n      if (this.ui.imageEdit) {\n        ui.children.push(this.value[$toHTML]().html);\n      } else if (!this.ui.button) {\n        let value = \"\";\n        if (this.value.exData) {\n          value = this.value.exData[$text]();\n        } else if (this.value.text) {\n          value = this.value.text[$getExtra]();\n        } else {\n          const htmlValue = this.value[$toHTML]().html;\n          if (htmlValue !== null) {\n            value = htmlValue.children[0].value;\n          }\n        }\n        if (this.ui.textEdit && this.value.text?.maxChars) {\n          ui.children[0].attributes.maxLength = this.value.text.maxChars;\n        }\n\n        if (value) {\n          if (this.ui.numericEdit) {\n            value = parseFloat(value);\n            value = isNaN(value) ? \"\" : value.toString();\n          }\n\n          if (ui.children[0].name === \"textarea\") {\n            ui.children[0].attributes.textContent = value;\n          } else {\n            ui.children[0].attributes.value = value;\n          }\n        }\n      }\n    }\n\n    if (!this.ui.imageEdit && ui.children?.[0] && this.h) {\n      borderDims = borderDims || getBorderDims(this.ui[$getExtra]());\n\n      let captionHeight = 0;\n      if (this.caption && [\"top\", \"bottom\"].includes(this.caption.placement)) {\n        captionHeight = this.caption.reserve;\n        if (captionHeight <= 0) {\n          captionHeight = this.caption[$getExtra](availableSpace).h;\n        }\n        const inputHeight = this.h - captionHeight - marginV - borderDims.h;\n        ui.children[0].attributes.style.height = measureToString(inputHeight);\n      } else {\n        ui.children[0].attributes.style.height = \"100%\";\n      }\n    }\n\n    if (aElement) {\n      ui.children.push(aElement);\n    }\n\n    if (!caption) {\n      if (ui.attributes.class) {\n        // Even if no caption this class will help to center the ui.\n        ui.attributes.class.push(\"xfaLeft\");\n      }\n      this.w = savedW;\n      this.h = savedH;\n\n      return HTMLResult.success(createWrapper(this, html), bbox);\n    }\n\n    if (this.ui.button) {\n      if (style.padding) {\n        delete style.padding;\n      }\n      if (caption.name === \"div\") {\n        caption.name = \"span\";\n      }\n      ui.children.push(caption);\n      return HTMLResult.success(html, bbox);\n    } else if (this.ui.checkButton) {\n      caption.attributes.class[0] = \"xfaCaptionForCheckButton\";\n    }\n\n    if (!ui.attributes.class) {\n      ui.attributes.class = [];\n    }\n\n    ui.children.splice(0, 0, caption);\n\n    switch (this.caption.placement) {\n      case \"left\":\n        ui.attributes.class.push(\"xfaLeft\");\n        break;\n      case \"right\":\n        ui.attributes.class.push(\"xfaRight\");\n        break;\n      case \"top\":\n        ui.attributes.class.push(\"xfaTop\");\n        break;\n      case \"bottom\":\n        ui.attributes.class.push(\"xfaBottom\");\n        break;\n      case \"inline\":\n        // TODO;\n        ui.attributes.class.push(\"xfaLeft\");\n        break;\n    }\n\n    this.w = savedW;\n    this.h = savedH;\n    return HTMLResult.success(createWrapper(this, html), bbox);\n  }\n}\n\nclass Fill extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"fill\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.presence = getStringOption(attributes.presence, [\n      \"visible\",\n      \"hidden\",\n      \"inactive\",\n      \"invisible\",\n    ]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n\n    // One-of properties or none\n    this.linear = null;\n    this.pattern = null;\n    this.radial = null;\n    this.solid = null;\n    this.stipple = null;\n  }\n\n  [$toStyle]() {\n    const parent = this[$getParent]();\n    const grandpa = parent[$getParent]();\n    const ggrandpa = grandpa[$getParent]();\n    const style = Object.create(null);\n\n    // Use for color, i.e. #...\n    let propName = \"color\";\n\n    // Use for non-color, i.e. gradient, radial-gradient...\n    let altPropName = propName;\n\n    if (parent instanceof Border) {\n      propName = \"background-color\";\n      altPropName = \"background\";\n      if (ggrandpa instanceof Ui) {\n        // The default fill color is white.\n        style.backgroundColor = \"white\";\n      }\n    }\n    if (parent instanceof Rectangle || parent instanceof Arc) {\n      propName = altPropName = \"fill\";\n      style.fill = \"white\";\n    }\n\n    for (const name of Object.getOwnPropertyNames(this)) {\n      if (name === \"extras\" || name === \"color\") {\n        continue;\n      }\n      const obj = this[name];\n      if (!(obj instanceof XFAObject)) {\n        continue;\n      }\n\n      const color = obj[$toStyle](this.color);\n      if (color) {\n        style[color.startsWith(\"#\") ? propName : altPropName] = color;\n      }\n      return style;\n    }\n\n    if (this.color?.value) {\n      const color = this.color[$toStyle]();\n      style[color.startsWith(\"#\") ? propName : altPropName] = color;\n    }\n\n    return style;\n  }\n}\n\nclass Filter extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"filter\", /* hasChildren = */ true);\n    this.addRevocationInfo = getStringOption(attributes.addRevocationInfo, [\n      \"\",\n      \"required\",\n      \"optional\",\n      \"none\",\n    ]);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.version = getInteger({\n      data: this.version,\n      defaultValue: 5,\n      validate: x => x >= 1 && x <= 5,\n    });\n    this.appearanceFilter = null;\n    this.certificates = null;\n    this.digestMethods = null;\n    this.encodings = null;\n    this.encryptionMethods = null;\n    this.handler = null;\n    this.lockDocument = null;\n    this.mdp = null;\n    this.reasons = null;\n    this.timeStamp = null;\n  }\n}\n\nclass Float extends ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"float\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [$finalize]() {\n    const number = parseFloat(this[$content].trim());\n    this[$content] = isNaN(number) ? null : number;\n  }\n\n  [$toHTML](availableSpace) {\n    return valueToHtml(\n      this[$content] !== null ? this[$content].toString() : \"\"\n    );\n  }\n}\n\nclass Font extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"font\", /* hasChildren = */ true);\n    this.baselineShift = getMeasurement(attributes.baselineShift);\n    this.fontHorizontalScale = getFloat({\n      data: attributes.fontHorizontalScale,\n      defaultValue: 100,\n      validate: x => x >= 0,\n    });\n    this.fontVerticalScale = getFloat({\n      data: attributes.fontVerticalScale,\n      defaultValue: 100,\n      validate: x => x >= 0,\n    });\n    this.id = attributes.id || \"\";\n    this.kerningMode = getStringOption(attributes.kerningMode, [\n      \"none\",\n      \"pair\",\n    ]);\n    this.letterSpacing = getMeasurement(attributes.letterSpacing, \"0\");\n    this.lineThrough = getInteger({\n      data: attributes.lineThrough,\n      defaultValue: 0,\n      validate: x => x === 1 || x === 2,\n    });\n    this.lineThroughPeriod = getStringOption(attributes.lineThroughPeriod, [\n      \"all\",\n      \"word\",\n    ]);\n    this.overline = getInteger({\n      data: attributes.overline,\n      defaultValue: 0,\n      validate: x => x === 1 || x === 2,\n    });\n    this.overlinePeriod = getStringOption(attributes.overlinePeriod, [\n      \"all\",\n      \"word\",\n    ]);\n    this.posture = getStringOption(attributes.posture, [\"normal\", \"italic\"]);\n    this.size = getMeasurement(attributes.size, \"10pt\");\n    this.typeface = attributes.typeface || \"Courier\";\n    this.underline = getInteger({\n      data: attributes.underline,\n      defaultValue: 0,\n      validate: x => x === 1 || x === 2,\n    });\n    this.underlinePeriod = getStringOption(attributes.underlinePeriod, [\n      \"all\",\n      \"word\",\n    ]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.weight = getStringOption(attributes.weight, [\"normal\", \"bold\"]);\n    this.extras = null;\n    this.fill = null;\n  }\n\n  [$clean](builder) {\n    super[$clean](builder);\n    this[$globalData].usedTypefaces.add(this.typeface);\n  }\n\n  [$toStyle]() {\n    const style = toStyle(this, \"fill\");\n    const color = style.color;\n    if (color) {\n      if (color === \"#000000\") {\n        // Default font color.\n        delete style.color;\n      } else if (!color.startsWith(\"#\")) {\n        // We've a gradient which is not possible for a font color\n        // so use a workaround.\n        style.background = color;\n        style.backgroundClip = \"text\";\n        style.color = \"transparent\";\n      }\n    }\n\n    if (this.baselineShift) {\n      style.verticalAlign = measureToString(this.baselineShift);\n    }\n\n    // TODO: fontHorizontalScale\n    // TODO: fontVerticalScale\n\n    style.fontKerning = this.kerningMode === \"none\" ? \"none\" : \"normal\";\n    style.letterSpacing = measureToString(this.letterSpacing);\n\n    if (this.lineThrough !== 0) {\n      style.textDecoration = \"line-through\";\n      if (this.lineThrough === 2) {\n        style.textDecorationStyle = \"double\";\n      }\n    }\n\n    // TODO: lineThroughPeriod\n\n    if (this.overline !== 0) {\n      style.textDecoration = \"overline\";\n      if (this.overline === 2) {\n        style.textDecorationStyle = \"double\";\n      }\n    }\n\n    // TODO: overlinePeriod\n\n    style.fontStyle = this.posture;\n    style.fontSize = measureToString(0.99 * this.size);\n\n    setFontFamily(this, this, this[$globalData].fontFinder, style);\n\n    if (this.underline !== 0) {\n      style.textDecoration = \"underline\";\n      if (this.underline === 2) {\n        style.textDecorationStyle = \"double\";\n      }\n    }\n\n    // TODO: underlinePeriod\n\n    style.fontWeight = this.weight;\n\n    return style;\n  }\n}\n\nclass Format extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"format\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.picture = null;\n  }\n}\n\nclass Handler extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"handler\");\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass Hyphenation extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"hyphenation\");\n    this.excludeAllCaps = getInteger({\n      data: attributes.excludeAllCaps,\n      defaultValue: 0,\n      validate: x => x === 1,\n    });\n    this.excludeInitialCap = getInteger({\n      data: attributes.excludeInitialCap,\n      defaultValue: 0,\n      validate: x => x === 1,\n    });\n    this.hyphenate = getInteger({\n      data: attributes.hyphenate,\n      defaultValue: 0,\n      validate: x => x === 1,\n    });\n    this.id = attributes.id || \"\";\n    this.pushCharacterCount = getInteger({\n      data: attributes.pushCharacterCount,\n      defaultValue: 3,\n      validate: x => x >= 0,\n    });\n    this.remainCharacterCount = getInteger({\n      data: attributes.remainCharacterCount,\n      defaultValue: 3,\n      validate: x => x >= 0,\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.wordCharacterCount = getInteger({\n      data: attributes.wordCharacterCount,\n      defaultValue: 7,\n      validate: x => x >= 0,\n    });\n  }\n}\n\nclass Image extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"image\");\n    this.aspect = getStringOption(attributes.aspect, [\n      \"fit\",\n      \"actual\",\n      \"height\",\n      \"none\",\n      \"width\",\n    ]);\n    this.contentType = attributes.contentType || \"\";\n    this.href = attributes.href || \"\";\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.transferEncoding = getStringOption(attributes.transferEncoding, [\n      \"base64\",\n      \"none\",\n      \"package\",\n    ]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [$toHTML]() {\n    if (this.contentType && !MIMES.has(this.contentType.toLowerCase())) {\n      return HTMLResult.EMPTY;\n    }\n\n    let buffer =\n      this[$globalData].images && this[$globalData].images.get(this.href);\n    if (!buffer && (this.href || !this[$content])) {\n      // In general, we don't get remote data and use what we have\n      // in the pdf itself, so no picture for non null href.\n      return HTMLResult.EMPTY;\n    }\n\n    if (!buffer && this.transferEncoding === \"base64\") {\n      buffer = stringToBytes(atob(this[$content]));\n    }\n\n    if (!buffer) {\n      return HTMLResult.EMPTY;\n    }\n\n    if (!this.contentType) {\n      for (const [header, type] of IMAGES_HEADERS) {\n        if (\n          buffer.length > header.length &&\n          header.every((x, i) => x === buffer[i])\n        ) {\n          this.contentType = type;\n          break;\n        }\n      }\n      if (!this.contentType) {\n        return HTMLResult.EMPTY;\n      }\n    }\n\n    // TODO: Firefox doesn't support natively tiff (and tif) format.\n    const blob = new Blob([buffer], { type: this.contentType });\n    let style;\n    switch (this.aspect) {\n      case \"fit\":\n      case \"actual\":\n        // TODO: check what to do with actual.\n        // Normally we should return {auto, auto} for it but\n        // it implies some wrong rendering (see xfa_bug1716816.pdf).\n        break;\n      case \"height\":\n        style = {\n          height: \"100%\",\n          objectFit: \"fill\",\n        };\n        break;\n      case \"none\":\n        style = {\n          width: \"100%\",\n          height: \"100%\",\n          objectFit: \"fill\",\n        };\n        break;\n      case \"width\":\n        style = {\n          width: \"100%\",\n          objectFit: \"fill\",\n        };\n        break;\n    }\n    const parent = this[$getParent]();\n    return HTMLResult.success({\n      name: \"img\",\n      attributes: {\n        class: [\"xfaImage\"],\n        style,\n        src: URL.createObjectURL(blob),\n        alt: parent ? ariaLabel(parent[$getParent]()) : null,\n      },\n    });\n  }\n}\n\nclass ImageEdit extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"imageEdit\", /* hasChildren = */ true);\n    this.data = getStringOption(attributes.data, [\"link\", \"embed\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.extras = null;\n    this.margin = null;\n  }\n\n  [$toHTML](availableSpace) {\n    if (this.data === \"embed\") {\n      return HTMLResult.success({\n        name: \"div\",\n        children: [],\n        attributes: {},\n      });\n    }\n\n    return HTMLResult.EMPTY;\n  }\n}\n\nclass Integer extends ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"integer\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [$finalize]() {\n    const number = parseInt(this[$content].trim(), 10);\n    this[$content] = isNaN(number) ? null : number;\n  }\n\n  [$toHTML](availableSpace) {\n    return valueToHtml(\n      this[$content] !== null ? this[$content].toString() : \"\"\n    );\n  }\n}\n\nclass Issuers extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"issuers\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.certificate = new XFAObjectArray();\n  }\n}\n\nclass Items extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"items\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.presence = getStringOption(attributes.presence, [\n      \"visible\",\n      \"hidden\",\n      \"inactive\",\n      \"invisible\",\n    ]);\n    this.ref = attributes.ref || \"\";\n    this.save = getInteger({\n      data: attributes.save,\n      defaultValue: 0,\n      validate: x => x === 1,\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.boolean = new XFAObjectArray();\n    this.date = new XFAObjectArray();\n    this.dateTime = new XFAObjectArray();\n    this.decimal = new XFAObjectArray();\n    this.exData = new XFAObjectArray();\n    this.float = new XFAObjectArray();\n    this.image = new XFAObjectArray();\n    this.integer = new XFAObjectArray();\n    this.text = new XFAObjectArray();\n    this.time = new XFAObjectArray();\n  }\n\n  [$toHTML]() {\n    const output = [];\n    for (const child of this[$getChildren]()) {\n      output.push(child[$text]());\n    }\n    return HTMLResult.success(output);\n  }\n}\n\nclass Keep extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"keep\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    const options = [\"none\", \"contentArea\", \"pageArea\"];\n    this.intact = getStringOption(attributes.intact, options);\n    this.next = getStringOption(attributes.next, options);\n    this.previous = getStringOption(attributes.previous, options);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n}\n\nclass KeyUsage extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"keyUsage\");\n    const options = [\"\", \"yes\", \"no\"];\n    this.crlSign = getStringOption(attributes.crlSign, options);\n    this.dataEncipherment = getStringOption(\n      attributes.dataEncipherment,\n      options\n    );\n    this.decipherOnly = getStringOption(attributes.decipherOnly, options);\n    this.digitalSignature = getStringOption(\n      attributes.digitalSignature,\n      options\n    );\n    this.encipherOnly = getStringOption(attributes.encipherOnly, options);\n    this.id = attributes.id || \"\";\n    this.keyAgreement = getStringOption(attributes.keyAgreement, options);\n    this.keyCertSign = getStringOption(attributes.keyCertSign, options);\n    this.keyEncipherment = getStringOption(attributes.keyEncipherment, options);\n    this.nonRepudiation = getStringOption(attributes.nonRepudiation, options);\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass Line extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"line\", /* hasChildren = */ true);\n    this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.slope = getStringOption(attributes.slope, [\"\\\\\", \"/\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.edge = null;\n  }\n\n  [$toHTML]() {\n    const parent = this[$getParent]()[$getParent]();\n    const edge = this.edge || new Edge({});\n    const edgeStyle = edge[$toStyle]();\n    const style = Object.create(null);\n    const thickness = edge.presence === \"visible\" ? edge.thickness : 0;\n    style.strokeWidth = measureToString(thickness);\n    style.stroke = edgeStyle.color;\n    let x1, y1, x2, y2;\n    let width = \"100%\";\n    let height = \"100%\";\n\n    if (parent.w <= thickness) {\n      [x1, y1, x2, y2] = [\"50%\", 0, \"50%\", \"100%\"];\n      width = style.strokeWidth;\n    } else if (parent.h <= thickness) {\n      [x1, y1, x2, y2] = [0, \"50%\", \"100%\", \"50%\"];\n      height = style.strokeWidth;\n    } else if (this.slope === \"\\\\\") {\n      [x1, y1, x2, y2] = [0, 0, \"100%\", \"100%\"];\n    } else {\n      [x1, y1, x2, y2] = [0, \"100%\", \"100%\", 0];\n    }\n\n    const line = {\n      name: \"line\",\n      attributes: {\n        xmlns: SVG_NS,\n        x1,\n        y1,\n        x2,\n        y2,\n        style,\n      },\n    };\n\n    const svg = {\n      name: \"svg\",\n      children: [line],\n      attributes: {\n        xmlns: SVG_NS,\n        width,\n        height,\n        style: {\n          overflow: \"visible\",\n        },\n      },\n    };\n\n    if (hasMargin(parent)) {\n      return HTMLResult.success({\n        name: \"div\",\n        attributes: {\n          style: {\n            display: \"inline\",\n            width: \"100%\",\n            height: \"100%\",\n          },\n        },\n        children: [svg],\n      });\n    }\n\n    svg.attributes.style.position = \"absolute\";\n    return HTMLResult.success(svg);\n  }\n}\n\nclass Linear extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"linear\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\n      \"toRight\",\n      \"toBottom\",\n      \"toLeft\",\n      \"toTop\",\n    ]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n\n  [$toStyle](startColor) {\n    startColor = startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n    const transf = this.type.replace(/([RBLT])/, \" $1\").toLowerCase();\n    const endColor = this.color ? this.color[$toStyle]() : \"#000000\";\n    return `linear-gradient(${transf}, ${startColor}, ${endColor})`;\n  }\n}\n\nclass LockDocument extends ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"lockDocument\");\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [$finalize]() {\n    this[$content] = getStringOption(this[$content], [\"auto\", \"0\", \"1\"]);\n  }\n}\n\nclass Manifest extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"manifest\", /* hasChildren = */ true);\n    this.action = getStringOption(attributes.action, [\n      \"include\",\n      \"all\",\n      \"exclude\",\n    ]);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.ref = new XFAObjectArray();\n  }\n}\n\nclass Margin extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"margin\", /* hasChildren = */ true);\n    this.bottomInset = getMeasurement(attributes.bottomInset, \"0\");\n    this.id = attributes.id || \"\";\n    this.leftInset = getMeasurement(attributes.leftInset, \"0\");\n    this.rightInset = getMeasurement(attributes.rightInset, \"0\");\n    this.topInset = getMeasurement(attributes.topInset, \"0\");\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n\n  [$toStyle]() {\n    return {\n      margin:\n        measureToString(this.topInset) +\n        \" \" +\n        measureToString(this.rightInset) +\n        \" \" +\n        measureToString(this.bottomInset) +\n        \" \" +\n        measureToString(this.leftInset),\n    };\n  }\n}\n\nclass Mdp extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"mdp\");\n    this.id = attributes.id || \"\";\n    this.permissions = getInteger({\n      data: attributes.permissions,\n      defaultValue: 2,\n      validate: x => x === 1 || x === 3,\n    });\n    this.signatureType = getStringOption(attributes.signatureType, [\n      \"filler\",\n      \"author\",\n    ]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass Medium extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"medium\");\n    this.id = attributes.id || \"\";\n    this.imagingBBox = getBBox(attributes.imagingBBox);\n    this.long = getMeasurement(attributes.long);\n    this.orientation = getStringOption(attributes.orientation, [\n      \"portrait\",\n      \"landscape\",\n    ]);\n    this.short = getMeasurement(attributes.short);\n    this.stock = attributes.stock || \"\";\n    this.trayIn = getStringOption(attributes.trayIn, [\n      \"auto\",\n      \"delegate\",\n      \"pageFront\",\n    ]);\n    this.trayOut = getStringOption(attributes.trayOut, [\"auto\", \"delegate\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass Message extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"message\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.text = new XFAObjectArray();\n  }\n}\n\nclass NumericEdit extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"numericEdit\", /* hasChildren = */ true);\n    this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n      \"auto\",\n      \"off\",\n      \"on\",\n    ]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.comb = null;\n    this.extras = null;\n    this.margin = null;\n  }\n\n  [$toHTML](availableSpace) {\n    // TODO: incomplete.\n    const style = toStyle(this, \"border\", \"font\", \"margin\");\n    const field = this[$getParent]()[$getParent]();\n    const html = {\n      name: \"input\",\n      attributes: {\n        type: \"text\",\n        fieldId: field[$uid],\n        dataId: field[$data]?.[$uid] || field[$uid],\n        class: [\"xfaTextfield\"],\n        style,\n        \"aria-label\": ariaLabel(field),\n        \"aria-required\": false,\n      },\n    };\n\n    if (isRequired(field)) {\n      html.attributes[\"aria-required\"] = true;\n      html.attributes.required = true;\n    }\n\n    return HTMLResult.success({\n      name: \"label\",\n      attributes: {\n        class: [\"xfaLabel\"],\n      },\n      children: [html],\n    });\n  }\n}\n\nclass Occur extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"occur\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.initial =\n      attributes.initial !== \"\"\n        ? getInteger({\n            data: attributes.initial,\n            defaultValue: \"\",\n            validate: x => true,\n          })\n        : \"\";\n    this.max =\n      attributes.max !== \"\"\n        ? getInteger({\n            data: attributes.max,\n            defaultValue: 1,\n            validate: x => true,\n          })\n        : \"\";\n    this.min =\n      attributes.min !== \"\"\n        ? getInteger({\n            data: attributes.min,\n            defaultValue: 1,\n            validate: x => true,\n          })\n        : \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n\n  [$clean]() {\n    const parent = this[$getParent]();\n    const originalMin = this.min;\n\n    if (this.min === \"\") {\n      this.min =\n        parent instanceof PageArea || parent instanceof PageSet ? 0 : 1;\n    }\n    if (this.max === \"\") {\n      if (originalMin === \"\") {\n        this.max =\n          parent instanceof PageArea || parent instanceof PageSet ? -1 : 1;\n      } else {\n        this.max = this.min;\n      }\n    }\n\n    if (this.max !== -1 && this.max < this.min) {\n      this.max = this.min;\n    }\n\n    if (this.initial === \"\") {\n      this.initial = parent instanceof Template ? 1 : this.min;\n    }\n  }\n}\n\nclass Oid extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"oid\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass Oids extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"oids\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.oid = new XFAObjectArray();\n  }\n}\n\nclass Overflow extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"overflow\");\n    this.id = attributes.id || \"\";\n    this.leader = attributes.leader || \"\";\n    this.target = attributes.target || \"\";\n    this.trailer = attributes.trailer || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [$getExtra]() {\n    if (!this[$extra]) {\n      const parent = this[$getParent]();\n      const root = this[$getTemplateRoot]();\n      const target = root[$searchNode](this.target, parent);\n      const leader = root[$searchNode](this.leader, parent);\n      const trailer = root[$searchNode](this.trailer, parent);\n      this[$extra] = {\n        target: target?.[0] || null,\n        leader: leader?.[0] || null,\n        trailer: trailer?.[0] || null,\n        addLeader: false,\n        addTrailer: false,\n      };\n    }\n    return this[$extra];\n  }\n}\n\nclass PageArea extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"pageArea\", /* hasChildren = */ true);\n    this.blankOrNotBlank = getStringOption(attributes.blankOrNotBlank, [\n      \"any\",\n      \"blank\",\n      \"notBlank\",\n    ]);\n    this.id = attributes.id || \"\";\n    this.initialNumber = getInteger({\n      data: attributes.initialNumber,\n      defaultValue: 1,\n      validate: x => true,\n    });\n    this.name = attributes.name || \"\";\n    this.numbered = getInteger({\n      data: attributes.numbered,\n      defaultValue: 1,\n      validate: x => true,\n    });\n    this.oddOrEven = getStringOption(attributes.oddOrEven, [\n      \"any\",\n      \"even\",\n      \"odd\",\n    ]);\n    this.pagePosition = getStringOption(attributes.pagePosition, [\n      \"any\",\n      \"first\",\n      \"last\",\n      \"only\",\n      \"rest\",\n    ]);\n    this.relevant = getRelevant(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.desc = null;\n    this.extras = null;\n    this.medium = null;\n    this.occur = null;\n    this.area = new XFAObjectArray();\n    this.contentArea = new XFAObjectArray();\n    this.draw = new XFAObjectArray();\n    this.exclGroup = new XFAObjectArray();\n    this.field = new XFAObjectArray();\n    this.subform = new XFAObjectArray();\n  }\n\n  [$isUsable]() {\n    if (!this[$extra]) {\n      this[$extra] = {\n        numberOfUse: 0,\n      };\n      return true;\n    }\n    return (\n      !this.occur ||\n      this.occur.max === -1 ||\n      this[$extra].numberOfUse < this.occur.max\n    );\n  }\n\n  [$cleanPage]() {\n    delete this[$extra];\n  }\n\n  [$getNextPage]() {\n    if (!this[$extra]) {\n      this[$extra] = {\n        numberOfUse: 0,\n      };\n    }\n\n    const parent = this[$getParent]();\n    if (parent.relation === \"orderedOccurrence\") {\n      if (this[$isUsable]()) {\n        this[$extra].numberOfUse += 1;\n        return this;\n      }\n    }\n\n    return parent[$getNextPage]();\n  }\n\n  [$getAvailableSpace]() {\n    return this[$extra].space || { width: 0, height: 0 };\n  }\n\n  [$toHTML]() {\n    // TODO: incomplete.\n    if (!this[$extra]) {\n      this[$extra] = {\n        numberOfUse: 1,\n      };\n    }\n\n    const children = [];\n    this[$extra].children = children;\n\n    const style = Object.create(null);\n    if (this.medium && this.medium.short && this.medium.long) {\n      style.width = measureToString(this.medium.short);\n      style.height = measureToString(this.medium.long);\n      this[$extra].space = {\n        width: this.medium.short,\n        height: this.medium.long,\n      };\n      if (this.medium.orientation === \"landscape\") {\n        const x = style.width;\n        style.width = style.height;\n        style.height = x;\n        this[$extra].space = {\n          width: this.medium.long,\n          height: this.medium.short,\n        };\n      }\n    } else {\n      warn(\"XFA - No medium specified in pageArea: please file a bug.\");\n    }\n\n    this[$childrenToHTML]({\n      filter: new Set([\"area\", \"draw\", \"field\", \"subform\"]),\n      include: true,\n    });\n\n    // contentarea must be the last container to be sure it is\n    // on top of the others.\n    this[$childrenToHTML]({\n      filter: new Set([\"contentArea\"]),\n      include: true,\n    });\n\n    return HTMLResult.success({\n      name: \"div\",\n      children,\n      attributes: {\n        class: [\"xfaPage\"],\n        id: this[$uid],\n        style,\n        xfaName: this.name,\n      },\n    });\n  }\n}\n\nclass PageSet extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"pageSet\", /* hasChildren = */ true);\n    this.duplexImposition = getStringOption(attributes.duplexImposition, [\n      \"longEdge\",\n      \"shortEdge\",\n    ]);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.relation = getStringOption(attributes.relation, [\n      \"orderedOccurrence\",\n      \"duplexPaginated\",\n      \"simplexPaginated\",\n    ]);\n    this.relevant = getRelevant(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.occur = null;\n    this.pageArea = new XFAObjectArray();\n    this.pageSet = new XFAObjectArray();\n  }\n\n  [$cleanPage]() {\n    for (const page of this.pageArea.children) {\n      page[$cleanPage]();\n    }\n    for (const page of this.pageSet.children) {\n      page[$cleanPage]();\n    }\n  }\n\n  [$isUsable]() {\n    return (\n      !this.occur ||\n      this.occur.max === -1 ||\n      this[$extra].numberOfUse < this.occur.max\n    );\n  }\n\n  [$getNextPage]() {\n    if (!this[$extra]) {\n      this[$extra] = {\n        numberOfUse: 1,\n        pageIndex: -1,\n        pageSetIndex: -1,\n      };\n    }\n\n    if (this.relation === \"orderedOccurrence\") {\n      if (this[$extra].pageIndex + 1 < this.pageArea.children.length) {\n        this[$extra].pageIndex += 1;\n        const pageArea = this.pageArea.children[this[$extra].pageIndex];\n        return pageArea[$getNextPage]();\n      }\n\n      if (this[$extra].pageSetIndex + 1 < this.pageSet.children.length) {\n        this[$extra].pageSetIndex += 1;\n        return this.pageSet.children[this[$extra].pageSetIndex][$getNextPage]();\n      }\n\n      if (this[$isUsable]()) {\n        this[$extra].numberOfUse += 1;\n        this[$extra].pageIndex = -1;\n        this[$extra].pageSetIndex = -1;\n        return this[$getNextPage]();\n      }\n\n      const parent = this[$getParent]();\n      if (parent instanceof PageSet) {\n        return parent[$getNextPage]();\n      }\n\n      this[$cleanPage]();\n      return this[$getNextPage]();\n    }\n    const pageNumber = this[$getTemplateRoot]()[$extra].pageNumber;\n    const parity = pageNumber % 2 === 0 ? \"even\" : \"odd\";\n    const position = pageNumber === 0 ? \"first\" : \"rest\";\n\n    let page = this.pageArea.children.find(\n      p => p.oddOrEven === parity && p.pagePosition === position\n    );\n    if (page) {\n      return page;\n    }\n\n    page = this.pageArea.children.find(\n      p => p.oddOrEven === \"any\" && p.pagePosition === position\n    );\n    if (page) {\n      return page;\n    }\n\n    page = this.pageArea.children.find(\n      p => p.oddOrEven === \"any\" && p.pagePosition === \"any\"\n    );\n    if (page) {\n      return page;\n    }\n\n    return this.pageArea.children[0];\n  }\n}\n\nclass Para extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"para\", /* hasChildren = */ true);\n    this.hAlign = getStringOption(attributes.hAlign, [\n      \"left\",\n      \"center\",\n      \"justify\",\n      \"justifyAll\",\n      \"radix\",\n      \"right\",\n    ]);\n    this.id = attributes.id || \"\";\n    this.lineHeight = attributes.lineHeight\n      ? getMeasurement(attributes.lineHeight, \"0pt\")\n      : \"\";\n    this.marginLeft = attributes.marginLeft\n      ? getMeasurement(attributes.marginLeft, \"0pt\")\n      : \"\";\n    this.marginRight = attributes.marginRight\n      ? getMeasurement(attributes.marginRight, \"0pt\")\n      : \"\";\n    this.orphans = getInteger({\n      data: attributes.orphans,\n      defaultValue: 0,\n      validate: x => x >= 0,\n    });\n    this.preserve = attributes.preserve || \"\";\n    this.radixOffset = attributes.radixOffset\n      ? getMeasurement(attributes.radixOffset, \"0pt\")\n      : \"\";\n    this.spaceAbove = attributes.spaceAbove\n      ? getMeasurement(attributes.spaceAbove, \"0pt\")\n      : \"\";\n    this.spaceBelow = attributes.spaceBelow\n      ? getMeasurement(attributes.spaceBelow, \"0pt\")\n      : \"\";\n    this.tabDefault = attributes.tabDefault\n      ? getMeasurement(this.tabDefault)\n      : \"\";\n    this.tabStops = (attributes.tabStops || \"\")\n      .trim()\n      .split(/\\s+/)\n      .map((x, i) => (i % 2 === 1 ? getMeasurement(x) : x));\n    this.textIndent = attributes.textIndent\n      ? getMeasurement(attributes.textIndent, \"0pt\")\n      : \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.vAlign = getStringOption(attributes.vAlign, [\n      \"top\",\n      \"bottom\",\n      \"middle\",\n    ]);\n    this.widows = getInteger({\n      data: attributes.widows,\n      defaultValue: 0,\n      validate: x => x >= 0,\n    });\n    this.hyphenation = null;\n  }\n\n  [$toStyle]() {\n    const style = toStyle(this, \"hAlign\");\n    if (this.marginLeft !== \"\") {\n      style.paddingLeft = measureToString(this.marginLeft);\n    }\n    if (this.marginRight !== \"\") {\n      style.paddingight = measureToString(this.marginRight);\n    }\n    if (this.spaceAbove !== \"\") {\n      style.paddingTop = measureToString(this.spaceAbove);\n    }\n    if (this.spaceBelow !== \"\") {\n      style.paddingBottom = measureToString(this.spaceBelow);\n    }\n    if (this.textIndent !== \"\") {\n      style.textIndent = measureToString(this.textIndent);\n      fixTextIndent(style);\n    }\n\n    if (this.lineHeight > 0) {\n      style.lineHeight = measureToString(this.lineHeight);\n    }\n\n    if (this.tabDefault !== \"\") {\n      style.tabSize = measureToString(this.tabDefault);\n    }\n\n    if (this.tabStops.length > 0) {\n      // TODO\n    }\n\n    if (this.hyphenatation) {\n      Object.assign(style, this.hyphenatation[$toStyle]());\n    }\n\n    return style;\n  }\n}\n\nclass PasswordEdit extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"passwordEdit\", /* hasChildren = */ true);\n    this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n      \"auto\",\n      \"off\",\n      \"on\",\n    ]);\n    this.id = attributes.id || \"\";\n    this.passwordChar = attributes.passwordChar || \"*\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.extras = null;\n    this.margin = null;\n  }\n}\n\nclass Pattern extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"pattern\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\n      \"crossHatch\",\n      \"crossDiagonal\",\n      \"diagonalLeft\",\n      \"diagonalRight\",\n      \"horizontal\",\n      \"vertical\",\n    ]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n\n  [$toStyle](startColor) {\n    startColor = startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n    const endColor = this.color ? this.color[$toStyle]() : \"#000000\";\n    const width = 5;\n    const cmd = \"repeating-linear-gradient\";\n    const colors = `${startColor},${startColor} ${width}px,${endColor} ${width}px,${endColor} ${\n      2 * width\n    }px`;\n    switch (this.type) {\n      case \"crossHatch\":\n        return `${cmd}(to top,${colors}) ${cmd}(to right,${colors})`;\n      case \"crossDiagonal\":\n        return `${cmd}(45deg,${colors}) ${cmd}(-45deg,${colors})`;\n      case \"diagonalLeft\":\n        return `${cmd}(45deg,${colors})`;\n      case \"diagonalRight\":\n        return `${cmd}(-45deg,${colors})`;\n      case \"horizontal\":\n        return `${cmd}(to top,${colors})`;\n      case \"vertical\":\n        return `${cmd}(to right,${colors})`;\n    }\n\n    return \"\";\n  }\n}\n\nclass Picture extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"picture\");\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass Proto extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"proto\", /* hasChildren = */ true);\n    this.appearanceFilter = new XFAObjectArray();\n    this.arc = new XFAObjectArray();\n    this.area = new XFAObjectArray();\n    this.assist = new XFAObjectArray();\n    this.barcode = new XFAObjectArray();\n    this.bindItems = new XFAObjectArray();\n    this.bookend = new XFAObjectArray();\n    this.boolean = new XFAObjectArray();\n    this.border = new XFAObjectArray();\n    this.break = new XFAObjectArray();\n    this.breakAfter = new XFAObjectArray();\n    this.breakBefore = new XFAObjectArray();\n    this.button = new XFAObjectArray();\n    this.calculate = new XFAObjectArray();\n    this.caption = new XFAObjectArray();\n    this.certificate = new XFAObjectArray();\n    this.certificates = new XFAObjectArray();\n    this.checkButton = new XFAObjectArray();\n    this.choiceList = new XFAObjectArray();\n    this.color = new XFAObjectArray();\n    this.comb = new XFAObjectArray();\n    this.connect = new XFAObjectArray();\n    this.contentArea = new XFAObjectArray();\n    this.corner = new XFAObjectArray();\n    this.date = new XFAObjectArray();\n    this.dateTime = new XFAObjectArray();\n    this.dateTimeEdit = new XFAObjectArray();\n    this.decimal = new XFAObjectArray();\n    this.defaultUi = new XFAObjectArray();\n    this.desc = new XFAObjectArray();\n    this.digestMethod = new XFAObjectArray();\n    this.digestMethods = new XFAObjectArray();\n    this.draw = new XFAObjectArray();\n    this.edge = new XFAObjectArray();\n    this.encoding = new XFAObjectArray();\n    this.encodings = new XFAObjectArray();\n    this.encrypt = new XFAObjectArray();\n    this.encryptData = new XFAObjectArray();\n    this.encryption = new XFAObjectArray();\n    this.encryptionMethod = new XFAObjectArray();\n    this.encryptionMethods = new XFAObjectArray();\n    this.event = new XFAObjectArray();\n    this.exData = new XFAObjectArray();\n    this.exObject = new XFAObjectArray();\n    this.exclGroup = new XFAObjectArray();\n    this.execute = new XFAObjectArray();\n    this.extras = new XFAObjectArray();\n    this.field = new XFAObjectArray();\n    this.fill = new XFAObjectArray();\n    this.filter = new XFAObjectArray();\n    this.float = new XFAObjectArray();\n    this.font = new XFAObjectArray();\n    this.format = new XFAObjectArray();\n    this.handler = new XFAObjectArray();\n    this.hyphenation = new XFAObjectArray();\n    this.image = new XFAObjectArray();\n    this.imageEdit = new XFAObjectArray();\n    this.integer = new XFAObjectArray();\n    this.issuers = new XFAObjectArray();\n    this.items = new XFAObjectArray();\n    this.keep = new XFAObjectArray();\n    this.keyUsage = new XFAObjectArray();\n    this.line = new XFAObjectArray();\n    this.linear = new XFAObjectArray();\n    this.lockDocument = new XFAObjectArray();\n    this.manifest = new XFAObjectArray();\n    this.margin = new XFAObjectArray();\n    this.mdp = new XFAObjectArray();\n    this.medium = new XFAObjectArray();\n    this.message = new XFAObjectArray();\n    this.numericEdit = new XFAObjectArray();\n    this.occur = new XFAObjectArray();\n    this.oid = new XFAObjectArray();\n    this.oids = new XFAObjectArray();\n    this.overflow = new XFAObjectArray();\n    this.pageArea = new XFAObjectArray();\n    this.pageSet = new XFAObjectArray();\n    this.para = new XFAObjectArray();\n    this.passwordEdit = new XFAObjectArray();\n    this.pattern = new XFAObjectArray();\n    this.picture = new XFAObjectArray();\n    this.radial = new XFAObjectArray();\n    this.reason = new XFAObjectArray();\n    this.reasons = new XFAObjectArray();\n    this.rectangle = new XFAObjectArray();\n    this.ref = new XFAObjectArray();\n    this.script = new XFAObjectArray();\n    this.setProperty = new XFAObjectArray();\n    this.signData = new XFAObjectArray();\n    this.signature = new XFAObjectArray();\n    this.signing = new XFAObjectArray();\n    this.solid = new XFAObjectArray();\n    this.speak = new XFAObjectArray();\n    this.stipple = new XFAObjectArray();\n    this.subform = new XFAObjectArray();\n    this.subformSet = new XFAObjectArray();\n    this.subjectDN = new XFAObjectArray();\n    this.subjectDNs = new XFAObjectArray();\n    this.submit = new XFAObjectArray();\n    this.text = new XFAObjectArray();\n    this.textEdit = new XFAObjectArray();\n    this.time = new XFAObjectArray();\n    this.timeStamp = new XFAObjectArray();\n    this.toolTip = new XFAObjectArray();\n    this.traversal = new XFAObjectArray();\n    this.traverse = new XFAObjectArray();\n    this.ui = new XFAObjectArray();\n    this.validate = new XFAObjectArray();\n    this.value = new XFAObjectArray();\n    this.variables = new XFAObjectArray();\n  }\n}\n\nclass Radial extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"radial\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"toEdge\", \"toCenter\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n\n  [$toStyle](startColor) {\n    startColor = startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n    const endColor = this.color ? this.color[$toStyle]() : \"#000000\";\n    const colors =\n      this.type === \"toEdge\"\n        ? `${startColor},${endColor}`\n        : `${endColor},${startColor}`;\n    return `radial-gradient(circle at center, ${colors})`;\n  }\n}\n\nclass Reason extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"reason\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass Reasons extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"reasons\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.reason = new XFAObjectArray();\n  }\n}\n\nclass Rectangle extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"rectangle\", /* hasChildren = */ true);\n    this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.corner = new XFAObjectArray(4);\n    this.edge = new XFAObjectArray(4);\n    this.fill = null;\n  }\n\n  [$toHTML]() {\n    const edge = this.edge.children.length\n      ? this.edge.children[0]\n      : new Edge({});\n    const edgeStyle = edge[$toStyle]();\n    const style = Object.create(null);\n    if (this.fill?.presence === \"visible\") {\n      Object.assign(style, this.fill[$toStyle]());\n    } else {\n      style.fill = \"transparent\";\n    }\n    style.strokeWidth = measureToString(\n      edge.presence === \"visible\" ? edge.thickness : 0\n    );\n    style.stroke = edgeStyle.color;\n\n    const corner = this.corner.children.length\n      ? this.corner.children[0]\n      : new Corner({});\n    const cornerStyle = corner[$toStyle]();\n\n    const rect = {\n      name: \"rect\",\n      attributes: {\n        xmlns: SVG_NS,\n        width: \"100%\",\n        height: \"100%\",\n        x: 0,\n        y: 0,\n        rx: cornerStyle.radius,\n        ry: cornerStyle.radius,\n        style,\n      },\n    };\n\n    const svg = {\n      name: \"svg\",\n      children: [rect],\n      attributes: {\n        xmlns: SVG_NS,\n        style: {\n          overflow: \"visible\",\n        },\n        width: \"100%\",\n        height: \"100%\",\n      },\n    };\n\n    const parent = this[$getParent]()[$getParent]();\n    if (hasMargin(parent)) {\n      return HTMLResult.success({\n        name: \"div\",\n        attributes: {\n          style: {\n            display: \"inline\",\n            width: \"100%\",\n            height: \"100%\",\n          },\n        },\n        children: [svg],\n      });\n    }\n\n    svg.attributes.style.position = \"absolute\";\n    return HTMLResult.success(svg);\n  }\n}\n\nclass RefElement extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"ref\");\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass Script extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"script\");\n    this.binding = attributes.binding || \"\";\n    this.contentType = attributes.contentType || \"\";\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.runAt = getStringOption(attributes.runAt, [\n      \"client\",\n      \"both\",\n      \"server\",\n    ]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass SetProperty extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"setProperty\");\n    this.connection = attributes.connection || \"\";\n    this.ref = attributes.ref || \"\";\n    this.target = attributes.target || \"\";\n  }\n}\n\nclass SignData extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"signData\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.operation = getStringOption(attributes.operation, [\n      \"sign\",\n      \"clear\",\n      \"verify\",\n    ]);\n    this.ref = attributes.ref || \"\";\n    this.target = attributes.target || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.filter = null;\n    this.manifest = null;\n  }\n}\n\nclass Signature extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"signature\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"PDF1.3\", \"PDF1.6\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.extras = null;\n    this.filter = null;\n    this.manifest = null;\n    this.margin = null;\n  }\n}\n\nclass Signing extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"signing\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.certificate = new XFAObjectArray();\n  }\n}\n\nclass Solid extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"solid\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n\n  [$toStyle](startColor) {\n    return startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n  }\n}\n\nclass Speak extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"speak\");\n    this.disable = getInteger({\n      data: attributes.disable,\n      defaultValue: 0,\n      validate: x => x === 1,\n    });\n    this.id = attributes.id || \"\";\n    this.priority = getStringOption(attributes.priority, [\n      \"custom\",\n      \"caption\",\n      \"name\",\n      \"toolTip\",\n    ]);\n    this.rid = attributes.rid || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass Stipple extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"stipple\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.rate = getInteger({\n      data: attributes.rate,\n      defaultValue: 50,\n      validate: x => x >= 0 && x <= 100,\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n\n  [$toStyle](bgColor) {\n    const alpha = this.rate / 100;\n    return Util.makeHexColor(\n      Math.round(bgColor.value.r * (1 - alpha) + this.value.r * alpha),\n      Math.round(bgColor.value.g * (1 - alpha) + this.value.g * alpha),\n      Math.round(bgColor.value.b * (1 - alpha) + this.value.b * alpha)\n    );\n  }\n}\n\nclass Subform extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"subform\", /* hasChildren = */ true);\n    this.access = getStringOption(attributes.access, [\n      \"open\",\n      \"nonInteractive\",\n      \"protected\",\n      \"readOnly\",\n    ]);\n    this.allowMacro = getInteger({\n      data: attributes.allowMacro,\n      defaultValue: 0,\n      validate: x => x === 1,\n    });\n    this.anchorType = getStringOption(attributes.anchorType, [\n      \"topLeft\",\n      \"bottomCenter\",\n      \"bottomLeft\",\n      \"bottomRight\",\n      \"middleCenter\",\n      \"middleLeft\",\n      \"middleRight\",\n      \"topCenter\",\n      \"topRight\",\n    ]);\n    this.colSpan = getInteger({\n      data: attributes.colSpan,\n      defaultValue: 1,\n      validate: n => n >= 1 || n === -1,\n    });\n    this.columnWidths = (attributes.columnWidths || \"\")\n      .trim()\n      .split(/\\s+/)\n      .map(x => (x === \"-1\" ? -1 : getMeasurement(x)));\n    this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n    this.hAlign = getStringOption(attributes.hAlign, [\n      \"left\",\n      \"center\",\n      \"justify\",\n      \"justifyAll\",\n      \"radix\",\n      \"right\",\n    ]);\n    this.id = attributes.id || \"\";\n    this.layout = getStringOption(attributes.layout, [\n      \"position\",\n      \"lr-tb\",\n      \"rl-row\",\n      \"rl-tb\",\n      \"row\",\n      \"table\",\n      \"tb\",\n    ]);\n    this.locale = attributes.locale || \"\";\n    this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n    this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n    this.mergeMode = getStringOption(attributes.mergeMode, [\n      \"consumeData\",\n      \"matchTemplate\",\n    ]);\n    this.minH = getMeasurement(attributes.minH, \"0pt\");\n    this.minW = getMeasurement(attributes.minW, \"0pt\");\n    this.name = attributes.name || \"\";\n    this.presence = getStringOption(attributes.presence, [\n      \"visible\",\n      \"hidden\",\n      \"inactive\",\n      \"invisible\",\n    ]);\n    this.relevant = getRelevant(attributes.relevant);\n    this.restoreState = getStringOption(attributes.restoreState, [\n      \"manual\",\n      \"auto\",\n    ]);\n    this.scope = getStringOption(attributes.scope, [\"name\", \"none\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n    this.x = getMeasurement(attributes.x, \"0pt\");\n    this.y = getMeasurement(attributes.y, \"0pt\");\n    this.assist = null;\n    this.bind = null;\n    this.bookend = null;\n    this.border = null;\n    this.break = null;\n    this.calculate = null;\n    this.desc = null;\n    this.extras = null;\n    this.keep = null;\n    this.margin = null;\n    this.occur = null;\n    this.overflow = null;\n    this.pageSet = null;\n    this.para = null;\n    this.traversal = null;\n    this.validate = null;\n    this.variables = null;\n    this.area = new XFAObjectArray();\n    this.breakAfter = new XFAObjectArray();\n    this.breakBefore = new XFAObjectArray();\n    this.connect = new XFAObjectArray();\n    this.draw = new XFAObjectArray();\n    this.event = new XFAObjectArray();\n    this.exObject = new XFAObjectArray();\n    this.exclGroup = new XFAObjectArray();\n    this.field = new XFAObjectArray();\n    this.proto = new XFAObjectArray();\n    this.setProperty = new XFAObjectArray();\n    this.subform = new XFAObjectArray();\n    this.subformSet = new XFAObjectArray();\n  }\n\n  [$getSubformParent]() {\n    const parent = this[$getParent]();\n    if (parent instanceof SubformSet) {\n      return parent[$getSubformParent]();\n    }\n    return parent;\n  }\n\n  [$isBindable]() {\n    return true;\n  }\n\n  [$isThereMoreWidth]() {\n    return (\n      (this.layout.endsWith(\"-tb\") &&\n        this[$extra].attempt === 0 &&\n        this[$extra].numberInLine > 0) ||\n      this[$getParent]()[$isThereMoreWidth]()\n    );\n  }\n\n  *[$getContainedChildren]() {\n    // This function is overriden in order to fake that subforms under\n    // this set are in fact under parent subform.\n    yield* getContainedChildren(this);\n  }\n\n  [$flushHTML]() {\n    return flushHTML(this);\n  }\n\n  [$addHTML](html, bbox) {\n    addHTML(this, html, bbox);\n  }\n\n  [$getAvailableSpace]() {\n    return getAvailableSpace(this);\n  }\n\n  [$isSplittable]() {\n    // We cannot cache the result here because the contentArea\n    // can change.\n    const parent = this[$getSubformParent]();\n    if (!parent[$isSplittable]()) {\n      return false;\n    }\n\n    if (this[$extra]._isSplittable !== undefined) {\n      return this[$extra]._isSplittable;\n    }\n\n    if (this.layout === \"position\" || this.layout.includes(\"row\")) {\n      this[$extra]._isSplittable = false;\n      return false;\n    }\n\n    if (this.keep && this.keep.intact !== \"none\") {\n      this[$extra]._isSplittable = false;\n      return false;\n    }\n\n    if (parent.layout?.endsWith(\"-tb\") && parent[$extra].numberInLine !== 0) {\n      // If parent can fit in w=100 and there's already an element which takes\n      // 90 then we've 10 for this element. Suppose this element has a tb layout\n      // and 5 elements have a width of 7 and the 6th has a width of 20:\n      // then this element (and all its content) must move on the next line.\n      // If this element is splittable then the first 5 children will stay\n      // at the end of the line: we don't want that.\n      return false;\n    }\n\n    this[$extra]._isSplittable = true;\n\n    return true;\n  }\n\n  [$toHTML](availableSpace) {\n    setTabIndex(this);\n\n    if (this.break) {\n      // break element is deprecated so plug it on one of its replacement\n      // breakBefore or breakAfter.\n      if (this.break.after !== \"auto\" || this.break.afterTarget !== \"\") {\n        const node = new BreakAfter({\n          targetType: this.break.after,\n          target: this.break.afterTarget,\n          startNew: this.break.startNew.toString(),\n        });\n        node[$globalData] = this[$globalData];\n        this[$appendChild](node);\n        this.breakAfter.push(node);\n      }\n\n      if (this.break.before !== \"auto\" || this.break.beforeTarget !== \"\") {\n        const node = new BreakBefore({\n          targetType: this.break.before,\n          target: this.break.beforeTarget,\n          startNew: this.break.startNew.toString(),\n        });\n        node[$globalData] = this[$globalData];\n        this[$appendChild](node);\n        this.breakBefore.push(node);\n      }\n\n      if (this.break.overflowTarget !== \"\") {\n        const node = new Overflow({\n          target: this.break.overflowTarget,\n          leader: this.break.overflowLeader,\n          trailer: this.break.overflowTrailer,\n        });\n        node[$globalData] = this[$globalData];\n        this[$appendChild](node);\n        this.overflow.push(node);\n      }\n\n      this[$removeChild](this.break);\n      this.break = null;\n    }\n\n    if (this.presence === \"hidden\" || this.presence === \"inactive\") {\n      return HTMLResult.EMPTY;\n    }\n\n    if (\n      this.breakBefore.children.length > 1 ||\n      this.breakAfter.children.length > 1\n    ) {\n      // Specs are always talking about the breakBefore element\n      // and it doesn't really make sense to have several ones.\n      warn(\n        \"XFA - Several breakBefore or breakAfter in subforms: please file a bug.\"\n      );\n    }\n\n    if (this.breakBefore.children.length >= 1) {\n      const breakBefore = this.breakBefore.children[0];\n      if (handleBreak(breakBefore)) {\n        return HTMLResult.breakNode(breakBefore);\n      }\n    }\n\n    if (this[$extra]?.afterBreakAfter) {\n      return HTMLResult.EMPTY;\n    }\n\n    // TODO: incomplete.\n    fixDimensions(this);\n    const children = [];\n    const attributes = {\n      id: this[$uid],\n      class: [],\n    };\n\n    setAccess(this, attributes.class);\n\n    if (!this[$extra]) {\n      this[$extra] = Object.create(null);\n    }\n\n    Object.assign(this[$extra], {\n      children,\n      line: null,\n      attributes,\n      attempt: 0,\n      numberInLine: 0,\n      availableSpace: {\n        width: Math.min(this.w || Infinity, availableSpace.width),\n        height: Math.min(this.h || Infinity, availableSpace.height),\n      },\n      width: 0,\n      height: 0,\n      prevHeight: 0,\n      currentWidth: 0,\n    });\n\n    const root = this[$getTemplateRoot]();\n    const savedNoLayoutFailure = root[$extra].noLayoutFailure;\n\n    const isSplittable = this[$isSplittable]();\n    if (!isSplittable) {\n      setFirstUnsplittable(this);\n    }\n\n    if (!checkDimensions(this, availableSpace)) {\n      return HTMLResult.FAILURE;\n    }\n\n    const filter = new Set([\n      \"area\",\n      \"draw\",\n      \"exclGroup\",\n      \"field\",\n      \"subform\",\n      \"subformSet\",\n    ]);\n\n    if (this.layout.includes(\"row\")) {\n      const columnWidths = this[$getSubformParent]().columnWidths;\n      if (Array.isArray(columnWidths) && columnWidths.length > 0) {\n        this[$extra].columnWidths = columnWidths;\n        this[$extra].currentColumn = 0;\n      }\n    }\n\n    const style = toStyle(\n      this,\n      \"anchorType\",\n      \"dimensions\",\n      \"position\",\n      \"presence\",\n      \"border\",\n      \"margin\",\n      \"hAlign\"\n    );\n    const classNames = [\"xfaSubform\"];\n    const cl = layoutClass(this);\n    if (cl) {\n      classNames.push(cl);\n    }\n\n    attributes.style = style;\n    attributes.class = classNames;\n\n    if (this.name) {\n      attributes.xfaName = this.name;\n    }\n\n    if (this.overflow) {\n      const overflowExtra = this.overflow[$getExtra]();\n      if (overflowExtra.addLeader) {\n        overflowExtra.addLeader = false;\n        handleOverflow(this, overflowExtra.leader, availableSpace);\n      }\n    }\n\n    this[$pushPara]();\n    const isLrTb = this.layout === \"lr-tb\" || this.layout === \"rl-tb\";\n    const maxRun = isLrTb ? MAX_ATTEMPTS_FOR_LRTB_LAYOUT : 1;\n    for (; this[$extra].attempt < maxRun; this[$extra].attempt++) {\n      if (isLrTb && this[$extra].attempt === MAX_ATTEMPTS_FOR_LRTB_LAYOUT - 1) {\n        // If the layout is lr-tb then having attempt equals to\n        // MAX_ATTEMPTS_FOR_LRTB_LAYOUT-1 means that we're trying to layout\n        // on the next line so this on is empty.\n        this[$extra].numberInLine = 0;\n      }\n      const result = this[$childrenToHTML]({\n        filter,\n        include: true,\n      });\n      if (result.success) {\n        break;\n      }\n      if (result.isBreak()) {\n        this[$popPara]();\n        return result;\n      }\n      if (\n        isLrTb &&\n        this[$extra].attempt === 0 &&\n        this[$extra].numberInLine === 0 &&\n        !root[$extra].noLayoutFailure\n      ) {\n        // We're failing to put the first element on the line so no\n        // need to test on the next line.\n        // The goal is not only to avoid some useless checks but to avoid\n        // bugs too: if a descendant managed to put a node and failed\n        // on the next one, going to the next step here will imply to\n        // visit the descendant again, clear [$extra].children and restart\n        // on the failing node, consequently the first node just disappears\n        // because it has never been flushed.\n        this[$extra].attempt = maxRun;\n        break;\n      }\n    }\n\n    this[$popPara]();\n    if (!isSplittable) {\n      unsetFirstUnsplittable(this);\n    }\n    root[$extra].noLayoutFailure = savedNoLayoutFailure;\n\n    if (this[$extra].attempt === maxRun) {\n      if (this.overflow) {\n        this[$getTemplateRoot]()[$extra].overflowNode = this.overflow;\n      }\n\n      if (!isSplittable) {\n        // Since a new try will happen in a new container with maybe\n        // new dimensions, we invalidate already layed out components.\n        delete this[$extra];\n      }\n      return HTMLResult.FAILURE;\n    }\n\n    if (this.overflow) {\n      const overflowExtra = this.overflow[$getExtra]();\n      if (overflowExtra.addTrailer) {\n        overflowExtra.addTrailer = false;\n        handleOverflow(this, overflowExtra.trailer, availableSpace);\n      }\n    }\n\n    let marginH = 0;\n    let marginV = 0;\n    if (this.margin) {\n      marginH = this.margin.leftInset + this.margin.rightInset;\n      marginV = this.margin.topInset + this.margin.bottomInset;\n    }\n\n    const width = Math.max(this[$extra].width + marginH, this.w || 0);\n    const height = Math.max(this[$extra].height + marginV, this.h || 0);\n    const bbox = [this.x, this.y, width, height];\n\n    if (this.w === \"\") {\n      style.width = measureToString(width);\n    }\n    if (this.h === \"\") {\n      style.height = measureToString(height);\n    }\n\n    if (\n      (style.width === \"0px\" || style.height === \"0px\") &&\n      children.length === 0\n    ) {\n      return HTMLResult.EMPTY;\n    }\n\n    const html = {\n      name: \"div\",\n      attributes,\n      children,\n    };\n\n    applyAssist(this, attributes);\n\n    const result = HTMLResult.success(createWrapper(this, html), bbox);\n\n    if (this.breakAfter.children.length >= 1) {\n      const breakAfter = this.breakAfter.children[0];\n      if (handleBreak(breakAfter)) {\n        this[$extra].afterBreakAfter = result;\n        return HTMLResult.breakNode(breakAfter);\n      }\n    }\n\n    delete this[$extra];\n\n    return result;\n  }\n}\n\nclass SubformSet extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"subformSet\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.relation = getStringOption(attributes.relation, [\n      \"ordered\",\n      \"choice\",\n      \"unordered\",\n    ]);\n    this.relevant = getRelevant(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.bookend = null;\n    this.break = null;\n    this.desc = null;\n    this.extras = null;\n    this.occur = null;\n    this.overflow = null;\n    this.breakAfter = new XFAObjectArray();\n    this.breakBefore = new XFAObjectArray();\n    this.subform = new XFAObjectArray();\n    this.subformSet = new XFAObjectArray();\n\n    // TODO: need to handle break stuff and relation.\n  }\n\n  *[$getContainedChildren]() {\n    // This function is overriden in order to fake that subforms under\n    // this set are in fact under parent subform.\n    yield* getContainedChildren(this);\n  }\n\n  [$getSubformParent]() {\n    let parent = this[$getParent]();\n    while (!(parent instanceof Subform)) {\n      parent = parent[$getParent]();\n    }\n    return parent;\n  }\n\n  [$isBindable]() {\n    return true;\n  }\n}\n\nclass SubjectDN extends ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"subjectDN\");\n    this.delimiter = attributes.delimiter || \",\";\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [$finalize]() {\n    this[$content] = new Map(\n      this[$content].split(this.delimiter).map(kv => {\n        kv = kv.split(\"=\", 2);\n        kv[0] = kv[0].trim();\n        return kv;\n      })\n    );\n  }\n}\n\nclass SubjectDNs extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"subjectDNs\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.subjectDN = new XFAObjectArray();\n  }\n}\n\nclass Submit extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"submit\", /* hasChildren = */ true);\n    this.embedPDF = getInteger({\n      data: attributes.embedPDF,\n      defaultValue: 0,\n      validate: x => x === 1,\n    });\n    this.format = getStringOption(attributes.format, [\n      \"xdp\",\n      \"formdata\",\n      \"pdf\",\n      \"urlencoded\",\n      \"xfd\",\n      \"xml\",\n    ]);\n    this.id = attributes.id || \"\";\n    this.target = attributes.target || \"\";\n    this.textEncoding = getKeyword({\n      data: attributes.textEncoding\n        ? attributes.textEncoding.toLowerCase()\n        : \"\",\n      defaultValue: \"\",\n      validate: k =>\n        [\n          \"utf-8\",\n          \"big-five\",\n          \"fontspecific\",\n          \"gbk\",\n          \"gb-18030\",\n          \"gb-2312\",\n          \"ksc-5601\",\n          \"none\",\n          \"shift-jis\",\n          \"ucs-2\",\n          \"utf-16\",\n        ].includes(k) || k.match(/iso-8859-\\d{2}/),\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.xdpContent = attributes.xdpContent || \"\";\n    this.encrypt = null;\n    this.encryptData = new XFAObjectArray();\n    this.signData = new XFAObjectArray();\n  }\n}\n\nclass Template extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"template\", /* hasChildren = */ true);\n    this.baseProfile = getStringOption(attributes.baseProfile, [\n      \"full\",\n      \"interactiveForms\",\n    ]);\n    this.extras = null;\n\n    // Spec is unclear:\n    //  A container element that describes a single subform capable of\n    //  enclosing other containers.\n    // Can we have more than one subform ?\n    this.subform = new XFAObjectArray();\n  }\n\n  [$finalize]() {\n    if (this.subform.children.length === 0) {\n      warn(\"XFA - No subforms in template node.\");\n    }\n    if (this.subform.children.length >= 2) {\n      warn(\"XFA - Several subforms in template node: please file a bug.\");\n    }\n    this[$tabIndex] = DEFAULT_TAB_INDEX;\n  }\n\n  [$isSplittable]() {\n    return true;\n  }\n\n  [$searchNode](expr, container) {\n    if (expr.startsWith(\"#\")) {\n      // This is an id.\n      return [this[$ids].get(expr.slice(1))];\n    }\n    return searchNode(this, container, expr, true, true);\n  }\n\n  /**\n   * This function is a generator because the conversion into\n   * pages is done asynchronously and we want to save the state\n   * of the function where we were in the previous iteration.\n   */\n  *[$toPages]() {\n    if (!this.subform.children.length) {\n      return HTMLResult.success({\n        name: \"div\",\n        children: [],\n      });\n    }\n    this[$extra] = {\n      overflowNode: null,\n      firstUnsplittable: null,\n      currentContentArea: null,\n      currentPageArea: null,\n      noLayoutFailure: false,\n      pageNumber: 1,\n      pagePosition: \"first\",\n      oddOrEven: \"odd\",\n      blankOrNotBlank: \"nonBlank\",\n      paraStack: [],\n    };\n\n    const root = this.subform.children[0];\n    root.pageSet[$cleanPage]();\n\n    const pageAreas = root.pageSet.pageArea.children;\n    const mainHtml = {\n      name: \"div\",\n      children: [],\n    };\n\n    let pageArea = null;\n    let breakBefore = null;\n    let breakBeforeTarget = null;\n    if (root.breakBefore.children.length >= 1) {\n      breakBefore = root.breakBefore.children[0];\n      breakBeforeTarget = breakBefore.target;\n    } else if (\n      root.subform.children.length >= 1 &&\n      root.subform.children[0].breakBefore.children.length >= 1\n    ) {\n      breakBefore = root.subform.children[0].breakBefore.children[0];\n      breakBeforeTarget = breakBefore.target;\n    } else if (root.break?.beforeTarget) {\n      breakBefore = root.break;\n      breakBeforeTarget = breakBefore.beforeTarget;\n    } else if (\n      root.subform.children.length >= 1 &&\n      root.subform.children[0].break?.beforeTarget\n    ) {\n      breakBefore = root.subform.children[0].break;\n      breakBeforeTarget = breakBefore.beforeTarget;\n    }\n\n    if (breakBefore) {\n      const target = this[$searchNode](\n        breakBeforeTarget,\n        breakBefore[$getParent]()\n      );\n      if (target instanceof PageArea) {\n        pageArea = target;\n        // Consume breakBefore.\n        breakBefore[$extra] = {};\n      }\n    }\n\n    if (!pageArea) {\n      pageArea = pageAreas[0];\n    }\n\n    pageArea[$extra] = {\n      numberOfUse: 1,\n    };\n\n    const pageAreaParent = pageArea[$getParent]();\n    pageAreaParent[$extra] = {\n      numberOfUse: 1,\n      pageIndex: pageAreaParent.pageArea.children.indexOf(pageArea),\n      pageSetIndex: 0,\n    };\n\n    let targetPageArea;\n    let leader = null;\n    let trailer = null;\n    let hasSomething = true;\n    let hasSomethingCounter = 0;\n    let startIndex = 0;\n\n    while (true) {\n      if (!hasSomething) {\n        mainHtml.children.pop();\n        // Nothing has been added in the previous page\n        if (++hasSomethingCounter === MAX_EMPTY_PAGES) {\n          warn(\"XFA - Something goes wrong: please file a bug.\");\n          return mainHtml;\n        }\n      } else {\n        hasSomethingCounter = 0;\n      }\n\n      targetPageArea = null;\n      this[$extra].currentPageArea = pageArea;\n      const page = pageArea[$toHTML]().html;\n      mainHtml.children.push(page);\n\n      if (leader) {\n        this[$extra].noLayoutFailure = true;\n        page.children.push(leader[$toHTML](pageArea[$extra].space).html);\n        leader = null;\n      }\n\n      if (trailer) {\n        this[$extra].noLayoutFailure = true;\n        page.children.push(trailer[$toHTML](pageArea[$extra].space).html);\n        trailer = null;\n      }\n\n      const contentAreas = pageArea.contentArea.children;\n      const htmlContentAreas = page.children.filter(node =>\n        node.attributes.class.includes(\"xfaContentarea\")\n      );\n\n      hasSomething = false;\n      this[$extra].firstUnsplittable = null;\n      this[$extra].noLayoutFailure = false;\n\n      const flush = index => {\n        const html = root[$flushHTML]();\n        if (html) {\n          hasSomething ||= html.children?.length > 0;\n          htmlContentAreas[index].children.push(html);\n        }\n      };\n\n      for (let i = startIndex, ii = contentAreas.length; i < ii; i++) {\n        const contentArea = (this[$extra].currentContentArea = contentAreas[i]);\n        const space = { width: contentArea.w, height: contentArea.h };\n        startIndex = 0;\n\n        if (leader) {\n          htmlContentAreas[i].children.push(leader[$toHTML](space).html);\n          leader = null;\n        }\n\n        if (trailer) {\n          htmlContentAreas[i].children.push(trailer[$toHTML](space).html);\n          trailer = null;\n        }\n\n        const html = root[$toHTML](space);\n        if (html.success) {\n          if (html.html) {\n            hasSomething ||= html.html.children?.length > 0;\n            htmlContentAreas[i].children.push(html.html);\n          } else if (!hasSomething && mainHtml.children.length > 1) {\n            mainHtml.children.pop();\n          }\n          return mainHtml;\n        }\n\n        if (html.isBreak()) {\n          const node = html.breakNode;\n          flush(i);\n\n          if (node.targetType === \"auto\") {\n            continue;\n          }\n\n          if (node.leader) {\n            leader = this[$searchNode](node.leader, node[$getParent]());\n            leader = leader ? leader[0] : null;\n          }\n\n          if (node.trailer) {\n            trailer = this[$searchNode](node.trailer, node[$getParent]());\n            trailer = trailer ? trailer[0] : null;\n          }\n\n          if (node.targetType === \"pageArea\") {\n            targetPageArea = node[$extra].target;\n            i = Infinity;\n          } else if (!node[$extra].target) {\n            // We stay on the same page.\n            i = node[$extra].index;\n          } else {\n            targetPageArea = node[$extra].target;\n            startIndex = node[$extra].index + 1;\n            i = Infinity;\n          }\n\n          continue;\n        }\n\n        if (this[$extra].overflowNode) {\n          const node = this[$extra].overflowNode;\n          this[$extra].overflowNode = null;\n\n          const overflowExtra = node[$getExtra]();\n          const target = overflowExtra.target;\n          overflowExtra.addLeader = overflowExtra.leader !== null;\n          overflowExtra.addTrailer = overflowExtra.trailer !== null;\n\n          flush(i);\n\n          const currentIndex = i;\n\n          i = Infinity;\n          if (target instanceof PageArea) {\n            // We must stop the contentAreas filling and go to the next page.\n            targetPageArea = target;\n          } else if (target instanceof ContentArea) {\n            const index = contentAreas.indexOf(target);\n            if (index !== -1) {\n              if (index > currentIndex) {\n                // In the next loop iteration `i` will be incremented, note the\n                // `continue` just below, hence we need to subtract one here.\n                i = index - 1;\n              } else {\n                // The targetted contentArea has already been filled\n                // so create a new page.\n                startIndex = index;\n              }\n            } else {\n              targetPageArea = target[$getParent]();\n              startIndex = targetPageArea.contentArea.children.indexOf(target);\n            }\n          }\n          continue;\n        }\n\n        flush(i);\n      }\n\n      this[$extra].pageNumber += 1;\n      if (targetPageArea) {\n        if (targetPageArea[$isUsable]()) {\n          targetPageArea[$extra].numberOfUse += 1;\n        } else {\n          targetPageArea = null;\n        }\n      }\n      pageArea = targetPageArea || pageArea[$getNextPage]();\n      yield null;\n    }\n  }\n}\n\nclass Text extends ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"text\");\n    this.id = attributes.id || \"\";\n    this.maxChars = getInteger({\n      data: attributes.maxChars,\n      defaultValue: 0,\n      validate: x => x >= 0,\n    });\n    this.name = attributes.name || \"\";\n    this.rid = attributes.rid || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [$acceptWhitespace]() {\n    return true;\n  }\n\n  [$onChild](child) {\n    if (child[$namespaceId] === NamespaceIds.xhtml.id) {\n      this[$content] = child;\n      return true;\n    }\n    warn(`XFA - Invalid content in Text: ${child[$nodeName]}.`);\n    return false;\n  }\n\n  [$onText](str) {\n    if (this[$content] instanceof XFAObject) {\n      return;\n    }\n    super[$onText](str);\n  }\n\n  [$finalize]() {\n    if (typeof this[$content] === \"string\") {\n      this[$content] = this[$content].replaceAll(\"\\r\\n\", \"\\n\");\n    }\n  }\n\n  [$getExtra]() {\n    if (typeof this[$content] === \"string\") {\n      return this[$content]\n        .split(/[\\u2029\\u2028\\n]/)\n        .reduce((acc, line) => {\n          if (line) {\n            acc.push(line);\n          }\n          return acc;\n        }, [])\n        .join(\"\\n\");\n    }\n    return this[$content][$text]();\n  }\n\n  [$toHTML](availableSpace) {\n    if (typeof this[$content] === \"string\") {\n      // \\u2028 is a line separator.\n      // \\u2029 is a paragraph separator.\n      const html = valueToHtml(this[$content]).html;\n\n      if (this[$content].includes(\"\\u2029\")) {\n        // We've plain text containing a paragraph separator\n        // so convert it into a set of <p>.\n        html.name = \"div\";\n        html.children = [];\n        this[$content]\n          .split(\"\\u2029\")\n          .map(para =>\n            // Convert a paragraph into a set of <span> (for lines)\n            // separated by <br>.\n            para.split(/[\\u2028\\n]/).reduce((acc, line) => {\n              acc.push(\n                {\n                  name: \"span\",\n                  value: line,\n                },\n                {\n                  name: \"br\",\n                }\n              );\n              return acc;\n            }, [])\n          )\n          .forEach(lines => {\n            html.children.push({\n              name: \"p\",\n              children: lines,\n            });\n          });\n      } else if (/[\\u2028\\n]/.test(this[$content])) {\n        html.name = \"div\";\n        html.children = [];\n        // Convert plain text into a set of <span> (for lines)\n        // separated by <br>.\n        this[$content].split(/[\\u2028\\n]/).forEach(line => {\n          html.children.push(\n            {\n              name: \"span\",\n              value: line,\n            },\n            {\n              name: \"br\",\n            }\n          );\n        });\n      }\n\n      return HTMLResult.success(html);\n    }\n\n    return this[$content][$toHTML](availableSpace);\n  }\n}\n\nclass TextEdit extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"textEdit\", /* hasChildren = */ true);\n    this.allowRichText = getInteger({\n      data: attributes.allowRichText,\n      defaultValue: 0,\n      validate: x => x === 1,\n    });\n    this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n      \"auto\",\n      \"off\",\n      \"on\",\n    ]);\n    this.id = attributes.id || \"\";\n    this.multiLine = getInteger({\n      data: attributes.multiLine,\n      defaultValue: \"\",\n      validate: x => x === 0 || x === 1,\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.vScrollPolicy = getStringOption(attributes.vScrollPolicy, [\n      \"auto\",\n      \"off\",\n      \"on\",\n    ]);\n    this.border = null;\n    this.comb = null;\n    this.extras = null;\n    this.margin = null;\n  }\n\n  [$toHTML](availableSpace) {\n    // TODO: incomplete.\n    const style = toStyle(this, \"border\", \"font\", \"margin\");\n    let html;\n    const field = this[$getParent]()[$getParent]();\n    if (this.multiLine === \"\") {\n      this.multiLine = field instanceof Draw ? 1 : 0;\n    }\n    if (this.multiLine === 1) {\n      html = {\n        name: \"textarea\",\n        attributes: {\n          dataId: field[$data]?.[$uid] || field[$uid],\n          fieldId: field[$uid],\n          class: [\"xfaTextfield\"],\n          style,\n          \"aria-label\": ariaLabel(field),\n          \"aria-required\": false,\n        },\n      };\n    } else {\n      html = {\n        name: \"input\",\n        attributes: {\n          type: \"text\",\n          dataId: field[$data]?.[$uid] || field[$uid],\n          fieldId: field[$uid],\n          class: [\"xfaTextfield\"],\n          style,\n          \"aria-label\": ariaLabel(field),\n          \"aria-required\": false,\n        },\n      };\n    }\n\n    if (isRequired(field)) {\n      html.attributes[\"aria-required\"] = true;\n      html.attributes.required = true;\n    }\n\n    return HTMLResult.success({\n      name: \"label\",\n      attributes: {\n        class: [\"xfaLabel\"],\n      },\n      children: [html],\n    });\n  }\n}\n\nclass Time extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"time\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [$finalize]() {\n    // TODO: need to handle the string as a time and not as a date.\n    const date = this[$content].trim();\n    this[$content] = date ? new Date(date) : null;\n  }\n\n  [$toHTML](availableSpace) {\n    return valueToHtml(this[$content] ? this[$content].toString() : \"\");\n  }\n}\n\nclass TimeStamp extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"timeStamp\");\n    this.id = attributes.id || \"\";\n    this.server = attributes.server || \"\";\n    this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass ToolTip extends StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"toolTip\");\n    this.id = attributes.id || \"\";\n    this.rid = attributes.rid || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass Traversal extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"traversal\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.traverse = new XFAObjectArray();\n  }\n}\n\nclass Traverse extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"traverse\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.operation = getStringOption(attributes.operation, [\n      \"next\",\n      \"back\",\n      \"down\",\n      \"first\",\n      \"left\",\n      \"right\",\n      \"up\",\n    ]);\n    this.ref = attributes.ref || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.script = null;\n  }\n\n  get name() {\n    // SOM expression: see page 94\n    return this.operation;\n  }\n\n  [$isTransparent]() {\n    return false;\n  }\n}\n\nclass Ui extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"ui\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.picture = null;\n\n    // One-of properties\n    this.barcode = null;\n    this.button = null;\n    this.checkButton = null;\n    this.choiceList = null;\n    this.dateTimeEdit = null;\n    this.defaultUi = null;\n    this.imageEdit = null;\n    this.numericEdit = null;\n    this.passwordEdit = null;\n    this.signature = null;\n    this.textEdit = null;\n  }\n\n  [$getExtra]() {\n    if (this[$extra] === undefined) {\n      for (const name of Object.getOwnPropertyNames(this)) {\n        if (name === \"extras\" || name === \"picture\") {\n          continue;\n        }\n        const obj = this[name];\n        if (!(obj instanceof XFAObject)) {\n          continue;\n        }\n\n        this[$extra] = obj;\n        return obj;\n      }\n      this[$extra] = null;\n    }\n    return this[$extra];\n  }\n\n  [$toHTML](availableSpace) {\n    // TODO: picture.\n    const obj = this[$getExtra]();\n    if (obj) {\n      return obj[$toHTML](availableSpace);\n    }\n    return HTMLResult.EMPTY;\n  }\n}\n\nclass Validate extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"validate\", /* hasChildren = */ true);\n    this.formatTest = getStringOption(attributes.formatTest, [\n      \"warning\",\n      \"disabled\",\n      \"error\",\n    ]);\n    this.id = attributes.id || \"\";\n    this.nullTest = getStringOption(attributes.nullTest, [\n      \"disabled\",\n      \"error\",\n      \"warning\",\n    ]);\n    this.scriptTest = getStringOption(attributes.scriptTest, [\n      \"error\",\n      \"disabled\",\n      \"warning\",\n    ]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.message = null;\n    this.picture = null;\n    this.script = null;\n  }\n}\n\nclass Value extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"value\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.override = getInteger({\n      data: attributes.override,\n      defaultValue: 0,\n      validate: x => x === 1,\n    });\n    this.relevant = getRelevant(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n\n    // One-of properties\n    this.arc = null;\n    this.boolean = null;\n    this.date = null;\n    this.dateTime = null;\n    this.decimal = null;\n    this.exData = null;\n    this.float = null;\n    this.image = null;\n    this.integer = null;\n    this.line = null;\n    this.rectangle = null;\n    this.text = null;\n    this.time = null;\n  }\n\n  [$setValue](value) {\n    const parent = this[$getParent]();\n    if (parent instanceof Field) {\n      if (parent.ui?.imageEdit) {\n        if (!this.image) {\n          this.image = new Image({});\n          this[$appendChild](this.image);\n        }\n        this.image[$content] = value[$content];\n        return;\n      }\n    }\n\n    const valueName = value[$nodeName];\n    if (this[valueName] !== null) {\n      this[valueName][$content] = value[$content];\n      return;\n    }\n\n    // Reset all the properties.\n    for (const name of Object.getOwnPropertyNames(this)) {\n      const obj = this[name];\n      if (obj instanceof XFAObject) {\n        this[name] = null;\n        this[$removeChild](obj);\n      }\n    }\n\n    this[value[$nodeName]] = value;\n    this[$appendChild](value);\n  }\n\n  [$text]() {\n    if (this.exData) {\n      if (typeof this.exData[$content] === \"string\") {\n        return this.exData[$content].trim();\n      }\n      return this.exData[$content][$text]().trim();\n    }\n    for (const name of Object.getOwnPropertyNames(this)) {\n      if (name === \"image\") {\n        continue;\n      }\n      const obj = this[name];\n      if (obj instanceof XFAObject) {\n        return (obj[$content] || \"\").toString().trim();\n      }\n    }\n    return null;\n  }\n\n  [$toHTML](availableSpace) {\n    for (const name of Object.getOwnPropertyNames(this)) {\n      const obj = this[name];\n      if (!(obj instanceof XFAObject)) {\n        continue;\n      }\n\n      return obj[$toHTML](availableSpace);\n    }\n\n    return HTMLResult.EMPTY;\n  }\n}\n\nclass Variables extends XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"variables\", /* hasChildren = */ true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.boolean = new XFAObjectArray();\n    this.date = new XFAObjectArray();\n    this.dateTime = new XFAObjectArray();\n    this.decimal = new XFAObjectArray();\n    this.exData = new XFAObjectArray();\n    this.float = new XFAObjectArray();\n    this.image = new XFAObjectArray();\n    this.integer = new XFAObjectArray();\n    this.manifest = new XFAObjectArray();\n    this.script = new XFAObjectArray();\n    this.text = new XFAObjectArray();\n    this.time = new XFAObjectArray();\n  }\n\n  [$isTransparent]() {\n    return true;\n  }\n}\n\nclass TemplateNamespace {\n  static [$buildXFAObject](name, attributes) {\n    if (TemplateNamespace.hasOwnProperty(name)) {\n      const node = TemplateNamespace[name](attributes);\n      node[$setSetAttributes](attributes);\n      return node;\n    }\n    return undefined;\n  }\n\n  static appearanceFilter(attrs) {\n    return new AppearanceFilter(attrs);\n  }\n\n  static arc(attrs) {\n    return new Arc(attrs);\n  }\n\n  static area(attrs) {\n    return new Area(attrs);\n  }\n\n  static assist(attrs) {\n    return new Assist(attrs);\n  }\n\n  static barcode(attrs) {\n    return new Barcode(attrs);\n  }\n\n  static bind(attrs) {\n    return new Bind(attrs);\n  }\n\n  static bindItems(attrs) {\n    return new BindItems(attrs);\n  }\n\n  static bookend(attrs) {\n    return new Bookend(attrs);\n  }\n\n  static boolean(attrs) {\n    return new BooleanElement(attrs);\n  }\n\n  static border(attrs) {\n    return new Border(attrs);\n  }\n\n  static break(attrs) {\n    return new Break(attrs);\n  }\n\n  static breakAfter(attrs) {\n    return new BreakAfter(attrs);\n  }\n\n  static breakBefore(attrs) {\n    return new BreakBefore(attrs);\n  }\n\n  static button(attrs) {\n    return new Button(attrs);\n  }\n\n  static calculate(attrs) {\n    return new Calculate(attrs);\n  }\n\n  static caption(attrs) {\n    return new Caption(attrs);\n  }\n\n  static certificate(attrs) {\n    return new Certificate(attrs);\n  }\n\n  static certificates(attrs) {\n    return new Certificates(attrs);\n  }\n\n  static checkButton(attrs) {\n    return new CheckButton(attrs);\n  }\n\n  static choiceList(attrs) {\n    return new ChoiceList(attrs);\n  }\n\n  static color(attrs) {\n    return new Color(attrs);\n  }\n\n  static comb(attrs) {\n    return new Comb(attrs);\n  }\n\n  static connect(attrs) {\n    return new Connect(attrs);\n  }\n\n  static contentArea(attrs) {\n    return new ContentArea(attrs);\n  }\n\n  static corner(attrs) {\n    return new Corner(attrs);\n  }\n\n  static date(attrs) {\n    return new DateElement(attrs);\n  }\n\n  static dateTime(attrs) {\n    return new DateTime(attrs);\n  }\n\n  static dateTimeEdit(attrs) {\n    return new DateTimeEdit(attrs);\n  }\n\n  static decimal(attrs) {\n    return new Decimal(attrs);\n  }\n\n  static defaultUi(attrs) {\n    return new DefaultUi(attrs);\n  }\n\n  static desc(attrs) {\n    return new Desc(attrs);\n  }\n\n  static digestMethod(attrs) {\n    return new DigestMethod(attrs);\n  }\n\n  static digestMethods(attrs) {\n    return new DigestMethods(attrs);\n  }\n\n  static draw(attrs) {\n    return new Draw(attrs);\n  }\n\n  static edge(attrs) {\n    return new Edge(attrs);\n  }\n\n  static encoding(attrs) {\n    return new Encoding(attrs);\n  }\n\n  static encodings(attrs) {\n    return new Encodings(attrs);\n  }\n\n  static encrypt(attrs) {\n    return new Encrypt(attrs);\n  }\n\n  static encryptData(attrs) {\n    return new EncryptData(attrs);\n  }\n\n  static encryption(attrs) {\n    return new Encryption(attrs);\n  }\n\n  static encryptionMethod(attrs) {\n    return new EncryptionMethod(attrs);\n  }\n\n  static encryptionMethods(attrs) {\n    return new EncryptionMethods(attrs);\n  }\n\n  static event(attrs) {\n    return new Event(attrs);\n  }\n\n  static exData(attrs) {\n    return new ExData(attrs);\n  }\n\n  static exObject(attrs) {\n    return new ExObject(attrs);\n  }\n\n  static exclGroup(attrs) {\n    return new ExclGroup(attrs);\n  }\n\n  static execute(attrs) {\n    return new Execute(attrs);\n  }\n\n  static extras(attrs) {\n    return new Extras(attrs);\n  }\n\n  static field(attrs) {\n    return new Field(attrs);\n  }\n\n  static fill(attrs) {\n    return new Fill(attrs);\n  }\n\n  static filter(attrs) {\n    return new Filter(attrs);\n  }\n\n  static float(attrs) {\n    return new Float(attrs);\n  }\n\n  static font(attrs) {\n    return new Font(attrs);\n  }\n\n  static format(attrs) {\n    return new Format(attrs);\n  }\n\n  static handler(attrs) {\n    return new Handler(attrs);\n  }\n\n  static hyphenation(attrs) {\n    return new Hyphenation(attrs);\n  }\n\n  static image(attrs) {\n    return new Image(attrs);\n  }\n\n  static imageEdit(attrs) {\n    return new ImageEdit(attrs);\n  }\n\n  static integer(attrs) {\n    return new Integer(attrs);\n  }\n\n  static issuers(attrs) {\n    return new Issuers(attrs);\n  }\n\n  static items(attrs) {\n    return new Items(attrs);\n  }\n\n  static keep(attrs) {\n    return new Keep(attrs);\n  }\n\n  static keyUsage(attrs) {\n    return new KeyUsage(attrs);\n  }\n\n  static line(attrs) {\n    return new Line(attrs);\n  }\n\n  static linear(attrs) {\n    return new Linear(attrs);\n  }\n\n  static lockDocument(attrs) {\n    return new LockDocument(attrs);\n  }\n\n  static manifest(attrs) {\n    return new Manifest(attrs);\n  }\n\n  static margin(attrs) {\n    return new Margin(attrs);\n  }\n\n  static mdp(attrs) {\n    return new Mdp(attrs);\n  }\n\n  static medium(attrs) {\n    return new Medium(attrs);\n  }\n\n  static message(attrs) {\n    return new Message(attrs);\n  }\n\n  static numericEdit(attrs) {\n    return new NumericEdit(attrs);\n  }\n\n  static occur(attrs) {\n    return new Occur(attrs);\n  }\n\n  static oid(attrs) {\n    return new Oid(attrs);\n  }\n\n  static oids(attrs) {\n    return new Oids(attrs);\n  }\n\n  static overflow(attrs) {\n    return new Overflow(attrs);\n  }\n\n  static pageArea(attrs) {\n    return new PageArea(attrs);\n  }\n\n  static pageSet(attrs) {\n    return new PageSet(attrs);\n  }\n\n  static para(attrs) {\n    return new Para(attrs);\n  }\n\n  static passwordEdit(attrs) {\n    return new PasswordEdit(attrs);\n  }\n\n  static pattern(attrs) {\n    return new Pattern(attrs);\n  }\n\n  static picture(attrs) {\n    return new Picture(attrs);\n  }\n\n  static proto(attrs) {\n    return new Proto(attrs);\n  }\n\n  static radial(attrs) {\n    return new Radial(attrs);\n  }\n\n  static reason(attrs) {\n    return new Reason(attrs);\n  }\n\n  static reasons(attrs) {\n    return new Reasons(attrs);\n  }\n\n  static rectangle(attrs) {\n    return new Rectangle(attrs);\n  }\n\n  static ref(attrs) {\n    return new RefElement(attrs);\n  }\n\n  static script(attrs) {\n    return new Script(attrs);\n  }\n\n  static setProperty(attrs) {\n    return new SetProperty(attrs);\n  }\n\n  static signData(attrs) {\n    return new SignData(attrs);\n  }\n\n  static signature(attrs) {\n    return new Signature(attrs);\n  }\n\n  static signing(attrs) {\n    return new Signing(attrs);\n  }\n\n  static solid(attrs) {\n    return new Solid(attrs);\n  }\n\n  static speak(attrs) {\n    return new Speak(attrs);\n  }\n\n  static stipple(attrs) {\n    return new Stipple(attrs);\n  }\n\n  static subform(attrs) {\n    return new Subform(attrs);\n  }\n\n  static subformSet(attrs) {\n    return new SubformSet(attrs);\n  }\n\n  static subjectDN(attrs) {\n    return new SubjectDN(attrs);\n  }\n\n  static subjectDNs(attrs) {\n    return new SubjectDNs(attrs);\n  }\n\n  static submit(attrs) {\n    return new Submit(attrs);\n  }\n\n  static template(attrs) {\n    return new Template(attrs);\n  }\n\n  static text(attrs) {\n    return new Text(attrs);\n  }\n\n  static textEdit(attrs) {\n    return new TextEdit(attrs);\n  }\n\n  static time(attrs) {\n    return new Time(attrs);\n  }\n\n  static timeStamp(attrs) {\n    return new TimeStamp(attrs);\n  }\n\n  static toolTip(attrs) {\n    return new ToolTip(attrs);\n  }\n\n  static traversal(attrs) {\n    return new Traversal(attrs);\n  }\n\n  static traverse(attrs) {\n    return new Traverse(attrs);\n  }\n\n  static ui(attrs) {\n    return new Ui(attrs);\n  }\n\n  static validate(attrs) {\n    return new Validate(attrs);\n  }\n\n  static value(attrs) {\n    return new Value(attrs);\n  }\n\n  static variables(attrs) {\n    return new Variables(attrs);\n  }\n}\n\nexport {\n  BindItems,\n  Field,\n  Items,\n  SetProperty,\n  Template,\n  TemplateNamespace,\n  Text,\n  Value,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  $appendChild,\n  $clone,\n  $consumed,\n  $content,\n  $data,\n  $finalize,\n  $getAttributeIt,\n  $getChildren,\n  $getDataValue,\n  $getParent,\n  $getRealChildrenByNameIt,\n  $hasSettableValue,\n  $indexOf,\n  $insertAt,\n  $isBindable,\n  $isDataValue,\n  $isDescendent,\n  $namespaceId,\n  $nodeName,\n  $removeChild,\n  $setValue,\n  $text,\n} from \"./symbol_utils.js\";\nimport { BindItems, Field, Items, SetProperty, Text } from \"./template.js\";\nimport { createDataNode, searchNode } from \"./som.js\";\nimport { XFAAttribute, XFAObjectArray, XmlObject } from \"./xfa_object.js\";\nimport { NamespaceIds } from \"./namespaces.js\";\nimport { warn } from \"../../shared/util.js\";\n\nconst NS_DATASETS = NamespaceIds.datasets.id;\n\nfunction createText(content) {\n  const node = new Text({});\n  node[$content] = content;\n  return node;\n}\n\nclass Binder {\n  constructor(root) {\n    this.root = root;\n    this.datasets = root.datasets;\n    this.data =\n      root.datasets?.data || new XmlObject(NamespaceIds.datasets.id, \"data\");\n    this.emptyMerge = this.data[$getChildren]().length === 0;\n\n    this.root.form = this.form = root.template[$clone]();\n  }\n\n  _isConsumeData() {\n    return !this.emptyMerge && this._mergeMode;\n  }\n\n  _isMatchTemplate() {\n    return !this._isConsumeData();\n  }\n\n  bind() {\n    this._bindElement(this.form, this.data);\n    return this.form;\n  }\n\n  getData() {\n    return this.data;\n  }\n\n  _bindValue(formNode, data, picture) {\n    // Nodes must have the same \"type\": container or value.\n    // Here we make the link between form node and\n    // data node (through $data property): we'll use it\n    // to save form data.\n\n    formNode[$data] = data;\n    if (formNode[$hasSettableValue]()) {\n      if (data[$isDataValue]()) {\n        const value = data[$getDataValue]();\n        // TODO: use picture.\n        formNode[$setValue](createText(value));\n      } else if (\n        formNode instanceof Field &&\n        formNode.ui?.choiceList?.open === \"multiSelect\"\n      ) {\n        const value = data[$getChildren]()\n          .map(child => child[$content].trim())\n          .join(\"\\n\");\n        formNode[$setValue](createText(value));\n      } else if (this._isConsumeData()) {\n        warn(`XFA - Nodes haven't the same type.`);\n      }\n    } else if (!data[$isDataValue]() || this._isMatchTemplate()) {\n      this._bindElement(formNode, data);\n    } else {\n      warn(`XFA - Nodes haven't the same type.`);\n    }\n  }\n\n  _findDataByNameToConsume(name, isValue, dataNode, global) {\n    if (!name) {\n      return null;\n    }\n\n    // Firstly, we try to find a node with the given name:\n    //  - in dataNode;\n    //  - if not found, then in parent;\n    //  - and if not in found, then in grand-parent.\n    let generator, match;\n    for (let i = 0; i < 3; i++) {\n      generator = dataNode[$getRealChildrenByNameIt](\n        name,\n        /* allTransparent = */ false,\n        /* skipConsumed = */ true\n      );\n      // Try to find a match of the same kind.\n      while (true) {\n        match = generator.next().value;\n        if (!match) {\n          break;\n        }\n\n        if (isValue === match[$isDataValue]()) {\n          return match;\n        }\n      }\n      if (\n        dataNode[$namespaceId] === NamespaceIds.datasets.id &&\n        dataNode[$nodeName] === \"data\"\n      ) {\n        break;\n      }\n      dataNode = dataNode[$getParent]();\n    }\n\n    if (!global) {\n      return null;\n    }\n\n    // Secondly, if global try to find it just under the root of datasets\n    // (which is the location of global variables).\n    generator = this.data[$getRealChildrenByNameIt](\n      name,\n      /* allTransparent = */ true,\n      /* skipConsumed = */ false\n    );\n\n    match = generator.next().value;\n    if (match) {\n      return match;\n    }\n\n    // Thirdly, try to find it in attributes.\n    generator = this.data[$getAttributeIt](name, /* skipConsumed = */ true);\n    match = generator.next().value;\n    if (match?.[$isDataValue]()) {\n      return match;\n    }\n\n    return null;\n  }\n\n  _setProperties(formNode, dataNode) {\n    // For example:\n    // <field name=\"LastName\" ...>\n    //   <setProperty ref=\"$data.Main.Style.NameFont\" target=\"font.typeface\"/>\n    //   <setProperty ref=\"$data.Main.Style.NameSize\" target=\"font.size\"/>\n    //   <setProperty ref=\"$data.Main.Help.LastName\" target=\"assist.toolTip\"/>\n    // </field>\n\n    if (!formNode.hasOwnProperty(\"setProperty\")) {\n      return;\n    }\n\n    for (const { ref, target, connection } of formNode.setProperty.children) {\n      if (connection) {\n        // TODO: evaluate if we should implement this feature.\n        // Skip for security reasons.\n        continue;\n      }\n      if (!ref) {\n        continue;\n      }\n\n      const nodes = searchNode(\n        this.root,\n        dataNode,\n        ref,\n        false /* = dotDotAllowed */,\n        false /* = useCache */\n      );\n      if (!nodes) {\n        warn(`XFA - Invalid reference: ${ref}.`);\n        continue;\n      }\n      const [node] = nodes;\n\n      if (!node[$isDescendent](this.data)) {\n        warn(`XFA - Invalid node: must be a data node.`);\n        continue;\n      }\n\n      const targetNodes = searchNode(\n        this.root,\n        formNode,\n        target,\n        false /* = dotDotAllowed */,\n        false /* = useCache */\n      );\n      if (!targetNodes) {\n        warn(`XFA - Invalid target: ${target}.`);\n        continue;\n      }\n      const [targetNode] = targetNodes;\n\n      if (!targetNode[$isDescendent](formNode)) {\n        warn(`XFA - Invalid target: must be a property or subproperty.`);\n        continue;\n      }\n\n      const targetParent = targetNode[$getParent]();\n      if (\n        targetNode instanceof SetProperty ||\n        targetParent instanceof SetProperty\n      ) {\n        warn(\n          `XFA - Invalid target: cannot be a setProperty or one of its properties.`\n        );\n        continue;\n      }\n\n      if (\n        targetNode instanceof BindItems ||\n        targetParent instanceof BindItems\n      ) {\n        warn(\n          `XFA - Invalid target: cannot be a bindItems or one of its properties.`\n        );\n        continue;\n      }\n\n      const content = node[$text]();\n      const name = targetNode[$nodeName];\n\n      if (targetNode instanceof XFAAttribute) {\n        const attrs = Object.create(null);\n        attrs[name] = content;\n        const obj = Reflect.construct(\n          Object.getPrototypeOf(targetParent).constructor,\n          [attrs]\n        );\n        targetParent[name] = obj[name];\n        continue;\n      }\n\n      if (!targetNode.hasOwnProperty($content)) {\n        warn(`XFA - Invalid node to use in setProperty`);\n        continue;\n      }\n\n      targetNode[$data] = node;\n      targetNode[$content] = content;\n      targetNode[$finalize]();\n    }\n  }\n\n  _bindItems(formNode, dataNode) {\n    // For example:\n    // <field name=\"CardName\"...>\n    //   <bindItems ref=\"$data.main.ccs.cc[*]\" labelRef=\"uiname\"\n    //              valueRef=\"token\"/>\n    //   <ui><choiceList/></ui>\n    // </field>\n\n    if (\n      !formNode.hasOwnProperty(\"items\") ||\n      !formNode.hasOwnProperty(\"bindItems\") ||\n      formNode.bindItems.isEmpty()\n    ) {\n      return;\n    }\n\n    for (const item of formNode.items.children) {\n      formNode[$removeChild](item);\n    }\n\n    formNode.items.clear();\n\n    const labels = new Items({});\n    const values = new Items({});\n\n    formNode[$appendChild](labels);\n    formNode.items.push(labels);\n\n    formNode[$appendChild](values);\n    formNode.items.push(values);\n\n    for (const { ref, labelRef, valueRef, connection } of formNode.bindItems\n      .children) {\n      if (connection) {\n        // TODO: evaluate if we should implement this feature.\n        // Skip for security reasons.\n        continue;\n      }\n      if (!ref) {\n        continue;\n      }\n\n      const nodes = searchNode(\n        this.root,\n        dataNode,\n        ref,\n        false /* = dotDotAllowed */,\n        false /* = useCache */\n      );\n      if (!nodes) {\n        warn(`XFA - Invalid reference: ${ref}.`);\n        continue;\n      }\n      for (const node of nodes) {\n        if (!node[$isDescendent](this.datasets)) {\n          warn(`XFA - Invalid ref (${ref}): must be a datasets child.`);\n          continue;\n        }\n\n        const labelNodes = searchNode(\n          this.root,\n          node,\n          labelRef,\n          true /* = dotDotAllowed */,\n          false /* = useCache */\n        );\n        if (!labelNodes) {\n          warn(`XFA - Invalid label: ${labelRef}.`);\n          continue;\n        }\n        const [labelNode] = labelNodes;\n\n        if (!labelNode[$isDescendent](this.datasets)) {\n          warn(`XFA - Invalid label: must be a datasets child.`);\n          continue;\n        }\n\n        const valueNodes = searchNode(\n          this.root,\n          node,\n          valueRef,\n          true /* = dotDotAllowed */,\n          false /* = useCache */\n        );\n        if (!valueNodes) {\n          warn(`XFA - Invalid value: ${valueRef}.`);\n          continue;\n        }\n        const [valueNode] = valueNodes;\n\n        if (!valueNode[$isDescendent](this.datasets)) {\n          warn(`XFA - Invalid value: must be a datasets child.`);\n          continue;\n        }\n\n        const label = createText(labelNode[$text]());\n        const value = createText(valueNode[$text]());\n\n        labels[$appendChild](label);\n        labels.text.push(label);\n\n        values[$appendChild](value);\n        values.text.push(value);\n      }\n    }\n  }\n\n  _bindOccurrences(formNode, matches, picture) {\n    // Insert nodes which are not in the template but reflect\n    // what we've in data tree.\n\n    let baseClone;\n    if (matches.length > 1) {\n      // Clone before binding to avoid bad state.\n      baseClone = formNode[$clone]();\n      baseClone[$removeChild](baseClone.occur);\n      baseClone.occur = null;\n    }\n\n    this._bindValue(formNode, matches[0], picture);\n    this._setProperties(formNode, matches[0]);\n    this._bindItems(formNode, matches[0]);\n\n    if (matches.length === 1) {\n      return;\n    }\n\n    const parent = formNode[$getParent]();\n    const name = formNode[$nodeName];\n    const pos = parent[$indexOf](formNode);\n\n    for (let i = 1, ii = matches.length; i < ii; i++) {\n      const match = matches[i];\n      const clone = baseClone[$clone]();\n      parent[name].push(clone);\n      parent[$insertAt](pos + i, clone);\n\n      this._bindValue(clone, match, picture);\n      this._setProperties(clone, match);\n      this._bindItems(clone, match);\n    }\n  }\n\n  _createOccurrences(formNode) {\n    if (!this.emptyMerge) {\n      return;\n    }\n\n    const { occur } = formNode;\n    if (!occur || occur.initial <= 1) {\n      return;\n    }\n\n    const parent = formNode[$getParent]();\n    const name = formNode[$nodeName];\n\n    if (!(parent[name] instanceof XFAObjectArray)) {\n      return;\n    }\n\n    let currentNumber;\n    if (formNode.name) {\n      currentNumber = parent[name].children.filter(\n        e => e.name === formNode.name\n      ).length;\n    } else {\n      currentNumber = parent[name].children.length;\n    }\n\n    const pos = parent[$indexOf](formNode) + 1;\n    const ii = occur.initial - currentNumber;\n    if (ii) {\n      const nodeClone = formNode[$clone]();\n      nodeClone[$removeChild](nodeClone.occur);\n      nodeClone.occur = null;\n      parent[name].push(nodeClone);\n      parent[$insertAt](pos, nodeClone);\n\n      for (let i = 1; i < ii; i++) {\n        const clone = nodeClone[$clone]();\n        parent[name].push(clone);\n        parent[$insertAt](pos + i, clone);\n      }\n    }\n  }\n\n  _getOccurInfo(formNode) {\n    const { name, occur } = formNode;\n    if (!occur || !name) {\n      return [1, 1];\n    }\n    const max = occur.max === -1 ? Infinity : occur.max;\n    return [occur.min, max];\n  }\n\n  _setAndBind(formNode, dataNode) {\n    this._setProperties(formNode, dataNode);\n    this._bindItems(formNode, dataNode);\n    this._bindElement(formNode, dataNode);\n  }\n\n  _bindElement(formNode, dataNode) {\n    // Some nodes can be useless because min=0 so remove them\n    // after the loop to avoid bad things.\n\n    const uselessNodes = [];\n\n    this._createOccurrences(formNode);\n\n    for (const child of formNode[$getChildren]()) {\n      if (child[$data]) {\n        // Already bound.\n        continue;\n      }\n\n      if (this._mergeMode === undefined && child[$nodeName] === \"subform\") {\n        this._mergeMode = child.mergeMode === \"consumeData\";\n\n        // XFA specs p. 182:\n        // The highest-level subform and the data node representing\n        // the current record are special; they are always\n        // bound even if their names don't match.\n        const dataChildren = dataNode[$getChildren]();\n        if (dataChildren.length > 0) {\n          this._bindOccurrences(child, [dataChildren[0]], null);\n        } else if (this.emptyMerge) {\n          const nsId =\n            dataNode[$namespaceId] === NS_DATASETS\n              ? -1\n              : dataNode[$namespaceId];\n          const dataChild = (child[$data] = new XmlObject(\n            nsId,\n            child.name || \"root\"\n          ));\n          dataNode[$appendChild](dataChild);\n          this._bindElement(child, dataChild);\n        }\n        continue;\n      }\n\n      if (!child[$isBindable]()) {\n        // The node cannot contain some new data so there is nothing\n        // to create in the data node.\n        continue;\n      }\n\n      let global = false;\n      let picture = null;\n      let ref = null;\n      let match = null;\n      if (child.bind) {\n        switch (child.bind.match) {\n          case \"none\":\n            this._setAndBind(child, dataNode);\n            continue;\n          case \"global\":\n            global = true;\n            break;\n          case \"dataRef\":\n            if (!child.bind.ref) {\n              warn(`XFA - ref is empty in node ${child[$nodeName]}.`);\n              this._setAndBind(child, dataNode);\n              continue;\n            }\n            ref = child.bind.ref;\n            break;\n          default:\n            break;\n        }\n        if (child.bind.picture) {\n          picture = child.bind.picture[$content];\n        }\n      }\n\n      const [min, max] = this._getOccurInfo(child);\n\n      if (ref) {\n        // Don't use a cache for searching: nodes can change during binding.\n        match = searchNode(\n          this.root,\n          dataNode,\n          ref,\n          true /* = dotDotAllowed */,\n          false /* = useCache */\n        );\n        if (match === null) {\n          // Nothing found: we must create some nodes in data in order\n          // to have something to match with the given expression.\n          // See http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.364.2157&rep=rep1&type=pdf#page=199\n          match = createDataNode(this.data, dataNode, ref);\n          if (!match) {\n            // For example if the node contains a .(...) then it isn't\n            // findable.\n            // TODO: remove this when .(...) is implemented.\n            continue;\n          }\n          if (this._isConsumeData()) {\n            match[$consumed] = true;\n          }\n\n          // Don't bind the value in newly created node because it's empty.\n          this._setAndBind(child, match);\n          continue;\n        } else {\n          if (this._isConsumeData()) {\n            // Filter out consumed nodes.\n            match = match.filter(node => !node[$consumed]);\n          }\n          if (match.length > max) {\n            match = match.slice(0, max);\n          } else if (match.length === 0) {\n            match = null;\n          }\n          if (match && this._isConsumeData()) {\n            match.forEach(node => {\n              node[$consumed] = true;\n            });\n          }\n        }\n      } else {\n        if (!child.name) {\n          this._setAndBind(child, dataNode);\n          continue;\n        }\n        if (this._isConsumeData()) {\n          // In consumeData mode, search for the next node with the given name.\n          // occurs.max gives us the max number of node to match.\n          const matches = [];\n          while (matches.length < max) {\n            const found = this._findDataByNameToConsume(\n              child.name,\n              child[$hasSettableValue](),\n              dataNode,\n              global\n            );\n\n            if (!found) {\n              break;\n            }\n            found[$consumed] = true;\n            matches.push(found);\n          }\n          match = matches.length > 0 ? matches : null;\n        } else {\n          // If we've an empty merge, there are no reason\n          // to make multiple bind so skip consumed nodes.\n          match = dataNode[$getRealChildrenByNameIt](\n            child.name,\n            /* allTransparent = */ false,\n            /* skipConsumed = */ this.emptyMerge\n          ).next().value;\n          if (!match) {\n            // If there is no match (no data) and `min === 0` then\n            // the container is entirely excluded.\n            // https://www.pdfa.org/norm-refs/XFA-3_3.pdf#G12.1428332\n            if (min === 0) {\n              uselessNodes.push(child);\n              continue;\n            }\n            // We're in matchTemplate mode so create a node in data to reflect\n            // what we've in template.\n            const nsId =\n              dataNode[$namespaceId] === NS_DATASETS\n                ? -1\n                : dataNode[$namespaceId];\n            match = child[$data] = new XmlObject(nsId, child.name);\n            if (this.emptyMerge) {\n              match[$consumed] = true;\n            }\n            dataNode[$appendChild](match);\n\n            // Don't bind the value in newly created node because it's empty.\n            this._setAndBind(child, match);\n            continue;\n          }\n          if (this.emptyMerge) {\n            match[$consumed] = true;\n          }\n          match = [match];\n        }\n      }\n\n      if (match) {\n        this._bindOccurrences(child, match, picture);\n      } else if (min > 0) {\n        this._setAndBind(child, dataNode);\n      } else {\n        uselessNodes.push(child);\n      }\n    }\n\n    uselessNodes.forEach(node => node[$getParent]()[$removeChild](node));\n  }\n}\n\nexport { Binder };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  $getAttributes,\n  $getChildren,\n  $nodeName,\n  $setValue,\n  $toString,\n  $uid,\n} from \"./symbol_utils.js\";\n\nclass DataHandler {\n  constructor(root, data) {\n    this.data = data;\n    this.dataset = root.datasets || null;\n  }\n\n  serialize(storage) {\n    const stack = [[-1, this.data[$getChildren]()]];\n\n    while (stack.length > 0) {\n      const last = stack.at(-1);\n      const [i, children] = last;\n      if (i + 1 === children.length) {\n        stack.pop();\n        continue;\n      }\n\n      const child = children[++last[0]];\n      const storageEntry = storage.get(child[$uid]);\n      if (storageEntry) {\n        child[$setValue](storageEntry);\n      } else {\n        const attributes = child[$getAttributes]();\n        for (const value of attributes.values()) {\n          const entry = storage.get(value[$uid]);\n          if (entry) {\n            value[$setValue](entry);\n            break;\n          }\n        }\n      }\n\n      const nodes = child[$getChildren]();\n      if (nodes.length > 0) {\n        stack.push([-1, nodes]);\n      }\n    }\n\n    const buf = [\n      `<xfa:datasets xmlns:xfa=\"http://www.xfa.org/schema/xfa-data/1.0/\">`,\n    ];\n    if (this.dataset) {\n      // Dump nodes other than data: they can contains for example\n      // some data for choice lists.\n      for (const child of this.dataset[$getChildren]()) {\n        if (child[$nodeName] !== \"data\") {\n          child[$toString](buf);\n        }\n      }\n    }\n    this.data[$toString](buf);\n    buf.push(\"</xfa:datasets>\");\n\n    return buf.join(\"\");\n  }\n}\n\nexport { DataHandler };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { $content, $finalize } from \"./symbol_utils.js\";\nimport {\n  ContentObject,\n  IntegerObject,\n  Option01,\n  Option10,\n  OptionObject,\n  StringObject,\n  XFAObject,\n  XFAObjectArray,\n} from \"./xfa_object.js\";\nimport { getInteger, getStringOption } from \"./utils.js\";\nimport { shadow, warn } from \"../../shared/util.js\";\n\nconst CONFIG_NS_ID = NamespaceIds.config.id;\n\nclass Acrobat extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"acrobat\", /* hasChildren = */ true);\n    this.acrobat7 = null;\n    this.autoSave = null;\n    this.common = null;\n    this.validate = null;\n    this.validateApprovalSignatures = null;\n    this.submitUrl = new XFAObjectArray();\n  }\n}\n\nclass Acrobat7 extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"acrobat7\", /* hasChildren = */ true);\n    this.dynamicRender = null;\n  }\n}\n\nclass ADBE_JSConsole extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"ADBE_JSConsole\", [\"delegate\", \"Enable\", \"Disable\"]);\n  }\n}\n\nclass ADBE_JSDebugger extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"ADBE_JSDebugger\", [\"delegate\", \"Enable\", \"Disable\"]);\n  }\n}\n\nclass AddSilentPrint extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"addSilentPrint\");\n  }\n}\n\nclass AddViewerPreferences extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"addViewerPreferences\");\n  }\n}\n\nclass AdjustData extends Option10 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"adjustData\");\n  }\n}\n\nclass AdobeExtensionLevel extends IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"adobeExtensionLevel\", 0, n => n >= 1 && n <= 8);\n  }\n}\n\nclass Agent extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"agent\", /* hasChildren = */ true);\n    this.name = attributes.name ? attributes.name.trim() : \"\";\n    this.common = new XFAObjectArray();\n  }\n}\n\nclass AlwaysEmbed extends ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"alwaysEmbed\");\n  }\n}\n\nclass Amd extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"amd\");\n  }\n}\n\nclass Area extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"area\");\n    this.level = getInteger({\n      data: attributes.level,\n      defaultValue: 0,\n      validate: n => n >= 1 && n <= 3,\n    });\n    this.name = getStringOption(attributes.name, [\n      \"\",\n      \"barcode\",\n      \"coreinit\",\n      \"deviceDriver\",\n      \"font\",\n      \"general\",\n      \"layout\",\n      \"merge\",\n      \"script\",\n      \"signature\",\n      \"sourceSet\",\n      \"templateCache\",\n    ]);\n  }\n}\n\nclass Attributes extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"attributes\", [\"preserve\", \"delegate\", \"ignore\"]);\n  }\n}\n\nclass AutoSave extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"autoSave\", [\"disabled\", \"enabled\"]);\n  }\n}\n\nclass Base extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"base\");\n  }\n}\n\nclass BatchOutput extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"batchOutput\");\n    this.format = getStringOption(attributes.format, [\n      \"none\",\n      \"concat\",\n      \"zip\",\n      \"zipCompress\",\n    ]);\n  }\n}\n\nclass BehaviorOverride extends ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"behaviorOverride\");\n  }\n\n  [$finalize]() {\n    this[$content] = new Map(\n      this[$content]\n        .trim()\n        .split(/\\s+/)\n        .filter(x => x.includes(\":\"))\n        .map(x => x.split(\":\", 2))\n    );\n  }\n}\n\nclass Cache extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"cache\", /* hasChildren = */ true);\n    this.templateCache = null;\n  }\n}\n\nclass Change extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"change\");\n  }\n}\n\nclass Common extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"common\", /* hasChildren = */ true);\n    this.data = null;\n    this.locale = null;\n    this.localeSet = null;\n    this.messaging = null;\n    this.suppressBanner = null;\n    this.template = null;\n    this.validationMessaging = null;\n    this.versionControl = null;\n    this.log = new XFAObjectArray();\n  }\n}\n\nclass Compress extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"compress\");\n    this.scope = getStringOption(attributes.scope, [\"imageOnly\", \"document\"]);\n  }\n}\n\nclass CompressLogicalStructure extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"compressLogicalStructure\");\n  }\n}\n\nclass CompressObjectStream extends Option10 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"compressObjectStream\");\n  }\n}\n\nclass Compression extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"compression\", /* hasChildren = */ true);\n    this.compressLogicalStructure = null;\n    this.compressObjectStream = null;\n    this.level = null;\n    this.type = null;\n  }\n}\n\nclass Config extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"config\", /* hasChildren = */ true);\n    this.acrobat = null;\n    this.present = null;\n    this.trace = null;\n    this.agent = new XFAObjectArray();\n  }\n}\n\nclass Conformance extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"conformance\", [\"A\", \"B\"]);\n  }\n}\n\nclass ContentCopy extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"contentCopy\");\n  }\n}\n\nclass Copies extends IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"copies\", 1, n => n >= 1);\n  }\n}\n\nclass Creator extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"creator\");\n  }\n}\n\nclass CurrentPage extends IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"currentPage\", 0, n => n >= 0);\n  }\n}\n\nclass Data extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"data\", /* hasChildren = */ true);\n    this.adjustData = null;\n    this.attributes = null;\n    this.incrementalLoad = null;\n    this.outputXSL = null;\n    this.range = null;\n    this.record = null;\n    this.startNode = null;\n    this.uri = null;\n    this.window = null;\n    this.xsl = null;\n    this.excludeNS = new XFAObjectArray();\n    this.transform = new XFAObjectArray();\n  }\n}\n\nclass Debug extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"debug\", /* hasChildren = */ true);\n    this.uri = null;\n  }\n}\n\nclass DefaultTypeface extends ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"defaultTypeface\");\n    this.writingScript = getStringOption(attributes.writingScript, [\n      \"*\",\n      \"Arabic\",\n      \"Cyrillic\",\n      \"EastEuropeanRoman\",\n      \"Greek\",\n      \"Hebrew\",\n      \"Japanese\",\n      \"Korean\",\n      \"Roman\",\n      \"SimplifiedChinese\",\n      \"Thai\",\n      \"TraditionalChinese\",\n      \"Vietnamese\",\n    ]);\n  }\n}\n\nclass Destination extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"destination\", [\n      \"pdf\",\n      \"pcl\",\n      \"ps\",\n      \"webClient\",\n      \"zpl\",\n    ]);\n  }\n}\n\nclass DocumentAssembly extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"documentAssembly\");\n  }\n}\n\nclass Driver extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"driver\", /* hasChildren = */ true);\n    this.name = attributes.name ? attributes.name.trim() : \"\";\n    this.fontInfo = null;\n    this.xdc = null;\n  }\n}\n\nclass DuplexOption extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"duplexOption\", [\n      \"simplex\",\n      \"duplexFlipLongEdge\",\n      \"duplexFlipShortEdge\",\n    ]);\n  }\n}\n\nclass DynamicRender extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"dynamicRender\", [\"forbidden\", \"required\"]);\n  }\n}\n\nclass Embed extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"embed\");\n  }\n}\n\nclass Encrypt extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"encrypt\");\n  }\n}\n\nclass Encryption extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"encryption\", /* hasChildren = */ true);\n    this.encrypt = null;\n    this.encryptionLevel = null;\n    this.permissions = null;\n  }\n}\n\nclass EncryptionLevel extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"encryptionLevel\", [\"40bit\", \"128bit\"]);\n  }\n}\n\nclass Enforce extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"enforce\");\n  }\n}\n\nclass Equate extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"equate\");\n\n    this.force = getInteger({\n      data: attributes.force,\n      defaultValue: 1,\n      validate: n => n === 0,\n    });\n\n    this.from = attributes.from || \"\";\n    this.to = attributes.to || \"\";\n  }\n}\n\nclass EquateRange extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"equateRange\");\n\n    this.from = attributes.from || \"\";\n    this.to = attributes.to || \"\";\n    this._unicodeRange = attributes.unicodeRange || \"\";\n  }\n\n  get unicodeRange() {\n    const ranges = [];\n    const unicodeRegex = /U\\+([0-9a-fA-F]+)/;\n    const unicodeRange = this._unicodeRange;\n    for (let range of unicodeRange\n      .split(\",\")\n      .map(x => x.trim())\n      .filter(x => !!x)) {\n      range = range.split(\"-\", 2).map(x => {\n        const found = x.match(unicodeRegex);\n        if (!found) {\n          return 0;\n        }\n        return parseInt(found[1], 16);\n      });\n      if (range.length === 1) {\n        range.push(range[0]);\n      }\n      ranges.push(range);\n    }\n    return shadow(this, \"unicodeRange\", ranges);\n  }\n}\n\nclass Exclude extends ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"exclude\");\n  }\n\n  [$finalize]() {\n    this[$content] = this[$content]\n      .trim()\n      .split(/\\s+/)\n      .filter(\n        x =>\n          x &&\n          [\n            \"calculate\",\n            \"close\",\n            \"enter\",\n            \"exit\",\n            \"initialize\",\n            \"ready\",\n            \"validate\",\n          ].includes(x)\n      );\n  }\n}\n\nclass ExcludeNS extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"excludeNS\");\n  }\n}\n\nclass FlipLabel extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"flipLabel\", [\"usePrinterSetting\", \"on\", \"off\"]);\n  }\n}\n\nclass FontInfo extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"fontInfo\", /* hasChildren = */ true);\n    this.embed = null;\n    this.map = null;\n    this.subsetBelow = null;\n    this.alwaysEmbed = new XFAObjectArray();\n    this.defaultTypeface = new XFAObjectArray();\n    this.neverEmbed = new XFAObjectArray();\n  }\n}\n\nclass FormFieldFilling extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"formFieldFilling\");\n  }\n}\n\nclass GroupParent extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"groupParent\");\n  }\n}\n\nclass IfEmpty extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"ifEmpty\", [\n      \"dataValue\",\n      \"dataGroup\",\n      \"ignore\",\n      \"remove\",\n    ]);\n  }\n}\n\nclass IncludeXDPContent extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"includeXDPContent\");\n  }\n}\n\nclass IncrementalLoad extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"incrementalLoad\", [\"none\", \"forwardOnly\"]);\n  }\n}\n\nclass IncrementalMerge extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"incrementalMerge\");\n  }\n}\n\nclass Interactive extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"interactive\");\n  }\n}\n\nclass Jog extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"jog\", [\"usePrinterSetting\", \"none\", \"pageSet\"]);\n  }\n}\n\nclass LabelPrinter extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"labelPrinter\", /* hasChildren = */ true);\n    this.name = getStringOption(attributes.name, [\"zpl\", \"dpl\", \"ipl\", \"tcpl\"]);\n    this.batchOutput = null;\n    this.flipLabel = null;\n    this.fontInfo = null;\n    this.xdc = null;\n  }\n}\n\nclass Layout extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"layout\", [\"paginate\", \"panel\"]);\n  }\n}\n\nclass Level extends IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"level\", 0, n => n > 0);\n  }\n}\n\nclass Linearized extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"linearized\");\n  }\n}\n\nclass Locale extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"locale\");\n  }\n}\n\nclass LocaleSet extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"localeSet\");\n  }\n}\n\nclass Log extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"log\", /* hasChildren = */ true);\n    this.mode = null;\n    this.threshold = null;\n    this.to = null;\n    this.uri = null;\n  }\n}\n\n// Renamed in MapElement to avoid confusion with usual js Map.\nclass MapElement extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"map\", /* hasChildren = */ true);\n    this.equate = new XFAObjectArray();\n    this.equateRange = new XFAObjectArray();\n  }\n}\n\nclass MediumInfo extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"mediumInfo\", /* hasChildren = */ true);\n    this.map = null;\n  }\n}\n\nclass Message extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"message\", /* hasChildren = */ true);\n    this.msgId = null;\n    this.severity = null;\n  }\n}\n\nclass Messaging extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"messaging\", /* hasChildren = */ true);\n    this.message = new XFAObjectArray();\n  }\n}\n\nclass Mode extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"mode\", [\"append\", \"overwrite\"]);\n  }\n}\n\nclass ModifyAnnots extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"modifyAnnots\");\n  }\n}\n\nclass MsgId extends IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"msgId\", 1, n => n >= 1);\n  }\n}\n\nclass NameAttr extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"nameAttr\");\n  }\n}\n\nclass NeverEmbed extends ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"neverEmbed\");\n  }\n}\n\nclass NumberOfCopies extends IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"numberOfCopies\", null, n => n >= 2 && n <= 5);\n  }\n}\n\nclass OpenAction extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"openAction\", /* hasChildren = */ true);\n    this.destination = null;\n  }\n}\n\nclass Output extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"output\", /* hasChildren = */ true);\n    this.to = null;\n    this.type = null;\n    this.uri = null;\n  }\n}\n\nclass OutputBin extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"outputBin\");\n  }\n}\n\nclass OutputXSL extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"outputXSL\", /* hasChildren = */ true);\n    this.uri = null;\n  }\n}\n\nclass Overprint extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"overprint\", [\"none\", \"both\", \"draw\", \"field\"]);\n  }\n}\n\nclass Packets extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"packets\");\n  }\n\n  [$finalize]() {\n    if (this[$content] === \"*\") {\n      return;\n    }\n    this[$content] = this[$content]\n      .trim()\n      .split(/\\s+/)\n      .filter(x =>\n        [\"config\", \"datasets\", \"template\", \"xfdf\", \"xslt\"].includes(x)\n      );\n  }\n}\n\nclass PageOffset extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pageOffset\");\n    this.x = getInteger({\n      data: attributes.x,\n      defaultValue: \"useXDCSetting\",\n      validate: n => true,\n    });\n    this.y = getInteger({\n      data: attributes.y,\n      defaultValue: \"useXDCSetting\",\n      validate: n => true,\n    });\n  }\n}\n\nclass PageRange extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pageRange\");\n  }\n\n  [$finalize]() {\n    const numbers = this[$content]\n      .trim()\n      .split(/\\s+/)\n      .map(x => parseInt(x, 10));\n    const ranges = [];\n    for (let i = 0, ii = numbers.length; i < ii; i += 2) {\n      ranges.push(numbers.slice(i, i + 2));\n    }\n    this[$content] = ranges;\n  }\n}\n\nclass Pagination extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pagination\", [\n      \"simplex\",\n      \"duplexShortEdge\",\n      \"duplexLongEdge\",\n    ]);\n  }\n}\n\nclass PaginationOverride extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"paginationOverride\", [\n      \"none\",\n      \"forceDuplex\",\n      \"forceDuplexLongEdge\",\n      \"forceDuplexShortEdge\",\n      \"forceSimplex\",\n    ]);\n  }\n}\n\nclass Part extends IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"part\", 1, n => false);\n  }\n}\n\nclass Pcl extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pcl\", /* hasChildren = */ true);\n    this.name = attributes.name || \"\";\n    this.batchOutput = null;\n    this.fontInfo = null;\n    this.jog = null;\n    this.mediumInfo = null;\n    this.outputBin = null;\n    this.pageOffset = null;\n    this.staple = null;\n    this.xdc = null;\n  }\n}\n\nclass Pdf extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pdf\", /* hasChildren = */ true);\n    this.name = attributes.name || \"\";\n    this.adobeExtensionLevel = null;\n    this.batchOutput = null;\n    this.compression = null;\n    this.creator = null;\n    this.encryption = null;\n    this.fontInfo = null;\n    this.interactive = null;\n    this.linearized = null;\n    this.openAction = null;\n    this.pdfa = null;\n    this.producer = null;\n    this.renderPolicy = null;\n    this.scriptModel = null;\n    this.silentPrint = null;\n    this.submitFormat = null;\n    this.tagged = null;\n    this.version = null;\n    this.viewerPreferences = null;\n    this.xdc = null;\n  }\n}\n\nclass Pdfa extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pdfa\", /* hasChildren = */ true);\n    this.amd = null;\n    this.conformance = null;\n    this.includeXDPContent = null;\n    this.part = null;\n  }\n}\n\nclass Permissions extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"permissions\", /* hasChildren = */ true);\n    this.accessibleContent = null;\n    this.change = null;\n    this.contentCopy = null;\n    this.documentAssembly = null;\n    this.formFieldFilling = null;\n    this.modifyAnnots = null;\n    this.plaintextMetadata = null;\n    this.print = null;\n    this.printHighQuality = null;\n  }\n}\n\nclass PickTrayByPDFSize extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pickTrayByPDFSize\");\n  }\n}\n\nclass Picture extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"picture\");\n  }\n\n  // TODO: check the validity of the picture clause.\n  // See page 1150 in the spec.\n}\n\nclass PlaintextMetadata extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"plaintextMetadata\");\n  }\n}\n\nclass Presence extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"presence\", [\n      \"preserve\",\n      \"dissolve\",\n      \"dissolveStructure\",\n      \"ignore\",\n      \"remove\",\n    ]);\n  }\n}\n\nclass Present extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"present\", /* hasChildren = */ true);\n    this.behaviorOverride = null;\n    this.cache = null;\n    this.common = null;\n    this.copies = null;\n    this.destination = null;\n    this.incrementalMerge = null;\n    this.layout = null;\n    this.output = null;\n    this.overprint = null;\n    this.pagination = null;\n    this.paginationOverride = null;\n    this.script = null;\n    this.validate = null;\n    this.xdp = null;\n    this.driver = new XFAObjectArray();\n    this.labelPrinter = new XFAObjectArray();\n    this.pcl = new XFAObjectArray();\n    this.pdf = new XFAObjectArray();\n    this.ps = new XFAObjectArray();\n    this.submitUrl = new XFAObjectArray();\n    this.webClient = new XFAObjectArray();\n    this.zpl = new XFAObjectArray();\n  }\n}\n\nclass Print extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"print\");\n  }\n}\n\nclass PrintHighQuality extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"printHighQuality\");\n  }\n}\n\nclass PrintScaling extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"printScaling\", [\"appdefault\", \"noScaling\"]);\n  }\n}\n\nclass PrinterName extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"printerName\");\n  }\n}\n\nclass Producer extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"producer\");\n  }\n}\n\nclass Ps extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"ps\", /* hasChildren = */ true);\n    this.name = attributes.name || \"\";\n    this.batchOutput = null;\n    this.fontInfo = null;\n    this.jog = null;\n    this.mediumInfo = null;\n    this.outputBin = null;\n    this.staple = null;\n    this.xdc = null;\n  }\n}\n\nclass Range extends ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"range\");\n  }\n\n  [$finalize]() {\n    this[$content] = this[$content]\n      .trim()\n      .split(/\\s*,\\s*/, 2)\n      .map(range => range.split(\"-\").map(x => parseInt(x.trim(), 10)))\n      .filter(range => range.every(x => !isNaN(x)))\n      .map(range => {\n        if (range.length === 1) {\n          range.push(range[0]);\n        }\n        return range;\n      });\n  }\n}\n\nclass Record extends ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"record\");\n  }\n\n  [$finalize]() {\n    this[$content] = this[$content].trim();\n    const n = parseInt(this[$content], 10);\n    if (!isNaN(n) && n >= 0) {\n      this[$content] = n;\n    }\n  }\n}\n\nclass Relevant extends ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"relevant\");\n  }\n\n  [$finalize]() {\n    this[$content] = this[$content].trim().split(/\\s+/);\n  }\n}\n\nclass Rename extends ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"rename\");\n  }\n\n  [$finalize]() {\n    this[$content] = this[$content].trim();\n    // String must be a XFA name: same as XML one except that there\n    // is no colon.\n    if (\n      this[$content].toLowerCase().startsWith(\"xml\") ||\n      new RegExp(\"[\\\\p{L}_][\\\\p{L}\\\\d._\\\\p{M}-]*\", \"u\").test(this[$content])\n    ) {\n      warn(\"XFA - Rename: invalid XFA name\");\n    }\n  }\n}\n\nclass RenderPolicy extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"renderPolicy\", [\"server\", \"client\"]);\n  }\n}\n\nclass RunScripts extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"runScripts\", [\"both\", \"client\", \"none\", \"server\"]);\n  }\n}\n\nclass Script extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"script\", /* hasChildren = */ true);\n    this.currentPage = null;\n    this.exclude = null;\n    this.runScripts = null;\n  }\n}\n\nclass ScriptModel extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"scriptModel\", [\"XFA\", \"none\"]);\n  }\n}\n\nclass Severity extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"severity\", [\n      \"ignore\",\n      \"error\",\n      \"information\",\n      \"trace\",\n      \"warning\",\n    ]);\n  }\n}\n\nclass SilentPrint extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"silentPrint\", /* hasChildren = */ true);\n    this.addSilentPrint = null;\n    this.printerName = null;\n  }\n}\n\nclass Staple extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"staple\");\n    this.mode = getStringOption(attributes.mode, [\n      \"usePrinterSetting\",\n      \"on\",\n      \"off\",\n    ]);\n  }\n}\n\nclass StartNode extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"startNode\");\n  }\n}\n\nclass StartPage extends IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"startPage\", 0, n => true);\n  }\n}\n\nclass SubmitFormat extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"submitFormat\", [\n      \"html\",\n      \"delegate\",\n      \"fdf\",\n      \"xml\",\n      \"pdf\",\n    ]);\n  }\n}\n\nclass SubmitUrl extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"submitUrl\");\n  }\n}\n\nclass SubsetBelow extends IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"subsetBelow\", 100, n => n >= 0 && n <= 100);\n  }\n}\n\nclass SuppressBanner extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"suppressBanner\");\n  }\n}\n\nclass Tagged extends Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"tagged\");\n  }\n}\n\nclass Template extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"template\", /* hasChildren = */ true);\n    this.base = null;\n    this.relevant = null;\n    this.startPage = null;\n    this.uri = null;\n    this.xsl = null;\n  }\n}\n\nclass Threshold extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"threshold\", [\n      \"trace\",\n      \"error\",\n      \"information\",\n      \"warning\",\n    ]);\n  }\n}\n\nclass To extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"to\", [\n      \"null\",\n      \"memory\",\n      \"stderr\",\n      \"stdout\",\n      \"system\",\n      \"uri\",\n    ]);\n  }\n}\n\nclass TemplateCache extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"templateCache\");\n    this.maxEntries = getInteger({\n      data: attributes.maxEntries,\n      defaultValue: 5,\n      validate: n => n >= 0,\n    });\n  }\n}\n\nclass Trace extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"trace\", /* hasChildren = */ true);\n    this.area = new XFAObjectArray();\n  }\n}\n\nclass Transform extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"transform\", /* hasChildren = */ true);\n    this.groupParent = null;\n    this.ifEmpty = null;\n    this.nameAttr = null;\n    this.picture = null;\n    this.presence = null;\n    this.rename = null;\n    this.whitespace = null;\n  }\n}\n\nclass Type extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"type\", [\n      \"none\",\n      \"ascii85\",\n      \"asciiHex\",\n      \"ccittfax\",\n      \"flate\",\n      \"lzw\",\n      \"runLength\",\n      \"native\",\n      \"xdp\",\n      \"mergedXDP\",\n    ]);\n  }\n}\n\nclass Uri extends StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"uri\");\n  }\n}\n\nclass Validate extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"validate\", [\n      \"preSubmit\",\n      \"prePrint\",\n      \"preExecute\",\n      \"preSave\",\n    ]);\n  }\n}\n\nclass ValidateApprovalSignatures extends ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"validateApprovalSignatures\");\n  }\n\n  [$finalize]() {\n    this[$content] = this[$content]\n      .trim()\n      .split(/\\s+/)\n      .filter(x => [\"docReady\", \"postSign\"].includes(x));\n  }\n}\n\nclass ValidationMessaging extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"validationMessaging\", [\n      \"allMessagesIndividually\",\n      \"allMessagesTogether\",\n      \"firstMessageOnly\",\n      \"noMessages\",\n    ]);\n  }\n}\n\nclass Version extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"version\", [\"1.7\", \"1.6\", \"1.5\", \"1.4\", \"1.3\", \"1.2\"]);\n  }\n}\n\nclass VersionControl extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"VersionControl\");\n    this.outputBelow = getStringOption(attributes.outputBelow, [\n      \"warn\",\n      \"error\",\n      \"update\",\n    ]);\n    this.sourceAbove = getStringOption(attributes.sourceAbove, [\n      \"warn\",\n      \"error\",\n    ]);\n    this.sourceBelow = getStringOption(attributes.sourceBelow, [\n      \"update\",\n      \"maintain\",\n    ]);\n  }\n}\n\nclass ViewerPreferences extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"viewerPreferences\", /* hasChildren = */ true);\n    this.ADBE_JSConsole = null;\n    this.ADBE_JSDebugger = null;\n    this.addViewerPreferences = null;\n    this.duplexOption = null;\n    this.enforce = null;\n    this.numberOfCopies = null;\n    this.pageRange = null;\n    this.pickTrayByPDFSize = null;\n    this.printScaling = null;\n  }\n}\n\nclass WebClient extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"webClient\", /* hasChildren = */ true);\n    this.name = attributes.name ? attributes.name.trim() : \"\";\n    this.fontInfo = null;\n    this.xdc = null;\n  }\n}\n\nclass Whitespace extends OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"whitespace\", [\n      \"preserve\",\n      \"ltrim\",\n      \"normalize\",\n      \"rtrim\",\n      \"trim\",\n    ]);\n  }\n}\n\nclass Window extends ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"window\");\n  }\n\n  [$finalize]() {\n    const pair = this[$content]\n      .trim()\n      .split(/\\s*,\\s*/, 2)\n      .map(x => parseInt(x, 10));\n    if (pair.some(x => isNaN(x))) {\n      this[$content] = [0, 0];\n      return;\n    }\n    if (pair.length === 1) {\n      pair.push(pair[0]);\n    }\n    this[$content] = pair;\n  }\n}\n\nclass Xdc extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"xdc\", /* hasChildren = */ true);\n    this.uri = new XFAObjectArray();\n    this.xsl = new XFAObjectArray();\n  }\n}\n\nclass Xdp extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"xdp\", /* hasChildren = */ true);\n    this.packets = null;\n  }\n}\n\nclass Xsl extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"xsl\", /* hasChildren = */ true);\n    this.debug = null;\n    this.uri = null;\n  }\n}\n\nclass Zpl extends XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"zpl\", /* hasChildren = */ true);\n    this.name = attributes.name ? attributes.name.trim() : \"\";\n    this.batchOutput = null;\n    this.flipLabel = null;\n    this.fontInfo = null;\n    this.xdc = null;\n  }\n}\n\nclass ConfigNamespace {\n  static [$buildXFAObject](name, attributes) {\n    if (ConfigNamespace.hasOwnProperty(name)) {\n      return ConfigNamespace[name](attributes);\n    }\n    return undefined;\n  }\n\n  static acrobat(attrs) {\n    return new Acrobat(attrs);\n  }\n\n  static acrobat7(attrs) {\n    return new Acrobat7(attrs);\n  }\n\n  static ADBE_JSConsole(attrs) {\n    return new ADBE_JSConsole(attrs);\n  }\n\n  static ADBE_JSDebugger(attrs) {\n    return new ADBE_JSDebugger(attrs);\n  }\n\n  static addSilentPrint(attrs) {\n    return new AddSilentPrint(attrs);\n  }\n\n  static addViewerPreferences(attrs) {\n    return new AddViewerPreferences(attrs);\n  }\n\n  static adjustData(attrs) {\n    return new AdjustData(attrs);\n  }\n\n  static adobeExtensionLevel(attrs) {\n    return new AdobeExtensionLevel(attrs);\n  }\n\n  static agent(attrs) {\n    return new Agent(attrs);\n  }\n\n  static alwaysEmbed(attrs) {\n    return new AlwaysEmbed(attrs);\n  }\n\n  static amd(attrs) {\n    return new Amd(attrs);\n  }\n\n  static area(attrs) {\n    return new Area(attrs);\n  }\n\n  static attributes(attrs) {\n    return new Attributes(attrs);\n  }\n\n  static autoSave(attrs) {\n    return new AutoSave(attrs);\n  }\n\n  static base(attrs) {\n    return new Base(attrs);\n  }\n\n  static batchOutput(attrs) {\n    return new BatchOutput(attrs);\n  }\n\n  static behaviorOverride(attrs) {\n    return new BehaviorOverride(attrs);\n  }\n\n  static cache(attrs) {\n    return new Cache(attrs);\n  }\n\n  static change(attrs) {\n    return new Change(attrs);\n  }\n\n  static common(attrs) {\n    return new Common(attrs);\n  }\n\n  static compress(attrs) {\n    return new Compress(attrs);\n  }\n\n  static compressLogicalStructure(attrs) {\n    return new CompressLogicalStructure(attrs);\n  }\n\n  static compressObjectStream(attrs) {\n    return new CompressObjectStream(attrs);\n  }\n\n  static compression(attrs) {\n    return new Compression(attrs);\n  }\n\n  static config(attrs) {\n    return new Config(attrs);\n  }\n\n  static conformance(attrs) {\n    return new Conformance(attrs);\n  }\n\n  static contentCopy(attrs) {\n    return new ContentCopy(attrs);\n  }\n\n  static copies(attrs) {\n    return new Copies(attrs);\n  }\n\n  static creator(attrs) {\n    return new Creator(attrs);\n  }\n\n  static currentPage(attrs) {\n    return new CurrentPage(attrs);\n  }\n\n  static data(attrs) {\n    return new Data(attrs);\n  }\n\n  static debug(attrs) {\n    return new Debug(attrs);\n  }\n\n  static defaultTypeface(attrs) {\n    return new DefaultTypeface(attrs);\n  }\n\n  static destination(attrs) {\n    return new Destination(attrs);\n  }\n\n  static documentAssembly(attrs) {\n    return new DocumentAssembly(attrs);\n  }\n\n  static driver(attrs) {\n    return new Driver(attrs);\n  }\n\n  static duplexOption(attrs) {\n    return new DuplexOption(attrs);\n  }\n\n  static dynamicRender(attrs) {\n    return new DynamicRender(attrs);\n  }\n\n  static embed(attrs) {\n    return new Embed(attrs);\n  }\n\n  static encrypt(attrs) {\n    return new Encrypt(attrs);\n  }\n\n  static encryption(attrs) {\n    return new Encryption(attrs);\n  }\n\n  static encryptionLevel(attrs) {\n    return new EncryptionLevel(attrs);\n  }\n\n  static enforce(attrs) {\n    return new Enforce(attrs);\n  }\n\n  static equate(attrs) {\n    return new Equate(attrs);\n  }\n\n  static equateRange(attrs) {\n    return new EquateRange(attrs);\n  }\n\n  static exclude(attrs) {\n    return new Exclude(attrs);\n  }\n\n  static excludeNS(attrs) {\n    return new ExcludeNS(attrs);\n  }\n\n  static flipLabel(attrs) {\n    return new FlipLabel(attrs);\n  }\n\n  static fontInfo(attrs) {\n    return new FontInfo(attrs);\n  }\n\n  static formFieldFilling(attrs) {\n    return new FormFieldFilling(attrs);\n  }\n\n  static groupParent(attrs) {\n    return new GroupParent(attrs);\n  }\n\n  static ifEmpty(attrs) {\n    return new IfEmpty(attrs);\n  }\n\n  static includeXDPContent(attrs) {\n    return new IncludeXDPContent(attrs);\n  }\n\n  static incrementalLoad(attrs) {\n    return new IncrementalLoad(attrs);\n  }\n\n  static incrementalMerge(attrs) {\n    return new IncrementalMerge(attrs);\n  }\n\n  static interactive(attrs) {\n    return new Interactive(attrs);\n  }\n\n  static jog(attrs) {\n    return new Jog(attrs);\n  }\n\n  static labelPrinter(attrs) {\n    return new LabelPrinter(attrs);\n  }\n\n  static layout(attrs) {\n    return new Layout(attrs);\n  }\n\n  static level(attrs) {\n    return new Level(attrs);\n  }\n\n  static linearized(attrs) {\n    return new Linearized(attrs);\n  }\n\n  static locale(attrs) {\n    return new Locale(attrs);\n  }\n\n  static localeSet(attrs) {\n    return new LocaleSet(attrs);\n  }\n\n  static log(attrs) {\n    return new Log(attrs);\n  }\n\n  static map(attrs) {\n    return new MapElement(attrs);\n  }\n\n  static mediumInfo(attrs) {\n    return new MediumInfo(attrs);\n  }\n\n  static message(attrs) {\n    return new Message(attrs);\n  }\n\n  static messaging(attrs) {\n    return new Messaging(attrs);\n  }\n\n  static mode(attrs) {\n    return new Mode(attrs);\n  }\n\n  static modifyAnnots(attrs) {\n    return new ModifyAnnots(attrs);\n  }\n\n  static msgId(attrs) {\n    return new MsgId(attrs);\n  }\n\n  static nameAttr(attrs) {\n    return new NameAttr(attrs);\n  }\n\n  static neverEmbed(attrs) {\n    return new NeverEmbed(attrs);\n  }\n\n  static numberOfCopies(attrs) {\n    return new NumberOfCopies(attrs);\n  }\n\n  static openAction(attrs) {\n    return new OpenAction(attrs);\n  }\n\n  static output(attrs) {\n    return new Output(attrs);\n  }\n\n  static outputBin(attrs) {\n    return new OutputBin(attrs);\n  }\n\n  static outputXSL(attrs) {\n    return new OutputXSL(attrs);\n  }\n\n  static overprint(attrs) {\n    return new Overprint(attrs);\n  }\n\n  static packets(attrs) {\n    return new Packets(attrs);\n  }\n\n  static pageOffset(attrs) {\n    return new PageOffset(attrs);\n  }\n\n  static pageRange(attrs) {\n    return new PageRange(attrs);\n  }\n\n  static pagination(attrs) {\n    return new Pagination(attrs);\n  }\n\n  static paginationOverride(attrs) {\n    return new PaginationOverride(attrs);\n  }\n\n  static part(attrs) {\n    return new Part(attrs);\n  }\n\n  static pcl(attrs) {\n    return new Pcl(attrs);\n  }\n\n  static pdf(attrs) {\n    return new Pdf(attrs);\n  }\n\n  static pdfa(attrs) {\n    return new Pdfa(attrs);\n  }\n\n  static permissions(attrs) {\n    return new Permissions(attrs);\n  }\n\n  static pickTrayByPDFSize(attrs) {\n    return new PickTrayByPDFSize(attrs);\n  }\n\n  static picture(attrs) {\n    return new Picture(attrs);\n  }\n\n  static plaintextMetadata(attrs) {\n    return new PlaintextMetadata(attrs);\n  }\n\n  static presence(attrs) {\n    return new Presence(attrs);\n  }\n\n  static present(attrs) {\n    return new Present(attrs);\n  }\n\n  static print(attrs) {\n    return new Print(attrs);\n  }\n\n  static printHighQuality(attrs) {\n    return new PrintHighQuality(attrs);\n  }\n\n  static printScaling(attrs) {\n    return new PrintScaling(attrs);\n  }\n\n  static printerName(attrs) {\n    return new PrinterName(attrs);\n  }\n\n  static producer(attrs) {\n    return new Producer(attrs);\n  }\n\n  static ps(attrs) {\n    return new Ps(attrs);\n  }\n\n  static range(attrs) {\n    return new Range(attrs);\n  }\n\n  static record(attrs) {\n    return new Record(attrs);\n  }\n\n  static relevant(attrs) {\n    return new Relevant(attrs);\n  }\n\n  static rename(attrs) {\n    return new Rename(attrs);\n  }\n\n  static renderPolicy(attrs) {\n    return new RenderPolicy(attrs);\n  }\n\n  static runScripts(attrs) {\n    return new RunScripts(attrs);\n  }\n\n  static script(attrs) {\n    return new Script(attrs);\n  }\n\n  static scriptModel(attrs) {\n    return new ScriptModel(attrs);\n  }\n\n  static severity(attrs) {\n    return new Severity(attrs);\n  }\n\n  static silentPrint(attrs) {\n    return new SilentPrint(attrs);\n  }\n\n  static staple(attrs) {\n    return new Staple(attrs);\n  }\n\n  static startNode(attrs) {\n    return new StartNode(attrs);\n  }\n\n  static startPage(attrs) {\n    return new StartPage(attrs);\n  }\n\n  static submitFormat(attrs) {\n    return new SubmitFormat(attrs);\n  }\n\n  static submitUrl(attrs) {\n    return new SubmitUrl(attrs);\n  }\n\n  static subsetBelow(attrs) {\n    return new SubsetBelow(attrs);\n  }\n\n  static suppressBanner(attrs) {\n    return new SuppressBanner(attrs);\n  }\n\n  static tagged(attrs) {\n    return new Tagged(attrs);\n  }\n\n  static template(attrs) {\n    return new Template(attrs);\n  }\n\n  static templateCache(attrs) {\n    return new TemplateCache(attrs);\n  }\n\n  static threshold(attrs) {\n    return new Threshold(attrs);\n  }\n\n  static to(attrs) {\n    return new To(attrs);\n  }\n\n  static trace(attrs) {\n    return new Trace(attrs);\n  }\n\n  static transform(attrs) {\n    return new Transform(attrs);\n  }\n\n  static type(attrs) {\n    return new Type(attrs);\n  }\n\n  static uri(attrs) {\n    return new Uri(attrs);\n  }\n\n  static validate(attrs) {\n    return new Validate(attrs);\n  }\n\n  static validateApprovalSignatures(attrs) {\n    return new ValidateApprovalSignatures(attrs);\n  }\n\n  static validationMessaging(attrs) {\n    return new ValidationMessaging(attrs);\n  }\n\n  static version(attrs) {\n    return new Version(attrs);\n  }\n\n  static versionControl(attrs) {\n    return new VersionControl(attrs);\n  }\n\n  static viewerPreferences(attrs) {\n    return new ViewerPreferences(attrs);\n  }\n\n  static webClient(attrs) {\n    return new WebClient(attrs);\n  }\n\n  static whitespace(attrs) {\n    return new Whitespace(attrs);\n  }\n\n  static window(attrs) {\n    return new Window(attrs);\n  }\n\n  static xdc(attrs) {\n    return new Xdc(attrs);\n  }\n\n  static xdp(attrs) {\n    return new Xdp(attrs);\n  }\n\n  static xsl(attrs) {\n    return new Xsl(attrs);\n  }\n\n  static zpl(attrs) {\n    return new Zpl(attrs);\n  }\n}\n\nexport { ConfigNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { StringObject, XFAObject, XFAObjectArray } from \"./xfa_object.js\";\n\nconst CONNECTION_SET_NS_ID = NamespaceIds.connectionSet.id;\n\nclass ConnectionSet extends XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"connectionSet\", /* hasChildren = */ true);\n    this.wsdlConnection = new XFAObjectArray();\n    this.xmlConnection = new XFAObjectArray();\n    this.xsdConnection = new XFAObjectArray();\n  }\n}\n\nclass EffectiveInputPolicy extends XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"effectiveInputPolicy\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass EffectiveOutputPolicy extends XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"effectiveOutputPolicy\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass Operation extends StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"operation\");\n    this.id = attributes.id || \"\";\n    this.input = attributes.input || \"\";\n    this.name = attributes.name || \"\";\n    this.output = attributes.output || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass RootElement extends StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"rootElement\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass SoapAction extends StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"soapAction\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass SoapAddress extends StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"soapAddress\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass Uri extends StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"uri\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass WsdlAddress extends StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"wsdlAddress\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n}\n\nclass WsdlConnection extends XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"wsdlConnection\", /* hasChildren = */ true);\n    this.dataDescription = attributes.dataDescription || \"\";\n    this.name = attributes.name || \"\";\n    this.effectiveInputPolicy = null;\n    this.effectiveOutputPolicy = null;\n    this.operation = null;\n    this.soapAction = null;\n    this.soapAddress = null;\n    this.wsdlAddress = null;\n  }\n}\n\nclass XmlConnection extends XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"xmlConnection\", /* hasChildren = */ true);\n    this.dataDescription = attributes.dataDescription || \"\";\n    this.name = attributes.name || \"\";\n    this.uri = null;\n  }\n}\n\nclass XsdConnection extends XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"xsdConnection\", /* hasChildren = */ true);\n    this.dataDescription = attributes.dataDescription || \"\";\n    this.name = attributes.name || \"\";\n    this.rootElement = null;\n    this.uri = null;\n  }\n}\n\nclass ConnectionSetNamespace {\n  static [$buildXFAObject](name, attributes) {\n    if (ConnectionSetNamespace.hasOwnProperty(name)) {\n      return ConnectionSetNamespace[name](attributes);\n    }\n    return undefined;\n  }\n\n  static connectionSet(attrs) {\n    return new ConnectionSet(attrs);\n  }\n\n  static effectiveInputPolicy(attrs) {\n    return new EffectiveInputPolicy(attrs);\n  }\n\n  static effectiveOutputPolicy(attrs) {\n    return new EffectiveOutputPolicy(attrs);\n  }\n\n  static operation(attrs) {\n    return new Operation(attrs);\n  }\n\n  static rootElement(attrs) {\n    return new RootElement(attrs);\n  }\n\n  static soapAction(attrs) {\n    return new SoapAction(attrs);\n  }\n\n  static soapAddress(attrs) {\n    return new SoapAddress(attrs);\n  }\n\n  static uri(attrs) {\n    return new Uri(attrs);\n  }\n\n  static wsdlAddress(attrs) {\n    return new WsdlAddress(attrs);\n  }\n\n  static wsdlConnection(attrs) {\n    return new WsdlConnection(attrs);\n  }\n\n  static xmlConnection(attrs) {\n    return new XmlConnection(attrs);\n  }\n\n  static xsdConnection(attrs) {\n    return new XsdConnection(attrs);\n  }\n}\n\nexport { ConnectionSetNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  $appendChild,\n  $isNsAgnostic,\n  $namespaceId,\n  $nodeName,\n  $onChild,\n} from \"./symbol_utils.js\";\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { XFAObject, XmlObject } from \"./xfa_object.js\";\n\nconst DATASETS_NS_ID = NamespaceIds.datasets.id;\n\nclass Data extends XmlObject {\n  constructor(attributes) {\n    super(DATASETS_NS_ID, \"data\", attributes);\n  }\n\n  [$isNsAgnostic]() {\n    return true;\n  }\n}\n\nclass Datasets extends XFAObject {\n  constructor(attributes) {\n    super(DATASETS_NS_ID, \"datasets\", /* hasChildren = */ true);\n    this.data = null;\n    this.Signature = null;\n  }\n\n  [$onChild](child) {\n    const name = child[$nodeName];\n    if (\n      (name === \"data\" && child[$namespaceId] === DATASETS_NS_ID) ||\n      (name === \"Signature\" &&\n        child[$namespaceId] === NamespaceIds.signature.id)\n    ) {\n      this[name] = child;\n    }\n    this[$appendChild](child);\n  }\n}\n\nclass DatasetsNamespace {\n  static [$buildXFAObject](name, attributes) {\n    if (DatasetsNamespace.hasOwnProperty(name)) {\n      return DatasetsNamespace[name](attributes);\n    }\n    return undefined;\n  }\n\n  static datasets(attributes) {\n    return new Datasets(attributes);\n  }\n\n  static data(attributes) {\n    return new Data(attributes);\n  }\n}\n\nexport { DatasetsNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n  ContentObject,\n  StringObject,\n  XFAObject,\n  XFAObjectArray,\n} from \"./xfa_object.js\";\nimport { getInteger, getStringOption } from \"./utils.js\";\n\nconst LOCALE_SET_NS_ID = NamespaceIds.localeSet.id;\n\nclass CalendarSymbols extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"calendarSymbols\", /* hasChildren = */ true);\n    this.name = \"gregorian\";\n    this.dayNames = new XFAObjectArray(2);\n    this.eraNames = null;\n    this.meridiemNames = null;\n    this.monthNames = new XFAObjectArray(2);\n  }\n}\n\nclass CurrencySymbol extends StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"currencySymbol\");\n    this.name = getStringOption(attributes.name, [\n      \"symbol\",\n      \"isoname\",\n      \"decimal\",\n    ]);\n  }\n}\n\nclass CurrencySymbols extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"currencySymbols\", /* hasChildren = */ true);\n    this.currencySymbol = new XFAObjectArray(3);\n  }\n}\n\nclass DatePattern extends StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"datePattern\");\n    this.name = getStringOption(attributes.name, [\n      \"full\",\n      \"long\",\n      \"med\",\n      \"short\",\n    ]);\n  }\n}\n\nclass DatePatterns extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"datePatterns\", /* hasChildren = */ true);\n    this.datePattern = new XFAObjectArray(4);\n  }\n}\n\nclass DateTimeSymbols extends ContentObject {\n  // TODO: spec unclear about the format of the array.\n\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"dateTimeSymbols\");\n  }\n}\n\nclass Day extends StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"day\");\n  }\n}\n\nclass DayNames extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"dayNames\", /* hasChildren = */ true);\n    this.abbr = getInteger({\n      data: attributes.abbr,\n      defaultValue: 0,\n      validate: x => x === 1,\n    });\n    this.day = new XFAObjectArray(7);\n  }\n}\n\nclass Era extends StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"era\");\n  }\n}\n\nclass EraNames extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"eraNames\", /* hasChildren = */ true);\n    this.era = new XFAObjectArray(2);\n  }\n}\n\nclass Locale extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"locale\", /* hasChildren = */ true);\n    this.desc = attributes.desc || \"\";\n    this.name = \"isoname\";\n    this.calendarSymbols = null;\n    this.currencySymbols = null;\n    this.datePatterns = null;\n    this.dateTimeSymbols = null;\n    this.numberPatterns = null;\n    this.numberSymbols = null;\n    this.timePatterns = null;\n    this.typeFaces = null;\n  }\n}\n\nclass LocaleSet extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"localeSet\", /* hasChildren = */ true);\n    this.locale = new XFAObjectArray();\n  }\n}\n\nclass Meridiem extends StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"meridiem\");\n  }\n}\n\nclass MeridiemNames extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"meridiemNames\", /* hasChildren = */ true);\n    this.meridiem = new XFAObjectArray(2);\n  }\n}\n\nclass Month extends StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"month\");\n  }\n}\n\nclass MonthNames extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"monthNames\", /* hasChildren = */ true);\n    this.abbr = getInteger({\n      data: attributes.abbr,\n      defaultValue: 0,\n      validate: x => x === 1,\n    });\n    this.month = new XFAObjectArray(12);\n  }\n}\n\nclass NumberPattern extends StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"numberPattern\");\n    this.name = getStringOption(attributes.name, [\n      \"full\",\n      \"long\",\n      \"med\",\n      \"short\",\n    ]);\n  }\n}\n\nclass NumberPatterns extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"numberPatterns\", /* hasChildren = */ true);\n    this.numberPattern = new XFAObjectArray(4);\n  }\n}\n\nclass NumberSymbol extends StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"numberSymbol\");\n    this.name = getStringOption(attributes.name, [\n      \"decimal\",\n      \"grouping\",\n      \"percent\",\n      \"minus\",\n      \"zero\",\n    ]);\n  }\n}\n\nclass NumberSymbols extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"numberSymbols\", /* hasChildren = */ true);\n    this.numberSymbol = new XFAObjectArray(5);\n  }\n}\n\nclass TimePattern extends StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"timePattern\");\n    this.name = getStringOption(attributes.name, [\n      \"full\",\n      \"long\",\n      \"med\",\n      \"short\",\n    ]);\n  }\n}\n\nclass TimePatterns extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"timePatterns\", /* hasChildren = */ true);\n    this.timePattern = new XFAObjectArray(4);\n  }\n}\n\nclass TypeFace extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"typeFace\", /* hasChildren = */ true);\n    this.name = attributes.name | \"\";\n  }\n}\n\nclass TypeFaces extends XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"typeFaces\", /* hasChildren = */ true);\n    this.typeFace = new XFAObjectArray();\n  }\n}\n\nclass LocaleSetNamespace {\n  static [$buildXFAObject](name, attributes) {\n    if (LocaleSetNamespace.hasOwnProperty(name)) {\n      return LocaleSetNamespace[name](attributes);\n    }\n    return undefined;\n  }\n\n  static calendarSymbols(attrs) {\n    return new CalendarSymbols(attrs);\n  }\n\n  static currencySymbol(attrs) {\n    return new CurrencySymbol(attrs);\n  }\n\n  static currencySymbols(attrs) {\n    return new CurrencySymbols(attrs);\n  }\n\n  static datePattern(attrs) {\n    return new DatePattern(attrs);\n  }\n\n  static datePatterns(attrs) {\n    return new DatePatterns(attrs);\n  }\n\n  static dateTimeSymbols(attrs) {\n    return new DateTimeSymbols(attrs);\n  }\n\n  static day(attrs) {\n    return new Day(attrs);\n  }\n\n  static dayNames(attrs) {\n    return new DayNames(attrs);\n  }\n\n  static era(attrs) {\n    return new Era(attrs);\n  }\n\n  static eraNames(attrs) {\n    return new EraNames(attrs);\n  }\n\n  static locale(attrs) {\n    return new Locale(attrs);\n  }\n\n  static localeSet(attrs) {\n    return new LocaleSet(attrs);\n  }\n\n  static meridiem(attrs) {\n    return new Meridiem(attrs);\n  }\n\n  static meridiemNames(attrs) {\n    return new MeridiemNames(attrs);\n  }\n\n  static month(attrs) {\n    return new Month(attrs);\n  }\n\n  static monthNames(attrs) {\n    return new MonthNames(attrs);\n  }\n\n  static numberPattern(attrs) {\n    return new NumberPattern(attrs);\n  }\n\n  static numberPatterns(attrs) {\n    return new NumberPatterns(attrs);\n  }\n\n  static numberSymbol(attrs) {\n    return new NumberSymbol(attrs);\n  }\n\n  static numberSymbols(attrs) {\n    return new NumberSymbols(attrs);\n  }\n\n  static timePattern(attrs) {\n    return new TimePattern(attrs);\n  }\n\n  static timePatterns(attrs) {\n    return new TimePatterns(attrs);\n  }\n\n  static typeFace(attrs) {\n    return new TypeFace(attrs);\n  }\n\n  static typeFaces(attrs) {\n    return new TypeFaces(attrs);\n  }\n}\n\nexport { LocaleSetNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { XFAObject } from \"./xfa_object.js\";\n\nconst SIGNATURE_NS_ID = NamespaceIds.signature.id;\n\nclass Signature extends XFAObject {\n  constructor(attributes) {\n    super(SIGNATURE_NS_ID, \"signature\", /* hasChildren = */ true);\n  }\n}\n\nclass SignatureNamespace {\n  static [$buildXFAObject](name, attributes) {\n    if (SignatureNamespace.hasOwnProperty(name)) {\n      return SignatureNamespace[name](attributes);\n    }\n    return undefined;\n  }\n\n  static signature(attributes) {\n    return new Signature(attributes);\n  }\n}\n\nexport { SignatureNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { XFAObject } from \"./xfa_object.js\";\n\nconst STYLESHEET_NS_ID = NamespaceIds.stylesheet.id;\n\nclass Stylesheet extends XFAObject {\n  constructor(attributes) {\n    super(STYLESHEET_NS_ID, \"stylesheet\", /* hasChildren = */ true);\n  }\n}\n\nclass StylesheetNamespace {\n  static [$buildXFAObject](name, attributes) {\n    if (StylesheetNamespace.hasOwnProperty(name)) {\n      return StylesheetNamespace[name](attributes);\n    }\n    return undefined;\n  }\n\n  static stylesheet(attributes) {\n    return new Stylesheet(attributes);\n  }\n}\n\nexport { StylesheetNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { $namespaceId, $nodeName, $onChildCheck } from \"./symbol_utils.js\";\nimport { XFAObject, XFAObjectArray } from \"./xfa_object.js\";\n\nconst XDP_NS_ID = NamespaceIds.xdp.id;\n\nclass Xdp extends XFAObject {\n  constructor(attributes) {\n    super(XDP_NS_ID, \"xdp\", /* hasChildren = */ true);\n    this.uuid = attributes.uuid || \"\";\n    this.timeStamp = attributes.timeStamp || \"\";\n    this.config = null;\n    this.connectionSet = null;\n    this.datasets = null;\n    this.localeSet = null;\n    this.stylesheet = new XFAObjectArray();\n    this.template = null;\n  }\n\n  [$onChildCheck](child) {\n    const ns = NamespaceIds[child[$nodeName]];\n    return ns && child[$namespaceId] === ns.id;\n  }\n}\n\nclass XdpNamespace {\n  static [$buildXFAObject](name, attributes) {\n    if (XdpNamespace.hasOwnProperty(name)) {\n      return XdpNamespace[name](attributes);\n    }\n    return undefined;\n  }\n\n  static xdp(attributes) {\n    return new Xdp(attributes);\n  }\n}\n\nexport { XdpNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  $acceptWhitespace,\n  $childrenToHTML,\n  $clean,\n  $content,\n  $extra,\n  $getChildren,\n  $getParent,\n  $globalData,\n  $nodeName,\n  $onText,\n  $pushGlyphs,\n  $text,\n  $toHTML,\n} from \"./symbol_utils.js\";\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n  fixTextIndent,\n  fixURL,\n  measureToString,\n  setFontFamily,\n} from \"./html_utils.js\";\nimport { getMeasurement, HTMLResult, stripQuotes } from \"./utils.js\";\nimport { XmlObject } from \"./xfa_object.js\";\n\nconst XHTML_NS_ID = NamespaceIds.xhtml.id;\nconst $richText = Symbol();\n\nconst VALID_STYLES = new Set([\n  \"color\",\n  \"font\",\n  \"font-family\",\n  \"font-size\",\n  \"font-stretch\",\n  \"font-style\",\n  \"font-weight\",\n  \"margin\",\n  \"margin-bottom\",\n  \"margin-left\",\n  \"margin-right\",\n  \"margin-top\",\n  \"letter-spacing\",\n  \"line-height\",\n  \"orphans\",\n  \"page-break-after\",\n  \"page-break-before\",\n  \"page-break-inside\",\n  \"tab-interval\",\n  \"tab-stop\",\n  \"text-align\",\n  \"text-decoration\",\n  \"text-indent\",\n  \"vertical-align\",\n  \"widows\",\n  \"kerning-mode\",\n  \"xfa-font-horizontal-scale\",\n  \"xfa-font-vertical-scale\",\n  \"xfa-spacerun\",\n  \"xfa-tab-stops\",\n]);\n\nconst StyleMapping = new Map([\n  [\"page-break-after\", \"breakAfter\"],\n  [\"page-break-before\", \"breakBefore\"],\n  [\"page-break-inside\", \"breakInside\"],\n  [\"kerning-mode\", value => (value === \"none\" ? \"none\" : \"normal\")],\n  [\n    \"xfa-font-horizontal-scale\",\n    value =>\n      `scaleX(${Math.max(0, Math.min(parseInt(value) / 100)).toFixed(2)})`,\n  ],\n  [\n    \"xfa-font-vertical-scale\",\n    value =>\n      `scaleY(${Math.max(0, Math.min(parseInt(value) / 100)).toFixed(2)})`,\n  ],\n  [\"xfa-spacerun\", \"\"],\n  [\"xfa-tab-stops\", \"\"],\n  [\n    \"font-size\",\n    (value, original) => {\n      value = original.fontSize = getMeasurement(value);\n      return measureToString(0.99 * value);\n    },\n  ],\n  [\"letter-spacing\", value => measureToString(getMeasurement(value))],\n  [\"line-height\", value => measureToString(getMeasurement(value))],\n  [\"margin\", value => measureToString(getMeasurement(value))],\n  [\"margin-bottom\", value => measureToString(getMeasurement(value))],\n  [\"margin-left\", value => measureToString(getMeasurement(value))],\n  [\"margin-right\", value => measureToString(getMeasurement(value))],\n  [\"margin-top\", value => measureToString(getMeasurement(value))],\n  [\"text-indent\", value => measureToString(getMeasurement(value))],\n  [\"font-family\", value => value],\n  [\"vertical-align\", value => measureToString(getMeasurement(value))],\n]);\n\nconst spacesRegExp = /\\s+/g;\nconst crlfRegExp = /[\\r\\n]+/g;\nconst crlfForRichTextRegExp = /\\r\\n?/g;\n\nfunction mapStyle(styleStr, node, richText) {\n  const style = Object.create(null);\n  if (!styleStr) {\n    return style;\n  }\n  const original = Object.create(null);\n  for (const [key, value] of styleStr.split(\";\").map(s => s.split(\":\", 2))) {\n    const mapping = StyleMapping.get(key);\n    if (mapping === \"\") {\n      continue;\n    }\n    let newValue = value;\n    if (mapping) {\n      newValue =\n        typeof mapping === \"string\" ? mapping : mapping(value, original);\n    }\n    if (key.endsWith(\"scale\")) {\n      style.transform = style.transform\n        ? `${style[key]} ${newValue}`\n        : newValue;\n    } else {\n      style[key.replaceAll(/-([a-zA-Z])/g, (_, x) => x.toUpperCase())] =\n        newValue;\n    }\n  }\n\n  if (style.fontFamily) {\n    setFontFamily(\n      {\n        typeface: style.fontFamily,\n        weight: style.fontWeight || \"normal\",\n        posture: style.fontStyle || \"normal\",\n        size: original.fontSize || 0,\n      },\n      node,\n      node[$globalData].fontFinder,\n      style\n    );\n  }\n\n  if (\n    richText &&\n    style.verticalAlign &&\n    style.verticalAlign !== \"0px\" &&\n    style.fontSize\n  ) {\n    // A non-zero verticalAlign means that we've a sub/super-script and\n    // consequently the font size must be decreased.\n    // https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf#G11.2097514\n    // And the two following factors to position the scripts have been\n    // found here:\n    // https://en.wikipedia.org/wiki/Subscript_and_superscript#Desktop_publishing\n    const SUB_SUPER_SCRIPT_FACTOR = 0.583;\n    const VERTICAL_FACTOR = 0.333;\n    const fontSize = getMeasurement(style.fontSize);\n    style.fontSize = measureToString(fontSize * SUB_SUPER_SCRIPT_FACTOR);\n    style.verticalAlign = measureToString(\n      Math.sign(getMeasurement(style.verticalAlign)) *\n        fontSize *\n        VERTICAL_FACTOR\n    );\n  }\n\n  if (richText && style.fontSize) {\n    style.fontSize = `calc(${style.fontSize} * var(--scale-factor))`;\n  }\n\n  fixTextIndent(style);\n  return style;\n}\n\nfunction checkStyle(node) {\n  if (!node.style) {\n    return \"\";\n  }\n\n  // Remove any non-allowed keys.\n  return node.style\n    .trim()\n    .split(/\\s*;\\s*/)\n    .filter(s => !!s)\n    .map(s => s.split(/\\s*:\\s*/, 2))\n    .filter(([key, value]) => {\n      if (key === \"font-family\") {\n        node[$globalData].usedTypefaces.add(value);\n      }\n      return VALID_STYLES.has(key);\n    })\n    .map(kv => kv.join(\":\"))\n    .join(\";\");\n}\n\nconst NoWhites = new Set([\"body\", \"html\"]);\n\nclass XhtmlObject extends XmlObject {\n  constructor(attributes, name) {\n    super(XHTML_NS_ID, name);\n    this[$richText] = false;\n    this.style = attributes.style || \"\";\n  }\n\n  [$clean](builder) {\n    super[$clean](builder);\n    this.style = checkStyle(this);\n  }\n\n  [$acceptWhitespace]() {\n    return !NoWhites.has(this[$nodeName]);\n  }\n\n  [$onText](str, richText = false) {\n    if (!richText) {\n      str = str.replaceAll(crlfRegExp, \"\");\n      if (!this.style.includes(\"xfa-spacerun:yes\")) {\n        str = str.replaceAll(spacesRegExp, \" \");\n      }\n    } else {\n      this[$richText] = true;\n    }\n\n    if (str) {\n      this[$content] += str;\n    }\n  }\n\n  [$pushGlyphs](measure, mustPop = true) {\n    const xfaFont = Object.create(null);\n    const margin = {\n      top: NaN,\n      bottom: NaN,\n      left: NaN,\n      right: NaN,\n    };\n    let lineHeight = null;\n    for (const [key, value] of this.style\n      .split(\";\")\n      .map(s => s.split(\":\", 2))) {\n      switch (key) {\n        case \"font-family\":\n          xfaFont.typeface = stripQuotes(value);\n          break;\n        case \"font-size\":\n          xfaFont.size = getMeasurement(value);\n          break;\n        case \"font-weight\":\n          xfaFont.weight = value;\n          break;\n        case \"font-style\":\n          xfaFont.posture = value;\n          break;\n        case \"letter-spacing\":\n          xfaFont.letterSpacing = getMeasurement(value);\n          break;\n        case \"margin\":\n          const values = value.split(/ \\t/).map(x => getMeasurement(x));\n          switch (values.length) {\n            case 1:\n              margin.top =\n                margin.bottom =\n                margin.left =\n                margin.right =\n                  values[0];\n              break;\n            case 2:\n              margin.top = margin.bottom = values[0];\n              margin.left = margin.right = values[1];\n              break;\n            case 3:\n              margin.top = values[0];\n              margin.bottom = values[2];\n              margin.left = margin.right = values[1];\n              break;\n            case 4:\n              margin.top = values[0];\n              margin.left = values[1];\n              margin.bottom = values[2];\n              margin.right = values[3];\n              break;\n          }\n          break;\n        case \"margin-top\":\n          margin.top = getMeasurement(value);\n          break;\n        case \"margin-bottom\":\n          margin.bottom = getMeasurement(value);\n          break;\n        case \"margin-left\":\n          margin.left = getMeasurement(value);\n          break;\n        case \"margin-right\":\n          margin.right = getMeasurement(value);\n          break;\n        case \"line-height\":\n          lineHeight = getMeasurement(value);\n          break;\n      }\n    }\n\n    measure.pushData(xfaFont, margin, lineHeight);\n\n    if (this[$content]) {\n      measure.addString(this[$content]);\n    } else {\n      for (const child of this[$getChildren]()) {\n        if (child[$nodeName] === \"#text\") {\n          measure.addString(child[$content]);\n          continue;\n        }\n        child[$pushGlyphs](measure);\n      }\n    }\n\n    if (mustPop) {\n      measure.popFont();\n    }\n  }\n\n  [$toHTML](availableSpace) {\n    const children = [];\n    this[$extra] = {\n      children,\n    };\n\n    this[$childrenToHTML]({});\n\n    if (children.length === 0 && !this[$content]) {\n      return HTMLResult.EMPTY;\n    }\n\n    let value;\n    if (this[$richText]) {\n      value = this[$content]\n        ? this[$content].replaceAll(crlfForRichTextRegExp, \"\\n\")\n        : undefined;\n    } else {\n      value = this[$content] || undefined;\n    }\n\n    return HTMLResult.success({\n      name: this[$nodeName],\n      attributes: {\n        href: this.href,\n        style: mapStyle(this.style, this, this[$richText]),\n      },\n      children,\n      value,\n    });\n  }\n}\n\nclass A extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"a\");\n    this.href = fixURL(attributes.href) || \"\";\n  }\n}\n\nclass B extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"b\");\n  }\n\n  [$pushGlyphs](measure) {\n    measure.pushFont({ weight: \"bold\" });\n    super[$pushGlyphs](measure);\n    measure.popFont();\n  }\n}\n\nclass Body extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"body\");\n  }\n\n  [$toHTML](availableSpace) {\n    const res = super[$toHTML](availableSpace);\n    const { html } = res;\n    if (!html) {\n      return HTMLResult.EMPTY;\n    }\n    html.name = \"div\";\n    html.attributes.class = [\"xfaRich\"];\n    return res;\n  }\n}\n\nclass Br extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"br\");\n  }\n\n  [$text]() {\n    return \"\\n\";\n  }\n\n  [$pushGlyphs](measure) {\n    measure.addString(\"\\n\");\n  }\n\n  [$toHTML](availableSpace) {\n    return HTMLResult.success({\n      name: \"br\",\n    });\n  }\n}\n\nclass Html extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"html\");\n  }\n\n  [$toHTML](availableSpace) {\n    const children = [];\n    this[$extra] = {\n      children,\n    };\n\n    this[$childrenToHTML]({});\n    if (children.length === 0) {\n      return HTMLResult.success({\n        name: \"div\",\n        attributes: {\n          class: [\"xfaRich\"],\n          style: {},\n        },\n        value: this[$content] || \"\",\n      });\n    }\n\n    if (children.length === 1) {\n      const child = children[0];\n      if (child.attributes?.class.includes(\"xfaRich\")) {\n        return HTMLResult.success(child);\n      }\n    }\n\n    return HTMLResult.success({\n      name: \"div\",\n      attributes: {\n        class: [\"xfaRich\"],\n        style: {},\n      },\n      children,\n    });\n  }\n}\n\nclass I extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"i\");\n  }\n\n  [$pushGlyphs](measure) {\n    measure.pushFont({ posture: \"italic\" });\n    super[$pushGlyphs](measure);\n    measure.popFont();\n  }\n}\n\nclass Li extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"li\");\n  }\n}\n\nclass Ol extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"ol\");\n  }\n}\n\nclass P extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"p\");\n  }\n\n  [$pushGlyphs](measure) {\n    super[$pushGlyphs](measure, /* mustPop = */ false);\n    measure.addString(\"\\n\");\n    measure.addPara();\n    measure.popFont();\n  }\n\n  [$text]() {\n    const siblings = this[$getParent]()[$getChildren]();\n    if (siblings.at(-1) === this) {\n      return super[$text]();\n    }\n    return super[$text]() + \"\\n\";\n  }\n}\n\nclass Span extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"span\");\n  }\n}\n\nclass Sub extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"sub\");\n  }\n}\n\nclass Sup extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"sup\");\n  }\n}\n\nclass Ul extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"ul\");\n  }\n}\n\nclass XhtmlNamespace {\n  static [$buildXFAObject](name, attributes) {\n    if (XhtmlNamespace.hasOwnProperty(name)) {\n      return XhtmlNamespace[name](attributes);\n    }\n    return undefined;\n  }\n\n  static a(attributes) {\n    return new A(attributes);\n  }\n\n  static b(attributes) {\n    return new B(attributes);\n  }\n\n  static body(attributes) {\n    return new Body(attributes);\n  }\n\n  static br(attributes) {\n    return new Br(attributes);\n  }\n\n  static html(attributes) {\n    return new Html(attributes);\n  }\n\n  static i(attributes) {\n    return new I(attributes);\n  }\n\n  static li(attributes) {\n    return new Li(attributes);\n  }\n\n  static ol(attributes) {\n    return new Ol(attributes);\n  }\n\n  static p(attributes) {\n    return new P(attributes);\n  }\n\n  static span(attributes) {\n    return new Span(attributes);\n  }\n\n  static sub(attributes) {\n    return new Sub(attributes);\n  }\n\n  static sup(attributes) {\n    return new Sup(attributes);\n  }\n\n  static ul(attributes) {\n    return new Ul(attributes);\n  }\n}\n\nexport { XhtmlNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ConfigNamespace } from \"./config.js\";\nimport { ConnectionSetNamespace } from \"./connection_set.js\";\nimport { DatasetsNamespace } from \"./datasets.js\";\nimport { LocaleSetNamespace } from \"./locale_set.js\";\nimport { SignatureNamespace } from \"./signature.js\";\nimport { StylesheetNamespace } from \"./stylesheet.js\";\nimport { TemplateNamespace } from \"./template.js\";\nimport { XdpNamespace } from \"./xdp.js\";\nimport { XhtmlNamespace } from \"./xhtml.js\";\n\nconst NamespaceSetUp = {\n  config: ConfigNamespace,\n  connection: ConnectionSetNamespace,\n  datasets: DatasetsNamespace,\n  localeSet: LocaleSetNamespace,\n  signature: SignatureNamespace,\n  stylesheet: StylesheetNamespace,\n  template: TemplateNamespace,\n  xdp: XdpNamespace,\n  xhtml: XhtmlNamespace,\n};\n\nexport { NamespaceSetUp };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject } from \"./namespaces.js\";\nimport { XmlObject } from \"./xfa_object.js\";\n\nclass UnknownNamespace {\n  constructor(nsId) {\n    this.namespaceId = nsId;\n  }\n\n  [$buildXFAObject](name, attributes) {\n    return new XmlObject(this.namespaceId, name, attributes);\n  }\n}\n\nexport { UnknownNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n  $cleanup,\n  $finalize,\n  $ids,\n  $isNsAgnostic,\n  $nsAttributes,\n  $onChild,\n  $resolvePrototypes,\n  $root,\n} from \"./symbol_utils.js\";\nimport { NamespaceSetUp } from \"./setup.js\";\nimport { Template } from \"./template.js\";\nimport { UnknownNamespace } from \"./unknown.js\";\nimport { warn } from \"../../shared/util.js\";\nimport { XFAObject } from \"./xfa_object.js\";\n\nclass Root extends XFAObject {\n  constructor(ids) {\n    super(-1, \"root\", Object.create(null));\n    this.element = null;\n    this[$ids] = ids;\n  }\n\n  [$onChild](child) {\n    this.element = child;\n    return true;\n  }\n\n  [$finalize]() {\n    super[$finalize]();\n    if (this.element.template instanceof Template) {\n      // Set the root element in $ids using a symbol in order\n      // to avoid conflict with real IDs.\n      this[$ids].set($root, this.element);\n\n      this.element.template[$resolvePrototypes](this[$ids]);\n      this.element.template[$ids] = this[$ids];\n    }\n  }\n}\n\nclass Empty extends XFAObject {\n  constructor() {\n    super(-1, \"\", Object.create(null));\n  }\n\n  [$onChild](_) {\n    return false;\n  }\n}\n\nclass Builder {\n  constructor(rootNameSpace = null) {\n    this._namespaceStack = [];\n    this._nsAgnosticLevel = 0;\n\n    // Each prefix has its own stack\n    this._namespacePrefixes = new Map();\n    this._namespaces = new Map();\n    this._nextNsId = Math.max(\n      ...Object.values(NamespaceIds).map(({ id }) => id)\n    );\n    this._currentNamespace =\n      rootNameSpace || new UnknownNamespace(++this._nextNsId);\n  }\n\n  buildRoot(ids) {\n    return new Root(ids);\n  }\n\n  build({ nsPrefix, name, attributes, namespace, prefixes }) {\n    const hasNamespaceDef = namespace !== null;\n    if (hasNamespaceDef) {\n      // Define the current namespace to use.\n      this._namespaceStack.push(this._currentNamespace);\n      this._currentNamespace = this._searchNamespace(namespace);\n    }\n\n    if (prefixes) {\n      // The xml node may have namespace prefix definitions\n      this._addNamespacePrefix(prefixes);\n    }\n\n    if (attributes.hasOwnProperty($nsAttributes)) {\n      // Only support xfa-data namespace.\n      const dataTemplate = NamespaceSetUp.datasets;\n      const nsAttrs = attributes[$nsAttributes];\n      let xfaAttrs = null;\n      for (const [ns, attrs] of Object.entries(nsAttrs)) {\n        const nsToUse = this._getNamespaceToUse(ns);\n        if (nsToUse === dataTemplate) {\n          xfaAttrs = { xfa: attrs };\n          break;\n        }\n      }\n      if (xfaAttrs) {\n        attributes[$nsAttributes] = xfaAttrs;\n      } else {\n        delete attributes[$nsAttributes];\n      }\n    }\n\n    const namespaceToUse = this._getNamespaceToUse(nsPrefix);\n    const node =\n      namespaceToUse?.[$buildXFAObject](name, attributes) || new Empty();\n\n    if (node[$isNsAgnostic]()) {\n      this._nsAgnosticLevel++;\n    }\n\n    // In case the node has some namespace things,\n    // we must pop the different stacks.\n    if (hasNamespaceDef || prefixes || node[$isNsAgnostic]()) {\n      node[$cleanup] = {\n        hasNamespace: hasNamespaceDef,\n        prefixes,\n        nsAgnostic: node[$isNsAgnostic](),\n      };\n    }\n\n    return node;\n  }\n\n  isNsAgnostic() {\n    return this._nsAgnosticLevel > 0;\n  }\n\n  _searchNamespace(nsName) {\n    let ns = this._namespaces.get(nsName);\n    if (ns) {\n      return ns;\n    }\n    for (const [name, { check }] of Object.entries(NamespaceIds)) {\n      if (check(nsName)) {\n        ns = NamespaceSetUp[name];\n        if (ns) {\n          this._namespaces.set(nsName, ns);\n          return ns;\n        }\n        // The namespace is known but not handled.\n        break;\n      }\n    }\n\n    ns = new UnknownNamespace(++this._nextNsId);\n    this._namespaces.set(nsName, ns);\n    return ns;\n  }\n\n  _addNamespacePrefix(prefixes) {\n    for (const { prefix, value } of prefixes) {\n      const namespace = this._searchNamespace(value);\n      let prefixStack = this._namespacePrefixes.get(prefix);\n      if (!prefixStack) {\n        prefixStack = [];\n        this._namespacePrefixes.set(prefix, prefixStack);\n      }\n      prefixStack.push(namespace);\n    }\n  }\n\n  _getNamespaceToUse(prefix) {\n    if (!prefix) {\n      return this._currentNamespace;\n    }\n    const prefixStack = this._namespacePrefixes.get(prefix);\n    if (prefixStack?.length > 0) {\n      return prefixStack.at(-1);\n    }\n\n    warn(`Unknown namespace prefix: ${prefix}.`);\n    return null;\n  }\n\n  clean(data) {\n    const { hasNamespace, prefixes, nsAgnostic } = data;\n    if (hasNamespace) {\n      this._currentNamespace = this._namespaceStack.pop();\n    }\n    if (prefixes) {\n      prefixes.forEach(({ prefix }) => {\n        this._namespacePrefixes.get(prefix).pop();\n      });\n    }\n    if (nsAgnostic) {\n      this._nsAgnosticLevel--;\n    }\n  }\n}\n\nexport { Builder };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  $acceptWhitespace,\n  $clean,\n  $content,\n  $finalize,\n  $globalData,\n  $isCDATAXml,\n  $nsAttributes,\n  $onChild,\n  $onText,\n  $setId,\n} from \"./symbol_utils.js\";\nimport { XMLParserBase, XMLParserErrorCode } from \"../xml_parser.js\";\nimport { Builder } from \"./builder.js\";\nimport { warn } from \"../../shared/util.js\";\n\nclass XFAParser extends XMLParserBase {\n  constructor(rootNameSpace = null, richText = false) {\n    super();\n    this._builder = new Builder(rootNameSpace);\n    this._stack = [];\n    this._globalData = {\n      usedTypefaces: new Set(),\n    };\n    this._ids = new Map();\n    this._current = this._builder.buildRoot(this._ids);\n    this._errorCode = XMLParserErrorCode.NoError;\n    this._whiteRegex = /^\\s+$/;\n    this._nbsps = /\\xa0+/g;\n    this._richText = richText;\n  }\n\n  parse(data) {\n    this.parseXml(data);\n\n    if (this._errorCode !== XMLParserErrorCode.NoError) {\n      return undefined;\n    }\n\n    this._current[$finalize]();\n\n    return this._current.element;\n  }\n\n  onText(text) {\n    // Normally by definition a &nbsp is unbreakable\n    // but in real life Acrobat can break strings on &nbsp.\n    text = text.replace(this._nbsps, match => match.slice(1) + \" \");\n    if (this._richText || this._current[$acceptWhitespace]()) {\n      this._current[$onText](text, this._richText);\n      return;\n    }\n\n    if (this._whiteRegex.test(text)) {\n      return;\n    }\n    this._current[$onText](text.trim());\n  }\n\n  onCdata(text) {\n    this._current[$onText](text);\n  }\n\n  _mkAttributes(attributes, tagName) {\n    // Transform attributes into an object and get out\n    // namespaces information.\n    let namespace = null;\n    let prefixes = null;\n    const attributeObj = Object.create({});\n    for (const { name, value } of attributes) {\n      if (name === \"xmlns\") {\n        if (!namespace) {\n          namespace = value;\n        } else {\n          warn(`XFA - multiple namespace definition in <${tagName}>`);\n        }\n      } else if (name.startsWith(\"xmlns:\")) {\n        const prefix = name.substring(\"xmlns:\".length);\n        if (!prefixes) {\n          prefixes = [];\n        }\n        prefixes.push({ prefix, value });\n      } else {\n        const i = name.indexOf(\":\");\n        if (i === -1) {\n          attributeObj[name] = value;\n        } else {\n          // Attributes can have their own namespace.\n          // For example in data, we can have <foo xfa:dataNode=\"dataGroup\"/>\n          let nsAttrs = attributeObj[$nsAttributes];\n          if (!nsAttrs) {\n            nsAttrs = attributeObj[$nsAttributes] = Object.create(null);\n          }\n          const [ns, attrName] = [name.slice(0, i), name.slice(i + 1)];\n          const attrs = (nsAttrs[ns] ||= Object.create(null));\n          attrs[attrName] = value;\n        }\n      }\n    }\n\n    return [namespace, prefixes, attributeObj];\n  }\n\n  _getNameAndPrefix(name, nsAgnostic) {\n    const i = name.indexOf(\":\");\n    if (i === -1) {\n      return [name, null];\n    }\n    return [name.substring(i + 1), nsAgnostic ? \"\" : name.substring(0, i)];\n  }\n\n  onBeginElement(tagName, attributes, isEmpty) {\n    const [namespace, prefixes, attributesObj] = this._mkAttributes(\n      attributes,\n      tagName\n    );\n    const [name, nsPrefix] = this._getNameAndPrefix(\n      tagName,\n      this._builder.isNsAgnostic()\n    );\n    const node = this._builder.build({\n      nsPrefix,\n      name,\n      attributes: attributesObj,\n      namespace,\n      prefixes,\n    });\n    node[$globalData] = this._globalData;\n\n    if (isEmpty) {\n      // No children: just push the node into its parent.\n      node[$finalize]();\n      if (this._current[$onChild](node)) {\n        node[$setId](this._ids);\n      }\n      node[$clean](this._builder);\n      return;\n    }\n\n    this._stack.push(this._current);\n    this._current = node;\n  }\n\n  onEndElement(name) {\n    const node = this._current;\n    if (node[$isCDATAXml]() && typeof node[$content] === \"string\") {\n      const parser = new XFAParser();\n      parser._globalData = this._globalData;\n      const root = parser.parse(node[$content]);\n      node[$content] = null;\n      node[$onChild](root);\n    }\n\n    node[$finalize]();\n    this._current = this._stack.pop();\n    if (this._current[$onChild](node)) {\n      node[$setId](this._ids);\n    }\n    node[$clean](this._builder);\n  }\n\n  onError(code) {\n    this._errorCode = code;\n  }\n}\n\nexport { XFAParser };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  $appendChild,\n  $globalData,\n  $nodeName,\n  $text,\n  $toHTML,\n  $toPages,\n} from \"./symbol_utils.js\";\nimport { Binder } from \"./bind.js\";\nimport { DataHandler } from \"./data.js\";\nimport { FontFinder } from \"./fonts.js\";\nimport { stripQuotes } from \"./utils.js\";\nimport { warn } from \"../../shared/util.js\";\nimport { XFAParser } from \"./parser.js\";\nimport { XhtmlNamespace } from \"./xhtml.js\";\n\nclass XFAFactory {\n  constructor(data) {\n    try {\n      this.root = new XFAParser().parse(XFAFactory._createDocument(data));\n      const binder = new Binder(this.root);\n      this.form = binder.bind();\n      this.dataHandler = new DataHandler(this.root, binder.getData());\n      this.form[$globalData].template = this.form;\n    } catch (e) {\n      warn(`XFA - an error occurred during parsing and binding: ${e}`);\n    }\n  }\n\n  isValid() {\n    return this.root && this.form;\n  }\n\n  /**\n   * In order to avoid to block the event loop, the conversion\n   * into pages is made asynchronously.\n   */\n  _createPagesHelper() {\n    const iterator = this.form[$toPages]();\n    return new Promise((resolve, reject) => {\n      const nextIteration = () => {\n        try {\n          const value = iterator.next();\n          if (value.done) {\n            resolve(value.value);\n          } else {\n            setTimeout(nextIteration, 0);\n          }\n        } catch (e) {\n          reject(e);\n        }\n      };\n      setTimeout(nextIteration, 0);\n    });\n  }\n\n  async _createPages() {\n    try {\n      this.pages = await this._createPagesHelper();\n      this.dims = this.pages.children.map(c => {\n        const { width, height } = c.attributes.style;\n        return [0, 0, parseInt(width), parseInt(height)];\n      });\n    } catch (e) {\n      warn(`XFA - an error occurred during layout: ${e}`);\n    }\n  }\n\n  getBoundingBox(pageIndex) {\n    return this.dims[pageIndex];\n  }\n\n  async getNumPages() {\n    if (!this.pages) {\n      await this._createPages();\n    }\n    return this.dims.length;\n  }\n\n  setImages(images) {\n    this.form[$globalData].images = images;\n  }\n\n  setFonts(fonts) {\n    this.form[$globalData].fontFinder = new FontFinder(fonts);\n    const missingFonts = [];\n    for (let typeface of this.form[$globalData].usedTypefaces) {\n      typeface = stripQuotes(typeface);\n      const font = this.form[$globalData].fontFinder.find(typeface);\n      if (!font) {\n        missingFonts.push(typeface);\n      }\n    }\n\n    if (missingFonts.length > 0) {\n      return missingFonts;\n    }\n\n    return null;\n  }\n\n  appendFonts(fonts, reallyMissingFonts) {\n    this.form[$globalData].fontFinder.add(fonts, reallyMissingFonts);\n  }\n\n  async getPages() {\n    if (!this.pages) {\n      await this._createPages();\n    }\n    const pages = this.pages;\n    this.pages = null;\n    return pages;\n  }\n\n  serializeData(storage) {\n    return this.dataHandler.serialize(storage);\n  }\n\n  static _createDocument(data) {\n    if (!data[\"/xdp:xdp\"]) {\n      return data[\"xdp:xdp\"];\n    }\n    return Object.values(data).join(\"\");\n  }\n\n  static getRichTextAsHtml(rc) {\n    if (!rc || typeof rc !== \"string\") {\n      return null;\n    }\n\n    try {\n      let root = new XFAParser(XhtmlNamespace, /* richText */ true).parse(rc);\n      if (![\"body\", \"xhtml\"].includes(root[$nodeName])) {\n        // No body, so create one.\n        const newRoot = XhtmlNamespace.body({});\n        newRoot[$appendChild](root);\n        root = newRoot;\n      }\n\n      const result = root[$toHTML]();\n      if (!result.success) {\n        return null;\n      }\n\n      const { html } = result;\n      const { attributes } = html;\n      if (attributes) {\n        if (attributes.class) {\n          attributes.class = attributes.class.filter(\n            attr => !attr.startsWith(\"xfa\")\n          );\n        }\n        attributes.dir = \"auto\";\n      }\n\n      return { html, str: root[$text]() };\n    } catch (e) {\n      warn(`XFA - an error occurred during parsing of rich text: ${e}`);\n    }\n    return null;\n  }\n}\n\nexport { XFAFactory };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  AnnotationActionEventType,\n  AnnotationBorderStyleType,\n  AnnotationEditorType,\n  AnnotationFieldFlag,\n  AnnotationFlag,\n  AnnotationReplyType,\n  AnnotationType,\n  assert,\n  BASELINE_FACTOR,\n  FeatureTest,\n  getModificationDate,\n  IDENTITY_MATRIX,\n  info,\n  LINE_DESCENT_FACTOR,\n  LINE_FACTOR,\n  OPS,\n  RenderingIntentFlag,\n  shadow,\n  stringToPDFString,\n  unreachable,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport {\n  collectActions,\n  escapeString,\n  getInheritableProperty,\n  getRotationMatrix,\n  isAscii,\n  numberToString,\n  stringToUTF16String,\n} from \"./core_utils.js\";\nimport {\n  createDefaultAppearance,\n  FakeUnicodeFont,\n  getPdfColor,\n  parseAppearanceStream,\n  parseDefaultAppearance,\n} from \"./default_appearance.js\";\nimport { Dict, isName, isRefsEqual, Name, Ref, RefSet } from \"./primitives.js\";\nimport { Stream, StringStream } from \"./stream.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { bidi } from \"./bidi.js\";\nimport { Catalog } from \"./catalog.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { FileSpec } from \"./file_spec.js\";\nimport { JpegStream } from \"./jpeg_stream.js\";\nimport { ObjectLoader } from \"./object_loader.js\";\nimport { OperatorList } from \"./operator_list.js\";\nimport { writeObject } from \"./writer.js\";\nimport { XFAFactory } from \"./xfa/factory.js\";\n\nclass AnnotationFactory {\n  static createGlobals(pdfManager) {\n    return Promise.all([\n      pdfManager.ensureCatalog(\"acroForm\"),\n      pdfManager.ensureDoc(\"xfaDatasets\"),\n      pdfManager.ensureCatalog(\"structTreeRoot\"),\n      // Only necessary to prevent the `Catalog.baseUrl`-getter, used\n      // with some Annotations, from throwing and thus breaking parsing:\n      pdfManager.ensureCatalog(\"baseUrl\"),\n      // Only necessary to prevent the `Catalog.attachments`-getter, used\n      // with \"GoToE\" actions, from throwing and thus breaking parsing:\n      pdfManager.ensureCatalog(\"attachments\"),\n    ]).then(\n      ([acroForm, xfaDatasets, structTreeRoot, baseUrl, attachments]) => {\n        return {\n          pdfManager,\n          acroForm: acroForm instanceof Dict ? acroForm : Dict.empty,\n          xfaDatasets,\n          structTreeRoot,\n          baseUrl,\n          attachments,\n        };\n      },\n      reason => {\n        warn(`createGlobals: \"${reason}\".`);\n        return null;\n      }\n    );\n  }\n\n  /**\n   * Create an `Annotation` object of the correct type for the given reference\n   * to an annotation dictionary. This yields a promise that is resolved when\n   * the `Annotation` object is constructed.\n   *\n   * @param {XRef} xref\n   * @param {Object} ref\n   * @params {Object} annotationGlobals\n   * @param {Object} idFactory\n   * @param {boolean} [collectFields]\n   * @param {Object} [pageRef]\n   * @returns {Promise} A promise that is resolved with an {Annotation}\n   *   instance.\n   */\n  static async create(\n    xref,\n    ref,\n    annotationGlobals,\n    idFactory,\n    collectFields,\n    pageRef\n  ) {\n    const pageIndex = collectFields\n      ? await this._getPageIndex(xref, ref, annotationGlobals.pdfManager)\n      : null;\n\n    return annotationGlobals.pdfManager.ensure(this, \"_create\", [\n      xref,\n      ref,\n      annotationGlobals,\n      idFactory,\n      collectFields,\n      pageIndex,\n      pageRef,\n    ]);\n  }\n\n  /**\n   * @private\n   */\n  static _create(\n    xref,\n    ref,\n    annotationGlobals,\n    idFactory,\n    collectFields = false,\n    pageIndex = null,\n    pageRef = null\n  ) {\n    const dict = xref.fetchIfRef(ref);\n    if (!(dict instanceof Dict)) {\n      return undefined;\n    }\n\n    const { acroForm, pdfManager } = annotationGlobals;\n    const id =\n      ref instanceof Ref ? ref.toString() : `annot_${idFactory.createObjId()}`;\n\n    // Determine the annotation's subtype.\n    let subtype = dict.get(\"Subtype\");\n    subtype = subtype instanceof Name ? subtype.name : null;\n\n    // Return the right annotation object based on the subtype and field type.\n    const parameters = {\n      xref,\n      ref,\n      dict,\n      subtype,\n      id,\n      annotationGlobals,\n      collectFields,\n      needAppearances:\n        !collectFields && acroForm.get(\"NeedAppearances\") === true,\n      pageIndex,\n      evaluatorOptions: pdfManager.evaluatorOptions,\n      pageRef,\n    };\n\n    switch (subtype) {\n      case \"Link\":\n        return new LinkAnnotation(parameters);\n\n      case \"Text\":\n        return new TextAnnotation(parameters);\n\n      case \"Widget\":\n        let fieldType = getInheritableProperty({ dict, key: \"FT\" });\n        fieldType = fieldType instanceof Name ? fieldType.name : null;\n\n        switch (fieldType) {\n          case \"Tx\":\n            return new TextWidgetAnnotation(parameters);\n          case \"Btn\":\n            return new ButtonWidgetAnnotation(parameters);\n          case \"Ch\":\n            return new ChoiceWidgetAnnotation(parameters);\n          case \"Sig\":\n            return new SignatureWidgetAnnotation(parameters);\n        }\n        warn(\n          `Unimplemented widget field type \"${fieldType}\", ` +\n            \"falling back to base field type.\"\n        );\n        return new WidgetAnnotation(parameters);\n\n      case \"Popup\":\n        return new PopupAnnotation(parameters);\n\n      case \"FreeText\":\n        return new FreeTextAnnotation(parameters);\n\n      case \"Line\":\n        return new LineAnnotation(parameters);\n\n      case \"Square\":\n        return new SquareAnnotation(parameters);\n\n      case \"Circle\":\n        return new CircleAnnotation(parameters);\n\n      case \"PolyLine\":\n        return new PolylineAnnotation(parameters);\n\n      case \"Polygon\":\n        return new PolygonAnnotation(parameters);\n\n      case \"Caret\":\n        return new CaretAnnotation(parameters);\n\n      case \"Ink\":\n        return new InkAnnotation(parameters);\n\n      case \"Highlight\":\n        return new HighlightAnnotation(parameters);\n\n      case \"Underline\":\n        return new UnderlineAnnotation(parameters);\n\n      case \"Squiggly\":\n        return new SquigglyAnnotation(parameters);\n\n      case \"StrikeOut\":\n        return new StrikeOutAnnotation(parameters);\n\n      case \"Stamp\":\n        return new StampAnnotation(parameters);\n\n      case \"FileAttachment\":\n        return new FileAttachmentAnnotation(parameters);\n\n      default:\n        if (!collectFields) {\n          if (!subtype) {\n            warn(\"Annotation is missing the required /Subtype.\");\n          } else {\n            warn(\n              `Unimplemented annotation type \"${subtype}\", ` +\n                \"falling back to base annotation.\"\n            );\n          }\n        }\n        return new Annotation(parameters);\n    }\n  }\n\n  static async _getPageIndex(xref, ref, pdfManager) {\n    try {\n      const annotDict = await xref.fetchIfRefAsync(ref);\n      if (!(annotDict instanceof Dict)) {\n        return -1;\n      }\n      const pageRef = annotDict.getRaw(\"P\");\n      if (pageRef instanceof Ref) {\n        try {\n          const pageIndex = await pdfManager.ensureCatalog(\"getPageIndex\", [\n            pageRef,\n          ]);\n          return pageIndex;\n        } catch (ex) {\n          info(`_getPageIndex -- not a valid page reference: \"${ex}\".`);\n        }\n      }\n      if (annotDict.has(\"Kids\")) {\n        return -1; // Not an annotation reference.\n      }\n      // Fallback to, potentially, checking the annotations of all pages.\n      // PLEASE NOTE: This could force the *entire* PDF document to load,\n      //              hence it absolutely cannot be done unconditionally.\n      const numPages = await pdfManager.ensureDoc(\"numPages\");\n\n      for (let pageIndex = 0; pageIndex < numPages; pageIndex++) {\n        const page = await pdfManager.getPage(pageIndex);\n        const annotations = await pdfManager.ensure(page, \"annotations\");\n\n        for (const annotRef of annotations) {\n          if (annotRef instanceof Ref && isRefsEqual(annotRef, ref)) {\n            return pageIndex;\n          }\n        }\n      }\n    } catch (ex) {\n      warn(`_getPageIndex: \"${ex}\".`);\n    }\n    return -1;\n  }\n\n  static generateImages(annotations, xref, isOffscreenCanvasSupported) {\n    if (!isOffscreenCanvasSupported) {\n      warn(\n        \"generateImages: OffscreenCanvas is not supported, cannot save or print some annotations with images.\"\n      );\n      return null;\n    }\n    let imagePromises;\n    for (const { bitmapId, bitmap } of annotations) {\n      if (!bitmap) {\n        continue;\n      }\n      imagePromises ||= new Map();\n      imagePromises.set(bitmapId, StampAnnotation.createImage(bitmap, xref));\n    }\n\n    return imagePromises;\n  }\n\n  static async saveNewAnnotations(evaluator, task, annotations, imagePromises) {\n    const xref = evaluator.xref;\n    let baseFontRef;\n    const dependencies = [];\n    const promises = [];\n    const { isOffscreenCanvasSupported } = evaluator.options;\n\n    for (const annotation of annotations) {\n      if (annotation.deleted) {\n        continue;\n      }\n      switch (annotation.annotationType) {\n        case AnnotationEditorType.FREETEXT:\n          if (!baseFontRef) {\n            const baseFont = new Dict(xref);\n            baseFont.set(\"BaseFont\", Name.get(\"Helvetica\"));\n            baseFont.set(\"Type\", Name.get(\"Font\"));\n            baseFont.set(\"Subtype\", Name.get(\"Type1\"));\n            baseFont.set(\"Encoding\", Name.get(\"WinAnsiEncoding\"));\n            const buffer = [];\n            baseFontRef = xref.getNewTemporaryRef();\n            await writeObject(baseFontRef, baseFont, buffer, xref);\n            dependencies.push({ ref: baseFontRef, data: buffer.join(\"\") });\n          }\n          promises.push(\n            FreeTextAnnotation.createNewAnnotation(\n              xref,\n              annotation,\n              dependencies,\n              { evaluator, task, baseFontRef }\n            )\n          );\n          break;\n        case AnnotationEditorType.HIGHLIGHT:\n          promises.push(\n            HighlightAnnotation.createNewAnnotation(\n              xref,\n              annotation,\n              dependencies\n            )\n          );\n          break;\n        case AnnotationEditorType.INK:\n          promises.push(\n            InkAnnotation.createNewAnnotation(xref, annotation, dependencies)\n          );\n          break;\n        case AnnotationEditorType.STAMP:\n          if (!isOffscreenCanvasSupported) {\n            break;\n          }\n          const image = await imagePromises.get(annotation.bitmapId);\n          if (image.imageStream) {\n            const { imageStream, smaskStream } = image;\n            const buffer = [];\n            if (smaskStream) {\n              const smaskRef = xref.getNewTemporaryRef();\n              await writeObject(smaskRef, smaskStream, buffer, xref);\n              dependencies.push({ ref: smaskRef, data: buffer.join(\"\") });\n              imageStream.dict.set(\"SMask\", smaskRef);\n              buffer.length = 0;\n            }\n            const imageRef = (image.imageRef = xref.getNewTemporaryRef());\n            await writeObject(imageRef, imageStream, buffer, xref);\n            dependencies.push({ ref: imageRef, data: buffer.join(\"\") });\n            image.imageStream = image.smaskStream = null;\n          }\n          promises.push(\n            StampAnnotation.createNewAnnotation(\n              xref,\n              annotation,\n              dependencies,\n              { image }\n            )\n          );\n          break;\n      }\n    }\n\n    return {\n      annotations: await Promise.all(promises),\n      dependencies,\n    };\n  }\n\n  static async printNewAnnotations(\n    annotationGlobals,\n    evaluator,\n    task,\n    annotations,\n    imagePromises\n  ) {\n    if (!annotations) {\n      return null;\n    }\n\n    const { options, xref } = evaluator;\n    const promises = [];\n    for (const annotation of annotations) {\n      if (annotation.deleted) {\n        continue;\n      }\n      switch (annotation.annotationType) {\n        case AnnotationEditorType.FREETEXT:\n          promises.push(\n            FreeTextAnnotation.createNewPrintAnnotation(\n              annotationGlobals,\n              xref,\n              annotation,\n              {\n                evaluator,\n                task,\n                evaluatorOptions: options,\n              }\n            )\n          );\n          break;\n        case AnnotationEditorType.HIGHLIGHT:\n          promises.push(\n            HighlightAnnotation.createNewPrintAnnotation(\n              annotationGlobals,\n              xref,\n              annotation,\n              {\n                evaluatorOptions: options,\n              }\n            )\n          );\n          break;\n        case AnnotationEditorType.INK:\n          promises.push(\n            InkAnnotation.createNewPrintAnnotation(\n              annotationGlobals,\n              xref,\n              annotation,\n              {\n                evaluatorOptions: options,\n              }\n            )\n          );\n          break;\n        case AnnotationEditorType.STAMP:\n          if (!options.isOffscreenCanvasSupported) {\n            break;\n          }\n          const image = await imagePromises.get(annotation.bitmapId);\n          if (image.imageStream) {\n            const { imageStream, smaskStream } = image;\n            if (smaskStream) {\n              imageStream.dict.set(\"SMask\", smaskStream);\n            }\n            image.imageRef = new JpegStream(imageStream, imageStream.length);\n            image.imageStream = image.smaskStream = null;\n          }\n          promises.push(\n            StampAnnotation.createNewPrintAnnotation(\n              annotationGlobals,\n              xref,\n              annotation,\n              {\n                image,\n                evaluatorOptions: options,\n              }\n            )\n          );\n          break;\n      }\n    }\n\n    return Promise.all(promises);\n  }\n}\n\nfunction getRgbColor(color, defaultColor = new Uint8ClampedArray(3)) {\n  if (!Array.isArray(color)) {\n    return defaultColor;\n  }\n\n  const rgbColor = defaultColor || new Uint8ClampedArray(3);\n  switch (color.length) {\n    case 0: // Transparent, which we indicate with a null value\n      return null;\n\n    case 1: // Convert grayscale to RGB\n      ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0);\n      return rgbColor;\n\n    case 3: // Convert RGB percentages to RGB\n      ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0);\n      return rgbColor;\n\n    case 4: // Convert CMYK to RGB\n      ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0);\n      return rgbColor;\n\n    default:\n      return defaultColor;\n  }\n}\n\nfunction getPdfColorArray(color) {\n  return Array.from(color, c => c / 255);\n}\n\nfunction getQuadPoints(dict, rect) {\n  // The region is described as a number of quadrilaterals.\n  // Each quadrilateral must consist of eight coordinates.\n  const quadPoints = dict.getArray(\"QuadPoints\");\n  if (\n    !Array.isArray(quadPoints) ||\n    quadPoints.length === 0 ||\n    quadPoints.length % 8 > 0\n  ) {\n    return null;\n  }\n\n  const quadPointsLists = [];\n  for (let i = 0, ii = quadPoints.length / 8; i < ii; i++) {\n    // Each series of eight numbers represents the coordinates for one\n    // quadrilateral in the order [x1, y1, x2, y2, x3, y3, x4, y4].\n    // Convert this to an array of objects with x and y coordinates.\n    let minX = Infinity,\n      maxX = -Infinity,\n      minY = Infinity,\n      maxY = -Infinity;\n    for (let j = i * 8, jj = i * 8 + 8; j < jj; j += 2) {\n      const x = quadPoints[j];\n      const y = quadPoints[j + 1];\n\n      minX = Math.min(x, minX);\n      maxX = Math.max(x, maxX);\n      minY = Math.min(y, minY);\n      maxY = Math.max(y, maxY);\n    }\n    // The quadpoints should be ignored if any coordinate in the array\n    // lies outside the region specified by the rectangle. The rectangle\n    // can be `null` for markup annotations since their rectangle may be\n    // incorrect (fixes bug 1538111).\n    if (\n      rect !== null &&\n      (minX < rect[0] || maxX > rect[2] || minY < rect[1] || maxY > rect[3])\n    ) {\n      return null;\n    }\n    // The PDF specification states in section 12.5.6.10 (figure 64) that the\n    // order of the quadpoints should be bottom left, bottom right, top right\n    // and top left. However, in practice PDF files use a different order,\n    // namely bottom left, bottom right, top left and top right (this is also\n    // mentioned on https://github.com/highkite/pdfAnnotate#QuadPoints), so\n    // this is the actual order we should work with. However, the situation is\n    // even worse since Adobe's own applications and other applications violate\n    // the specification and create annotations with other orders, namely top\n    // left, top right, bottom left and bottom right or even top left,\n    // top right, bottom right and bottom left. To avoid inconsistency and\n    // broken rendering, we normalize all lists to put the quadpoints in the\n    // same standard order (see https://stackoverflow.com/a/10729881).\n    quadPointsLists.push([\n      { x: minX, y: maxY },\n      { x: maxX, y: maxY },\n      { x: minX, y: minY },\n      { x: maxX, y: minY },\n    ]);\n  }\n  return quadPointsLists;\n}\n\nfunction getTransformMatrix(rect, bbox, matrix) {\n  // 12.5.5: Algorithm: Appearance streams\n  const [minX, minY, maxX, maxY] = Util.getAxialAlignedBoundingBox(\n    bbox,\n    matrix\n  );\n  if (minX === maxX || minY === maxY) {\n    // From real-life file, bbox was [0, 0, 0, 0]. In this case,\n    // just apply the transform for rect\n    return [1, 0, 0, 1, rect[0], rect[1]];\n  }\n\n  const xRatio = (rect[2] - rect[0]) / (maxX - minX);\n  const yRatio = (rect[3] - rect[1]) / (maxY - minY);\n  return [\n    xRatio,\n    0,\n    0,\n    yRatio,\n    rect[0] - minX * xRatio,\n    rect[1] - minY * yRatio,\n  ];\n}\n\nclass Annotation {\n  constructor(params) {\n    const { dict, xref, annotationGlobals } = params;\n\n    this.setTitle(dict.get(\"T\"));\n    this.setContents(dict.get(\"Contents\"));\n    this.setModificationDate(dict.get(\"M\"));\n    this.setFlags(dict.get(\"F\"));\n    this.setRectangle(dict.getArray(\"Rect\"));\n    this.setColor(dict.getArray(\"C\"));\n    this.setBorderStyle(dict);\n    this.setAppearance(dict);\n    this.setOptionalContent(dict);\n\n    const MK = dict.get(\"MK\");\n    this.setBorderAndBackgroundColors(MK);\n    this.setRotation(MK, dict);\n    this.ref = params.ref instanceof Ref ? params.ref : null;\n\n    this._streams = [];\n    if (this.appearance) {\n      this._streams.push(this.appearance);\n    }\n\n    // The annotation cannot be changed (neither its position/visibility nor its\n    // contents), hence we can just display its appearance and don't generate\n    // a HTML element for it.\n    const isLocked = !!(this.flags & AnnotationFlag.LOCKED);\n    const isContentLocked = !!(this.flags & AnnotationFlag.LOCKEDCONTENTS);\n\n    if (annotationGlobals.structTreeRoot) {\n      let structParent = dict.get(\"StructParent\");\n      structParent =\n        Number.isInteger(structParent) && structParent >= 0 ? structParent : -1;\n\n      annotationGlobals.structTreeRoot.addAnnotationIdToPage(\n        params.pageRef,\n        structParent\n      );\n    }\n\n    // Expose public properties using a data object.\n    this.data = {\n      annotationFlags: this.flags,\n      borderStyle: this.borderStyle,\n      color: this.color,\n      backgroundColor: this.backgroundColor,\n      borderColor: this.borderColor,\n      rotation: this.rotation,\n      contentsObj: this._contents,\n      hasAppearance: !!this.appearance,\n      id: params.id,\n      modificationDate: this.modificationDate,\n      rect: this.rectangle,\n      subtype: params.subtype,\n      hasOwnCanvas: false,\n      noRotate: !!(this.flags & AnnotationFlag.NOROTATE),\n      noHTML: isLocked && isContentLocked,\n    };\n\n    if (params.collectFields) {\n      // Fields can act as container for other fields and have\n      // some actions even if no Annotation inherit from them.\n      // Those fields can be referenced by CO (calculation order).\n      const kids = dict.get(\"Kids\");\n      if (Array.isArray(kids)) {\n        const kidIds = [];\n        for (const kid of kids) {\n          if (kid instanceof Ref) {\n            kidIds.push(kid.toString());\n          }\n        }\n        if (kidIds.length !== 0) {\n          this.data.kidIds = kidIds;\n        }\n      }\n\n      this.data.actions = collectActions(xref, dict, AnnotationActionEventType);\n      this.data.fieldName = this._constructFieldName(dict);\n      this.data.pageIndex = params.pageIndex;\n    }\n\n    this._isOffscreenCanvasSupported =\n      params.evaluatorOptions.isOffscreenCanvasSupported;\n    this._fallbackFontDict = null;\n    this._needAppearances = false;\n  }\n\n  /**\n   * @private\n   */\n  _hasFlag(flags, flag) {\n    return !!(flags & flag);\n  }\n\n  /**\n   * @private\n   */\n  _isViewable(flags) {\n    return (\n      !this._hasFlag(flags, AnnotationFlag.INVISIBLE) &&\n      !this._hasFlag(flags, AnnotationFlag.NOVIEW)\n    );\n  }\n\n  /**\n   * @private\n   */\n  _isPrintable(flags) {\n    // In Acrobat, hidden flag cancels the print one\n    // (see annotation_hidden_print.pdf).\n    return (\n      this._hasFlag(flags, AnnotationFlag.PRINT) &&\n      !this._hasFlag(flags, AnnotationFlag.HIDDEN) &&\n      !this._hasFlag(flags, AnnotationFlag.INVISIBLE)\n    );\n  }\n\n  /**\n   * Check if the annotation must be displayed by taking into account\n   * the value found in the annotationStorage which may have been set\n   * through JS.\n   *\n   * @public\n   * @memberof Annotation\n   * @param {AnnotationStorage} [annotationStorage] - Storage for annotation\n   * @param {boolean} [_renderForms] - if true widgets are rendered thanks to\n   *                                   the annotation layer.\n   */\n  mustBeViewed(annotationStorage, _renderForms) {\n    const noView = annotationStorage?.get(this.data.id)?.noView;\n    if (noView !== undefined) {\n      return !noView;\n    }\n    return this.viewable && !this._hasFlag(this.flags, AnnotationFlag.HIDDEN);\n  }\n\n  /**\n   * Check if the annotation must be printed by taking into account\n   * the value found in the annotationStorage which may have been set\n   * through JS.\n   *\n   * @public\n   * @memberof Annotation\n   * @param {AnnotationStorage} [annotationStorage] - Storage for annotation\n   */\n  mustBePrinted(annotationStorage) {\n    const noPrint = annotationStorage?.get(this.data.id)?.noPrint;\n    if (noPrint !== undefined) {\n      return !noPrint;\n    }\n    return this.printable;\n  }\n\n  /**\n   * @type {boolean}\n   */\n  get viewable() {\n    if (this.data.quadPoints === null) {\n      return false;\n    }\n    if (this.flags === 0) {\n      return true;\n    }\n    return this._isViewable(this.flags);\n  }\n\n  /**\n   * @type {boolean}\n   */\n  get printable() {\n    if (this.data.quadPoints === null) {\n      return false;\n    }\n    if (this.flags === 0) {\n      return false;\n    }\n    return this._isPrintable(this.flags);\n  }\n\n  /**\n   * @private\n   */\n  _parseStringHelper(data) {\n    const str = typeof data === \"string\" ? stringToPDFString(data) : \"\";\n    const dir = str && bidi(str).dir === \"rtl\" ? \"rtl\" : \"ltr\";\n\n    return { str, dir };\n  }\n\n  setDefaultAppearance(params) {\n    const { dict, annotationGlobals } = params;\n\n    const defaultAppearance =\n      getInheritableProperty({ dict, key: \"DA\" }) ||\n      annotationGlobals.acroForm.get(\"DA\");\n    this._defaultAppearance =\n      typeof defaultAppearance === \"string\" ? defaultAppearance : \"\";\n    this.data.defaultAppearanceData = parseDefaultAppearance(\n      this._defaultAppearance\n    );\n  }\n\n  /**\n   * Set the title.\n   *\n   * @param {string} title - The title of the annotation, used e.g. with\n   *   PopupAnnotations.\n   */\n  setTitle(title) {\n    this._title = this._parseStringHelper(title);\n  }\n\n  /**\n   * Set the contents.\n   *\n   * @param {string} contents - Text to display for the annotation or, if the\n   *                            type of annotation does not display text, a\n   *                            description of the annotation's contents\n   */\n  setContents(contents) {\n    this._contents = this._parseStringHelper(contents);\n  }\n\n  /**\n   * Set the modification date.\n   *\n   * @public\n   * @memberof Annotation\n   * @param {string} modificationDate - PDF date string that indicates when the\n   *                                    annotation was last modified\n   */\n  setModificationDate(modificationDate) {\n    this.modificationDate =\n      typeof modificationDate === \"string\" ? modificationDate : null;\n  }\n\n  /**\n   * Set the flags.\n   *\n   * @public\n   * @memberof Annotation\n   * @param {number} flags - Unsigned 32-bit integer specifying annotation\n   *                         characteristics\n   * @see {@link shared/util.js}\n   */\n  setFlags(flags) {\n    this.flags = Number.isInteger(flags) && flags > 0 ? flags : 0;\n    if (\n      this.flags & AnnotationFlag.INVISIBLE &&\n      this.constructor.name !== \"Annotation\"\n    ) {\n      // From the pdf spec v1.7, section 12.5.3 (Annotation Flags):\n      //   If set, do not display the annotation if it does not belong to one of\n      //   the standard annotation types and no annotation handler is available.\n      //\n      // So we can remove the flag in case we have a known annotation type.\n      this.flags ^= AnnotationFlag.INVISIBLE;\n    }\n  }\n\n  /**\n   * Check if a provided flag is set.\n   *\n   * @public\n   * @memberof Annotation\n   * @param {number} flag - Hexadecimal representation for an annotation\n   *                        characteristic\n   * @returns {boolean}\n   * @see {@link shared/util.js}\n   */\n  hasFlag(flag) {\n    return this._hasFlag(this.flags, flag);\n  }\n\n  /**\n   * Set the rectangle.\n   *\n   * @public\n   * @memberof Annotation\n   * @param {Array} rectangle - The rectangle array with exactly four entries\n   */\n  setRectangle(rectangle) {\n    this.rectangle =\n      Array.isArray(rectangle) && rectangle.length === 4\n        ? Util.normalizeRect(rectangle)\n        : [0, 0, 0, 0];\n  }\n\n  /**\n   * Set the color and take care of color space conversion.\n   * The default value is black, in RGB color space.\n   *\n   * @public\n   * @memberof Annotation\n   * @param {Array} color - The color array containing either 0\n   *                        (transparent), 1 (grayscale), 3 (RGB) or\n   *                        4 (CMYK) elements\n   */\n  setColor(color) {\n    this.color = getRgbColor(color);\n  }\n\n  /**\n   * Set the line endings; should only be used with specific annotation types.\n   * @param {Array} lineEndings - The line endings array.\n   */\n  setLineEndings(lineEndings) {\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n      throw new Error(\"Not implemented: setLineEndings\");\n    }\n    this.lineEndings = [\"None\", \"None\"]; // The default values.\n\n    if (Array.isArray(lineEndings) && lineEndings.length === 2) {\n      for (let i = 0; i < 2; i++) {\n        const obj = lineEndings[i];\n\n        if (obj instanceof Name) {\n          switch (obj.name) {\n            case \"None\":\n              continue;\n            case \"Square\":\n            case \"Circle\":\n            case \"Diamond\":\n            case \"OpenArrow\":\n            case \"ClosedArrow\":\n            case \"Butt\":\n            case \"ROpenArrow\":\n            case \"RClosedArrow\":\n            case \"Slash\":\n              this.lineEndings[i] = obj.name;\n              continue;\n          }\n        }\n        warn(`Ignoring invalid lineEnding: ${obj}`);\n      }\n    }\n  }\n\n  setRotation(mk, dict) {\n    this.rotation = 0;\n    let angle = mk instanceof Dict ? mk.get(\"R\") || 0 : dict.get(\"Rotate\") || 0;\n    if (Number.isInteger(angle) && angle !== 0) {\n      angle %= 360;\n      if (angle < 0) {\n        angle += 360;\n      }\n      if (angle % 90 === 0) {\n        this.rotation = angle;\n      }\n    }\n  }\n\n  /**\n   * Set the color for background and border if any.\n   * The default values are transparent.\n   *\n   * @public\n   * @memberof Annotation\n   * @param {Dict} mk - The MK dictionary\n   */\n  setBorderAndBackgroundColors(mk) {\n    if (mk instanceof Dict) {\n      this.borderColor = getRgbColor(mk.getArray(\"BC\"), null);\n      this.backgroundColor = getRgbColor(mk.getArray(\"BG\"), null);\n    } else {\n      this.borderColor = this.backgroundColor = null;\n    }\n  }\n\n  /**\n   * Set the border style (as AnnotationBorderStyle object).\n   *\n   * @public\n   * @memberof Annotation\n   * @param {Dict} borderStyle - The border style dictionary\n   */\n  setBorderStyle(borderStyle) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(this.rectangle, \"setRectangle must have been called previously.\");\n    }\n\n    this.borderStyle = new AnnotationBorderStyle();\n    if (!(borderStyle instanceof Dict)) {\n      return;\n    }\n    if (borderStyle.has(\"BS\")) {\n      const dict = borderStyle.get(\"BS\");\n\n      if (dict instanceof Dict) {\n        const dictType = dict.get(\"Type\");\n\n        if (!dictType || isName(dictType, \"Border\")) {\n          this.borderStyle.setWidth(dict.get(\"W\"), this.rectangle);\n          this.borderStyle.setStyle(dict.get(\"S\"));\n          this.borderStyle.setDashArray(dict.getArray(\"D\"));\n        }\n      }\n    } else if (borderStyle.has(\"Border\")) {\n      const array = borderStyle.getArray(\"Border\");\n      if (Array.isArray(array) && array.length >= 3) {\n        this.borderStyle.setHorizontalCornerRadius(array[0]);\n        this.borderStyle.setVerticalCornerRadius(array[1]);\n        this.borderStyle.setWidth(array[2], this.rectangle);\n\n        if (array.length === 4) {\n          // Dash array available\n          this.borderStyle.setDashArray(array[3], /* forceStyle = */ true);\n        }\n      }\n    } else {\n      // There are no border entries in the dictionary. According to the\n      // specification, we should draw a solid border of width 1 in that\n      // case, but Adobe Reader did not implement that part of the\n      // specification and instead draws no border at all, so we do the same.\n      // See also https://github.com/mozilla/pdf.js/issues/6179.\n      this.borderStyle.setWidth(0);\n    }\n  }\n\n  /**\n   * Set the (normal) appearance.\n   *\n   * @public\n   * @memberof Annotation\n   * @param {Dict} dict - The annotation's data dictionary\n   */\n  setAppearance(dict) {\n    this.appearance = null;\n\n    const appearanceStates = dict.get(\"AP\");\n    if (!(appearanceStates instanceof Dict)) {\n      return;\n    }\n\n    // In case the normal appearance is a stream, then it is used directly.\n    const normalAppearanceState = appearanceStates.get(\"N\");\n    if (normalAppearanceState instanceof BaseStream) {\n      this.appearance = normalAppearanceState;\n      return;\n    }\n    if (!(normalAppearanceState instanceof Dict)) {\n      return;\n    }\n\n    // In case the normal appearance is a dictionary, the `AS` entry provides\n    // the key of the stream in this dictionary.\n    const as = dict.get(\"AS\");\n    if (!(as instanceof Name) || !normalAppearanceState.has(as.name)) {\n      return;\n    }\n    const appearance = normalAppearanceState.get(as.name);\n    if (appearance instanceof BaseStream) {\n      this.appearance = appearance;\n    }\n  }\n\n  setOptionalContent(dict) {\n    this.oc = null;\n\n    const oc = dict.get(\"OC\");\n    if (oc instanceof Name) {\n      warn(\"setOptionalContent: Support for /Name-entry is not implemented.\");\n    } else if (oc instanceof Dict) {\n      this.oc = oc;\n    }\n  }\n\n  loadResources(keys, appearance) {\n    return appearance.dict.getAsync(\"Resources\").then(resources => {\n      if (!resources) {\n        return undefined;\n      }\n\n      const objectLoader = new ObjectLoader(resources, keys, resources.xref);\n      return objectLoader.load().then(function () {\n        return resources;\n      });\n    });\n  }\n\n  async getOperatorList(\n    evaluator,\n    task,\n    intent,\n    renderForms,\n    annotationStorage\n  ) {\n    const data = this.data;\n    let appearance = this.appearance;\n    const isUsingOwnCanvas = !!(\n      this.data.hasOwnCanvas && intent & RenderingIntentFlag.DISPLAY\n    );\n    if (!appearance) {\n      if (!isUsingOwnCanvas) {\n        return {\n          opList: new OperatorList(),\n          separateForm: false,\n          separateCanvas: false,\n        };\n      }\n      appearance = new StringStream(\"\");\n      appearance.dict = new Dict();\n    }\n\n    const appearanceDict = appearance.dict;\n    const resources = await this.loadResources(\n      [\"ExtGState\", \"ColorSpace\", \"Pattern\", \"Shading\", \"XObject\", \"Font\"],\n      appearance\n    );\n    const bbox = appearanceDict.getArray(\"BBox\") || [0, 0, 1, 1];\n    const matrix = appearanceDict.getArray(\"Matrix\") || [1, 0, 0, 1, 0, 0];\n    const transform = getTransformMatrix(data.rect, bbox, matrix);\n\n    const opList = new OperatorList();\n\n    let optionalContent;\n    if (this.oc) {\n      optionalContent = await evaluator.parseMarkedContentProps(\n        this.oc,\n        /* resources = */ null\n      );\n    }\n    if (optionalContent !== undefined) {\n      opList.addOp(OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n    }\n\n    opList.addOp(OPS.beginAnnotation, [\n      data.id,\n      data.rect,\n      transform,\n      matrix,\n      isUsingOwnCanvas,\n    ]);\n\n    await evaluator.getOperatorList({\n      stream: appearance,\n      task,\n      resources,\n      operatorList: opList,\n      fallbackFontDict: this._fallbackFontDict,\n    });\n    opList.addOp(OPS.endAnnotation, []);\n\n    if (optionalContent !== undefined) {\n      opList.addOp(OPS.endMarkedContent, []);\n    }\n    this.reset();\n    return { opList, separateForm: false, separateCanvas: isUsingOwnCanvas };\n  }\n\n  async save(evaluator, task, annotationStorage) {\n    return null;\n  }\n\n  get hasTextContent() {\n    return false;\n  }\n\n  async extractTextContent(evaluator, task, viewBox) {\n    if (!this.appearance) {\n      return;\n    }\n\n    const resources = await this.loadResources(\n      [\"ExtGState\", \"Font\", \"Properties\", \"XObject\"],\n      this.appearance\n    );\n\n    const text = [];\n    const buffer = [];\n    let firstPosition = null;\n    const sink = {\n      desiredSize: Math.Infinity,\n      ready: true,\n\n      enqueue(chunk, size) {\n        for (const item of chunk.items) {\n          if (item.str === undefined) {\n            continue;\n          }\n          firstPosition ||= item.transform.slice(-2);\n          buffer.push(item.str);\n          if (item.hasEOL) {\n            text.push(buffer.join(\"\"));\n            buffer.length = 0;\n          }\n        }\n      },\n    };\n\n    await evaluator.getTextContent({\n      stream: this.appearance,\n      task,\n      resources,\n      includeMarkedContent: true,\n      sink,\n      viewBox,\n    });\n    this.reset();\n\n    if (buffer.length) {\n      text.push(buffer.join(\"\"));\n    }\n\n    if (text.length > 1 || text[0]) {\n      const appearanceDict = this.appearance.dict;\n      const bbox = appearanceDict.getArray(\"BBox\") || [0, 0, 1, 1];\n      const matrix = appearanceDict.getArray(\"Matrix\") || [1, 0, 0, 1, 0, 0];\n      const rect = this.data.rect;\n      const transform = getTransformMatrix(rect, bbox, matrix);\n      transform[4] -= rect[0];\n      transform[5] -= rect[1];\n      firstPosition = Util.applyTransform(firstPosition, transform);\n      firstPosition = Util.applyTransform(firstPosition, matrix);\n\n      this.data.textPosition = firstPosition;\n      this.data.textContent = text;\n    }\n  }\n\n  /**\n   * Get field data for usage in JS sandbox.\n   *\n   * Field object is defined here:\n   * https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/js_api_reference.pdf#page=16\n   *\n   * @public\n   * @memberof Annotation\n   * @returns {Object | null}\n   */\n  getFieldObject() {\n    if (this.data.kidIds) {\n      return {\n        id: this.data.id,\n        actions: this.data.actions,\n        name: this.data.fieldName,\n        strokeColor: this.data.borderColor,\n        fillColor: this.data.backgroundColor,\n        type: \"\",\n        kidIds: this.data.kidIds,\n        page: this.data.pageIndex,\n        rotation: this.rotation,\n      };\n    }\n    return null;\n  }\n\n  /**\n   * Reset the annotation.\n   *\n   * This involves resetting the various streams that are either cached on the\n   * annotation instance or created during its construction.\n   *\n   * @public\n   * @memberof Annotation\n   */\n  reset() {\n    if (\n      (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n      this.appearance &&\n      !this._streams.includes(this.appearance)\n    ) {\n      unreachable(\"The appearance stream should always be reset.\");\n    }\n\n    for (const stream of this._streams) {\n      stream.reset();\n    }\n  }\n\n  /**\n   * Construct the (fully qualified) field name from the (partial) field\n   * names of the field and its ancestors.\n   *\n   * @private\n   * @memberof Annotation\n   * @param {Dict} dict - Complete widget annotation dictionary\n   * @returns {string}\n   */\n  _constructFieldName(dict) {\n    // Both the `Parent` and `T` fields are optional. While at least one of\n    // them should be provided, bad PDF generators may fail to do so.\n    if (!dict.has(\"T\") && !dict.has(\"Parent\")) {\n      warn(\"Unknown field name, falling back to empty field name.\");\n      return \"\";\n    }\n\n    // If no parent exists, the partial and fully qualified names are equal.\n    if (!dict.has(\"Parent\")) {\n      return stringToPDFString(dict.get(\"T\"));\n    }\n\n    // Form the fully qualified field name by appending the partial name to\n    // the parent's fully qualified name, separated by a period.\n    const fieldName = [];\n    if (dict.has(\"T\")) {\n      fieldName.unshift(stringToPDFString(dict.get(\"T\")));\n    }\n\n    let loopDict = dict;\n    const visited = new RefSet();\n    if (dict.objId) {\n      visited.put(dict.objId);\n    }\n    while (loopDict.has(\"Parent\")) {\n      loopDict = loopDict.get(\"Parent\");\n      if (\n        !(loopDict instanceof Dict) ||\n        (loopDict.objId && visited.has(loopDict.objId))\n      ) {\n        // Even though it is not allowed according to the PDF specification,\n        // bad PDF generators may provide a `Parent` entry that is not a\n        // dictionary, but `null` for example (issue 8143).\n        //\n        // If parent has been already visited, it means that we're\n        // in an infinite loop.\n        break;\n      }\n      if (loopDict.objId) {\n        visited.put(loopDict.objId);\n      }\n\n      if (loopDict.has(\"T\")) {\n        fieldName.unshift(stringToPDFString(loopDict.get(\"T\")));\n      }\n    }\n    return fieldName.join(\".\");\n  }\n}\n\n/**\n * Contains all data regarding an annotation's border style.\n */\nclass AnnotationBorderStyle {\n  constructor() {\n    this.width = 1;\n    this.style = AnnotationBorderStyleType.SOLID;\n    this.dashArray = [3];\n    this.horizontalCornerRadius = 0;\n    this.verticalCornerRadius = 0;\n  }\n\n  /**\n   * Set the width.\n   *\n   * @public\n   * @memberof AnnotationBorderStyle\n   * @param {number} width - The width.\n   * @param {Array} rect - The annotation `Rect` entry.\n   */\n  setWidth(width, rect = [0, 0, 0, 0]) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        Array.isArray(rect) && rect.length === 4,\n        \"A valid `rect` parameter must be provided.\"\n      );\n    }\n\n    // Some corrupt PDF generators may provide the width as a `Name`,\n    // rather than as a number (fixes issue 10385).\n    if (width instanceof Name) {\n      this.width = 0; // This is consistent with the behaviour in Adobe Reader.\n      return;\n    }\n    if (typeof width === \"number\") {\n      if (width > 0) {\n        const maxWidth = (rect[2] - rect[0]) / 2;\n        const maxHeight = (rect[3] - rect[1]) / 2;\n\n        // Ignore large `width`s, since they lead to the Annotation overflowing\n        // the size set by the `Rect` entry thus causing the `annotationLayer`\n        // to render it over the surrounding document (fixes bug1552113.pdf).\n        if (\n          maxWidth > 0 &&\n          maxHeight > 0 &&\n          (width > maxWidth || width > maxHeight)\n        ) {\n          warn(`AnnotationBorderStyle.setWidth - ignoring width: ${width}`);\n          width = 1;\n        }\n      }\n      this.width = width;\n    }\n  }\n\n  /**\n   * Set the style.\n   *\n   * @public\n   * @memberof AnnotationBorderStyle\n   * @param {Name} style - The annotation style.\n   * @see {@link shared/util.js}\n   */\n  setStyle(style) {\n    if (!(style instanceof Name)) {\n      return;\n    }\n    switch (style.name) {\n      case \"S\":\n        this.style = AnnotationBorderStyleType.SOLID;\n        break;\n\n      case \"D\":\n        this.style = AnnotationBorderStyleType.DASHED;\n        break;\n\n      case \"B\":\n        this.style = AnnotationBorderStyleType.BEVELED;\n        break;\n\n      case \"I\":\n        this.style = AnnotationBorderStyleType.INSET;\n        break;\n\n      case \"U\":\n        this.style = AnnotationBorderStyleType.UNDERLINE;\n        break;\n\n      default:\n        break;\n    }\n  }\n\n  /**\n   * Set the dash array.\n   *\n   * @public\n   * @memberof AnnotationBorderStyle\n   * @param {Array} dashArray - The dash array with at least one element\n   * @param {boolean} [forceStyle]\n   */\n  setDashArray(dashArray, forceStyle = false) {\n    // We validate the dash array, but we do not use it because CSS does not\n    // allow us to change spacing of dashes. For more information, visit\n    // http://www.w3.org/TR/css3-background/#the-border-style.\n    if (Array.isArray(dashArray) && dashArray.length > 0) {\n      // According to the PDF specification: the elements in `dashArray`\n      // shall be numbers that are nonnegative and not all equal to zero.\n      let isValid = true;\n      let allZeros = true;\n      for (const element of dashArray) {\n        const validNumber = +element >= 0;\n        if (!validNumber) {\n          isValid = false;\n          break;\n        } else if (element > 0) {\n          allZeros = false;\n        }\n      }\n      if (isValid && !allZeros) {\n        this.dashArray = dashArray;\n\n        if (forceStyle) {\n          // Even though we cannot use the dash array in the display layer,\n          // at least ensure that we use the correct border-style.\n          this.setStyle(Name.get(\"D\"));\n        }\n      } else {\n        this.width = 0; // Adobe behavior when the array is invalid.\n      }\n    } else if (dashArray) {\n      this.width = 0; // Adobe behavior when the array is invalid.\n    }\n  }\n\n  /**\n   * Set the horizontal corner radius (from a Border dictionary).\n   *\n   * @public\n   * @memberof AnnotationBorderStyle\n   * @param {number} radius - The horizontal corner radius.\n   */\n  setHorizontalCornerRadius(radius) {\n    if (Number.isInteger(radius)) {\n      this.horizontalCornerRadius = radius;\n    }\n  }\n\n  /**\n   * Set the vertical corner radius (from a Border dictionary).\n   *\n   * @public\n   * @memberof AnnotationBorderStyle\n   * @param {number} radius - The vertical corner radius.\n   */\n  setVerticalCornerRadius(radius) {\n    if (Number.isInteger(radius)) {\n      this.verticalCornerRadius = radius;\n    }\n  }\n}\n\nclass MarkupAnnotation extends Annotation {\n  constructor(params) {\n    super(params);\n\n    const { dict } = params;\n\n    if (dict.has(\"IRT\")) {\n      const rawIRT = dict.getRaw(\"IRT\");\n      this.data.inReplyTo = rawIRT instanceof Ref ? rawIRT.toString() : null;\n\n      const rt = dict.get(\"RT\");\n      this.data.replyType =\n        rt instanceof Name ? rt.name : AnnotationReplyType.REPLY;\n    }\n    let popupRef = null;\n\n    if (this.data.replyType === AnnotationReplyType.GROUP) {\n      // Subordinate annotations in a group should inherit\n      // the group attributes from the primary annotation.\n      const parent = dict.get(\"IRT\");\n\n      this.setTitle(parent.get(\"T\"));\n      this.data.titleObj = this._title;\n\n      this.setContents(parent.get(\"Contents\"));\n      this.data.contentsObj = this._contents;\n\n      if (!parent.has(\"CreationDate\")) {\n        this.data.creationDate = null;\n      } else {\n        this.setCreationDate(parent.get(\"CreationDate\"));\n        this.data.creationDate = this.creationDate;\n      }\n\n      if (!parent.has(\"M\")) {\n        this.data.modificationDate = null;\n      } else {\n        this.setModificationDate(parent.get(\"M\"));\n        this.data.modificationDate = this.modificationDate;\n      }\n\n      popupRef = parent.getRaw(\"Popup\");\n\n      if (!parent.has(\"C\")) {\n        // Fall back to the default background color.\n        this.data.color = null;\n      } else {\n        this.setColor(parent.getArray(\"C\"));\n        this.data.color = this.color;\n      }\n    } else {\n      this.data.titleObj = this._title;\n\n      this.setCreationDate(dict.get(\"CreationDate\"));\n      this.data.creationDate = this.creationDate;\n\n      popupRef = dict.getRaw(\"Popup\");\n\n      if (!dict.has(\"C\")) {\n        // Fall back to the default background color.\n        this.data.color = null;\n      }\n    }\n\n    this.data.popupRef = popupRef instanceof Ref ? popupRef.toString() : null;\n\n    if (dict.has(\"RC\")) {\n      this.data.richText = XFAFactory.getRichTextAsHtml(dict.get(\"RC\"));\n    }\n  }\n\n  /**\n   * Set the creation date.\n   *\n   * @public\n   * @memberof MarkupAnnotation\n   * @param {string} creationDate - PDF date string that indicates when the\n   *                                annotation was originally created\n   */\n  setCreationDate(creationDate) {\n    this.creationDate = typeof creationDate === \"string\" ? creationDate : null;\n  }\n\n  _setDefaultAppearance({\n    xref,\n    extra,\n    strokeColor,\n    fillColor,\n    blendMode,\n    strokeAlpha,\n    fillAlpha,\n    pointsCallback,\n  }) {\n    let minX = Number.MAX_VALUE;\n    let minY = Number.MAX_VALUE;\n    let maxX = Number.MIN_VALUE;\n    let maxY = Number.MIN_VALUE;\n\n    const buffer = [\"q\"];\n    if (extra) {\n      buffer.push(extra);\n    }\n    if (strokeColor) {\n      buffer.push(`${strokeColor[0]} ${strokeColor[1]} ${strokeColor[2]} RG`);\n    }\n    if (fillColor) {\n      buffer.push(`${fillColor[0]} ${fillColor[1]} ${fillColor[2]} rg`);\n    }\n\n    let pointsArray = this.data.quadPoints;\n    if (!pointsArray) {\n      // If there are no quadpoints, the rectangle should be used instead.\n      // Convert the rectangle definition to a points array similar to how the\n      // quadpoints are defined.\n      pointsArray = [\n        [\n          { x: this.rectangle[0], y: this.rectangle[3] },\n          { x: this.rectangle[2], y: this.rectangle[3] },\n          { x: this.rectangle[0], y: this.rectangle[1] },\n          { x: this.rectangle[2], y: this.rectangle[1] },\n        ],\n      ];\n    }\n\n    for (const points of pointsArray) {\n      const [mX, MX, mY, MY] = pointsCallback(buffer, points);\n      minX = Math.min(minX, mX);\n      maxX = Math.max(maxX, MX);\n      minY = Math.min(minY, mY);\n      maxY = Math.max(maxY, MY);\n    }\n    buffer.push(\"Q\");\n\n    const formDict = new Dict(xref);\n    const appearanceStreamDict = new Dict(xref);\n    appearanceStreamDict.set(\"Subtype\", Name.get(\"Form\"));\n\n    const appearanceStream = new StringStream(buffer.join(\" \"));\n    appearanceStream.dict = appearanceStreamDict;\n    formDict.set(\"Fm0\", appearanceStream);\n\n    const gsDict = new Dict(xref);\n    if (blendMode) {\n      gsDict.set(\"BM\", Name.get(blendMode));\n    }\n    if (typeof strokeAlpha === \"number\") {\n      gsDict.set(\"CA\", strokeAlpha);\n    }\n    if (typeof fillAlpha === \"number\") {\n      gsDict.set(\"ca\", fillAlpha);\n    }\n\n    const stateDict = new Dict(xref);\n    stateDict.set(\"GS0\", gsDict);\n\n    const resources = new Dict(xref);\n    resources.set(\"ExtGState\", stateDict);\n    resources.set(\"XObject\", formDict);\n\n    const appearanceDict = new Dict(xref);\n    appearanceDict.set(\"Resources\", resources);\n    const bbox = (this.data.rect = [minX, minY, maxX, maxY]);\n    appearanceDict.set(\"BBox\", bbox);\n\n    this.appearance = new StringStream(\"/GS0 gs /Fm0 Do\");\n    this.appearance.dict = appearanceDict;\n\n    // This method is only called if there is no appearance for the annotation,\n    // so `this.appearance` is not pushed yet in the `Annotation` constructor.\n    this._streams.push(this.appearance, appearanceStream);\n  }\n\n  static async createNewAnnotation(xref, annotation, dependencies, params) {\n    const annotationRef = (annotation.ref ||= xref.getNewTemporaryRef());\n    const ap = await this.createNewAppearanceStream(annotation, xref, params);\n    const buffer = [];\n    let annotationDict;\n\n    if (ap) {\n      const apRef = xref.getNewTemporaryRef();\n      annotationDict = this.createNewDict(annotation, xref, { apRef });\n      await writeObject(apRef, ap, buffer, xref);\n      dependencies.push({ ref: apRef, data: buffer.join(\"\") });\n    } else {\n      annotationDict = this.createNewDict(annotation, xref, {});\n    }\n    if (Number.isInteger(annotation.parentTreeId)) {\n      annotationDict.set(\"StructParent\", annotation.parentTreeId);\n    }\n\n    buffer.length = 0;\n    await writeObject(annotationRef, annotationDict, buffer, xref);\n\n    return { ref: annotationRef, data: buffer.join(\"\") };\n  }\n\n  static async createNewPrintAnnotation(\n    annotationGlobals,\n    xref,\n    annotation,\n    params\n  ) {\n    const ap = await this.createNewAppearanceStream(annotation, xref, params);\n    const annotationDict = this.createNewDict(annotation, xref, { ap });\n\n    const newAnnotation = new this.prototype.constructor({\n      dict: annotationDict,\n      xref,\n      annotationGlobals,\n      evaluatorOptions: params.evaluatorOptions,\n    });\n\n    if (annotation.ref) {\n      newAnnotation.ref = newAnnotation.refToReplace = annotation.ref;\n    }\n\n    return newAnnotation;\n  }\n}\n\nclass WidgetAnnotation extends Annotation {\n  constructor(params) {\n    super(params);\n\n    const { dict, xref, annotationGlobals } = params;\n    const data = this.data;\n    this._needAppearances = params.needAppearances;\n\n    data.annotationType = AnnotationType.WIDGET;\n    if (data.fieldName === undefined) {\n      data.fieldName = this._constructFieldName(dict);\n    }\n\n    if (data.actions === undefined) {\n      data.actions = collectActions(xref, dict, AnnotationActionEventType);\n    }\n\n    let fieldValue = getInheritableProperty({\n      dict,\n      key: \"V\",\n      getArray: true,\n    });\n    data.fieldValue = this._decodeFormValue(fieldValue);\n\n    const defaultFieldValue = getInheritableProperty({\n      dict,\n      key: \"DV\",\n      getArray: true,\n    });\n    data.defaultFieldValue = this._decodeFormValue(defaultFieldValue);\n\n    if (fieldValue === undefined && annotationGlobals.xfaDatasets) {\n      // Try to figure out if we have something in the xfa dataset.\n      const path = this._title.str;\n      if (path) {\n        this._hasValueFromXFA = true;\n        data.fieldValue = fieldValue =\n          annotationGlobals.xfaDatasets.getValue(path);\n      }\n    }\n\n    // When no \"V\" entry exists, let the fieldValue fallback to the \"DV\" entry\n    // (fixes issue13823.pdf).\n    if (fieldValue === undefined && data.defaultFieldValue !== null) {\n      data.fieldValue = data.defaultFieldValue;\n    }\n\n    data.alternativeText = stringToPDFString(dict.get(\"TU\") || \"\");\n\n    this.setDefaultAppearance(params);\n\n    data.hasAppearance ||=\n      this._needAppearances &&\n      data.fieldValue !== undefined &&\n      data.fieldValue !== null;\n\n    const fieldType = getInheritableProperty({ dict, key: \"FT\" });\n    data.fieldType = fieldType instanceof Name ? fieldType.name : null;\n\n    const localResources = getInheritableProperty({ dict, key: \"DR\" });\n    const acroFormResources = annotationGlobals.acroForm.get(\"DR\");\n    const appearanceResources = this.appearance?.dict.get(\"Resources\");\n\n    this._fieldResources = {\n      localResources,\n      acroFormResources,\n      appearanceResources,\n      mergedResources: Dict.merge({\n        xref,\n        dictArray: [localResources, appearanceResources, acroFormResources],\n        mergeSubDicts: true,\n      }),\n    };\n\n    data.fieldFlags = getInheritableProperty({ dict, key: \"Ff\" });\n    if (!Number.isInteger(data.fieldFlags) || data.fieldFlags < 0) {\n      data.fieldFlags = 0;\n    }\n\n    data.readOnly = this.hasFieldFlag(AnnotationFieldFlag.READONLY);\n    data.required = this.hasFieldFlag(AnnotationFieldFlag.REQUIRED);\n    data.hidden =\n      this._hasFlag(data.annotationFlags, AnnotationFlag.HIDDEN) ||\n      this._hasFlag(data.annotationFlags, AnnotationFlag.NOVIEW);\n  }\n\n  /**\n   * Decode the given form value.\n   *\n   * @private\n   * @memberof WidgetAnnotation\n   * @param {Array<string>|Name|string} formValue - The (possibly encoded)\n   *   form value.\n   * @returns {Array<string>|string|null}\n   */\n  _decodeFormValue(formValue) {\n    if (Array.isArray(formValue)) {\n      return formValue\n        .filter(item => typeof item === \"string\")\n        .map(item => stringToPDFString(item));\n    } else if (formValue instanceof Name) {\n      return stringToPDFString(formValue.name);\n    } else if (typeof formValue === \"string\") {\n      return stringToPDFString(formValue);\n    }\n    return null;\n  }\n\n  /**\n   * Check if a provided field flag is set.\n   *\n   * @public\n   * @memberof WidgetAnnotation\n   * @param {number} flag - Hexadecimal representation for an annotation\n   *                        field characteristic\n   * @returns {boolean}\n   * @see {@link shared/util.js}\n   */\n  hasFieldFlag(flag) {\n    return !!(this.data.fieldFlags & flag);\n  }\n\n  /** @inheritdoc */\n  _isViewable(flags) {\n    // We don't take into account the `NOVIEW` or `HIDDEN` flags here,\n    // since the visibility can be changed by js code, hence in case\n    // it's made viewable, we should render it (with visibility set to\n    // hidden).\n    // We don't take into account the `INVISIBLE` flag here, since we've a known\n    // annotation type.\n    return true;\n  }\n\n  /** @inheritdoc */\n  mustBeViewed(annotationStorage, renderForms) {\n    if (renderForms) {\n      return this.viewable;\n    }\n    return (\n      super.mustBeViewed(annotationStorage, renderForms) &&\n      !this._hasFlag(this.flags, AnnotationFlag.NOVIEW)\n    );\n  }\n\n  getRotationMatrix(annotationStorage) {\n    let rotation = annotationStorage?.get(this.data.id)?.rotation;\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n\n    if (rotation === 0) {\n      return IDENTITY_MATRIX;\n    }\n\n    const width = this.data.rect[2] - this.data.rect[0];\n    const height = this.data.rect[3] - this.data.rect[1];\n\n    return getRotationMatrix(rotation, width, height);\n  }\n\n  getBorderAndBackgroundAppearances(annotationStorage) {\n    let rotation = annotationStorage?.get(this.data.id)?.rotation;\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n\n    if (!this.backgroundColor && !this.borderColor) {\n      return \"\";\n    }\n    const width = this.data.rect[2] - this.data.rect[0];\n    const height = this.data.rect[3] - this.data.rect[1];\n    const rect =\n      rotation === 0 || rotation === 180\n        ? `0 0 ${width} ${height} re`\n        : `0 0 ${height} ${width} re`;\n\n    let str = \"\";\n    if (this.backgroundColor) {\n      str = `${getPdfColor(\n        this.backgroundColor,\n        /* isFill */ true\n      )} ${rect} f `;\n    }\n\n    if (this.borderColor) {\n      const borderWidth = this.borderStyle.width || 1;\n      str += `${borderWidth} w ${getPdfColor(\n        this.borderColor,\n        /* isFill */ false\n      )} ${rect} S `;\n    }\n\n    return str;\n  }\n\n  async getOperatorList(\n    evaluator,\n    task,\n    intent,\n    renderForms,\n    annotationStorage\n  ) {\n    // Do not render form elements on the canvas when interactive forms are\n    // enabled. The display layer is responsible for rendering them instead.\n    if (\n      renderForms &&\n      !(this instanceof SignatureWidgetAnnotation) &&\n      !this.data.noHTML &&\n      !this.data.hasOwnCanvas\n    ) {\n      return {\n        opList: new OperatorList(),\n        separateForm: true,\n        separateCanvas: false,\n      };\n    }\n\n    if (!this._hasText) {\n      return super.getOperatorList(\n        evaluator,\n        task,\n        intent,\n        renderForms,\n        annotationStorage\n      );\n    }\n\n    const content = await this._getAppearance(\n      evaluator,\n      task,\n      intent,\n      annotationStorage\n    );\n    if (this.appearance && content === null) {\n      return super.getOperatorList(\n        evaluator,\n        task,\n        intent,\n        renderForms,\n        annotationStorage\n      );\n    }\n\n    const opList = new OperatorList();\n\n    // Even if there is an appearance stream, ignore it. This is the\n    // behaviour used by Adobe Reader.\n    if (!this._defaultAppearance || content === null) {\n      return { opList, separateForm: false, separateCanvas: false };\n    }\n\n    const isUsingOwnCanvas = !!(\n      this.data.hasOwnCanvas && intent & RenderingIntentFlag.DISPLAY\n    );\n\n    const matrix = [1, 0, 0, 1, 0, 0];\n    const bbox = [\n      0,\n      0,\n      this.data.rect[2] - this.data.rect[0],\n      this.data.rect[3] - this.data.rect[1],\n    ];\n    const transform = getTransformMatrix(this.data.rect, bbox, matrix);\n\n    let optionalContent;\n    if (this.oc) {\n      optionalContent = await evaluator.parseMarkedContentProps(\n        this.oc,\n        /* resources = */ null\n      );\n    }\n    if (optionalContent !== undefined) {\n      opList.addOp(OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n    }\n\n    opList.addOp(OPS.beginAnnotation, [\n      this.data.id,\n      this.data.rect,\n      transform,\n      this.getRotationMatrix(annotationStorage),\n      isUsingOwnCanvas,\n    ]);\n\n    const stream = new StringStream(content);\n    await evaluator.getOperatorList({\n      stream,\n      task,\n      resources: this._fieldResources.mergedResources,\n      operatorList: opList,\n    });\n    opList.addOp(OPS.endAnnotation, []);\n\n    if (optionalContent !== undefined) {\n      opList.addOp(OPS.endMarkedContent, []);\n    }\n    return { opList, separateForm: false, separateCanvas: isUsingOwnCanvas };\n  }\n\n  _getMKDict(rotation) {\n    const mk = new Dict(null);\n    if (rotation) {\n      mk.set(\"R\", rotation);\n    }\n    if (this.borderColor) {\n      mk.set(\"BC\", getPdfColorArray(this.borderColor));\n    }\n    if (this.backgroundColor) {\n      mk.set(\"BG\", getPdfColorArray(this.backgroundColor));\n    }\n    return mk.size > 0 ? mk : null;\n  }\n\n  amendSavedDict(annotationStorage, dict) {}\n\n  async save(evaluator, task, annotationStorage) {\n    const storageEntry = annotationStorage?.get(this.data.id);\n    let value = storageEntry?.value,\n      rotation = storageEntry?.rotation;\n    if (value === this.data.fieldValue || value === undefined) {\n      if (!this._hasValueFromXFA && rotation === undefined) {\n        return null;\n      }\n      value ||= this.data.fieldValue;\n    }\n\n    // Value can be an array (with choice list and multiple selections)\n    if (\n      rotation === undefined &&\n      !this._hasValueFromXFA &&\n      Array.isArray(value) &&\n      Array.isArray(this.data.fieldValue) &&\n      value.length === this.data.fieldValue.length &&\n      value.every((x, i) => x === this.data.fieldValue[i])\n    ) {\n      return null;\n    }\n\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n\n    let appearance = null;\n    if (!this._needAppearances) {\n      appearance = await this._getAppearance(\n        evaluator,\n        task,\n        RenderingIntentFlag.SAVE,\n        annotationStorage\n      );\n      if (appearance === null) {\n        // Appearance didn't change.\n        return null;\n      }\n    } else {\n      // No need to create an appearance: the pdf has the flag /NeedAppearances\n      // which means that it's up to the reader to produce an appearance.\n    }\n\n    let needAppearances = false;\n    if (appearance?.needAppearances) {\n      needAppearances = true;\n      appearance = null;\n    }\n\n    const { xref } = evaluator;\n\n    const originalDict = xref.fetchIfRef(this.ref);\n    if (!(originalDict instanceof Dict)) {\n      return null;\n    }\n\n    const dict = new Dict(xref);\n    for (const key of originalDict.getKeys()) {\n      if (key !== \"AP\") {\n        dict.set(key, originalDict.getRaw(key));\n      }\n    }\n\n    const xfa = {\n      path: this.data.fieldName,\n      value,\n    };\n\n    const encoder = val => {\n      return isAscii(val)\n        ? val\n        : stringToUTF16String(val, /* bigEndian = */ true);\n    };\n    dict.set(\"V\", Array.isArray(value) ? value.map(encoder) : encoder(value));\n    this.amendSavedDict(annotationStorage, dict);\n\n    const maybeMK = this._getMKDict(rotation);\n    if (maybeMK) {\n      dict.set(\"MK\", maybeMK);\n    }\n\n    const buffer = [];\n    const changes = [\n      // data for the original object\n      // V field changed + reference for new AP\n      { ref: this.ref, data: \"\", xfa, needAppearances },\n    ];\n    if (appearance !== null) {\n      const newRef = xref.getNewTemporaryRef();\n      const AP = new Dict(xref);\n      dict.set(\"AP\", AP);\n      AP.set(\"N\", newRef);\n\n      const resources = this._getSaveFieldResources(xref);\n      const appearanceStream = new StringStream(appearance);\n      const appearanceDict = (appearanceStream.dict = new Dict(xref));\n      appearanceDict.set(\"Subtype\", Name.get(\"Form\"));\n      appearanceDict.set(\"Resources\", resources);\n      appearanceDict.set(\"BBox\", [\n        0,\n        0,\n        this.data.rect[2] - this.data.rect[0],\n        this.data.rect[3] - this.data.rect[1],\n      ]);\n\n      const rotationMatrix = this.getRotationMatrix(annotationStorage);\n      if (rotationMatrix !== IDENTITY_MATRIX) {\n        // The matrix isn't the identity one.\n        appearanceDict.set(\"Matrix\", rotationMatrix);\n      }\n\n      await writeObject(newRef, appearanceStream, buffer, xref);\n\n      changes.push(\n        // data for the new AP\n        {\n          ref: newRef,\n          data: buffer.join(\"\"),\n          xfa: null,\n          needAppearances: false,\n        }\n      );\n      buffer.length = 0;\n    }\n\n    dict.set(\"M\", `D:${getModificationDate()}`);\n    await writeObject(this.ref, dict, buffer, xref);\n\n    changes[0].data = buffer.join(\"\");\n\n    return changes;\n  }\n\n  async _getAppearance(evaluator, task, intent, annotationStorage) {\n    const isPassword = this.hasFieldFlag(AnnotationFieldFlag.PASSWORD);\n    if (isPassword) {\n      return null;\n    }\n    const storageEntry = annotationStorage?.get(this.data.id);\n    let value, rotation;\n    if (storageEntry) {\n      value = storageEntry.formattedValue || storageEntry.value;\n      rotation = storageEntry.rotation;\n    }\n\n    if (\n      rotation === undefined &&\n      value === undefined &&\n      !this._needAppearances\n    ) {\n      if (!this._hasValueFromXFA || this.appearance) {\n        // The annotation hasn't been rendered so use the appearance.\n        return null;\n      }\n    }\n\n    // Empty or it has a trailing whitespace.\n    const colors = this.getBorderAndBackgroundAppearances(annotationStorage);\n\n    if (value === undefined) {\n      // The annotation has its value in XFA datasets but not in the V field.\n      value = this.data.fieldValue;\n      if (!value) {\n        return `/Tx BMC q ${colors}Q EMC`;\n      }\n    }\n\n    if (Array.isArray(value) && value.length === 1) {\n      value = value[0];\n    }\n\n    assert(typeof value === \"string\", \"Expected `value` to be a string.\");\n    value = value.trim();\n\n    if (this.data.combo) {\n      // The value can be one of the exportValue or any other values.\n      const option = this.data.options.find(\n        ({ exportValue }) => value === exportValue\n      );\n      value = option?.displayValue || value;\n    }\n\n    if (value === \"\") {\n      // the field is empty: nothing to render\n      return `/Tx BMC q ${colors}Q EMC`;\n    }\n\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n\n    let lineCount = -1;\n    let lines;\n\n    // We could have a text containing for example some sequences of chars and\n    // their diacritics (e.g. \"é\".normalize(\"NFKD\") shows 1 char when it's 2).\n    // Positioning diacritics is really something we don't want to do here.\n    // So if a font has a glyph for a acute accent and one for \"e\" then we won't\n    // get any encoding issues but we'll render \"e\" and then \"´\".\n    // It's why we normalize the string. We use NFC to preserve the initial\n    // string, (e.g. \"²\".normalize(\"NFC\") === \"²\"\n    // but \"²\".normalize(\"NFKC\") === \"2\").\n    //\n    // TODO: it isn't a perfect solution, some chars like \"ẹ́\" will be\n    // decomposed into two chars (\"ẹ\" and \"´\"), so we should detect such\n    // situations and then use either FakeUnicodeFont or set the\n    // /NeedAppearances flag.\n    if (this.data.multiLine) {\n      lines = value.split(/\\r\\n?|\\n/).map(line => line.normalize(\"NFC\"));\n      lineCount = lines.length;\n    } else {\n      lines = [value.replace(/\\r\\n?|\\n/, \"\").normalize(\"NFC\")];\n    }\n\n    const defaultPadding = 1;\n    const defaultHPadding = 2;\n    let totalHeight = this.data.rect[3] - this.data.rect[1];\n    let totalWidth = this.data.rect[2] - this.data.rect[0];\n\n    if (rotation === 90 || rotation === 270) {\n      [totalWidth, totalHeight] = [totalHeight, totalWidth];\n    }\n\n    if (!this._defaultAppearance) {\n      // The DA is required and must be a string.\n      // If there is no font named Helvetica in the resource dictionary,\n      // the evaluator will fall back to a default font.\n      // Doing so prevents exceptions and allows saving/printing\n      // the file as expected.\n      this.data.defaultAppearanceData = parseDefaultAppearance(\n        (this._defaultAppearance = \"/Helvetica 0 Tf 0 g\")\n      );\n    }\n\n    let font = await WidgetAnnotation._getFontData(\n      evaluator,\n      task,\n      this.data.defaultAppearanceData,\n      this._fieldResources.mergedResources\n    );\n\n    let defaultAppearance, fontSize, lineHeight;\n    const encodedLines = [];\n    let encodingError = false;\n    for (const line of lines) {\n      const encodedString = font.encodeString(line);\n      if (encodedString.length > 1) {\n        encodingError = true;\n      }\n      encodedLines.push(encodedString.join(\"\"));\n    }\n\n    if (encodingError && intent & RenderingIntentFlag.SAVE) {\n      // We don't have a way to render the field, so we just rely on the\n      // /NeedAppearances trick to let the different sofware correctly render\n      // this pdf.\n      return { needAppearances: true };\n    }\n\n    // We check that the font is able to encode the string.\n    if (encodingError && this._isOffscreenCanvasSupported) {\n      // If it can't then we fallback on fake unicode font (mapped to sans-serif\n      // for the rendering).\n      // It means that a printed form can be rendered differently (it depends on\n      // the sans-serif font) but at least we've something to render.\n      // In an ideal world the associated font should correctly handle the\n      // possible chars but a user can add a smiley or whatever.\n      // We could try to embed a font but it means that we must have access\n      // to the raw font file.\n      const fontFamily = this.data.comb ? \"monospace\" : \"sans-serif\";\n      const fakeUnicodeFont = new FakeUnicodeFont(evaluator.xref, fontFamily);\n      const resources = fakeUnicodeFont.createFontResources(lines.join(\"\"));\n      const newFont = resources.getRaw(\"Font\");\n\n      if (this._fieldResources.mergedResources.has(\"Font\")) {\n        const oldFont = this._fieldResources.mergedResources.get(\"Font\");\n        for (const key of newFont.getKeys()) {\n          oldFont.set(key, newFont.getRaw(key));\n        }\n      } else {\n        this._fieldResources.mergedResources.set(\"Font\", newFont);\n      }\n\n      const fontName = fakeUnicodeFont.fontName.name;\n      font = await WidgetAnnotation._getFontData(\n        evaluator,\n        task,\n        { fontName, fontSize: 0 },\n        resources\n      );\n\n      for (let i = 0, ii = encodedLines.length; i < ii; i++) {\n        encodedLines[i] = stringToUTF16String(lines[i]);\n      }\n\n      const savedDefaultAppearance = Object.assign(\n        Object.create(null),\n        this.data.defaultAppearanceData\n      );\n      this.data.defaultAppearanceData.fontSize = 0;\n      this.data.defaultAppearanceData.fontName = fontName;\n\n      [defaultAppearance, fontSize, lineHeight] = this._computeFontSize(\n        totalHeight - 2 * defaultPadding,\n        totalWidth - 2 * defaultHPadding,\n        value,\n        font,\n        lineCount\n      );\n\n      this.data.defaultAppearanceData = savedDefaultAppearance;\n    } else {\n      if (!this._isOffscreenCanvasSupported) {\n        warn(\n          \"_getAppearance: OffscreenCanvas is not supported, annotation may not render correctly.\"\n        );\n      }\n\n      [defaultAppearance, fontSize, lineHeight] = this._computeFontSize(\n        totalHeight - 2 * defaultPadding,\n        totalWidth - 2 * defaultHPadding,\n        value,\n        font,\n        lineCount\n      );\n    }\n\n    let descent = font.descent;\n    if (isNaN(descent)) {\n      descent = BASELINE_FACTOR * lineHeight;\n    } else {\n      descent = Math.max(\n        BASELINE_FACTOR * lineHeight,\n        Math.abs(descent) * fontSize\n      );\n    }\n\n    // Take into account the space we have to compute the default vertical\n    // padding.\n    const defaultVPadding = Math.min(\n      Math.floor((totalHeight - fontSize) / 2),\n      defaultPadding\n    );\n    const alignment = this.data.textAlignment;\n\n    if (this.data.multiLine) {\n      return this._getMultilineAppearance(\n        defaultAppearance,\n        encodedLines,\n        font,\n        fontSize,\n        totalWidth,\n        totalHeight,\n        alignment,\n        defaultHPadding,\n        defaultVPadding,\n        descent,\n        lineHeight,\n        annotationStorage\n      );\n    }\n\n    if (this.data.comb) {\n      return this._getCombAppearance(\n        defaultAppearance,\n        font,\n        encodedLines[0],\n        fontSize,\n        totalWidth,\n        totalHeight,\n        defaultHPadding,\n        defaultVPadding,\n        descent,\n        lineHeight,\n        annotationStorage\n      );\n    }\n\n    const bottomPadding = defaultVPadding + descent;\n    if (alignment === 0 || alignment > 2) {\n      // Left alignment: nothing to do\n      return (\n        `/Tx BMC q ${colors}BT ` +\n        defaultAppearance +\n        ` 1 0 0 1 ${numberToString(defaultHPadding)} ${numberToString(\n          bottomPadding\n        )} Tm (${escapeString(encodedLines[0])}) Tj` +\n        \" ET Q EMC\"\n      );\n    }\n\n    const prevInfo = { shift: 0 };\n    const renderedText = this._renderText(\n      encodedLines[0],\n      font,\n      fontSize,\n      totalWidth,\n      alignment,\n      prevInfo,\n      defaultHPadding,\n      bottomPadding\n    );\n    return (\n      `/Tx BMC q ${colors}BT ` +\n      defaultAppearance +\n      ` 1 0 0 1 0 0 Tm ${renderedText}` +\n      \" ET Q EMC\"\n    );\n  }\n\n  static async _getFontData(evaluator, task, appearanceData, resources) {\n    const operatorList = new OperatorList();\n    const initialState = {\n      font: null,\n      clone() {\n        return this;\n      },\n    };\n\n    const { fontName, fontSize } = appearanceData;\n    await evaluator.handleSetFont(\n      resources,\n      [fontName && Name.get(fontName), fontSize],\n      /* fontRef = */ null,\n      operatorList,\n      task,\n      initialState,\n      /* fallbackFontDict = */ null\n    );\n\n    return initialState.font;\n  }\n\n  _getTextWidth(text, font) {\n    return (\n      font\n        .charsToGlyphs(text)\n        .reduce((width, glyph) => width + glyph.width, 0) / 1000\n    );\n  }\n\n  _computeFontSize(height, width, text, font, lineCount) {\n    let { fontSize } = this.data.defaultAppearanceData;\n    let lineHeight = (fontSize || 12) * LINE_FACTOR,\n      numberOfLines = Math.round(height / lineHeight);\n\n    if (!fontSize) {\n      // A zero value for size means that the font shall be auto-sized:\n      // its size shall be computed as a function of the height of the\n      // annotation rectangle (see 12.7.3.3).\n\n      const roundWithTwoDigits = x => Math.floor(x * 100) / 100;\n\n      if (lineCount === -1) {\n        const textWidth = this._getTextWidth(text, font);\n        fontSize = roundWithTwoDigits(\n          Math.min(\n            height / LINE_FACTOR,\n            textWidth > width ? width / textWidth : Infinity\n          )\n        );\n        numberOfLines = 1;\n      } else {\n        const lines = text.split(/\\r\\n?|\\n/);\n        const cachedLines = [];\n        for (const line of lines) {\n          const encoded = font.encodeString(line).join(\"\");\n          const glyphs = font.charsToGlyphs(encoded);\n          const positions = font.getCharPositions(encoded);\n          cachedLines.push({\n            line: encoded,\n            glyphs,\n            positions,\n          });\n        }\n\n        const isTooBig = fsize => {\n          // Return true when the text doesn't fit the given height.\n          let totalHeight = 0;\n          for (const cache of cachedLines) {\n            const chunks = this._splitLine(null, font, fsize, width, cache);\n            totalHeight += chunks.length * fsize;\n            if (totalHeight > height) {\n              return true;\n            }\n          }\n          return false;\n        };\n\n        // Hard to guess how many lines there are.\n        // The field may have been sized to have 10 lines\n        // and the user entered only 1 so if we get font size from\n        // height and number of lines then we'll get something too big.\n        // So we compute a fake number of lines based on height and\n        // a font size equal to 12 (this is the default font size in\n        // Acrobat).\n        // Then we'll adjust font size to what we have really.\n        numberOfLines = Math.max(numberOfLines, lineCount);\n\n        while (true) {\n          lineHeight = height / numberOfLines;\n          fontSize = roundWithTwoDigits(lineHeight / LINE_FACTOR);\n\n          if (isTooBig(fontSize)) {\n            numberOfLines++;\n            continue;\n          }\n\n          break;\n        }\n      }\n\n      const { fontName, fontColor } = this.data.defaultAppearanceData;\n      this._defaultAppearance = createDefaultAppearance({\n        fontSize,\n        fontName,\n        fontColor,\n      });\n    }\n\n    return [this._defaultAppearance, fontSize, height / numberOfLines];\n  }\n\n  _renderText(\n    text,\n    font,\n    fontSize,\n    totalWidth,\n    alignment,\n    prevInfo,\n    hPadding,\n    vPadding\n  ) {\n    // TODO: we need to take into account (if possible) how the text\n    // is rendered. For example in arabic, the cumulated width of some\n    // glyphs isn't equal to the width of the rendered glyphs because\n    // of ligatures.\n    let shift;\n    if (alignment === 1) {\n      // Center\n      const width = this._getTextWidth(text, font) * fontSize;\n      shift = (totalWidth - width) / 2;\n    } else if (alignment === 2) {\n      // Right\n      const width = this._getTextWidth(text, font) * fontSize;\n      shift = totalWidth - width - hPadding;\n    } else {\n      shift = hPadding;\n    }\n    const shiftStr = numberToString(shift - prevInfo.shift);\n    prevInfo.shift = shift;\n    vPadding = numberToString(vPadding);\n\n    return `${shiftStr} ${vPadding} Td (${escapeString(text)}) Tj`;\n  }\n\n  /**\n   * @private\n   */\n  _getSaveFieldResources(xref) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        this.data.defaultAppearanceData,\n        \"Expected `_defaultAppearanceData` to have been set.\"\n      );\n    }\n    const { localResources, appearanceResources, acroFormResources } =\n      this._fieldResources;\n\n    const fontName = this.data.defaultAppearanceData?.fontName;\n    if (!fontName) {\n      return localResources || Dict.empty;\n    }\n\n    for (const resources of [localResources, appearanceResources]) {\n      if (resources instanceof Dict) {\n        const localFont = resources.get(\"Font\");\n        if (localFont instanceof Dict && localFont.has(fontName)) {\n          return resources;\n        }\n      }\n    }\n    if (acroFormResources instanceof Dict) {\n      const acroFormFont = acroFormResources.get(\"Font\");\n      if (acroFormFont instanceof Dict && acroFormFont.has(fontName)) {\n        const subFontDict = new Dict(xref);\n        subFontDict.set(fontName, acroFormFont.getRaw(fontName));\n\n        const subResourcesDict = new Dict(xref);\n        subResourcesDict.set(\"Font\", subFontDict);\n\n        return Dict.merge({\n          xref,\n          dictArray: [subResourcesDict, localResources],\n          mergeSubDicts: true,\n        });\n      }\n    }\n    return localResources || Dict.empty;\n  }\n\n  getFieldObject() {\n    return null;\n  }\n}\n\nclass TextWidgetAnnotation extends WidgetAnnotation {\n  constructor(params) {\n    super(params);\n\n    this.data.hasOwnCanvas = this.data.readOnly && !this.data.noHTML;\n    this._hasText = true;\n\n    const dict = params.dict;\n\n    // The field value is always a string.\n    if (typeof this.data.fieldValue !== \"string\") {\n      this.data.fieldValue = \"\";\n    }\n\n    // Determine the alignment of text in the field.\n    let alignment = getInheritableProperty({ dict, key: \"Q\" });\n    if (!Number.isInteger(alignment) || alignment < 0 || alignment > 2) {\n      alignment = null;\n    }\n    this.data.textAlignment = alignment;\n\n    // Determine the maximum length of text in the field.\n    let maximumLength = getInheritableProperty({ dict, key: \"MaxLen\" });\n    if (!Number.isInteger(maximumLength) || maximumLength < 0) {\n      maximumLength = 0;\n    }\n    this.data.maxLen = maximumLength;\n\n    // Process field flags for the display layer.\n    this.data.multiLine = this.hasFieldFlag(AnnotationFieldFlag.MULTILINE);\n    this.data.comb =\n      this.hasFieldFlag(AnnotationFieldFlag.COMB) &&\n      !this.hasFieldFlag(AnnotationFieldFlag.MULTILINE) &&\n      !this.hasFieldFlag(AnnotationFieldFlag.PASSWORD) &&\n      !this.hasFieldFlag(AnnotationFieldFlag.FILESELECT) &&\n      this.data.maxLen !== 0;\n    this.data.doNotScroll = this.hasFieldFlag(AnnotationFieldFlag.DONOTSCROLL);\n  }\n\n  get hasTextContent() {\n    return !!this.appearance && !this._needAppearances;\n  }\n\n  _getCombAppearance(\n    defaultAppearance,\n    font,\n    text,\n    fontSize,\n    width,\n    height,\n    hPadding,\n    vPadding,\n    descent,\n    lineHeight,\n    annotationStorage\n  ) {\n    const combWidth = width / this.data.maxLen;\n    // Empty or it has a trailing whitespace.\n    const colors = this.getBorderAndBackgroundAppearances(annotationStorage);\n\n    const buf = [];\n    const positions = font.getCharPositions(text);\n    for (const [start, end] of positions) {\n      buf.push(`(${escapeString(text.substring(start, end))}) Tj`);\n    }\n\n    const renderedComb = buf.join(` ${numberToString(combWidth)} 0 Td `);\n    return (\n      `/Tx BMC q ${colors}BT ` +\n      defaultAppearance +\n      ` 1 0 0 1 ${numberToString(hPadding)} ${numberToString(\n        vPadding + descent\n      )} Tm ${renderedComb}` +\n      \" ET Q EMC\"\n    );\n  }\n\n  _getMultilineAppearance(\n    defaultAppearance,\n    lines,\n    font,\n    fontSize,\n    width,\n    height,\n    alignment,\n    hPadding,\n    vPadding,\n    descent,\n    lineHeight,\n    annotationStorage\n  ) {\n    const buf = [];\n    const totalWidth = width - 2 * hPadding;\n    const prevInfo = { shift: 0 };\n    for (let i = 0, ii = lines.length; i < ii; i++) {\n      const line = lines[i];\n      const chunks = this._splitLine(line, font, fontSize, totalWidth);\n      for (let j = 0, jj = chunks.length; j < jj; j++) {\n        const chunk = chunks[j];\n        const vShift =\n          i === 0 && j === 0 ? -vPadding - (lineHeight - descent) : -lineHeight;\n        buf.push(\n          this._renderText(\n            chunk,\n            font,\n            fontSize,\n            width,\n            alignment,\n            prevInfo,\n            hPadding,\n            vShift\n          )\n        );\n      }\n    }\n\n    // Empty or it has a trailing whitespace.\n    const colors = this.getBorderAndBackgroundAppearances(annotationStorage);\n    const renderedText = buf.join(\"\\n\");\n\n    return (\n      `/Tx BMC q ${colors}BT ` +\n      defaultAppearance +\n      ` 1 0 0 1 0 ${numberToString(height)} Tm ${renderedText}` +\n      \" ET Q EMC\"\n    );\n  }\n\n  _splitLine(line, font, fontSize, width, cache = {}) {\n    line = cache.line || line;\n\n    const glyphs = cache.glyphs || font.charsToGlyphs(line);\n\n    if (glyphs.length <= 1) {\n      // Nothing to split\n      return [line];\n    }\n\n    const positions = cache.positions || font.getCharPositions(line);\n    const scale = fontSize / 1000;\n    const chunks = [];\n\n    let lastSpacePosInStringStart = -1,\n      lastSpacePosInStringEnd = -1,\n      lastSpacePos = -1,\n      startChunk = 0,\n      currentWidth = 0;\n\n    for (let i = 0, ii = glyphs.length; i < ii; i++) {\n      const [start, end] = positions[i];\n      const glyph = glyphs[i];\n      const glyphWidth = glyph.width * scale;\n      if (glyph.unicode === \" \") {\n        if (currentWidth + glyphWidth > width) {\n          // We can break here\n          chunks.push(line.substring(startChunk, start));\n          startChunk = start;\n          currentWidth = glyphWidth;\n          lastSpacePosInStringStart = -1;\n          lastSpacePos = -1;\n        } else {\n          currentWidth += glyphWidth;\n          lastSpacePosInStringStart = start;\n          lastSpacePosInStringEnd = end;\n          lastSpacePos = i;\n        }\n      } else if (currentWidth + glyphWidth > width) {\n        // We must break to the last white position (if available)\n        if (lastSpacePosInStringStart !== -1) {\n          chunks.push(line.substring(startChunk, lastSpacePosInStringEnd));\n          startChunk = lastSpacePosInStringEnd;\n          i = lastSpacePos + 1;\n          lastSpacePosInStringStart = -1;\n          currentWidth = 0;\n        } else {\n          // Just break in the middle of the word\n          chunks.push(line.substring(startChunk, start));\n          startChunk = start;\n          currentWidth = glyphWidth;\n        }\n      } else {\n        currentWidth += glyphWidth;\n      }\n    }\n\n    if (startChunk < line.length) {\n      chunks.push(line.substring(startChunk, line.length));\n    }\n\n    return chunks;\n  }\n\n  getFieldObject() {\n    return {\n      id: this.data.id,\n      value: this.data.fieldValue,\n      defaultValue: this.data.defaultFieldValue || \"\",\n      multiline: this.data.multiLine,\n      password: this.hasFieldFlag(AnnotationFieldFlag.PASSWORD),\n      charLimit: this.data.maxLen,\n      comb: this.data.comb,\n      editable: !this.data.readOnly,\n      hidden: this.data.hidden,\n      name: this.data.fieldName,\n      rect: this.data.rect,\n      actions: this.data.actions,\n      page: this.data.pageIndex,\n      strokeColor: this.data.borderColor,\n      fillColor: this.data.backgroundColor,\n      rotation: this.rotation,\n      type: \"text\",\n    };\n  }\n}\n\nclass ButtonWidgetAnnotation extends WidgetAnnotation {\n  constructor(params) {\n    super(params);\n\n    this.checkedAppearance = null;\n    this.uncheckedAppearance = null;\n\n    this.data.checkBox =\n      !this.hasFieldFlag(AnnotationFieldFlag.RADIO) &&\n      !this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);\n    this.data.radioButton =\n      this.hasFieldFlag(AnnotationFieldFlag.RADIO) &&\n      !this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);\n    this.data.pushButton = this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);\n    this.data.isTooltipOnly = false;\n\n    if (this.data.checkBox) {\n      this._processCheckBox(params);\n    } else if (this.data.radioButton) {\n      this._processRadioButton(params);\n    } else if (this.data.pushButton) {\n      this.data.hasOwnCanvas = true;\n      this.data.noHTML = false;\n      this._processPushButton(params);\n    } else {\n      warn(\"Invalid field flags for button widget annotation\");\n    }\n  }\n\n  async getOperatorList(\n    evaluator,\n    task,\n    intent,\n    renderForms,\n    annotationStorage\n  ) {\n    if (this.data.pushButton) {\n      return super.getOperatorList(\n        evaluator,\n        task,\n        intent,\n        false, // we use normalAppearance to render the button\n        annotationStorage\n      );\n    }\n\n    let value = null;\n    let rotation = null;\n    if (annotationStorage) {\n      const storageEntry = annotationStorage.get(this.data.id);\n      value = storageEntry ? storageEntry.value : null;\n      rotation = storageEntry ? storageEntry.rotation : null;\n    }\n\n    if (value === null && this.appearance) {\n      // Nothing in the annotationStorage.\n      // But we've a default appearance so use it.\n      return super.getOperatorList(\n        evaluator,\n        task,\n        intent,\n        renderForms,\n        annotationStorage\n      );\n    }\n\n    if (value === null || value === undefined) {\n      // There is no default appearance so use the one derived\n      // from the field value.\n      value = this.data.checkBox\n        ? this.data.fieldValue === this.data.exportValue\n        : this.data.fieldValue === this.data.buttonValue;\n    }\n\n    const appearance = value\n      ? this.checkedAppearance\n      : this.uncheckedAppearance;\n    if (appearance) {\n      const savedAppearance = this.appearance;\n      const savedMatrix = appearance.dict.getArray(\"Matrix\") || IDENTITY_MATRIX;\n\n      if (rotation) {\n        appearance.dict.set(\n          \"Matrix\",\n          this.getRotationMatrix(annotationStorage)\n        );\n      }\n\n      this.appearance = appearance;\n      const operatorList = super.getOperatorList(\n        evaluator,\n        task,\n        intent,\n        renderForms,\n        annotationStorage\n      );\n      this.appearance = savedAppearance;\n      appearance.dict.set(\"Matrix\", savedMatrix);\n      return operatorList;\n    }\n\n    // No appearance\n    return {\n      opList: new OperatorList(),\n      separateForm: false,\n      separateCanvas: false,\n    };\n  }\n\n  async save(evaluator, task, annotationStorage) {\n    if (this.data.checkBox) {\n      return this._saveCheckbox(evaluator, task, annotationStorage);\n    }\n\n    if (this.data.radioButton) {\n      return this._saveRadioButton(evaluator, task, annotationStorage);\n    }\n\n    // Nothing to save\n    return null;\n  }\n\n  async _saveCheckbox(evaluator, task, annotationStorage) {\n    if (!annotationStorage) {\n      return null;\n    }\n    const storageEntry = annotationStorage.get(this.data.id);\n    let rotation = storageEntry?.rotation,\n      value = storageEntry?.value;\n\n    if (rotation === undefined) {\n      if (value === undefined) {\n        return null;\n      }\n\n      const defaultValue = this.data.fieldValue === this.data.exportValue;\n      if (defaultValue === value) {\n        return null;\n      }\n    }\n\n    const dict = evaluator.xref.fetchIfRef(this.ref);\n    if (!(dict instanceof Dict)) {\n      return null;\n    }\n\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n    if (value === undefined) {\n      value = this.data.fieldValue === this.data.exportValue;\n    }\n\n    const xfa = {\n      path: this.data.fieldName,\n      value: value ? this.data.exportValue : \"\",\n    };\n\n    const name = Name.get(value ? this.data.exportValue : \"Off\");\n    dict.set(\"V\", name);\n    dict.set(\"AS\", name);\n    dict.set(\"M\", `D:${getModificationDate()}`);\n\n    const maybeMK = this._getMKDict(rotation);\n    if (maybeMK) {\n      dict.set(\"MK\", maybeMK);\n    }\n\n    const buffer = [];\n    await writeObject(this.ref, dict, buffer, evaluator.xref);\n\n    return [{ ref: this.ref, data: buffer.join(\"\"), xfa }];\n  }\n\n  async _saveRadioButton(evaluator, task, annotationStorage) {\n    if (!annotationStorage) {\n      return null;\n    }\n    const storageEntry = annotationStorage.get(this.data.id);\n    let rotation = storageEntry?.rotation,\n      value = storageEntry?.value;\n\n    if (rotation === undefined) {\n      if (value === undefined) {\n        return null;\n      }\n\n      const defaultValue = this.data.fieldValue === this.data.buttonValue;\n      if (defaultValue === value) {\n        return null;\n      }\n    }\n\n    const dict = evaluator.xref.fetchIfRef(this.ref);\n    if (!(dict instanceof Dict)) {\n      return null;\n    }\n\n    if (value === undefined) {\n      value = this.data.fieldValue === this.data.buttonValue;\n    }\n\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n\n    const xfa = {\n      path: this.data.fieldName,\n      value: value ? this.data.buttonValue : \"\",\n    };\n\n    const name = Name.get(value ? this.data.buttonValue : \"Off\");\n    const buffer = [];\n    let parentData = null;\n\n    if (value) {\n      if (this.parent instanceof Ref) {\n        const parent = evaluator.xref.fetch(this.parent);\n        parent.set(\"V\", name);\n        await writeObject(this.parent, parent, buffer, evaluator.xref);\n        parentData = buffer.join(\"\");\n        buffer.length = 0;\n      } else if (this.parent instanceof Dict) {\n        this.parent.set(\"V\", name);\n      }\n    }\n\n    dict.set(\"AS\", name);\n    dict.set(\"M\", `D:${getModificationDate()}`);\n\n    const maybeMK = this._getMKDict(rotation);\n    if (maybeMK) {\n      dict.set(\"MK\", maybeMK);\n    }\n\n    await writeObject(this.ref, dict, buffer, evaluator.xref);\n    const newRefs = [{ ref: this.ref, data: buffer.join(\"\"), xfa }];\n    if (parentData) {\n      newRefs.push({ ref: this.parent, data: parentData, xfa: null });\n    }\n\n    return newRefs;\n  }\n\n  _getDefaultCheckedAppearance(params, type) {\n    const width = this.data.rect[2] - this.data.rect[0];\n    const height = this.data.rect[3] - this.data.rect[1];\n    const bbox = [0, 0, width, height];\n\n    // Ratio used to have a mark slightly smaller than the bbox.\n    const FONT_RATIO = 0.8;\n    const fontSize = Math.min(width, height) * FONT_RATIO;\n\n    // Char Metrics\n    // Widths came from widths for ZapfDingbats.\n    // Heights are guessed with Fontforge and FoxitDingbats.pfb.\n    let metrics, char;\n    if (type === \"check\") {\n      // Char 33 (2713 in unicode)\n      metrics = {\n        width: 0.755 * fontSize,\n        height: 0.705 * fontSize,\n      };\n      char = \"\\x33\";\n    } else if (type === \"disc\") {\n      // Char 6C (25CF in unicode)\n      metrics = {\n        width: 0.791 * fontSize,\n        height: 0.705 * fontSize,\n      };\n      char = \"\\x6C\";\n    } else {\n      unreachable(`_getDefaultCheckedAppearance - unsupported type: ${type}`);\n    }\n\n    // Values to center the glyph in the bbox.\n    const xShift = numberToString((width - metrics.width) / 2);\n    const yShift = numberToString((height - metrics.height) / 2);\n\n    const appearance = `q BT /PdfJsZaDb ${fontSize} Tf 0 g ${xShift} ${yShift} Td (${char}) Tj ET Q`;\n\n    const appearanceStreamDict = new Dict(params.xref);\n    appearanceStreamDict.set(\"FormType\", 1);\n    appearanceStreamDict.set(\"Subtype\", Name.get(\"Form\"));\n    appearanceStreamDict.set(\"Type\", Name.get(\"XObject\"));\n    appearanceStreamDict.set(\"BBox\", bbox);\n    appearanceStreamDict.set(\"Matrix\", [1, 0, 0, 1, 0, 0]);\n    appearanceStreamDict.set(\"Length\", appearance.length);\n\n    const resources = new Dict(params.xref);\n    const font = new Dict(params.xref);\n    font.set(\"PdfJsZaDb\", this.fallbackFontDict);\n    resources.set(\"Font\", font);\n\n    appearanceStreamDict.set(\"Resources\", resources);\n\n    this.checkedAppearance = new StringStream(appearance);\n    this.checkedAppearance.dict = appearanceStreamDict;\n\n    this._streams.push(this.checkedAppearance);\n  }\n\n  _processCheckBox(params) {\n    const customAppearance = params.dict.get(\"AP\");\n    if (!(customAppearance instanceof Dict)) {\n      return;\n    }\n\n    const normalAppearance = customAppearance.get(\"N\");\n    if (!(normalAppearance instanceof Dict)) {\n      return;\n    }\n\n    // See https://bugzilla.mozilla.org/show_bug.cgi?id=1722036.\n    // If we've an AS and a V then take AS.\n    const asValue = this._decodeFormValue(params.dict.get(\"AS\"));\n    if (typeof asValue === \"string\") {\n      this.data.fieldValue = asValue;\n    }\n\n    const yes =\n      this.data.fieldValue !== null && this.data.fieldValue !== \"Off\"\n        ? this.data.fieldValue\n        : \"Yes\";\n\n    const exportValues = normalAppearance.getKeys();\n    if (exportValues.length === 0) {\n      exportValues.push(\"Off\", yes);\n    } else if (exportValues.length === 1) {\n      if (exportValues[0] === \"Off\") {\n        exportValues.push(yes);\n      } else {\n        exportValues.unshift(\"Off\");\n      }\n    } else if (exportValues.includes(yes)) {\n      exportValues.length = 0;\n      exportValues.push(\"Off\", yes);\n    } else {\n      const otherYes = exportValues.find(v => v !== \"Off\");\n      exportValues.length = 0;\n      exportValues.push(\"Off\", otherYes);\n    }\n\n    // Don't use a \"V\" entry pointing to a non-existent appearance state,\n    // see e.g. bug1720411.pdf where it's an *empty* Name-instance.\n    if (!exportValues.includes(this.data.fieldValue)) {\n      this.data.fieldValue = \"Off\";\n    }\n\n    this.data.exportValue = exportValues[1];\n\n    const checkedAppearance = normalAppearance.get(this.data.exportValue);\n    this.checkedAppearance =\n      checkedAppearance instanceof BaseStream ? checkedAppearance : null;\n    const uncheckedAppearance = normalAppearance.get(\"Off\");\n    this.uncheckedAppearance =\n      uncheckedAppearance instanceof BaseStream ? uncheckedAppearance : null;\n\n    if (this.checkedAppearance) {\n      this._streams.push(this.checkedAppearance);\n    } else {\n      this._getDefaultCheckedAppearance(params, \"check\");\n    }\n    if (this.uncheckedAppearance) {\n      this._streams.push(this.uncheckedAppearance);\n    }\n    this._fallbackFontDict = this.fallbackFontDict;\n    if (this.data.defaultFieldValue === null) {\n      this.data.defaultFieldValue = \"Off\";\n    }\n  }\n\n  _processRadioButton(params) {\n    this.data.buttonValue = null;\n\n    // The parent field's `V` entry holds a `Name` object with the appearance\n    // state of whichever child field is currently in the \"on\" state.\n    const fieldParent = params.dict.get(\"Parent\");\n    if (fieldParent instanceof Dict) {\n      this.parent = params.dict.getRaw(\"Parent\");\n      const fieldParentValue = fieldParent.get(\"V\");\n      if (fieldParentValue instanceof Name) {\n        this.data.fieldValue = this._decodeFormValue(fieldParentValue);\n      }\n    }\n\n    // The button's value corresponds to its appearance state.\n    const appearanceStates = params.dict.get(\"AP\");\n    if (!(appearanceStates instanceof Dict)) {\n      return;\n    }\n    const normalAppearance = appearanceStates.get(\"N\");\n    if (!(normalAppearance instanceof Dict)) {\n      return;\n    }\n    for (const key of normalAppearance.getKeys()) {\n      if (key !== \"Off\") {\n        this.data.buttonValue = this._decodeFormValue(key);\n        break;\n      }\n    }\n\n    const checkedAppearance = normalAppearance.get(this.data.buttonValue);\n    this.checkedAppearance =\n      checkedAppearance instanceof BaseStream ? checkedAppearance : null;\n    const uncheckedAppearance = normalAppearance.get(\"Off\");\n    this.uncheckedAppearance =\n      uncheckedAppearance instanceof BaseStream ? uncheckedAppearance : null;\n\n    if (this.checkedAppearance) {\n      this._streams.push(this.checkedAppearance);\n    } else {\n      this._getDefaultCheckedAppearance(params, \"disc\");\n    }\n    if (this.uncheckedAppearance) {\n      this._streams.push(this.uncheckedAppearance);\n    }\n    this._fallbackFontDict = this.fallbackFontDict;\n    if (this.data.defaultFieldValue === null) {\n      this.data.defaultFieldValue = \"Off\";\n    }\n  }\n\n  _processPushButton(params) {\n    const { dict, annotationGlobals } = params;\n\n    if (!dict.has(\"A\") && !dict.has(\"AA\") && !this.data.alternativeText) {\n      warn(\"Push buttons without action dictionaries are not supported\");\n      return;\n    }\n\n    this.data.isTooltipOnly = !dict.has(\"A\") && !dict.has(\"AA\");\n\n    Catalog.parseDestDictionary({\n      destDict: dict,\n      resultObj: this.data,\n      docBaseUrl: annotationGlobals.baseUrl,\n      docAttachments: annotationGlobals.attachments,\n    });\n  }\n\n  getFieldObject() {\n    let type = \"button\";\n    let exportValues;\n    if (this.data.checkBox) {\n      type = \"checkbox\";\n      exportValues = this.data.exportValue;\n    } else if (this.data.radioButton) {\n      type = \"radiobutton\";\n      exportValues = this.data.buttonValue;\n    }\n    return {\n      id: this.data.id,\n      value: this.data.fieldValue || \"Off\",\n      defaultValue: this.data.defaultFieldValue,\n      exportValues,\n      editable: !this.data.readOnly,\n      name: this.data.fieldName,\n      rect: this.data.rect,\n      hidden: this.data.hidden,\n      actions: this.data.actions,\n      page: this.data.pageIndex,\n      strokeColor: this.data.borderColor,\n      fillColor: this.data.backgroundColor,\n      rotation: this.rotation,\n      type,\n    };\n  }\n\n  get fallbackFontDict() {\n    const dict = new Dict();\n    dict.set(\"BaseFont\", Name.get(\"ZapfDingbats\"));\n    dict.set(\"Type\", Name.get(\"FallbackType\"));\n    dict.set(\"Subtype\", Name.get(\"FallbackType\"));\n    dict.set(\"Encoding\", Name.get(\"ZapfDingbatsEncoding\"));\n\n    return shadow(this, \"fallbackFontDict\", dict);\n  }\n}\n\nclass ChoiceWidgetAnnotation extends WidgetAnnotation {\n  constructor(params) {\n    super(params);\n\n    const { dict, xref } = params;\n\n    this.indices = dict.getArray(\"I\");\n    this.hasIndices = Array.isArray(this.indices) && this.indices.length > 0;\n\n    // Determine the options. The options array may consist of strings or\n    // arrays. If the array consists of arrays, then the first element of\n    // each array is the export value and the second element of each array is\n    // the display value. If the array consists of strings, then these\n    // represent both the export and display value. In this case, we convert\n    // it to an array of arrays as well for convenience in the display layer.\n    // Note that the specification does not state that the `Opt` field is\n    // inheritable, but in practice PDF generators do make annotations\n    // inherit the options from a parent annotation (issue 8094).\n    this.data.options = [];\n\n    const options = getInheritableProperty({ dict, key: \"Opt\" });\n    if (Array.isArray(options)) {\n      for (let i = 0, ii = options.length; i < ii; i++) {\n        const option = xref.fetchIfRef(options[i]);\n        const isOptionArray = Array.isArray(option);\n\n        this.data.options[i] = {\n          exportValue: this._decodeFormValue(\n            isOptionArray ? xref.fetchIfRef(option[0]) : option\n          ),\n          displayValue: this._decodeFormValue(\n            isOptionArray ? xref.fetchIfRef(option[1]) : option\n          ),\n        };\n      }\n    }\n\n    if (!this.hasIndices) {\n      // The field value can be `null` if no item is selected, a string if one\n      // item is selected or an array of strings if multiple items are selected.\n      // For consistency in the API and convenience in the display layer, we\n      // always make the field value an array with zero, one or multiple items.\n      if (typeof this.data.fieldValue === \"string\") {\n        this.data.fieldValue = [this.data.fieldValue];\n      } else if (!this.data.fieldValue) {\n        this.data.fieldValue = [];\n      }\n    } else {\n      // The specs say that we should have an indices array only with\n      // multiselectable Choice and the \"V\" entry should have the\n      // precedence, but Acrobat itself is using it whatever the\n      // the \"V\" entry is (see bug 1770750).\n      this.data.fieldValue = [];\n      const ii = this.data.options.length;\n      for (const i of this.indices) {\n        if (Number.isInteger(i) && i >= 0 && i < ii) {\n          this.data.fieldValue.push(this.data.options[i].exportValue);\n        }\n      }\n    }\n\n    // Process field flags for the display layer.\n    this.data.combo = this.hasFieldFlag(AnnotationFieldFlag.COMBO);\n    this.data.multiSelect = this.hasFieldFlag(AnnotationFieldFlag.MULTISELECT);\n    this._hasText = true;\n  }\n\n  getFieldObject() {\n    const type = this.data.combo ? \"combobox\" : \"listbox\";\n    const value =\n      this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null;\n    return {\n      id: this.data.id,\n      value,\n      defaultValue: this.data.defaultFieldValue,\n      editable: !this.data.readOnly,\n      name: this.data.fieldName,\n      rect: this.data.rect,\n      numItems: this.data.fieldValue.length,\n      multipleSelection: this.data.multiSelect,\n      hidden: this.data.hidden,\n      actions: this.data.actions,\n      items: this.data.options,\n      page: this.data.pageIndex,\n      strokeColor: this.data.borderColor,\n      fillColor: this.data.backgroundColor,\n      rotation: this.rotation,\n      type,\n    };\n  }\n\n  amendSavedDict(annotationStorage, dict) {\n    if (!this.hasIndices) {\n      return;\n    }\n    let values = annotationStorage?.get(this.data.id)?.value;\n    if (!Array.isArray(values)) {\n      values = [values];\n    }\n    const indices = [];\n    const { options } = this.data;\n    for (let i = 0, j = 0, ii = options.length; i < ii; i++) {\n      if (options[i].exportValue === values[j]) {\n        indices.push(i);\n        j += 1;\n      }\n    }\n    dict.set(\"I\", indices);\n  }\n\n  async _getAppearance(evaluator, task, intent, annotationStorage) {\n    if (this.data.combo) {\n      return super._getAppearance(evaluator, task, intent, annotationStorage);\n    }\n\n    let exportedValue, rotation;\n    const storageEntry = annotationStorage?.get(this.data.id);\n    if (storageEntry) {\n      rotation = storageEntry.rotation;\n      exportedValue = storageEntry.value;\n    }\n\n    if (\n      rotation === undefined &&\n      exportedValue === undefined &&\n      !this._needAppearances\n    ) {\n      // The annotation hasn't been rendered so use the appearance\n      return null;\n    }\n\n    if (exportedValue === undefined) {\n      exportedValue = this.data.fieldValue;\n    } else if (!Array.isArray(exportedValue)) {\n      exportedValue = [exportedValue];\n    }\n\n    const defaultPadding = 1;\n    const defaultHPadding = 2;\n    let totalHeight = this.data.rect[3] - this.data.rect[1];\n    let totalWidth = this.data.rect[2] - this.data.rect[0];\n\n    if (rotation === 90 || rotation === 270) {\n      [totalWidth, totalHeight] = [totalHeight, totalWidth];\n    }\n\n    const lineCount = this.data.options.length;\n    const valueIndices = [];\n    for (let i = 0; i < lineCount; i++) {\n      const { exportValue } = this.data.options[i];\n      if (exportedValue.includes(exportValue)) {\n        valueIndices.push(i);\n      }\n    }\n\n    if (!this._defaultAppearance) {\n      // The DA is required and must be a string.\n      // If there is no font named Helvetica in the resource dictionary,\n      // the evaluator will fall back to a default font.\n      // Doing so prevents exceptions and allows saving/printing\n      // the file as expected.\n      this.data.defaultAppearanceData = parseDefaultAppearance(\n        (this._defaultAppearance = \"/Helvetica 0 Tf 0 g\")\n      );\n    }\n\n    const font = await WidgetAnnotation._getFontData(\n      evaluator,\n      task,\n      this.data.defaultAppearanceData,\n      this._fieldResources.mergedResources\n    );\n\n    let defaultAppearance;\n    let { fontSize } = this.data.defaultAppearanceData;\n    if (!fontSize) {\n      const lineHeight = (totalHeight - defaultPadding) / lineCount;\n      let lineWidth = -1;\n      let value;\n      for (const { displayValue } of this.data.options) {\n        const width = this._getTextWidth(displayValue, font);\n        if (width > lineWidth) {\n          lineWidth = width;\n          value = displayValue;\n        }\n      }\n\n      [defaultAppearance, fontSize] = this._computeFontSize(\n        lineHeight,\n        totalWidth - 2 * defaultHPadding,\n        value,\n        font,\n        -1\n      );\n    } else {\n      defaultAppearance = this._defaultAppearance;\n    }\n\n    const lineHeight = fontSize * LINE_FACTOR;\n    const vPadding = (lineHeight - fontSize) / 2;\n    const numberOfVisibleLines = Math.floor(totalHeight / lineHeight);\n\n    let firstIndex = 0;\n    if (valueIndices.length > 0) {\n      const minIndex = Math.min(...valueIndices);\n      const maxIndex = Math.max(...valueIndices);\n\n      firstIndex = Math.max(0, maxIndex - numberOfVisibleLines + 1);\n      if (firstIndex > minIndex) {\n        firstIndex = minIndex;\n      }\n    }\n    const end = Math.min(firstIndex + numberOfVisibleLines + 1, lineCount);\n\n    const buf = [\"/Tx BMC q\", `1 1 ${totalWidth} ${totalHeight} re W n`];\n\n    if (valueIndices.length) {\n      // This value has been copied/pasted from annotation-choice-widget.pdf.\n      // It corresponds to rgb(153, 193, 218).\n      buf.push(\"0.600006 0.756866 0.854904 rg\");\n\n      // Highlight the lines in filling a blue rectangle at the selected\n      // positions.\n      for (const index of valueIndices) {\n        if (firstIndex <= index && index < end) {\n          buf.push(\n            `1 ${\n              totalHeight - (index - firstIndex + 1) * lineHeight\n            } ${totalWidth} ${lineHeight} re f`\n          );\n        }\n      }\n    }\n    buf.push(\"BT\", defaultAppearance, `1 0 0 1 0 ${totalHeight} Tm`);\n\n    const prevInfo = { shift: 0 };\n    for (let i = firstIndex; i < end; i++) {\n      const { displayValue } = this.data.options[i];\n      const vpadding = i === firstIndex ? vPadding : 0;\n      buf.push(\n        this._renderText(\n          displayValue,\n          font,\n          fontSize,\n          totalWidth,\n          0,\n          prevInfo,\n          defaultHPadding,\n          -lineHeight + vpadding\n        )\n      );\n    }\n\n    buf.push(\"ET Q EMC\");\n\n    return buf.join(\"\\n\");\n  }\n}\n\nclass SignatureWidgetAnnotation extends WidgetAnnotation {\n  constructor(params) {\n    super(params);\n\n    // Unset the fieldValue since it's (most likely) a `Dict` which is\n    // non-serializable and will thus cause errors when sending annotations\n    // to the main-thread (issue 10347).\n    this.data.fieldValue = null;\n    this.data.hasOwnCanvas = this.data.noRotate;\n    this.data.noHTML = !this.data.hasOwnCanvas;\n  }\n\n  getFieldObject() {\n    return {\n      id: this.data.id,\n      value: null,\n      page: this.data.pageIndex,\n      type: \"signature\",\n    };\n  }\n}\n\nclass TextAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    const DEFAULT_ICON_SIZE = 22; // px\n\n    super(params);\n\n    // No rotation for Text (see 12.5.6.4).\n    this.data.noRotate = true;\n    this.data.hasOwnCanvas = this.data.noRotate;\n    this.data.noHTML = false;\n\n    const { dict } = params;\n    this.data.annotationType = AnnotationType.TEXT;\n\n    if (this.data.hasAppearance) {\n      this.data.name = \"NoIcon\";\n    } else {\n      this.data.rect[1] = this.data.rect[3] - DEFAULT_ICON_SIZE;\n      this.data.rect[2] = this.data.rect[0] + DEFAULT_ICON_SIZE;\n      this.data.name = dict.has(\"Name\") ? dict.get(\"Name\").name : \"Note\";\n    }\n\n    if (dict.has(\"State\")) {\n      this.data.state = dict.get(\"State\") || null;\n      this.data.stateModel = dict.get(\"StateModel\") || null;\n    } else {\n      this.data.state = null;\n      this.data.stateModel = null;\n    }\n  }\n}\n\nclass LinkAnnotation extends Annotation {\n  constructor(params) {\n    super(params);\n\n    const { dict, annotationGlobals } = params;\n    this.data.annotationType = AnnotationType.LINK;\n\n    const quadPoints = getQuadPoints(dict, this.rectangle);\n    if (quadPoints) {\n      this.data.quadPoints = quadPoints;\n    }\n\n    // The color entry for a link annotation is the color of the border.\n    this.data.borderColor ||= this.data.color;\n\n    Catalog.parseDestDictionary({\n      destDict: dict,\n      resultObj: this.data,\n      docBaseUrl: annotationGlobals.baseUrl,\n      docAttachments: annotationGlobals.attachments,\n    });\n  }\n}\n\nclass PopupAnnotation extends Annotation {\n  constructor(params) {\n    super(params);\n\n    const { dict } = params;\n    this.data.annotationType = AnnotationType.POPUP;\n\n    // A pop-up is never rendered on the main canvas so we must render its HTML\n    // version.\n    this.data.noHTML = false;\n\n    if (\n      this.data.rect[0] === this.data.rect[2] ||\n      this.data.rect[1] === this.data.rect[3]\n    ) {\n      this.data.rect = null;\n    }\n\n    let parentItem = dict.get(\"Parent\");\n    if (!parentItem) {\n      warn(\"Popup annotation has a missing or invalid parent annotation.\");\n      return;\n    }\n\n    const parentRect = parentItem.getArray(\"Rect\");\n    this.data.parentRect =\n      Array.isArray(parentRect) && parentRect.length === 4\n        ? Util.normalizeRect(parentRect)\n        : null;\n\n    const rt = parentItem.get(\"RT\");\n    if (isName(rt, AnnotationReplyType.GROUP)) {\n      // Subordinate annotations in a group should inherit\n      // the group attributes from the primary annotation.\n      parentItem = parentItem.get(\"IRT\");\n    }\n\n    if (!parentItem.has(\"M\")) {\n      this.data.modificationDate = null;\n    } else {\n      this.setModificationDate(parentItem.get(\"M\"));\n      this.data.modificationDate = this.modificationDate;\n    }\n\n    if (!parentItem.has(\"C\")) {\n      // Fall back to the default background color.\n      this.data.color = null;\n    } else {\n      this.setColor(parentItem.getArray(\"C\"));\n      this.data.color = this.color;\n    }\n\n    // If the Popup annotation is not viewable, but the parent annotation is,\n    // that is most likely a bug. Fallback to inherit the flags from the parent\n    // annotation (this is consistent with the behaviour in Adobe Reader).\n    if (!this.viewable) {\n      const parentFlags = parentItem.get(\"F\");\n      if (this._isViewable(parentFlags)) {\n        this.setFlags(parentFlags);\n      }\n    }\n\n    this.setTitle(parentItem.get(\"T\"));\n    this.data.titleObj = this._title;\n\n    this.setContents(parentItem.get(\"Contents\"));\n    this.data.contentsObj = this._contents;\n\n    if (parentItem.has(\"RC\")) {\n      this.data.richText = XFAFactory.getRichTextAsHtml(parentItem.get(\"RC\"));\n    }\n\n    this.data.open = !!dict.get(\"Open\");\n  }\n}\n\nclass FreeTextAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n\n    // It uses its own canvas in order to be hidden if edited.\n    // But if it has the noHTML flag, it means that we don't want to be able\n    // to modify it so we can just draw it on the main canvas.\n    this.data.hasOwnCanvas = !this.data.noHTML;\n    // We want to be able to add mouse listeners to the annotation.\n    this.data.noHTML = false;\n\n    const { evaluatorOptions, xref } = params;\n    this.data.annotationType = AnnotationType.FREETEXT;\n    this.setDefaultAppearance(params);\n    if (this.appearance) {\n      const { fontColor, fontSize } = parseAppearanceStream(\n        this.appearance,\n        evaluatorOptions,\n        xref\n      );\n      this.data.defaultAppearanceData.fontColor = fontColor;\n      this.data.defaultAppearanceData.fontSize = fontSize || 10;\n    } else if (this._isOffscreenCanvasSupported) {\n      const strokeAlpha = params.dict.get(\"CA\");\n      const fakeUnicodeFont = new FakeUnicodeFont(xref, \"sans-serif\");\n      this.data.defaultAppearanceData.fontSize ||= 10;\n      const { fontColor, fontSize } = this.data.defaultAppearanceData;\n      this.appearance = fakeUnicodeFont.createAppearance(\n        this._contents.str,\n        this.rectangle,\n        this.rotation,\n        fontSize,\n        fontColor,\n        strokeAlpha\n      );\n      this._streams.push(this.appearance, FakeUnicodeFont.toUnicodeStream);\n    } else {\n      warn(\n        \"FreeTextAnnotation: OffscreenCanvas is not supported, annotation may not render correctly.\"\n      );\n    }\n  }\n\n  get hasTextContent() {\n    return !!this.appearance;\n  }\n\n  static createNewDict(annotation, xref, { apRef, ap }) {\n    const { color, fontSize, rect, rotation, user, value } = annotation;\n    const freetext = new Dict(xref);\n    freetext.set(\"Type\", Name.get(\"Annot\"));\n    freetext.set(\"Subtype\", Name.get(\"FreeText\"));\n    freetext.set(\"CreationDate\", `D:${getModificationDate()}`);\n    freetext.set(\"Rect\", rect);\n    const da = `/Helv ${fontSize} Tf ${getPdfColor(color, /* isFill */ true)}`;\n    freetext.set(\"DA\", da);\n    freetext.set(\n      \"Contents\",\n      isAscii(value)\n        ? value\n        : stringToUTF16String(value, /* bigEndian = */ true)\n    );\n    freetext.set(\"F\", 4);\n    freetext.set(\"Border\", [0, 0, 0]);\n    freetext.set(\"Rotate\", rotation);\n\n    if (user) {\n      freetext.set(\n        \"T\",\n        isAscii(user) ? user : stringToUTF16String(user, /* bigEndian = */ true)\n      );\n    }\n\n    if (apRef || ap) {\n      const n = new Dict(xref);\n      freetext.set(\"AP\", n);\n\n      if (apRef) {\n        n.set(\"N\", apRef);\n      } else {\n        n.set(\"N\", ap);\n      }\n    }\n\n    return freetext;\n  }\n\n  static async createNewAppearanceStream(annotation, xref, params) {\n    const { baseFontRef, evaluator, task } = params;\n    const { color, fontSize, rect, rotation, value } = annotation;\n\n    const resources = new Dict(xref);\n    const font = new Dict(xref);\n\n    if (baseFontRef) {\n      font.set(\"Helv\", baseFontRef);\n    } else {\n      const baseFont = new Dict(xref);\n      baseFont.set(\"BaseFont\", Name.get(\"Helvetica\"));\n      baseFont.set(\"Type\", Name.get(\"Font\"));\n      baseFont.set(\"Subtype\", Name.get(\"Type1\"));\n      baseFont.set(\"Encoding\", Name.get(\"WinAnsiEncoding\"));\n      font.set(\"Helv\", baseFont);\n    }\n    resources.set(\"Font\", font);\n\n    const helv = await WidgetAnnotation._getFontData(\n      evaluator,\n      task,\n      {\n        fontName: \"Helv\",\n        fontSize,\n      },\n      resources\n    );\n\n    const [x1, y1, x2, y2] = rect;\n    let w = x2 - x1;\n    let h = y2 - y1;\n\n    if (rotation % 180 !== 0) {\n      [w, h] = [h, w];\n    }\n\n    const lines = value.split(\"\\n\");\n    const scale = fontSize / 1000;\n    let totalWidth = -Infinity;\n    const encodedLines = [];\n    for (let line of lines) {\n      const encoded = helv.encodeString(line);\n      if (encoded.length > 1) {\n        // The font doesn't contain all the chars.\n        return null;\n      }\n      line = encoded.join(\"\");\n      encodedLines.push(line);\n      let lineWidth = 0;\n      const glyphs = helv.charsToGlyphs(line);\n      for (const glyph of glyphs) {\n        lineWidth += glyph.width * scale;\n      }\n      totalWidth = Math.max(totalWidth, lineWidth);\n    }\n\n    let hscale = 1;\n    if (totalWidth > w) {\n      hscale = w / totalWidth;\n    }\n    let vscale = 1;\n    const lineHeight = LINE_FACTOR * fontSize;\n    const lineAscent = (LINE_FACTOR - LINE_DESCENT_FACTOR) * fontSize;\n    const totalHeight = lineHeight * lines.length;\n    if (totalHeight > h) {\n      vscale = h / totalHeight;\n    }\n    const fscale = Math.min(hscale, vscale);\n    const newFontSize = fontSize * fscale;\n    let firstPoint, clipBox, matrix;\n    switch (rotation) {\n      case 0:\n        matrix = [1, 0, 0, 1];\n        clipBox = [rect[0], rect[1], w, h];\n        firstPoint = [rect[0], rect[3] - lineAscent];\n        break;\n      case 90:\n        matrix = [0, 1, -1, 0];\n        clipBox = [rect[1], -rect[2], w, h];\n        firstPoint = [rect[1], -rect[0] - lineAscent];\n        break;\n      case 180:\n        matrix = [-1, 0, 0, -1];\n        clipBox = [-rect[2], -rect[3], w, h];\n        firstPoint = [-rect[2], -rect[1] - lineAscent];\n        break;\n      case 270:\n        matrix = [0, -1, 1, 0];\n        clipBox = [-rect[3], rect[0], w, h];\n        firstPoint = [-rect[3], rect[2] - lineAscent];\n        break;\n    }\n\n    const buffer = [\n      \"q\",\n      `${matrix.join(\" \")} 0 0 cm`,\n      `${clipBox.join(\" \")} re W n`,\n      `BT`,\n      `${getPdfColor(color, /* isFill */ true)}`,\n      `0 Tc /Helv ${numberToString(newFontSize)} Tf`,\n    ];\n\n    buffer.push(\n      `${firstPoint.join(\" \")} Td (${escapeString(encodedLines[0])}) Tj`\n    );\n    const vShift = numberToString(lineHeight);\n    for (let i = 1, ii = encodedLines.length; i < ii; i++) {\n      const line = encodedLines[i];\n      buffer.push(`0 -${vShift} Td (${escapeString(line)}) Tj`);\n    }\n    buffer.push(\"ET\", \"Q\");\n    const appearance = buffer.join(\"\\n\");\n\n    const appearanceStreamDict = new Dict(xref);\n    appearanceStreamDict.set(\"FormType\", 1);\n    appearanceStreamDict.set(\"Subtype\", Name.get(\"Form\"));\n    appearanceStreamDict.set(\"Type\", Name.get(\"XObject\"));\n    appearanceStreamDict.set(\"BBox\", rect);\n    appearanceStreamDict.set(\"Resources\", resources);\n    appearanceStreamDict.set(\"Matrix\", [1, 0, 0, 1, -rect[0], -rect[1]]);\n\n    const ap = new StringStream(appearance);\n    ap.dict = appearanceStreamDict;\n\n    return ap;\n  }\n}\n\nclass LineAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n\n    const { dict, xref } = params;\n    this.data.annotationType = AnnotationType.LINE;\n    this.data.hasOwnCanvas = this.data.noRotate;\n    this.data.noHTML = false;\n\n    const lineCoordinates = dict.getArray(\"L\");\n    this.data.lineCoordinates = Util.normalizeRect(lineCoordinates);\n\n    if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"MOZCENTRAL\")) {\n      this.setLineEndings(dict.getArray(\"LE\"));\n      this.data.lineEndings = this.lineEndings;\n    }\n\n    if (!this.appearance) {\n      // The default stroke color is black.\n      const strokeColor = this.color ? getPdfColorArray(this.color) : [0, 0, 0];\n      const strokeAlpha = dict.get(\"CA\");\n\n      const interiorColor = getRgbColor(dict.getArray(\"IC\"), null);\n      // The default fill color is transparent. Setting the fill colour is\n      // necessary if/when we want to add support for non-default line endings.\n      const fillColor = interiorColor ? getPdfColorArray(interiorColor) : null;\n      const fillAlpha = fillColor ? strokeAlpha : null;\n\n      const borderWidth = this.borderStyle.width || 1,\n        borderAdjust = 2 * borderWidth;\n\n      // If the /Rect-entry is empty/wrong, create a fallback rectangle so that\n      // we get similar rendering/highlighting behaviour as in Adobe Reader.\n      const bbox = [\n        this.data.lineCoordinates[0] - borderAdjust,\n        this.data.lineCoordinates[1] - borderAdjust,\n        this.data.lineCoordinates[2] + borderAdjust,\n        this.data.lineCoordinates[3] + borderAdjust,\n      ];\n      if (!Util.intersect(this.rectangle, bbox)) {\n        this.rectangle = bbox;\n      }\n\n      this._setDefaultAppearance({\n        xref,\n        extra: `${borderWidth} w`,\n        strokeColor,\n        fillColor,\n        strokeAlpha,\n        fillAlpha,\n        pointsCallback: (buffer, points) => {\n          buffer.push(\n            `${lineCoordinates[0]} ${lineCoordinates[1]} m`,\n            `${lineCoordinates[2]} ${lineCoordinates[3]} l`,\n            \"S\"\n          );\n          return [\n            points[0].x - borderWidth,\n            points[1].x + borderWidth,\n            points[3].y - borderWidth,\n            points[1].y + borderWidth,\n          ];\n        },\n      });\n    }\n  }\n}\n\nclass SquareAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n\n    const { dict, xref } = params;\n    this.data.annotationType = AnnotationType.SQUARE;\n    this.data.hasOwnCanvas = this.data.noRotate;\n    this.data.noHTML = false;\n\n    if (!this.appearance) {\n      // The default stroke color is black.\n      const strokeColor = this.color ? getPdfColorArray(this.color) : [0, 0, 0];\n      const strokeAlpha = dict.get(\"CA\");\n\n      const interiorColor = getRgbColor(dict.getArray(\"IC\"), null);\n      // The default fill color is transparent.\n      const fillColor = interiorColor ? getPdfColorArray(interiorColor) : null;\n      const fillAlpha = fillColor ? strokeAlpha : null;\n\n      if (this.borderStyle.width === 0 && !fillColor) {\n        // Prevent rendering a \"hairline\" border (fixes issue14164.pdf).\n        return;\n      }\n\n      this._setDefaultAppearance({\n        xref,\n        extra: `${this.borderStyle.width} w`,\n        strokeColor,\n        fillColor,\n        strokeAlpha,\n        fillAlpha,\n        pointsCallback: (buffer, points) => {\n          const x = points[2].x + this.borderStyle.width / 2;\n          const y = points[2].y + this.borderStyle.width / 2;\n          const width = points[3].x - points[2].x - this.borderStyle.width;\n          const height = points[1].y - points[3].y - this.borderStyle.width;\n          buffer.push(`${x} ${y} ${width} ${height} re`);\n          if (fillColor) {\n            buffer.push(\"B\");\n          } else {\n            buffer.push(\"S\");\n          }\n          return [points[0].x, points[1].x, points[3].y, points[1].y];\n        },\n      });\n    }\n  }\n}\n\nclass CircleAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n\n    const { dict, xref } = params;\n    this.data.annotationType = AnnotationType.CIRCLE;\n\n    if (!this.appearance) {\n      // The default stroke color is black.\n      const strokeColor = this.color ? getPdfColorArray(this.color) : [0, 0, 0];\n      const strokeAlpha = dict.get(\"CA\");\n\n      const interiorColor = getRgbColor(dict.getArray(\"IC\"), null);\n      // The default fill color is transparent.\n      const fillColor = interiorColor ? getPdfColorArray(interiorColor) : null;\n      const fillAlpha = fillColor ? strokeAlpha : null;\n\n      if (this.borderStyle.width === 0 && !fillColor) {\n        // Prevent rendering a \"hairline\" border (fixes issue14164.pdf).\n        return;\n      }\n\n      // Circles are approximated by Bézier curves with four segments since\n      // there is no circle primitive in the PDF specification. For the control\n      // points distance, see https://stackoverflow.com/a/27863181.\n      const controlPointsDistance = (4 / 3) * Math.tan(Math.PI / (2 * 4));\n\n      this._setDefaultAppearance({\n        xref,\n        extra: `${this.borderStyle.width} w`,\n        strokeColor,\n        fillColor,\n        strokeAlpha,\n        fillAlpha,\n        pointsCallback: (buffer, points) => {\n          const x0 = points[0].x + this.borderStyle.width / 2;\n          const y0 = points[0].y - this.borderStyle.width / 2;\n          const x1 = points[3].x - this.borderStyle.width / 2;\n          const y1 = points[3].y + this.borderStyle.width / 2;\n          const xMid = x0 + (x1 - x0) / 2;\n          const yMid = y0 + (y1 - y0) / 2;\n          const xOffset = ((x1 - x0) / 2) * controlPointsDistance;\n          const yOffset = ((y1 - y0) / 2) * controlPointsDistance;\n\n          buffer.push(\n            `${xMid} ${y1} m`,\n            `${xMid + xOffset} ${y1} ${x1} ${yMid + yOffset} ${x1} ${yMid} c`,\n            `${x1} ${yMid - yOffset} ${xMid + xOffset} ${y0} ${xMid} ${y0} c`,\n            `${xMid - xOffset} ${y0} ${x0} ${yMid - yOffset} ${x0} ${yMid} c`,\n            `${x0} ${yMid + yOffset} ${xMid - xOffset} ${y1} ${xMid} ${y1} c`,\n            \"h\"\n          );\n          if (fillColor) {\n            buffer.push(\"B\");\n          } else {\n            buffer.push(\"S\");\n          }\n          return [points[0].x, points[1].x, points[3].y, points[1].y];\n        },\n      });\n    }\n  }\n}\n\nclass PolylineAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n\n    const { dict, xref } = params;\n    this.data.annotationType = AnnotationType.POLYLINE;\n    this.data.hasOwnCanvas = this.data.noRotate;\n    this.data.noHTML = false;\n    this.data.vertices = [];\n\n    if (\n      (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"MOZCENTRAL\")) &&\n      !(this instanceof PolygonAnnotation)\n    ) {\n      // Only meaningful for polyline annotations.\n      this.setLineEndings(dict.getArray(\"LE\"));\n      this.data.lineEndings = this.lineEndings;\n    }\n\n    // The vertices array is an array of numbers representing the alternating\n    // horizontal and vertical coordinates, respectively, of each vertex.\n    // Convert this to an array of objects with x and y coordinates.\n    const rawVertices = dict.getArray(\"Vertices\");\n    if (!Array.isArray(rawVertices)) {\n      return;\n    }\n    for (let i = 0, ii = rawVertices.length; i < ii; i += 2) {\n      this.data.vertices.push({\n        x: rawVertices[i],\n        y: rawVertices[i + 1],\n      });\n    }\n\n    if (!this.appearance) {\n      // The default stroke color is black.\n      const strokeColor = this.color ? getPdfColorArray(this.color) : [0, 0, 0];\n      const strokeAlpha = dict.get(\"CA\");\n\n      const borderWidth = this.borderStyle.width || 1,\n        borderAdjust = 2 * borderWidth;\n\n      // If the /Rect-entry is empty/wrong, create a fallback rectangle so that\n      // we get similar rendering/highlighting behaviour as in Adobe Reader.\n      const bbox = [Infinity, Infinity, -Infinity, -Infinity];\n      for (const vertex of this.data.vertices) {\n        bbox[0] = Math.min(bbox[0], vertex.x - borderAdjust);\n        bbox[1] = Math.min(bbox[1], vertex.y - borderAdjust);\n        bbox[2] = Math.max(bbox[2], vertex.x + borderAdjust);\n        bbox[3] = Math.max(bbox[3], vertex.y + borderAdjust);\n      }\n      if (!Util.intersect(this.rectangle, bbox)) {\n        this.rectangle = bbox;\n      }\n\n      this._setDefaultAppearance({\n        xref,\n        extra: `${borderWidth} w`,\n        strokeColor,\n        strokeAlpha,\n        pointsCallback: (buffer, points) => {\n          const vertices = this.data.vertices;\n          for (let i = 0, ii = vertices.length; i < ii; i++) {\n            buffer.push(\n              `${vertices[i].x} ${vertices[i].y} ${i === 0 ? \"m\" : \"l\"}`\n            );\n          }\n          buffer.push(\"S\");\n          return [points[0].x, points[1].x, points[3].y, points[1].y];\n        },\n      });\n    }\n  }\n}\n\nclass PolygonAnnotation extends PolylineAnnotation {\n  constructor(params) {\n    // Polygons are specific forms of polylines, so reuse their logic.\n    super(params);\n\n    this.data.annotationType = AnnotationType.POLYGON;\n  }\n}\n\nclass CaretAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n\n    this.data.annotationType = AnnotationType.CARET;\n  }\n}\n\nclass InkAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n\n    this.data.hasOwnCanvas = this.data.noRotate;\n    this.data.noHTML = false;\n\n    const { dict, xref } = params;\n    this.data.annotationType = AnnotationType.INK;\n    this.data.inkLists = [];\n\n    const rawInkLists = dict.getArray(\"InkList\");\n    if (!Array.isArray(rawInkLists)) {\n      return;\n    }\n    for (let i = 0, ii = rawInkLists.length; i < ii; ++i) {\n      // The raw ink lists array contains arrays of numbers representing\n      // the alternating horizontal and vertical coordinates, respectively,\n      // of each vertex. Convert this to an array of objects with x and y\n      // coordinates.\n      this.data.inkLists.push([]);\n      for (let j = 0, jj = rawInkLists[i].length; j < jj; j += 2) {\n        this.data.inkLists[i].push({\n          x: xref.fetchIfRef(rawInkLists[i][j]),\n          y: xref.fetchIfRef(rawInkLists[i][j + 1]),\n        });\n      }\n    }\n\n    if (!this.appearance) {\n      // The default stroke color is black.\n      const strokeColor = this.color ? getPdfColorArray(this.color) : [0, 0, 0];\n      const strokeAlpha = dict.get(\"CA\");\n\n      const borderWidth = this.borderStyle.width || 1,\n        borderAdjust = 2 * borderWidth;\n\n      // If the /Rect-entry is empty/wrong, create a fallback rectangle so that\n      // we get similar rendering/highlighting behaviour as in Adobe Reader.\n      const bbox = [Infinity, Infinity, -Infinity, -Infinity];\n      for (const inkLists of this.data.inkLists) {\n        for (const vertex of inkLists) {\n          bbox[0] = Math.min(bbox[0], vertex.x - borderAdjust);\n          bbox[1] = Math.min(bbox[1], vertex.y - borderAdjust);\n          bbox[2] = Math.max(bbox[2], vertex.x + borderAdjust);\n          bbox[3] = Math.max(bbox[3], vertex.y + borderAdjust);\n        }\n      }\n      if (!Util.intersect(this.rectangle, bbox)) {\n        this.rectangle = bbox;\n      }\n\n      this._setDefaultAppearance({\n        xref,\n        extra: `${borderWidth} w`,\n        strokeColor,\n        strokeAlpha,\n        pointsCallback: (buffer, points) => {\n          // According to the specification, see \"12.5.6.13 Ink Annotations\":\n          //   When drawn, the points shall be connected by straight lines or\n          //   curves in an implementation-dependent way.\n          // In order to simplify things, we utilize straight lines for now.\n          for (const inkList of this.data.inkLists) {\n            for (let i = 0, ii = inkList.length; i < ii; i++) {\n              buffer.push(\n                `${inkList[i].x} ${inkList[i].y} ${i === 0 ? \"m\" : \"l\"}`\n              );\n            }\n            buffer.push(\"S\");\n          }\n          return [points[0].x, points[1].x, points[3].y, points[1].y];\n        },\n      });\n    }\n  }\n\n  static createNewDict(annotation, xref, { apRef, ap }) {\n    const { color, opacity, paths, rect, rotation, thickness } = annotation;\n    const ink = new Dict(xref);\n    ink.set(\"Type\", Name.get(\"Annot\"));\n    ink.set(\"Subtype\", Name.get(\"Ink\"));\n    ink.set(\"CreationDate\", `D:${getModificationDate()}`);\n    ink.set(\"Rect\", rect);\n    ink.set(\n      \"InkList\",\n      paths.map(p => p.points)\n    );\n    ink.set(\"F\", 4);\n    ink.set(\"Rotate\", rotation);\n\n    // Line thickness.\n    const bs = new Dict(xref);\n    ink.set(\"BS\", bs);\n    bs.set(\"W\", thickness);\n\n    // Color.\n    ink.set(\n      \"C\",\n      Array.from(color, c => c / 255)\n    );\n\n    // Opacity.\n    ink.set(\"CA\", opacity);\n\n    const n = new Dict(xref);\n    ink.set(\"AP\", n);\n\n    if (apRef) {\n      n.set(\"N\", apRef);\n    } else {\n      n.set(\"N\", ap);\n    }\n\n    return ink;\n  }\n\n  static async createNewAppearanceStream(annotation, xref, params) {\n    const { color, rect, paths, thickness, opacity } = annotation;\n\n    const appearanceBuffer = [\n      `${thickness} w 1 J 1 j`,\n      `${getPdfColor(color, /* isFill */ false)}`,\n    ];\n\n    if (opacity !== 1) {\n      appearanceBuffer.push(\"/R0 gs\");\n    }\n\n    const buffer = [];\n    for (const { bezier } of paths) {\n      buffer.length = 0;\n      buffer.push(\n        `${numberToString(bezier[0])} ${numberToString(bezier[1])} m`\n      );\n      for (let i = 2, ii = bezier.length; i < ii; i += 6) {\n        const curve = bezier\n          .slice(i, i + 6)\n          .map(numberToString)\n          .join(\" \");\n        buffer.push(`${curve} c`);\n      }\n      buffer.push(\"S\");\n      appearanceBuffer.push(buffer.join(\"\\n\"));\n    }\n    const appearance = appearanceBuffer.join(\"\\n\");\n\n    const appearanceStreamDict = new Dict(xref);\n    appearanceStreamDict.set(\"FormType\", 1);\n    appearanceStreamDict.set(\"Subtype\", Name.get(\"Form\"));\n    appearanceStreamDict.set(\"Type\", Name.get(\"XObject\"));\n    appearanceStreamDict.set(\"BBox\", rect);\n    appearanceStreamDict.set(\"Length\", appearance.length);\n\n    if (opacity !== 1) {\n      const resources = new Dict(xref);\n      const extGState = new Dict(xref);\n      const r0 = new Dict(xref);\n      r0.set(\"CA\", opacity);\n      r0.set(\"Type\", Name.get(\"ExtGState\"));\n      extGState.set(\"R0\", r0);\n      resources.set(\"ExtGState\", extGState);\n      appearanceStreamDict.set(\"Resources\", resources);\n    }\n\n    const ap = new StringStream(appearance);\n    ap.dict = appearanceStreamDict;\n\n    return ap;\n  }\n}\n\nclass HighlightAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n\n    const { dict, xref } = params;\n    this.data.annotationType = AnnotationType.HIGHLIGHT;\n\n    const quadPoints = (this.data.quadPoints = getQuadPoints(dict, null));\n    if (quadPoints) {\n      const resources = this.appearance?.dict.get(\"Resources\");\n\n      if (!this.appearance || !resources?.has(\"ExtGState\")) {\n        if (this.appearance) {\n          // Workaround for cases where there's no /ExtGState-entry directly\n          // available, e.g. when the appearance stream contains a /XObject of\n          // the /Form-type, since that causes the highlighting to completely\n          // obscure the PDF content below it (fixes issue13242.pdf).\n          warn(\"HighlightAnnotation - ignoring built-in appearance stream.\");\n        }\n        // Default color is yellow in Acrobat Reader\n        const fillColor = this.color ? getPdfColorArray(this.color) : [1, 1, 0];\n        const fillAlpha = dict.get(\"CA\");\n\n        this._setDefaultAppearance({\n          xref,\n          fillColor,\n          blendMode: \"Multiply\",\n          fillAlpha,\n          pointsCallback: (buffer, points) => {\n            buffer.push(\n              `${points[0].x} ${points[0].y} m`,\n              `${points[1].x} ${points[1].y} l`,\n              `${points[3].x} ${points[3].y} l`,\n              `${points[2].x} ${points[2].y} l`,\n              \"f\"\n            );\n            return [points[0].x, points[1].x, points[3].y, points[1].y];\n          },\n        });\n      }\n    } else {\n      this.data.popupRef = null;\n    }\n  }\n\n  static createNewDict(annotation, xref, { apRef, ap }) {\n    const { color, opacity, rect, rotation, user, quadPoints } = annotation;\n    const highlight = new Dict(xref);\n    highlight.set(\"Type\", Name.get(\"Annot\"));\n    highlight.set(\"Subtype\", Name.get(\"Highlight\"));\n    highlight.set(\"CreationDate\", `D:${getModificationDate()}`);\n    highlight.set(\"Rect\", rect);\n    highlight.set(\"F\", 4);\n    highlight.set(\"Border\", [0, 0, 0]);\n    highlight.set(\"Rotate\", rotation);\n    highlight.set(\"QuadPoints\", quadPoints);\n\n    // Color.\n    highlight.set(\n      \"C\",\n      Array.from(color, c => c / 255)\n    );\n\n    // Opacity.\n    highlight.set(\"CA\", opacity);\n\n    if (user) {\n      highlight.set(\n        \"T\",\n        isAscii(user) ? user : stringToUTF16String(user, /* bigEndian = */ true)\n      );\n    }\n\n    if (apRef || ap) {\n      const n = new Dict(xref);\n      highlight.set(\"AP\", n);\n      n.set(\"N\", apRef || ap);\n    }\n\n    return highlight;\n  }\n\n  static async createNewAppearanceStream(annotation, xref, params) {\n    const { color, rect, outlines, opacity } = annotation;\n\n    const appearanceBuffer = [\n      `${getPdfColor(color, /* isFill */ true)}`,\n      \"/R0 gs\",\n    ];\n\n    const buffer = [];\n    for (const outline of outlines) {\n      buffer.length = 0;\n      buffer.push(\n        `${numberToString(outline[0])} ${numberToString(outline[1])} m`\n      );\n      for (let i = 2, ii = outline.length; i < ii; i += 2) {\n        buffer.push(\n          `${numberToString(outline[i])} ${numberToString(outline[i + 1])} l`\n        );\n      }\n      buffer.push(\"h\");\n      appearanceBuffer.push(buffer.join(\"\\n\"));\n    }\n    appearanceBuffer.push(\"f*\");\n    const appearance = appearanceBuffer.join(\"\\n\");\n\n    const appearanceStreamDict = new Dict(xref);\n    appearanceStreamDict.set(\"FormType\", 1);\n    appearanceStreamDict.set(\"Subtype\", Name.get(\"Form\"));\n    appearanceStreamDict.set(\"Type\", Name.get(\"XObject\"));\n    appearanceStreamDict.set(\"BBox\", rect);\n    appearanceStreamDict.set(\"Length\", appearance.length);\n\n    const resources = new Dict(xref);\n    const extGState = new Dict(xref);\n    resources.set(\"ExtGState\", extGState);\n    appearanceStreamDict.set(\"Resources\", resources);\n    const r0 = new Dict(xref);\n    extGState.set(\"R0\", r0);\n    r0.set(\"BM\", Name.get(\"Multiply\"));\n\n    if (opacity !== 1) {\n      r0.set(\"ca\", opacity);\n      r0.set(\"Type\", Name.get(\"ExtGState\"));\n    }\n\n    const ap = new StringStream(appearance);\n    ap.dict = appearanceStreamDict;\n\n    return ap;\n  }\n}\n\nclass UnderlineAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n\n    const { dict, xref } = params;\n    this.data.annotationType = AnnotationType.UNDERLINE;\n\n    const quadPoints = (this.data.quadPoints = getQuadPoints(dict, null));\n    if (quadPoints) {\n      if (!this.appearance) {\n        // Default color is black\n        const strokeColor = this.color\n          ? getPdfColorArray(this.color)\n          : [0, 0, 0];\n        const strokeAlpha = dict.get(\"CA\");\n\n        // The values 0.571 and 1.3 below corresponds to what Acrobat is doing.\n        this._setDefaultAppearance({\n          xref,\n          extra: \"[] 0 d 0.571 w\",\n          strokeColor,\n          strokeAlpha,\n          pointsCallback: (buffer, points) => {\n            buffer.push(\n              `${points[2].x} ${points[2].y + 1.3} m`,\n              `${points[3].x} ${points[3].y + 1.3} l`,\n              \"S\"\n            );\n            return [points[0].x, points[1].x, points[3].y, points[1].y];\n          },\n        });\n      }\n    } else {\n      this.data.popupRef = null;\n    }\n  }\n}\n\nclass SquigglyAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n\n    const { dict, xref } = params;\n    this.data.annotationType = AnnotationType.SQUIGGLY;\n\n    const quadPoints = (this.data.quadPoints = getQuadPoints(dict, null));\n    if (quadPoints) {\n      if (!this.appearance) {\n        // Default color is black\n        const strokeColor = this.color\n          ? getPdfColorArray(this.color)\n          : [0, 0, 0];\n        const strokeAlpha = dict.get(\"CA\");\n\n        this._setDefaultAppearance({\n          xref,\n          extra: \"[] 0 d 1 w\",\n          strokeColor,\n          strokeAlpha,\n          pointsCallback: (buffer, points) => {\n            const dy = (points[0].y - points[2].y) / 6;\n            let shift = dy;\n            let x = points[2].x;\n            const y = points[2].y;\n            const xEnd = points[3].x;\n            buffer.push(`${x} ${y + shift} m`);\n            do {\n              x += 2;\n              shift = shift === 0 ? dy : 0;\n              buffer.push(`${x} ${y + shift} l`);\n            } while (x < xEnd);\n            buffer.push(\"S\");\n            return [points[2].x, xEnd, y - 2 * dy, y + 2 * dy];\n          },\n        });\n      }\n    } else {\n      this.data.popupRef = null;\n    }\n  }\n}\n\nclass StrikeOutAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n\n    const { dict, xref } = params;\n    this.data.annotationType = AnnotationType.STRIKEOUT;\n\n    const quadPoints = (this.data.quadPoints = getQuadPoints(dict, null));\n    if (quadPoints) {\n      if (!this.appearance) {\n        // Default color is black\n        const strokeColor = this.color\n          ? getPdfColorArray(this.color)\n          : [0, 0, 0];\n        const strokeAlpha = dict.get(\"CA\");\n\n        this._setDefaultAppearance({\n          xref,\n          extra: \"[] 0 d 1 w\",\n          strokeColor,\n          strokeAlpha,\n          pointsCallback: (buffer, points) => {\n            buffer.push(\n              `${(points[0].x + points[2].x) / 2} ` +\n                `${(points[0].y + points[2].y) / 2} m`,\n              `${(points[1].x + points[3].x) / 2} ` +\n                `${(points[1].y + points[3].y) / 2} l`,\n              \"S\"\n            );\n            return [points[0].x, points[1].x, points[3].y, points[1].y];\n          },\n        });\n      }\n    } else {\n      this.data.popupRef = null;\n    }\n  }\n}\n\nclass StampAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n\n    this.data.annotationType = AnnotationType.STAMP;\n    this.data.hasOwnCanvas = this.data.noRotate;\n    this.data.noHTML = false;\n  }\n\n  static async createImage(bitmap, xref) {\n    // TODO: when printing, we could have a specific internal colorspace\n    // (e.g. something like DeviceRGBA) in order avoid any conversion (i.e. no\n    // jpeg, no rgba to rgb conversion, etc...)\n\n    const { width, height } = bitmap;\n    const canvas = new OffscreenCanvas(width, height);\n    const ctx = canvas.getContext(\"2d\", { alpha: true });\n\n    // Draw the image and get the data in order to extract the transparency.\n    ctx.drawImage(bitmap, 0, 0);\n    const data = ctx.getImageData(0, 0, width, height).data;\n    const buf32 = new Uint32Array(data.buffer);\n    const hasAlpha = buf32.some(\n      FeatureTest.isLittleEndian\n        ? x => x >>> 24 !== 0xff\n        : x => (x & 0xff) !== 0xff\n    );\n\n    if (hasAlpha) {\n      // Redraw the image on a white background in order to remove the thin gray\n      // line which can appear when exporting to jpeg.\n      ctx.fillStyle = \"white\";\n      ctx.fillRect(0, 0, width, height);\n      ctx.drawImage(bitmap, 0, 0);\n    }\n\n    const jpegBufferPromise = canvas\n      .convertToBlob({ type: \"image/jpeg\", quality: 1 })\n      .then(blob => {\n        return blob.arrayBuffer();\n      });\n\n    const xobjectName = Name.get(\"XObject\");\n    const imageName = Name.get(\"Image\");\n    const image = new Dict(xref);\n    image.set(\"Type\", xobjectName);\n    image.set(\"Subtype\", imageName);\n    image.set(\"BitsPerComponent\", 8);\n    image.set(\"ColorSpace\", Name.get(\"DeviceRGB\"));\n    image.set(\"Filter\", Name.get(\"DCTDecode\"));\n    image.set(\"BBox\", [0, 0, width, height]);\n    image.set(\"Width\", width);\n    image.set(\"Height\", height);\n\n    let smaskStream = null;\n    if (hasAlpha) {\n      const alphaBuffer = new Uint8Array(buf32.length);\n      if (FeatureTest.isLittleEndian) {\n        for (let i = 0, ii = buf32.length; i < ii; i++) {\n          alphaBuffer[i] = buf32[i] >>> 24;\n        }\n      } else {\n        for (let i = 0, ii = buf32.length; i < ii; i++) {\n          alphaBuffer[i] = buf32[i] & 0xff;\n        }\n      }\n\n      const smask = new Dict(xref);\n      smask.set(\"Type\", xobjectName);\n      smask.set(\"Subtype\", imageName);\n      smask.set(\"BitsPerComponent\", 8);\n      smask.set(\"ColorSpace\", Name.get(\"DeviceGray\"));\n      smask.set(\"Width\", width);\n      smask.set(\"Height\", height);\n\n      smaskStream = new Stream(alphaBuffer, 0, 0, smask);\n    }\n    const imageStream = new Stream(await jpegBufferPromise, 0, 0, image);\n\n    return {\n      imageStream,\n      smaskStream,\n      width,\n      height,\n    };\n  }\n\n  static createNewDict(annotation, xref, { apRef, ap }) {\n    const { rect, rotation, user } = annotation;\n    const stamp = new Dict(xref);\n    stamp.set(\"Type\", Name.get(\"Annot\"));\n    stamp.set(\"Subtype\", Name.get(\"Stamp\"));\n    stamp.set(\"CreationDate\", `D:${getModificationDate()}`);\n    stamp.set(\"Rect\", rect);\n    stamp.set(\"F\", 4);\n    stamp.set(\"Border\", [0, 0, 0]);\n    stamp.set(\"Rotate\", rotation);\n\n    if (user) {\n      stamp.set(\n        \"T\",\n        isAscii(user) ? user : stringToUTF16String(user, /* bigEndian = */ true)\n      );\n    }\n\n    if (apRef || ap) {\n      const n = new Dict(xref);\n      stamp.set(\"AP\", n);\n\n      if (apRef) {\n        n.set(\"N\", apRef);\n      } else {\n        n.set(\"N\", ap);\n      }\n    }\n\n    return stamp;\n  }\n\n  static async createNewAppearanceStream(annotation, xref, params) {\n    const { rotation } = annotation;\n    const { imageRef, width, height } = params.image;\n    const resources = new Dict(xref);\n    const xobject = new Dict(xref);\n    resources.set(\"XObject\", xobject);\n    xobject.set(\"Im0\", imageRef);\n    const appearance = `q ${width} 0 0 ${height} 0 0 cm /Im0 Do Q`;\n\n    const appearanceStreamDict = new Dict(xref);\n    appearanceStreamDict.set(\"FormType\", 1);\n    appearanceStreamDict.set(\"Subtype\", Name.get(\"Form\"));\n    appearanceStreamDict.set(\"Type\", Name.get(\"XObject\"));\n    appearanceStreamDict.set(\"BBox\", [0, 0, width, height]);\n    appearanceStreamDict.set(\"Resources\", resources);\n\n    if (rotation) {\n      const matrix = getRotationMatrix(rotation, width, height);\n      appearanceStreamDict.set(\"Matrix\", matrix);\n    }\n\n    const ap = new StringStream(appearance);\n    ap.dict = appearanceStreamDict;\n\n    return ap;\n  }\n}\n\nclass FileAttachmentAnnotation extends MarkupAnnotation {\n  constructor(params) {\n    super(params);\n\n    const { dict, xref } = params;\n    const file = new FileSpec(dict.get(\"FS\"), xref);\n\n    this.data.annotationType = AnnotationType.FILEATTACHMENT;\n    this.data.hasOwnCanvas = this.data.noRotate;\n    this.data.noHTML = false;\n    this.data.file = file.serializable;\n\n    const name = dict.get(\"Name\");\n    this.data.name =\n      name instanceof Name ? stringToPDFString(name.name) : \"PushPin\";\n\n    const fillAlpha = dict.get(\"ca\");\n    this.data.fillAlpha =\n      typeof fillAlpha === \"number\" && fillAlpha >= 0 && fillAlpha <= 1\n        ? fillAlpha\n        : null;\n  }\n}\n\nexport {\n  Annotation,\n  AnnotationBorderStyle,\n  AnnotationFactory,\n  getQuadPoints,\n  MarkupAnnotation,\n  PopupAnnotation,\n};\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { stringToUTF8String, warn } from \"../shared/util.js\";\nimport { parseXFAPath } from \"./core_utils.js\";\nimport { SimpleXMLParser } from \"./xml_parser.js\";\n\nfunction decodeString(str) {\n  try {\n    return stringToUTF8String(str);\n  } catch (ex) {\n    warn(`UTF-8 decoding failed: \"${ex}\".`);\n    return str;\n  }\n}\n\nclass DatasetXMLParser extends SimpleXMLParser {\n  constructor(options) {\n    super(options);\n    this.node = null;\n  }\n\n  onEndElement(name) {\n    const node = super.onEndElement(name);\n    if (node && name === \"xfa:datasets\") {\n      this.node = node;\n\n      // We don't need anything else, so just kill the parser.\n      throw new Error(\"Aborting DatasetXMLParser.\");\n    }\n  }\n}\n\nclass DatasetReader {\n  constructor(data) {\n    if (data.datasets) {\n      this.node = new SimpleXMLParser({ hasAttributes: true }).parseFromString(\n        data.datasets\n      ).documentElement;\n    } else {\n      const parser = new DatasetXMLParser({ hasAttributes: true });\n      try {\n        parser.parseFromString(data[\"xdp:xdp\"]);\n      } catch {}\n      this.node = parser.node;\n    }\n  }\n\n  getValue(path) {\n    if (!this.node || !path) {\n      return \"\";\n    }\n    const node = this.node.searchNode(parseXFAPath(path), 0);\n\n    if (!node) {\n      return \"\";\n    }\n\n    const first = node.firstChild;\n    if (first?.nodeName === \"value\") {\n      return node.children.map(child => decodeString(child.textContent));\n    }\n\n    return decodeString(node.textContent);\n  }\n}\n\nexport { DatasetReader };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  assert,\n  bytesToString,\n  FormatError,\n  info,\n  InvalidPDFException,\n  warn,\n} from \"../shared/util.js\";\nimport { CIRCULAR_REF, Cmd, Dict, isCmd, Ref, RefSet } from \"./primitives.js\";\nimport { Lexer, Parser } from \"./parser.js\";\nimport {\n  MissingDataException,\n  ParserEOFException,\n  XRefEntryException,\n  XRefParseException,\n} from \"./core_utils.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { CipherTransformFactory } from \"./crypto.js\";\n\nclass XRef {\n  #firstXRefStmPos = null;\n\n  constructor(stream, pdfManager) {\n    this.stream = stream;\n    this.pdfManager = pdfManager;\n    this.entries = [];\n    this._xrefStms = new Set();\n    this._cacheMap = new Map(); // Prepare the XRef cache.\n    this._pendingRefs = new RefSet();\n    this._newPersistentRefNum = null;\n    this._newTemporaryRefNum = null;\n    this._persistentRefsCache = null;\n  }\n\n  getNewPersistentRef(obj) {\n    // When printing we don't care that much about the ref number by itself, it\n    // can increase for ever and it allows to keep some re-usable refs.\n    if (this._newPersistentRefNum === null) {\n      this._newPersistentRefNum = this.entries.length || 1;\n    }\n    const num = this._newPersistentRefNum++;\n    this._cacheMap.set(num, obj);\n    return Ref.get(num, 0);\n  }\n\n  getNewTemporaryRef() {\n    // When saving we want to have some minimal numbers.\n    // Those refs are only created in order to be written in the final pdf\n    // stream.\n    if (this._newTemporaryRefNum === null) {\n      this._newTemporaryRefNum = this.entries.length || 1;\n      if (this._newPersistentRefNum) {\n        this._persistentRefsCache = new Map();\n        for (\n          let i = this._newTemporaryRefNum;\n          i < this._newPersistentRefNum;\n          i++\n        ) {\n          // We *temporarily* clear the cache, see `resetNewTemporaryRef` below,\n          // to avoid any conflict with the refs created during saving.\n          this._persistentRefsCache.set(i, this._cacheMap.get(i));\n          this._cacheMap.delete(i);\n        }\n      }\n    }\n    return Ref.get(this._newTemporaryRefNum++, 0);\n  }\n\n  resetNewTemporaryRef() {\n    // Called once saving is finished.\n    this._newTemporaryRefNum = null;\n    if (this._persistentRefsCache) {\n      for (const [num, obj] of this._persistentRefsCache) {\n        this._cacheMap.set(num, obj);\n      }\n    }\n    this._persistentRefsCache = null;\n  }\n\n  setStartXRef(startXRef) {\n    // Store the starting positions of xref tables as we process them\n    // so we can recover from missing data errors\n    this.startXRefQueue = [startXRef];\n  }\n\n  parse(recoveryMode = false) {\n    let trailerDict;\n    if (!recoveryMode) {\n      trailerDict = this.readXRef();\n    } else {\n      warn(\"Indexing all PDF objects\");\n      trailerDict = this.indexObjects();\n    }\n    trailerDict.assignXref(this);\n    this.trailer = trailerDict;\n\n    let encrypt;\n    try {\n      encrypt = trailerDict.get(\"Encrypt\");\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(`XRef.parse - Invalid \"Encrypt\" reference: \"${ex}\".`);\n    }\n    if (encrypt instanceof Dict) {\n      const ids = trailerDict.get(\"ID\");\n      const fileId = ids?.length ? ids[0] : \"\";\n      // The 'Encrypt' dictionary itself should not be encrypted, and by\n      // setting `suppressEncryption` we can prevent an infinite loop inside\n      // of `XRef_fetchUncompressed` if the dictionary contains indirect\n      // objects (fixes issue7665.pdf).\n      encrypt.suppressEncryption = true;\n      this.encrypt = new CipherTransformFactory(\n        encrypt,\n        fileId,\n        this.pdfManager.password\n      );\n    }\n\n    // Get the root dictionary (catalog) object, and do some basic validation.\n    let root;\n    try {\n      root = trailerDict.get(\"Root\");\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(`XRef.parse - Invalid \"Root\" reference: \"${ex}\".`);\n    }\n    if (root instanceof Dict) {\n      try {\n        const pages = root.get(\"Pages\");\n        if (pages instanceof Dict) {\n          this.root = root;\n          return;\n        }\n      } catch (ex) {\n        if (ex instanceof MissingDataException) {\n          throw ex;\n        }\n        warn(`XRef.parse - Invalid \"Pages\" reference: \"${ex}\".`);\n      }\n    }\n\n    if (!recoveryMode) {\n      throw new XRefParseException();\n    }\n    // Even recovery failed, there's nothing more we can do here.\n    throw new InvalidPDFException(\"Invalid Root reference.\");\n  }\n\n  processXRefTable(parser) {\n    if (!(\"tableState\" in this)) {\n      // Stores state of the table as we process it so we can resume\n      // from middle of table in case of missing data error\n      this.tableState = {\n        entryNum: 0,\n        streamPos: parser.lexer.stream.pos,\n        parserBuf1: parser.buf1,\n        parserBuf2: parser.buf2,\n      };\n    }\n\n    const obj = this.readXRefTable(parser);\n\n    // Sanity check\n    if (!isCmd(obj, \"trailer\")) {\n      throw new FormatError(\n        \"Invalid XRef table: could not find trailer dictionary\"\n      );\n    }\n    // Read trailer dictionary, e.g.\n    // trailer\n    //    << /Size 22\n    //      /Root 20R\n    //      /Info 10R\n    //      /ID [ <81b14aafa313db63dbd6f981e49f94f4> ]\n    //    >>\n    // The parser goes through the entire stream << ... >> and provides\n    // a getter interface for the key-value table\n    let dict = parser.getObj();\n\n    // The pdflib PDF generator can generate a nested trailer dictionary\n    if (!(dict instanceof Dict) && dict.dict) {\n      dict = dict.dict;\n    }\n    if (!(dict instanceof Dict)) {\n      throw new FormatError(\n        \"Invalid XRef table: could not parse trailer dictionary\"\n      );\n    }\n    delete this.tableState;\n\n    return dict;\n  }\n\n  readXRefTable(parser) {\n    // Example of cross-reference table:\n    // xref\n    // 0 1                    <-- subsection header (first obj #, obj count)\n    // 0000000000 65535 f     <-- actual object (offset, generation #, f/n)\n    // 23 2                   <-- subsection header ... and so on ...\n    // 0000025518 00002 n\n    // 0000025635 00000 n\n    // trailer\n    // ...\n\n    const stream = parser.lexer.stream;\n    const tableState = this.tableState;\n    stream.pos = tableState.streamPos;\n    parser.buf1 = tableState.parserBuf1;\n    parser.buf2 = tableState.parserBuf2;\n\n    // Outer loop is over subsection headers\n    let obj;\n\n    while (true) {\n      if (!(\"firstEntryNum\" in tableState) || !(\"entryCount\" in tableState)) {\n        if (isCmd((obj = parser.getObj()), \"trailer\")) {\n          break;\n        }\n        tableState.firstEntryNum = obj;\n        tableState.entryCount = parser.getObj();\n      }\n\n      let first = tableState.firstEntryNum;\n      const count = tableState.entryCount;\n      if (!Number.isInteger(first) || !Number.isInteger(count)) {\n        throw new FormatError(\n          \"Invalid XRef table: wrong types in subsection header\"\n        );\n      }\n      // Inner loop is over objects themselves\n      for (let i = tableState.entryNum; i < count; i++) {\n        tableState.streamPos = stream.pos;\n        tableState.entryNum = i;\n        tableState.parserBuf1 = parser.buf1;\n        tableState.parserBuf2 = parser.buf2;\n\n        const entry = {};\n        entry.offset = parser.getObj();\n        entry.gen = parser.getObj();\n        const type = parser.getObj();\n\n        if (type instanceof Cmd) {\n          switch (type.cmd) {\n            case \"f\":\n              entry.free = true;\n              break;\n            case \"n\":\n              entry.uncompressed = true;\n              break;\n          }\n        }\n\n        // Validate entry obj\n        if (\n          !Number.isInteger(entry.offset) ||\n          !Number.isInteger(entry.gen) ||\n          !(entry.free || entry.uncompressed)\n        ) {\n          throw new FormatError(\n            `Invalid entry in XRef subsection: ${first}, ${count}`\n          );\n        }\n\n        // The first xref table entry, i.e. obj 0, should be free. Attempting\n        // to adjust an incorrect first obj # (fixes issue 3248 and 7229).\n        if (i === 0 && entry.free && first === 1) {\n          first = 0;\n        }\n\n        if (!this.entries[i + first]) {\n          this.entries[i + first] = entry;\n        }\n      }\n\n      tableState.entryNum = 0;\n      tableState.streamPos = stream.pos;\n      tableState.parserBuf1 = parser.buf1;\n      tableState.parserBuf2 = parser.buf2;\n      delete tableState.firstEntryNum;\n      delete tableState.entryCount;\n    }\n\n    // Sanity check: as per spec, first object must be free\n    if (this.entries[0] && !this.entries[0].free) {\n      throw new FormatError(\"Invalid XRef table: unexpected first object\");\n    }\n    return obj;\n  }\n\n  processXRefStream(stream) {\n    if (!(\"streamState\" in this)) {\n      // Stores state of the stream as we process it so we can resume\n      // from middle of stream in case of missing data error\n      const streamParameters = stream.dict;\n      const byteWidths = streamParameters.get(\"W\");\n      let range = streamParameters.get(\"Index\");\n      if (!range) {\n        range = [0, streamParameters.get(\"Size\")];\n      }\n\n      this.streamState = {\n        entryRanges: range,\n        byteWidths,\n        entryNum: 0,\n        streamPos: stream.pos,\n      };\n    }\n    this.readXRefStream(stream);\n    delete this.streamState;\n\n    return stream.dict;\n  }\n\n  readXRefStream(stream) {\n    const streamState = this.streamState;\n    stream.pos = streamState.streamPos;\n\n    const [typeFieldWidth, offsetFieldWidth, generationFieldWidth] =\n      streamState.byteWidths;\n\n    const entryRanges = streamState.entryRanges;\n    while (entryRanges.length > 0) {\n      const [first, n] = entryRanges;\n\n      if (!Number.isInteger(first) || !Number.isInteger(n)) {\n        throw new FormatError(`Invalid XRef range fields: ${first}, ${n}`);\n      }\n      if (\n        !Number.isInteger(typeFieldWidth) ||\n        !Number.isInteger(offsetFieldWidth) ||\n        !Number.isInteger(generationFieldWidth)\n      ) {\n        throw new FormatError(\n          `Invalid XRef entry fields length: ${first}, ${n}`\n        );\n      }\n      for (let i = streamState.entryNum; i < n; ++i) {\n        streamState.entryNum = i;\n        streamState.streamPos = stream.pos;\n\n        let type = 0,\n          offset = 0,\n          generation = 0;\n        for (let j = 0; j < typeFieldWidth; ++j) {\n          const typeByte = stream.getByte();\n          if (typeByte === -1) {\n            throw new FormatError(\"Invalid XRef byteWidths 'type'.\");\n          }\n          type = (type << 8) | typeByte;\n        }\n        // if type field is absent, its default value is 1\n        if (typeFieldWidth === 0) {\n          type = 1;\n        }\n        for (let j = 0; j < offsetFieldWidth; ++j) {\n          const offsetByte = stream.getByte();\n          if (offsetByte === -1) {\n            throw new FormatError(\"Invalid XRef byteWidths 'offset'.\");\n          }\n          offset = (offset << 8) | offsetByte;\n        }\n        for (let j = 0; j < generationFieldWidth; ++j) {\n          const generationByte = stream.getByte();\n          if (generationByte === -1) {\n            throw new FormatError(\"Invalid XRef byteWidths 'generation'.\");\n          }\n          generation = (generation << 8) | generationByte;\n        }\n        const entry = {};\n        entry.offset = offset;\n        entry.gen = generation;\n        switch (type) {\n          case 0:\n            entry.free = true;\n            break;\n          case 1:\n            entry.uncompressed = true;\n            break;\n          case 2:\n            break;\n          default:\n            throw new FormatError(`Invalid XRef entry type: ${type}`);\n        }\n        if (!this.entries[first + i]) {\n          this.entries[first + i] = entry;\n        }\n      }\n\n      streamState.entryNum = 0;\n      streamState.streamPos = stream.pos;\n      entryRanges.splice(0, 2);\n    }\n  }\n\n  indexObjects() {\n    // Simple scan through the PDF content to find objects,\n    // trailers and XRef streams.\n    const TAB = 0x9,\n      LF = 0xa,\n      CR = 0xd,\n      SPACE = 0x20;\n    const PERCENT = 0x25,\n      LT = 0x3c;\n\n    function readToken(data, offset) {\n      let token = \"\",\n        ch = data[offset];\n      while (ch !== LF && ch !== CR && ch !== LT) {\n        if (++offset >= data.length) {\n          break;\n        }\n        token += String.fromCharCode(ch);\n        ch = data[offset];\n      }\n      return token;\n    }\n    function skipUntil(data, offset, what) {\n      const length = what.length,\n        dataLength = data.length;\n      let skipped = 0;\n      // finding byte sequence\n      while (offset < dataLength) {\n        let i = 0;\n        while (i < length && data[offset + i] === what[i]) {\n          ++i;\n        }\n        if (i >= length) {\n          break; // sequence found\n        }\n        offset++;\n        skipped++;\n      }\n      return skipped;\n    }\n    const gEndobjRegExp = /\\b(endobj|\\d+\\s+\\d+\\s+obj|xref|trailer\\s*<<)\\b/g;\n    const gStartxrefRegExp = /\\b(startxref|\\d+\\s+\\d+\\s+obj)\\b/g;\n    const objRegExp = /^(\\d+)\\s+(\\d+)\\s+obj\\b/;\n\n    const trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]);\n    const startxrefBytes = new Uint8Array([\n      115, 116, 97, 114, 116, 120, 114, 101, 102,\n    ]);\n    const xrefBytes = new Uint8Array([47, 88, 82, 101, 102]);\n\n    // Clear out any existing entries, since they may be bogus.\n    this.entries.length = 0;\n    this._cacheMap.clear();\n\n    const stream = this.stream;\n    stream.pos = 0;\n    const buffer = stream.getBytes(),\n      bufferStr = bytesToString(buffer),\n      length = buffer.length;\n    let position = stream.start;\n    const trailers = [],\n      xrefStms = [];\n    while (position < length) {\n      let ch = buffer[position];\n      if (ch === TAB || ch === LF || ch === CR || ch === SPACE) {\n        ++position;\n        continue;\n      }\n      if (ch === PERCENT) {\n        // %-comment\n        do {\n          ++position;\n          if (position >= length) {\n            break;\n          }\n          ch = buffer[position];\n        } while (ch !== LF && ch !== CR);\n        continue;\n      }\n      const token = readToken(buffer, position);\n      let m;\n      if (\n        token.startsWith(\"xref\") &&\n        (token.length === 4 || /\\s/.test(token[4]))\n      ) {\n        position += skipUntil(buffer, position, trailerBytes);\n        trailers.push(position);\n        position += skipUntil(buffer, position, startxrefBytes);\n      } else if ((m = objRegExp.exec(token))) {\n        const num = m[1] | 0,\n          gen = m[2] | 0;\n\n        const startPos = position + token.length;\n        let contentLength,\n          updateEntries = false;\n        if (!this.entries[num]) {\n          updateEntries = true;\n        } else if (this.entries[num].gen === gen) {\n          // Before overwriting an existing entry, ensure that the new one won't\n          // cause *immediate* errors when it's accessed (fixes issue13783.pdf).\n          try {\n            const parser = new Parser({\n              lexer: new Lexer(stream.makeSubStream(startPos)),\n            });\n            parser.getObj();\n            updateEntries = true;\n          } catch (ex) {\n            if (ex instanceof ParserEOFException) {\n              warn(`indexObjects -- checking object (${token}): \"${ex}\".`);\n            } else {\n              // The error may come from the `Parser`-instance being initialized\n              // without an `XRef`-instance (we don't have a usable one yet).\n              updateEntries = true;\n            }\n          }\n        }\n        if (updateEntries) {\n          this.entries[num] = {\n            offset: position - stream.start,\n            gen,\n            uncompressed: true,\n          };\n        }\n\n        // Find the next \"obj\" string, rather than \"endobj\", to ensure that\n        // we won't skip over a new 'obj' operator in corrupt files where\n        // 'endobj' operators are missing (fixes issue9105_reduced.pdf).\n        gEndobjRegExp.lastIndex = startPos;\n        const match = gEndobjRegExp.exec(bufferStr);\n\n        if (match) {\n          const endPos = gEndobjRegExp.lastIndex + 1;\n          contentLength = endPos - position;\n\n          if (match[1] !== \"endobj\") {\n            warn(\n              `indexObjects: Found \"${match[1]}\" inside of another \"obj\", ` +\n                'caused by missing \"endobj\" -- trying to recover.'\n            );\n            contentLength -= match[1].length + 1;\n          }\n        } else {\n          contentLength = length - position;\n        }\n        const content = buffer.subarray(position, position + contentLength);\n\n        // checking XRef stream suspect\n        // (it shall have '/XRef' and next char is not a letter)\n        const xrefTagOffset = skipUntil(content, 0, xrefBytes);\n        if (xrefTagOffset < contentLength && content[xrefTagOffset + 5] < 64) {\n          xrefStms.push(position - stream.start);\n          this._xrefStms.add(position - stream.start); // Avoid recursion\n        }\n\n        position += contentLength;\n      } else if (\n        token.startsWith(\"trailer\") &&\n        (token.length === 7 || /\\s/.test(token[7]))\n      ) {\n        trailers.push(position);\n\n        const startPos = position + token.length;\n        let contentLength;\n        // Attempt to handle (some) corrupt documents, where no 'startxref'\n        // operators are present (fixes issue15590.pdf).\n        gStartxrefRegExp.lastIndex = startPos;\n        const match = gStartxrefRegExp.exec(bufferStr);\n\n        if (match) {\n          const endPos = gStartxrefRegExp.lastIndex + 1;\n          contentLength = endPos - position;\n\n          if (match[1] !== \"startxref\") {\n            warn(\n              `indexObjects: Found \"${match[1]}\" after \"trailer\", ` +\n                'caused by missing \"startxref\" -- trying to recover.'\n            );\n            contentLength -= match[1].length + 1;\n          }\n        } else {\n          contentLength = length - position;\n        }\n        position += contentLength;\n      } else {\n        position += token.length + 1;\n      }\n    }\n    // reading XRef streams\n    for (const xrefStm of xrefStms) {\n      this.startXRefQueue.push(xrefStm);\n      this.readXRef(/* recoveryMode */ true);\n    }\n\n    const trailerDicts = [];\n    // Pre-parsing the trailers to check if the document is possibly encrypted.\n    let isEncrypted = false;\n    for (const trailer of trailers) {\n      stream.pos = trailer;\n      const parser = new Parser({\n        lexer: new Lexer(stream),\n        xref: this,\n        allowStreams: true,\n        recoveryMode: true,\n      });\n      const obj = parser.getObj();\n      if (!isCmd(obj, \"trailer\")) {\n        continue;\n      }\n      // read the trailer dictionary\n      const dict = parser.getObj();\n      if (!(dict instanceof Dict)) {\n        continue;\n      }\n      trailerDicts.push(dict);\n\n      if (dict.has(\"Encrypt\")) {\n        isEncrypted = true;\n      }\n    }\n\n    // finding main trailer\n    let trailerDict, trailerError;\n    for (const dict of [...trailerDicts, \"genFallback\", ...trailerDicts]) {\n      if (dict === \"genFallback\") {\n        if (!trailerError) {\n          break; // No need to fallback if there were no validation errors.\n        }\n        this._generationFallback = true;\n        continue;\n      }\n      // Do some basic validation of the trailer/root dictionary candidate.\n      let validPagesDict = false;\n      try {\n        const rootDict = dict.get(\"Root\");\n        if (!(rootDict instanceof Dict)) {\n          continue;\n        }\n        const pagesDict = rootDict.get(\"Pages\");\n        if (!(pagesDict instanceof Dict)) {\n          continue;\n        }\n        const pagesCount = pagesDict.get(\"Count\");\n        if (Number.isInteger(pagesCount)) {\n          validPagesDict = true;\n        }\n        // The top-level /Pages dictionary isn't obviously corrupt.\n      } catch (ex) {\n        trailerError = ex;\n        continue;\n      }\n      // taking the first one with 'ID'\n      if (\n        validPagesDict &&\n        (!isEncrypted || dict.has(\"Encrypt\")) &&\n        dict.has(\"ID\")\n      ) {\n        return dict;\n      }\n      // The current dictionary is a candidate, but continue searching.\n      trailerDict = dict;\n    }\n    // No trailer with 'ID', taking last one (if exists).\n    if (trailerDict) {\n      return trailerDict;\n    }\n    // No trailer dictionary found, taking the \"top\"-dictionary (if exists).\n    if (this.topDict) {\n      return this.topDict;\n    }\n    // nothing helps\n    throw new InvalidPDFException(\"Invalid PDF structure.\");\n  }\n\n  readXRef(recoveryMode = false) {\n    const stream = this.stream;\n    // Keep track of already parsed XRef tables, to prevent an infinite loop\n    // when parsing corrupt PDF files where e.g. the /Prev entries create a\n    // circular dependency between tables (fixes bug1393476.pdf).\n    const startXRefParsedCache = new Set();\n\n    while (this.startXRefQueue.length) {\n      try {\n        const startXRef = this.startXRefQueue[0];\n\n        if (startXRefParsedCache.has(startXRef)) {\n          warn(\"readXRef - skipping XRef table since it was already parsed.\");\n          this.startXRefQueue.shift();\n          continue;\n        }\n        startXRefParsedCache.add(startXRef);\n\n        stream.pos = startXRef + stream.start;\n\n        const parser = new Parser({\n          lexer: new Lexer(stream),\n          xref: this,\n          allowStreams: true,\n        });\n        let obj = parser.getObj();\n        let dict;\n\n        // Get dictionary\n        if (isCmd(obj, \"xref\")) {\n          // Parse end-of-file XRef\n          dict = this.processXRefTable(parser);\n          if (!this.topDict) {\n            this.topDict = dict;\n          }\n\n          // Recursively get other XRefs 'XRefStm', if any\n          obj = dict.get(\"XRefStm\");\n          if (Number.isInteger(obj) && !this._xrefStms.has(obj)) {\n            // ignore previously loaded xref streams\n            // (possible infinite recursion)\n            this._xrefStms.add(obj);\n            this.startXRefQueue.push(obj);\n            this.#firstXRefStmPos ??= obj;\n          }\n        } else if (Number.isInteger(obj)) {\n          // Parse in-stream XRef\n          if (\n            !Number.isInteger(parser.getObj()) ||\n            !isCmd(parser.getObj(), \"obj\") ||\n            !((obj = parser.getObj()) instanceof BaseStream)\n          ) {\n            throw new FormatError(\"Invalid XRef stream\");\n          }\n          dict = this.processXRefStream(obj);\n          if (!this.topDict) {\n            this.topDict = dict;\n          }\n          if (!dict) {\n            throw new FormatError(\"Failed to read XRef stream\");\n          }\n        } else {\n          throw new FormatError(\"Invalid XRef stream header\");\n        }\n\n        // Recursively get previous dictionary, if any\n        obj = dict.get(\"Prev\");\n        if (Number.isInteger(obj)) {\n          this.startXRefQueue.push(obj);\n        } else if (obj instanceof Ref) {\n          // The spec says Prev must not be a reference, i.e. \"/Prev NNN\"\n          // This is a fallback for non-compliant PDFs, i.e. \"/Prev NNN 0 R\"\n          this.startXRefQueue.push(obj.num);\n        }\n      } catch (e) {\n        if (e instanceof MissingDataException) {\n          throw e;\n        }\n        info(\"(while reading XRef): \" + e);\n      }\n      this.startXRefQueue.shift();\n    }\n\n    if (this.topDict) {\n      return this.topDict;\n    }\n    if (recoveryMode) {\n      return undefined;\n    }\n    throw new XRefParseException();\n  }\n\n  get lastXRefStreamPos() {\n    return (\n      this.#firstXRefStmPos ??\n      (this._xrefStms.size > 0 ? Math.max(...this._xrefStms) : null)\n    );\n  }\n\n  getEntry(i) {\n    const xrefEntry = this.entries[i];\n    if (xrefEntry && !xrefEntry.free && xrefEntry.offset) {\n      return xrefEntry;\n    }\n    return null;\n  }\n\n  fetchIfRef(obj, suppressEncryption = false) {\n    if (obj instanceof Ref) {\n      return this.fetch(obj, suppressEncryption);\n    }\n    return obj;\n  }\n\n  fetch(ref, suppressEncryption = false) {\n    if (!(ref instanceof Ref)) {\n      throw new Error(\"ref object is not a reference\");\n    }\n    const num = ref.num;\n\n    // The XRef cache is populated with objects which are obtained through\n    // `Parser.getObj`, and indirectly via `Lexer.getObj`. Neither of these\n    // methods should ever return `undefined` (note the `assert` calls below).\n    const cacheEntry = this._cacheMap.get(num);\n    if (cacheEntry !== undefined) {\n      // In documents with Object Streams, it's possible that cached `Dict`s\n      // have not been assigned an `objId` yet (see e.g. issue3115r.pdf).\n      if (cacheEntry instanceof Dict && !cacheEntry.objId) {\n        cacheEntry.objId = ref.toString();\n      }\n      return cacheEntry;\n    }\n    let xrefEntry = this.getEntry(num);\n\n    if (xrefEntry === null) {\n      // The referenced entry can be free.\n      this._cacheMap.set(num, xrefEntry);\n      return xrefEntry;\n    }\n    // Prevent circular references, in corrupt PDF documents, from hanging the\n    // worker-thread. This relies, implicitly, on the parsing being synchronous.\n    if (this._pendingRefs.has(ref)) {\n      this._pendingRefs.remove(ref);\n\n      warn(`Ignoring circular reference: ${ref}.`);\n      return CIRCULAR_REF;\n    }\n    this._pendingRefs.put(ref);\n\n    try {\n      xrefEntry = xrefEntry.uncompressed\n        ? this.fetchUncompressed(ref, xrefEntry, suppressEncryption)\n        : this.fetchCompressed(ref, xrefEntry, suppressEncryption);\n      this._pendingRefs.remove(ref);\n    } catch (ex) {\n      this._pendingRefs.remove(ref);\n      throw ex;\n    }\n    if (xrefEntry instanceof Dict) {\n      xrefEntry.objId = ref.toString();\n    } else if (xrefEntry instanceof BaseStream) {\n      xrefEntry.dict.objId = ref.toString();\n    }\n    return xrefEntry;\n  }\n\n  fetchUncompressed(ref, xrefEntry, suppressEncryption = false) {\n    const gen = ref.gen;\n    let num = ref.num;\n    if (xrefEntry.gen !== gen) {\n      const msg = `Inconsistent generation in XRef: ${ref}`;\n      // Try falling back to a *previous* generation (fixes issue15577.pdf).\n      if (this._generationFallback && xrefEntry.gen < gen) {\n        warn(msg);\n        return this.fetchUncompressed(\n          Ref.get(num, xrefEntry.gen),\n          xrefEntry,\n          suppressEncryption\n        );\n      }\n      throw new XRefEntryException(msg);\n    }\n    const stream = this.stream.makeSubStream(\n      xrefEntry.offset + this.stream.start\n    );\n    const parser = new Parser({\n      lexer: new Lexer(stream),\n      xref: this,\n      allowStreams: true,\n    });\n    const obj1 = parser.getObj();\n    const obj2 = parser.getObj();\n    const obj3 = parser.getObj();\n\n    if (obj1 !== num || obj2 !== gen || !(obj3 instanceof Cmd)) {\n      throw new XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n    }\n    if (obj3.cmd !== \"obj\") {\n      // some bad PDFs use \"obj1234\" and really mean 1234\n      if (obj3.cmd.startsWith(\"obj\")) {\n        num = parseInt(obj3.cmd.substring(3), 10);\n        if (!Number.isNaN(num)) {\n          return num;\n        }\n      }\n      throw new XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n    }\n    xrefEntry =\n      this.encrypt && !suppressEncryption\n        ? parser.getObj(this.encrypt.createCipherTransform(num, gen))\n        : parser.getObj();\n    if (!(xrefEntry instanceof BaseStream)) {\n      if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n        assert(\n          xrefEntry !== undefined,\n          'fetchUncompressed: The \"xrefEntry\" cannot be undefined.'\n        );\n      }\n      this._cacheMap.set(num, xrefEntry);\n    }\n    return xrefEntry;\n  }\n\n  fetchCompressed(ref, xrefEntry, suppressEncryption = false) {\n    const tableOffset = xrefEntry.offset;\n    const stream = this.fetch(Ref.get(tableOffset, 0));\n    if (!(stream instanceof BaseStream)) {\n      throw new FormatError(\"bad ObjStm stream\");\n    }\n    const first = stream.dict.get(\"First\");\n    const n = stream.dict.get(\"N\");\n    if (!Number.isInteger(first) || !Number.isInteger(n)) {\n      throw new FormatError(\"invalid first and n parameters for ObjStm stream\");\n    }\n    let parser = new Parser({\n      lexer: new Lexer(stream),\n      xref: this,\n      allowStreams: true,\n    });\n    const nums = new Array(n);\n    const offsets = new Array(n);\n    // read the object numbers to populate cache\n    for (let i = 0; i < n; ++i) {\n      const num = parser.getObj();\n      if (!Number.isInteger(num)) {\n        throw new FormatError(\n          `invalid object number in the ObjStm stream: ${num}`\n        );\n      }\n      const offset = parser.getObj();\n      if (!Number.isInteger(offset)) {\n        throw new FormatError(\n          `invalid object offset in the ObjStm stream: ${offset}`\n        );\n      }\n      nums[i] = num;\n      offsets[i] = offset;\n    }\n\n    const start = (stream.start || 0) + first;\n    const entries = new Array(n);\n    // read stream objects for cache\n    for (let i = 0; i < n; ++i) {\n      const length = i < n - 1 ? offsets[i + 1] - offsets[i] : undefined;\n      if (length < 0) {\n        throw new FormatError(\"Invalid offset in the ObjStm stream.\");\n      }\n      parser = new Parser({\n        lexer: new Lexer(\n          stream.makeSubStream(start + offsets[i], length, stream.dict)\n        ),\n        xref: this,\n        allowStreams: true,\n      });\n\n      const obj = parser.getObj();\n      entries[i] = obj;\n      if (obj instanceof BaseStream) {\n        continue;\n      }\n      const num = nums[i],\n        entry = this.entries[num];\n      if (entry && entry.offset === tableOffset && entry.gen === i) {\n        if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n          assert(\n            obj !== undefined,\n            'fetchCompressed: The \"obj\" cannot be undefined.'\n          );\n        }\n        this._cacheMap.set(num, obj);\n      }\n    }\n    xrefEntry = entries[xrefEntry.gen];\n    if (xrefEntry === undefined) {\n      throw new XRefEntryException(`Bad (compressed) XRef entry: ${ref}`);\n    }\n    return xrefEntry;\n  }\n\n  async fetchIfRefAsync(obj, suppressEncryption) {\n    if (obj instanceof Ref) {\n      return this.fetchAsync(obj, suppressEncryption);\n    }\n    return obj;\n  }\n\n  async fetchAsync(ref, suppressEncryption) {\n    try {\n      return this.fetch(ref, suppressEncryption);\n    } catch (ex) {\n      if (!(ex instanceof MissingDataException)) {\n        throw ex;\n      }\n      await this.pdfManager.requestRange(ex.begin, ex.end);\n      return this.fetchAsync(ref, suppressEncryption);\n    }\n  }\n\n  getCatalogObj() {\n    return this.root;\n  }\n}\n\nexport { XRef };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  AnnotationEditorPrefix,\n  assert,\n  FormatError,\n  info,\n  InvalidPDFException,\n  isArrayEqual,\n  PageActionEventType,\n  RenderingIntentFlag,\n  shadow,\n  stringToBytes,\n  stringToPDFString,\n  stringToUTF8String,\n  unreachable,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport { AnnotationFactory, PopupAnnotation } from \"./annotation.js\";\nimport {\n  collectActions,\n  getInheritableProperty,\n  getNewAnnotationsMap,\n  isWhiteSpace,\n  MissingDataException,\n  PDF_VERSION_REGEXP,\n  validateCSSFont,\n  XRefEntryException,\n  XRefParseException,\n} from \"./core_utils.js\";\nimport { Dict, isName, isRefsEqual, Name, Ref, RefSet } from \"./primitives.js\";\nimport { getXfaFontDict, getXfaFontName } from \"./xfa_fonts.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { calculateMD5 } from \"./crypto.js\";\nimport { Catalog } from \"./catalog.js\";\nimport { clearGlobalCaches } from \"./cleanup_helper.js\";\nimport { DatasetReader } from \"./dataset_reader.js\";\nimport { Linearization } from \"./parser.js\";\nimport { NullStream } from \"./stream.js\";\nimport { ObjectLoader } from \"./object_loader.js\";\nimport { OperatorList } from \"./operator_list.js\";\nimport { PartialEvaluator } from \"./evaluator.js\";\nimport { StreamsSequenceStream } from \"./decode_stream.js\";\nimport { StructTreePage } from \"./struct_tree.js\";\nimport { writeObject } from \"./writer.js\";\nimport { XFAFactory } from \"./xfa/factory.js\";\nimport { XRef } from \"./xref.js\";\n\nconst DEFAULT_USER_UNIT = 1.0;\nconst LETTER_SIZE_MEDIABOX = [0, 0, 612, 792];\n\nclass Page {\n  constructor({\n    pdfManager,\n    xref,\n    pageIndex,\n    pageDict,\n    ref,\n    globalIdFactory,\n    fontCache,\n    builtInCMapCache,\n    standardFontDataCache,\n    globalImageCache,\n    systemFontCache,\n    nonBlendModesSet,\n    xfaFactory,\n  }) {\n    this.pdfManager = pdfManager;\n    this.pageIndex = pageIndex;\n    this.pageDict = pageDict;\n    this.xref = xref;\n    this.ref = ref;\n    this.fontCache = fontCache;\n    this.builtInCMapCache = builtInCMapCache;\n    this.standardFontDataCache = standardFontDataCache;\n    this.globalImageCache = globalImageCache;\n    this.systemFontCache = systemFontCache;\n    this.nonBlendModesSet = nonBlendModesSet;\n    this.evaluatorOptions = pdfManager.evaluatorOptions;\n    this.resourcesPromise = null;\n    this.xfaFactory = xfaFactory;\n\n    const idCounters = {\n      obj: 0,\n    };\n    this._localIdFactory = class extends globalIdFactory {\n      static createObjId() {\n        return `p${pageIndex}_${++idCounters.obj}`;\n      }\n\n      static getPageObjId() {\n        return `p${ref.toString()}`;\n      }\n    };\n  }\n\n  /**\n   * @private\n   */\n  _getInheritableProperty(key, getArray = false) {\n    const value = getInheritableProperty({\n      dict: this.pageDict,\n      key,\n      getArray,\n      stopWhenFound: false,\n    });\n    if (!Array.isArray(value)) {\n      return value;\n    }\n    if (value.length === 1 || !(value[0] instanceof Dict)) {\n      return value[0];\n    }\n    return Dict.merge({ xref: this.xref, dictArray: value });\n  }\n\n  get content() {\n    return this.pageDict.getArray(\"Contents\");\n  }\n\n  get resources() {\n    // For robustness: The spec states that a \\Resources entry has to be\n    // present, but can be empty. Some documents still omit it; in this case\n    // we return an empty dictionary.\n    const resources = this._getInheritableProperty(\"Resources\");\n\n    return shadow(\n      this,\n      \"resources\",\n      resources instanceof Dict ? resources : Dict.empty\n    );\n  }\n\n  _getBoundingBox(name) {\n    if (this.xfaData) {\n      return this.xfaData.bbox;\n    }\n    let box = this._getInheritableProperty(name, /* getArray = */ true);\n\n    if (Array.isArray(box) && box.length === 4) {\n      box = Util.normalizeRect(box);\n      if (box[2] - box[0] > 0 && box[3] - box[1] > 0) {\n        return box;\n      }\n      warn(`Empty, or invalid, /${name} entry.`);\n    }\n    return null;\n  }\n\n  get mediaBox() {\n    // Reset invalid media box to letter size.\n    return shadow(\n      this,\n      \"mediaBox\",\n      this._getBoundingBox(\"MediaBox\") || LETTER_SIZE_MEDIABOX\n    );\n  }\n\n  get cropBox() {\n    // Reset invalid crop box to media box.\n    return shadow(\n      this,\n      \"cropBox\",\n      this._getBoundingBox(\"CropBox\") || this.mediaBox\n    );\n  }\n\n  get userUnit() {\n    let obj = this.pageDict.get(\"UserUnit\");\n    if (typeof obj !== \"number\" || obj <= 0) {\n      obj = DEFAULT_USER_UNIT;\n    }\n    return shadow(this, \"userUnit\", obj);\n  }\n\n  get view() {\n    // From the spec, 6th ed., p.963:\n    // \"The crop, bleed, trim, and art boxes should not ordinarily\n    // extend beyond the boundaries of the media box. If they do, they are\n    // effectively reduced to their intersection with the media box.\"\n    const { cropBox, mediaBox } = this;\n\n    if (cropBox !== mediaBox && !isArrayEqual(cropBox, mediaBox)) {\n      const box = Util.intersect(cropBox, mediaBox);\n      if (box && box[2] - box[0] > 0 && box[3] - box[1] > 0) {\n        return shadow(this, \"view\", box);\n      }\n      warn(\"Empty /CropBox and /MediaBox intersection.\");\n    }\n    return shadow(this, \"view\", mediaBox);\n  }\n\n  get rotate() {\n    let rotate = this._getInheritableProperty(\"Rotate\") || 0;\n\n    // Normalize rotation so it's a multiple of 90 and between 0 and 270.\n    if (rotate % 90 !== 0) {\n      rotate = 0;\n    } else if (rotate >= 360) {\n      rotate %= 360;\n    } else if (rotate < 0) {\n      // The spec doesn't cover negatives. Assume it's counterclockwise\n      // rotation. The following is the other implementation of modulo.\n      rotate = ((rotate % 360) + 360) % 360;\n    }\n    return shadow(this, \"rotate\", rotate);\n  }\n\n  /**\n   * @private\n   */\n  _onSubStreamError(reason, objId) {\n    if (this.evaluatorOptions.ignoreErrors) {\n      warn(`getContentStream - ignoring sub-stream (${objId}): \"${reason}\".`);\n      return;\n    }\n    throw reason;\n  }\n\n  /**\n   * @returns {Promise<BaseStream>}\n   */\n  getContentStream() {\n    return this.pdfManager.ensure(this, \"content\").then(content => {\n      if (content instanceof BaseStream) {\n        return content;\n      }\n      if (Array.isArray(content)) {\n        return new StreamsSequenceStream(\n          content,\n          this._onSubStreamError.bind(this)\n        );\n      }\n      // Replace non-existent page content with empty content.\n      return new NullStream();\n    });\n  }\n\n  get xfaData() {\n    return shadow(\n      this,\n      \"xfaData\",\n      this.xfaFactory\n        ? { bbox: this.xfaFactory.getBoundingBox(this.pageIndex) }\n        : null\n    );\n  }\n\n  #replaceIdByRef(annotations, deletedAnnotations, existingAnnotations) {\n    for (const annotation of annotations) {\n      if (annotation.id) {\n        const ref = Ref.fromString(annotation.id);\n        if (!ref) {\n          warn(`A non-linked annotation cannot be modified: ${annotation.id}`);\n          continue;\n        }\n        if (annotation.deleted) {\n          deletedAnnotations.put(ref);\n          continue;\n        }\n        existingAnnotations?.put(ref);\n        annotation.ref = ref;\n        delete annotation.id;\n      }\n    }\n  }\n\n  async saveNewAnnotations(handler, task, annotations, imagePromises) {\n    if (this.xfaFactory) {\n      throw new Error(\"XFA: Cannot save new annotations.\");\n    }\n\n    const partialEvaluator = new PartialEvaluator({\n      xref: this.xref,\n      handler,\n      pageIndex: this.pageIndex,\n      idFactory: this._localIdFactory,\n      fontCache: this.fontCache,\n      builtInCMapCache: this.builtInCMapCache,\n      standardFontDataCache: this.standardFontDataCache,\n      globalImageCache: this.globalImageCache,\n      systemFontCache: this.systemFontCache,\n      options: this.evaluatorOptions,\n    });\n\n    const deletedAnnotations = new RefSet();\n    const existingAnnotations = new RefSet();\n    this.#replaceIdByRef(annotations, deletedAnnotations, existingAnnotations);\n\n    const pageDict = this.pageDict;\n    const annotationsArray = this.annotations.filter(\n      a => !(a instanceof Ref && deletedAnnotations.has(a))\n    );\n    const newData = await AnnotationFactory.saveNewAnnotations(\n      partialEvaluator,\n      task,\n      annotations,\n      imagePromises\n    );\n\n    for (const { ref } of newData.annotations) {\n      // Don't add an existing annotation ref to the annotations array.\n      if (ref instanceof Ref && !existingAnnotations.has(ref)) {\n        annotationsArray.push(ref);\n      }\n    }\n\n    const savedDict = pageDict.get(\"Annots\");\n    pageDict.set(\"Annots\", annotationsArray);\n    const buffer = [];\n    await writeObject(this.ref, pageDict, buffer, this.xref);\n    if (savedDict) {\n      pageDict.set(\"Annots\", savedDict);\n    }\n\n    const objects = newData.dependencies;\n    objects.push(\n      { ref: this.ref, data: buffer.join(\"\") },\n      ...newData.annotations\n    );\n\n    return objects;\n  }\n\n  save(handler, task, annotationStorage) {\n    const partialEvaluator = new PartialEvaluator({\n      xref: this.xref,\n      handler,\n      pageIndex: this.pageIndex,\n      idFactory: this._localIdFactory,\n      fontCache: this.fontCache,\n      builtInCMapCache: this.builtInCMapCache,\n      standardFontDataCache: this.standardFontDataCache,\n      globalImageCache: this.globalImageCache,\n      systemFontCache: this.systemFontCache,\n      options: this.evaluatorOptions,\n    });\n\n    // Fetch the page's annotations and save the content\n    // in case of interactive form fields.\n    return this._parsedAnnotations.then(function (annotations) {\n      const newRefsPromises = [];\n      for (const annotation of annotations) {\n        if (!annotation.mustBePrinted(annotationStorage)) {\n          continue;\n        }\n        newRefsPromises.push(\n          annotation\n            .save(partialEvaluator, task, annotationStorage)\n            .catch(function (reason) {\n              warn(\n                \"save - ignoring annotation data during \" +\n                  `\"${task.name}\" task: \"${reason}\".`\n              );\n              return null;\n            })\n        );\n      }\n\n      return Promise.all(newRefsPromises).then(function (newRefs) {\n        return newRefs.filter(newRef => !!newRef);\n      });\n    });\n  }\n\n  loadResources(keys) {\n    if (!this.resourcesPromise) {\n      // TODO: add async `_getInheritableProperty` and remove this.\n      this.resourcesPromise = this.pdfManager.ensure(this, \"resources\");\n    }\n    return this.resourcesPromise.then(() => {\n      const objectLoader = new ObjectLoader(this.resources, keys, this.xref);\n      return objectLoader.load();\n    });\n  }\n\n  getOperatorList({\n    handler,\n    sink,\n    task,\n    intent,\n    cacheKey,\n    annotationStorage = null,\n  }) {\n    const contentStreamPromise = this.getContentStream();\n    const resourcesPromise = this.loadResources([\n      \"ColorSpace\",\n      \"ExtGState\",\n      \"Font\",\n      \"Pattern\",\n      \"Properties\",\n      \"Shading\",\n      \"XObject\",\n    ]);\n\n    const partialEvaluator = new PartialEvaluator({\n      xref: this.xref,\n      handler,\n      pageIndex: this.pageIndex,\n      idFactory: this._localIdFactory,\n      fontCache: this.fontCache,\n      builtInCMapCache: this.builtInCMapCache,\n      standardFontDataCache: this.standardFontDataCache,\n      globalImageCache: this.globalImageCache,\n      systemFontCache: this.systemFontCache,\n      options: this.evaluatorOptions,\n    });\n\n    const newAnnotationsByPage = !this.xfaFactory\n      ? getNewAnnotationsMap(annotationStorage)\n      : null;\n    let deletedAnnotations = null;\n\n    let newAnnotationsPromise = Promise.resolve(null);\n    if (newAnnotationsByPage) {\n      const newAnnotations = newAnnotationsByPage.get(this.pageIndex);\n      if (newAnnotations) {\n        const annotationGlobalsPromise =\n          this.pdfManager.ensureDoc(\"annotationGlobals\");\n        let imagePromises;\n\n        // An annotation can contain a reference to a bitmap, but this bitmap\n        // is defined in another annotation. So we need to find this annotation\n        // and generate the bitmap.\n        const missingBitmaps = new Set();\n        for (const { bitmapId, bitmap } of newAnnotations) {\n          if (bitmapId && !bitmap && !missingBitmaps.has(bitmapId)) {\n            missingBitmaps.add(bitmapId);\n          }\n        }\n\n        const { isOffscreenCanvasSupported } = this.evaluatorOptions;\n        if (missingBitmaps.size > 0) {\n          const annotationWithBitmaps = newAnnotations.slice();\n          for (const [key, annotation] of annotationStorage) {\n            if (!key.startsWith(AnnotationEditorPrefix)) {\n              continue;\n            }\n            if (annotation.bitmap && missingBitmaps.has(annotation.bitmapId)) {\n              annotationWithBitmaps.push(annotation);\n            }\n          }\n          // The array annotationWithBitmaps cannot be empty: the check above\n          // makes sure to have at least one annotation containing the bitmap.\n          imagePromises = AnnotationFactory.generateImages(\n            annotationWithBitmaps,\n            this.xref,\n            isOffscreenCanvasSupported\n          );\n        } else {\n          imagePromises = AnnotationFactory.generateImages(\n            newAnnotations,\n            this.xref,\n            isOffscreenCanvasSupported\n          );\n        }\n\n        deletedAnnotations = new RefSet();\n        this.#replaceIdByRef(newAnnotations, deletedAnnotations, null);\n\n        newAnnotationsPromise = annotationGlobalsPromise.then(\n          annotationGlobals => {\n            if (!annotationGlobals) {\n              return null;\n            }\n\n            return AnnotationFactory.printNewAnnotations(\n              annotationGlobals,\n              partialEvaluator,\n              task,\n              newAnnotations,\n              imagePromises\n            );\n          }\n        );\n      }\n    }\n    const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n    const pageListPromise = dataPromises.then(([contentStream]) => {\n      const opList = new OperatorList(intent, sink);\n\n      handler.send(\"StartRenderPage\", {\n        transparency: partialEvaluator.hasBlendModes(\n          this.resources,\n          this.nonBlendModesSet\n        ),\n        pageIndex: this.pageIndex,\n        cacheKey,\n      });\n\n      return partialEvaluator\n        .getOperatorList({\n          stream: contentStream,\n          task,\n          resources: this.resources,\n          operatorList: opList,\n        })\n        .then(function () {\n          return opList;\n        });\n    });\n\n    // Fetch the page's annotations and add their operator lists to the\n    // page's operator list to render them.\n    return Promise.all([\n      pageListPromise,\n      this._parsedAnnotations,\n      newAnnotationsPromise,\n    ]).then(function ([pageOpList, annotations, newAnnotations]) {\n      if (newAnnotations) {\n        // Some annotations can already exist (if it has the refToReplace\n        // property). In this case, we replace the old annotation by the new\n        // one.\n        annotations = annotations.filter(\n          a => !(a.ref && deletedAnnotations.has(a.ref))\n        );\n        for (let i = 0, ii = newAnnotations.length; i < ii; i++) {\n          const newAnnotation = newAnnotations[i];\n          if (newAnnotation.refToReplace) {\n            const j = annotations.findIndex(\n              a => a.ref && isRefsEqual(a.ref, newAnnotation.refToReplace)\n            );\n            if (j >= 0) {\n              annotations.splice(j, 1, newAnnotation);\n              newAnnotations.splice(i--, 1);\n              ii--;\n            }\n          }\n        }\n        annotations = annotations.concat(newAnnotations);\n      }\n      if (\n        annotations.length === 0 ||\n        intent & RenderingIntentFlag.ANNOTATIONS_DISABLE\n      ) {\n        pageOpList.flush(/* lastChunk = */ true);\n        return { length: pageOpList.totalLength };\n      }\n      const renderForms = !!(intent & RenderingIntentFlag.ANNOTATIONS_FORMS),\n        intentAny = !!(intent & RenderingIntentFlag.ANY),\n        intentDisplay = !!(intent & RenderingIntentFlag.DISPLAY),\n        intentPrint = !!(intent & RenderingIntentFlag.PRINT);\n\n      // Collect the operator list promises for the annotations. Each promise\n      // is resolved with the complete operator list for a single annotation.\n      const opListPromises = [];\n      for (const annotation of annotations) {\n        if (\n          intentAny ||\n          (intentDisplay &&\n            annotation.mustBeViewed(annotationStorage, renderForms)) ||\n          (intentPrint && annotation.mustBePrinted(annotationStorage))\n        ) {\n          opListPromises.push(\n            annotation\n              .getOperatorList(\n                partialEvaluator,\n                task,\n                intent,\n                renderForms,\n                annotationStorage\n              )\n              .catch(function (reason) {\n                warn(\n                  \"getOperatorList - ignoring annotation data during \" +\n                    `\"${task.name}\" task: \"${reason}\".`\n                );\n                return {\n                  opList: null,\n                  separateForm: false,\n                  separateCanvas: false,\n                };\n              })\n          );\n        }\n      }\n\n      return Promise.all(opListPromises).then(function (opLists) {\n        let form = false,\n          canvas = false;\n\n        for (const { opList, separateForm, separateCanvas } of opLists) {\n          pageOpList.addOpList(opList);\n\n          form ||= separateForm;\n          canvas ||= separateCanvas;\n        }\n        pageOpList.flush(\n          /* lastChunk = */ true,\n          /* separateAnnots = */ { form, canvas }\n        );\n        return { length: pageOpList.totalLength };\n      });\n    });\n  }\n\n  extractTextContent({\n    handler,\n    task,\n    includeMarkedContent,\n    disableNormalization,\n    sink,\n  }) {\n    const contentStreamPromise = this.getContentStream();\n    const resourcesPromise = this.loadResources([\n      \"ExtGState\",\n      \"Font\",\n      \"Properties\",\n      \"XObject\",\n    ]);\n\n    const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n    return dataPromises.then(([contentStream]) => {\n      const partialEvaluator = new PartialEvaluator({\n        xref: this.xref,\n        handler,\n        pageIndex: this.pageIndex,\n        idFactory: this._localIdFactory,\n        fontCache: this.fontCache,\n        builtInCMapCache: this.builtInCMapCache,\n        standardFontDataCache: this.standardFontDataCache,\n        globalImageCache: this.globalImageCache,\n        systemFontCache: this.systemFontCache,\n        options: this.evaluatorOptions,\n      });\n\n      return partialEvaluator.getTextContent({\n        stream: contentStream,\n        task,\n        resources: this.resources,\n        includeMarkedContent,\n        disableNormalization,\n        sink,\n        viewBox: this.view,\n      });\n    });\n  }\n\n  async getStructTree() {\n    const structTreeRoot =\n      await this.pdfManager.ensureCatalog(\"structTreeRoot\");\n    if (!structTreeRoot) {\n      return null;\n    }\n    // Ensure that the structTree will contain the page's annotations.\n    await this._parsedAnnotations;\n\n    const structTree = await this.pdfManager.ensure(this, \"_parseStructTree\", [\n      structTreeRoot,\n    ]);\n    return structTree.serializable;\n  }\n\n  /**\n   * @private\n   */\n  _parseStructTree(structTreeRoot) {\n    const tree = new StructTreePage(structTreeRoot, this.pageDict);\n    tree.parse(this.ref);\n    return tree;\n  }\n\n  async getAnnotationsData(handler, task, intent) {\n    const annotations = await this._parsedAnnotations;\n    if (annotations.length === 0) {\n      return annotations;\n    }\n\n    const annotationsData = [],\n      textContentPromises = [];\n    let partialEvaluator;\n\n    const intentAny = !!(intent & RenderingIntentFlag.ANY),\n      intentDisplay = !!(intent & RenderingIntentFlag.DISPLAY),\n      intentPrint = !!(intent & RenderingIntentFlag.PRINT);\n\n    for (const annotation of annotations) {\n      // Get the annotation even if it's hidden because\n      // JS can change its display.\n      const isVisible = intentAny || (intentDisplay && annotation.viewable);\n      if (isVisible || (intentPrint && annotation.printable)) {\n        annotationsData.push(annotation.data);\n      }\n\n      if (annotation.hasTextContent && isVisible) {\n        partialEvaluator ||= new PartialEvaluator({\n          xref: this.xref,\n          handler,\n          pageIndex: this.pageIndex,\n          idFactory: this._localIdFactory,\n          fontCache: this.fontCache,\n          builtInCMapCache: this.builtInCMapCache,\n          standardFontDataCache: this.standardFontDataCache,\n          globalImageCache: this.globalImageCache,\n          systemFontCache: this.systemFontCache,\n          options: this.evaluatorOptions,\n        });\n\n        textContentPromises.push(\n          annotation\n            .extractTextContent(partialEvaluator, task, [\n              -Infinity,\n              -Infinity,\n              Infinity,\n              Infinity,\n            ])\n            .catch(function (reason) {\n              warn(\n                `getAnnotationsData - ignoring textContent during \"${task.name}\" task: \"${reason}\".`\n              );\n            })\n        );\n      }\n    }\n\n    await Promise.all(textContentPromises);\n    return annotationsData;\n  }\n\n  get annotations() {\n    const annots = this._getInheritableProperty(\"Annots\");\n    return shadow(this, \"annotations\", Array.isArray(annots) ? annots : []);\n  }\n\n  get _parsedAnnotations() {\n    const promise = this.pdfManager\n      .ensure(this, \"annotations\")\n      .then(async annots => {\n        if (annots.length === 0) {\n          return annots;\n        }\n        const annotationGlobals =\n          await this.pdfManager.ensureDoc(\"annotationGlobals\");\n        if (!annotationGlobals) {\n          return [];\n        }\n\n        const annotationPromises = [];\n        for (const annotationRef of annots) {\n          annotationPromises.push(\n            AnnotationFactory.create(\n              this.xref,\n              annotationRef,\n              annotationGlobals,\n              this._localIdFactory,\n              /* collectFields */ false,\n              this.ref\n            ).catch(function (reason) {\n              warn(`_parsedAnnotations: \"${reason}\".`);\n              return null;\n            })\n          );\n        }\n\n        const sortedAnnotations = [];\n        let popupAnnotations;\n        // Ensure that PopupAnnotations are handled last, since they depend on\n        // their parent Annotation in the display layer; fixes issue 11362.\n        for (const annotation of await Promise.all(annotationPromises)) {\n          if (!annotation) {\n            continue;\n          }\n          if (annotation instanceof PopupAnnotation) {\n            (popupAnnotations ||= []).push(annotation);\n            continue;\n          }\n          sortedAnnotations.push(annotation);\n        }\n        if (popupAnnotations) {\n          sortedAnnotations.push(...popupAnnotations);\n        }\n\n        return sortedAnnotations;\n      });\n\n    return shadow(this, \"_parsedAnnotations\", promise);\n  }\n\n  get jsActions() {\n    const actions = collectActions(\n      this.xref,\n      this.pageDict,\n      PageActionEventType\n    );\n    return shadow(this, \"jsActions\", actions);\n  }\n}\n\nconst PDF_HEADER_SIGNATURE = new Uint8Array([0x25, 0x50, 0x44, 0x46, 0x2d]);\nconst STARTXREF_SIGNATURE = new Uint8Array([\n  0x73, 0x74, 0x61, 0x72, 0x74, 0x78, 0x72, 0x65, 0x66,\n]);\nconst ENDOBJ_SIGNATURE = new Uint8Array([0x65, 0x6e, 0x64, 0x6f, 0x62, 0x6a]);\n\nconst FINGERPRINT_FIRST_BYTES = 1024;\nconst EMPTY_FINGERPRINT =\n  \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\";\n\nfunction find(stream, signature, limit = 1024, backwards = false) {\n  if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n    assert(limit > 0, 'The \"limit\" must be a positive integer.');\n  }\n  const signatureLength = signature.length;\n\n  const scanBytes = stream.peekBytes(limit);\n  const scanLength = scanBytes.length - signatureLength;\n\n  if (scanLength <= 0) {\n    return false;\n  }\n  if (backwards) {\n    const signatureEnd = signatureLength - 1;\n\n    let pos = scanBytes.length - 1;\n    while (pos >= signatureEnd) {\n      let j = 0;\n      while (\n        j < signatureLength &&\n        scanBytes[pos - j] === signature[signatureEnd - j]\n      ) {\n        j++;\n      }\n      if (j >= signatureLength) {\n        // `signature` found.\n        stream.pos += pos - signatureEnd;\n        return true;\n      }\n      pos--;\n    }\n  } else {\n    // forwards\n    let pos = 0;\n    while (pos <= scanLength) {\n      let j = 0;\n      while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n        j++;\n      }\n      if (j >= signatureLength) {\n        // `signature` found.\n        stream.pos += pos;\n        return true;\n      }\n      pos++;\n    }\n  }\n  return false;\n}\n\n/**\n * The `PDFDocument` class holds all the (worker-thread) data of the PDF file.\n */\nclass PDFDocument {\n  constructor(pdfManager, stream) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        stream instanceof BaseStream,\n        'PDFDocument: Invalid \"stream\" argument.'\n      );\n    }\n    if (stream.length <= 0) {\n      throw new InvalidPDFException(\n        \"The PDF file is empty, i.e. its size is zero bytes.\"\n      );\n    }\n\n    this.pdfManager = pdfManager;\n    this.stream = stream;\n    this.xref = new XRef(stream, pdfManager);\n    this._pagePromises = new Map();\n    this._version = null;\n\n    const idCounters = {\n      font: 0,\n    };\n    this._globalIdFactory = class {\n      static getDocId() {\n        return `g_${pdfManager.docId}`;\n      }\n\n      static createFontId() {\n        return `f${++idCounters.font}`;\n      }\n\n      static createObjId() {\n        unreachable(\"Abstract method `createObjId` called.\");\n      }\n\n      static getPageObjId() {\n        unreachable(\"Abstract method `getPageObjId` called.\");\n      }\n    };\n  }\n\n  parse(recoveryMode) {\n    this.xref.parse(recoveryMode);\n    this.catalog = new Catalog(this.pdfManager, this.xref);\n  }\n\n  get linearization() {\n    let linearization = null;\n    try {\n      linearization = Linearization.create(this.stream);\n    } catch (err) {\n      if (err instanceof MissingDataException) {\n        throw err;\n      }\n      info(err);\n    }\n    return shadow(this, \"linearization\", linearization);\n  }\n\n  get startXRef() {\n    const stream = this.stream;\n    let startXRef = 0;\n\n    if (this.linearization) {\n      // Find the end of the first object.\n      stream.reset();\n      if (find(stream, ENDOBJ_SIGNATURE)) {\n        startXRef = stream.pos + 6 - stream.start;\n      }\n    } else {\n      // Find `startxref` by checking backwards from the end of the file.\n      const step = 1024;\n      const startXRefLength = STARTXREF_SIGNATURE.length;\n      let found = false,\n        pos = stream.end;\n\n      while (!found && pos > 0) {\n        pos -= step - startXRefLength;\n        if (pos < 0) {\n          pos = 0;\n        }\n        stream.pos = pos;\n        found = find(stream, STARTXREF_SIGNATURE, step, true);\n      }\n\n      if (found) {\n        stream.skip(9);\n        let ch;\n        do {\n          ch = stream.getByte();\n        } while (isWhiteSpace(ch));\n        let str = \"\";\n        while (ch >= /* Space = */ 0x20 && ch <= /* '9' = */ 0x39) {\n          str += String.fromCharCode(ch);\n          ch = stream.getByte();\n        }\n        startXRef = parseInt(str, 10);\n        if (isNaN(startXRef)) {\n          startXRef = 0;\n        }\n      }\n    }\n    return shadow(this, \"startXRef\", startXRef);\n  }\n\n  // Find the header, get the PDF format version and setup the\n  // stream to start from the header.\n  checkHeader() {\n    const stream = this.stream;\n    stream.reset();\n\n    if (!find(stream, PDF_HEADER_SIGNATURE)) {\n      // May not be a PDF file, but don't throw an error and let\n      // parsing continue.\n      return;\n    }\n    stream.moveStart();\n\n    // Skip over the \"%PDF-\" prefix, since it was found above.\n    stream.skip(PDF_HEADER_SIGNATURE.length);\n    // Read the PDF format version.\n    let version = \"\",\n      ch;\n    while (\n      (ch = stream.getByte()) > /* Space = */ 0x20 &&\n      version.length < /* MAX_PDF_VERSION_LENGTH = */ 7\n    ) {\n      version += String.fromCharCode(ch);\n    }\n\n    if (PDF_VERSION_REGEXP.test(version)) {\n      this._version = version;\n    } else {\n      warn(`Invalid PDF header version: ${version}`);\n    }\n  }\n\n  parseStartXRef() {\n    this.xref.setStartXRef(this.startXRef);\n  }\n\n  get numPages() {\n    let num = 0;\n    if (this.catalog.hasActualNumPages) {\n      num = this.catalog.numPages;\n    } else if (this.xfaFactory) {\n      // num is a Promise.\n      num = this.xfaFactory.getNumPages();\n    } else if (this.linearization) {\n      num = this.linearization.numPages;\n    } else {\n      num = this.catalog.numPages;\n    }\n    return shadow(this, \"numPages\", num);\n  }\n\n  /**\n   * @private\n   */\n  _hasOnlyDocumentSignatures(fields, recursionDepth = 0) {\n    const RECURSION_LIMIT = 10;\n\n    if (!Array.isArray(fields)) {\n      return false;\n    }\n    return fields.every(field => {\n      field = this.xref.fetchIfRef(field);\n      if (!(field instanceof Dict)) {\n        return false;\n      }\n      if (field.has(\"Kids\")) {\n        if (++recursionDepth > RECURSION_LIMIT) {\n          warn(\"_hasOnlyDocumentSignatures: maximum recursion depth reached\");\n          return false;\n        }\n        return this._hasOnlyDocumentSignatures(\n          field.get(\"Kids\"),\n          recursionDepth\n        );\n      }\n      const isSignature = isName(field.get(\"FT\"), \"Sig\");\n      const rectangle = field.get(\"Rect\");\n      const isInvisible =\n        Array.isArray(rectangle) && rectangle.every(value => value === 0);\n      return isSignature && isInvisible;\n    });\n  }\n\n  get _xfaStreams() {\n    const acroForm = this.catalog.acroForm;\n    if (!acroForm) {\n      return null;\n    }\n\n    const xfa = acroForm.get(\"XFA\");\n    const entries = {\n      \"xdp:xdp\": \"\",\n      template: \"\",\n      datasets: \"\",\n      config: \"\",\n      connectionSet: \"\",\n      localeSet: \"\",\n      stylesheet: \"\",\n      \"/xdp:xdp\": \"\",\n    };\n    if (xfa instanceof BaseStream && !xfa.isEmpty) {\n      entries[\"xdp:xdp\"] = xfa;\n      return entries;\n    }\n\n    if (!Array.isArray(xfa) || xfa.length === 0) {\n      return null;\n    }\n\n    for (let i = 0, ii = xfa.length; i < ii; i += 2) {\n      let name;\n      if (i === 0) {\n        name = \"xdp:xdp\";\n      } else if (i === ii - 2) {\n        name = \"/xdp:xdp\";\n      } else {\n        name = xfa[i];\n      }\n\n      if (!entries.hasOwnProperty(name)) {\n        continue;\n      }\n      const data = this.xref.fetchIfRef(xfa[i + 1]);\n      if (!(data instanceof BaseStream) || data.isEmpty) {\n        continue;\n      }\n      entries[name] = data;\n    }\n    return entries;\n  }\n\n  get xfaDatasets() {\n    const streams = this._xfaStreams;\n    if (!streams) {\n      return shadow(this, \"xfaDatasets\", null);\n    }\n    for (const key of [\"datasets\", \"xdp:xdp\"]) {\n      const stream = streams[key];\n      if (!stream) {\n        continue;\n      }\n      try {\n        const str = stringToUTF8String(stream.getString());\n        const data = { [key]: str };\n        return shadow(this, \"xfaDatasets\", new DatasetReader(data));\n      } catch {\n        warn(\"XFA - Invalid utf-8 string.\");\n        break;\n      }\n    }\n    return shadow(this, \"xfaDatasets\", null);\n  }\n\n  get xfaData() {\n    const streams = this._xfaStreams;\n    if (!streams) {\n      return null;\n    }\n    const data = Object.create(null);\n    for (const [key, stream] of Object.entries(streams)) {\n      if (!stream) {\n        continue;\n      }\n      try {\n        data[key] = stringToUTF8String(stream.getString());\n      } catch {\n        warn(\"XFA - Invalid utf-8 string.\");\n        return null;\n      }\n    }\n    return data;\n  }\n\n  get xfaFactory() {\n    let data;\n    if (\n      this.pdfManager.enableXfa &&\n      this.catalog.needsRendering &&\n      this.formInfo.hasXfa &&\n      !this.formInfo.hasAcroForm\n    ) {\n      data = this.xfaData;\n    }\n    return shadow(this, \"xfaFactory\", data ? new XFAFactory(data) : null);\n  }\n\n  get isPureXfa() {\n    return this.xfaFactory ? this.xfaFactory.isValid() : false;\n  }\n\n  get htmlForXfa() {\n    return this.xfaFactory ? this.xfaFactory.getPages() : null;\n  }\n\n  async loadXfaImages() {\n    const xfaImagesDict = await this.pdfManager.ensureCatalog(\"xfaImages\");\n    if (!xfaImagesDict) {\n      return;\n    }\n\n    const keys = xfaImagesDict.getKeys();\n    const objectLoader = new ObjectLoader(xfaImagesDict, keys, this.xref);\n    await objectLoader.load();\n\n    const xfaImages = new Map();\n    for (const key of keys) {\n      const stream = xfaImagesDict.get(key);\n      if (stream instanceof BaseStream) {\n        xfaImages.set(key, stream.getBytes());\n      }\n    }\n\n    this.xfaFactory.setImages(xfaImages);\n  }\n\n  async loadXfaFonts(handler, task) {\n    const acroForm = await this.pdfManager.ensureCatalog(\"acroForm\");\n    if (!acroForm) {\n      return;\n    }\n    const resources = await acroForm.getAsync(\"DR\");\n    if (!(resources instanceof Dict)) {\n      return;\n    }\n    const objectLoader = new ObjectLoader(resources, [\"Font\"], this.xref);\n    await objectLoader.load();\n\n    const fontRes = resources.get(\"Font\");\n    if (!(fontRes instanceof Dict)) {\n      return;\n    }\n\n    const options = Object.assign(\n      Object.create(null),\n      this.pdfManager.evaluatorOptions\n    );\n    options.useSystemFonts = false;\n\n    const partialEvaluator = new PartialEvaluator({\n      xref: this.xref,\n      handler,\n      pageIndex: -1,\n      idFactory: this._globalIdFactory,\n      fontCache: this.catalog.fontCache,\n      builtInCMapCache: this.catalog.builtInCMapCache,\n      standardFontDataCache: this.catalog.standardFontDataCache,\n      options,\n    });\n    const operatorList = new OperatorList();\n    const pdfFonts = [];\n    const initialState = {\n      get font() {\n        return pdfFonts.at(-1);\n      },\n      set font(font) {\n        pdfFonts.push(font);\n      },\n      clone() {\n        return this;\n      },\n    };\n\n    const fonts = new Map();\n    fontRes.forEach((fontName, font) => {\n      fonts.set(fontName, font);\n    });\n    const promises = [];\n\n    for (const [fontName, font] of fonts) {\n      const descriptor = font.get(\"FontDescriptor\");\n      if (!(descriptor instanceof Dict)) {\n        continue;\n      }\n      let fontFamily = descriptor.get(\"FontFamily\");\n      // For example, \"Wingdings 3\" is not a valid font name in the css specs.\n      fontFamily = fontFamily.replaceAll(/[ ]+(\\d)/g, \"$1\");\n      const fontWeight = descriptor.get(\"FontWeight\");\n\n      // Angle is expressed in degrees counterclockwise in PDF\n      // when it's clockwise in CSS\n      // (see https://drafts.csswg.org/css-fonts-4/#valdef-font-style-oblique-angle)\n      const italicAngle = -descriptor.get(\"ItalicAngle\");\n      const cssFontInfo = { fontFamily, fontWeight, italicAngle };\n\n      if (!validateCSSFont(cssFontInfo)) {\n        continue;\n      }\n      promises.push(\n        partialEvaluator\n          .handleSetFont(\n            resources,\n            [Name.get(fontName), 1],\n            /* fontRef = */ null,\n            operatorList,\n            task,\n            initialState,\n            /* fallbackFontDict = */ null,\n            /* cssFontInfo = */ cssFontInfo\n          )\n          .catch(function (reason) {\n            warn(`loadXfaFonts: \"${reason}\".`);\n            return null;\n          })\n      );\n    }\n\n    await Promise.all(promises);\n    const missingFonts = this.xfaFactory.setFonts(pdfFonts);\n\n    if (!missingFonts) {\n      return;\n    }\n\n    options.ignoreErrors = true;\n    promises.length = 0;\n    pdfFonts.length = 0;\n\n    const reallyMissingFonts = new Set();\n    for (const missing of missingFonts) {\n      if (!getXfaFontName(`${missing}-Regular`)) {\n        // No substitution available: we'll fallback on Myriad.\n        reallyMissingFonts.add(missing);\n      }\n    }\n\n    if (reallyMissingFonts.size) {\n      missingFonts.push(\"PdfJS-Fallback\");\n    }\n\n    for (const missing of missingFonts) {\n      if (reallyMissingFonts.has(missing)) {\n        continue;\n      }\n      for (const fontInfo of [\n        { name: \"Regular\", fontWeight: 400, italicAngle: 0 },\n        { name: \"Bold\", fontWeight: 700, italicAngle: 0 },\n        { name: \"Italic\", fontWeight: 400, italicAngle: 12 },\n        { name: \"BoldItalic\", fontWeight: 700, italicAngle: 12 },\n      ]) {\n        const name = `${missing}-${fontInfo.name}`;\n        const dict = getXfaFontDict(name);\n\n        promises.push(\n          partialEvaluator\n            .handleSetFont(\n              resources,\n              [Name.get(name), 1],\n              /* fontRef = */ null,\n              operatorList,\n              task,\n              initialState,\n              /* fallbackFontDict = */ dict,\n              /* cssFontInfo = */ {\n                fontFamily: missing,\n                fontWeight: fontInfo.fontWeight,\n                italicAngle: fontInfo.italicAngle,\n              }\n            )\n            .catch(function (reason) {\n              warn(`loadXfaFonts: \"${reason}\".`);\n              return null;\n            })\n        );\n      }\n    }\n\n    await Promise.all(promises);\n    this.xfaFactory.appendFonts(pdfFonts, reallyMissingFonts);\n  }\n\n  async serializeXfaData(annotationStorage) {\n    return this.xfaFactory\n      ? this.xfaFactory.serializeData(annotationStorage)\n      : null;\n  }\n\n  /**\n   * The specification states in section 7.5.2 that the version from\n   * the catalog, if present, should overwrite the version from the header.\n   */\n  get version() {\n    return this.catalog.version || this._version;\n  }\n\n  get formInfo() {\n    const formInfo = {\n      hasFields: false,\n      hasAcroForm: false,\n      hasXfa: false,\n      hasSignatures: false,\n    };\n    const acroForm = this.catalog.acroForm;\n    if (!acroForm) {\n      return shadow(this, \"formInfo\", formInfo);\n    }\n\n    try {\n      const fields = acroForm.get(\"Fields\");\n      const hasFields = Array.isArray(fields) && fields.length > 0;\n      formInfo.hasFields = hasFields; // Used by the `fieldObjects` getter.\n\n      // The document contains XFA data if the `XFA` entry is a non-empty\n      // array or stream.\n      const xfa = acroForm.get(\"XFA\");\n      formInfo.hasXfa =\n        (Array.isArray(xfa) && xfa.length > 0) ||\n        (xfa instanceof BaseStream && !xfa.isEmpty);\n\n      // The document contains AcroForm data if the `Fields` entry is a\n      // non-empty array and it doesn't consist of only document signatures.\n      // This second check is required for files that don't actually contain\n      // AcroForm data (only XFA data), but that use the `Fields` entry to\n      // store (invisible) document signatures. This can be detected using\n      // the first bit of the `SigFlags` integer (see Table 219 in the\n      // specification).\n      const sigFlags = acroForm.get(\"SigFlags\");\n      const hasSignatures = !!(sigFlags & 0x1);\n      const hasOnlyDocumentSignatures =\n        hasSignatures && this._hasOnlyDocumentSignatures(fields);\n      formInfo.hasAcroForm = hasFields && !hasOnlyDocumentSignatures;\n      formInfo.hasSignatures = hasSignatures;\n    } catch (ex) {\n      if (ex instanceof MissingDataException) {\n        throw ex;\n      }\n      warn(`Cannot fetch form information: \"${ex}\".`);\n    }\n    return shadow(this, \"formInfo\", formInfo);\n  }\n\n  get documentInfo() {\n    const docInfo = {\n      PDFFormatVersion: this.version,\n      Language: this.catalog.lang,\n      EncryptFilterName: this.xref.encrypt\n        ? this.xref.encrypt.filterName\n        : null,\n      IsLinearized: !!this.linearization,\n      IsAcroFormPresent: this.formInfo.hasAcroForm,\n      IsXFAPresent: this.formInfo.hasXfa,\n      IsCollectionPresent: !!this.catalog.collection,\n      IsSignaturesPresent: this.formInfo.hasSignatures,\n    };\n\n    let infoDict;\n    try {\n      infoDict = this.xref.trailer.get(\"Info\");\n    } catch (err) {\n      if (err instanceof MissingDataException) {\n        throw err;\n      }\n      info(\"The document information dictionary is invalid.\");\n    }\n    if (!(infoDict instanceof Dict)) {\n      return shadow(this, \"documentInfo\", docInfo);\n    }\n\n    for (const key of infoDict.getKeys()) {\n      const value = infoDict.get(key);\n\n      switch (key) {\n        case \"Title\":\n        case \"Author\":\n        case \"Subject\":\n        case \"Keywords\":\n        case \"Creator\":\n        case \"Producer\":\n        case \"CreationDate\":\n        case \"ModDate\":\n          if (typeof value === \"string\") {\n            docInfo[key] = stringToPDFString(value);\n            continue;\n          }\n          break;\n        case \"Trapped\":\n          if (value instanceof Name) {\n            docInfo[key] = value;\n            continue;\n          }\n          break;\n        default:\n          // For custom values, only accept white-listed types to prevent\n          // errors that would occur when trying to send non-serializable\n          // objects to the main-thread (for example `Dict` or `Stream`).\n          let customValue;\n          switch (typeof value) {\n            case \"string\":\n              customValue = stringToPDFString(value);\n              break;\n            case \"number\":\n            case \"boolean\":\n              customValue = value;\n              break;\n            default:\n              if (value instanceof Name) {\n                customValue = value;\n              }\n              break;\n          }\n\n          if (customValue === undefined) {\n            warn(`Bad value, for custom key \"${key}\", in Info: ${value}.`);\n            continue;\n          }\n          if (!docInfo.Custom) {\n            docInfo.Custom = Object.create(null);\n          }\n          docInfo.Custom[key] = customValue;\n          continue;\n      }\n      warn(`Bad value, for key \"${key}\", in Info: ${value}.`);\n    }\n    return shadow(this, \"documentInfo\", docInfo);\n  }\n\n  get fingerprints() {\n    function validate(data) {\n      return (\n        typeof data === \"string\" &&\n        data.length > 0 &&\n        data !== EMPTY_FINGERPRINT\n      );\n    }\n\n    function hexString(hash) {\n      const buf = [];\n      for (const num of hash) {\n        const hex = num.toString(16);\n        buf.push(hex.padStart(2, \"0\"));\n      }\n      return buf.join(\"\");\n    }\n\n    const idArray = this.xref.trailer.get(\"ID\");\n    let hashOriginal, hashModified;\n    if (Array.isArray(idArray) && validate(idArray[0])) {\n      hashOriginal = stringToBytes(idArray[0]);\n\n      if (idArray[1] !== idArray[0] && validate(idArray[1])) {\n        hashModified = stringToBytes(idArray[1]);\n      }\n    } else {\n      hashOriginal = calculateMD5(\n        this.stream.getByteRange(0, FINGERPRINT_FIRST_BYTES),\n        0,\n        FINGERPRINT_FIRST_BYTES\n      );\n    }\n\n    return shadow(this, \"fingerprints\", [\n      hexString(hashOriginal),\n      hashModified ? hexString(hashModified) : null,\n    ]);\n  }\n\n  async _getLinearizationPage(pageIndex) {\n    const { catalog, linearization, xref } = this;\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        linearization?.pageFirst === pageIndex,\n        \"_getLinearizationPage - invalid pageIndex argument.\"\n      );\n    }\n\n    const ref = Ref.get(linearization.objectNumberFirst, 0);\n    try {\n      const obj = await xref.fetchAsync(ref);\n      // Ensure that the object that was found is actually a Page dictionary.\n      if (obj instanceof Dict) {\n        let type = obj.getRaw(\"Type\");\n        if (type instanceof Ref) {\n          type = await xref.fetchAsync(type);\n        }\n        if (isName(type, \"Page\") || (!obj.has(\"Type\") && !obj.has(\"Kids\"))) {\n          if (!catalog.pageKidsCountCache.has(ref)) {\n            catalog.pageKidsCountCache.put(ref, 1); // Cache the Page reference.\n          }\n          // Help improve performance of the `Catalog.getPageIndex` method.\n          if (!catalog.pageIndexCache.has(ref)) {\n            catalog.pageIndexCache.put(ref, 0);\n          }\n\n          return [obj, ref];\n        }\n      }\n      throw new FormatError(\n        \"The Linearization dictionary doesn't point to a valid Page dictionary.\"\n      );\n    } catch (reason) {\n      warn(`_getLinearizationPage: \"${reason.message}\".`);\n      return catalog.getPageDict(pageIndex);\n    }\n  }\n\n  getPage(pageIndex) {\n    const cachedPromise = this._pagePromises.get(pageIndex);\n    if (cachedPromise) {\n      return cachedPromise;\n    }\n    const { catalog, linearization, xfaFactory } = this;\n\n    let promise;\n    if (xfaFactory) {\n      promise = Promise.resolve([Dict.empty, null]);\n    } else if (linearization?.pageFirst === pageIndex) {\n      promise = this._getLinearizationPage(pageIndex);\n    } else {\n      promise = catalog.getPageDict(pageIndex);\n    }\n    promise = promise.then(([pageDict, ref]) => {\n      return new Page({\n        pdfManager: this.pdfManager,\n        xref: this.xref,\n        pageIndex,\n        pageDict,\n        ref,\n        globalIdFactory: this._globalIdFactory,\n        fontCache: catalog.fontCache,\n        builtInCMapCache: catalog.builtInCMapCache,\n        standardFontDataCache: catalog.standardFontDataCache,\n        globalImageCache: catalog.globalImageCache,\n        systemFontCache: catalog.systemFontCache,\n        nonBlendModesSet: catalog.nonBlendModesSet,\n        xfaFactory,\n      });\n    });\n\n    this._pagePromises.set(pageIndex, promise);\n    return promise;\n  }\n\n  async checkFirstPage(recoveryMode = false) {\n    if (recoveryMode) {\n      return;\n    }\n    try {\n      await this.getPage(0);\n    } catch (reason) {\n      if (reason instanceof XRefEntryException) {\n        // Clear out the various caches to ensure that we haven't stored any\n        // inconsistent and/or incorrect state, since that could easily break\n        // subsequent `this.getPage` calls.\n        this._pagePromises.delete(0);\n        await this.cleanup();\n\n        throw new XRefParseException();\n      }\n    }\n  }\n\n  async checkLastPage(recoveryMode = false) {\n    const { catalog, pdfManager } = this;\n\n    catalog.setActualNumPages(); // Ensure that it's always reset.\n    let numPages;\n\n    try {\n      await Promise.all([\n        pdfManager.ensureDoc(\"xfaFactory\"),\n        pdfManager.ensureDoc(\"linearization\"),\n        pdfManager.ensureCatalog(\"numPages\"),\n      ]);\n\n      if (this.xfaFactory) {\n        return; // The Page count is always calculated for XFA-documents.\n      } else if (this.linearization) {\n        numPages = this.linearization.numPages;\n      } else {\n        numPages = catalog.numPages;\n      }\n\n      if (!Number.isInteger(numPages)) {\n        throw new FormatError(\"Page count is not an integer.\");\n      } else if (numPages <= 1) {\n        return;\n      }\n      await this.getPage(numPages - 1);\n    } catch (reason) {\n      // Clear out the various caches to ensure that we haven't stored any\n      // inconsistent and/or incorrect state, since that could easily break\n      // subsequent `this.getPage` calls.\n      this._pagePromises.delete(numPages - 1);\n      await this.cleanup();\n\n      if (reason instanceof XRefEntryException && !recoveryMode) {\n        throw new XRefParseException();\n      }\n      warn(`checkLastPage - invalid /Pages tree /Count: ${numPages}.`);\n\n      let pagesTree;\n      try {\n        pagesTree = await catalog.getAllPageDicts(recoveryMode);\n      } catch (reasonAll) {\n        if (reasonAll instanceof XRefEntryException && !recoveryMode) {\n          throw new XRefParseException();\n        }\n        catalog.setActualNumPages(1);\n        return;\n      }\n\n      for (const [pageIndex, [pageDict, ref]] of pagesTree) {\n        let promise;\n        if (pageDict instanceof Error) {\n          promise = Promise.reject(pageDict);\n\n          // Prevent \"uncaught exception: Object\"-messages in the console.\n          promise.catch(() => {});\n        } else {\n          promise = Promise.resolve(\n            new Page({\n              pdfManager,\n              xref: this.xref,\n              pageIndex,\n              pageDict,\n              ref,\n              globalIdFactory: this._globalIdFactory,\n              fontCache: catalog.fontCache,\n              builtInCMapCache: catalog.builtInCMapCache,\n              standardFontDataCache: catalog.standardFontDataCache,\n              globalImageCache: catalog.globalImageCache,\n              systemFontCache: catalog.systemFontCache,\n              nonBlendModesSet: catalog.nonBlendModesSet,\n              xfaFactory: null,\n            })\n          );\n        }\n\n        this._pagePromises.set(pageIndex, promise);\n      }\n      catalog.setActualNumPages(pagesTree.size);\n    }\n  }\n\n  fontFallback(id, handler) {\n    return this.catalog.fontFallback(id, handler);\n  }\n\n  async cleanup(manuallyTriggered = false) {\n    return this.catalog\n      ? this.catalog.cleanup(manuallyTriggered)\n      : clearGlobalCaches();\n  }\n\n  async #collectFieldObjects(\n    name,\n    fieldRef,\n    promises,\n    annotationGlobals,\n    visitedRefs\n  ) {\n    const { xref } = this;\n\n    if (!(fieldRef instanceof Ref) || visitedRefs.has(fieldRef)) {\n      return;\n    }\n    visitedRefs.put(fieldRef);\n    const field = await xref.fetchAsync(fieldRef);\n    if (!(field instanceof Dict)) {\n      return;\n    }\n    if (field.has(\"T\")) {\n      const partName = stringToPDFString(await field.getAsync(\"T\"));\n      name = name === \"\" ? partName : `${name}.${partName}`;\n    } else {\n      let obj = field;\n      while (true) {\n        obj = obj.getRaw(\"Parent\");\n        if (obj instanceof Ref) {\n          if (visitedRefs.has(obj)) {\n            break;\n          }\n          obj = await xref.fetchAsync(obj);\n        }\n        if (!(obj instanceof Dict)) {\n          break;\n        }\n        if (obj.has(\"T\")) {\n          const partName = stringToPDFString(await obj.getAsync(\"T\"));\n          name = name === \"\" ? partName : `${name}.${partName}`;\n          break;\n        }\n      }\n    }\n\n    if (!promises.has(name)) {\n      promises.set(name, []);\n    }\n    promises.get(name).push(\n      AnnotationFactory.create(\n        xref,\n        fieldRef,\n        annotationGlobals,\n        /* idFactory = */ null,\n        /* collectFields */ true,\n        /* pageRef */ null\n      )\n        .then(annotation => annotation?.getFieldObject())\n        .catch(function (reason) {\n          warn(`#collectFieldObjects: \"${reason}\".`);\n          return null;\n        })\n    );\n\n    if (!field.has(\"Kids\")) {\n      return;\n    }\n    const kids = await field.getAsync(\"Kids\");\n    if (Array.isArray(kids)) {\n      for (const kid of kids) {\n        await this.#collectFieldObjects(\n          name,\n          kid,\n          promises,\n          annotationGlobals,\n          visitedRefs\n        );\n      }\n    }\n  }\n\n  get fieldObjects() {\n    if (!this.formInfo.hasFields) {\n      return shadow(this, \"fieldObjects\", Promise.resolve(null));\n    }\n\n    const promise = Promise.all([\n      this.pdfManager.ensureDoc(\"annotationGlobals\"),\n      this.pdfManager.ensureCatalog(\"acroForm\"),\n    ]).then(async ([annotationGlobals, acroForm]) => {\n      if (!annotationGlobals) {\n        return null;\n      }\n\n      const visitedRefs = new RefSet();\n      const allFields = Object.create(null);\n      const fieldPromises = new Map();\n      for (const fieldRef of await acroForm.getAsync(\"Fields\")) {\n        await this.#collectFieldObjects(\n          \"\",\n          fieldRef,\n          fieldPromises,\n          annotationGlobals,\n          visitedRefs\n        );\n      }\n\n      const allPromises = [];\n      for (const [name, promises] of fieldPromises) {\n        allPromises.push(\n          Promise.all(promises).then(fields => {\n            fields = fields.filter(field => !!field);\n            if (fields.length > 0) {\n              allFields[name] = fields;\n            }\n          })\n        );\n      }\n\n      await Promise.all(allPromises);\n      return allFields;\n    });\n\n    return shadow(this, \"fieldObjects\", promise);\n  }\n\n  get hasJSActions() {\n    const promise = this.pdfManager.ensureDoc(\"_parseHasJSActions\");\n    return shadow(this, \"hasJSActions\", promise);\n  }\n\n  /**\n   * @private\n   */\n  async _parseHasJSActions() {\n    const [catalogJsActions, fieldObjects] = await Promise.all([\n      this.pdfManager.ensureCatalog(\"jsActions\"),\n      this.pdfManager.ensureDoc(\"fieldObjects\"),\n    ]);\n\n    if (catalogJsActions) {\n      return true;\n    }\n    if (fieldObjects) {\n      return Object.values(fieldObjects).some(fieldObject =>\n        fieldObject.some(object => object.actions !== null)\n      );\n    }\n    return false;\n  }\n\n  get calculationOrderIds() {\n    const acroForm = this.catalog.acroForm;\n    if (!acroForm?.has(\"CO\")) {\n      return shadow(this, \"calculationOrderIds\", null);\n    }\n\n    const calculationOrder = acroForm.get(\"CO\");\n    if (!Array.isArray(calculationOrder) || calculationOrder.length === 0) {\n      return shadow(this, \"calculationOrderIds\", null);\n    }\n\n    const ids = [];\n    for (const id of calculationOrder) {\n      if (id instanceof Ref) {\n        ids.push(id.toString());\n      }\n    }\n    if (ids.length === 0) {\n      return shadow(this, \"calculationOrderIds\", null);\n    }\n    return shadow(this, \"calculationOrderIds\", ids);\n  }\n\n  get annotationGlobals() {\n    return shadow(\n      this,\n      \"annotationGlobals\",\n      AnnotationFactory.createGlobals(this.pdfManager)\n    );\n  }\n}\n\nexport { Page, PDFDocument };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  createValidAbsoluteUrl,\n  FeatureTest,\n  unreachable,\n  warn,\n} from \"../shared/util.js\";\nimport { ChunkedStreamManager } from \"./chunked_stream.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { PDFDocument } from \"./document.js\";\nimport { Stream } from \"./stream.js\";\n\nfunction parseDocBaseUrl(url) {\n  if (url) {\n    const absoluteUrl = createValidAbsoluteUrl(url);\n    if (absoluteUrl) {\n      return absoluteUrl.href;\n    }\n    warn(`Invalid absolute docBaseUrl: \"${url}\".`);\n  }\n  return null;\n}\n\nclass BasePdfManager {\n  constructor(args) {\n    if (this.constructor === BasePdfManager) {\n      unreachable(\"Cannot initialize BasePdfManager.\");\n    }\n    this._docBaseUrl = parseDocBaseUrl(args.docBaseUrl);\n    this._docId = args.docId;\n    this._password = args.password;\n    this.enableXfa = args.enableXfa;\n\n    // Check `OffscreenCanvas` support once, rather than repeatedly throughout\n    // the worker-thread code.\n    args.evaluatorOptions.isOffscreenCanvasSupported &&=\n      FeatureTest.isOffscreenCanvasSupported;\n    this.evaluatorOptions = args.evaluatorOptions;\n  }\n\n  get docId() {\n    return this._docId;\n  }\n\n  get password() {\n    return this._password;\n  }\n\n  get docBaseUrl() {\n    return this._docBaseUrl;\n  }\n\n  get catalog() {\n    return this.pdfDocument.catalog;\n  }\n\n  ensureDoc(prop, args) {\n    return this.ensure(this.pdfDocument, prop, args);\n  }\n\n  ensureXRef(prop, args) {\n    return this.ensure(this.pdfDocument.xref, prop, args);\n  }\n\n  ensureCatalog(prop, args) {\n    return this.ensure(this.pdfDocument.catalog, prop, args);\n  }\n\n  getPage(pageIndex) {\n    return this.pdfDocument.getPage(pageIndex);\n  }\n\n  fontFallback(id, handler) {\n    return this.pdfDocument.fontFallback(id, handler);\n  }\n\n  loadXfaFonts(handler, task) {\n    return this.pdfDocument.loadXfaFonts(handler, task);\n  }\n\n  loadXfaImages() {\n    return this.pdfDocument.loadXfaImages();\n  }\n\n  serializeXfaData(annotationStorage) {\n    return this.pdfDocument.serializeXfaData(annotationStorage);\n  }\n\n  cleanup(manuallyTriggered = false) {\n    return this.pdfDocument.cleanup(manuallyTriggered);\n  }\n\n  async ensure(obj, prop, args) {\n    unreachable(\"Abstract method `ensure` called\");\n  }\n\n  requestRange(begin, end) {\n    unreachable(\"Abstract method `requestRange` called\");\n  }\n\n  requestLoadedStream(noFetch = false) {\n    unreachable(\"Abstract method `requestLoadedStream` called\");\n  }\n\n  sendProgressiveData(chunk) {\n    unreachable(\"Abstract method `sendProgressiveData` called\");\n  }\n\n  updatePassword(password) {\n    this._password = password;\n  }\n\n  terminate(reason) {\n    unreachable(\"Abstract method `terminate` called\");\n  }\n}\n\nclass LocalPdfManager extends BasePdfManager {\n  constructor(args) {\n    super(args);\n\n    const stream = new Stream(args.source);\n    this.pdfDocument = new PDFDocument(this, stream);\n    this._loadedStreamPromise = Promise.resolve(stream);\n  }\n\n  async ensure(obj, prop, args) {\n    const value = obj[prop];\n    if (typeof value === \"function\") {\n      return value.apply(obj, args);\n    }\n    return value;\n  }\n\n  requestRange(begin, end) {\n    return Promise.resolve();\n  }\n\n  requestLoadedStream(noFetch = false) {\n    return this._loadedStreamPromise;\n  }\n\n  terminate(reason) {}\n}\n\nclass NetworkPdfManager extends BasePdfManager {\n  constructor(args) {\n    super(args);\n\n    this.streamManager = new ChunkedStreamManager(args.source, {\n      msgHandler: args.handler,\n      length: args.length,\n      disableAutoFetch: args.disableAutoFetch,\n      rangeChunkSize: args.rangeChunkSize,\n    });\n    this.pdfDocument = new PDFDocument(this, this.streamManager.getStream());\n  }\n\n  async ensure(obj, prop, args) {\n    try {\n      const value = obj[prop];\n      if (typeof value === \"function\") {\n        return value.apply(obj, args);\n      }\n      return value;\n    } catch (ex) {\n      if (!(ex instanceof MissingDataException)) {\n        throw ex;\n      }\n      await this.requestRange(ex.begin, ex.end);\n      return this.ensure(obj, prop, args);\n    }\n  }\n\n  requestRange(begin, end) {\n    return this.streamManager.requestRange(begin, end);\n  }\n\n  requestLoadedStream(noFetch = false) {\n    return this.streamManager.requestAllChunks(noFetch);\n  }\n\n  sendProgressiveData(chunk) {\n    this.streamManager.onReceiveData({ chunk });\n  }\n\n  terminate(reason) {\n    this.streamManager.abort(reason);\n  }\n}\n\nexport { LocalPdfManager, NetworkPdfManager };\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  AbortException,\n  assert,\n  MissingPDFException,\n  PasswordException,\n  PromiseCapability,\n  UnexpectedResponseException,\n  UnknownErrorException,\n  unreachable,\n} from \"./util.js\";\n\nconst CallbackKind = {\n  UNKNOWN: 0,\n  DATA: 1,\n  ERROR: 2,\n};\n\nconst StreamKind = {\n  UNKNOWN: 0,\n  CANCEL: 1,\n  CANCEL_COMPLETE: 2,\n  CLOSE: 3,\n  ENQUEUE: 4,\n  ERROR: 5,\n  PULL: 6,\n  PULL_COMPLETE: 7,\n  START_COMPLETE: 8,\n};\n\nfunction wrapReason(reason) {\n  if (\n    !(\n      reason instanceof Error ||\n      (typeof reason === \"object\" && reason !== null)\n    )\n  ) {\n    unreachable(\n      'wrapReason: Expected \"reason\" to be a (possibly cloned) Error.'\n    );\n  }\n  switch (reason.name) {\n    case \"AbortException\":\n      return new AbortException(reason.message);\n    case \"MissingPDFException\":\n      return new MissingPDFException(reason.message);\n    case \"PasswordException\":\n      return new PasswordException(reason.message, reason.code);\n    case \"UnexpectedResponseException\":\n      return new UnexpectedResponseException(reason.message, reason.status);\n    case \"UnknownErrorException\":\n      return new UnknownErrorException(reason.message, reason.details);\n    default:\n      return new UnknownErrorException(reason.message, reason.toString());\n  }\n}\n\nclass MessageHandler {\n  constructor(sourceName, targetName, comObj) {\n    this.sourceName = sourceName;\n    this.targetName = targetName;\n    this.comObj = comObj;\n    this.callbackId = 1;\n    this.streamId = 1;\n    this.streamSinks = Object.create(null);\n    this.streamControllers = Object.create(null);\n    this.callbackCapabilities = Object.create(null);\n    this.actionHandler = Object.create(null);\n\n    this._onComObjOnMessage = event => {\n      const data = event.data;\n      if (data.targetName !== this.sourceName) {\n        return;\n      }\n      if (data.stream) {\n        this.#processStreamMessage(data);\n        return;\n      }\n      if (data.callback) {\n        const callbackId = data.callbackId;\n        const capability = this.callbackCapabilities[callbackId];\n        if (!capability) {\n          throw new Error(`Cannot resolve callback ${callbackId}`);\n        }\n        delete this.callbackCapabilities[callbackId];\n\n        if (data.callback === CallbackKind.DATA) {\n          capability.resolve(data.data);\n        } else if (data.callback === CallbackKind.ERROR) {\n          capability.reject(wrapReason(data.reason));\n        } else {\n          throw new Error(\"Unexpected callback case\");\n        }\n        return;\n      }\n      const action = this.actionHandler[data.action];\n      if (!action) {\n        throw new Error(`Unknown action from worker: ${data.action}`);\n      }\n      if (data.callbackId) {\n        const cbSourceName = this.sourceName;\n        const cbTargetName = data.sourceName;\n\n        new Promise(function (resolve) {\n          resolve(action(data.data));\n        }).then(\n          function (result) {\n            comObj.postMessage({\n              sourceName: cbSourceName,\n              targetName: cbTargetName,\n              callback: CallbackKind.DATA,\n              callbackId: data.callbackId,\n              data: result,\n            });\n          },\n          function (reason) {\n            comObj.postMessage({\n              sourceName: cbSourceName,\n              targetName: cbTargetName,\n              callback: CallbackKind.ERROR,\n              callbackId: data.callbackId,\n              reason: wrapReason(reason),\n            });\n          }\n        );\n        return;\n      }\n      if (data.streamId) {\n        this.#createStreamSink(data);\n        return;\n      }\n      action(data.data);\n    };\n    comObj.addEventListener(\"message\", this._onComObjOnMessage);\n  }\n\n  on(actionName, handler) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        typeof handler === \"function\",\n        'MessageHandler.on: Expected \"handler\" to be a function.'\n      );\n    }\n    const ah = this.actionHandler;\n    if (ah[actionName]) {\n      throw new Error(`There is already an actionName called \"${actionName}\"`);\n    }\n    ah[actionName] = handler;\n  }\n\n  /**\n   * Sends a message to the comObj to invoke the action with the supplied data.\n   * @param {string} actionName - Action to call.\n   * @param {JSON} data - JSON data to send.\n   * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n   */\n  send(actionName, data, transfers) {\n    this.comObj.postMessage(\n      {\n        sourceName: this.sourceName,\n        targetName: this.targetName,\n        action: actionName,\n        data,\n      },\n      transfers\n    );\n  }\n\n  /**\n   * Sends a message to the comObj to invoke the action with the supplied data.\n   * Expects that the other side will callback with the response.\n   * @param {string} actionName - Action to call.\n   * @param {JSON} data - JSON data to send.\n   * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n   * @returns {Promise} Promise to be resolved with response data.\n   */\n  sendWithPromise(actionName, data, transfers) {\n    const callbackId = this.callbackId++;\n    const capability = new PromiseCapability();\n    this.callbackCapabilities[callbackId] = capability;\n    try {\n      this.comObj.postMessage(\n        {\n          sourceName: this.sourceName,\n          targetName: this.targetName,\n          action: actionName,\n          callbackId,\n          data,\n        },\n        transfers\n      );\n    } catch (ex) {\n      capability.reject(ex);\n    }\n    return capability.promise;\n  }\n\n  /**\n   * Sends a message to the comObj to invoke the action with the supplied data.\n   * Expect that the other side will callback to signal 'start_complete'.\n   * @param {string} actionName - Action to call.\n   * @param {JSON} data - JSON data to send.\n   * @param {Object} queueingStrategy - Strategy to signal backpressure based on\n   *                 internal queue.\n   * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n   * @returns {ReadableStream} ReadableStream to read data in chunks.\n   */\n  sendWithStream(actionName, data, queueingStrategy, transfers) {\n    const streamId = this.streamId++,\n      sourceName = this.sourceName,\n      targetName = this.targetName,\n      comObj = this.comObj;\n\n    return new ReadableStream(\n      {\n        start: controller => {\n          const startCapability = new PromiseCapability();\n          this.streamControllers[streamId] = {\n            controller,\n            startCall: startCapability,\n            pullCall: null,\n            cancelCall: null,\n            isClosed: false,\n          };\n          comObj.postMessage(\n            {\n              sourceName,\n              targetName,\n              action: actionName,\n              streamId,\n              data,\n              desiredSize: controller.desiredSize,\n            },\n            transfers\n          );\n          // Return Promise for Async process, to signal success/failure.\n          return startCapability.promise;\n        },\n\n        pull: controller => {\n          const pullCapability = new PromiseCapability();\n          this.streamControllers[streamId].pullCall = pullCapability;\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.PULL,\n            streamId,\n            desiredSize: controller.desiredSize,\n          });\n          // Returning Promise will not call \"pull\"\n          // again until current pull is resolved.\n          return pullCapability.promise;\n        },\n\n        cancel: reason => {\n          assert(reason instanceof Error, \"cancel must have a valid reason\");\n          const cancelCapability = new PromiseCapability();\n          this.streamControllers[streamId].cancelCall = cancelCapability;\n          this.streamControllers[streamId].isClosed = true;\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.CANCEL,\n            streamId,\n            reason: wrapReason(reason),\n          });\n          // Return Promise to signal success or failure.\n          return cancelCapability.promise;\n        },\n      },\n      queueingStrategy\n    );\n  }\n\n  #createStreamSink(data) {\n    const streamId = data.streamId,\n      sourceName = this.sourceName,\n      targetName = data.sourceName,\n      comObj = this.comObj;\n    const self = this,\n      action = this.actionHandler[data.action];\n\n    const streamSink = {\n      enqueue(chunk, size = 1, transfers) {\n        if (this.isCancelled) {\n          return;\n        }\n        const lastDesiredSize = this.desiredSize;\n        this.desiredSize -= size;\n        // Enqueue decreases the desiredSize property of sink,\n        // so when it changes from positive to negative,\n        // set ready as unresolved promise.\n        if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n          this.sinkCapability = new PromiseCapability();\n          this.ready = this.sinkCapability.promise;\n        }\n        comObj.postMessage(\n          {\n            sourceName,\n            targetName,\n            stream: StreamKind.ENQUEUE,\n            streamId,\n            chunk,\n          },\n          transfers\n        );\n      },\n\n      close() {\n        if (this.isCancelled) {\n          return;\n        }\n        this.isCancelled = true;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.CLOSE,\n          streamId,\n        });\n        delete self.streamSinks[streamId];\n      },\n\n      error(reason) {\n        assert(reason instanceof Error, \"error must have a valid reason\");\n        if (this.isCancelled) {\n          return;\n        }\n        this.isCancelled = true;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.ERROR,\n          streamId,\n          reason: wrapReason(reason),\n        });\n      },\n\n      sinkCapability: new PromiseCapability(),\n      onPull: null,\n      onCancel: null,\n      isCancelled: false,\n      desiredSize: data.desiredSize,\n      ready: null,\n    };\n\n    streamSink.sinkCapability.resolve();\n    streamSink.ready = streamSink.sinkCapability.promise;\n    this.streamSinks[streamId] = streamSink;\n\n    new Promise(function (resolve) {\n      resolve(action(data.data, streamSink));\n    }).then(\n      function () {\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.START_COMPLETE,\n          streamId,\n          success: true,\n        });\n      },\n      function (reason) {\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.START_COMPLETE,\n          streamId,\n          reason: wrapReason(reason),\n        });\n      }\n    );\n  }\n\n  #processStreamMessage(data) {\n    const streamId = data.streamId,\n      sourceName = this.sourceName,\n      targetName = data.sourceName,\n      comObj = this.comObj;\n    const streamController = this.streamControllers[streamId],\n      streamSink = this.streamSinks[streamId];\n\n    switch (data.stream) {\n      case StreamKind.START_COMPLETE:\n        if (data.success) {\n          streamController.startCall.resolve();\n        } else {\n          streamController.startCall.reject(wrapReason(data.reason));\n        }\n        break;\n      case StreamKind.PULL_COMPLETE:\n        if (data.success) {\n          streamController.pullCall.resolve();\n        } else {\n          streamController.pullCall.reject(wrapReason(data.reason));\n        }\n        break;\n      case StreamKind.PULL:\n        // Ignore any pull after close is called.\n        if (!streamSink) {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.PULL_COMPLETE,\n            streamId,\n            success: true,\n          });\n          break;\n        }\n        // Pull increases the desiredSize property of sink, so when it changes\n        // from negative to positive, set ready property as resolved promise.\n        if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n          streamSink.sinkCapability.resolve();\n        }\n        // Reset desiredSize property of sink on every pull.\n        streamSink.desiredSize = data.desiredSize;\n\n        new Promise(function (resolve) {\n          resolve(streamSink.onPull?.());\n        }).then(\n          function () {\n            comObj.postMessage({\n              sourceName,\n              targetName,\n              stream: StreamKind.PULL_COMPLETE,\n              streamId,\n              success: true,\n            });\n          },\n          function (reason) {\n            comObj.postMessage({\n              sourceName,\n              targetName,\n              stream: StreamKind.PULL_COMPLETE,\n              streamId,\n              reason: wrapReason(reason),\n            });\n          }\n        );\n        break;\n      case StreamKind.ENQUEUE:\n        assert(streamController, \"enqueue should have stream controller\");\n        if (streamController.isClosed) {\n          break;\n        }\n        streamController.controller.enqueue(data.chunk);\n        break;\n      case StreamKind.CLOSE:\n        assert(streamController, \"close should have stream controller\");\n        if (streamController.isClosed) {\n          break;\n        }\n        streamController.isClosed = true;\n        streamController.controller.close();\n        this.#deleteStreamController(streamController, streamId);\n        break;\n      case StreamKind.ERROR:\n        assert(streamController, \"error should have stream controller\");\n        streamController.controller.error(wrapReason(data.reason));\n        this.#deleteStreamController(streamController, streamId);\n        break;\n      case StreamKind.CANCEL_COMPLETE:\n        if (data.success) {\n          streamController.cancelCall.resolve();\n        } else {\n          streamController.cancelCall.reject(wrapReason(data.reason));\n        }\n        this.#deleteStreamController(streamController, streamId);\n        break;\n      case StreamKind.CANCEL:\n        if (!streamSink) {\n          break;\n        }\n\n        new Promise(function (resolve) {\n          resolve(streamSink.onCancel?.(wrapReason(data.reason)));\n        }).then(\n          function () {\n            comObj.postMessage({\n              sourceName,\n              targetName,\n              stream: StreamKind.CANCEL_COMPLETE,\n              streamId,\n              success: true,\n            });\n          },\n          function (reason) {\n            comObj.postMessage({\n              sourceName,\n              targetName,\n              stream: StreamKind.CANCEL_COMPLETE,\n              streamId,\n              reason: wrapReason(reason),\n            });\n          }\n        );\n        streamSink.sinkCapability.reject(wrapReason(data.reason));\n        streamSink.isCancelled = true;\n        delete this.streamSinks[streamId];\n        break;\n      default:\n        throw new Error(\"Unexpected stream case\");\n    }\n  }\n\n  async #deleteStreamController(streamController, streamId) {\n    // Delete the `streamController` only when the start, pull, and cancel\n    // capabilities have settled, to prevent `TypeError`s.\n    await Promise.allSettled([\n      streamController.startCall?.promise,\n      streamController.pullCall?.promise,\n      streamController.cancelCall?.promise,\n    ]);\n    delete this.streamControllers[streamId];\n  }\n\n  destroy() {\n    this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n  }\n}\n\nexport { MessageHandler };\n","/* Copyright 2019 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert } from \"../shared/util.js\";\n\n/** @implements {IPDFStream} */\nclass PDFWorkerStream {\n  constructor(msgHandler) {\n    this._msgHandler = msgHandler;\n    this._contentLength = null;\n    this._fullRequestReader = null;\n    this._rangeRequestReaders = [];\n  }\n\n  getFullReader() {\n    assert(\n      !this._fullRequestReader,\n      \"PDFWorkerStream.getFullReader can only be called once.\"\n    );\n    this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);\n    return this._fullRequestReader;\n  }\n\n  getRangeReader(begin, end) {\n    const reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);\n    this._rangeRequestReaders.push(reader);\n    return reader;\n  }\n\n  cancelAllRequests(reason) {\n    this._fullRequestReader?.cancel(reason);\n\n    for (const reader of this._rangeRequestReaders.slice(0)) {\n      reader.cancel(reason);\n    }\n  }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFWorkerStreamReader {\n  constructor(msgHandler) {\n    this._msgHandler = msgHandler;\n    this.onProgress = null;\n\n    this._contentLength = null;\n    this._isRangeSupported = false;\n    this._isStreamingSupported = false;\n\n    const readableStream = this._msgHandler.sendWithStream(\"GetReader\");\n    this._reader = readableStream.getReader();\n\n    this._headersReady = this._msgHandler\n      .sendWithPromise(\"ReaderHeadersReady\")\n      .then(data => {\n        this._isStreamingSupported = data.isStreamingSupported;\n        this._isRangeSupported = data.isRangeSupported;\n        this._contentLength = data.contentLength;\n      });\n  }\n\n  get headersReady() {\n    return this._headersReady;\n  }\n\n  get contentLength() {\n    return this._contentLength;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  get isRangeSupported() {\n    return this._isRangeSupported;\n  }\n\n  async read() {\n    const { value, done } = await this._reader.read();\n    if (done) {\n      return { value: undefined, done: true };\n    }\n    // `value` is wrapped into Uint8Array, we need to\n    // unwrap it to ArrayBuffer for further processing.\n    return { value: value.buffer, done: false };\n  }\n\n  cancel(reason) {\n    this._reader.cancel(reason);\n  }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFWorkerStreamRangeReader {\n  constructor(begin, end, msgHandler) {\n    this._msgHandler = msgHandler;\n    this.onProgress = null;\n\n    const readableStream = this._msgHandler.sendWithStream(\"GetRangeReader\", {\n      begin,\n      end,\n    });\n    this._reader = readableStream.getReader();\n  }\n\n  get isStreamingSupported() {\n    return false;\n  }\n\n  async read() {\n    const { value, done } = await this._reader.read();\n    if (done) {\n      return { value: undefined, done: true };\n    }\n    return { value: value.buffer, done: false };\n  }\n\n  cancel(reason) {\n    this._reader.cancel(reason);\n  }\n}\n\nexport { PDFWorkerStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  AbortException,\n  assert,\n  getVerbosityLevel,\n  info,\n  InvalidPDFException,\n  isNodeJS,\n  MissingPDFException,\n  PasswordException,\n  PromiseCapability,\n  setVerbosityLevel,\n  stringToPDFString,\n  UnexpectedResponseException,\n  UnknownErrorException,\n  VerbosityLevel,\n  warn,\n} from \"../shared/util.js\";\nimport {\n  arrayBuffersToBytes,\n  getNewAnnotationsMap,\n  XRefParseException,\n} from \"./core_utils.js\";\nimport { Dict, Ref } from \"./primitives.js\";\nimport { LocalPdfManager, NetworkPdfManager } from \"./pdf_manager.js\";\nimport { AnnotationFactory } from \"./annotation.js\";\nimport { clearGlobalCaches } from \"./cleanup_helper.js\";\nimport { incrementalUpdate } from \"./writer.js\";\nimport { MessageHandler } from \"../shared/message_handler.js\";\nimport { PDFWorkerStream } from \"./worker_stream.js\";\nimport { StructTreeRoot } from \"./struct_tree.js\";\n\nclass WorkerTask {\n  constructor(name) {\n    this.name = name;\n    this.terminated = false;\n    this._capability = new PromiseCapability();\n  }\n\n  get finished() {\n    return this._capability.promise;\n  }\n\n  finish() {\n    this._capability.resolve();\n  }\n\n  terminate() {\n    this.terminated = true;\n  }\n\n  ensureNotTerminated() {\n    if (this.terminated) {\n      throw new Error(\"Worker task was terminated\");\n    }\n  }\n}\n\nclass WorkerMessageHandler {\n  static setup(handler, port) {\n    let testMessageProcessed = false;\n    handler.on(\"test\", function (data) {\n      if (testMessageProcessed) {\n        return; // we already processed 'test' message once\n      }\n      testMessageProcessed = true;\n\n      // Ensure that `TypedArray`s can be sent to the worker.\n      handler.send(\"test\", data instanceof Uint8Array);\n    });\n\n    handler.on(\"configure\", function (data) {\n      setVerbosityLevel(data.verbosity);\n    });\n\n    handler.on(\"GetDocRequest\", function (data) {\n      return WorkerMessageHandler.createDocumentHandler(data, port);\n    });\n  }\n\n  static createDocumentHandler(docParams, port) {\n    // This context is actually holds references on pdfManager and handler,\n    // until the latter is destroyed.\n    let pdfManager;\n    let terminated = false;\n    let cancelXHRs = null;\n    const WorkerTasks = new Set();\n    const verbosity = getVerbosityLevel();\n\n    const { docId, apiVersion } = docParams;\n    const workerVersion =\n      typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"TESTING\")\n        ? PDFJSDev.eval(\"BUNDLE_VERSION\")\n        : null;\n    if (apiVersion !== workerVersion) {\n      throw new Error(\n        `The API version \"${apiVersion}\" does not match ` +\n          `the Worker version \"${workerVersion}\".`\n      );\n    }\n\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n      // Fail early, and predictably, rather than having (some) fonts fail to\n      // load/render with slightly cryptic error messages in environments where\n      // the `Array.prototype` has been *incorrectly* extended.\n      //\n      // PLEASE NOTE: We do *not* want to slow down font parsing by adding\n      //              `hasOwnProperty` checks all over the code-base.\n      const enumerableProperties = [];\n      for (const property in []) {\n        enumerableProperties.push(property);\n      }\n      if (enumerableProperties.length) {\n        throw new Error(\n          \"The `Array.prototype` contains unexpected enumerable properties: \" +\n            enumerableProperties.join(\", \") +\n            \"; thus breaking e.g. `for...in` iteration of `Array`s.\"\n        );\n      }\n    }\n    const workerHandlerName = docId + \"_worker\";\n    let handler = new MessageHandler(workerHandlerName, docId, port);\n\n    function ensureNotTerminated() {\n      if (terminated) {\n        throw new Error(\"Worker was terminated\");\n      }\n    }\n\n    function startWorkerTask(task) {\n      WorkerTasks.add(task);\n    }\n\n    function finishWorkerTask(task) {\n      task.finish();\n      WorkerTasks.delete(task);\n    }\n\n    async function loadDocument(recoveryMode) {\n      await pdfManager.ensureDoc(\"checkHeader\");\n      await pdfManager.ensureDoc(\"parseStartXRef\");\n      await pdfManager.ensureDoc(\"parse\", [recoveryMode]);\n\n      // Check that at least the first page can be successfully loaded,\n      // since otherwise the XRef table is definitely not valid.\n      await pdfManager.ensureDoc(\"checkFirstPage\", [recoveryMode]);\n      // Check that the last page can be successfully loaded, to ensure that\n      // `numPages` is correct, and fallback to walking the entire /Pages-tree.\n      await pdfManager.ensureDoc(\"checkLastPage\", [recoveryMode]);\n\n      const isPureXfa = await pdfManager.ensureDoc(\"isPureXfa\");\n      if (isPureXfa) {\n        const task = new WorkerTask(\"loadXfaFonts\");\n        startWorkerTask(task);\n        await Promise.all([\n          pdfManager\n            .loadXfaFonts(handler, task)\n            .catch(reason => {\n              // Ignore errors, to allow the document to load.\n            })\n            .then(() => finishWorkerTask(task)),\n          pdfManager.loadXfaImages(),\n        ]);\n      }\n\n      const [numPages, fingerprints] = await Promise.all([\n        pdfManager.ensureDoc(\"numPages\"),\n        pdfManager.ensureDoc(\"fingerprints\"),\n      ]);\n\n      // Get htmlForXfa after numPages to avoid to create HTML twice.\n      const htmlForXfa = isPureXfa\n        ? await pdfManager.ensureDoc(\"htmlForXfa\")\n        : null;\n\n      return { numPages, fingerprints, htmlForXfa };\n    }\n\n    function getPdfManager({\n      data,\n      password,\n      disableAutoFetch,\n      rangeChunkSize,\n      length,\n      docBaseUrl,\n      enableXfa,\n      evaluatorOptions,\n    }) {\n      const pdfManagerArgs = {\n        source: null,\n        disableAutoFetch,\n        docBaseUrl,\n        docId,\n        enableXfa,\n        evaluatorOptions,\n        handler,\n        length,\n        password,\n        rangeChunkSize,\n      };\n      const pdfManagerCapability = new PromiseCapability();\n      let newPdfManager;\n\n      if (data) {\n        try {\n          pdfManagerArgs.source = data;\n\n          newPdfManager = new LocalPdfManager(pdfManagerArgs);\n          pdfManagerCapability.resolve(newPdfManager);\n        } catch (ex) {\n          pdfManagerCapability.reject(ex);\n        }\n        return pdfManagerCapability.promise;\n      }\n\n      let pdfStream,\n        cachedChunks = [];\n      try {\n        pdfStream = new PDFWorkerStream(handler);\n      } catch (ex) {\n        pdfManagerCapability.reject(ex);\n        return pdfManagerCapability.promise;\n      }\n\n      const fullRequest = pdfStream.getFullReader();\n      fullRequest.headersReady\n        .then(function () {\n          if (!fullRequest.isRangeSupported) {\n            return;\n          }\n          pdfManagerArgs.source = pdfStream;\n          pdfManagerArgs.length = fullRequest.contentLength;\n          // We don't need auto-fetch when streaming is enabled.\n          pdfManagerArgs.disableAutoFetch ||= fullRequest.isStreamingSupported;\n\n          newPdfManager = new NetworkPdfManager(pdfManagerArgs);\n          // There may be a chance that `newPdfManager` is not initialized for\n          // the first few runs of `readchunk` block of code. Be sure to send\n          // all cached chunks, if any, to chunked_stream via pdf_manager.\n          for (const chunk of cachedChunks) {\n            newPdfManager.sendProgressiveData(chunk);\n          }\n\n          cachedChunks = [];\n          pdfManagerCapability.resolve(newPdfManager);\n          cancelXHRs = null;\n        })\n        .catch(function (reason) {\n          pdfManagerCapability.reject(reason);\n          cancelXHRs = null;\n        });\n\n      let loaded = 0;\n      const flushChunks = function () {\n        const pdfFile = arrayBuffersToBytes(cachedChunks);\n        if (length && pdfFile.length !== length) {\n          warn(\"reported HTTP length is different from actual\");\n        }\n        // the data is array, instantiating directly from it\n        try {\n          pdfManagerArgs.source = pdfFile;\n\n          newPdfManager = new LocalPdfManager(pdfManagerArgs);\n          pdfManagerCapability.resolve(newPdfManager);\n        } catch (ex) {\n          pdfManagerCapability.reject(ex);\n        }\n        cachedChunks = [];\n      };\n      new Promise(function (resolve, reject) {\n        const readChunk = function ({ value, done }) {\n          try {\n            ensureNotTerminated();\n            if (done) {\n              if (!newPdfManager) {\n                flushChunks();\n              }\n              cancelXHRs = null;\n              return;\n            }\n            if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n              assert(\n                value instanceof ArrayBuffer,\n                \"readChunk (getPdfManager) - expected an ArrayBuffer.\"\n              );\n            }\n            loaded += value.byteLength;\n\n            if (!fullRequest.isStreamingSupported) {\n              handler.send(\"DocProgress\", {\n                loaded,\n                total: Math.max(loaded, fullRequest.contentLength || 0),\n              });\n            }\n\n            if (newPdfManager) {\n              newPdfManager.sendProgressiveData(value);\n            } else {\n              cachedChunks.push(value);\n            }\n            fullRequest.read().then(readChunk, reject);\n          } catch (e) {\n            reject(e);\n          }\n        };\n        fullRequest.read().then(readChunk, reject);\n      }).catch(function (e) {\n        pdfManagerCapability.reject(e);\n        cancelXHRs = null;\n      });\n\n      cancelXHRs = function (reason) {\n        pdfStream.cancelAllRequests(reason);\n      };\n\n      return pdfManagerCapability.promise;\n    }\n\n    function setupDoc(data) {\n      function onSuccess(doc) {\n        ensureNotTerminated();\n        handler.send(\"GetDoc\", { pdfInfo: doc });\n      }\n\n      function onFailure(ex) {\n        ensureNotTerminated();\n\n        if (ex instanceof PasswordException) {\n          const task = new WorkerTask(`PasswordException: response ${ex.code}`);\n          startWorkerTask(task);\n\n          handler\n            .sendWithPromise(\"PasswordRequest\", ex)\n            .then(function ({ password }) {\n              finishWorkerTask(task);\n              pdfManager.updatePassword(password);\n              pdfManagerReady();\n            })\n            .catch(function () {\n              finishWorkerTask(task);\n              handler.send(\"DocException\", ex);\n            });\n        } else if (\n          ex instanceof InvalidPDFException ||\n          ex instanceof MissingPDFException ||\n          ex instanceof UnexpectedResponseException ||\n          ex instanceof UnknownErrorException\n        ) {\n          handler.send(\"DocException\", ex);\n        } else {\n          handler.send(\n            \"DocException\",\n            new UnknownErrorException(ex.message, ex.toString())\n          );\n        }\n      }\n\n      function pdfManagerReady() {\n        ensureNotTerminated();\n\n        loadDocument(false).then(onSuccess, function (reason) {\n          ensureNotTerminated();\n\n          // Try again with recoveryMode == true\n          if (!(reason instanceof XRefParseException)) {\n            onFailure(reason);\n            return;\n          }\n          pdfManager.requestLoadedStream().then(function () {\n            ensureNotTerminated();\n\n            loadDocument(true).then(onSuccess, onFailure);\n          });\n        });\n      }\n\n      ensureNotTerminated();\n\n      getPdfManager(data)\n        .then(function (newPdfManager) {\n          if (terminated) {\n            // We were in a process of setting up the manager, but it got\n            // terminated in the middle.\n            newPdfManager.terminate(\n              new AbortException(\"Worker was terminated.\")\n            );\n            throw new Error(\"Worker was terminated\");\n          }\n          pdfManager = newPdfManager;\n\n          pdfManager.requestLoadedStream(/* noFetch = */ true).then(stream => {\n            handler.send(\"DataLoaded\", { length: stream.bytes.byteLength });\n          });\n        })\n        .then(pdfManagerReady, onFailure);\n    }\n\n    handler.on(\"GetPage\", function (data) {\n      return pdfManager.getPage(data.pageIndex).then(function (page) {\n        return Promise.all([\n          pdfManager.ensure(page, \"rotate\"),\n          pdfManager.ensure(page, \"ref\"),\n          pdfManager.ensure(page, \"userUnit\"),\n          pdfManager.ensure(page, \"view\"),\n        ]).then(function ([rotate, ref, userUnit, view]) {\n          return {\n            rotate,\n            ref,\n            userUnit,\n            view,\n          };\n        });\n      });\n    });\n\n    handler.on(\"GetPageIndex\", function (data) {\n      const pageRef = Ref.get(data.num, data.gen);\n      return pdfManager.ensureCatalog(\"getPageIndex\", [pageRef]);\n    });\n\n    handler.on(\"GetDestinations\", function (data) {\n      return pdfManager.ensureCatalog(\"destinations\");\n    });\n\n    handler.on(\"GetDestination\", function (data) {\n      return pdfManager.ensureCatalog(\"getDestination\", [data.id]);\n    });\n\n    handler.on(\"GetPageLabels\", function (data) {\n      return pdfManager.ensureCatalog(\"pageLabels\");\n    });\n\n    handler.on(\"GetPageLayout\", function (data) {\n      return pdfManager.ensureCatalog(\"pageLayout\");\n    });\n\n    handler.on(\"GetPageMode\", function (data) {\n      return pdfManager.ensureCatalog(\"pageMode\");\n    });\n\n    handler.on(\"GetViewerPreferences\", function (data) {\n      return pdfManager.ensureCatalog(\"viewerPreferences\");\n    });\n\n    handler.on(\"GetOpenAction\", function (data) {\n      return pdfManager.ensureCatalog(\"openAction\");\n    });\n\n    handler.on(\"GetAttachments\", function (data) {\n      return pdfManager.ensureCatalog(\"attachments\");\n    });\n\n    handler.on(\"GetDocJSActions\", function (data) {\n      return pdfManager.ensureCatalog(\"jsActions\");\n    });\n\n    handler.on(\"GetPageJSActions\", function ({ pageIndex }) {\n      return pdfManager.getPage(pageIndex).then(function (page) {\n        return pdfManager.ensure(page, \"jsActions\");\n      });\n    });\n\n    handler.on(\"GetOutline\", function (data) {\n      return pdfManager.ensureCatalog(\"documentOutline\");\n    });\n\n    handler.on(\"GetOptionalContentConfig\", function (data) {\n      return pdfManager.ensureCatalog(\"optionalContentConfig\");\n    });\n\n    handler.on(\"GetPermissions\", function (data) {\n      return pdfManager.ensureCatalog(\"permissions\");\n    });\n\n    handler.on(\"GetMetadata\", function (data) {\n      return Promise.all([\n        pdfManager.ensureDoc(\"documentInfo\"),\n        pdfManager.ensureCatalog(\"metadata\"),\n      ]);\n    });\n\n    handler.on(\"GetMarkInfo\", function (data) {\n      return pdfManager.ensureCatalog(\"markInfo\");\n    });\n\n    handler.on(\"GetData\", function (data) {\n      return pdfManager.requestLoadedStream().then(function (stream) {\n        return stream.bytes;\n      });\n    });\n\n    handler.on(\"GetAnnotations\", function ({ pageIndex, intent }) {\n      return pdfManager.getPage(pageIndex).then(function (page) {\n        const task = new WorkerTask(`GetAnnotations: page ${pageIndex}`);\n        startWorkerTask(task);\n\n        return page.getAnnotationsData(handler, task, intent).then(\n          data => {\n            finishWorkerTask(task);\n            return data;\n          },\n          reason => {\n            finishWorkerTask(task);\n            throw reason;\n          }\n        );\n      });\n    });\n\n    handler.on(\"GetFieldObjects\", function (data) {\n      return pdfManager.ensureDoc(\"fieldObjects\");\n    });\n\n    handler.on(\"HasJSActions\", function (data) {\n      return pdfManager.ensureDoc(\"hasJSActions\");\n    });\n\n    handler.on(\"GetCalculationOrderIds\", function (data) {\n      return pdfManager.ensureDoc(\"calculationOrderIds\");\n    });\n\n    handler.on(\n      \"SaveDocument\",\n      async function ({ isPureXfa, numPages, annotationStorage, filename }) {\n        const globalPromises = [\n          pdfManager.requestLoadedStream(),\n          pdfManager.ensureCatalog(\"acroForm\"),\n          pdfManager.ensureCatalog(\"acroFormRef\"),\n          pdfManager.ensureDoc(\"startXRef\"),\n          pdfManager.ensureDoc(\"xref\"),\n          pdfManager.ensureDoc(\"linearization\"),\n          pdfManager.ensureCatalog(\"structTreeRoot\"),\n        ];\n        const promises = [];\n\n        const newAnnotationsByPage = !isPureXfa\n          ? getNewAnnotationsMap(annotationStorage)\n          : null;\n        const [\n          stream,\n          acroForm,\n          acroFormRef,\n          startXRef,\n          xref,\n          linearization,\n          _structTreeRoot,\n        ] = await Promise.all(globalPromises);\n        const catalogRef = xref.trailer.getRaw(\"Root\") || null;\n        let structTreeRoot;\n\n        if (newAnnotationsByPage) {\n          if (!_structTreeRoot) {\n            if (\n              await StructTreeRoot.canCreateStructureTree({\n                catalogRef,\n                pdfManager,\n                newAnnotationsByPage,\n              })\n            ) {\n              structTreeRoot = null;\n            }\n          } else if (\n            await _structTreeRoot.canUpdateStructTree({\n              pdfManager,\n              xref,\n              newAnnotationsByPage,\n            })\n          ) {\n            structTreeRoot = _structTreeRoot;\n          }\n\n          const imagePromises = AnnotationFactory.generateImages(\n            annotationStorage.values(),\n            xref,\n            pdfManager.evaluatorOptions.isOffscreenCanvasSupported\n          );\n          const newAnnotationPromises =\n            structTreeRoot === undefined ? promises : [];\n          for (const [pageIndex, annotations] of newAnnotationsByPage) {\n            newAnnotationPromises.push(\n              pdfManager.getPage(pageIndex).then(page => {\n                const task = new WorkerTask(`Save (editor): page ${pageIndex}`);\n                return page\n                  .saveNewAnnotations(handler, task, annotations, imagePromises)\n                  .finally(function () {\n                    finishWorkerTask(task);\n                  });\n              })\n            );\n          }\n          if (structTreeRoot === null) {\n            // No structTreeRoot exists, so we need to create one.\n            promises.push(\n              Promise.all(newAnnotationPromises).then(async newRefs => {\n                await StructTreeRoot.createStructureTree({\n                  newAnnotationsByPage,\n                  xref,\n                  catalogRef,\n                  pdfManager,\n                  newRefs,\n                });\n                return newRefs;\n              })\n            );\n          } else if (structTreeRoot) {\n            promises.push(\n              Promise.all(newAnnotationPromises).then(async newRefs => {\n                await structTreeRoot.updateStructureTree({\n                  newAnnotationsByPage,\n                  pdfManager,\n                  newRefs,\n                });\n                return newRefs;\n              })\n            );\n          }\n        }\n\n        if (isPureXfa) {\n          promises.push(pdfManager.serializeXfaData(annotationStorage));\n        } else {\n          for (let pageIndex = 0; pageIndex < numPages; pageIndex++) {\n            promises.push(\n              pdfManager.getPage(pageIndex).then(function (page) {\n                const task = new WorkerTask(`Save: page ${pageIndex}`);\n                return page\n                  .save(handler, task, annotationStorage)\n                  .finally(function () {\n                    finishWorkerTask(task);\n                  });\n              })\n            );\n          }\n        }\n        const refs = await Promise.all(promises);\n\n        let newRefs = [];\n        let xfaData = null;\n        if (isPureXfa) {\n          xfaData = refs[0];\n          if (!xfaData) {\n            return stream.bytes;\n          }\n        } else {\n          newRefs = refs.flat(2);\n\n          if (newRefs.length === 0) {\n            // No new refs so just return the initial bytes\n            return stream.bytes;\n          }\n        }\n\n        const needAppearances =\n          acroFormRef &&\n          acroForm instanceof Dict &&\n          newRefs.some(ref => ref.needAppearances);\n\n        const xfa = (acroForm instanceof Dict && acroForm.get(\"XFA\")) || null;\n        let xfaDatasetsRef = null;\n        let hasXfaDatasetsEntry = false;\n        if (Array.isArray(xfa)) {\n          for (let i = 0, ii = xfa.length; i < ii; i += 2) {\n            if (xfa[i] === \"datasets\") {\n              xfaDatasetsRef = xfa[i + 1];\n              hasXfaDatasetsEntry = true;\n            }\n          }\n          if (xfaDatasetsRef === null) {\n            xfaDatasetsRef = xref.getNewTemporaryRef();\n          }\n        } else if (xfa) {\n          // TODO: Support XFA streams.\n          warn(\"Unsupported XFA type.\");\n        }\n\n        let newXrefInfo = Object.create(null);\n        if (xref.trailer) {\n          // Get string info from Info in order to compute fileId.\n          const infoObj = Object.create(null);\n          const xrefInfo = xref.trailer.get(\"Info\") || null;\n          if (xrefInfo instanceof Dict) {\n            xrefInfo.forEach((key, value) => {\n              if (typeof value === \"string\") {\n                infoObj[key] = stringToPDFString(value);\n              }\n            });\n          }\n\n          newXrefInfo = {\n            rootRef: catalogRef,\n            encryptRef: xref.trailer.getRaw(\"Encrypt\") || null,\n            newRef: xref.getNewTemporaryRef(),\n            infoRef: xref.trailer.getRaw(\"Info\") || null,\n            info: infoObj,\n            fileIds: xref.trailer.get(\"ID\") || null,\n            startXRef: linearization\n              ? startXRef\n              : xref.lastXRefStreamPos ?? startXRef,\n            filename,\n          };\n        }\n\n        return incrementalUpdate({\n          originalData: stream.bytes,\n          xrefInfo: newXrefInfo,\n          newRefs,\n          xref,\n          hasXfa: !!xfa,\n          xfaDatasetsRef,\n          hasXfaDatasetsEntry,\n          needAppearances,\n          acroFormRef,\n          acroForm,\n          xfaData,\n        }).finally(() => {\n          xref.resetNewTemporaryRef();\n        });\n      }\n    );\n\n    handler.on(\"GetOperatorList\", function (data, sink) {\n      const pageIndex = data.pageIndex;\n      pdfManager.getPage(pageIndex).then(function (page) {\n        const task = new WorkerTask(`GetOperatorList: page ${pageIndex}`);\n        startWorkerTask(task);\n\n        // NOTE: Keep this condition in sync with the `info` helper function.\n        const start = verbosity >= VerbosityLevel.INFOS ? Date.now() : 0;\n\n        // Pre compile the pdf page and fetch the fonts/images.\n        page\n          .getOperatorList({\n            handler,\n            sink,\n            task,\n            intent: data.intent,\n            cacheKey: data.cacheKey,\n            annotationStorage: data.annotationStorage,\n          })\n          .then(\n            function (operatorListInfo) {\n              finishWorkerTask(task);\n\n              if (start) {\n                info(\n                  `page=${pageIndex + 1} - getOperatorList: time=` +\n                    `${Date.now() - start}ms, len=${operatorListInfo.length}`\n                );\n              }\n              sink.close();\n            },\n            function (reason) {\n              finishWorkerTask(task);\n              if (task.terminated) {\n                return; // ignoring errors from the terminated thread\n              }\n              sink.error(reason);\n\n              // TODO: Should `reason` be re-thrown here (currently that casues\n              //       \"Uncaught exception: ...\" messages in the console)?\n            }\n          );\n      });\n    });\n\n    handler.on(\"GetTextContent\", function (data, sink) {\n      const { pageIndex, includeMarkedContent, disableNormalization } = data;\n\n      pdfManager.getPage(pageIndex).then(function (page) {\n        const task = new WorkerTask(\"GetTextContent: page \" + pageIndex);\n        startWorkerTask(task);\n\n        // NOTE: Keep this condition in sync with the `info` helper function.\n        const start = verbosity >= VerbosityLevel.INFOS ? Date.now() : 0;\n\n        page\n          .extractTextContent({\n            handler,\n            task,\n            sink,\n            includeMarkedContent,\n            disableNormalization,\n          })\n          .then(\n            function () {\n              finishWorkerTask(task);\n\n              if (start) {\n                info(\n                  `page=${pageIndex + 1} - getTextContent: time=` +\n                    `${Date.now() - start}ms`\n                );\n              }\n              sink.close();\n            },\n            function (reason) {\n              finishWorkerTask(task);\n              if (task.terminated) {\n                return; // ignoring errors from the terminated thread\n              }\n              sink.error(reason);\n\n              // TODO: Should `reason` be re-thrown here (currently that casues\n              //       \"Uncaught exception: ...\" messages in the console)?\n            }\n          );\n      });\n    });\n\n    handler.on(\"GetStructTree\", function (data) {\n      return pdfManager.getPage(data.pageIndex).then(function (page) {\n        return pdfManager.ensure(page, \"getStructTree\");\n      });\n    });\n\n    handler.on(\"FontFallback\", function (data) {\n      return pdfManager.fontFallback(data.id, handler);\n    });\n\n    handler.on(\"Cleanup\", function (data) {\n      return pdfManager.cleanup(/* manuallyTriggered = */ true);\n    });\n\n    handler.on(\"Terminate\", function (data) {\n      terminated = true;\n\n      const waitOn = [];\n      if (pdfManager) {\n        pdfManager.terminate(new AbortException(\"Worker was terminated.\"));\n\n        const cleanupPromise = pdfManager.cleanup();\n        waitOn.push(cleanupPromise);\n\n        pdfManager = null;\n      } else {\n        clearGlobalCaches();\n      }\n      if (cancelXHRs) {\n        cancelXHRs(new AbortException(\"Worker was terminated.\"));\n      }\n\n      for (const task of WorkerTasks) {\n        waitOn.push(task.finished);\n        task.terminate();\n      }\n\n      return Promise.all(waitOn).then(function () {\n        // Notice that even if we destroying handler, resolved response promise\n        // must be sent back.\n        handler.destroy();\n        handler = null;\n      });\n    });\n\n    handler.on(\"Ready\", function (data) {\n      setupDoc(docParams);\n      docParams = null; // we don't need docParams anymore -- saving memory.\n    });\n\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      handler.on(\"GetXFADatasets\", function (data) {\n        return pdfManager.ensureDoc(\"xfaDatasets\");\n      });\n      handler.on(\"GetXRefPrevValue\", function (data) {\n        return pdfManager\n          .ensureXRef(\"trailer\")\n          .then(trailer => trailer.get(\"Prev\"));\n      });\n      handler.on(\"GetAnnotArray\", function (data) {\n        return pdfManager.getPage(data.pageIndex).then(function (page) {\n          return page.annotations.map(a => a.toString());\n        });\n      });\n    }\n\n    return workerHandlerName;\n  }\n\n  static initializeFromPort(port) {\n    const handler = new MessageHandler(\"worker\", \"main\", port);\n    WorkerMessageHandler.setup(handler, port);\n    handler.send(\"ready\", null);\n  }\n}\n\nfunction isMessagePort(maybePort) {\n  return (\n    typeof maybePort.postMessage === \"function\" && \"onmessage\" in maybePort\n  );\n}\n\n// Worker thread (and not Node.js)?\nif (\n  typeof window === \"undefined\" &&\n  !isNodeJS &&\n  typeof self !== \"undefined\" &&\n  isMessagePort(self)\n) {\n  WorkerMessageHandler.initializeFromPort(self);\n}\n\nexport { WorkerMessageHandler, WorkerTask };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WorkerMessageHandler } from \"./core/worker.js\";\n\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsVersion =\n  typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_VERSION\") : void 0;\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsBuild =\n  typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_BUILD\") : void 0;\n\nexport { WorkerMessageHandler };\n"],"names":["isCallable","require","tryToString","$TypeError","TypeError","module","exports","argument","isPossiblePrototype","$String","String","has","it","isPrototypeOf","Prototype","isObject","ArrayBuffer","DataView","uncurryThisAccessor","classof","prototype","O","byteLength","uncurryThis","arrayBufferByteLength","slice","error","global","toIndex","isDetached","detachTransferable","PROPER_STRUCTURED_CLONE_TRANSFER","structuredClone","min","Math","ArrayBufferPrototype","DataViewPrototype","isResizable","maxByteLength","getInt8","setInt8","arrayBuffer","newLength","preserveResizability","newByteLength","undefined","fixedLength","newBuffer","transfer","options","a","b","copyLength","i","NATIVE_ARRAY_BUFFER","DESCRIPTORS","hasOwn","createNonEnumerableProperty","defineBuiltIn","defineBuiltInAccessor","getPrototypeOf","setPrototypeOf","wellKnownSymbol","uid","InternalStateModule","enforceInternalState","enforce","getInternalState","get","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","Object","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQUIRED","NAME","Constructor","TypedArrayConstructorsList","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","isView","klass","getTypedArrayConstructor","proto","state","isTypedArray","aTypedArray","aTypedArrayConstructor","C","exportTypedArrayMethod","KEY","property","forced","ARRAY","TypedArrayConstructor","error2","exportTypedArrayStaticMethod","Function","configurable","lengthOfArrayLike","list","$length","index","length","arguments","result","toIndexedObject","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","value","includes","indexOf","bind","IndexedObject","toObject","TYPE","IS_FIND_LAST_INDEX","callbackfn","that","self","boundFunction","findLast","findLastIndex","isArray","getOwnPropertyDescriptor","SILENT_ON_NON_WRITABLE_LENGTH_SET","defineProperty","writable","len","A","k","toIntegerOrInfinity","$RangeError","RangeError","relativeIndex","actualIndex","anObject","iteratorClose","iterator","fn","ENTRIES","toString","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","$Object","CORRECT_ARGUMENTS","tryGet","key","tag","callee","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","target","source","exceptions","keys","f","fails","F","constructor","done","createPropertyDescriptor","object","bitmap","enumerable","toPropertyKey","propertyKey","makeBuiltIn","name","descriptor","getter","set","setter","defineGlobalProperty","simple","unsafe","nonConfigurable","nonWritable","src","P","tryNodeRequire","$ArrayBuffer","$MessageChannel","MessageChannel","detach","WorkerThreads","channel","buffer","$detach","transferable","port1","postMessage","document","EXISTS","createElement","MAX_SAFE_INTEGER","IndexSizeError","s","c","m","DOMStringSizeError","HierarchyRequestError","WrongDocumentError","InvalidCharacterError","NoDataAllowedError","NoModificationAllowedError","NotFoundError","NotSupportedError","InUseAttributeError","InvalidStateError","SyntaxError","InvalidModificationError","NamespaceError","InvalidAccessError","ValidationError","TypeMismatchError","SecurityError","NetworkError","AbortError","URLMismatchError","QuotaExceededError","TimeoutError","InvalidNodeTypeError","DataCloneError","IS_DENO","IS_NODE","window","Deno","version","process","navigator","userAgent","versions","v8","match","split","$Error","Error","replace","TEST","arg","stack","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","test","dropEntries","prepareStackTrace","clearErrorStack","ERROR_STACK_INSTALLABLE","captureStackTrace","copyConstructorProperties","isForced","TARGET","GLOBAL","STATIC","stat","FORCED","targetProperty","sourceProperty","dontCallGetSet","sham","exec","NATIVE_BIND","FunctionPrototype","apply","call","Reflect","aCallable","hasOwnProperty","getDescriptor","PROPER","something","CONFIGURABLE","method","uncurryThisWithBind","aFunction","namespace","obj","next","getMethod","isNullOrUndefined","Iterators","ITERATOR","getIteratorMethod","usingIterator","iteratorMethod","V","func","getIteratorDirect","INVALID_SIZE","max","SetRecord","intSize","size","getIterator","numSize","check","globalThis","getBuiltIn","propertyIsEnumerable","dummy","Wrapper","NewTarget","NewTargetPrototype","store","functionToString","inspectSource","cause","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","getterFor","type","metadata","facade","STATE","ArrayPrototype","Array","documentAll","all","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","USE_SYMBOL_AS_UID","$Symbol","record","ITERATOR_INSTEAD_OF_RECORD","step","isArrayIteratorMethod","Result","stopped","ResultPrototype","iterable","unboundFunction","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","iterFn","stop","condition","callFn","kind","innerResult","innerError","create","defineBuiltIns","IteratorPrototype","createIterResultObject","ITERATOR_HELPER","WRAP_FOR_VALID_ITERATOR","setInternalState","createIteratorProxyPrototype","nextHandler","returnMethod","inner","WrapForValidIteratorPrototype","IteratorHelperPrototype","IteratorProxy","Iterator","counter","createIteratorProxy","callWithSafeIterationClosing","mapper","map","IS_PURE","BUGGY_SAFARI_ITERATORS","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","toLength","CONFIGURABLE_FUNCTION_NAME","join","CONFIGURABLE_LENGTH","TEMPLATE","arity","ceil","floor","trunc","x","n","$default","definePropertiesModule","enumBugKeys","html","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","activeXDocument","write","close","temp","parentWindow","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","style","display","appendChild","contentWindow","open","NullProtoObject","ActiveXObject","domain","Properties","V8_PROTOTYPE_DEFINE_BUG","objectKeys","defineProperties","props","IE8_DOM_DEFINE","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","current","propertyIsEnumerableModule","internalObjectKeys","concat","getOwnPropertyNames","getOwnPropertySymbols","CORRECT_PROTOTYPE_GETTER","push","names","$propertyIsEnumerable","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","__proto__","input","pref","val","valueOf","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","Target","Source","hasIndices","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","SetHelpers","iterate","Set","add","aSet","clone","getSetRecord","iterateSet","iterateSimple","remove","difference","other","otherRec","e","SetPrototype","intersection","isDisjointFrom","isSubsetOf","isSupersetOf","forEach","interruptible","createSetLike","symmetricDifference","keysIter","union","SHARED","mode","copyright","license","V8","IS_BROWSER","V8_VERSION","symbol","Symbol","integer","toPrimitive","prim","BigInt","number","requireObjectCoercible","toPositiveInteger","BYTES","offset","isSymbol","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","id","postfix","random","NATIVE_SYMBOL","passed","required","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","proxyAccessor","inheritIfRequired","normalizeStringArgument","installErrorCause","installErrorStack","FULL_NAME","wrapper","IS_AGGREGATE_ERROR","STACK_TRACE_LIMIT","OPTIONS_POSITION","path","ERROR_NAME","OriginalError","OriginalErrorPrototype","BaseError","WrappedError","message","$","setArrayLength","doesNotExceedSafeInteger","INCORRECT_TO_LENGTH","properErrorOnNonWritableLength","item","argCount","deletePropertyOrThrow","INCORRECT_RESULT","unshift","to","j","wrapErrorConstructorWithCause","WEB_ASSEMBLY","WebAssembly","exportGlobalErrorCauseWrapper","exportWebAssemblyErrorCauseWrapper","init","EvalError","ReferenceError","URIError","CompileError","LinkError","RuntimeError","regExpFlags","RegExp","RegExpPrototype","INDICES_SUPPORT","calls","expected","addGetter","chr","pairs","ArrayBufferViewCore","$findLastIndex","predicate","$findLast","toOffset","$set","WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS","array","TO_OBJECT_BUG","arrayLike","arrayToReversed","toReversed","arrayFromConstructorAndList","sort","toSorted","compareFn","arrayWith","isBigIntArray","toBigInt","PROPER_ORDER","actualValue","detached","$transfer","transferToFixedLength","anInstance","createProperty","CONSTRUCTOR","NativeIterator","IteratorConstructor","defineIteratorPrototypeAccessor","real","every","filter","find","reduce","reducer","noInitial","accumulator","some","toArray","setMethodAcceptSetLike","INCORRECT","from","DOMExceptionConstants","DOM_EXCEPTION","NativeDOMException","$DOMException","DOMException","DOMExceptionPrototype","argumentsLength","ERROR_HAS_STACK","DOM_EXCEPTION_HAS_STACK","BUGGY_DESCRIPTOR","FORCED_CONSTRUCTOR","PolyfilledDOMException","PolyfilledDOMExceptionPrototype","constant","constantName","INCORRECT_VALUE","validateArgumentsLength","$URLSearchParams","URLSearchParams","URLSearchParamsPrototype","append","$delete","params","$value","entries","v","dindex","found","entriesLength","entry","getAll","$has","values","count","isNodeJS","nw","electron","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","MAX_IMAGE_SIZE_TO_CACHE","LINE_FACTOR","LINE_DESCENT_FACTOR","BASELINE_FACTOR","RenderingIntentFlag","ANY","DISPLAY","PRINT","SAVE","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","OPLIST","AnnotationMode","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","AnnotationEditorPrefix","AnnotationEditorType","NONE","FREETEXT","HIGHLIGHT","STAMP","INK","AnnotationEditorParamsType","RESIZE","CREATE","FREETEXT_SIZE","FREETEXT_COLOR","FREETEXT_OPACITY","INK_COLOR","INK_THICKNESS","INK_OPACITY","HIGHLIGHT_COLOR","HIGHLIGHT_DEFAULT_COLOR","PermissionFlag","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","TextRenderingMode","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","TEXT","LINK","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","UNDERLINE","SQUIGGLY","STRIKEOUT","CARET","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","AnnotationReplyType","GROUP","REPLY","AnnotationFlag","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","AnnotationFieldFlag","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","AnnotationBorderStyleType","SOLID","DASHED","BEVELED","INSET","AnnotationActionEventType","E","X","D","U","Fo","Bl","PO","PC","PV","PI","K","DocumentActionEventType","WC","WS","DS","WP","DP","PageActionEventType","VerbosityLevel","ERRORS","WARNINGS","INFOS","CMapCompressionType","BINARY","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotation","endAnnotation","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","setVerbosityLevel","level","Number","isInteger","getVerbosityLevel","info","msg","console","log","warn","unreachable","assert","cond","_isValidProtocol","url","protocol","createValidAbsoluteUrl","baseUrl","addDefaultProtocol","startsWith","dots","tryConvertEncoding","stringToUTF8String","absoluteUrl","URL","shadow","prop","nonSerializable","BaseException","BaseExceptionClosure","PasswordException","code","UnknownErrorException","details","InvalidPDFException","MissingPDFException","UnexpectedResponseException","status","FormatError","AbortException","bytesToString","bytes","MAX_ARGUMENT_COUNT","fromCharCode","strBuf","chunkEnd","chunk","subarray","stringToBytes","str","charCodeAt","string32","objectSize","objectFromMap","isLittleEndian","buffer8","view32","isEvalSupported","FeatureTest","isOffscreenCanvasSupported","OffscreenCanvas","platform","isMac","isCSSRoundSupported","CSS","supports","hexNumbers","padStart","Util","makeHexColor","r","g","scaleMinMax","minMax","m1","m2","applyTransform","p","xt","yt","applyInverseTransform","d","getAxialAlignedBoundingBox","p1","p2","p3","p4","inverseTransform","singularValueDecompose2dScale","transpose","first","second","sqrt","sx","sy","normalizeRect","rect","intersect","rect1","rect2","xLow","xHigh","yLow","yHigh","bezierBoundingBox","x0","y0","x1","y1","x2","y2","x3","y3","tvalues","bounds","t","t1","t2","b2ac","sqrtb2ac","abs","mt","jlen","PDFStringTranslateTable","stringToPDFString","encoding","decoder","TextDecoder","fatal","decoded","decode","replaceAll","ex","ii","charCode","charAt","decodeURIComponent","escape","utf8StringToString","unescape","encodeURIComponent","isArrayBuffer","isArrayEqual","arr1","arr2","getModificationDate","date","Date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","PromiseCapability","settled","promise","Promise","resolve","reject","reason","NormalizeRegex","NormalizationMap","normalizeUnicode","Map","_","getUuid","crypto","randomUUID","buf","getRandomValues","AnnotationPrefix","CIRCULAR_REF","EOF","CmdCache","NameCache","RefCache","clearPrimitiveCaches","Name","Cmd","cmd","nonSerializableClosure","Dict","xref","_map","objId","suppressEncryption","__nonSerializable__","assignXref","newXref","key1","key2","key3","Ref","fetch","getAsync","fetchAsync","getArray","getRaw","getKeys","getRawValues","callback","empty","emptyDict","merge","_ref","dictArray","mergeSubDicts","mergedDict","properties","dict","subDict","clear","num","gen","fromString","ref","parseInt","RefSet","parent","_set","put","delete","RefSetCache","putAlias","aliasRef","isName","isCmd","isDict","isRefsEqual","v1","v2","BaseStream","isEmpty","isDataLoaded","getByte","getBytes","peekByte","peekedByte","pos","peekBytes","getUint16","b0","b1","getInt32","b2","b3","getByteRange","begin","end","getString","skip","reset","moveStart","makeSubStream","start","getBaseStreams","PDF_VERSION_REGEXP","getLookupTableFactory","initializer","lookup","MissingDataException","ParserEOFException","XRefEntryException","XRefParseException","arrayBuffersToBytes","arr","dataLength","getInheritableProperty","stopWhenFound","visited","ROMAN_NUMBER_MAP","toRomanNumerals","lowerCase","romanBuf","romanStr","log2","readInt8","readUint16","readUint32","isWhiteSpace","ch","parseXFAPath","positionPattern","component","escapePDFName","char","substring","escapeString","_collectJS","parents","element","js","collectActions","eventType","actions","additionalActionsDicts","additionalActions","action","actionDict","Action","XMLEntities","encodeToXmlString","codePointAt","entity","toUpperCase","validateFontName","fontFamily","mustWarn","re","ident","validateCSSFont","cssFontInfo","DEFAULT_CSS_FONT_OBLIQUE","DEFAULT_CSS_FONT_WEIGHT","CSS_FONT_WEIGHT_VALUES","fontWeight","italicAngle","weight","angle","parseFloat","isNaN","recoverJsURL","URL_OPEN_METHODS","regex","jsUrl","newWindow","numberToString","roundedValue","round","toFixed","getNewAnnotationsMap","annotationStorage","newAnnotationsByPage","annotations","pageIndex","isAscii","stringToUTF16HexString","stringToUTF16String","bigEndian","getRotationMatrix","rotation","width","height","Stream","strEnd","StringStream","NullStream","ChunkedStream","chunkSize","manager","_loadedChunks","numChunks","progressiveDataLength","lastSuccessfulEnsureByteChunk","getMissingChunks","chunks","numChunksLoaded","onReceiveData","beginChunk","endChunk","curChunk","onReceiveProgressiveData","position","ensureByte","ensureRange","nextEmptyChunk","hasChunk","ChunkedStreamSubstream","missingChunks","subStream","ChunkedStreamManager","pdfNetworkStream","args","rangeChunkSize","stream","disableAutoFetch","msgHandler","currRequestId","_chunksNeededByRequest","_requestsByChunk","_promisesByRequest","aborted","_loadedStreamCapability","sendRequest","rangeReader","getRangeReader","isStreamingSupported","onProgress","loaded","readChunk","chunkData","read","then","requestAllChunks","noFetch","_requestChunks","requestId","chunksNeeded","capability","chunksToRequest","requestIds","groupedChunksToRequest","groupChunks","groupedChunk","catch","getStream","requestRange","getBeginChunk","getEndChunk","requestRanges","ranges","range","groupedChunks","prevChunk","send","total","isProgressive","loadedRequests","lastChunk","onError","err","abort","cancelAllRequests","resizeRgbImage","dest","w1","h1","w2","h2","alpha01","COMPONENTS","xRatio","yRatio","newIndex","oldIndex","xScaled","w1Scanline","py","ColorSpace","numComps","getRgb","srcOffset","rgb","getRgbItem","destOffset","getRgbBuffer","bits","getOutputLength","inputLength","isPassthrough","isDefaultDecode","decodeMap","bpc","fillRgb","originalWidth","originalHeight","actualHeight","comps","rgbBuf","numComponentColors","needsResizing","allColors","colorMap","destPos","rgbPos","usesZeroToOneRange","_cache","cacheKey","localColorSpaceCache","parsedColorSpace","csName","csRef","getCached","localColorSpace","getByRef","getByName","parseAsync","cs","resources","pdfFunctionFactory","_parse","parse","_ref2","cachedColorSpace","fetchIfRef","singletons","gray","cmyk","PatternCS","colorSpaces","resourcesCS","baseCS","whitePoint","blackPoint","gamma","CalGrayCS","matrix","CalRGBCS","alt","altCS","hiVal","IndexedCS","tintFn","AlternateCS","LabCS","DeviceGrayCS","DeviceRgbCS","DeviceCmykCS","base","tmpBuf","scale","baseNumComps","baseBuf","scaled","tinted","highVal","outputDelta","lookupPos","q","toRgb","srcScale","y","XW","YW","ZW","XB","YB","ZB","G","AG","L","BRADFORD_SCALE_MATRIX","BRADFORD_SCALE_INVERSE_MATRIX","SRGB_D65_XYZ_TO_RGB_MATRIX","FLAT_WHITEPOINT_MATRIX","tempNormalizeMatrix","tempConvertMatrix1","tempConvertMatrix2","DECODE_L_CONSTANT","GR","GG","GB","MXA","MYA","MZA","MXB","MYB","MZB","MXC","MYC","MZC","matrixProduct","toFlat","sourceWhitePoint","LMS","toD65","D65X","D65Y","D65Z","sRGBTransferFunction","color","adjustToRange","decodeL","compensateBlackPoint","sourceBlackPoint","XYZ_Flat","zeroDecodeL","X_DST","X_SRC","Y_DST","Y_SRC","Z_DST","Z_SRC","X_Scale","X_Offset","Y_Scale","Y_Offset","Z_Scale","Z_Offset","normalizeWhitePointToFlat","XYZ_In","LMS_Flat","normalizeWhitePointToD65","LMS_D65","B","AGR","BGG","CGB","Y","Z","XYZ","XYZ_Black","XYZ_D65","SRGB","amin","amax","bmin","bmax","fn_g","high1","low2","high2","maxVal","Ls","as","bs","M","N","hexToInt","hexToStr","addHex","incHex","MAX_NUM_SIZE","MAX_ENCODED_NUM_SIZE","BinaryCMapStream","readByte","readNumber","last","readSigned","readHex","readHexNumber","sp","bufferSize","readHexSigned","sign","readString","BinaryCMapReader","cMap","extend","header","vertical","useCMap","tmp","sequence","dataSize","ucs2DataSize","subitemsCount","addCodespaceRange","mapOne","mapCidRange","mapBfRange","emptyBuffer","DecodeStream","maybeMinBufferLength","_rawMinBufferLength","bufferLength","eof","minBufferLength","readBlock","ensureBuffer","requested","buffer2","bufEnd","StreamsSequenceStream","streams","maybeLength","_onError","shift","baseStreamsBuf","baseStreams","Ascii85Stream","TILDA_CHAR","Z_LOWER_CHAR","AsciiHexStream","firstDigit","UPSTREAM_BLOCK_SIZE","maxDecodeLength","digit","ccittEOL","ccittEOF","twoDimPass","twoDimHoriz","twoDimVert0","twoDimVertR1","twoDimVertL1","twoDimVertR2","twoDimVertL2","twoDimVertR3","twoDimVertL3","twoDimTable","whiteTable1","whiteTable2","blackTable1","blackTable2","blackTable3","CCITTFaxDecoder","eoline","EndOfLine","byteAlign","EncodedByteAlign","columns","Columns","rows","Rows","eoblock","EndOfBlock","black","BlackIs1","codingLine","refLine","codingPos","row","nextLine2D","inputBits","inputBuf","outputBits","rowsDone","code1","_lookBits","_eatBits","readNextChar","refPos","blackPixels","code2","code3","_getTwoDimCode","_addPixels","_getBlackCode","_getWhiteCode","_addPixelsNeg","gotEOL","a1","_findTableCode","table","limit","limitValue","CCITTFaxStream","ccittFaxDecoder","codeLenCodeMap","lengthDecode","distDecode","fixedLitCodeTab","fixedDistCodeTab","FlateStream","cmf","flg","codeSize","codeBuf","getBits","getCode","codes","maxLen","codeLen","codeVal","generateHuffmanTable","lengths","endsStreamOnError","hdr","blockLen","block","litCodeTable","distCodeTable","numLitCodes","numDistCodes","numCodeLenCodes","codeLenCodeLengths","codeLenCodeTab","codeLengths","bitsLength","bitsOffset","what","repeatLength","dist","QeTable","qe","nmps","nlps","switchFlag","ArithmeticDecoder","bp","dataEnd","chigh","clow","byteIn","ct","readBit","contexts","cx_index","cx_mps","qeTableIcx","qeIcx","Jbig2Error","ContextCache","getContexts","DecodingContext","contextCache","cache","MAX_INT_32","MIN_INT_32","decodeInteger","procedure","prev","readBits","bit","signedValue","decodeIAID","codeLength","SegmentTypes","CodingTemplates","RefinementTemplates","coding","reference","ReusedContexts","RefinementReusedContexts","decodeBitmapTemplate0","decodingContext","contextLabel","pixel","row1","row2","OLD_PIXEL_MASK","decodeBitmap","mmr","templateIndex","prediction","at","Reader","decodeMMRBitmap","useskip","template","templateLength","templateX","templateY","changingTemplateEntries","reuseMask","minX","maxX","minY","changingEntriesLength","changingTemplateX","changingTemplateY","changingTemplateBit","sbb_left","sbb_top","sbb_right","pseudoPixelContext","ltp","i0","j0","sltp","decodeRefinement","referenceBitmap","offsetX","offsetY","codingTemplate","codingTemplateLength","codingTemplateX","codingTemplateY","referenceTemplate","referenceTemplateLength","referenceTemplateX","referenceTemplateY","referenceWidth","referenceHeight","decodeSymbolDictionary","huffman","refinement","symbols","numberOfNewSymbols","numberOfExportedSymbols","huffmanTables","refinementTemplateIndex","refinementAt","huffmanInput","newSymbols","currentHeight","symbolCodeLength","tableB1","symbolWidths","getStandardTable","deltaHeight","tableDeltaHeight","currentWidth","totalWidth","firstSymbol","deltaWidth","tableDeltaWidth","numberOfInstances","decodeTextRegion","symbolId","rdx","rdy","bitmapSize","tableBitmapSize","collectiveBitmap","readUncompressedBitmap","originalEnd","bitmapEnd","numberOfSymbolsDecoded","xMin","xMax","bitmapWidth","symbolBitmap","exportedSymbols","flags","currentFlag","totalSymbolsLength","runLength","defaultPixelValue","numberOfSymbolInstances","stripSize","inputSymbols","transposed","dsOffset","referenceCorner","combinationOperator","logStripSize","stripT","tableDeltaT","firstS","deltaT","deltaFirstS","tableFirstS","currentS","currentT","symbolIDTable","applyRefinement","symbolWidth","symbolHeight","rdw","rdh","offsetT","offsetS","s2","symbolRow","maxWidth","deltaS","tableDeltaS","decodePatternDictionary","patternWidth","patternHeight","maxPatternIndex","collectiveWidth","patterns","patternBitmap","decodeHalftoneRegion","regionWidth","regionHeight","enableSkip","gridWidth","gridHeight","gridOffsetX","gridOffsetY","gridVectorX","gridVectorY","regionBitmap","numberOfPatterns","pattern0","bitsPerValue","grayScaleBitPlanes","mmrInput","mg","ng","patternIndex","patternRow","regionRow","regionX","regionY","readSegmentHeader","segmentHeader","segmentType","typeName","deferredNonRetain","pageAssociationFieldSize","referredFlags","referredToCount","retainBits","referredToSegmentNumberSize","referredTo","pageAssociation","genericRegionInfo","readRegionSegmentInformation","genericRegionSegmentFlags","RegionSegmentInformationFieldLength","genericRegionMmr","searchPatternLength","searchPattern","headerEnd","readSegments","segments","segment","randomAccess","processSegment","visitor","atLength","dictionary","dictionaryFlags","huffmanDHSelector","huffmanDWSelector","bitmapSizeSelector","aggregationInstancesSelector","bitmapCodingContextUsed","bitmapCodingContextRetained","refinementTemplate","textRegion","textRegionSegmentFlags","textRegionHuffmanFlags","huffmanFS","huffmanDS","huffmanDT","huffmanRefinementDW","huffmanRefinementDH","huffmanRefinementDX","huffmanRefinementDY","huffmanRefinementSizeSelector","patternDictionary","patternDictionaryFlags","halftoneRegion","halftoneRegionFlags","genericRegion","pageInfo","resolutionX","resolutionY","pageSegmentFlags","lossless","requiresBuffer","combinationOperatorOverride","callbackName","processSegments","parseJbig2Chunks","SimpleSegmentVisitor","parseJbig2","onPageInformation","currentPageInfo","rowSize","drawBitmap","regionInfo","mask0","offset0","mask","onImmediateGenericRegion","region","onImmediateLosslessGenericRegion","onSymbolDictionary","currentSegment","referredSegments","getSymbolDictionaryHuffmanTables","customTables","referredSegment","referredSymbols","onImmediateTextRegion","getTextRegionHuffmanTables","onImmediateLosslessTextRegion","onPatternDictionary","onImmediateHalftoneRegion","onImmediateLosslessHalftoneRegion","onTables","decodeTablesSegment","HuffmanLine","lineData","isOOB","rangeLow","prefixLength","rangeLength","prefixCode","isLowerRange","HuffmanTreeNode","line","children","isLeaf","buildTree","node","decodeNode","reader","htOffset","HuffmanTable","lines","prefixCodesDone","assignPrefixCodes","rootNode","linesLength","prefixLengthMax","histogram","currentLength","firstCode","currentCode","currentTemp","lowestValue","highestValue","prefixSizeBits","rangeSizeBits","currentRangeLow","standardTablesCache","currentByte","numBits","getCustomHuffmanTable","currentIndex","numberOfSymbols","runCodesTable","repeatedLength","numberOfRepeats","customIndex","tableAggregateInstances","endOfBlock","lookForEOFLimit","Jbig2Image","parseChunks","Jbig2Stream","jbig2Image","globalsStream","globals","convertToRGBA","convertBlackAndWhiteToRGBA","convertRGBToRGBA","srcPos","nonBlackColor","inverseDecode","zeroMapping","oneMapping","widthInSource","widthRemainder","srcLength","elem","len32","src32","s1","s3","jj","grayToRGBA","JpegError","DNLMarkerError","scanLines","EOIMarkerError","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","buildHuffmanTable","pop","getBlockBufferOffset","col","blocksPerLine","decodeScan","frame","components","resetInterval","spectralStart","spectralEnd","successivePrev","successive","parseDNLMarker","mcusPerLine","progressive","startOffset","bitsData","bitsCount","nextByte","maybeScanLines","blockRow","precision","decodeHuffman","tree","receive","receiveAndExtend","decodeBaseline","blockOffset","huffmanTableDC","diff","blockData","pred","rs","huffmanTableAC","z","decodeDCFirst","decodeDCSuccessive","eobrun","decodeACFirst","successiveACState","successiveACNextValue","decodeACSuccessive","offsetZ","decodeMcu","mcu","mcuRow","mcuCol","blockCol","h","decodeBlock","componentsLength","decodeFn","fileMarker","mcuExpected","blocksPerColumn","mcusPerColumn","mcuToRead","findNextFileMarker","invalid","partialMsg","marker","quantizeAndInverse","blockBufferOffset","qt","quantizationTable","v0","v3","v4","v5","v6","v7","p0","p5","p6","p7","buildComponentData","computationBuffer","currentPos","startPos","maxPos","newPos","currentMarker","newMarker","JpegImage","decodeTransform","colorTransform","_decodeTransform","_colorTransform","dnlScanLines","readDataBlock","endOffset","prepareComponents","samplesPerLine","maxH","maxV","blocksPerLineForMcu","blocksPerColumnForMcu","blocksBufferSize","jfif","adobe","numSOSMarkers","quantizationTables","huffmanTablesAC","huffmanTablesDC","markerLoop","l","appData","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesLength","quantizationTablesEnd","quantizationTableSpec","tableData","extended","sofScanLines","componentIds","componentsCount","componentId","qId","quantizationId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","processed","nextFileMarker","output","scaleX","scaleY","numComponents","_getLinearizedBlockData","isSourcePDF","componentScaleX","componentScaleY","blocksPerScanline","xScaleBlockOffset","mask3LSB","lastComponentScaleX","_isColorConversionNeeded","_convertYccToRgb","Cb","Cr","_convertYccToRgba","out","_convertYcckToRgb","_convertYcckToRgba","_convertYcckToCmyk","_convertCmykToRgb","_convertCmykToRgba","getData","forceRGBA","forceRGB","rgbaData","grayColor","JpegStream","jpegOptions","decodeArr","bitsPerComponent","decodeArrLength","transformNeeded","maxValue","jpegImage","drawWidth","drawHeight","JpxError","SubbandsGainLog2","LL","LH","HL","HH","JpxImage","failOnCorruptedImage","head","parseCodestream","headerSize","lbox","tbox","jumpDataLength","colorspace","headerType","parseImageProperties","newByte","oldByte","Xsiz","Ysiz","XOsiz","YOsiz","Csiz","context","doNotRecover","sqcd","spqcds","spqcdSize","scalarExpounded","tile","mainHeader","siz","XTsiz","YTsiz","XTOsiz","YTOsiz","isSigned","XRsiz","YRsiz","calculateComponentDimensions","SIZ","calculateTileGrids","QCC","COC","qcd","noQuantization","guardBits","spqcd","epsilon","mu","SPqcds","QCD","currentTile","qcc","cqcc","cod","scod","entropyCoderWithCustomPrecincts","sopMarkerUsed","ephMarkerUsed","progressionOrder","layersCount","multipleComponentTransform","decompositionLevelsCount","xcb","ycb","blockStyle","selectiveArithmeticCodingBypass","resetContextProbabilities","terminationOnEachCodingPass","verticallyStripe","predictableTermination","segmentationSymbolUsed","reversibleTransformation","precinctsSizes","precinctsSize","PPx","PPy","unsupported","COD","partIndex","partsCount","initializeTile","buildPackets","parseTilePackets","tiles","transformComponents","numXtiles","numYtiles","tx0","ty0","tx1","ty1","tileComponent","tcx0","tcy0","tcx1","tcy1","getBlocksDimensions","codOrCoc","codingStyleParameters","xcb_","ycb_","buildPrecincts","resolution","dimensions","precinctWidth","precinctHeight","isZeroRes","resLevel","precinctWidthInSubband","precinctHeightInSubband","numprecinctswide","trx1","trx0","numprecinctshigh","try1","try0","numprecincts","precinctParameters","buildCodeblocks","subband","codeblockWidth","codeblockHeight","cbx0","tbx0","cby0","tby0","cbx1","tbx1","cby1","tby1","codeblocks","precincts","codeblock","precinctNumber","cbx","cby","tbx0_","tby0_","tbx1_","tby1_","pi","pj","subbandType","Lblock","precinct","cbxMin","cbxMax","cbyMin","cbyMax","codeblockParameters","numcodeblockwide","numcodeblockhigh","createPacket","layerNumber","precinctCodeblocks","subbands","LayerResolutionComponentPositionIterator","tileIndex","codingStyleDefaultParameters","maxDecompositionLevelsCount","nextPacket","JpxImage_nextPacket","resolutions","packet","ResolutionLayerComponentPositionIterator","ResolutionPositionComponentLayerIterator","maxNumPrecinctsInLevel","maxNumPrecincts","PositionComponentResolutionLayerIterator","getPrecinctSizesInImageScale","precinctsIterationSizes","px","maxNumHigh","maxNumWide","sizeInImageScale","getPrecinctIndexIfExist","ComponentPositionResolutionLayerIterator","pxIndex","pyIndex","precinctIterationSizes","posX","minWidth","posY","minHeight","startPrecinctRowIndex","MAX_VALUE","sizePerComponent","sizePerResolution","minWidthCurrentComponent","minHeightCurrentComponent","maxNumWideCurrentComponent","maxNumHighCurrentComponent","widthCurrentResolution","heightCurrentResolution","blocksDimensions","bscale","resolutionSubbands","packetsIterator","skipNextBit","skipMarkerIfEqual","skipBytes","alignToByte","readCodingpasses","queue","codeblockColumn","codeblockRow","codeblockIncluded","firstTimeInclusion","valueReady","zeroBitPlanesTree","included","inclusionTree","InclusionTree","TagTree","nextLevel","incrementValue","zeroBitPlanes","codingpasses","codingpassesLog2","codedDataLength","packetItem","copyCoefficients","coefficients","levelWidth","levelHeight","delta","mb","reversible","right","bottom","blockWidth","blockHeight","bitModel","BitModel","currentCodingpassType","totalLength","dataItem","encodedData","setDecoder","runSignificancePropagationPass","runMagnitudeRefinementPass","runCleanupPass","checkSegmentationSymbol","coefficentsSign","magnitude","coefficentsMagnitude","bitsDecoded","magnitudeCorrection","nb","interleave","levelOffset","transformTile","quantizationParameters","ReversibleTransform","IrreversibleTransform","subbandCoefficients","gainLog2","items","calculate","left","top","resultImages","transformedTiles","tile0","fourComponents","y0items","y1items","y2items","y3items","component0","qcdOrQcc","levelsLength","levels","currentLevel","defaultValue","stopValue","propagateValues","levelIndex","currentValue","UNIFORM_CONTEXT","RUNLENGTH_CONTEXT","LLAndLHContextsLabel","HLContextLabel","HHContextLabel","contextLabelTable","coefficientCount","neighborsSignificance","processingFlags","setNeighborsSignificance","column","labels","processedInverseMask","processedMask","firstMagnitudeBitMask","i1","decision","decodeSignBit","contribution","sign0","sign1","significance1","horizontalContribution","width4","index0","indexNext","significance","oneRowDown","twoRowsDown","threeRowsDown","iNext","indexBase","checkAllEmpty","allEmpty","hasSignificantCoefficent","i2","Transform","u0","ll","j1","j2","hl_lh_hh","llWidth","llHeight","llItems","u","bufferPadding","rowBuffer","numBuffers","colBuffers","currentBuffer","alpha","beta","K_","JpxStream","jpxImage","tileCount","tileComponents","tileWidth","tileHeight","tileLeft","tileTop","srcPosition","dataPosition","imgRowSize","tileRowSize","rowBytes","LZWStream","earlyChange","cachedData","bitsCached","maxLzwDictionarySize","lzwState","nextCode","dictionaryValues","dictionaryLengths","dictionaryPrevCodes","currentSequence","currentSequenceLength","lastCode","blockSize","decodedSizeDelta","estimatedDecodedSize","prevCode","decodedLength","currentBufferLength","hasPrev","PredictorStream","predictor","readBlockTiff","readBlockPng","colors","pixBytes","rawBytes","inbuf","outbuf","inbits","outbits","bytesPerPixel","sum","compArray","bitMask","kk","prevRow","up","upLeft","pa","pb","pc","RunLengthStream","repeatHeader","MAX_LENGTH_TO_CACHE","getInlineImageCacheKey","Parser","lexer","allowStreams","recoveryMode","imageCache","_imageId","refill","buf1","getObj","buf2","tryShift","cipherTransform","makeInlineImage","makeStream","decryptString","findDefaultInlineStreamEnd","I","SPACE","LF","CR","NUL","knownCommands","maybeEIPos","followingBytes","tmpLexer","Lexer","_hexStringWarn","numArgs","nextObj","knownCommand","variableArgs","findDCTDecodeInlineStreamEnd","foundEOI","markerLength","inlineStreamSkipEI","findASCII85DecodeInlineStreamEnd","TILDE","tildePos","maybeEI","findASCIIHexDecodeInlineStreamEnd","dictMap","dictLength","beginInlineImagePos","Filter","filterName","filterZero","initialStreamPos","cacheEntry","imageStream","createStream","_findStreamLength","signature","SCAN_BLOCK_LENGTH","signatureLength","scanBytes","scanLength","skipToNextLine","nextChar","ENDSTREAM_SIGNATURE","actualLength","MAX_TRUNCATION","TRUNCATED_SIGNATURE","lastByte","makeFilter","filterArray","paramsArray","specialChars","toHexDigit","_hexStringNumWarn","currentChar","peekChar","getNumber","eNotation","divideBy","baseValue","powerValue","powerValueSign","currentDigit","numParen","charBuffered","getName","previousCh","MAX_HEX_STRING_NUM_WARN","getHexString","isFirstHex","secondDigit","comment","nextCh","knownCommandFound","possibleCommand","Linearization","getInt","linDict","allowZeroValue","getHints","hints","hintsLength","hint","parser","obj1","obj2","obj3","objectNumberFirst","endFirst","numPages","mainXRefEntriesOffset","pageFirst","BUILT_IN_CMAPS","MAX_MAP_RANGE","CMap","builtInCMap","codespaceRanges","numCodespaceRanges","low","high","dstLow","nextCharCode","mapBfRangeToArray","dst","contains","charCodeOf","getMap","readCharCode","nn","codespaceRange","charcode","getCharCodeLength","isIdentityCMap","IdentityCMap","strToInt","expectString","expectInt","parseBfChar","parseBfRange","parseCidChar","parseCidRange","parseCodespaceRange","parseWMode","parseCMapName","parseCMap","fetchBuiltInCMap","previous","embeddedUseCMap","objLoop","extendCMap","createBuiltInCMap","useCodespaceRanges","cMapData","compressionType","CMapFactory","parsedCMap","ISOAdobeCharset","ExpertCharset","ExpertSubsetCharset","ExpertEncoding","MacExpertEncoding","MacRomanEncoding","StandardEncoding","WinAnsiEncoding","SymbolSetEncoding","ZapfDingbatsEncoding","getEncoding","encodingName","MAX_SUBR_NESTING","CFFStandardStrings","NUM_STANDARD_CFF_STRINGS","CharstringValidationData","stackClearing","stem","resetStack","undefStack","CharstringValidationData12","stackDelta","stackFn","CFFParser","file","seacAnalysisEnabled","cff","CFF","parseHeader","nameIndex","parseIndex","endPos","topDictIndex","stringIndex","globalSubrIndex","topDictParsed","parseDict","topDict","createDict","CFFTopDict","strings","parseNameIndex","parseStringIndex","parsePrivateDict","isCIDFont","hasName","charStringOffset","charStringIndex","fontMatrix","fontBBox","ascent","descent","ascentScaled","charset","fdArrayIndex","dictRaw","fontDict","fdArray","parseCharsets","fdSelect","parseFDSelect","parseEncoding","charStringsAndSeacs","parseCharStrings","charStrings","localSubrIndex","privateDict","subrsIndex","seacs","widths","bytesLength","hdrSize","offSize","CFFHeader","parseOperand","parseFloatOperand","NaN","operands","cffIndex","CFFIndex","offsets","offsetSize","offsetStart","offsetEnd","CFFStrings","Type","cffDict","setByKey","parseCharString","callDepth","stackSize","validationCommand","seac","copyWithin","bias","subrNumber","valid","hasVStems","firstStackClearing","charstring","localSubrToUse","privateDictToUse","fdIndex","getFDIndex","nominalWidth","defaultWidth","emptyPrivateDictionary","parentDict","CFFPrivateDict","privateOffset","removeByName","privateDictEnd","dictData","setByName","subrsOffset","relativeOffset","cid","CFFCharset","CFFCharsetPredefinedTypes","ISO_ADOBE","EXPERT","EXPERT_SUBSET","format","raw","predefined","readSupplement","supplementsCount","sid","baseEncoding","dataStart","glyphsCount","rangesCount","gid","CFFEncoding","CFFFDSelect","duplicateFirstGlyph","glyphZero","hasGlyphId","glyph","getSID","objects","CFFDict","tables","keyToNameMap","nameToKeyMap","defaults","types","opcodes","order","createTables","layout","CFFTopDictLayout","CFFPrivateDictLayout","glyphIndex","CFFOffsetTracker","isTracking","track","location","setEntryLocation","dataOffset","offset1","offset2","offset3","offset4","CFFCompiler","compile","compileHeader","compileNameIndex","xuid","compiled","compileTopDicts","topDictTracker","trackers","compileStringIndex","compileIndex","compileEncoding","compileCharset","compileCharStrings","compileFDSelect","fontDictTrackers","compilePrivateDicts","encodeNumber","encodeInteger","encodeFloat","EncodeFloatRegExp","nibbles","sanitizedName","dicts","removeCidKeys","fontDictTracker","fontDictData","compileDict","privateDictTracker","privateDictData","outputLength","subrs","offsetTracker","charStringsIndex","numGlyphs","numGlyphsLessNotDef","charsetIndex","numCharsets","warned","compileTypedArray","lastFD","currentFD","numRanges","lastOffset","getGlyphsUnicode","AE","AEacute","AEmacron","AEsmall","Aacute","Aacutesmall","Abreve","Abreveacute","Abrevecyrillic","Abrevedotbelow","Abrevegrave","Abrevehookabove","Abrevetilde","Acaron","Acircle","Acircumflex","Acircumflexacute","Acircumflexdotbelow","Acircumflexgrave","Acircumflexhookabove","Acircumflexsmall","Acircumflextilde","Acute","Acutesmall","Acyrillic","Adblgrave","Adieresis","Adieresiscyrillic","Adieresismacron","Adieresissmall","Adotbelow","Adotmacron","Agrave","Agravesmall","Ahookabove","Aiecyrillic","Ainvertedbreve","Alpha","Alphatonos","Amacron","Amonospace","Aogonek","Aring","Aringacute","Aringbelow","Aringsmall","Asmall","Atilde","Atildesmall","Aybarmenian","Bcircle","Bdotaccent","Bdotbelow","Becyrillic","Benarmenian","Beta","Bhook","Blinebelow","Bmonospace","Brevesmall","Bsmall","Btopbar","Caarmenian","Cacute","Caron","Caronsmall","Ccaron","Ccedilla","Ccedillaacute","Ccedillasmall","Ccircle","Ccircumflex","Cdot","Cdotaccent","Cedillasmall","Chaarmenian","Cheabkhasiancyrillic","Checyrillic","Chedescenderabkhasiancyrillic","Chedescendercyrillic","Chedieresiscyrillic","Cheharmenian","Chekhakassiancyrillic","Cheverticalstrokecyrillic","Chi","Chook","Circumflexsmall","Cmonospace","Coarmenian","Csmall","DZ","DZcaron","Daarmenian","Dafrican","Dcaron","Dcedilla","Dcircle","Dcircumflexbelow","Dcroat","Ddotaccent","Ddotbelow","Decyrillic","Deicoptic","Delta","Deltagreek","Dhook","Dieresis","DieresisAcute","DieresisGrave","Dieresissmall","Digammagreek","Djecyrillic","Dlinebelow","Dmonospace","Dotaccentsmall","Dslash","Dsmall","Dtopbar","Dz","Dzcaron","Dzeabkhasiancyrillic","Dzecyrillic","Dzhecyrillic","Eacute","Eacutesmall","Ebreve","Ecaron","Ecedillabreve","Echarmenian","Ecircle","Ecircumflex","Ecircumflexacute","Ecircumflexbelow","Ecircumflexdotbelow","Ecircumflexgrave","Ecircumflexhookabove","Ecircumflexsmall","Ecircumflextilde","Ecyrillic","Edblgrave","Edieresis","Edieresissmall","Edot","Edotaccent","Edotbelow","Efcyrillic","Egrave","Egravesmall","Eharmenian","Ehookabove","Eightroman","Einvertedbreve","Eiotifiedcyrillic","Elcyrillic","Elevenroman","Emacron","Emacronacute","Emacrongrave","Emcyrillic","Emonospace","Encyrillic","Endescendercyrillic","Eng","Enghecyrillic","Enhookcyrillic","Eogonek","Eopen","Epsilon","Epsilontonos","Ercyrillic","Ereversed","Ereversedcyrillic","Escyrillic","Esdescendercyrillic","Esh","Esmall","Eta","Etarmenian","Etatonos","Eth","Ethsmall","Etilde","Etildebelow","Euro","Ezh","Ezhcaron","Ezhreversed","Fcircle","Fdotaccent","Feharmenian","Feicoptic","Fhook","Fitacyrillic","Fiveroman","Fmonospace","Fourroman","Fsmall","GBsquare","Gacute","Gamma","Gammaafrican","Gangiacoptic","Gbreve","Gcaron","Gcedilla","Gcircle","Gcircumflex","Gcommaaccent","Gdot","Gdotaccent","Gecyrillic","Ghadarmenian","Ghemiddlehookcyrillic","Ghestrokecyrillic","Gheupturncyrillic","Ghook","Gimarmenian","Gjecyrillic","Gmacron","Gmonospace","Grave","Gravesmall","Gsmall","Gsmallhook","Gstroke","H","H18533","H18543","H18551","H22073","HPsquare","Haabkhasiancyrillic","Hadescendercyrillic","Hardsigncyrillic","Hbar","Hbrevebelow","Hcedilla","Hcircle","Hcircumflex","Hdieresis","Hdotaccent","Hdotbelow","Hmonospace","Hoarmenian","Horicoptic","Hsmall","Hungarumlaut","Hungarumlautsmall","Hzsquare","IAcyrillic","IJ","IUcyrillic","Iacute","Iacutesmall","Ibreve","Icaron","Icircle","Icircumflex","Icircumflexsmall","Icyrillic","Idblgrave","Idieresis","Idieresisacute","Idieresiscyrillic","Idieresissmall","Idot","Idotaccent","Idotbelow","Iebrevecyrillic","Iecyrillic","Ifraktur","Igrave","Igravesmall","Ihookabove","Iicyrillic","Iinvertedbreve","Iishortcyrillic","Imacron","Imacroncyrillic","Imonospace","Iniarmenian","Iocyrillic","Iogonek","Iota","Iotaafrican","Iotadieresis","Iotatonos","Ismall","Istroke","Itilde","Itildebelow","Izhitsacyrillic","Izhitsadblgravecyrillic","J","Jaarmenian","Jcircle","Jcircumflex","Jecyrillic","Jheharmenian","Jmonospace","Jsmall","KBsquare","KKsquare","Kabashkircyrillic","Kacute","Kacyrillic","Kadescendercyrillic","Kahookcyrillic","Kappa","Kastrokecyrillic","Kaverticalstrokecyrillic","Kcaron","Kcedilla","Kcircle","Kcommaaccent","Kdotbelow","Keharmenian","Kenarmenian","Khacyrillic","Kheicoptic","Khook","Kjecyrillic","Klinebelow","Kmonospace","Koppacyrillic","Koppagreek","Ksicyrillic","Ksmall","LJ","Lacute","Lambda","Lcaron","Lcedilla","Lcircle","Lcircumflexbelow","Lcommaaccent","Ldot","Ldotaccent","Ldotbelow","Ldotbelowmacron","Liwnarmenian","Lj","Ljecyrillic","Llinebelow","Lmonospace","Lslash","Lslashsmall","Lsmall","MBsquare","Macron","Macronsmall","Macute","Mcircle","Mdotaccent","Mdotbelow","Menarmenian","Mmonospace","Msmall","Mturned","Mu","NJ","Nacute","Ncaron","Ncedilla","Ncircle","Ncircumflexbelow","Ncommaaccent","Ndotaccent","Ndotbelow","Nhookleft","Nineroman","Nj","Njecyrillic","Nlinebelow","Nmonospace","Nowarmenian","Nsmall","Ntilde","Ntildesmall","Nu","OE","OEsmall","Oacute","Oacutesmall","Obarredcyrillic","Obarreddieresiscyrillic","Obreve","Ocaron","Ocenteredtilde","Ocircle","Ocircumflex","Ocircumflexacute","Ocircumflexdotbelow","Ocircumflexgrave","Ocircumflexhookabove","Ocircumflexsmall","Ocircumflextilde","Ocyrillic","Odblacute","Odblgrave","Odieresis","Odieresiscyrillic","Odieresissmall","Odotbelow","Ogoneksmall","Ograve","Ogravesmall","Oharmenian","Ohm","Ohookabove","Ohorn","Ohornacute","Ohorndotbelow","Ohorngrave","Ohornhookabove","Ohorntilde","Ohungarumlaut","Oi","Oinvertedbreve","Omacron","Omacronacute","Omacrongrave","Omega","Omegacyrillic","Omegagreek","Omegaroundcyrillic","Omegatitlocyrillic","Omegatonos","Omicron","Omicrontonos","Omonospace","Oneroman","Oogonek","Oogonekmacron","Oopen","Oslash","Oslashacute","Oslashsmall","Osmall","Ostrokeacute","Otcyrillic","Otilde","Otildeacute","Otildedieresis","Otildesmall","Pacute","Pcircle","Pdotaccent","Pecyrillic","Peharmenian","Pemiddlehookcyrillic","Phi","Phook","Pi","Piwrarmenian","Pmonospace","Psi","Psicyrillic","Psmall","Q","Qcircle","Qmonospace","Qsmall","R","Raarmenian","Racute","Rcaron","Rcedilla","Rcircle","Rcommaaccent","Rdblgrave","Rdotaccent","Rdotbelow","Rdotbelowmacron","Reharmenian","Rfraktur","Rho","Ringsmall","Rinvertedbreve","Rlinebelow","Rmonospace","Rsmall","Rsmallinverted","Rsmallinvertedsuperior","S","SF010000","SF020000","SF030000","SF040000","SF050000","SF060000","SF070000","SF080000","SF090000","SF100000","SF110000","SF190000","SF200000","SF210000","SF220000","SF230000","SF240000","SF250000","SF260000","SF270000","SF280000","SF360000","SF370000","SF380000","SF390000","SF400000","SF410000","SF420000","SF430000","SF440000","SF450000","SF460000","SF470000","SF480000","SF490000","SF500000","SF510000","SF520000","SF530000","SF540000","Sacute","Sacutedotaccent","Sampigreek","Scaron","Scarondotaccent","Scaronsmall","Scedilla","Schwa","Schwacyrillic","Schwadieresiscyrillic","Scircle","Scircumflex","Scommaaccent","Sdotaccent","Sdotbelow","Sdotbelowdotaccent","Seharmenian","Sevenroman","Shaarmenian","Shacyrillic","Shchacyrillic","Sheicoptic","Shhacyrillic","Shimacoptic","Sigma","Sixroman","Smonospace","Softsigncyrillic","Ssmall","Stigmagreek","T","Tau","Tbar","Tcaron","Tcedilla","Tcircle","Tcircumflexbelow","Tcommaaccent","Tdotaccent","Tdotbelow","Tecyrillic","Tedescendercyrillic","Tenroman","Tetsecyrillic","Theta","Thook","Thorn","Thornsmall","Threeroman","Tildesmall","Tiwnarmenian","Tlinebelow","Tmonospace","Toarmenian","Tonefive","Tonesix","Tonetwo","Tretroflexhook","Tsecyrillic","Tshecyrillic","Tsmall","Twelveroman","Tworoman","Uacute","Uacutesmall","Ubreve","Ucaron","Ucircle","Ucircumflex","Ucircumflexbelow","Ucircumflexsmall","Ucyrillic","Udblacute","Udblgrave","Udieresis","Udieresisacute","Udieresisbelow","Udieresiscaron","Udieresiscyrillic","Udieresisgrave","Udieresismacron","Udieresissmall","Udotbelow","Ugrave","Ugravesmall","Uhookabove","Uhorn","Uhornacute","Uhorndotbelow","Uhorngrave","Uhornhookabove","Uhorntilde","Uhungarumlaut","Uhungarumlautcyrillic","Uinvertedbreve","Ukcyrillic","Umacron","Umacroncyrillic","Umacrondieresis","Umonospace","Uogonek","Upsilon","Upsilon1","Upsilonacutehooksymbolgreek","Upsilonafrican","Upsilondieresis","Upsilondieresishooksymbolgreek","Upsilonhooksymbol","Upsilontonos","Uring","Ushortcyrillic","Usmall","Ustraightcyrillic","Ustraightstrokecyrillic","Utilde","Utildeacute","Utildebelow","Vcircle","Vdotbelow","Vecyrillic","Vewarmenian","Vhook","Vmonospace","Voarmenian","Vsmall","Vtilde","W","Wacute","Wcircle","Wcircumflex","Wdieresis","Wdotaccent","Wdotbelow","Wgrave","Wmonospace","Wsmall","Xcircle","Xdieresis","Xdotaccent","Xeharmenian","Xi","Xmonospace","Xsmall","Yacute","Yacutesmall","Yatcyrillic","Ycircle","Ycircumflex","Ydieresis","Ydieresissmall","Ydotaccent","Ydotbelow","Yericyrillic","Yerudieresiscyrillic","Ygrave","Yhook","Yhookabove","Yiarmenian","Yicyrillic","Yiwnarmenian","Ymonospace","Ysmall","Ytilde","Yusbigcyrillic","Yusbigiotifiedcyrillic","Yuslittlecyrillic","Yuslittleiotifiedcyrillic","Zaarmenian","Zacute","Zcaron","Zcaronsmall","Zcircle","Zcircumflex","Zdot","Zdotaccent","Zdotbelow","Zecyrillic","Zedescendercyrillic","Zedieresiscyrillic","Zeta","Zhearmenian","Zhebrevecyrillic","Zhecyrillic","Zhedescendercyrillic","Zhedieresiscyrillic","Zlinebelow","Zmonospace","Zsmall","Zstroke","aabengali","aacute","aadeva","aagujarati","aagurmukhi","aamatragurmukhi","aarusquare","aavowelsignbengali","aavowelsigndeva","aavowelsigngujarati","abbreviationmarkarmenian","abbreviationsigndeva","abengali","abopomofo","abreve","abreveacute","abrevecyrillic","abrevedotbelow","abrevegrave","abrevehookabove","abrevetilde","acaron","acircle","acircumflex","acircumflexacute","acircumflexdotbelow","acircumflexgrave","acircumflexhookabove","acircumflextilde","acute","acutebelowcmb","acutecmb","acutecomb","acutedeva","acutelowmod","acutetonecmb","acyrillic","adblgrave","addakgurmukhi","adeva","adieresis","adieresiscyrillic","adieresismacron","adotbelow","adotmacron","ae","aeacute","aekorean","aemacron","afii00208","afii08941","afii10017","afii10018","afii10019","afii10020","afii10021","afii10022","afii10023","afii10024","afii10025","afii10026","afii10027","afii10028","afii10029","afii10030","afii10031","afii10032","afii10033","afii10034","afii10035","afii10036","afii10037","afii10038","afii10039","afii10040","afii10041","afii10042","afii10043","afii10044","afii10045","afii10046","afii10047","afii10048","afii10049","afii10050","afii10051","afii10052","afii10053","afii10054","afii10055","afii10056","afii10057","afii10058","afii10059","afii10060","afii10061","afii10062","afii10063","afii10064","afii10065","afii10066","afii10067","afii10068","afii10069","afii10070","afii10071","afii10072","afii10073","afii10074","afii10075","afii10076","afii10077","afii10078","afii10079","afii10080","afii10081","afii10082","afii10083","afii10084","afii10085","afii10086","afii10087","afii10088","afii10089","afii10090","afii10091","afii10092","afii10093","afii10094","afii10095","afii10096","afii10097","afii10098","afii10099","afii10100","afii10101","afii10102","afii10103","afii10104","afii10105","afii10106","afii10107","afii10108","afii10109","afii10110","afii10145","afii10146","afii10147","afii10148","afii10192","afii10193","afii10194","afii10195","afii10196","afii10831","afii10832","afii10846","afii299","afii300","afii301","afii57381","afii57388","afii57392","afii57393","afii57394","afii57395","afii57396","afii57397","afii57398","afii57399","afii57400","afii57401","afii57403","afii57407","afii57409","afii57410","afii57411","afii57412","afii57413","afii57414","afii57415","afii57416","afii57417","afii57418","afii57419","afii57420","afii57421","afii57422","afii57423","afii57424","afii57425","afii57426","afii57427","afii57428","afii57429","afii57430","afii57431","afii57432","afii57433","afii57434","afii57440","afii57441","afii57442","afii57443","afii57444","afii57445","afii57446","afii57448","afii57449","afii57450","afii57451","afii57452","afii57453","afii57454","afii57455","afii57456","afii57457","afii57458","afii57470","afii57505","afii57506","afii57507","afii57508","afii57509","afii57511","afii57512","afii57513","afii57514","afii57519","afii57534","afii57636","afii57645","afii57658","afii57664","afii57665","afii57666","afii57667","afii57668","afii57669","afii57670","afii57671","afii57672","afii57673","afii57674","afii57675","afii57676","afii57677","afii57678","afii57679","afii57680","afii57681","afii57682","afii57683","afii57684","afii57685","afii57686","afii57687","afii57688","afii57689","afii57690","afii57694","afii57695","afii57700","afii57705","afii57716","afii57717","afii57718","afii57723","afii57793","afii57794","afii57795","afii57796","afii57797","afii57798","afii57799","afii57800","afii57801","afii57802","afii57803","afii57804","afii57806","afii57807","afii57839","afii57841","afii57842","afii57929","afii61248","afii61289","afii61352","afii61573","afii61574","afii61575","afii61664","afii63167","afii64937","agrave","agujarati","agurmukhi","ahiragana","ahookabove","aibengali","aibopomofo","aideva","aiecyrillic","aigujarati","aigurmukhi","aimatragurmukhi","ainarabic","ainfinalarabic","aininitialarabic","ainmedialarabic","ainvertedbreve","aivowelsignbengali","aivowelsigndeva","aivowelsigngujarati","akatakana","akatakanahalfwidth","akorean","alef","alefarabic","alefdageshhebrew","aleffinalarabic","alefhamzaabovearabic","alefhamzaabovefinalarabic","alefhamzabelowarabic","alefhamzabelowfinalarabic","alefhebrew","aleflamedhebrew","alefmaddaabovearabic","alefmaddaabovefinalarabic","alefmaksuraarabic","alefmaksurafinalarabic","alefmaksurainitialarabic","alefmaksuramedialarabic","alefpatahhebrew","alefqamatshebrew","aleph","allequal","alphatonos","amacron","amonospace","ampersand","ampersandmonospace","ampersandsmall","amsquare","anbopomofo","angbopomofo","angbracketleft","angbracketright","angkhankhuthai","anglebracketleft","anglebracketleftvertical","anglebracketright","anglebracketrightvertical","angleleft","angleright","angstrom","anoteleia","anudattadeva","anusvarabengali","anusvaradeva","anusvaragujarati","aogonek","apaatosquare","aparen","apostrophearmenian","apostrophemod","apple","approaches","approxequal","approxequalorimage","approximatelyequal","araeaekorean","araeakorean","arc","arighthalfring","aring","aringacute","aringbelow","arrowboth","arrowdashdown","arrowdashleft","arrowdashright","arrowdashup","arrowdblboth","arrowdbldown","arrowdblleft","arrowdblright","arrowdblup","arrowdown","arrowdownleft","arrowdownright","arrowdownwhite","arrowheaddownmod","arrowheadleftmod","arrowheadrightmod","arrowheadupmod","arrowhorizex","arrowleft","arrowleftdbl","arrowleftdblstroke","arrowleftoverright","arrowleftwhite","arrowright","arrowrightdblstroke","arrowrightheavy","arrowrightoverleft","arrowrightwhite","arrowtableft","arrowtabright","arrowup","arrowupdn","arrowupdnbse","arrowupdownbase","arrowupleft","arrowupleftofdown","arrowupright","arrowupwhite","arrowvertex","asciicircum","asciicircummonospace","asciitilde","asciitildemonospace","ascript","ascriptturned","asmallhiragana","asmallkatakana","asmallkatakanahalfwidth","asterisk","asteriskaltonearabic","asteriskarabic","asteriskmath","asteriskmonospace","asterisksmall","asterism","asuperior","asymptoticallyequal","atilde","atmonospace","atsmall","aturned","aubengali","aubopomofo","audeva","augujarati","augurmukhi","aulengthmarkbengali","aumatragurmukhi","auvowelsignbengali","auvowelsigndeva","auvowelsigngujarati","avagrahadeva","aybarmenian","ayin","ayinaltonehebrew","ayinhebrew","babengali","backslash","backslashmonospace","badeva","bagujarati","bagurmukhi","bahiragana","bahtthai","bakatakana","bar","barmonospace","bbopomofo","bcircle","bdotaccent","bdotbelow","beamedsixteenthnotes","because","becyrillic","beharabic","behfinalarabic","behinitialarabic","behiragana","behmedialarabic","behmeeminitialarabic","behmeemisolatedarabic","behnoonfinalarabic","bekatakana","benarmenian","bet","betasymbolgreek","betdagesh","betdageshhebrew","bethebrew","betrafehebrew","bhabengali","bhadeva","bhagujarati","bhagurmukhi","bhook","bihiragana","bikatakana","bilabialclick","bindigurmukhi","birusquare","blackcircle","blackdiamond","blackdownpointingtriangle","blackleftpointingpointer","blackleftpointingtriangle","blacklenticularbracketleft","blacklenticularbracketleftvertical","blacklenticularbracketright","blacklenticularbracketrightvertical","blacklowerlefttriangle","blacklowerrighttriangle","blackrectangle","blackrightpointingpointer","blackrightpointingtriangle","blacksmallsquare","blacksmilingface","blacksquare","blackstar","blackupperlefttriangle","blackupperrighttriangle","blackuppointingsmalltriangle","blackuppointingtriangle","blank","blinebelow","bmonospace","bobaimaithai","bohiragana","bokatakana","bparen","bqsquare","braceex","braceleft","braceleftbt","braceleftmid","braceleftmonospace","braceleftsmall","bracelefttp","braceleftvertical","braceright","bracerightbt","bracerightmid","bracerightmonospace","bracerightsmall","bracerighttp","bracerightvertical","bracketleft","bracketleftbt","bracketleftex","bracketleftmonospace","bracketlefttp","bracketright","bracketrightbt","bracketrightex","bracketrightmonospace","bracketrighttp","breve","brevebelowcmb","brevecmb","breveinvertedbelowcmb","breveinvertedcmb","breveinverteddoublecmb","bridgebelowcmb","bridgeinvertedbelowcmb","brokenbar","bstroke","bsuperior","btopbar","buhiragana","bukatakana","bullet","bulletinverse","bulletoperator","bullseye","caarmenian","cabengali","cacute","cadeva","cagujarati","cagurmukhi","calsquare","candrabindubengali","candrabinducmb","candrabindudeva","candrabindugujarati","capslock","careof","caron","caronbelowcmb","caroncmb","carriagereturn","cbopomofo","ccaron","ccedilla","ccedillaacute","ccircle","ccircumflex","ccurl","cdot","cdotaccent","cdsquare","cedilla","cedillacmb","cent","centigrade","centinferior","centmonospace","centoldstyle","centsuperior","chaarmenian","chabengali","chadeva","chagujarati","chagurmukhi","chbopomofo","cheabkhasiancyrillic","checkmark","checyrillic","chedescenderabkhasiancyrillic","chedescendercyrillic","chedieresiscyrillic","cheharmenian","chekhakassiancyrillic","cheverticalstrokecyrillic","chi","chieuchacirclekorean","chieuchaparenkorean","chieuchcirclekorean","chieuchkorean","chieuchparenkorean","chochangthai","chochanthai","chochingthai","chochoethai","chook","cieucacirclekorean","cieucaparenkorean","cieuccirclekorean","cieuckorean","cieucparenkorean","cieucuparenkorean","circle","circlecopyrt","circlemultiply","circleot","circleplus","circlepostalmark","circlewithlefthalfblack","circlewithrighthalfblack","circumflex","circumflexbelowcmb","circumflexcmb","clickalveolar","clickdental","clicklateral","clickretroflex","club","clubsuitblack","clubsuitwhite","cmcubedsquare","cmonospace","cmsquaredsquare","coarmenian","colon","colonmonetary","colonmonospace","colonsign","colonsmall","colontriangularhalfmod","colontriangularmod","comma","commaabovecmb","commaaboverightcmb","commaaccent","commaarabic","commaarmenian","commainferior","commamonospace","commareversedabovecmb","commareversedmod","commasmall","commasuperior","commaturnedabovecmb","commaturnedmod","compass","congruent","contourintegral","control","controlACK","controlBEL","controlBS","controlCAN","controlCR","controlDC1","controlDC2","controlDC3","controlDC4","controlDEL","controlDLE","controlEM","controlENQ","controlEOT","controlESC","controlETB","controlETX","controlFF","controlFS","controlGS","controlHT","controlLF","controlNAK","controlNULL","controlRS","controlSI","controlSO","controlSOT","controlSTX","controlSUB","controlSYN","controlUS","controlVT","copyrightsans","copyrightserif","cornerbracketleft","cornerbracketlefthalfwidth","cornerbracketleftvertical","cornerbracketright","cornerbracketrighthalfwidth","cornerbracketrightvertical","corporationsquare","cosquare","coverkgsquare","cparen","cruzeiro","cstretched","curlyand","curlyor","currency","cyrBreve","cyrFlex","cyrbreve","cyrflex","daarmenian","dabengali","dadarabic","dadeva","dadfinalarabic","dadinitialarabic","dadmedialarabic","dagesh","dageshhebrew","dagger","daggerdbl","dagujarati","dagurmukhi","dahiragana","dakatakana","dalarabic","dalet","daletdagesh","daletdageshhebrew","dalethebrew","dalfinalarabic","dammaarabic","dammalowarabic","dammatanaltonearabic","dammatanarabic","danda","dargahebrew","dargalefthebrew","dasiapneumatacyrilliccmb","dblGrave","dblanglebracketleft","dblanglebracketleftvertical","dblanglebracketright","dblanglebracketrightvertical","dblarchinvertedbelowcmb","dblarrowleft","dblarrowright","dbldanda","dblgrave","dblgravecmb","dblintegral","dbllowline","dbllowlinecmb","dbloverlinecmb","dblprimemod","dblverticalbar","dblverticallineabovecmb","dbopomofo","dbsquare","dcaron","dcedilla","dcircle","dcircumflexbelow","dcroat","ddabengali","ddadeva","ddagujarati","ddagurmukhi","ddalarabic","ddalfinalarabic","dddhadeva","ddhabengali","ddhadeva","ddhagujarati","ddhagurmukhi","ddotaccent","ddotbelow","decimalseparatorarabic","decimalseparatorpersian","decyrillic","degree","dehihebrew","dehiragana","deicoptic","dekatakana","deleteleft","deleteright","deltaturned","denominatorminusonenumeratorbengali","dezh","dhabengali","dhadeva","dhagujarati","dhagurmukhi","dhook","dialytikatonos","dialytikatonoscmb","diamond","diamondsuitwhite","dieresis","dieresisacute","dieresisbelowcmb","dieresiscmb","dieresisgrave","dieresistonos","dihiragana","dikatakana","dittomark","divide","divides","divisionslash","djecyrillic","dkshade","dlinebelow","dlsquare","dmacron","dmonospace","dnblock","dochadathai","dodekthai","dohiragana","dokatakana","dollar","dollarinferior","dollarmonospace","dollaroldstyle","dollarsmall","dollarsuperior","dong","dorusquare","dotaccent","dotaccentcmb","dotbelowcmb","dotbelowcomb","dotkatakana","dotlessi","dotlessj","dotlessjstrokehook","dotmath","dottedcircle","doubleyodpatah","doubleyodpatahhebrew","downtackbelowcmb","downtackmod","dparen","dsuperior","dtail","dtopbar","duhiragana","dukatakana","dz","dzaltone","dzcaron","dzcurl","dzeabkhasiancyrillic","dzecyrillic","dzhecyrillic","eacute","earth","ebengali","ebopomofo","ebreve","ecandradeva","ecandragujarati","ecandravowelsigndeva","ecandravowelsigngujarati","ecaron","ecedillabreve","echarmenian","echyiwnarmenian","ecircle","ecircumflex","ecircumflexacute","ecircumflexbelow","ecircumflexdotbelow","ecircumflexgrave","ecircumflexhookabove","ecircumflextilde","ecyrillic","edblgrave","edeva","edieresis","edot","edotaccent","edotbelow","eegurmukhi","eematragurmukhi","efcyrillic","egrave","egujarati","eharmenian","ehbopomofo","ehiragana","ehookabove","eibopomofo","eight","eightarabic","eightbengali","eightcircle","eightcircleinversesansserif","eightdeva","eighteencircle","eighteenparen","eighteenperiod","eightgujarati","eightgurmukhi","eighthackarabic","eighthangzhou","eighthnotebeamed","eightideographicparen","eightinferior","eightmonospace","eightoldstyle","eightparen","eightperiod","eightpersian","eightroman","eightsuperior","eightthai","einvertedbreve","eiotifiedcyrillic","ekatakana","ekatakanahalfwidth","ekonkargurmukhi","ekorean","elcyrillic","elevencircle","elevenparen","elevenperiod","elevenroman","ellipsis","ellipsisvertical","emacron","emacronacute","emacrongrave","emcyrillic","emdash","emdashvertical","emonospace","emphasismarkarmenian","emptyset","enbopomofo","encyrillic","endash","endashvertical","endescendercyrillic","eng","engbopomofo","enghecyrillic","enhookcyrillic","enspace","eogonek","eokorean","eopen","eopenclosed","eopenreversed","eopenreversedclosed","eopenreversedhook","eparen","epsilontonos","equal","equalmonospace","equalsmall","equalsuperior","equivalence","erbopomofo","ercyrillic","ereversed","ereversedcyrillic","escyrillic","esdescendercyrillic","esh","eshcurl","eshortdeva","eshortvowelsigndeva","eshreversedloop","eshsquatreversed","esmallhiragana","esmallkatakana","esmallkatakanahalfwidth","estimated","esuperior","eta","etarmenian","etatonos","eth","etilde","etildebelow","etnahtafoukhhebrew","etnahtafoukhlefthebrew","etnahtahebrew","etnahtalefthebrew","eturned","eukorean","euro","evowelsignbengali","evowelsigndeva","evowelsigngujarati","exclam","exclamarmenian","exclamdbl","exclamdown","exclamdownsmall","exclammonospace","exclamsmall","existential","ezh","ezhcaron","ezhcurl","ezhreversed","ezhtail","fadeva","fagurmukhi","fahrenheit","fathaarabic","fathalowarabic","fathatanarabic","fbopomofo","fcircle","fdotaccent","feharabic","feharmenian","fehfinalarabic","fehinitialarabic","fehmedialarabic","feicoptic","female","ff","f_f","ffi","f_f_i","ffl","f_f_l","fi","f_i","fifteencircle","fifteenparen","fifteenperiod","figuredash","filledbox","filledrect","finalkaf","finalkafdagesh","finalkafdageshhebrew","finalkafhebrew","finalmem","finalmemhebrew","finalnun","finalnunhebrew","finalpe","finalpehebrew","finaltsadi","finaltsadihebrew","firsttonechinese","fisheye","fitacyrillic","five","fivearabic","fivebengali","fivecircle","fivecircleinversesansserif","fivedeva","fiveeighths","fivegujarati","fivegurmukhi","fivehackarabic","fivehangzhou","fiveideographicparen","fiveinferior","fivemonospace","fiveoldstyle","fiveparen","fiveperiod","fivepersian","fiveroman","fivesuperior","fivethai","fl","f_l","florin","fmonospace","fmsquare","fofanthai","fofathai","fongmanthai","forall","four","fourarabic","fourbengali","fourcircle","fourcircleinversesansserif","fourdeva","fourgujarati","fourgurmukhi","fourhackarabic","fourhangzhou","fourideographicparen","fourinferior","fourmonospace","fournumeratorbengali","fouroldstyle","fourparen","fourperiod","fourpersian","fourroman","foursuperior","fourteencircle","fourteenparen","fourteenperiod","fourthai","fourthtonechinese","fparen","fraction","franc","gabengali","gacute","gadeva","gafarabic","gaffinalarabic","gafinitialarabic","gafmedialarabic","gagujarati","gagurmukhi","gahiragana","gakatakana","gammalatinsmall","gammasuperior","gangiacoptic","gbopomofo","gbreve","gcaron","gcedilla","gcircle","gcircumflex","gcommaaccent","gdot","gdotaccent","gecyrillic","gehiragana","gekatakana","geometricallyequal","gereshaccenthebrew","gereshhebrew","gereshmuqdamhebrew","germandbls","gershayimaccenthebrew","gershayimhebrew","getamark","ghabengali","ghadarmenian","ghadeva","ghagujarati","ghagurmukhi","ghainarabic","ghainfinalarabic","ghaininitialarabic","ghainmedialarabic","ghemiddlehookcyrillic","ghestrokecyrillic","gheupturncyrillic","ghhadeva","ghhagurmukhi","ghook","ghzsquare","gihiragana","gikatakana","gimarmenian","gimel","gimeldagesh","gimeldageshhebrew","gimelhebrew","gjecyrillic","glottalinvertedstroke","glottalstop","glottalstopinverted","glottalstopmod","glottalstopreversed","glottalstopreversedmod","glottalstopreversedsuperior","glottalstopstroke","glottalstopstrokereversed","gmacron","gmonospace","gohiragana","gokatakana","gparen","gpasquare","gradient","grave","gravebelowcmb","gravecmb","gravecomb","gravedeva","gravelowmod","gravemonospace","gravetonecmb","greater","greaterequal","greaterequalorless","greatermonospace","greaterorequivalent","greaterorless","greateroverequal","greatersmall","gscript","gstroke","guhiragana","guillemotleft","guillemotright","guilsinglleft","guilsinglright","gukatakana","guramusquare","gysquare","haabkhasiancyrillic","haaltonearabic","habengali","hadescendercyrillic","hadeva","hagujarati","hagurmukhi","haharabic","hahfinalarabic","hahinitialarabic","hahiragana","hahmedialarabic","haitusquare","hakatakana","hakatakanahalfwidth","halantgurmukhi","hamzaarabic","hamzalowarabic","hangulfiller","hardsigncyrillic","harpoonleftbarbup","harpoonrightbarbup","hasquare","hatafpatah","hatafpatah16","hatafpatah23","hatafpatah2f","hatafpatahhebrew","hatafpatahnarrowhebrew","hatafpatahquarterhebrew","hatafpatahwidehebrew","hatafqamats","hatafqamats1b","hatafqamats28","hatafqamats34","hatafqamatshebrew","hatafqamatsnarrowhebrew","hatafqamatsquarterhebrew","hatafqamatswidehebrew","hatafsegol","hatafsegol17","hatafsegol24","hatafsegol30","hatafsegolhebrew","hatafsegolnarrowhebrew","hatafsegolquarterhebrew","hatafsegolwidehebrew","hbar","hbopomofo","hbrevebelow","hcedilla","hcircle","hcircumflex","hdieresis","hdotaccent","hdotbelow","he","heart","heartsuitblack","heartsuitwhite","hedagesh","hedageshhebrew","hehaltonearabic","heharabic","hehebrew","hehfinalaltonearabic","hehfinalalttwoarabic","hehfinalarabic","hehhamzaabovefinalarabic","hehhamzaaboveisolatedarabic","hehinitialaltonearabic","hehinitialarabic","hehiragana","hehmedialaltonearabic","hehmedialarabic","heiseierasquare","hekatakana","hekatakanahalfwidth","hekutaarusquare","henghook","herutusquare","het","hethebrew","hhook","hhooksuperior","hieuhacirclekorean","hieuhaparenkorean","hieuhcirclekorean","hieuhkorean","hieuhparenkorean","hihiragana","hikatakana","hikatakanahalfwidth","hiriq","hiriq14","hiriq21","hiriq2d","hiriqhebrew","hiriqnarrowhebrew","hiriqquarterhebrew","hiriqwidehebrew","hlinebelow","hmonospace","hoarmenian","hohipthai","hohiragana","hokatakana","hokatakanahalfwidth","holam","holam19","holam26","holam32","holamhebrew","holamnarrowhebrew","holamquarterhebrew","holamwidehebrew","honokhukthai","hookabovecomb","hookcmb","hookpalatalizedbelowcmb","hookretroflexbelowcmb","hoonsquare","horicoptic","horizontalbar","horncmb","hotsprings","house","hparen","hsuperior","hturned","huhiragana","huiitosquare","hukatakana","hukatakanahalfwidth","hungarumlaut","hungarumlautcmb","hv","hyphen","hypheninferior","hyphenmonospace","hyphensmall","hyphensuperior","hyphentwo","iacute","iacyrillic","ibengali","ibopomofo","ibreve","icaron","icircle","icircumflex","icyrillic","idblgrave","ideographearthcircle","ideographfirecircle","ideographicallianceparen","ideographiccallparen","ideographiccentrecircle","ideographicclose","ideographiccomma","ideographiccommaleft","ideographiccongratulationparen","ideographiccorrectcircle","ideographicearthparen","ideographicenterpriseparen","ideographicexcellentcircle","ideographicfestivalparen","ideographicfinancialcircle","ideographicfinancialparen","ideographicfireparen","ideographichaveparen","ideographichighcircle","ideographiciterationmark","ideographiclaborcircle","ideographiclaborparen","ideographicleftcircle","ideographiclowcircle","ideographicmedicinecircle","ideographicmetalparen","ideographicmoonparen","ideographicnameparen","ideographicperiod","ideographicprintcircle","ideographicreachparen","ideographicrepresentparen","ideographicresourceparen","ideographicrightcircle","ideographicsecretcircle","ideographicselfparen","ideographicsocietyparen","ideographicspace","ideographicspecialparen","ideographicstockparen","ideographicstudyparen","ideographicsunparen","ideographicsuperviseparen","ideographicwaterparen","ideographicwoodparen","ideographiczero","ideographmetalcircle","ideographmooncircle","ideographnamecircle","ideographsuncircle","ideographwatercircle","ideographwoodcircle","ideva","idieresis","idieresisacute","idieresiscyrillic","idotbelow","iebrevecyrillic","iecyrillic","ieungacirclekorean","ieungaparenkorean","ieungcirclekorean","ieungkorean","ieungparenkorean","igrave","igujarati","igurmukhi","ihiragana","ihookabove","iibengali","iicyrillic","iideva","iigujarati","iigurmukhi","iimatragurmukhi","iinvertedbreve","iishortcyrillic","iivowelsignbengali","iivowelsigndeva","iivowelsigngujarati","ij","ikatakana","ikatakanahalfwidth","ikorean","ilde","iluyhebrew","imacron","imacroncyrillic","imageorapproximatelyequal","imatragurmukhi","imonospace","increment","infinity","iniarmenian","integral","integralbottom","integralbt","integralex","integraltop","integraltp","intisquare","invbullet","invcircle","invsmileface","iocyrillic","iogonek","iota","iotadieresis","iotadieresistonos","iotalatin","iotatonos","iparen","irigurmukhi","ismallhiragana","ismallkatakana","ismallkatakanahalfwidth","issharbengali","istroke","isuperior","iterationhiragana","iterationkatakana","itilde","itildebelow","iubopomofo","iucyrillic","ivowelsignbengali","ivowelsigndeva","ivowelsigngujarati","izhitsacyrillic","izhitsadblgravecyrillic","jaarmenian","jabengali","jadeva","jagujarati","jagurmukhi","jbopomofo","jcaron","jcircle","jcircumflex","jcrossedtail","jdotlessstroke","jecyrillic","jeemarabic","jeemfinalarabic","jeeminitialarabic","jeemmedialarabic","jeharabic","jehfinalarabic","jhabengali","jhadeva","jhagujarati","jhagurmukhi","jheharmenian","jis","jmonospace","jparen","jsuperior","kabashkircyrillic","kabengali","kacute","kacyrillic","kadescendercyrillic","kadeva","kaf","kafarabic","kafdagesh","kafdageshhebrew","kaffinalarabic","kafhebrew","kafinitialarabic","kafmedialarabic","kafrafehebrew","kagujarati","kagurmukhi","kahiragana","kahookcyrillic","kakatakana","kakatakanahalfwidth","kappa","kappasymbolgreek","kapyeounmieumkorean","kapyeounphieuphkorean","kapyeounpieupkorean","kapyeounssangpieupkorean","karoriisquare","kashidaautoarabic","kashidaautonosidebearingarabic","kasmallkatakana","kasquare","kasraarabic","kasratanarabic","kastrokecyrillic","katahiraprolongmarkhalfwidth","kaverticalstrokecyrillic","kbopomofo","kcalsquare","kcaron","kcedilla","kcircle","kcommaaccent","kdotbelow","keharmenian","kehiragana","kekatakana","kekatakanahalfwidth","kenarmenian","kesmallkatakana","kgreenlandic","khabengali","khacyrillic","khadeva","khagujarati","khagurmukhi","khaharabic","khahfinalarabic","khahinitialarabic","khahmedialarabic","kheicoptic","khhadeva","khhagurmukhi","khieukhacirclekorean","khieukhaparenkorean","khieukhcirclekorean","khieukhkorean","khieukhparenkorean","khokhaithai","khokhonthai","khokhuatthai","khokhwaithai","khomutthai","khook","khorakhangthai","khzsquare","kihiragana","kikatakana","kikatakanahalfwidth","kiroguramusquare","kiromeetorusquare","kirosquare","kiyeokacirclekorean","kiyeokaparenkorean","kiyeokcirclekorean","kiyeokkorean","kiyeokparenkorean","kiyeoksioskorean","kjecyrillic","klinebelow","klsquare","kmcubedsquare","kmonospace","kmsquaredsquare","kohiragana","kohmsquare","kokaithai","kokatakana","kokatakanahalfwidth","kooposquare","koppacyrillic","koreanstandardsymbol","koroniscmb","kparen","kpasquare","ksicyrillic","ktsquare","kturned","kuhiragana","kukatakana","kukatakanahalfwidth","kvsquare","kwsquare","labengali","lacute","ladeva","lagujarati","lagurmukhi","lakkhangyaothai","lamaleffinalarabic","lamalefhamzaabovefinalarabic","lamalefhamzaaboveisolatedarabic","lamalefhamzabelowfinalarabic","lamalefhamzabelowisolatedarabic","lamalefisolatedarabic","lamalefmaddaabovefinalarabic","lamalefmaddaaboveisolatedarabic","lamarabic","lambda","lambdastroke","lamed","lameddagesh","lameddageshhebrew","lamedhebrew","lamfinalarabic","lamhahinitialarabic","laminitialarabic","lamjeeminitialarabic","lamkhahinitialarabic","lamlamhehisolatedarabic","lammedialarabic","lammeemhahinitialarabic","lammeeminitialarabic","largecircle","lbar","lbelt","lbopomofo","lcaron","lcedilla","lcircle","lcircumflexbelow","lcommaaccent","ldot","ldotaccent","ldotbelow","ldotbelowmacron","leftangleabovecmb","lefttackbelowcmb","less","lessequal","lessequalorgreater","lessmonospace","lessorequivalent","lessorgreater","lessoverequal","lesssmall","lezh","lfblock","lhookretroflex","lira","liwnarmenian","lj","ljecyrillic","lladeva","llagujarati","llinebelow","llladeva","llvocalicbengali","llvocalicdeva","llvocalicvowelsignbengali","llvocalicvowelsigndeva","lmiddletilde","lmonospace","lmsquare","lochulathai","logicaland","logicalnot","logicalnotreversed","logicalor","lolingthai","longs","lowlinecenterline","lowlinecmb","lowlinedashed","lozenge","lparen","lslash","lsquare","lsuperior","ltshade","luthai","lvocalicbengali","lvocalicdeva","lvocalicvowelsignbengali","lvocalicvowelsigndeva","lxsquare","mabengali","macron","macronbelowcmb","macroncmb","macronlowmod","macronmonospace","macute","madeva","magujarati","magurmukhi","mahapakhhebrew","mahapakhlefthebrew","mahiragana","maichattawalowleftthai","maichattawalowrightthai","maichattawathai","maichattawaupperleftthai","maieklowleftthai","maieklowrightthai","maiekthai","maiekupperleftthai","maihanakatleftthai","maihanakatthai","maitaikhuleftthai","maitaikhuthai","maitholowleftthai","maitholowrightthai","maithothai","maithoupperleftthai","maitrilowleftthai","maitrilowrightthai","maitrithai","maitriupperleftthai","maiyamokthai","makatakana","makatakanahalfwidth","male","mansyonsquare","maqafhebrew","mars","masoracirclehebrew","masquare","mbopomofo","mbsquare","mcircle","mcubedsquare","mdotaccent","mdotbelow","meemarabic","meemfinalarabic","meeminitialarabic","meemmedialarabic","meemmeeminitialarabic","meemmeemisolatedarabic","meetorusquare","mehiragana","meizierasquare","mekatakana","mekatakanahalfwidth","mem","memdagesh","memdageshhebrew","memhebrew","menarmenian","merkhahebrew","merkhakefulahebrew","merkhakefulalefthebrew","merkhalefthebrew","mhook","mhzsquare","middledotkatakanahalfwidth","middot","mieumacirclekorean","mieumaparenkorean","mieumcirclekorean","mieumkorean","mieumpansioskorean","mieumparenkorean","mieumpieupkorean","mieumsioskorean","mihiragana","mikatakana","mikatakanahalfwidth","minus","minusbelowcmb","minuscircle","minusmod","minusplus","minute","miribaarusquare","mirisquare","mlonglegturned","mlsquare","mmcubedsquare","mmonospace","mmsquaredsquare","mohiragana","mohmsquare","mokatakana","mokatakanahalfwidth","molsquare","momathai","moverssquare","moverssquaredsquare","mparen","mpasquare","mssquare","msuperior","mturned","mu1","muasquare","muchgreater","muchless","mufsquare","mugreek","mugsquare","muhiragana","mukatakana","mukatakanahalfwidth","mulsquare","multiply","mumsquare","munahhebrew","munahlefthebrew","musicalnote","musicalnotedbl","musicflatsign","musicsharpsign","mussquare","muvsquare","muwsquare","mvmegasquare","mvsquare","mwmegasquare","mwsquare","nabengali","nabla","nacute","nadeva","nagujarati","nagurmukhi","nahiragana","nakatakana","nakatakanahalfwidth","napostrophe","nasquare","nbopomofo","nbspace","ncaron","ncedilla","ncircle","ncircumflexbelow","ncommaaccent","ndotaccent","ndotbelow","nehiragana","nekatakana","nekatakanahalfwidth","newsheqelsign","nfsquare","ngabengali","ngadeva","ngagujarati","ngagurmukhi","ngonguthai","nhiragana","nhookleft","nhookretroflex","nieunacirclekorean","nieunaparenkorean","nieuncieuckorean","nieuncirclekorean","nieunhieuhkorean","nieunkorean","nieunpansioskorean","nieunparenkorean","nieunsioskorean","nieuntikeutkorean","nihiragana","nikatakana","nikatakanahalfwidth","nikhahitleftthai","nikhahitthai","nine","ninearabic","ninebengali","ninecircle","ninecircleinversesansserif","ninedeva","ninegujarati","ninegurmukhi","ninehackarabic","ninehangzhou","nineideographicparen","nineinferior","ninemonospace","nineoldstyle","nineparen","nineperiod","ninepersian","nineroman","ninesuperior","nineteencircle","nineteenparen","nineteenperiod","ninethai","nj","njecyrillic","nkatakana","nkatakanahalfwidth","nlegrightlong","nlinebelow","nmonospace","nmsquare","nnabengali","nnadeva","nnagujarati","nnagurmukhi","nnnadeva","nohiragana","nokatakana","nokatakanahalfwidth","nonbreakingspace","nonenthai","nonuthai","noonarabic","noonfinalarabic","noonghunnaarabic","noonghunnafinalarabic","nooninitialarabic","noonjeeminitialarabic","noonjeemisolatedarabic","noonmedialarabic","noonmeeminitialarabic","noonmeemisolatedarabic","noonnoonfinalarabic","notcontains","notelement","notelementof","notequal","notgreater","notgreaternorequal","notgreaternorless","notidentical","notless","notlessnorequal","notparallel","notprecedes","notsubset","notsucceeds","notsuperset","nowarmenian","nparen","nssquare","nsuperior","ntilde","nu","nuhiragana","nukatakana","nukatakanahalfwidth","nuktabengali","nuktadeva","nuktagujarati","nuktagurmukhi","numbersign","numbersignmonospace","numbersignsmall","numeralsigngreek","numeralsignlowergreek","numero","nun","nundagesh","nundageshhebrew","nunhebrew","nvsquare","nwsquare","nyabengali","nyadeva","nyagujarati","nyagurmukhi","o","oacute","oangthai","obarred","obarredcyrillic","obarreddieresiscyrillic","obengali","obopomofo","obreve","ocandradeva","ocandragujarati","ocandravowelsigndeva","ocandravowelsigngujarati","ocaron","ocircle","ocircumflex","ocircumflexacute","ocircumflexdotbelow","ocircumflexgrave","ocircumflexhookabove","ocircumflextilde","ocyrillic","odblacute","odblgrave","odeva","odieresis","odieresiscyrillic","odotbelow","oe","oekorean","ogonek","ogonekcmb","ograve","ogujarati","oharmenian","ohiragana","ohookabove","ohorn","ohornacute","ohorndotbelow","ohorngrave","ohornhookabove","ohorntilde","ohungarumlaut","oi","oinvertedbreve","okatakana","okatakanahalfwidth","okorean","olehebrew","omacron","omacronacute","omacrongrave","omdeva","omega","omega1","omegacyrillic","omegalatinclosed","omegaroundcyrillic","omegatitlocyrillic","omegatonos","omgujarati","omicron","omicrontonos","omonospace","one","onearabic","onebengali","onecircle","onecircleinversesansserif","onedeva","onedotenleader","oneeighth","onefitted","onegujarati","onegurmukhi","onehackarabic","onehalf","onehangzhou","oneideographicparen","oneinferior","onemonospace","onenumeratorbengali","oneoldstyle","oneparen","oneperiod","onepersian","onequarter","oneroman","onesuperior","onethai","onethird","oogonek","oogonekmacron","oogurmukhi","oomatragurmukhi","oopen","oparen","openbullet","option","ordfeminine","ordmasculine","orthogonal","oshortdeva","oshortvowelsigndeva","oslash","oslashacute","osmallhiragana","osmallkatakana","osmallkatakanahalfwidth","ostrokeacute","osuperior","otcyrillic","otilde","otildeacute","otildedieresis","oubopomofo","overline","overlinecenterline","overlinecmb","overlinedashed","overlinedblwavy","overlinewavy","overscore","ovowelsignbengali","ovowelsigndeva","ovowelsigngujarati","paampssquare","paasentosquare","pabengali","pacute","padeva","pagedown","pageup","pagujarati","pagurmukhi","pahiragana","paiyannoithai","pakatakana","palatalizationcyrilliccmb","palochkacyrillic","pansioskorean","paragraph","parallel","parenleft","parenleftaltonearabic","parenleftbt","parenleftex","parenleftinferior","parenleftmonospace","parenleftsmall","parenleftsuperior","parenlefttp","parenleftvertical","parenright","parenrightaltonearabic","parenrightbt","parenrightex","parenrightinferior","parenrightmonospace","parenrightsmall","parenrightsuperior","parenrighttp","parenrightvertical","partialdiff","paseqhebrew","pashtahebrew","pasquare","patah","patah11","patah1d","patah2a","patahhebrew","patahnarrowhebrew","patahquarterhebrew","patahwidehebrew","pazerhebrew","pbopomofo","pcircle","pdotaccent","pe","pecyrillic","pedagesh","pedageshhebrew","peezisquare","pefinaldageshhebrew","peharabic","peharmenian","pehebrew","pehfinalarabic","pehinitialarabic","pehiragana","pehmedialarabic","pekatakana","pemiddlehookcyrillic","perafehebrew","percent","percentarabic","percentmonospace","percentsmall","period","periodarmenian","periodcentered","periodhalfwidth","periodinferior","periodmonospace","periodsmall","periodsuperior","perispomenigreekcmb","perpendicular","perthousand","peseta","pfsquare","phabengali","phadeva","phagujarati","phagurmukhi","phi","phi1","phieuphacirclekorean","phieuphaparenkorean","phieuphcirclekorean","phieuphkorean","phieuphparenkorean","philatin","phinthuthai","phisymbolgreek","phook","phophanthai","phophungthai","phosamphaothai","pieupacirclekorean","pieupaparenkorean","pieupcieuckorean","pieupcirclekorean","pieupkiyeokkorean","pieupkorean","pieupparenkorean","pieupsioskiyeokkorean","pieupsioskorean","pieupsiostikeutkorean","pieupthieuthkorean","pieuptikeutkorean","pihiragana","pikatakana","pisymbolgreek","piwrarmenian","planckover2pi","planckover2pi1","plus","plusbelowcmb","pluscircle","plusminus","plusmod","plusmonospace","plussmall","plussuperior","pmonospace","pmsquare","pohiragana","pointingindexdownwhite","pointingindexleftwhite","pointingindexrightwhite","pointingindexupwhite","pokatakana","poplathai","postalmark","postalmarkface","pparen","precedes","prescription","primemod","primereversed","product","projective","prolongedkana","propellor","propersubset","propersuperset","proportion","proportional","psi","psicyrillic","psilipneumatacyrilliccmb","pssquare","puhiragana","pukatakana","pvsquare","pwsquare","qadeva","qadmahebrew","qafarabic","qaffinalarabic","qafinitialarabic","qafmedialarabic","qamats","qamats10","qamats1a","qamats1c","qamats27","qamats29","qamats33","qamatsde","qamatshebrew","qamatsnarrowhebrew","qamatsqatanhebrew","qamatsqatannarrowhebrew","qamatsqatanquarterhebrew","qamatsqatanwidehebrew","qamatsquarterhebrew","qamatswidehebrew","qarneyparahebrew","qbopomofo","qcircle","qhook","qmonospace","qof","qofdagesh","qofdageshhebrew","qofhebrew","qparen","quarternote","qubuts","qubuts18","qubuts25","qubuts31","qubutshebrew","qubutsnarrowhebrew","qubutsquarterhebrew","qubutswidehebrew","question","questionarabic","questionarmenian","questiondown","questiondownsmall","questiongreek","questionmonospace","questionsmall","quotedbl","quotedblbase","quotedblleft","quotedblmonospace","quotedblprime","quotedblprimereversed","quotedblright","quoteleft","quoteleftreversed","quotereversed","quoteright","quoterightn","quotesinglbase","quotesingle","quotesinglemonospace","raarmenian","rabengali","racute","radeva","radical","radicalex","radoverssquare","radoverssquaredsquare","radsquare","rafe","rafehebrew","ragujarati","ragurmukhi","rahiragana","rakatakana","rakatakanahalfwidth","ralowerdiagonalbengali","ramiddlediagonalbengali","ramshorn","ratio","rbopomofo","rcaron","rcedilla","rcircle","rcommaaccent","rdblgrave","rdotaccent","rdotbelow","rdotbelowmacron","referencemark","reflexsubset","reflexsuperset","registered","registersans","registerserif","reharabic","reharmenian","rehfinalarabic","rehiragana","rekatakana","rekatakanahalfwidth","resh","reshdageshhebrew","reshhebrew","reversedtilde","reviahebrew","reviamugrashhebrew","revlogicalnot","rfishhook","rfishhookreversed","rhabengali","rhadeva","rho","rhook","rhookturned","rhookturnedsuperior","rhosymbolgreek","rhotichookmod","rieulacirclekorean","rieulaparenkorean","rieulcirclekorean","rieulhieuhkorean","rieulkiyeokkorean","rieulkiyeoksioskorean","rieulkorean","rieulmieumkorean","rieulpansioskorean","rieulparenkorean","rieulphieuphkorean","rieulpieupkorean","rieulpieupsioskorean","rieulsioskorean","rieulthieuthkorean","rieultikeutkorean","rieulyeorinhieuhkorean","rightangle","righttackbelowcmb","righttriangle","rihiragana","rikatakana","rikatakanahalfwidth","ring","ringbelowcmb","ringcmb","ringhalfleft","ringhalfleftarmenian","ringhalfleftbelowcmb","ringhalfleftcentered","ringhalfright","ringhalfrightbelowcmb","ringhalfrightcentered","rinvertedbreve","rittorusquare","rlinebelow","rlongleg","rlonglegturned","rmonospace","rohiragana","rokatakana","rokatakanahalfwidth","roruathai","rparen","rrabengali","rradeva","rragurmukhi","rreharabic","rrehfinalarabic","rrvocalicbengali","rrvocalicdeva","rrvocalicgujarati","rrvocalicvowelsignbengali","rrvocalicvowelsigndeva","rrvocalicvowelsigngujarati","rsuperior","rtblock","rturned","rturnedsuperior","ruhiragana","rukatakana","rukatakanahalfwidth","rupeemarkbengali","rupeesignbengali","rupiah","ruthai","rvocalicbengali","rvocalicdeva","rvocalicgujarati","rvocalicvowelsignbengali","rvocalicvowelsigndeva","rvocalicvowelsigngujarati","sabengali","sacute","sacutedotaccent","sadarabic","sadeva","sadfinalarabic","sadinitialarabic","sadmedialarabic","sagujarati","sagurmukhi","sahiragana","sakatakana","sakatakanahalfwidth","sallallahoualayhewasallamarabic","samekh","samekhdagesh","samekhdageshhebrew","samekhhebrew","saraaathai","saraaethai","saraaimaimalaithai","saraaimaimuanthai","saraamthai","saraathai","saraethai","saraiileftthai","saraiithai","saraileftthai","saraithai","saraothai","saraueeleftthai","saraueethai","saraueleftthai","sarauethai","sarauthai","sarauuthai","sbopomofo","scaron","scarondotaccent","scedilla","schwa","schwacyrillic","schwadieresiscyrillic","schwahook","scircle","scircumflex","scommaaccent","sdotaccent","sdotbelow","sdotbelowdotaccent","seagullbelowcmb","secondtonechinese","section","seenarabic","seenfinalarabic","seeninitialarabic","seenmedialarabic","segol","segol13","segol1f","segol2c","segolhebrew","segolnarrowhebrew","segolquarterhebrew","segoltahebrew","segolwidehebrew","seharmenian","sehiragana","sekatakana","sekatakanahalfwidth","semicolon","semicolonarabic","semicolonmonospace","semicolonsmall","semivoicedmarkkana","semivoicedmarkkanahalfwidth","sentisquare","sentosquare","seven","sevenarabic","sevenbengali","sevencircle","sevencircleinversesansserif","sevendeva","seveneighths","sevengujarati","sevengurmukhi","sevenhackarabic","sevenhangzhou","sevenideographicparen","seveninferior","sevenmonospace","sevenoldstyle","sevenparen","sevenperiod","sevenpersian","sevenroman","sevensuperior","seventeencircle","seventeenparen","seventeenperiod","seventhai","sfthyphen","shaarmenian","shabengali","shacyrillic","shaddaarabic","shaddadammaarabic","shaddadammatanarabic","shaddafathaarabic","shaddakasraarabic","shaddakasratanarabic","shade","shadedark","shadelight","shademedium","shadeva","shagujarati","shagurmukhi","shalshelethebrew","shbopomofo","shchacyrillic","sheenarabic","sheenfinalarabic","sheeninitialarabic","sheenmedialarabic","sheicoptic","sheqel","sheqelhebrew","sheva","sheva115","sheva15","sheva22","sheva2e","shevahebrew","shevanarrowhebrew","shevaquarterhebrew","shevawidehebrew","shhacyrillic","shimacoptic","shin","shindagesh","shindageshhebrew","shindageshshindot","shindageshshindothebrew","shindageshsindot","shindageshsindothebrew","shindothebrew","shinhebrew","shinshindot","shinshindothebrew","shinsindot","shinsindothebrew","shook","sigma","sigma1","sigmafinal","sigmalunatesymbolgreek","sihiragana","sikatakana","sikatakanahalfwidth","siluqhebrew","siluqlefthebrew","similar","sindothebrew","siosacirclekorean","siosaparenkorean","sioscieuckorean","sioscirclekorean","sioskiyeokkorean","sioskorean","siosnieunkorean","siosparenkorean","siospieupkorean","siostikeutkorean","six","sixarabic","sixbengali","sixcircle","sixcircleinversesansserif","sixdeva","sixgujarati","sixgurmukhi","sixhackarabic","sixhangzhou","sixideographicparen","sixinferior","sixmonospace","sixoldstyle","sixparen","sixperiod","sixpersian","sixroman","sixsuperior","sixteencircle","sixteencurrencydenominatorbengali","sixteenparen","sixteenperiod","sixthai","slash","slashmonospace","slong","slongdotaccent","smileface","smonospace","sofpasuqhebrew","softhyphen","softsigncyrillic","sohiragana","sokatakana","sokatakanahalfwidth","soliduslongoverlaycmb","solidusshortoverlaycmb","sorusithai","sosalathai","sosothai","sosuathai","space","spacehackarabic","spade","spadesuitblack","spadesuitwhite","sparen","squarebelowcmb","squarecc","squarecm","squarediagonalcrosshatchfill","squarehorizontalfill","squarekg","squarekm","squarekmcapital","squareln","squarelog","squaremg","squaremil","squaremm","squaremsquared","squareorthogonalcrosshatchfill","squareupperlefttolowerrightfill","squareupperrighttolowerleftfill","squareverticalfill","squarewhitewithsmallblack","srsquare","ssabengali","ssadeva","ssagujarati","ssangcieuckorean","ssanghieuhkorean","ssangieungkorean","ssangkiyeokkorean","ssangnieunkorean","ssangpieupkorean","ssangsioskorean","ssangtikeutkorean","ssuperior","sterling","sterlingmonospace","strokelongoverlaycmb","strokeshortoverlaycmb","subset","subsetnotequal","subsetorequal","succeeds","suchthat","suhiragana","sukatakana","sukatakanahalfwidth","sukunarabic","summation","sun","superset","supersetnotequal","supersetorequal","svsquare","syouwaerasquare","tabengali","tackdown","tackleft","tadeva","tagujarati","tagurmukhi","taharabic","tahfinalarabic","tahinitialarabic","tahiragana","tahmedialarabic","taisyouerasquare","takatakana","takatakanahalfwidth","tatweelarabic","tau","tav","tavdages","tavdagesh","tavdageshhebrew","tavhebrew","tbar","tbopomofo","tcaron","tccurl","tcedilla","tcheharabic","tchehfinalarabic","tchehinitialarabic","tchehmedialarabic","tcircle","tcircumflexbelow","tcommaaccent","tdieresis","tdotaccent","tdotbelow","tecyrillic","tedescendercyrillic","teharabic","tehfinalarabic","tehhahinitialarabic","tehhahisolatedarabic","tehinitialarabic","tehiragana","tehjeeminitialarabic","tehjeemisolatedarabic","tehmarbutaarabic","tehmarbutafinalarabic","tehmedialarabic","tehmeeminitialarabic","tehmeemisolatedarabic","tehnoonfinalarabic","tekatakana","tekatakanahalfwidth","telephone","telephoneblack","telishagedolahebrew","telishaqetanahebrew","tencircle","tenideographicparen","tenparen","tenperiod","tenroman","tesh","tet","tetdagesh","tetdageshhebrew","tethebrew","tetsecyrillic","tevirhebrew","tevirlefthebrew","thabengali","thadeva","thagujarati","thagurmukhi","thalarabic","thalfinalarabic","thanthakhatlowleftthai","thanthakhatlowrightthai","thanthakhatthai","thanthakhatupperleftthai","theharabic","thehfinalarabic","thehinitialarabic","thehmedialarabic","thereexists","therefore","theta","theta1","thetasymbolgreek","thieuthacirclekorean","thieuthaparenkorean","thieuthcirclekorean","thieuthkorean","thieuthparenkorean","thirteencircle","thirteenparen","thirteenperiod","thonangmonthothai","thook","thophuthaothai","thorn","thothahanthai","thothanthai","thothongthai","thothungthai","thousandcyrillic","thousandsseparatorarabic","thousandsseparatorpersian","three","threearabic","threebengali","threecircle","threecircleinversesansserif","threedeva","threeeighths","threegujarati","threegurmukhi","threehackarabic","threehangzhou","threeideographicparen","threeinferior","threemonospace","threenumeratorbengali","threeoldstyle","threeparen","threeperiod","threepersian","threequarters","threequartersemdash","threeroman","threesuperior","threethai","thzsquare","tihiragana","tikatakana","tikatakanahalfwidth","tikeutacirclekorean","tikeutaparenkorean","tikeutcirclekorean","tikeutkorean","tikeutparenkorean","tilde","tildebelowcmb","tildecmb","tildecomb","tildedoublecmb","tildeoperator","tildeoverlaycmb","tildeverticalcmb","timescircle","tipehahebrew","tipehalefthebrew","tippigurmukhi","titlocyrilliccmb","tiwnarmenian","tlinebelow","tmonospace","toarmenian","tohiragana","tokatakana","tokatakanahalfwidth","tonebarextrahighmod","tonebarextralowmod","tonebarhighmod","tonebarlowmod","tonebarmidmod","tonefive","tonesix","tonetwo","tonos","tonsquare","topatakthai","tortoiseshellbracketleft","tortoiseshellbracketleftsmall","tortoiseshellbracketleftvertical","tortoiseshellbracketright","tortoiseshellbracketrightsmall","tortoiseshellbracketrightvertical","totaothai","tpalatalhook","tparen","trademark","trademarksans","trademarkserif","tretroflexhook","triagdn","triaglf","triagrt","triagup","ts","tsadi","tsadidagesh","tsadidageshhebrew","tsadihebrew","tsecyrillic","tsere","tsere12","tsere1e","tsere2b","tserehebrew","tserenarrowhebrew","tserequarterhebrew","tserewidehebrew","tshecyrillic","tsuperior","ttabengali","ttadeva","ttagujarati","ttagurmukhi","tteharabic","ttehfinalarabic","ttehinitialarabic","ttehmedialarabic","tthabengali","tthadeva","tthagujarati","tthagurmukhi","tturned","tuhiragana","tukatakana","tukatakanahalfwidth","tusmallhiragana","tusmallkatakana","tusmallkatakanahalfwidth","twelvecircle","twelveparen","twelveperiod","twelveroman","twentycircle","twentyhangzhou","twentyparen","twentyperiod","two","twoarabic","twobengali","twocircle","twocircleinversesansserif","twodeva","twodotenleader","twodotleader","twodotleadervertical","twogujarati","twogurmukhi","twohackarabic","twohangzhou","twoideographicparen","twoinferior","twomonospace","twonumeratorbengali","twooldstyle","twoparen","twoperiod","twopersian","tworoman","twostroke","twosuperior","twothai","twothirds","uacute","ubar","ubengali","ubopomofo","ubreve","ucaron","ucircle","ucircumflex","ucircumflexbelow","ucyrillic","udattadeva","udblacute","udblgrave","udeva","udieresis","udieresisacute","udieresisbelow","udieresiscaron","udieresiscyrillic","udieresisgrave","udieresismacron","udotbelow","ugrave","ugujarati","ugurmukhi","uhiragana","uhookabove","uhorn","uhornacute","uhorndotbelow","uhorngrave","uhornhookabove","uhorntilde","uhungarumlaut","uhungarumlautcyrillic","uinvertedbreve","ukatakana","ukatakanahalfwidth","ukcyrillic","ukorean","umacron","umacroncyrillic","umacrondieresis","umatragurmukhi","umonospace","underscore","underscoredbl","underscoremonospace","underscorevertical","underscorewavy","universal","uogonek","uparen","upblock","upperdothebrew","upsilon","upsilondieresis","upsilondieresistonos","upsilonlatin","upsilontonos","uptackbelowcmb","uptackmod","uragurmukhi","uring","ushortcyrillic","usmallhiragana","usmallkatakana","usmallkatakanahalfwidth","ustraightcyrillic","ustraightstrokecyrillic","utilde","utildeacute","utildebelow","uubengali","uudeva","uugujarati","uugurmukhi","uumatragurmukhi","uuvowelsignbengali","uuvowelsigndeva","uuvowelsigngujarati","uvowelsignbengali","uvowelsigndeva","uvowelsigngujarati","vadeva","vagujarati","vagurmukhi","vakatakana","vav","vavdagesh","vavdagesh65","vavdageshhebrew","vavhebrew","vavholam","vavholamhebrew","vavvavhebrew","vavyodhebrew","vcircle","vdotbelow","vecyrillic","veharabic","vehfinalarabic","vehinitialarabic","vehmedialarabic","vekatakana","venus","verticalbar","verticallineabovecmb","verticallinebelowcmb","verticallinelowmod","verticallinemod","vewarmenian","vhook","vikatakana","viramabengali","viramadeva","viramagujarati","visargabengali","visargadeva","visargagujarati","vmonospace","voarmenian","voicediterationhiragana","voicediterationkatakana","voicedmarkkana","voicedmarkkanahalfwidth","vokatakana","vparen","vtilde","vturned","vuhiragana","vukatakana","w","wacute","waekorean","wahiragana","wakatakana","wakatakanahalfwidth","wakorean","wasmallhiragana","wasmallkatakana","wattosquare","wavedash","wavyunderscorevertical","wawarabic","wawfinalarabic","wawhamzaabovearabic","wawhamzaabovefinalarabic","wbsquare","wcircle","wcircumflex","wdieresis","wdotaccent","wdotbelow","wehiragana","weierstrass","wekatakana","wekorean","weokorean","wgrave","whitebullet","whitecircle","whitecircleinverse","whitecornerbracketleft","whitecornerbracketleftvertical","whitecornerbracketright","whitecornerbracketrightvertical","whitediamond","whitediamondcontainingblacksmalldiamond","whitedownpointingsmalltriangle","whitedownpointingtriangle","whiteleftpointingsmalltriangle","whiteleftpointingtriangle","whitelenticularbracketleft","whitelenticularbracketright","whiterightpointingsmalltriangle","whiterightpointingtriangle","whitesmallsquare","whitesmilingface","whitesquare","whitestar","whitetelephone","whitetortoiseshellbracketleft","whitetortoiseshellbracketright","whiteuppointingsmalltriangle","whiteuppointingtriangle","wihiragana","wikatakana","wikorean","wmonospace","wohiragana","wokatakana","wokatakanahalfwidth","won","wonmonospace","wowaenthai","wparen","wring","wsuperior","wturned","wynn","xabovecmb","xbopomofo","xcircle","xdieresis","xdotaccent","xeharmenian","xi","xmonospace","xparen","xsuperior","yaadosquare","yabengali","yacute","yadeva","yaekorean","yagujarati","yagurmukhi","yahiragana","yakatakana","yakatakanahalfwidth","yakorean","yamakkanthai","yasmallhiragana","yasmallkatakana","yasmallkatakanahalfwidth","yatcyrillic","ycircle","ycircumflex","ydieresis","ydotaccent","ydotbelow","yeharabic","yehbarreearabic","yehbarreefinalarabic","yehfinalarabic","yehhamzaabovearabic","yehhamzaabovefinalarabic","yehhamzaaboveinitialarabic","yehhamzaabovemedialarabic","yehinitialarabic","yehmedialarabic","yehmeeminitialarabic","yehmeemisolatedarabic","yehnoonfinalarabic","yehthreedotsbelowarabic","yekorean","yen","yenmonospace","yeokorean","yeorinhieuhkorean","yerahbenyomohebrew","yerahbenyomolefthebrew","yericyrillic","yerudieresiscyrillic","yesieungkorean","yesieungpansioskorean","yesieungsioskorean","yetivhebrew","ygrave","yhook","yhookabove","yiarmenian","yicyrillic","yikorean","yinyang","yiwnarmenian","ymonospace","yod","yoddagesh","yoddageshhebrew","yodhebrew","yodyodhebrew","yodyodpatahhebrew","yohiragana","yoikorean","yokatakana","yokatakanahalfwidth","yokorean","yosmallhiragana","yosmallkatakana","yosmallkatakanahalfwidth","yotgreek","yoyaekorean","yoyakorean","yoyakthai","yoyingthai","yparen","ypogegrammeni","ypogegrammenigreekcmb","yr","yring","ysuperior","ytilde","yturned","yuhiragana","yuikorean","yukatakana","yukatakanahalfwidth","yukorean","yusbigcyrillic","yusbigiotifiedcyrillic","yuslittlecyrillic","yuslittleiotifiedcyrillic","yusmallhiragana","yusmallkatakana","yusmallkatakanahalfwidth","yuyekorean","yuyeokorean","yyabengali","yyadeva","zaarmenian","zacute","zadeva","zagurmukhi","zaharabic","zahfinalarabic","zahinitialarabic","zahiragana","zahmedialarabic","zainarabic","zainfinalarabic","zakatakana","zaqefgadolhebrew","zaqefqatanhebrew","zarqahebrew","zayin","zayindagesh","zayindageshhebrew","zayinhebrew","zbopomofo","zcaron","zcircle","zcircumflex","zcurl","zdot","zdotaccent","zdotbelow","zecyrillic","zedescendercyrillic","zedieresiscyrillic","zehiragana","zekatakana","zero","zeroarabic","zerobengali","zerodeva","zerogujarati","zerogurmukhi","zerohackarabic","zeroinferior","zeromonospace","zerooldstyle","zeropersian","zerosuperior","zerothai","zerowidthjoiner","zerowidthnonjoiner","zerowidthspace","zeta","zhbopomofo","zhearmenian","zhebrevecyrillic","zhecyrillic","zhedescendercyrillic","zhedieresiscyrillic","zihiragana","zikatakana","zinorhebrew","zlinebelow","zmonospace","zohiragana","zokatakana","zparen","zretroflexhook","zstroke","zuhiragana","zukatakana","angbracketleftbig","angbracketleftBig","angbracketleftbigg","angbracketleftBigg","angbracketrightBig","angbracketrightbig","angbracketrightBigg","angbracketrightbigg","arrowhookleft","arrowhookright","arrowlefttophalf","arrowleftbothalf","arrownortheast","arrownorthwest","arrowrighttophalf","arrowrightbothalf","arrowsoutheast","arrowsouthwest","backslashbig","backslashBig","backslashBigg","backslashbigg","bardbl","bracehtipdownleft","bracehtipdownright","bracehtipupleft","bracehtipupright","braceleftBig","braceleftbig","braceleftbigg","braceleftBigg","bracerightBig","bracerightbig","bracerightbigg","bracerightBigg","bracketleftbig","bracketleftBig","bracketleftbigg","bracketleftBigg","bracketrightBig","bracketrightbig","bracketrightbigg","bracketrightBigg","ceilingleftbig","ceilingleftBig","ceilingleftBigg","ceilingleftbigg","ceilingrightbig","ceilingrightBig","ceilingrightbigg","ceilingrightBigg","circledotdisplay","circledottext","circlemultiplydisplay","circlemultiplytext","circleplusdisplay","circleplustext","contintegraldisplay","contintegraltext","coproductdisplay","coproducttext","floorleftBig","floorleftbig","floorleftbigg","floorleftBigg","floorrightbig","floorrightBig","floorrightBigg","floorrightbigg","hatwide","hatwider","hatwidest","intercal","integraldisplay","integraltext","intersectiondisplay","intersectiontext","logicalanddisplay","logicalandtext","logicalordisplay","logicalortext","parenleftBig","parenleftbig","parenleftBigg","parenleftbigg","parenrightBig","parenrightbig","parenrightBigg","parenrightbigg","prime","productdisplay","producttext","radicalbig","radicalBig","radicalBigg","radicalbigg","radicalbt","radicaltp","radicalvertex","slashbig","slashBig","slashBigg","slashbigg","summationdisplay","summationtext","tildewide","tildewider","tildewidest","uniondisplay","unionmultidisplay","unionmultitext","unionsqdisplay","unionsqtext","uniontext","vextenddouble","vextendsingle","getDingbatsGlyphsUnicode","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","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","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","getSpecialPUASymbols","mapSpecialUnicodeValues","getUnicodeForGlyph","glyphsUnicodeMap","nameLen","hexStr","UnicodeRanges","getUnicodeRangeFor","lastPosition","SpecialCharRegExp","CategoryCache","getCharUnicodeCategory","cachedCategory","groups","category","isWhitespace","isZeroWidthDiacritic","isInvisibleFormatMark","clearUnicodeCaches","SEAC_ANALYSIS_ENABLED","FontFlags","FixedPitch","Serif","Symbolic","Script","Nonsymbolic","Italic","AllCap","SmallCap","ForceBold","MacStandardGlyphOrdering","recoverGlyphName","type1FontGlyphMapping","builtInEncoding","glyphNames","charCodeToGlyphId","glyphId","isSymbolicFont","isInternalFont","baseEncodingName","differences","glyphName","standardGlyphName","normalizeFontName","getStdFontMap","Helvetica","Courier","ZapfDingbats","ArialNarrow","ArialBlack","Arial","ArialMT","ArialUnicodeMS","CourierNew","CourierNewPSMT","TimesNewRoman","TimesNewRomanPS","TimesNewRomanPSMT","getFontNameToFileMap","getNonStdFontMap","Calibri","CenturyGothic","ComicSansMS","Impact","LucidaConsole","NuptialScript","SegoeUISymbol","getSerifFonts","Albertus","Aldus","Alexandria","Algerian","Antiqua","Apex","Arno","Aster","Aurora","Baskerville","Bell","Bembo","Benguiat","Bodoni","Bookman","Calisto","Calvert","Capitals","Cambria","Cartier","Caslon","Catull","Centaur","Chaparral","Cheltenham","Clarendon","Clearface","Cochin","Colonna","Constantia","Corona","Ecotype","Egyptienne","Elephant","Excelsior","Fairfield","Folkard","Footlight","FreeSerif","Garamond","Gentium","Georgia","Gloucester","Granjon","Heather","Hercules","Hiroshige","Imprint","Janson","Joanna","Korinna","Lexicon","LiberationSerif","Literaturnaya","Lucida","Melior","Memphis","Miller","Minion","Modern","Palatino","Perpetua","Plantin","Playbill","Renault","Requiem","Rockwell","Roman","Sabon","Scala","Seagull","Sistina","Souvenir","STIX","Sylfaen","Times","Trajan","Utopia","Versailles","Wanted","Weiss","Windsor","XITS","getSymbolsFonts","Dingbats","Wingdings","getGlyphMapForStandardFonts","getSupplementalGlyphMapForArialBlack","getSupplementalGlyphMapForCalibri","getStandardFontName","fontName","stdFontMap","isKnownFontName","ToUnicodeMap","cmap","amend","IdentityToUnicodeMap","firstChar","lastChar","CFFFont","compiler","loadedName","_createBuiltInEncoding","getCharset","getGlyphMapping","cidToGidMap","charsets","composite","invCidToGidMap","defaultEncoding","encodings","getUint32","getInt16","getFloat214","getSubroutineBias","numSubrs","parseCmap","segCount","idDelta","idOffset","ids","parseCff","glyphs","gsubrs","isCFFCIDFont","parseGlyfTable","glyf","loca","isGlyphLocationsLong","itemSize","itemDecode","lookupCmap","compileGlyf","cmds","font","quadraticCurveTo","xa","ya","numberOfContours","arg1","arg2","scale01","scale10","subglyph","endPtsOfContours","instructionLength","numberOfPoints","points","repeat","startPoint","endPoint","contour","compileCharString","charStringCode","bezierCurveTo","stems","stackClean","xb","yb","subrCode","subrsBias","achar","bchar","glyphNameMap","gsubrsBias","NOOP","CompiledFont","compiledGlyphs","compiledCharCodeToGlyphId","getPathJs","compileGlyph","compileGlyphImpl","hasBuiltPath","TrueTypeCompiled","Type2Compiled","cffInfo","FontRendererFactory","indexToLocFormat","unitsPerEm","numTables","getMetrics","getFontBasicMetrics","capHeight","xHeight","ON_CURVE_POINT","X_SHORT_VECTOR","Y_SHORT_VECTOR","REPEAT_FLAG","X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR","Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR","OVERLAP_SIMPLE","ARG_1_AND_2_ARE_WORDS","ARGS_ARE_XY_VALUES","WE_HAVE_A_SCALE","MORE_COMPONENTS","WE_HAVE_AN_X_AND_Y_SCALE","WE_HAVE_A_TWO_BY_TWO","WE_HAVE_INSTRUCTIONS","GlyfTable","glyfTable","locaTable","byteOffset","Glyph","getSize","totalSize","isLocationLong","setUint32","setUint16","locaIndex","factors","composites","GlyphHeader","CompositeGlyph","SimpleGlyph","spos","factor","xMiddle","_ref3","yMin","yMax","setInt16","Contour","_ref4","xCoordinates","yCoordinates","_ref5","contours","instructions","endPt","numberOfPt","flag","getUint8","allXCoordinates","pointFlags","endPtsOfContoursIndex","lastCoordinate","lastX","lastY","setUint8","_ref6","argument1","argument2","transf","writeInt16","writeInt32","writeData","OTF_HEADER_SIZE","OTF_TABLE_ENTRY_SIZE","OpenTypeFileBuilder","sfnt","getSearchParams","entriesCount","entrySize","maxPower2","searchRange","rangeShift","tablesNames","tableName","tableOffsets","paddedLength","searchParams","checksum","quad","addTable","HINTING_ENABLED","COMMAND_MAP","hstem","vstem","vmoveto","rlineto","hlineto","vlineto","rrcurveto","callsubr","flex","drop","endchar","rmoveto","hmoveto","vhcurveto","hvcurveto","Type1CharString","lsb","flexing","convert","encoded","wx","sbx","executeCommand","dy","asb","splice","sby","num2","num1","flexArgs","howManyArgs","command","keepStack","stackLength","EEXEC_ENCRYPT_KEY","CHAR_STRS_ENCRYPT_KEY","isHexDigit","decrypt","discardNumber","c1","c2","decrypted","decryptAscii","digit1","digit2","isSpecial","Type1Parser","encrypted","isBinary","readNumberArray","getToken","token","readInt","readBoolean","prevChar","readCharStrings","lenIV","extractFontProgram","charstrings","privateData","program","blueArray","charString","charStringObject","extractFontHeader","encodingArg","findBlock","streamBytes","startIndex","streamBytesLength","getHeaderBlock","suggestedLength","EEXEC_SIGNATURE","streamStartPos","headerBytes","headerBytesLength","getEexecBlock","eexecBytes","Type1Font","PFB_HEADER_SIZE","headerBlockLength","length1","eexecBlockLength","length2","pfbHeader","pfbHeaderPresent","headerBlock","headerBlockParser","eexecBlock","eexecBlockParser","type2Charstrings","getType2Charstrings","getType2Subrs","wrap","getSeacs","charstringsLen","seacMap","type1Charstrings","type1Charstring","type1Subrs","type2Subrs","bbox","charsetArray","fields","field","subrIndex","PRIVATE_USE_AREAS","PDF_GLYPH_SPACE_UNITS","EXPORT_DATA_PROPERTIES","EXPORT_DATA_EXTRA_PROPERTIES","adjustWidths","glyphsWidths","adjustTrueTypeToUnicode","nameRecords","hasIncludedToUnicodeMap","hasEncoding","toUnicode","isWinNameRecord","adjustType1ToUnicode","amendFallbackToUnicode","fallbackToUnicode","originalCharCode","fontChar","accent","vmetric","operatorListId","isSpace","isInFont","int16","writeSignedInt16","signedInt16","writeUint32","int32","string16","safeString16","isTrueTypeFile","isTrueTypeCollectionFile","isOpenTypeFile","isType1File","isCFFFile","getFontFileType","subtype","fileType","fileSubtype","applyStandardFontGlyphMap","glyphMap","buildToFontChar","toFontChar","isMacNameRecord","language","convertCidString","shouldThrow","adjustMapping","hasGlyph","newGlyphZeroId","newMap","toUnicodeExtraMap","usedGlyphIds","privateUseAreaIndex","privateUseOffetStart","nextAvailableFontCharCode","privateUseOffetEnd","isInPrivateArea","fontCharCode","getRanges","fontGetRangesSort","codeIndices","createCmapTable","bmpLength","trailingRangesCount","startCount","endCount","idDeltas","idRangeOffsets","glyphsIds","contiguous","startCode","format314","format31012","header31012","validateOS2Table","os2","selection","usWinAscent","createOS2Table","override","ulUnicodeRange1","ulUnicodeRange2","ulUnicodeRange3","ulUnicodeRange4","firstCharIndex","lastCharIndex","typoAscent","typoDescent","winAscent","winDescent","fixedPitch","createPostTable","createPostscriptName","createNameTable","stringsUnicode","strBufUnicode","platforms","languages","namesRecordCount","nameTable","strOffset","strs","nameRecord","Font","psName","mimetype","disableFontFace","isType3Font","missingFile","_charsCache","_glyphCache","isSerifFont","isSimulatedFlags","baseName","serifFonts","namePart","isMonospace","systemFontInfo","matches","isInvalidPDFjsFont","fallbackName","guessFallback","css","lineHeight","cidEncoding","vmetrics","defaultVMetrics","fallbackToSystemFont","checkAndRepair","isOpenType","renderer","exportData","extraProperties","exportDataProperties","nonStdFontMap","isStandardFont","isMappedToStandardFont","fontBasicMetricsMap","metrics","bold","italic","isNarrow","remeasure","unicodeCharCode","VALID_TABLES","readTables","hhea","hmtx","maxp","post","readTableEntry","previousPosition","readOpenTypeHeader","ttf","entrySelector","readTrueTypeCollectionHeader","ttc","ttcTag","majorVersion","minorVersion","numFonts","offsetTable","dsigTag","dsigLength","dsigOffset","readTrueTypeCollectionData","fontNameParts","fallbackData","potentialHeader","potentialTables","readNameTable","nameEntry","part","readCmapTable","platformId","encodingId","mappings","hasShortCmap","potentialTable","canBreak","useTable","correctlySorted","nextBytes","nextPlatformId","subHeaderKeys","maxSubHeaderKey","subHeaderKey","subHeaders","entryCount","idRangePos","segIndex","offsetsCount","offsetIndex","rangeOffset","nGroups","startCharCode","endCharCode","glyphCode","sanitizeMetrics","headTable","dupFirstEntry","caretOffset","numOfMetrics","macStyle","numOfSidebearings","numMissing","sanitizeGlyph","sourceStart","sourceEnd","destStart","hintsValid","glyphProfile","sizeOfInstructions","contoursCount","flagsCount","instructionsStart","instructionsLength","instructionsEnd","coordinatesLength","xLength","yLength","xyLength","glyphDataLength","sanitizeHead","locaLength","numGlyphsPlusOne","sanitizeGlyphLocations","maxSizeOfInstructions","itemEncode","fontItemDecodeLong","fontItemEncodeLong","fontItemDecode","fontItemEncode","numGlyphsOut","locaDataSize","locaData","oldGlyfData","oldGlyfDataLength","newGlyfData","locaEntries","nextOffset","missingGlyphs","writeOffset","simpleGlyph","firstEntryLength","readPostScriptTable","propertiesObj","maxpNumGlyphs","glyphNameIndexes","customNames","stringLength","records","FORMAT_0_HEADER_LENGTH","numRecords","stringsStart","NAME_RECORD_LENGTH","TTOpsStackDeltas","sanitizeTTProgram","ttContext","funcId","lastEndf","lastDeff","callstack","functionsCalled","tooComplexToFollowFunctions","inFDEF","ifLevel","inELSE","op","functionsUsed","functionsStackDeltas","newStackLength","functionsDefined","stackTop","foldTTTable","checkInvalidFunctions","maxFunctionDefs","sanitizeTTPrograms","fpgm","prep","cvt","cvtData","ttcData","cffFile","isTrueType","isComposite","scaleFactors","advanceWidth","maxZones","glyphsInfo","metricsOverride","lineGap","isCidToGidMapEmpty","cmapTable","cmapPlatformId","cmapEncodingId","cmapMappings","forcePostTable","unicodeOrCharCode","mapping","glyphZeroId","newMapping","namePrototype","builder","tableTag","newCharCodeToGlyphId","getCharCodes","charCodes","createCharCode","baseGlyphName","accentGlyphName","baseGlyphId","accentGlyphId","accentOffset","baseFontCharCode","accentFontCharCode","tan","fontFieldsHmtx","cffWidths","spaceWidth","possibleSpaceReplacements","glyphUnicode","_charToGlyph","widthCode","fromCodePoint","charsToGlyphs","chars","getCharPositions","positions","glyphCacheValues","encodeString","buffers","currentBuf","hasCurrentBufErrors","getCharCode","charCodeLength","ErrorFont","ShadingType","FUNCTION_BASED","AXIAL","RADIAL","FREE_FORM_MESH","LATTICE_FORM_MESH","COONS_PATCH_MESH","TENSOR_PATCH_MESH","Pattern","parseShading","shading","res","RadialAxialShading","MeshShading","DummyShading","BaseShading","SMALL_NUMBER","getIR","coordsArr","shadingType","t0","domainArr","extendStart","extendEnd","extendArr","r1","r2","distance","hypot","fnObj","createFromArray","NUMBER_OF_SAMPLES","colorStops","rgbColor","iBase","rgbBase","cssColorBase","iPrev","rgbPrev","maxSlopeR","maxSlopeG","maxSlopeB","minSlopeR","minSlopeG","minSlopeB","run","slopesExist","cssColor","background","r0","MeshStreamReader","tmpCompsBuf","csNumComps","colorSpace","tmpCsCompsBuf","colorFn","hasData","align","readFlag","bitsPerFlag","readCoordinate","bitsPerCoordinate","yi","readComponents","ci","bCache","buildB","lut","t_","getB","clearPatternCaches","MIN_SPLIT_PATCH_CHUNKS_AMOUNT","MAX_SPLIT_PATCH_CHUNKS_AMOUNT","TRIANGLE_DENSITY","coords","figures","decodeContext","patchMesh","_decodeType4Shading","verticesPerRow","_decodeType5Shading","_decodeType6Shading","_decodeType7Shading","_updateBounds","_buildFigureFromPatch","_packData","operators","ps","verticesLeft","coord","tmp1","tmp2","tmp3","tmp4","figure","figureMinX","figureMinY","figureMaxX","figureMaxY","splitXBy","splitYBy","figureCoords","figureColors","cl","cr","c0","c3","bRow","bCol","newColor","maxY","coordsPacked","xy","colorsPacked","getTilingPatternIR","operatorList","xstep","ystep","paintType","tilingType","CalibriBoldFactors","CalibriBoldMetrics","CalibriBoldItalicFactors","CalibriBoldItalicMetrics","CalibriItalicFactors","CalibriItalicMetrics","CalibriRegularFactors","CalibriRegularMetrics","HelveticaBoldFactors","HelveticaBoldMetrics","HelveticaBoldItalicFactors","HelveticaBoldItalicMetrics","HelveticaItalicFactors","HelveticaItalicMetrics","HelveticaRegularFactors","HelveticaRegularMetrics","LiberationSansBoldWidths","LiberationSansBoldMapping","LiberationSansBoldItalicWidths","LiberationSansBoldItalicMapping","LiberationSansItalicWidths","LiberationSansItalicMapping","LiberationSansRegularWidths","LiberationSansRegularMapping","MyriadProBoldFactors","MyriadProBoldMetrics","MyriadProBoldItalicFactors","MyriadProBoldItalicMetrics","MyriadProItalicFactors","MyriadProItalicMetrics","MyriadProRegularFactors","MyriadProRegularMetrics","SegoeuiBoldFactors","SegoeuiBoldMetrics","SegoeuiBoldItalicFactors","SegoeuiBoldItalicMetrics","SegoeuiItalicFactors","SegoeuiItalicMetrics","SegoeuiRegularFactors","SegoeuiRegularMetrics","getXFAFontMap","baseWidths","baseMapping","getXfaFontName","fontMap","getXfaFontWidths","rescaledBaseWidths","currentArray","newWidths","charUnicode","unicode1","unicode2","getXfaFontDict","systemInfo","PostScriptParser","nextToken","accept","expect","PostScriptTokenTypes","LBRACE","parseBlock","RBRACE","NUMBER","OPERATOR","parseCondition","conditionLocation","IF","jumpLocation","endOfTrue","IFELSE","PostScriptToken","opCache","getOperator","PostScriptLexer","BaseLocalCache","_onlyRefs","onlyRefs","_nameRefMap","_imageMap","_imageCache","LocalImageCache","LocalColorSpaceCache","LocalFunctionCache","LocalGStateCache","LocalTilingPatternCache","RegionalImageCache","GlobalImageCache","NUM_PAGES_THRESHOLD","MIN_IMAGES_TO_CACHE","MAX_BYTE_SIZE","_refCache","_byteSize","byteSize","imageData","_cacheLimitReached","shouldCache","pageIndexSet","addByteSize","setData","onlyData","PDFFunctionFactory","cachedFunction","parsedFunction","PDFFunction","parseArray","fnRef","localFunction","_localFunctionCache","toNumberArray","getSampleArray","outputSize","bps","sampleMul","strBytes","strIdx","typeNum","constructSampled","constructInterpolated","constructStiched","constructPostScript","fnArray","toMultiArray","interpolate","xmin","xmax","ymin","ymax","inputSize","encode","samples","constructSampledFn","cubeVertices","cubeN","cubeVertex","domain_2i","domain_2i_1","size_i","e0","n0","n1","rj","constructInterpolatedFn","fns","constructStichedFn","constructStichedFromIRClip","dmin","dmax","rmin","rmax","_ref7","PostScriptCompiler","numOutputs","numInputs","evaluator","PostScriptEvaluator","MAX_CACHE_SIZE","cache_available","constructPostScriptFn","cachedValue","execute","stackIndex","bound","isPDFFunction","fnDict","PostScriptStack","MAX_STACK_SIZE","initialStack","copy","roll","operator","atan2","cos","log10","sin","AstNode","visit","AstArgument","visitArgument","AstLiteral","visitLiteral","AstBinaryOperation","visitBinaryOperation","AstMin","visitMin","AstVariable","visitVariable","AstVariableDefinition","variable","visitVariableDefinition","ExpressionBuilderVisitor","parts","literal","operation","definition","buildAddOperation","buildMulOperation","buildSubOperation","buildMinOperation","lastRegister","ast1","ast2","tmpVar","instruction","statementBuilder","expr","baseTypes","arabicTypes","isOdd","isEven","findUnequal","setValues","reverseValues","createBidiText","isLTR","dir","bidi","startLevel","strLength","numBidi","charType","sor","eor","lastType","before","after","highestLevel","lowestOddLevel","NORMAL","BOLD","ITALIC","BOLDITALIC","substitutionMap","local","ultimate","alias","fallback","fontAliases","getStyleToAppend","generateFont","localFontPath","useFallback","usePath","extra","substitution","aliasAppend","assign","fallbackInfo","fallbackUltimate","getFontSubstitution","systemFontCache","idFactory","baseFontName","standardFontName","substitutionInfo","subst","mustAddBaseFont","getDocId","createFontId","MIN_IMAGE_DIM","MAX_IMAGE_DIM","MAX_ERROR","ImageResizer","imgData","isMask","_imgData","_isMask","needsToBeResized","_goodSquareLength","MAX_DIM","area","_hasMaxArea","MAX_AREA","_areGoodDims","_guessMax","maxArea","setMaxArea","canvas","ctx","getContext","fillRect","opacity","getImageData","tolerance","defaultHeight","middle","createImage","_createImage","_encodeBMP","blob","Blob","bitmapPromise","createImageBitmap","minFactor","firstFactor","steps","newWidth","newHeight","prevWidth","prevHeight","drawImage","transferToImageBitmap","bitPerPixel","colorTable","maskTable","compression","rowLen","newData","extraLen","view","headerLength","fileLength","bmpData","setInt32","SEED","MASK_HIGH","MASK_LOW","MurmurHash3_64","seed","update","blockCounts","tailLength","dataUint32","k1","k2","C1","C2","C1_LOW","C2_LOW","hexdigest","addState","parentState","pattern","checkFn","iterateFn","processFn","InitialState","iterateInlineImageGroup","iFirstSave","iCurr","foundInlineImageGroup","MIN_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_WIDTH","IMAGE_PADDING","argsArray","curr","iFirstTransform","iFirstPIIXO","maxLineHeight","currentX","currentY","img","imgWidth","imgHeight","putImageData","ImageData","iterateImageMaskGroup","foundImageMaskGroup","MIN_IMAGES_IN_MASKS_BLOCK","MAX_IMAGES_IN_MASKS_BLOCK","MAX_SAME_IMAGES_IN_MASKS_BLOCK","iFirstPIMXO","isSameImage","iTransform","transformArgs","firstPIMXOArg0","firstTransformArg0","firstTransformArg1","firstTransformArg2","firstTransformArg3","iPIMXO","images","maskParams","iterateImageGroup","iFirstPIXO","firstPIXOArg0","MIN_IMAGES_IN_BLOCK","MAX_IMAGES_IN_BLOCK","iterateShowTextGroup","iFirstSetFont","firstSetFontArg0","firstSetFontArg1","MIN_CHARS_IN_BLOCK","MAX_CHARS_IN_BLOCK","iFirstBeginText","iFirstSetTextMatrix","iFirstShowText","iFirstEndText","iFirst","iEndText","NullOptimizer","_optimize","flush","QueueOptimizer","lastProcessed","OperatorList","CHUNK_SIZE","_defineProperty","intent","streamSink","_streamSink","optimizer","dependencies","_totalLength","_resolved","ready","addOp","CHUNK_SIZE_ABOUT","addImageOps","optionalContent","addDependency","addDependencies","addOpList","opList","_transfers","transfers","cached","separateAnnots","enqueue","decodeAndClamp","addend","coefficient","resizeImageMask","PDFImage","image","isInline","smask","imageMask","matte","needsDecode","decodeCoefficients","decodeAddends","isIndexed","maskDict","buildImage","smaskData","maskData","createRawMask","imgArray","imageIsFromDecodeStream","computedLength","haveFullData","createMask","isSingleOpaquePixel","createImageData","decodeBuffer","getComponents","bufferPos","rowComps","loop1End","loop2End","remainingBits","fillOpacity","rgbaBuf","alphaBuf","sw","sh","fillGrayBuffer","imageOffset","maskOffset","undoPreblend","matteRgb","matteR","matteG","matteB","mustBeResized","getImageBytes","createBitmap","imageLength","isHandled","rgba","internal","maybeUndoPreblend","canvasImgData","imageBytes","DefaultPartialEvaluatorOptions","freeze","maxImageSize","ignoreErrors","canvasMaxAreaInBytes","fontExtraProperties","useSystemFonts","cMapUrl","standardFontDataUrl","PatternType","TILING","SHADING","TEXT_CHUNK_BATCH_SIZE","deferred","normalizeBlendMode","parsingArray","maybeBM","incrementCachedImageMaskCount","TimeSlotManager","TIME_SLOT_DURATION_MS","CHECK_TIME_EVERY","checked","endTime","now","PartialEvaluator","handler","fontCache","builtInCMapCache","standardFontDataCache","globalImageCache","parsingType3Font","_regionalImageCache","_fetchBuiltInCMapBound","_pdfFunctionFactory","newOptions","newEvaluator","hasBlendModes","nonBlendModesSet","nodes","graphicStates","graphicState","bm","xObjects","xObject","xResources","response","ok","statusText","sendWithPromise","fetchStandardFontData","standardFontNameToFileName","filename","buildFormXObject","xobj","task","initialState","groupOptions","parseMarkedContentProps","group","isolated","knockout","groupSubtype","parseColorSpace","backdrop","getOperatorList","_sendImgData","cacheGlobally","buildPaintImageXObject","localImageCache","imageRef","bitStrideLength","cacheData","createObjId","dataLen","SMALL_IMAGE_DIMENSIONS","imageObj","localLength","handleSMask","stateManager","smaskContent","smaskOptions","transferObj","transferFn","transferMap","handleTransferFunction","tr","transferArray","transferMaps","numFns","numEffectfulFns","handleTilingType","patternDict","localTilingPatternCache","tilingOpList","patternResources","operatorListIR","tilingPatternIR","handleSetFont","fontArgs","fontRef","fallbackFontDict","loadFont","translated","loadType3Data","type3Dependencies","TranslatedFont","evaluatorOptions","handleText","isAddToPathSet","textRenderingMode","fillColorSpace","buildFontPaths","ensureStateFont","gState","localGStateCache","gStateRef","isSimpleGState","gStateObj","errorFont","fontRes","type3FontRefs","fontCapability","preEvaluatedFont","preEvaluateFont","hash","fontRefIsRef","fontID","aliasFontRef","translateFont","translatedFont","buildPath","parsingText","lastIndex","Infinity","opArgs","localShadingPatternCache","patternIR","handleColorN","patternName","rawPattern","localTilingPattern","_parseVisibilityExpression","nestingCounter","currentResult","MAX_NESTING","nestedResult","contentProperties","optionalContentType","expression","optionalContentGroups","groupIds","ocg","policy","EvalState","xobjs","StateManager","preprocessor","EvaluatorPreprocessor","timeSlotManager","closePendingRestoreOPS","savedStatesDepth","promiseBody","ensureNotTerminated","isValidName","localImage","resolveXObject","rejectXObject","globalImage","fontSize","combinedGlyphs","arrItem","strokeColorSpace","shadingRes","patternId","localGStateObj","resolveGState","rejectGState","extGState","getTextContent","includeMarkedContent","sink","seenStyles","viewBox","markedContentData","disableNormalization","TextState","textContent","styles","textContentItem","initialized","totalHeight","prevTransform","textAdvanceScale","spaceInFlowMin","spaceInFlowMax","trackingSpaceMin","negativeSpaceMax","notASpace","hasEOL","twoLastChars","twoLastCharsPos","saveLastChar","nextPos","ret","shouldAddWhitepsace","resetLastChars","TRACKING_SPACE_FACTOR","NOT_A_SPACE_FACTOR","NEGATIVE_SPACE_FACTOR","SPACE_IN_FLOW_MIN_FACTOR","SPACE_IN_FLOW_MAX_FACTOR","VERTICAL_SHIFT_RATIO","showSpacedTextBuffer","emptyXObjectCache","emptyGStateCache","textState","pushWhitespace","_ref8","getCurrentTextTransform","tsm","textHScale","textRise","isCharBBox","glyphHeight","ctm","textMatrix","ensureTextContentItem","fontSubstitution","fontSubstitutionLoadedName","trm","scaleLineX","textLineMatrix","scaleCtmX","updateAdvanceScale","scaleFactor","runBidiTransform","textChunk","text","bidiResult","applyInverseRotation","compareWithLastPosition","glyphWidth","currentTransform","lastPosX","lastPosY","rotate","advanceY","advanceX","textOrientation","appendEOL","flushTextContentItem","addFakeSpaces","buildTextContentItem","_ref9","extraSpacing","charSpacing","translateTextMatrix","scaledDim","wordSpacing","enqueueChunk","batch","previousState","fontNameArg","fontSizeArg","leading","translateTextLineMatrix","carriageReturn","setTextLineMatrix","spaceFactor","elements","currentState","xObjStateManager","sinkWrapper","enqueueInvoked","desiredSize","gStateFont","mcid","getPageObjId","extractDataStructures","baseDict","cidToGidBytes","toUnicodePromise","readToUnicode","cidSystemInfo","registry","ordering","supplement","diffEncoding","nonEmbeddedFont","isSymbolsFontName","isNonsymbolicFont","buildToUnicode","builtToUnicode","readCidToGidMap","_simpleFontToUnicode","forceGlyphs","codeStr","ucs2CMapName","ucs2CMap","ucs2","cmapObj","glyphsData","glyphID","extractWidths","glyphsVMetrics","getBaseFontMetrics","buildCharCodeToWidth","firstWidth","fontNameWoStyle","monospace","lookupName","Metrics","glyphWidths","widthsByGlyphName","df","diffLength","diffBuf","diffEntry","uint8array","widthsBuf","compositeWidths","subWidthsBuf","_ref10","newProperties","baseFont","fontNameStr","baseFontStr","fontFile","length3","glyphScaleFactors","subtypeEntry","_ref11","_evaluatorOptions","type3Loaded","sent","type3Evaluator","loadCharProcsPromise","charProcs","fontResources","charProcOperatorList","fontBBoxSize","glyphStream","_removeType3ColorOperators","dummyOperatorList","_bbox","charBBox","charBBoxSize","gStateKey","stateStack","old","opMap","ri","gs","cm","BT","ET","Tc","Tw","Tz","TL","Tf","Tr","Ts","Td","TD","Tm","Tj","TJ","d0","d1","CS","SC","SCN","sc","scn","RG","rg","BI","ID","EI","Do","MP","BMC","BDC","EMC","BX","EX","BM","BD","true","fa","fal","fals","false","nul","null","MAX_INVALID_PATH_OPS","nonProcessedArgs","_isPathOp","_numInvalidPathOPS","opSpec","argsLength","preprocessCommand","DefaultAppearanceEvaluator","fontColor","parseDefaultAppearance","AppearanceStreamEvaluator","breakLoop","_localColorSpaceCache","parseAppearanceStream","getPdfColor","isFill","createDefaultAppearance","FakeUnicodeFont","ctxMeasure","_fontNameId","toUnicodeRef","_toUnicodeRef","toUnicodeStream","toUnicodeDict","getNewPersistentRef","fontDescriptorRef","_fontDescriptorRef","fontDescriptor","descendantFontRef","descendantFont","currentWidths","baseFontRef","_createContext","createFontResources","measureText","createAppearance","bgColor","strokeAlpha","lineWidth","hscale","vscale","lineDescent","maxHeight","fscale","newFontSize","vShift","appearance","appearanceStreamDict","ap","NameOrNumberTree","root","_type","kids","kid","kidsOrEntries","loopCount","MAX_LEVELS","limits","currentKey","NameTree","NumberTree","clearGlobalCaches","pickPlatformItem","FileSpec","fs","description","contentAvailable","_filename","contentRef","fileObj","serializable","XMLParserErrorCode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","isWhitespaceString","XMLParserBase","_resolveEntities","onResolveEntity","_parseContent","attributes","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","parsed","_parseProcessingInstruction","attrStart","parseXml","ch2","onEndElement","onPi","onComment","onCdata","q2","complexDoctype","doctypeContent","onDoctype","isClosed","onBeginElement","onText","SimpleDOMNode","nodeName","nodeValue","firstChild","childNodes","nextSibling","parentNode","child","hasChildNodes","searchNode","paths","siblingPos","dump","attribute","SimpleXMLParser","hasAttributes","lowerCaseName","_currentFragment","_stack","_errorCode","_hasAttributes","_lowerCaseName","parseFromString","documentElement","lastElement","childNode","MetadataParser","_repair","xmlDocument","_metadataMap","_data","d2","d3","charBuf","_getSequence","_parseArray","seqNode","trim","rdf","desc","parsedData","rawData","DecryptStream","nextChunk","hasMoreData","ARCFourCipher","keyLength","encryptBlock","decryptBlock","encrypt","calculateMD5","calculateMD5Closure","h0","h3","padded","rotateArg","Word64","highInteger","lowInteger","and","word","xor","or","shiftRight","places","shiftLeft","rotateRight","not","lowAdd","highAdd","copyTo","calculateSHA256","calculateSHA256Closure","rotr","maj","sigmaPrime","littleSigma","littleSigmaPrime","h4","h5","h6","h7","calculateSHA512","calculateSHA512Closure","mode384","calculateSHA384","NullCipher","AESBaseCipher","_s","_inv_s","_mix","_mixCol","bufferPosition","_expandKey","cipherKey","_decrypt","_keySize","_cyclesOfRepetition","s0","_encrypt","_decryptBlock2","finalize","sourceLength","iv","plain","_key","lastBlock","psLen","cipher","AES128Cipher","_rcon","rcon","t3","t4","AES256Cipher","PDF17","checkOwnerPassword","password","ownerValidationSalt","userBytes","ownerPassword","hashData","checkUserPassword","userValidationSalt","userPassword","getOwnerKey","ownerKeySalt","ownerEncryption","getUserKey","userKeySalt","userEncryption","PDF20","_hash","combinedLength","combinedArray","remainder","CipherTransform","stringCipherConstructor","streamCipherConstructor","StringCipherConstructor","StreamCipherConstructor","cipherTransformDecryptStream","encryptString","strLen","pad","CipherTransformFactory","defaultPasswordBytes","createEncryptionKey20","revision","uBytes","perms","passwordLength","pdfAlgorithm","prepareKeyData","fileId","encryptMetadata","hashDataSize","keyLengthInBytes","encryptionKey","checkData","derivedKey","decodeUserPassword","buildObjectKey","isAes","buildCipherConstructor","cf","cryptFilter","cfm","algorithm","cfDict","streamCryptoName","handlerDict","ownerBytes","fileIdBytes","passwordBytes","decodedPassword","stmf","strf","eff","createCipherTransform","cipherConstructor","writeObject","writeDict","writeStream","writeArray","writeValue","fetchIfRefAsync","isFilterZeroFlateDecode","MIN_LENGTH_FOR_COMPRESSING","CompressionStream","writer","getWriter","Response","readable","newFilter","newParams","writeInt","writeString","computeMD5","filesize","xrefInfo","time","md5Buffer","md5BufferLen","writeXFADataForAcroform","newRefs","xml","xfa","nodePath","updateAcroform","acroForm","acroFormRef","hasXfa","hasXfaDatasetsEntry","xfaDatasetsRef","needAppearances","newXfa","updateXFA","xfaData","datasets","incrementalUpdate","originalData","refForXrefTable","newRef","baseOffset","startXRef","rootRef","infoRef","encryptRef","xrefTableData","indexes","maxOffset","fileIds","md5","sizes","structSize","tableLength","bufferLen","footer","objOffset","MAX_DEPTH","StructElementType","PAGE_CONTENT","STREAM_CONTENT","OBJECT","ANNOTATION","ELEMENT","StructTreeRoot","rootDict","roleMap","structParentIds","readRoleMap","addIdToPage","pageRef","addAnnotationIdToPage","roleMapDict","canCreateStructureTree","catalogRef","pdfManager","nextKey","hasNothingToUpdate","getPage","accessibilityData","parentTreeId","createStructureTree","catalog","cloneDict","structTreeRootRef","getNewTemporaryRef","structTreeRoot","parentTreeRef","parentTree","nums","writeKids","canUpdateStructTree","numberTree","pageDict","collectParents","structTreeParent","updateStructureTree","numsRef","kidsRef","newNextkey","objr","isPageRef","title","lang","expanded","actualText","tagRef","tagDict","updateParentTag","newTagRef","fallbackRef","objDict","idToElement","structTreeParentId","parentArray","updateElement","pageKid","kidRef","parentRef","saveParentDict","parentKids","parentKidsRef","StructElementNode","parseKids","role","nameObj","pageObjId","objRef","parseKid","StructElement","kidDict","refObjId","StructTreePage","addNode","elemId","addTopLevelNode","nodeToSerializable","kidElement","fetchDestination","fetchRemoteDest","JSON","stringify","Catalog","_catDict","getCatalogObj","toplevelPagesDict","_actualNumPages","pageKidsCountCache","pageIndexCache","needsRendering","collection","streamRef","markInfo","_readMarkInfo","Marked","UserProperties","Suspects","structTree","_readStructTreeRoot","rawObj","pagesObj","documentOutline","_readDocumentOutline","blackColor","outlineDict","parseDestDictionary","destDict","resultObj","docBaseUrl","docAttachments","attachments","outlineItem","attachment","unsafeUrl","setOCGState","permissions","_readPermissions","trailer","optionalContentConfig","config","defaultConfig","groupsData","groupRefs","groupRef","_readOptionalContentConfig","contentGroupRefs","parseOnOff","refs","onParsed","parseOrder","nestedLevels","parsedOrderRefs","nestedOrder","parseNestedOrder","hiddenGroups","MAX_NESTED_LEVELS","nestedName","creator","baseState","on","off","setActualNumPages","hasActualNumPages","_pagesCount","destinations","_readDests","dests","getDestination","allDest","pageLabels","_readPageLabels","prefix","currentLabel","labelDict","st","LIMIT","A_UPPER_CASE","A_LOWER_CASE","baseCharCode","letterIndex","character","pageLayout","pageMode","viewerPreferences","prefs","prefValue","isValid","page","openAction","nameTree","xfaImages","_collectJavaScript","javaScript","appendIfJavaScriptDict","jsDict","jsActions","fontFallback","translatedFonts","cleanup","manuallyTriggered","getPageDict","nodesToVisit","visitedNodes","pagesRef","currentPageIndex","currentNode","getAllPageDicts","posInKids","addPageDict","addPageError","queueItem","kidObj","getPageIndex","cachedPageIndex","pagesBeforeRef","kidPromises","uri","href","actionType","actionName","include","resetForm","urlDict","remoteDest","relationship","attachmentDest","namedAction","preserveRB","stateArr","jsAction","jsURL","mayHaveChildren","addChildren","rawValue","ObjectLoader","refSet","load","_walk","nodesToRevisit","pendingRequests","foundMissingData","$acceptWhitespace","$addHTML","$appendChild","$childrenToHTML","$clean","$cleanPage","$cleanup","$clone","$consumed","$content","$data","$dump","$extra","$finalize","$flushHTML","$getAttributeIt","$getAttributes","$getAvailableSpace","$getChildrenByClass","$getChildrenByName","$getChildrenByNameIt","$getDataValue","$getExtra","$getRealChildrenByNameIt","$getChildren","$getContainedChildren","$getNextPage","$getSubformParent","$getParent","$getTemplateRoot","$globalData","$hasSettableValue","$ids","$indexOf","$insertAt","$isCDATAXml","$isBindable","$isDataValue","$isDescendent","$isNsAgnostic","$isSplittable","$isThereMoreWidth","$isTransparent","$isUsable","$lastAttribute","$namespaceId","$nodeName","$nsAttributes","$onChild","$onChildCheck","$onText","$pushGlyphs","$popPara","$pushPara","$removeChild","$root","$resolvePrototypes","$searchNode","$setId","$setSetAttributes","$setValue","$tabIndex","$text","$toPages","$toHTML","$toString","$toStyle","$uid","$buildXFAObject","NamespaceIds","ns","connectionSet","form","localeSet","pdf","sourceSet","stylesheet","xdc","xdp","xfdf","xhtml","xmpmeta","dimConverters","pt","mm","in","measurementPattern","stripQuotes","getInteger","validate","getFloat","getKeyword","getStringOption","getMeasurement","def","valueStr","unit","conv","getRatio","den","getRelevant","excluded","viewname","getColor","getBBox","HTMLResult","FAILURE","EMPTY","success","breakNode","isBreak","FontFinder","pdfFonts","fonts","defaultFont","reallyMissingFonts","pdfFont","addPdfFont","regular","bolditalic","myriad","missing","endsWith","getDefault","maybe","family","selectFont","xfaFont","typeface","posture","fontFinder","lineNoGap","WIDTH_FACTOR","FontInfo","margin","paraMargin","letterSpacing","FontSelector","defaultXfaFont","defaultParaMargin","defaultLineHeight","pushData","lastFont","fontInfo","popFont","topFont","TextMeasure","fontSelector","extraHeight","addPara","addString","fontLineHeight","noGap","firstLineHeight","fallbackWidth","encodedLine","compute","lastSpacePos","lastSpaceWidth","currentLineWidth","currentLineHeight","isBroken","isFirstLine","isEOL","namePattern","indexPattern","dot","dotDot","dotHash","dotBracket","dotParen","shortcuts","host","dataWindow","event","somCache","parseExpression","dotDotAllowed","noExpr","cacheName","formCalc","container","useCache","isQualified","isXFAObject","isXFAObjectArray","isFinite","flat","createDataNode","createNodes","_applyPrototype","_attributes","_attributeNames","_children","_cloneAttribute","_dataValue","_defaultValue","_filteredChildrenGenerator","_getPrototype","_getUnsetAttributes","_hasChildren","_max","_options","_parent","_resolvePrototypesHelper","_setAttributes","_validator","NS_DATASETS","XFAObject","nsId","hasChildren","XmlObject","XFAObjectArray","para","paraStack","clean","dumped","availableSpace","failingNode","generator","protoAttributes","allAttr","setAttr","ancestors","use","usehref","somExpression","protoProto","newAncestors","unsetAttrName","protoValue","$symbol","clonedChild","allTransparent","_this","XFAAttribute","dataNode","tagName","utf8TagName","utf8Name","skipConsumed","hasNS","$ns","$name","ContentObject","OptionObject","StringObject","IntegerObject","validator","Option01","Option10","measureToString","converters","anchorType","colSpan","columnWidths","currentColumn","transformOrigin","presence","visibility","hAlign","textAlign","alignSelf","setMinMaxDimensions","minW","maxW","minH","layoutText","measure","layoutNode","marginH","marginV","leftInset","rightInset","topInset","bottomInset","spaceAbove","spaceBelow","marginLeft","marginRight","exData","contentType","computeBbox","fixDimensions","layoutClass","toStyle","_len","newStyle","createWrapper","class","border","insets","insetsH","insetsW","hand","classNames","isPrintOnly","fixTextIndent","indent","textIndent","padding","setAccess","access","relevant","getCurrentPara","setPara","nodeStyle","valueStyle","flexDirection","vAlign","justifyContent","paraStyle","setFontFamily","fixURL","createLine","flushHTML","htmlFromFailing","addHTML","attempt","numberInLine","getAvailableSpace","getTransformedBBox","centerX","centerY","checkDimensions","firstUnsplittable","ERROR","noLayoutFailure","currentContentArea","TEMPLATE_NS_ID","SVG_NS","MAX_ATTEMPTS_FOR_LRTB_LAYOUT","MAX_EMPTY_PAGES","DEFAULT_TAB_INDEX","HEADING_PATTERN","MIMES","IMAGES_HEADERS","getBorderDims","borderExtra","hasMargin","_setValue","templateNode","Value","getContainedChildren","SubformSet","isRequired","nullTest","setTabIndex","traversal","applyAssist","assist","assistTitle","ariaRole","ariaLevel","ariaLabel","speak","toolTip","valueToHtml","setFirstUnsplittable","unsetFirstUnsplittable","handleBreak","targetType","currentPageArea","PageArea","startNew","ContentArea","pageArea","nextPageArea","contentAreas","contentArea","indexForCurrent","indexForTarget","handleOverflow","extraNode","saved","savedMethod","AppearanceFilter","Arc","circular","startAngle","sweepAngle","edge","Edge","edgeStyle","strokeWidth","thickness","xmlns","overflow","cx","cy","rx","ry","largeArc","vectorEffect","preserveAspectRatio","svg","Area","extras","draw","exObject","exclGroup","subform","subformSet","xfaName","Assist","Barcode","charEncoding","dataColumnCount","dataPrep","dataRowCount","endChar","errorCorrectionLevel","moduleHeight","moduleWidth","printCheckDigit","rowColumnRatio","startChar","textLocation","truncate","upsMode","wideNarrowRatio","Bind","picture","BindItems","connection","labelRef","valueRef","Bookend","leader","BooleanElement","Border","break","corner","edges","defaultEdge","edgeStyles","radius","cornerStyles","borderRadius","borderStyle","borderWidth","borderColor","Break","afterTarget","beforeTarget","bookendLeader","bookendTrailer","overflowLeader","overflowTarget","overflowTrailer","BreakAfter","script","BreakBefore","Button","highlight","grandpa","htmlButton","activity","Calculate","Caption","placement","reserve","savedReserve","Certificate","Certificates","credentialServerPolicy","urlPolicy","encryption","issuers","keyUsage","oids","signing","subjectDNs","CheckButton","mark","shape","className","groupId","exportedValue","fieldId","dataId","ExclGroup","xfaOn","xfaOff","ChoiceList","commitOn","textEntry","ui","optionStyle","displayedIndex","saveIndex","displayed","selected","hidden","selectAttributes","multiple","Color","cSpace","Comb","numberOfCells","Connect","usage","Corner","inverted","DateElement","DateTime","DateTimeEdit","hScrollPolicy","picker","comb","Decimal","fracDigits","leadDigits","DefaultUi","Desc","boolean","dateTime","decimal","float","DigestMethod","DigestMethods","digestMethod","Draw","locale","caption","keep","setProperty","savedW","savedH","cap","linecap","Encoding","Encodings","Encrypt","certificate","EncryptData","manifest","Encryption","EncryptionMethod","EncryptionMethods","encryptionMethod","Event","listen","encryptData","signData","submit","ExData","maxLength","rid","transferEncoding","ExObject","archive","classId","codeBase","codeType","accessKey","connect","_isSplittable","isSplittable","isLrTb","maxRun","Execute","executeType","runAt","Extras","Field","bindItems","Ui","TextEdit","textEdit","checkButton","choiceList","borderDims","uiW","uiH","tabindex","aElement","button","imageEdit","htmlValue","maxChars","numericEdit","captionHeight","inputHeight","Fill","linear","radial","solid","stipple","ggrandpa","propName","altPropName","backgroundColor","Rectangle","addRevocationInfo","appearanceFilter","certificates","digestMethods","encryptionMethods","lockDocument","mdp","reasons","timeStamp","Float","baselineShift","fontHorizontalScale","fontVerticalScale","kerningMode","lineThrough","lineThroughPeriod","overlinePeriod","underline","underlinePeriod","usedTypefaces","backgroundClip","verticalAlign","fontKerning","textDecoration","textDecorationStyle","fontStyle","Format","Handler","Hyphenation","excludeAllCaps","excludeInitialCap","hyphenate","pushCharacterCount","remainCharacterCount","wordCharacterCount","Image","aspect","atob","objectFit","createObjectURL","ImageEdit","Integer","Issuers","Items","Keep","intact","KeyUsage","crlSign","dataEncipherment","decipherOnly","digitalSignature","encipherOnly","keyAgreement","keyCertSign","keyEncipherment","nonRepudiation","Line","slope","Linear","startColor","endColor","LockDocument","Manifest","Margin","Mdp","signatureType","Medium","imagingBBox","long","orientation","short","stock","trayIn","trayOut","Message","NumericEdit","Occur","initial","originalMin","PageSet","Template","Oid","Oids","oid","Overflow","addLeader","addTrailer","blankOrNotBlank","initialNumber","numbered","oddOrEven","pagePosition","medium","occur","numberOfUse","relation","duplexImposition","pageSet","pageSetIndex","pageNumber","parity","Para","orphans","preserve","radixOffset","tabDefault","tabStops","widows","hyphenation","paddingLeft","paddingight","paddingTop","paddingBottom","tabSize","hyphenatation","PasswordEdit","passwordChar","Picture","Proto","barcode","bookend","breakAfter","breakBefore","dateTimeEdit","defaultUi","passwordEdit","subjectDN","traverse","variables","Radial","Reason","Reasons","cornerStyle","RefElement","binding","SetProperty","SignData","Signature","Signing","Solid","Speak","disable","priority","Stipple","rate","Subform","allowMacro","mergeMode","restoreState","scope","afterBreakAfter","savedNoLayoutFailure","overflowExtra","overflowNode","SubjectDN","delimiter","kv","SubjectDNs","Submit","embedPDF","textEncoding","xdpContent","baseProfile","pageAreas","mainHtml","breakBeforeTarget","pageAreaParent","targetPageArea","hasSomething","hasSomethingCounter","htmlContentAreas","Text","acc","allowRichText","multiLine","vScrollPolicy","Time","TimeStamp","server","ToolTip","Traversal","Traverse","Validate","formatTest","scriptTest","valueName","Variables","TemplateNamespace","attrs","createText","Binder","emptyMerge","_isConsumeData","_mergeMode","_isMatchTemplate","_bindElement","_bindValue","formNode","_findDataByNameToConsume","isValue","_setProperties","targetNodes","targetNode","targetParent","construct","_bindItems","labelNodes","labelNode","valueNodes","valueNode","label","_bindOccurrences","baseClone","_createOccurrences","currentNumber","nodeClone","_getOccurInfo","_setAndBind","uselessNodes","dataChildren","dataChild","DataHandler","dataset","serialize","storage","storageEntry","CONFIG_NS_ID","Acrobat","acrobat7","autoSave","common","validateApprovalSignatures","submitUrl","Acrobat7","dynamicRender","ADBE_JSConsole","ADBE_JSDebugger","AddSilentPrint","AddViewerPreferences","AdjustData","AdobeExtensionLevel","Agent","AlwaysEmbed","Amd","AutoSave","Base","BatchOutput","BehaviorOverride","Cache","templateCache","Change","Common","messaging","suppressBanner","validationMessaging","versionControl","Compress","CompressLogicalStructure","CompressObjectStream","Compression","compressLogicalStructure","compressObjectStream","Config","acrobat","present","trace","agent","Conformance","ContentCopy","Copies","Creator","CurrentPage","Data","adjustData","incrementalLoad","outputXSL","startNode","xsl","excludeNS","Debug","DefaultTypeface","writingScript","Destination","DocumentAssembly","Driver","DuplexOption","DynamicRender","Embed","encryptionLevel","EncryptionLevel","Enforce","Equate","force","EquateRange","_unicodeRange","unicodeRange","unicodeRegex","Exclude","ExcludeNS","FlipLabel","embed","subsetBelow","alwaysEmbed","defaultTypeface","neverEmbed","FormFieldFilling","GroupParent","IfEmpty","IncludeXDPContent","IncrementalLoad","IncrementalMerge","Interactive","Jog","LabelPrinter","batchOutput","flipLabel","Layout","Level","Linearized","Locale","LocaleSet","Log","threshold","MapElement","equate","equateRange","MediumInfo","msgId","severity","Messaging","Mode","ModifyAnnots","MsgId","NameAttr","NeverEmbed","NumberOfCopies","OpenAction","destination","Output","OutputBin","OutputXSL","Overprint","Packets","PageOffset","PageRange","numbers","Pagination","PaginationOverride","Part","Pcl","jog","mediumInfo","outputBin","pageOffset","staple","Pdf","adobeExtensionLevel","interactive","linearized","pdfa","producer","renderPolicy","scriptModel","silentPrint","submitFormat","tagged","Pdfa","amd","conformance","includeXDPContent","Permissions","accessibleContent","change","contentCopy","documentAssembly","formFieldFilling","modifyAnnots","plaintextMetadata","print","printHighQuality","PickTrayByPDFSize","PlaintextMetadata","Presence","Present","behaviorOverride","copies","incrementalMerge","overprint","pagination","paginationOverride","driver","labelPrinter","pcl","webClient","zpl","Print","PrintHighQuality","PrintScaling","PrinterName","Producer","Ps","Range","Record","Relevant","Rename","RenderPolicy","RunScripts","currentPage","exclude","runScripts","ScriptModel","Severity","SilentPrint","addSilentPrint","printerName","Staple","StartNode","StartPage","SubmitFormat","SubmitUrl","SubsetBelow","SuppressBanner","Tagged","startPage","Threshold","To","TemplateCache","maxEntries","Trace","groupParent","ifEmpty","nameAttr","rename","whitespace","Uri","ValidateApprovalSignatures","ValidationMessaging","Version","VersionControl","outputBelow","sourceAbove","sourceBelow","ViewerPreferences","addViewerPreferences","duplexOption","numberOfCopies","pageRange","pickTrayByPDFSize","printScaling","WebClient","Whitespace","Window","pair","Xdc","Xdp","packets","Xsl","debug","Zpl","ConfigNamespace","compress","CONNECTION_SET_NS_ID","ConnectionSet","wsdlConnection","xmlConnection","xsdConnection","EffectiveInputPolicy","EffectiveOutputPolicy","Operation","RootElement","SoapAction","SoapAddress","WsdlAddress","WsdlConnection","dataDescription","effectiveInputPolicy","effectiveOutputPolicy","soapAction","soapAddress","wsdlAddress","XmlConnection","XsdConnection","rootElement","ConnectionSetNamespace","DATASETS_NS_ID","Datasets","DatasetsNamespace","LOCALE_SET_NS_ID","CalendarSymbols","dayNames","eraNames","meridiemNames","monthNames","CurrencySymbol","CurrencySymbols","currencySymbol","DatePattern","DatePatterns","datePattern","DateTimeSymbols","Day","DayNames","abbr","day","Era","EraNames","era","calendarSymbols","currencySymbols","datePatterns","dateTimeSymbols","numberPatterns","numberSymbols","timePatterns","typeFaces","Meridiem","MeridiemNames","meridiem","Month","MonthNames","month","NumberPattern","NumberPatterns","numberPattern","NumberSymbol","NumberSymbols","numberSymbol","TimePattern","TimePatterns","timePattern","TypeFace","TypeFaces","typeFace","LocaleSetNamespace","SIGNATURE_NS_ID","SignatureNamespace","STYLESHEET_NS_ID","Stylesheet","StylesheetNamespace","XDP_NS_ID","uuid","XdpNamespace","XHTML_NS_ID","$richText","VALID_STYLES","StyleMapping","original","spacesRegExp","crlfRegExp","crlfForRichTextRegExp","mapStyle","styleStr","richText","newValue","SUB_SUPER_SCRIPT_FACTOR","VERTICAL_FACTOR","checkStyle","NoWhites","XhtmlObject","mustPop","pushFont","Body","Br","Html","Li","Ol","siblings","Span","Sub","Sup","Ul","XhtmlNamespace","body","br","li","ol","span","sub","sup","ul","NamespaceSetUp","UnknownNamespace","namespaceId","Root","Empty","Builder","rootNameSpace","_namespaceStack","_nsAgnosticLevel","_namespacePrefixes","_namespaces","_nextNsId","_currentNamespace","buildRoot","build","nsPrefix","prefixes","hasNamespaceDef","_searchNamespace","_addNamespacePrefix","dataTemplate","nsAttrs","xfaAttrs","nsToUse","_getNamespaceToUse","namespaceToUse","hasNamespace","nsAgnostic","isNsAgnostic","nsName","prefixStack","XFAParser","_builder","_globalData","_ids","_current","_whiteRegex","_nbsps","_richText","_mkAttributes","attributeObj","_getNameAndPrefix","attributesObj","XFAFactory","_createDocument","binder","dataHandler","_createPagesHelper","nextIteration","setTimeout","_createPages","pages","dims","getBoundingBox","getNumPages","setImages","setFonts","missingFonts","appendFonts","getPages","serializeData","getRichTextAsHtml","rc","newRoot","attr","AnnotationFactory","createGlobals","ensureCatalog","ensureDoc","xfaDatasets","annotationGlobals","collectFields","_getPageIndex","ensure","_create","parameters","LinkAnnotation","TextAnnotation","fieldType","TextWidgetAnnotation","ButtonWidgetAnnotation","ChoiceWidgetAnnotation","SignatureWidgetAnnotation","WidgetAnnotation","PopupAnnotation","FreeTextAnnotation","LineAnnotation","SquareAnnotation","CircleAnnotation","PolylineAnnotation","PolygonAnnotation","CaretAnnotation","InkAnnotation","HighlightAnnotation","UnderlineAnnotation","SquigglyAnnotation","StrikeOutAnnotation","StampAnnotation","FileAttachmentAnnotation","Annotation","annotDict","annotRef","generateImages","imagePromises","bitmapId","saveNewAnnotations","promises","annotation","deleted","annotationType","createNewAnnotation","smaskStream","smaskRef","printNewAnnotations","createNewPrintAnnotation","getRgbColor","defaultColor","getPdfColorArray","getQuadPoints","quadPoints","quadPointsLists","getTransformMatrix","setTitle","setContents","setModificationDate","setFlags","setRectangle","setColor","setBorderStyle","setAppearance","setOptionalContent","MK","setBorderAndBackgroundColors","setRotation","_streams","isLocked","isContentLocked","structParent","annotationFlags","contentsObj","_contents","hasAppearance","modificationDate","hasOwnCanvas","noRotate","noHTML","kidIds","fieldName","_constructFieldName","_isOffscreenCanvasSupported","_fallbackFontDict","_needAppearances","_hasFlag","_isViewable","_isPrintable","mustBeViewed","_renderForms","noView","viewable","mustBePrinted","noPrint","printable","_parseStringHelper","setDefaultAppearance","defaultAppearance","_defaultAppearance","defaultAppearanceData","_title","contents","hasFlag","setLineEndings","lineEndings","mk","AnnotationBorderStyle","dictType","setWidth","setStyle","setDashArray","setHorizontalCornerRadius","setVerticalCornerRadius","appearanceStates","normalAppearanceState","oc","loadResources","objectLoader","renderForms","isUsingOwnCanvas","separateForm","separateCanvas","appearanceDict","hasTextContent","extractTextContent","firstPosition","textPosition","getFieldObject","strokeColor","fillColor","loopDict","dashArray","horizontalCornerRadius","verticalCornerRadius","forceStyle","allZeros","validNumber","MarkupAnnotation","rawIRT","inReplyTo","rt","replyType","popupRef","titleObj","creationDate","setCreationDate","_setDefaultAppearance","blendMode","fillAlpha","pointsCallback","MIN_VALUE","pointsArray","mX","MX","mY","MY","formDict","appearanceStream","gsDict","stateDict","annotationRef","createNewAppearanceStream","annotationDict","apRef","createNewDict","newAnnotation","refToReplace","fieldValue","_decodeFormValue","defaultFieldValue","_hasValueFromXFA","getValue","alternativeText","localResources","acroFormResources","appearanceResources","_fieldResources","mergedResources","fieldFlags","readOnly","hasFieldFlag","formValue","getBorderAndBackgroundAppearances","_hasText","_getAppearance","_getMKDict","amendSavedDict","originalDict","encoder","maybeMK","changes","AP","_getSaveFieldResources","rotationMatrix","isPassword","formattedValue","combo","exportValue","displayValue","lineCount","defaultPadding","defaultHPadding","_getFontData","encodedLines","encodingError","encodedString","fakeUnicodeFont","newFont","oldFont","savedDefaultAppearance","_computeFontSize","defaultVPadding","alignment","textAlignment","_getMultilineAppearance","_getCombAppearance","bottomPadding","prevInfo","renderedText","_renderText","appearanceData","_getTextWidth","numberOfLines","roundWithTwoDigits","textWidth","cachedLines","isTooBig","fsize","_splitLine","hPadding","vPadding","shiftStr","localFont","acroFormFont","subFontDict","subResourcesDict","maximumLength","doNotScroll","combWidth","renderedComb","lastSpacePosInStringStart","lastSpacePosInStringEnd","startChunk","charLimit","editable","checkedAppearance","uncheckedAppearance","checkBox","radioButton","pushButton","isTooltipOnly","_processCheckBox","_processRadioButton","_processPushButton","buttonValue","savedAppearance","savedMatrix","_saveCheckbox","_saveRadioButton","parentData","_getDefaultCheckedAppearance","FONT_RATIO","xShift","yShift","customAppearance","normalAppearance","asValue","yes","exportValues","otherYes","fieldParent","fieldParentValue","indices","isOptionArray","multiSelect","numItems","multipleSelection","valueIndices","numberOfVisibleLines","firstIndex","minIndex","maxIndex","vpadding","DEFAULT_ICON_SIZE","stateModel","parentItem","parentRect","parentFlags","user","freetext","da","helv","lineAscent","firstPoint","clipBox","lineCoordinates","interiorColor","borderAdjust","controlPointsDistance","xMid","yMid","xOffset","yOffset","vertices","rawVertices","vertex","inkLists","rawInkLists","inkList","ink","appearanceBuffer","bezier","curve","outlines","outline","xEnd","buf32","hasAlpha","fillStyle","jpegBufferPromise","convertToBlob","quality","xobjectName","imageName","alphaBuffer","stamp","xobject","decodeString","DatasetXMLParser","DatasetReader","XRef","firstXRefStmPos","_xrefStms","_cacheMap","_pendingRefs","_newPersistentRefNum","_newTemporaryRefNum","_persistentRefsCache","resetNewTemporaryRef","setStartXRef","startXRefQueue","trailerDict","readXRef","indexObjects","processXRefTable","tableState","entryNum","streamPos","parserBuf1","parserBuf2","readXRefTable","firstEntryNum","free","uncompressed","processXRefStream","streamParameters","byteWidths","streamState","entryRanges","readXRefStream","typeFieldWidth","offsetFieldWidth","generationFieldWidth","generation","typeByte","offsetByte","generationByte","TAB","PERCENT","readToken","skipUntil","skipped","gEndobjRegExp","gStartxrefRegExp","objRegExp","trailerBytes","startxrefBytes","xrefBytes","bufferStr","trailers","xrefStms","contentLength","updateEntries","xrefTagOffset","xrefStm","trailerDicts","isEncrypted","trailerError","_generationFallback","validPagesDict","pagesDict","pagesCount","startXRefParsedCache","lastXRefStreamPos","getEntry","xrefEntry","fetchUncompressed","fetchCompressed","tableOffset","DEFAULT_USER_UNIT","LETTER_SIZE_MEDIABOX","Page","globalIdFactory","xfaFactory","resourcesPromise","idCounters","_localIdFactory","_getInheritableProperty","_getBoundingBox","box","mediaBox","cropBox","userUnit","_onSubStreamError","getContentStream","replaceIdByRef","deletedAnnotations","existingAnnotations","partialEvaluator","annotationsArray","savedDict","_parsedAnnotations","newRefsPromises","contentStreamPromise","newAnnotationsPromise","newAnnotations","annotationGlobalsPromise","missingBitmaps","annotationWithBitmaps","dataPromises","pageListPromise","contentStream","transparency","pageOpList","findIndex","intentAny","intentDisplay","intentPrint","opListPromises","opLists","getStructTree","_parseStructTree","getAnnotationsData","annotationsData","textContentPromises","isVisible","annots","annotationPromises","sortedAnnotations","popupAnnotations","PDF_HEADER_SIGNATURE","STARTXREF_SIGNATURE","ENDOBJ_SIGNATURE","FINGERPRINT_FIRST_BYTES","EMPTY_FINGERPRINT","backwards","signatureEnd","PDFDocument","_pagePromises","_version","_globalIdFactory","docId","linearization","startXRefLength","checkHeader","parseStartXRef","_hasOnlyDocumentSignatures","recursionDepth","RECURSION_LIMIT","isSignature","isInvisible","_xfaStreams","enableXfa","formInfo","hasAcroForm","isPureXfa","htmlForXfa","loadXfaImages","xfaImagesDict","loadXfaFonts","serializeXfaData","hasFields","hasSignatures","sigFlags","hasOnlyDocumentSignatures","documentInfo","docInfo","PDFFormatVersion","Language","EncryptFilterName","IsLinearized","IsAcroFormPresent","IsXFAPresent","IsCollectionPresent","IsSignaturesPresent","infoDict","customValue","Custom","fingerprints","hexString","hex","idArray","hashOriginal","hashModified","_getLinearizationPage","cachedPromise","checkFirstPage","checkLastPage","pagesTree","reasonAll","collectFieldObjects","fieldRef","visitedRefs","partName","fieldObjects","allFields","fieldPromises","allPromises","hasJSActions","_parseHasJSActions","catalogJsActions","fieldObject","calculationOrderIds","calculationOrder","parseDocBaseUrl","BasePdfManager","_docBaseUrl","_docId","_password","pdfDocument","ensureXRef","requestLoadedStream","sendProgressiveData","updatePassword","terminate","LocalPdfManager","_loadedStreamPromise","NetworkPdfManager","streamManager","CallbackKind","UNKNOWN","DATA","StreamKind","CANCEL","CANCEL_COMPLETE","CLOSE","ENQUEUE","PULL","PULL_COMPLETE","START_COMPLETE","wrapReason","MessageHandler","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","processStreamMessage","cbSourceName","cbTargetName","createStreamSink","addEventListener","ah","sendWithStream","queueingStrategy","ReadableStream","controller","startCapability","startCall","pullCall","cancelCall","pull","pullCapability","cancel","cancelCapability","isCancelled","lastDesiredSize","sinkCapability","onPull","onCancel","streamController","deleteStreamController","allSettled","destroy","removeEventListener","PDFWorkerStream","_msgHandler","_contentLength","_fullRequestReader","_rangeRequestReaders","getFullReader","PDFWorkerStreamReader","PDFWorkerStreamRangeReader","_isRangeSupported","_isStreamingSupported","readableStream","_reader","getReader","_headersReady","isRangeSupported","headersReady","WorkerTask","terminated","_capability","finished","finish","WorkerMessageHandler","setup","port","testMessageProcessed","createDocumentHandler","docParams","cancelXHRs","WorkerTasks","apiVersion","workerVersion","enumerableProperties","workerHandlerName","startWorkerTask","finishWorkerTask","loadDocument","getPdfManager","pdfManagerArgs","pdfManagerCapability","newPdfManager","pdfStream","cachedChunks","fullRequest","flushChunks","pdfFile","setupDoc","onSuccess","doc","pdfInfo","onFailure","pdfManagerReady","globalPromises","_structTreeRoot","newAnnotationPromises","finally","newXrefInfo","infoObj","operatorListInfo","waitOn","cleanupPromise","initializeFromPort","isMessagePort","maybePort","pdfjsVersion","pdfjsBuild"],"sourceRoot":""}