{"version":3,"file":"static/js/main.6a7f7a95.js","mappings":"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CT,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAO,YACxB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,YACD,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,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GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGExW,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEslH,EAA0B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC7Dr+G,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEEjB,EAA0B,CAC5B,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAGEsyD,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEE+/G,EAA4B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC/D3hK,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEEsyD,EAA4B,CAC9B,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,GACA,IACA,EACA,GACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IA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ACb,IAAIuI,EAAW,EAAGA,GAAYo6B,IAAOp6B,EACxCm1K,EAAUj4K,GACZzF,GAAsB,GAExB5E,EAAM,MAAQ0J,EAAG0C,GACjBk2K,EAAUpiL,GAAM0E,GAAY,GAAK8G,EAAS1L,KAC1CsiL,EAAU31K,EAAQ3M,IAClBoM,GAAA,QA5CQ,IA8CNT,GACF22K,EAAUlkH,GAELvoE,CAAA,UA8HA2kE,EAAWh0D,GAClBA,EAAUzH,KAAKgH,IAAIhH,KAAKuP,IAAI9H,EAAS,GAAI,KAErCxG,GAAkBwG,IAAA,SA1qBCA,GAAA,QACnB4E,EAAM,CACR,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IAGOvV,EAAI,EAAGA,EAAI,GAAIA,IAAK,KACvByU,EAAI8zD,GAAQhzD,EAAIvV,GAAK2Q,EAAK,IAAM,KACpC8D,EAAIvL,KAAKgH,IAAIhH,KAAKuP,IAAIhE,EAAG,GAAI,KAC7BD,EAAO8Q,EAAOtlB,IAAMyU,CAAA,SAElBpK,EAAO,CACT,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEOF,EAAI,EAAGA,EAAI,GAAIA,IAAK,KACvB2M,EAAIyxD,GAAQl+D,EAAKF,GAAKwG,EAAK,IAAM,KACrCmG,EAAI5N,KAAKgH,IAAIhH,KAAKuP,IAAI3B,EAAG,GAAI,KAC7B+P,EAAQvB,EAAOnb,IAAM2M,CAAA,SAEnBjB,EAAO,CACT,EACA,YACA,YACA,YACA,EACA,WACA,SACA,YAEEnC,EAAI,EACCG,EAAM,EAAGA,EAAM,EAAGA,IAAA,IACpB,IAAIiC,EAAM,EAAGA,EAAM,EAAGA,IACzBsP,EAAQ1R,GAAK,GAAOc,EAAO8Q,EAAO5R,IAAMmC,EAAKhC,GAAOgC,EAAKC,GAAO,GAChEyB,EAAS7D,GAAK,GAAOmT,EAAQvB,EAAO5R,IAAMmC,EAAKhC,GAAOgC,EAAKC,GAAO,GAClEpC,GAAA,CA2gBkB,CAGpB/C,EAAU,GAAKzH,KAAKC,MAAM,IAAOwH,GAAWzH,KAAKC,MAAM,IAAgB,EAAVwH,IAG/DxG,EAAiBwG,EAAA,MA5Hd+8M,OAAS,SACZ/8M,EACAxG,GAEIA,GAASw6D,EAAWx6D,GAGxB2L,EAAU,IAAIlP,MACd8qC,EAAU,EACVn7B,EAAU,EAGVmgI,EAAU,OAhLVA,EAAU,OACVA,EAAU,IACV7+D,EAAU,IACVA,EAAU,IACVA,EAAU,IACVA,EAAU,IACVA,EAAU,GACVA,EAAU,GACVA,EAAU,GACVA,EAAU,GACV6+D,EAAU,GACVA,EAAU,GACV7+D,EAAU,GACVA,EAAU,cAsBV6+D,EAAU,OACVA,EAAU,KACV7+D,EAAU,OACL,IAAIlnE,EAAI,EAAGA,EAAI,GAAIA,IACtBknE,EAAUrjE,EAAO7D,IAEnBknE,EAAU,OACL,IAAItiE,EAAI,EAAGA,EAAI,GAAIA,IACtBsiE,EAAUhxD,EAAQtR,GAAA,CA9BV,GAqKV,SAlKiB5E,EAAO4E,GACxBmhI,EAAU,OACVA,EAAU,IACV7+D,EAAU,GACV6+D,EAAUnhI,GACVmhI,EAAU/lI,GACVknE,EAAU,GACVA,EAAU,GACVA,EAAU,IACVA,EAAU,GACVA,EAAU,GACVA,EAAU,IACVA,EAAU,GACVA,EAAU,GACVA,EAAU,IACVA,EAAU,GAmJV,CACUlnE,EAAMyG,MAAOzG,EAAM0G,QAAA,WAnI7Bq/H,EAAU,OACVA,EAAU,KAEV7+D,EAAU,OACL,IAAIlnE,EAAI,EAAGA,EAAI,GAAIA,IACtBknE,EAAU/oE,EAAyB6B,EAAI,QAEpC,IAAI4E,EAAI,EAAGA,GAAK,GAAIA,IACvBsiE,EAAUu8C,EAAwB7+G,IAGpCsiE,EAAU,QACL,IAAI73E,EAAI,EAAGA,EAAI,GAAIA,IACtB63E,EAAU9hE,EAAyB/V,EAAI,QAEpC,IAAIyU,EAAI,EAAGA,GAAK,IAAKA,IACxBojE,EAAU/iE,EAAwBL,IAGpCojE,EAAU,OACL,IAAIxtE,EAAI,EAAGA,EAAI,GAAIA,IACtBwtE,EAAUzQ,EAA2B/8D,EAAI,QAEtC,IAAIF,EAAI,EAAGA,GAAK,GAAIA,IACvB0tE,EAAUsvG,EAA0Bh9K,IAGtC0tE,EAAU,QACL,IAAItP,EAAI,EAAGA,EAAI,GAAIA,IACtBsP,EAAUryD,EAA2B+iD,EAAI,QAEtC,IAAI/zD,EAAI,EAAGA,GAAK,IAAKA,IACxBqjE,EAAUC,EAA0BtjE,GAAA,CAmGT,GA9F7BkiI,EAAU,OACVA,EAAU,IACV7+D,EAAU,GACVA,EAAU,GACVA,EAAU,GACVA,EAAU,GACVA,EAAU,IACVA,EAAU,GACVA,EAAU,IACVA,EAAU,GACVA,EAAU,IACVA,EAAU,OAwFNtP,EAAM,EACNzxD,EAAM,EACNjB,EAAM,EAEV67B,EAAU,EACVn7B,EAAU,OAELm3M,OAAOrlD,YAAc,mBAQtB30J,EAEAG,EAAG24K,EAAGlnK,EACN9a,EAAOqzI,EAAGiyC,EAAK5lJ,EAAKzkB,EATpBJ,EAAY1U,EAAMxN,KAClB8hL,EAAQt0K,EAAMyG,MACd8nI,EAASvuI,EAAM0G,OAEf4yB,EAAoB,EAARg7I,EAGdF,EAAI,EAGCA,EAAI7lC,GAAQ,KACjBxrI,EAAI,EACGA,EAAIu2B,GAAW,KACpBz/B,EAAQy/B,EAAY86I,EAAIrxK,EACxBo8K,GAAO,EACP5lJ,EAAM,EAEDzkB,EAAM,EAAGA,EAAM,GAAIA,IAGtBo4H,EAAIrzI,GAFJ0/B,EAAMzkB,GAAO,GAEKwkB,GADlB6lJ,EAAkB,GAAL,EAANrqK,IAGHs/J,EAAI76I,GAAOg1G,IAEbrB,GAAK5zG,GAAa86I,EAAI,EAAI76I,EAAMg1G,IAG9BxrI,EAAIo8K,GAAO7lJ,IAEb4zG,GAAKnqI,EAAIo8K,EAAM7lJ,EAAY,GAG7Bp2B,EAAIwR,EAAUw4H,KACd2uC,EAAInnK,EAAUw4H,KACdv4H,EAAID,EAAUw4H,KASdzzI,EAAIqb,IACAukB,EAAcn2B,GACdm2B,EAAewiJ,EAAI,IAAQ,GAC3BxiJ,EAAe1kB,EAAI,IAAQ,IAC3B,IACF,IACFvW,EAAI0W,IACAukB,EAAen2B,EAAI,IAAQ,GAC3Bm2B,EAAewiJ,EAAI,KAAS,GAC5BxiJ,EAAe1kB,EAAI,KAAS,IAC5B,IACF,IACFhO,EAAImO,IACAukB,EAAen2B,EAAI,KAAS,GAC5Bm2B,EAAewiJ,EAAI,KAAS,GAC5BxiJ,EAAe1kB,EAAI,KAAS,IAC5B,IACF,IAGJijD,EAAMhjD,EAAUnb,EAAKgb,EAASmjD,EAAKhzD,EAAQd,GAC3CqC,EAAMyO,EAAUxW,EAAKwI,EAAUT,EAAK9W,EAASqK,GAC7CwL,EAAM0P,EAAUjO,EAAKC,EAAU1B,EAAK7V,EAASqK,GAC7CqJ,GAAK,GAEPqxK,GAAK,KAMHxuK,GAAW,EAAG,KACZwjL,EAAW,GACfA,EAAS,GAAKxjL,EAAU,EACxBwjL,EAAS,IAAM,GAAMxjL,EAAU,GAAM,EACrCk2K,EAAUsN,EAAA,QAGZrjD,EAAU,OAEH,IAAI58H,WAAWhE,EAAA,EAiBtBnF,EAAUA,GAAW,sBAxIjBA,EAAO9E,OAAO8N,aACTpE,EAAI,EAAGA,EAAI,IAAKA,IAEvBi3K,EAAIj3K,GAAK5E,EAAK4E,EAAA,CAqIK,GA/frBA,EAAS/K,EACPsE,EACAslH,GAEFp0H,EAAUwK,EACR48D,EACA+/G,GAEF1yK,EAASjK,EACPuL,EACAjB,GAEFzK,EAAUG,EACRgb,EACAsyD,GAAA,mBAKEnnE,EAAU,EACV4E,EAAU,EACLvV,EAAM,EAAGA,GAAO,GAAIA,IAAO,KAE7B,IAAIyU,EAAK9D,EAAS8D,EAAKc,EAASd,IACnCoB,EAAS,MAAQpB,GAAMzU,EACvB8W,EAAQ,MAAQrC,GAAM,GACtBqC,EAAQ,MAAQrC,GAAI,GAAKzU,EACzB8W,EAAQ,MAAQrC,GAAI,GAAKA,EAAA,IAGtB,IAAIpK,IAAUkL,EAAU,GAAIlL,IAAUsG,EAAStG,IAClDwL,EAAS,MAAQxL,GAASrK,EAC1B8W,EAAQ,MAAQzM,GAAS,GACzByM,EAAQ,MAAQzM,GAAO,GAAKrK,EAC5B8W,EAAQ,MAAQzM,GAAO,GAAKkL,EAAU,EAAIlL,EAE5CsG,IAAY,EACZ4E,IAAY,GAvBZ,GAqfF,eAzdK,IAAI5E,EAAI,EAAGA,EAAI,IAAKA,IACvBq5B,EAAcr5B,GAAK,MAAQA,EAC3Bq5B,EAAer5B,EAAI,IAAQ,GAAK,MAAQA,EACxCq5B,EAAer5B,EAAI,IAAQ,GAAK,KAAOA,EAAI,MAC3Cq5B,EAAer5B,EAAI,IAAQ,IAAM,MAAQA,EACzCq5B,EAAer5B,EAAI,KAAS,IAAM,MAAQA,EAC1Cq5B,EAAer5B,EAAI,KAAS,GAAK,MAAQA,EAAI,QAC7Cq5B,EAAer5B,EAAI,KAAS,IAAM,MAAQA,EAC1Cq5B,EAAer5B,EAAI,KAAS,IAAM,KAAOA,CAAA,CAid3C,GAGAg0D,EAAWh0D,EAAA,CC9sCf,SAASmtK,GAAWntK,EAAQ4E,GAAA,QACrB8nD,IAAM,OACN1iD,OAAShK,EAAA,KACT8jR,MAAQ,IAAIC,SAAS/jR,EAAOgK,QAAA,KAC5Bg6Q,gBAAkBp/Q,EAAA,KAClBq/Q,WAAA,EAAY,KACZh2N,KACH/yD,OAAO8N,aAAaxF,KAAKwG,OAAO,IAAM9O,OAAO8N,aAAaxF,KAAKwG,OAAO,SACnE0iD,KAAO,GACqD,IAA7D,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,MAAM38C,QAAQvM,KAAKyqD,MACpD,MAAM,IAAIpmD,MAAM,yBACbq8Q,cAAA,KACAC,UAAA,CCrBP,SAAS93G,GAAYrsK,GAAA,SAsCV4E,EAAE5E,GAAA,IACJA,EAAG,MAAM6H,MAAM,sBAEbxY,EAAG2Q,EAAG4E,EAAGvV,GAAA,IACX,IAAIyU,EAAI,EAAG,EAAIA,EAAGA,IAAA,GAAS9D,EAAE4E,EAAId,IAAMzU,EAAEmZ,WAAW1E,GAAI,OAAO,UAC7D,UAEAA,EAAE9D,EAAG4E,EAAGvV,EAAGyU,EAAGpK,GAAA,IAChB,IAAIF,EAAI,EAAGA,EAAIE,EAAGF,IAAKwG,EAAE4E,EAAIpL,GAAKnK,EAAEyU,EAAItK,EAAA,UAEtCE,EAAEsG,EAAG4E,EAAGvV,EAAGyU,GAAA,IACb,IAAIpK,EAAI,EAAGA,EAAIoK,EAAGpK,IAAKsG,EAAE4E,EAAIlL,GAAKrK,CAAA,UAEhCmK,EAAEwG,GAAA,OACF,IAAIonP,WAAWpnP,EAAA,UAEf43D,EAAG53D,EAAG4E,GAAA,IACR,IAAIvV,EAAI,GAAIyU,EAAI,EAAGA,EAAI9D,EAAG8D,IAAKzU,EAAE+H,KAAK,IAAIwN,GAAA,OACxCvV,CAAA,UAcAwU,EAAG7D,EAAG4E,GAAA,IAQTvV,EAAI,mBAPC2Q,EAAE3Q,EAAGyU,EAAGpK,GAAA,IACV,IAAIF,EAAIE,EAAEoK,GAAI8zD,EAAK,EAAGA,EAAKp+D,IAC9BnK,EAAE+H,KAAKsC,EAAEnG,OAASuQ,EAAI,EAAI,GAAK,IAAIc,KAC/BlL,EAAEnG,OAASuQ,EAAI,IAFc8zD,IAGjC53D,EAAE3Q,EAAEuoE,GAAK9zD,EAAI,EAAGpK,EAAA,CAGZ,CACNrK,EAAG,EAAG2Q,GACD3Q,CAAA,KAEL6mB,EAAe,eACblW,EAAOwD,KAAA,SAIF0S,EAAElW,EAAG4E,GAAA,IACP,IAAIvV,EAAK,GAAMuV,EAAI,IAAQ,EAAG5E,EAAI3Q,GAAKA,KAAO,SAC5CA,GAAK2Q,EAAK3Q,EAAI,GAAMA,EAAI2Q,CAAA,UAExByU,EAAEzU,EAAG3Q,EAAGyU,EAAGpK,EAAGF,GACrBoL,IAAIlL,EAAIoK,IAAA,GACM9D,EAAE3Q,GAAZqK,GAAKoK,IAAgBtK,QAClB,EAAIE,EAAA,UA+EJkN,EAAE5G,EAAG3Q,EAAGyU,EAAGpK,EAAGk+D,GAAA,GACrBhzD,EAAE,MAAQgzD,GACN,KAAOA,EAAG,IAAI/zD,EAAIrK,EAAE,UACnB,GAAiB,OAAXqK,EAAIrK,EAAEo+D,IAAiB,OAAO,kBAhFhC53D,EAAG3Q,EAAGyU,EAAGpK,EAAGk+D,EAAG/zD,GAAA,IAGtB+C,EACA1B,EAHEnC,EAAI1T,EACN6T,EAAI,GAAKY,EAGTqB,EAAI3L,EAAE,IACNunC,EAAIvnC,EAAE,QACRoL,EAAE,GAAKgzD,GACPhzD,EAAE,MAAQlL,GACVkL,EAAE,MAAQ5E,GACV4E,EAAE,EAAId,GACDoB,EAAI,EAAGA,EAAI0yD,IAAK1yD,EAAG,IAClB,GAAKxL,EAAEwL,GAAI,OAAO,IACpBC,EAAEzL,EAAEwL,GAAA,IAEJC,EAAE,IAAMyyD,EAAG,OAAO,MACtB72B,EAAE,GAAK,EACFn6B,EAAI,EAAG,GAAKA,IAAKA,EAAG,IACnBzB,EAAEyB,GAAK,GAAKA,EAAG,OAAO,EAC1Bm6B,EAAEn6B,EAAI,GAAKm6B,EAAEn6B,GAAKzB,EAAEyB,EAAA,KAEjB1B,EAAI,EAAGA,EAAI0yD,IAAK1yD,EAAI0B,EAAIlN,EAAEwL,GAAK,EAAIxL,EAAEwL,KAAOrB,EAAEk9B,EAAEn6B,MAAQ1B,GAAA,GACzD,GAAK67B,EAAE,IACT,OAAQrnC,EAAI,IAAIyM,GAAShB,EAAI,EAAKzL,EAAE7K,MAAQgV,EAAE,GAAK4Q,EAAEzU,EAAG+C,EAAG,EAAGG,EAAGxJ,GAAIwJ,EAAA,IAMrE0C,EALEnM,GAAK,EACP2E,EAAI8E,EAAI,EACRyD,EAAI,EACJk1K,EAAI,EACJxiJ,EAAI,EAEJ1kB,EAAI,GAAK7Q,EAAA,IACXoB,EAAI,EACJ0B,EAAI,EACCgxD,EAAI,EAAGhxD,GAAK9C,IAAK8C,EAAGgxD,IAAM,EAAG,IAEhCikH,GADAxiJ,IAAM,EAGF,GADJA,GAAKl0B,EAAEyB,IACI,OAAO,OACX,EAAIzB,EAAEyB,KAAMzB,EAAEyB,IAClBlN,EAAI,IAAIyM,GACJhB,EAAIyB,EACNlN,EAAE7K,MAAQgV,EAAEqB,KACbuP,EAAEzU,EAAG+C,EAAI4D,EAAGixD,EAAGjjD,EAAGjb,GACjBiN,EAAIuP,EAAEvP,EAAGC,EAAA,KAEhBA,EAAI9C,EAAI,EACH8zD,EAAI,EAAG,IAAMhxD,IAAKA,EAAGgxD,IAAM,EAAG,IAEjCikH,GADAxiJ,IAAM,EAGF,GADJA,GAAKl0B,EAAEyB,IACI,OAAO,OACX,EAAIzB,EAAEyB,KAAMzB,EAAEyB,GAAI,IACvBlN,EAAI,IAAIyM,GACHQ,EAAIvI,IAAM3E,EAAG,KAChBsJ,GAAK4R,EAEA/O,EAAI,IADTnM,EAAImN,GACe9C,EAAI,GAAKrK,KAEtB,IADJmM,GAAKT,EAAE1L,QAELA,EACFmM,IAAM,EAIR1C,GADAyR,EAAI,IADJ/O,EAAInM,EAAIqK,GAIR9D,EAAE3Q,GADFoK,EAAIkN,EAAIvI,IACC+G,EAAIS,EAAI9B,EACjB9D,EAAE3Q,EAAIoK,GAAG5K,MAAQkU,EAAI1T,EAAIoK,CAAA,CAE3BC,EAAEyL,EAAIyB,EAAI9C,EACVpK,EAAE7K,MAAQgV,EAAEqB,KACZuP,EAAEzU,EAAG+C,GAAK4D,GAAK7C,GAAI8zD,EAAGjjD,EAAGjb,GACzBiN,EAAIuP,EAAEvP,EAAGC,EAAA,SAGNi1K,GAAK,EAAI96I,EAAE,IAAM,EAAI,EAAI79B,CAAA,CAKS,CAChClD,EAAG3Q,EAAGyU,EAAGpK,EAAGk+D,EAAG/zD,EAAA,UAEjBsC,IAAA,KACFtX,MAAQ2U,KAAK2B,EAAI,WAEfD,IAAA,KACFrW,MAAQ2U,KAAK2B,EAAI,WAEfpC,IAAA,KACFqxK,EAAIx8G,EAAG,EAAGzxD,GAAA,KACVmuK,EAAI96K,EAAE,QACN6nK,GAAK79J,KAAK67J,GAAK77J,KAAKs5J,GAAKt5J,KAAKmiK,GAAK,OACnCG,GAAKluG,EAAGi2M,GAAI3oQ,EAAA,UAEVhC,EAAGlD,EAAG3Q,EAAGyU,EAAGpK,GACnBkL,EAAE,MAAQ5E,GACV4E,EAAE,MAAQvV,GACVuV,EAAE,WAAalL,GACfsG,EAAE02J,GAAK,IACP12J,EAAEw2K,EAAI,EACNx2K,EAAEvG,GAAK,EACPuG,EAAEk3J,GAAK,EACPl3J,EAAEg2J,GAAK3mK,EACP2Q,EAAE81J,GAAKhyJ,EACP9D,EAAEkpK,GAAK75K,EACP2Q,EAAE0kK,GAAK5gK,EAAIpK,EACXsG,EAAE4kK,GAAK,GAAKlrK,EAAIoK,EAAIpK,EAAI,EAAI,EAAIoK,EAChCsB,EAAGpF,EAAA,UAEImF,EAAGnF,EAAG4E,GAAA,IACR,IAAIvV,EAAI,EAAG,EAAIuV,KAAOvV,GAAKonE,EAAEz2D,EAAG,MAAQ4E,EAAA,OACtCvV,CAAA,UAEA0xC,EAAG/gC,EAAG4E,GAAA,IACTvV,EAAI8V,EAAGnF,EAAG4E,GAAA,OACPT,EAAEnE,IAAM3Q,EAAIA,CAAA,UAEZuW,EAAG5F,EAAG3Q,EAAGyU,EAAGpK,GAAA,IACfF,EACFo+D,EAAI,MACNhzD,EAAE,MAAQ5E,GACV4E,EAAE,MAAQvV,GACVuV,EAAE,WAAalL,GACfsG,EAAEu/J,GAAK7lK,EACPsG,EAAEi4J,GAAK,EACPj4J,EAAEyU,EAAI,EACNzU,EAAE4G,EAAI,IACFlN,IAAMA,EAAI,GACTF,EAAI,EAAGA,EAAIE,IAAKF,EAAGo+D,GAAKvoE,EAAEyU,EAAItK,IAAO,EAAIA,EAC9CwG,EAAEi4J,GAAKrgG,EACP53D,EAAEq5J,GAAK3/J,EACPsG,EAAEg2J,GAAK3mK,EACP2Q,EAAE81J,GAAKhyJ,CAAA,UAEArK,EAAGuG,GAAA,KACH,GAAKA,EAAEyU,GAAKzU,EAAEq5J,GAAKr5J,EAAEu/J,IACzBv/J,EAAEi4J,MAAQ,EACRj4J,EAAEi4J,IAAOj4J,EAAEg2J,GAAGh2J,EAAE81J,GAAK91J,EAAEq5J,KAAQ+qH,GAAK,IAAQ,IAC3CpkR,EAAEq5J,GACHr5J,EAAEyU,GAAK,EACZE,EAAG3U,KAAQA,EAAE4G,EAAI,EAAK5G,EAAEyU,EAAI,YAErBrW,EAAE4B,EAAG3Q,GAAA,GACZuV,EAAE,GAAKvV,IACF2Q,EAAE4G,GAAKvX,GAAKy+Q,GAAI,KACfhqQ,EAAIu1B,EAAGr5B,GAAKm8P,GAAG9sQ,GAAA,OACnB2Q,EAAEyU,GAAKplB,EACPoK,EAAGuG,GACI8D,CAAA,QAET9D,EAAE4G,EAAI,EACE5G,EAAEyU,EAAI,WAEP9N,IAAA,KACFlN,EAAI+J,KAAKkzJ,GAAKlzJ,KAAKgzK,EAAI,OACvBxgB,GAAK,QACLF,GAAK,OACLoT,GAAK,QACLxE,GAAK,OACLE,GAAK,QACL1N,GAAK,WAEH2kB,IAAA,KACF5jB,GAAK,OACLjC,GAAK,QACLpvJ,EAAIpD,KAAKiR,EAAIjR,KAAK61J,GAAK71J,KAAK+7J,GAAK/7J,KAAKsyJ,GAAK,WAEzCz8H,EAAGr5B,GAAA,OACFA,EAAEi4J,MAAQj4J,EAAEyU,EAAK2vQ,GAAK,KAAS,WAEhCzvQ,EAAG3U,GAAA,OACV4E,EAAE5E,EAAEq5J,IAAMr5J,EAAEu/J,IACLv/J,EAAE4G,GAAM5G,EAAEq5J,IAAMr5J,EAAEu/J,IAAMv/J,EAAEyU,EAAI2vQ,EAAA,UAE9BjmR,EAAG6B,EAAG4E,GACb5E,EAAEyU,EAAI7P,EACN5E,EAAE4G,EAAI+N,EAAG3U,EAAA,UAEFyjH,EAAGzjH,GACVA,EAAEyU,GAAK4vQ,KAAOz/Q,EAAE5E,EAAEyU,GAAK4vQ,IAAK5qR,EAAGuG,GAAA,UAExBoF,EAAGpF,GACV4E,EAAE,MAAQ5E,GAAK,MAAQA,EAAEg2J,IACzBh2J,EAAE81J,GAAK91J,EAAE4kK,IACH5kK,EAAEw2K,GAAKx2K,EAAEg2J,GAAGh2J,EAAE81J,MAAS91J,EAAEw2K,GAAK,KAAQ,EAAKx2K,EAAEvG,GAAK,IACnDmL,EAAE,MAAQ5E,GAAK,MAAQA,EAAEg2J,IAC1Bh2J,EAAE81J,GAAK91J,EAAE0kK,IACH1kK,EAAEvG,GAAK,EAAKuG,EAAEw2K,EAAIx2K,EAAEg2J,GAAGh2J,EAAE81J,MAAS91J,EAAEw2K,GAAK,GAC3Cx2K,EAAEk3J,GACDl3J,EAAEvG,EAAI,GACLuG,EAAEw2K,IAAM,EAAKx2K,EAAEvG,GAAK,EAAKuG,EAAEk3J,GAAK,aAEnC/yJ,EAAEnE,GAAA,OACFmF,EAAGnF,EAAG,YAENy2D,EAAEz2D,EAAG4E,GAAA,IACRvV,EAAI2Q,EAAE02J,GAAA,EACN12J,EAAEvG,GAAK2L,EAAGpF,GAAA,IACV8D,EAAI9D,EAAEvG,EACRC,EAAKrK,EAAIuV,IAAO,EAChBpL,GAAKwG,EAAEw2K,IAAM1yK,EAAIpK,GAAK,MACxBF,GAAMnK,GAAKqK,EAAKsG,EAAEw2K,GAAO98K,EAAI,GAAMoK,IAAO,GAAOzU,EAAIqK,EAAI,EACzDoK,EAAIzU,EACCqK,EAAI,EAAG,KAAOoK,GAAMpK,GAAK,EAAKoK,IAAM,SACzCA,EAAI,EAAKpK,EAAI4qR,GAAGxgR,GAChB9D,EAAEvG,GAAKqK,EACP9D,EAAE02J,IAAMrnK,GAAKyU,GAAK,EACXtK,CAAA,UAEAg9K,EAAGx2K,EAAG4E,EAAGvV,GAChB2Q,EAAE4E,EAAI,GAAMvV,GAAK,GAAM,IACvB2Q,EAAE4E,EAAI,GAAMvV,GAAK,GAAM,IACvB2Q,EAAE4E,EAAI,GAAMvV,GAAK,EAAK,IACtB2Q,EAAE4E,EAAI,GAAgB,IAAVvV,CAAU,UAEfwlB,EAAG7U,EAAG4E,GAAA,OACL5E,EAAE4E,EAAI,GAAY5E,EAAE4E,EAAI,IAAM,WAE/BuiE,EAAGnnE,EAAG4E,GAAA,OACNiQ,EAAG7U,EAAG4E,GAAM5E,EAAE4E,EAAI,IAAM,YAExB/K,EAAGmG,EAAG4E,GAAA,OACNiQ,EAAG7U,EAAG4E,GAAMiQ,EAAG7U,EAAG4E,EAAI,IAAM,YAE5Bk3K,EAAG97K,EAAG3Q,GAAA,IACTyU,EAAI,GAAKzU,EAAA,OACbuV,EAAE,MAAQ5E,GACV4E,EAAE,EAAIvV,GACN2Q,EAAE6nL,EAAIruL,EAAEsK,GACJ,MAAQ9D,EAAE6nL,EAAU,GACxB7nL,EAAEi/J,GAAK,GAAK5vK,EACZ2Q,EAAE44J,GAAKvpK,EACA,YAEA63E,EAAGlnE,EAAG3Q,GACbuV,EAAE,MAAQ5E,GACV4E,EAAE,MAAQvV,GACVuV,EAAE5E,EAAE44J,IAAMvpK,EAAEupK,IACZ90J,EAAEzU,EAAEw4L,EAAG,EAAG7nL,EAAE6nL,EAAG,EAAG,GAAKx4L,EAAEupK,GAAA,UAElB7yB,IAAA,KACF8hD,EAAI,QACJjvB,GAAKp1J,KAAKy7J,GAAK,WAEbrqJ,EAAG5U,EAAG3Q,EAAGyU,EAAGpK,GACnBkL,EAAE,MAAQd,GACVc,EAAE,MAAQlL,GAAA,IACNF,EAAIsK,EAAE,GACR8zD,EAAIl+D,EAAE,aACHF,IAAMA,GAAKwG,EAAI43D,EAAIvoE,EAAI,GAAKA,GAAA,GAC5BuoE,IAAMA,GAAKvoE,EAAImK,EAAIwG,EAAI,GAAKA,GAC7B,GAAKxG,GAAK,GAAKo+D,EAAU,GAC7B9zD,EAAE,GAAKtK,EACPE,EAAE,GAAKk+D,EACA,YAEA5D,EAAGh0D,EAAG4E,GAAA,OACL5E,GAAK,GAAK4E,GAAK,IAAOA,CAAA,UAEvBsoI,EAAGltI,EAAG4E,GAAA,QAEF,WAAJ5E,IAAuB,WAAJ4E,KAAqB,EAAK,cACxC,SAAJ5E,IAAqB,SAAJ4E,KAAmB,EAAK,YAC/C,WAGKu6K,EAAEv6K,EAAGvV,GACZ2Q,EAAK3Q,GAAK,SAASA,EAAGyU,EAAGpK,EAAGF,EAAGo+D,EAAG/zD,EAAGqS,GAAA,IAC/BzB,EAAA,IACCA,EAAI,EAAGA,EAAImjD,IAAKnjD,EAAG,KAClB7N,EAAI5G,EAAK4E,GAAGf,EAAEqS,EAAIzB,EAAI,GAAI/a,EAAGF,EAAIib,GACrC5Q,EAAEqS,EAAIzB,GAAKy4H,EAAG79I,EAAEyU,EAAI2Q,GAAI7N,EAAA,YAIrB2yB,IAAA,KACF6tI,GAAK5jK,KAAKk6F,GAAKl6F,KAAK+hK,GAAK,WAEvBzwJ,EAAG9U,EAAG4E,GAAA,QACO,YAAT5E,EAAI4E,MAAqB,IAAM5E,EAAI4E,KAAQ,WAE/C8P,EAAG1U,GAAA,OACN,GAAKA,GAAK,IAAMA,EAAUA,EAC1B,EAAIA,EAAU,EACd,IAAMA,EAAU,oBAEbs0K,EAAGt0K,EAAG4E,GAAA,OACN8P,EAAG1U,GAAMA,EAAI4E,EAAI,IAAQ,aAEzB2pI,EAAGvuI,EAAG4E,EAAGvV,GAAA,OACTkJ,KAAKsyB,IAAIjmB,EAAIvV,GAAKkJ,KAAKsyB,IAAI7qB,EAAI3Q,EAAA,UAE/BiqC,EAAGt5B,EAAG4E,EAAGvV,EAAGyU,EAAGpK,EAAGF,EAAGo+D,GAAA,IAC5B9zD,EAAItK,EAAEo+D,EAAI,GACLvoE,EAAI,EAAGA,EAAIqK,IAAKrK,EAAGmK,EAAEo+D,EAAIvoE,GAAKyU,EAAIopI,EAAGltI,EAAE4E,EAAIvV,GAAIyU,EAAA,UAE7CswK,EAAGp0K,EAAG4E,EAAGvV,EAAGyU,EAAGpK,GAAA,IAClBF,EAAA,IACCA,EAAI,EAAGA,EAAInK,IAAKmK,EAAG,KAClBo+D,EAAI53D,EAAE4E,EAAIpL,GACZqK,EAAK+zD,GAAK,EAAK,IAGf1hD,EAAQ,UADRA,GADAA,EAAQ,SAAJ0hD,KACM/zD,GAAK,IAAMA,IAEvBC,EAAEpK,EAAIF,IAAW,WAAJo+D,GAAkB1hD,IAAO,YAGjCkzK,EAAGppL,EAAG4E,GACbA,EAAE2gK,GAAgB,IAAVvlK,EACR4E,EAAE84F,GAAM19F,GAAK,EAAK,IAClB4E,EAAEwiK,GAAMpnK,GAAK,GAAM,aAEZ2xK,EAAG3xK,EAAG4E,EAAGvV,EAAGyU,EAAGpK,EAAGF,GAAA,IACrBo+D,EAAA,IACCA,EAAI,EAAGA,EAAI9zD,IAAK8zD,EAAG,KAClB/zD,EAAIe,EAAEvV,EAAIuoE,GACZ1hD,EAAIrS,IAAM,EAEV4Q,EAAI5Q,EAEJ+C,EAAQ,KADRA,GAFAA,EAAI/C,IAAM,MAEE7D,EAAEulK,IAAM,IAAO,KAAQrvJ,GAAK,IAAO,MAAS,IAIxDzB,EAAQ,KADRA,GADAA,IAAYzU,EAAE09F,IAAM,IAAO,KAAQxnF,GAAK,IAAO,MAAS,KAC5ClW,EAAEonK,IAAM,IAAO,KAAQxgK,GAAK,IAAO,MAAS,IAE1DlN,EAAEF,EAAIo+D,IAAU,WAAJ/zD,IAAmB+C,GAAK,IAAM6N,CAAA,WAGrCozK,EAAGjjL,EAAGvV,EAAGyU,EAAGpK,EAAGF,GACtBwG,EAAK3Q,GAAK,SAAS2Q,EAAG4E,EAAGvV,EAAGyU,EAAG8zD,EAAG/zD,EAAGqS,EAAGzB,EAAG7N,GAAA,IACpC9C,EAAIoS,EAAGpS,EAAI2Q,IAAK3Q,EAAA,IACdoS,EAAI,EAAGA,EAAItP,IAAKsP,EAAG0hD,EAAE/zD,KAAOrK,EAAEnK,EAAEqK,EAAEsG,EAAE4E,OAAA,EAE7C5E,EAAK4E,GAAK,SAASA,EAAGvV,EAAGuoE,EAAG/zD,EAAGqS,EAAGzB,EAAG7N,GAAA,IAC/BT,EAAI,GAAKvB,EAAEnL,EACbyL,EAAIN,EAAEgyJ,GACN7zJ,EAAI6B,EAAE21K,EAAE,GACRr3K,EAAI0B,EAAE+B,EAAA,GACJ,EAAIR,EACN,IAAKvB,GAAK,GAAKA,EAAEnL,GAAK,EAAGyJ,GAAK,GAAKiD,GAAK,EAAG9W,EAAIuoE,IAAKvoE,EAAG,KAEnD8V,EADE47B,EAAI,MAEH57B,EAAI,EAAGA,EAAID,IAAKC,EACnBA,EAAIP,IAAMm8B,EAAIrnC,EAAEmK,EAAEqS,OAASzB,EAAE7N,KAAOpN,EAAEuJ,EAAEg+B,EAAI79B,IAAO69B,IAAM56B,CAAA,MAE1DnG,EAAK,eAAiB8D,GAAGD,EAAGqS,EAAGnT,EAAGG,EAAGuR,EAAG7N,EAAGvX,EAAGuoE,EAAG1yD,EAAA,WAGjDq1K,EAAGv6K,EAAG4E,EAAGvV,EAAGyU,EAAGpK,GAAA,IACjBrK,EAAIuV,EAAIvV,EAAGuV,EAAIvV,GAAK,KACnBmK,EAAIwG,EAAE4E,KACVd,EAAEpK,KAAQF,GAAK,GAAM,IACrBsK,EAAEpK,KAAQF,GAAK,EAAK,IACpBsK,EAAEpK,KAAkB,IAAVF,CAAU,WAGfub,EAAG/U,EAAG4E,EAAGvV,EAAGyU,EAAGpK,GAAA,IACjBrK,EAAIuV,EAAIvV,EAAGuV,EAAIvV,GAAK,KACnBmK,EAAIwG,EAAE4E,KACVd,EAAEpK,KAAQF,GAAK,GAAM,IACrBsK,EAAEpK,KAAQF,GAAK,EAAK,IACpBsK,EAAEpK,KAAkB,IAAVF,EACVsK,EAAEpK,KAAQF,GAAK,GAAM,cAGhB6jQ,EAAGr9P,EAAG4E,EAAGvV,EAAGyU,EAAGpK,GAAA,IACjBrK,EAAIuV,EAAIvV,EAAGuV,EAAIvV,GAAK,KAErBmK,GADEo+D,EAAI53D,EAAE4E,OACG,GAAM,IAASgzD,GAAK,GAAM,GACrCA,EAAgB,IAAVA,EAAmBA,GAAK,GAAM,GACtC9zD,EAAEpK,KAAOF,EACTsK,EAAEpK,KAAOk+D,CAAA,WAGJi2E,EAAG7tI,EAAG4E,EAAGvV,EAAGyU,EAAGpK,GAAA,IACjBrK,EAAIuV,EAAIvV,EAAGuV,EAAIvV,GAAK,KAErBmK,GADEo+D,EAAI53D,EAAE4E,OACG,GAAM,IAASgzD,GAAK,GAAM,EACrCA,EAAMA,GAAK,EAAK,IAASA,GAAK,EAAK,GACrC9zD,EAAEpK,KAAOF,EACTsK,EAAEpK,KAAOk+D,CAAA,WAGJ4lC,GAAGx9F,EAAG4E,EAAGvV,EAAGyU,EAAGpK,GAAA,IACjBrK,EAAIuV,EAAIvV,EAAGuV,EAAIvV,GAAK,KACnBmK,EAAIwG,EAAE4E,KACVd,EAAEpK,KAAkB,IAAVF,EACVsK,EAAEpK,KAAQF,GAAK,EAAK,IACpBsK,EAAEpK,KAAQF,GAAK,GAAM,cAGhBoxP,GAAG5qP,EAAG4E,EAAGvV,EAAGqK,EAAGF,EAAGo+D,GAAA,GACrB,GAAKA,EACP,IAAKvoE,EAAIuV,EAAIvV,EAAGuV,EAAIvV,GAEhBmnL,EACE98K,IAFHk+D,EAAI53D,EAAE4E,MAGC,IAAM,GACNgzD,EAAE,IAAM,EAAK,MACbA,EAAE,IAAM,EAAK,SACdA,EAAE,IAAM,MACT,GAEHp+D,GAAK,QACPsK,EAAEpK,EAAGF,EAAGwG,EAAG4E,EAAGvV,EAAA,UAEZmuQ,GAAG54P,EAAGvV,GACb2Q,EAAK3Q,GAAG,GAAK2Q,EAAK4E,EAAI,KACtB5E,EAAK3Q,GAAG,GAAK2Q,EAAK4E,EAAI,KACtB5E,EAAK3Q,GAAG,GAAK2Q,EAAK4E,EAAI,KACtB5E,EAAK3Q,GAAG,GAAK2Q,EAAK4E,EAAI,KACtB5E,EAAK3Q,GAAG,GAAK2Q,EAAK4E,EAAI,KACtB5E,EAAK3Q,GAAG,GAAK2Q,EAAK4E,EAAI,KACtB5E,EAAK3Q,GAAG,GAAK2Q,EAAK4E,EAAI,KACtB5E,EAAK3Q,GAAG,GAAK2Q,EAAK4E,EAAI,KACtB5E,EAAK3Q,GAAG,GAAK2Q,EAAK4E,EAAI,KACtB5E,EAAK3Q,GAAG,GAAK2Q,EAAK4E,EAAI,KACtB5E,EAAK3Q,GAAG,IAAM2Q,EAAK4E,EAAI,MACvB5E,EAAK3Q,GAAG,IAAM2Q,EAAK4E,EAAI,MACvB5E,EAAK3Q,GAAG,IAAM2Q,EAAK4E,EAAI,MACvB5E,EAAK3Q,GAAG,IAAM2Q,EAAK4E,EAAI,MACvB5E,EAAK3Q,GAAG,IAAM2Q,EAAK4E,EAAI,KACvB5E,EAAK3Q,GAAG,IAAM2Q,EAAK4E,EAAI,cAEhB+jP,GAAG3oP,GAAA,OACHA,GAAKukR,IAAMvkR,GAAKwkR,IAAMxkR,GAAKykR,IAAMzkR,GAAK0kR,EAAA,UAEtC/sN,KAAA,KACF4hG,GAAK,QACLttI,KAAOzoB,KAAKmR,EAAInR,KAAKwmG,GAAK,WAExB+zB,KAAA,KACF3/H,EAAI,QACJ8G,EAAI,QACJ4vJ,GAAK,QACLjgJ,EAAI,QACJkvJ,GAAKvgK,KAAKmhR,GAAKnhR,KAAKohR,GAAKphR,KAAKolK,GAAKplK,KAAKy2J,GAAKz2J,KAAKg7J,GAAKh7J,KAAK46J,GAAK56J,KAAKuxJ,GAAKvxJ,KAAKmuK,EAAInuK,KAAK+qI,EAAI/qI,KAAKq4K,EAAIr4K,KAAKs4K,EAAI,WAE7G2hF,KAAA,KACF/yF,GAAKlnK,KAAKkD,OAASlD,KAAKiD,MAAQjD,KAAKigH,EAAI,OACzCv+G,EAAI,CAAC,EAAD,KACJA,EAAE2/Q,KAAO,IAAIltN,GAAA,KACbzyD,EAAE80J,GAAK,IAAIj8B,GAAA,KACX+oC,GAAK,cAEHnuG,KAAA,KACFlyD,MAAQ,CAAC,QACTC,OAAS,CAAC,QACV4jK,GAAK,CAAC,QACNC,GAAK,CAAC,QACN15K,OAAS,CAAC,YAER6sQ,KAAA,KACF10F,GAAKxlK,KAAK2hK,GAAK3hK,KAAK4lK,GAAK5lK,KAAKq2J,GAAKr2J,KAAKs2J,GAAKt2J,KAAK62G,GAAK72G,KAAKuhK,GAAKvhK,KAAKgwC,GAAKhwC,KAAK3J,EAAI2J,KAAKoC,EAAIpC,KAAKmzJ,GAAKnzJ,KAAKshR,GAAKthR,KAAK84D,GAAK,WAEzH8sM,GAAGppQ,GAAA,OACVgnP,MAAM,gCACChnP,EAAEu5B,CAAA,UAEFqkO,GAAG59P,EAAG4E,GAAA,IACTvV,EAAI2Q,EAAEu5B,EACR7/B,EAAIkL,EAAEwtK,GAAGltK,EAAE2/Q,KACXrrR,EAAIE,EAAE6/J,GACN3hG,EAAIl+D,EAAEswG,GAAKhqG,EAAEm1J,GAAKz7J,EAAEib,EACpB9Q,EAAIi7K,GAAEl6K,EAAEwtK,GAAG3uD,GACXvtG,EAAIlW,EAAE5B,EACNqW,EAAIzU,EAAE87K,EACNl1K,EAAI5G,EAAEkF,EACNiB,EAAInG,EAAE67K,EACN32K,EAAIlF,EAAE80J,GACN/xJ,EAAI/C,EAAEuuI,EACNrrI,EAAI0B,EAAE27J,GACNp7J,EAAIP,EAAE67J,GACN1/H,EAAIn8B,EAAEy+J,GACNz9J,EAAIhB,EAAE0+J,GACN7pK,EAAIuG,EAAEm1J,GACN/2J,EAAI4B,EAAEm1J,GAAKn1J,EAAEu5B,EACb5yB,EAAI3G,EAAE8U,EACN+mK,EAAKl1K,EAAI,GAAM,SACZlN,EACDoK,EAAEqS,EAAGzB,EAAG,KAAM,KAAM7N,EAAGT,EAAGjB,EAAGnC,EAAG6D,EAAGT,EAAGjB,EAAGnC,EAAGvJ,EAAGo+D,EAAG,KAAM,KAAMjxD,IAC7D9C,EAAEe,EAAEg8J,GAAIh8J,EAAE8/F,GAAIxuF,EAAGzB,EAAGvR,EAAGiC,EAAG47B,EAAGn7B,EAAGgB,EAAGT,EAAGjB,EAAGnC,EAAGvJ,EAAGo+D,EAAIl+D,EAAEib,EAAGnb,EAAGo+D,EAAGjxD,KAC7DtX,GACCoK,EAAI,EAAI2E,EAAG3E,GAAK,EACpByJ,EAAI0D,EACFzB,EAAIgB,EACJ46B,EAAI77B,EACJU,EAAI7C,EACJoD,GAAKnG,EAAE2jK,GACP5gK,GAAK/C,EAAE2jK,GACP/rG,GAAK,EAAIl+D,EAAEib,EAEZ9Q,EAAEqS,GADDzB,GAAK,EAAIzU,EAAE+0J,IACH/0J,EAAE+0J,GAAI7+I,EAAGzB,EAAGvR,EAAGiC,EAAG47B,EAAGn7B,EAAGgB,EAAGT,EAAGjB,EAAGnC,EAAGvJ,EAAGo+D,EAAIl+D,EAAEib,EAAGnb,EAAGo+D,EAAGjxD,GAAA,OACnE8N,GAAKzU,EAAE+0J,GACP/0J,EAAEnG,EAAIuE,EAAI4B,EAAE43D,GACP9zD,EAAEc,EAAEg8J,GAAIh8J,EAAE8/F,GAAIxuF,EAAGzB,EAAG9N,GACrB7C,EAAEc,EAAE27J,GAAI37J,EAAE67J,GAAI75J,EAAGT,EAAG01K,GACpB/3K,EAAEc,EAAEy+J,GAAIz+J,EAAE0+J,GAAIp+J,EAAGnC,EAAG84K,GACpBxsL,KACI,EAAJ+O,GACAyF,EACEqS,EACAzB,EACA,KACA,KACA7N,EACAT,EACAjB,EACAnC,EACA6D,EACAT,EACAjB,EACAnC,EACAvJ,EACAo+D,EAAIl+D,EAAEib,EACN,KACA,KACAhO,GAECtX,CAAA,UAEA46P,GAAGjqP,EAAG3Q,EAAGyU,GAAA,IACZpK,EAAIsG,EAAE6U,EACRrb,EAAI,CAACwG,EAAE2xK,GAAA,GACL,MAAQj4K,EAAG,KACTk+D,EAAI53D,EAAE8U,EACRjR,EAAIxU,EAAE+iL,GAAG3uD,EACTvtG,EAAIrS,GAAKkhR,IAAMlhR,GAAK4gR,GACtBp1R,EAAIA,EAAE+iL,GAAGltK,EAAE2/Q,KAAA,IACPpwQ,EAAI,CAAC,GACP7N,EAAI5G,EAAEm1J,GACR1gJ,EAAE,GAAKzU,EAAEu5B,EACTv5B,EAAE++J,KACC,GAAKn4J,IAAM6N,EAAE,MAAQ7N,EAAIpN,EAAE,IAAMwG,EAAEyG,OACpCzG,EAAEnG,EAAImG,EAAEm1J,GAAKn1J,EAAEu5B,GAAKv5B,EAAE43D,IAAMnjD,EAAE,GAAKzU,EAAE43D,EAAI53D,EAAEnG,EAAI+M,IAAA,IAC7CT,EAAI9W,EAAEkqK,GACR3yJ,EAAIvX,EAAE26G,GAAKpjG,EAAIvX,EAAEslB,EACnB3U,EAAIglR,GAAGtrR,EAAGF,EAAE,GAAIwG,EAAEyG,MAAOmxD,EAAGnjD,EAAGtO,EAAGS,GAAKsP,EAAI,EAAI,GAAI7mB,EAAEslB,GACrD/P,EAAEd,GAAK2Q,GACPzU,GAAK2oP,GAAG9kP,IAAMohR,GAAG9+Q,EAAGS,EAAGsP,EAAG0hD,EAAGnjD,EAAGplB,EAAEslB,EAAA,QAE7B,WAEAmpP,GAAG99P,GAAA,IACN4E,EAAI5E,EAAEq1J,GACRhmK,EAAIuV,EAAEwtK,GAAG3uD,EACT3/G,EAAI,GAAKzU,EACTqK,EAAIrK,GAAK61R,IAAM71R,GAAK81R,IAAM91R,GAAK01R,IAAM11R,GAAK+1R,IAAM,IAAM/1R,GAAKs5P,GAAGt5P,GAAA,GAChEuV,EAAEygR,OAAS,KACXzgR,EAAEi6J,GAAK,KACPj6J,EAAEk6J,GAAK,KACPl6J,EAAEqlK,GAAK,MACFikG,GAAGtpQ,EAAE0yJ,GAAIt3J,EAAGtG,EAAI,GAAK,IAAK,OAAO,KACtCA,GAAKivP,GAAGt5P,IAAM+tK,KACVp9J,EAAEq6G,GAAI2sI,MAAM,wBACX,IACCljP,GAAA,GACIc,EAAEi6J,GAAKuqG,GAAKppQ,EAAE++J,GAAK,IACvB1vK,EAAK2Q,EAAE8U,EAAI,GAAM,EACjBlQ,EAAEygR,OAAS7rR,EAAEwG,EAAE8U,EAAI,EAAIzlB,GACnB,MAAQuV,EAAEygR,OAAQ,OAAO,EAC7BzgR,EAAEg8J,GAAKh8J,EAAEygR,OACTzgR,EAAE8/F,GAAK,EACP9/F,EAAE27J,GAAK37J,EAAEg8J,GACTh8J,EAAE67J,GAAK77J,EAAE8/F,GAAK1kG,EAAE8U,EAChBlQ,EAAEy+J,GAAKz+J,EAAE27J,GACT37J,EAAE0+J,GAAK1+J,EAAE67J,GAAKpxK,EACduV,EAAEi6J,GAAK++F,GACPxgG,IAAA,OAEG4pF,MAAM,gBACbttP,IAAOkL,EAAEk6J,GAAKmrF,GAAKnmP,GAAKmnQ,KAAA,IAEtBnnQ,IAAMu8K,GAAI,KACPrgL,EAAI,EAAG,IAAMA,IAAKA,EACpBo+K,GAAGp+K,GAAM,OAASA,EAAI,KAAO2I,IAAOg6K,GAClCV,GAAGjiL,IAAM,OAASA,EAAI,KAAO2I,GAC7By2K,GAAGp/K,IAAM,OAASA,EAAI,KACtBoiL,GAAGpiL,GAAM,QAAUA,EAAI,KAAO2I,IAAOg6K,GAAA,IACrC3iL,EAAIqiL,GAAIriL,EAAIq+K,KAAMr+K,EACpB4E,EAAK,OAAS5E,EAAI,IAAM2I,IAAOg6K,GAC7BnC,GAAGxgL,EAAIqiL,IAAM65E,GAAGt3P,EAAG,KACnB85K,GAAG1+K,EAAIqiL,IAAM65E,GAAIt3P,EAAI,GAAM,EAAG,IACnCy7K,GAAK,SAEA,WAEA6pE,GAAGlqP,GAAA,IACN3Q,EAAI2Q,EAAEq1J,GACRvxJ,EAAI9D,EAAE8U,EACNpb,EAAIsG,EAAEu5B,EAAA,OACR30B,IAAW,EAAP5E,EAAEm1J,KACF,GAAKrxJ,GAAK,GAAKpK,EAAU,GAC7BoK,EAAIzU,EAAEwvK,GAAG7+J,EAAG3Q,GAAA,MACJA,EAAEyvK,IAAMzvK,EAAEyvK,GAAG9+J,EAAG3Q,EAAGyU,GAC3BzU,EAAEuzK,IAAM9+J,EACD,YAEAizD,GAAG/2D,GACVA,EAAEq1J,GAAGgwH,OAAS,cAEPpnB,GAAGj+P,EAAG4E,EAAGvV,EAAGyU,GAAA,OACf,IAAM1F,EAAE4B,EAAG,GAAW,GAC1B4E,EAAE,GAAKxG,EAAE4B,EAAG,IAAM,EAClB3Q,EAAE,GAAK+O,EAAE4B,EAAG,IAAM,EAClB8D,EAAE,GAAK1F,EAAE4B,EAAG,GACL,GAAK5B,EAAE4B,EAAG,GAAK,GAAKA,EAAE4G,EAAA,UAEtBs3P,GAAGl+P,EAAG4E,GAAA,GACT,EAAI5E,EAAG,OAAOA,EAAI,MAClB3Q,EAAK2Q,EAAI,GAAM,SACV,GAAS,EAAJA,IAAW3Q,GAAK+O,EAAEwG,EAAGvV,GAAK,WAEjC8uQ,GAAGn+P,EAAG4E,GAAA,OACT,IAAMA,EAAUA,EAAI,IAGjB,IADLvV,IADEA,EAAIi2R,GAAG1gR,EAAI,KACH,GAAK5E,GAAK,GAAS,GAAJ3Q,KACXA,EAAI,MADlBA,CAAA,UAGKg6P,GAAGrpP,EAAG4E,EAAGvV,GAAA,IACZyU,EAAIu1B,EAAGhqC,GAEPqK,EAAIsG,EADR4E,GAAS,IAAJd,GACQqB,EAAI,WACbzL,IACDyE,EAAG9O,EAAGA,EAAEolB,EAAI,GACZ3Q,EAAIu1B,EAAGhqC,GACPuV,GAAK5E,EAAE4E,GAAG/V,MACV+V,GAAKd,GAAM,GAAKpK,GAAK,GACxByE,EAAG9O,EAAGA,EAAEolB,EAAIzU,EAAE4E,GAAGO,GACVnF,EAAE4E,GAAG/V,KAAA,UAEL0vQ,GAAGv+P,EAAG3Q,EAAGyU,GAAA,OAChBA,EAAEqB,GAAKnF,EAAEmF,EACTrB,EAAEjV,OAAUmR,EAAEnR,OAASQ,IAAO,EAC9BuV,EAAE,GAAKd,EAAEqB,GACFnF,EAAEmF,CAAA,UAEFq5P,GAAGx+P,EAAG3Q,EAAGyU,GAAA,IACZpK,EAAIsG,EAAEsiK,GAAA,OAEV19J,GADAvV,EAAI,GAAKqK,EAAI,EAAIsG,EAAEqiK,GAAGriK,EAAE0lK,IAAM5hK,GAAKpK,IAAMrK,GAAKqK,KACxCsG,EAAE4/J,IACD5/J,EAAE84J,GAAGzpK,EAAA,UAELsvQ,GAAG3+P,EAAG3Q,EAAGqK,EAAGF,GAAA,IACfo+D,EAAI53D,EAAEszC,GACRzvC,EAAI7D,EAAEkW,EAAI7mB,EACV6mB,EAAIlW,EAAEmnE,EACR93E,EAAI6mB,EAAI7mB,EAAA,IACJolB,EAAI/a,EACNkN,EAAIpN,EAAA,IACNA,EAAIwG,EAAEm4J,GACDz+J,EAAIsG,EAAE04J,GAAI,EAAI9gG,KAAO,KACpBzxD,EAAInG,EAAE+gK,GAAGnpG,GACX1yD,EAAIgR,EACJnT,EAAI1T,EACJ6T,EAAIuR,EACJtP,EAAIyB,EAGJm6B,GAFAn6B,EAAIpN,EACJib,EAAI/a,EACAyM,EAAEywJ,IAAA,OACRhyJ,EAAEM,EAAInC,GACN6B,EAAE7B,GAAKoD,EAAEgxL,IACDhxL,EAAE86J,IAAA,KACH,EACHskH,GAAGriR,EAAGiC,GAAIpC,EAAImC,GAAK67B,EAAGn6B,EAAG6N,GAAA,WAEtB,MAED7O,EAAIV,EACJzL,EAAIsJ,EACJ3E,EAAIwI,EACJD,EAAI8N,EACJonK,GALEz2K,EAAIe,GAKAywJ,GAAA,GACHhxJ,IACF4/Q,GAAGtiR,EAAGiC,EAAG,KAAM,KAAM,EAAG/G,EAAGuI,GAC5B2yB,EAAGp2B,EAAGiC,EAAI,EAAG,EAAG,EAAG02K,EAAI,EAAGz9K,EAAGuI,EAAI,GAChCxB,GAAK02K,EACLl1K,GAAKk1K,IACJj2K,GAAA,IAEF,IAAIyzB,EAAI,GAAKj0B,EAAE3L,EACbkb,EAAI0kB,EAAI,EACRl7B,EAAI61D,EAAG6nH,EAAGz2K,EAAE3L,GACZgqH,EAAIr+G,EAAEm1K,EACNn1K,EAAIA,EAAEuB,GAAKf,GAAKR,EAAE3L,GAAK0E,EACzByH,EAAInM,GAEJ,KACI0K,EAAIs/G,EACNhtD,EAAIrxD,EACJoxK,EAAI,MACDivG,GAAGviR,EAAGiC,EAAG/G,EAAGuI,EAAIk1K,EAAG,EAAGz9K,EAAGuI,GAAI6vK,EAAIqF,GAAK,KAEvChnK,GAAK2hK,GAAK7hK,GAAK0kB,EACjBxkB,EAAIgnK,IAAMhnK,EAAIgnK,IAAA,EAFN6pG,GAAIvhR,EAAEsyD,MAAQ,EAAK,KAGzBvzD,EAAGiC,IAAKqxK,EAAGp4K,EAAGuI,EAAI6vK,EAAIqF,EAAGhnK,EAAI2hK,EAAGp4K,EAAGuI,EAAI6vK,GACzCA,EAAI3hK,CAAA,CAEN1P,GAAK02K,EACLl1K,GAAKk1K,IACHj2K,EACE+O,IAAMvP,GAAKjH,EAAA,CAEjB4E,GAAKoD,EAAEgxL,IAAMrzL,EAAE8C,EAAG6N,EAAIssB,EAAGn6B,EAAG6N,GAAK1R,EAAImC,EAAI,GAAK67B,EAAGA,GAAA,WAE9C,MACHA,EAAI79B,EACJzJ,EAAI0L,EAKJ02K,GAJA34K,EAAIiD,EAAEywJ,KAGNjwJ,EAAIzD,IADJ9E,GADA+G,EAAI,GAAKgB,EAAE1M,GACH,IAGRmM,EAAIouD,EAAG9wD,EAAGiD,EAAE1M,GACZ4/B,EAAIlzB,EAAEo0K,EACDp0K,EAAIA,EAAEQ,GAAKzB,GAAKiB,EAAE1M,GAAKmM,EAAGV,EAAInC,GAAK,KACtC4R,EAAI0kB,EACJl7B,EAAIgI,EACJs9G,EAAI,IAAIlqF,EACRn0B,EAAI3L,EAAIkN,EACHxC,EAAI1K,EAAIyJ,EAAGzJ,EAAI2L,GAClBgkL,EAAGz0K,EAAExW,KAAMslH,GAAIkiK,GAAGliK,EAAG1iF,EAAGtnC,EAAG0L,EAAGyB,EAAG6N,GAAKhb,GAAK0L,EAAKsP,GAAKtP,EACvD1L,EAAI0K,IACDilL,EAAGz0K,EAAExW,KAAMslH,GAAIkiK,GAAGliK,EAAG1iF,EAAGtnC,EAAGoiL,EAAGj1K,EAAG6N,GAAKhb,GAAKoiL,EAAKpnK,GAAKonK,KACtD32K,EACE9G,IAAM+H,GAAKP,EAAA,YAGd,KACC1C,GAAK0D,GAAKzB,GAAKsP,GAAK,EAAItO,EAAE1M,EAAG,KAG/BA,EAAImN,EACJ1D,EAFA69B,EAAItsB,GAAK1R,EAAImC,GAAK67B,GADlBp6B,GAAK5D,EAAImC,GAAK8uD,EAAG7tD,EAAEywJ,GAAIzwJ,EAAE1M,IAIzB0L,EAAIyB,EACJxI,EAAIqW,EAEJ7O,EAAI,GACCe,GAFLk1K,EAAIl1K,GAES,EAAG,GAAKA,IAAKA,EAAGf,EAAEe,GAAKxB,EAAE/G,EAAIuI,GAAA,IACrCA,EAAIk1K,EAAI,EAAG,GAAKl1K,IAAKA,EAAGlN,EAAEyJ,EAAIyD,GAAKf,EAAEe,GAC1Ci/Q,GAAGz/Q,EAAGjB,EAAGnC,EAAG6D,EAAGm6B,EAAGn6B,EAAG6N,EAAA,MAChBmxQ,GAAGz/Q,EAAGjB,EAAGnC,EAAGG,EAAGiC,EAAGyB,EAAG6N,GAEhCA,EAAIjb,EACJoN,EAAIlN,CAAA,CAENkN,GAAKlN,GAAKoK,EAAEtK,EAAGE,EAAG+a,EAAG7N,EAAG/C,EAAA,UAEjB+6P,GAAG5+P,EAAG3Q,GAAA,IACTyU,EAAI9D,EAAEs5B,EACR5/B,EAAIsG,EAAEy2J,GAAKz2J,EAAEkW,EAAIlW,EAAEmnE,EACnB3tE,EAAInK,EAAI2Q,EAAEmnE,EAAA,GACZviE,EAAEvV,GAAK2Q,EAAEmG,EAAEyxD,GACXhzD,EAAE,IAAMpL,GACJ,EAAIA,EAAG,KACLo+D,EAAI53D,EAAEmG,EACRtC,EAAI7D,EAAEm4J,GACNjiJ,EAAIlW,EAAE04J,GACNjkJ,EAAImjD,EAAEnxD,MAAA,GACRk4P,GAAG3+P,EAAGxG,EAAGsK,EAAGpK,GAIZF,EAHA0c,EAAI,CAACA,GAILtR,GAHAd,EAAI9D,EAAEmnE,IACNztE,EAAIrK,IAGJuV,EAAEgzD,EAAEhyD,EAAIgyD,EAAEw+F,IACV18J,EAAIk+D,EAAEA,IAAMl+D,EAAIk+D,EAAEA,GACd9zD,EAAI8zD,EAAE/9D,EAAG,KACP+M,EAAIgxD,EAAE/9D,EAAIiK,EACZA,EAAI8zD,EAAE/9D,EACRL,EAAE,IAAMoN,EAAI6N,CAAA,IAEd3Q,GAAKpK,EACAoK,EAAI,GACHtK,EAAE,IAAM,EAAIo+D,EAAEhyD,EACfgyD,EAAEu9F,GAAKrxJ,EAAI8zD,EAAE/9D,EACb+9D,EAAE9iD,EAAI8iD,EAAEw+F,GAAKx+F,EAAEhyD,EACfgyD,EAAEr+B,EAAI7/B,EAAIoK,EACVA,EAAI,GACLA,EAAG,IACLoS,EAAIA,EAAE,GAEF,IADJpS,EAAI9D,EAAE60J,IACKpxC,EAAG,CAEV,IAAIt9G,EAAIrC,EAAEoB,EAAE2/Q,KAKV3/Q,GAJAxL,EAAIoK,EAAE2/G,EACNjqH,EAAIo+D,EAAE9iD,EACN8iD,EAAIA,EAAEr+B,EACN3yB,EAAIT,EAAEozJ,GACFpzJ,EAAEwO,GACN5R,EAAI60D,EAAA,IACJzxD,EAAIA,EAAE6jG,GAAKhqG,EAAEo3J,GAAKjxJ,EAAEwO,EACtB,EAAI5R,KAEJ,KACIG,EAAIW,EACNsB,EAAI+Q,EACJ6qB,EAAIvnC,EACJoM,EAAIgB,EACJnN,EAAI0M,EAAA,OACEzM,GAAA,KACDmsR,GACHC,GAAG5iR,EAAGiC,EAAG47B,EAAGn7B,EAAGnM,GAAA,WAEZyrR,GACHa,GAAG7iR,EAAGiC,EAAG47B,EAAGn7B,EAAGnM,GAAA,WAEZ8qR,GACHwB,GAAG7iR,EAAGiC,EAAG47B,EAAGn7B,EAAGnM,GACfwrR,GAAGr/Q,EAAGnM,EAAG,EAAGsnC,EAAG,EAAG,cAEfilP,GACHC,GAAG/iR,EAAGiC,EAAG47B,EAAGn7B,EAAGnM,GAAA,WAEZ0rR,GACHv6B,GAAG1nP,EAAGiC,EAAG47B,EAAGn7B,EAAGnM,EAAG,cAEf+qR,GACH55B,GAAG1nP,EAAGiC,EAAG47B,EAAGn7B,EAAGnM,EAAG,GAClBwrR,GAAGr/Q,EAAGnM,EAAG,EAAGsnC,EAAG,EAAG,cAEfgkP,GACHn6B,GAAG1nP,EAAGiC,EAAG47B,EAAGn7B,EAAGnM,EAAG,cAEfgrR,GACH75B,GAAG1nP,EAAGiC,EAAG47B,EAAGn7B,EAAGnM,EAAG,GAClBwrR,GAAGr/Q,EAAGnM,EAAG,EAAGsnC,EAAG,EAAG,cAEfqkP,GACH50J,GAAGttH,EAAGiC,EAAG47B,EAAGn7B,EAAGnM,GAAA,WAEZirR,GACHl0J,GAAGttH,EAAGiC,EAAG47B,EAAGn7B,EAAGnM,GACfysR,GAAGtgR,EAAGnM,EAAGsnC,EAAG,EAAG,cAEZolP,GACHl8K,GAAG/mG,EAAGiC,EAAG47B,EAAGn7B,EAAGnM,GAAA,cAGfmL,EAAE,GAENsR,GAAKzB,EACLtO,GAAKjB,CAAA,CAEPlF,EAAEo3J,IAAMx/F,CAAA,MACHovL,MAAM,6BACbpiP,EAAE5E,EAAEo3J,IAAMtzJ,EAAE4C,OAAA,EAGhB1G,EAAEmnE,EAAI93E,EACNuV,EAAE5E,EAAEmnE,GAAKnnE,EAAEtG,EAAA,UAEJqlQ,GAAG/+P,GAAA,IACN4E,EAAA,GACA,EAAI5E,EAAEk2J,GAAI,OAAO,MAChBtxJ,EAAI,EAAGA,EAAI5E,EAAE4/J,KAAMh7J,EAAG,KACrBvV,EAAI2Q,EAAE84J,GAAGl0J,GAAGwvK,EACdtwK,EAAI9D,EAAE84J,GAAGl0J,GAAG0vK,EAAA,GAEZ,EAAIjlL,EAAE,GAAGyU,EAAE,GAAK,GAAGqB,GACnB,EAAI9V,EAAE,GAAGyU,EAAE,GAAK,GAAGqB,GACnB,EAAI9V,EAAE,GAAGyU,EAAE,GAAK,GAAGqB,EAEnB,OAAO,SAEJ,WAEA25D,GAAG9+D,EAAG3Q,EAAGyU,EAAGpK,EAAGF,EAAGo+D,GAAA,GACrB,GAAK53D,EAAE+U,EAAG,KACRlR,EAAI7D,EAAE+lK,GACR7vJ,EAAIlW,EAAEyrF,GAAA,IACH7mF,EAAE,MAAQ25K,GAAGv+K,EAAE+U,IAAK1lB,EAAIyU,IAAKzU,EAChCkvL,GAAGv+K,EAAE+U,GAAGlR,EAAGqS,EAAGxc,EAAGF,EAAGE,EAAGF,EAAGo+D,GAAK/zD,EAAInK,EAAKwc,EAAI1c,EAAKA,GAAKo+D,EACxD53D,EAAE+lK,GAAKliK,EACP7D,EAAEyrF,GAAKv1E,CAAA,WAGFypP,GAAG3/P,EAAG3Q,GAAA,IACTyU,EAAI9D,EAAEmG,EAAEkvJ,GACV37J,EAAI,GAAKoK,EAAEiR,GAAK,GAAKjR,EAAEiR,EAAI/U,EAAEmG,EAAEtM,EAAImG,EAAEmnE,EACjB,GAApBztE,EAAIsG,EAAEmnE,EAAIztE,EAAIA,EAAIsG,EAAEmnE,EACtBviE,EAAEvV,GAAK2Q,EAAEmG,EAAEyxD,GACPvoE,EAAIqK,EAAG,KACLF,EAAIwG,EAAEmG,EAAEM,MACVmxD,EAAI9zD,EAAE+wJ,GACNhxJ,EAAIC,EAAEm5J,GAAKzjK,EAAIE,EACfwc,EAAIlW,EAAEs5B,EACN7kB,EAAIzU,EAAEy2J,GAAKz2J,EAAEkW,EAAIxc,EACjBkN,EAAI5G,EAAE+gK,GACRn8J,EAAE,GAAK5E,EAAEszC,IACT1uC,EAAE,GAAKgC,EAAE,GAAGq6J,IACZmlH,GAAGx/Q,EAAE,GAAIlN,EAAGrK,EAAG6mB,EAAGzB,EAAGmjD,EAAG/zD,GACxBi7D,GAAGh7D,EAAGpK,EAAGrK,EAAGuoE,EAAG/zD,EAAGrK,EAAA,CAEpBwG,EAAEmnE,EAAInnE,EAAEo3J,GAAK/nK,CAAA,UAENo3D,GAAGzmD,EAAG3Q,EAAGyU,EAAGpK,EAAGF,EAAGo+D,EAAG/zD,GAAA,IACxBqS,EAAIlW,EAAEq9P,EAAI3jQ,EACZ+a,EAAIzU,EAAEq9P,EAAI3jQ,EACVkN,EAAI5G,EAAE+gC,EACN56B,EAAInG,EAAE6D,EACNqB,EAAIpB,EAAI9D,EAAEq9P,EACVt6P,EAAImC,EACN1L,EAAIsK,EAAIpK,EAAIF,EAAA,IACR0J,EAAIY,EAAIpK,EAAIk+D,EACdzyD,EAAI,IAAMgB,EAAE+vJ,GACZn1H,EAAI/gC,EAAEo/J,GAAKlpJ,EAAI,SACftQ,EAAI,EAAIO,EAAE+vJ,GAAK/vJ,EAAEwyJ,GAAK,KACtBl/J,EAAI0M,EAAEmkL,GACNlsL,EAAI8G,EAAIhC,EAAIs7P,GAAGr4P,EAAGsO,EAAGyB,GAAK,KAC5BtR,EAAE5E,EAAEmnE,EAAIvP,GACRhzD,EAAE1B,GAAK1J,GAAA,IACHmN,GAAA,EACJ3G,EAAG,OAAS,MACH2G,GAAKzB,EAAIhC,GAAK,KACf24K,EAAI,KACJ3lK,GAAK6qB,EAAG,KAER37B,EAAIF,EAAIpB,EACVc,GAFIm8B,EAAI/gC,GAEJo/J,IACJr+H,EAAE4lI,GAAK5lI,EAAEA,EACTA,EAAE6lI,GAAKxhK,EAAA,EACH27B,EAAEl9B,EAAEqyJ,IAAMhvF,EAAGnmC,EAAEl9B,EAAE80J,GAAI53H,EAAEl9B,EAAEg6J,IAC7B98H,EAAI7qB,EAAI05D,EAAA,IAEVn7D,EAAIhb,IAAM2E,EAAIogQ,GAAGr4P,EAAGsO,EAAGyB,IACvBtR,EAAE,MAAQxG,GACVA,EAAEihK,KAAQhwK,EAAE6V,GAAK9G,EAAE0+J,GAAMn2J,GAAA,IACpBA,EACH,GAAK88G,EAAG78G,GAAIxI,EAAEijK,GAAK,CACbwa,EAAIj1K,EACNxB,EAAI/V,EAAA,IACJ8U,EAAIe,EACJuxD,EAAIr4D,EAAE0nK,GAAGzsI,EAAGwiJ,GAAMgyF,GAAK,GACzBjpQ,EAAExG,EAAEijK,IAAA,IACE5qG,EAAEtxD,GACHhH,EAAG09K,EAAGA,EAAEpnK,EAAIgiD,EAAEtxD,GAAKC,EAAEjB,GAAKsyD,EAAE5nE,MAASgtL,EAAI,IACzC19K,EAAG09K,EAAGA,EAAEpnK,EAAIgiD,EAAEtxD,EAAI,KAAMP,EAAE,KAAO6xD,EAAE5nE,OAASgtL,EAAIplH,EAAE5nE,OAAA,GAClDgtL,IAAMl1K,GAAA,EAAI,MACVk1K,EAAIwtE,GAAGjrP,EAAEg2K,EAAE,GAAIh2K,EAAEk2K,EAAE,GAAI1tK,GAAA,GAC5BA,EAAEA,EAAG,SACLD,GAAK,IAAMk1K,EAAG,KACXl1K,EACH,GAAIvI,EAAEunK,GAAIt2K,EAAE6V,IAAM9G,EAAE0+J,GAAM+e,GAAK,KAAQ,MAClC,IACHp4D,EAAG78G,GACHD,EAAI0iP,GAAGjrP,EAAEg2K,EAAE,GAAIh2K,EAAEk2K,EAAE,GAAI1tK,GACvB68G,EAAG78G,GACHxB,EAAIikP,GAAGjrP,EAAEg2K,EAAE,GAAIh2K,EAAEk2K,EAAE,GAAI1tK,GACvBzC,EAAIklP,GAAGjrP,EAAEg2K,EAAE,GAAIh2K,EAAEk2K,EAAE,GAAI1tK,GACnBA,EAAEA,EAAG,MACTvX,EAAE6V,IAAOf,GAAK,GAAOwC,GAAK,GAAOk1K,GAAK,EAAKz2K,KAAO,KAEtDuB,GAAA,IACEzB,IACAuP,GAEK/a,IACH+a,EAAI,IACJyB,EACF,MAAQrS,GAAKqS,GAAK0hD,KAAO1hD,EAAI,KAAOrS,EAAE7D,EAAGkW,GACzC,MAAQtQ,GAER,KAAO7C,EAAImC,GACR22K,EAAIxsL,EAAE0T,KACJ6C,EAAEiiL,GAAI,UAAYhM,EAAK,cAAgBj2K,EAAEq5J,IAAM4c,CAAA,MACjD,GAAI,IAAMA,EAAG,IAClBA,EAAIqiF,GAAGriF,EAAI,IAAKj1K,GAChBxB,EAAIikP,GAAGjrP,EAAEg2K,EAAE,GAAIh2K,EAAEk2K,EAAE,GAAI1tK,GACvB68G,EAAG78G,GAEHxB,EAAI+4P,GAAGzkQ,EADP0L,EAAI84P,GAAG94P,EAAGwB,IAENA,EAAEA,EAAG,SACL1B,EAAIpB,EAAIsB,GAAK5L,EAAI0L,EAAI22K,EAAG,MAAM77K,EAC7B,IAAKmE,EAAI,EAAGA,EAAI03K,IAAK13K,EAAG9U,EAAE6V,EAAIf,GAAK9U,EAAE6V,EAAIf,EAAIiB,GAAA,IAClDF,GAAK22K,EACApnK,GAAKonK,EAAGpnK,GAAK/a,GACf+a,GAAK/a,IAAMwc,EAAG,MAAQrS,GAAKqS,GAAK0hD,KAAO1hD,EAAI,KAAOrS,EAAE7D,EAAGkW,GAAA,GAC1DtR,EAAEM,GAAK1L,GACPib,EAAIhb,IAAM2E,EAAIogQ,GAAGr4P,EAAGsO,EAAGyB,IACnB,MAAQtQ,EACV,KAAO7C,EAAImC,GACR22K,EAAIxsL,EAAE0T,KACJ6C,EAAEiiL,GAAI,UAAYhM,EAAK,cAAgBj2K,EAAEq5J,IAAM4c,CAAA,KACjD,MAAIA,EAAI12K,GASR,MAAMnF,EAAA,IARX2G,EAAIk1K,EAAI,IACHj3K,EAAE,MAAQgB,GAAI7C,EAAImC,GACpB22K,EAAIxsL,EAAE0T,KAAQ6C,EAAEiiL,GAAI,UAAYhM,EAAK,cAAgBj2K,EAAEq5J,IAAM4c,EAChEA,EAAI32K,EAEJN,IAAI+B,KADJvB,EAAIQ,GACQgzJ,KACZvpK,EAAEwsL,GAAKz2K,EAAEyiL,EAAElhL,GACXA,GAAA,CAAI,CAENA,GAAK/B,EAAEgC,EAAEA,GAAK+N,EAAG/N,GAAA,IAEf5G,EAAEo/J,IAAMx4J,EAAEA,GAAK1B,EAAI1L,EACrBoL,EAAE5E,EAAE+gC,EAAEn6B,GACH5G,EAAExG,EAAI,EACNwG,EAAE+gC,EAAI/gC,EAAE2mK,GACR3mK,EAAEq9P,EAAIr9P,EAAE4mK,GACT,EAAI5mK,EAAE6D,EAAEqyJ,IAAMhvF,EAAGlnE,EAAE6D,EAAEg6J,GAAI79J,EAAE6D,EAAE80J,QAC5B,IAAI/xJ,EAAEA,EAAG,MAAM5G,EACf,MAAQ6D,GAAKA,EAAE7D,EAAGkW,EAAI0hD,EAAIA,EAAI1hD,GAAKlW,EAAExG,EAAI,EAAKwG,EAAEq9P,EAAIn4P,EAAIpB,CAAA,QACtD,SAET9D,EAAExG,EAAI,EACC,WAEAomQ,GAAG5/P,GACV4E,EAAE,MAAQ5E,GACVA,EAAEqiK,GAAK,KACPriK,EAAEuiK,GAAK,KACPviK,EAAE84J,GAAK,SACHzpK,EAAI2Q,EAAE24J,GAAA,MACFtpK,IAAMA,EAAEw4L,EAAI,MACpB7nL,EAAE69J,GAAK,KACPj5J,EAAE,MAAQ5E,EAAA,UAEH6/P,KAAA,IACHj7P,EAAI,IAAI0zE,GAAA,OACR,MAAQ1zE,EAAU,MACtBA,EAAEpL,EAAI,EACNoL,EAAEm5J,GAAKmgB,GACPs/E,GAAG,YAAa,kBAChBA,GAAG,YAAa,oBAChBA,GAAG,eAAgB,qBACnBA,GAAG,eAAgB,uBACnB+nB,GAAKnxG,EACLuxG,GAAKh0G,EACLm0G,GAAKvrG,EACLwrG,GAAKhxQ,EACLy7G,GAAK6sI,EACLpzJ,GAAK4jC,EACLo4I,GAAKzoL,GACLx9F,EAAKqmR,gBAAkBC,GACvBtmR,EAAKumR,eAAiBC,GACf5hR,EAAA,UAEAk7P,GAAG9/P,EAAG3Q,EAAGyU,EAAGD,EAAGqS,GAAA,IAClBzB,EAAI,EACNvP,EAAI,CAAClF,GACLkD,EAAI,CAAC7T,GACL8V,EAAItB,EAAEk9B,EACNA,EAAIl9B,EAAEA,EACN+B,EAAI,KACJnM,EAAI,EACNuG,EAAG,OAAS,IACN8D,EACF,KAAO2Q,GAAKrW,EAAE+G,EAAG,IAAM,KACjBwB,EAAIzB,EACN22K,EAAI34K,EACJyR,EAAI9Q,EACJuB,EAAI,EACJjB,EAAIwQ,EAAEosB,EACN01B,EAAI9hD,EAAEosJ,GAAGpsJ,EAAE2+B,IACXkjI,EAAIp4K,EAAE+F,EAAG,MACPwQ,EAAE4uJ,GAAM,GAAKiT,EAAI/hK,EAAI,MACpB,QACHE,EAAE4uJ,IAAM,GAAKiT,EACb//G,EAAEwqG,GAAKuV,EACP//G,EAAEmgG,GAAKjwJ,EAAE,GACT8vD,EAAE0gI,GAAKtb,EAAE,GACTplH,EAAE8jH,EAAI,CAAC,QACL5lK,EAAE2+B,GACJ1uC,EAAE,GAAK+P,EAAE2+B,IACDkjI,GAAA,KACD,OACA,EACH//G,EAAEh9D,EAAI2E,EAAE+F,EAAG,GAAK,EAChBiB,EAAI06P,GAAG9rM,EAAGyC,EAAEmgG,GAAIngG,EAAEh9D,GAAIu6D,EAAGyC,EAAE0gI,GAAI1gI,EAAEh9D,GAAI,EAAGkb,EAAG8hD,EAAE8jH,GAC7C9jH,EAAE8jH,EAAI9jH,EAAE8jH,EAAE,cAEP,MAMD1lK,EALEsyD,EAAI/oE,EAAE+F,EAAG,GAAK,EAChBtK,EAAI,GAAKstE,EAAI,EAAI,EAAIA,EAAI,EAAI,EAAIA,EAAI,EAAI,KAC3CxgE,EAAE,GAAKqtD,EAAGyC,EAAEmgG,GAAI/8J,GAChB48D,EAAEh9D,EAAII,EAGDgb,EAFDzP,EAAI06P,GAAG34L,EAAG,EAAG,EAAGxyD,EAAG8hD,EAAE8jH,GAEZ,KACPrzG,EACF6+D,EAAI5+D,EACJvyD,EAAI6hD,EACJ0oH,EAAI,IAAM,GAAKvqK,EAAEnb,GACjB8/B,EAAI//B,EAAE2lL,GAAA,GACJ,MAAQ5lJ,EAAG1kB,EAAI,MACd,KACCC,EAAIF,EAAE2lK,EAAE,GACV7lK,EAAIE,EAAEjO,EAAA,IACR4yB,EAAE,GAAK3kB,EAAE2lK,EAAE,GAAG,GACTrzG,EAAI,EAAGA,EAAI,EAAI6+D,IAAK7+D,EAAG3tC,EAAE2tC,GAAKgmE,EAAGp4H,EAAEJ,EAAIwyD,GAAI3tC,EAAE2tC,EAAI,SAC/CA,EAAI,EAAIi4G,IAAKj4G,EAAG3tC,EAAE2tC,GAAK,EAC9BtyD,EAAE2lK,EAAE,GAAK,KACT3lK,EAAE2lK,EAAE,GAAKhhJ,EACT1kB,EAAI,GAGRzP,EAAIyP,EAAA,WAED,gBAGHjQ,EAAE,GAEN6P,EAAIrP,CAAA,KAGVF,EAAIA,EAAE,GACNhC,EAAIA,EAAE,GACFuR,GAAKrW,EAAE+G,EAAG,MAAuBsP,EAAI,IAAnBhb,EAAI2E,EAAE+G,EAAG,KAAoB,IAAM1L,GAAS,CAChEoK,EAAErK,EAAI,QACAwG,CAAA,KAEJs0K,EAAA,GACCA,EAAI7/J,EACP7P,EAAG,KAMC2pI,EACAj1G,EAIA86I,EAVEgV,EAAIvlL,EACN8tK,EAAIzsK,EACJ2iL,EAAI3kL,EACJq3K,EAAI9gL,EACJsb,EAAIjR,EAGJu5P,EAAIj0E,EAAEroJ,EACN8sG,EAAIu7C,EAAEvlL,EACN25F,GAAI,CAAC,MAELotJ,GAAI,EACJ4S,GAAK,EACL7U,GAAK89B,GAAGlsG,GACVlrL,EAAG,OAAS,IACN0lB,GAAK3W,EAAEi/P,EAAG,GAAI,KACZ1lM,GAAKv5D,EAAEi/P,EAAG,GAAK,EACjBt/H,GAAK/pE,EAAG29G,EAAGh6G,IACX8lM,GAAKzpM,EAAG6zH,EAAGlwH,IACXgB,GAAKolE,GAAK0/H,GAAA,IACPqC,GAAG/hI,GAAI0/H,GAAI,EAAGr0E,EAAG5rF,IAAI,MAAMnuG,EAAA,IAChCmuG,GAAIA,GAAE,GACNqwC,EAAEy0B,GAAK3qG,GACF42E,EAAK,EAAGA,EAAK51E,KAAM41E,EAAI,KACtBmvH,GAAMlgK,GAAE+wC,IAAO,EAAK,MACxB/wC,GAAE+wC,GAAMmvH,GACRA,IAAM9S,KAAMA,GAAI8S,GAAK,OAGrBL,EAAEz2P,EAAG,MAAMvX,EAAA,IACViqC,EAAK,EAAG,EAAIA,IAAMA,EAAI,KACrB8vO,GAAIsd,GAAGptP,IACVA,GAAM,EAAIihJ,IAAM6uF,IAAK,GAAK7uF,GAC3BijF,GAAK4L,KAAM5L,GAAK4L,GAAA,KAEdxL,GAAKhmM,EAAGgzL,GAAIjC,GAAIxiP,GAChB8jP,GAAKW,GACPkT,GAAKlmM,EAAGqyL,GAAIlnP,GAAA,GACV,MAAQ+6P,GAAI,IAAI5T,GAAK,UACpBtlP,EAAE,OAASqlP,IAAMC,GAAK4T,GAAA,IACvB/mM,GAAKv9D,EAAEgkQ,IAAA,GACP,MAAQtT,IAAM,MAAQnzL,IAAM,MAAQ6mM,GAAI,CAC1Cx0E,EAAE5vL,EAAI,QACAnK,CAAA,KAEJ4uQ,GAAKL,GAAA,IACJrvH,EAAK6lC,EAAI,EAAG7lC,EAAKq8G,KAAKr8G,EAAI,KACzB2vH,GAAKhU,GAAG37G,GACV4vH,GAAKD,GAAG9pF,EACRi1E,GAAK6U,GAAG5pF,EACRkqF,GAAK,EACLG,GAAK,EACLC,GAAK,MACFtlO,EAAK,EAAG,EAAIA,IAAMA,EAAI,CACzB8vO,GAAIsd,GAAGptP,GACP6kO,GAAG7kO,GAAM2kO,GACT5U,GAAG/vN,GAAM86I,GACR96I,GAAM,EAAIihJ,IAAM6uF,IAAK,GAAK7uF,GAC3Bz2K,EAAG,KACGi7P,GACFjgM,GAAKsqM,GACLzJ,GAAKv2E,EACLy2E,GAAK9oM,GACLgpM,GAAK9B,GACL+B,GAAK5rF,EACL6rF,GAAK,EACLC,GAAKP,GAAG5+N,EACRo/N,GAAK/hQ,EAAE8hQ,GAAI,MACbxmQ,EAAEmmQ,GAAI,EAAG,EAAG/gM,IACRqhM,GAAI,KACFC,GAAKhiQ,EAAE8hQ,GAAI,GAAK,EAClBG,GAAKjiQ,EAAE8hQ,GAAI,GACXI,GAAKliQ,EAAE8hQ,GAAI,GAAKG,GAAK,EAAI,GAC3BR,GAAGS,IAAM,KACJF,KAAyBP,GAAjBS,GAAKliQ,EAAE8hQ,GAAI,IAAe,OACnCK,GAAK,MACJ,KACDC,GAAKhnQ,EAAE,IACTinQ,GAAKriQ,EAAE8hQ,GAAI,GAAK,KACd,GAAKO,GAAI,CACXd,GAAGnmQ,EAAI,MACHknQ,GAAK,QACH58P,CAAA,KAEHi7P,GAAK,EAAGA,GAAK0B,KAAM1B,GAAIyB,GAAGmmB,GAAG5nB,KAAO3gQ,EAAE8hQ,GAAI,OAC3CU,QAAA,EACFC,QAAA,EACAC,GAAKnB,GACLzD,GAAKsE,GACLe,GAAKziM,GACL2iM,GAAK5B,GACL8B,GAAK,EACLO,GAAKpB,GAAG//N,EACRqhO,GAAK,EACLC,GAAKzqM,EAAG,IAAKzxD,GACfzM,EAAG,KACIkN,EAAEy7P,GAAI,EAAG,EAAGnG,GAAI,KADX,IAEN99P,EAAE8jQ,GAAI,GAAI,KACRK,GAAK,EAAI,EAAInkQ,EAAE8jQ,GAAI,OACrBtB,GAAK,EAAIxiQ,EAAE8jQ,GAAIK,KACRhB,GAAI,MAAM7nQ,CAAA,MACdknQ,GAAKW,GAAA,IACPV,GAAK,EAAGA,GAAKU,IAAMX,MAAQ,CAC9Bn9I,EAAGy+I,IAAA,IACCQ,GAAKL,GAAG,GAAc,IAAThpO,EAAG6oO,MACpB/jQ,EAAG+jQ,GAAIA,GAAGztP,EAAIiuP,GAAGv9P,GAAA,IACbgoK,GAAKu1F,GAAG7zQ,MAAA,GACR,GAAKs+K,GAAKs0F,GAAGZ,MAAQ1zF,GAAK,GAAKA,KAAOi1F,GAAKj1F,QAC1C,KACCd,GAAK,IAAMc,GACbF,GAAKE,GAAK,GACVjiE,GAAK07K,GAAG35G,IACRR,GAAKruK,EAAE8jQ,GAAI2kB,GAAG55G,KAAO/hE,GAAA,GACnB21J,GAAKp0F,GAAK80F,GAAI,MAAM7nQ,EAEtB,IAAK,IAAIsyK,GAAKK,GAAK+1F,GAAK,EAAG,EAAI31F,MAC7Bg1F,GAAGZ,MAAQ70F,EAAA,EAGnB21F,GAAK,QACCjoQ,CAAA,CAERioQ,KAAOb,GAAGtnQ,EAAI,GACd+mQ,GAAKoB,EAAA,EAENpB,GAAKA,KAAOL,GAAGt5P,KAAOq5P,GAAKr5P,EAAEm5P,GAAIC,GAAI,EAAGH,GAAI/gM,KAC7CyhM,IAAM,GAAKN,GAAMS,GAAKT,IAAQN,GAAGnmQ,EAAI,EAAKknQ,GAAK,MAE7C,GAAKA,GAAI,MAAMrxQ,EAAA,GACnBsvQ,IAAM,GAAKmoB,GAAGxtP,KAAQqlO,GAAK,GAAKV,GAAG7pF,GAAGjvK,GACtCq5P,IAAMP,GAAG7pF,GAAGjvK,EACZivK,GAAKssF,GACD,GAAKpnO,EAAI,KAETyzI,GADEG,GAAKn2G,GAAG,OAEPg2G,GAAK,EAAGA,GAAKq8F,KAAKr8F,GAAIh2G,GAAGg2G,IAAMG,KAAOA,GAAKn2G,GAAGg2G,KACnD6xF,IAAM1xF,EAAA,KAGVgxF,GAAGv4F,GAAKg5F,GACRT,GAAG7+F,GAAK,EACRs/F,KACIT,GAAGphG,IACDqhG,GAAG,GAAG9U,GAAG,GAAK,GAAGx6P,OAAS,GACzBsvQ,GAAG,GAAG9U,GAAG,GAAK,GAAGx6P,OAAS,GAC3BsvQ,GAAG,GAAG9U,GAAG,GAAK,GAAGx6P,SACnB,EACF,GAAK2vQ,IACH,IAAML,GAAG,GAAG9U,GAAG,GAAK,GAAGx6P,QACrBqvQ,GAAG7+F,GAAK,EAAK6+F,GAAGphG,IAAMqhG,GAAG,GAAG9U,GAAG,GAAK,GAAGx6P,OAAS,IACtDqvQ,GAAG78F,IAAM68F,GAAG7+F,IAAM,EAAIu/F,GAClBV,GAAG78F,GAAI,KACL8K,GACFiB,GAAK8wF,GAAA,IACF/xF,GAAK,EAAGA,GAAK0hG,KAAM1hG,GAAI,KACtBK,GAAKL,GACPO,GAAKU,GAAGtH,GAAG0G,IACXF,GAAKc,GAAGgH,EAAE,GAAGhH,GAAGkH,EAAE,GAAK9H,IAAA,KAClBF,GAAGz9K,OACJ69K,GAAGvnK,EAAImnK,GAAGnnK,EAAI,IAAOunK,GAAG79K,MAAQy9K,GAAGz9K,QACnC69K,GAAGvnK,EAAI,EACRunK,GAAG79K,MAAQ,EACX29K,KAAO+xF,GAAGjyF,GAAI,EAAGI,IACjBF,KAAO+xF,GAAGnxF,GAAGgH,EAAE,GAAGhH,GAAGkH,EAAE,GAAK9H,IAAK,GAAIE,IACrCF,KAAO+xF,GAAGnxF,GAAGgH,EAAE,GAAGhH,GAAGkH,EAAE,GAAK9H,IAAK,EAAGE,IACrC6xF,GAAGnxF,GAAGgH,EAAE,GAAGhH,GAAGkH,EAAE,GAAK9H,IAAK,GAAIE,IAAA,GAIxC7+B,EAAEw0B,GAAK7kE,GACPqwC,EAAE+xB,GAAKgrF,GACP/8G,EAAEirB,GAAKoxF,GACPr8G,EAAE00B,GAAKq7F,GACPtpF,EAAI,QACE1vK,CAAA,CAER0vK,EAAI,OAER7/J,EAAI6/J,GACI,CACNzwK,EAAErK,EAAI,QACAwG,CAAA,IAEJ,EAAIvG,GAAA,GACAsnC,EAAEm1H,GAAK,GAAKz8J,GAAKqiL,EAAG/6I,EAAE43H,GAAIl/J,GAAK,CACnCoK,EAAErK,EAAI,EACNib,EAAI,QACEzU,CAAA,OAEH+gC,EAAEm1H,GAAK,MACVkW,GAAKvoK,EACP20G,GAAKtzG,EACLqnK,GAAKrpK,EACLsgH,GAAK4oD,GAAGvoK,EACRwpK,GAAK7pD,GAAG8+C,GAAA,GACV8J,GAAGl2J,EAAIsiG,GACP4zD,GAAG1yK,EAAI6yK,GACP/oD,GAAGkiD,GAAK1xG,EAAGwkD,GAAI60D,IACf7pD,GAAG8mE,GAAK,GAAKjd,IAAM,GAAK,GAAKA,IAAM,EAC/BvpK,EAAG,CACLD,EAAEk6J,GAAKpwD,GAAA,MACD3tG,CAAA,IAGJ,OADJ4F,EAAIpM,EAAE0L,EAAIhC,IACK,CACbW,EAAErK,EAAI,EACNib,EAAI,QACEzU,CAAA,CAERyU,GAAKA,EAAIgyC,GAAG5iD,EAAG+B,EAAG,EAAGV,EAAGhC,EAAGA,EAAG,SAAWiC,EAAEyB,EAAA,MACrC5G,CAAA,QAERyU,GACK,MAAQyB,EAAKA,EAAE,GAAKtQ,GAAMhB,EAAE,MAAQgB,GAAIhB,EAAEd,IAAMD,EAAEw5P,EAAI,EAAIv5P,GAAK87P,GAAG7+N,IACnE6+N,GAAG7+N,GACAtsB,CAAA,UAEAsrP,GAAG//P,EAAG3Q,GAAA,IACTyU,EAAI9D,EAAEkW,EAAIlW,EAAEtG,EACdA,EAAIoK,EAAIzU,EAAI,GAAKA,EAAA,OACnBuV,EAAE5E,EAAEkW,GAAK7mB,GACT2Q,EAAEs5B,EAAI9/B,EAAEE,GACJ,MAAQsG,EAAEs5B,GAAWt5B,EAAEm4J,GAAK,KAAQn4J,EAAE04J,GAAK,EAAK14J,EAAExG,EAAI,EAAI,IAC9DwG,EAAEm4J,GAAKn4J,EAAEs5B,EACTt5B,EAAE04J,GAAK14J,EAAEy2J,GAAK3yJ,EAAIzU,EACX,YAEA2wQ,GAAGhgQ,EAAG3Q,GAAA,IACTyU,EAAI9D,EAAEmnE,EACRztE,EAAIrK,EAAIyU,EACRtK,EAAIwG,EAAEs5B,EACNs+B,EAAI53D,EAAEy2J,GAAKz2J,EAAEkW,EAAIpS,EAAA,IACdc,EAAEvV,GAAK2Q,EAAEmG,EAAEyxD,GAAI,EAAIl+D,GAAK,KACvBmK,EAAI,GAAKnK,EAAI,GAAKA,EACpBwc,EAAIlW,EAAEmG,EAAEkvJ,GACR5gJ,EAAIzU,EAAEmG,EAAEM,MACRG,EAAI6N,EAAI5Q,EACRsC,EAAI+P,EAAE2+I,GACN3vJ,EAAIgR,EAAE+mJ,GAAKxoJ,EAAI3Q,EACff,EAAI/C,EAAEm4J,GACNj1J,EAAIlD,EAAE04J,GACRimG,GAAG3+P,EAAG6D,EAAGrK,EAAGo+D,GACZmvN,GAAGhkR,EAAGG,EAAGiD,EAAGjB,EAAG0B,GACfk4D,GAAG5oD,EAAGpS,EAAGA,EAAID,EAAGsC,EAAGjB,EAAGuP,GACtB/a,GAAKmK,EACLrK,GAAKqK,EAAI7D,EAAEkW,EACXpS,GAAKD,CAAA,CAEPe,EAAEd,GAAKzU,GACP2Q,EAAEmnE,EAAInnE,EAAEo3J,GAAK/nK,CAAA,UAyBN4wQ,KAAA,KACFriG,GAAKp6J,KAAKqjK,GAAKrjK,KAAK65F,GAAK75F,KAAK87J,GAAK,WAEjC4gG,KAAA,KACF8mB,GAAKxjR,KAAK2lK,GAAK3lK,KAAKyjR,GAAKzjR,KAAKmnK,GAAKnnK,KAAK9J,EAAI8J,KAAK0S,EAAI,WAEnDiqP,KAAA,KACFzhG,GAAKl7J,KAAK66J,GAAK76J,KAAK86J,GAAK,OACzB0B,GAAKxmK,EAAE,QACPwlK,GAAKxlK,EAAE,YAEL4mQ,KAAA,KACFlgG,GAAA,eAz5CHlgK,EAAI,mBAPCA,EAAE4E,EAAGvV,EAAGyU,GAAA,IACV,IAAIpK,EAAIoK,EAAEzU,GAAImK,EAAI,EAAGA,EAAIE,IAC5BkL,EAAExN,KAAK0M,EAAEvQ,OAASlE,EAAI,EAAI,GAAK,KAC3ByU,EAAEvQ,OAASlE,EAAI,IAFYmK,IAG/BwG,EAAE4E,EAAEpL,GAAInK,EAAI,EAAGyU,EAAA,CAGX,CACN9D,EAAG,EAAG,CAAC,EAAG,KACLA,CAAA,CAu5CA,EAAK,UAEHqgQ,KAAA,KACFtmG,GAAKvgK,EAAE,QACP8qK,GAAKzgK,EAAG,CAAC,EAAG,GAAIu8P,IAAA,KAChB37F,GAAK5gK,EAAG,CAAC,EAAG,IAAKu8P,GAAA,UAEfE,KAAA,KACF78F,GAAKjgK,KAAKs6J,GAAKt6J,KAAKg8J,GAAKh8J,KAAKykK,GAAK,OACnCX,GAAK,IAAI9tK,EAAE,QACXosK,GAAK,IAAIpsK,EAAE,YAET+mQ,KAAA,KACF96F,GAAKjiK,KAAK2zJ,GAAK3zJ,KAAKqiI,GAAKriI,KAAKs+J,GAAK,WAEjC0+F,KAAA,KACFnpG,GAAK7zJ,KAAK4xJ,GAAK,WAEbqrG,KAAA,KACF78F,GAAK,CAAC,EAAG,QACTnF,GAAK,CAAC,EAAG,QACTiF,GAAK,CAAC,EAAG,QACTzO,GAAKzxJ,KAAK++F,GAAK,WAEbm+J,KAAA,KACF57F,GAAKtrK,EAAE,UACP2/J,GAAK,OACLgG,GAAK3lK,EAAE,SACP2mK,GAAK38J,KAAK+jK,GAAK/jK,KAAKyxJ,GAAKzxJ,KAAKu/J,GAAKv/J,KAAKw/J,GAAKx/J,KAAKklK,GAAK,WAErDk4F,KAAA,KACF7+F,GAAKv+J,KAAKuiI,EAAIviI,KAAK07J,GAAK,OACxB7I,GAAKpgK,MAAM,IAAIsqQ,IAAA,KACfn3E,EAAI,OACJ9yB,GAAKrgK,MAAM,IAAIyqQ,IAAA,KACf9rG,GAAK,OACLzuJ,EAAI,IAAIo7P,EAAA,UAENV,KAAA,KACFziQ,EAAI5E,EAAE,SACN0L,EAAI1L,EAAE,QACNs7J,GAAKt7J,EAAE,YAELsnQ,KAAA,KACFnkM,GAAKn5D,KAAKhK,EAAI,OACdg3F,GAAK,QACLzvD,EAAI,IAAIp6B,EAAA,KACRujK,GAAK,IAAI+1F,GAAA,KACT98F,GAAK,IAAI+8F,GAAA,KACTj7F,GAAK,IAAIq7F,GAAA,KACTzoG,GAAK,IAAIsoG,GAAA,KACTl9F,GAAKz/J,KAAKqhK,GAAKrhK,KAAKgzJ,GAAK,OACzBtpB,EAAI,IAAI0zH,GAAA,KACR7gG,GAAKv8J,KAAK40J,GAAK50J,KAAKo7J,GAAKp7J,KAAK26J,GAAK36J,KAAK06J,GAAK16J,KAAK2tK,GAAK3tK,KAAK+yJ,GAAK,OACjE2M,GAAKtrG,EAAG,EAAGjxD,GAAA,KACXsuJ,GAAK,OAELwF,GAAK7iG,EAAG,EAAG6oM,IAAA,KACX9oG,GAAK,IAAI0oG,GAAA,KACT53F,GAAKjlK,KAAK+9J,GAAK,OACfkB,GAAK,QACLqpB,GAAK,OACLtpB,GAAK,CAAC,EAAG,EAAG,EAAG,QACf0kH,GAAKjxR,MAAM,IAAI4qQ,IAAA,KACfh4F,GAAK,OACL9L,GAAK9mK,MAAM,IAAIuqQ,IAAA,KACfxjG,GAAK,OACL3G,GAAKpgK,MAAM,IAAIsqQ,IAAA,KACfn3E,EAAI,OACJ5nB,GAAK,QACLE,GAAK,OACL5oG,GAAK,QACL+8F,GAAK,OACLE,GAAK,QACLH,GAAK,OACLmB,GAAK,QACL7vF,EAAI1jE,KAAK27K,EAAI37K,KAAKwzJ,GAAK,OACvB6L,GAAK,QACL98B,EAAIviI,KAAK0xJ,GAAK1xJ,KAAKi8J,GAAKj8J,KAAKs/J,GAAK,OAClCxM,GAAKrgK,MAAM,IAAIyqQ,IAAA,KACfrnO,EAAI71B,KAAKoxJ,GAAK,OACdwQ,GAAKvhK,EAAG,CAAC,EAAG,GAAI08P,IAAA,KAChB4mB,GAAK,UACLtwH,GAAK,QACL8L,GAAKn/J,KAAKm+J,GAAKn+J,KAAKW,EAAI,OACxBw6J,GAAK,QACL0G,GAAK,OACLnL,GAAK,QACLC,GAAK,OACL0H,GAAK,QACL/K,GAAKtzJ,KAAK6gK,GAAK,WAEb63F,GAAGl8P,EAAG4E,GAAA,OACN,EAAI5E,EAAI,EAAIA,EAAI4E,EAAIA,EAAI5E,CAAA,UAExBuhQ,KAAA,KACFhoO,EAAI/1B,KAAKsR,EAAItR,KAAK2xJ,GAAK3xJ,KAAKkD,OAASlD,KAAKiD,MAAQ,OAClDrI,EAAI,QACJ8G,EAAI,QACJ4vJ,GAAK,QACL6O,GAAKngK,KAAKuxJ,GAAKvxJ,KAAK+qI,EAAI/qI,KAAKq4K,EAAIr4K,KAAKs4K,EAAI,OAC1CzmB,GAAK,YACL2gE,IAAM,oBACN51D,GAAK,sBACL7sH,GAAK,yBACLyhH,GAAKxxJ,KAAKu7J,GAAK,OACfvsK,KAAO,QACPqnK,GAAKr2J,KAAKs2J,GAAKt2J,KAAK62G,GAAK72G,KAAKo0D,EAAIp0D,KAAK3J,EAAI2J,KAAK4yJ,GAAK5yJ,KAAKoC,EAAIpC,KAAKmzJ,GAAKnzJ,KAAK84D,GAAK94D,KAAKmD,EAAI,OAC3FkO,EAAI,QACJ88J,EAAI,WAEF8vF,KAAA,IACHzhQ,EAAI,IAAI8gQ,GAAA,aACJ9gQ,IACJA,EAAExG,EAAI,EAAKwG,EAAEwwF,GAAK,KAAQxwF,EAAE28D,GAAK,EAAK38D,EAAE+/J,GAAK,EAAIye,KAAOA,GAAK6jF,KAC1DriQ,CAAA,UAEA2hQ,GAAE3hQ,EAAG4E,EAAGvV,GAAA,UACV2Q,EAAExG,IAAOwG,EAAExG,EAAIoL,EAAK5E,EAAEwwF,GAAKnhG,EAAK2Q,EAAE28D,GAAK,GACrC,WAEAulM,GAAGliQ,EAAG4E,EAAGvV,GAAA,OACT,GAAKA,GAAK,KAAO2Q,EAAE4E,EAAI,IAAM,GAAK5E,EAAE4E,EAAI,IAAM,IAAM5E,EAAE4E,EAAI,YAE1Dw9P,GAAGpiQ,EAAG3Q,GAAA,GACT,MAAQ2Q,EAAG,OAAO,KACtBA,EAAExG,EAAI,EACNwG,EAAEwwF,GAAK,KACH,MAAQnhG,EAAG,OAAOsyQ,GAAE3hQ,EAAG,EAAG,4CAC1B8D,EAAIzU,EAAEmD,KACNgH,EAAInK,EAAEsX,EACNixD,EAAIvoE,EAAE2lK,GAAA,GACN,EAAIp9F,EAAG,OAAO+pM,GAAE3hQ,EAAG,EAAG,yBACtB6D,EAAIC,EAAEtK,EAAI,GAAMsK,EAAEtK,EAAI,IAAM,EAAMsK,EAAEtK,EAAI,IAAM,GAC9C0c,EAAIlW,EAAEkqK,GAAA,GACVh0J,EAAEopJ,KAAW,EAAJz7J,GACTqS,EAAEmnF,GAAMx5F,GAAK,EAAK,EAClBqS,EAAE2wJ,GAAMhjK,GAAK,EAAK,EAClBqS,EAAE0nJ,GAAK/5J,GAAK,EACR,EAAIqS,EAAEmnF,GAAI,OAAOskK,GAAE3hQ,EAAG,EAAG,sCACxBkW,EAAE2wJ,GAAI,OAAO86F,GAAE3hQ,EAAG,EAAG,0BAC1BxG,GAAK,EACLo+D,GAAK,MACDnjD,EAAIzU,EAAEmjK,GAAA,GACNjtJ,EAAEopJ,GAAI,IACJ,EAAI1nG,EAAG,OAAO+pM,GAAE3hQ,EAAG,EAAG,mCACrBkiQ,GAAGp+P,EAAGtK,EAAGo+D,GAAI,OAAO+pM,GAAE3hQ,EAAG,EAAG,iBACjCyU,EAAEyB,EAAmC,OAA7BpS,EAAEtK,EAAI,IAAM,EAAKsK,EAAEtK,EAAI,IAC/Bib,EAAEk2J,GAAK7mK,EAAEtK,EAAI,IAAM,EACnBib,EAAE/a,EAAmC,OAA7BoK,EAAEtK,EAAI,IAAM,EAAKsK,EAAEtK,EAAI,IAC/Bib,EAAEwyQ,GAAKnjR,EAAEtK,EAAI,IAAM,EACnBA,GAAK,EACLo+D,GAAK,EACL53D,EAAEu2J,GAAM9hJ,EAAEyB,EAAI,IAAO,EACrBlW,EAAEmxK,GAAM18J,EAAE/a,EAAI,IAAO,EACrBrK,EAAEoX,MAAQgO,EAAEyB,EACZ7mB,EAAEqX,OAAS+N,EAAE/a,EACbrK,EAAEsnK,GAAK,EACPtnK,EAAEwK,EAAI,EACNxK,EAAEuW,EAAI,EACNvW,EAAE+mK,GAAK/mK,EAAEoX,MACTpX,EAAEuoE,EAAIvoE,EAAEqX,OACRrX,EAAEgrH,GAAK,EACPhrH,EAAEyqK,GAAKzqK,EAAEoX,MACTpX,EAAEwqK,GAAKxqK,EAAEqX,OACTrX,EAAEylB,EAAIzlB,EAAEoX,MACRpX,EAAEkqC,EAAIlqC,EAAEqX,OAERhN,GADAmK,EAAI7D,EAAE23J,IACFoC,GAAI,EAAG,IAAKl2J,EAAEk2J,GAAGxmK,QAErBqR,EAAE,OADFf,EAAI7D,EAAE63J,KAENh0J,EAAEy6J,GAAK,EACPz6J,EAAEw6J,GAAK,EACPx6J,EAAE66J,GAAK,EACPhlK,EAAEmK,EAAEm8J,GAAI,EAAG,EAAGn8J,EAAEm8J,GAAGzsK,QACnBmG,EAAEmK,EAAEm7J,GAAI,EAAG,EAAGn7J,EAAEm7J,GAAA,IAEd9oJ,EAAE0nJ,GAAKhmG,EAAG,OAAO+pM,GAAE3hQ,EAAG,EAAG,wBAE7BkD,EADAW,EAAI7D,EAAE+gC,EACAj9B,EAAGtK,EAAG0c,EAAE0nJ,IACdpkK,GAAK0c,EAAE0nJ,GACPhmG,GAAK1hD,EAAE0nJ,GACP1nJ,EAAEopJ,KAAQ7qJ,EAAE00J,GAAKhlK,EAAEN,GAAM4Q,EAAEuyQ,GAAK7iR,EAAEN,IAClC4Q,EAAIzU,EAAE63J,GAAA,IAEJjxJ,EADET,EAAInG,EAAE23J,GAAA,GAEV/yJ,EAAE,MAAQf,GACVe,EAAE,MAAQ6P,GACVA,EAAE6pJ,GAAKn6J,EAAEN,GACL4Q,EAAE6pJ,GAAI,IACR7pJ,EAAE4pJ,GAAKl6J,EAAEN,GACLM,EAAEN,GAAI,KACR4Q,EAAEiqJ,GAAKv6J,EAAEN,GACJ+C,EAAI,EAAG,EAAIA,IAAKA,EAAG6N,EAAEurJ,GAAGp5J,GAAKzC,EAAEN,GAAKk9B,EAAGl9B,EAAG,GAAK,MAC/C+C,EAAI,EAAG,EAAIA,IAAKA,EAAG6N,EAAEuqJ,GAAGp4J,GAAKzC,EAAEN,GAAKk9B,EAAGl9B,EAAG,GAAK,KAElD4Q,EAAE4pJ,GAAI,IAAKz3J,EAAI,EAAG,EAAIA,IAAKA,EAAGT,EAAE4zJ,GAAGnzJ,GAAKzC,EAAEN,GAAKsB,EAAGtB,EAAG,GAAK,SACzD4Q,EAAE4pJ,GAAK,KACVx6J,EAAEqzJ,GAAI,OAAOyqG,GAAE3hQ,EAAG,EAAG,mCACzByU,EAAIzU,EAAEilK,IACJgD,GAAK9jK,EAAEN,GACT4Q,EAAE+qJ,GAAKr6J,EAAGtB,EAAG,GACb4Q,EAAEqpJ,GAAK34J,EAAGtB,EAAG,GACb4Q,EAAEgvJ,GAAKt/J,EAAEN,GACL4Q,EAAEgvJ,IAAMt/J,EAAEN,GAAI,KACXsC,EAAI,EAAG,EAAIA,IAAKA,EAAGhC,EAAEN,KAAO4Q,EAAE6yJ,GAAGnhK,GAAK46B,EAAGl9B,EAAG,QAC5CsC,EAAI,EAAG,EAAIA,IAAKA,EAAGhC,EAAEN,KAAO4Q,EAAEmxJ,GAAGz/J,GAAK46B,EAAGl9B,EAAG,OAEnD7D,EAAEq5B,EAAI,GAAK5kB,EAAE+qJ,GAAK,EAAI/qJ,EAAEwzJ,GAAK,EAAI,EAC7BpkK,EAAEqzJ,GAAI,OAAOyqG,GAAE3hQ,EAAG,EAAG,kCAErBkF,EAAI0yD,EAAA,GACRA,EAFAhxD,EAAIpN,EAGJA,EAAIoN,EAAI1B,EACRuP,EAAIvP,EACJlF,EAAE+/J,IAAM,GAAK56J,EAAGnF,EAAE+gC,EAAG,IAAM,EAEvB77B,EAAI,GADRiB,EAAInG,EAAE+/J,IACSj8J,EAAI,MACd,KACH8C,GAAK,EAAIT,EACTsO,GAAK,EAAItO,EACJjB,EAAI,EAAGA,EAAIiB,IAAKjB,EAAG,KAClBnC,EAAIe,EAAE8zD,EAAI,GAAM9zD,EAAE8zD,EAAI,IAAM,EAAM9zD,EAAE8zD,EAAI,IAAM,GAClD70D,EAAI0R,IAAM1R,EAAI0R,GACdvR,EAAGlD,EAAEkjK,IAAIh+J,GAAIpB,EAAG8C,EAAG7D,GACnB6D,GAAK7D,EACL0R,GAAK1R,EACL60D,GAAK,EAEP10D,EAAGlD,EAAEkjK,IAAI/8J,GAAIrC,EAAG8C,EAAG6N,GACnB3Q,EAAI8C,EAAIpN,EAAI,EAAI,KAEd,GAAKsK,EAAG,OAAO69P,GAAE3hQ,EAAG8D,EAAG,+BAE3BA,EAAIqB,EADJyB,EAAI5G,EAAE+gC,EACI,GACV62B,EAAIzzD,EAAEyC,GAAKm6B,EAAGn6B,EAAG,GAAK,EACtBpN,EAAI2K,EAAEyC,GAAKm6B,EAAGn6B,EAAG,GAAK,EACtB6N,EAAItQ,EAAEyC,GAAKm6B,EAAGn6B,EAAG,GAAK,EACtBT,EAAIhC,EAAEyC,GAAKm6B,EAAGn6B,EAAG,GAAK,EACtBA,EAAIzC,EAAEyC,GAAKm6B,EAAGn6B,EAAG,GAAK,EACtB1B,EAAIlF,EAAE63J,GACD90J,EAAI,EAAG,EAAIA,IAAKA,EAAG,IAClBmC,EAAEo5J,GAAI,KACJ14J,EAAIV,EAAE86J,GAAGj9J,GACbmC,EAAEw5J,KAAO94J,GAAK9B,EAAA,KACT,IAAI,EAAIf,EAAG,CAChB/C,EAAEy6J,GAAG13J,GAAK/C,EAAEy6J,GAAG,YAEV70J,EAAI9B,CAAA,KACPrK,EAAIuG,EAAEy6J,GAAG13J,GACbtJ,EAAEmqK,GAAG,GAAKoa,GAAGk+E,GAAGt2P,EAAIgyD,EAAG,MACvBn+D,EAAEmqK,GAAG,GAAK+a,GAAGu9E,GAAGt2P,EAAI,EAAG,MACvBnM,EAAEglK,GAAG,GAAK,EAAIuf,GAAGk+E,GAAGt2P,EAAIpM,EAAG,MAC3BC,EAAEglK,GAAG,GAAM,OAASkgB,GAAGu9E,GAAGt2P,EAAI6O,EAAG,OAAU,KACvChb,EAAEglK,GAAG,KAAOhlK,EAAEglK,GAAG,GAAK,GAC1BhlK,EAAEiqK,GAAG,GAAKsa,GAAGk+E,GAAGt2P,EAAIO,EAAG,MACvB1M,EAAEiqK,GAAG,GAAKib,GAAGu9E,GAAGt2P,EAAIgB,EAAG,MACvBnN,EAAE8oG,GAAK38F,EAAIgB,CAAA,KAERsP,EAAEopJ,GAAI,OAAOqiG,GAAE3hQ,EAAG,EAAG,wBAC1BmE,EAAEN,GACFqS,EAAIlW,EAAE23J,GACD7zJ,EAAI,EAAG,EAAIA,IAAKA,EAAG,KACjB8zD,EAAI,EAAG,EAAIA,IAAKA,EAAA,IACdp+D,EAAI,EAAG,EAAIA,IAAKA,EAAA,IACdib,EAAI,EAAG,GAAKA,IAAKA,EACnBtO,EAAIswD,EAAE5yD,EAAGg7K,GAAG/6K,GAAG8zD,GAAGp+D,GAAGib,IAAMtP,EAAGtB,EAAG,GAAK+6K,GAAG96K,GAAG8zD,GAAGp+D,GAAGib,GAChDyB,EAAEouJ,GAAGxgK,GAAG8zD,GAAGsoG,GAAG1mK,GAAGib,GAAKtO,EAAA,IAC1ByxD,EAAI,EAAG,GAAKA,IAAKA,EAAG1hD,EAAEuuJ,GAAG3gK,GAAG8zD,GAAK1hD,EAAEouJ,GAAGxgK,GAAGu9H,GAAGzpE,GAAA,QAEnD53D,EAAEuhK,GAAKp9J,EAAEN,GACT7D,EAAEuhK,KAAOvhK,EAAEyoK,GAAKtjK,EAAGtB,EAAG,IACd7D,EAAE28D,GAAK,WAER0lM,GAAGriQ,EAAG4E,EAAGvV,EAAGyU,EAAGpK,EAAGF,EAAGo+D,GAAA,IACxB/zD,EAAIe,EAAElL,GAAGwmK,GAAG7wK,GAAA,IACXA,EAAI,EAAG,GAAKqK,IAAKA,EAAG,KAClB+8D,EAAEz2D,EAAG6D,EAAExU,EAAI,IAAK,OAAOqK,EAAA,MACpB+8D,EAAEz2D,EAAG6D,EAAExU,EAAI,QACXwU,EAAIe,IAAIlL,GAAGwmK,GAAG,GAAM7wK,EAAI,EAAI,IAAMqK,EAAI,OAAO,OACjDwc,EAAItR,EAAElL,EAAI,GAAGwmK,GAAA,GACbzpG,EAAEz2D,EAAG6D,EAAExU,EAAI,IAAK,KACdolB,EAAIzU,EAGJ4G,EAAI,KACJ6vD,EAAEhiD,GAHJvP,EAAIrB,IACJsC,EAAI9W,GAES,OACTonE,EAAEhiD,EAAGvP,EAAEiB,EAAI,IAAK,KAClBtC,EAAI,EAGJsC,EAAI,GAFJS,EAAI6vD,EAAEhiD,EAAGvP,EAAEiB,EAAI,MACfjB,EAAIuxD,EAAEhiD,EAAGvP,EAAEiB,EAAI,EAAIS,KAEnBA,EAAI,EACC1B,EAAIqwI,GAAGpvI,GAAIjB,EAAErB,KAAMA,EAAG+C,GAAKA,EAAI6vD,EAAEhiD,EAAGvP,EAAErB,IAC3C+C,GAAK,GAAK,GAAKT,EAAA,MAEfswD,EAAEhiD,EAAGvP,EAAEiB,EAAI,KACLS,EAAI,EAAI,EAAI6vD,EAAEhiD,EAAG,KAAQ7N,GAAK6vD,EAAEhiD,EAAG,MACpC7N,EAAI,EAAI6vD,EAAEhiD,EAAG,UACC7N,EAAlB6vD,EAAEhiD,EAAGvP,EAAEiB,EAAI,IAAW,EAAIswD,EAAEhiD,EAAGvP,EAAEiB,EAAI,IAAY,EACtDtC,EAAIqS,EAAE,QACAtP,EAAI,EAAK/C,EAAIqS,EAAE,GACvBA,EAAI0hD,EAAI6lH,GAAG/jL,GAAA,GACX+a,EAAIzU,GACEvG,GAAK2L,EAAGqP,GAAA,IAEZtO,EADEjB,EAAIuP,EAAEhb,EAERsJ,GADAoD,EAAIsO,EAAEiiJ,IAAM,IACFjiJ,EAAE+hK,GAAKtxK,IAAO,KACxBuP,EAAEhb,EACJgb,EAAEiiJ,IAAM3zJ,EACR0R,EAAEiiJ,IAAM,EACRjiJ,EAAE+hK,IAAOrwK,EAAI,EAAKpD,IAAMmC,EACxB1L,EAAE0c,KAAOtP,EAAI7D,GAAKA,GAAKe,GAAG,EAAIpK,GAAK,UAE9B,YAEA6oQ,GAAGviQ,GAAA,IACN4E,EAAI5E,EAAE+8J,GAAG/8J,EAAEg9J,GAAK,GACpBp4J,EAAEwwJ,GAAK,EACPxwJ,EAAEyyJ,GAAK,EACP39J,EAAEsG,EAAEwiK,GAAI,EAAG,EAAGxiK,EAAEwiK,GAAGjvK,QACnByM,EAAEk1J,GAAK,WAoQAwtG,GAAG1iQ,EAAG3Q,GAAA,GACT,MAAQ2Q,EAAG,OAAO,KAClB,MAAQ3Q,EAAG,OAAOsyQ,GAAE3hQ,EAAG,EAAG,4CACzBA,EAAE28D,KAAOylM,GAAGpiQ,EAAG3Q,GAAI,OAAO,KAC/BuV,EAAE5E,EAAE28D,IACA,MAAQttE,EAAE+wK,IAAM/wK,EAAE+wK,GAAG/wK,GAAI,CAC3BA,EAAEitE,KAAOt8D,EAAEq5B,EAAI,OACXx1B,EAAI4+K,GAAGziL,EAAEq5B,GAAA,MACRr5B,EAAEq5B,GACDr5B,EAAEk+J,GAAK,EAAKl+J,EAAEm+J,GAAK,IACnBn+J,EAAEk+J,GAAM7uK,EAAEuW,EAAI/B,GAAM,EACrB7D,EAAEm+J,GAAM9uK,EAAEwK,EAAIgK,GAAM,EACrB,EAAI7D,EAAEk+J,KAAOl+J,EAAEk+J,GAAK,GACpB,EAAIl+J,EAAEm+J,KAAOn+J,EAAEm+J,GAAK,IACxBn+J,EAAEo4J,GAAM/oK,EAAEuoE,EAAI,GAAK/zD,GAAM,EACzB7D,EAAE4+J,GAAMvvK,EAAE+mK,GAAK,GAAKvyJ,GAAM,EAC1B7D,EAAE4+J,GAAK5+J,EAAEu2J,KAAOv2J,EAAE4+J,GAAK5+J,EAAEu2J,IACzBv2J,EAAEo4J,GAAKp4J,EAAEmxK,KAAOnxK,EAAEo4J,GAAKp4J,EAAEmxK,IACrB,EAAInxK,EAAEq5B,EAAG,KACPnjB,EAAIlW,EAAEilK,GAAA,IACLphK,EAAI,EAAG,EAAIA,IAAKA,EAAG,KAClB4Q,EAAA,GACAzU,EAAE63J,GAAGyG,GAAI,KACP13J,EAAI5G,EAAE63J,GAAGmH,GAAGn7J,GAChB7D,EAAE63J,GAAG6G,KAAO93J,GAAKsP,EAAEspJ,GAAA,MACd54J,EAAIsP,EAAEspJ,GAAA,IACR/qJ,EAAI,EAAG,GAAKA,IAAKA,EAAG,KACnBtO,EAAInG,EAAEolK,GAAGvhK,GAAG4Q,GACdvP,EAAI0B,EAAA,GACNsP,EAAEutJ,KAAQv+J,GAAKgR,EAAEoxJ,GAAG,GAAK7yJ,IAAMvP,GAAKgR,EAAE0vJ,GAAG,KAErC,GADJ1gK,EAAI,EAAIA,EAAI,EAAI,GAAKA,EAAI,GAAKA,GACnB,KACLnC,EAAImC,EAAA,EACJgR,EAAE4nJ,KACF/6J,EAAI,EAAImT,EAAE4nJ,GAAK/6J,GAAK,EAAIA,GAAK,GAC3B,EAAImT,EAAE4nJ,KAAO/6J,EAAI,EAAImT,EAAE4nJ,IAAA,EACzB/6J,IAAMA,EAAI,GACdoD,EAAE0/H,GAAK9iI,EACPoD,EAAE27J,GAAK,EAAI58J,EAAInC,EACfoD,EAAEs/J,GAAK,IAAMvgK,EAAI,EAAI,IAAMA,EAAI,EAAI,OAC9BiB,EAAE27J,GAAK,EACd37J,EAAEgxJ,GAAK1iJ,CAAA,GAIb5Q,EAAI,OACC89P,GAAE3hQ,EAAG,EAAG,sBAAwB6D,EAAI7D,EAAExG,EAAA,GACxCqK,EAAI,GAAKA,EAAI,IACZA,EAAG,CACL7D,EAAE6kK,GAAK,IACH7kK,EAAEw2J,KAAOx2J,EAAEijK,GAAK6f,IACpB9iL,EAAG,CACD6D,EAAI7D,EAAEijK,GAEJ/sJ,EAAI,GADFnT,EAAI/C,EAAEu2J,IAAA,IAERrzJ,EAAI,GAAKH,EACToC,EAAIpC,EAAI,EACRg+B,EAAI,EAAI/gC,EAAEq5B,EAAIt2B,GAAK,EAAI/C,EAAEw2J,GAAK,EAAI,GAAK,EACvC5wJ,GAAK,GAAK5F,EAAEw2J,GAAK,EAAI,GAAKzzJ,EAAA,IAG5BoD,EAAI+P,EAAI,KAFRzB,EAAM,GAAK,GAAK5Q,EAAI4+K,GAAGziL,EAAEq5B,IAAO,EAAKn2B,IACrC0D,EAAI,MAAQ5G,EAAE62J,IAAM,EAAI72J,EAAE62J,GAAGtjK,OAASyM,EAAEmjK,GAAGjtJ,EAAIlW,EAAEmjK,GAAGzpK,EAAI,KAE/CyM,EAAGtC,EAAI,MACX,IACCsC,EAAInG,EAAEy/J,GAAI,IACZz/J,EAAEy/J,GAAK,EACPz/J,EAAE6iK,GAAKrpK,EAAE2M,GACTnG,EAAE8iK,GAAK,EACH,MAAQ9iK,EAAE6iK,GAAI,CAChBh/J,EAAI89P,GAAE3hQ,EAAG,EAAG,gDACNA,CAAA,CAERA,EAAEy/J,GAAKt5J,CAAA,CAETA,EAAInG,EAAE6iK,GACN39J,EAAIlF,EAAE8iK,GACN9iK,EAAEyiK,GAAKt8J,EACPnG,EAAE8rL,GAAK5mL,EACPA,GAAKgR,EACLlW,EAAEknR,GAAKtvN,EAAG10D,EAAG29P,IACb7gQ,EAAE6oK,GAAK,EACP7oK,EAAE+8J,GAAKnlG,EAAGzyD,EAAI,EAAGq7P,IACjBxgQ,EAAEg9J,GAAK,EACPh9J,EAAEq2J,GAAKt1H,EAAI62B,EAAG72B,EAAGw/N,IAAM,KACvBvgQ,EAAEopL,EAAI,EACNppL,EAAEktI,EAAEgyB,GAAK,EACTl/J,EAAEktI,EAAEmpB,GAAKr2J,EAAEq2J,GACXr2J,EAAEktI,EAAEk8C,EAAIppL,EAAEopL,EAAA,EACNppL,EAAEw2J,KAAOx2J,EAAEktI,EAAEk8C,GAAKrmL,GACtB6B,GAAA,GACA5E,EAAEwhK,GAAKr7J,EACPnG,EAAE0hK,GAAKx8J,EACPA,GAAK,IACLlF,EAAEs2J,GAAK1+F,EAAGhyD,EAAG86P,IACb1gQ,EAAE40J,GAAK,EACP50J,EAAEktI,EAAEopB,GAAKt2J,EAAEs2J,GACXt2J,EAAEktI,EAAE0nB,GAAK50J,EAAE40J,GAAA,GACN50J,EAAEw2J,KAAOx2J,EAAEktI,EAAE0nB,IAAM7xJ,GACxB/C,EAAEm/K,EAAI,GAAKp8K,EACX/C,EAAEknE,EAAI,EAAInkE,EAEVA,GADAG,EAAIu/K,GAAGziL,EAAEq5B,IACDr5B,EAAEm/K,EACVj8K,EAAKA,EAAI,EAAKlD,EAAEknE,EAChBlnE,EAAE84D,GAAK3yD,EACPnG,EAAE61J,GAAK3wJ,EAAInC,EACX/C,EAAE+1J,GAAK/1J,EAAE84D,GACT94D,EAAE41J,GAAK51J,EAAE61J,GAAK,GAAKhyJ,EAAI7D,EAAEm/K,EAAIj8K,EAC7BlD,EAAE+2J,GAAK/2J,EAAE+1J,GACT/1J,EAAEg3J,GAAKh3J,EAAE41J,GAAK,EAAI/xJ,EAAI7D,EAAEknE,EAAIhkE,EAC5BlD,EAAE6kK,GAAK,EACP3/J,GAAKuP,EACLzU,EAAEk6J,GAAKtzJ,EAAIT,EAAI,KACfnG,EAAEm6J,GAAKvzJ,EAAI1B,EAAI,KACfN,EAAEM,EAAI0B,GAAK5G,EAAE8iK,GAAK9iK,EAAEy/J,IACpB8iG,GAAGviQ,GACHtG,EAAEsG,EAAEyiK,GAAIziK,EAAE8rL,GAAI,EAAG51K,GACjBrS,EAAI,MAGJA,EAAG,IACLxU,EAAE8lK,GAAK,EACP9lK,EAAE+O,EAAI4B,EAAE84D,GACRzpE,EAAEysL,EAAI97K,EAAE61J,GACRxmK,EAAE6V,EAAIlF,EAAE+1J,GACR1mK,EAAEwsL,EAAI77K,EAAE41J,GACRvmK,EAAEylK,GAAK90J,EAAE+2J,GACT1nK,EAAE87K,GAAKnrK,EAAEg3J,GACT3nK,EAAE0lK,GAAK/0J,EAAEm/K,EACT9vL,EAAEs0K,GAAK3jK,EAAEknE,EACT73E,EAAEwlB,EAAI,KACNxlB,EAAEsiL,EAAI,GACDy1G,GAAI,KACFvjR,GAAK,IAAK,KAAOA,IAAKA,EAAGwjR,GAAG,IAAMxjR,GAAK,EAAIA,GAAKA,EAAIA,EAAA,IACpDA,GAAK,KAAM,MAAQA,IAAKA,EAC3ByjR,GAAG,KAAOzjR,IAAM,IAAMA,GAAK,IAAM,IAAMA,EAAI,IAAMA,EAAA,IAC9CA,GAAK,IAAK,KAAOA,IAAKA,EACzB0jR,GAAG,IAAM1jR,IAAM,GAAKA,GAAK,GAAK,GAAKA,EAAI,GAAKA,EAAA,IACzCA,GAAK,IAAK,KAAOA,IAAKA,EACzB2jR,GAAG,IAAM3jR,GAAK,EAAIA,EAAI,EAAI,IAAMA,EAAI,IAAMA,EAC5CujR,GAAK,EAEP99K,GAAK8jE,GACLwxB,GAAK5yB,GACLy7G,GAAK16G,GACL26G,GAAKx6G,GACLy6G,GAAKx7G,GACLy7G,GAAKn7G,GACLhvE,GAAK2wE,GACLt4G,GAAKw6G,GACLu3G,GAAKp3G,GACLq3G,GAAKn4G,GACLo4G,GAAK15G,GACLl+C,GAAKqgD,GACLw3G,GAAK7+L,GACL8+L,GAAKte,GACLue,GAAK16G,GACL26G,GAAKj6G,GACLk6G,GAAKn4G,GACLo4G,GAAKr4G,GACLiO,GAAE,GAAKhzE,GACPgzE,GAAE,GAAKvR,GACPuR,GAAE,GAAK3P,GACP2P,GAAE,GAAKvQ,GACPuQ,GAAE,GAAKpO,GACPoO,GAAE,GAAKvO,GACPuO,GAAE,GAAKz9H,GACPy9H,GAAE,GAAK1L,GACP0L,GAAE,GAAKhQ,GACPgQ,GAAE,GAAK9P,GACPmQ,GAAE,GAAKjR,GACPiR,GAAE,GAAKlS,GACPkS,GAAE,GAAK9lE,GACP8lE,GAAE,GAAK/R,GACP+R,GAAE,GAAKrS,GACPqS,GAAE,GAAK/Q,GACP+Q,GAAE,GAAKhR,GACPuQ,GAAG,GAAKjQ,GACRiQ,GAAG,GAAKvR,GACRuR,GAAG,GAAKhQ,GACRgQ,GAAG,GAAKxL,GACRwL,GAAG,GAAK7P,GACR6P,GAAG,GAAKrP,GACRqP,GAAG,GAAK7Q,GACRnpK,EAAI,OACCA,EAAI,EAEbA,IAAMA,EAAA,SA5bE7D,EAAG3Q,GAAA,IACR2Q,EAAE+lI,EAAI,EAAG/lI,EAAE+lI,EAAI/lI,EAAEo4J,KAAMp4J,EAAE+lI,EAAG,KAI7BnuE,EAHE/zD,EAAI7D,EAAEkjK,GAAGljK,EAAE+lI,EAAI/lI,EAAE+/J,IACnB7pJ,EAAIlW,EAAE+gC,EACNtsB,EAAIzU,EAAA,IAED43D,EAAI,EAAGA,EAAInjD,EAAE8hJ,KAAM3+F,EAAG,KACrBhxD,EAAIsP,EACJ/P,EAAIsO,EACJvP,EAAIiB,EAAEs8J,GACR1/J,EAAIoD,EAAE2lL,GAAK,EAAIl0H,EACf10D,EAAIiD,EAAEq8J,GACNr9J,EAAIgB,EAAEmwJ,GAAGnwJ,EAAEyuJ,GAAKh9F,GAAA,GAClBzxD,EAAE0xJ,GAAGwG,GACAl5J,EAAEg7J,GAAK1pG,EAAE7vD,EAAGT,EAAEwxJ,GAAGoC,GAAG,IACjB,EAAItjG,EAAE7vD,EAAGT,EAAEwxJ,GAAGoC,GAAG,IACjBtjG,EAAE7vD,EAAGT,EAAEwxJ,GAAGoC,GAAG,IAChB50J,EAAEg7J,GAAK,EACZh6J,EAAEo7J,KAAOp8J,EAAEoiK,GAAK9wG,EAAE7vD,EAAGT,EAAEsiK,KACvBtjK,EAAEg0J,IAAM1iG,EAAE7vD,EAAG,KAAO,EAChBzB,EAAEg0J,GAAI,KACJp4H,EAAI57B,EAAEg6J,GACRv5J,EAAI,MACDO,EAAI,EAAG,EAAIA,IAAKA,EAAG,KAElB1M,EADA2E,EAAI8E,EAAE,EAAIiD,GAAA,IAET1M,EAAI,EAAG,EAAIA,IAAKA,EAAG,CACtB2E,EAAIw/K,GAAG14K,EAAEnC,EAAItJ,IAAI2E,GAAA,IACZ,IAAIuI,EAAI83K,GAAGhoH,EAAE7vD,EAAGxI,EAAE,KAAM,EAAIuI,GAC/BA,EAAI83K,GAAG,EAAI93K,EAAI8vD,EAAE7vD,EAAGxI,EAAEuI,KACxBvI,GAAKuI,EACLzB,EAAEnC,EAAItJ,GAAK2E,CAAA,CAEb0F,EAAEi9B,EAAGn7B,EAAGV,EAAGnC,EAAG,GACd6C,GAAK,EACL1C,EAAE,EAAIiD,GAAK/H,CAAA,OAGZA,EAAIq4D,EAAE7vD,EAAG,KAAQ6vD,EAAE7vD,EAAG,KAAO,EAAI,EAAK6vD,EAAE7vD,EAAG,KAAO,EAAI,EACpDzB,EAAEg6J,GAAG,GAAK/gK,EACX1E,EAAEwL,EAAGnC,EAAG3E,EAAG,GACX1E,EAAEwJ,EAAG,EAAG9E,EAAG,GACf+G,EAAEujK,GAAKjyG,EAAE7vD,EAAG,KAAQ6vD,EAAE7vD,EAAG,KAAQ6vD,EAAE7vD,EAAG,KAAO,EAAI,EAAK,EAAK,KAEzD6N,EAAEssB,EAAEm2H,GAAI,OAAOyqG,GAAE3hQ,EAAG,EAAG,iDACpBA,EAAEk1J,GAAKl1J,EAAEu2J,KAAMv2J,EAAEk1J,GAAI,IAE1BzgJ,EAAI5Q,EACJ+C,GAFAsP,EAAIlW,GAEE+8J,GAAG7mJ,EAAE8mJ,GAAK,GAChB93J,EAAIgR,EAAE6mJ,GAAG7mJ,EAAE8mJ,GAAK9mJ,EAAEg/I,IAClBt9F,EAAI1hD,EAAEogJ,GAAGpgJ,EAAE0+I,GAAK1+I,EAAEg/I,IACbnyJ,EAAImT,EAAEqrJ,GAAK3pG,EAAE2vG,GAAK,EACpB3gK,EAAEwuJ,GAAKlwJ,EAAEkwJ,GAAK,EACbx9F,EAAEuhG,KAAOvyJ,EAAEywJ,GAAKnyJ,EAAEmyJ,GAAK,GACtBz/F,EAAEorG,GAAK,EACPprG,EAAEmrG,GAAK,EACPnrG,EAAEq9F,GAAK,MACP,KACC4mB,EACFxiJ,EAKW,GAJXzyB,EAAI1B,EACJA,EAAIuP,EACJ1R,EAAImT,EAAEyhJ,GAAG8M,GACTvhK,EAAIgT,EAAEogJ,GAAGpgJ,EAAE0+I,GAAK1+I,EAAEg/I,IAClB/vJ,EAAI+Q,EAAEukJ,GAAGv3J,EAAEi9J,IACbh6J,EAAIjD,EAAE4hK,GACN/jI,EAAI,EACJn7B,EAAIsQ,EAAE6mJ,GAAG7mJ,EAAE8mJ,GAAK,GAChB5+J,EAAI3E,EAAI,EACRC,EAAEyM,EAAG46B,EAAG,EAAG,KACP79B,EAAEi2J,GAAA,IACAxkJ,EAAI,EACJxW,EAAI4E,EAAE,OACL,CACL4D,EAAInN,EAAE,QACFiqH,EAAI78G,EAAEywJ,GAAKzxJ,EAAEyxJ,GAAA,GACjB5zC,EAAI+6D,GAAGt5K,EAAGnC,EAAE,GAAI0gH,EAAGt+G,EAAEs5J,GAAI,EAAG93J,EAAG,GAC/BC,EAAEywJ,GAAKzxJ,EAAEyxJ,IAAM,EAAI5zC,GAAK,EACpB,EAAIA,EAAGna,GAAG3iG,EAAG,EAAGR,EAAG46B,OAClB,KACC37B,EAAKuB,EAAE,GAAK,GAAM,MACjBA,EAAI,EAAG,IAAMA,EAAGA,GAAK,GAAIR,EAAE46B,EAAIp6B,GAAKvB,CAAA,CAE3CuP,EAAI,EACJxW,EAAI4E,EAAE,OAEJoB,EAAW,GAAPyC,EAAEwuJ,GACNohB,EAAW,GAAP5wK,EAAEwvJ,GAAA,IACLzuJ,EAAI,EAAG,EAAIA,IAAKA,EAAG,KAClBkO,EAAQ,EAAJ2hK,EAAA,IACHpxK,EAAIi0B,EAAI,EAAG,EAAIj0B,IAAKA,EAIpBjB,EAAKA,GAAK,GADV0Q,GADA4uG,EAAI+6D,GAAGt5K,EAAG/G,EADZslH,EAAI5uG,GAAS,EAAJ1Q,GACSgB,EAAEy+J,GAAIjvJ,EAAGxO,EAAG46B,IACpBpsB,IACa,EACrB0kB,EAAKA,GAAK,GAAM,EAAIoqF,EAAI,EAAI,EAAIA,EAAI,EAAI,GAAKt9G,EAAE46B,EAAI,IACnDA,GAAK,GACV58B,IAAM,EACNqyK,EAAKA,GAAK,EAAM3hK,GAAK,EACrBpb,GAAMA,GAAK,EAAK4/B,KAAO,MAEzBl7B,EAAIgG,EACJwQ,EAAI6hK,GAAK,EACJqF,EAAI,EAAG,EAAIA,EAAGA,GAAK,EAAG,KACzBxiJ,EAAI,EACJl1B,EAAIyC,EAAEwuJ,IAAO,EAAIymB,EACjBrF,EAAI5wK,EAAEwvJ,IAAO,EAAIymB,EACZl1K,EAAI,EAAG,EAAIA,IAAKA,EAAG,KACtBkO,EAAQ,EAAJ2hK,EACCpxK,EAAI,EAAG,EAAIA,IAAKA,EAClBq+G,EAAI5uG,GAAS,EAAJ1Q,GAGPA,EAAKA,GAAK,GADV0Q,EAAI,GADJ4uG,EAAI+6D,GAAGt5K,EAAGnC,EAAE,GAAI0gH,EAAGt+G,EAAEu+J,GAAI,EAAGv9J,EAAG46B,MAEV,EACrB1H,EAAKA,GAAK,GAAM,EAAIoqF,EAAI,EAAI,EAAIA,EAAI,EAAI,GAAKt9G,EAAE46B,EAAI,IACnDA,GAAK,GACV58B,IAAM,EACNqyK,EAAKA,GAAK,EAAM3hK,GAAK,EAEvBzW,GAAKi7B,GAAM,EAAIwiJ,EACf19K,GAAMgG,GAAK,GAAM03K,EACjBlnK,IAAU,IAAJ6hK,IAAYqF,CAAA,CAEpBj1K,EAAEwuJ,GAAKj3J,EACPyH,EAAEwvJ,GAAKzgJ,EACPzR,EAAE8/J,GAAKvpK,EACPyJ,EAAE6/J,GAAK3kK,EACP8E,EAAE+xJ,GAAS,MAAJ72J,EAAY,EAAI+G,EAAE8vJ,GACzBlyJ,IAAMtJ,EAAI2E,EAAA,MAER8X,EAAEmjB,IACFnjB,EAAEmgJ,GAAGngJ,EAAEkzK,EAAIlzK,EAAEg/I,IAAMh/I,EAAEkvJ,GAAGxtG,EAAEuoG,IAAIvoG,EAAEuhG,IACjCjjJ,EAAEmgJ,GAAGngJ,EAAEkzK,EAAIlzK,EAAEg/I,IAAIiC,KAAOp0J,GACvB0R,EAAEyiJ,GAAI,OAAOyqG,GAAE3hQ,EAAG,EAAG,yCAE3BuiQ,GAAGviQ,GAEHkW,EAAI7mB,EACJolB,EAAI,EACJmjD,GAHA/zD,EAAI7D,GAGEktI,EACNtmI,EAAI,EAAI/C,EAAEw1B,GAAKx1B,EAAEkiI,GAAKliI,EAAEs6J,IAAMt6J,EAAEkiI,GAAKliI,EAAEu0J,GACnC,GAAKv0J,EAAE2yJ,GACTx2J,EAAG,IACA43D,EAAEmuE,EAAIliI,EAAEkiI,EAAKnuE,EAAEmqG,GAAKn7J,EAAI4mQ,GAAG3pQ,EAAG+zD,GAAKnjD,EAAI,EAExCmjD,GADAv+B,EAAIx1B,EAAEqpI,GACAgyB,GAENt4J,GADAxI,EAAIqkL,GAAG5+K,EAAEw1B,IACDx1B,EAAEs7K,EACVj6K,EAAK9G,EAAI,EAAKyF,EAAEqjE,EAChBvgE,EAAI,GAAKixD,EAAI/zD,EAAEs7K,EACf/5K,EAAI,EAAIwyD,EAAI/zD,EAAEqjE,EACdnkE,EAAIc,EAAEi1D,GACN51D,EAAIW,EAAEgyJ,GAAKjvJ,EAAID,EACfxB,EAAItB,EAAEkyJ,GACN5vJ,EAAItC,EAAE+xJ,GAAK1wJ,EAAIE,EACf27B,EAAIl9B,EAAEkzJ,GACNnxJ,EAAI/B,EAAEmzJ,GAAK9xJ,EAAIE,EAEfoxK,EAAI,IADJryK,EAAIk1B,EAAE0sG,GAENtsI,EAAI0K,GAAKN,EAAEu0J,GAAK,KACXv0J,EAAE2yJ,IAAMg3G,GAAG3pQ,EAAGw1B,GACfA,EAAE0oI,GACJ,IAAYltJ,GAAP4uG,EAAI5/G,GAASqpI,EAAEnH,EAAGnhI,EAAE6+G,EAAEypB,EAAE60B,IAAK1oI,EAAIoqF,EAAEy6C,GAAI7kI,EAAIoqF,EAAEm7C,KAAMvlI,EAAG,CAEzD1kB,EAAI0kB,EACJl7B,EAAI0W,EAAA,IAEFsyD,GADEttE,GAHAib,EAAI2uG,GAGEypB,GACFgyB,GACR2c,EAAI/mK,EAAEqqK,EAAA,IACFtlL,EAAIA,EAAEw8J,GAAGx8J,EAAEuvL,EAAIz0K,GACjBmnK,EAAIhnK,EAAEgkD,GACNoO,EAAIpyD,EAAE+gJ,GAAK,GAAK1uF,EAAI00G,EAAI,GAAKlnK,EAC7BoxH,EAAIlsI,EAAEgsI,GACNjxH,EAAI/a,EAAEioK,GAAA,GACJ,GAAKltJ,EACP,GAAKhQ,EAAE,GAAKgQ,GAAI,GAAKE,EAAEukB,EACrB,EAAI1kB,GAAKwzQ,GAAGrsG,EAAG50G,EAAG20G,EAAGjnK,EAAI,GACvB/a,EAAEs9J,IAAMkxH,GAAGvsG,EAAG50G,EAAG20G,EAAGjnK,GACpB,EAAIzW,GAAK+pR,GAAGpsG,EAAG50G,EAAG20G,EAAGjnK,EAAI,GACzB/a,EAAEs9J,IAAMixH,GAAGtsG,EAAG50G,EAAG20G,EAAGjnK,OACnB,KACCo/C,EAAIl/C,EAAEoyD,EACRgmE,EAAIp4H,EAAEihJ,GACNopB,EAAIrqK,EAAE8gJ,GAAK,EAAIzuF,EAAInT,EAAI,EAAIr/C,EAC3B4kB,EAAIzkB,EAAEiiJ,GACNjiJ,EAAIA,EAAEkiJ,GAAK,EAAI7vF,EAAInT,EAAI,EAAIr/C,EAC3BwyD,EAAIttE,EAAE4rK,GAAA,EACJ9wJ,IACDmhD,GAAGgmH,EAAG50G,EAAG20G,EAAGjnK,EAAI,EAAGmxH,EAAG5+D,GACvB2gN,GAAG56I,EAAGiyC,EAAG5lJ,EAAGzkB,EAAGk/C,EAAGp/C,EAAI,EAAGmxH,EAAG5+D,IAC9BttE,EAAEs9J,KAAOhnC,GAAG2rD,EAAG50G,EAAG20G,EAAGjnK,EAAGmxH,EAAG5+D,GAAI8gN,GAAG/6I,EAAGiyC,EAAG5lJ,EAAGzkB,EAAGk/C,EAAGp/C,EAAGmxH,EAAG5+D,IAAA,EACnDhpE,IACDs/F,GAAGq+E,EAAG50G,EAAG20G,EAAGjnK,EAAI,EAAGmxH,EAAG5+D,GACvB0gN,GAAG36I,EAAGiyC,EAAG5lJ,EAAGzkB,EAAGk/C,EAAGp/C,EAAI,EAAGmxH,EAAG5+D,IAC9BttE,EAAEs9J,KAAO4wH,GAAGjsG,EAAG50G,EAAG20G,EAAGjnK,EAAGmxH,EAAG5+D,GAAI6gN,GAAG96I,EAAGiyC,EAAG5lJ,EAAGzkB,EAAGk/C,EAAGp/C,EAAGmxH,EAAG5+D,GAAA,KAG/DtjE,EAAEoxJ,IAAM+xF,MAAM,kBACV,MAAQ9wO,EAAE8/M,IAAK,IACjB38L,EAAI,GAAKl1B,EACTA,EAAI,IAAMA,EAAI,GACdqyK,GACMtgK,EAAE9X,EAAIyF,EAAEi1D,GACT5iD,EAAE4lK,EAAIj4K,EAAEgyJ,GAAKlvJ,EACbuP,EAAEhR,EAAIrB,EAAEkyJ,GACR7/I,EAAE2lK,EAAIh4K,EAAE+xJ,GAAKxwJ,EACb8Q,EAAE4+I,GAAKjxJ,EAAEkzJ,GACT7gJ,EAAEq4H,EAAI1qI,EAAEmzJ,GAAK5xJ,IACZi0B,GAAKj7B,EACN8X,EAAE9X,EAAI2E,EACNmT,EAAE4lK,EAAI54K,EACNgT,EAAEhR,EAAIC,EACN+Q,EAAE2lK,EAAI11K,EACN+P,EAAE4+I,GAAK/zH,EACP7qB,EAAEq4H,EAAI3oI,GACXnM,IAAM0K,GAAK/F,GACX+F,EAAI+R,EAAE0hD,IAAMzzD,EAAI+R,EAAE0hD,GAClB1hD,EAAErB,EAAI,KACNqB,EAAEy7J,EAAI,KAEJ,MAAQ9tK,EAAEgzJ,IACV,EAAIhzJ,EAAEgzJ,GAAGtjK,QACT8lC,EAAIl1B,IACF+R,EAAEy7J,EAAIq2F,GAAGnkQ,EAAGqS,EAAGmjB,EAAGl1B,EAAIk1B,GACvBnjB,EAAErB,EAAIhR,EAAEq2J,GACT,MAAQhkJ,EAAErB,GAAK,GAAKqB,EAAErB,EAAEthB,QACxB,CACAkhB,EAAIktP,GAAE99P,EAAG,EAAG,sCACN7D,CAAA,CAERq5B,EAAInjB,EAAErc,IACFuE,EAAI8X,EAAErc,EAAIw/B,EACXA,EAAInjB,EAAErc,EACP+K,IAAQ,EAAJxG,IACH8X,EAAE4lK,GAAKj4K,EAAEs7K,EAAI/gL,EACb8X,EAAE2lK,GAAKh4K,EAAEqjE,GAAK9oE,GAAK,GACnB8X,EAAEq4H,GAAK1qI,EAAEqjE,GAAK9oE,GAAK,GACpB,MAAQ8X,EAAErB,IAAMqB,EAAEy7J,GAAKz7J,EAAEzP,MAAQrI,IACnCi7B,EAAIl1B,IACA+R,EAAE4lK,GAAK5lK,EAAEtQ,EACVsQ,EAAE2lK,GAAK3lK,EAAEtQ,GAAK,EACdsQ,EAAEq4H,GAAKr4H,EAAEtQ,GAAK,EACf,MAAQsQ,EAAErB,IAAMqB,EAAEy7J,GAAKz7J,EAAEtQ,GACxBsQ,EAAEi/I,GAAK97H,EAAInjB,EAAErc,EACbqc,EAAEpB,EAAIoB,EAAEkgJ,GAAKlgJ,EAAEtQ,EACfsQ,EAAEqjB,EAAIp1B,EAAIk1B,EACV5kB,EAAIyB,EAAE8/M,IAAI9/M,GAAA,CAEf0hD,EAAI,GAAK/zD,EAAEo/J,IACTxpK,IACCqK,EAAED,EAAEi1D,GAAIj1D,EAAEgyJ,GAAKjvJ,EAAG7D,EAAGG,EAAI,GAAKW,EAAEs7K,EAAGv4K,GACpC9C,EAAED,EAAEkyJ,GAAIlyJ,EAAE+xJ,GAAK1wJ,EAAGC,EAAGgB,EAAI,EAAItC,EAAEqjE,EAAGhiE,GAClCpB,EAAED,EAAEkzJ,GAAIlzJ,EAAEmzJ,GAAK9xJ,EAAG67B,EAAGn7B,EAAI,EAAI/B,EAAEqjE,EAAGhiE,GAAA,KAEnCuP,EAAG,OAAOktP,GAAE3hQ,EAAG,EAAG,0BAElB,EA4LC,CAAOA,EAAG3Q,IAAA,MACRA,EAAEkkD,IAAMlkD,EAAEkkD,GAAGlkD,GACrBwU,GAAK,SAEFA,GACL7D,EAAE28D,GAAK,EACA94D,GAFQ,WAIRspK,GAAGntK,EAAG4E,EAAGvV,EAAGyU,EAAGpK,GACtBA,EAAIsG,EAAE4E,EAAIvV,EAAI,GAAKyU,IAAMpK,GAAK,GAC9BsG,EAAE4E,EAAIvV,EAAI,GAAKyU,IAAU,IAALpK,EAAY,EAAIA,EAAI,EAAI,IAAOA,CAAA,UAE5C2yK,GAAGrsK,EAAG4E,EAAGvV,EAAGyU,EAAGpK,EAAGF,GACzB2zK,GAAGntK,EAAG4E,EAAG,EAAGvV,EAAGyU,EAAIpK,GACnByzK,GAAGntK,EAAG4E,EAAG,EAAGvV,EAAGyU,EAAItK,GACnB2zK,GAAGntK,EAAG4E,EAAG,EAAGvV,EAAGyU,EAAItK,GACnB2zK,GAAGntK,EAAG4E,EAAG,EAAGvV,EAAGyU,EAAIpK,EAAA,UAEZuzK,GAAGjtK,GAAA,OACD,MAAQA,GAAM,IAAMA,CAAA,UAEtBkrG,GAAGlrG,EAAG4E,EAAGvV,EAAGyU,GAAA,IAEjBpK,EADEk+D,EAAI,EAEJ/zD,EAAIrK,EAAE,QACLE,EAAI,EAAG,EAAIA,IAAKA,EAAG,KAClBwc,EAAIlW,EAAE4E,EAAI,GAAK5E,EAAE4E,EAAI,GACrB6P,EAAIzU,EAAE4E,EAAI,GAAK5E,EAAE4E,EAAI,GACrBgC,GAAM,MAAQ5G,EAAE4E,EAAI,IAAO,IAAMqoK,GAAGjtK,EAAE4E,EAAI,KAC1CuB,EAAI8mK,GAAGjtK,EAAE4E,EAAI,KAAQ,MAAQ5E,EAAE4E,EAAI,KAAQ,IAC/Cf,EAAE+zD,EAAI,GAAK1hD,EAAI/P,EACftC,EAAE+zD,EAAI,GAAKnjD,EAAI7N,EACf/C,EAAE+zD,EAAI,GAAKnjD,EAAI7N,EACf/C,EAAE+zD,EAAI,GAAK1hD,EAAI/P,EACfyxD,GAAK,EACLhzD,GAAA,KAEGlL,EAAIk+D,EAAI,EAAG,EAAIl+D,IAAKA,EAEpBwc,GADFlW,EAAI6D,EAAE+zD,EAAI,GAAK,GACL/zD,EAAE+zD,EAAI,GACdnjD,EAAIzU,EAAI6D,EAAE+zD,EAAI,GACdhxD,GAAM,MAAQ/C,EAAE+zD,EAAI,IAAO,IAAMq1G,GAAGppK,EAAE+zD,EAAI,KAE3Cu1G,GAAG99K,EAAGyU,EAAG,EAAG,EAAGoS,GADd/P,EAAI8mK,GAAGppK,EAAE+zD,EAAI,KAAQ,MAAQ/zD,EAAE+zD,EAAI,KAAQ,MAE5Cu1G,GAAG99K,EAAGyU,EAAG,EAAG,EAAG2Q,EAAI7N,GACnBumK,GAAG99K,EAAGyU,EAAG,EAAG,EAAG2Q,EAAI7N,GACnBumK,GAAG99K,EAAGyU,EAAG,EAAG,EAAGoS,EAAI/P,GACnByxD,IACC9zD,GAAK,YAEH2oK,GAAGzsK,EAAG4E,EAAGvV,EAAGyU,GAAA,IACfpK,EAAIsG,EAAE4E,EAAI,GAAK,EACjBpL,EAAK,MAAQwG,EAAE4E,EAAI,IAAO,GAC1BgzD,EAAIq1G,GAAGjtK,EAAE4E,EAAI,IACbf,EAAK,MAAQ7D,EAAE4E,EAAI,IAAO,GAE5BynK,GAAGh9K,EAAGyU,EAAG,EAAGpK,EAAIk+D,EADhB53D,EAAIitK,GAAGjtK,EAAE4E,EAAI,IACSf,GACtBwoK,GAAGh9K,EAAGyU,EAAG,EAAGpK,EAAIF,EAAGwG,EAAG6D,GACtBwoK,GAAGh9K,EAAGyU,EAAG,EAAGpK,EAAIF,EAAGwG,EAAG6D,GACtBwoK,GAAGh9K,EAAGyU,EAAG,EAAGpK,EAAIk+D,EAAG53D,EAAG6D,EAAA,UAEfmoK,GAAGhsK,EAAG4E,EAAGvV,EAAGyU,EAAGpK,GACtBwxG,GAAGlrG,EAAG4E,EAAGvV,EAAGyU,GACZpK,GAAKwxG,GAAGlrG,EAAG4E,EAAI,GAAIvV,EAAGyU,EAAI,YAEnBipK,GAAG/sK,EAAG4E,EAAGvV,EAAGyU,GACnB86L,GAAG5+L,EAAG4E,EAAI,EAAGvV,EAAGyU,EAAG,GACnB86L,GAAG5+L,EAAG4E,EAAI,GAAIvV,EAAGyU,EAAI,IAAK,YAEnBopK,GAAGltK,EAAG4E,EAAGvV,EAAGyU,GAAA,IAEfpK,EAAA,IADJsG,EAAIA,EAAE4E,EAAI,GAAK,EAEVlL,EAAI,EAAG,EAAIA,IAAKA,EAAA,IAAQkL,EAAI,EAAG,EAAIA,IAAKA,EAAGuoK,GAAG99K,EAAGyU,EAAGc,EAAGlL,EAAGsG,EAAA,UAExDmsK,GAAGnsK,EAAG4E,EAAGvV,EAAGyU,GACnB9D,EAAE4E,EAAI,IAAM8iR,GAAG1nR,EAAG4E,EAAI,EAAGvV,EAAGyU,GAC5B9D,EAAE4E,EAAI,KAAO8iR,GAAG1nR,EAAG4E,EAAI,GAAIvV,EAAGyU,EAAI,GAClC9D,EAAE4E,EAAI,KAAO8iR,GAAG1nR,EAAG4E,EAAI,GAAIvV,EAAGyU,EAAI,KAClC9D,EAAE4E,EAAI,KAAO8iR,GAAG1nR,EAAG4E,EAAI,GAAIvV,EAAGyU,EAAI,IAAM,YAEjCspK,GAAGptK,EAAG4E,EAAGvV,EAAGyU,GAAA,IAEjBpK,EADEk+D,EAAIp+D,EAAE,QAELE,EAAI,EAAG,EAAIA,IAAKA,EAAG,KAClBmK,EAAI7D,EAAE4E,EAAI,EAAIlL,GAAKsG,EAAE4E,EAAI,GAAKlL,GAC9Bwc,EAAIlW,EAAE4E,EAAI,EAAIlL,GAAKsG,EAAE4E,EAAI,EAAIlL,GAC7B+a,EAAIzU,EAAE4E,EAAI,EAAIlL,GAAKsG,EAAE4E,EAAI,EAAIlL,GAC7BkN,EAAI5G,EAAE4E,EAAI,EAAIlL,GAAKsG,EAAE4E,EAAI,GAAKlL,GAClCk+D,EAAE,EAAIl+D,GAAKmK,EAAIqS,EACf0hD,EAAE,EAAIl+D,GAAKmK,EAAIqS,EACf0hD,EAAE,EAAIl+D,GAAKkN,EAAI6N,EACfmjD,EAAE,GAAKl+D,GAAKkN,EAAI6N,CAAA,KAEb/a,EAAI,EAAG,EAAIA,IAAKA,EAEhBmK,GADF7D,EAAI43D,EAAE,EAAI,EAAIl+D,GAAK,GACTk+D,EAAE,EAAI,EAAIl+D,GAClBwc,EAAI0hD,EAAE,EAAI,EAAIl+D,GAAKk+D,EAAE,EAAI,EAAIl+D,GAC7B+a,EAAImjD,EAAE,EAAI,EAAIl+D,GAAKk+D,EAAE,EAAI,EAAIl+D,GAC7BkN,EAAI5G,EAAI43D,EAAE,EAAI,EAAIl+D,GAClBrK,EAAEyU,EAAI,GAAMD,EAAIqS,GAAM,EACtB7mB,EAAEyU,EAAI,IAAO8C,EAAI6N,GAAM,EACvBplB,EAAEyU,EAAI,IAAOD,EAAIqS,GAAM,EACvB7mB,EAAEyU,EAAI,IAAO8C,EAAI6N,GAAM,EACvB3Q,GAAK,YAEH0oK,GAAGxsK,EAAG4E,EAAGvV,GAAA,IAIdyU,EAHEpK,EAAIkL,EAAI,GACVpL,EAAI8uR,GACJ1wN,EAAI,IAAM53D,EAAEtG,EAAI,OAEboK,EAAI,EAAGA,EAAIzU,IAAKyU,EAAG,KAGpBD,EAFEqS,EAAI1c,EACNib,EAAImjD,EAAI53D,EAAE4E,EAAI,OAEXf,EAAI,EAAGA,EAAIxU,IAAKwU,EAAG7D,EAAE4E,EAAIf,GAAKqS,EAAEzB,EAAIzU,EAAEtG,EAAImK,IAC/Ce,GAAK,aAGA8nK,GAAG1sK,EAAG4E,GACb4nK,GAAGxsK,EAAG4E,EAAG,YAEF0nK,GAAGtsK,EAAG4E,GACb4nK,GAAGxsK,EAAG4E,EAAG,YAEFwnK,GAAGpsK,EAAG4E,GACb4nK,GAAGxsK,EAAG4E,EAAG,aAEF4zG,GAAGx4G,EAAG4E,GAAA,IACTvV,EAAA,IACCA,EAAI,EAAG,GAAKA,IAAKA,EAAGyU,EAAE9D,EAAG4E,EAAI,GAAKvV,EAAG2Q,EAAG4E,EAAI,GAAI,aAE9C2nK,GAAGvsK,EAAG4E,GAAA,IACTvV,EAAA,IACCA,EAAI,GAAI,EAAIA,IAAKA,EAAGqK,EAAEsG,EAAG4E,EAAG5E,EAAE4E,EAAI,GAAI,IAAMA,GAAK,YAE/C4+G,GAAGxjH,EAAG4E,EAAGvV,GAAA,IACZyU,EAAA,IACCA,EAAI,EAAG,GAAKA,IAAKA,EAAGpK,EAAEkL,EAAGvV,EAAI,GAAKyU,EAAG9D,EAAG,aAEtCqtK,GAAGrtK,EAAG4E,GAAA,IAEXvV,EADEyU,EAAI,OAEHzU,EAAI,EAAG,GAAKA,IAAKA,EAAGyU,GAAK9D,EAAE4E,EAAI,EAAI,GAAKvV,GAAK2Q,EAAE4E,EAAIvV,EAAI,IAC5Dm0H,GAAG1/G,GAAK,EAAG9D,EAAG4E,EAAA,UAEPqnK,GAAGjsK,EAAG4E,GAAA,IAEXvV,EADEyU,EAAI,MAEHzU,EAAI,EAAG,GAAKA,IAAKA,EAAGyU,GAAK9D,EAAE4E,EAAI,EAAI,GAAKvV,GAC7Cm0H,GAAG1/G,GAAK,EAAG9D,EAAG4E,EAAA,UAEP2oK,GAAGvtK,EAAG4E,GAAA,IAEXvV,EADEyU,EAAI,MAEHzU,EAAI,EAAG,GAAKA,IAAKA,EAAGyU,GAAK9D,EAAE4E,EAAIvV,EAAI,IACxCm0H,GAAG1/G,GAAK,EAAG9D,EAAG4E,EAAA,UAEP0oK,GAAGttK,EAAG4E,GACb4+G,GAAG,IAAKxjH,EAAG4E,EAAA,UAEJ8pK,GAAE1uK,EAAG4E,EAAGvV,GAAA,OACP2Q,EAAI,EAAI4E,EAAIvV,EAAI,GAAM,WAEvBi/K,GAAGtuK,EAAG4E,GAAA,IAQXvV,EAPEqK,EAAIkL,EAAI,GAKoB,IAJ9BlL,EAAI,IAAIyP,WAAW,CACjBulK,GAAE1uK,EAAEtG,EAAI,GAAIsG,EAAEtG,EAAI,GAAIsG,EAAEtG,EAAI,IAC5Bg1K,GAAE1uK,EAAEtG,EAAI,GAAIsG,EAAEtG,EAAI,GAAIsG,EAAEtG,EAAI,IAC5Bg1K,GAAE1uK,EAAEtG,EAAI,GAAIsG,EAAEtG,EAAI,GAAIsG,EAAEtG,EAAI,IAC5Bg1K,GAAE1uK,EAAEtG,EAAI,GAAIsG,EAAEtG,EAAI,GAAIsG,EAAEtG,EAAI,MAG3BrK,EAAI,EAAG,EAAIA,IAAKA,EAAGyU,EAAE9D,EAAG4E,EAAI,GAAKvV,EAAGqK,EAAG,EAAGA,EAAEnG,OAAA,UAE1Cm6K,GAAG1tK,EAAG4E,GAAA,IACTvV,EAAI2Q,EAAE4E,EAAI,GACZd,EAAI9D,EAAE4E,EAAI,EAAI,IACdlL,EAAIsG,EAAE4E,EAAI,EAAI,IACdpL,EAAIwG,EAAE4E,EAAI,EAAI,IAChB4xK,EAAGx2K,EAAG4E,EAAI,EAAG,SAAW8pK,GAAE1uK,EAAE4E,EAAI,EAAI,IAAKvV,EAAGyU,IAC5C0yK,EAAGx2K,EAAG4E,EAAI,GAAI,SAAW8pK,GAAEr/K,EAAGyU,EAAGpK,IACjC88K,EAAGx2K,EAAG4E,EAAI,GAAI,SAAW8pK,GAAE5qK,EAAGpK,EAAGF,IACjCg9K,EAAGx2K,EAAG4E,EAAI,GAAI,SAAW8pK,GAAEh1K,EAAGF,EAAGA,GAAA,UAE1ByxG,GAAGjrG,EAAG4E,GAAA,IAEXvV,EADEyU,EAAI,MAEHzU,EAAI,EAAG,EAAIA,IAAKA,EAAGyU,GAAK9D,EAAE4E,EAAIvV,EAAI,IAAM2Q,EAAE4E,EAAI,EAAI,GAAKvV,GAAA,IAC5DyU,IAAM,EACDzU,EAAI,EAAG,EAAIA,IAAKA,EAAGqK,EAAEsG,EAAG4E,EAAI,GAAKvV,EAAGyU,EAAG,YAErC+rK,GAAG7vK,EAAG4E,GAAA,IACTvV,EAAI2Q,EAAE4E,EAAI,EAAI,GAChBd,EAAI9D,EAAE4E,EAAI,EAAI,IACdlL,EAAIsG,EAAE4E,EAAI,EAAI,IACdpL,EAAIwG,EAAE4E,EAAI,EAAI,IACdgzD,EAAI53D,EAAE4E,EAAI,EAAI,IACdf,EAAI7D,EAAE4E,EAAI,EAAI,IACdsR,EAAIlW,EAAE4E,EAAI,EAAI,IACd6P,EAAIzU,EAAE4E,EAAI,EAAI,IAChB5E,EAAE4E,EAAI,EAAI,IAAM8pK,GAAE5qK,EAAGpK,EAAGsG,EAAE4E,EAAI,EAAI,KAClC5E,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM8pK,GAAEr/K,EAAGyU,EAAGpK,GACxCsG,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM8pK,GAAEl1K,EAAGnK,EAAGyU,GACxD9D,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,GAAK8pK,GAAE92G,EAAGp+D,EAAGnK,GACvE2Q,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,GAAK8pK,GAAE7qK,EAAG+zD,EAAGp+D,GACvDwG,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,GAAK8pK,GAAEx4J,EAAGrS,EAAG+zD,GACvC53D,EAAE4E,EAAI,EAAI,GAAK8pK,GAAEj6J,EAAGyB,EAAGrS,EAAA,UAEhB28C,GAAGxgD,EAAG4E,GAAA,IACTvV,EAAI2Q,EAAE4E,EAAI,EAAI,IAChBd,EAAI9D,EAAE4E,EAAI,EAAI,IACdlL,EAAIsG,EAAE4E,EAAI,EAAI,IACdpL,EAAIwG,EAAE4E,EAAI,EAAI,IACdgzD,EAAI53D,EAAE4E,EAAI,EAAI,IACdf,EAAI7D,EAAE4E,EAAI,EAAI,IACdsR,EAAIlW,EAAE4E,EAAI,EAAI,IAChB5E,EAAE4E,EAAI,EAAI,GAAK8pK,GAAE1uK,EAAE4E,EAAI,EAAI,IAAKvV,EAAGyU,GACnC9D,EAAE4E,EAAI,EAAI,GAAK5E,EAAE4E,EAAI,EAAI,IAAM8pK,GAAEr/K,EAAGyU,EAAGpK,GACvCsG,EAAE4E,EAAI,EAAI,GAAK5E,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM8pK,GAAE5qK,EAAGpK,EAAGF,GACvDwG,EAAE4E,EAAI,EAAI,GAAK5E,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM8pK,GAAEh1K,EAAGF,EAAGo+D,GACvE53D,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM8pK,GAAEl1K,EAAGo+D,EAAG/zD,GACxD7D,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM8pK,GAAE92G,EAAG/zD,EAAGqS,GACxClW,EAAE4E,EAAI,EAAI,IAAM8pK,GAAE7qK,EAAGqS,EAAGA,EAAA,UAEjBw5J,GAAG1vK,EAAG4E,GAAA,IACTvV,EAAI2Q,EAAE4E,EAAI,EAAI,GAChBd,EAAI9D,EAAE4E,EAAI,EAAI,IACdlL,EAAIsG,EAAE4E,EAAI,EAAI,IACdpL,EAAIwG,EAAE4E,EAAI,EAAI,IACdgzD,EAAI53D,EAAE4E,EAAI,EAAI,IACdf,EAAI7D,EAAE4E,EAAI,EAAI,IACdsR,EAAIlW,EAAE4E,EAAI,EAAI,IACd6P,EAAIzU,EAAE4E,EAAI,EAAI,IAChB5E,EAAE4E,EAAI,EAAI,GAAK5E,EAAE4E,EAAI,EAAI,IAAOpL,EAAIo+D,EAAI,GAAM,EAC9C53D,EAAE4E,EAAI,EAAI,GAAK5E,EAAE4E,EAAI,EAAI,IAAOgzD,EAAI/zD,EAAI,GAAM,EAC9C7D,EAAE4E,EAAI,EAAI,GAAK5E,EAAE4E,EAAI,EAAI,IAAOf,EAAIqS,EAAI,GAAM,EAC9ClW,EAAE4E,EAAI,EAAI,GAAMsR,EAAIzB,EAAI,GAAM,EAC9BzU,EAAE4E,EAAI,EAAI,IAAM8pK,GAAEh1K,EAAGoK,EAAGzU,GACxB2Q,EAAE4E,EAAI,EAAI,IAAM8pK,GAAE5qK,EAAGzU,EAAGmK,GACxBwG,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM8pK,GAAEr/K,EAAGmK,EAAGo+D,GACxC53D,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM8pK,GAAEl1K,EAAGo+D,EAAG/zD,GACxC7D,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM8pK,GAAE92G,EAAG/zD,EAAGqS,GACxClW,EAAE4E,EAAI,EAAI,IAAM8pK,GAAE7qK,EAAGqS,EAAGzB,EAAA,UAEjB89J,GAAGvyK,EAAG4E,GAAA,IACTvV,EAAI2Q,EAAE4E,EAAI,EAAI,IAChBd,EAAI9D,EAAE4E,EAAI,EAAI,IACdlL,EAAIsG,EAAE4E,EAAI,EAAI,IACdpL,EAAIwG,EAAE4E,EAAI,EAAI,IACdgzD,EAAI53D,EAAE4E,EAAI,EAAI,IACdf,EAAI7D,EAAE4E,EAAI,EAAI,IACdsR,EAAIlW,EAAE4E,EAAI,EAAI,IACd6P,EAAIzU,EAAE4E,EAAI,EAAI,IAChB5E,EAAE4E,EAAI,EAAI,GAAMvV,EAAIyU,EAAI,GAAM,EAC9B9D,EAAE4E,EAAI,EAAI,GAAK5E,EAAE4E,EAAI,EAAI,IAAOd,EAAIpK,EAAI,GAAM,EAC9CsG,EAAE4E,EAAI,EAAI,GAAK5E,EAAE4E,EAAI,EAAI,IAAOlL,EAAIF,EAAI,GAAM,EAC9CwG,EAAE4E,EAAI,EAAI,GAAK5E,EAAE4E,EAAI,EAAI,IAAOpL,EAAIo+D,EAAI,GAAM,EAC9C53D,EAAE4E,EAAI,EAAI,IAAM8pK,GAAEr/K,EAAGyU,EAAGpK,GACxBsG,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM8pK,GAAE5qK,EAAGpK,EAAGF,GACxCwG,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM8pK,GAAEh1K,EAAGF,EAAGo+D,GACxC53D,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM8pK,GAAEl1K,EAAGo+D,EAAG/zD,GACxC7D,EAAE4E,EAAI,EAAI,IAAM8pK,GAAE92G,EAAG/zD,EAAGqS,GACxBlW,EAAE4E,EAAI,EAAI,IAAM8pK,GAAE7qK,EAAGqS,EAAGzB,EAAA,UAEjB05J,GAAGnuK,EAAG4E,GAAA,IACTvV,EAAI2Q,EAAE4E,EAAI,EAAI,GAChBd,EAAI9D,EAAE4E,EAAI,EAAI,IACdlL,EAAIsG,EAAE4E,EAAI,EAAI,IACdpL,EAAIwG,EAAE4E,EAAI,EAAI,IAChB5E,EAAE4E,EAAI,EAAI,GAAMvV,EAAIyU,EAAI,GAAM,EAC9B9D,EAAE4E,EAAI,EAAI,GAAK5E,EAAE4E,EAAI,EAAI,IAAOd,EAAIpK,EAAI,GAAM,EAC9CsG,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAOlL,EAAIF,EAAI,GAAM,EAC/CwG,EAAE4E,EAAI,EAAI,GAAK8pK,GAAEr/K,EAAGyU,EAAGpK,GACvBsG,EAAE4E,EAAI,EAAI,GAAK5E,EAAE4E,EAAI,EAAI,IAAM8pK,GAAE5qK,EAAGpK,EAAGF,GACvCwG,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM8pK,GAAEh1K,EAAGF,EAAGA,GACxCwG,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM5E,EAC9D4E,EAAI,EAAI,IACN5E,EAAE4E,EAAI,EAAI,IAAMpL,CAAA,UAEby0K,GAAGjuK,EAAG4E,GAAA,IACTvV,EAAI2Q,EAAE4E,EAAI,EAAI,GAChBd,EAAI9D,EAAE4E,EAAI,EAAI,IACdlL,EAAIsG,EAAE4E,EAAI,EAAI,IACdpL,EAAIwG,EAAE4E,EAAI,EAAI,IACdgzD,EAAI53D,EAAE4E,EAAI,EAAI,IACdf,EAAI7D,EAAE4E,EAAI,EAAI,IACdsR,EAAIlW,EAAE4E,EAAI,EAAI,IACd6P,EAAIzU,EAAE4E,EAAI,EAAI,IAChB5E,EAAE4E,EAAI,EAAI,GAAK5E,EAAE4E,EAAI,EAAI,IAAOvV,EAAIuoE,EAAI,GAAM,EAC9C53D,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAOd,EAAIzU,EAAI,GAAM,EAC/C2Q,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAOlL,EAAIoK,EAAI,GAAM,EAC/C9D,EAAE4E,EAAI,EAAI,IAAOpL,EAAIE,EAAI,GAAM,EAC/BsG,EAAE4E,EAAI,EAAI,GAAK8pK,GAAE7qK,EAAGqS,EAAGzB,GACvBzU,EAAE4E,EAAI,EAAI,GAAK8pK,GAAE92G,EAAG/zD,EAAGqS,GACvBlW,EAAE4E,EAAI,EAAI,GAAK5E,EAAE4E,EAAI,EAAI,IAAM8pK,GAAEr/K,EAAGuoE,EAAG/zD,GACvC7D,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM8pK,GAAE5qK,EAAGzU,EAAGuoE,GACxC53D,EAAE4E,EAAI,EAAI,IAAM5E,EAAE4E,EAAI,EAAI,IAAM8pK,GAAEh1K,EAAGoK,EAAGzU,GACxC2Q,EAAE4E,EAAI,EAAI,IAAM8pK,GAAEl1K,EAAGE,EAAGoK,EAAA,UAEjB+pK,GAAG7tK,EAAG4E,GAAA,IACTvV,EAAA,IACCA,EAAI,EAAG,EAAIA,IAAKA,EAAGyU,EAAE9D,EAAG4E,EAAI,GAAKvV,EAAG2Q,EAAG4E,EAAI,GAAI,YAE7CytK,GAAGryK,EAAG4E,GAAA,IACTvV,EAAA,IACCA,EAAI,EAAG,EAAIA,IAAKA,EAAGqK,EAAEsG,EAAG4E,EAAG5E,EAAE4E,EAAI,GAAI,GAAKA,GAAK,YAE7CgqK,GAAG5uK,EAAG4E,EAAGvV,GAAA,IACZyU,EAAA,IACCA,EAAI,EAAG,EAAIA,IAAKA,EAAGpK,EAAEkL,EAAGvV,EAAI,GAAKyU,EAAG9D,EAAG,YAErC4tK,GAAG5tK,EAAG4E,GAAA,IAEXvV,EADEyU,EAAI,MAEHzU,EAAI,EAAG,EAAIA,IAAKA,EAAGyU,GAAK9D,EAAE4E,EAAIvV,EAAI,IAAM2Q,EAAE4E,EAAI,EAAI,GAAKvV,GAC5Du/K,GAAG9qK,GAAK,EAAG9D,EAAG4E,EAAA,UAEP4pK,GAAGxuK,EAAG4E,GAAA,IAEXvV,EADEyU,EAAI,MAEHzU,EAAI,EAAG,EAAIA,IAAKA,EAAGyU,GAAK9D,EAAE4E,EAAIvV,EAAI,IACvCu/K,GAAG9qK,GAAK,EAAG9D,EAAG4E,EAAA,UAEPopK,GAAGhuK,EAAG4E,GAAA,IAEXvV,EADEyU,EAAI,MAEHzU,EAAI,EAAG,EAAIA,IAAKA,EAAGyU,GAAK9D,EAAE4E,EAAI,EAAI,GAAKvV,GAC5Cu/K,GAAG9qK,GAAK,EAAG9D,EAAG4E,EAAA,UAEPooK,GAAGhtK,EAAG4E,GACbgqK,GAAG,IAAK5uK,EAAG4E,EAAA,UAEJmpK,GAAG/tK,EAAG4E,EAAGvV,GAAA,IACZyU,EAAI9D,EAAE4E,EAAIvV,GACZqK,EAAIsG,EAAE4E,EAAI,GACVpL,EAAI,GAAKE,EAAIoK,GAAKykR,GAAG,KAAOvoR,EAAE4E,EAAI,EAAIvV,GAAK2Q,EAAE4E,EAAIvV,IACjDuoE,EAAIq7M,GAAG,KAAQz5Q,EAAI,GAAM,IAC3BwG,EAAE4E,EAAIvV,GAAKi5R,GAAE,IAAMxkR,EAAImvQ,GAAG,KAAQz5Q,EAAI,GAAM,KAC5CwG,EAAE4E,EAAI,GAAK0jR,GAAE,IAAM5uR,EAAIk+D,EAAA,UAEhBg4G,GAAG5vK,EAAG4E,EAAGvV,EAAGyU,GAAA,IACfpK,EAAIsG,EAAE4E,EAAI,GACZpL,EAAIwG,EAAE4E,EAAIvV,GAAA,OACLm5R,GAAE,IAAMxoR,EAAE4E,EAAI,EAAIvV,GAAK2Q,EAAE4E,EAAIvV,IAAMyU,GAAK0kR,GAAE,IAAMhvR,EAAIE,GAAKoK,CAAA,UAEzDgsK,GAAG9vK,EAAG4E,EAAGvV,EAAGyU,GAAA,OAEjB,EAAI0kR,GAAE,IAAMxoR,EAAE4E,EAAIvV,GAAK2Q,EAAE4E,EAAI,IAAM4jR,GAAE,IAAMxoR,EAAE4E,EAAI,EAAIvV,GAAK2Q,EAAE4E,EAAIvV,KAAOyU,CAAA,UAGlEisK,GAAG/vK,EAAG4E,EAAGvV,EAAGyU,EAAGpK,GAAA,IAClBF,EAAIwG,EAAE4E,EAAI,EAAIvV,GAChBuoE,EAAI53D,EAAE4E,EAAI,EAAIvV,GACdwU,EAAI7D,EAAE4E,EAAIvV,GACV6mB,EAAIlW,EAAE4E,EAAI,GACV6P,EAAIzU,EAAE4E,EAAIvV,GACVuX,EAAI5G,EAAE4E,EAAI,EAAIvV,GACd8W,EAAInG,EAAE4E,EAAI,EAAIvV,GAAA,OACT,EAAIm5R,GAAE,IAAM3kR,EAAIqS,GAAKsyQ,GAAE,IAAM5wN,EAAInjD,GAAK3Q,EACzC,EACA0kR,GAAE,IAAMxoR,EAAE4E,EAAI,EAAIvV,GAAKmK,IAAME,GAC3B8uR,GAAE,IAAMhvR,EAAIo+D,IAAMl+D,GAClB8uR,GAAE,IAAM5wN,EAAI/zD,IAAMnK,GAClB8uR,GAAE,IAAMriR,EAAIS,IAAMlN,GAClB8uR,GAAE,IAAM5hR,EAAI6N,IAAM/a,GAClB8uR,GAAE,IAAM/zQ,EAAIyB,IAAMxc,CAAA,UAEjB8zK,GAAGxtK,EAAG4E,EAAGvV,EAAGyU,GAAA,IACfpK,EAAI,EAAIoK,EAAI,MACXA,EAAI,EAAG,GAAKA,IAAKA,EAAGgsK,GAAG9vK,EAAG4E,EAAId,EAAGzU,EAAGqK,IAAMq0K,GAAG/tK,EAAG4E,EAAId,EAAGzU,EAAA,UAErD6+K,GAAGluK,EAAG4E,EAAGvV,EAAGyU,GAAA,IACfpK,EAAI,EAAIoK,EAAI,MACXA,EAAI,EAAG,GAAKA,IAAKA,EAAGgsK,GAAG9vK,EAAG4E,EAAId,EAAIzU,EAAG,EAAGqK,IAAMq0K,GAAG/tK,EAAG4E,EAAId,EAAIzU,EAAG,YAE7D4gL,GAAGjwK,EAAG4E,EAAGvV,EAAGyU,GAAA,IACfpK,EAAA,IACCA,EAAI,EAAG,EAAIA,IAAKA,EAAiB8zK,GAAGxtK,EAAhB4E,GAAK,EAAIvV,EAAaA,EAAGyU,EAAA,UAE3CksK,GAAGhwK,EAAG4E,EAAGvV,EAAGyU,GAAA,IACfpK,EAAA,IACCA,EAAI,EAAG,EAAIA,IAAKA,EAAaw0K,GAAGluK,EAAZ4E,GAAK,EAAavV,EAAGyU,EAAA,UAEvCujQ,GAAGrnQ,EAAG4E,EAAGvV,EAAGyU,EAAGpK,EAAGF,EAAGo+D,EAAG/zD,GAAA,IAC1BrK,EAAI,EAAIA,EAAI,EAAG,EAAIE,KAAO,IACzBq2K,GAAG/vK,EAAG4E,EAAGvV,EAAGmK,EAAGo+D,GACjB,GAAIg4G,GAAG5vK,EAAG4E,EAAGvV,EAAGwU,GAAIkqK,GAAG/tK,EAAG4E,EAAGvV,OACxB,KACC6mB,EAAIlW,EACNyU,EAAI7P,EACJgC,EAAIvX,EACJ8W,EAAI+P,EAAEzB,EAAI,EAAI7N,GACd1B,EAAIgR,EAAEzB,EAAI7N,GACV7D,EAAImT,EAAEzB,EAAI,GACVvR,EAAIgT,EAAEzB,EAAI7N,GACVzB,EAAI+Q,EAAEzB,EAAI,EAAI7N,GAEdm6B,EAAK,IADLtnC,EAAI8uR,GAAG,KAAO,GAAKxlR,EAAImC,GAAKqjR,GAAG,KAAOpiR,EAAIjD,KAC5B,IAAO,EACrB0C,EAAK,GAAKnM,EAAI,IAAO,EACrBA,EAAK,EAAIA,EAAI,IAAO,EACtByc,EAAEzB,EAAI,EAAI7N,GAAK0hR,GAAE,IAAMpyQ,EAAEzB,EAAI,EAAI7N,GAAKnN,GACtCyc,EAAEzB,EAAI,EAAI7N,GAAK0hR,GAAE,IAAMniR,EAAIP,GAC3BsQ,EAAEzB,EAAI7N,GAAK0hR,GAAE,IAAMpjR,EAAI67B,GACvB7qB,EAAEzB,EAAI,GAAK6zQ,GAAE,IAAMvlR,EAAIg+B,GACvB7qB,EAAEzB,EAAI7N,GAAK0hR,GAAE,IAAMplR,EAAI0C,GACvBsQ,EAAEzB,EAAI,EAAI7N,GAAK0hR,GAAE,IAAMnjR,EAAI1L,EAAA,CAE/BmL,GAAKd,CAAA,WAGAysK,GAAGvwK,EAAG4E,EAAGvV,EAAGyU,EAAGpK,EAAGF,EAAGo+D,EAAG/zD,GAAA,IAC1BrK,EAAI,EAAIA,EAAI,EAAG,EAAIE,KAAO,IACzBq2K,GAAG/vK,EAAG4E,EAAGvV,EAAGmK,EAAGo+D,GACjB,GAAIg4G,GAAG5vK,EAAG4E,EAAGvV,EAAGwU,GAAIkqK,GAAG/tK,EAAG4E,EAAGvV,OACxB,KACC6mB,EAAIlW,EACNyU,EAAI7P,EACJgC,EAAIvX,EACJ8W,EAAI+P,EAAEzB,EAAI7N,GACV1B,EAAIgR,EAAEzB,EAAI,GACV1R,EAAImT,EAAEzB,EAAI7N,GAEV1D,EAAI+vQ,GAAG,KAAY,GADnB9tQ,EAAI,GAAKD,EAAIiB,KACY,IACzBhB,EAAI8tQ,GAAG,KAAQ9tQ,EAAI,GAAM,IACzB47B,EAAK79B,EAAI,GAAM,EACjBgT,EAAEzB,EAAI,EAAI7N,GAAK0hR,GAAE,IAAMpyQ,EAAEzB,EAAI,EAAI7N,GAAKm6B,GACtC7qB,EAAEzB,EAAI7N,GAAK0hR,GAAE,IAAMniR,EAAIhB,GACvB+Q,EAAEzB,EAAI,GAAK6zQ,GAAE,IAAMpjR,EAAIhC,GACvBgT,EAAEzB,EAAI7N,GAAK0hR,GAAE,IAAMvlR,EAAIg+B,EAAA,CAE3Bn8B,GAAKd,CAAA,WAGAsqK,GAAGpuK,EAAG4E,EAAGvV,EAAGyU,EAAGpK,EAAGF,GACzB6tQ,GAAGrnQ,EAAG4E,EAAGvV,EAAG,EAAG,GAAIyU,EAAGpK,EAAGF,EAAA,UAElB82K,GAAGtwK,EAAG4E,EAAGvV,EAAGyU,EAAGpK,EAAGF,GACzB6tQ,GAAGrnQ,EAAG4E,EAAG,EAAGvV,EAAG,GAAIyU,EAAGpK,EAAGF,EAAA,UAElB60K,GAAGruK,EAAG4E,EAAGvV,EAAGyU,EAAGpK,EAAGF,GAAA,IACrBo+D,EAAA,IACCA,EAAI,EAAG,EAAIA,IAAKA,EAAiB24G,GAAGvwK,EAAhB4E,GAAK,EAAIvV,EAAaA,EAAG,EAAG,GAAIyU,EAAGpK,EAAGF,EAAA,UAExDg3K,GAAGxwK,EAAG4E,EAAGvV,EAAGyU,EAAGpK,EAAGF,GAAA,IACrBo+D,EAAA,IACCA,EAAI,EAAG,EAAIA,IAAKA,EAAa24G,GAAGvwK,EAAZ4E,GAAK,EAAa,EAAGvV,EAAG,GAAIyU,EAAGpK,EAAGF,EAAA,UAEpDi3K,GAAGzwK,EAAG4E,EAAGvV,EAAGyU,EAAGpK,EAAGF,EAAGo+D,EAAG/zD,GAC/BwjQ,GAAGrnQ,EAAG4E,EAAGlL,EAAG,EAAG,EAAGF,EAAGo+D,EAAG/zD,GACxBwjQ,GAAGh4Q,EAAGyU,EAAGpK,EAAG,EAAG,EAAGF,EAAGo+D,EAAG/zD,EAAA,UAEjB8rK,GAAG3vK,EAAG4E,EAAGvV,EAAGyU,EAAGpK,EAAGF,EAAGo+D,EAAG/zD,GAC/BwjQ,GAAGrnQ,EAAG4E,EAAG,EAAGlL,EAAG,EAAGF,EAAGo+D,EAAG/zD,GACxBwjQ,GAAGh4Q,EAAGyU,EAAG,EAAGpK,EAAG,EAAGF,EAAGo+D,EAAG/zD,EAAA,UAEjBslF,GAAGnpF,EAAG4E,EAAGvV,EAAGyU,EAAGpK,EAAGF,EAAGo+D,EAAG/zD,GAC/B0sK,GAAGvwK,EAAG4E,EAAI,EAAIlL,EAAGA,EAAG,EAAG,EAAGF,EAAGo+D,EAAG/zD,GAChC0sK,GAAGlhL,EAAGyU,EAAI,EAAIpK,EAAGA,EAAG,EAAG,EAAGF,EAAGo+D,EAAG/zD,EAAA,UAEzB8lQ,GAAG3pQ,EAAG4E,EAAGvV,EAAGyU,EAAGpK,EAAGF,EAAGo+D,EAAG/zD,GAC/B0sK,GAAGvwK,EAAG4E,EAAI,EAAG,EAAGlL,EAAG,EAAGF,EAAGo+D,EAAG/zD,GAC5B0sK,GAAGlhL,EAAGyU,EAAI,EAAG,EAAGpK,EAAG,EAAGF,EAAGo+D,EAAG/zD,EAAA,UAErB+lQ,KAAA,KACFx3F,GAAK,IAAIqrF,GAAA,KACT78F,GAAK,QACLL,GAAK,QACL8C,GAAK,QACLT,GAAKp/J,KAAK8/J,GAAK9/J,KAAKi9J,GAAKj9J,KAAKkhG,GAAK,OACnC4yD,GAAK,IAAIomG,GAAA,KACT2nB,OAAS,OACTxmH,GAAK,kBACLC,GAAK,uBACLmL,GAAK,yBAEH8/B,KAAA,KACFv3M,KAAO,QACPopC,OAASp4B,KAAKgiK,GAAKhiK,KAAKwxJ,GAAKxxJ,KAAKmD,EAAI,OACtCsrK,GAAK,QACLC,GAAK1uK,KAAKm2J,GAAKn2J,KAAKyzJ,GAAKzzJ,KAAK00J,GAAK10J,KAAKW,EAAI,WAE1C8zE,KAAA,KACFk/G,GAAK3zL,KAAKozJ,GAAKpzJ,KAAK/J,EAAI+J,KAAKy9J,GAAK,OAClCsZ,EAAI,QACJ5zK,EAAI,WAEFT,KAAA,KACFgwJ,GAAK,OACLyC,GAAK,IAAI5yB,EAAA,KACT83B,GAAK,IAAI93B,EAAA,KACT2/B,GAAKliK,KAAK8+J,GAAK9+J,KAAK8mL,GAAK,OACzBjoB,GAAK,QACLzC,GAAK,OACL9G,GAAK,IAAI/1J,EAAA,KACTw/J,GAAK,IAAIp8J,CAAA,UAEPmyE,KAAA,KACFylF,GAAKv6J,KAAKhK,EAAI,OACd2M,EAAI,IAAIo7P,GAAA,KACR1sG,GAAK,IAAI4oG,GAAA,KACTnkO,EAAI,QACJm9H,GAAK,OACL0B,GAAK,QACLO,GAAK,OACL33H,EAAI,IAAI86I,EAAA,KACRzc,GAAK,OACLuH,GAAK,IAAIkV,EAAA,KACTzkB,GAAK5zJ,KAAK65P,EAAI75P,KAAK2jE,EAAI3jE,KAAK9J,EAAI8J,KAAK0S,EAAI1S,KAAKojK,GAAK,OACnD/iK,EAAI,IAAIqC,GAAA,KACRotC,GAAK,OACLytH,GAAKnpG,EAAG,EAAGqgB,IAAA,KACXsrF,GAAK,WAEH3qG,KAAA,KACFwqG,GAAK5/J,KAAKuR,EAAIvR,KAAK2uK,GAAK3uK,KAAK9J,EAAI8J,KAAK0S,EAAI,OAC1C/P,EAAI,IAAIo7P,GAAA,KACRpgG,GAAK,OACLtM,GAAK,QACLoI,GAAK,OACL8I,GAAK,UACLt6E,GAAK,WAEHw+K,GAAGjqQ,EAAG4E,EAAGvV,EAAGyU,EAAGpK,EAAGF,EAAGo+D,GAAA,IAC5B53D,EAAI,MAAQA,EAAI,EAAIA,EAAE4E,EAAI,GACrBA,EAAI,EAAGA,EAAIgzD,IAAKhzD,EAAIlL,EAAEF,EAAIoL,GAAM5E,EAAI3Q,EAAEyU,EAAIc,GAAM,IAAO5E,EAAItG,EAAEF,EAAIoL,EAAA,UAE/DslQ,GAAGlqQ,EAAG4E,EAAGvV,EAAGyU,EAAGpK,EAAGF,EAAGo+D,GAAA,IAGtB/zD,EAAA,GAFF,MAAQ7D,EAAGiqQ,GAAG,KAAM,KAAM56Q,EAAGyU,EAAGpK,EAAGF,EAAGo+D,QAAA,IAGnC/zD,EAAI,EAAGA,EAAI+zD,IAAK/zD,EAAGnK,EAAEF,EAAIqK,GAAM7D,EAAE4E,EAAIf,GAAKxU,EAAEyU,EAAID,GAAM,aAGtDy5J,GAAGt9J,EAAG4E,EAAGvV,EAAGyU,EAAGpK,EAAGF,EAAGo+D,GAAA,GACxB,MAAQ53D,EAAGiqQ,GAAG,KAAM,KAAM56Q,EAAGyU,EAAGpK,EAAGF,EAAGo+D,OACrC,KAID/zD,EAHEqS,EAAIlW,EAAE4E,EAAI,GACZ6P,EAAIyB,EACJtP,EAAIsP,EAAA,IAEDrS,EAAI,EAAGA,EAAI+zD,IAAK/zD,EAEhB4Q,EAAI7N,GADNsP,EAAIlW,EAAE4E,EAAIf,IACI4Q,EACZ7N,EAAKvX,EAAEyU,EAAID,KAAW,IAAL4Q,EAAY,EAAIA,EAAI,EAAI,IAAOA,GAAM,IACtDA,EAAIyB,EACJxc,EAAEF,EAAIqK,GAAK+C,CAAA,WAGXohQ,GAAGhoQ,EAAG3Q,EAAGqK,EAAGk+D,GAAA,IACf/zD,EAAIxU,EAAEoX,MACRyP,EAAI7mB,EAAEuoE,EAAA,GACRhzD,EAAE,MAAQ5E,GAAK,MAAQ3Q,GACnB,EAAIqK,GAAK,GAAKk+D,GAAKl+D,EAAIk+D,EAAI1hD,EAAG,OAAO,SACpClW,EAAE2iK,GAAI,IACL,MAAQ3iK,EAAEmnR,GAAI,KAEZ1yQ,EAAA,GADJzU,EAAEmnR,GAAK,IAAIvuN,IAEVnkD,EAAI,MAAQzU,EAAEmnR,MACX1yQ,EAAIplB,EAAEoX,MAAQpX,EAAEuoE,EAClBhzD,EAAE,GAAK5E,EAAE2+J,GAAGprK,QACXyM,EAAE2+J,GAAKnlK,EAAEib,GACTzU,EAAEqlK,GAAK,EACR,MAAQrlK,EAAE2+J,GACLlqJ,EAAI,GACHzU,EAAEk6J,GAAKl6J,EAAE2+J,GAAM3+J,EAAEm6J,GAAKn6J,EAAEqlK,GAAMrlK,EAAE6hK,GAAK,KAAQptJ,EAAI,GACtDA,GAAKA,IACHA,EAAG,CACNA,EAAIzU,EAAEmnR,GAAA,IACFvgR,EAAI5G,EAAE62J,GACR1wJ,EAAInG,EAAEmE,EACNe,EAAIlF,EAAE2hK,GACN5+J,EAAI/C,EAAEk6J,GACNh3J,EAAIlD,EAAEm6J,GACNh1J,EAAIgB,EAAI,EACR46B,EAAI77B,EAAI,EACRzL,EAAIgb,EAAEtO,EAAA,GACRvB,EAAE,MAAQgC,GAAK,MAAQ7D,GAAK,MAAQ1T,GACpCkvL,GAAG,GAAK,KACRA,GAAG,GAAK0rF,GACR1rF,GAAG,GAAK2rF,GACR3rF,GAAG,GAAKjhB,GACR7oJ,EAAEogJ,GAAK9xJ,EACP0R,EAAEwoJ,GAAK/5J,EACPuR,EAAEyB,EAAI7mB,EAAEoX,MACRgO,EAAE/a,EAAIrK,EAAEqX,OACR9B,EAAE,EAAI6P,EAAEyB,GAAK,EAAIzB,EAAE/a,GACf,GAAKwL,EAAG7V,EAAI,OACX,GACDolB,EAAE09J,GAAuB,EAAjBvrK,EAAET,EAAI,GACfsO,EAAEM,EAAKnO,EAAET,EAAI,IAAM,EAAK,EACxBsO,EAAE2uJ,GAAMx8J,EAAET,EAAI,IAAM,EAAK,EACzBA,EAAKS,EAAET,EAAI,IAAM,EAAK,EACvB,EAAIsO,EAAE09J,IAAM,EAAI19J,EAAE09J,IAAM,GAAK19J,EAAEM,GAAK,EAAIN,EAAE2uJ,IAAMj9J,EAEhD9W,EAAI,OACD,GACDoK,EAAEu8N,IAAMk0B,GACTzwP,EAAE2mK,GAAK09F,GACPrkQ,EAAE85C,GAAKwjB,GACPt9D,EAAE47J,GAAK5gJ,EACPhb,EAAEgN,MAAQpX,EAAEoX,MACZhN,EAAEiN,OAASrX,EAAEqX,OACbjN,EAAEk9J,GAAKtnK,EAAEsnK,GACTl9J,EAAEmM,EAAIvW,EAAEuW,EACRnM,EAAE28J,GAAK/mK,EAAE+mK,GACT38J,EAAEI,EAAIxK,EAAEwK,EACRJ,EAAEm+D,EAAIvoE,EAAEuoE,EACTnjD,EAAE09J,GAEFnyK,EAAG,CACD4E,EAAE,GAAK6P,EAAE09J,IAAM9iL,EAAIwwQ,KACnBj7P,EAAG,OAAS,IACN,MAAQvV,EAAG,CACbA,EAAI,QACE2Q,CAAA,IAER4E,EAAE,MAAQ6P,GACVA,EAAEw3K,GAAK58L,EACPA,EAAE6mB,EAAIzB,EAAEyB,EACR7mB,EAAEqK,EAAI+a,EAAE/a,EACRrK,EAAE8W,EAAIsO,EAAEtO,EACR9W,EAAE8W,EAAEkvJ,GAAK5gJ,EACTplB,EAAE8W,EAAEM,MAAQgO,EAAEyB,EACd7mB,EAAE8W,EAAEO,OAAS+N,EAAE/a,EACfrK,EAAEmK,EAAI,EACNoM,EAAGvW,EAAE0xC,EAAGn6B,EAAGzB,EAAG47B,IACT++N,GAAGrrP,EAAEyB,EAAGzB,EAAE/a,EAAG,EAAGrK,EAAG,MAAO,MAAMuV,EAAA,MAChCvV,EAAEikD,IAAM,GAAKjkD,EAAE0xK,GAAG,GAAGE,IAAM89F,GAAG1vQ,EAAEwU,IAC/B4Q,EAAE0sJ,GAAK,EACRv6J,EAAIvX,EAAE6mB,EAAI7mB,EAAEqK,EACZrK,EAAE8oK,GAAK,KACP9oK,EAAEqpK,GAAK,EACPrpK,EAAEiqC,EAAI9/B,EAAEoN,GACRvX,EAAEonK,GAAK,EACR,MAAQpnK,EAAEiqC,GAAMjqC,EAAEmK,EAAI,EAAKnK,EAAI,GAAOA,EAAI,IACxColB,EAAE0sJ,GAAK,EAAK9xK,EAAI0wQ,GAAG1wQ,EAAGolB,EAAEyB,KACzB7mB,EAAG,MAAMuV,EACdvV,EAAI,QACE2Q,CAAA,CAERyU,EAAEw3K,GAAK,KACP58L,EAAI,OAEHA,EAAI0xC,GAAKtsB,EAAEyB,EAAIzB,EAAE/a,EACtB+a,GAAKplB,CAAA,IAEHolB,EAAG,OAAO,QACTzU,EAAEmnR,GAAG/jH,GAAMpjK,EAAE82J,GAAK,EAAMl/F,EAAI1hD,EAAIxc,CAAA,CAEvCkL,EAAE,MAAQ5E,EAAEmnR,IACZviR,EAAElL,EAAIk+D,GAAK1hD,GACXlW,EAAG,IAED3Q,GADAuX,EAAI5G,EAAEmnR,IACAjxQ,EACNA,EAAItP,EAAET,EAAEyxD,EACJ,GAAKhxD,EAAEurK,GAAI,IACbhtK,EAAInF,EAAE6hK,GACN9gI,EAAI/gC,EAAEqkK,GACN5qK,EAAIuG,EAAE62J,GACN1wJ,EAAInG,EAAEmE,EAAI,EAAIzK,EAAIrK,EAClB6V,EAAIlF,EAAEk6J,GACNn3J,EAAI/C,EAAEm6J,GAAKzgK,EAAIrK,EACfuV,EAAEuB,GAAKnG,EAAEmE,EAAInE,EAAE2hK,IACX,GAAK/6J,EAAEmO,EACT,IAAKnQ,EAAE,MAAQ25K,GAAG33K,EAAEmO,IAAKN,EAAI,EAAGA,EAAImjD,IAAKnjD,EACvC8pK,GAAG33K,EAAEmO,GAAG5P,EAAG47B,EAAGtnC,EAAG0M,EAAGjB,EAAGnC,EAAG1T,GACvB8V,EAAID,EACJ67B,EAAIh+B,EACJA,GAAK1T,EACL8W,GAAK9W,OAEV,IAAKolB,EAAI,EAAGA,EAAImjD,IAAKnjD,EACnB3Q,EAAEoB,EAAGnC,EAAGtJ,EAAG0M,EAAG9W,GAAK8V,EAAID,EAAK67B,EAAIh+B,EAAKA,GAAK1T,EAAK8W,GAAK9W,EACxD2Q,EAAE6hK,GAAK18J,EACPnF,EAAEqkK,GAAKtjI,CAAA,KACF,IACLn8B,EAAE,MAAQgC,EAAEqlL,IACZ58L,EAAIqK,EAAIk+D,EAERhzD,EAAE,OADF6P,EAAI7N,EAAEqlL,KAENrnL,EAAEvV,GAAKolB,EAAE/a,GACL+a,EAAE0yD,GAAK93E,EAAGA,EAAI,OACb,GAAKuX,EAAEu6J,IAAM8pG,KAAMrkQ,EAAEu6J,GAAK,CACzBv6J,EAAI6N,EAAE6kB,EACRn0B,EAAIsP,EAAEgiJ,GACN11H,EAAItsB,EAAEyB,EAAA,IACN9X,EAAIqW,EAAE/a,EAMNiN,GALAlN,EAAI,EACJ0M,EAAIsO,EAAE4oP,EAAIt8N,EACV77B,EAAIuP,EAAE4oP,EAAIt8N,EACVh+B,EAAI0R,EAAEssB,EACN79B,EAAIuR,EAAE5Q,EACF4Q,EAAE4oP,GACNxhF,EAAI96I,EAAI3iC,EACRi7B,EAAI0H,EAAI1xC,EACR8O,EAAI+E,EAAEonL,GACNllL,EAAIuB,EAAI0yB,EAAImlO,GAAGt7P,EAAGgC,EAAGiB,GAAK,KAC5BvB,EAAE+B,GAAKk1K,GACPj3K,EAAEvV,GAAK+O,GACPwG,EAAEm6P,GAAG77P,IACL0B,EAAG,OAAS,OACF7B,EAAE6D,GAAKD,EAAI0yB,GAAK,IACtBn0B,EAAI/G,IAAMiH,EAAIo5P,GAAGt7P,EAAGgC,EAAGiB,IACvBvB,EAAE,MAAQQ,GACVq+G,EAAG1gH,GAEC,KADJ3E,EAAIirP,GAAGjkP,EAAEgvK,EAAE,GAAIhvK,EAAEkvK,EAAE,GAAIvxK,IAEpB6D,EAAEzB,EAAIwB,GAAKvI,IACRuI,IACAzB,GACG67B,IAAO77B,EAAI,IAAMiB,GAAQ9W,KAAO8W,EAAI,KAAOw5P,GAAGlrP,EAAGtO,QACrD,MAAI,IAAM/H,GAiBR,CACL3E,EAAI,QACEmL,CAAA,CAlBFxG,EAAI8/P,GAAG9/P,EAAI,IAAK2E,GAAA,IAMdoB,EALFsyD,EAAI4yL,GAAGjkP,EAAEgvK,EAAE,GAAIhvK,EAAEkvK,EAAE,GAAIvxK,GAAA,GAC3B0gH,EAAG1gH,KAGC4D,IADJ8vD,EAAI0nM,GAAGp9N,EADP01B,EAAIynM,GAAGznM,EAAG1zD,MAEI84K,EAAIl1K,GAAKvI,GAGhB,CACL3E,EAAI,QACEmL,CAAA,KAHDT,EAAI,EAAGA,EAAI/F,IAAK+F,EAAGyC,EAAEzB,EAAIwB,EAAIxC,GAAKyC,EAAEzB,EAAIwB,EAAIxC,EAAIsyD,GAAA,IAKvD9vD,GAAKvI,EACA8G,GAAK9G,EAAG8G,GAAK67B,GACf77B,GAAK67B,IAAM56B,GAAQ9W,KAAO8W,EAAI,KAAOw5P,GAAGlrP,EAAGtO,GAC9CQ,EAAI0yB,GAAKn0B,EAAI/G,IAAMiH,EAAIo5P,GAAGt7P,EAAGgC,EAAGiB,GAAA,CAKlCvB,EAAE7B,EAAE6D,GAAK+N,EAAG5R,GAAA,CAEd48P,GAAGlrP,EAAGtO,EAAI9W,EAAIA,EAAI8W,GAAA,MACZvB,CAAA,EAEPnL,GAAMsJ,EAAE6D,GAAKD,EAAIk1K,GAAOpiL,EAAI,EAAKgb,EAAEjb,EAAIuJ,EAAE6D,EAAI,EAAI,GAAO6N,EAAE4oP,EAAI12P,EAC/DtX,EAAIoK,CAAA,MACCpK,EAAIo3D,GAAGhyC,EAAGA,EAAE6kB,EAAG7kB,EAAEgiJ,GAAIhiJ,EAAEyB,EAAGzB,EAAE/a,EAAGrK,EAAG2wQ,IAAA,IACpC3wQ,EAAG,CACNuoE,EAAI,QACE53D,CAAA,EAGVtG,EAAIk+D,GAAK1hD,IAAMlW,EAAE2iK,GAAK,GACtB/qG,EAAI,MAEDA,EAAG,OAAO,QAEb53D,EAAE2iK,KACW,OAAX/qG,EAAI53D,EAAEmnR,MAAmBvvN,EAAEq0H,GAAK,MAAQjsL,EAAEmnR,GAAK,KAAO,EAAInnR,EAAE82J,IAE9D,OAAOkwF,MAAM,6BAA8B,YAExChnP,EAAEm6J,GAAKzgK,EAAImK,CAAA,UAEX2+D,GAAGxiE,EAAG4E,EAAGvV,EAAGyU,EAAGpK,EAAGF,GAAA,KAClB,EAAIE,KAAO,KAKdk+D,EAJE/zD,EAAI7D,EACNkW,EAAItR,GAAKvV,EAAI,EAAI,GACjBolB,EAAIzU,EACJ4G,EAAIhC,GAAKvV,EAAI,EAAI,OAEduoE,EAAI,EAAGA,EAAI9zD,IAAK8zD,EAAG,KAClBzxD,EAAIsO,EAAE7N,EAAI,EAAIgxD,GAAA,KACXzxD,IACHA,GAAK,MACNtC,EAAEqS,EAAI,EAAI0hD,EAAI,GAAM/zD,EAAEqS,EAAI,EAAI0hD,EAAI,GAAKzxD,GAAM,GAC7CtC,EAAEqS,EAAI,EAAI0hD,EAAI,GAAM/zD,EAAEqS,EAAI,EAAI0hD,EAAI,GAAKzxD,GAAM,GAC7CtC,EAAEqS,EAAI,EAAI0hD,EAAI,GAAM/zD,EAAEqS,EAAI,EAAI0hD,EAAI,GAAKzxD,GAAM,IAElDvB,GAAKpL,CAAA,WAGA8kE,GAAGt+D,EAAG4E,EAAGvV,EAAGyU,EAAGpK,GAAA,KACf,EAAIoK,KAAO,KACZtK,EAAA,IACCA,EAAI,EAAGA,EAAInK,IAAKmK,EAAG,KAClBo+D,EAAI53D,EAAE4E,EAAI,EAAIpL,EAAI,GAEpBqK,EAAQ,IADR4Q,EAAIzU,EAAE4E,EAAI,EAAIpL,EAAI,IAElB0c,EAAI,KAAOrS,EACX4Q,GAAW,IAAJA,EAAYA,GAAK,GAAMyB,GAAM,GACtClW,EAAE4E,EAAI,EAAIpL,EAAI,IACH,IAAJo+D,EAAYA,GAAK,GAAM1hD,GAAM,GAAM,KAC9B,GAAJ0hD,EAAWA,GAAK,GAAM1hD,GAAM,IAAO,EAAK,GAChDlW,EAAE4E,EAAI,EAAIpL,EAAI,GAAU,IAAJib,EAAW5Q,CAAA,CAEjCe,GAAKlL,CAAA,WAGAslG,GAAGh/F,EAAG4E,EAAGvV,EAAGyU,EAAGpK,EAAGF,EAAGo+D,EAAG/zD,GAAA,IAE7BqS,EACAzB,EAFE7N,EAAI,QAGH6N,EAAI,EAAGA,EAAI/a,IAAK+a,EAAG,KACjByB,EAAI,EAAGA,EAAIpS,IAAKoS,EAAG,KAClB/P,EAAInG,EAAE4E,EAAIsR,GACd1c,EAAEo+D,EAAI,EAAI1hD,GAAK/P,EACfS,GAAKT,CAAA,CAEPvB,GAAKvV,EACLuoE,GAAK/zD,CAAA,QAEA,KAAO+C,CAAA,UAEP86F,GAAG1hG,EAAG4E,EAAGvV,EAAGyU,EAAGpK,GAAA,IAClBF,EAAA,IACCA,EAAI,EAAGA,EAAIE,IAAKF,EAAGnK,EAAEyU,EAAItK,GAAKwG,EAAE4E,EAAIpL,IAAM,WAExCyxQ,KACPga,GAAKziN,GACL0jN,GAAK5nN,GACL0mN,GAAKhmL,GACL+nL,GAAKrlL,EAAA,UAEEypK,GAAG97Q,EAAGyU,EAAGpK,GAChBsG,EAAK3Q,GAAK,SAAS2Q,EAAG3Q,EAAGmK,EAAGo+D,EAAG/zD,EAAGqS,EAAGzB,EAAG7N,EAAGT,EAAGjB,EAAGnC,EAAGG,EAAGiC,EAAG47B,EAAGn7B,EAAGnM,EAAG2E,GAAA,IAC7DuI,EACFk1K,EAAKz9K,EAAI,GAAM,EACbi7B,EAAIx1B,EAAEqS,EAAI,GAAMzB,EAAE7N,EAAI,IAAM,GAC5B+N,EAAIxO,EAAEjB,EAAI,GAAMnC,EAAEG,EAAI,IAAM,GAChC0B,EAAE,MAAQ5E,GAAA,IACN7B,EAAK,EAAIk7B,EAAI1kB,EAAI,QAAW,MAChC7Q,EAAE9D,EAAE3Q,EAAI,GAAQ,IAAJ8O,EAASA,GAAK,GAAIgH,EAAG47B,GAAA,MACzBvnC,IACJ2E,EAAK,EAAIwW,EAAI0kB,EAAI,QAAW,EAC9Bv1B,EAAEtK,EAAEo+D,EAAI,GAAQ,IAAJz5D,EAASA,GAAK,GAAIyH,EAAGnM,IAC9BkN,EAAI,EAAGA,GAAKk1K,IAAKl1K,EAAG,KACnB88G,EAAI5/G,EAAEqS,EAAIvP,GAAM8N,EAAE7N,EAAID,IAAM,GAC5BvB,EAAIe,EAAEjB,EAAIyB,GAAM5D,EAAEG,EAAIyD,IAAM,GAC5BxC,EAAIk1B,EAAIoqF,EAAI9uG,EAAIvP,EAAI,OACpBqxD,EAAKtyD,EAAI,GAAKs/G,EAAI9uG,IAAO,EAE7BxW,EAAKs4D,EAAIp9B,GAAM,EACfA,GAFAl1B,EAAKA,EAAI,GAAKk1B,EAAIj0B,IAAO,GAEhBq+G,GAAM,EACf3/G,EAAE9D,EAAE3Q,EAAI,EAAIsX,EAAI,GAAQ,IAAJxI,EAASA,GAAK,GAAIgH,EAAG47B,GAAK,EAAIp6B,EAAI,GAAKjN,GAC3DoK,EAAE9D,EAAE3Q,EAAI,EAAIsX,EAAI,GAAQ,IAAJ0yB,EAASA,GAAK,GAAIl0B,EAAG47B,GAAK,EAAIp6B,EAAI,GAAKjN,GAAA,MACnDF,IACJ2E,EAAKgG,EAAIwQ,GAAM,EAChB0kB,EAAKo9B,EAAIrxD,GAAM,EAChBtB,EAAEtK,EAAEo+D,EAAI,EAAIjxD,EAAI,GAAQ,IAAJxI,EAASA,GAAK,GAAIyH,EAAGnM,GAAK,EAAIkN,EAAI,GAAKjN,GAC3DoK,EAAEtK,EAAEo+D,EAAI,EAAIjxD,EAAI,GAAQ,IAAJ0yB,EAASA,GAAK,GAAIzzB,EAAGnM,GAAK,EAAIkN,EAAI,GAAKjN,IAC7D2/B,EAAIoqF,EACJ9uG,EAAIvP,CAAA,CAEF,EAAJhH,IACID,EAAK,EAAIk7B,EAAI1kB,EAAI,QAAW,EAC9B7Q,EAAE9D,EAAE3Q,EAAI+O,EAAI,GAAQ,IAAJD,EAASA,GAAK,GAAIgH,EAAG47B,GAAK3iC,EAAI,GAAK1E,GACnD,MAAQF,IACJ2E,EAAK,EAAIwW,EAAI0kB,EAAI,QAAW,EAC9Bv1B,EAAEtK,EAAEo+D,EAAIx5D,EAAI,GAAQ,IAAJD,EAASA,GAAK,GAAIyH,EAAGnM,GAAK2E,EAAI,GAAK1E,IAAA,WAGlD0jK,KACP0hB,GAAE+mG,IAAMloG,GACRmB,GAAEomG,IAAM9qK,GACR0kE,GAAEknG,IAAMhnG,GACRF,GAAEqmG,IAAMhjG,GACRrD,GAAEimG,IAAM/iG,GACRlD,GAAEsmG,IAAMlmG,GACRJ,GAAEqnG,IAAMpnG,GACRD,GAAEylG,IAAMnqK,GACR0kE,GAAE0lG,IAAMriG,GACRrD,GAAE2lG,IAAMziG,GACRlD,GAAE4lG,IAAMxlG,EAAA,UAEDiqF,GAAGnpQ,GAAA,OACHA,GAAK8gL,GAAM,EAAI9gL,EAAI,EAAI,IAAOA,GAAKuhL,EAAA,UAEnCgqF,GAAGvrQ,EAAG4E,GAAA,OACNukQ,IAAK,MAAQnpQ,GAAM,IAAO,MAAQ4E,GAAM,GAAK,gBAE7C6mQ,GAAGzrQ,EAAG4E,EAAGvV,GAAA,OACT85Q,IACH,MAAQnpQ,GAAM,IAAO,KAAO4E,GAAM,IAAO,MAAQvV,GAAM,GAAK,eAGzDw2Q,GAAG7lQ,EAAG4E,GAAA,OACNukQ,IAAK,MAAQnpQ,GAAM,IAAO,MAAQ4E,GAAM,GAAK,gBAE7ConQ,GAAGhsQ,EAAG4E,EAAGvV,EAAGyU,EAAGpK,GACtBoK,EAAEpK,EAAI,GAAK6xQ,GAAGvrQ,EAAG3Q,GACjByU,EAAEpK,EAAI,GAAK+xQ,GAAGzrQ,EAAG4E,EAAGvV,GACpByU,EAAEpK,EAAI,GAAKmsQ,GAAG7lQ,EAAG4E,EAAA,UAEVykQ,GAAGrpQ,EAAG4E,EAAGvV,EAAGyU,EAAGpK,GACtBoK,EAAEpK,EAAI,GAAKmsQ,GAAG7lQ,EAAG4E,GACjBd,EAAEpK,EAAI,GAAK+xQ,GAAGzrQ,EAAG4E,EAAGvV,GACpByU,EAAEpK,EAAI,GAAK6xQ,GAAGvrQ,EAAG3Q,EAAA,UAEV88Q,GAAGnsQ,EAAG4E,EAAGvV,EAAGyU,EAAGpK,GAAA,IAClBF,EAAIiyQ,GAAGzrQ,EAAG4E,EAAGvV,GACjBuV,EAAMpL,GAAK,EAAK,IAAQqsQ,GAAG7lQ,EAAG4E,IAAM,EACpCd,EAAEpK,EAAI,GAAiB,IAAX6xQ,GAAGvrQ,EAAG3Q,GAAamK,GAAK,EACpCsK,EAAEpK,EAAI,GAAKkL,CAAA,UAEJ2hD,GAAGvmD,EAAG4E,EAAGvV,EAAGyU,EAAGpK,GAAA,IAClBF,EAAgB,IAAXqsQ,GAAG7lQ,EAAG4E,GAAY,GAC3Bd,EAAEpK,EAAI,GAAiB,IAAX6xQ,GAAGvrQ,EAAG3Q,GAAao8Q,GAAGzrQ,EAAG4E,EAAGvV,IAAM,EAC9CyU,EAAEpK,EAAI,GAAKF,CAAA,UAEJ8yQ,GAAGtsQ,EAAG4E,EAAGvV,EAAGyU,EAAGpK,GACtBoK,EAAEpK,EAAI,GAAK,IACXsyQ,GAAGhsQ,EAAG4E,EAAGvV,EAAGyU,EAAGpK,EAAI,YAEZosQ,GAAG9lQ,EAAG4E,EAAGvV,EAAGyU,EAAGpK,GACtB2vQ,GAAGrpQ,EAAG4E,EAAGvV,EAAGyU,EAAGpK,GACfoK,EAAEpK,EAAI,GAAK,aAEJqsQ,GAAG/lQ,EAAG4E,EAAGvV,EAAGyU,EAAGpK,GACtBsyQ,GAAGhsQ,EAAG4E,EAAGvV,EAAGyU,EAAGpK,GACfoK,EAAEpK,EAAI,GAAK,aAEJwiQ,GAAGl8P,EAAG4E,GAAA,OACN,EAAI5E,EAAI,EAAIA,EAAI4E,EAAIA,EAAI5E,CAAA,UAExBotQ,GAAGxoQ,EAAGvV,EAAGyU,GAChB9D,EAAK4E,GAAK,SAAS5E,EAAG4E,EAAGlL,EAAGF,EAAGo+D,EAAG/zD,EAAGqS,EAAGzB,EAAG7N,GAAA,IACpC,IAAIT,EAAIsO,IAAU,EAAL7N,GAAU9C,EAAG2Q,GAAKtO,GAClC9W,EAAE2Q,EAAE4E,EAAI,GAAIlL,EAAEF,EAAI,GAAIo+D,EAAE/zD,EAAI,GAAIqS,EAAGzB,GACjCplB,EAAE2Q,EAAE4E,EAAI,GAAIlL,EAAEF,EAAI,GAAIo+D,EAAE/zD,EAAI,GAAIqS,EAAGzB,EAAI3Q,GACtCc,GAAK,IACJpL,IACAqK,EACD4Q,GAAK,EAAI3Q,EACV,EAAJ8C,GAASvX,EAAE2Q,EAAE4E,EAAI,GAAIlL,EAAEF,EAAI,GAAIo+D,EAAE/zD,EAAI,GAAIqS,EAAGzB,EAAA,WAGvC2sP,GAAGphQ,EAAG4E,EAAGvV,GAAA,OACT,GAAKA,EAAK,GAAK2Q,EAAK,GAAK4E,EAAI,EAAI,EAAK,GAAKA,EAAI,EAAI,EAAKvV,CAAA,UAExDiyQ,GAAGthQ,EAAG4E,EAAGvV,EAAGyU,EAAGpK,GAAA,OACdsG,IAAM,SACP,EACH4+L,GAAGh6L,EAAGvV,EAAGyU,EAAGpK,EAAG,cAEZ,EACHkuR,GAAGhjR,EAAGvV,EAAGyU,EAAGpK,GAAA,WAET,EACHguR,GAAG9iR,EAAGvV,EAAGyU,EAAGpK,GAAA,UAGT8zQ,GAAGxtQ,EAAG4E,GAAA,IACTvV,EACFmK,EACAo+D,EAAIhzD,EAAEmhI,EACNliI,EAAIe,EAAEs6J,GACNhpJ,EAAIlW,EAAEwhK,GACN/sJ,EAAIzU,EAAE0hK,GAAK,GACX96J,EAAI5G,EAAEwhK,GACNr7J,EAAInG,EAAE0hK,GAAK,IACXx8J,EAAIlF,EAAEwhK,GACNz+J,EAAI/C,EAAE0hK,GAAK,QACRryK,EAAI,EAAG,GAAKA,IAAKA,EAAG6mB,EAAEzB,EAAI,GAAKplB,EAAI,GAAK,QACxCA,EAAI,EAAG,EAAIA,IAAKA,EAClBuX,EAAET,EAAI,GAAK9W,EAAI,GAAK,IAAO6V,EAAEnC,EAAI,GAAK1T,EAAI,GAAK,UAC9CuoE,EACC1hD,EAAEzB,EAAI,EAAI,IAAM7N,EAAET,EAAI,EAAI,IAAMjB,EAAEnC,EAAI,EAAI,IAAM,KAChDrJ,EAAEwc,EAAGzB,EAAI,GAAK,EAAG,IAAK,IACvB/a,EAAEkN,EAAGT,EAAI,GAAK,EAAG,IAAK,GACtBzM,EAAEwL,EAAGnC,EAAI,GAAK,EAAG,IAAK,IACrBvJ,EAAI,EAAGA,EAAIwG,EAAEu2J,KAAM/8J,EAAG,KACrB0J,EAAI0B,EAAE0xJ,GAAG1xJ,EAAEgwJ,GAAKp7J,GAAA,GAChB,EAAIA,EAAG,KACJnK,GAAK,EAAG,GAAKA,IAAKA,EAAGyU,EAAEoS,EAAGzB,EAAI,GAAKplB,EAAI,EAAG6mB,EAAGzB,EAAI,GAAKplB,EAAI,GAAI,OAC9DA,GAAK,EAAG,EAAIA,IAAKA,EACpByU,EAAE8C,EAAGT,EAAI,GAAK9W,EAAI,EAAGuX,EAAGT,EAAI,GAAK9W,EAAI,EAAG,GACtCyU,EAAEoB,EAAGnC,EAAI,GAAK1T,EAAI,EAAG6V,EAAGnC,EAAI,GAAK1T,EAAI,EAAG,OAE1C8V,EAAInF,EAAEknR,GACRnmP,EAAI/gC,EAAE6oK,GAAKrvK,EACXoM,EAAI1C,EAAE4hK,GACNrrK,EAAIyJ,EAAE8/J,GAAA,KACJprG,IACD9zD,EAAEoS,EAAGzB,EAAI,GAAItP,EAAE47B,GAAG3iC,EAAG,EAAG,IACzB0F,EAAE8C,EAAGT,EAAI,GAAIhB,EAAE47B,GAAG77B,EAAG,EAAG,GACxBpB,EAAEoB,EAAGnC,EAAI,GAAIoC,EAAE47B,GAAG+zH,GAAI,EAAG,IACvB5xJ,EAAEi2J,GAAI,KACJ/6J,EAAI8X,EACJvP,EAAI8N,EAAI,GAAK,SACbmjD,IACDp+D,GAAKwG,EAAEu2J,GAAK,EACT78J,EAAE0E,EAAGuI,EAAGxB,EAAE47B,GAAG3iC,EAAE,IAAK,GACpB0F,EAAE1F,EAAGuI,EAAGxB,EAAE47B,EAAI,GAAG3iC,EAAG,EAAG,IACxB/O,EAAI,EAAG,EAAIA,EAAGA,IACjB+O,EAAEuI,EAAI,IAAMtX,GAAK+O,EAAEuI,EAAI,IAAMtX,GAAK+O,EAAEuI,EAAI,IAAMtX,GAAK+O,EAAEuI,EAAI,EAAItX,GAAA,IAC1DA,EAAI,EAAG,GAAKA,IAAKA,EAAGoK,IAAM,EAC5B2E,EAAI8X,EAAKvP,EAAI8N,EAAI8rK,GAAGlxL,GAAK4uL,GAAE/6K,EAAEi8J,GAAG9vK,IAAI+O,EAAGuI,GAAI26P,GAAG7nQ,EAAGmM,EAAG,IAAMvW,EAAG+O,EAAGuI,EAAA,MAC9D,GAAMvI,EAAIgjQ,GAAG5nQ,EAAGo+D,EAAG10D,EAAEi8J,GAAG,IAAMmf,GAAElgL,GAAG8X,EAAGzB,GAAI,GAAKhb,EACpD,IAAKpK,EAAI,EAAG,GAAKA,IAAKA,EAAGoK,IAAM,EAAG6nQ,GAAG7nQ,EAAGmM,EAAG,IAAMvW,EAAG6mB,EAAGzB,EAAI8rK,GAAGlxL,IAAA,IAChEA,EAAI6T,EAAE6/J,GACN3kK,EAAIgjQ,GAAG5nQ,EAAGo+D,EAAG10D,EAAEwlK,IACfmV,GAAGz/K,GAAGwI,EAAGT,GACT03K,GAAGz/K,GAAG8G,EAAGnC,GAETtJ,EAAImM,EACJxH,EAAIwI,EACJD,EAAIR,EACA,KAJJjD,EAAI7T,EAAK,KAIO,IAAJ6T,EAAUukR,GAAGhuR,EAAG,IAAK2E,EAAGuI,GAAKghR,GAAGluR,EAAG,IAAK2E,EAAGuI,IAEvDzD,EAAIgC,EACJzL,EAAIsJ,EACA,KAHJ1T,IAAM,KAGU,IAAJA,EAAUo4R,GAAG7hR,EAAG,IAAK1C,EAAGzJ,GAAKkuR,GAAG/hR,EAAG,IAAK1C,EAAGzJ,IACvDm+D,EAAI53D,EAAEmxK,GAAK,IACRrtK,EAAEqB,EAAE47B,GAAG3iC,EAAG,EAAG8X,EAAGzB,EAAI,IAAK,IAC1B3Q,EAAEqB,EAAE47B,GAAG77B,EAAG,EAAG0B,EAAGT,EAAI,IAAK,GACzBrC,EAAEqB,EAAE47B,GAAG+zH,GAAI,EAAG5vJ,EAAGnC,EAAI,IAAK,IAC5B1T,EAAI,EAAIwU,EAAI7D,EAAEknE,EACd/hE,EAAInF,EAAE84D,GACN/3B,EAAI/gC,EAAE61J,GAAK,GAAKr8J,EAAI,GAAKqK,EAAI7D,EAAEm/K,EAC/Bv5K,EAAI5F,EAAE+1J,GACN7yJ,EAAIlD,EAAE41J,GAAK,EAAIp8J,EAAInK,EACnBoK,EAAIuG,EAAE+2J,GACN34J,EAAI4B,EAAEg3J,GAAK,EAAIx9J,EAAInK,EACdA,EAAI,EAAG,GAAKA,IAAKA,EAAGyU,EAAEqB,EAAG47B,EAAI1xC,EAAI2Q,EAAEm/K,EAAGjpK,EAAGzB,EAAI,GAAKplB,EAAG,QACrDA,EAAI,EAAG,EAAIA,IAAKA,EACnByU,EAAE8B,EAAG1C,EAAI7T,EAAI2Q,EAAEknE,EAAGtgE,EAAGT,EAAI,GAAK9W,EAAG,GAC/ByU,EAAErK,EAAG2E,EAAI/O,EAAI2Q,EAAEknE,EAAGhiE,EAAGnC,EAAI,GAAK1T,EAAG,aAGhC2yQ,GAAGhiQ,EAAG8D,EAAGpK,EAAGF,EAAGo+D,EAAG/zD,EAAGqS,EAAGzB,EAAG7N,GAAA,IAC9BT,EAAI,CAAC,GACPjB,EAAI,CAAC,GACLnC,EAAI,EACJG,EAAI,MAAQ0D,EAAIA,EAAE4+J,GAAK,EACvBrgK,EAAI,MAAQyB,EAAIA,EAAI,IAAImjM,GAAA,GACtB,MAAQ/pM,GAAK,GAAKtG,EAAG,OAAO,EAChCyL,EAAE3S,KAAOwN,EACTmF,EAAEwB,EAAI7C,EACNqB,EAAE6vJ,GAAKt7J,EACPoK,EAAI,CAACA,GACLpK,EAAI,CAACA,GACLyL,EAAEw0J,GAAK,CAACx0J,EAAEw0J,IACV35J,EAAG,KACG+gC,EAAIj9B,EACJrK,EAAIC,EACJ0E,EAAI+G,EAAEw0J,GAAA,GACV/0J,EAAE,MAAQ5E,GACV4E,EAAE,MAAQnL,GACVmL,EAAE,MAAQxG,GACVA,EAAE,GAAK,EACH,IAAM3E,EAAE,KAAOpK,EAAG2Q,EAAG+gC,EAAE,GAAI,QAAS,IAClC1xC,EAAG2Q,EAAG+gC,EAAE,GAAK,EAAG,QAAS,CAC3B3iC,EAAI,QACE4B,CAAA,KAEJ2G,EAAI9M,EAAGmG,EAAG+gC,EAAE,GAAK,MACjB,GAAKp6B,GAAK,WAAaA,EAAG,CAC5BvI,EAAI,QACE4B,CAAA,IAEJkD,GAAKyD,EAAIlN,EAAE,GAAK,EAAG,CACrB2E,EAAI,QACE4B,CAAA,CAER5B,EAAE,GAAKuI,EACPo6B,EAAE,IAAM,GACRtnC,EAAE,IAAM,GAEV2E,EAAI,KAEF,GAAKA,EAAG,OAAOA,EAAA,IACnBuI,EAAI,EAAIxB,EAAEw0J,GAAG,GACRjgK,EAAIA,EAAE,KAAQ,CAGjBsG,EAAG,KACGq5B,EAAIr5B,EACRvG,EAAIqK,EACJ1F,EAAI1E,EAAA,IAEFib,EAAIxO,EACJhI,EAAI+G,EACJu+G,EATJ1iF,EAAI,CAAC,OAMC01B,EALN1zD,EAAI,CAACA,IASD,GAAK,EACH,EAAI3E,EAAE,GAAIA,EAAI,MACb,KACE/O,EAAGgqC,EAAG5/B,EAAE,GAAI,QAAS,IACpB,IAAMI,EAAGw/B,EAAG5/B,EAAE,GAAK,GAAI,CACzB2E,EAAI,QACE4B,CAAA,IAEJ,GAAK5B,EAAE,GAAI,CACbA,EAAI,QACE4B,CAAA,KAEJoF,EAAIvL,EAAGw/B,EAAG5/B,EAAE,GAAK,GACjB0K,EAAI,EAAIgjE,EAAG9tC,EAAG5/B,EAAE,GAAK,OAErB,YAAc0K,GADlBk1B,EAAI,EAAI8tC,EAAG9tC,EAAG5/B,EAAE,GAAK,KACI,CACvB2E,EAAI,QACE4B,CAAA,OAEAyjH,IAAMA,EAAE,GAAKr+G,GAAA,MACbuP,IAAMA,EAAE,GAAKxQ,GAAA,MACbhG,IAAMA,EAAE,GAAKk7B,GACrB5/B,EAAE,IAAM,GACR2E,EAAE,IAAM,GACRq4D,EAAE,GAAK,EAETr4D,EAAI,MAGR2E,EAAIA,EAAE,GACNg+B,EAAIA,EAAE,GACF,GAAK3iC,EAAG,OAAOA,EAAA,GACnB3E,KAAW,EAAJsnC,IACFp6B,GAAK5D,EAAG,OAAO,WACZc,IAAMA,EAAE,MAAY,GAAJk9B,IAAA,MAChB7qB,IAAMA,EAAE,GAAKzc,GAAA,MACbgb,IAAMA,EAAE,GAAK,GACrByB,EAAI/P,EAAE,GACN46B,EAAI77B,EAAE,GACFnC,GAAKtJ,GAAK,MAAQmN,EAAG,CACvBxI,EAAI,WAGF,EAAI1E,EAAG,CACT0E,EAAI,WAGDuI,GAAK5D,IAAQ4D,IAAM5D,IAAM1T,EAAG2Q,EAAG8D,EAAE,GAAI,QAAU,CAClDpK,EAAI,CAACA,GACLyL,EAAE8sK,GAAK,CAAC9sK,EAAE8sK,IACV9sK,EAAEhB,EAAI,CAACgB,EAAEhB,GACTgB,EAAE+yJ,GAAK,CAAC/yJ,EAAE+yJ,IACVl4J,EAAG,CACDoF,EAAIpF,EACJ5B,EAAI0F,EACJ6C,EAAIjN,EAAA,IACA+8D,EAAItxD,EAAEw0J,GACRhlJ,EAAIxP,EAAE8sK,GACN9zK,EAAIgH,EAAEhB,EACNs/G,EAAIt+G,EAAE+yJ,GACR/zJ,EAAI,GACJS,EAAE,MAAQQ,GACVR,EAAE,MAAQ+B,GACV0yB,EAAIj7B,EAAE,OACFo4K,EAAI7vK,EAAE,OACV/B,EAAE,MAAQ+P,GACV/P,EAAE,MAAQ6+G,GACV9uG,EAAE,GAAK,KACPxW,EAAE,GAAK,KACFslH,EAAE,GAAK,IAAO,IACjBrlH,EAAE,GAAKi7B,EACP1yB,EAAE,GAAK6vK,EACH,EAAIA,EAAG,CACTp4K,EAAI,QACE4B,CAAA,KAEJ6U,EAAIhb,EAAGuL,EAAGi0B,EAAI,MACd,WAAaxkB,EAAG,CAClBzW,EAAI,QACE4B,CAAA,KAEJ87K,EAAK,EAAIjnK,EAAI,GAAM,KACvB1Q,GAAK23K,EACD,EAAIrlH,GAAKtyD,EAAIsyD,EAAG,CAClBr4D,EAAI,QACE4B,CAAA,KAEH3Q,EAAG+V,EAAGi0B,EAAG,UAAYhqC,EAAG+V,EAAGi0B,EAAG,QAAS,CAC1Cj7B,EAAI,QACE4B,CAAA,IAEJw2K,EAAE,GAAKsF,EAAG,CACZ19K,EAAI,QACE4B,CAAA,CAER3Q,EAAG+V,EAAGi0B,EAAG,UAAa1kB,EAAE,GAAKvP,EAAKjH,EAAE,GAAKk7B,EAAI,EAAKoqF,EAAE,GAAK5uG,GACzDwkB,GAAKyiJ,EACLtF,GAAKsF,CAAA,KAGTpiL,EAAIA,EAAE,GACNyL,EAAE8sK,GAAK9sK,EAAE8sK,GAAG,GACZ9sK,EAAEhB,EAAIgB,EAAEhB,EAAE,GACVgB,EAAE+yJ,GAAK/yJ,EAAE+yJ,GAAG,GACR,GAAK95J,EAAG,MAEd1E,EAAI,CAACA,GACLyL,EAAE8xJ,GAAK,CAAC9xJ,EAAE8xJ,IACV9xJ,EAAE+sK,GAAK,CAAC/sK,EAAE+sK,IACVlyK,EAAG,GACCy2D,EAAIz2D,EACL5B,EAAI0F,EACJ6C,EAAIjN,EACJib,EAAIxP,EAAEw0J,GAAG,GACTx7J,EAAIgH,EAAE8xJ,GACNxzC,EAAIt+G,EAAE+sK,GACN9sK,EAAIhH,EAAE,GACNi7B,GAAKhqC,EAAGonE,EAAGrxD,EAAG,QACdjB,GAAK9U,EAAGonE,EAAGrxD,EAAG,QACfR,EAAE,MAAQ6xD,GACV7xD,EAAE,MAAQ+B,GACV/B,EAAE,MAAQzG,GACVyG,EAAE,MAAQ6+G,GACV,EAAI98G,EAAE,GAENvI,EAAI,MACD,IACCi7B,GAAKl1B,EAAG,IACVsyD,EAAI58D,EAAG48D,EAAGrxD,EAAI,GACV,IAAMuP,GAAK8hD,EAAI9hD,EAAI,GAAI,CACzBvW,EAAI,QACE4B,CAAA,IAEJkD,GAAKuzD,EAAI9vD,EAAE,GAAK,EAAG,CACrBvI,EAAI,QACE4B,CAAA,CAER7B,EAAE,GAAKs4D,EACPr4D,EAAE,IAAM,EACRuI,EAAE,IAAM,EACR88G,EAAE,GAAKt/G,CAAA,MAENs/G,EAAE,GAAK,GAAK98G,EAAE,IAAM,IAAM8vD,EAAErxD,EAAI,MAAQqxD,EAAErxD,EAAI,IAAM,GAClDjH,EAAE,GAAKwI,EAAE,GACdvI,EAAI,KAEN1E,EAAIA,EAAE,GACNyL,EAAE8xJ,GAAK9xJ,EAAE8xJ,GAAG,GACZ9xJ,EAAE+sK,GAAK/sK,EAAE+sK,GAAG,GACZpuK,EAAIA,EAAE,GACF,GAAK1F,EAAG,SACR,WAAa+G,EAAE8xJ,GAAI,OAAO,WACtBxiJ,GAAKhb,IAAMgb,EAAE,GAAKtP,EAAE+sK,GAAK,EAAI,GACrCh8J,EAAI,CAACA,GACL6qB,EAAI,CAACA,GACD57B,EAAE+sK,GAAI,IACJ,EAAIx4K,EAAG,CACT0E,EAAI,QAGNqW,EAAIyB,EACJhT,EAAI69B,EACJtnC,EAAIoK,EAAA,MACI7D,GAAK,EAAItG,EACZsG,EAAI,EACL,GAAKtG,GAAK,IAAMsG,EAAE8D,EAAI,MAAQ9D,EAAE8D,EAAI,IAAM,IACxC6C,EAAI,CAAC,GACN8vD,EAAI,CAAC,GACL9hD,EAAI,CAAC,GAEN/O,EADCzH,EAAI,IAAI09K,EACH77K,EAAG8D,EAAGpK,GACZukQ,GAAG9/P,EAAGwI,EAAG8vD,EAAG9hD,IACP,MAAQF,IAAMA,EAAE,GAAK9N,EAAE,IACxB,MAAQzD,IAAMA,EAAE,GAAKuzD,EAAE,IACvB,MAAQh9D,IAAMA,EAAE,GAAKkb,EAAE,IACtB3U,EAAI,GACJA,EAAI,GACRA,EAAI,MACJ,IACD,GAAKtG,EAAG,CACV0E,EAAI,QAGNqW,EAAIssB,EAAA,MACI/gC,GAAK,GAAKtG,IAAMwoQ,GAAGliQ,EAAG8D,EAAI,EAAGpK,EAAI,GACpCsG,EAAI,GACHkD,EAAIlD,EAAE8D,EAAI,GAAM9D,EAAE8D,EAAI,IAAM,EAAM9D,EAAE8D,EAAI,IAAM,GAC/CrK,EAAmC,OAA7BuG,EAAE8D,EAAI,IAAM,EAAK9D,EAAE8D,EAAI,IAC7B9D,EAAmC,OAA7BA,EAAE8D,EAAI,IAAM,EAAK9D,EAAE8D,EAAI,IAC1B,EAAJZ,GACA,GAAMA,GAAK,EAAK,MACbA,GAAK,EAAK,IACbA,GAAK,GAAKiC,EAAE8xJ,KACXx9J,IACAuG,EACIA,EAAI,GACJkW,IAAMA,EAAE,GAAKzc,GAAIgb,IAAMA,EAAE,GAAKzU,GAAKA,EAAI,QAE7CA,EAAG,OAAO,KACfkW,EAAIA,EAAE,GACN6qB,EAAIA,EAAE,GACFh+B,IAAMoD,EAAE,IAAM+P,GAAKhR,EAAE,IAAM67B,GAAI,OAAO,QAClCn6B,IACJA,EAAE,GAAKzB,EACRyB,EAAEg1B,OAAS93B,EAAI8C,EAAED,EAClB/B,EAAE,WAAad,EAAI8C,EAAED,GACrB/B,EAAEgC,EAAEg1B,QAAUh1B,EAAEouJ,GAAKt7J,IAAA,aAGlB,GAAK0E,GAAM,GAAKA,GAAK2E,GAAK,MAAQ6D,GACpC,MAAQ/C,IAAMA,EAAE,IAAM,MAAQsB,EAAE8sK,IAAM,EAAI9sK,EAAE8sK,GAAG1+K,QAChD,MAAQiG,IAAMA,EAAE,GAAK0c,GACrB,MAAQ0hD,IAAMA,EAAE,GAAK72B,GACrB,GACA3iC,CAAA,UAEG8vQ,GAAGluQ,EAAG4E,EAAGvV,GAAA,IACZyU,EAAIc,EAAE6B,MACR/M,EAAIkL,EAAE8B,OACNlN,EAAI,EACJo+D,EAAI,EACJ/zD,EAAIC,EACJoS,EAAIxc,EAAA,GACNkL,EAAE+xJ,GAAK,MAAQ32J,GAAK,EAAIA,EAAE22J,GAExB/xJ,EAAE+xJ,KACA9yJ,EAAI7D,EAAEwzC,GACPt9B,EAAIlW,EAAE+kK,GACNvrK,EAAIwG,EAAE4F,EACNgyD,EAAI53D,EAAEnG,EACP,GAAKxK,IAAOmK,IAAM,EAAKo+D,IAAM,GAC7B,EAAIp+D,GAAK,EAAIo+D,GAAK,GAAK/zD,GAAK,GAAKqS,GAAK1c,EAAIqK,EAAIC,GAAK8zD,EAAI1hD,EAAIxc,GAE3D,OAAO,KACTkL,EAAEgB,EAAIpM,EACNoL,EAAE/K,EAAI+9D,EACNhzD,EAAEwxJ,GAAK58J,EAAIqK,EACXe,EAAEgzD,EAAIA,EAAI1hD,EACVtR,EAAEkQ,EAAIjR,EACNe,EAAE20B,EAAIrjB,EACNtR,EAAEy1G,GAAK,MAAQr6G,GAAK,EAAIA,EAAEq6G,GACtBz1G,EAAEy1G,GAAI,KAGHzlG,EAAG/Q,EAAGqS,EAFX7mB,EAAI,CAAC2Q,EAAE85J,IACPtgK,EAAI,CAACwG,EAAE65J,KACc,OAAO,EAC5Bj1J,EAAEk1J,GAAKzqK,EAAE,GACTuV,EAAEi1J,GAAKrgK,EAAE,UAEXoL,EAAE03D,GAAK,MAAQt8D,GAAKA,EAAEs8D,GACtB13D,EAAEm6J,GAAK,MAAQ/+J,IAAMA,EAAE8kR,GACvBlgR,EAAEy1G,KAAQz1G,EAAE03D,GAAK13D,EAAEk1J,GAAM,EAAIh2J,EAAK,GAAKc,EAAEi1J,GAAM,EAAIngK,EAAK,EAAKkL,EAAEm6J,GAAK,GAC7D,WAEAgvG,GAAG/tQ,GAAA,GACN,MAAQA,EAAG,OAAO,KAClB,GAAKA,EAAEyjH,EAAG,KACR7+G,EAAI5E,EAAEkF,EAAE2/Q,KACZjgR,EAAEolG,KAAOhqG,EAAE0G,OAAS,GAAK9B,EAAE+P,EAC3B/P,EAAE+P,GAAK/P,EAAE+P,CAAA,MAER/P,EAAI5E,EAAEkF,EAAE80J,GACNh6J,EAAIA,EAAE0G,OACN9B,EAAEk3K,IAAM97K,EAAI,GAAK4E,EAAEmwJ,GACnBnwJ,EAAEmwJ,IAAMnwJ,EAAEmwJ,GACVnwJ,EAAEi3K,IAAO77K,EAAI,GAAM,GAAK4E,EAAEw5J,GAC1Bx5J,EAAEw5J,IAAMx5J,EAAEw5J,GACVx5J,EAAE2pI,IAAOvuI,EAAI,GAAM,GAAK4E,EAAE45J,GAC1B55J,EAAE45J,IAAM55J,EAAE45J,GACX,MAAQ55J,EAAEiQ,IAAOjQ,EAAE+sK,IAAM3xK,EAAI,GAAK4E,EAAEq1J,GAAMr1J,EAAEq1J,IAAMr1J,EAAEq1J,IAAA,OACjD,WAEA0zG,GAAG3tQ,EAAG4E,EAAGvV,EAAGyU,GAAA,GACf,MAAQA,GAAK,GAAK9D,GAAK,GAAK4E,EAAG,OAAO,KACtC,MAAQvV,EAAG,IACTA,EAAEsnK,GAAI,KACJj9J,EAAIrK,EAAEmkD,GACRokB,EAAIvoE,EAAE01K,GACNlhK,GAAW,EAAPxU,EAAEuW,EACNsQ,GAAW,EAAP7mB,EAAEwK,EAAA,GACJ,EAAIgK,GAAK,EAAIqS,GAAK,GAAKxc,GAAK,GAAKk+D,GAAK/zD,EAAInK,EAAIsG,GAAKkW,EAAI0hD,EAAIhzD,EAC7D,OAAO,EACT5E,EAAItG,EACJkL,EAAIgzD,CAAA,IAEFvoE,EAAEgrH,GAAI,KAGHzlG,EAAG5U,EAAG4E,EAFXlL,EAAI,CAACrK,EAAEyqK,IACPliG,EAAI,CAACvoE,EAAEwqK,KACc,OAAO,EAC5B75J,EAAItG,EAAE,GACNkL,EAAIgzD,EAAE,IAGV9zD,EAAE2C,MAAQzG,EACV8D,EAAE4C,OAAS9B,EACX5E,EAAG,KACGyU,EAAI3Q,EAAE2C,MACNG,EAAI9C,EAAE4C,OAAA,GACV1G,EAAI8D,EAAE2/G,EACF,GAAKhvG,GAAK,GAAK7N,KAAO5G,GAAK6lR,IAAM,GAAK7lR,GAAIA,EAAI,MAC7C,IACC,GAAK8D,EAAE4mK,IAAM,MAAQ5mK,EAAEgjK,GAAI,CACzBjjK,EAAK+zD,EAAIl+D,EAAIkL,EAAI,MAEnBuB,GADA+P,EAAIzB,EAAIwqK,GAAGj/K,IACH4G,EAAA,MACL5G,IAEF43D,GAAMhxD,EAAI,GAAK,GADdhC,GAAK6P,EAAI,GAAK,GAEhB,IAAMzU,IAAgB6D,GAATnK,EAAI+a,GAAa7N,IAE5B,OADJA,EAAIpN,EAAE2M,EAAI,EAAIyxD,EAAI/zD,IACH,CACb7D,EAAI,QACEA,CAAA,CAER8D,EAAEgjK,GAAKlgK,EAAA,GACF5G,IACCyU,EAAI3Q,EAAEoB,EAAE2/Q,MACPtrH,GAAK3yJ,EACP6N,EAAEu1F,GAAK,EACPv1F,EAAEE,EAAIuB,EACNzB,EAAEwX,KAAO9lB,KACRsO,EAAI3Q,EAAEoB,EAAE80J,IACP57J,EAAIwI,EACN6N,EAAEqnK,EAAI,EACNrnK,EAAEsgJ,GAAK7+I,EACPzB,EAAEm0J,GAAKziK,EACPsO,EAAEvP,EAAI0B,EACN6N,EAAEonK,EAAI,EAAI11K,EACVsO,EAAE2pJ,GAAKx5J,EACP6P,EAAEmwQ,GAAKhtN,EACPnjD,EAAEqgJ,GAAKluJ,EACP6N,EAAE85H,EAAI,EAAIpoI,EAAIyxD,EACdnjD,EAAE+pJ,GAAK55J,EACP6P,EAAEkwQ,GAAK/sN,EACR,IAAM53D,IAAOyU,EAAEI,EAAIjO,EAAK6N,EAAEk9J,EAAI,EAAIxrK,EAAI,EAAIyxD,GACzCnjD,EAAEsvJ,GAAKlgK,EACP4Q,EAAEwlJ,GAAKvgK,EAAA,IAEdkL,EAAI,EACJlL,EAAIoK,EAAE2/G,EACN7rD,EAAI9zD,EAAE2C,MACN5C,EAAIC,EAAE4C,OACFhN,GAAKmsR,IAAM,GAAKnsR,EAAA,GACd,GAAKA,EACNsG,EAAI8D,EAAEoB,EAAE2/Q,KAENjgR,IADAsR,EAAI3d,KAAKsyB,IAAI7qB,EAAE2U,KACL9Q,EAAI,GAAK+zD,GAAK53D,EAAEisB,KAC1BrnB,GAAKsR,GAAK0hD,EAAIqnH,GAAGvlL,GACjBkL,GAAK,MAAQ5E,EAAEu5J,OACf,CACHv5J,EAAI8D,EAAEoB,EAAE80J,GACR9jJ,GAAK0hD,EAAI,GAAK,EACdzxD,GAAKtC,EAAI,GAAK,EACd4Q,EAAIlc,KAAKsyB,IAAI7qB,EAAE+0J,IACXnuJ,EAAIrO,KAAKsyB,IAAI7qB,EAAEo+J,IAAA,IACjBl5J,EAAI3M,KAAKsyB,IAAI7qB,EAAEw+J,IACfz7J,EAAIxK,KAAKsyB,IAAI7qB,EAAEi6J,IACf/2J,EAAIH,GAAKc,EAAI,GAAK+zD,EACpBhzD,GAAK6P,GAAK5Q,EAAI,GAAK+zD,GAAK53D,EAAE4oK,GAC1BhkK,GAAKgC,GAAKT,EAAI,GAAK+P,GAAKlW,EAAE4kR,GAE1BhgR,GADAA,GAAKM,GAAKiB,EAAI,GAAK+P,GAAKlW,EAAE2kR,IACjBlwQ,GAAKmjD,EAAMhxD,GAAKsP,EAAMhR,GAAKgR,EACpCtR,GAAK,MAAQ5E,EAAE5B,EACfwG,GAAK,MAAQ5E,EAAEkF,EACfN,GAAK,MAAQ5E,EAAE80J,GAAA,IACTp7J,IAAOkL,GAAK7B,GAAK60D,EAAKhzD,GAAK1B,GAAKlD,EAAE+jK,GAAMn/J,GAAK,MAAQ5E,EAAE6U,EAAA,MAE5DjQ,EAAI,EACT5E,EAAI4E,EAAI,EAAI,UAGZ,GAAK5E,GAAA,MACD3Q,GAAKA,EAAE81K,KAAOnlK,EAAI+tQ,GAAGjqQ,IADV9D,CAAA,KAIjB6tQ,GAAK,GACP1R,GAAK,CACH,EACA,EACA,EACA,EACA,GACA,GACA,GACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,UAEF2R,GAAK,GACLsW,GAAK,GACLC,GAAK,EACLC,GAAK,CACH,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EA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,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,EACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,EACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,KAEFmB,GAAK,CACH,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEF72M,GAAK,EACLouG,GAAK,CACH,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEFW,GAAK,CACH,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEFH,GAAK,KACLjpC,GAAK,CACH,CAAC,IAAK,IAAK,IAAK,GAChB,CAAC,IAAK,IAAK,IAAK,IAAK,GACrB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAC1B,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAE1DkoC,GAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,IACxDgB,GAAK,EAAE,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GACnEG,GAAK,CACH,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK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AAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,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AiBC,cAAA,QAAe,IAzMhC,CACd58G,GAAI,YACJ68G,GAAI,WACJrnR,GAAI,4BACK,2BACA,2BACA,yBACA,wBACA,0BACA,0BACA,2BACA,yBACA,2BACA,wBACA,yBACA,gCACA,yBACA,2BACA,0BACA,iBACTojG,GAAI,YACJkkL,GAAI,WACJj9H,GAAI,WACJk9H,IAAK,WACLl8M,GAAI,cACJm8M,GAAI,SACJzhH,GAAI,aACJg8G,GAAI,UACJt8B,GAAI,UACJvuF,GAAI,SACJ6X,GAAI,YACJ04G,GAAI,UACJ94H,GAAI,UACJllE,GAAI,WACJw8E,GAAI,UACJ8O,GAAI,kBACK,8BACA,wBACA,8BACA,mBACT2yG,GAAI,UACJzzK,GAAI,WACJ8vJ,GAAI,OACJ3sG,GAAI,WACJuwH,GAAI,QACJxzK,GAAI,SACJozE,GAAI,2BACK,kBACTj9D,GAAI,kBACK,8BACA,2BACA,2BACA,4BACA,4BACA,gCACA,gCACA,iCACA,sCACA,mCACA,kCACA,qBACTnnC,GAAI,YACJuhK,GAAI,WACJkjC,GAAI,WACJ/pG,GAAI,SACJ9F,GAAI,UACJz7G,GAAI,4BACK,2BACA,0BACA,0BACA,8BACA,0BACA,uBACTurN,GAAI,UACJC,IAAK,WACL5oH,GAAI,yBACK,iBACTr5H,GAAI,WACJopH,GAAI,WACJiX,GAAI,4BACK,2BACA,2BACA,iCACA,8BACA,uBACT2gB,GAAI,QACJkhG,GAAI,WACJrwB,GAAI,UACJpxF,GAAI,SACJnrC,GAAI,QACJ6sJ,GAAI,YACJh2M,GAAI,YACJ11E,GAAI,aACJ2rR,GAAI,YACJhH,GAAI,QACJxvN,GAAI,6BACK,wBACTu9F,GAAI,WACJoyH,GAAI,UACJ5vN,GAAI,WACJmxH,GAAI,SACJulG,GAAI,QACJC,GAAI,UACJr6O,IAAK,UACLs6O,GAAI,iBACK,+BACA,uBACTl5H,GAAI,QACJjhE,GAAI,UACJ81J,GAAI,aACJhwF,GAAI,gBACJgvB,GAAI,kBACJxmF,GAAI,QACJ9V,GAAI,YACJuxK,GAAI,UACJ3/E,GAAI,QACJ0sF,GAAI,UACJs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,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,MACA,IACA,MACA,MACA,IACA,MACA,MACA,IACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,MACA,MACA,IACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,KACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,IACA,IACA,IACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA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","sources":["Pages/Steps/StepOne/Fields/algorithm/filters/maxArrivalsFilter.js","Pages/Steps/StepOne/Fields/algorithm/filters/timeFilter.js","Pages/Steps/StepOne/Fields/algorithm/getAvailableTimeblocks.js","Pages/Steps/StepOne/Fields/algorithm/isDateAvailable.js","Pages/Steps/StepOne/Fields/algorithm/isDateAvailableWithTableCheck.js","Pages/Steps/StepOne/Fields/algorithm/processing/dailyGuestCounts.js","Pages/Steps/StepOne/Fields/algorithm/processing/mealTypeCount.js","Pages/Steps/StepOne/Fields/algorithm/processing/timeblocksAvailable.js","Pages/Steps/StepOne/Fields/algorithm/reservation_data/counter.js","Pages/Steps/StepOne/Fields/algorithm/restaurant_data/exceptions.js","Pages/Steps/StepOne/Fields/algorithm/restaurant_data/openinghours.js","Pages/Steps/StepOne/Fields/algorithm/simulateTableAssignment.js","Pages/Steps/StepOne/Fields/algorithm/tableHelpers.js","../node_modules/html2canvas/node_modules/tslib/tslib.es6.js","../node_modules/html2canvas/node_modules/src/Util.ts","../node_modules/src/css/layout/bounds.ts","../node_modules/html2canvas/node_modules/css-line-break/node_modules/src/Util.ts","../node_modules/html2canvas/node_modules/css-line-break/node_modules/utrie/node_modules/src/index.ts","../node_modules/html2canvas/node_modules/css-line-break/node_modules/src/Trie.ts","../node_modules/html2canvas/node_modules/src/linebreak-trie.ts","../node_modules/html2canvas/node_modules/src/LineBreak.ts","../node_modules/src/css/syntax/tokenizer.ts","../node_modules/src/css/syntax/parser.ts","../node_modules/src/css/types/length.ts","../node_modules/src/css/types/length-percentage.ts","../node_modules/src/css/types/angle.ts","../node_modules/src/css/types/color.ts","../node_modules/src/css/property-descriptors/background-clip.ts","../node_modules/src/css/property-descriptors/background-color.ts","../node_modules/src/css/types/functions/gradient.ts","../node_modules/src/css/types/functions/-prefix-linear-gradient.ts","../node_modules/src/css/types/functions/radial-gradient.ts","../node_modules/src/css/types/functions/-prefix-radial-gradient.ts","../node_modules/src/css/types/image.ts","../node_modules/src/css/property-descriptors/background-size.ts","../node_modules/src/css/types/functions/linear-gradient.ts","../node_modules/src/css/types/functions/-webkit-gradient.ts","../node_modules/src/css/property-descriptors/background-image.ts","../node_modules/src/css/property-descriptors/background-origin.ts","../node_modules/src/css/property-descriptors/background-position.ts","../node_modules/src/css/property-descriptors/background-repeat.ts","../node_modules/src/css/property-descriptors/line-break.ts","../node_modules/src/css/property-descriptors/border-color.ts","../node_modules/src/css/property-descriptors/border-radius.ts","../node_modules/src/css/property-descriptors/border-style.ts","../node_modules/src/css/property-descriptors/border-width.ts","../node_modules/src/css/property-descriptors/color.ts","../node_modules/src/css/property-descriptors/direction.ts","../node_modules/src/css/property-descriptors/display.ts","../node_modules/src/css/property-descriptors/float.ts","../node_modules/src/css/property-descriptors/letter-spacing.ts","../node_modules/src/css/property-descriptors/word-break.ts","../node_modules/src/css/property-descriptors/line-height.ts","../node_modules/src/css/property-descriptors/list-style-image.ts","../node_modules/src/css/property-descriptors/list-style-position.ts","../node_modules/src/css/property-descriptors/list-style-type.ts","../node_modules/src/css/property-descriptors/margin.ts","../node_modules/src/css/property-descriptors/overflow.ts","../node_modules/src/css/property-descriptors/overflow-wrap.ts","../node_modules/src/css/property-descriptors/padding.ts","../node_modules/src/css/property-descriptors/text-align.ts","../node_modules/src/css/property-descriptors/position.ts","../node_modules/src/css/property-descriptors/text-shadow.ts","../node_modules/src/css/property-descriptors/text-transform.ts","../node_modules/src/css/property-descriptors/transform.ts","../node_modules/src/css/property-descriptors/transform-origin.ts","../node_modules/src/css/property-descriptors/visibility.ts","../node_modules/html2canvas/node_modules/text-segmentation/node_modules/src/Util.ts","../node_modules/src/css/property-descriptors/z-index.ts","../node_modules/src/css/types/time.ts","../node_modules/src/css/property-descriptors/opacity.ts","../node_modules/src/css/property-descriptors/text-decoration-color.ts","../node_modules/src/css/property-descriptors/text-decoration-line.ts","../node_modules/src/css/property-descriptors/font-family.ts","../node_modules/src/css/property-descriptors/font-size.ts","../node_modules/src/css/property-descriptors/font-weight.ts","../node_modules/src/css/property-descriptors/font-variant.ts","../node_modules/src/css/property-descriptors/font-style.ts","../node_modules/src/core/bitwise.ts","../node_modules/src/css/property-descriptors/content.ts","../node_modules/src/css/property-descriptors/counter-increment.ts","../node_modules/src/css/property-descriptors/counter-reset.ts","../node_modules/src/css/property-descriptors/duration.ts","../node_modules/src/css/property-descriptors/quotes.ts","../node_modules/src/css/property-descriptors/box-shadow.ts","../node_modules/src/css/property-descriptors/paint-order.ts","../node_modules/src/css/property-descriptors/webkit-text-stroke-color.ts","../node_modules/src/css/property-descriptors/webkit-text-stroke-width.ts","../node_modules/src/css/index.ts","../node_modules/src/core/debugger.ts","../node_modules/src/dom/element-container.ts","../node_modules/html2canvas/node_modules/src/grapheme-break-trie.ts","../node_modules/html2canvas/node_modules/text-segmentation/node_modules/utrie/node_modules/src/index.ts","../node_modules/html2canvas/node_modules/text-segmentation/node_modules/src/Trie.ts","../node_modules/html2canvas/node_modules/src/GraphemeBreak.ts","../node_modules/src/dom/document-cloner.ts","../node_modules/src/core/features.ts","../node_modules/src/css/layout/text.ts","../node_modules/src/dom/text-container.ts","../node_modules/src/dom/replaced-elements/image-element-container.ts","../node_modules/src/dom/replaced-elements/canvas-element-container.ts","../node_modules/src/dom/replaced-elements/svg-element-container.ts","../node_modules/src/dom/elements/li-element-container.ts","../node_modules/src/dom/elements/ol-element-container.ts","../node_modules/src/dom/replaced-elements/input-element-container.ts","../node_modules/src/dom/elements/select-element-container.ts","../node_modules/src/dom/elements/textarea-element-container.ts","../node_modules/src/dom/replaced-elements/iframe-element-container.ts","../node_modules/src/dom/node-parser.ts","../node_modules/src/css/types/functions/counter.ts","../node_modules/src/render/bound-curves.ts","../node_modules/src/core/cache-storage.ts","../node_modules/src/render/vector.ts","../node_modules/src/render/bezier-curve.ts","../node_modules/src/render/effects.ts","../node_modules/src/render/path.ts","../node_modules/src/render/stacking-context.ts","../node_modules/src/render/border.ts","../node_modules/src/render/box-sizing.ts","../node_modules/src/render/background.ts","../node_modules/src/core/util.ts","../node_modules/src/render/font-metrics.ts","../node_modules/src/render/renderer.ts","../node_modules/src/render/canvas/canvas-renderer.ts","../node_modules/src/render/canvas/foreignobject-renderer.ts","../node_modules/src/core/logger.ts","../node_modules/src/core/context.ts","../node_modules/src/index.ts","../node_modules/lottie-react/compiled/hooks/useLottie.js","../node_modules/lottie-react/compiled/hooks/useLottieInteractivity.js","../node_modules/lottie-react/compiled/components/Lottie.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/moment-timezone/index.js","../node_modules/moment-timezone/moment-timezone.js","../node_modules/moment/locale/nl.js","../node_modules/moment/moment.js","../node_modules/property-expr/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/tiny-case/index.js","../node_modules/toposort/index.js","../node_modules/void-elements/index.js","../node_modules/classnames/index.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/html-parse-stringify/src/parse.js","../node_modules/html-parse-stringify/src/stringify.js","../node_modules/react-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/defaults.js","../node_modules/react-i18next/dist/es/i18nInstance.js","../node_modules/react-i18next/dist/es/initReactI18next.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/react-i18next/dist/es/I18nextProvider.js","../node_modules/react-i18next/dist/es/useSSR.js","../node_modules/i18next/dist/esm/i18next.js","i18n.js","Pages/Form/Config/formConfig.js","Utils/transformFonts.js","Hooks/useFonts.js","Utils/computeAlignmentValues.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","Hooks/useApi.js","../node_modules/react-icons/lib/iconsManifest.mjs","../node_modules/react-icons/lib/iconContext.mjs","../node_modules/react-icons/lib/iconBase.mjs","../node_modules/react-icons/fa6/index.mjs","Pages/Form/Structure/PopUp.js","Pages/Form/Structure/FullScreen.js","Pages/Steps/StepOne/Title/index.js","Pages/Steps/StepOne/Fields/DateSelector/Calendar.js","Pages/Steps/StepOne/Fields/DateSelector/Utils/dateUtils.js","Pages/Steps/StepOne/Fields/DateSelector/index.js","Pages/Steps/StepOne/Fields/TimeSelector/chefsRecommendationHelper.js","Pages/Steps/StepOne/Fields/TimeSelector/index.js","Pages/Steps/StepOne/Fields/GuestSelector/index.js","../node_modules/react-icons/fa/index.mjs","Pages/Steps/StepOne/Notifications/index.js","Pages/Steps/StepOne/Notifications/MededelingNotification/index.js","Pages/Steps/StepOne/Utils/stepOneUtils.js","Pages/Steps/StepOne/Utils/getDatesDutch.js","Pages/Steps/StepOne/index.js","../node_modules/react-hook-form/src/utils/isCheckBoxInput.ts","../node_modules/react-hook-form/src/utils/isDateObject.ts","../node_modules/react-hook-form/src/utils/isNullOrUndefined.ts","../node_modules/react-hook-form/src/utils/isObject.ts","../node_modules/react-hook-form/src/logic/getEventValue.ts","../node_modules/react-hook-form/src/logic/isNameInFieldArray.ts","../node_modules/react-hook-form/src/logic/getNodeParentName.ts","../node_modules/react-hook-form/src/utils/isWeb.ts","../node_modules/react-hook-form/src/utils/cloneObject.ts","../node_modules/react-hook-form/src/utils/isPlainObject.ts","../node_modules/react-hook-form/src/utils/compact.ts","../node_modules/react-hook-form/src/utils/isUndefined.ts","../node_modules/react-hook-form/src/utils/get.ts","../node_modules/react-hook-form/src/utils/isBoolean.ts","../node_modules/react-hook-form/src/utils/isKey.ts","../node_modules/react-hook-form/src/utils/stringToPath.ts","../node_modules/react-hook-form/src/utils/set.ts","../node_modules/react-hook-form/src/constants.ts","../node_modules/react-hook-form/src/useFormContext.tsx","../node_modules/react-hook-form/src/logic/getProxyFormState.ts","../node_modules/react-hook-form/src/utils/isEmptyObject.ts","../node_modules/react-hook-form/src/logic/shouldRenderFormState.ts","../node_modules/react-hook-form/src/utils/convertToArrayPayload.ts","../node_modules/react-hook-form/src/useSubscribe.ts","../node_modules/react-hook-form/src/utils/isString.ts","../node_modules/react-hook-form/src/logic/generateWatchOutput.ts","../node_modules/react-hook-form/src/logic/appendErrors.ts","../node_modules/react-hook-form/src/logic/getValidationModes.ts","../node_modules/react-hook-form/src/logic/isWatched.ts","../node_modules/react-hook-form/src/logic/iterateFieldsByAction.ts","../node_modules/react-hook-form/src/logic/updateFieldArrayRootError.ts","../node_modules/react-hook-form/src/utils/isFileInput.ts","../node_modules/react-hook-form/src/utils/isFunction.ts","../node_modules/react-hook-form/src/utils/isHTMLElement.ts","../node_modules/react-hook-form/src/utils/isMessage.ts","../node_modules/react-hook-form/src/utils/isRadioInput.ts","../node_modules/react-hook-form/src/utils/isRegex.ts","../node_modules/react-hook-form/src/logic/getCheckboxValue.ts","../node_modules/react-hook-form/src/logic/getRadioValue.ts","../node_modules/react-hook-form/src/logic/getValidateError.ts","../node_modules/react-hook-form/src/logic/getValueAndMessage.ts","../node_modules/react-hook-form/src/logic/validateField.ts","../node_modules/react-hook-form/src/utils/unset.ts","../node_modules/react-hook-form/src/utils/createSubject.ts","../node_modules/react-hook-form/src/utils/isPrimitive.ts","../node_modules/react-hook-form/src/utils/deepEqual.ts","../node_modules/react-hook-form/src/utils/isMultipleSelect.ts","../node_modules/react-hook-form/src/utils/live.ts","../node_modules/react-hook-form/src/utils/objectHasFunction.ts","../node_modules/react-hook-form/src/logic/getDirtyFields.ts","../node_modules/react-hook-form/src/logic/getFieldValueAs.ts","../node_modules/react-hook-form/src/logic/getFieldValue.ts","../node_modules/react-hook-form/src/logic/getResolverOptions.ts","../node_modules/react-hook-form/src/logic/getRuleValue.ts","../node_modules/react-hook-form/src/logic/hasPromiseValidation.ts","../node_modules/react-hook-form/src/logic/schemaErrorLookup.ts","../node_modules/react-hook-form/src/logic/createFormControl.ts","../node_modules/react-hook-form/src/logic/hasValidation.ts","../node_modules/react-hook-form/src/logic/skipValidation.ts","../node_modules/react-hook-form/src/utils/isRadioOrCheckbox.ts","../node_modules/react-hook-form/src/logic/unsetEmptyArray.ts","../node_modules/@hookform/resolvers/src/validateFieldsNatively.ts","../node_modules/@hookform/resolvers/src/toNestErrors.ts","../node_modules/@hookform/resolvers/yup/src/yup.ts","../node_modules/yup/index.esm.js","Pages/Steps/StepTwo/Utils/formatDateToDutch.js","Pages/Steps/StepTwo/Hooks/useFetchFields.js","Pages/Steps/StepTwo/index.js","../node_modules/react-hook-form/src/useForm.ts","Pages/Steps/StepThree/Buttons/PrintButton.js","../node_modules/fflate/esm/browser.js","../node_modules/jspdf/src/libs/globalObject.js","../node_modules/jspdf/src/libs/console.js","../node_modules/jspdf/src/libs/FileSaver.js","../node_modules/jspdf/src/libs/AtobBtoa.js","../node_modules/jspdf/src/libs/rgbcolor.js","../node_modules/jspdf/src/libs/md5.js","../node_modules/jspdf/src/libs/rc4.js","../node_modules/jspdf/src/libs/pdfsecurity.js","../node_modules/jspdf/src/libs/pdfname.js","../node_modules/jspdf/src/jspdf.js","../node_modules/jspdf/src/modules/acroform.js","../node_modules/jspdf/src/libs/fontFace.js","../node_modules/jspdf/src/modules/addimage.js","../node_modules/jspdf/src/modules/annotations.js","../node_modules/jspdf/src/modules/arabic.js","../node_modules/jspdf/src/modules/autoprint.js","../node_modules/jspdf/src/modules/canvas.js","../node_modules/jspdf/src/modules/cell.js","../node_modules/jspdf/src/modules/javascript.js","../node_modules/jspdf/src/modules/context2d.js","../node_modules/jspdf/src/modules/filters.js","../node_modules/jspdf/src/modules/fileloading.js","../node_modules/jspdf/src/modules/html.js","../node_modules/jspdf/src/modules/outline.js","../node_modules/jspdf/src/modules/jpeg_support.js","../node_modules/jspdf/src/libs/png.js","../node_modules/jspdf/src/modules/split_text_to_size.js","../node_modules/jspdf/src/libs/omggif.js","../node_modules/jspdf/src/libs/JPEGEncoder.js","../node_modules/jspdf/src/libs/BMPDecoder.js","../node_modules/jspdf/src/libs/WebPDecoder.js","../node_modules/jspdf/src/modules/png_support.js","../node_modules/jspdf/src/modules/gif_support.js","../node_modules/jspdf/src/modules/bmp_support.js","../node_modules/jspdf/src/modules/webp_support.js","../node_modules/jspdf/src/modules/rgba_support.js","../node_modules/jspdf/src/modules/setlanguage.js","../node_modules/jspdf/src/modules/standard_fonts_metrics.js","../node_modules/jspdf/src/modules/ttfsupport.js","../node_modules/jspdf/src/modules/svg.js","../node_modules/jspdf/src/modules/total_pages.js","../node_modules/jspdf/src/modules/viewerpreferences.js","../node_modules/jspdf/src/modules/xmp_metadata.js","../node_modules/jspdf/src/modules/utf8.js","../node_modules/jspdf/src/modules/vfs.js","../node_modules/jspdf/src/libs/bidiEngine.js","../node_modules/jspdf/src/libs/ttffont.js","Pages/Steps/StepThree/Buttons/ShareButton.js","Pages/Steps/StepThree/Buttons/AddToCalendarButton.js","Pages/Steps/StepThree/index.js","Pages/Form/Structure/Form.js","Pages/Form/Style/ReservationStyles.js","Pages/Form/Style/defaults.js","Pages/Form/index.js","Pages/Form/Style/colorUtils.js","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/Spinner.js","Pages/Loading/InitPage.js","App.js","index.js"],"sourcesContent":["// file: /src/Pages/NewReservation/StepOne/algorithm/maxArrivalsFilter.js\n\n/**\n * Simple max arrivals filter for time slots\n * \n * Only considers exact arrivals at each time slot without factoring duration\n */\n\n/**\n * Get meal type based on time\n * @param {string} time - Time string (HH:MM)\n * @returns {string|null} - Meal type or null\n */\nfunction getMealType(time) {\n\tconst hour = parseInt(time.split(':')[0], 10);\n\t\n\tif (hour >= 4 && hour < 11) return 'breakfast';\n\tif (hour >= 11 && hour < 16) return 'lunch';\n\tif (hour >= 16 && hour < 23) return 'dinner';\n\t\n\treturn null;\n }\n \n /**\n * Extract number value from various data formats\n * @param {*} value - Value from data object\n * @returns {number|null} - Number or null\n */\n function extractNumber(value) {\n\tif (!value) return null;\n\t\n\t// Handle MongoDB NumberInt format\n\tif (value.$numberInt) {\n\t return parseInt(value.$numberInt, 10);\n\t}\n\t\n\t// Handle regular number\n\tif (typeof value === 'number') {\n\t return value;\n\t}\n\t\n\t// Handle string number\n\tif (typeof value === 'string') {\n\t const parsed = parseInt(value, 10);\n\t return isNaN(parsed) ? null : parsed;\n\t}\n\t\n\treturn null;\n }\n \n /**\n * Count guests arriving at exact time\n * @param {Array} reservations - Reservation list\n * @param {string} date - Date (YYYY-MM-DD)\n * @param {string} time - Time (HH:MM)\n * @returns {number} - Guest count\n */\n function countArrivalsAtTime(reservations, date, time) {\n\treturn reservations\n\t .filter(r => r.date === date && r.time === time)\n\t .reduce((sum, r) => sum + (parseInt(r.guests, 10) || 0), 0);\n }\n \n /**\n * Filter timeblocks based on max arrivals settings\n * @param {Object} restaurantData - Restaurant data\n * @param {string} date - Date string\n * @param {Object} timeblocks - Available timeblocks\n * @param {Array} reservations - Existing reservations\n * @param {number} guests - New reservation guest count\n * @returns {Object} - Filtered timeblocks\n */\n function filterTimeblocksByMaxArrivals(restaurantData, date, timeblocks, reservations, guests) {\n\tconst filteredBlocks = {};\n\t\n\tfor (const [time, timeData] of Object.entries(timeblocks)) {\n\t // Get meal type for this time\n\t const mealType = getMealType(time);\n\t if (!mealType) {\n\t\t// Keep the timeblock if we can't determine its meal type\n\t\tfilteredBlocks[time] = timeData;\n\t\tcontinue;\n\t }\n\t \n\t // Get max arrivals config for this meal type\n\t const maxArrivalsConfig = restaurantData[`max-arrivals-${mealType}`];\n\t if (!maxArrivalsConfig) {\n\t\t// Keep the timeblock if no max arrivals config for this meal type\n\t\tfilteredBlocks[time] = timeData;\n\t\tcontinue; \n\t }\n\t \n\t // Get max arrivals value for this specific time\n\t const maxArrivals = extractNumber(maxArrivalsConfig[time]);\n\t if (maxArrivals === null) {\n\t\t// Keep the timeblock if no specific max arrivals for this time\n\t\tfilteredBlocks[time] = timeData;\n\t\tcontinue;\n\t }\n\t \n\t // Count current arrivals at this exact time\n\t const currentArrivals = countArrivalsAtTime(reservations, date, time);\n\t \n\t // Only include timeblock if adding these guests doesn't exceed max arrivals\n\t if (currentArrivals + guests <= maxArrivals) {\n\t\tfilteredBlocks[time] = timeData;\n\t }\n\t}\n\t\n\treturn filteredBlocks;\n }\n \n module.exports = {\n\tfilterTimeblocksByMaxArrivals\n };","// Archief/Fields/algorithm/stopTimeFilter.js\n\n// Assuming moment-timezone is available in the project, as used elsewhere\nconst moment = require('moment-timezone');\n\n// Import necessary helpers (adjust path if tableHelpers.js is elsewhere)\n// Or redefine shifts, parseTime, getMealTypeByTime here if preferred\nconst { shifts, parseTime, getMealTypeByTime } = require('../tableHelpers');\n\n/**\n * Gets the current time in minutes since midnight in the Brussels timezone.\n * @returns {number} Current time in minutes.\n */\nfunction getCurrentTimeInBrusselsMinutes() {\n const now = moment().tz('Europe/Brussels');\n return now.hours() * 60 + now.minutes();\n}\n\n/**\n * Filters a list of timeblocks based on stop times defined in general settings.\n * This filter only applies if the provided dateStr is the current date.\n *\n * @param {Object} timeblocks - An object where keys are time strings (\"HH:MM\") and values are timeblock data.\n * @param {Object} restaurantData - The main restaurant data object containing general-settings.\n * @param {string} dateStr - The date string (\"YYYY-MM-DD\") to check against today.\n * @returns {Object} - The filtered timeblocks object.\n */\nfunction filterTimeblocksByStopTimes(timeblocks, restaurantData, dateStr) {\n // Determine today's date string in the correct timezone\n const todayStr = moment().tz('Europe/Brussels').format('YYYY-MM-DD');\n\n // Only apply the filter if the date being checked is today\n if (dateStr !== todayStr) {\n return timeblocks; // No filtering needed for future dates\n }\n\n console.log(`Applying stop time filter for today (${dateStr})`);\n\n const settings = restaurantData?.['general-settings'] || {};\n const currentTimeMinutes = getCurrentTimeInBrusselsMinutes();\n\n // Get stop times from settings and parse them (handle missing/null values)\n const breakfastStopTimeStr = settings.ontbijtStop || null; // e.g., \"10:00\"\n const lunchStopTimeStr = settings.lunchStop || null; // e.g., \"14:00\"\n const dinnerStopTimeStr = settings.dinerStop || null; // e.g., \"20:00\"\n\n const breakfastStopTime = breakfastStopTimeStr ? parseTime(breakfastStopTimeStr) : null;\n const lunchStopTime = lunchStopTimeStr ? parseTime(lunchStopTimeStr) : null;\n const dinnerStopTime = dinnerStopTimeStr ? parseTime(dinnerStopTimeStr) : null;\n\n // console.log(`Current time (minutes): ${currentTimeMinutes}`); // Verbose\n // console.log(`Stop times (minutes) - Breakfast: ${breakfastStopTime}, Lunch: ${lunchStopTime}, Dinner: ${dinnerStopTime}`); // Verbose\n\n const filteredTimeblocks = {};\n let skippedBreakfast = 0;\n let skippedLunch = 0;\n let skippedDinner = 0;\n\n for (const time in timeblocks) {\n if (!timeblocks.hasOwnProperty(time)) continue;\n\n const mealType = getMealTypeByTime(time);\n let skip = false;\n\n if (mealType === 'breakfast' && breakfastStopTime !== null && !isNaN(breakfastStopTime) && currentTimeMinutes >= breakfastStopTime) {\n skip = true;\n skippedBreakfast++;\n } else if (mealType === 'lunch' && lunchStopTime !== null && !isNaN(lunchStopTime) && currentTimeMinutes >= lunchStopTime) {\n skip = true;\n skippedLunch++;\n } else if (mealType === 'dinner' && dinnerStopTime !== null && !isNaN(dinnerStopTime) && currentTimeMinutes >= dinnerStopTime) {\n skip = true;\n skippedDinner++;\n }\n\n if (!skip) {\n filteredTimeblocks[time] = timeblocks[time];\n }\n }\n\n if (skippedBreakfast > 0) console.log(`Stop time filter removed ${skippedBreakfast} breakfast slots.`);\n if (skippedLunch > 0) console.log(`Stop time filter removed ${skippedLunch} lunch slots.`);\n if (skippedDinner > 0) console.log(`Stop time filter removed ${skippedDinner} dinner slots.`);\n\n return filteredTimeblocks;\n}\n\nmodule.exports = {\n filterTimeblocksByStopTimes\n};","// file: /src/Pages/NewReservation/StepOne/algorithm/getAvailableTimeblocks.js\n\nconst { timeblocksAvailable } = require('./processing/timeblocksAvailable');\nconst { daysOfWeekEnglish, getMealTypeByTime } = require('./restaurant_data/openinghours');\n\n/**\n * Helper function to check if a time is compatible with a giftcard.\n * @param {Object} data - The restaurant data.\n * @param {string} dateStr - The date string in YYYY-MM-DD format.\n * @param {string} timeStr - The time string in HH:MM format.\n * @param {string} giftcard - The selected giftcard.\n * @returns {boolean} - True if the time is compatible with the giftcard, false otherwise.\n */\nfunction timeHasGiftcard(data, dateStr, timeStr, giftcard) {\n if (!giftcard || !giftcard.trim()) return true; // No giftcard => no restriction\n\n // Figure out the meal type from timeStr\n const mealType = getMealTypeByTime(timeStr); // returns \"breakfast\", \"lunch\", or \"dinner\"\n if (!mealType) {\n return false; // Not in any recognized meal\n }\n\n // Next, find day-of-week\n const dateObj = new Date(dateStr);\n if (isNaN(dateObj.getTime())) return false;\n\n const dayOfWeekIndex = dateObj.getDay(); // 0=Sunday, 1=Monday, ...\n const englishDay = daysOfWeekEnglish[dayOfWeekIndex];\n\n const ohKey = `openinghours-${mealType}`;\n const daySettings =\n data[ohKey] &&\n data[ohKey].schemeSettings &&\n data[ohKey].schemeSettings[englishDay]\n ? data[ohKey].schemeSettings[englishDay]\n : null;\n\n if (!daySettings || daySettings.giftcardsEnabled !== true) {\n return false;\n }\n \n if (daySettings.giftcards.length === 0) {\n return false;\n }\n\n // Check if the selected giftcard is in the allowed list\n return daySettings.giftcards.includes(giftcard);\n}\n\n/**\n * Parses a time string in \"HH:MM\" format into a Date object on a specific date.\n * @param {string} dateStr - The date string in \"YYYY-MM-DD\" format.\n * @param {string} timeStr - Time string in \"HH:MM\" format.\n * @param {string} timeZone - The IANA time zone identifier.\n * @returns {Date} Date object representing the time on the specified date and time zone.\n */\nfunction parseDateTimeInTimeZone(dateStr, timeStr, timeZone) {\n const [year, month, day] = dateStr.split('-').map(Number);\n const [hours, minutes] = timeStr.split(':').map(Number);\n\n // Create a date object in UTC\n const date = new Date(Date.UTC(year, month - 1, day, hours, minutes));\n // Convert that UTC date/time to the specified time zone\n const dateInTimeZone = new Date(\n date.toLocaleString('en-US', { timeZone: timeZone })\n );\n return dateInTimeZone;\n}\n\n/**\n * Gets the available time blocks or shifts for a reservation, considering 'uurOpVoorhand', 'dagenInToekomst',\n * and giftcard restrictions.\n * @param {Object} data - The main data object containing settings and meal information.\n * @param {string} dateStr - The date string in \"YYYY-MM-DD\" format.\n * @param {Array} reservations - An array of reservation objects.\n * @param {number} guests - The number of guests for the reservation.\n * @param {string|null} selectedGiftcard - The selected giftcard (if any).\n * @returns {Object} - Returns a pruned object of available time blocks or shifts, or an empty object if out of range.\n */\nfunction getAvailableTimeblocks(data, dateStr, reservations, guests, selectedGiftcard = null) {\n // Get 'uurOpVoorhand' from general settings\n let uurOpVoorhand = 4;\n if (\n data['general-settings'] &&\n data['general-settings'].uurOpVoorhand &&\n parseInt(data['general-settings'].uurOpVoorhand, 10) >= 0\n ) {\n uurOpVoorhand = parseInt(data['general-settings'].uurOpVoorhand, 10);\n }\n\n // Get 'dagenInToekomst' from general settings\n let dagenInToekomst = 90; // Default if not defined\n if (\n data['general-settings'] &&\n data['general-settings'].dagenInToekomst &&\n parseInt(data['general-settings'].dagenInToekomst, 10) > 0\n ) {\n dagenInToekomst = parseInt(data['general-settings'].dagenInToekomst, 10);\n }\n\n // Time zone for CEST/CET (Europe/Amsterdam)\n const timeZone = 'Europe/Amsterdam';\n\n // Current date/time in CEST\n const now = new Date();\n const currentTimeInTimeZone = new Date(\n now.toLocaleString('en-US', { timeZone: timeZone })\n );\n\n // Calculate the maximum allowed date\n const maxAllowedDate = new Date(currentTimeInTimeZone.getTime());\n maxAllowedDate.setDate(maxAllowedDate.getDate() + dagenInToekomst);\n maxAllowedDate.setHours(23, 59, 59, 999);\n\n // Parse the target date in the specified time zone\n const [year, month, day] = dateStr.split('-').map(Number);\n const targetDate = new Date(Date.UTC(year, month - 1, day));\n const targetDateInTimeZone = new Date(\n targetDate.toLocaleString('en-US', { timeZone: timeZone })\n );\n\n // Check if targetDateInTimeZone is within dagenInToekomst\n if (targetDateInTimeZone > maxAllowedDate) {\n // Out of allowed range, return empty object\n return {};\n }\n\n // Check if the target date is today in the specified time zone\n const isToday =\n currentTimeInTimeZone.toDateString() === targetDateInTimeZone.toDateString();\n\n // Get available time blocks or shifts\n const availableTimeblocks = timeblocksAvailable(data, dateStr, reservations, guests);\n\n // Filter timeblocks by giftcard compatibility\n if (selectedGiftcard && selectedGiftcard.trim()) {\n for (const timeStr of Object.keys(availableTimeblocks)) {\n if (!timeHasGiftcard(data, dateStr, timeStr, selectedGiftcard)) {\n delete availableTimeblocks[timeStr];\n }\n }\n }\n\n // If the date is today and uurOpVoorhand is greater than zero, prune time blocks\n if (isToday && uurOpVoorhand >= 0) {\n const cutoffTime = new Date(currentTimeInTimeZone.getTime());\n cutoffTime.setHours(cutoffTime.getHours() + uurOpVoorhand);\n\n for (const [key, value] of Object.entries(availableTimeblocks)) {\n let timeStr = key;\n\n const timeBlockDateTime = parseDateTimeInTimeZone(dateStr, timeStr, timeZone);\n\n if (timeBlockDateTime < cutoffTime) {\n delete availableTimeblocks[key];\n }\n }\n }\n\n return availableTimeblocks;\n}\n\nmodule.exports = {\n getAvailableTimeblocks,\n timeHasGiftcard, // Export for use in other modules\n};","// file: /src/Pages/NewReservation/StepOne/algorithm/isDateAvailable.js\n\nconst { getAvailableTimeblocks } = require('./getAvailableTimeblocks');\nconst { daysOfWeekEnglish } = require('./restaurant_data/openinghours');\nconst { filterTimeblocksByStopTimes } = require('./filters/timeFilter');\n\n/**\n * Helper to see if a day-of-week has the selected giftcard for any meal \n * (breakfast, lunch, or dinner).\n * \n * @param {Object} data - The main restaurant data object.\n * @param {string} dateStr - The date string in \"YYYY-MM-DD\" format.\n * @param {string} giftcard - The selected giftcard name (non-empty).\n * @returns {boolean} True if that day-of-week has the giftcard in any meal.\n */\nfunction dayHasGiftcard(data, dateStr, giftcard) {\n if (!giftcard || !giftcard.trim()) return true; // No giftcard => no restriction\n\n const dateObj = new Date(dateStr);\n if (isNaN(dateObj.getTime())) return false;\n\n const dayOfWeekIndex = dateObj.getDay(); // 0=Sunday, 1=Monday, ...\n const englishDay = daysOfWeekEnglish[dayOfWeekIndex]; // e.g. \"Monday\"\n\n // Check breakfast, lunch, dinner\n const mealTypes = ['breakfast', 'lunch', 'dinner'];\n for (let meal of mealTypes) {\n const ohKey = `openinghours-${meal}`;\n if (\n data[ohKey] &&\n data[ohKey].schemeSettings &&\n data[ohKey].schemeSettings[englishDay]\n ) {\n const daySettings = data[ohKey].schemeSettings[englishDay];\n \n\n // If a meal has no giftcard restrictions, it allows all giftcards\n if (daySettings.giftcardsEnabled !== true) {\n continue;\n }\n \n // If the array is empty, that means no giftcards are accepted for this meal\n if (daySettings.giftcards.length === 0) {\n continue;\n }\n \n // Check if the selected giftcard is in the allowed list\n if (daySettings.giftcards.includes(giftcard)) {\n return true;\n }\n }\n }\n \n // If we've gone through all meals and none allows the giftcard, return false\n return false;\n}\n\n/**\n * Checks if a date is within the allowed future range defined by dagenInToekomst.\n * @param {Object} data - The main data object (to access general settings).\n * @param {string} dateStr - The date string (YYYY-MM-DD).\n * @returns {boolean} true if within range, false otherwise.\n */\nfunction isDateWithinAllowedRange(data, dateStr) {\n let dagenInToekomst = 90;\n if (\n data['general-settings'] &&\n data['general-settings'].dagenInToekomst &&\n parseInt(data['general-settings'].dagenInToekomst, 10) > 0\n ) {\n dagenInToekomst = parseInt(data['general-settings'].dagenInToekomst, 10);\n }\n\n const timeZone = 'Europe/Amsterdam';\n const now = new Date();\n const currentTimeInTimeZone = new Date(\n now.toLocaleString('en-US', { timeZone: timeZone })\n );\n\n const maxAllowedDate = new Date(currentTimeInTimeZone.getTime());\n maxAllowedDate.setDate(maxAllowedDate.getDate() + dagenInToekomst);\n maxAllowedDate.setHours(23, 59, 59, 999);\n\n const [year, month, day] = dateStr.split('-').map(Number);\n const targetDate = new Date(Date.UTC(year, month - 1, day));\n const targetDateInTimeZone = new Date(\n targetDate.toLocaleString('en-US', { timeZone: timeZone })\n );\n\n return targetDateInTimeZone <= maxAllowedDate;\n}\n\n/**\n * Checks if a date is available for a reservation of a specified number of guests,\n * and also (if a giftcard is selected) whether that date's day-of-week supports that giftcard.\n *\n * @param {Object} data - The main data object containing settings and meal information.\n * @param {string} dateStr - The date string in \"YYYY-MM-DD\" format.\n * @param {Array} reservations - An array of reservation objects.\n * @param {number} guests - The number of guests for the reservation.\n * @param {string|null} selectedGiftcard - The selected giftcard (if any).\n * @returns {boolean} - Returns true if the date meets the giftcard requirement (if any)\n * and has at least one available timeblock, false otherwise.\n */\nfunction isDateAvailable(data, dateStr, reservations, guests, selectedGiftcard) {\n // If a giftcard is specified, ensure the day-of-week supports it\n if (selectedGiftcard && !dayHasGiftcard(data, dateStr, selectedGiftcard)) {\n return false;\n }\n\n // Check if date is within allowed range\n if (!isDateWithinAllowedRange(data, dateStr)) {\n return false;\n }\n\n // Get available timeblocks using the existing logic\n const availableTimeblocks = getAvailableTimeblocks(\n data, \n dateStr, \n reservations, \n guests, \n selectedGiftcard\n );\n\n // If no timeblocks available after initial filtering, return false immediately\n if (Object.keys(availableTimeblocks).length === 0) {\n return false;\n }\n\n // Apply stop time filter as a final step\n const filteredTimeblocks = filterTimeblocksByStopTimes(\n availableTimeblocks, \n data, \n dateStr\n );\n\n // Return true only if we have at least one available timeblock after all filtering\n return Object.keys(filteredTimeblocks).length > 0;\n}\n\nmodule.exports = {\n isDateAvailable,\n};","// file: /src/Pages/NewReservation/StepOne/algorithm/isDateAvailableWithTableCheck.js\n\nconst { isDateAvailable } = require('./isDateAvailable');\nconst { getAvailableTimeblocks } = require('./getAvailableTimeblocks');\nconst { isTimeAvailableSync } = require('./simulateTableAssignment');\nconst { daysOfWeekEnglish, getMealTypeByTime } = require('./restaurant_data/openinghours');\n\n/**\n * Checks if the specific meal/time also contains the giftcard. \n * For instance, if Wednesday-lunch includes \"Woensdag bon,\" \n * but the user picks 19:00 (dinner), we should exclude that time.\n *\n * @param {Object} data - The restaurant data object.\n * @param {string} dateStr - \"YYYY-MM-DD\".\n * @param {string} timeStr - \"HH:MM\".\n * @param {string} giftcard - The selected giftcard.\n * @returns {boolean} true if the meal block for timeStr on dateStr includes the giftcard, else false.\n */\nfunction timeHasGiftcard(data, dateStr, timeStr, giftcard) {\n if (!giftcard || !giftcard.trim()) return true; // No giftcard => no restriction\n\n // Figure out the meal type from timeStr\n const mealType = getMealTypeByTime(timeStr); // returns \"breakfast\", \"lunch\", or \"dinner\"\n if (!mealType) {\n return false; // Not in any recognized meal\n }\n\n // Next, find day-of-week\n const dateObj = new Date(dateStr);\n if (isNaN(dateObj.getTime())) return false;\n\n const dayOfWeekIndex = dateObj.getDay(); // 0=Sunday, 1=Monday, ...\n const englishDay = daysOfWeekEnglish[dayOfWeekIndex];\n\n const ohKey = `openinghours-${mealType}`;\n const daySettings =\n data[ohKey] &&\n data[ohKey].schemeSettings &&\n data[ohKey].schemeSettings[englishDay]\n ? data[ohKey].schemeSettings[englishDay]\n : null;\n\n if (!daySettings) {\n console.error(`No day settings found for ${englishDay} ${mealType}`);\n return false;\n }\n\n if (daySettings.giftcardsEnabled !== true) {\n return false;\n }\n \n if (daySettings.giftcards.length === 0) {\n return false;\n }\n\n // Check if the selected giftcard is in the allowed list\n return daySettings.giftcards.includes(giftcard);\n}\n\n/**\n * Checks if a date is available for a reservation with a table assignment check.\n * This extends isDateAvailable by also verifying that at least one time slot\n * has an available table AND (if giftcard is selected) that the time belongs\n * to a meal that includes that giftcard.\n *\n * @param {Object} data - The restaurant data object containing settings and table information.\n * @param {string} dateStr - The date string in \"YYYY-MM-DD\" format.\n * @param {Array} reservations - An array of reservation objects.\n * @param {number} guests - The number of guests for the reservation.\n * @param {string|null} selectedGiftcard - The selected giftcard (if any).\n * @returns {boolean} - Returns true if the date has at least one timeblock that satisfies:\n * 1) date-level giftcard/day checks\n * 2) at least one time block with table availability\n * 3) time-block matches the giftcard's meal\n */\nfunction isDateAvailableWithTableCheck(data, dateStr, reservations, guests, selectedGiftcard) {\n console.log(`\\n===== Checking date availability for ${guests} guests on ${dateStr} =====`);\n console.log('Restaurant data floors:', data.floors ? 'present' : 'missing');\n console.log('Table settings:', JSON.stringify(data['table-settings'] || {}, null, 2));\n\n // Check for required data structures\n if (!data.floors || !Array.isArray(data.floors)) {\n console.error('Missing floors data for table assignment check');\n return false;\n }\n\n // Calculate table assignment flag once to reduce redundant checks\n const tableSettings = data?.['table-settings'] || {};\n const isTableAssignmentEnabled =\n tableSettings.isInstalled === true && tableSettings.assignmentMode === 'automatic';\n\n console.log(`Table assignment is ${isTableAssignmentEnabled ? 'ENABLED' : 'DISABLED'} for date ${dateStr}`);\n\n // 1) First, do the standard day-level checks (including simple giftcard check).\n const basicDateAvailable = isDateAvailable(data, dateStr, reservations, guests, selectedGiftcard);\n if (!basicDateAvailable) {\n console.log(`Date ${dateStr} fails basic availability check`);\n return false;\n }\n\n // If table assignment is not enabled, stop here - the date is available\n if (!isTableAssignmentEnabled) {\n console.log(`Table assignment disabled, date ${dateStr} is available`);\n return true;\n }\n\n // 3) Get all available timeblocks for this date\n console.log(`Getting available timeblocks for ${dateStr}`);\n const availableTimeblocks = getAvailableTimeblocks(data, dateStr, reservations, guests);\n console.log(`Found ${Object.keys(availableTimeblocks).length} available timeblocks before table check`);\n\n // If no timeblocks are available at all, exit early\n if (Object.keys(availableTimeblocks).length === 0) {\n console.log(`No available timeblocks on ${dateStr}, date is unavailable`);\n return false;\n }\n\n // Check if any timeblock has an available table and satisfies giftcard requirements\n console.log(`Checking table availability for each timeblock on ${dateStr}`);\n \n // Flag to track if at least one time is available with table assignment\n let atLeastOneAvailable = false;\n \n // Keep track of checked timeblocks for better debugging\n let checkedCount = 0;\n \n for (const time of Object.keys(availableTimeblocks)) {\n checkedCount++;\n \n // If there's a giftcard, confirm this particular time belongs to a meal that has that giftcard\n if (selectedGiftcard && !timeHasGiftcard(data, dateStr, time, selectedGiftcard)) {\n console.log(`Time ${time} doesn't match giftcard meal requirements`);\n continue; // Skip times that don't match giftcard requirements\n }\n\n // Check if a table can be assigned for this time slot\n console.log(`Checking table availability for ${time} on ${dateStr} for ${guests} guests`);\n if (isTimeAvailableSync(data, dateStr, time, guests, reservations)) {\n console.log(`Found available time ${time} with table assignment!`);\n atLeastOneAvailable = true;\n break; // Found one time that works, we can stop checking\n }\n }\n\n console.log(`Checked ${checkedCount}/${Object.keys(availableTimeblocks).length} timeblocks`);\n console.log(`Date ${dateStr} with table check: ${atLeastOneAvailable ? 'Available' : 'Unavailable'}`);\n \n return atLeastOneAvailable;\n}\n\nmodule.exports = {\n isDateAvailableWithTableCheck,\n};","// dailyGuestCounts.js\n\nconst { getGuestCountsForMeal } = require('./mealTypeCount');\n\n/**\n * Calculates guest counts for breakfast, lunch, and dinner, and combines the results into a flat object.\n * If time slots overlap, the available seats from the latest meal (dinner > lunch > breakfast) are used.\n * @param {Object} data - The main data object.\n * @param {string} dateStr - The date string (YYYY-MM-DD).\n * @param {Array} reservations - An array of reservation objects.\n * @returns {Object} An object containing combined guest counts for all meals with time slots as keys,\n * and an array of shiftsInfo containing shift details.\n */\nfunction getDailyGuestCounts(data, dateStr, reservations) {\n // Define meal types in order of priority (lowest to highest)\n const mealTypes = ['breakfast', 'lunch', 'dinner'];\n const combinedGuestCounts = {};\n const shiftsInfo = [];\n const mealPriority = {\n 'breakfast': 1,\n 'lunch': 2,\n 'dinner': 3\n };\n\n for (const mealType of mealTypes) {\n const result = getGuestCountsForMeal(data, dateStr, mealType, reservations);\n if (result) {\n const { guestCounts, shiftsInfo: mealShiftsInfo } = result;\n\n // Merge guestCounts into combinedGuestCounts\n for (const [time, availableSeats] of Object.entries(guestCounts)) {\n if (combinedGuestCounts.hasOwnProperty(time)) {\n // Compare meal priorities\n const existingMealPriority = combinedGuestCounts[time].mealPriority;\n const currentMealPriority = mealPriority[mealType];\n\n if (currentMealPriority >= existingMealPriority) {\n // Update with the current meal's available seats and priority\n combinedGuestCounts[time] = {\n availableSeats,\n mealPriority: currentMealPriority\n };\n }\n // Else, keep the existing value\n } else {\n // Add new time slot with available seats and meal priority\n combinedGuestCounts[time] = {\n availableSeats,\n mealPriority: mealPriority[mealType]\n };\n }\n }\n\n // Merge shiftsInfo\n if (mealShiftsInfo && mealShiftsInfo.length > 0) {\n shiftsInfo.push(...mealShiftsInfo);\n }\n }\n // Else do nothing if the meal is not available\n }\n\n // Extract only the availableSeats for the final output\n const finalGuestCounts = {};\n for (const [time, data] of Object.entries(combinedGuestCounts)) {\n finalGuestCounts[time] = data.availableSeats;\n }\n\n return { guestCounts: finalGuestCounts, shiftsInfo };\n}\n\nmodule.exports = {\n getDailyGuestCounts,\n};","// mealTypeCount.js\n\nconst { getDataByDateAndMealWithExceptions } = require('../restaurant_data/exceptions');\nconst { parseTime } = require('../restaurant_data/openinghours');\nconst { getGuestCountAtHour } = require('../reservation_data/counter');\n\nfunction getInterval(data) {\n let intervalReservatie = 15;\n if (\n data['general-settings'] &&\n data['general-settings'].intervalReservatie &&\n parseInt(data['general-settings'].intervalReservatie, 10) > 0\n ) {\n intervalReservatie = parseInt(data['general-settings'].intervalReservatie, 10);\n }\n return intervalReservatie;\n}\n\n/**\n * Retrieves meal types with shifts enabled and at least one shift defined for the specified date.\n * @param {Object} data - The main data object.\n * @param {string} dateStr - The date string (YYYY-MM-DD).\n * @returns {Array} - An array of meal types with shifts.\n */\nfunction getMealTypesWithShifts(data, dateStr) {\n const mealTypes = ['breakfast', 'lunch', 'dinner'];\n const mealTypesWithShifts = [];\n\n for (const mealType of mealTypes) {\n const mealData = getDataByDateAndMealWithExceptions(data, dateStr, mealType);\n if (\n mealData &&\n mealData.shiftsEnabled &&\n Array.isArray(mealData.shifts) &&\n mealData.shifts.length > 0\n ) {\n mealTypesWithShifts.push(mealType);\n }\n }\n\n return mealTypesWithShifts;\n}\n\nfunction shouldIncludeEndTime(mealType, endTime) { \n if ((mealType === 'breakfast' && endTime === '11:00') ||\n (mealType === 'lunch' && endTime === '16:00')) {\n return false; // Do not include endTime for breakfast at 11:00 and lunch at 16:00\n }\n return true; // Include endTime for all other cases\n}\n\n/**\n * Calculates guest counts for each interval during a meal period or at shift times.\n * @param {Object} data - The main data object.\n * @param {string} dateStr - The date string (YYYY-MM-DD).\n * @param {string} mealType - The meal type (\"breakfast\", \"lunch\", \"dinner\").\n * @param {Array} reservations - An array of reservation objects.\n * @returns {Object|null} An object mapping times to guest counts, or null if meal is not available.\n */\nfunction getGuestCountsForMeal(data, dateStr, mealType, reservations) {\n const mealData = getDataByDateAndMealWithExceptions(data, dateStr, mealType);\n if (!mealData) {\n return null;\n }\n\n const guestCounts = {};\n const shiftsInfo = [];\n\n // Get 'intervalReservatie' from general settings, default to 15 if not set or zero\n let intervalReservatie = getInterval(data);\n\n // Check if shifts are enabled and shifts array has valid content\n if (\n mealData.shiftsEnabled &&\n Array.isArray(mealData.shifts) &&\n mealData.shifts.length > 0\n ) {\n // If shifts are enabled and valid, calculate guest counts at shift times\n const shifts = mealData.shifts; // Array of shifts\n\n for (const shift of shifts) {\n const timeStr = shift.time; // Time of the shift in \"HH:MM\" format\n\n // Get guest count at this time\n const guestCount = getGuestCountAtHour(data, reservations, timeStr, dateStr);\n\n // Store in guestCounts\n guestCounts[timeStr] = mealData.maxCapacity - guestCount;\n\n // Store shift information\n shiftsInfo.push({\n mealType,\n shiftName: shift.name,\n time: timeStr,\n availableSeats: mealData.maxCapacity - guestCount,\n });\n }\n } else {\n // If shifts are not enabled or shifts array is empty/invalid, calculate guest counts at intervals\n const startTime = mealData.startTime;\n const endTime = mealData.endTime;\n\n // Determine if endTime should be included\n const includeEndTime = shouldIncludeEndTime(mealType, endTime);\n\n // Convert startTime and endTime to minutes since midnight\n let currentTime = parseTime(startTime);\n const endTimeMinutes = parseTime(endTime);\n\n while (includeEndTime ? currentTime <= endTimeMinutes : currentTime < endTimeMinutes) {\n // Convert currentTime back to \"HH:MM\" format\n const hours = Math.floor(currentTime / 60).toString().padStart(2, '0');\n const minutes = (currentTime % 60).toString().padStart(2, '0');\n const timeStr = `${hours}:${minutes}`;\n\n // Get guest count at this time\n const guestCount = getGuestCountAtHour(data, reservations, timeStr, dateStr);\n\n // Store in guestCounts\n guestCounts[timeStr] = mealData.maxCapacity - guestCount;\n\n // Increment currentTime by 'intervalReservatie' minutes\n currentTime += intervalReservatie;\n }\n }\n\n return { guestCounts, shiftsInfo };\n}\n\nmodule.exports = {\n getGuestCountsForMeal,\n getMealTypesWithShifts, // Exported\n};","const { getDailyGuestCounts } = require('./dailyGuestCounts');\nconst { getMealTypesWithShifts } = require('./mealTypeCount');\nconst { getDataByDateAndMealWithExceptions } = require('../restaurant_data/exceptions');\nconst { getMealTypeByTime, parseTime: parseTimeOH } = require('../restaurant_data/openinghours');\n\n/**\n * Parses a time string in \"HH:MM\" format into minutes since midnight.\n */\nfunction parseTime(timeStr) {\n const [hours, minutes] = timeStr.split(':').map(Number);\n return hours * 60 + minutes;\n}\n\n/**\n * Retrieves interval and duurReservatie from general settings\n */\nfunction getInterval(data) {\n let intervalReservatie = 15;\n if (\n data['general-settings'] &&\n data['general-settings'].intervalReservatie &&\n parseInt(data['general-settings'].intervalReservatie, 10) > 0\n ) {\n intervalReservatie = parseInt(data['general-settings'].intervalReservatie, 10);\n }\n return intervalReservatie;\n}\n\nfunction getDuurReservatie(data) {\n let duurReservatie = 120;\n if (\n data['general-settings'] &&\n data['general-settings'].duurReservatie &&\n parseInt(data['general-settings'].duurReservatie, 10) > 0\n ) {\n duurReservatie = parseInt(data['general-settings'].duurReservatie, 10);\n }\n return duurReservatie;\n}\n\n/**\n * Determines if a given start time plus duurReservatie fits within the meal timeframe.\n */\nfunction fitsWithinMeal(data, dateStr, startTimeStr, duurReservatie) {\n // Determine the meal type based on the start time\n const mealType = getMealTypeByTime(startTimeStr);\n if (!mealType) return false;\n\n // Get the meal data (with exceptions applied)\n const mealData = getDataByDateAndMealWithExceptions(data, dateStr, mealType);\n if (!mealData) return false;\n\n const mealStartTime = parseTime(mealData.startTime);\n const mealEndTime = parseTime(mealData.endTime);\n const startTime = parseTime(startTimeStr);\n \n // Check if startTime is after or equal to mealStartTime AND startTime + duurReservatie is within the mealEndTime\n return startTime >= mealStartTime && startTime + duurReservatie <= mealEndTime;\n}\n\nfunction timeblocksAvailable(data, dateStr, reservations, guests) {\n const duurReservatie = getDuurReservatie(data);\n const intervalReservatie = getInterval(data);\n\n // Slots needed\n const slotsNeeded = Math.ceil(duurReservatie / intervalReservatie);\n\n // Get guest counts and shifts info\n const { guestCounts, shiftsInfo } = getDailyGuestCounts(data, dateStr, reservations);\n\n const availableTimeblocks = {};\n\n // Handle shifts first\n const mealTypesWithShifts = getMealTypesWithShifts(data, dateStr);\n if (mealTypesWithShifts.length > 0 && shiftsInfo && shiftsInfo.length > 0) {\n for (const shift of shiftsInfo) {\n const { time, availableSeats } = shift;\n if (availableSeats >= guests && fitsWithinMeal(data, dateStr, time, duurReservatie)) {\n availableTimeblocks[time] = { name: time };\n }\n }\n }\n\n // Handle non-shift times\n if (guestCounts && Object.keys(guestCounts).length > 0) {\n const timeSlots = Object.keys(guestCounts).sort((a, b) => parseTime(a) - parseTime(b));\n\n for (let i = 0; i <= timeSlots.length - slotsNeeded; i++) {\n // Check capacity for all needed slots\n let consecutiveSlotsAvailable = true;\n if (guestCounts[timeSlots[i]] < guests) {\n continue;\n }\n\n let previousTime = parseTime(timeSlots[i]);\n for (let j = 1; j < slotsNeeded; j++) {\n const currentTimeSlot = timeSlots[i + j];\n const currentTime = parseTime(currentTimeSlot);\n\n // Check interval and capacity\n if ((currentTime - previousTime) !== intervalReservatie || guestCounts[currentTimeSlot] < guests) {\n consecutiveSlotsAvailable = false;\n break;\n }\n previousTime = currentTime;\n }\n\n // If all consecutive slots are available, check if the full duration fits\n if (consecutiveSlotsAvailable && fitsWithinMeal(data, dateStr, timeSlots[i], duurReservatie)) {\n availableTimeblocks[timeSlots[i]] = { name: timeSlots[i] };\n }\n }\n }\n\n return availableTimeblocks;\n}\n\nmodule.exports = {\n timeblocksAvailable,\n};","// counter.js\n\n/**\n * Parses a time string in \"HH:MM\" format into minutes since midnight.\n * @param {string} timeStr - The time string in \"HH:MM\" format.\n * @returns {number} The time in minutes since midnight.\n */\nfunction parseTime(timeStr) {\n\tconst [hours, minutes] = timeStr.split(':').map(Number);\n\treturn hours * 60 + minutes;\n }\n\n function getDuurReservatie(data) {\n\tlet duurReservatie = 120;\n\tif (\n\t data['general-settings'] &&\n\t data['general-settings'].duurReservatie &&\n\t parseInt(data['general-settings'].duurReservatie, 10) > 0\n\t) {\n\t duurReservatie = parseInt(data['general-settings'].duurReservatie, 10);\n\t}\n\n\treturn duurReservatie;\n }\n \n /**\n * Calculates the total number of guests for reservations that cover a specific hour on a specific date.\n * @param {Object} data - The main data object containing general settings.\n * @param {Array} reservations - An array of reservation objects.\n * @param {string} hour - The hour to check in \"HH:MM\" format.\n * @param {string} dateStr - The date string in \"YYYY-MM-DD\" format.\n * @returns {number} The total number of guests for that hour on the specified date.\n */\n function getGuestCountAtHour(data, reservations, hour, dateStr) {\n\t// Get 'duurReservatie' from general settings, default to 120 if not set or zero\n\tlet duurReservatie = getDuurReservatie(data)\n \n\t// Convert the target hour to minutes since midnight\n\tconst targetTime = parseTime(hour);\n \n\tlet totalGuests = 0;\n \n\tfor (const reservation of reservations) {\n\t // Only consider reservations on the specified date\n\t if (reservation.date !== dateStr) {\n\t\tcontinue;\n\t }\n \n\t const startTime = parseTime(reservation.time);\n\n\t const endTime = startTime + duurReservatie; // Use 'duurReservatie' from general settings\n \t // Check if the target time is within the reservation time range\n\t // Start time is inclusive, end time is exclusive\n\t if (targetTime >= startTime && targetTime < endTime) {\n\t\ttotalGuests += parseInt(reservation.guests, 10);\n\t }\n\t}\n \n\treturn totalGuests;\n }\n \n module.exports = {\n\tgetGuestCountAtHour,\n };\n ","// exceptions.js\n\nconst {\n\tgetDataByDateAndMeal,\n\tgetDataByDateAndTime,\n\tgetMealTypeByTime,\n\tparseTime,\n\tshifts,\n\tdaysOfWeekEnglish,\n\tdaysOfWeekDutch,\n} = require('./openinghours');\n\nfunction isDateInRange(dateStr, startDateStr, endDateStr) {\n\tconst date = new Date(dateStr);\n\tconst startDate = new Date(startDateStr);\n\tconst endDate = new Date(endDateStr);\n\tif (isNaN(date) || isNaN(startDate) || isNaN(endDate)) {\n\t return false;\n\t}\n\treturn date >= startDate && date <= endDate;\n}\n\nfunction getDutchDayOfWeek(date) {\n\tconst dayIndex = date.getDay();\n\treturn daysOfWeekDutch[dayIndex];\n}\n\nfunction doesExceptionApply(exception, dateStr, dateDayOfWeekDutch, mealType) {\n\tconst { timeframe, startDate, endDate, daysOfWeek } = exception;\n\n\tif (!isDateInRange(dateStr, startDate, endDate)) {\n\t return false;\n\t}\n\n\tif (Array.isArray(daysOfWeek) && daysOfWeek.length > 0) {\n\t const daysOfWeekLower = daysOfWeek.map(day => day.toLowerCase());\n\t if (!daysOfWeekLower.includes(dateDayOfWeekDutch)) {\n\t\treturn false;\n\t }\n\t}\n\n\tif (timeframe === 'Volledige Dag' || timeframe === mealType) {\n\t return true;\n\t}\n\n\treturn false;\n}\n\nfunction getDuurReservatie(data) {\n let duurReservatie = 120;\n if (\n data['general-settings'] &&\n data['general-settings'].duurReservatie &&\n parseInt(data['general-settings'].duurReservatie, 10) > 0\n ) {\n duurReservatie = parseInt(data['general-settings'].duurReservatie, 10);\n }\n return duurReservatie;\n}\n\nfunction addDuurReservatieToEndTime(mealData, data) {\n const duurReservatie = getDuurReservatie(data);\n const endMinutes = parseTime(mealData.endTime);\n const newEndMinutes = endMinutes + duurReservatie;\n const hours = String(Math.floor(newEndMinutes / 60)).padStart(2, '0');\n const minutes = String(newEndMinutes % 60).padStart(2, '0');\n mealData.endTime = `${hours}:${minutes}`;\n}\n\nfunction mapExceptionToMealData(exception, data) {\n\tlet mealData = {\n\t enabled: true,\n\t startTime: exception.startHour,\n\t endTime: exception.endHour,\n\t maxCapacityEnabled: exception.maxSeats ? true : false,\n\t maxCapacity: exception.maxSeats || null,\n\t shiftsEnabled: false,\n\t shifts: [],\n\t};\n\n\t// Add duurReservatie to endTime\n\taddDuurReservatieToEndTime(mealData, data);\n\n\treturn mealData;\n}\n\nfunction getDataByDateAndMealWithExceptions(data, dateStr, mealType) {\n\tconst exceptions = data.exceptions || [];\n\tconst date = new Date(dateStr);\n\tif (isNaN(date)) {\n\t return null;\n\t}\n\tconst dateDayOfWeekDutch = getDutchDayOfWeek(date).toLowerCase();\n\n\tconst exceptionTypesPriority = ['Opening', 'Sluiting', 'Uitzondering'];\n\n\tfor (const exceptionType of exceptionTypesPriority) {\n\t for (const exception of exceptions) {\n\t\tif (exception.type === exceptionType) {\n\t\t if (doesExceptionApply(exception, dateStr, dateDayOfWeekDutch, mealType)) {\n\t\t\tif (exceptionType === 'Sluiting') {\n\t\t\t return null;\n\t\t\t} else {\n\t\t\t return mapExceptionToMealData(exception, data);\n\t\t\t}\n\t\t }\n\t\t}\n\t }\n\t}\n\n\treturn getDataByDateAndMeal(data, dateStr, mealType);\n}\n\nfunction shouldIncludeEndTime(mealType, endTime) {\n\tif ((mealType === 'breakfast' && endTime === '11:00') ||\n\t\t(mealType === 'lunch' && endTime === '16:00')) {\n\t return false;\n\t}\n\treturn true;\n}\n\nfunction getDataByDateAndTimeWithExceptions(data, dateStr, timeStr) {\n\tconst mealType = getMealTypeByTime(timeStr);\n\tif (!mealType) {\n\t return null;\n\t}\n\tconst mealData = getDataByDateAndMealWithExceptions(data, dateStr, mealType);\n\tif (!mealData) {\n\t return null;\n\t}\n\n\tconst requestedTime = parseTime(timeStr);\n\tconst startTime = parseTime(mealData.startTime);\n\tconst endTime = parseTime(mealData.endTime);\n\n\tconst includeEndTime = shouldIncludeEndTime(mealType, mealData.endTime);\n\n\tconst timeFallsWithin =\n\t includeEndTime\n\t\t? requestedTime >= startTime && requestedTime <= endTime\n\t\t: requestedTime >= startTime && requestedTime < endTime;\n\n\treturn timeFallsWithin ? mealData : null;\n}\n\nmodule.exports = {\n\tgetDataByDateAndMealWithExceptions,\n\tgetDataByDateAndTimeWithExceptions,\n};\n","// index.js\n\nconst daysOfWeekEnglish = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\nconst daysOfWeekDutch = ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'];\n\nconst shifts = {\n breakfast: { start: '07:00', end: '11:00' },\n lunch: { start: '11:00', end: '16:00' },\n dinner: { start: '16:00', end: '23:00' },\n};\n\nfunction parseTime(timeStr) {\n const [hours, minutes] = timeStr.split(':').map(Number);\n return hours * 60 + minutes;\n}\n\nfunction getMealTypeByTime(timeStr) {\n const time = parseTime(timeStr);\n for (const [mealType, shift] of Object.entries(shifts)) {\n const start = parseTime(shift.start);\n const end = parseTime(shift.end);\n if (time >= start && time < end) {\n return mealType;\n }\n }\n return null;\n}\n\nfunction getDataByDayAndMeal(data, dayOfWeek, mealType) {\n const mealKey = `openinghours-${mealType}`;\n if (!data[mealKey]) {\n return null;\n }\n const mealData = data[mealKey];\n const dayData = mealData.schemeSettings[dayOfWeek];\n if (!dayData) {\n return null;\n }\n return { ...dayData };\n}\n\nfunction adjustMealData(mealData, generalSettings) {\n if (mealData.maxCapacityEnabled === false) {\n if (generalSettings && generalSettings.zitplaatsen) {\n mealData.maxCapacity = generalSettings.zitplaatsen;\n mealData.maxCapacityEnabled = true;\n } else {\n mealData.maxCapacity = '0';\n mealData.maxCapacityEnabled = true;\n }\n }\n}\n\nfunction getDuurReservatie(data) {\n let duurReservatie = 120;\n if (\n data['general-settings'] &&\n data['general-settings'].duurReservatie &&\n parseInt(data['general-settings'].duurReservatie, 10) > 0\n ) {\n duurReservatie = parseInt(data['general-settings'].duurReservatie, 10);\n }\n return duurReservatie;\n}\n\nfunction addDuurReservatieToEndTime(mealData, data) {\n const duurReservatie = getDuurReservatie(data);\n const endMinutes = parseTime(mealData.endTime);\n const newEndMinutes = endMinutes + duurReservatie;\n const hours = String(Math.floor(newEndMinutes / 60)).padStart(2, '0');\n const minutes = String(newEndMinutes % 60).padStart(2, '0');\n mealData.endTime = `${hours}:${minutes}`;\n}\n\nfunction getDataByDateAndMeal(data, dateStr, mealType) {\n const date = new Date(dateStr);\n if (isNaN(date)) {\n return null;\n }\n const dayOfWeekIndex = date.getDay();\n const dayOfWeek = daysOfWeekEnglish[dayOfWeekIndex];\n let mealData = getDataByDayAndMeal(data, dayOfWeek, mealType);\n if (!mealData || mealData.enabled !== true) {\n return null;\n }\n\n adjustMealData(mealData, data['general-settings']);\n\n // Add duurReservatie to endTime\n addDuurReservatieToEndTime(mealData, data);\n\n return mealData;\n}\n\nfunction getDataByDateAndTime(data, dateStr, timeStr) {\n const mealType = getMealTypeByTime(timeStr);\n if (!mealType) {\n return null;\n }\n const mealData = getDataByDateAndMeal(data, dateStr, mealType);\n if (!mealData) {\n return null;\n }\n const requestedTime = parseTime(timeStr);\n const startTime = parseTime(mealData.startTime);\n const endTime = parseTime(mealData.endTime);\n if (requestedTime >= startTime && requestedTime < endTime) {\n return mealData;\n } else {\n return null;\n }\n}\n\nmodule.exports = {\n getDataByDayAndMeal,\n getDataByDateAndMeal,\n getDataByDateAndTime,\n daysOfWeekEnglish,\n daysOfWeekDutch,\n getMealTypeByTime,\n parseTime,\n shifts,\n};","// Archief/Fields/algorithm/simulateTableAssignment.js\n\n// --- Import Helpers ---\n// Use CommonJS require (adjust path if necessary)\nconst {\n getAllTables,\n isTemporaryTableValid,\n // shifts, getMealTypeByTime are primarily used within isTemporaryTableValid\n} = require('./tableHelpers'); // Assuming tableHelpers.js is in the same directory\n\n// --- Assume other necessary functions are defined or imported ---\n// These were present in the original file content and are needed for the simulation.\n// Ensure they are correctly defined in this file or imported from other modules.\n\n/**\n * Converts a reservation's start time and duration into discrete time slots (in minutes from midnight).\n */\nfunction computeRequiredSlots(timeString, durationMinutes, intervalMinutes) {\n const timePattern = /^([01]\\d|2[0-3]):([0-5]\\d)$/;\n if (!timeString || !timePattern.test(timeString)) {\n console.error(`Invalid time format for computeRequiredSlots: ${timeString}. Expected 'HH:MM'.`);\n // Return empty array or throw error, depending on desired handling\n return [];\n }\n\n const [hour, minute] = timeString.split(\":\").map(Number);\n const startMinutes = hour * 60 + minute;\n\n // Ensure interval is positive to avoid infinite loops\n if (intervalMinutes <= 0) {\n console.error(\"Interval must be positive in computeRequiredSlots.\");\n return [startMinutes]; // Return only the start slot or handle error\n }\n\n // Calculate how many intervals the reservation spans\n const slotCount = Math.ceil(durationMinutes / intervalMinutes);\n\n const slots = [];\n for (let i = 0; i < slotCount; i++) {\n slots.push(startMinutes + i * intervalMinutes);\n }\n // console.log(`Time slots for ${timeString} (${durationMinutes}min, interval ${intervalMinutes}min): ${slots.join(', ')}`); // Verbose logging\n return slots;\n}\n\n/**\n * Checks if the given tableNumber is free for all requiredSlots based on the occupied map.\n */\nfunction isTableFreeForAllSlots(tableNumber, requiredSlots, tableOccupiedSlots) {\n const occupiedSlots = tableOccupiedSlots[tableNumber] || new Set();\n // if (occupiedSlots.size > 0) { // Verbose logging\n // const occupiedArray = Array.from(occupiedSlots).sort((a, b) => a - b);\n // console.log(`Table ${tableNumber} occupied slots: ${occupiedArray.join(', ')}`);\n // }\n for (const slot of requiredSlots) {\n if (occupiedSlots.has(slot)) {\n // console.log(`Conflict: Table ${tableNumber} is occupied at slot ${slot}`); // Verbose logging\n return false;\n }\n }\n return true;\n}\n\n/**\n * Calculates Euclidean distance between two tables (assuming x, y properties).\n */\nfunction calculateDistance(tableA, tableB) {\n if (tableA?.x === undefined || tableA?.y === undefined || tableB?.x === undefined || tableB?.y === undefined) {\n return Infinity; // Cannot calculate distance if coordinates are missing\n }\n const dx = tableA.x - tableB.x;\n const dy = tableA.y - tableB.y;\n return Math.sqrt(dx * dx + dy * dy);\n}\n\n\n// --- Core Simulation Logic ---\n\n/**\n * Backtracking function to find a combination of tables (multi-table assignment).\n */\nfunction findMultiTableCombination(tables, guestsNeeded, startIndex, currentSet, best, requiredSlots, tableOccupiedSlots, reservationDateStr, reservationTimeStr) {\n\t// Base case: All guests are seated\n\tif (guestsNeeded <= 0) {\n\t\tlet currentTotalCapacity = currentSet.reduce((sum, tbl) => sum + tbl.maxCapacity, 0);\n\t\t// Calculate total distance for the current combination\n\t\tlet distanceSum = 0;\n\t\tfor (let i = 0; i < currentSet.length; i++) {\n\t\t\tfor (let j = i + 1; j < currentSet.length; j++) {\n\t\t\t\tdistanceSum += calculateDistance(currentSet[i], currentSet[j]);\n\t\t\t}\n\t\t}\n\t\t// Update best solution if this one is better (fewer tables, then lower distance)\n if (currentSet.length < best.tableCount || (currentSet.length === best.tableCount && distanceSum < best.minDistance)) {\n\t\t best.minDistance = distanceSum;\n\t\t\tbest.tables = [...currentSet]; // Store a copy\n best.tableCount = currentSet.length;\n\t\t\t// console.log(`Found new best table combination: ${best.tables.map(t => t.tableNumber).join(', ')} (Distance: ${distanceSum.toFixed(2)}, Count: ${best.tableCount})`); // Verbose\n\t\t}\n\t\treturn;\n\t}\n\n\t// Base case: No more tables to check\n\tif (startIndex >= tables.length) {\n return;\n }\n\n\t// Optimization: If current solution is already better than remaining possibilities\n\tif (currentSet.length >= best.tableCount && best.tableCount !== Infinity) {\n return; // Pruning based on table count\n }\n\n\t// Optimization: Check if remaining tables can possibly seat the needed guests\n\tlet maxPossibleCapacity = 0;\n\tfor (let i = startIndex; i < tables.length; i++) {\n\t const tbl = tables[i];\n // Only consider valid & free tables for potential capacity\n\t if (isTemporaryTableValid(tbl, reservationDateStr, reservationTimeStr) &&\n isTableFreeForAllSlots(tbl.tableNumber, requiredSlots, tableOccupiedSlots))\n {\n\t\t maxPossibleCapacity += tbl.maxCapacity;\n\t }\n\t}\n\tif (maxPossibleCapacity < guestsNeeded) {\n\t // console.log(`Cannot seat remaining ${guestsNeeded} guests with remaining tables (max capacity: ${maxPossibleCapacity})`); // Verbose\n\t\treturn; // Impossible to seat remaining guests\n\t}\n\n\n\t// Explore combinations starting from startIndex\n\tfor (let i = startIndex; i < tables.length; i++) {\n\t\tlet tbl = tables[i];\n\n\t\t// --- Core Checks ---\n\t\t// 1. Check if temporary table is valid for this date/time (using imported helper)\n\t\tif (!isTemporaryTableValid(tbl, reservationDateStr, reservationTimeStr)) {\n\t\t\tcontinue; // Skip invalid temporary table\n\t\t}\n\t\t// 2. Check if table is free for all required slots (using assumed available helper)\n\t\tif (!isTableFreeForAllSlots(tbl.tableNumber, requiredSlots, tableOccupiedSlots)) {\n\t\t\tcontinue; // Skip occupied table\n\t\t}\n // 3. Check if table contributes meaningfully (can seat at least its min capacity or remaining guests)\n let canSeat = Math.min(tbl.maxCapacity, guestsNeeded);\n if (canSeat < tbl.minCapacity && canSeat < guestsNeeded) {\n continue; // Don't use a table for fewer than its min capacity unless it fulfills the remainder\n }\n if (canSeat <= 0) continue; // Table doesn't help\n\n\t\t// --- Recurse ---\n\t\tcurrentSet.push(tbl); // Add table to current combination\n\t\t// console.log(`Trying table ${tbl.tableNumber} (${tbl.minCapacity}-${tbl.maxCapacity}) for ${canSeat}/${guestsNeeded} guests`); // Verbose\n\t\tfindMultiTableCombination(\n tables,\n guestsNeeded - canSeat, // Reduce guests needed\n i + 1, // Explore next tables\n currentSet,\n best,\n requiredSlots,\n tableOccupiedSlots,\n reservationDateStr,\n reservationTimeStr\n );\n\t\tcurrentSet.pop(); // Backtrack: remove table to explore other combinations\n\t}\n}\n\n\n/**\n * Simulates assigning tables for a specific reservation time, considering existing occupied slots.\n * Returns an array of assigned table numbers.\n */\nfunction assignTablesForGivenTime(restaurantData, date, time, guests, tableOccupiedSlots) {\n const duurReservatie = parseInt(restaurantData[\"general-settings\"]?.duurReservatie?.$numberInt || 120);\n const intervalReservatie = parseInt(restaurantData[\"general-settings\"]?.intervalReservatie?.$numberInt || 15);\n if (isNaN(duurReservatie) || isNaN(intervalReservatie) || intervalReservatie <= 0) {\n console.error(\"Invalid duration or interval settings.\");\n return [];\n }\n const requiredSlots = computeRequiredSlots(time, duurReservatie, intervalReservatie);\n if (!requiredSlots || requiredSlots.length === 0) {\n console.error(`Could not compute required slots for ${time}`);\n return [];\n }\n\n // Fetch all tables using the imported helper\n const allTables = getAllTables(restaurantData);\n\n // --- Try single-table assignment first ---\n for (let t of allTables) {\n // Use imported validation function\n if (!isTemporaryTableValid(t, date, time)) {\n continue;\n }\n if (\n t.minCapacity <= guests &&\n guests <= t.maxCapacity &&\n isTableFreeForAllSlots(t.tableNumber, requiredSlots, tableOccupiedSlots)\n ) {\n // console.log(`Assigned single table ${t.tableNumber} for ${guests} guests at ${time}`); // Verbose\n return [t.tableNumber];\n }\n }\n\n // --- Try multi-table assignment ---\n let best = { minDistance: Infinity, tables: [], tableCount: Infinity }; // Initialize tableCount\n findMultiTableCombination(\n allTables,\n guests,\n 0, // Start index\n [], // Initial empty set\n best, // Best solution object\n requiredSlots,\n tableOccupiedSlots,\n date, // Pass context\n time // Pass context\n );\n\n if (best.tables.length > 0) {\n // console.log(`Assigned multi-table solution: ${best.tables.map(t => t.tableNumber).join(', ')} for ${guests} guests at ${time}`); // Verbose\n } else {\n // console.log(`No table combination found for ${guests} guests at ${time}`); // Verbose\n }\n\n return best.tables.map(t => t.tableNumber);\n}\n\n\n/**\n * Main function to check if *any* table (single or combination) is available for a new reservation.\n * This simulates the assignment process without modifying the actual reservations.\n */\nfunction isTimeAvailableSync(restaurantData, date, time, guests, reservations) {\n const tableSettings = restaurantData?.['table-settings'] || {};\n const isTableAssignmentEnabled = tableSettings.isInstalled === true &&\n tableSettings.assignmentMode === \"automatic\";\n\n // If table assignment is not enabled, time is considered available (availability based on capacity, not tables)\n if (!isTableAssignmentEnabled) {\n return true;\n }\n\n try {\n // Basic data check\n if (!restaurantData?.floors || !Array.isArray(restaurantData.floors)) {\n console.error(`isTimeAvailableSync (${date} ${time}): Missing floors data.`);\n return false;\n }\n if (guests <= 0) return false; // Cannot reserve for 0 or fewer guests\n\n // --- Setup ---\n const duurReservatie = parseInt(restaurantData[\"general-settings\"]?.duurReservatie?.$numberInt || 120);\n const intervalReservatie = parseInt(restaurantData[\"general-settings\"]?.intervalReservatie?.$numberInt || 15);\n if (isNaN(duurReservatie) || isNaN(intervalReservatie) || intervalReservatie <= 0) {\n console.error(`isTimeAvailableSync (${date} ${time}): Invalid duration or interval settings.`);\n return false;\n }\n\n // console.log(`\\n===== Simulating table assignment for ${guests} guests on ${date} at ${time} =====`); // Verbose\n const requiredSlots = computeRequiredSlots(time, duurReservatie, intervalReservatie);\n if (!requiredSlots || requiredSlots.length === 0) {\n console.error(`isTimeAvailableSync (${date} ${time}): Could not compute required slots.`);\n return false; // Cannot proceed if slots are invalid\n }\n\n // --- Build Occupancy Map ---\n let tableOccupiedSlots = {}; // { tableNumber: Set }\n\t\tconst reservationsForDate = reservations\n\t\t.filter(r => r.date === date && r.time && r.guests > 0)\n\t\t.sort((a, b) => {\n\t\t\t// Simple time string comparison without using parseTime\n\t\t\tconst [aHour, aMinute] = a.time.split(':').map(Number);\n\t\t\tconst [bHour, bMinute] = b.time.split(':').map(Number);\n\t\t\treturn (aHour * 60 + aMinute) - (bHour * 60 + bMinute);\n\t\t});\n\n // console.log(`Processing ${reservationsForDate.length} existing reservations on ${date} for occupancy map.`); // Verbose\n\n for (let r of reservationsForDate) {\n // Simulate assignment for *existing* reservations to build the map accurately\n // Important: Use the *current* state of tableOccupiedSlots for each simulation\n const assignedTables = assignTablesForGivenTime(restaurantData, r.date, r.time, r.guests, tableOccupiedSlots);\n\n // Update the occupancy map based on the simulated assignment for this reservation\n if (assignedTables.length > 0) {\n const rSlots = computeRequiredSlots(r.time, duurReservatie, intervalReservatie);\n if (!rSlots || rSlots.length === 0) continue; // Skip if slots invalid\n\n assignedTables.forEach(tableNumber => {\n if (!tableOccupiedSlots[tableNumber]) {\n tableOccupiedSlots[tableNumber] = new Set();\n }\n rSlots.forEach(slot => tableOccupiedSlots[tableNumber].add(slot));\n });\n }\n // If no tables could be assigned for an existing reservation, it doesn't block slots,\n // but this might indicate an issue with data consistency if assignmentMode is automatic.\n }\n // console.log(\"Occupancy map built.\"); // Verbose\n\n // --- Check Availability for the *New* Reservation ---\n const allTables = getAllTables(restaurantData); // Get all tables\n // console.log(`Checking ${allTables.length} tables for availability for the new reservation.`); // Verbose\n\n // 1. Try single table assignment\n for (let t of allTables) {\n if (!isTemporaryTableValid(t, date, time)) continue; // Check temporary validity\n\n if (\n t.minCapacity <= guests &&\n guests <= t.maxCapacity &&\n isTableFreeForAllSlots(t.tableNumber, requiredSlots, tableOccupiedSlots)\n ) {\n // console.log(`✅ [isTimeAvailableSync] Found single table ${t.tableNumber} for ${guests} guests at ${time}`); // Verbose\n return true; // Available\n }\n }\n\n // console.log(`[isTimeAvailableSync] No single table found for ${guests} at ${time}. Trying multi-table.`); // Verbose\n\n // 2. Try multi-table assignment\n let best = { minDistance: Infinity, tables: [], tableCount: Infinity };\n findMultiTableCombination(\n allTables,\n guests,\n 0, [], best,\n requiredSlots,\n tableOccupiedSlots, // Use the final occupancy map\n date, time\n );\n\n const result = best.tables.length > 0;\n // if (result) { // Verbose\n // console.log(`✅ [isTimeAvailableSync] Multi-table assignment possible for ${guests} at ${time}: ${best.tables.map(t => t.tableNumber).join(', ')}`);\n // } else {\n // console.log(`❌ [isTimeAvailableSync] No table combination available for ${guests} guests at ${time}`);\n // }\n return result; // Available if a combination was found\n\n } catch (error) {\n console.error(`Error during isTimeAvailableSync for ${date} ${time}:`, error);\n return false; // Assume unavailable on error\n }\n}\n\n/**\n * Filters a map of timeblocks, keeping only those where table assignment is possible.\n */\nfunction filterTimeblocksByTableAvailability(restaurantData, date, timeblocks, guests, reservations) {\n const tableSettings = restaurantData?.['table-settings'] || {};\n const isTableAssignmentEnabled = tableSettings.isInstalled === true &&\n tableSettings.assignmentMode === \"automatic\";\n\n // If table assignment not enabled, no filtering needed based on tables\n if (!isTableAssignmentEnabled) {\n return timeblocks;\n }\n\n // console.log(`\\n===== Filtering timeblocks via table check for ${guests} guests on ${date} =====`); // Verbose\n // console.log(`Starting with ${Object.keys(timeblocks).length} timeblocks`); // Verbose\n\n const filteredTimeblocks = {};\n let availableCount = 0;\n let unavailableCount = 0;\n\n for (const time in timeblocks) {\n // Use the synchronous check for each time block\n if (isTimeAvailableSync(restaurantData, date, time, guests, reservations)) {\n filteredTimeblocks[time] = timeblocks[time];\n availableCount++;\n } else {\n unavailableCount++;\n }\n }\n\n // console.log(`Table filtering results: ${availableCount} available, ${unavailableCount} unavailable times`); // Verbose\n // if (availableCount > 0) console.log(`Available times after table check: ${Object.keys(filteredTimeblocks).join(', ')}`); // Verbose\n\n return filteredTimeblocks;\n}\n\n\n/**\n * Wrapper function for filtering timeblocks based on table availability.\n * (Often used in UI components to get the final list of available times).\n */\nfunction getAvailableTimeblocksWithTableCheck(restaurantData, date, timeblocks, guests, reservations) {\n // This function primarily calls the filter function.\n // It assumes 'timeblocks' is already pre-filtered by basic capacity/rules.\n return filterTimeblocksByTableAvailability(restaurantData, date, timeblocks, guests, reservations);\n}\n\n\n// --- Exports ---\n// Export the functions needed by other parts of the application (e.g., the TimeSelector component)\nmodule.exports = {\n isTimeAvailableSync,\n filterTimeblocksByTableAvailability, // Often internal, but export if needed\n getAvailableTimeblocksWithTableCheck, // Main function used by UI\n // Export helpers only if they are needed externally for testing or other modules\n // computeRequiredSlots, isTableFreeForAllSlots, findMultiTableCombination, assignTablesForGivenTime, calculateDistance\n};","// Archief/Fields/algorithm/tableHelpers.js\n\n// --- Time and Shift Helpers ---\n\n/**\n * Parses a time string (\"HH:MM\") into minutes since midnight.\n * Returns NaN if the format is invalid.\n */\nfunction parseTime(timeStr) {\n if (!timeStr || typeof timeStr !== 'string') return NaN;\n const parts = timeStr.split(':');\n if (parts.length !== 2) return NaN;\n const hours = parseInt(parts[0], 10);\n const minutes = parseInt(parts[1], 10);\n if (isNaN(hours) || isNaN(minutes) || hours < 0 || hours > 23 || minutes < 0 || minutes > 59) {\n return NaN;\n }\n return hours * 60 + minutes;\n}\n\nconst shifts = {\n breakfast: { start: '07:00', end: '11:00' },\n lunch: { start: '11:00', end: '16:00' },\n dinner: { start: '16:00', end: '23:00' }, // Adjust end time if needed\n};\n\n/**\n * Determines the meal type ('breakfast', 'lunch', 'dinner') for a given time string (\"HH:MM\").\n * Returns null if the time doesn't fall into a defined shift.\n */\nfunction getMealTypeByTime(timeStr) {\n const time = parseTime(timeStr);\n if (isNaN(time)) return null;\n\n for (const [mealType, shift] of Object.entries(shifts)) {\n const start = parseTime(shift.start);\n const end = parseTime(shift.end);\n // Handle potential errors from parseTime if shift definitions are invalid\n if (isNaN(start) || isNaN(end)) continue;\n\n // Check if time falls within the shift range [start, end)\n if (time >= start && time < end) {\n return mealType;\n }\n }\n return null; // Return null if no matching shift is found\n}\n\n\n// --- Table Fetching ---\n\n/**\n * Extracts and processes table data from the restaurantData object.\n * Includes temporary table properties and sorts tables.\n * @param {Object} restaurantData - The main restaurant data object.\n * @returns {Array} An array of processed table objects.\n */\nfunction getAllTables(restaurantData) {\n let allTables = [];\n if (restaurantData?.floors && Array.isArray(restaurantData.floors)) {\n restaurantData.floors.forEach(floor => {\n if (floor?.tables && Array.isArray(floor.tables)) {\n floor.tables.forEach(tbl => {\n // Ensure table number, capacities, priority exist before parsing\n const tableNumberRaw = tbl.tableNumber?.$numberInt ?? tbl.tableNumber;\n const minCapacityRaw = tbl.minCapacity?.$numberInt ?? tbl.minCapacity;\n const maxCapacityRaw = tbl.maxCapacity?.$numberInt ?? tbl.maxCapacity;\n const priorityRaw = tbl.priority?.$numberInt ?? tbl.priority;\n const xRaw = tbl.x?.$numberInt ?? tbl.x;\n const yRaw = tbl.y?.$numberInt ?? tbl.y;\n\n if (tbl.objectType === \"Tafel\" &&\n tableNumberRaw !== undefined &&\n minCapacityRaw !== undefined &&\n maxCapacityRaw !== undefined &&\n priorityRaw !== undefined &&\n xRaw !== undefined &&\n yRaw !== undefined)\n {\n allTables.push({\n tableId: tbl.id,\n tableNumber: parseInt(tableNumberRaw, 10),\n minCapacity: parseInt(minCapacityRaw, 10),\n maxCapacity: parseInt(maxCapacityRaw, 10),\n priority: parseInt(priorityRaw, 10),\n x: parseInt(xRaw, 10),\n y: parseInt(yRaw, 10),\n isTemporary: tbl.isTemporary === true, // Ensure boolean\n startDate: tbl.startDate || null, // Expects 'YYYY-MM-DD'\n endDate: tbl.endDate || null, // Expects 'YYYY-MM-DD'\n application: tbl.application || null // Expects 'breakfast', 'lunch', or 'dinner'\n });\n } else if (tbl.objectType === \"Tafel\") {\n console.warn(`Skipping table due to missing essential properties: ${JSON.stringify(tbl)}`);\n }\n });\n }\n });\n } else {\n console.warn(\"Restaurant data is missing 'floors' array.\");\n }\n\n // Sort tables\n allTables.sort((a, b) => {\n if (a.maxCapacity !== b.maxCapacity) {\n return a.maxCapacity - b.maxCapacity;\n }\n if (a.priority !== b.priority) {\n // Assuming lower priority number means higher priority\n return a.priority - b.priority;\n }\n return a.minCapacity - b.minCapacity;\n });\n\n // Filter out tables where parsing failed (resulted in NaN)\n allTables = allTables.filter(t =>\n !isNaN(t.tableNumber) &&\n !isNaN(t.minCapacity) &&\n !isNaN(t.maxCapacity) &&\n !isNaN(t.priority) &&\n !isNaN(t.x) &&\n !isNaN(t.y)\n );\n\n return allTables;\n}\n\n\n// --- Temporary Table Validation ---\n\n/**\n * Checks if a temporary table is valid for a specific reservation date and time.\n * @param {Object} table - The table object (must include isTemporary, startDate, endDate, application).\n * @param {string} reservationDateStr - The date of the reservation (\"YYYY-MM-DD\").\n * @param {string} reservationTimeStr - The time of the reservation (\"HH:MM\").\n * @returns {boolean} True if the table is valid, false otherwise.\n */\nfunction isTemporaryTableValid(table, reservationDateStr, reservationTimeStr) {\n if (!table.isTemporary) {\n return true; // Not temporary, always valid (subject to other checks like availability)\n }\n\n // Check date range\n if (!table.startDate || !table.endDate) {\n console.log(`Temporary Table ${table.tableNumber} skipped: Missing start/end date.`);\n return false; // Invalid temporary table definition\n }\n // Basic date string comparison (YYYY-MM-DD format)\n if (reservationDateStr < table.startDate || reservationDateStr > table.endDate) {\n // console.log(`Temporary Table ${table.tableNumber} skipped: Date ${reservationDateStr} outside range ${table.startDate}-${table.endDate}.`); // Optional verbose logging\n return false;\n }\n\n // Check application (meal type/shift)\n const reservationMealType = getMealTypeByTime(reservationTimeStr);\n if (!reservationMealType) {\n console.log(`Temporary Table ${table.tableNumber} skipped: Could not determine meal type for time ${reservationTimeStr}.`);\n return false; // Cannot determine meal type for the reservation\n }\n if (table.application !== reservationMealType) {\n // console.log(`Temporary Table ${table.tableNumber} skipped: Application '${table.application}' does not match reservation meal type '${reservationMealType}'.`); // Optional verbose logging\n return false;\n }\n\n // console.log(`Temporary Table ${table.tableNumber} is valid for ${reservationDateStr} at ${reservationTimeStr} (${reservationMealType}).`); // Optional verbose logging\n return true;\n}\n\n\n// --- Exports ---\n// Use CommonJS exports (adjust if using ES6 modules)\nmodule.exports = {\n shifts,\n parseTime, // Export if needed elsewhere, otherwise could be kept internal\n getMealTypeByTime,\n getAllTables,\n isTemporaryTableValid\n};","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export const toCodePoints = (str: string): number[] => {\n const codePoints = [];\n let i = 0;\n const length = str.length;\n while (i < length) {\n const value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n const extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n } else {\n codePoints.push(value);\n i--;\n }\n } else {\n codePoints.push(value);\n }\n }\n return codePoints;\n};\n\nexport const fromCodePoint = (...codePoints: number[]): string => {\n if (String.fromCodePoint) {\n return String.fromCodePoint(...codePoints);\n }\n\n const length = codePoints.length;\n if (!length) {\n return '';\n }\n\n const codeUnits = [];\n\n let index = -1;\n let result = '';\n while (++index < length) {\n let codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n } else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode(...codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n};\n\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","import {Context} from '../../core/context';\n\nexport class Bounds {\n constructor(readonly left: number, readonly top: number, readonly width: number, readonly height: number) {}\n\n add(x: number, y: number, w: number, h: number): Bounds {\n return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h);\n }\n\n static fromClientRect(context: Context, clientRect: ClientRect): Bounds {\n return new Bounds(\n clientRect.left + context.windowBounds.left,\n clientRect.top + context.windowBounds.top,\n clientRect.width,\n clientRect.height\n );\n }\n\n static fromDOMRectList(context: Context, domRectList: DOMRectList): Bounds {\n const domRect = Array.from(domRectList).find((rect) => rect.width !== 0);\n return domRect\n ? new Bounds(\n domRect.left + context.windowBounds.left,\n domRect.top + context.windowBounds.top,\n domRect.width,\n domRect.height\n )\n : Bounds.EMPTY;\n }\n\n static EMPTY = new Bounds(0, 0, 0, 0);\n}\n\nexport const parseBounds = (context: Context, node: Element): Bounds => {\n return Bounds.fromClientRect(context, node.getBoundingClientRect());\n};\n\nexport const parseDocumentSize = (document: Document): Bounds => {\n const body = document.body;\n const documentElement = document.documentElement;\n\n if (!body || !documentElement) {\n throw new Error(`Unable to get document size`);\n }\n const width = Math.max(\n Math.max(body.scrollWidth, documentElement.scrollWidth),\n Math.max(body.offsetWidth, documentElement.offsetWidth),\n Math.max(body.clientWidth, documentElement.clientWidth)\n );\n\n const height = Math.max(\n Math.max(body.scrollHeight, documentElement.scrollHeight),\n Math.max(body.offsetHeight, documentElement.offsetHeight),\n Math.max(body.clientHeight, documentElement.clientHeight)\n );\n\n return new Bounds(0, 0, width, height);\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encode = (arraybuffer: ArrayBuffer): string => {\n let bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nexport const decode = (base64: string): ArrayBuffer => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n};\n","import {decode, polyUint16Array, polyUint32Array} from './Util';\n\nexport type int = number;\n\n/** Shift size for getting the index-2 table offset. */\nexport const UTRIE2_SHIFT_2 = 5;\n\n/** Shift size for getting the index-1 table offset. */\nexport const UTRIE2_SHIFT_1 = 6 + 5;\n\n/**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\nexport const UTRIE2_INDEX_SHIFT = 2;\n\n/**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\nexport const UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\n\n/**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\nexport const UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n\n/** Number of entries in a data block. 32=0x20 */\nexport const UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n/** Mask for getting the lower bits for the in-data-block offset. */\nexport const UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\n\nexport const UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n/** Count the lengths of both BMP pieces. 2080=0x820 */\nexport const UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\n/**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\nexport const UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\nexport const UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n/**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\nexport const UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\n\n/**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\nexport const UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n\n/** Number of entries in an index-2 block. 64=0x40 */\nexport const UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n/** Mask for getting the lower bits for the in-index-2-block offset. */\nexport const UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\n\nconst slice16 = (view: number[] | Uint16Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n};\n\nconst slice32 = (view: number[] | Uint32Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n};\n\nexport const createTrieFromBase64 = (base64: string, _byteLength: number): Trie => {\n const buffer = decode(base64);\n const view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n const view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n const headerLength = 24;\n\n const index = slice16(view16, headerLength / 2, view32[4] / 2);\n const data =\n view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n};\n\nexport class Trie {\n initialValue: int;\n errorValue: int;\n highStart: int;\n highValueIndex: int;\n index: Uint16Array | number[];\n data: Uint32Array | Uint16Array | number[];\n\n constructor(\n initialValue: int,\n errorValue: int,\n highStart: int,\n highValueIndex: int,\n index: Uint16Array | number[],\n data: Uint32Array | Uint16Array | number[]\n ) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n get(codePoint: number): number {\n let ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n }\n}\n","export const base64 =\n 'KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA==';\nexport const byteLength = 39664;\n","'use strict';\n\nimport {createTrieFromBase64} from 'utrie';\nimport {base64, byteLength} from './linebreak-trie';\nimport {fromCodePoint, toCodePoints} from './Util';\n\nexport const LETTER_NUMBER_MODIFIER = 50;\n\n// Non-tailorable Line Breaking Classes\nconst BK = 1; // Cause a line break (after)\nconst CR = 2; // Cause a line break (after), except between CR and LF\nconst LF = 3; // Cause a line break (after)\nconst CM = 4; // Prohibit a line break between the character and the preceding character\nconst NL = 5; // Cause a line break (after)\nconst SG = 6; // Do not occur in well-formed text\nconst WJ = 7; // Prohibit line breaks before and after\nconst ZW = 8; // Provide a break opportunity\nconst GL = 9; // Prohibit line breaks before and after\nconst SP = 10; // Enable indirect line breaks\nconst ZWJ = 11; // Prohibit line breaks within joiner sequences\n// Break Opportunities\nconst B2 = 12; // Provide a line break opportunity before and after the character\nconst BA = 13; // Generally provide a line break opportunity after the character\nconst BB = 14; // Generally provide a line break opportunity before the character\nconst HY = 15; // Provide a line break opportunity after the character, except in numeric context\nconst CB = 16; // Provide a line break opportunity contingent on additional information\n// Characters Prohibiting Certain Breaks\nconst CL = 17; // Prohibit line breaks before\nconst CP = 18; // Prohibit line breaks before\nconst EX = 19; // Prohibit line breaks before\nconst IN = 20; // Allow only indirect line breaks between pairs\nconst NS = 21; // Allow only indirect line breaks before\nconst OP = 22; // Prohibit line breaks after\nconst QU = 23; // Act like they are both opening and closing\n// Numeric Context\nconst IS = 24; // Prevent breaks after any and before numeric\nconst NU = 25; // Form numeric expressions for line breaking purposes\nconst PO = 26; // Do not break following a numeric expression\nconst PR = 27; // Do not break in front of a numeric expression\nconst SY = 28; // Prevent a break before; and allow a break after\n// Other Characters\nconst AI = 29; // Act like AL when the resolvedEAW is N; otherwise; act as ID\nconst AL = 30; // Are alphabetic characters or symbols that are used with alphabetic characters\nconst CJ = 31; // Treat as NS or ID for strict or normal breaking.\nconst EB = 32; // Do not break from following Emoji Modifier\nconst EM = 33; // Do not break from preceding Emoji Base\nconst H2 = 34; // Form Korean syllable blocks\nconst H3 = 35; // Form Korean syllable blocks\nconst HL = 36; // Do not break around a following hyphen; otherwise act as Alphabetic\nconst ID = 37; // Break before or after; except in some numeric context\nconst JL = 38; // Form Korean syllable blocks\nconst JV = 39; // Form Korean syllable blocks\nconst JT = 40; // Form Korean syllable blocks\nconst RI = 41; // Keep pairs together. For pairs; break before and after other classes\nconst SA = 42; // Provide a line break opportunity contingent on additional, language-specific context analysis\nconst XX = 43; // Have as yet unknown line breaking behavior or unassigned code positions\n\nconst ea_OP = [0x2329, 0xff08];\n\nexport const classes: {[key: string]: number} = {\n BK,\n CR,\n LF,\n CM,\n NL,\n SG,\n WJ,\n ZW,\n GL,\n SP,\n ZWJ,\n B2,\n BA,\n BB,\n HY,\n CB,\n CL,\n CP,\n EX,\n IN,\n NS,\n OP,\n QU,\n IS,\n NU,\n PO,\n PR,\n SY,\n AI,\n AL,\n CJ,\n EB,\n EM,\n H2,\n H3,\n HL,\n ID,\n JL,\n JV,\n JT,\n RI,\n SA,\n XX,\n};\n\nexport const BREAK_MANDATORY = '!';\nexport const BREAK_NOT_ALLOWED = '×';\nexport const BREAK_ALLOWED = '÷';\nexport const UnicodeTrie = createTrieFromBase64(base64, byteLength);\n\nconst ALPHABETICS = [AL, HL];\nconst HARD_LINE_BREAKS = [BK, CR, LF, NL];\nconst SPACE = [SP, ZW];\nconst PREFIX_POSTFIX = [PR, PO];\nconst LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE);\nconst KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3];\nconst HYPHEN = [HY, BA];\n\nexport const codePointsToCharacterClasses = (\n codePoints: number[],\n lineBreak: string = 'strict'\n): [number[], number[], boolean[]] => {\n const types: number[] = [];\n const indices: number[] = [];\n const categories: boolean[] = [];\n codePoints.forEach((codePoint, index) => {\n let classType = UnicodeTrie.get(codePoint);\n if (classType > LETTER_NUMBER_MODIFIER) {\n categories.push(true);\n classType -= LETTER_NUMBER_MODIFIER;\n } else {\n categories.push(false);\n }\n\n if (['normal', 'auto', 'loose'].indexOf(lineBreak) !== -1) {\n // U+2010, – U+2013, 〜 U+301C, ゠ U+30A0\n if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) {\n indices.push(index);\n return types.push(CB);\n }\n }\n\n if (classType === CM || classType === ZWJ) {\n // LB10 Treat any remaining combining mark or ZWJ as AL.\n if (index === 0) {\n indices.push(index);\n return types.push(AL);\n }\n\n // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of\n // the base character in all of the following rules. Treat ZWJ as if it were CM.\n const prev = types[index - 1];\n if (LINE_BREAKS.indexOf(prev) === -1) {\n indices.push(indices[index - 1]);\n return types.push(prev);\n }\n indices.push(index);\n return types.push(AL);\n }\n\n indices.push(index);\n\n if (classType === CJ) {\n return types.push(lineBreak === 'strict' ? NS : ID);\n }\n\n if (classType === SA) {\n return types.push(AL);\n }\n\n if (classType === AI) {\n return types.push(AL);\n }\n\n // For supplementary characters, a useful default is to treat characters in the range 10000..1FFFD as AL\n // and characters in the ranges 20000..2FFFD and 30000..3FFFD as ID, until the implementation can be revised\n // to take into account the actual line breaking properties for these characters.\n if (classType === XX) {\n if ((codePoint >= 0x20000 && codePoint <= 0x2fffd) || (codePoint >= 0x30000 && codePoint <= 0x3fffd)) {\n return types.push(ID);\n } else {\n return types.push(AL);\n }\n }\n\n types.push(classType);\n });\n\n return [indices, types, categories];\n};\n\nconst isAdjacentWithSpaceIgnored = (\n a: number[] | number,\n b: number,\n currentIndex: number,\n classTypes: number[]\n): boolean => {\n const current = classTypes[currentIndex];\n if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) {\n let i = currentIndex;\n while (i <= classTypes.length) {\n i++;\n let next = classTypes[i];\n\n if (next === b) {\n return true;\n }\n\n if (next !== SP) {\n break;\n }\n }\n }\n\n if (current === SP) {\n let i = currentIndex;\n\n while (i > 0) {\n i--;\n const prev = classTypes[i];\n\n if (Array.isArray(a) ? a.indexOf(prev) !== -1 : a === prev) {\n let n = currentIndex;\n while (n <= classTypes.length) {\n n++;\n let next = classTypes[n];\n\n if (next === b) {\n return true;\n }\n\n if (next !== SP) {\n break;\n }\n }\n }\n\n if (prev !== SP) {\n break;\n }\n }\n }\n return false;\n};\n\nconst previousNonSpaceClassType = (currentIndex: number, classTypes: number[]): number => {\n let i = currentIndex;\n while (i >= 0) {\n let type = classTypes[i];\n if (type === SP) {\n i--;\n } else {\n return type;\n }\n }\n return 0;\n};\n\nexport type BREAK_OPPORTUNITIES = typeof BREAK_NOT_ALLOWED | typeof BREAK_ALLOWED | typeof BREAK_MANDATORY;\n\nconst _lineBreakAtIndex = (\n codePoints: number[],\n classTypes: number[],\n indicies: number[],\n index: number,\n forbiddenBreaks?: boolean[]\n): BREAK_OPPORTUNITIES => {\n if (indicies[index] === 0) {\n return BREAK_NOT_ALLOWED;\n }\n\n let currentIndex = index - 1;\n if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) {\n return BREAK_NOT_ALLOWED;\n }\n\n let beforeIndex = currentIndex - 1;\n let afterIndex = currentIndex + 1;\n let current = classTypes[currentIndex];\n\n // LB4 Always break after hard line breaks.\n // LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks.\n let before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0;\n let next = classTypes[afterIndex];\n\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n\n if (HARD_LINE_BREAKS.indexOf(current) !== -1) {\n return BREAK_MANDATORY;\n }\n\n // LB6 Do not break before hard line breaks.\n if (HARD_LINE_BREAKS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB7 Do not break before spaces or zero width space.\n if (SPACE.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB8 Break before any character following a zero-width space, even if one or more spaces intervene.\n if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) {\n return BREAK_ALLOWED;\n }\n\n // LB8a Do not break after a zero width joiner.\n if (UnicodeTrie.get(codePoints[currentIndex]) === ZWJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // zwj emojis\n if ((current === EB || current === EM) && UnicodeTrie.get(codePoints[afterIndex]) === ZWJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB11 Do not break before or after Word joiner and related characters.\n if (current === WJ || next === WJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB12 Do not break after NBSP and related characters.\n if (current === GL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB12a Do not break before NBSP and related characters, except after spaces and hyphens.\n if ([SP, BA, HY].indexOf(current) === -1 && next === GL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.\n if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB14 Do not break after ‘[’, even after spaces.\n if (previousNonSpaceClassType(currentIndex, classTypes) === OP) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB15 Do not break within ‘”[’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces.\n if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB17 Do not break within ‘——’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB18 Break after spaces.\n if (current === SP) {\n return BREAK_ALLOWED;\n }\n\n // LB19 Do not break before or after quotation marks, such as ‘ ” ’.\n if (current === QU || next === QU) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB20 Break before and after unresolved CB.\n if (next === CB || current === CB) {\n return BREAK_ALLOWED;\n }\n\n // LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.\n if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB21a Don't break after Hebrew + Hyphen.\n if (before === HL && HYPHEN.indexOf(current) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB21b Don’t break between Solidus and Hebrew letters.\n if (current === SY && next === HL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB22 Do not break before ellipsis.\n if (next === IN) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB23 Do not break between digits and letters.\n if ((ALPHABETICS.indexOf(next) !== -1 && current === NU) || (ALPHABETICS.indexOf(current) !== -1 && next === NU)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.\n if (\n (current === PR && [ID, EB, EM].indexOf(next) !== -1) ||\n ([ID, EB, EM].indexOf(current) !== -1 && next === PO)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix.\n if (\n (ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1) ||\n (PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB25 Do not break between the following pairs of classes relevant to numbers:\n if (\n // (PR | PO) × ( OP | HY )? NU\n ([PR, PO].indexOf(current) !== -1 &&\n (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||\n // ( OP | HY ) × NU\n ([OP, HY].indexOf(current) !== -1 && next === NU) ||\n // NU ×\t(NU | SY | IS)\n (current === NU && [NU, SY, IS].indexOf(next) !== -1)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // NU (NU | SY | IS)* × (NU | SY | IS | CL | CP)\n if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) {\n let prevIndex = currentIndex;\n while (prevIndex >= 0) {\n let type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED;\n } else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n } else {\n break;\n }\n }\n }\n\n // NU (NU | SY | IS)* (CL | CP)? × (PO | PR))\n if ([PR, PO].indexOf(next) !== -1) {\n let prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex;\n while (prevIndex >= 0) {\n let type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED;\n } else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n } else {\n break;\n }\n }\n }\n\n // LB26 Do not break a Korean syllable.\n if (\n (JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) ||\n ([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) ||\n ([JT, H3].indexOf(current) !== -1 && next === JT)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB27 Treat a Korean Syllable Block the same as ID.\n if (\n (KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1) ||\n (KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB28 Do not break between alphabetics (“at”).\n if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB29 Do not break between numeric punctuation and alphabetics (“e.g.”).\n if (current === IS && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.\n if (\n (ALPHABETICS.concat(NU).indexOf(current) !== -1 &&\n next === OP &&\n ea_OP.indexOf(codePoints[afterIndex]) === -1) ||\n (ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB30a Break between two regional indicator symbols if and only if there are an even number of regional\n // indicators preceding the position of the break.\n if (current === RI && next === RI) {\n let i = indicies[currentIndex];\n let count = 1;\n while (i > 0) {\n i--;\n if (classTypes[i] === RI) {\n count++;\n } else {\n break;\n }\n }\n if (count % 2 !== 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n // LB30b Do not break between an emoji base and an emoji modifier.\n if (current === EB && next === EM) {\n return BREAK_NOT_ALLOWED;\n }\n\n return BREAK_ALLOWED;\n};\n\nexport const lineBreakAtIndex = (codePoints: number[], index: number): BREAK_OPPORTUNITIES => {\n // LB2 Never break at the start of text.\n if (index === 0) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB3 Always break at the end of text.\n if (index >= codePoints.length) {\n return BREAK_MANDATORY;\n }\n\n const [indices, classTypes] = codePointsToCharacterClasses(codePoints);\n\n return _lineBreakAtIndex(codePoints, classTypes, indices, index);\n};\n\nexport type LINE_BREAK = 'auto' | 'normal' | 'strict';\nexport type WORD_BREAK = 'normal' | 'break-all' | 'break-word' | 'keep-all';\n\ninterface IOptions {\n lineBreak?: LINE_BREAK;\n wordBreak?: WORD_BREAK;\n}\n\nconst cssFormattedClasses = (codePoints: number[], options?: IOptions): [number[], number[], boolean[] | undefined] => {\n if (!options) {\n options = {lineBreak: 'normal', wordBreak: 'normal'};\n }\n let [indicies, classTypes, isLetterNumber] = codePointsToCharacterClasses(codePoints, options.lineBreak);\n\n if (options.wordBreak === 'break-all' || options.wordBreak === 'break-word') {\n classTypes = classTypes.map((type) => ([NU, AL, SA].indexOf(type) !== -1 ? ID : type));\n }\n\n const forbiddenBreakpoints =\n options.wordBreak === 'keep-all'\n ? isLetterNumber.map((letterNumber, i) => {\n return letterNumber && codePoints[i] >= 0x4e00 && codePoints[i] <= 0x9fff;\n })\n : undefined;\n\n return [indicies, classTypes, forbiddenBreakpoints];\n};\n\nexport const inlineBreakOpportunities = (str: string, options?: IOptions): string => {\n const codePoints = toCodePoints(str);\n let output = BREAK_NOT_ALLOWED;\n const [indicies, classTypes, forbiddenBreakpoints] = cssFormattedClasses(codePoints, options);\n\n codePoints.forEach((codePoint, i) => {\n output +=\n fromCodePoint(codePoint) +\n (i >= codePoints.length - 1\n ? BREAK_MANDATORY\n : _lineBreakAtIndex(codePoints, classTypes, indicies, i + 1, forbiddenBreakpoints));\n });\n\n return output;\n};\n\nclass Break {\n private readonly codePoints: number[];\n readonly required: boolean;\n readonly start: number;\n readonly end: number;\n\n constructor(codePoints: number[], lineBreak: string, start: number, end: number) {\n this.codePoints = codePoints;\n this.required = lineBreak === BREAK_MANDATORY;\n this.start = start;\n this.end = end;\n }\n\n slice(): string {\n return fromCodePoint(...this.codePoints.slice(this.start, this.end));\n }\n}\n\nexport type LineBreak =\n | {\n done: true;\n value: null;\n }\n | {\n done: false;\n value: Break;\n };\n\ninterface ILineBreakIterator {\n next: () => LineBreak;\n}\n\nexport const LineBreaker = (str: string, options?: IOptions): ILineBreakIterator => {\n const codePoints = toCodePoints(str);\n const [indicies, classTypes, forbiddenBreakpoints] = cssFormattedClasses(codePoints, options);\n const length = codePoints.length;\n let lastEnd = 0;\n let nextIndex = 0;\n\n return {\n next: () => {\n if (nextIndex >= length) {\n return {done: true, value: null};\n }\n let lineBreak = BREAK_NOT_ALLOWED;\n while (\n nextIndex < length &&\n (lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) ===\n BREAK_NOT_ALLOWED\n ) {}\n\n if (lineBreak !== BREAK_NOT_ALLOWED || nextIndex === length) {\n const value = new Break(codePoints, lineBreak, lastEnd, nextIndex);\n lastEnd = nextIndex;\n return {value, done: false};\n }\n\n return {done: true, value: null};\n },\n };\n};\n","// https://www.w3.org/TR/css-syntax-3\n\nimport {fromCodePoint, toCodePoints} from 'css-line-break';\n\nexport const enum TokenType {\n STRING_TOKEN,\n BAD_STRING_TOKEN,\n LEFT_PARENTHESIS_TOKEN,\n RIGHT_PARENTHESIS_TOKEN,\n COMMA_TOKEN,\n HASH_TOKEN,\n DELIM_TOKEN,\n AT_KEYWORD_TOKEN,\n PREFIX_MATCH_TOKEN,\n DASH_MATCH_TOKEN,\n INCLUDE_MATCH_TOKEN,\n LEFT_CURLY_BRACKET_TOKEN,\n RIGHT_CURLY_BRACKET_TOKEN,\n SUFFIX_MATCH_TOKEN,\n SUBSTRING_MATCH_TOKEN,\n DIMENSION_TOKEN,\n PERCENTAGE_TOKEN,\n NUMBER_TOKEN,\n FUNCTION,\n FUNCTION_TOKEN,\n IDENT_TOKEN,\n COLUMN_TOKEN,\n URL_TOKEN,\n BAD_URL_TOKEN,\n CDC_TOKEN,\n CDO_TOKEN,\n COLON_TOKEN,\n SEMICOLON_TOKEN,\n LEFT_SQUARE_BRACKET_TOKEN,\n RIGHT_SQUARE_BRACKET_TOKEN,\n UNICODE_RANGE_TOKEN,\n WHITESPACE_TOKEN,\n EOF_TOKEN\n}\n\ninterface IToken {\n type: TokenType;\n}\n\nexport interface Token extends IToken {\n type:\n | TokenType.BAD_URL_TOKEN\n | TokenType.BAD_STRING_TOKEN\n | TokenType.LEFT_PARENTHESIS_TOKEN\n | TokenType.RIGHT_PARENTHESIS_TOKEN\n | TokenType.COMMA_TOKEN\n | TokenType.SUBSTRING_MATCH_TOKEN\n | TokenType.PREFIX_MATCH_TOKEN\n | TokenType.SUFFIX_MATCH_TOKEN\n | TokenType.COLON_TOKEN\n | TokenType.SEMICOLON_TOKEN\n | TokenType.LEFT_SQUARE_BRACKET_TOKEN\n | TokenType.RIGHT_SQUARE_BRACKET_TOKEN\n | TokenType.LEFT_CURLY_BRACKET_TOKEN\n | TokenType.RIGHT_CURLY_BRACKET_TOKEN\n | TokenType.DASH_MATCH_TOKEN\n | TokenType.INCLUDE_MATCH_TOKEN\n | TokenType.COLUMN_TOKEN\n | TokenType.WHITESPACE_TOKEN\n | TokenType.CDC_TOKEN\n | TokenType.CDO_TOKEN\n | TokenType.EOF_TOKEN;\n}\n\nexport interface StringValueToken extends IToken {\n type:\n | TokenType.STRING_TOKEN\n | TokenType.DELIM_TOKEN\n | TokenType.FUNCTION_TOKEN\n | TokenType.IDENT_TOKEN\n | TokenType.URL_TOKEN\n | TokenType.AT_KEYWORD_TOKEN;\n value: string;\n}\n\nexport interface HashToken extends IToken {\n type: TokenType.HASH_TOKEN;\n flags: number;\n value: string;\n}\n\nexport interface NumberValueToken extends IToken {\n type: TokenType.PERCENTAGE_TOKEN | TokenType.NUMBER_TOKEN;\n flags: number;\n number: number;\n}\n\nexport interface DimensionToken extends IToken {\n type: TokenType.DIMENSION_TOKEN;\n flags: number;\n unit: string;\n number: number;\n}\n\nexport interface UnicodeRangeToken extends IToken {\n type: TokenType.UNICODE_RANGE_TOKEN;\n start: number;\n end: number;\n}\n\nexport type CSSToken = Token | StringValueToken | NumberValueToken | DimensionToken | UnicodeRangeToken | HashToken;\n\nexport const FLAG_UNRESTRICTED = 1 << 0;\nexport const FLAG_ID = 1 << 1;\nexport const FLAG_INTEGER = 1 << 2;\nexport const FLAG_NUMBER = 1 << 3;\n\nconst LINE_FEED = 0x000a;\nconst SOLIDUS = 0x002f;\nconst REVERSE_SOLIDUS = 0x005c;\nconst CHARACTER_TABULATION = 0x0009;\nconst SPACE = 0x0020;\nconst QUOTATION_MARK = 0x0022;\nconst EQUALS_SIGN = 0x003d;\nconst NUMBER_SIGN = 0x0023;\nconst DOLLAR_SIGN = 0x0024;\nconst PERCENTAGE_SIGN = 0x0025;\nconst APOSTROPHE = 0x0027;\nconst LEFT_PARENTHESIS = 0x0028;\nconst RIGHT_PARENTHESIS = 0x0029;\nconst LOW_LINE = 0x005f;\nconst HYPHEN_MINUS = 0x002d;\nconst EXCLAMATION_MARK = 0x0021;\nconst LESS_THAN_SIGN = 0x003c;\nconst GREATER_THAN_SIGN = 0x003e;\nconst COMMERCIAL_AT = 0x0040;\nconst LEFT_SQUARE_BRACKET = 0x005b;\nconst RIGHT_SQUARE_BRACKET = 0x005d;\nconst CIRCUMFLEX_ACCENT = 0x003d;\nconst LEFT_CURLY_BRACKET = 0x007b;\nconst QUESTION_MARK = 0x003f;\nconst RIGHT_CURLY_BRACKET = 0x007d;\nconst VERTICAL_LINE = 0x007c;\nconst TILDE = 0x007e;\nconst CONTROL = 0x0080;\nconst REPLACEMENT_CHARACTER = 0xfffd;\nconst ASTERISK = 0x002a;\nconst PLUS_SIGN = 0x002b;\nconst COMMA = 0x002c;\nconst COLON = 0x003a;\nconst SEMICOLON = 0x003b;\nconst FULL_STOP = 0x002e;\nconst NULL = 0x0000;\nconst BACKSPACE = 0x0008;\nconst LINE_TABULATION = 0x000b;\nconst SHIFT_OUT = 0x000e;\nconst INFORMATION_SEPARATOR_ONE = 0x001f;\nconst DELETE = 0x007f;\nconst EOF = -1;\nconst ZERO = 0x0030;\nconst a = 0x0061;\nconst e = 0x0065;\nconst f = 0x0066;\nconst u = 0x0075;\nconst z = 0x007a;\nconst A = 0x0041;\nconst E = 0x0045;\nconst F = 0x0046;\nconst U = 0x0055;\nconst Z = 0x005a;\n\nconst isDigit = (codePoint: number) => codePoint >= ZERO && codePoint <= 0x0039;\nconst isSurrogateCodePoint = (codePoint: number) => codePoint >= 0xd800 && codePoint <= 0xdfff;\nconst isHex = (codePoint: number) =>\n isDigit(codePoint) || (codePoint >= A && codePoint <= F) || (codePoint >= a && codePoint <= f);\nconst isLowerCaseLetter = (codePoint: number) => codePoint >= a && codePoint <= z;\nconst isUpperCaseLetter = (codePoint: number) => codePoint >= A && codePoint <= Z;\nconst isLetter = (codePoint: number) => isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint);\nconst isNonASCIICodePoint = (codePoint: number) => codePoint >= CONTROL;\nconst isWhiteSpace = (codePoint: number): boolean =>\n codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE;\nconst isNameStartCodePoint = (codePoint: number): boolean =>\n isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE;\nconst isNameCodePoint = (codePoint: number): boolean =>\n isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS;\nconst isNonPrintableCodePoint = (codePoint: number): boolean => {\n return (\n (codePoint >= NULL && codePoint <= BACKSPACE) ||\n codePoint === LINE_TABULATION ||\n (codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||\n codePoint === DELETE\n );\n};\nconst isValidEscape = (c1: number, c2: number): boolean => {\n if (c1 !== REVERSE_SOLIDUS) {\n return false;\n }\n\n return c2 !== LINE_FEED;\n};\nconst isIdentifierStart = (c1: number, c2: number, c3: number): boolean => {\n if (c1 === HYPHEN_MINUS) {\n return isNameStartCodePoint(c2) || isValidEscape(c2, c3);\n } else if (isNameStartCodePoint(c1)) {\n return true;\n } else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {\n return true;\n }\n return false;\n};\n\nconst isNumberStart = (c1: number, c2: number, c3: number): boolean => {\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n if (isDigit(c2)) {\n return true;\n }\n\n return c2 === FULL_STOP && isDigit(c3);\n }\n\n if (c1 === FULL_STOP) {\n return isDigit(c2);\n }\n\n return isDigit(c1);\n};\n\nconst stringToNumber = (codePoints: number[]): number => {\n let c = 0;\n let sign = 1;\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n sign = -1;\n }\n c++;\n }\n\n const integers = [];\n\n while (isDigit(codePoints[c])) {\n integers.push(codePoints[c++]);\n }\n\n const int = integers.length ? parseInt(fromCodePoint(...integers), 10) : 0;\n\n if (codePoints[c] === FULL_STOP) {\n c++;\n }\n\n const fraction = [];\n while (isDigit(codePoints[c])) {\n fraction.push(codePoints[c++]);\n }\n\n const fracd = fraction.length;\n const frac = fracd ? parseInt(fromCodePoint(...fraction), 10) : 0;\n\n if (codePoints[c] === E || codePoints[c] === e) {\n c++;\n }\n\n let expsign = 1;\n\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n expsign = -1;\n }\n c++;\n }\n\n const exponent = [];\n\n while (isDigit(codePoints[c])) {\n exponent.push(codePoints[c++]);\n }\n\n const exp = exponent.length ? parseInt(fromCodePoint(...exponent), 10) : 0;\n\n return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp);\n};\n\nconst LEFT_PARENTHESIS_TOKEN: Token = {\n type: TokenType.LEFT_PARENTHESIS_TOKEN\n};\nconst RIGHT_PARENTHESIS_TOKEN: Token = {\n type: TokenType.RIGHT_PARENTHESIS_TOKEN\n};\nconst COMMA_TOKEN: Token = {type: TokenType.COMMA_TOKEN};\nconst SUFFIX_MATCH_TOKEN: Token = {type: TokenType.SUFFIX_MATCH_TOKEN};\nconst PREFIX_MATCH_TOKEN: Token = {type: TokenType.PREFIX_MATCH_TOKEN};\nconst COLUMN_TOKEN: Token = {type: TokenType.COLUMN_TOKEN};\nconst DASH_MATCH_TOKEN: Token = {type: TokenType.DASH_MATCH_TOKEN};\nconst INCLUDE_MATCH_TOKEN: Token = {type: TokenType.INCLUDE_MATCH_TOKEN};\nconst LEFT_CURLY_BRACKET_TOKEN: Token = {\n type: TokenType.LEFT_CURLY_BRACKET_TOKEN\n};\nconst RIGHT_CURLY_BRACKET_TOKEN: Token = {\n type: TokenType.RIGHT_CURLY_BRACKET_TOKEN\n};\nconst SUBSTRING_MATCH_TOKEN: Token = {type: TokenType.SUBSTRING_MATCH_TOKEN};\nconst BAD_URL_TOKEN: Token = {type: TokenType.BAD_URL_TOKEN};\nconst BAD_STRING_TOKEN: Token = {type: TokenType.BAD_STRING_TOKEN};\nconst CDO_TOKEN: Token = {type: TokenType.CDO_TOKEN};\nconst CDC_TOKEN: Token = {type: TokenType.CDC_TOKEN};\nconst COLON_TOKEN: Token = {type: TokenType.COLON_TOKEN};\nconst SEMICOLON_TOKEN: Token = {type: TokenType.SEMICOLON_TOKEN};\nconst LEFT_SQUARE_BRACKET_TOKEN: Token = {\n type: TokenType.LEFT_SQUARE_BRACKET_TOKEN\n};\nconst RIGHT_SQUARE_BRACKET_TOKEN: Token = {\n type: TokenType.RIGHT_SQUARE_BRACKET_TOKEN\n};\nconst WHITESPACE_TOKEN: Token = {type: TokenType.WHITESPACE_TOKEN};\nexport const EOF_TOKEN: Token = {type: TokenType.EOF_TOKEN};\n\nexport class Tokenizer {\n private _value: number[];\n\n constructor() {\n this._value = [];\n }\n\n write(chunk: string): void {\n this._value = this._value.concat(toCodePoints(chunk));\n }\n\n read(): CSSToken[] {\n const tokens = [];\n let token = this.consumeToken();\n while (token !== EOF_TOKEN) {\n tokens.push(token);\n token = this.consumeToken();\n }\n return tokens;\n }\n\n private consumeToken(): CSSToken {\n const codePoint = this.consumeCodePoint();\n\n switch (codePoint) {\n case QUOTATION_MARK:\n return this.consumeStringToken(QUOTATION_MARK);\n case NUMBER_SIGN:\n const c1 = this.peekCodePoint(0);\n const c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n if (isNameCodePoint(c1) || isValidEscape(c2, c3)) {\n const flags = isIdentifierStart(c1, c2, c3) ? FLAG_ID : FLAG_UNRESTRICTED;\n const value = this.consumeName();\n\n return {type: TokenType.HASH_TOKEN, value, flags};\n }\n break;\n case DOLLAR_SIGN:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUFFIX_MATCH_TOKEN;\n }\n break;\n case APOSTROPHE:\n return this.consumeStringToken(APOSTROPHE);\n case LEFT_PARENTHESIS:\n return LEFT_PARENTHESIS_TOKEN;\n case RIGHT_PARENTHESIS:\n return RIGHT_PARENTHESIS_TOKEN;\n case ASTERISK:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUBSTRING_MATCH_TOKEN;\n }\n break;\n case PLUS_SIGN:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case COMMA:\n return COMMA_TOKEN;\n case HYPHEN_MINUS:\n const e1 = codePoint;\n const e2 = this.peekCodePoint(0);\n const e3 = this.peekCodePoint(1);\n\n if (isNumberStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n\n if (isIdentifierStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n\n if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDC_TOKEN;\n }\n break;\n\n case FULL_STOP:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case SOLIDUS:\n if (this.peekCodePoint(0) === ASTERISK) {\n this.consumeCodePoint();\n while (true) {\n let c = this.consumeCodePoint();\n if (c === ASTERISK) {\n c = this.consumeCodePoint();\n if (c === SOLIDUS) {\n return this.consumeToken();\n }\n }\n if (c === EOF) {\n return this.consumeToken();\n }\n }\n }\n break;\n case COLON:\n return COLON_TOKEN;\n case SEMICOLON:\n return SEMICOLON_TOKEN;\n case LESS_THAN_SIGN:\n if (\n this.peekCodePoint(0) === EXCLAMATION_MARK &&\n this.peekCodePoint(1) === HYPHEN_MINUS &&\n this.peekCodePoint(2) === HYPHEN_MINUS\n ) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDO_TOKEN;\n }\n break;\n case COMMERCIAL_AT:\n const a1 = this.peekCodePoint(0);\n const a2 = this.peekCodePoint(1);\n const a3 = this.peekCodePoint(2);\n if (isIdentifierStart(a1, a2, a3)) {\n const value = this.consumeName();\n return {type: TokenType.AT_KEYWORD_TOKEN, value};\n }\n break;\n case LEFT_SQUARE_BRACKET:\n return LEFT_SQUARE_BRACKET_TOKEN;\n case REVERSE_SOLIDUS:\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n break;\n case RIGHT_SQUARE_BRACKET:\n return RIGHT_SQUARE_BRACKET_TOKEN;\n case CIRCUMFLEX_ACCENT:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return PREFIX_MATCH_TOKEN;\n }\n break;\n case LEFT_CURLY_BRACKET:\n return LEFT_CURLY_BRACKET_TOKEN;\n case RIGHT_CURLY_BRACKET:\n return RIGHT_CURLY_BRACKET_TOKEN;\n case u:\n case U:\n const u1 = this.peekCodePoint(0);\n const u2 = this.peekCodePoint(1);\n if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) {\n this.consumeCodePoint();\n this.consumeUnicodeRangeToken();\n }\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n case VERTICAL_LINE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return DASH_MATCH_TOKEN;\n }\n if (this.peekCodePoint(0) === VERTICAL_LINE) {\n this.consumeCodePoint();\n return COLUMN_TOKEN;\n }\n break;\n case TILDE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return INCLUDE_MATCH_TOKEN;\n }\n break;\n case EOF:\n return EOF_TOKEN;\n }\n\n if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n return WHITESPACE_TOKEN;\n }\n\n if (isDigit(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n\n if (isNameStartCodePoint(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n\n return {type: TokenType.DELIM_TOKEN, value: fromCodePoint(codePoint)};\n }\n\n private consumeCodePoint(): number {\n const value = this._value.shift();\n\n return typeof value === 'undefined' ? -1 : value;\n }\n\n private reconsumeCodePoint(codePoint: number) {\n this._value.unshift(codePoint);\n }\n\n private peekCodePoint(delta: number): number {\n if (delta >= this._value.length) {\n return -1;\n }\n\n return this._value[delta];\n }\n\n private consumeUnicodeRangeToken(): UnicodeRangeToken {\n const digits = [];\n let codePoint = this.consumeCodePoint();\n while (isHex(codePoint) && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n let questionMarks = false;\n while (codePoint === QUESTION_MARK && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n questionMarks = true;\n }\n\n if (questionMarks) {\n const start = parseInt(\n fromCodePoint(...digits.map((digit) => (digit === QUESTION_MARK ? ZERO : digit))),\n 16\n );\n const end = parseInt(fromCodePoint(...digits.map((digit) => (digit === QUESTION_MARK ? F : digit))), 16);\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end};\n }\n\n const start = parseInt(fromCodePoint(...digits), 16);\n if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) {\n this.consumeCodePoint();\n codePoint = this.consumeCodePoint();\n const endDigits = [];\n while (isHex(codePoint) && endDigits.length < 6) {\n endDigits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n const end = parseInt(fromCodePoint(...endDigits), 16);\n\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end};\n } else {\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end: start};\n }\n }\n\n private consumeIdentLikeToken(): StringValueToken | Token {\n const value = this.consumeName();\n if (value.toLowerCase() === 'url' && this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return this.consumeUrlToken();\n } else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.FUNCTION_TOKEN, value};\n }\n\n return {type: TokenType.IDENT_TOKEN, value};\n }\n\n private consumeUrlToken(): StringValueToken | Token {\n const value = [];\n this.consumeWhiteSpace();\n\n if (this.peekCodePoint(0) === EOF) {\n return {type: TokenType.URL_TOKEN, value: ''};\n }\n\n const next = this.peekCodePoint(0);\n if (next === APOSTROPHE || next === QUOTATION_MARK) {\n const stringToken = this.consumeStringToken(this.consumeCodePoint());\n if (stringToken.type === TokenType.STRING_TOKEN) {\n this.consumeWhiteSpace();\n\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.URL_TOKEN, value: stringToken.value};\n }\n }\n\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) {\n return {type: TokenType.URL_TOKEN, value: fromCodePoint(...value)};\n } else if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.URL_TOKEN, value: fromCodePoint(...value)};\n }\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n } else if (\n codePoint === QUOTATION_MARK ||\n codePoint === APOSTROPHE ||\n codePoint === LEFT_PARENTHESIS ||\n isNonPrintableCodePoint(codePoint)\n ) {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n } else if (codePoint === REVERSE_SOLIDUS) {\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n value.push(this.consumeEscapedCodePoint());\n } else {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n } else {\n value.push(codePoint);\n }\n }\n }\n\n private consumeWhiteSpace(): void {\n while (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n }\n\n private consumeBadUrlRemnants(): void {\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) {\n return;\n }\n\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.consumeEscapedCodePoint();\n }\n }\n }\n\n private consumeStringSlice(count: number): string {\n const SLICE_STACK_SIZE = 50000;\n let value = '';\n while (count > 0) {\n const amount = Math.min(SLICE_STACK_SIZE, count);\n value += fromCodePoint(...this._value.splice(0, amount));\n count -= amount;\n }\n this._value.shift();\n\n return value;\n }\n\n private consumeStringToken(endingCodePoint: number): StringValueToken | Token {\n let value = '';\n let i = 0;\n\n do {\n const codePoint = this._value[i];\n if (codePoint === EOF || codePoint === undefined || codePoint === endingCodePoint) {\n value += this.consumeStringSlice(i);\n return {type: TokenType.STRING_TOKEN, value};\n }\n\n if (codePoint === LINE_FEED) {\n this._value.splice(0, i);\n return BAD_STRING_TOKEN;\n }\n\n if (codePoint === REVERSE_SOLIDUS) {\n const next = this._value[i + 1];\n if (next !== EOF && next !== undefined) {\n if (next === LINE_FEED) {\n value += this.consumeStringSlice(i);\n i = -1;\n this._value.shift();\n } else if (isValidEscape(codePoint, next)) {\n value += this.consumeStringSlice(i);\n value += fromCodePoint(this.consumeEscapedCodePoint());\n i = -1;\n }\n }\n }\n\n i++;\n } while (true);\n }\n\n private consumeNumber() {\n const repr = [];\n let type = FLAG_INTEGER;\n let c1 = this.peekCodePoint(0);\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n repr.push(this.consumeCodePoint());\n }\n\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n c1 = this.peekCodePoint(0);\n let c2 = this.peekCodePoint(1);\n if (c1 === FULL_STOP && isDigit(c2)) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n\n c1 = this.peekCodePoint(0);\n c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n if ((c1 === E || c1 === e) && (((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3)) || isDigit(c2))) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n\n return [stringToNumber(repr), type];\n }\n\n private consumeNumericToken(): NumberValueToken | DimensionToken {\n const [number, flags] = this.consumeNumber();\n const c1 = this.peekCodePoint(0);\n const c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n\n if (isIdentifierStart(c1, c2, c3)) {\n const unit = this.consumeName();\n return {type: TokenType.DIMENSION_TOKEN, number, flags, unit};\n }\n\n if (c1 === PERCENTAGE_SIGN) {\n this.consumeCodePoint();\n return {type: TokenType.PERCENTAGE_TOKEN, number, flags};\n }\n\n return {type: TokenType.NUMBER_TOKEN, number, flags};\n }\n\n private consumeEscapedCodePoint(): number {\n const codePoint = this.consumeCodePoint();\n\n if (isHex(codePoint)) {\n let hex = fromCodePoint(codePoint);\n while (isHex(this.peekCodePoint(0)) && hex.length < 6) {\n hex += fromCodePoint(this.consumeCodePoint());\n }\n\n if (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n\n const hexCodePoint = parseInt(hex, 16);\n\n if (hexCodePoint === 0 || isSurrogateCodePoint(hexCodePoint) || hexCodePoint > 0x10ffff) {\n return REPLACEMENT_CHARACTER;\n }\n\n return hexCodePoint;\n }\n\n if (codePoint === EOF) {\n return REPLACEMENT_CHARACTER;\n }\n\n return codePoint;\n }\n\n private consumeName(): string {\n let result = '';\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (isNameCodePoint(codePoint)) {\n result += fromCodePoint(codePoint);\n } else if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n result += fromCodePoint(this.consumeEscapedCodePoint());\n } else {\n this.reconsumeCodePoint(codePoint);\n return result;\n }\n }\n }\n}\n","import {\n CSSToken,\n DimensionToken,\n EOF_TOKEN,\n NumberValueToken,\n StringValueToken,\n Tokenizer,\n TokenType\n} from './tokenizer';\n\nexport type CSSBlockType =\n | TokenType.LEFT_PARENTHESIS_TOKEN\n | TokenType.LEFT_SQUARE_BRACKET_TOKEN\n | TokenType.LEFT_CURLY_BRACKET_TOKEN;\n\nexport interface CSSBlock {\n type: CSSBlockType;\n values: CSSValue[];\n}\n\nexport interface CSSFunction {\n type: TokenType.FUNCTION;\n name: string;\n values: CSSValue[];\n}\n\nexport type CSSValue = CSSFunction | CSSToken | CSSBlock;\n\nexport class Parser {\n private _tokens: CSSToken[];\n\n constructor(tokens: CSSToken[]) {\n this._tokens = tokens;\n }\n\n static create(value: string): Parser {\n const tokenizer = new Tokenizer();\n tokenizer.write(value);\n return new Parser(tokenizer.read());\n }\n\n static parseValue(value: string): CSSValue {\n return Parser.create(value).parseComponentValue();\n }\n\n static parseValues(value: string): CSSValue[] {\n return Parser.create(value).parseComponentValues();\n }\n\n parseComponentValue(): CSSValue {\n let token = this.consumeToken();\n while (token.type === TokenType.WHITESPACE_TOKEN) {\n token = this.consumeToken();\n }\n\n if (token.type === TokenType.EOF_TOKEN) {\n throw new SyntaxError(`Error parsing CSS component value, unexpected EOF`);\n }\n\n this.reconsumeToken(token);\n const value = this.consumeComponentValue();\n\n do {\n token = this.consumeToken();\n } while (token.type === TokenType.WHITESPACE_TOKEN);\n\n if (token.type === TokenType.EOF_TOKEN) {\n return value;\n }\n\n throw new SyntaxError(`Error parsing CSS component value, multiple values found when expecting only one`);\n }\n\n parseComponentValues(): CSSValue[] {\n const values = [];\n while (true) {\n const value = this.consumeComponentValue();\n if (value.type === TokenType.EOF_TOKEN) {\n return values;\n }\n values.push(value);\n values.push();\n }\n }\n\n private consumeComponentValue(): CSSValue {\n const token = this.consumeToken();\n\n switch (token.type) {\n case TokenType.LEFT_CURLY_BRACKET_TOKEN:\n case TokenType.LEFT_SQUARE_BRACKET_TOKEN:\n case TokenType.LEFT_PARENTHESIS_TOKEN:\n return this.consumeSimpleBlock(token.type);\n case TokenType.FUNCTION_TOKEN:\n return this.consumeFunction(token);\n }\n\n return token;\n }\n\n private consumeSimpleBlock(type: CSSBlockType): CSSBlock {\n const block: CSSBlock = {type, values: []};\n\n let token = this.consumeToken();\n while (true) {\n if (token.type === TokenType.EOF_TOKEN || isEndingTokenFor(token, type)) {\n return block;\n }\n\n this.reconsumeToken(token);\n block.values.push(this.consumeComponentValue());\n token = this.consumeToken();\n }\n }\n\n private consumeFunction(functionToken: StringValueToken): CSSFunction {\n const cssFunction: CSSFunction = {\n name: functionToken.value,\n values: [],\n type: TokenType.FUNCTION\n };\n\n while (true) {\n const token = this.consumeToken();\n if (token.type === TokenType.EOF_TOKEN || token.type === TokenType.RIGHT_PARENTHESIS_TOKEN) {\n return cssFunction;\n }\n\n this.reconsumeToken(token);\n cssFunction.values.push(this.consumeComponentValue());\n }\n }\n\n private consumeToken(): CSSToken {\n const token = this._tokens.shift();\n return typeof token === 'undefined' ? EOF_TOKEN : token;\n }\n\n private reconsumeToken(token: CSSToken): void {\n this._tokens.unshift(token);\n }\n}\n\nexport const isDimensionToken = (token: CSSValue): token is DimensionToken => token.type === TokenType.DIMENSION_TOKEN;\nexport const isNumberToken = (token: CSSValue): token is NumberValueToken => token.type === TokenType.NUMBER_TOKEN;\nexport const isIdentToken = (token: CSSValue): token is StringValueToken => token.type === TokenType.IDENT_TOKEN;\nexport const isStringToken = (token: CSSValue): token is StringValueToken => token.type === TokenType.STRING_TOKEN;\nexport const isIdentWithValue = (token: CSSValue, value: string): boolean =>\n isIdentToken(token) && token.value === value;\n\nexport const nonWhiteSpace = (token: CSSValue): boolean => token.type !== TokenType.WHITESPACE_TOKEN;\nexport const nonFunctionArgSeparator = (token: CSSValue): boolean =>\n token.type !== TokenType.WHITESPACE_TOKEN && token.type !== TokenType.COMMA_TOKEN;\n\nexport const parseFunctionArgs = (tokens: CSSValue[]): CSSValue[][] => {\n const args: CSSValue[][] = [];\n let arg: CSSValue[] = [];\n tokens.forEach((token) => {\n if (token.type === TokenType.COMMA_TOKEN) {\n if (arg.length === 0) {\n throw new Error(`Error parsing function args, zero tokens for arg`);\n }\n args.push(arg);\n arg = [];\n return;\n }\n\n if (token.type !== TokenType.WHITESPACE_TOKEN) {\n arg.push(token);\n }\n });\n if (arg.length) {\n args.push(arg);\n }\n\n return args;\n};\n\nconst isEndingTokenFor = (token: CSSToken, type: CSSBlockType): boolean => {\n if (type === TokenType.LEFT_CURLY_BRACKET_TOKEN && token.type === TokenType.RIGHT_CURLY_BRACKET_TOKEN) {\n return true;\n }\n if (type === TokenType.LEFT_SQUARE_BRACKET_TOKEN && token.type === TokenType.RIGHT_SQUARE_BRACKET_TOKEN) {\n return true;\n }\n\n return type === TokenType.LEFT_PARENTHESIS_TOKEN && token.type === TokenType.RIGHT_PARENTHESIS_TOKEN;\n};\n","import {CSSValue} from '../syntax/parser';\nimport {DimensionToken, NumberValueToken, TokenType} from '../syntax/tokenizer';\n\nexport type Length = DimensionToken | NumberValueToken;\n\nexport const isLength = (token: CSSValue): token is Length =>\n token.type === TokenType.NUMBER_TOKEN || token.type === TokenType.DIMENSION_TOKEN;\n","import {DimensionToken, FLAG_INTEGER, NumberValueToken, TokenType} from '../syntax/tokenizer';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {isLength} from './length';\nexport type LengthPercentage = DimensionToken | NumberValueToken;\nexport type LengthPercentageTuple = [LengthPercentage] | [LengthPercentage, LengthPercentage];\n\nexport const isLengthPercentage = (token: CSSValue): token is LengthPercentage =>\n token.type === TokenType.PERCENTAGE_TOKEN || isLength(token);\nexport const parseLengthPercentageTuple = (tokens: LengthPercentage[]): LengthPercentageTuple =>\n tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]];\nexport const ZERO_LENGTH: NumberValueToken = {\n type: TokenType.NUMBER_TOKEN,\n number: 0,\n flags: FLAG_INTEGER\n};\n\nexport const FIFTY_PERCENT: NumberValueToken = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 50,\n flags: FLAG_INTEGER\n};\n\nexport const HUNDRED_PERCENT: NumberValueToken = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 100,\n flags: FLAG_INTEGER\n};\n\nexport const getAbsoluteValueForTuple = (\n tuple: LengthPercentageTuple,\n width: number,\n height: number\n): [number, number] => {\n const [x, y] = tuple;\n return [getAbsoluteValue(x, width), getAbsoluteValue(typeof y !== 'undefined' ? y : x, height)];\n};\nexport const getAbsoluteValue = (token: LengthPercentage, parent: number): number => {\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\n return (token.number / 100) * parent;\n }\n\n if (isDimensionToken(token)) {\n switch (token.unit) {\n case 'rem':\n case 'em':\n return 16 * token.number; // TODO use correct font-size\n case 'px':\n default:\n return token.number;\n }\n }\n\n return token.number;\n};\n","import {CSSValue, isIdentToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {HUNDRED_PERCENT, ZERO_LENGTH} from './length-percentage';\nimport {GradientCorner} from './image';\nimport {Context} from '../../core/context';\n\nconst DEG = 'deg';\nconst GRAD = 'grad';\nconst RAD = 'rad';\nconst TURN = 'turn';\n\nexport const angle: ITypeDescriptor = {\n name: 'angle',\n parse: (_context: Context, value: CSSValue): number => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n switch (value.unit) {\n case DEG:\n return (Math.PI * value.number) / 180;\n case GRAD:\n return (Math.PI / 200) * value.number;\n case RAD:\n return value.number;\n case TURN:\n return Math.PI * 2 * value.number;\n }\n }\n\n throw new Error(`Unsupported angle type`);\n }\n};\n\nexport const isAngle = (value: CSSValue): boolean => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n if (value.unit === DEG || value.unit === GRAD || value.unit === RAD || value.unit === TURN) {\n return true;\n }\n }\n return false;\n};\n\nexport const parseNamedSide = (tokens: CSSValue[]): number | GradientCorner => {\n const sideOrCorner = tokens\n .filter(isIdentToken)\n .map((ident) => ident.value)\n .join(' ');\n\n switch (sideOrCorner) {\n case 'to bottom right':\n case 'to right bottom':\n case 'left top':\n case 'top left':\n return [ZERO_LENGTH, ZERO_LENGTH];\n case 'to top':\n case 'bottom':\n return deg(0);\n case 'to bottom left':\n case 'to left bottom':\n case 'right top':\n case 'top right':\n return [ZERO_LENGTH, HUNDRED_PERCENT];\n case 'to right':\n case 'left':\n return deg(90);\n case 'to top left':\n case 'to left top':\n case 'right bottom':\n case 'bottom right':\n return [HUNDRED_PERCENT, HUNDRED_PERCENT];\n case 'to bottom':\n case 'top':\n return deg(180);\n case 'to top right':\n case 'to right top':\n case 'left bottom':\n case 'bottom left':\n return [HUNDRED_PERCENT, ZERO_LENGTH];\n case 'to left':\n case 'right':\n return deg(270);\n }\n\n return 0;\n};\n\nexport const deg = (deg: number): number => (Math.PI * deg) / 180;\n","import {CSSValue, nonFunctionArgSeparator, Parser} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {angle, deg} from './angle';\nimport {getAbsoluteValue, isLengthPercentage} from './length-percentage';\nimport {Context} from '../../core/context';\nexport type Color = number;\n\nexport const color: ITypeDescriptor = {\n name: 'color',\n parse: (context: Context, value: CSSValue): Color => {\n if (value.type === TokenType.FUNCTION) {\n const colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name];\n if (typeof colorFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported color function \"${value.name}\"`);\n }\n return colorFunction(context, value.values);\n }\n\n if (value.type === TokenType.HASH_TOKEN) {\n if (value.value.length === 3) {\n const r = value.value.substring(0, 1);\n const g = value.value.substring(1, 2);\n const b = value.value.substring(2, 3);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), 1);\n }\n\n if (value.value.length === 4) {\n const r = value.value.substring(0, 1);\n const g = value.value.substring(1, 2);\n const b = value.value.substring(2, 3);\n const a = value.value.substring(3, 4);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), parseInt(a + a, 16) / 255);\n }\n\n if (value.value.length === 6) {\n const r = value.value.substring(0, 2);\n const g = value.value.substring(2, 4);\n const b = value.value.substring(4, 6);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), 1);\n }\n\n if (value.value.length === 8) {\n const r = value.value.substring(0, 2);\n const g = value.value.substring(2, 4);\n const b = value.value.substring(4, 6);\n const a = value.value.substring(6, 8);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), parseInt(a, 16) / 255);\n }\n }\n\n if (value.type === TokenType.IDENT_TOKEN) {\n const namedColor = COLORS[value.value.toUpperCase()];\n if (typeof namedColor !== 'undefined') {\n return namedColor;\n }\n }\n\n return COLORS.TRANSPARENT;\n }\n};\n\nexport const isTransparent = (color: Color): boolean => (0xff & color) === 0;\n\nexport const asString = (color: Color): string => {\n const alpha = 0xff & color;\n const blue = 0xff & (color >> 8);\n const green = 0xff & (color >> 16);\n const red = 0xff & (color >> 24);\n return alpha < 255 ? `rgba(${red},${green},${blue},${alpha / 255})` : `rgb(${red},${green},${blue})`;\n};\n\nexport const pack = (r: number, g: number, b: number, a: number): Color =>\n ((r << 24) | (g << 16) | (b << 8) | (Math.round(a * 255) << 0)) >>> 0;\n\nconst getTokenColorValue = (token: CSSValue, i: number): number => {\n if (token.type === TokenType.NUMBER_TOKEN) {\n return token.number;\n }\n\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\n const max = i === 3 ? 1 : 255;\n return i === 3 ? (token.number / 100) * max : Math.round((token.number / 100) * max);\n }\n\n return 0;\n};\n\nconst rgb = (_context: Context, args: CSSValue[]): number => {\n const tokens = args.filter(nonFunctionArgSeparator);\n\n if (tokens.length === 3) {\n const [r, g, b] = tokens.map(getTokenColorValue);\n return pack(r, g, b, 1);\n }\n\n if (tokens.length === 4) {\n const [r, g, b, a] = tokens.map(getTokenColorValue);\n return pack(r, g, b, a);\n }\n\n return 0;\n};\n\nfunction hue2rgb(t1: number, t2: number, hue: number): number {\n if (hue < 0) {\n hue += 1;\n }\n if (hue >= 1) {\n hue -= 1;\n }\n\n if (hue < 1 / 6) {\n return (t2 - t1) * hue * 6 + t1;\n } else if (hue < 1 / 2) {\n return t2;\n } else if (hue < 2 / 3) {\n return (t2 - t1) * 6 * (2 / 3 - hue) + t1;\n } else {\n return t1;\n }\n}\n\nconst hsl = (context: Context, args: CSSValue[]): number => {\n const tokens = args.filter(nonFunctionArgSeparator);\n const [hue, saturation, lightness, alpha] = tokens;\n\n const h = (hue.type === TokenType.NUMBER_TOKEN ? deg(hue.number) : angle.parse(context, hue)) / (Math.PI * 2);\n const s = isLengthPercentage(saturation) ? saturation.number / 100 : 0;\n const l = isLengthPercentage(lightness) ? lightness.number / 100 : 0;\n const a = typeof alpha !== 'undefined' && isLengthPercentage(alpha) ? getAbsoluteValue(alpha, 1) : 1;\n\n if (s === 0) {\n return pack(l * 255, l * 255, l * 255, 1);\n }\n\n const t2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n\n const t1 = l * 2 - t2;\n const r = hue2rgb(t1, t2, h + 1 / 3);\n const g = hue2rgb(t1, t2, h);\n const b = hue2rgb(t1, t2, h - 1 / 3);\n return pack(r * 255, g * 255, b * 255, a);\n};\n\nconst SUPPORTED_COLOR_FUNCTIONS: {\n [key: string]: (context: Context, args: CSSValue[]) => number;\n} = {\n hsl: hsl,\n hsla: hsl,\n rgb: rgb,\n rgba: rgb\n};\n\nexport const parseColor = (context: Context, value: string): Color =>\n color.parse(context, Parser.create(value).parseComponentValue());\n\nexport const COLORS: {[key: string]: Color} = {\n ALICEBLUE: 0xf0f8ffff,\n ANTIQUEWHITE: 0xfaebd7ff,\n AQUA: 0x00ffffff,\n AQUAMARINE: 0x7fffd4ff,\n AZURE: 0xf0ffffff,\n BEIGE: 0xf5f5dcff,\n BISQUE: 0xffe4c4ff,\n BLACK: 0x000000ff,\n BLANCHEDALMOND: 0xffebcdff,\n BLUE: 0x0000ffff,\n BLUEVIOLET: 0x8a2be2ff,\n BROWN: 0xa52a2aff,\n BURLYWOOD: 0xdeb887ff,\n CADETBLUE: 0x5f9ea0ff,\n CHARTREUSE: 0x7fff00ff,\n CHOCOLATE: 0xd2691eff,\n CORAL: 0xff7f50ff,\n CORNFLOWERBLUE: 0x6495edff,\n CORNSILK: 0xfff8dcff,\n CRIMSON: 0xdc143cff,\n CYAN: 0x00ffffff,\n DARKBLUE: 0x00008bff,\n DARKCYAN: 0x008b8bff,\n DARKGOLDENROD: 0xb886bbff,\n DARKGRAY: 0xa9a9a9ff,\n DARKGREEN: 0x006400ff,\n DARKGREY: 0xa9a9a9ff,\n DARKKHAKI: 0xbdb76bff,\n DARKMAGENTA: 0x8b008bff,\n DARKOLIVEGREEN: 0x556b2fff,\n DARKORANGE: 0xff8c00ff,\n DARKORCHID: 0x9932ccff,\n DARKRED: 0x8b0000ff,\n DARKSALMON: 0xe9967aff,\n DARKSEAGREEN: 0x8fbc8fff,\n DARKSLATEBLUE: 0x483d8bff,\n DARKSLATEGRAY: 0x2f4f4fff,\n DARKSLATEGREY: 0x2f4f4fff,\n DARKTURQUOISE: 0x00ced1ff,\n DARKVIOLET: 0x9400d3ff,\n DEEPPINK: 0xff1493ff,\n DEEPSKYBLUE: 0x00bfffff,\n DIMGRAY: 0x696969ff,\n DIMGREY: 0x696969ff,\n DODGERBLUE: 0x1e90ffff,\n FIREBRICK: 0xb22222ff,\n FLORALWHITE: 0xfffaf0ff,\n FORESTGREEN: 0x228b22ff,\n FUCHSIA: 0xff00ffff,\n GAINSBORO: 0xdcdcdcff,\n GHOSTWHITE: 0xf8f8ffff,\n GOLD: 0xffd700ff,\n GOLDENROD: 0xdaa520ff,\n GRAY: 0x808080ff,\n GREEN: 0x008000ff,\n GREENYELLOW: 0xadff2fff,\n GREY: 0x808080ff,\n HONEYDEW: 0xf0fff0ff,\n HOTPINK: 0xff69b4ff,\n INDIANRED: 0xcd5c5cff,\n INDIGO: 0x4b0082ff,\n IVORY: 0xfffff0ff,\n KHAKI: 0xf0e68cff,\n LAVENDER: 0xe6e6faff,\n LAVENDERBLUSH: 0xfff0f5ff,\n LAWNGREEN: 0x7cfc00ff,\n LEMONCHIFFON: 0xfffacdff,\n LIGHTBLUE: 0xadd8e6ff,\n LIGHTCORAL: 0xf08080ff,\n LIGHTCYAN: 0xe0ffffff,\n LIGHTGOLDENRODYELLOW: 0xfafad2ff,\n LIGHTGRAY: 0xd3d3d3ff,\n LIGHTGREEN: 0x90ee90ff,\n LIGHTGREY: 0xd3d3d3ff,\n LIGHTPINK: 0xffb6c1ff,\n LIGHTSALMON: 0xffa07aff,\n LIGHTSEAGREEN: 0x20b2aaff,\n LIGHTSKYBLUE: 0x87cefaff,\n LIGHTSLATEGRAY: 0x778899ff,\n LIGHTSLATEGREY: 0x778899ff,\n LIGHTSTEELBLUE: 0xb0c4deff,\n LIGHTYELLOW: 0xffffe0ff,\n LIME: 0x00ff00ff,\n LIMEGREEN: 0x32cd32ff,\n LINEN: 0xfaf0e6ff,\n MAGENTA: 0xff00ffff,\n MAROON: 0x800000ff,\n MEDIUMAQUAMARINE: 0x66cdaaff,\n MEDIUMBLUE: 0x0000cdff,\n MEDIUMORCHID: 0xba55d3ff,\n MEDIUMPURPLE: 0x9370dbff,\n MEDIUMSEAGREEN: 0x3cb371ff,\n MEDIUMSLATEBLUE: 0x7b68eeff,\n MEDIUMSPRINGGREEN: 0x00fa9aff,\n MEDIUMTURQUOISE: 0x48d1ccff,\n MEDIUMVIOLETRED: 0xc71585ff,\n MIDNIGHTBLUE: 0x191970ff,\n MINTCREAM: 0xf5fffaff,\n MISTYROSE: 0xffe4e1ff,\n MOCCASIN: 0xffe4b5ff,\n NAVAJOWHITE: 0xffdeadff,\n NAVY: 0x000080ff,\n OLDLACE: 0xfdf5e6ff,\n OLIVE: 0x808000ff,\n OLIVEDRAB: 0x6b8e23ff,\n ORANGE: 0xffa500ff,\n ORANGERED: 0xff4500ff,\n ORCHID: 0xda70d6ff,\n PALEGOLDENROD: 0xeee8aaff,\n PALEGREEN: 0x98fb98ff,\n PALETURQUOISE: 0xafeeeeff,\n PALEVIOLETRED: 0xdb7093ff,\n PAPAYAWHIP: 0xffefd5ff,\n PEACHPUFF: 0xffdab9ff,\n PERU: 0xcd853fff,\n PINK: 0xffc0cbff,\n PLUM: 0xdda0ddff,\n POWDERBLUE: 0xb0e0e6ff,\n PURPLE: 0x800080ff,\n REBECCAPURPLE: 0x663399ff,\n RED: 0xff0000ff,\n ROSYBROWN: 0xbc8f8fff,\n ROYALBLUE: 0x4169e1ff,\n SADDLEBROWN: 0x8b4513ff,\n SALMON: 0xfa8072ff,\n SANDYBROWN: 0xf4a460ff,\n SEAGREEN: 0x2e8b57ff,\n SEASHELL: 0xfff5eeff,\n SIENNA: 0xa0522dff,\n SILVER: 0xc0c0c0ff,\n SKYBLUE: 0x87ceebff,\n SLATEBLUE: 0x6a5acdff,\n SLATEGRAY: 0x708090ff,\n SLATEGREY: 0x708090ff,\n SNOW: 0xfffafaff,\n SPRINGGREEN: 0x00ff7fff,\n STEELBLUE: 0x4682b4ff,\n TAN: 0xd2b48cff,\n TEAL: 0x008080ff,\n THISTLE: 0xd8bfd8ff,\n TOMATO: 0xff6347ff,\n TRANSPARENT: 0x00000000,\n TURQUOISE: 0x40e0d0ff,\n VIOLET: 0xee82eeff,\n WHEAT: 0xf5deb3ff,\n WHITE: 0xffffffff,\n WHITESMOKE: 0xf5f5f5ff,\n YELLOW: 0xffff00ff,\n YELLOWGREEN: 0x9acd32ff\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum BACKGROUND_CLIP {\n BORDER_BOX = 0,\n PADDING_BOX = 1,\n CONTENT_BOX = 2\n}\n\nexport type BackgroundClip = BACKGROUND_CLIP[];\n\nexport const backgroundClip: IPropertyListDescriptor = {\n name: 'background-clip',\n initialValue: 'border-box',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundClip => {\n return tokens.map((token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return BACKGROUND_CLIP.PADDING_BOX;\n case 'content-box':\n return BACKGROUND_CLIP.CONTENT_BOX;\n }\n }\n return BACKGROUND_CLIP.BORDER_BOX;\n });\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const backgroundColor: IPropertyTypeValueDescriptor = {\n name: `background-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {CSSValue} from '../../syntax/parser';\nimport {\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n GradientColorStop,\n GradientCorner,\n UnprocessedGradientColorStop\n} from '../image';\nimport {color as colorType} from '../color';\nimport {getAbsoluteValue, HUNDRED_PERCENT, isLengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {Context} from '../../../core/context';\n\nexport const parseColorStop = (context: Context, args: CSSValue[]): UnprocessedGradientColorStop => {\n const color = colorType.parse(context, args[0]);\n const stop = args[1];\n return stop && isLengthPercentage(stop) ? {color, stop} : {color, stop: null};\n};\n\nexport const processColorStops = (stops: UnprocessedGradientColorStop[], lineLength: number): GradientColorStop[] => {\n const first = stops[0];\n const last = stops[stops.length - 1];\n if (first.stop === null) {\n first.stop = ZERO_LENGTH;\n }\n\n if (last.stop === null) {\n last.stop = HUNDRED_PERCENT;\n }\n\n const processStops: (number | null)[] = [];\n let previous = 0;\n for (let i = 0; i < stops.length; i++) {\n const stop = stops[i].stop;\n if (stop !== null) {\n const absoluteValue = getAbsoluteValue(stop, lineLength);\n if (absoluteValue > previous) {\n processStops.push(absoluteValue);\n } else {\n processStops.push(previous);\n }\n previous = absoluteValue;\n } else {\n processStops.push(null);\n }\n }\n\n let gapBegin = null;\n for (let i = 0; i < processStops.length; i++) {\n const stop = processStops[i];\n if (stop === null) {\n if (gapBegin === null) {\n gapBegin = i;\n }\n } else if (gapBegin !== null) {\n const gapLength = i - gapBegin;\n const beforeGap = processStops[gapBegin - 1] as number;\n const gapValue = (stop - beforeGap) / (gapLength + 1);\n for (let g = 1; g <= gapLength; g++) {\n processStops[gapBegin + g - 1] = gapValue * g;\n }\n gapBegin = null;\n }\n }\n\n return stops.map(({color}, i) => {\n return {color, stop: Math.max(Math.min(1, (processStops[i] as number) / lineLength), 0)};\n });\n};\n\nconst getAngleFromCorner = (corner: GradientCorner, width: number, height: number): number => {\n const centerX = width / 2;\n const centerY = height / 2;\n const x = getAbsoluteValue(corner[0], width) - centerX;\n const y = centerY - getAbsoluteValue(corner[1], height);\n\n return (Math.atan2(y, x) + Math.PI * 2) % (Math.PI * 2);\n};\n\nexport const calculateGradientDirection = (\n angle: number | GradientCorner,\n width: number,\n height: number\n): [number, number, number, number, number] => {\n const radian = typeof angle === 'number' ? angle : getAngleFromCorner(angle, width, height);\n\n const lineLength = Math.abs(width * Math.sin(radian)) + Math.abs(height * Math.cos(radian));\n\n const halfWidth = width / 2;\n const halfHeight = height / 2;\n const halfLineLength = lineLength / 2;\n\n const yDiff = Math.sin(radian - Math.PI / 2) * halfLineLength;\n const xDiff = Math.cos(radian - Math.PI / 2) * halfLineLength;\n\n return [lineLength, halfWidth - xDiff, halfWidth + xDiff, halfHeight - yDiff, halfHeight + yDiff];\n};\n\nconst distance = (a: number, b: number): number => Math.sqrt(a * a + b * b);\n\nconst findCorner = (width: number, height: number, x: number, y: number, closest: boolean): [number, number] => {\n const corners = [\n [0, 0],\n [0, height],\n [width, 0],\n [width, height]\n ];\n\n return corners.reduce(\n (stat, corner) => {\n const [cx, cy] = corner;\n const d = distance(x - cx, y - cy);\n if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) {\n return {\n optimumCorner: corner,\n optimumDistance: d\n };\n }\n\n return stat;\n },\n {\n optimumDistance: closest ? Infinity : -Infinity,\n optimumCorner: null\n }\n ).optimumCorner as [number, number];\n};\n\nexport const calculateRadius = (\n gradient: CSSRadialGradientImage,\n x: number,\n y: number,\n width: number,\n height: number\n): [number, number] => {\n let rx = 0;\n let ry = 0;\n\n switch (gradient.size) {\n case CSSRadialExtent.CLOSEST_SIDE:\n // The ending shape is sized so that that it exactly meets the side of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, it exactly meets the closest side in each dimension.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.min(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n rx = Math.min(Math.abs(x), Math.abs(x - width));\n ry = Math.min(Math.abs(y), Math.abs(y - height));\n }\n break;\n\n case CSSRadialExtent.CLOSEST_CORNER:\n // The ending shape is sized so that that it passes through the corner of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.min(\n distance(x, y),\n distance(x, y - height),\n distance(x - width, y),\n distance(x - width, y - height)\n );\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n // Compute the ratio ry/rx (which is to be the same as for \"closest-side\")\n const c = Math.min(Math.abs(y), Math.abs(y - height)) / Math.min(Math.abs(x), Math.abs(x - width));\n const [cx, cy] = findCorner(width, height, x, y, true);\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n\n case CSSRadialExtent.FARTHEST_SIDE:\n // Same as closest-side, except the ending shape is sized based on the farthest side(s)\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.max(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n rx = Math.max(Math.abs(x), Math.abs(x - width));\n ry = Math.max(Math.abs(y), Math.abs(y - height));\n }\n break;\n\n case CSSRadialExtent.FARTHEST_CORNER:\n // Same as closest-corner, except the ending shape is sized based on the farthest corner.\n // If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.max(\n distance(x, y),\n distance(x, y - height),\n distance(x - width, y),\n distance(x - width, y - height)\n );\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n // Compute the ratio ry/rx (which is to be the same as for \"farthest-side\")\n const c = Math.max(Math.abs(y), Math.abs(y - height)) / Math.max(Math.abs(x), Math.abs(x - width));\n const [cx, cy] = findCorner(width, height, x, y, false);\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n }\n\n if (Array.isArray(gradient.size)) {\n rx = getAbsoluteValue(gradient.size[0], width);\n ry = gradient.size.length === 2 ? getAbsoluteValue(gradient.size[1], height) : rx;\n }\n\n return [rx, ry];\n};\n","import {CSSValue, parseFunctionArgs} from '../../syntax/parser';\nimport {CSSImageType, CSSLinearGradientImage, GradientCorner, UnprocessedGradientColorStop} from '../image';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {isAngle, angle as angleType, parseNamedSide, deg} from '../angle';\nimport {parseColorStop} from './gradient';\nimport {Context} from '../../../core/context';\n\nexport const prefixLinearGradient = (context: Context, tokens: CSSValue[]): CSSLinearGradientImage => {\n let angle: number | GradientCorner = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n if (i === 0) {\n const firstToken = arg[0];\n if (\n firstToken.type === TokenType.IDENT_TOKEN &&\n ['top', 'left', 'right', 'bottom'].indexOf(firstToken.value) !== -1\n ) {\n angle = parseNamedSide(arg);\n return;\n } else if (isAngle(firstToken)) {\n angle = (angleType.parse(context, firstToken) + deg(270)) % deg(360);\n return;\n }\n }\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n\n return {\n angle,\n stops,\n type: CSSImageType.LINEAR_GRADIENT\n };\n};\n","import {CSSValue, isIdentToken, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {parseColorStop} from './gradient';\nimport {FIFTY_PERCENT, HUNDRED_PERCENT, isLengthPercentage, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {isLength} from '../length';\nimport {Context} from '../../../core/context';\nexport const CLOSEST_SIDE = 'closest-side';\nexport const FARTHEST_SIDE = 'farthest-side';\nexport const CLOSEST_CORNER = 'closest-corner';\nexport const FARTHEST_CORNER = 'farthest-corner';\nexport const CIRCLE = 'circle';\nexport const ELLIPSE = 'ellipse';\nexport const COVER = 'cover';\nexport const CONTAIN = 'contain';\n\nexport const radialGradient = (context: Context, tokens: CSSValue[]): CSSRadialGradientImage => {\n let shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n let size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const stops: UnprocessedGradientColorStop[] = [];\n const position: LengthPercentage[] = [];\n parseFunctionArgs(tokens).forEach((arg, i) => {\n let isColorStop = true;\n if (i === 0) {\n let isAtPosition = false;\n isColorStop = arg.reduce((acc, token) => {\n if (isAtPosition) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return acc;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return acc;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return acc;\n }\n } else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n }\n } else if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = CSSRadialShape.CIRCLE;\n return false;\n case ELLIPSE:\n shape = CSSRadialShape.ELLIPSE;\n return false;\n case 'at':\n isAtPosition = true;\n return false;\n case CLOSEST_SIDE:\n size = CSSRadialExtent.CLOSEST_SIDE;\n return false;\n case COVER:\n case FARTHEST_SIDE:\n size = CSSRadialExtent.FARTHEST_SIDE;\n return false;\n case CONTAIN:\n case CLOSEST_CORNER:\n size = CSSRadialExtent.CLOSEST_CORNER;\n return false;\n case FARTHEST_CORNER:\n size = CSSRadialExtent.FARTHEST_CORNER;\n return false;\n }\n } else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n\n if (isColorStop) {\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n\n return {size, shape, stops, position, type: CSSImageType.RADIAL_GRADIENT};\n};\n","import {CSSValue, isIdentToken, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {parseColorStop} from './gradient';\nimport {FIFTY_PERCENT, HUNDRED_PERCENT, isLengthPercentage, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {isLength} from '../length';\nimport {\n CIRCLE,\n CLOSEST_CORNER,\n CLOSEST_SIDE,\n CONTAIN,\n COVER,\n ELLIPSE,\n FARTHEST_CORNER,\n FARTHEST_SIDE\n} from './radial-gradient';\nimport {Context} from '../../../core/context';\n\nexport const prefixRadialGradient = (context: Context, tokens: CSSValue[]): CSSRadialGradientImage => {\n let shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n let size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const stops: UnprocessedGradientColorStop[] = [];\n const position: LengthPercentage[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n let isColorStop = true;\n if (i === 0) {\n isColorStop = arg.reduce((acc, token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return false;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return false;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return false;\n }\n } else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n return false;\n }\n\n return acc;\n }, isColorStop);\n } else if (i === 1) {\n isColorStop = arg.reduce((acc, token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = CSSRadialShape.CIRCLE;\n return false;\n case ELLIPSE:\n shape = CSSRadialShape.ELLIPSE;\n return false;\n case CONTAIN:\n case CLOSEST_SIDE:\n size = CSSRadialExtent.CLOSEST_SIDE;\n return false;\n case FARTHEST_SIDE:\n size = CSSRadialExtent.FARTHEST_SIDE;\n return false;\n case CLOSEST_CORNER:\n size = CSSRadialExtent.CLOSEST_CORNER;\n return false;\n case COVER:\n case FARTHEST_CORNER:\n size = CSSRadialExtent.FARTHEST_CORNER;\n return false;\n }\n } else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n\n return acc;\n }, isColorStop);\n }\n\n if (isColorStop) {\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n\n return {size, shape, stops, position, type: CSSImageType.RADIAL_GRADIENT};\n};\n","import {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Color} from './color';\nimport {linearGradient} from './functions/linear-gradient';\nimport {prefixLinearGradient} from './functions/-prefix-linear-gradient';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {LengthPercentage} from './length-percentage';\nimport {webkitGradient} from './functions/-webkit-gradient';\nimport {radialGradient} from './functions/radial-gradient';\nimport {prefixRadialGradient} from './functions/-prefix-radial-gradient';\nimport {Context} from '../../core/context';\n\nexport const enum CSSImageType {\n URL,\n LINEAR_GRADIENT,\n RADIAL_GRADIENT\n}\n\nexport const isLinearGradient = (background: ICSSImage): background is CSSLinearGradientImage => {\n return background.type === CSSImageType.LINEAR_GRADIENT;\n};\n\nexport const isRadialGradient = (background: ICSSImage): background is CSSRadialGradientImage => {\n return background.type === CSSImageType.RADIAL_GRADIENT;\n};\n\nexport interface UnprocessedGradientColorStop {\n color: Color;\n stop: LengthPercentage | null;\n}\n\nexport interface GradientColorStop {\n color: Color;\n stop: number;\n}\n\nexport interface ICSSImage {\n type: CSSImageType;\n}\n\nexport interface CSSURLImage extends ICSSImage {\n url: string;\n type: CSSImageType.URL;\n}\n\n// interface ICSSGeneratedImage extends ICSSImage {}\n\nexport type GradientCorner = [LengthPercentage, LengthPercentage];\n\ninterface ICSSGradientImage extends ICSSImage {\n stops: UnprocessedGradientColorStop[];\n}\n\nexport interface CSSLinearGradientImage extends ICSSGradientImage {\n angle: number | GradientCorner;\n type: CSSImageType.LINEAR_GRADIENT;\n}\n\nexport const enum CSSRadialShape {\n CIRCLE,\n ELLIPSE\n}\n\nexport const enum CSSRadialExtent {\n CLOSEST_SIDE,\n FARTHEST_SIDE,\n CLOSEST_CORNER,\n FARTHEST_CORNER\n}\n\nexport type CSSRadialSize = CSSRadialExtent | LengthPercentage[];\n\nexport interface CSSRadialGradientImage extends ICSSGradientImage {\n type: CSSImageType.RADIAL_GRADIENT;\n shape: CSSRadialShape;\n size: CSSRadialSize;\n position: LengthPercentage[];\n}\n\nexport const image: ITypeDescriptor = {\n name: 'image',\n parse: (context: Context, value: CSSValue): ICSSImage => {\n if (value.type === TokenType.URL_TOKEN) {\n const image: CSSURLImage = {url: value.value, type: CSSImageType.URL};\n context.cache.addImage(value.value);\n return image;\n }\n\n if (value.type === TokenType.FUNCTION) {\n const imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name];\n if (typeof imageFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported image function \"${value.name}\"`);\n }\n return imageFunction(context, value.values);\n }\n\n throw new Error(`Unsupported image type ${value.type}`);\n }\n};\n\nexport function isSupportedImage(value: CSSValue): boolean {\n return (\n !(value.type === TokenType.IDENT_TOKEN && value.value === 'none') &&\n (value.type !== TokenType.FUNCTION || !!SUPPORTED_IMAGE_FUNCTIONS[value.name])\n );\n}\n\nconst SUPPORTED_IMAGE_FUNCTIONS: Record ICSSImage> = {\n 'linear-gradient': linearGradient,\n '-moz-linear-gradient': prefixLinearGradient,\n '-ms-linear-gradient': prefixLinearGradient,\n '-o-linear-gradient': prefixLinearGradient,\n '-webkit-linear-gradient': prefixLinearGradient,\n 'radial-gradient': radialGradient,\n '-moz-radial-gradient': prefixRadialGradient,\n '-ms-radial-gradient': prefixRadialGradient,\n '-o-radial-gradient': prefixRadialGradient,\n '-webkit-radial-gradient': prefixRadialGradient,\n '-webkit-gradient': webkitGradient\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, parseFunctionArgs} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentage} from '../types/length-percentage';\nimport {StringValueToken} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport enum BACKGROUND_SIZE {\n AUTO = 'auto',\n CONTAIN = 'contain',\n COVER = 'cover'\n}\n\nexport type BackgroundSizeInfo = LengthPercentage | StringValueToken;\nexport type BackgroundSize = BackgroundSizeInfo[][];\n\nexport const backgroundSize: IPropertyListDescriptor = {\n name: 'background-size',\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundSize => {\n return parseFunctionArgs(tokens).map((values) => values.filter(isBackgroundSizeInfoToken));\n }\n};\n\nconst isBackgroundSizeInfoToken = (value: CSSValue): value is BackgroundSizeInfo =>\n isIdentToken(value) || isLengthPercentage(value);\n","import {CSSValue, parseFunctionArgs} from '../../syntax/parser';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {isAngle, angle as angleType, parseNamedSide, deg} from '../angle';\nimport {CSSImageType, CSSLinearGradientImage, GradientCorner, UnprocessedGradientColorStop} from '../image';\nimport {parseColorStop} from './gradient';\nimport {Context} from '../../../core/context';\n\nexport const linearGradient = (context: Context, tokens: CSSValue[]): CSSLinearGradientImage => {\n let angle: number | GradientCorner = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n if (i === 0) {\n const firstToken = arg[0];\n if (firstToken.type === TokenType.IDENT_TOKEN && firstToken.value === 'to') {\n angle = parseNamedSide(arg);\n return;\n } else if (isAngle(firstToken)) {\n angle = angleType.parse(context, firstToken);\n return;\n }\n }\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n\n return {angle, stops, type: CSSImageType.LINEAR_GRADIENT};\n};\n","import {CSSValue, isIdentToken, isNumberToken, nonFunctionArgSeparator, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSLinearGradientImage,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {deg} from '../angle';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {color as colorType} from '../color';\nimport {HUNDRED_PERCENT, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {Context} from '../../../core/context';\n\nexport const webkitGradient = (\n context: Context,\n tokens: CSSValue[]\n): CSSLinearGradientImage | CSSRadialGradientImage => {\n const angle = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n let type = CSSImageType.LINEAR_GRADIENT;\n const shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n const size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const position: LengthPercentage[] = [];\n parseFunctionArgs(tokens).forEach((arg, i) => {\n const firstToken = arg[0];\n if (i === 0) {\n if (isIdentToken(firstToken) && firstToken.value === 'linear') {\n type = CSSImageType.LINEAR_GRADIENT;\n return;\n } else if (isIdentToken(firstToken) && firstToken.value === 'radial') {\n type = CSSImageType.RADIAL_GRADIENT;\n return;\n }\n }\n\n if (firstToken.type === TokenType.FUNCTION) {\n if (firstToken.name === 'from') {\n const color = colorType.parse(context, firstToken.values[0]);\n stops.push({stop: ZERO_LENGTH, color});\n } else if (firstToken.name === 'to') {\n const color = colorType.parse(context, firstToken.values[0]);\n stops.push({stop: HUNDRED_PERCENT, color});\n } else if (firstToken.name === 'color-stop') {\n const values = firstToken.values.filter(nonFunctionArgSeparator);\n if (values.length === 2) {\n const color = colorType.parse(context, values[1]);\n const stop = values[0];\n if (isNumberToken(stop)) {\n stops.push({\n stop: {type: TokenType.PERCENTAGE_TOKEN, number: stop.number * 100, flags: stop.flags},\n color\n });\n }\n }\n }\n }\n });\n\n return type === CSSImageType.LINEAR_GRADIENT\n ? {\n angle: (angle + deg(180)) % deg(360),\n stops,\n type\n }\n : {size, shape, stops, position, type};\n};\n","import {TokenType} from '../syntax/tokenizer';\nimport {ICSSImage, image, isSupportedImage} from '../types/image';\nimport {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, nonFunctionArgSeparator} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const backgroundImage: IPropertyListDescriptor = {\n name: 'background-image',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return [];\n }\n\n return tokens\n .filter((value) => nonFunctionArgSeparator(value) && isSupportedImage(value))\n .map((value) => image.parse(context, value));\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const enum BACKGROUND_ORIGIN {\n BORDER_BOX = 0,\n PADDING_BOX = 1,\n CONTENT_BOX = 2\n}\n\nexport type BackgroundOrigin = BACKGROUND_ORIGIN[];\n\nexport const backgroundOrigin: IPropertyListDescriptor = {\n name: 'background-origin',\n initialValue: 'border-box',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundOrigin => {\n return tokens.map((token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return BACKGROUND_ORIGIN.PADDING_BOX;\n case 'content-box':\n return BACKGROUND_ORIGIN.CONTENT_BOX;\n }\n }\n return BACKGROUND_ORIGIN.BORDER_BOX;\n });\n }\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, parseFunctionArgs} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentageTuple, parseLengthPercentageTuple} from '../types/length-percentage';\nimport {Context} from '../../core/context';\nexport type BackgroundPosition = BackgroundImagePosition[];\n\nexport type BackgroundImagePosition = LengthPercentageTuple;\n\nexport const backgroundPosition: IPropertyListDescriptor = {\n name: 'background-position',\n initialValue: '0% 0%',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundPosition => {\n return parseFunctionArgs(tokens)\n .map((values: CSSValue[]) => values.filter(isLengthPercentage))\n .map(parseLengthPercentageTuple);\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, parseFunctionArgs} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport type BackgroundRepeat = BACKGROUND_REPEAT[];\n\nexport const enum BACKGROUND_REPEAT {\n REPEAT = 0,\n NO_REPEAT = 1,\n REPEAT_X = 2,\n REPEAT_Y = 3\n}\n\nexport const backgroundRepeat: IPropertyListDescriptor = {\n name: 'background-repeat',\n initialValue: 'repeat',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundRepeat => {\n return parseFunctionArgs(tokens)\n .map((values) =>\n values\n .filter(isIdentToken)\n .map((token) => token.value)\n .join(' ')\n )\n .map(parseBackgroundRepeat);\n }\n};\n\nconst parseBackgroundRepeat = (value: string): BACKGROUND_REPEAT => {\n switch (value) {\n case 'no-repeat':\n return BACKGROUND_REPEAT.NO_REPEAT;\n case 'repeat-x':\n case 'repeat no-repeat':\n return BACKGROUND_REPEAT.REPEAT_X;\n case 'repeat-y':\n case 'no-repeat repeat':\n return BACKGROUND_REPEAT.REPEAT_Y;\n case 'repeat':\n default:\n return BACKGROUND_REPEAT.REPEAT;\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport enum LINE_BREAK {\n NORMAL = 'normal',\n STRICT = 'strict'\n}\n\nexport const lineBreak: IPropertyIdentValueDescriptor = {\n name: 'line-break',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, lineBreak: string): LINE_BREAK => {\n switch (lineBreak) {\n case 'strict':\n return LINE_BREAK.STRICT;\n case 'normal':\n default:\n return LINE_BREAK.NORMAL;\n }\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nconst borderColorForSide = (side: string): IPropertyTypeValueDescriptor => ({\n name: `border-${side}-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n});\n\nexport const borderTopColor: IPropertyTypeValueDescriptor = borderColorForSide('top');\nexport const borderRightColor: IPropertyTypeValueDescriptor = borderColorForSide('right');\nexport const borderBottomColor: IPropertyTypeValueDescriptor = borderColorForSide('bottom');\nexport const borderLeftColor: IPropertyTypeValueDescriptor = borderColorForSide('left');\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentageTuple, parseLengthPercentageTuple} from '../types/length-percentage';\nimport {Context} from '../../core/context';\nexport type BorderRadius = LengthPercentageTuple;\n\nconst borderRadiusForSide = (side: string): IPropertyListDescriptor => ({\n name: `border-radius-${side}`,\n initialValue: '0 0',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BorderRadius =>\n parseLengthPercentageTuple(tokens.filter(isLengthPercentage))\n});\n\nexport const borderTopLeftRadius: IPropertyListDescriptor = borderRadiusForSide('top-left');\nexport const borderTopRightRadius: IPropertyListDescriptor = borderRadiusForSide('top-right');\nexport const borderBottomRightRadius: IPropertyListDescriptor = borderRadiusForSide('bottom-right');\nexport const borderBottomLeftRadius: IPropertyListDescriptor = borderRadiusForSide('bottom-left');\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum BORDER_STYLE {\n NONE = 0,\n SOLID = 1,\n DASHED = 2,\n DOTTED = 3,\n DOUBLE = 4\n}\n\nconst borderStyleForSide = (side: string): IPropertyIdentValueDescriptor => ({\n name: `border-${side}-style`,\n initialValue: 'solid',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, style: string): BORDER_STYLE => {\n switch (style) {\n case 'none':\n return BORDER_STYLE.NONE;\n case 'dashed':\n return BORDER_STYLE.DASHED;\n case 'dotted':\n return BORDER_STYLE.DOTTED;\n case 'double':\n return BORDER_STYLE.DOUBLE;\n }\n return BORDER_STYLE.SOLID;\n }\n});\n\nexport const borderTopStyle: IPropertyIdentValueDescriptor = borderStyleForSide('top');\nexport const borderRightStyle: IPropertyIdentValueDescriptor = borderStyleForSide('right');\nexport const borderBottomStyle: IPropertyIdentValueDescriptor = borderStyleForSide('bottom');\nexport const borderLeftStyle: IPropertyIdentValueDescriptor = borderStyleForSide('left');\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nconst borderWidthForSide = (side: string): IPropertyValueDescriptor => ({\n name: `border-${side}-width`,\n initialValue: '0',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n});\n\nexport const borderTopWidth: IPropertyValueDescriptor = borderWidthForSide('top');\nexport const borderRightWidth: IPropertyValueDescriptor = borderWidthForSide('right');\nexport const borderBottomWidth: IPropertyValueDescriptor = borderWidthForSide('bottom');\nexport const borderLeftWidth: IPropertyValueDescriptor = borderWidthForSide('left');\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const color: IPropertyTypeValueDescriptor = {\n name: `color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\n\nexport const enum DIRECTION {\n LTR = 0,\n RTL = 1\n}\n\nexport const direction: IPropertyIdentValueDescriptor = {\n name: 'direction',\n initialValue: 'ltr',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, direction: string) => {\n switch (direction) {\n case 'rtl':\n return DIRECTION.RTL;\n case 'ltr':\n default:\n return DIRECTION.LTR;\n }\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum DISPLAY {\n NONE = 0,\n BLOCK = 1 << 1,\n INLINE = 1 << 2,\n RUN_IN = 1 << 3,\n FLOW = 1 << 4,\n FLOW_ROOT = 1 << 5,\n TABLE = 1 << 6,\n FLEX = 1 << 7,\n GRID = 1 << 8,\n RUBY = 1 << 9,\n SUBGRID = 1 << 10,\n LIST_ITEM = 1 << 11,\n TABLE_ROW_GROUP = 1 << 12,\n TABLE_HEADER_GROUP = 1 << 13,\n TABLE_FOOTER_GROUP = 1 << 14,\n TABLE_ROW = 1 << 15,\n TABLE_CELL = 1 << 16,\n TABLE_COLUMN_GROUP = 1 << 17,\n TABLE_COLUMN = 1 << 18,\n TABLE_CAPTION = 1 << 19,\n RUBY_BASE = 1 << 20,\n RUBY_TEXT = 1 << 21,\n RUBY_BASE_CONTAINER = 1 << 22,\n RUBY_TEXT_CONTAINER = 1 << 23,\n CONTENTS = 1 << 24,\n INLINE_BLOCK = 1 << 25,\n INLINE_LIST_ITEM = 1 << 26,\n INLINE_TABLE = 1 << 27,\n INLINE_FLEX = 1 << 28,\n INLINE_GRID = 1 << 29\n}\n\nexport type Display = number;\n\nexport const display: IPropertyListDescriptor = {\n name: 'display',\n initialValue: 'inline-block',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): Display => {\n return tokens.filter(isIdentToken).reduce((bit, token) => {\n return bit | parseDisplayValue(token.value);\n }, DISPLAY.NONE);\n }\n};\n\nconst parseDisplayValue = (display: string): Display => {\n switch (display) {\n case 'block':\n case '-webkit-box':\n return DISPLAY.BLOCK;\n case 'inline':\n return DISPLAY.INLINE;\n case 'run-in':\n return DISPLAY.RUN_IN;\n case 'flow':\n return DISPLAY.FLOW;\n case 'flow-root':\n return DISPLAY.FLOW_ROOT;\n case 'table':\n return DISPLAY.TABLE;\n case 'flex':\n case '-webkit-flex':\n return DISPLAY.FLEX;\n case 'grid':\n case '-ms-grid':\n return DISPLAY.GRID;\n case 'ruby':\n return DISPLAY.RUBY;\n case 'subgrid':\n return DISPLAY.SUBGRID;\n case 'list-item':\n return DISPLAY.LIST_ITEM;\n case 'table-row-group':\n return DISPLAY.TABLE_ROW_GROUP;\n case 'table-header-group':\n return DISPLAY.TABLE_HEADER_GROUP;\n case 'table-footer-group':\n return DISPLAY.TABLE_FOOTER_GROUP;\n case 'table-row':\n return DISPLAY.TABLE_ROW;\n case 'table-cell':\n return DISPLAY.TABLE_CELL;\n case 'table-column-group':\n return DISPLAY.TABLE_COLUMN_GROUP;\n case 'table-column':\n return DISPLAY.TABLE_COLUMN;\n case 'table-caption':\n return DISPLAY.TABLE_CAPTION;\n case 'ruby-base':\n return DISPLAY.RUBY_BASE;\n case 'ruby-text':\n return DISPLAY.RUBY_TEXT;\n case 'ruby-base-container':\n return DISPLAY.RUBY_BASE_CONTAINER;\n case 'ruby-text-container':\n return DISPLAY.RUBY_TEXT_CONTAINER;\n case 'contents':\n return DISPLAY.CONTENTS;\n case 'inline-block':\n return DISPLAY.INLINE_BLOCK;\n case 'inline-list-item':\n return DISPLAY.INLINE_LIST_ITEM;\n case 'inline-table':\n return DISPLAY.INLINE_TABLE;\n case 'inline-flex':\n return DISPLAY.INLINE_FLEX;\n case 'inline-grid':\n return DISPLAY.INLINE_GRID;\n }\n\n return DISPLAY.NONE;\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum FLOAT {\n NONE = 0,\n LEFT = 1,\n RIGHT = 2,\n INLINE_START = 3,\n INLINE_END = 4\n}\n\nexport const float: IPropertyIdentValueDescriptor = {\n name: 'float',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, float: string) => {\n switch (float) {\n case 'left':\n return FLOAT.LEFT;\n case 'right':\n return FLOAT.RIGHT;\n case 'inline-start':\n return FLOAT.INLINE_START;\n case 'inline-end':\n return FLOAT.INLINE_END;\n }\n return FLOAT.NONE;\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport const letterSpacing: IPropertyValueDescriptor = {\n name: 'letter-spacing',\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'normal') {\n return 0;\n }\n\n if (token.type === TokenType.NUMBER_TOKEN) {\n return token.number;\n }\n\n if (token.type === TokenType.DIMENSION_TOKEN) {\n return token.number;\n }\n\n return 0;\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport enum WORD_BREAK {\n NORMAL = 'normal',\n BREAK_ALL = 'break-all',\n KEEP_ALL = 'keep-all'\n}\n\nexport const wordBreak: IPropertyIdentValueDescriptor = {\n name: 'word-break',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, wordBreak: string): WORD_BREAK => {\n switch (wordBreak) {\n case 'break-all':\n return WORD_BREAK.BREAK_ALL;\n case 'keep-all':\n return WORD_BREAK.KEEP_ALL;\n case 'normal':\n default:\n return WORD_BREAK.NORMAL;\n }\n }\n};\n","import {IPropertyTokenValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {getAbsoluteValue, isLengthPercentage} from '../types/length-percentage';\nexport const lineHeight: IPropertyTokenValueDescriptor = {\n name: 'line-height',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.TOKEN_VALUE\n};\n\nexport const computeLineHeight = (token: CSSValue, fontSize: number): number => {\n if (isIdentToken(token) && token.value === 'normal') {\n return 1.2 * fontSize;\n } else if (token.type === TokenType.NUMBER_TOKEN) {\n return fontSize * token.number;\n } else if (isLengthPercentage(token)) {\n return getAbsoluteValue(token, fontSize);\n }\n\n return fontSize;\n};\n","import {TokenType} from '../syntax/tokenizer';\nimport {ICSSImage, image} from '../types/image';\nimport {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const listStyleImage: IPropertyValueDescriptor = {\n name: 'list-style-image',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\n return null;\n }\n\n return image.parse(context, token);\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum LIST_STYLE_POSITION {\n INSIDE = 0,\n OUTSIDE = 1\n}\n\nexport const listStylePosition: IPropertyIdentValueDescriptor = {\n name: 'list-style-position',\n initialValue: 'outside',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, position: string) => {\n switch (position) {\n case 'inside':\n return LIST_STYLE_POSITION.INSIDE;\n case 'outside':\n default:\n return LIST_STYLE_POSITION.OUTSIDE;\n }\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum LIST_STYLE_TYPE {\n NONE = -1,\n DISC = 0,\n CIRCLE = 1,\n SQUARE = 2,\n DECIMAL = 3,\n CJK_DECIMAL = 4,\n DECIMAL_LEADING_ZERO = 5,\n LOWER_ROMAN = 6,\n UPPER_ROMAN = 7,\n LOWER_GREEK = 8,\n LOWER_ALPHA = 9,\n UPPER_ALPHA = 10,\n ARABIC_INDIC = 11,\n ARMENIAN = 12,\n BENGALI = 13,\n CAMBODIAN = 14,\n CJK_EARTHLY_BRANCH = 15,\n CJK_HEAVENLY_STEM = 16,\n CJK_IDEOGRAPHIC = 17,\n DEVANAGARI = 18,\n ETHIOPIC_NUMERIC = 19,\n GEORGIAN = 20,\n GUJARATI = 21,\n GURMUKHI = 22,\n HEBREW = 22,\n HIRAGANA = 23,\n HIRAGANA_IROHA = 24,\n JAPANESE_FORMAL = 25,\n JAPANESE_INFORMAL = 26,\n KANNADA = 27,\n KATAKANA = 28,\n KATAKANA_IROHA = 29,\n KHMER = 30,\n KOREAN_HANGUL_FORMAL = 31,\n KOREAN_HANJA_FORMAL = 32,\n KOREAN_HANJA_INFORMAL = 33,\n LAO = 34,\n LOWER_ARMENIAN = 35,\n MALAYALAM = 36,\n MONGOLIAN = 37,\n MYANMAR = 38,\n ORIYA = 39,\n PERSIAN = 40,\n SIMP_CHINESE_FORMAL = 41,\n SIMP_CHINESE_INFORMAL = 42,\n TAMIL = 43,\n TELUGU = 44,\n THAI = 45,\n TIBETAN = 46,\n TRAD_CHINESE_FORMAL = 47,\n TRAD_CHINESE_INFORMAL = 48,\n UPPER_ARMENIAN = 49,\n DISCLOSURE_OPEN = 50,\n DISCLOSURE_CLOSED = 51\n}\n\nexport const listStyleType: IPropertyIdentValueDescriptor = {\n name: 'list-style-type',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, type: string) => {\n switch (type) {\n case 'disc':\n return LIST_STYLE_TYPE.DISC;\n case 'circle':\n return LIST_STYLE_TYPE.CIRCLE;\n case 'square':\n return LIST_STYLE_TYPE.SQUARE;\n case 'decimal':\n return LIST_STYLE_TYPE.DECIMAL;\n case 'cjk-decimal':\n return LIST_STYLE_TYPE.CJK_DECIMAL;\n case 'decimal-leading-zero':\n return LIST_STYLE_TYPE.DECIMAL_LEADING_ZERO;\n case 'lower-roman':\n return LIST_STYLE_TYPE.LOWER_ROMAN;\n case 'upper-roman':\n return LIST_STYLE_TYPE.UPPER_ROMAN;\n case 'lower-greek':\n return LIST_STYLE_TYPE.LOWER_GREEK;\n case 'lower-alpha':\n return LIST_STYLE_TYPE.LOWER_ALPHA;\n case 'upper-alpha':\n return LIST_STYLE_TYPE.UPPER_ALPHA;\n case 'arabic-indic':\n return LIST_STYLE_TYPE.ARABIC_INDIC;\n case 'armenian':\n return LIST_STYLE_TYPE.ARMENIAN;\n case 'bengali':\n return LIST_STYLE_TYPE.BENGALI;\n case 'cambodian':\n return LIST_STYLE_TYPE.CAMBODIAN;\n case 'cjk-earthly-branch':\n return LIST_STYLE_TYPE.CJK_EARTHLY_BRANCH;\n case 'cjk-heavenly-stem':\n return LIST_STYLE_TYPE.CJK_HEAVENLY_STEM;\n case 'cjk-ideographic':\n return LIST_STYLE_TYPE.CJK_IDEOGRAPHIC;\n case 'devanagari':\n return LIST_STYLE_TYPE.DEVANAGARI;\n case 'ethiopic-numeric':\n return LIST_STYLE_TYPE.ETHIOPIC_NUMERIC;\n case 'georgian':\n return LIST_STYLE_TYPE.GEORGIAN;\n case 'gujarati':\n return LIST_STYLE_TYPE.GUJARATI;\n case 'gurmukhi':\n return LIST_STYLE_TYPE.GURMUKHI;\n case 'hebrew':\n return LIST_STYLE_TYPE.HEBREW;\n case 'hiragana':\n return LIST_STYLE_TYPE.HIRAGANA;\n case 'hiragana-iroha':\n return LIST_STYLE_TYPE.HIRAGANA_IROHA;\n case 'japanese-formal':\n return LIST_STYLE_TYPE.JAPANESE_FORMAL;\n case 'japanese-informal':\n return LIST_STYLE_TYPE.JAPANESE_INFORMAL;\n case 'kannada':\n return LIST_STYLE_TYPE.KANNADA;\n case 'katakana':\n return LIST_STYLE_TYPE.KATAKANA;\n case 'katakana-iroha':\n return LIST_STYLE_TYPE.KATAKANA_IROHA;\n case 'khmer':\n return LIST_STYLE_TYPE.KHMER;\n case 'korean-hangul-formal':\n return LIST_STYLE_TYPE.KOREAN_HANGUL_FORMAL;\n case 'korean-hanja-formal':\n return LIST_STYLE_TYPE.KOREAN_HANJA_FORMAL;\n case 'korean-hanja-informal':\n return LIST_STYLE_TYPE.KOREAN_HANJA_INFORMAL;\n case 'lao':\n return LIST_STYLE_TYPE.LAO;\n case 'lower-armenian':\n return LIST_STYLE_TYPE.LOWER_ARMENIAN;\n case 'malayalam':\n return LIST_STYLE_TYPE.MALAYALAM;\n case 'mongolian':\n return LIST_STYLE_TYPE.MONGOLIAN;\n case 'myanmar':\n return LIST_STYLE_TYPE.MYANMAR;\n case 'oriya':\n return LIST_STYLE_TYPE.ORIYA;\n case 'persian':\n return LIST_STYLE_TYPE.PERSIAN;\n case 'simp-chinese-formal':\n return LIST_STYLE_TYPE.SIMP_CHINESE_FORMAL;\n case 'simp-chinese-informal':\n return LIST_STYLE_TYPE.SIMP_CHINESE_INFORMAL;\n case 'tamil':\n return LIST_STYLE_TYPE.TAMIL;\n case 'telugu':\n return LIST_STYLE_TYPE.TELUGU;\n case 'thai':\n return LIST_STYLE_TYPE.THAI;\n case 'tibetan':\n return LIST_STYLE_TYPE.TIBETAN;\n case 'trad-chinese-formal':\n return LIST_STYLE_TYPE.TRAD_CHINESE_FORMAL;\n case 'trad-chinese-informal':\n return LIST_STYLE_TYPE.TRAD_CHINESE_INFORMAL;\n case 'upper-armenian':\n return LIST_STYLE_TYPE.UPPER_ARMENIAN;\n case 'disclosure-open':\n return LIST_STYLE_TYPE.DISCLOSURE_OPEN;\n case 'disclosure-closed':\n return LIST_STYLE_TYPE.DISCLOSURE_CLOSED;\n case 'none':\n default:\n return LIST_STYLE_TYPE.NONE;\n }\n }\n};\n","import {IPropertyTokenValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nconst marginForSide = (side: string): IPropertyTokenValueDescriptor => ({\n name: `margin-${side}`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TOKEN_VALUE\n});\n\nexport const marginTop: IPropertyTokenValueDescriptor = marginForSide('top');\nexport const marginRight: IPropertyTokenValueDescriptor = marginForSide('right');\nexport const marginBottom: IPropertyTokenValueDescriptor = marginForSide('bottom');\nexport const marginLeft: IPropertyTokenValueDescriptor = marginForSide('left');\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum OVERFLOW {\n VISIBLE = 0,\n HIDDEN = 1,\n SCROLL = 2,\n CLIP = 3,\n AUTO = 4\n}\n\nexport const overflow: IPropertyListDescriptor = {\n name: 'overflow',\n initialValue: 'visible',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): OVERFLOW[] => {\n return tokens.filter(isIdentToken).map((overflow) => {\n switch (overflow.value) {\n case 'hidden':\n return OVERFLOW.HIDDEN;\n case 'scroll':\n return OVERFLOW.SCROLL;\n case 'clip':\n return OVERFLOW.CLIP;\n case 'auto':\n return OVERFLOW.AUTO;\n case 'visible':\n default:\n return OVERFLOW.VISIBLE;\n }\n });\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum OVERFLOW_WRAP {\n NORMAL = 'normal',\n BREAK_WORD = 'break-word'\n}\n\nexport const overflowWrap: IPropertyIdentValueDescriptor = {\n name: 'overflow-wrap',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, overflow: string) => {\n switch (overflow) {\n case 'break-word':\n return OVERFLOW_WRAP.BREAK_WORD;\n case 'normal':\n default:\n return OVERFLOW_WRAP.NORMAL;\n }\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nconst paddingForSide = (side: string): IPropertyTypeValueDescriptor => ({\n name: `padding-${side}`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'length-percentage'\n});\n\nexport const paddingTop: IPropertyTypeValueDescriptor = paddingForSide('top');\nexport const paddingRight: IPropertyTypeValueDescriptor = paddingForSide('right');\nexport const paddingBottom: IPropertyTypeValueDescriptor = paddingForSide('bottom');\nexport const paddingLeft: IPropertyTypeValueDescriptor = paddingForSide('left');\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum TEXT_ALIGN {\n LEFT = 0,\n CENTER = 1,\n RIGHT = 2\n}\n\nexport const textAlign: IPropertyIdentValueDescriptor = {\n name: 'text-align',\n initialValue: 'left',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, textAlign: string) => {\n switch (textAlign) {\n case 'right':\n return TEXT_ALIGN.RIGHT;\n case 'center':\n case 'justify':\n return TEXT_ALIGN.CENTER;\n case 'left':\n default:\n return TEXT_ALIGN.LEFT;\n }\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum POSITION {\n STATIC = 0,\n RELATIVE = 1,\n ABSOLUTE = 2,\n FIXED = 3,\n STICKY = 4\n}\n\nexport const position: IPropertyIdentValueDescriptor = {\n name: 'position',\n initialValue: 'static',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, position: string) => {\n switch (position) {\n case 'relative':\n return POSITION.RELATIVE;\n case 'absolute':\n return POSITION.ABSOLUTE;\n case 'fixed':\n return POSITION.FIXED;\n case 'sticky':\n return POSITION.STICKY;\n }\n\n return POSITION.STATIC;\n }\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentWithValue, parseFunctionArgs} from '../syntax/parser';\nimport {ZERO_LENGTH} from '../types/length-percentage';\nimport {color, Color, COLORS} from '../types/color';\nimport {isLength, Length} from '../types/length';\nimport {Context} from '../../core/context';\n\nexport type TextShadow = TextShadowItem[];\ninterface TextShadowItem {\n color: Color;\n offsetX: Length;\n offsetY: Length;\n blur: Length;\n}\n\nexport const textShadow: IPropertyListDescriptor = {\n name: 'text-shadow',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]): TextShadow => {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n\n return parseFunctionArgs(tokens).map((values: CSSValue[]) => {\n const shadow: TextShadowItem = {\n color: COLORS.TRANSPARENT,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH\n };\n let c = 0;\n for (let i = 0; i < values.length; i++) {\n const token = values[i];\n if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n } else if (c === 1) {\n shadow.offsetY = token;\n } else {\n shadow.blur = token;\n }\n c++;\n } else {\n shadow.color = color.parse(context, token);\n }\n }\n return shadow;\n });\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum TEXT_TRANSFORM {\n NONE = 0,\n LOWERCASE = 1,\n UPPERCASE = 2,\n CAPITALIZE = 3\n}\n\nexport const textTransform: IPropertyIdentValueDescriptor = {\n name: 'text-transform',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, textTransform: string) => {\n switch (textTransform) {\n case 'uppercase':\n return TEXT_TRANSFORM.UPPERCASE;\n case 'lowercase':\n return TEXT_TRANSFORM.LOWERCASE;\n case 'capitalize':\n return TEXT_TRANSFORM.CAPITALIZE;\n }\n\n return TEXT_TRANSFORM.NONE;\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {NumberValueToken, TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport type Matrix = [number, number, number, number, number, number];\nexport type Transform = Matrix | null;\n\nexport const transform: IPropertyValueDescriptor = {\n name: 'transform',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\n return null;\n }\n\n if (token.type === TokenType.FUNCTION) {\n const transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name];\n if (typeof transformFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported transform function \"${token.name}\"`);\n }\n return transformFunction(token.values);\n }\n\n return null;\n }\n};\n\nconst matrix = (args: CSSValue[]): Transform => {\n const values = args.filter((arg) => arg.type === TokenType.NUMBER_TOKEN).map((arg: NumberValueToken) => arg.number);\n\n return values.length === 6 ? (values as Matrix) : null;\n};\n\n// doesn't support 3D transforms at the moment\nconst matrix3d = (args: CSSValue[]): Transform => {\n const values = args.filter((arg) => arg.type === TokenType.NUMBER_TOKEN).map((arg: NumberValueToken) => arg.number);\n\n const [a1, b1, {}, {}, a2, b2, {}, {}, {}, {}, {}, {}, a4, b4, {}, {}] = values;\n\n return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null;\n};\n\nconst SUPPORTED_TRANSFORM_FUNCTIONS: {\n [key: string]: (args: CSSValue[]) => Transform;\n} = {\n matrix: matrix,\n matrix3d: matrix3d\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentage} from '../types/length-percentage';\nimport {FLAG_INTEGER, TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport type TransformOrigin = [LengthPercentage, LengthPercentage];\n\nconst DEFAULT_VALUE: LengthPercentage = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 50,\n flags: FLAG_INTEGER\n};\nconst DEFAULT: TransformOrigin = [DEFAULT_VALUE, DEFAULT_VALUE];\n\nexport const transformOrigin: IPropertyListDescriptor = {\n name: 'transform-origin',\n initialValue: '50% 50%',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n const origins: LengthPercentage[] = tokens.filter(isLengthPercentage);\n\n if (origins.length !== 2) {\n return DEFAULT;\n }\n\n return [origins[0], origins[1]];\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum VISIBILITY {\n VISIBLE = 0,\n HIDDEN = 1,\n COLLAPSE = 2\n}\n\nexport const visibility: IPropertyIdentValueDescriptor = {\n name: 'visible',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, visibility: string) => {\n switch (visibility) {\n case 'hidden':\n return VISIBILITY.HIDDEN;\n case 'collapse':\n return VISIBILITY.COLLAPSE;\n case 'visible':\n default:\n return VISIBILITY.VISIBLE;\n }\n }\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\ninterface zIndex {\n order: number;\n auto: boolean;\n}\n\nexport const zIndex: IPropertyValueDescriptor = {\n name: 'z-index',\n initialValue: 'auto',\n prefix: false,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue): zIndex => {\n if (token.type === TokenType.IDENT_TOKEN) {\n return {auto: true, order: 0};\n }\n\n if (isNumberToken(token)) {\n return {auto: false, order: token.number};\n }\n\n throw new Error(`Invalid z-index number parsed`);\n }\n};\n","import {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {Context} from '../../core/context';\n\nexport const time: ITypeDescriptor = {\n name: 'time',\n parse: (_context: Context, value: CSSValue): number => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n switch (value.unit.toLowerCase()) {\n case 's':\n return 1000 * value.number;\n case 'ms':\n return value.number;\n }\n }\n\n throw new Error(`Unsupported time type`);\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const opacity: IPropertyValueDescriptor = {\n name: 'opacity',\n initialValue: '1',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isNumberToken(token)) {\n return token.number;\n }\n return 1;\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const textDecorationColor: IPropertyTypeValueDescriptor = {\n name: `text-decoration-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const enum TEXT_DECORATION_LINE {\n NONE = 0,\n UNDERLINE = 1,\n OVERLINE = 2,\n LINE_THROUGH = 3,\n BLINK = 4\n}\n\nexport type TextDecorationLine = TEXT_DECORATION_LINE[];\n\nexport const textDecorationLine: IPropertyListDescriptor = {\n name: 'text-decoration-line',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): TextDecorationLine => {\n return tokens\n .filter(isIdentToken)\n .map((token) => {\n switch (token.value) {\n case 'underline':\n return TEXT_DECORATION_LINE.UNDERLINE;\n case 'overline':\n return TEXT_DECORATION_LINE.OVERLINE;\n case 'line-through':\n return TEXT_DECORATION_LINE.LINE_THROUGH;\n case 'none':\n return TEXT_DECORATION_LINE.BLINK;\n }\n return TEXT_DECORATION_LINE.NONE;\n })\n .filter((line) => line !== TEXT_DECORATION_LINE.NONE);\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport type FONT_FAMILY = string;\n\nexport type FontFamily = FONT_FAMILY[];\n\nexport const fontFamily: IPropertyListDescriptor = {\n name: `font-family`,\n initialValue: '',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n const accumulator: string[] = [];\n const results: string[] = [];\n tokens.forEach((token) => {\n switch (token.type) {\n case TokenType.IDENT_TOKEN:\n case TokenType.STRING_TOKEN:\n accumulator.push(token.value);\n break;\n case TokenType.NUMBER_TOKEN:\n accumulator.push(token.number.toString());\n break;\n case TokenType.COMMA_TOKEN:\n results.push(accumulator.join(' '));\n accumulator.length = 0;\n break;\n }\n });\n if (accumulator.length) {\n results.push(accumulator.join(' '));\n }\n return results.map((result) => (result.indexOf(' ') === -1 ? result : `'${result}'`));\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const fontSize: IPropertyTypeValueDescriptor = {\n name: `font-size`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'length'\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, isNumberToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const fontWeight: IPropertyValueDescriptor = {\n name: 'font-weight',\n initialValue: 'normal',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isNumberToken(token)) {\n return token.number;\n }\n\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'bold':\n return 700;\n case 'normal':\n default:\n return 400;\n }\n }\n\n return 400;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const fontVariant: IPropertyListDescriptor = {\n name: 'font-variant',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]): string[] => {\n return tokens.filter(isIdentToken).map((token) => token.value);\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum FONT_STYLE {\n NORMAL = 'normal',\n ITALIC = 'italic',\n OBLIQUE = 'oblique'\n}\n\nexport const fontStyle: IPropertyIdentValueDescriptor = {\n name: 'font-style',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, overflow: string) => {\n switch (overflow) {\n case 'oblique':\n return FONT_STYLE.OBLIQUE;\n case 'italic':\n return FONT_STYLE.ITALIC;\n case 'normal':\n default:\n return FONT_STYLE.NORMAL;\n }\n }\n};\n","export const contains = (bit: number, value: number): boolean => (bit & value) !== 0;\n","import {TokenType} from '../syntax/tokenizer';\nimport {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport type Content = CSSValue[];\n\nexport const content: IPropertyListDescriptor = {\n name: 'content',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return [];\n }\n\n return tokens;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken, nonWhiteSpace} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport interface COUNTER_INCREMENT {\n counter: string;\n increment: number;\n}\n\nexport type CounterIncrement = COUNTER_INCREMENT[] | null;\n\nexport const counterIncrement: IPropertyListDescriptor = {\n name: 'counter-increment',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return null;\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return null;\n }\n\n const increments = [];\n const filtered = tokens.filter(nonWhiteSpace);\n\n for (let i = 0; i < filtered.length; i++) {\n const counter = filtered[i];\n const next = filtered[i + 1];\n if (counter.type === TokenType.IDENT_TOKEN) {\n const increment = next && isNumberToken(next) ? next.number : 1;\n increments.push({counter: counter.value, increment});\n }\n }\n\n return increments;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, isNumberToken, nonWhiteSpace} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport interface COUNTER_RESET {\n counter: string;\n reset: number;\n}\n\nexport type CounterReset = COUNTER_RESET[];\n\nexport const counterReset: IPropertyListDescriptor = {\n name: 'counter-reset',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const resets = [];\n const filtered = tokens.filter(nonWhiteSpace);\n\n for (let i = 0; i < filtered.length; i++) {\n const counter = filtered[i];\n const next = filtered[i + 1];\n if (isIdentToken(counter) && counter.value !== 'none') {\n const reset = next && isNumberToken(next) ? next.number : 0;\n resets.push({counter: counter.value, reset});\n }\n }\n\n return resets;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {time} from '../types/time';\n\nexport const duration: IPropertyListDescriptor = {\n name: 'duration',\n initialValue: '0s',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (context: Context, tokens: CSSValue[]) => {\n return tokens.filter(isDimensionToken).map((token) => time.parse(context, token));\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isStringToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport interface QUOTE {\n open: string;\n close: string;\n}\n\nexport type Quotes = QUOTE[] | null;\n\nexport const quotes: IPropertyListDescriptor = {\n name: 'quotes',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return null;\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return null;\n }\n\n const quotes = [];\n const filtered = tokens.filter(isStringToken);\n\n if (filtered.length % 2 !== 0) {\n return null;\n }\n\n for (let i = 0; i < filtered.length; i += 2) {\n const open = filtered[i].value;\n const close = filtered[i + 1].value;\n quotes.push({open, close});\n }\n\n return quotes;\n }\n};\n\nexport const getQuote = (quotes: Quotes, depth: number, open: boolean): string => {\n if (!quotes) {\n return '';\n }\n\n const quote = quotes[Math.min(depth, quotes.length - 1)];\n if (!quote) {\n return '';\n }\n\n return open ? quote.open : quote.close;\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentWithValue, parseFunctionArgs} from '../syntax/parser';\nimport {ZERO_LENGTH} from '../types/length-percentage';\nimport {color, Color} from '../types/color';\nimport {isLength, Length} from '../types/length';\nimport {Context} from '../../core/context';\n\nexport type BoxShadow = BoxShadowItem[];\ninterface BoxShadowItem {\n inset: boolean;\n color: Color;\n offsetX: Length;\n offsetY: Length;\n blur: Length;\n spread: Length;\n}\n\nexport const boxShadow: IPropertyListDescriptor = {\n name: 'box-shadow',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]): BoxShadow => {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n\n return parseFunctionArgs(tokens).map((values: CSSValue[]) => {\n const shadow: BoxShadowItem = {\n color: 0x000000ff,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH,\n spread: ZERO_LENGTH,\n inset: false\n };\n let c = 0;\n for (let i = 0; i < values.length; i++) {\n const token = values[i];\n if (isIdentWithValue(token, 'inset')) {\n shadow.inset = true;\n } else if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n } else if (c === 1) {\n shadow.offsetY = token;\n } else if (c === 2) {\n shadow.blur = token;\n } else {\n shadow.spread = token;\n }\n c++;\n } else {\n shadow.color = color.parse(context, token);\n }\n }\n return shadow;\n });\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum PAINT_ORDER_LAYER {\n FILL,\n STROKE,\n MARKERS\n}\n\nexport type PaintOrder = PAINT_ORDER_LAYER[];\n\nexport const paintOrder: IPropertyListDescriptor = {\n name: 'paint-order',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): PaintOrder => {\n const DEFAULT_VALUE = [PAINT_ORDER_LAYER.FILL, PAINT_ORDER_LAYER.STROKE, PAINT_ORDER_LAYER.MARKERS];\n const layers: PaintOrder = [];\n\n tokens.filter(isIdentToken).forEach((token) => {\n switch (token.value) {\n case 'stroke':\n layers.push(PAINT_ORDER_LAYER.STROKE);\n break;\n case 'fill':\n layers.push(PAINT_ORDER_LAYER.FILL);\n break;\n case 'markers':\n layers.push(PAINT_ORDER_LAYER.MARKERS);\n break;\n }\n });\n DEFAULT_VALUE.forEach((value) => {\n if (layers.indexOf(value) === -1) {\n layers.push(value);\n }\n });\n\n return layers;\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nexport const webkitTextStrokeColor: IPropertyTypeValueDescriptor = {\n name: `-webkit-text-stroke-color`,\n initialValue: 'currentcolor',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const webkitTextStrokeWidth: IPropertyValueDescriptor = {\n name: `-webkit-text-stroke-width`,\n initialValue: '0',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n};\n","import {CSSPropertyDescriptor, PropertyDescriptorParsingType} from './IPropertyDescriptor';\nimport {backgroundClip} from './property-descriptors/background-clip';\nimport {backgroundColor} from './property-descriptors/background-color';\nimport {backgroundImage} from './property-descriptors/background-image';\nimport {backgroundOrigin} from './property-descriptors/background-origin';\nimport {backgroundPosition} from './property-descriptors/background-position';\nimport {backgroundRepeat} from './property-descriptors/background-repeat';\nimport {backgroundSize} from './property-descriptors/background-size';\nimport {\n borderBottomColor,\n borderLeftColor,\n borderRightColor,\n borderTopColor\n} from './property-descriptors/border-color';\nimport {\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderTopLeftRadius,\n borderTopRightRadius\n} from './property-descriptors/border-radius';\nimport {\n borderBottomStyle,\n borderLeftStyle,\n borderRightStyle,\n borderTopStyle\n} from './property-descriptors/border-style';\nimport {\n borderBottomWidth,\n borderLeftWidth,\n borderRightWidth,\n borderTopWidth\n} from './property-descriptors/border-width';\nimport {color} from './property-descriptors/color';\nimport {direction} from './property-descriptors/direction';\nimport {display, DISPLAY} from './property-descriptors/display';\nimport {float, FLOAT} from './property-descriptors/float';\nimport {letterSpacing} from './property-descriptors/letter-spacing';\nimport {lineBreak} from './property-descriptors/line-break';\nimport {lineHeight} from './property-descriptors/line-height';\nimport {listStyleImage} from './property-descriptors/list-style-image';\nimport {listStylePosition} from './property-descriptors/list-style-position';\nimport {listStyleType} from './property-descriptors/list-style-type';\nimport {marginBottom, marginLeft, marginRight, marginTop} from './property-descriptors/margin';\nimport {overflow, OVERFLOW} from './property-descriptors/overflow';\nimport {overflowWrap} from './property-descriptors/overflow-wrap';\nimport {paddingBottom, paddingLeft, paddingRight, paddingTop} from './property-descriptors/padding';\nimport {textAlign} from './property-descriptors/text-align';\nimport {position, POSITION} from './property-descriptors/position';\nimport {textShadow} from './property-descriptors/text-shadow';\nimport {textTransform} from './property-descriptors/text-transform';\nimport {transform} from './property-descriptors/transform';\nimport {transformOrigin} from './property-descriptors/transform-origin';\nimport {visibility, VISIBILITY} from './property-descriptors/visibility';\nimport {wordBreak} from './property-descriptors/word-break';\nimport {zIndex} from './property-descriptors/z-index';\nimport {CSSValue, isIdentToken, Parser} from './syntax/parser';\nimport {Tokenizer} from './syntax/tokenizer';\nimport {Color, color as colorType, isTransparent} from './types/color';\nimport {angle} from './types/angle';\nimport {image} from './types/image';\nimport {time} from './types/time';\nimport {opacity} from './property-descriptors/opacity';\nimport {textDecorationColor} from './property-descriptors/text-decoration-color';\nimport {textDecorationLine} from './property-descriptors/text-decoration-line';\nimport {isLengthPercentage, LengthPercentage, ZERO_LENGTH} from './types/length-percentage';\nimport {fontFamily} from './property-descriptors/font-family';\nimport {fontSize} from './property-descriptors/font-size';\nimport {isLength} from './types/length';\nimport {fontWeight} from './property-descriptors/font-weight';\nimport {fontVariant} from './property-descriptors/font-variant';\nimport {fontStyle} from './property-descriptors/font-style';\nimport {contains} from '../core/bitwise';\nimport {content} from './property-descriptors/content';\nimport {counterIncrement} from './property-descriptors/counter-increment';\nimport {counterReset} from './property-descriptors/counter-reset';\nimport {duration} from './property-descriptors/duration';\nimport {quotes} from './property-descriptors/quotes';\nimport {boxShadow} from './property-descriptors/box-shadow';\nimport {paintOrder} from './property-descriptors/paint-order';\nimport {webkitTextStrokeColor} from './property-descriptors/webkit-text-stroke-color';\nimport {webkitTextStrokeWidth} from './property-descriptors/webkit-text-stroke-width';\nimport {Context} from '../core/context';\n\nexport class CSSParsedDeclaration {\n animationDuration: ReturnType;\n backgroundClip: ReturnType;\n backgroundColor: Color;\n backgroundImage: ReturnType;\n backgroundOrigin: ReturnType;\n backgroundPosition: ReturnType;\n backgroundRepeat: ReturnType;\n backgroundSize: ReturnType;\n borderTopColor: Color;\n borderRightColor: Color;\n borderBottomColor: Color;\n borderLeftColor: Color;\n borderTopLeftRadius: ReturnType;\n borderTopRightRadius: ReturnType;\n borderBottomRightRadius: ReturnType;\n borderBottomLeftRadius: ReturnType;\n borderTopStyle: ReturnType;\n borderRightStyle: ReturnType;\n borderBottomStyle: ReturnType;\n borderLeftStyle: ReturnType;\n borderTopWidth: ReturnType;\n borderRightWidth: ReturnType;\n borderBottomWidth: ReturnType;\n borderLeftWidth: ReturnType;\n boxShadow: ReturnType;\n color: Color;\n direction: ReturnType;\n display: ReturnType;\n float: ReturnType;\n fontFamily: ReturnType;\n fontSize: LengthPercentage;\n fontStyle: ReturnType;\n fontVariant: ReturnType;\n fontWeight: ReturnType;\n letterSpacing: ReturnType;\n lineBreak: ReturnType;\n lineHeight: CSSValue;\n listStyleImage: ReturnType;\n listStylePosition: ReturnType;\n listStyleType: ReturnType;\n marginTop: CSSValue;\n marginRight: CSSValue;\n marginBottom: CSSValue;\n marginLeft: CSSValue;\n opacity: ReturnType;\n overflowX: OVERFLOW;\n overflowY: OVERFLOW;\n overflowWrap: ReturnType;\n paddingTop: LengthPercentage;\n paddingRight: LengthPercentage;\n paddingBottom: LengthPercentage;\n paddingLeft: LengthPercentage;\n paintOrder: ReturnType;\n position: ReturnType;\n textAlign: ReturnType;\n textDecorationColor: Color;\n textDecorationLine: ReturnType;\n textShadow: ReturnType;\n textTransform: ReturnType;\n transform: ReturnType;\n transformOrigin: ReturnType;\n visibility: ReturnType;\n webkitTextStrokeColor: Color;\n webkitTextStrokeWidth: ReturnType;\n wordBreak: ReturnType;\n zIndex: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.animationDuration = parse(context, duration, declaration.animationDuration);\n this.backgroundClip = parse(context, backgroundClip, declaration.backgroundClip);\n this.backgroundColor = parse(context, backgroundColor, declaration.backgroundColor);\n this.backgroundImage = parse(context, backgroundImage, declaration.backgroundImage);\n this.backgroundOrigin = parse(context, backgroundOrigin, declaration.backgroundOrigin);\n this.backgroundPosition = parse(context, backgroundPosition, declaration.backgroundPosition);\n this.backgroundRepeat = parse(context, backgroundRepeat, declaration.backgroundRepeat);\n this.backgroundSize = parse(context, backgroundSize, declaration.backgroundSize);\n this.borderTopColor = parse(context, borderTopColor, declaration.borderTopColor);\n this.borderRightColor = parse(context, borderRightColor, declaration.borderRightColor);\n this.borderBottomColor = parse(context, borderBottomColor, declaration.borderBottomColor);\n this.borderLeftColor = parse(context, borderLeftColor, declaration.borderLeftColor);\n this.borderTopLeftRadius = parse(context, borderTopLeftRadius, declaration.borderTopLeftRadius);\n this.borderTopRightRadius = parse(context, borderTopRightRadius, declaration.borderTopRightRadius);\n this.borderBottomRightRadius = parse(context, borderBottomRightRadius, declaration.borderBottomRightRadius);\n this.borderBottomLeftRadius = parse(context, borderBottomLeftRadius, declaration.borderBottomLeftRadius);\n this.borderTopStyle = parse(context, borderTopStyle, declaration.borderTopStyle);\n this.borderRightStyle = parse(context, borderRightStyle, declaration.borderRightStyle);\n this.borderBottomStyle = parse(context, borderBottomStyle, declaration.borderBottomStyle);\n this.borderLeftStyle = parse(context, borderLeftStyle, declaration.borderLeftStyle);\n this.borderTopWidth = parse(context, borderTopWidth, declaration.borderTopWidth);\n this.borderRightWidth = parse(context, borderRightWidth, declaration.borderRightWidth);\n this.borderBottomWidth = parse(context, borderBottomWidth, declaration.borderBottomWidth);\n this.borderLeftWidth = parse(context, borderLeftWidth, declaration.borderLeftWidth);\n this.boxShadow = parse(context, boxShadow, declaration.boxShadow);\n this.color = parse(context, color, declaration.color);\n this.direction = parse(context, direction, declaration.direction);\n this.display = parse(context, display, declaration.display);\n this.float = parse(context, float, declaration.cssFloat);\n this.fontFamily = parse(context, fontFamily, declaration.fontFamily);\n this.fontSize = parse(context, fontSize, declaration.fontSize);\n this.fontStyle = parse(context, fontStyle, declaration.fontStyle);\n this.fontVariant = parse(context, fontVariant, declaration.fontVariant);\n this.fontWeight = parse(context, fontWeight, declaration.fontWeight);\n this.letterSpacing = parse(context, letterSpacing, declaration.letterSpacing);\n this.lineBreak = parse(context, lineBreak, declaration.lineBreak);\n this.lineHeight = parse(context, lineHeight, declaration.lineHeight);\n this.listStyleImage = parse(context, listStyleImage, declaration.listStyleImage);\n this.listStylePosition = parse(context, listStylePosition, declaration.listStylePosition);\n this.listStyleType = parse(context, listStyleType, declaration.listStyleType);\n this.marginTop = parse(context, marginTop, declaration.marginTop);\n this.marginRight = parse(context, marginRight, declaration.marginRight);\n this.marginBottom = parse(context, marginBottom, declaration.marginBottom);\n this.marginLeft = parse(context, marginLeft, declaration.marginLeft);\n this.opacity = parse(context, opacity, declaration.opacity);\n const overflowTuple = parse(context, overflow, declaration.overflow);\n this.overflowX = overflowTuple[0];\n this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];\n this.overflowWrap = parse(context, overflowWrap, declaration.overflowWrap);\n this.paddingTop = parse(context, paddingTop, declaration.paddingTop);\n this.paddingRight = parse(context, paddingRight, declaration.paddingRight);\n this.paddingBottom = parse(context, paddingBottom, declaration.paddingBottom);\n this.paddingLeft = parse(context, paddingLeft, declaration.paddingLeft);\n this.paintOrder = parse(context, paintOrder, declaration.paintOrder);\n this.position = parse(context, position, declaration.position);\n this.textAlign = parse(context, textAlign, declaration.textAlign);\n this.textDecorationColor = parse(\n context,\n textDecorationColor,\n declaration.textDecorationColor ?? declaration.color\n );\n this.textDecorationLine = parse(\n context,\n textDecorationLine,\n declaration.textDecorationLine ?? declaration.textDecoration\n );\n this.textShadow = parse(context, textShadow, declaration.textShadow);\n this.textTransform = parse(context, textTransform, declaration.textTransform);\n this.transform = parse(context, transform, declaration.transform);\n this.transformOrigin = parse(context, transformOrigin, declaration.transformOrigin);\n this.visibility = parse(context, visibility, declaration.visibility);\n this.webkitTextStrokeColor = parse(context, webkitTextStrokeColor, declaration.webkitTextStrokeColor);\n this.webkitTextStrokeWidth = parse(context, webkitTextStrokeWidth, declaration.webkitTextStrokeWidth);\n this.wordBreak = parse(context, wordBreak, declaration.wordBreak);\n this.zIndex = parse(context, zIndex, declaration.zIndex);\n }\n\n isVisible(): boolean {\n return this.display > 0 && this.opacity > 0 && this.visibility === VISIBILITY.VISIBLE;\n }\n\n isTransparent(): boolean {\n return isTransparent(this.backgroundColor);\n }\n\n isTransformed(): boolean {\n return this.transform !== null;\n }\n\n isPositioned(): boolean {\n return this.position !== POSITION.STATIC;\n }\n\n isPositionedWithZIndex(): boolean {\n return this.isPositioned() && !this.zIndex.auto;\n }\n\n isFloating(): boolean {\n return this.float !== FLOAT.NONE;\n }\n\n isInlineLevel(): boolean {\n return (\n contains(this.display, DISPLAY.INLINE) ||\n contains(this.display, DISPLAY.INLINE_BLOCK) ||\n contains(this.display, DISPLAY.INLINE_FLEX) ||\n contains(this.display, DISPLAY.INLINE_GRID) ||\n contains(this.display, DISPLAY.INLINE_LIST_ITEM) ||\n contains(this.display, DISPLAY.INLINE_TABLE)\n );\n }\n}\n\nexport class CSSParsedPseudoDeclaration {\n content: ReturnType;\n quotes: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.content = parse(context, content, declaration.content);\n this.quotes = parse(context, quotes, declaration.quotes);\n }\n}\n\nexport class CSSParsedCounterDeclaration {\n counterIncrement: ReturnType;\n counterReset: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.counterIncrement = parse(context, counterIncrement, declaration.counterIncrement);\n this.counterReset = parse(context, counterReset, declaration.counterReset);\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst parse = (context: Context, descriptor: CSSPropertyDescriptor, style?: string | null) => {\n const tokenizer = new Tokenizer();\n const value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue;\n tokenizer.write(value);\n const parser = new Parser(tokenizer.read());\n switch (descriptor.type) {\n case PropertyDescriptorParsingType.IDENT_VALUE:\n const token = parser.parseComponentValue();\n return descriptor.parse(context, isIdentToken(token) ? token.value : descriptor.initialValue);\n case PropertyDescriptorParsingType.VALUE:\n return descriptor.parse(context, parser.parseComponentValue());\n case PropertyDescriptorParsingType.LIST:\n return descriptor.parse(context, parser.parseComponentValues());\n case PropertyDescriptorParsingType.TOKEN_VALUE:\n return parser.parseComponentValue();\n case PropertyDescriptorParsingType.TYPE_VALUE:\n switch (descriptor.format) {\n case 'angle':\n return angle.parse(context, parser.parseComponentValue());\n case 'color':\n return colorType.parse(context, parser.parseComponentValue());\n case 'image':\n return image.parse(context, parser.parseComponentValue());\n case 'length':\n const length = parser.parseComponentValue();\n return isLength(length) ? length : ZERO_LENGTH;\n case 'length-percentage':\n const value = parser.parseComponentValue();\n return isLengthPercentage(value) ? value : ZERO_LENGTH;\n case 'time':\n return time.parse(context, parser.parseComponentValue());\n }\n break;\n }\n};\n","const elementDebuggerAttribute = 'data-html2canvas-debug';\nexport const enum DebuggerType {\n NONE,\n ALL,\n CLONE,\n PARSE,\n RENDER\n}\n\nconst getElementDebugType = (element: Element): DebuggerType => {\n const attribute = element.getAttribute(elementDebuggerAttribute);\n switch (attribute) {\n case 'all':\n return DebuggerType.ALL;\n case 'clone':\n return DebuggerType.CLONE;\n case 'parse':\n return DebuggerType.PARSE;\n case 'render':\n return DebuggerType.RENDER;\n default:\n return DebuggerType.NONE;\n }\n};\n\nexport const isDebugging = (element: Element, type: Omit): boolean => {\n const elementType = getElementDebugType(element);\n return elementType === DebuggerType.ALL || type === elementType;\n};\n","import {CSSParsedDeclaration} from '../css/index';\nimport {TextContainer} from './text-container';\nimport {Bounds, parseBounds} from '../css/layout/bounds';\nimport {isHTMLElementNode} from './node-parser';\nimport {Context} from '../core/context';\nimport {DebuggerType, isDebugging} from '../core/debugger';\n\nexport const enum FLAGS {\n CREATES_STACKING_CONTEXT = 1 << 1,\n CREATES_REAL_STACKING_CONTEXT = 1 << 2,\n IS_LIST_OWNER = 1 << 3,\n DEBUG_RENDER = 1 << 4\n}\n\nexport class ElementContainer {\n readonly styles: CSSParsedDeclaration;\n readonly textNodes: TextContainer[] = [];\n readonly elements: ElementContainer[] = [];\n bounds: Bounds;\n flags = 0;\n\n constructor(protected readonly context: Context, element: Element) {\n if (isDebugging(element, DebuggerType.PARSE)) {\n debugger;\n }\n\n this.styles = new CSSParsedDeclaration(context, window.getComputedStyle(element, null));\n\n if (isHTMLElementNode(element)) {\n if (this.styles.animationDuration.some((duration) => duration > 0)) {\n element.style.animationDuration = '0s';\n }\n\n if (this.styles.transform !== null) {\n // getBoundingClientRect takes transforms into account\n element.style.transform = 'none';\n }\n }\n\n this.bounds = parseBounds(this.context, element);\n\n if (isDebugging(element, DebuggerType.RENDER)) {\n this.flags |= FLAGS.DEBUG_RENDER;\n }\n }\n}\n","export const base64 =\n 'AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=';\nexport const byteLength = 19616;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encode = (arraybuffer: ArrayBuffer): string => {\n let bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nexport const decode = (base64: string): ArrayBuffer => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n};\n","import {decode, polyUint16Array, polyUint32Array} from './Util';\n\nexport type int = number;\n\n/** Shift size for getting the index-2 table offset. */\nexport const UTRIE2_SHIFT_2 = 5;\n\n/** Shift size for getting the index-1 table offset. */\nexport const UTRIE2_SHIFT_1 = 6 + 5;\n\n/**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\nexport const UTRIE2_INDEX_SHIFT = 2;\n\n/**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\nexport const UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\n\n/**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\nexport const UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n\n/** Number of entries in a data block. 32=0x20 */\nexport const UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n/** Mask for getting the lower bits for the in-data-block offset. */\nexport const UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\n\nexport const UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n/** Count the lengths of both BMP pieces. 2080=0x820 */\nexport const UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\n/**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\nexport const UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\nexport const UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n/**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\nexport const UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\n\n/**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\nexport const UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n\n/** Number of entries in an index-2 block. 64=0x40 */\nexport const UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n/** Mask for getting the lower bits for the in-index-2-block offset. */\nexport const UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\n\nconst slice16 = (view: number[] | Uint16Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n};\n\nconst slice32 = (view: number[] | Uint32Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n};\n\nexport const createTrieFromBase64 = (base64: string, _byteLength: number): Trie => {\n const buffer = decode(base64);\n const view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n const view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n const headerLength = 24;\n\n const index = slice16(view16, headerLength / 2, view32[4] / 2);\n const data =\n view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n};\n\nexport class Trie {\n initialValue: int;\n errorValue: int;\n highStart: int;\n highValueIndex: int;\n index: Uint16Array | number[];\n data: Uint32Array | Uint16Array | number[];\n\n constructor(\n initialValue: int,\n errorValue: int,\n highStart: int,\n highValueIndex: int,\n index: Uint16Array | number[],\n data: Uint32Array | Uint16Array | number[]\n ) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n get(codePoint: number): number {\n let ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n }\n}\n","import {base64, byteLength} from './grapheme-break-trie';\nimport {createTrieFromBase64} from 'utrie';\n\nconst Other = 0;\nconst Prepend = 1;\nconst CR = 2;\nconst LF = 3;\nconst Control = 4;\nconst Extend = 5;\nconst Regional_Indicator = 6;\nconst SpacingMark = 7;\nconst L = 8;\nconst V = 9;\nconst T = 10;\nconst LV = 11;\nconst LVT = 12;\nconst ZWJ = 13;\nconst Extended_Pictographic = 14;\nconst RI = 15;\n\nexport const classes: {[key: string]: number} = {\n Other,\n Prepend,\n CR,\n LF,\n Control,\n Extend,\n Regional_Indicator,\n SpacingMark,\n L,\n V,\n T,\n LV,\n LVT,\n ZWJ,\n Extended_Pictographic,\n RI,\n};\n\nexport const toCodePoints = (str: string): number[] => {\n const codePoints = [];\n let i = 0;\n const length = str.length;\n while (i < length) {\n const value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n const extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n } else {\n codePoints.push(value);\n i--;\n }\n } else {\n codePoints.push(value);\n }\n }\n return codePoints;\n};\n\nexport const fromCodePoint = (...codePoints: number[]): string => {\n if (String.fromCodePoint) {\n return String.fromCodePoint(...codePoints);\n }\n\n const length = codePoints.length;\n if (!length) {\n return '';\n }\n\n const codeUnits = [];\n\n let index = -1;\n let result = '';\n while (++index < length) {\n let codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n } else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode(...codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n};\n\nexport const UnicodeTrie = createTrieFromBase64(base64, byteLength);\n\nexport const BREAK_NOT_ALLOWED = '×';\nexport const BREAK_ALLOWED = '÷';\n\nexport type BREAK_OPPORTUNITIES = typeof BREAK_NOT_ALLOWED | typeof BREAK_ALLOWED;\n\nexport const codePointToClass = (codePoint: number): number => UnicodeTrie.get(codePoint);\n\nconst _graphemeBreakAtIndex = (_codePoints: number[], classTypes: number[], index: number): BREAK_OPPORTUNITIES => {\n let prevIndex = index - 2;\n let prev = classTypes[prevIndex];\n const current = classTypes[index - 1];\n const next = classTypes[index];\n // GB3 Do not break between a CR and LF\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB4 Otherwise, break before and after controls.\n if (current === CR || current === LF || current === Control) {\n return BREAK_ALLOWED;\n }\n\n // GB5\n if (next === CR || next === LF || next === Control) {\n return BREAK_ALLOWED;\n }\n\n // Do not break Hangul syllable sequences.\n // GB6\n if (current === L && [L, V, LV, LVT].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB7\n if ((current === LV || current === V) && (next === V || next === T)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB8\n if ((current === LVT || current === T) && next === T) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB9 Do not break before extending characters or ZWJ.\n if (next === ZWJ || next === Extend) {\n return BREAK_NOT_ALLOWED;\n }\n // Do not break before SpacingMarks, or after Prepend characters.\n // GB9a\n if (next === SpacingMark) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB9a\n if (current === Prepend) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB11 Do not break within emoji modifier sequences or emoji zwj sequences.\n if (current === ZWJ && next === Extended_Pictographic) {\n while (prev === Extend) {\n prev = classTypes[--prevIndex];\n }\n if (prev === Extended_Pictographic) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n // GB12 Do not break within emoji flag sequences.\n // That is, do not break between regional indicator (RI) symbols\n // if there is an odd number of RI characters before the break point.\n if (current === RI && next === RI) {\n let countRI = 0;\n while (prev === RI) {\n countRI++;\n prev = classTypes[--prevIndex];\n }\n if (countRI % 2 === 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n return BREAK_ALLOWED;\n};\n\nexport const graphemeBreakAtIndex = (codePoints: number[], index: number): BREAK_OPPORTUNITIES => {\n // GB1 Break at the start and end of text, unless the text is empty.\n if (index === 0) {\n return BREAK_ALLOWED;\n }\n\n // GB2\n if (index >= codePoints.length) {\n return BREAK_ALLOWED;\n }\n\n const classTypes = codePoints.map(codePointToClass);\n return _graphemeBreakAtIndex(codePoints, classTypes, index);\n};\n\nexport const GraphemeBreaker = (str: string) => {\n const codePoints = toCodePoints(str);\n const length = codePoints.length;\n let index = 0;\n let lastEnd = 0;\n const classTypes = codePoints.map(codePointToClass);\n\n return {\n next: () => {\n if (index >= length) {\n return {done: true, value: null};\n }\n\n let graphemeBreak = BREAK_NOT_ALLOWED;\n while (\n index < length &&\n (graphemeBreak = _graphemeBreakAtIndex(codePoints, classTypes, ++index)) === BREAK_NOT_ALLOWED\n ) {}\n\n if (graphemeBreak !== BREAK_NOT_ALLOWED || index === length) {\n const value = fromCodePoint.apply(null, codePoints.slice(lastEnd, index));\n lastEnd = index;\n return {value, done: false};\n }\n\n return {done: true, value: null};\n while (index < length) {}\n\n return {done: true, value: null};\n },\n };\n};\n\nexport const splitGraphemes = (str: string): string[] => {\n const breaker = GraphemeBreaker(str);\n\n const graphemes = [];\n let bk;\n\n while (!(bk = breaker.next()).done) {\n if (bk.value) {\n graphemes.push(bk.value.slice());\n }\n }\n\n return graphemes;\n};\n","import {Bounds} from '../css/layout/bounds';\nimport {\n isBodyElement,\n isCanvasElement,\n isCustomElement,\n isElementNode,\n isHTMLElementNode,\n isIFrameElement,\n isImageElement,\n isScriptElement,\n isSelectElement,\n isSlotElement,\n isStyleElement,\n isSVGElementNode,\n isTextareaElement,\n isTextNode,\n isVideoElement\n} from './node-parser';\nimport {isIdentToken, nonFunctionArgSeparator} from '../css/syntax/parser';\nimport {TokenType} from '../css/syntax/tokenizer';\nimport {CounterState, createCounterText} from '../css/types/functions/counter';\nimport {LIST_STYLE_TYPE, listStyleType} from '../css/property-descriptors/list-style-type';\nimport {CSSParsedCounterDeclaration, CSSParsedPseudoDeclaration} from '../css/index';\nimport {getQuote} from '../css/property-descriptors/quotes';\nimport {Context} from '../core/context';\nimport {DebuggerType, isDebugging} from '../core/debugger';\n\nexport interface CloneOptions {\n ignoreElements?: (element: Element) => boolean;\n onclone?: (document: Document, element: HTMLElement) => void;\n allowTaint?: boolean;\n}\n\nexport interface WindowOptions {\n scrollX: number;\n scrollY: number;\n windowWidth: number;\n windowHeight: number;\n}\n\nexport type CloneConfigurations = CloneOptions & {\n inlineImages: boolean;\n copyStyles: boolean;\n};\n\nconst IGNORE_ATTRIBUTE = 'data-html2canvas-ignore';\n\nexport class DocumentCloner {\n private readonly scrolledElements: [Element, number, number][];\n private readonly referenceElement: HTMLElement;\n clonedReferenceElement?: HTMLElement;\n private readonly documentElement: HTMLElement;\n private readonly counters: CounterState;\n private quoteDepth: number;\n\n constructor(\n private readonly context: Context,\n element: HTMLElement,\n private readonly options: CloneConfigurations\n ) {\n this.scrolledElements = [];\n this.referenceElement = element;\n this.counters = new CounterState();\n this.quoteDepth = 0;\n if (!element.ownerDocument) {\n throw new Error('Cloned element does not have an owner document');\n }\n\n this.documentElement = this.cloneNode(element.ownerDocument.documentElement, false) as HTMLElement;\n }\n\n toIFrame(ownerDocument: Document, windowSize: Bounds): Promise {\n const iframe: HTMLIFrameElement = createIFrameContainer(ownerDocument, windowSize);\n\n if (!iframe.contentWindow) {\n return Promise.reject(`Unable to find iframe window`);\n }\n\n const scrollX = (ownerDocument.defaultView as Window).pageXOffset;\n const scrollY = (ownerDocument.defaultView as Window).pageYOffset;\n\n const cloneWindow = iframe.contentWindow;\n const documentClone: Document = cloneWindow.document;\n\n /* Chrome doesn't detect relative background-images assigned in inline \n \n \n
\n ${printContent}\n
\n \n \n `);\n\n // Close the document to ensure all resources are loaded\n printWindow.document.close();\n\n // Wait for the content to load before printing\n printWindow.onload = () => {\n printWindow.focus();\n printWindow.print();\n printWindow.close();\n };\n } else {\n console.error('Reservation summary not found.');\n alert('Geen reserveringsgegevens gevonden om te printen.');\n }\n };\n\n return (\n\t\n );\n};\n\nexport default PrintButton;\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new i32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return { b: b, r: r };\n};\nvar _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 1; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n return new u8(v.subarray(s, e));\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, st, buf, dict) {\n // source length dict length\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf;\n // have to estimate size\n var resize = noBuf || st.i != 2;\n // no state\n var noSt = st.i;\n // Assumes roughly 33% compression ratio average\n if (noBuf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (resize)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17\n if (resize)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift = dl - dt, dend = Math.min(dt, end);\n if (shift + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift + bt];\n }\n for (; bt < end; ++bt)\n buf[bt] = buf[bt - dt];\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n // don't reallocate for streams or user buffers\n return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n d[o + 2] |= v >> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return { t: et, l: 0 };\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return { t: v, l: 1 };\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return { t: new u8(tr), l: mbt };\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return { c: cl.subarray(0, cli), n: s };\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;\n var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;\n var _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n ++lcfreq[lclt[i] & 31];\n for (var i = 0; i < lcdt.length; ++i)\n ++lcfreq[lcdt[i] & 31];\n var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n if (bs >= 0 && flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n var sym = syms[i];\n if (sym > 255) {\n var len = (sym >> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (sym >> 23) & 31), p += fleb[len];\n var dst = sym & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[sym]), p += ll[sym];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, st) {\n var s = st.z || dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var lst = st.l;\n var pos = (st.r || 0) & 7;\n if (lvl) {\n if (pos)\n w[0] = st.r >> 3;\n var opt = deo[lvl - 1];\n var n = opt >> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new i32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx blkpos\n var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n for (; i + 2 < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j & 32767;\n var pti = prev[ti];\n var cd = ti - pti & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one int32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n for (i = Math.max(i, wi); i < s; ++i) {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n if (!lst) {\n st.r = (pos & 7) | w[(pos / 8) | 0] << 3;\n // shft(pos) now 1 less if pos & 7 != 0\n pos -= 7;\n st.h = head, st.p = prev, st.i = i, st.w = wi;\n }\n }\n else {\n for (var i = st.w || 0; i < s + lst; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[(pos / 8) | 0] = lst;\n e = s;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n st.i = s;\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Adler32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n if (!st) {\n st = { l: 1 };\n if (opt.dictionary) {\n var dict = opt.dictionary.subarray(-32768);\n var newDat = new u8(dict.length + dat.length);\n newDat.set(dict);\n newDat.set(dat, dict.length);\n dat = newDat;\n st.w = dict.length;\n }\n }\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return fnStr;\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n fnStr = wcln(fns[i], fnStr, td_1);\n ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n }\n var td = mrg({}, ch[id].e);\n return wk(ch[id].c + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; };\nvar bDflt = function () { return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zls]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get opts\nvar gopt = function (o) { return o && {\n out: o.size && new u8(o.size),\n dictionary: o.dictionary\n}; };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) {\n if (ev.data.length) {\n strm.push(ev.data[0], ev.data[1]);\n postMessage([ev.data[0].length]);\n }\n else\n strm.flush();\n };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id, flush, ext) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else if (!Array.isArray(dat))\n ext(dat);\n else if (dat.length == 1) {\n strm.queuedSize -= dat[0];\n if (strm.ondrain)\n strm.ondrain(dat[0]);\n }\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.queuedSize = 0;\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n strm.queuedSize += d.length;\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n if (flush) {\n strm.flush = function () { w.postMessage([]); };\n }\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + (o.filename ? o.filename.length + 1 : 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);\n c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;\n if (o.dictionary) {\n var h = adler();\n h.p(o.dictionary);\n wbytes(c, 2, h.d());\n }\n};\n// zlib start\nvar zls = function (d, dict) {\n if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if ((d[1] >> 5 & 1) == +!dict)\n err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');\n return (d[1] >> 3 & 4) + 2;\n};\nfunction StrmOpt(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n this.s = { l: 0, i: 32768, w: 32768, z: 32768 };\n // Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev\n // 98304 = 32768 (lookback) + 65536 (common chunk size)\n this.b = new u8(98304);\n if (this.o.dictionary) {\n var dict = this.o.dictionary.subarray(-32768);\n this.b.set(dict, 32768 - dict.length);\n this.s.i = 32768 - dict.length;\n }\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, this.s), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n var endLen = chunk.length + this.s.z;\n if (endLen > this.b.length) {\n if (endLen > 2 * this.b.length - 32768) {\n var newBuf = new u8(endLen & -32768);\n newBuf.set(this.b.subarray(0, this.s.z));\n this.b = newBuf;\n }\n var split = this.b.length - this.s.z;\n this.b.set(chunk.subarray(0, split), this.s.z);\n this.s.z = this.b.length;\n this.p(this.b, false);\n this.b.set(this.b.subarray(-32768));\n this.b.set(chunk.subarray(split), 32768);\n this.s.z = chunk.length - split + 32768;\n this.s.i = 32766, this.s.w = 32768;\n }\n else {\n this.b.set(chunk, this.s.z);\n this.s.z += chunk.length;\n }\n this.s.l = final & 1;\n if (this.s.z > this.s.w + 8191 || final) {\n this.p(this.b, final || false);\n this.s.w = this.s.i, this.s.i -= 2;\n }\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * deflated output for small inputs.\n */\n Deflate.prototype.flush = function () {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n this.p(this.b, false);\n this.s.w = this.s.i, this.s.i -= 2;\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6, 1);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n function Inflate(opts, cb) {\n // no StrmOpt here to avoid adding to workerizer\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n this.s = { i: 0, b: dict ? dict.length : 0 };\n this.o = new u8(32768);\n this.p = new u8(0);\n if (dict)\n this.o.set(dict);\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n if (!this.p.length)\n this.p = c;\n else if (c.length) {\n var n = new u8(this.p.length + c.length);\n n.set(this.p), n.set(c, this.p.length), this.p = n;\n }\n };\n Inflate.prototype.c = function (final) {\n this.s.i = +(this.d = final || false);\n var bts = this.s.b;\n var dt = inflt(this.p, this.s, this.o);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n function AsyncInflate(opts, cb) {\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Inflate(ev.data);\n onmessage = astrm(strm);\n }, 7, 0);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n this.l += chunk.length;\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * GZIPped output for small inputs.\n */\n Gzip.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8, 1);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming single or multi-member GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n function Gunzip(opts, cb) {\n this.v = 1;\n this.r = 0;\n Inflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n this.r += chunk.length;\n if (this.v) {\n var p = this.p.subarray(this.v - 1);\n var s = p.length > 3 ? gzs(p) : 4;\n if (s > p.length) {\n if (!final)\n return;\n }\n else if (this.v > 1 && this.onmember) {\n this.onmember(this.r - p.length);\n }\n this.p = p.subarray(s), this.v = 0;\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n // process concatenated GZIP\n if (this.s.f && !this.s.l && !final) {\n this.v = shft(this.s.p) + 9;\n this.s = { i: 0 };\n this.o = new u8(0);\n this.push(new u8(0), final);\n }\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming single or multi-member GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n function AsyncGunzip(opts, cb) {\n var _this = this;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gunzip(ev.data);\n strm.onmember = function (offset) { return postMessage(offset); };\n onmessage = astrm(strm);\n }, 9, 0, function (offset) { return _this.onmember && _this.onmember(offset); });\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0], ev.data[1])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, opts) {\n var st = gzs(data);\n if (st + 8 > data.length)\n err(6, 'invalid gzip data');\n return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * zlibbed output for small inputs.\n */\n Zlib.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10, 1);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n function Unzlib(opts, cb) {\n Inflate.call(this, opts, cb);\n this.v = opts && opts.dictionary ? 2 : 1;\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 6 && !final)\n return;\n this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n function AsyncUnzlib(opts, cb) {\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Unzlib(ev.data);\n onmessage = astrm(strm);\n }, 11, 0);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, opts) {\n return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n function Decompress(opts, cb) {\n this.o = StrmOpt.call(this, opts, cb) || {};\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n }\n // init substream\n // overriden by AsyncDecompress\n Decompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (dat, final) {\n _this.ondata(dat, final);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(this.o)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(this.o)\n : new this.Z(this.o);\n this.i();\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n function AsyncDecompress(opts, cb) {\n Decompress.call(this, opts, cb);\n this.queuedSize = 0;\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n }\n AsyncDecompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (err, dat, final) {\n _this.ondata(err, dat, final);\n };\n this.s.ondrain = function (size) {\n _this.queuedSize -= size;\n if (_this.ondrain)\n _this.ondrain(size);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n this.queuedSize += chunk.length;\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, opts) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, opts)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, opts)\n : unzlibSync(data, opts);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return { s: r, r: slc(d, i - 1) };\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (final) {\n if (r.length)\n err(8);\n this.p = null;\n }\n else\n this.p = r;\n this.ondata(s, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td) {\n return td.decode(dat);\n }\n else {\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (r.length)\n err(8);\n return s;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this.ondata(err, dat, final);\n _this.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this.d & 1))\n return;\n _this.u.splice(-1, 1);\n _this.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this = this;\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this.k[0] == chks_3 && _this.c)\n _this.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n // Synchronously decompress under 512KB, or barely-compressed data\n if (su < 524288 || sc > 0.8 * su) {\n try {\n cbl(null, inflateSync(infl, { out: new u8(su) }));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","export var globalObject = (function() {\n return \"undefined\" !== typeof window\n ? window\n : \"undefined\" !== typeof global\n ? global\n : \"undefined\" !== typeof self\n ? self\n : this;\n})();\n","import { globalObject } from \"./globalObject.js\";\n\nfunction consoleLog() {\n if (globalObject.console && typeof globalObject.console.log === \"function\") {\n globalObject.console.log.apply(globalObject.console, arguments);\n }\n}\n\nfunction consoleWarn(str) {\n if (globalObject.console) {\n if (typeof globalObject.console.warn === \"function\") {\n globalObject.console.warn.apply(globalObject.console, arguments);\n } else {\n consoleLog.call(null, arguments);\n }\n }\n}\n\nfunction consoleError(str) {\n if (globalObject.console) {\n if (typeof globalObject.console.error === \"function\") {\n globalObject.console.error.apply(globalObject.console, arguments);\n } else {\n consoleLog(str);\n }\n }\n}\nexport var console = {\n log: consoleLog,\n warn: consoleWarn,\n error: consoleError\n};\n","/**\n * @license\n * FileSaver.js\n * A saveAs() FileSaver implementation.\n *\n * By Eli Grey, http://eligrey.com\n *\n * License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)\n * source : http://purl.eligrey.com/github/FileSaver.js\n */\n\nimport { globalObject as _global } from \"./globalObject.js\";\nimport { console } from \"./console.js\";\n\nfunction bom(blob, opts) {\n if (typeof opts === \"undefined\") opts = { autoBom: false };\n else if (typeof opts !== \"object\") {\n console.warn(\"Deprecated: Expected third argument to be a object\");\n opts = { autoBom: !opts };\n }\n\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (\n opts.autoBom &&\n /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(\n blob.type\n )\n ) {\n return new Blob([String.fromCharCode(0xfeff), blob], { type: blob.type });\n }\n return blob;\n}\n\nfunction download(url, name, opts) {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url);\n xhr.responseType = \"blob\";\n xhr.onload = function() {\n saveAs(xhr.response, name, opts);\n };\n xhr.onerror = function() {\n console.error(\"could not download file\");\n };\n xhr.send();\n}\n\nfunction corsEnabled(url) {\n var xhr = new XMLHttpRequest();\n // use sync to avoid popup blocker\n xhr.open(\"HEAD\", url, false);\n try {\n xhr.send();\n } catch (e) {}\n return xhr.status >= 200 && xhr.status <= 299;\n}\n\n// `a.click()` doesn't work for all browsers (#465)\nfunction click(node) {\n try {\n node.dispatchEvent(new MouseEvent(\"click\"));\n } catch (e) {\n var evt = document.createEvent(\"MouseEvents\");\n evt.initMouseEvent(\n \"click\",\n true,\n true,\n window,\n 0,\n 0,\n 0,\n 80,\n 20,\n false,\n false,\n false,\n false,\n 0,\n null\n );\n node.dispatchEvent(evt);\n }\n}\n\nvar saveAs =\n _global.saveAs ||\n // probably in some web worker\n (typeof window !== \"object\" || window !== _global\n ? function saveAs() {\n /* noop */\n }\n : // Use download attribute first if possible (#193 Lumia mobile) unless this is a native app\n typeof HTMLAnchorElement !== \"undefined\" &&\n \"download\" in HTMLAnchorElement.prototype\n ? function saveAs(blob, name, opts) {\n var URL = _global.URL || _global.webkitURL;\n var a = document.createElement(\"a\");\n name = name || blob.name || \"download\";\n\n a.download = name;\n a.rel = \"noopener\"; // tabnabbing\n\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n\n if (typeof blob === \"string\") {\n // Support regular links\n a.href = blob;\n if (a.origin !== location.origin) {\n corsEnabled(a.href)\n ? download(blob, name, opts)\n : click(a, (a.target = \"_blank\"));\n } else {\n click(a);\n }\n } else {\n // Support blobs\n a.href = URL.createObjectURL(blob);\n setTimeout(function() {\n URL.revokeObjectURL(a.href);\n }, 4e4); // 40s\n setTimeout(function() {\n click(a);\n }, 0);\n }\n }\n : // Use msSaveOrOpenBlob as a second approach\n \"msSaveOrOpenBlob\" in navigator\n ? function saveAs(blob, name, opts) {\n name = name || blob.name || \"download\";\n\n if (typeof blob === \"string\") {\n if (corsEnabled(blob)) {\n download(blob, name, opts);\n } else {\n var a = document.createElement(\"a\");\n a.href = blob;\n a.target = \"_blank\";\n setTimeout(function() {\n click(a);\n });\n }\n } else {\n navigator.msSaveOrOpenBlob(bom(blob, opts), name);\n }\n }\n : // Fallback to using FileReader and a popup\n function saveAs(blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open(\"\", \"_blank\");\n if (popup) {\n popup.document.title = popup.document.body.innerText =\n \"downloading...\";\n }\n\n if (typeof blob === \"string\") return download(blob, name, opts);\n\n var force = blob.type === \"application/octet-stream\";\n var isSafari =\n /constructor/i.test(_global.HTMLElement) || _global.safari;\n var isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent);\n\n if (\n (isChromeIOS || (force && isSafari)) &&\n typeof FileReader === \"object\"\n ) {\n // Safari doesn't allow downloading of blob URLs\n var reader = new FileReader();\n reader.onloadend = function() {\n var url = reader.result;\n url = isChromeIOS\n ? url\n : url.replace(/^data:[^;]*;/, \"data:attachment/file;\");\n if (popup) popup.location.href = url;\n else location = url;\n popup = null; // reverse-tabnabbing #460\n };\n reader.readAsDataURL(blob);\n } else {\n var URL = _global.URL || _global.webkitURL;\n var url = URL.createObjectURL(blob);\n if (popup) popup.location = url;\n else location.href = url;\n popup = null; // reverse-tabnabbing #460\n setTimeout(function() {\n URL.revokeObjectURL(url);\n }, 4e4); // 40s\n }\n });\n\nexport { saveAs };\n","import { globalObject } from \"./globalObject.js\";\n\nvar atob, btoa;\n\n(function() {\n atob = globalObject.atob.bind(globalObject);\n btoa = globalObject.btoa.bind(globalObject);\n return;\n\n})();\n\nexport { atob, btoa };\n","/**\n * A class to parse color values\n * @author Stoyan Stefanov \n * {@link http://www.phpied.com/rgb-color-parser-in-javascript/}\n * @license Use it if you like it\n */\n\nfunction RGBColor(color_string) {\n color_string = color_string || \"\";\n this.ok = false;\n\n // strip any leading #\n if (color_string.charAt(0) == \"#\") {\n // remove # if any\n color_string = color_string.substr(1, 6);\n }\n\n color_string = color_string.replace(/ /g, \"\");\n color_string = color_string.toLowerCase();\n\n var channels;\n\n // before getting into regexps, try simple matches\n // and overwrite the input\n var simple_colors = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"00ffff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000000\",\n blanchedalmond: \"ffebcd\",\n blue: \"0000ff\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"00ffff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dodgerblue: \"1e90ff\",\n feldspar: \"d19275\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"ff00ff\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgrey: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslateblue: \"8470ff\",\n lightslategray: \"778899\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"00ff00\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"ff00ff\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370d8\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"d87093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n red: \"ff0000\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n violetred: \"d02090\",\n wheat: \"f5deb3\",\n white: \"ffffff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ffff00\",\n yellowgreen: \"9acd32\"\n };\n color_string = simple_colors[color_string] || color_string;\n\n // array of color definition objects\n var color_defs = [\n {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n example: [\"rgb(123, 234, 45)\", \"rgb(255,234,245)\"],\n process: function(bits) {\n return [parseInt(bits[1]), parseInt(bits[2]), parseInt(bits[3])];\n }\n },\n {\n re: /^(\\w{2})(\\w{2})(\\w{2})$/,\n example: [\"#00ff00\", \"336699\"],\n process: function(bits) {\n return [\n parseInt(bits[1], 16),\n parseInt(bits[2], 16),\n parseInt(bits[3], 16)\n ];\n }\n },\n {\n re: /^(\\w{1})(\\w{1})(\\w{1})$/,\n example: [\"#fb0\", \"f0f\"],\n process: function(bits) {\n return [\n parseInt(bits[1] + bits[1], 16),\n parseInt(bits[2] + bits[2], 16),\n parseInt(bits[3] + bits[3], 16)\n ];\n }\n }\n ];\n\n // search through the definitions to find a match\n for (var i = 0; i < color_defs.length; i++) {\n var re = color_defs[i].re;\n var processor = color_defs[i].process;\n var bits = re.exec(color_string);\n if (bits) {\n channels = processor(bits);\n this.r = channels[0];\n this.g = channels[1];\n this.b = channels[2];\n this.ok = true;\n }\n }\n\n // validate/cleanup values\n this.r = this.r < 0 || isNaN(this.r) ? 0 : this.r > 255 ? 255 : this.r;\n this.g = this.g < 0 || isNaN(this.g) ? 0 : this.g > 255 ? 255 : this.g;\n this.b = this.b < 0 || isNaN(this.b) ? 0 : this.b > 255 ? 255 : this.b;\n\n // some getters\n this.toRGB = function() {\n return \"rgb(\" + this.r + \", \" + this.g + \", \" + this.b + \")\";\n };\n this.toHex = function() {\n var r = this.r.toString(16);\n var g = this.g.toString(16);\n var b = this.b.toString(16);\n if (r.length == 1) r = \"0\" + r;\n if (g.length == 1) g = \"0\" + g;\n if (b.length == 1) b = \"0\" + b;\n return \"#\" + r + g + b;\n };\n}\n\nexport { RGBColor };\n","/**\n * @license\n * Joseph Myers does not specify a particular license for his work.\n *\n * Author: Joseph Myers\n * Accessed from: http://www.myersdaily.org/joseph/javascript/md5.js\n *\n * Modified by: Owen Leong\n */\n\nfunction md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n\n a = ff(a, b, c, d, k[0], 7, -680876936);\n d = ff(d, a, b, c, k[1], 12, -389564586);\n c = ff(c, d, a, b, k[2], 17, 606105819);\n b = ff(b, c, d, a, k[3], 22, -1044525330);\n a = ff(a, b, c, d, k[4], 7, -176418897);\n d = ff(d, a, b, c, k[5], 12, 1200080426);\n c = ff(c, d, a, b, k[6], 17, -1473231341);\n b = ff(b, c, d, a, k[7], 22, -45705983);\n a = ff(a, b, c, d, k[8], 7, 1770035416);\n d = ff(d, a, b, c, k[9], 12, -1958414417);\n c = ff(c, d, a, b, k[10], 17, -42063);\n b = ff(b, c, d, a, k[11], 22, -1990404162);\n a = ff(a, b, c, d, k[12], 7, 1804603682);\n d = ff(d, a, b, c, k[13], 12, -40341101);\n c = ff(c, d, a, b, k[14], 17, -1502002290);\n b = ff(b, c, d, a, k[15], 22, 1236535329);\n\n a = gg(a, b, c, d, k[1], 5, -165796510);\n d = gg(d, a, b, c, k[6], 9, -1069501632);\n c = gg(c, d, a, b, k[11], 14, 643717713);\n b = gg(b, c, d, a, k[0], 20, -373897302);\n a = gg(a, b, c, d, k[5], 5, -701558691);\n d = gg(d, a, b, c, k[10], 9, 38016083);\n c = gg(c, d, a, b, k[15], 14, -660478335);\n b = gg(b, c, d, a, k[4], 20, -405537848);\n a = gg(a, b, c, d, k[9], 5, 568446438);\n d = gg(d, a, b, c, k[14], 9, -1019803690);\n c = gg(c, d, a, b, k[3], 14, -187363961);\n b = gg(b, c, d, a, k[8], 20, 1163531501);\n a = gg(a, b, c, d, k[13], 5, -1444681467);\n d = gg(d, a, b, c, k[2], 9, -51403784);\n c = gg(c, d, a, b, k[7], 14, 1735328473);\n b = gg(b, c, d, a, k[12], 20, -1926607734);\n\n a = hh(a, b, c, d, k[5], 4, -378558);\n d = hh(d, a, b, c, k[8], 11, -2022574463);\n c = hh(c, d, a, b, k[11], 16, 1839030562);\n b = hh(b, c, d, a, k[14], 23, -35309556);\n a = hh(a, b, c, d, k[1], 4, -1530992060);\n d = hh(d, a, b, c, k[4], 11, 1272893353);\n c = hh(c, d, a, b, k[7], 16, -155497632);\n b = hh(b, c, d, a, k[10], 23, -1094730640);\n a = hh(a, b, c, d, k[13], 4, 681279174);\n d = hh(d, a, b, c, k[0], 11, -358537222);\n c = hh(c, d, a, b, k[3], 16, -722521979);\n b = hh(b, c, d, a, k[6], 23, 76029189);\n a = hh(a, b, c, d, k[9], 4, -640364487);\n d = hh(d, a, b, c, k[12], 11, -421815835);\n c = hh(c, d, a, b, k[15], 16, 530742520);\n b = hh(b, c, d, a, k[2], 23, -995338651);\n\n a = ii(a, b, c, d, k[0], 6, -198630844);\n d = ii(d, a, b, c, k[7], 10, 1126891415);\n c = ii(c, d, a, b, k[14], 15, -1416354905);\n b = ii(b, c, d, a, k[5], 21, -57434055);\n a = ii(a, b, c, d, k[12], 6, 1700485571);\n d = ii(d, a, b, c, k[3], 10, -1894986606);\n c = ii(c, d, a, b, k[10], 15, -1051523);\n b = ii(b, c, d, a, k[1], 21, -2054922799);\n a = ii(a, b, c, d, k[8], 6, 1873313359);\n d = ii(d, a, b, c, k[15], 10, -30611744);\n c = ii(c, d, a, b, k[6], 15, -1560198380);\n b = ii(b, c, d, a, k[13], 21, 1309151649);\n a = ii(a, b, c, d, k[4], 6, -145523070);\n d = ii(d, a, b, c, k[11], 10, -1120210379);\n c = ii(c, d, a, b, k[2], 15, 718787259);\n b = ii(b, c, d, a, k[9], 21, -343485551);\n\n x[0] = add32(a, x[0]);\n x[1] = add32(b, x[1]);\n x[2] = add32(c, x[2]);\n x[3] = add32(d, x[3]);\n}\n\nfunction cmn(q, a, b, x, s, t) {\n a = add32(add32(a, q), add32(x, t));\n return add32((a << s) | (a >>> (32 - s)), b);\n}\n\nfunction ff(a, b, c, d, x, s, t) {\n return cmn((b & c) | (~b & d), a, b, x, s, t);\n}\n\nfunction gg(a, b, c, d, x, s, t) {\n return cmn((b & d) | (c & ~d), a, b, x, s, t);\n}\n\nfunction hh(a, b, c, d, x, s, t) {\n return cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction ii(a, b, c, d, x, s, t) {\n return cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nfunction md51(s) {\n // txt = '';\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i;\n for (i = 64; i <= s.length; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n var tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < s.length; i++)\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n tail[i >> 2] |= 0x80 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i++) tail[i] = 0;\n }\n tail[14] = n * 8;\n md5cycle(state, tail);\n return state;\n}\n\n/* there needs to be support for Unicode here,\n * unless we pretend that we can redefine the MD-5\n * algorithm for multi-byte characters (perhaps\n * by adding every four 16-bit characters and\n * shortening the sum to 32 bits). Otherwise\n * I suggest performing MD-5 as if every character\n * was two bytes--e.g., 0040 0025 = @%--but then\n * how will an ordinary MD-5 sum be matched?\n * There is no way to standardize text to something\n * like UTF-8 before transformation; speed cost is\n * utterly prohibitive. The JavaScript standard\n * itself needs to look at this: it should start\n * providing access to strings as preformed UTF-8\n * 8-bit unsigned value arrays.\n */\nfunction md5blk(s) {\n /* I figured global was faster. */\n var md5blks = [],\n i; /* Andy King said do it this way. */\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] =\n s.charCodeAt(i) +\n (s.charCodeAt(i + 1) << 8) +\n (s.charCodeAt(i + 2) << 16) +\n (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n}\n\nvar hex_chr = \"0123456789abcdef\".split(\"\");\n\nfunction rhex(n) {\n var s = \"\",\n j = 0;\n for (; j < 4; j++)\n s += hex_chr[(n >> (j * 8 + 4)) & 0x0f] + hex_chr[(n >> (j * 8)) & 0x0f];\n return s;\n}\n\nfunction hex(x) {\n for (var i = 0; i < x.length; i++) x[i] = rhex(x[i]);\n return x.join(\"\");\n}\n\n// Converts a 4-byte number to byte string\nfunction singleToByteString(n) {\n return String.fromCharCode(\n (n & 0xff) >> 0,\n (n & 0xff00) >> 8,\n (n & 0xff0000) >> 16,\n (n & 0xff000000) >> 24\n );\n}\n\n// Converts an array of numbers to a byte string\nfunction toByteString(x) {\n return x.map(singleToByteString).join(\"\");\n}\n\n// Returns the MD5 hash as a byte string\nfunction md5Bin(s) {\n return toByteString(md51(s));\n}\n\n// Returns MD5 hash as a hex string\nfunction md5(s) {\n return hex(md51(s));\n}\n\nvar md5Check = md5(\"hello\") != \"5d41402abc4b2a76b9719d911017c592\";\n\nfunction add32(a, b) {\n if (md5Check) {\n /* if the md5Check does not match\n the expected value, we're dealing\n with an old browser and need\n this function. */\n var lsw = (a & 0xffff) + (b & 0xffff),\n msw = (a >> 16) + (b >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xffff);\n } else {\n /* this function is much faster,\n so if possible we use it. Some IEs\n are the only ones I know of that\n need the idiotic second function,\n generated by an if clause. */\n return (a + b) & 0xffffffff;\n }\n}\n\nexport { md5, md5Bin };\n","/**\r\n * @license\r\n * FPDF is released under a permissive license: there is no usage restriction.\r\n * You may embed it freely in your application (commercial or not), with or\r\n * without modifications.\r\n *\r\n * Reference: http://www.fpdf.org/en/script/script37.php\r\n */\r\n\r\nfunction repeat(str, num) {\r\n return new Array(num + 1).join(str);\r\n}\r\n\r\n/**\r\n * Converts a byte string to a hex string\r\n *\r\n * @name rc4\r\n * @function\r\n * @param {string} key Byte string of encryption key\r\n * @param {string} data Byte string of data to be encrypted\r\n * @returns {string} Encrypted string\r\n */\r\nfunction rc4(key, data) {\r\n var lastKey, lastState;\r\n if (key !== lastKey) {\r\n var k = repeat(key, ((256 / key.length) >> 0) + 1);\r\n var state = [];\r\n for (var i = 0; i < 256; i++) {\r\n state[i] = i;\r\n }\r\n var j = 0;\r\n for (var i = 0; i < 256; i++) {\r\n var t = state[i];\r\n j = (j + t + k.charCodeAt(i)) % 256;\r\n state[i] = state[j];\r\n state[j] = t;\r\n }\r\n lastKey = key;\r\n lastState = state;\r\n } else {\r\n state = lastState;\r\n }\r\n var length = data.length;\r\n var a = 0;\r\n var b = 0;\r\n var out = \"\";\r\n for (var i = 0; i < length; i++) {\r\n a = (a + 1) % 256;\r\n t = state[a];\r\n b = (b + t) % 256;\r\n state[a] = state[b];\r\n state[b] = t;\r\n k = state[(state[a] + state[b]) % 256];\r\n out += String.fromCharCode(data.charCodeAt(i) ^ k);\r\n }\r\n return out;\r\n}\r\n\r\nexport { rc4 };\r\n","/**\r\n * @license\r\n * Licensed under the MIT License.\r\n * http://opensource.org/licenses/mit-license\r\n * Author: Owen Leong (@owenl131)\r\n * Date: 15 Oct 2020\r\n * References:\r\n * https://www.cs.cmu.edu/~dst/Adobe/Gallery/anon21jul01-pdf-encryption.txt\r\n * https://github.com/foliojs/pdfkit/blob/master/lib/security.js\r\n * http://www.fpdf.org/en/script/script37.php\r\n */\r\n\r\nimport { md5Bin } from \"./md5.js\";\r\nimport { rc4 } from \"./rc4.js\";\r\n\r\nvar permissionOptions = {\r\n print: 4,\r\n modify: 8,\r\n copy: 16,\r\n \"annot-forms\": 32\r\n};\r\n\r\n/**\r\n * Initializes encryption settings\r\n *\r\n * @name constructor\r\n * @function\r\n * @param {Array} permissions Permissions allowed for user, \"print\", \"modify\", \"copy\" and \"annot-forms\".\r\n * @param {String} userPassword Permissions apply to this user. Leaving this empty means the document\r\n * is not password protected but viewer has the above permissions.\r\n * @param {String} ownerPassword Owner has full functionalities to the file.\r\n * @param {String} fileId As hex string, should be same as the file ID in the trailer.\r\n * @example\r\n * var security = new PDFSecurity([\"print\"])\r\n */\r\nfunction PDFSecurity(permissions, userPassword, ownerPassword, fileId) {\r\n this.v = 1; // algorithm 1, future work can add in more recent encryption schemes\r\n this.r = 2; // revision 2\r\n\r\n // set flags for what functionalities the user can access\r\n let protection = 192;\r\n permissions.forEach(function(perm) {\r\n if (typeof permissionOptions.perm !== \"undefined\") {\r\n throw new Error(\"Invalid permission: \" + perm);\r\n }\r\n protection += permissionOptions[perm];\r\n });\r\n\r\n // padding is used to pad the passwords to 32 bytes, also is hashed and stored in the final PDF\r\n this.padding =\r\n \"\\x28\\xBF\\x4E\\x5E\\x4E\\x75\\x8A\\x41\\x64\\x00\\x4E\\x56\\xFF\\xFA\\x01\\x08\" +\r\n \"\\x2E\\x2E\\x00\\xB6\\xD0\\x68\\x3E\\x80\\x2F\\x0C\\xA9\\xFE\\x64\\x53\\x69\\x7A\";\r\n let paddedUserPassword = (userPassword + this.padding).substr(0, 32);\r\n let paddedOwnerPassword = (ownerPassword + this.padding).substr(0, 32);\r\n\r\n this.O = this.processOwnerPassword(paddedUserPassword, paddedOwnerPassword);\r\n this.P = -((protection ^ 255) + 1);\r\n this.encryptionKey = md5Bin(\r\n paddedUserPassword +\r\n this.O +\r\n this.lsbFirstWord(this.P) +\r\n this.hexToBytes(fileId)\r\n ).substr(0, 5);\r\n this.U = rc4(this.encryptionKey, this.padding);\r\n}\r\n\r\n/**\r\n * Breaks down a 4-byte number into its individual bytes, with the least significant bit first\r\n *\r\n * @name lsbFirstWord\r\n * @function\r\n * @param {number} data 32-bit number\r\n * @returns {Array}\r\n */\r\nPDFSecurity.prototype.lsbFirstWord = function(data) {\r\n return String.fromCharCode(\r\n (data >> 0) & 0xff,\r\n (data >> 8) & 0xff,\r\n (data >> 16) & 0xff,\r\n (data >> 24) & 0xff\r\n );\r\n};\r\n\r\n/**\r\n * Converts a byte string to a hex string\r\n *\r\n * @name toHexString\r\n * @function\r\n * @param {String} byteString Byte string\r\n * @returns {String}\r\n */\r\nPDFSecurity.prototype.toHexString = function(byteString) {\r\n return byteString\r\n .split(\"\")\r\n .map(function(byte) {\r\n return (\"0\" + (byte.charCodeAt(0) & 0xff).toString(16)).slice(-2);\r\n })\r\n .join(\"\");\r\n};\r\n\r\n/**\r\n * Converts a hex string to a byte string\r\n *\r\n * @name hexToBytes\r\n * @function\r\n * @param {String} hex Hex string\r\n * @returns {String}\r\n */\r\nPDFSecurity.prototype.hexToBytes = function(hex) {\r\n for (var bytes = [], c = 0; c < hex.length; c += 2)\r\n bytes.push(String.fromCharCode(parseInt(hex.substr(c, 2), 16)));\r\n return bytes.join(\"\");\r\n};\r\n\r\n/**\r\n * Computes the 'O' field in the encryption dictionary\r\n *\r\n * @name processOwnerPassword\r\n * @function\r\n * @param {String} paddedUserPassword Byte string of padded user password\r\n * @param {String} paddedOwnerPassword Byte string of padded owner password\r\n * @returns {String}\r\n */\r\nPDFSecurity.prototype.processOwnerPassword = function(\r\n paddedUserPassword,\r\n paddedOwnerPassword\r\n) {\r\n let key = md5Bin(paddedOwnerPassword).substr(0, 5);\r\n return rc4(key, paddedUserPassword);\r\n};\r\n\r\n/**\r\n * Returns an encryptor function which can take in a byte string and returns the encrypted version\r\n *\r\n * @name encryptor\r\n * @function\r\n * @param {number} objectId\r\n * @param {number} generation Not sure what this is for, you can set it to 0\r\n * @returns {Function}\r\n * @example\r\n * out(\"stream\");\r\n * encryptor = security.encryptor(object.id, 0);\r\n * out(encryptor(data));\r\n * out(\"endstream\");\r\n */\r\nPDFSecurity.prototype.encryptor = function(objectId, generation) {\r\n let key = md5Bin(\r\n this.encryptionKey +\r\n String.fromCharCode(\r\n objectId & 0xff,\r\n (objectId >> 8) & 0xff,\r\n (objectId >> 16) & 0xff,\r\n generation & 0xff,\r\n (generation >> 8) & 0xff\r\n )\r\n ).substr(0, 10);\r\n return function(data) {\r\n return rc4(key, data);\r\n };\r\n};\r\n\r\nexport { PDFSecurity };\r\n","/**\n * Convert string to `PDF Name Object`.\n * Detail: PDF Reference 1.3 - Chapter 3.2.4 Name Object\n * @param str\n */\nfunction toPDFName(str) {\n // eslint-disable-next-line no-control-regex\n if (/[^\\u0000-\\u00ff]/.test(str)) {\n // non ascii string\n throw new Error(\n \"Invalid PDF Name Object: \" + str + \", Only accept ASCII characters.\"\n );\n }\n var result = \"\",\n strLength = str.length;\n for (var i = 0; i < strLength; i++) {\n var charCode = str.charCodeAt(i);\n if (\n charCode < 0x21 ||\n charCode === 0x23 /* # */ ||\n charCode === 0x25 /* % */ ||\n charCode === 0x28 /* ( */ ||\n charCode === 0x29 /* ) */ ||\n charCode === 0x2f /* / */ ||\n charCode === 0x3c /* < */ ||\n charCode === 0x3e /* > */ ||\n charCode === 0x5b /* [ */ ||\n charCode === 0x5d /* ] */ ||\n charCode === 0x7b /* { */ ||\n charCode === 0x7d /* } */ ||\n charCode > 0x7e\n ) {\n // Char CharCode hexStr paddingHexStr Result\n // \"\\t\" 9 9 09 #09\n // \" \" 32 20 20 #20\n // \"©\" 169 a9 a9 #a9\n var hexStr = charCode.toString(16),\n paddingHexStr = (\"0\" + hexStr).slice(-2);\n\n result += \"#\" + paddingHexStr;\n } else {\n // Other ASCII printable characters between 0x21 <= X <= 0x7e\n result += str[i];\n }\n }\n return result;\n}\n\nexport { toPDFName };\n","/* eslint-disable no-console */\r\n\r\nimport { saveAs } from \"./libs/FileSaver.js\";\r\nimport { globalObject } from \"./libs/globalObject.js\";\r\nimport { RGBColor } from \"./libs/rgbcolor.js\";\r\nimport { btoa } from \"./libs/AtobBtoa.js\";\r\nimport { console } from \"./libs/console.js\";\r\nimport { PDFSecurity } from \"./libs/pdfsecurity.js\";\r\nimport { toPDFName } from \"./libs/pdfname.js\";\r\n/**\r\n * jsPDF's Internal PubSub Implementation.\r\n * Backward compatible rewritten on 2014 by\r\n * Diego Casorran, https://github.com/diegocr\r\n *\r\n * @class\r\n * @name PubSub\r\n * @ignore\r\n */\r\nfunction PubSub(context) {\r\n if (typeof context !== \"object\") {\r\n throw new Error(\r\n \"Invalid Context passed to initialize PubSub (jsPDF-module)\"\r\n );\r\n }\r\n var topics = {};\r\n\r\n this.subscribe = function(topic, callback, once) {\r\n once = once || false;\r\n if (\r\n typeof topic !== \"string\" ||\r\n typeof callback !== \"function\" ||\r\n typeof once !== \"boolean\"\r\n ) {\r\n throw new Error(\r\n \"Invalid arguments passed to PubSub.subscribe (jsPDF-module)\"\r\n );\r\n }\r\n\r\n if (!topics.hasOwnProperty(topic)) {\r\n topics[topic] = {};\r\n }\r\n\r\n var token = Math.random().toString(35);\r\n topics[topic][token] = [callback, !!once];\r\n\r\n return token;\r\n };\r\n\r\n this.unsubscribe = function(token) {\r\n for (var topic in topics) {\r\n if (topics[topic][token]) {\r\n delete topics[topic][token];\r\n if (Object.keys(topics[topic]).length === 0) {\r\n delete topics[topic];\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n this.publish = function(topic) {\r\n if (topics.hasOwnProperty(topic)) {\r\n var args = Array.prototype.slice.call(arguments, 1),\r\n tokens = [];\r\n\r\n for (var token in topics[topic]) {\r\n var sub = topics[topic][token];\r\n try {\r\n sub[0].apply(context, args);\r\n } catch (ex) {\r\n if (globalObject.console) {\r\n console.error(\"jsPDF PubSub Error\", ex.message, ex);\r\n }\r\n }\r\n if (sub[1]) tokens.push(token);\r\n }\r\n if (tokens.length) tokens.forEach(this.unsubscribe);\r\n }\r\n };\r\n\r\n this.getTopics = function() {\r\n return topics;\r\n };\r\n}\r\n\r\nfunction GState(parameters) {\r\n if (!(this instanceof GState)) {\r\n return new GState(parameters);\r\n }\r\n\r\n /**\r\n * @name GState#opacity\r\n * @type {any}\r\n */\r\n /**\r\n * @name GState#stroke-opacity\r\n * @type {any}\r\n */\r\n var supported = \"opacity,stroke-opacity\".split(\",\");\r\n for (var p in parameters) {\r\n if (parameters.hasOwnProperty(p) && supported.indexOf(p) >= 0) {\r\n this[p] = parameters[p];\r\n }\r\n }\r\n /**\r\n * @name GState#id\r\n * @type {string}\r\n */\r\n this.id = \"\"; // set by addGState()\r\n /**\r\n * @name GState#objectNumber\r\n * @type {number}\r\n */\r\n this.objectNumber = -1; // will be set by putGState()\r\n}\r\n\r\nGState.prototype.equals = function equals(other) {\r\n var ignore = \"id,objectNumber,equals\";\r\n var p;\r\n if (!other || typeof other !== typeof this) return false;\r\n var count = 0;\r\n for (p in this) {\r\n if (ignore.indexOf(p) >= 0) continue;\r\n if (this.hasOwnProperty(p) && !other.hasOwnProperty(p)) return false;\r\n if (this[p] !== other[p]) return false;\r\n count++;\r\n }\r\n for (p in other) {\r\n if (other.hasOwnProperty(p) && ignore.indexOf(p) < 0) count--;\r\n }\r\n return count === 0;\r\n};\r\n\r\nfunction Pattern(gState, matrix) {\r\n this.gState = gState;\r\n this.matrix = matrix;\r\n\r\n this.id = \"\"; // set by addPattern()\r\n this.objectNumber = -1; // will be set by putPattern()\r\n}\r\n\r\nfunction ShadingPattern(type, coords, colors, gState, matrix) {\r\n if (!(this instanceof ShadingPattern)) {\r\n return new ShadingPattern(type, coords, colors, gState, matrix);\r\n }\r\n\r\n // see putPattern() for information how they are realized\r\n this.type = type === \"axial\" ? 2 : 3;\r\n this.coords = coords;\r\n this.colors = colors;\r\n\r\n Pattern.call(this, gState, matrix);\r\n}\r\n\r\nfunction TilingPattern(boundingBox, xStep, yStep, gState, matrix) {\r\n if (!(this instanceof TilingPattern)) {\r\n return new TilingPattern(boundingBox, xStep, yStep, gState, matrix);\r\n }\r\n\r\n this.boundingBox = boundingBox;\r\n this.xStep = xStep;\r\n this.yStep = yStep;\r\n\r\n this.stream = \"\"; // set by endTilingPattern();\r\n\r\n this.cloneIndex = 0;\r\n\r\n Pattern.call(this, gState, matrix);\r\n}\r\n\r\n/**\r\n * Creates new jsPDF document object instance.\r\n * @name jsPDF\r\n * @class\r\n * @param {Object} [options] - Collection of settings initializing the jsPDF-instance\r\n * @param {string} [options.orientation=portrait] - Orientation of the first page. Possible values are \"portrait\" or \"landscape\" (or shortcuts \"p\" or \"l\").
\r\n * @param {string} [options.unit=mm] Measurement unit (base unit) to be used when coordinates are specified.
\r\n * Possible values are \"pt\" (points), \"mm\", \"cm\", \"in\", \"px\", \"pc\", \"em\" or \"ex\". Note that in order to get the correct scaling for \"px\"\r\n * units, you need to enable the hotfix \"px_scaling\" by setting options.hotfixes = [\"px_scaling\"].\r\n * @param {string/Array} [options.format=a4] The format of the first page. Can be:
  • a0 - a10
  • b0 - b10
  • c0 - c10
  • dl
  • letter
  • government-letter
  • legal
  • junior-legal
  • ledger
  • tabloid
  • credit-card

\r\n * Default is \"a4\". If you want to use your own format just pass instead of one of the above predefined formats the size as an number-array, e.g. [595.28, 841.89]\r\n * @param {boolean} [options.putOnlyUsedFonts=false] Only put fonts into the PDF, which were used.\r\n * @param {boolean} [options.compress=false] Compress the generated PDF.\r\n * @param {number} [options.precision=16] Precision of the element-positions.\r\n * @param {number} [options.userUnit=1.0] Not to be confused with the base unit. Please inform yourself before you use it.\r\n * @param {string[]} [options.hotfixes] An array of strings to enable hotfixes such as correct pixel scaling.\r\n * @param {Object} [options.encryption]\r\n * @param {string} [options.encryption.userPassword] Password for the user bound by the given permissions list.\r\n * @param {string} [options.encryption.ownerPassword] Both userPassword and ownerPassword should be set for proper authentication.\r\n * @param {string[]} [options.encryption.userPermissions] Array of permissions \"print\", \"modify\", \"copy\", \"annot-forms\", accessible by the user.\r\n * @param {number|\"smart\"} [options.floatPrecision=16]\r\n * @returns {jsPDF} jsPDF-instance\r\n * @description\r\n * ```\r\n * {\r\n * orientation: 'p',\r\n * unit: 'mm',\r\n * format: 'a4',\r\n * putOnlyUsedFonts:true,\r\n * floatPrecision: 16 // or \"smart\", default is 16\r\n * }\r\n * ```\r\n *\r\n * @constructor\r\n */\r\nfunction jsPDF(options) {\r\n var orientation = typeof arguments[0] === \"string\" ? arguments[0] : \"p\";\r\n var unit = arguments[1];\r\n var format = arguments[2];\r\n var compressPdf = arguments[3];\r\n var filters = [];\r\n var userUnit = 1.0;\r\n var precision;\r\n var floatPrecision = 16;\r\n var defaultPathOperation = \"S\";\r\n var encryptionOptions = null;\r\n\r\n options = options || {};\r\n\r\n if (typeof options === \"object\") {\r\n orientation = options.orientation;\r\n unit = options.unit || unit;\r\n format = options.format || format;\r\n compressPdf = options.compress || options.compressPdf || compressPdf;\r\n encryptionOptions = options.encryption || null;\r\n if (encryptionOptions !== null) {\r\n encryptionOptions.userPassword = encryptionOptions.userPassword || \"\";\r\n encryptionOptions.ownerPassword = encryptionOptions.ownerPassword || \"\";\r\n encryptionOptions.userPermissions =\r\n encryptionOptions.userPermissions || [];\r\n }\r\n userUnit =\r\n typeof options.userUnit === \"number\" ? Math.abs(options.userUnit) : 1.0;\r\n if (typeof options.precision !== \"undefined\") {\r\n precision = options.precision;\r\n }\r\n if (typeof options.floatPrecision !== \"undefined\") {\r\n floatPrecision = options.floatPrecision;\r\n }\r\n defaultPathOperation = options.defaultPathOperation || \"S\";\r\n }\r\n\r\n filters =\r\n options.filters || (compressPdf === true ? [\"FlateEncode\"] : filters);\r\n\r\n unit = unit || \"mm\";\r\n orientation = (\"\" + (orientation || \"P\")).toLowerCase();\r\n var putOnlyUsedFonts = options.putOnlyUsedFonts || false;\r\n var usedFonts = {};\r\n\r\n var API = {\r\n internal: {},\r\n __private__: {}\r\n };\r\n\r\n API.__private__.PubSub = PubSub;\r\n\r\n var pdfVersion = \"1.3\";\r\n var getPdfVersion = (API.__private__.getPdfVersion = function() {\r\n return pdfVersion;\r\n });\r\n\r\n API.__private__.setPdfVersion = function(value) {\r\n pdfVersion = value;\r\n };\r\n\r\n // Size in pt of various paper formats\r\n var pageFormats = {\r\n a0: [2383.94, 3370.39],\r\n a1: [1683.78, 2383.94],\r\n a2: [1190.55, 1683.78],\r\n a3: [841.89, 1190.55],\r\n a4: [595.28, 841.89],\r\n a5: [419.53, 595.28],\r\n a6: [297.64, 419.53],\r\n a7: [209.76, 297.64],\r\n a8: [147.4, 209.76],\r\n a9: [104.88, 147.4],\r\n a10: [73.7, 104.88],\r\n b0: [2834.65, 4008.19],\r\n b1: [2004.09, 2834.65],\r\n b2: [1417.32, 2004.09],\r\n b3: [1000.63, 1417.32],\r\n b4: [708.66, 1000.63],\r\n b5: [498.9, 708.66],\r\n b6: [354.33, 498.9],\r\n b7: [249.45, 354.33],\r\n b8: [175.75, 249.45],\r\n b9: [124.72, 175.75],\r\n b10: [87.87, 124.72],\r\n c0: [2599.37, 3676.54],\r\n c1: [1836.85, 2599.37],\r\n c2: [1298.27, 1836.85],\r\n c3: [918.43, 1298.27],\r\n c4: [649.13, 918.43],\r\n c5: [459.21, 649.13],\r\n c6: [323.15, 459.21],\r\n c7: [229.61, 323.15],\r\n c8: [161.57, 229.61],\r\n c9: [113.39, 161.57],\r\n c10: [79.37, 113.39],\r\n dl: [311.81, 623.62],\r\n letter: [612, 792],\r\n \"government-letter\": [576, 756],\r\n legal: [612, 1008],\r\n \"junior-legal\": [576, 360],\r\n ledger: [1224, 792],\r\n tabloid: [792, 1224],\r\n \"credit-card\": [153, 243]\r\n };\r\n\r\n API.__private__.getPageFormats = function() {\r\n return pageFormats;\r\n };\r\n\r\n var getPageFormat = (API.__private__.getPageFormat = function(value) {\r\n return pageFormats[value];\r\n });\r\n\r\n format = format || \"a4\";\r\n\r\n var ApiMode = {\r\n COMPAT: \"compat\",\r\n ADVANCED: \"advanced\"\r\n };\r\n var apiMode = ApiMode.COMPAT;\r\n\r\n function advancedAPI() {\r\n // prepend global change of basis matrix\r\n // (Now, instead of converting every coordinate to the pdf coordinate system, we apply a matrix\r\n // that does this job for us (however, texts, images and similar objects must be drawn bottom up))\r\n this.saveGraphicsState();\r\n out(\r\n new Matrix(\r\n scaleFactor,\r\n 0,\r\n 0,\r\n -scaleFactor,\r\n 0,\r\n getPageHeight() * scaleFactor\r\n ).toString() + \" cm\"\r\n );\r\n this.setFontSize(this.getFontSize() / scaleFactor);\r\n\r\n // The default in MrRio's implementation is \"S\" (stroke), whereas the default in the yWorks implementation\r\n // was \"n\" (none). Although this has nothing to do with transforms, we should use the API switch here.\r\n defaultPathOperation = \"n\";\r\n\r\n apiMode = ApiMode.ADVANCED;\r\n }\r\n\r\n function compatAPI() {\r\n this.restoreGraphicsState();\r\n defaultPathOperation = \"S\";\r\n apiMode = ApiMode.COMPAT;\r\n }\r\n\r\n /**\r\n * @function combineFontStyleAndFontWeight\r\n * @param {string} fontStyle Fontstyle or variant. Example: \"italic\".\r\n * @param {number | string} fontWeight Weight of the Font. Example: \"normal\" | 400\r\n * @returns {string}\r\n * @private\r\n */\r\n var combineFontStyleAndFontWeight = (API.__private__.combineFontStyleAndFontWeight = function(\r\n fontStyle,\r\n fontWeight\r\n ) {\r\n if (\r\n (fontStyle == \"bold\" && fontWeight == \"normal\") ||\r\n (fontStyle == \"bold\" && fontWeight == 400) ||\r\n (fontStyle == \"normal\" && fontWeight == \"italic\") ||\r\n (fontStyle == \"bold\" && fontWeight == \"italic\")\r\n ) {\r\n throw new Error(\"Invalid Combination of fontweight and fontstyle\");\r\n }\r\n if (fontWeight) {\r\n fontStyle =\r\n fontWeight == 400 || fontWeight === \"normal\"\r\n ? fontStyle === \"italic\"\r\n ? \"italic\"\r\n : \"normal\"\r\n : (fontWeight == 700 || fontWeight === \"bold\") &&\r\n fontStyle === \"normal\"\r\n ? \"bold\"\r\n : (fontWeight == 700 ? \"bold\" : fontWeight) + \"\" + fontStyle;\r\n }\r\n return fontStyle;\r\n });\r\n\r\n /**\r\n * @callback ApiSwitchBody\r\n * @param {jsPDF} pdf\r\n */\r\n\r\n /**\r\n * For compatibility reasons jsPDF offers two API modes which differ in the way they convert between the the usual\r\n * screen coordinates and the PDF coordinate system.\r\n * - \"compat\": Offers full compatibility across all plugins but does not allow arbitrary transforms\r\n * - \"advanced\": Allows arbitrary transforms and more advanced features like pattern fills. Some plugins might\r\n * not support this mode, though.\r\n * Initial mode is \"compat\".\r\n *\r\n * You can either provide a callback to the body argument, which means that jsPDF will automatically switch back to\r\n * the original API mode afterwards; or you can omit the callback and switch back manually using {@link compatAPI}.\r\n *\r\n * Note, that the calls to {@link saveGraphicsState} and {@link restoreGraphicsState} need to be balanced within the\r\n * callback or between calls of this method and its counterpart {@link compatAPI}. Calls to {@link beginFormObject}\r\n * or {@link beginTilingPattern} need to be closed by their counterparts before switching back to \"compat\" API mode.\r\n *\r\n * @param {ApiSwitchBody=} body When provided, this callback will be called after the API mode has been switched.\r\n * The API mode will be switched back automatically afterwards.\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name advancedAPI\r\n */\r\n API.advancedAPI = function(body) {\r\n var doSwitch = apiMode === ApiMode.COMPAT;\r\n\r\n if (doSwitch) {\r\n advancedAPI.call(this);\r\n }\r\n\r\n if (typeof body !== \"function\") {\r\n return this;\r\n }\r\n\r\n body(this);\r\n\r\n if (doSwitch) {\r\n compatAPI.call(this);\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Switches to \"compat\" API mode. See {@link advancedAPI} for more details.\r\n *\r\n * @param {ApiSwitchBody=} body When provided, this callback will be called after the API mode has been switched.\r\n * The API mode will be switched back automatically afterwards.\r\n * @return {jsPDF}\r\n * @memberof jsPDF#\r\n * @name compatApi\r\n */\r\n API.compatAPI = function(body) {\r\n var doSwitch = apiMode === ApiMode.ADVANCED;\r\n\r\n if (doSwitch) {\r\n compatAPI.call(this);\r\n }\r\n\r\n if (typeof body !== \"function\") {\r\n return this;\r\n }\r\n\r\n body(this);\r\n\r\n if (doSwitch) {\r\n advancedAPI.call(this);\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * @return {boolean} True iff the current API mode is \"advanced\". See {@link advancedAPI}.\r\n * @memberof jsPDF#\r\n * @name isAdvancedAPI\r\n */\r\n API.isAdvancedAPI = function() {\r\n return apiMode === ApiMode.ADVANCED;\r\n };\r\n\r\n var advancedApiModeTrap = function(methodName) {\r\n if (apiMode !== ApiMode.ADVANCED) {\r\n throw new Error(\r\n methodName +\r\n \" is only available in 'advanced' API mode. \" +\r\n \"You need to call advancedAPI() first.\"\r\n );\r\n }\r\n };\r\n\r\n var roundToPrecision = (API.roundToPrecision = API.__private__.roundToPrecision = function(\r\n number,\r\n parmPrecision\r\n ) {\r\n var tmpPrecision = precision || parmPrecision;\r\n if (isNaN(number) || isNaN(tmpPrecision)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.roundToPrecision\");\r\n }\r\n return number.toFixed(tmpPrecision).replace(/0+$/, \"\");\r\n });\r\n\r\n // high precision float\r\n var hpf;\r\n if (typeof floatPrecision === \"number\") {\r\n hpf = API.hpf = API.__private__.hpf = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.hpf\");\r\n }\r\n return roundToPrecision(number, floatPrecision);\r\n };\r\n } else if (floatPrecision === \"smart\") {\r\n hpf = API.hpf = API.__private__.hpf = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.hpf\");\r\n }\r\n if (number > -1 && number < 1) {\r\n return roundToPrecision(number, 16);\r\n } else {\r\n return roundToPrecision(number, 5);\r\n }\r\n };\r\n } else {\r\n hpf = API.hpf = API.__private__.hpf = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.hpf\");\r\n }\r\n return roundToPrecision(number, 16);\r\n };\r\n }\r\n var f2 = (API.f2 = API.__private__.f2 = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.f2\");\r\n }\r\n return roundToPrecision(number, 2);\r\n });\r\n\r\n var f3 = (API.__private__.f3 = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.f3\");\r\n }\r\n return roundToPrecision(number, 3);\r\n });\r\n\r\n var scale = (API.scale = API.__private__.scale = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.scale\");\r\n }\r\n if (apiMode === ApiMode.COMPAT) {\r\n return number * scaleFactor;\r\n } else if (apiMode === ApiMode.ADVANCED) {\r\n return number;\r\n }\r\n });\r\n\r\n var transformY = function(y) {\r\n if (apiMode === ApiMode.COMPAT) {\r\n return getPageHeight() - y;\r\n } else if (apiMode === ApiMode.ADVANCED) {\r\n return y;\r\n }\r\n };\r\n\r\n var transformScaleY = function(y) {\r\n return scale(transformY(y));\r\n };\r\n\r\n /**\r\n * @name setPrecision\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {string} precision\r\n * @returns {jsPDF}\r\n */\r\n API.__private__.setPrecision = API.setPrecision = function(value) {\r\n if (typeof parseInt(value, 10) === \"number\") {\r\n precision = parseInt(value, 10);\r\n }\r\n };\r\n\r\n var fileId = \"00000000000000000000000000000000\";\r\n\r\n var getFileId = (API.__private__.getFileId = function() {\r\n return fileId;\r\n });\r\n\r\n var setFileId = (API.__private__.setFileId = function(value) {\r\n if (typeof value !== \"undefined\" && /^[a-fA-F0-9]{32}$/.test(value)) {\r\n fileId = value.toUpperCase();\r\n } else {\r\n fileId = fileId\r\n .split(\"\")\r\n .map(function() {\r\n return \"ABCDEF0123456789\".charAt(Math.floor(Math.random() * 16));\r\n })\r\n .join(\"\");\r\n }\r\n\r\n if (encryptionOptions !== null) {\r\n encryption = new PDFSecurity(\r\n encryptionOptions.userPermissions,\r\n encryptionOptions.userPassword,\r\n encryptionOptions.ownerPassword,\r\n fileId\r\n );\r\n }\r\n return fileId;\r\n });\r\n\r\n /**\r\n * @name setFileId\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {string} value GUID.\r\n * @returns {jsPDF}\r\n */\r\n API.setFileId = function(value) {\r\n setFileId(value);\r\n return this;\r\n };\r\n\r\n /**\r\n * @name getFileId\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n *\r\n * @returns {string} GUID.\r\n */\r\n API.getFileId = function() {\r\n return getFileId();\r\n };\r\n\r\n var creationDate;\r\n\r\n var convertDateToPDFDate = (API.__private__.convertDateToPDFDate = function(\r\n parmDate\r\n ) {\r\n var result = \"\";\r\n var tzoffset = parmDate.getTimezoneOffset(),\r\n tzsign = tzoffset < 0 ? \"+\" : \"-\",\r\n tzhour = Math.floor(Math.abs(tzoffset / 60)),\r\n tzmin = Math.abs(tzoffset % 60),\r\n timeZoneString = [tzsign, padd2(tzhour), \"'\", padd2(tzmin), \"'\"].join(\"\");\r\n\r\n result = [\r\n \"D:\",\r\n parmDate.getFullYear(),\r\n padd2(parmDate.getMonth() + 1),\r\n padd2(parmDate.getDate()),\r\n padd2(parmDate.getHours()),\r\n padd2(parmDate.getMinutes()),\r\n padd2(parmDate.getSeconds()),\r\n timeZoneString\r\n ].join(\"\");\r\n return result;\r\n });\r\n\r\n var convertPDFDateToDate = (API.__private__.convertPDFDateToDate = function(\r\n parmPDFDate\r\n ) {\r\n var year = parseInt(parmPDFDate.substr(2, 4), 10);\r\n var month = parseInt(parmPDFDate.substr(6, 2), 10) - 1;\r\n var date = parseInt(parmPDFDate.substr(8, 2), 10);\r\n var hour = parseInt(parmPDFDate.substr(10, 2), 10);\r\n var minutes = parseInt(parmPDFDate.substr(12, 2), 10);\r\n var seconds = parseInt(parmPDFDate.substr(14, 2), 10);\r\n // var timeZoneHour = parseInt(parmPDFDate.substr(16, 2), 10);\r\n // var timeZoneMinutes = parseInt(parmPDFDate.substr(20, 2), 10);\r\n\r\n var resultingDate = new Date(year, month, date, hour, minutes, seconds, 0);\r\n return resultingDate;\r\n });\r\n\r\n var setCreationDate = (API.__private__.setCreationDate = function(date) {\r\n var tmpCreationDateString;\r\n var regexPDFCreationDate = /^D:(20[0-2][0-9]|203[0-7]|19[7-9][0-9])(0[0-9]|1[0-2])([0-2][0-9]|3[0-1])(0[0-9]|1[0-9]|2[0-3])(0[0-9]|[1-5][0-9])(0[0-9]|[1-5][0-9])(\\+0[0-9]|\\+1[0-4]|-0[0-9]|-1[0-1])'(0[0-9]|[1-5][0-9])'?$/;\r\n if (typeof date === \"undefined\") {\r\n date = new Date();\r\n }\r\n\r\n if (date instanceof Date) {\r\n tmpCreationDateString = convertDateToPDFDate(date);\r\n } else if (regexPDFCreationDate.test(date)) {\r\n tmpCreationDateString = date;\r\n } else {\r\n throw new Error(\"Invalid argument passed to jsPDF.setCreationDate\");\r\n }\r\n creationDate = tmpCreationDateString;\r\n return creationDate;\r\n });\r\n\r\n var getCreationDate = (API.__private__.getCreationDate = function(type) {\r\n var result = creationDate;\r\n if (type === \"jsDate\") {\r\n result = convertPDFDateToDate(creationDate);\r\n }\r\n return result;\r\n });\r\n\r\n /**\r\n * @name setCreationDate\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {Object} date\r\n * @returns {jsPDF}\r\n */\r\n API.setCreationDate = function(date) {\r\n setCreationDate(date);\r\n return this;\r\n };\r\n\r\n /**\r\n * @name getCreationDate\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {Object} type\r\n * @returns {Object}\r\n */\r\n API.getCreationDate = function(type) {\r\n return getCreationDate(type);\r\n };\r\n\r\n var padd2 = (API.__private__.padd2 = function(number) {\r\n return (\"0\" + parseInt(number)).slice(-2);\r\n });\r\n\r\n var padd2Hex = (API.__private__.padd2Hex = function(hexString) {\r\n hexString = hexString.toString();\r\n return (\"00\" + hexString).substr(hexString.length);\r\n });\r\n\r\n var objectNumber = 0; // 'n' Current object number\r\n var offsets = []; // List of offsets. Activated and reset by buildDocument(). Pupulated by various calls buildDocument makes.\r\n var content = [];\r\n var contentLength = 0;\r\n var additionalObjects = [];\r\n\r\n var pages = [];\r\n var currentPage;\r\n var hasCustomDestination = false;\r\n var outputDestination = content;\r\n\r\n var resetDocument = function() {\r\n //reset fields relevant for objectNumber generation and xref.\r\n objectNumber = 0;\r\n contentLength = 0;\r\n content = [];\r\n offsets = [];\r\n additionalObjects = [];\r\n\r\n rootDictionaryObjId = newObjectDeferred();\r\n resourceDictionaryObjId = newObjectDeferred();\r\n };\r\n\r\n API.__private__.setCustomOutputDestination = function(destination) {\r\n hasCustomDestination = true;\r\n outputDestination = destination;\r\n };\r\n var setOutputDestination = function(destination) {\r\n if (!hasCustomDestination) {\r\n outputDestination = destination;\r\n }\r\n };\r\n\r\n API.__private__.resetCustomOutputDestination = function() {\r\n hasCustomDestination = false;\r\n outputDestination = content;\r\n };\r\n\r\n var out = (API.__private__.out = function(string) {\r\n string = string.toString();\r\n contentLength += string.length + 1;\r\n outputDestination.push(string);\r\n\r\n return outputDestination;\r\n });\r\n\r\n var write = (API.__private__.write = function(value) {\r\n return out(\r\n arguments.length === 1\r\n ? value.toString()\r\n : Array.prototype.join.call(arguments, \" \")\r\n );\r\n });\r\n\r\n var getArrayBuffer = (API.__private__.getArrayBuffer = function(data) {\r\n var len = data.length,\r\n ab = new ArrayBuffer(len),\r\n u8 = new Uint8Array(ab);\r\n\r\n while (len--) u8[len] = data.charCodeAt(len);\r\n return ab;\r\n });\r\n\r\n var standardFonts = [\r\n [\"Helvetica\", \"helvetica\", \"normal\", \"WinAnsiEncoding\"],\r\n [\"Helvetica-Bold\", \"helvetica\", \"bold\", \"WinAnsiEncoding\"],\r\n [\"Helvetica-Oblique\", \"helvetica\", \"italic\", \"WinAnsiEncoding\"],\r\n [\"Helvetica-BoldOblique\", \"helvetica\", \"bolditalic\", \"WinAnsiEncoding\"],\r\n [\"Courier\", \"courier\", \"normal\", \"WinAnsiEncoding\"],\r\n [\"Courier-Bold\", \"courier\", \"bold\", \"WinAnsiEncoding\"],\r\n [\"Courier-Oblique\", \"courier\", \"italic\", \"WinAnsiEncoding\"],\r\n [\"Courier-BoldOblique\", \"courier\", \"bolditalic\", \"WinAnsiEncoding\"],\r\n [\"Times-Roman\", \"times\", \"normal\", \"WinAnsiEncoding\"],\r\n [\"Times-Bold\", \"times\", \"bold\", \"WinAnsiEncoding\"],\r\n [\"Times-Italic\", \"times\", \"italic\", \"WinAnsiEncoding\"],\r\n [\"Times-BoldItalic\", \"times\", \"bolditalic\", \"WinAnsiEncoding\"],\r\n [\"ZapfDingbats\", \"zapfdingbats\", \"normal\", null],\r\n [\"Symbol\", \"symbol\", \"normal\", null]\r\n ];\r\n\r\n API.__private__.getStandardFonts = function() {\r\n return standardFonts;\r\n };\r\n\r\n var activeFontSize = options.fontSize || 16;\r\n\r\n /**\r\n * Sets font size for upcoming text elements.\r\n *\r\n * @param {number} size Font size in points.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setFontSize\r\n */\r\n API.__private__.setFontSize = API.setFontSize = function(size) {\r\n if (apiMode === ApiMode.ADVANCED) {\r\n activeFontSize = size / scaleFactor;\r\n } else {\r\n activeFontSize = size;\r\n }\r\n return this;\r\n };\r\n\r\n /**\r\n * Gets the fontsize for upcoming text elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number}\r\n * @memberof jsPDF#\r\n * @name getFontSize\r\n */\r\n var getFontSize = (API.__private__.getFontSize = API.getFontSize = function() {\r\n if (apiMode === ApiMode.COMPAT) {\r\n return activeFontSize;\r\n } else {\r\n return activeFontSize * scaleFactor;\r\n }\r\n });\r\n\r\n var R2L = options.R2L || false;\r\n\r\n /**\r\n * Set value of R2L functionality.\r\n *\r\n * @param {boolean} value\r\n * @function\r\n * @instance\r\n * @returns {jsPDF} jsPDF-instance\r\n * @memberof jsPDF#\r\n * @name setR2L\r\n */\r\n API.__private__.setR2L = API.setR2L = function(value) {\r\n R2L = value;\r\n return this;\r\n };\r\n\r\n /**\r\n * Get value of R2L functionality.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {boolean} jsPDF-instance\r\n * @memberof jsPDF#\r\n * @name getR2L\r\n */\r\n API.__private__.getR2L = API.getR2L = function() {\r\n return R2L;\r\n };\r\n\r\n var zoomMode; // default: 1;\r\n\r\n var setZoomMode = (API.__private__.setZoomMode = function(zoom) {\r\n var validZoomModes = [\r\n undefined,\r\n null,\r\n \"fullwidth\",\r\n \"fullheight\",\r\n \"fullpage\",\r\n \"original\"\r\n ];\r\n\r\n if (/^(?:\\d+\\.\\d*|\\d*\\.\\d+|\\d+)%$/.test(zoom)) {\r\n zoomMode = zoom;\r\n } else if (!isNaN(zoom)) {\r\n zoomMode = parseInt(zoom, 10);\r\n } else if (validZoomModes.indexOf(zoom) !== -1) {\r\n zoomMode = zoom;\r\n } else {\r\n throw new Error(\r\n 'zoom must be Integer (e.g. 2), a percentage Value (e.g. 300%) or fullwidth, fullheight, fullpage, original. \"' +\r\n zoom +\r\n '\" is not recognized.'\r\n );\r\n }\r\n });\r\n\r\n API.__private__.getZoomMode = function() {\r\n return zoomMode;\r\n };\r\n\r\n var pageMode; // default: 'UseOutlines';\r\n var setPageMode = (API.__private__.setPageMode = function(pmode) {\r\n var validPageModes = [\r\n undefined,\r\n null,\r\n \"UseNone\",\r\n \"UseOutlines\",\r\n \"UseThumbs\",\r\n \"FullScreen\"\r\n ];\r\n\r\n if (validPageModes.indexOf(pmode) == -1) {\r\n throw new Error(\r\n 'Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. \"' +\r\n pmode +\r\n '\" is not recognized.'\r\n );\r\n }\r\n pageMode = pmode;\r\n });\r\n\r\n API.__private__.getPageMode = function() {\r\n return pageMode;\r\n };\r\n\r\n var layoutMode; // default: 'continuous';\r\n var setLayoutMode = (API.__private__.setLayoutMode = function(layout) {\r\n var validLayoutModes = [\r\n undefined,\r\n null,\r\n \"continuous\",\r\n \"single\",\r\n \"twoleft\",\r\n \"tworight\",\r\n \"two\"\r\n ];\r\n\r\n if (validLayoutModes.indexOf(layout) == -1) {\r\n throw new Error(\r\n 'Layout mode must be one of continuous, single, twoleft, tworight. \"' +\r\n layout +\r\n '\" is not recognized.'\r\n );\r\n }\r\n layoutMode = layout;\r\n });\r\n\r\n API.__private__.getLayoutMode = function() {\r\n return layoutMode;\r\n };\r\n\r\n /**\r\n * Set the display mode options of the page like zoom and layout.\r\n *\r\n * @name setDisplayMode\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {integer|String} zoom You can pass an integer or percentage as\r\n * a string. 2 will scale the document up 2x, '200%' will scale up by the\r\n * same amount. You can also set it to 'fullwidth', 'fullheight',\r\n * 'fullpage', or 'original'.\r\n *\r\n * Only certain PDF readers support this, such as Adobe Acrobat.\r\n *\r\n * @param {string} layout Layout mode can be: 'continuous' - this is the\r\n * default continuous scroll. 'single' - the single page mode only shows one\r\n * page at a time. 'twoleft' - two column left mode, first page starts on\r\n * the left, and 'tworight' - pages are laid out in two columns, with the\r\n * first page on the right. This would be used for books.\r\n * @param {string} pmode 'UseOutlines' - it shows the\r\n * outline of the document on the left. 'UseThumbs' - shows thumbnails along\r\n * the left. 'FullScreen' - prompts the user to enter fullscreen mode.\r\n *\r\n * @returns {jsPDF}\r\n */\r\n API.__private__.setDisplayMode = API.setDisplayMode = function(\r\n zoom,\r\n layout,\r\n pmode\r\n ) {\r\n setZoomMode(zoom);\r\n setLayoutMode(layout);\r\n setPageMode(pmode);\r\n return this;\r\n };\r\n\r\n var documentProperties = {\r\n title: \"\",\r\n subject: \"\",\r\n author: \"\",\r\n keywords: \"\",\r\n creator: \"\"\r\n };\r\n\r\n API.__private__.getDocumentProperty = function(key) {\r\n if (Object.keys(documentProperties).indexOf(key) === -1) {\r\n throw new Error(\"Invalid argument passed to jsPDF.getDocumentProperty\");\r\n }\r\n return documentProperties[key];\r\n };\r\n\r\n API.__private__.getDocumentProperties = function() {\r\n return documentProperties;\r\n };\r\n\r\n /**\r\n * Adds a properties to the PDF document.\r\n *\r\n * @param {Object} A property_name-to-property_value object structure.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setDocumentProperties\r\n */\r\n API.__private__.setDocumentProperties = API.setProperties = API.setDocumentProperties = function(\r\n properties\r\n ) {\r\n // copying only those properties we can render.\r\n for (var property in documentProperties) {\r\n if (documentProperties.hasOwnProperty(property) && properties[property]) {\r\n documentProperties[property] = properties[property];\r\n }\r\n }\r\n return this;\r\n };\r\n\r\n API.__private__.setDocumentProperty = function(key, value) {\r\n if (Object.keys(documentProperties).indexOf(key) === -1) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.setDocumentProperty\");\r\n }\r\n return (documentProperties[key] = value);\r\n };\r\n\r\n var fonts = {}; // collection of font objects, where key is fontKey - a dynamically created label for a given font.\r\n var fontmap = {}; // mapping structure fontName > fontStyle > font key - performance layer. See addFont()\r\n var activeFontKey; // will be string representing the KEY of the font as combination of fontName + fontStyle\r\n var fontStateStack = []; //\r\n var patterns = {}; // collection of pattern objects\r\n var patternMap = {}; // see fonts\r\n var gStates = {}; // collection of graphic state objects\r\n var gStatesMap = {}; // see fonts\r\n var activeGState = null;\r\n var scaleFactor; // Scale factor\r\n var page = 0;\r\n var pagesContext = [];\r\n var events = new PubSub(API);\r\n var hotfixes = options.hotfixes || [];\r\n\r\n var renderTargets = {};\r\n var renderTargetMap = {};\r\n var renderTargetStack = [];\r\n var pageX;\r\n var pageY;\r\n var pageMatrix; // only used for FormObjects\r\n\r\n /**\r\n * A matrix object for 2D homogenous transformations:
\r\n * | a b 0 |
\r\n * | c d 0 |
\r\n * | e f 1 |
\r\n * pdf multiplies matrices righthand: v' = v x m1 x m2 x ...\r\n *\r\n * @class\r\n * @name Matrix\r\n * @param {number} sx\r\n * @param {number} shy\r\n * @param {number} shx\r\n * @param {number} sy\r\n * @param {number} tx\r\n * @param {number} ty\r\n * @constructor\r\n */\r\n var Matrix = function(sx, shy, shx, sy, tx, ty) {\r\n if (!(this instanceof Matrix)) {\r\n return new Matrix(sx, shy, shx, sy, tx, ty);\r\n }\r\n\r\n if (isNaN(sx)) sx = 1;\r\n if (isNaN(shy)) shy = 0;\r\n if (isNaN(shx)) shx = 0;\r\n if (isNaN(sy)) sy = 1;\r\n if (isNaN(tx)) tx = 0;\r\n if (isNaN(ty)) ty = 0;\r\n\r\n this._matrix = [sx, shy, shx, sy, tx, ty];\r\n };\r\n\r\n /**\r\n * @name sx\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"sx\", {\r\n get: function() {\r\n return this._matrix[0];\r\n },\r\n set: function(value) {\r\n this._matrix[0] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name shy\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"shy\", {\r\n get: function() {\r\n return this._matrix[1];\r\n },\r\n set: function(value) {\r\n this._matrix[1] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name shx\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"shx\", {\r\n get: function() {\r\n return this._matrix[2];\r\n },\r\n set: function(value) {\r\n this._matrix[2] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name sy\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"sy\", {\r\n get: function() {\r\n return this._matrix[3];\r\n },\r\n set: function(value) {\r\n this._matrix[3] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name tx\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"tx\", {\r\n get: function() {\r\n return this._matrix[4];\r\n },\r\n set: function(value) {\r\n this._matrix[4] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name ty\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"ty\", {\r\n get: function() {\r\n return this._matrix[5];\r\n },\r\n set: function(value) {\r\n this._matrix[5] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"a\", {\r\n get: function() {\r\n return this._matrix[0];\r\n },\r\n set: function(value) {\r\n this._matrix[0] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"b\", {\r\n get: function() {\r\n return this._matrix[1];\r\n },\r\n set: function(value) {\r\n this._matrix[1] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"c\", {\r\n get: function() {\r\n return this._matrix[2];\r\n },\r\n set: function(value) {\r\n this._matrix[2] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"d\", {\r\n get: function() {\r\n return this._matrix[3];\r\n },\r\n set: function(value) {\r\n this._matrix[3] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"e\", {\r\n get: function() {\r\n return this._matrix[4];\r\n },\r\n set: function(value) {\r\n this._matrix[4] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"f\", {\r\n get: function() {\r\n return this._matrix[5];\r\n },\r\n set: function(value) {\r\n this._matrix[5] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name rotation\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"rotation\", {\r\n get: function() {\r\n return Math.atan2(this.shx, this.sx);\r\n }\r\n });\r\n\r\n /**\r\n * @name scaleX\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"scaleX\", {\r\n get: function() {\r\n return this.decompose().scale.sx;\r\n }\r\n });\r\n\r\n /**\r\n * @name scaleY\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"scaleY\", {\r\n get: function() {\r\n return this.decompose().scale.sy;\r\n }\r\n });\r\n\r\n /**\r\n * @name isIdentity\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"isIdentity\", {\r\n get: function() {\r\n if (this.sx !== 1) {\r\n return false;\r\n }\r\n if (this.shy !== 0) {\r\n return false;\r\n }\r\n if (this.shx !== 0) {\r\n return false;\r\n }\r\n if (this.sy !== 1) {\r\n return false;\r\n }\r\n if (this.tx !== 0) {\r\n return false;\r\n }\r\n if (this.ty !== 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n });\r\n\r\n /**\r\n * Join the Matrix Values to a String\r\n *\r\n * @function join\r\n * @param {string} separator Specifies a string to separate each pair of adjacent elements of the array. The separator is converted to a string if necessary. If omitted, the array elements are separated with a comma (\",\"). If separator is an empty string, all elements are joined without any characters in between them.\r\n * @returns {string} A string with all array elements joined.\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.join = function(separator) {\r\n return [this.sx, this.shy, this.shx, this.sy, this.tx, this.ty]\r\n .map(hpf)\r\n .join(separator);\r\n };\r\n\r\n /**\r\n * Multiply the matrix with given Matrix\r\n *\r\n * @function multiply\r\n * @param matrix\r\n * @returns {Matrix}\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.multiply = function(matrix) {\r\n var sx = matrix.sx * this.sx + matrix.shy * this.shx;\r\n var shy = matrix.sx * this.shy + matrix.shy * this.sy;\r\n var shx = matrix.shx * this.sx + matrix.sy * this.shx;\r\n var sy = matrix.shx * this.shy + matrix.sy * this.sy;\r\n var tx = matrix.tx * this.sx + matrix.ty * this.shx + this.tx;\r\n var ty = matrix.tx * this.shy + matrix.ty * this.sy + this.ty;\r\n\r\n return new Matrix(sx, shy, shx, sy, tx, ty);\r\n };\r\n\r\n /**\r\n * @function decompose\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.decompose = function() {\r\n var a = this.sx;\r\n var b = this.shy;\r\n var c = this.shx;\r\n var d = this.sy;\r\n var e = this.tx;\r\n var f = this.ty;\r\n\r\n var scaleX = Math.sqrt(a * a + b * b);\r\n a /= scaleX;\r\n b /= scaleX;\r\n\r\n var shear = a * c + b * d;\r\n c -= a * shear;\r\n d -= b * shear;\r\n\r\n var scaleY = Math.sqrt(c * c + d * d);\r\n c /= scaleY;\r\n d /= scaleY;\r\n shear /= scaleY;\r\n\r\n if (a * d < b * c) {\r\n a = -a;\r\n b = -b;\r\n shear = -shear;\r\n scaleX = -scaleX;\r\n }\r\n\r\n return {\r\n scale: new Matrix(scaleX, 0, 0, scaleY, 0, 0),\r\n translate: new Matrix(1, 0, 0, 1, e, f),\r\n rotate: new Matrix(a, b, -b, a, 0, 0),\r\n skew: new Matrix(1, 0, shear, 1, 0, 0)\r\n };\r\n };\r\n\r\n /**\r\n * @function toString\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.toString = function(parmPrecision) {\r\n return this.join(\" \");\r\n };\r\n\r\n /**\r\n * @function inversed\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.inversed = function() {\r\n var a = this.sx,\r\n b = this.shy,\r\n c = this.shx,\r\n d = this.sy,\r\n e = this.tx,\r\n f = this.ty;\r\n\r\n var quot = 1 / (a * d - b * c);\r\n\r\n var aInv = d * quot;\r\n var bInv = -b * quot;\r\n var cInv = -c * quot;\r\n var dInv = a * quot;\r\n var eInv = -aInv * e - cInv * f;\r\n var fInv = -bInv * e - dInv * f;\r\n\r\n return new Matrix(aInv, bInv, cInv, dInv, eInv, fInv);\r\n };\r\n\r\n /**\r\n * @function applyToPoint\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.applyToPoint = function(pt) {\r\n var x = pt.x * this.sx + pt.y * this.shx + this.tx;\r\n var y = pt.x * this.shy + pt.y * this.sy + this.ty;\r\n return new Point(x, y);\r\n };\r\n\r\n /**\r\n * @function applyToRectangle\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.applyToRectangle = function(rect) {\r\n var pt1 = this.applyToPoint(rect);\r\n var pt2 = this.applyToPoint(new Point(rect.x + rect.w, rect.y + rect.h));\r\n return new Rectangle(pt1.x, pt1.y, pt2.x - pt1.x, pt2.y - pt1.y);\r\n };\r\n\r\n /**\r\n * Clone the Matrix\r\n *\r\n * @function clone\r\n * @memberof Matrix#\r\n * @name clone\r\n * @instance\r\n */\r\n Matrix.prototype.clone = function() {\r\n var sx = this.sx;\r\n var shy = this.shy;\r\n var shx = this.shx;\r\n var sy = this.sy;\r\n var tx = this.tx;\r\n var ty = this.ty;\r\n\r\n return new Matrix(sx, shy, shx, sy, tx, ty);\r\n };\r\n\r\n API.Matrix = Matrix;\r\n\r\n /**\r\n * Multiplies two matrices. (see {@link Matrix})\r\n * @param {Matrix} m1\r\n * @param {Matrix} m2\r\n * @memberof jsPDF#\r\n * @name matrixMult\r\n */\r\n var matrixMult = (API.matrixMult = function(m1, m2) {\r\n return m2.multiply(m1);\r\n });\r\n\r\n /**\r\n * The identity matrix (equivalent to new Matrix(1, 0, 0, 1, 0, 0)).\r\n * @type {Matrix}\r\n * @memberof! jsPDF#\r\n * @name identityMatrix\r\n */\r\n var identityMatrix = new Matrix(1, 0, 0, 1, 0, 0);\r\n API.unitMatrix = API.identityMatrix = identityMatrix;\r\n\r\n /**\r\n * Adds a new pattern for later use.\r\n * @param {String} key The key by it can be referenced later. The keys must be unique!\r\n * @param {API.Pattern} pattern The pattern\r\n */\r\n var addPattern = function(key, pattern) {\r\n // only add it if it is not already present (the keys provided by the user must be unique!)\r\n if (patternMap[key]) return;\r\n\r\n var prefix = pattern instanceof ShadingPattern ? \"Sh\" : \"P\";\r\n var patternKey = prefix + (Object.keys(patterns).length + 1).toString(10);\r\n pattern.id = patternKey;\r\n\r\n patternMap[key] = patternKey;\r\n patterns[patternKey] = pattern;\r\n\r\n events.publish(\"addPattern\", pattern);\r\n };\r\n\r\n /**\r\n * A pattern describing a shading pattern.\r\n *\r\n * Only available in \"advanced\" API mode.\r\n *\r\n * @param {String} type One of \"axial\" or \"radial\"\r\n * @param {Array} coords Either [x1, y1, x2, y2] for \"axial\" type describing the two interpolation points\r\n * or [x1, y1, r, x2, y2, r2] for \"radial\" describing inner and the outer circle.\r\n * @param {Array} colors An array of objects with the fields \"offset\" and \"color\". \"offset\" describes\r\n * the offset in parameter space [0, 1]. \"color\" is an array of length 3 describing RGB values in [0, 255].\r\n * @param {GState=} gState An additional graphics state that gets applied to the pattern (optional).\r\n * @param {Matrix=} matrix A matrix that describes the transformation between the pattern coordinate system\r\n * and the use coordinate system (optional).\r\n * @constructor\r\n * @extends API.Pattern\r\n */\r\n API.ShadingPattern = ShadingPattern;\r\n\r\n /**\r\n * A PDF Tiling pattern.\r\n *\r\n * Only available in \"advanced\" API mode.\r\n *\r\n * @param {Array.} boundingBox The bounding box at which one pattern cell gets clipped.\r\n * @param {Number} xStep Horizontal spacing between pattern cells.\r\n * @param {Number} yStep Vertical spacing between pattern cells.\r\n * @param {API.GState=} gState An additional graphics state that gets applied to the pattern (optional).\r\n * @param {Matrix=} matrix A matrix that describes the transformation between the pattern coordinate system\r\n * and the use coordinate system (optional).\r\n * @constructor\r\n * @extends API.Pattern\r\n */\r\n API.TilingPattern = TilingPattern;\r\n\r\n /**\r\n * Adds a new {@link API.ShadingPattern} for later use. Only available in \"advanced\" API mode.\r\n * @param {String} key\r\n * @param {Pattern} pattern\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name addPattern\r\n */\r\n API.addShadingPattern = function(key, pattern) {\r\n advancedApiModeTrap(\"addShadingPattern()\");\r\n\r\n addPattern(key, pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Begins a new tiling pattern. All subsequent render calls are drawn to this pattern until {@link API.endTilingPattern}\r\n * gets called. Only available in \"advanced\" API mode.\r\n * @param {API.Pattern} pattern\r\n * @memberof jsPDF#\r\n * @name beginTilingPattern\r\n */\r\n API.beginTilingPattern = function(pattern) {\r\n advancedApiModeTrap(\"beginTilingPattern()\");\r\n\r\n beginNewRenderTarget(\r\n pattern.boundingBox[0],\r\n pattern.boundingBox[1],\r\n pattern.boundingBox[2] - pattern.boundingBox[0],\r\n pattern.boundingBox[3] - pattern.boundingBox[1],\r\n pattern.matrix\r\n );\r\n };\r\n\r\n /**\r\n * Ends a tiling pattern and sets the render target to the one active before {@link API.beginTilingPattern} has been called.\r\n *\r\n * Only available in \"advanced\" API mode.\r\n *\r\n * @param {string} key A unique key that is used to reference this pattern at later use.\r\n * @param {API.Pattern} pattern The pattern to end.\r\n * @memberof jsPDF#\r\n * @name endTilingPattern\r\n */\r\n API.endTilingPattern = function(key, pattern) {\r\n advancedApiModeTrap(\"endTilingPattern()\");\r\n\r\n // retrieve the stream\r\n pattern.stream = pages[currentPage].join(\"\\n\");\r\n\r\n addPattern(key, pattern);\r\n\r\n events.publish(\"endTilingPattern\", pattern);\r\n\r\n // restore state from stack\r\n renderTargetStack.pop().restore();\r\n };\r\n\r\n var newObject = (API.__private__.newObject = function() {\r\n var oid = newObjectDeferred();\r\n newObjectDeferredBegin(oid, true);\r\n return oid;\r\n });\r\n\r\n // Does not output the object. The caller must call newObjectDeferredBegin(oid) before outputing any data\r\n var newObjectDeferred = (API.__private__.newObjectDeferred = function() {\r\n objectNumber++;\r\n offsets[objectNumber] = function() {\r\n return contentLength;\r\n };\r\n return objectNumber;\r\n });\r\n\r\n var newObjectDeferredBegin = function(oid, doOutput) {\r\n doOutput = typeof doOutput === \"boolean\" ? doOutput : false;\r\n offsets[oid] = contentLength;\r\n if (doOutput) {\r\n out(oid + \" 0 obj\");\r\n }\r\n return oid;\r\n };\r\n // Does not output the object until after the pages have been output.\r\n // Returns an object containing the objectId and content.\r\n // All pages have been added so the object ID can be estimated to start right after.\r\n // This does not modify the current objectNumber; It must be updated after the newObjects are output.\r\n var newAdditionalObject = (API.__private__.newAdditionalObject = function() {\r\n var objId = newObjectDeferred();\r\n var obj = {\r\n objId: objId,\r\n content: \"\"\r\n };\r\n additionalObjects.push(obj);\r\n return obj;\r\n });\r\n\r\n var rootDictionaryObjId = newObjectDeferred();\r\n var resourceDictionaryObjId = newObjectDeferred();\r\n\r\n /////////////////////\r\n // Private functions\r\n /////////////////////\r\n\r\n var decodeColorString = (API.__private__.decodeColorString = function(color) {\r\n var colorEncoded = color.split(\" \");\r\n if (\r\n colorEncoded.length === 2 &&\r\n (colorEncoded[1] === \"g\" || colorEncoded[1] === \"G\")\r\n ) {\r\n // convert grayscale value to rgb so that it can be converted to hex for consistency\r\n var floatVal = parseFloat(colorEncoded[0]);\r\n colorEncoded = [floatVal, floatVal, floatVal, \"r\"];\r\n } else if (\r\n colorEncoded.length === 5 &&\r\n (colorEncoded[4] === \"k\" || colorEncoded[4] === \"K\")\r\n ) {\r\n // convert CMYK values to rbg so that it can be converted to hex for consistency\r\n var red = (1.0 - colorEncoded[0]) * (1.0 - colorEncoded[3]);\r\n var green = (1.0 - colorEncoded[1]) * (1.0 - colorEncoded[3]);\r\n var blue = (1.0 - colorEncoded[2]) * (1.0 - colorEncoded[3]);\r\n\r\n colorEncoded = [red, green, blue, \"r\"];\r\n }\r\n var colorAsRGB = \"#\";\r\n for (var i = 0; i < 3; i++) {\r\n colorAsRGB += (\r\n \"0\" + Math.floor(parseFloat(colorEncoded[i]) * 255).toString(16)\r\n ).slice(-2);\r\n }\r\n return colorAsRGB;\r\n });\r\n\r\n var encodeColorString = (API.__private__.encodeColorString = function(\r\n options\r\n ) {\r\n var color;\r\n\r\n if (typeof options === \"string\") {\r\n options = {\r\n ch1: options\r\n };\r\n }\r\n var ch1 = options.ch1;\r\n var ch2 = options.ch2;\r\n var ch3 = options.ch3;\r\n var ch4 = options.ch4;\r\n var letterArray =\r\n options.pdfColorType === \"draw\" ? [\"G\", \"RG\", \"K\"] : [\"g\", \"rg\", \"k\"];\r\n\r\n if (typeof ch1 === \"string\" && ch1.charAt(0) !== \"#\") {\r\n var rgbColor = new RGBColor(ch1);\r\n if (rgbColor.ok) {\r\n ch1 = rgbColor.toHex();\r\n } else if (!/^\\d*\\.?\\d*$/.test(ch1)) {\r\n throw new Error(\r\n 'Invalid color \"' + ch1 + '\" passed to jsPDF.encodeColorString.'\r\n );\r\n }\r\n }\r\n //convert short rgb to long form\r\n if (typeof ch1 === \"string\" && /^#[0-9A-Fa-f]{3}$/.test(ch1)) {\r\n ch1 = \"#\" + ch1[1] + ch1[1] + ch1[2] + ch1[2] + ch1[3] + ch1[3];\r\n }\r\n\r\n if (typeof ch1 === \"string\" && /^#[0-9A-Fa-f]{6}$/.test(ch1)) {\r\n var hex = parseInt(ch1.substr(1), 16);\r\n ch1 = (hex >> 16) & 255;\r\n ch2 = (hex >> 8) & 255;\r\n ch3 = hex & 255;\r\n }\r\n\r\n if (\r\n typeof ch2 === \"undefined\" ||\r\n (typeof ch4 === \"undefined\" && ch1 === ch2 && ch2 === ch3)\r\n ) {\r\n // Gray color space.\r\n if (typeof ch1 === \"string\") {\r\n color = ch1 + \" \" + letterArray[0];\r\n } else {\r\n switch (options.precision) {\r\n case 2:\r\n color = f2(ch1 / 255) + \" \" + letterArray[0];\r\n break;\r\n case 3:\r\n default:\r\n color = f3(ch1 / 255) + \" \" + letterArray[0];\r\n }\r\n }\r\n } else if (typeof ch4 === \"undefined\" || typeof ch4 === \"object\") {\r\n // assume RGBA\r\n if (ch4 && !isNaN(ch4.a)) {\r\n //TODO Implement transparency.\r\n //WORKAROUND use white for now, if transparent, otherwise handle as rgb\r\n if (ch4.a === 0) {\r\n color = [\"1.\", \"1.\", \"1.\", letterArray[1]].join(\" \");\r\n return color;\r\n }\r\n }\r\n // assume RGB\r\n if (typeof ch1 === \"string\") {\r\n color = [ch1, ch2, ch3, letterArray[1]].join(\" \");\r\n } else {\r\n switch (options.precision) {\r\n case 2:\r\n color = [\r\n f2(ch1 / 255),\r\n f2(ch2 / 255),\r\n f2(ch3 / 255),\r\n letterArray[1]\r\n ].join(\" \");\r\n break;\r\n default:\r\n case 3:\r\n color = [\r\n f3(ch1 / 255),\r\n f3(ch2 / 255),\r\n f3(ch3 / 255),\r\n letterArray[1]\r\n ].join(\" \");\r\n }\r\n }\r\n } else {\r\n // assume CMYK\r\n if (typeof ch1 === \"string\") {\r\n color = [ch1, ch2, ch3, ch4, letterArray[2]].join(\" \");\r\n } else {\r\n switch (options.precision) {\r\n case 2:\r\n color = [f2(ch1), f2(ch2), f2(ch3), f2(ch4), letterArray[2]].join(\r\n \" \"\r\n );\r\n break;\r\n case 3:\r\n default:\r\n color = [f3(ch1), f3(ch2), f3(ch3), f3(ch4), letterArray[2]].join(\r\n \" \"\r\n );\r\n }\r\n }\r\n }\r\n return color;\r\n });\r\n\r\n var getFilters = (API.__private__.getFilters = function() {\r\n return filters;\r\n });\r\n\r\n var putStream = (API.__private__.putStream = function(options) {\r\n options = options || {};\r\n var data = options.data || \"\";\r\n var filters = options.filters || getFilters();\r\n var alreadyAppliedFilters = options.alreadyAppliedFilters || [];\r\n var addLength1 = options.addLength1 || false;\r\n var valueOfLength1 = data.length;\r\n var objectId = options.objectId;\r\n var encryptor = function(data) {\r\n return data;\r\n };\r\n if (encryptionOptions !== null && typeof objectId == \"undefined\") {\r\n throw new Error(\r\n \"ObjectId must be passed to putStream for file encryption\"\r\n );\r\n }\r\n if (encryptionOptions !== null) {\r\n encryptor = encryption.encryptor(objectId, 0);\r\n }\r\n\r\n var processedData = {};\r\n if (filters === true) {\r\n filters = [\"FlateEncode\"];\r\n }\r\n var keyValues = options.additionalKeyValues || [];\r\n if (typeof jsPDF.API.processDataByFilters !== \"undefined\") {\r\n processedData = jsPDF.API.processDataByFilters(data, filters);\r\n } else {\r\n processedData = { data: data, reverseChain: [] };\r\n }\r\n var filterAsString =\r\n processedData.reverseChain +\r\n (Array.isArray(alreadyAppliedFilters)\r\n ? alreadyAppliedFilters.join(\" \")\r\n : alreadyAppliedFilters.toString());\r\n\r\n if (processedData.data.length !== 0) {\r\n keyValues.push({\r\n key: \"Length\",\r\n value: processedData.data.length\r\n });\r\n if (addLength1 === true) {\r\n keyValues.push({\r\n key: \"Length1\",\r\n value: valueOfLength1\r\n });\r\n }\r\n }\r\n\r\n if (filterAsString.length != 0) {\r\n if (filterAsString.split(\"/\").length - 1 === 1) {\r\n keyValues.push({\r\n key: \"Filter\",\r\n value: filterAsString\r\n });\r\n } else {\r\n keyValues.push({\r\n key: \"Filter\",\r\n value: \"[\" + filterAsString + \"]\"\r\n });\r\n\r\n for (var j = 0; j < keyValues.length; j += 1) {\r\n if (keyValues[j].key === \"DecodeParms\") {\r\n var decodeParmsArray = [];\r\n\r\n for (\r\n var i = 0;\r\n i < processedData.reverseChain.split(\"/\").length - 1;\r\n i += 1\r\n ) {\r\n decodeParmsArray.push(\"null\");\r\n }\r\n\r\n decodeParmsArray.push(keyValues[j].value);\r\n keyValues[j].value = \"[\" + decodeParmsArray.join(\" \") + \"]\";\r\n }\r\n }\r\n }\r\n }\r\n\r\n out(\"<<\");\r\n for (var k = 0; k < keyValues.length; k++) {\r\n out(\"/\" + keyValues[k].key + \" \" + keyValues[k].value);\r\n }\r\n out(\">>\");\r\n if (processedData.data.length !== 0) {\r\n out(\"stream\");\r\n out(encryptor(processedData.data));\r\n out(\"endstream\");\r\n }\r\n });\r\n\r\n var putPage = (API.__private__.putPage = function(page) {\r\n var pageNumber = page.number;\r\n var data = page.data;\r\n var pageObjectNumber = page.objId;\r\n var pageContentsObjId = page.contentsObjId;\r\n\r\n newObjectDeferredBegin(pageObjectNumber, true);\r\n out(\"<>\");\r\n out(\"endobj\");\r\n // Page content\r\n var pageContent = data.join(\"\\n\");\r\n\r\n if (apiMode === ApiMode.ADVANCED) {\r\n // if the user forgot to switch back to COMPAT mode, we must balance the graphics stack again\r\n pageContent += \"\\nQ\";\r\n }\r\n\r\n newObjectDeferredBegin(pageContentsObjId, true);\r\n putStream({\r\n data: pageContent,\r\n filters: getFilters(),\r\n objectId: pageContentsObjId\r\n });\r\n out(\"endobj\");\r\n return pageObjectNumber;\r\n });\r\n\r\n var putPages = (API.__private__.putPages = function() {\r\n var n,\r\n i,\r\n pageObjectNumbers = [];\r\n\r\n for (n = 1; n <= page; n++) {\r\n pagesContext[n].objId = newObjectDeferred();\r\n pagesContext[n].contentsObjId = newObjectDeferred();\r\n }\r\n\r\n for (n = 1; n <= page; n++) {\r\n pageObjectNumbers.push(\r\n putPage({\r\n number: n,\r\n data: pages[n],\r\n objId: pagesContext[n].objId,\r\n contentsObjId: pagesContext[n].contentsObjId,\r\n mediaBox: pagesContext[n].mediaBox,\r\n cropBox: pagesContext[n].cropBox,\r\n bleedBox: pagesContext[n].bleedBox,\r\n trimBox: pagesContext[n].trimBox,\r\n artBox: pagesContext[n].artBox,\r\n userUnit: pagesContext[n].userUnit,\r\n rootDictionaryObjId: rootDictionaryObjId,\r\n resourceDictionaryObjId: resourceDictionaryObjId\r\n })\r\n );\r\n }\r\n newObjectDeferredBegin(rootDictionaryObjId, true);\r\n out(\"<>\");\r\n out(\"endobj\");\r\n events.publish(\"postPutPages\");\r\n });\r\n\r\n var putFont = function(font) {\r\n events.publish(\"putFont\", {\r\n font: font,\r\n out: out,\r\n newObject: newObject,\r\n putStream: putStream\r\n });\r\n\r\n if (font.isAlreadyPutted !== true) {\r\n font.objectNumber = newObject();\r\n out(\"<<\");\r\n out(\"/Type /Font\");\r\n out(\"/BaseFont /\" + toPDFName(font.postScriptName));\r\n out(\"/Subtype /Type1\");\r\n if (typeof font.encoding === \"string\") {\r\n out(\"/Encoding /\" + font.encoding);\r\n }\r\n out(\"/FirstChar 32\");\r\n out(\"/LastChar 255\");\r\n out(\">>\");\r\n out(\"endobj\");\r\n }\r\n };\r\n\r\n var putFonts = function() {\r\n for (var fontKey in fonts) {\r\n if (fonts.hasOwnProperty(fontKey)) {\r\n if (\r\n putOnlyUsedFonts === false ||\r\n (putOnlyUsedFonts === true && usedFonts.hasOwnProperty(fontKey))\r\n ) {\r\n putFont(fonts[fontKey]);\r\n }\r\n }\r\n }\r\n };\r\n\r\n var putXObject = function(xObject) {\r\n xObject.objectNumber = newObject();\r\n\r\n var options = [];\r\n options.push({ key: \"Type\", value: \"/XObject\" });\r\n options.push({ key: \"Subtype\", value: \"/Form\" });\r\n options.push({\r\n key: \"BBox\",\r\n value:\r\n \"[\" +\r\n [\r\n hpf(xObject.x),\r\n hpf(xObject.y),\r\n hpf(xObject.x + xObject.width),\r\n hpf(xObject.y + xObject.height)\r\n ].join(\" \") +\r\n \"]\"\r\n });\r\n options.push({\r\n key: \"Matrix\",\r\n value: \"[\" + xObject.matrix.toString() + \"]\"\r\n });\r\n // TODO: /Resources\r\n\r\n var stream = xObject.pages[1].join(\"\\n\");\r\n putStream({\r\n data: stream,\r\n additionalKeyValues: options,\r\n objectId: xObject.objectNumber\r\n });\r\n out(\"endobj\");\r\n };\r\n\r\n var putXObjects = function() {\r\n for (var xObjectKey in renderTargets) {\r\n if (renderTargets.hasOwnProperty(xObjectKey)) {\r\n putXObject(renderTargets[xObjectKey]);\r\n }\r\n }\r\n };\r\n\r\n var interpolateAndEncodeRGBStream = function(colors, numberSamples) {\r\n var tValues = [];\r\n var t;\r\n var dT = 1.0 / (numberSamples - 1);\r\n for (t = 0.0; t < 1.0; t += dT) {\r\n tValues.push(t);\r\n }\r\n tValues.push(1.0);\r\n // add first and last control point if not present\r\n if (colors[0].offset != 0.0) {\r\n var c0 = {\r\n offset: 0.0,\r\n color: colors[0].color\r\n };\r\n colors.unshift(c0);\r\n }\r\n if (colors[colors.length - 1].offset != 1.0) {\r\n var c1 = {\r\n offset: 1.0,\r\n color: colors[colors.length - 1].color\r\n };\r\n colors.push(c1);\r\n }\r\n var out = \"\";\r\n var index = 0;\r\n\r\n for (var i = 0; i < tValues.length; i++) {\r\n t = tValues[i];\r\n while (t > colors[index + 1].offset) index++;\r\n var a = colors[index].offset;\r\n var b = colors[index + 1].offset;\r\n var d = (t - a) / (b - a);\r\n\r\n var aColor = colors[index].color;\r\n var bColor = colors[index + 1].color;\r\n\r\n out +=\r\n padd2Hex(Math.round((1 - d) * aColor[0] + d * bColor[0]).toString(16)) +\r\n padd2Hex(Math.round((1 - d) * aColor[1] + d * bColor[1]).toString(16)) +\r\n padd2Hex(Math.round((1 - d) * aColor[2] + d * bColor[2]).toString(16));\r\n }\r\n return out.trim();\r\n };\r\n\r\n var putShadingPattern = function(pattern, numberSamples) {\r\n /*\r\n Axial patterns shade between the two points specified in coords, radial patterns between the inner\r\n and outer circle.\r\n The user can specify an array (colors) that maps t-Values in [0, 1] to RGB colors. These are now\r\n interpolated to equidistant samples and written to pdf as a sample (type 0) function.\r\n */\r\n // The number of color samples that should be used to describe the shading.\r\n // The higher, the more accurate the gradient will be.\r\n numberSamples || (numberSamples = 21);\r\n var funcObjectNumber = newObject();\r\n var stream = interpolateAndEncodeRGBStream(pattern.colors, numberSamples);\r\n\r\n var options = [];\r\n options.push({ key: \"FunctionType\", value: \"0\" });\r\n options.push({ key: \"Domain\", value: \"[0.0 1.0]\" });\r\n options.push({ key: \"Size\", value: \"[\" + numberSamples + \"]\" });\r\n options.push({ key: \"BitsPerSample\", value: \"8\" });\r\n options.push({ key: \"Range\", value: \"[0.0 1.0 0.0 1.0 0.0 1.0]\" });\r\n options.push({ key: \"Decode\", value: \"[0.0 1.0 0.0 1.0 0.0 1.0]\" });\r\n\r\n putStream({\r\n data: stream,\r\n additionalKeyValues: options,\r\n alreadyAppliedFilters: [\"/ASCIIHexDecode\"],\r\n objectId: funcObjectNumber\r\n });\r\n out(\"endobj\");\r\n\r\n pattern.objectNumber = newObject();\r\n out(\"<< /ShadingType \" + pattern.type);\r\n out(\"/ColorSpace /DeviceRGB\");\r\n var coords =\r\n \"/Coords [\" +\r\n hpf(parseFloat(pattern.coords[0])) +\r\n \" \" + // x1\r\n hpf(parseFloat(pattern.coords[1])) +\r\n \" \"; // y1\r\n if (pattern.type === 2) {\r\n // axial\r\n coords +=\r\n hpf(parseFloat(pattern.coords[2])) +\r\n \" \" + // x2\r\n hpf(parseFloat(pattern.coords[3])); // y2\r\n } else {\r\n // radial\r\n coords +=\r\n hpf(parseFloat(pattern.coords[2])) +\r\n \" \" + // r1\r\n hpf(parseFloat(pattern.coords[3])) +\r\n \" \" + // x2\r\n hpf(parseFloat(pattern.coords[4])) +\r\n \" \" + // y2\r\n hpf(parseFloat(pattern.coords[5])); // r2\r\n }\r\n coords += \"]\";\r\n out(coords);\r\n\r\n if (pattern.matrix) {\r\n out(\"/Matrix [\" + pattern.matrix.toString() + \"]\");\r\n }\r\n out(\"/Function \" + funcObjectNumber + \" 0 R\");\r\n out(\"/Extend [true true]\");\r\n out(\">>\");\r\n out(\"endobj\");\r\n };\r\n\r\n var putTilingPattern = function(pattern, deferredResourceDictionaryIds) {\r\n var resourcesObjectId = newObjectDeferred();\r\n var patternObjectId = newObject();\r\n\r\n deferredResourceDictionaryIds.push({\r\n resourcesOid: resourcesObjectId,\r\n objectOid: patternObjectId\r\n });\r\n\r\n pattern.objectNumber = patternObjectId;\r\n var options = [];\r\n options.push({ key: \"Type\", value: \"/Pattern\" });\r\n options.push({ key: \"PatternType\", value: \"1\" }); // tiling pattern\r\n options.push({ key: \"PaintType\", value: \"1\" }); // colored tiling pattern\r\n options.push({ key: \"TilingType\", value: \"1\" }); // constant spacing\r\n options.push({\r\n key: \"BBox\",\r\n value: \"[\" + pattern.boundingBox.map(hpf).join(\" \") + \"]\"\r\n });\r\n options.push({ key: \"XStep\", value: hpf(pattern.xStep) });\r\n options.push({ key: \"YStep\", value: hpf(pattern.yStep) });\r\n options.push({ key: \"Resources\", value: resourcesObjectId + \" 0 R\" });\r\n if (pattern.matrix) {\r\n options.push({\r\n key: \"Matrix\",\r\n value: \"[\" + pattern.matrix.toString() + \"]\"\r\n });\r\n }\r\n\r\n putStream({\r\n data: pattern.stream,\r\n additionalKeyValues: options,\r\n objectId: pattern.objectNumber\r\n });\r\n out(\"endobj\");\r\n };\r\n\r\n var putPatterns = function(deferredResourceDictionaryIds) {\r\n var patternKey;\r\n for (patternKey in patterns) {\r\n if (patterns.hasOwnProperty(patternKey)) {\r\n if (patterns[patternKey] instanceof ShadingPattern) {\r\n putShadingPattern(patterns[patternKey]);\r\n } else if (patterns[patternKey] instanceof TilingPattern) {\r\n putTilingPattern(patterns[patternKey], deferredResourceDictionaryIds);\r\n }\r\n }\r\n }\r\n };\r\n\r\n var putGState = function(gState) {\r\n gState.objectNumber = newObject();\r\n out(\"<<\");\r\n for (var p in gState) {\r\n switch (p) {\r\n case \"opacity\":\r\n out(\"/ca \" + f2(gState[p]));\r\n break;\r\n case \"stroke-opacity\":\r\n out(\"/CA \" + f2(gState[p]));\r\n break;\r\n }\r\n }\r\n out(\">>\");\r\n out(\"endobj\");\r\n };\r\n\r\n var putGStates = function() {\r\n var gStateKey;\r\n for (gStateKey in gStates) {\r\n if (gStates.hasOwnProperty(gStateKey)) {\r\n putGState(gStates[gStateKey]);\r\n }\r\n }\r\n };\r\n\r\n var putXobjectDict = function() {\r\n out(\"/XObject <<\");\r\n for (var xObjectKey in renderTargets) {\r\n if (\r\n renderTargets.hasOwnProperty(xObjectKey) &&\r\n renderTargets[xObjectKey].objectNumber >= 0\r\n ) {\r\n out(\r\n \"/\" +\r\n xObjectKey +\r\n \" \" +\r\n renderTargets[xObjectKey].objectNumber +\r\n \" 0 R\"\r\n );\r\n }\r\n }\r\n\r\n // Loop through images, or other data objects\r\n events.publish(\"putXobjectDict\");\r\n out(\">>\");\r\n };\r\n\r\n var putEncryptionDict = function() {\r\n encryption.oid = newObject();\r\n out(\"<<\");\r\n out(\"/Filter /Standard\");\r\n out(\"/V \" + encryption.v);\r\n out(\"/R \" + encryption.r);\r\n out(\"/U <\" + encryption.toHexString(encryption.U) + \">\");\r\n out(\"/O <\" + encryption.toHexString(encryption.O) + \">\");\r\n out(\"/P \" + encryption.P);\r\n out(\">>\");\r\n out(\"endobj\");\r\n };\r\n\r\n var putFontDict = function() {\r\n out(\"/Font <<\");\r\n\r\n for (var fontKey in fonts) {\r\n if (fonts.hasOwnProperty(fontKey)) {\r\n if (\r\n putOnlyUsedFonts === false ||\r\n (putOnlyUsedFonts === true && usedFonts.hasOwnProperty(fontKey))\r\n ) {\r\n out(\"/\" + fontKey + \" \" + fonts[fontKey].objectNumber + \" 0 R\");\r\n }\r\n }\r\n }\r\n out(\">>\");\r\n };\r\n\r\n var putShadingPatternDict = function() {\r\n if (Object.keys(patterns).length > 0) {\r\n out(\"/Shading <<\");\r\n for (var patternKey in patterns) {\r\n if (\r\n patterns.hasOwnProperty(patternKey) &&\r\n patterns[patternKey] instanceof ShadingPattern &&\r\n patterns[patternKey].objectNumber >= 0\r\n ) {\r\n out(\r\n \"/\" + patternKey + \" \" + patterns[patternKey].objectNumber + \" 0 R\"\r\n );\r\n }\r\n }\r\n\r\n events.publish(\"putShadingPatternDict\");\r\n out(\">>\");\r\n }\r\n };\r\n\r\n var putTilingPatternDict = function(objectOid) {\r\n if (Object.keys(patterns).length > 0) {\r\n out(\"/Pattern <<\");\r\n for (var patternKey in patterns) {\r\n if (\r\n patterns.hasOwnProperty(patternKey) &&\r\n patterns[patternKey] instanceof API.TilingPattern &&\r\n patterns[patternKey].objectNumber >= 0 &&\r\n patterns[patternKey].objectNumber < objectOid // prevent cyclic dependencies\r\n ) {\r\n out(\r\n \"/\" + patternKey + \" \" + patterns[patternKey].objectNumber + \" 0 R\"\r\n );\r\n }\r\n }\r\n events.publish(\"putTilingPatternDict\");\r\n out(\">>\");\r\n }\r\n };\r\n\r\n var putGStatesDict = function() {\r\n if (Object.keys(gStates).length > 0) {\r\n var gStateKey;\r\n out(\"/ExtGState <<\");\r\n for (gStateKey in gStates) {\r\n if (\r\n gStates.hasOwnProperty(gStateKey) &&\r\n gStates[gStateKey].objectNumber >= 0\r\n ) {\r\n out(\"/\" + gStateKey + \" \" + gStates[gStateKey].objectNumber + \" 0 R\");\r\n }\r\n }\r\n\r\n events.publish(\"putGStateDict\");\r\n out(\">>\");\r\n }\r\n };\r\n\r\n var putResourceDictionary = function(objectIds) {\r\n newObjectDeferredBegin(objectIds.resourcesOid, true);\r\n out(\"<<\");\r\n out(\"/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]\");\r\n putFontDict();\r\n putShadingPatternDict();\r\n putTilingPatternDict(objectIds.objectOid);\r\n putGStatesDict();\r\n putXobjectDict();\r\n out(\">>\");\r\n out(\"endobj\");\r\n };\r\n\r\n var putResources = function() {\r\n // FormObjects, Patterns etc. might use other FormObjects/Patterns/Images\r\n // which means their resource dictionaries must contain the already resolved\r\n // object ids. For this reason we defer the serialization of the resource\r\n // dicts until all objects have been serialized and have object ids.\r\n //\r\n // In order to prevent cyclic dependencies (which Adobe Reader doesn't like),\r\n // we only put all oids that are smaller than the oid of the object the\r\n // resource dict belongs to. This is correct behavior, since the streams\r\n // may only use other objects that have already been defined and thus appear\r\n // earlier in their respective collection.\r\n // Currently, this only affects tiling patterns, but a (more) correct\r\n // implementation of FormObjects would also define their own resource dicts.\r\n var deferredResourceDictionaryIds = [];\r\n\r\n putFonts();\r\n putGStates();\r\n putXObjects();\r\n putPatterns(deferredResourceDictionaryIds);\r\n\r\n events.publish(\"putResources\");\r\n deferredResourceDictionaryIds.forEach(putResourceDictionary);\r\n putResourceDictionary({\r\n resourcesOid: resourceDictionaryObjId,\r\n objectOid: Number.MAX_SAFE_INTEGER // output all objects\r\n });\r\n events.publish(\"postPutResources\");\r\n };\r\n\r\n var putAdditionalObjects = function() {\r\n events.publish(\"putAdditionalObjects\");\r\n for (var i = 0; i < additionalObjects.length; i++) {\r\n var obj = additionalObjects[i];\r\n newObjectDeferredBegin(obj.objId, true);\r\n out(obj.content);\r\n out(\"endobj\");\r\n }\r\n events.publish(\"postPutAdditionalObjects\");\r\n };\r\n\r\n var addFontToFontDictionary = function(font) {\r\n fontmap[font.fontName] = fontmap[font.fontName] || {};\r\n fontmap[font.fontName][font.fontStyle] = font.id;\r\n };\r\n\r\n var addFont = function(\r\n postScriptName,\r\n fontName,\r\n fontStyle,\r\n encoding,\r\n isStandardFont\r\n ) {\r\n var font = {\r\n id: \"F\" + (Object.keys(fonts).length + 1).toString(10),\r\n postScriptName: postScriptName,\r\n fontName: fontName,\r\n fontStyle: fontStyle,\r\n encoding: encoding,\r\n isStandardFont: isStandardFont || false,\r\n metadata: {}\r\n };\r\n\r\n events.publish(\"addFont\", {\r\n font: font,\r\n instance: this\r\n });\r\n\r\n fonts[font.id] = font;\r\n addFontToFontDictionary(font);\r\n return font.id;\r\n };\r\n\r\n var addFonts = function(arrayOfFonts) {\r\n for (var i = 0, l = standardFonts.length; i < l; i++) {\r\n var fontKey = addFont.call(\r\n this,\r\n arrayOfFonts[i][0],\r\n arrayOfFonts[i][1],\r\n arrayOfFonts[i][2],\r\n standardFonts[i][3],\r\n true\r\n );\r\n\r\n if (putOnlyUsedFonts === false) {\r\n usedFonts[fontKey] = true;\r\n }\r\n // adding aliases for standard fonts, this time matching the capitalization\r\n var parts = arrayOfFonts[i][0].split(\"-\");\r\n addFontToFontDictionary({\r\n id: fontKey,\r\n fontName: parts[0],\r\n fontStyle: parts[1] || \"\"\r\n });\r\n }\r\n events.publish(\"addFonts\", {\r\n fonts: fonts,\r\n dictionary: fontmap\r\n });\r\n };\r\n\r\n var SAFE = function __safeCall(fn) {\r\n fn.foo = function __safeCallWrapper() {\r\n try {\r\n return fn.apply(this, arguments);\r\n } catch (e) {\r\n var stack = e.stack || \"\";\r\n if (~stack.indexOf(\" at \")) stack = stack.split(\" at \")[1];\r\n var m =\r\n \"Error in function \" +\r\n stack.split(\"\\n\")[0].split(\"<\")[0] +\r\n \": \" +\r\n e.message;\r\n if (globalObject.console) {\r\n globalObject.console.error(m, e);\r\n if (globalObject.alert) alert(m);\r\n } else {\r\n throw new Error(m);\r\n }\r\n }\r\n };\r\n fn.foo.bar = fn;\r\n return fn.foo;\r\n };\r\n\r\n var to8bitStream = function(text, flags) {\r\n /**\r\n * PDF 1.3 spec:\r\n * \"For text strings encoded in Unicode, the first two bytes must be 254 followed by\r\n * 255, representing the Unicode byte order marker, U+FEFF. (This sequence conflicts\r\n * with the PDFDocEncoding character sequence thorn ydieresis, which is unlikely\r\n * to be a meaningful beginning of a word or phrase.) The remainder of the\r\n * string consists of Unicode character codes, according to the UTF-16 encoding\r\n * specified in the Unicode standard, version 2.0. Commonly used Unicode values\r\n * are represented as 2 bytes per character, with the high-order byte appearing first\r\n * in the string.\"\r\n *\r\n * In other words, if there are chars in a string with char code above 255, we\r\n * recode the string to UCS2 BE - string doubles in length and BOM is prepended.\r\n *\r\n * HOWEVER!\r\n * Actual *content* (body) text (as opposed to strings used in document properties etc)\r\n * does NOT expect BOM. There, it is treated as a literal GID (Glyph ID)\r\n *\r\n * Because of Adobe's focus on \"you subset your fonts!\" you are not supposed to have\r\n * a font that maps directly Unicode (UCS2 / UTF16BE) code to font GID, but you could\r\n * fudge it with \"Identity-H\" encoding and custom CIDtoGID map that mimics Unicode\r\n * code page. There, however, all characters in the stream are treated as GIDs,\r\n * including BOM, which is the reason we need to skip BOM in content text (i.e. that\r\n * that is tied to a font).\r\n *\r\n * To signal this \"special\" PDFEscape / to8bitStream handling mode,\r\n * API.text() function sets (unless you overwrite it with manual values\r\n * given to API.text(.., flags) )\r\n * flags.autoencode = true\r\n * flags.noBOM = true\r\n *\r\n * ===================================================================================\r\n * `flags` properties relied upon:\r\n * .sourceEncoding = string with encoding label.\r\n * \"Unicode\" by default. = encoding of the incoming text.\r\n * pass some non-existing encoding name\r\n * (ex: 'Do not touch my strings! I know what I am doing.')\r\n * to make encoding code skip the encoding step.\r\n * .outputEncoding = Either valid PDF encoding name\r\n * (must be supported by jsPDF font metrics, otherwise no encoding)\r\n * or a JS object, where key = sourceCharCode, value = outputCharCode\r\n * missing keys will be treated as: sourceCharCode === outputCharCode\r\n * .noBOM\r\n * See comment higher above for explanation for why this is important\r\n * .autoencode\r\n * See comment higher above for explanation for why this is important\r\n */\r\n\r\n var i,\r\n l,\r\n sourceEncoding,\r\n encodingBlock,\r\n outputEncoding,\r\n newtext,\r\n isUnicode,\r\n ch,\r\n bch;\r\n\r\n flags = flags || {};\r\n sourceEncoding = flags.sourceEncoding || \"Unicode\";\r\n outputEncoding = flags.outputEncoding;\r\n\r\n // This 'encoding' section relies on font metrics format\r\n // attached to font objects by, among others,\r\n // \"Willow Systems' standard_font_metrics plugin\"\r\n // see jspdf.plugin.standard_font_metrics.js for format\r\n // of the font.metadata.encoding Object.\r\n // It should be something like\r\n // .encoding = {'codePages':['WinANSI....'], 'WinANSI...':{code:code, ...}}\r\n // .widths = {0:width, code:width, ..., 'fof':divisor}\r\n // .kerning = {code:{previous_char_code:shift, ..., 'fof':-divisor},...}\r\n if (\r\n (flags.autoencode || outputEncoding) &&\r\n fonts[activeFontKey].metadata &&\r\n fonts[activeFontKey].metadata[sourceEncoding] &&\r\n fonts[activeFontKey].metadata[sourceEncoding].encoding\r\n ) {\r\n encodingBlock = fonts[activeFontKey].metadata[sourceEncoding].encoding;\r\n\r\n // each font has default encoding. Some have it clearly defined.\r\n if (!outputEncoding && fonts[activeFontKey].encoding) {\r\n outputEncoding = fonts[activeFontKey].encoding;\r\n }\r\n\r\n // Hmmm, the above did not work? Let's try again, in different place.\r\n if (!outputEncoding && encodingBlock.codePages) {\r\n outputEncoding = encodingBlock.codePages[0]; // let's say, first one is the default\r\n }\r\n\r\n if (typeof outputEncoding === \"string\") {\r\n outputEncoding = encodingBlock[outputEncoding];\r\n }\r\n // we want output encoding to be a JS Object, where\r\n // key = sourceEncoding's character code and\r\n // value = outputEncoding's character code.\r\n if (outputEncoding) {\r\n isUnicode = false;\r\n newtext = [];\r\n for (i = 0, l = text.length; i < l; i++) {\r\n ch = outputEncoding[text.charCodeAt(i)];\r\n if (ch) {\r\n newtext.push(String.fromCharCode(ch));\r\n } else {\r\n newtext.push(text[i]);\r\n }\r\n\r\n // since we are looping over chars anyway, might as well\r\n // check for residual unicodeness\r\n if (newtext[i].charCodeAt(0) >> 8) {\r\n /* more than 255 */\r\n isUnicode = true;\r\n }\r\n }\r\n text = newtext.join(\"\");\r\n }\r\n }\r\n\r\n i = text.length;\r\n // isUnicode may be set to false above. Hence the triple-equal to undefined\r\n while (isUnicode === undefined && i !== 0) {\r\n if (text.charCodeAt(i - 1) >> 8) {\r\n /* more than 255 */\r\n isUnicode = true;\r\n }\r\n i--;\r\n }\r\n if (!isUnicode) {\r\n return text;\r\n }\r\n\r\n newtext = flags.noBOM ? [] : [254, 255];\r\n for (i = 0, l = text.length; i < l; i++) {\r\n ch = text.charCodeAt(i);\r\n bch = ch >> 8; // divide by 256\r\n if (bch >> 8) {\r\n /* something left after dividing by 256 second time */\r\n throw new Error(\r\n \"Character at position \" +\r\n i +\r\n \" of string '\" +\r\n text +\r\n \"' exceeds 16bits. Cannot be encoded into UCS-2 BE\"\r\n );\r\n }\r\n newtext.push(bch);\r\n newtext.push(ch - (bch << 8));\r\n }\r\n return String.fromCharCode.apply(undefined, newtext);\r\n };\r\n\r\n var pdfEscape = (API.__private__.pdfEscape = API.pdfEscape = function(\r\n text,\r\n flags\r\n ) {\r\n /**\r\n * Replace '/', '(', and ')' with pdf-safe versions\r\n *\r\n * Doing to8bitStream does NOT make this PDF display unicode text. For that\r\n * we also need to reference a unicode font and embed it - royal pain in the rear.\r\n *\r\n * There is still a benefit to to8bitStream - PDF simply cannot handle 16bit chars,\r\n * which JavaScript Strings are happy to provide. So, while we still cannot display\r\n * 2-byte characters property, at least CONDITIONALLY converting (entire string containing)\r\n * 16bit chars to (USC-2-BE) 2-bytes per char + BOM streams we ensure that entire PDF\r\n * is still parseable.\r\n * This will allow immediate support for unicode in document properties strings.\r\n */\r\n return to8bitStream(text, flags)\r\n .replace(/\\\\/g, \"\\\\\\\\\")\r\n .replace(/\\(/g, \"\\\\(\")\r\n .replace(/\\)/g, \"\\\\)\");\r\n });\r\n\r\n var beginPage = (API.__private__.beginPage = function(format) {\r\n pages[++page] = [];\r\n pagesContext[page] = {\r\n objId: 0,\r\n contentsObjId: 0,\r\n userUnit: Number(userUnit),\r\n artBox: null,\r\n bleedBox: null,\r\n cropBox: null,\r\n trimBox: null,\r\n mediaBox: {\r\n bottomLeftX: 0,\r\n bottomLeftY: 0,\r\n topRightX: Number(format[0]),\r\n topRightY: Number(format[1])\r\n }\r\n };\r\n _setPage(page);\r\n setOutputDestination(pages[currentPage]);\r\n });\r\n\r\n var _addPage = function(parmFormat, parmOrientation) {\r\n var dimensions, width, height;\r\n\r\n orientation = parmOrientation || orientation;\r\n\r\n if (typeof parmFormat === \"string\") {\r\n dimensions = getPageFormat(parmFormat.toLowerCase());\r\n if (Array.isArray(dimensions)) {\r\n width = dimensions[0];\r\n height = dimensions[1];\r\n }\r\n }\r\n\r\n if (Array.isArray(parmFormat)) {\r\n width = parmFormat[0] * scaleFactor;\r\n height = parmFormat[1] * scaleFactor;\r\n }\r\n\r\n if (isNaN(width)) {\r\n width = format[0];\r\n height = format[1];\r\n }\r\n\r\n if (width > 14400 || height > 14400) {\r\n console.warn(\r\n \"A page in a PDF can not be wider or taller than 14400 userUnit. jsPDF limits the width/height to 14400\"\r\n );\r\n width = Math.min(14400, width);\r\n height = Math.min(14400, height);\r\n }\r\n\r\n format = [width, height];\r\n\r\n switch (orientation.substr(0, 1)) {\r\n case \"l\":\r\n if (height > width) {\r\n format = [height, width];\r\n }\r\n break;\r\n case \"p\":\r\n if (width > height) {\r\n format = [height, width];\r\n }\r\n break;\r\n }\r\n\r\n beginPage(format);\r\n\r\n // Set line width\r\n setLineWidth(lineWidth);\r\n // Set draw color\r\n out(strokeColor);\r\n // resurrecting non-default line caps, joins\r\n if (lineCapID !== 0) {\r\n out(lineCapID + \" J\");\r\n }\r\n if (lineJoinID !== 0) {\r\n out(lineJoinID + \" j\");\r\n }\r\n events.publish(\"addPage\", {\r\n pageNumber: page\r\n });\r\n };\r\n\r\n var _deletePage = function(n) {\r\n if (n > 0 && n <= page) {\r\n pages.splice(n, 1);\r\n pagesContext.splice(n, 1);\r\n page--;\r\n if (currentPage > page) {\r\n currentPage = page;\r\n }\r\n this.setPage(currentPage);\r\n }\r\n };\r\n\r\n var _setPage = function(n) {\r\n if (n > 0 && n <= page) {\r\n currentPage = n;\r\n }\r\n };\r\n\r\n var getNumberOfPages = (API.__private__.getNumberOfPages = API.getNumberOfPages = function() {\r\n return pages.length - 1;\r\n });\r\n\r\n /**\r\n * Returns a document-specific font key - a label assigned to a\r\n * font name + font type combination at the time the font was added\r\n * to the font inventory.\r\n *\r\n * Font key is used as label for the desired font for a block of text\r\n * to be added to the PDF document stream.\r\n * @private\r\n * @function\r\n * @param fontName {string} can be undefined on \"falthy\" to indicate \"use current\"\r\n * @param fontStyle {string} can be undefined on \"falthy\" to indicate \"use current\"\r\n * @returns {string} Font key.\r\n * @ignore\r\n */\r\n var getFont = function(fontName, fontStyle, options) {\r\n var key = undefined,\r\n fontNameLowerCase;\r\n options = options || {};\r\n\r\n fontName =\r\n fontName !== undefined ? fontName : fonts[activeFontKey].fontName;\r\n fontStyle =\r\n fontStyle !== undefined ? fontStyle : fonts[activeFontKey].fontStyle;\r\n fontNameLowerCase = fontName.toLowerCase();\r\n\r\n if (\r\n fontmap[fontNameLowerCase] !== undefined &&\r\n fontmap[fontNameLowerCase][fontStyle] !== undefined\r\n ) {\r\n key = fontmap[fontNameLowerCase][fontStyle];\r\n } else if (\r\n fontmap[fontName] !== undefined &&\r\n fontmap[fontName][fontStyle] !== undefined\r\n ) {\r\n key = fontmap[fontName][fontStyle];\r\n } else {\r\n if (options.disableWarning === false) {\r\n console.warn(\r\n \"Unable to look up font label for font '\" +\r\n fontName +\r\n \"', '\" +\r\n fontStyle +\r\n \"'. Refer to getFontList() for available fonts.\"\r\n );\r\n }\r\n }\r\n\r\n if (!key && !options.noFallback) {\r\n key = fontmap[\"times\"][fontStyle];\r\n if (key == null) {\r\n key = fontmap[\"times\"][\"normal\"];\r\n }\r\n }\r\n return key;\r\n };\r\n\r\n var putInfo = (API.__private__.putInfo = function() {\r\n var objectId = newObject();\r\n var encryptor = function(data) {\r\n return data;\r\n };\r\n if (encryptionOptions !== null) {\r\n encryptor = encryption.encryptor(objectId, 0);\r\n }\r\n out(\"<<\");\r\n out(\"/Producer (\" + pdfEscape(encryptor(\"jsPDF \" + jsPDF.version)) + \")\");\r\n for (var key in documentProperties) {\r\n if (documentProperties.hasOwnProperty(key) && documentProperties[key]) {\r\n out(\r\n \"/\" +\r\n key.substr(0, 1).toUpperCase() +\r\n key.substr(1) +\r\n \" (\" +\r\n pdfEscape(encryptor(documentProperties[key])) +\r\n \")\"\r\n );\r\n }\r\n }\r\n out(\"/CreationDate (\" + pdfEscape(encryptor(creationDate)) + \")\");\r\n out(\">>\");\r\n out(\"endobj\");\r\n });\r\n\r\n var putCatalog = (API.__private__.putCatalog = function(options) {\r\n options = options || {};\r\n var tmpRootDictionaryObjId =\r\n options.rootDictionaryObjId || rootDictionaryObjId;\r\n newObject();\r\n out(\"<<\");\r\n out(\"/Type /Catalog\");\r\n out(\"/Pages \" + tmpRootDictionaryObjId + \" 0 R\");\r\n // PDF13ref Section 7.2.1\r\n if (!zoomMode) zoomMode = \"fullwidth\";\r\n switch (zoomMode) {\r\n case \"fullwidth\":\r\n out(\"/OpenAction [3 0 R /FitH null]\");\r\n break;\r\n case \"fullheight\":\r\n out(\"/OpenAction [3 0 R /FitV null]\");\r\n break;\r\n case \"fullpage\":\r\n out(\"/OpenAction [3 0 R /Fit]\");\r\n break;\r\n case \"original\":\r\n out(\"/OpenAction [3 0 R /XYZ null null 1]\");\r\n break;\r\n default:\r\n var pcn = \"\" + zoomMode;\r\n if (pcn.substr(pcn.length - 1) === \"%\")\r\n zoomMode = parseInt(zoomMode) / 100;\r\n if (typeof zoomMode === \"number\") {\r\n out(\"/OpenAction [3 0 R /XYZ null null \" + f2(zoomMode) + \"]\");\r\n }\r\n }\r\n if (!layoutMode) layoutMode = \"continuous\";\r\n switch (layoutMode) {\r\n case \"continuous\":\r\n out(\"/PageLayout /OneColumn\");\r\n break;\r\n case \"single\":\r\n out(\"/PageLayout /SinglePage\");\r\n break;\r\n case \"two\":\r\n case \"twoleft\":\r\n out(\"/PageLayout /TwoColumnLeft\");\r\n break;\r\n case \"tworight\":\r\n out(\"/PageLayout /TwoColumnRight\");\r\n break;\r\n }\r\n if (pageMode) {\r\n /**\r\n * A name object specifying how the document should be displayed when opened:\r\n * UseNone : Neither document outline nor thumbnail images visible -- DEFAULT\r\n * UseOutlines : Document outline visible\r\n * UseThumbs : Thumbnail images visible\r\n * FullScreen : Full-screen mode, with no menu bar, window controls, or any other window visible\r\n */\r\n out(\"/PageMode /\" + pageMode);\r\n }\r\n events.publish(\"putCatalog\");\r\n out(\">>\");\r\n out(\"endobj\");\r\n });\r\n\r\n var putTrailer = (API.__private__.putTrailer = function() {\r\n out(\"trailer\");\r\n out(\"<<\");\r\n out(\"/Size \" + (objectNumber + 1));\r\n // Root and Info must be the last and second last objects written respectively\r\n out(\"/Root \" + objectNumber + \" 0 R\");\r\n out(\"/Info \" + (objectNumber - 1) + \" 0 R\");\r\n if (encryptionOptions !== null) {\r\n out(\"/Encrypt \" + encryption.oid + \" 0 R\");\r\n }\r\n out(\"/ID [ <\" + fileId + \"> <\" + fileId + \"> ]\");\r\n out(\">>\");\r\n });\r\n\r\n var putHeader = (API.__private__.putHeader = function() {\r\n out(\"%PDF-\" + pdfVersion);\r\n out(\"%\\xBA\\xDF\\xAC\\xE0\");\r\n });\r\n\r\n var putXRef = (API.__private__.putXRef = function() {\r\n var p = \"0000000000\";\r\n\r\n out(\"xref\");\r\n out(\"0 \" + (objectNumber + 1));\r\n out(\"0000000000 65535 f \");\r\n for (var i = 1; i <= objectNumber; i++) {\r\n var offset = offsets[i];\r\n if (typeof offset === \"function\") {\r\n out((p + offsets[i]()).slice(-10) + \" 00000 n \");\r\n } else {\r\n if (typeof offsets[i] !== \"undefined\") {\r\n out((p + offsets[i]).slice(-10) + \" 00000 n \");\r\n } else {\r\n out(\"0000000000 00000 n \");\r\n }\r\n }\r\n }\r\n });\r\n\r\n var buildDocument = (API.__private__.buildDocument = function() {\r\n resetDocument();\r\n setOutputDestination(content);\r\n\r\n events.publish(\"buildDocument\");\r\n\r\n putHeader();\r\n putPages();\r\n putAdditionalObjects();\r\n putResources();\r\n if (encryptionOptions !== null) putEncryptionDict();\r\n putInfo();\r\n putCatalog();\r\n\r\n var offsetOfXRef = contentLength;\r\n putXRef();\r\n putTrailer();\r\n out(\"startxref\");\r\n out(\"\" + offsetOfXRef);\r\n out(\"%%EOF\");\r\n\r\n setOutputDestination(pages[currentPage]);\r\n\r\n return content.join(\"\\n\");\r\n });\r\n\r\n var getBlob = (API.__private__.getBlob = function(data) {\r\n return new Blob([getArrayBuffer(data)], {\r\n type: \"application/pdf\"\r\n });\r\n });\r\n\r\n /**\r\n * Generates the PDF document.\r\n *\r\n * If `type` argument is undefined, output is raw body of resulting PDF returned as a string.\r\n *\r\n * @param {string} type A string identifying one of the possible output types.
\r\n * Possible values are:
\r\n * 'arraybuffer' -> (ArrayBuffer)
\r\n * 'blob' -> (Blob)
\r\n * 'bloburi'/'bloburl' -> (string)
\r\n * 'datauristring'/'dataurlstring' -> (string)
\r\n * 'datauri'/'dataurl' -> (undefined) -> change location to generated datauristring/dataurlstring
\r\n * 'dataurlnewwindow' -> (window | null | undefined) throws error if global isn't a window object(node)
\r\n * 'pdfobjectnewwindow' -> (window | null) throws error if global isn't a window object(node)
\r\n * 'pdfjsnewwindow' -> (wind | null)\r\n * @param {Object|string} options An object providing some additional signalling to PDF generator.
\r\n * Possible options are 'filename'.
\r\n * A string can be passed instead of {filename:string} and defaults to 'generated.pdf'\r\n * @function\r\n * @instance\r\n * @returns {string|window|ArrayBuffer|Blob|jsPDF|null|undefined}\r\n * @memberof jsPDF#\r\n * @name output\r\n */\r\n var output = (API.output = API.__private__.output = SAFE(function output(\r\n type,\r\n options\r\n ) {\r\n options = options || {};\r\n\r\n if (typeof options === \"string\") {\r\n options = {\r\n filename: options\r\n };\r\n } else {\r\n options.filename = options.filename || \"generated.pdf\";\r\n }\r\n\r\n switch (type) {\r\n case undefined:\r\n return buildDocument();\r\n case \"save\":\r\n API.save(options.filename);\r\n break;\r\n case \"arraybuffer\":\r\n return getArrayBuffer(buildDocument());\r\n case \"blob\":\r\n return getBlob(buildDocument());\r\n case \"bloburi\":\r\n case \"bloburl\":\r\n // Developer is responsible of calling revokeObjectURL\r\n if (\r\n typeof globalObject.URL !== \"undefined\" &&\r\n typeof globalObject.URL.createObjectURL === \"function\"\r\n ) {\r\n return (\r\n (globalObject.URL &&\r\n globalObject.URL.createObjectURL(getBlob(buildDocument()))) ||\r\n void 0\r\n );\r\n } else {\r\n console.warn(\r\n \"bloburl is not supported by your system, because URL.createObjectURL is not supported by your browser.\"\r\n );\r\n }\r\n break;\r\n case \"datauristring\":\r\n case \"dataurlstring\":\r\n var dataURI = \"\";\r\n var pdfDocument = buildDocument();\r\n try {\r\n dataURI = btoa(pdfDocument);\r\n } catch (e) {\r\n dataURI = btoa(unescape(encodeURIComponent(pdfDocument)));\r\n }\r\n return (\r\n \"data:application/pdf;filename=\" +\r\n options.filename +\r\n \";base64,\" +\r\n dataURI\r\n );\r\n case \"pdfobjectnewwindow\":\r\n if (\r\n Object.prototype.toString.call(globalObject) === \"[object Window]\"\r\n ) {\r\n var pdfObjectUrl =\r\n \"https://cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js\";\r\n var integrity =\r\n ' integrity=\"sha512-4ze/a9/4jqu+tX9dfOqJYSvyYd5M6qum/3HpCLr+/Jqf0whc37VUbkpNGHR7/8pSnCFw47T1fmIpwBV7UySh3g==\" crossorigin=\"anonymous\"';\r\n\r\n if (options.pdfObjectUrl) {\r\n pdfObjectUrl = options.pdfObjectUrl;\r\n integrity = \"\";\r\n }\r\n\r\n var htmlForNewWindow =\r\n \"\" +\r\n '\";\r\n var nW = globalObject.open();\r\n\r\n if (nW !== null) {\r\n nW.document.write(htmlForNewWindow);\r\n }\r\n return nW;\r\n } else {\r\n throw new Error(\r\n \"The option pdfobjectnewwindow just works in a browser-environment.\"\r\n );\r\n }\r\n case \"pdfjsnewwindow\":\r\n if (\r\n Object.prototype.toString.call(globalObject) === \"[object Window]\"\r\n ) {\r\n var pdfJsUrl = options.pdfJsUrl || \"examples/PDF.js/web/viewer.html\";\r\n var htmlForPDFjsNewWindow =\r\n \"\" +\r\n \"\" +\r\n '' +\r\n \"\";\r\n var dataURLNewWindow = globalObject.open();\r\n if (dataURLNewWindow !== null) {\r\n dataURLNewWindow.document.write(htmlForDataURLNewWindow);\r\n dataURLNewWindow.document.title = options.filename;\r\n }\r\n if (dataURLNewWindow || typeof safari === \"undefined\")\r\n return dataURLNewWindow;\r\n } else {\r\n throw new Error(\r\n \"The option dataurlnewwindow just works in a browser-environment.\"\r\n );\r\n }\r\n break;\r\n case \"datauri\":\r\n case \"dataurl\":\r\n return (globalObject.document.location.href = this.output(\r\n \"datauristring\",\r\n options\r\n ));\r\n default:\r\n return null;\r\n }\r\n }));\r\n\r\n /**\r\n * Used to see if a supplied hotfix was requested when the pdf instance was created.\r\n * @param {string} hotfixName - The name of the hotfix to check.\r\n * @returns {boolean}\r\n */\r\n var hasHotfix = function(hotfixName) {\r\n return (\r\n Array.isArray(hotfixes) === true && hotfixes.indexOf(hotfixName) > -1\r\n );\r\n };\r\n\r\n switch (unit) {\r\n case \"pt\":\r\n scaleFactor = 1;\r\n break;\r\n case \"mm\":\r\n scaleFactor = 72 / 25.4;\r\n break;\r\n case \"cm\":\r\n scaleFactor = 72 / 2.54;\r\n break;\r\n case \"in\":\r\n scaleFactor = 72;\r\n break;\r\n case \"px\":\r\n if (hasHotfix(\"px_scaling\") == true) {\r\n scaleFactor = 72 / 96;\r\n } else {\r\n scaleFactor = 96 / 72;\r\n }\r\n break;\r\n case \"pc\":\r\n scaleFactor = 12;\r\n break;\r\n case \"em\":\r\n scaleFactor = 12;\r\n break;\r\n case \"ex\":\r\n scaleFactor = 6;\r\n break;\r\n default:\r\n if (typeof unit === \"number\") {\r\n scaleFactor = unit;\r\n } else {\r\n throw new Error(\"Invalid unit: \" + unit);\r\n }\r\n }\r\n\r\n var encryption = null;\r\n setCreationDate();\r\n setFileId();\r\n\r\n var getEncryptor = function(objectId) {\r\n if (encryptionOptions !== null) {\r\n return encryption.encryptor(objectId, 0);\r\n }\r\n return function(data) {\r\n return data;\r\n };\r\n };\r\n\r\n //---------------------------------------\r\n // Public API\r\n\r\n var getPageInfo = (API.__private__.getPageInfo = API.getPageInfo = function(\r\n pageNumberOneBased\r\n ) {\r\n if (isNaN(pageNumberOneBased) || pageNumberOneBased % 1 !== 0) {\r\n throw new Error(\"Invalid argument passed to jsPDF.getPageInfo\");\r\n }\r\n var objId = pagesContext[pageNumberOneBased].objId;\r\n return {\r\n objId: objId,\r\n pageNumber: pageNumberOneBased,\r\n pageContext: pagesContext[pageNumberOneBased]\r\n };\r\n });\r\n\r\n var getPageInfoByObjId = (API.__private__.getPageInfoByObjId = function(\r\n objId\r\n ) {\r\n if (isNaN(objId) || objId % 1 !== 0) {\r\n throw new Error(\"Invalid argument passed to jsPDF.getPageInfoByObjId\");\r\n }\r\n for (var pageNumber in pagesContext) {\r\n if (pagesContext[pageNumber].objId === objId) {\r\n break;\r\n }\r\n }\r\n return getPageInfo(pageNumber);\r\n });\r\n\r\n var getCurrentPageInfo = (API.__private__.getCurrentPageInfo = API.getCurrentPageInfo = function() {\r\n return {\r\n objId: pagesContext[currentPage].objId,\r\n pageNumber: currentPage,\r\n pageContext: pagesContext[currentPage]\r\n };\r\n });\r\n\r\n /**\r\n * Adds (and transfers the focus to) new page to the PDF document.\r\n * @param format {String/Array} The format of the new page. Can be:
  • a0 - a10
  • b0 - b10
  • c0 - c10
  • dl
  • letter
  • government-letter
  • legal
  • junior-legal
  • ledger
  • tabloid
  • credit-card

\r\n * Default is \"a4\". If you want to use your own format just pass instead of one of the above predefined formats the size as an number-array, e.g. [595.28, 841.89]\r\n * @param orientation {string} Orientation of the new page. Possible values are \"portrait\" or \"landscape\" (or shortcuts \"p\" (Default), \"l\").\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n *\r\n * @memberof jsPDF#\r\n * @name addPage\r\n */\r\n API.addPage = function() {\r\n _addPage.apply(this, arguments);\r\n return this;\r\n };\r\n /**\r\n * Adds (and transfers the focus to) new page to the PDF document.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n *\r\n * @memberof jsPDF#\r\n * @name setPage\r\n * @param {number} page Switch the active page to the page number specified (indexed starting at 1).\r\n * @example\r\n * doc = jsPDF()\r\n * doc.addPage()\r\n * doc.addPage()\r\n * doc.text('I am on page 3', 10, 10)\r\n * doc.setPage(1)\r\n * doc.text('I am on page 1', 10, 10)\r\n */\r\n API.setPage = function() {\r\n _setPage.apply(this, arguments);\r\n setOutputDestination.call(this, pages[currentPage]);\r\n return this;\r\n };\r\n\r\n /**\r\n * @name insertPage\r\n * @memberof jsPDF#\r\n *\r\n * @function\r\n * @instance\r\n * @param {Object} beforePage\r\n * @returns {jsPDF}\r\n */\r\n API.insertPage = function(beforePage) {\r\n this.addPage();\r\n this.movePage(currentPage, beforePage);\r\n return this;\r\n };\r\n\r\n /**\r\n * @name movePage\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {number} targetPage\r\n * @param {number} beforePage\r\n * @returns {jsPDF}\r\n */\r\n API.movePage = function(targetPage, beforePage) {\r\n var tmpPages, tmpPagesContext;\r\n if (targetPage > beforePage) {\r\n tmpPages = pages[targetPage];\r\n tmpPagesContext = pagesContext[targetPage];\r\n for (var i = targetPage; i > beforePage; i--) {\r\n pages[i] = pages[i - 1];\r\n pagesContext[i] = pagesContext[i - 1];\r\n }\r\n pages[beforePage] = tmpPages;\r\n pagesContext[beforePage] = tmpPagesContext;\r\n this.setPage(beforePage);\r\n } else if (targetPage < beforePage) {\r\n tmpPages = pages[targetPage];\r\n tmpPagesContext = pagesContext[targetPage];\r\n for (var j = targetPage; j < beforePage; j++) {\r\n pages[j] = pages[j + 1];\r\n pagesContext[j] = pagesContext[j + 1];\r\n }\r\n pages[beforePage] = tmpPages;\r\n pagesContext[beforePage] = tmpPagesContext;\r\n this.setPage(beforePage);\r\n }\r\n return this;\r\n };\r\n\r\n /**\r\n * Deletes a page from the PDF.\r\n * @name deletePage\r\n * @memberof jsPDF#\r\n * @function\r\n * @param {number} targetPage\r\n * @instance\r\n * @returns {jsPDF}\r\n */\r\n API.deletePage = function() {\r\n _deletePage.apply(this, arguments);\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds text to page. Supports adding multiline text when 'text' argument is an Array of Strings.\r\n *\r\n * @function\r\n * @instance\r\n * @param {String|Array} text String or array of strings to be added to the page. Each line is shifted one line down per font, spacing settings declared before this call.\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page.\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page.\r\n * @param {Object} [options] - Collection of settings signaling how the text must be encoded.\r\n * @param {string} [options.align=left] - The alignment of the text, possible values: left, center, right, justify.\r\n * @param {string} [options.baseline=alphabetic] - Sets text baseline used when drawing the text, possible values: alphabetic, ideographic, bottom, top, middle, hanging\r\n * @param {number|Matrix} [options.angle=0] - Rotate the text clockwise or counterclockwise. Expects the angle in degree.\r\n * @param {number} [options.rotationDirection=1] - Direction of the rotation. 0 = clockwise, 1 = counterclockwise.\r\n * @param {number} [options.charSpace=0] - The space between each letter.\r\n * @param {number} [options.horizontalScale=1] - Horizontal scale of the text as a factor of the regular size.\r\n * @param {number} [options.lineHeightFactor=1.15] - The lineheight of each line.\r\n * @param {Object} [options.flags] - Flags for to8bitStream.\r\n * @param {boolean} [options.flags.noBOM=true] - Don't add BOM to Unicode-text.\r\n * @param {boolean} [options.flags.autoencode=true] - Autoencode the Text.\r\n * @param {number} [options.maxWidth=0] - Split the text by given width, 0 = no split.\r\n * @param {string} [options.renderingMode=fill] - Set how the text should be rendered, possible values: fill, stroke, fillThenStroke, invisible, fillAndAddForClipping, strokeAndAddPathForClipping, fillThenStrokeAndAddToPathForClipping, addToPathForClipping.\r\n * @param {boolean} [options.isInputVisual] - Option for the BidiEngine\r\n * @param {boolean} [options.isOutputVisual] - Option for the BidiEngine\r\n * @param {boolean} [options.isInputRtl] - Option for the BidiEngine\r\n * @param {boolean} [options.isOutputRtl] - Option for the BidiEngine\r\n * @param {boolean} [options.isSymmetricSwapping] - Option for the BidiEngine\r\n * @param {number|Matrix} transform If transform is a number the text will be rotated by this value around the anchor set by x and y.\r\n *\r\n * If it is a Matrix, this matrix gets directly applied to the text, which allows shearing\r\n * effects etc.; the x and y offsets are then applied AFTER the coordinate system has been established by this\r\n * matrix. This means passing a rotation matrix that is equivalent to some rotation angle will in general yield a\r\n * DIFFERENT result. A matrix is only allowed in \"advanced\" API mode.\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name text\r\n */\r\n API.__private__.text = API.text = function(text, x, y, options, transform) {\r\n /*\r\n * Inserts something like this into PDF\r\n * BT\r\n * /F1 16 Tf % Font name + size\r\n * 16 TL % How many units down for next line in multiline text\r\n * 0 g % color\r\n * 28.35 813.54 Td % position\r\n * (line one) Tj\r\n * T* (line two) Tj\r\n * T* (line three) Tj\r\n * ET\r\n */\r\n options = options || {};\r\n var scope = options.scope || this;\r\n var payload, da, angle, align, charSpace, maxWidth, flags, horizontalScale;\r\n\r\n // Pre-August-2012 the order of arguments was function(x, y, text, flags)\r\n // in effort to make all calls have similar signature like\r\n // function(data, coordinates... , miscellaneous)\r\n // this method had its args flipped.\r\n // code below allows backward compatibility with old arg order.\r\n if (\r\n typeof text === \"number\" &&\r\n typeof x === \"number\" &&\r\n (typeof y === \"string\" || Array.isArray(y))\r\n ) {\r\n var tmp = y;\r\n y = x;\r\n x = text;\r\n text = tmp;\r\n }\r\n\r\n var transformationMatrix;\r\n\r\n if (arguments[3] instanceof Matrix === false) {\r\n flags = arguments[3];\r\n angle = arguments[4];\r\n align = arguments[5];\r\n\r\n if (typeof flags !== \"object\" || flags === null) {\r\n if (typeof angle === \"string\") {\r\n align = angle;\r\n angle = null;\r\n }\r\n if (typeof flags === \"string\") {\r\n align = flags;\r\n flags = null;\r\n }\r\n if (typeof flags === \"number\") {\r\n angle = flags;\r\n flags = null;\r\n }\r\n options = {\r\n flags: flags,\r\n angle: angle,\r\n align: align\r\n };\r\n }\r\n } else {\r\n advancedApiModeTrap(\r\n \"The transform parameter of text() with a Matrix value\"\r\n );\r\n transformationMatrix = transform;\r\n }\r\n\r\n if (isNaN(x) || isNaN(y) || typeof text === \"undefined\" || text === null) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.text\");\r\n }\r\n\r\n if (text.length === 0) {\r\n return scope;\r\n }\r\n\r\n var xtra = \"\";\r\n var isHex = false;\r\n var lineHeight =\r\n typeof options.lineHeightFactor === \"number\"\r\n ? options.lineHeightFactor\r\n : lineHeightFactor;\r\n var scaleFactor = scope.internal.scaleFactor;\r\n\r\n function ESC(s) {\r\n s = s.split(\"\\t\").join(Array(options.TabLen || 9).join(\" \"));\r\n return pdfEscape(s, flags);\r\n }\r\n\r\n function transformTextToSpecialArray(text) {\r\n //we don't want to destroy original text array, so cloning it\r\n var sa = text.concat();\r\n var da = [];\r\n var len = sa.length;\r\n var curDa;\r\n //we do array.join('text that must not be PDFescaped\")\r\n //thus, pdfEscape each component separately\r\n while (len--) {\r\n curDa = sa.shift();\r\n if (typeof curDa === \"string\") {\r\n da.push(curDa);\r\n } else {\r\n if (\r\n Array.isArray(text) &&\r\n (curDa.length === 1 ||\r\n (curDa[1] === undefined && curDa[2] === undefined))\r\n ) {\r\n da.push(curDa[0]);\r\n } else {\r\n da.push([curDa[0], curDa[1], curDa[2]]);\r\n }\r\n }\r\n }\r\n return da;\r\n }\r\n\r\n function processTextByFunction(text, processingFunction) {\r\n var result;\r\n if (typeof text === \"string\") {\r\n result = processingFunction(text)[0];\r\n } else if (Array.isArray(text)) {\r\n //we don't want to destroy original text array, so cloning it\r\n var sa = text.concat();\r\n var da = [];\r\n var len = sa.length;\r\n var curDa;\r\n var tmpResult;\r\n //we do array.join('text that must not be PDFescaped\")\r\n //thus, pdfEscape each component separately\r\n while (len--) {\r\n curDa = sa.shift();\r\n if (typeof curDa === \"string\") {\r\n da.push(processingFunction(curDa)[0]);\r\n } else if (Array.isArray(curDa) && typeof curDa[0] === \"string\") {\r\n tmpResult = processingFunction(curDa[0], curDa[1], curDa[2]);\r\n da.push([tmpResult[0], tmpResult[1], tmpResult[2]]);\r\n }\r\n }\r\n result = da;\r\n }\r\n return result;\r\n }\r\n\r\n //Check if text is of type String\r\n var textIsOfTypeString = false;\r\n var tmpTextIsOfTypeString = true;\r\n\r\n if (typeof text === \"string\") {\r\n textIsOfTypeString = true;\r\n } else if (Array.isArray(text)) {\r\n //we don't want to destroy original text array, so cloning it\r\n var sa = text.concat();\r\n da = [];\r\n var len = sa.length;\r\n var curDa;\r\n //we do array.join('text that must not be PDFescaped\")\r\n //thus, pdfEscape each component separately\r\n while (len--) {\r\n curDa = sa.shift();\r\n if (\r\n typeof curDa !== \"string\" ||\r\n (Array.isArray(curDa) && typeof curDa[0] !== \"string\")\r\n ) {\r\n tmpTextIsOfTypeString = false;\r\n }\r\n }\r\n textIsOfTypeString = tmpTextIsOfTypeString;\r\n }\r\n if (textIsOfTypeString === false) {\r\n throw new Error(\r\n 'Type of text must be string or Array. \"' +\r\n text +\r\n '\" is not recognized.'\r\n );\r\n }\r\n\r\n //If there are any newlines in text, we assume\r\n //the user wanted to print multiple lines, so break the\r\n //text up into an array. If the text is already an array,\r\n //we assume the user knows what they are doing.\r\n //Convert text into an array anyway to simplify\r\n //later code.\r\n\r\n if (typeof text === \"string\") {\r\n if (text.match(/[\\r?\\n]/)) {\r\n text = text.split(/\\r\\n|\\r|\\n/g);\r\n } else {\r\n text = [text];\r\n }\r\n }\r\n\r\n //baseline\r\n var height = activeFontSize / scope.internal.scaleFactor;\r\n var descent = height * (lineHeight - 1);\r\n\r\n switch (options.baseline) {\r\n case \"bottom\":\r\n y -= descent;\r\n break;\r\n case \"top\":\r\n y += height - descent;\r\n break;\r\n case \"hanging\":\r\n y += height - 2 * descent;\r\n break;\r\n case \"middle\":\r\n y += height / 2 - descent;\r\n break;\r\n case \"ideographic\":\r\n case \"alphabetic\":\r\n default:\r\n // do nothing, everything is fine\r\n break;\r\n }\r\n\r\n //multiline\r\n maxWidth = options.maxWidth || 0;\r\n\r\n if (maxWidth > 0) {\r\n if (typeof text === \"string\") {\r\n text = scope.splitTextToSize(text, maxWidth);\r\n } else if (Object.prototype.toString.call(text) === \"[object Array]\") {\r\n text = text.reduce(function(acc, textLine) {\r\n return acc.concat(scope.splitTextToSize(textLine, maxWidth));\r\n }, []);\r\n }\r\n }\r\n\r\n //creating Payload-Object to make text byRef\r\n payload = {\r\n text: text,\r\n x: x,\r\n y: y,\r\n options: options,\r\n mutex: {\r\n pdfEscape: pdfEscape,\r\n activeFontKey: activeFontKey,\r\n fonts: fonts,\r\n activeFontSize: activeFontSize\r\n }\r\n };\r\n events.publish(\"preProcessText\", payload);\r\n\r\n text = payload.text;\r\n options = payload.options;\r\n\r\n //angle\r\n angle = options.angle;\r\n\r\n if (\r\n transformationMatrix instanceof Matrix === false &&\r\n angle &&\r\n typeof angle === \"number\"\r\n ) {\r\n angle *= Math.PI / 180;\r\n\r\n if (options.rotationDirection === 0) {\r\n angle = -angle;\r\n }\r\n\r\n if (apiMode === ApiMode.ADVANCED) {\r\n angle = -angle;\r\n }\r\n\r\n var c = Math.cos(angle);\r\n var s = Math.sin(angle);\r\n transformationMatrix = new Matrix(c, s, -s, c, 0, 0);\r\n } else if (angle && angle instanceof Matrix) {\r\n transformationMatrix = angle;\r\n }\r\n\r\n if (apiMode === ApiMode.ADVANCED && !transformationMatrix) {\r\n transformationMatrix = identityMatrix;\r\n }\r\n\r\n //charSpace\r\n\r\n charSpace = options.charSpace || activeCharSpace;\r\n\r\n if (typeof charSpace !== \"undefined\") {\r\n xtra += hpf(scale(charSpace)) + \" Tc\\n\";\r\n this.setCharSpace(this.getCharSpace() || 0);\r\n }\r\n\r\n horizontalScale = options.horizontalScale;\r\n if (typeof horizontalScale !== \"undefined\") {\r\n xtra += hpf(horizontalScale * 100) + \" Tz\\n\";\r\n }\r\n\r\n //lang\r\n\r\n var lang = options.lang;\r\n\r\n if (lang) {\r\n // xtra += \"/Lang (\" + lang +\")\\n\";\r\n }\r\n\r\n //renderingMode\r\n var renderingMode = -1;\r\n var parmRenderingMode =\r\n typeof options.renderingMode !== \"undefined\"\r\n ? options.renderingMode\r\n : options.stroke;\r\n var pageContext = scope.internal.getCurrentPageInfo().pageContext;\r\n\r\n switch (parmRenderingMode) {\r\n case 0:\r\n case false:\r\n case \"fill\":\r\n renderingMode = 0;\r\n break;\r\n case 1:\r\n case true:\r\n case \"stroke\":\r\n renderingMode = 1;\r\n break;\r\n case 2:\r\n case \"fillThenStroke\":\r\n renderingMode = 2;\r\n break;\r\n case 3:\r\n case \"invisible\":\r\n renderingMode = 3;\r\n break;\r\n case 4:\r\n case \"fillAndAddForClipping\":\r\n renderingMode = 4;\r\n break;\r\n case 5:\r\n case \"strokeAndAddPathForClipping\":\r\n renderingMode = 5;\r\n break;\r\n case 6:\r\n case \"fillThenStrokeAndAddToPathForClipping\":\r\n renderingMode = 6;\r\n break;\r\n case 7:\r\n case \"addToPathForClipping\":\r\n renderingMode = 7;\r\n break;\r\n }\r\n\r\n var usedRenderingMode =\r\n typeof pageContext.usedRenderingMode !== \"undefined\"\r\n ? pageContext.usedRenderingMode\r\n : -1;\r\n\r\n //if the coder wrote it explicitly to use a specific\r\n //renderingMode, then use it\r\n if (renderingMode !== -1) {\r\n xtra += renderingMode + \" Tr\\n\";\r\n //otherwise check if we used the rendering Mode already\r\n //if so then set the rendering Mode...\r\n } else if (usedRenderingMode !== -1) {\r\n xtra += \"0 Tr\\n\";\r\n }\r\n\r\n if (renderingMode !== -1) {\r\n pageContext.usedRenderingMode = renderingMode;\r\n }\r\n\r\n //align\r\n align = options.align || \"left\";\r\n var leading = activeFontSize * lineHeight;\r\n var pageWidth = scope.internal.pageSize.getWidth();\r\n var activeFont = fonts[activeFontKey];\r\n charSpace = options.charSpace || activeCharSpace;\r\n maxWidth = options.maxWidth || 0;\r\n\r\n var lineWidths;\r\n flags = Object.assign({ autoencode: true, noBOM: true }, options.flags);\r\n\r\n var wordSpacingPerLine = [];\r\n var findWidth = function(v) {\r\n return (\r\n (scope.getStringUnitWidth(v, {\r\n font: activeFont,\r\n charSpace: charSpace,\r\n fontSize: activeFontSize,\r\n doKerning: false\r\n }) *\r\n activeFontSize) /\r\n scaleFactor\r\n );\r\n };\r\n if (Object.prototype.toString.call(text) === \"[object Array]\") {\r\n da = transformTextToSpecialArray(text);\r\n var newY;\r\n if (align !== \"left\") {\r\n lineWidths = da.map(findWidth);\r\n }\r\n //The first line uses the \"main\" Td setting,\r\n //and the subsequent lines are offset by the\r\n //previous line's x coordinate.\r\n var prevWidth = 0;\r\n var newX;\r\n if (align === \"right\") {\r\n //The passed in x coordinate defines the\r\n //rightmost point of the text.\r\n x -= lineWidths[0];\r\n text = [];\r\n len = da.length;\r\n for (var i = 0; i < len; i++) {\r\n if (i === 0) {\r\n newX = getHorizontalCoordinate(x);\r\n newY = getVerticalCoordinate(y);\r\n } else {\r\n newX = scale(prevWidth - lineWidths[i]);\r\n newY = -leading;\r\n }\r\n text.push([da[i], newX, newY]);\r\n prevWidth = lineWidths[i];\r\n }\r\n } else if (align === \"center\") {\r\n //The passed in x coordinate defines\r\n //the center point.\r\n x -= lineWidths[0] / 2;\r\n text = [];\r\n len = da.length;\r\n for (var j = 0; j < len; j++) {\r\n if (j === 0) {\r\n newX = getHorizontalCoordinate(x);\r\n newY = getVerticalCoordinate(y);\r\n } else {\r\n newX = scale((prevWidth - lineWidths[j]) / 2);\r\n newY = -leading;\r\n }\r\n text.push([da[j], newX, newY]);\r\n prevWidth = lineWidths[j];\r\n }\r\n } else if (align === \"left\") {\r\n text = [];\r\n len = da.length;\r\n for (var h = 0; h < len; h++) {\r\n text.push(da[h]);\r\n }\r\n } else if (align === \"justify\" && activeFont.encoding === \"Identity-H\") {\r\n // when using unicode fonts, wordSpacePerLine does not apply\r\n text = [];\r\n len = da.length;\r\n maxWidth = maxWidth !== 0 ? maxWidth : pageWidth;\r\n let backToStartX = 0;\r\n for (var l = 0; l < len; l++) {\r\n newY = l === 0 ? getVerticalCoordinate(y) : -leading;\r\n newX = l === 0 ? getHorizontalCoordinate(x) : backToStartX;\r\n if (l < len - 1) {\r\n let spacing = scale(\r\n (maxWidth - lineWidths[l]) / (da[l].split(\" \").length - 1)\r\n );\r\n let words = da[l].split(\" \");\r\n text.push([words[0] + \" \", newX, newY]);\r\n backToStartX = 0; // distance to reset back to the left\r\n for (let i = 1; i < words.length; i++) {\r\n let shiftAmount =\r\n (findWidth(words[i - 1] + \" \" + words[i]) -\r\n findWidth(words[i])) *\r\n scaleFactor +\r\n spacing;\r\n if (i == words.length - 1) text.push([words[i], shiftAmount, 0]);\r\n else text.push([words[i] + \" \", shiftAmount, 0]);\r\n backToStartX -= shiftAmount;\r\n }\r\n } else {\r\n text.push([da[l], newX, newY]);\r\n }\r\n }\r\n text.push([\"\", backToStartX, 0]);\r\n } else if (align === \"justify\") {\r\n text = [];\r\n len = da.length;\r\n maxWidth = maxWidth !== 0 ? maxWidth : pageWidth;\r\n for (var l = 0; l < len; l++) {\r\n newY = l === 0 ? getVerticalCoordinate(y) : -leading;\r\n newX = l === 0 ? getHorizontalCoordinate(x) : 0;\r\n if (l < len - 1) {\r\n wordSpacingPerLine.push(\r\n hpf(\r\n scale(\r\n (maxWidth - lineWidths[l]) / (da[l].split(\" \").length - 1)\r\n )\r\n )\r\n );\r\n } else {\r\n wordSpacingPerLine.push(0);\r\n }\r\n text.push([da[l], newX, newY]);\r\n }\r\n } else {\r\n throw new Error(\r\n 'Unrecognized alignment option, use \"left\", \"center\", \"right\" or \"justify\".'\r\n );\r\n }\r\n }\r\n\r\n //R2L\r\n var doReversing = typeof options.R2L === \"boolean\" ? options.R2L : R2L;\r\n if (doReversing === true) {\r\n text = processTextByFunction(text, function(text, posX, posY) {\r\n return [\r\n text\r\n .split(\"\")\r\n .reverse()\r\n .join(\"\"),\r\n posX,\r\n posY\r\n ];\r\n });\r\n }\r\n\r\n //creating Payload-Object to make text byRef\r\n payload = {\r\n text: text,\r\n x: x,\r\n y: y,\r\n options: options,\r\n mutex: {\r\n pdfEscape: pdfEscape,\r\n activeFontKey: activeFontKey,\r\n fonts: fonts,\r\n activeFontSize: activeFontSize\r\n }\r\n };\r\n events.publish(\"postProcessText\", payload);\r\n\r\n text = payload.text;\r\n isHex = payload.mutex.isHex || false;\r\n\r\n //Escaping\r\n var activeFontEncoding = fonts[activeFontKey].encoding;\r\n\r\n if (\r\n activeFontEncoding === \"WinAnsiEncoding\" ||\r\n activeFontEncoding === \"StandardEncoding\"\r\n ) {\r\n text = processTextByFunction(text, function(text, posX, posY) {\r\n return [ESC(text), posX, posY];\r\n });\r\n }\r\n\r\n da = transformTextToSpecialArray(text);\r\n\r\n text = [];\r\n var STRING = 0;\r\n var ARRAY = 1;\r\n var variant = Array.isArray(da[0]) ? ARRAY : STRING;\r\n var posX;\r\n var posY;\r\n var content;\r\n var wordSpacing = \"\";\r\n\r\n var generatePosition = function(\r\n parmPosX,\r\n parmPosY,\r\n parmTransformationMatrix\r\n ) {\r\n var position = \"\";\r\n if (parmTransformationMatrix instanceof Matrix) {\r\n // It is kind of more intuitive to apply a plain rotation around the text anchor set by x and y\r\n // but when the user supplies an arbitrary transformation matrix, the x and y offsets should be applied\r\n // in the coordinate system established by this matrix\r\n if (typeof options.angle === \"number\") {\r\n parmTransformationMatrix = matrixMult(\r\n parmTransformationMatrix,\r\n new Matrix(1, 0, 0, 1, parmPosX, parmPosY)\r\n );\r\n } else {\r\n parmTransformationMatrix = matrixMult(\r\n new Matrix(1, 0, 0, 1, parmPosX, parmPosY),\r\n parmTransformationMatrix\r\n );\r\n }\r\n\r\n if (apiMode === ApiMode.ADVANCED) {\r\n parmTransformationMatrix = matrixMult(\r\n new Matrix(1, 0, 0, -1, 0, 0),\r\n parmTransformationMatrix\r\n );\r\n }\r\n\r\n position = parmTransformationMatrix.join(\" \") + \" Tm\\n\";\r\n } else {\r\n position = hpf(parmPosX) + \" \" + hpf(parmPosY) + \" Td\\n\";\r\n }\r\n return position;\r\n };\r\n\r\n for (var lineIndex = 0; lineIndex < da.length; lineIndex++) {\r\n wordSpacing = \"\";\r\n\r\n switch (variant) {\r\n case ARRAY:\r\n content =\r\n (isHex ? \"<\" : \"(\") + da[lineIndex][0] + (isHex ? \">\" : \")\");\r\n posX = parseFloat(da[lineIndex][1]);\r\n posY = parseFloat(da[lineIndex][2]);\r\n break;\r\n case STRING:\r\n content = (isHex ? \"<\" : \"(\") + da[lineIndex] + (isHex ? \">\" : \")\");\r\n posX = getHorizontalCoordinate(x);\r\n posY = getVerticalCoordinate(y);\r\n break;\r\n }\r\n\r\n if (\r\n typeof wordSpacingPerLine !== \"undefined\" &&\r\n typeof wordSpacingPerLine[lineIndex] !== \"undefined\"\r\n ) {\r\n wordSpacing = wordSpacingPerLine[lineIndex] + \" Tw\\n\";\r\n }\r\n\r\n if (lineIndex === 0) {\r\n text.push(\r\n wordSpacing +\r\n generatePosition(posX, posY, transformationMatrix) +\r\n content\r\n );\r\n } else if (variant === STRING) {\r\n text.push(wordSpacing + content);\r\n } else if (variant === ARRAY) {\r\n text.push(\r\n wordSpacing +\r\n generatePosition(posX, posY, transformationMatrix) +\r\n content\r\n );\r\n }\r\n }\r\n\r\n text = variant === STRING ? text.join(\" Tj\\nT* \") : text.join(\" Tj\\n\");\r\n text += \" Tj\\n\";\r\n\r\n var result = \"BT\\n/\";\r\n result += activeFontKey + \" \" + activeFontSize + \" Tf\\n\"; // font face, style, size\r\n result += hpf(activeFontSize * lineHeight) + \" TL\\n\"; // line spacing\r\n result += textColor + \"\\n\";\r\n result += xtra;\r\n result += text;\r\n result += \"ET\";\r\n\r\n out(result);\r\n usedFonts[activeFontKey] = true;\r\n return scope;\r\n };\r\n\r\n // PDF supports these path painting and clip path operators:\r\n //\r\n // S - stroke\r\n // s - close/stroke\r\n // f (F) - fill non-zero\r\n // f* - fill evenodd\r\n // B - fill stroke nonzero\r\n // B* - fill stroke evenodd\r\n // b - close fill stroke nonzero\r\n // b* - close fill stroke evenodd\r\n // n - nothing (consume path)\r\n // W - clip nonzero\r\n // W* - clip evenodd\r\n //\r\n // In order to keep the API small, we omit the close-and-fill/stroke operators and provide a separate close()\r\n // method.\r\n /**\r\n *\r\n * @name clip\r\n * @function\r\n * @instance\r\n * @param {string} rule Only possible value is 'evenodd'\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @description All .clip() after calling drawing ops with a style argument of null.\r\n */\r\n var clip = (API.__private__.clip = API.clip = function(rule) {\r\n // Call .clip() after calling drawing ops with a style argument of null\r\n // W is the PDF clipping op\r\n if (\"evenodd\" === rule) {\r\n out(\"W*\");\r\n } else {\r\n out(\"W\");\r\n }\r\n return this;\r\n });\r\n\r\n /**\r\n * @name clipEvenOdd\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @description Modify the current clip path by intersecting it with the current path using the even-odd rule. Note\r\n * that this will NOT consume the current path. In order to only use this path for clipping call\r\n * {@link API.discardPath} afterwards.\r\n */\r\n API.clipEvenOdd = function() {\r\n return clip(\"evenodd\");\r\n };\r\n\r\n /**\r\n * Consumes the current path without any effect. Mainly used in combination with {@link clip} or\r\n * {@link clipEvenOdd}. The PDF \"n\" operator.\r\n * @name discardPath\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.__private__.discardPath = API.discardPath = function() {\r\n out(\"n\");\r\n return this;\r\n };\r\n\r\n var isValidStyle = (API.__private__.isValidStyle = function(style) {\r\n var validStyleVariants = [\r\n undefined,\r\n null,\r\n \"S\",\r\n \"D\",\r\n \"F\",\r\n \"DF\",\r\n \"FD\",\r\n \"f\",\r\n \"f*\",\r\n \"B\",\r\n \"B*\",\r\n \"n\"\r\n ];\r\n var result = false;\r\n if (validStyleVariants.indexOf(style) !== -1) {\r\n result = true;\r\n }\r\n return result;\r\n });\r\n\r\n API.__private__.setDefaultPathOperation = API.setDefaultPathOperation = function(\r\n operator\r\n ) {\r\n if (isValidStyle(operator)) {\r\n defaultPathOperation = operator;\r\n }\r\n return this;\r\n };\r\n\r\n var getStyle = (API.__private__.getStyle = API.getStyle = function(style) {\r\n // see path-painting operators in PDF spec\r\n var op = defaultPathOperation; // stroke\r\n\r\n switch (style) {\r\n case \"D\":\r\n case \"S\":\r\n op = \"S\"; // stroke\r\n break;\r\n case \"F\":\r\n op = \"f\"; // fill\r\n break;\r\n case \"FD\":\r\n case \"DF\":\r\n op = \"B\";\r\n break;\r\n case \"f\":\r\n case \"f*\":\r\n case \"B\":\r\n case \"B*\":\r\n /*\r\n Allow direct use of these PDF path-painting operators:\r\n - f fill using nonzero winding number rule\r\n - f* fill using even-odd rule\r\n - B fill then stroke with fill using non-zero winding number rule\r\n - B* fill then stroke with fill using even-odd rule\r\n */\r\n op = style;\r\n break;\r\n }\r\n return op;\r\n });\r\n\r\n /**\r\n * Close the current path. The PDF \"h\" operator.\r\n * @name close\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n var close = (API.close = function() {\r\n out(\"h\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Stroke the path. The PDF \"S\" operator.\r\n * @name stroke\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.stroke = function() {\r\n out(\"S\");\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill the current path using the nonzero winding number rule. If a pattern is provided, the path will be filled\r\n * with this pattern, otherwise with the current fill color. Equivalent to the PDF \"f\" operator.\r\n * @name fill\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be filled with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fill = function(pattern) {\r\n fillWithOptionalPattern(\"f\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill the current path using the even-odd rule. The PDF f* operator.\r\n * @see API.fill\r\n * @name fillEvenOdd\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be filled with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillEvenOdd = function(pattern) {\r\n fillWithOptionalPattern(\"f*\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill using the nonzero winding number rule and then stroke the current Path. The PDF \"B\" operator.\r\n * @see API.fill\r\n * @name fillStroke\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be stroked with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillStroke = function(pattern) {\r\n fillWithOptionalPattern(\"B\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill using the even-odd rule and then stroke the current Path. The PDF \"B\" operator.\r\n * @see API.fill\r\n * @name fillStrokeEvenOdd\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be fill-stroked with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillStrokeEvenOdd = function(pattern) {\r\n fillWithOptionalPattern(\"B*\", pattern);\r\n return this;\r\n };\r\n\r\n var fillWithOptionalPattern = function(style, pattern) {\r\n if (typeof pattern === \"object\") {\r\n fillWithPattern(pattern, style);\r\n } else {\r\n out(style);\r\n }\r\n };\r\n\r\n var putStyle = function(style) {\r\n if (\r\n style === null ||\r\n (apiMode === ApiMode.ADVANCED && style === undefined)\r\n ) {\r\n return;\r\n }\r\n\r\n style = getStyle(style);\r\n\r\n // stroking / filling / both the path\r\n out(style);\r\n };\r\n\r\n function cloneTilingPattern(patternKey, boundingBox, xStep, yStep, matrix) {\r\n var clone = new TilingPattern(\r\n boundingBox || this.boundingBox,\r\n xStep || this.xStep,\r\n yStep || this.yStep,\r\n this.gState,\r\n matrix || this.matrix\r\n );\r\n clone.stream = this.stream;\r\n var key = patternKey + \"$$\" + this.cloneIndex++ + \"$$\";\r\n addPattern(key, clone);\r\n return clone;\r\n }\r\n\r\n var fillWithPattern = function(patternData, style) {\r\n var patternId = patternMap[patternData.key];\r\n var pattern = patterns[patternId];\r\n\r\n if (pattern instanceof ShadingPattern) {\r\n out(\"q\");\r\n\r\n out(clipRuleFromStyle(style));\r\n\r\n if (pattern.gState) {\r\n API.setGState(pattern.gState);\r\n }\r\n out(patternData.matrix.toString() + \" cm\");\r\n out(\"/\" + patternId + \" sh\");\r\n out(\"Q\");\r\n } else if (pattern instanceof TilingPattern) {\r\n // pdf draws patterns starting at the bottom left corner and they are not affected by the global transformation,\r\n // so we must flip them\r\n var matrix = new Matrix(1, 0, 0, -1, 0, getPageHeight());\r\n\r\n if (patternData.matrix) {\r\n matrix = matrix.multiply(patternData.matrix || identityMatrix);\r\n // we cannot apply a matrix to the pattern on use so we must abuse the pattern matrix and create new instances\r\n // for each use\r\n patternId = cloneTilingPattern.call(\r\n pattern,\r\n patternData.key,\r\n patternData.boundingBox,\r\n patternData.xStep,\r\n patternData.yStep,\r\n matrix\r\n ).id;\r\n }\r\n\r\n out(\"q\");\r\n out(\"/Pattern cs\");\r\n out(\"/\" + patternId + \" scn\");\r\n\r\n if (pattern.gState) {\r\n API.setGState(pattern.gState);\r\n }\r\n\r\n out(style);\r\n out(\"Q\");\r\n }\r\n };\r\n\r\n var clipRuleFromStyle = function(style) {\r\n switch (style) {\r\n case \"f\":\r\n case \"F\":\r\n return \"W n\";\r\n case \"f*\":\r\n return \"W* n\";\r\n case \"B\":\r\n return \"W S\";\r\n case \"B*\":\r\n return \"W* S\";\r\n\r\n // these two are for compatibility reasons (in the past, calling any primitive method with a shading pattern\r\n // and \"n\"/\"S\" as style would still fill/fill and stroke the path)\r\n case \"S\":\r\n return \"W S\";\r\n case \"n\":\r\n return \"W n\";\r\n }\r\n };\r\n\r\n /**\r\n * Begin a new subpath by moving the current point to coordinates (x, y). The PDF \"m\" operator.\r\n * @param {number} x\r\n * @param {number} y\r\n * @name moveTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var moveTo = (API.moveTo = function(x, y) {\r\n out(hpf(scale(x)) + \" \" + hpf(transformScaleY(y)) + \" m\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Append a straight line segment from the current point to the point (x, y). The PDF \"l\" operator.\r\n * @param {number} x\r\n * @param {number} y\r\n * @memberof jsPDF#\r\n * @name lineTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var lineTo = (API.lineTo = function(x, y) {\r\n out(hpf(scale(x)) + \" \" + hpf(transformScaleY(y)) + \" l\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Append a cubic Bézier curve to the current path. The curve shall extend from the current point to the point\r\n * (x3, y3), using (x1, y1) and (x2, y2) as Bézier control points. The new current point shall be (x3, x3).\r\n * @param {number} x1\r\n * @param {number} y1\r\n * @param {number} x2\r\n * @param {number} y2\r\n * @param {number} x3\r\n * @param {number} y3\r\n * @memberof jsPDF#\r\n * @name curveTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var curveTo = (API.curveTo = function(x1, y1, x2, y2, x3, y3) {\r\n out(\r\n [\r\n hpf(scale(x1)),\r\n hpf(transformScaleY(y1)),\r\n hpf(scale(x2)),\r\n hpf(transformScaleY(y2)),\r\n hpf(scale(x3)),\r\n hpf(transformScaleY(y3)),\r\n \"c\"\r\n ].join(\" \")\r\n );\r\n return this;\r\n });\r\n\r\n /**\r\n * Draw a line on the current page.\r\n *\r\n * @name line\r\n * @function\r\n * @instance\r\n * @param {number} x1\r\n * @param {number} y1\r\n * @param {number} x2\r\n * @param {number} y2\r\n * @param {string} style A string specifying the painting style or null. Valid styles include: 'S' [default] - stroke, 'F' - fill, and 'DF' (or 'FD') - fill then stroke. A null value postpones setting the style so that a shape may be composed using multiple method calls. The last drawing method call used to define the shape should not have a null style argument. default: 'S'\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.__private__.line = API.line = function(x1, y1, x2, y2, style) {\r\n if (\r\n isNaN(x1) ||\r\n isNaN(y1) ||\r\n isNaN(x2) ||\r\n isNaN(y2) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.line\");\r\n }\r\n if (apiMode === ApiMode.COMPAT) {\r\n return this.lines([[x2 - x1, y2 - y1]], x1, y1, [1, 1], style || \"S\");\r\n } else {\r\n return this.lines([[x2 - x1, y2 - y1]], x1, y1, [1, 1]).stroke();\r\n }\r\n };\r\n\r\n /**\r\n * @typedef {Object} PatternData\r\n * {Matrix|undefined} matrix\r\n * {Number|undefined} xStep\r\n * {Number|undefined} yStep\r\n * {Array.|undefined} boundingBox\r\n */\r\n\r\n /**\r\n * Adds series of curves (straight lines or cubic bezier curves) to canvas, starting at `x`, `y` coordinates.\r\n * All data points in `lines` are relative to last line origin.\r\n * `x`, `y` become x1,y1 for first line / curve in the set.\r\n * For lines you only need to specify [x2, y2] - (ending point) vector against x1, y1 starting point.\r\n * For bezier curves you need to specify [x2,y2,x3,y3,x4,y4] - vectors to control points 1, 2, ending point. All vectors are against the start of the curve - x1,y1.\r\n *\r\n * @example .lines([[2,2],[-2,2],[1,1,2,2,3,3],[2,1]], 212,110, [1,1], 'F', false) // line, line, bezier curve, line\r\n * @param {Array} lines Array of *vector* shifts as pairs (lines) or sextets (cubic bezier curves).\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} scale (Defaults to [1.0,1.0]) x,y Scaling factor for all vectors. Elements can be any floating number Sub-one makes drawing smaller. Over-one grows the drawing. Negative flips the direction.\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @param {Boolean=} closed If true, the path is closed with a straight line from the end of the last curve to the starting point.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name lines\r\n */\r\n API.__private__.lines = API.lines = function(\r\n lines,\r\n x,\r\n y,\r\n scale,\r\n style,\r\n closed\r\n ) {\r\n var scalex, scaley, i, l, leg, x2, y2, x3, y3, x4, y4, tmp;\r\n\r\n // Pre-August-2012 the order of arguments was function(x, y, lines, scale, style)\r\n // in effort to make all calls have similar signature like\r\n // function(content, coordinateX, coordinateY , miscellaneous)\r\n // this method had its args flipped.\r\n // code below allows backward compatibility with old arg order.\r\n if (typeof lines === \"number\") {\r\n tmp = y;\r\n y = x;\r\n x = lines;\r\n lines = tmp;\r\n }\r\n\r\n scale = scale || [1, 1];\r\n closed = closed || false;\r\n\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n !Array.isArray(lines) ||\r\n !Array.isArray(scale) ||\r\n !isValidStyle(style) ||\r\n typeof closed !== \"boolean\"\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.lines\");\r\n }\r\n\r\n // starting point\r\n moveTo(x, y);\r\n\r\n scalex = scale[0];\r\n scaley = scale[1];\r\n l = lines.length;\r\n //, x2, y2 // bezier only. In page default measurement \"units\", *after* scaling\r\n //, x3, y3 // bezier only. In page default measurement \"units\", *after* scaling\r\n // ending point for all, lines and bezier. . In page default measurement \"units\", *after* scaling\r\n x4 = x; // last / ending point = starting point for first item.\r\n y4 = y; // last / ending point = starting point for first item.\r\n\r\n for (i = 0; i < l; i++) {\r\n leg = lines[i];\r\n if (leg.length === 2) {\r\n // simple line\r\n x4 = leg[0] * scalex + x4; // here last x4 was prior ending point\r\n y4 = leg[1] * scaley + y4; // here last y4 was prior ending point\r\n lineTo(x4, y4);\r\n } else {\r\n // bezier curve\r\n x2 = leg[0] * scalex + x4; // here last x4 is prior ending point\r\n y2 = leg[1] * scaley + y4; // here last y4 is prior ending point\r\n x3 = leg[2] * scalex + x4; // here last x4 is prior ending point\r\n y3 = leg[3] * scaley + y4; // here last y4 is prior ending point\r\n x4 = leg[4] * scalex + x4; // here last x4 was prior ending point\r\n y4 = leg[5] * scaley + y4; // here last y4 was prior ending point\r\n curveTo(x2, y2, x3, y3, x4, y4);\r\n }\r\n }\r\n\r\n if (closed) {\r\n close();\r\n }\r\n\r\n putStyle(style);\r\n return this;\r\n };\r\n\r\n /**\r\n * Similar to {@link API.lines} but all coordinates are interpreted as absolute coordinates instead of relative.\r\n * @param {Array} lines An array of {op: operator, c: coordinates} object, where op is one of \"m\" (move to), \"l\" (line to)\r\n * \"c\" (cubic bezier curve) and \"h\" (close (sub)path)). c is an array of coordinates. \"m\" and \"l\" expect two, \"c\"\r\n * six and \"h\" an empty array (or undefined).\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name path\r\n */\r\n API.path = function(lines) {\r\n for (var i = 0; i < lines.length; i++) {\r\n var leg = lines[i];\r\n var coords = leg.c;\r\n switch (leg.op) {\r\n case \"m\":\r\n moveTo(coords[0], coords[1]);\r\n break;\r\n case \"l\":\r\n lineTo(coords[0], coords[1]);\r\n break;\r\n case \"c\":\r\n curveTo.apply(this, coords);\r\n break;\r\n case \"h\":\r\n close();\r\n break;\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds a rectangle to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} w Width (in units declared at inception of PDF document)\r\n * @param {number} h Height (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name rect\r\n */\r\n API.__private__.rect = API.rect = function(x, y, w, h, style) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h) || !isValidStyle(style)) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.rect\");\r\n }\r\n if (apiMode === ApiMode.COMPAT) {\r\n h = -h;\r\n }\r\n\r\n out(\r\n [\r\n hpf(scale(x)),\r\n hpf(transformScaleY(y)),\r\n hpf(scale(w)),\r\n hpf(scale(h)),\r\n \"re\"\r\n ].join(\" \")\r\n );\r\n\r\n putStyle(style);\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds a triangle to PDF.\r\n *\r\n * @param {number} x1 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y1 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} x2 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y2 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} x3 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y3 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name triangle\r\n */\r\n API.__private__.triangle = API.triangle = function(\r\n x1,\r\n y1,\r\n x2,\r\n y2,\r\n x3,\r\n y3,\r\n style\r\n ) {\r\n if (\r\n isNaN(x1) ||\r\n isNaN(y1) ||\r\n isNaN(x2) ||\r\n isNaN(y2) ||\r\n isNaN(x3) ||\r\n isNaN(y3) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.triangle\");\r\n }\r\n this.lines(\r\n [\r\n [x2 - x1, y2 - y1], // vector to point 2\r\n [x3 - x2, y3 - y2], // vector to point 3\r\n [x1 - x3, y1 - y3] // closing vector back to point 1\r\n ],\r\n x1,\r\n y1, // start of path\r\n [1, 1],\r\n style,\r\n true\r\n );\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds a rectangle with rounded corners to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} w Width (in units declared at inception of PDF document)\r\n * @param {number} h Height (in units declared at inception of PDF document)\r\n * @param {number} rx Radius along x axis (in units declared at inception of PDF document)\r\n * @param {number} ry Radius along y axis (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name roundedRect\r\n */\r\n API.__private__.roundedRect = API.roundedRect = function(\r\n x,\r\n y,\r\n w,\r\n h,\r\n rx,\r\n ry,\r\n style\r\n ) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(w) ||\r\n isNaN(h) ||\r\n isNaN(rx) ||\r\n isNaN(ry) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.roundedRect\");\r\n }\r\n var MyArc = (4 / 3) * (Math.SQRT2 - 1);\r\n\r\n rx = Math.min(rx, w * 0.5);\r\n ry = Math.min(ry, h * 0.5);\r\n\r\n this.lines(\r\n [\r\n [w - 2 * rx, 0],\r\n [rx * MyArc, 0, rx, ry - ry * MyArc, rx, ry],\r\n [0, h - 2 * ry],\r\n [0, ry * MyArc, -(rx * MyArc), ry, -rx, ry],\r\n [-w + 2 * rx, 0],\r\n [-(rx * MyArc), 0, -rx, -(ry * MyArc), -rx, -ry],\r\n [0, -h + 2 * ry],\r\n [0, -(ry * MyArc), rx * MyArc, -ry, rx, -ry]\r\n ],\r\n x + rx,\r\n y, // start of path\r\n [1, 1],\r\n style,\r\n true\r\n );\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds an ellipse to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} rx Radius along x axis (in units declared at inception of PDF document)\r\n * @param {number} ry Radius along y axis (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name ellipse\r\n */\r\n API.__private__.ellipse = API.ellipse = function(x, y, rx, ry, style) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(rx) ||\r\n isNaN(ry) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.ellipse\");\r\n }\r\n var lx = (4 / 3) * (Math.SQRT2 - 1) * rx,\r\n ly = (4 / 3) * (Math.SQRT2 - 1) * ry;\r\n\r\n moveTo(x + rx, y);\r\n curveTo(x + rx, y - ly, x + lx, y - ry, x, y - ry);\r\n curveTo(x - lx, y - ry, x - rx, y - ly, x - rx, y);\r\n curveTo(x - rx, y + ly, x - lx, y + ry, x, y + ry);\r\n curveTo(x + lx, y + ry, x + rx, y + ly, x + rx, y);\r\n\r\n putStyle(style);\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds an circle to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} r Radius (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name circle\r\n */\r\n API.__private__.circle = API.circle = function(x, y, r, style) {\r\n if (isNaN(x) || isNaN(y) || isNaN(r) || !isValidStyle(style)) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.circle\");\r\n }\r\n return this.ellipse(x, y, r, r, style);\r\n };\r\n\r\n /**\r\n * Sets text font face, variant for upcoming text elements.\r\n * See output of jsPDF.getFontList() for possible font names, styles.\r\n *\r\n * @param {string} fontName Font name or family. Example: \"times\".\r\n * @param {string} fontStyle Font style or variant. Example: \"italic\".\r\n * @param {number | string} fontWeight Weight of the Font. Example: \"normal\" | 400\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setFont\r\n */\r\n API.setFont = function(fontName, fontStyle, fontWeight) {\r\n if (fontWeight) {\r\n fontStyle = combineFontStyleAndFontWeight(fontStyle, fontWeight);\r\n }\r\n activeFontKey = getFont(fontName, fontStyle, {\r\n disableWarning: false\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Gets text font face, variant for upcoming text elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {Object}\r\n * @memberof jsPDF#\r\n * @name getFont\r\n */\r\n var getFontEntry = (API.__private__.getFont = API.getFont = function() {\r\n return fonts[getFont.apply(API, arguments)];\r\n });\r\n\r\n /**\r\n * Returns an object - a tree of fontName to fontStyle relationships available to\r\n * active PDF document.\r\n *\r\n * @public\r\n * @function\r\n * @instance\r\n * @returns {Object} Like {'times':['normal', 'italic', ... ], 'arial':['normal', 'bold', ... ], ... }\r\n * @memberof jsPDF#\r\n * @name getFontList\r\n */\r\n API.__private__.getFontList = API.getFontList = function() {\r\n var list = {},\r\n fontName,\r\n fontStyle;\r\n\r\n for (fontName in fontmap) {\r\n if (fontmap.hasOwnProperty(fontName)) {\r\n list[fontName] = [];\r\n for (fontStyle in fontmap[fontName]) {\r\n if (fontmap[fontName].hasOwnProperty(fontStyle)) {\r\n list[fontName].push(fontStyle);\r\n }\r\n }\r\n }\r\n }\r\n return list;\r\n };\r\n\r\n /**\r\n * Add a custom font to the current instance.\r\n *\r\n * @param {string} postScriptName PDF specification full name for the font.\r\n * @param {string} id PDF-document-instance-specific label assinged to the font.\r\n * @param {string} fontStyle Style of the Font.\r\n * @param {number | string} fontWeight Weight of the Font.\r\n * @param {Object} encoding Encoding_name-to-Font_metrics_object mapping.\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @name addFont\r\n * @returns {string} fontId\r\n */\r\n API.addFont = function(\r\n postScriptName,\r\n fontName,\r\n fontStyle,\r\n fontWeight,\r\n encoding\r\n ) {\r\n var encodingOptions = [\r\n \"StandardEncoding\",\r\n \"MacRomanEncoding\",\r\n \"Identity-H\",\r\n \"WinAnsiEncoding\"\r\n ];\r\n if (arguments[3] && encodingOptions.indexOf(arguments[3]) !== -1) {\r\n //IE 11 fix\r\n encoding = arguments[3];\r\n } else if (arguments[3] && encodingOptions.indexOf(arguments[3]) == -1) {\r\n fontStyle = combineFontStyleAndFontWeight(fontStyle, fontWeight);\r\n }\r\n encoding = encoding || \"Identity-H\";\r\n return addFont.call(this, postScriptName, fontName, fontStyle, encoding);\r\n };\r\n\r\n var lineWidth = options.lineWidth || 0.200025; // 2mm\r\n /**\r\n * Gets the line width, default: 0.200025.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number} lineWidth\r\n * @memberof jsPDF#\r\n * @name getLineWidth\r\n */\r\n var getLineWidth = (API.__private__.getLineWidth = API.getLineWidth = function() {\r\n return lineWidth;\r\n });\r\n\r\n /**\r\n * Sets line width for upcoming lines.\r\n *\r\n * @param {number} width Line width (in units declared at inception of PDF document).\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineWidth\r\n */\r\n var setLineWidth = (API.__private__.setLineWidth = API.setLineWidth = function(\r\n width\r\n ) {\r\n lineWidth = width;\r\n out(hpf(scale(width)) + \" w\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Sets the dash pattern for upcoming lines.\r\n *\r\n * To reset the settings simply call the method without any parameters.\r\n * @param {Array} dashArray An array containing 0-2 numbers. The first number sets the length of the\r\n * dashes, the second number the length of the gaps. If the second number is missing, the gaps are considered\r\n * to be as long as the dashes. An empty array means solid, unbroken lines.\r\n * @param {number} dashPhase The phase lines start with.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineDashPattern\r\n */\r\n API.__private__.setLineDash = jsPDF.API.setLineDash = jsPDF.API.setLineDashPattern = function(\r\n dashArray,\r\n dashPhase\r\n ) {\r\n dashArray = dashArray || [];\r\n dashPhase = dashPhase || 0;\r\n\r\n if (isNaN(dashPhase) || !Array.isArray(dashArray)) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.setLineDash\");\r\n }\r\n\r\n dashArray = dashArray\r\n .map(function(x) {\r\n return hpf(scale(x));\r\n })\r\n .join(\" \");\r\n dashPhase = hpf(scale(dashPhase));\r\n\r\n out(\"[\" + dashArray + \"] \" + dashPhase + \" d\");\r\n return this;\r\n };\r\n\r\n var lineHeightFactor;\r\n\r\n var getLineHeight = (API.__private__.getLineHeight = API.getLineHeight = function() {\r\n return activeFontSize * lineHeightFactor;\r\n });\r\n\r\n API.__private__.getLineHeight = API.getLineHeight = function() {\r\n return activeFontSize * lineHeightFactor;\r\n };\r\n\r\n /**\r\n * Sets the LineHeightFactor of proportion.\r\n *\r\n * @param {number} value LineHeightFactor value. Default: 1.15.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineHeightFactor\r\n */\r\n var setLineHeightFactor = (API.__private__.setLineHeightFactor = API.setLineHeightFactor = function(\r\n value\r\n ) {\r\n value = value || 1.15;\r\n if (typeof value === \"number\") {\r\n lineHeightFactor = value;\r\n }\r\n return this;\r\n });\r\n\r\n /**\r\n * Gets the LineHeightFactor, default: 1.15.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number} lineHeightFactor\r\n * @memberof jsPDF#\r\n * @name getLineHeightFactor\r\n */\r\n var getLineHeightFactor = (API.__private__.getLineHeightFactor = API.getLineHeightFactor = function() {\r\n return lineHeightFactor;\r\n });\r\n\r\n setLineHeightFactor(options.lineHeight);\r\n\r\n var getHorizontalCoordinate = (API.__private__.getHorizontalCoordinate = function(\r\n value\r\n ) {\r\n return scale(value);\r\n });\r\n\r\n var getVerticalCoordinate = (API.__private__.getVerticalCoordinate = function(\r\n value\r\n ) {\r\n if (apiMode === ApiMode.ADVANCED) {\r\n return value;\r\n } else {\r\n var pageHeight =\r\n pagesContext[currentPage].mediaBox.topRightY -\r\n pagesContext[currentPage].mediaBox.bottomLeftY;\r\n return pageHeight - scale(value);\r\n }\r\n });\r\n\r\n var getHorizontalCoordinateString = (API.__private__.getHorizontalCoordinateString = API.getHorizontalCoordinateString = function(\r\n value\r\n ) {\r\n return hpf(getHorizontalCoordinate(value));\r\n });\r\n\r\n var getVerticalCoordinateString = (API.__private__.getVerticalCoordinateString = API.getVerticalCoordinateString = function(\r\n value\r\n ) {\r\n return hpf(getVerticalCoordinate(value));\r\n });\r\n\r\n var strokeColor = options.strokeColor || \"0 G\";\r\n\r\n /**\r\n * Gets the stroke color for upcoming elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {string} colorAsHex\r\n * @memberof jsPDF#\r\n * @name getDrawColor\r\n */\r\n API.__private__.getStrokeColor = API.getDrawColor = function() {\r\n return decodeColorString(strokeColor);\r\n };\r\n\r\n /**\r\n * Sets the stroke color for upcoming elements.\r\n *\r\n * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n * color space is implied.\r\n *\r\n * When only ch1 is given, \"Gray\" color space is implied and it\r\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n * if values are communicated as String types, or in range from 0 (black)\r\n * to 255 (white) if communicated as Number type.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n * (max intensity) if values are communicated as String types, or\r\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n * as Number types.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n * value must be a in the range from 0.00 (0% concentration) to to\r\n * 1.00 (100% concentration)\r\n *\r\n * Because JavaScript treats fixed point numbers badly (rounds to\r\n * floating point nearest to binary representation) it is highly advised to\r\n * communicate the fractional numbers as String types, not JavaScript Number type.\r\n *\r\n * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n * @param {Number} ch2 Color channel value.\r\n * @param {Number} ch3 Color channel value.\r\n * @param {Number} ch4 Color channel value.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setDrawColor\r\n */\r\n API.__private__.setStrokeColor = API.setDrawColor = function(\r\n ch1,\r\n ch2,\r\n ch3,\r\n ch4\r\n ) {\r\n var options = {\r\n ch1: ch1,\r\n ch2: ch2,\r\n ch3: ch3,\r\n ch4: ch4,\r\n pdfColorType: \"draw\",\r\n precision: 2\r\n };\r\n\r\n strokeColor = encodeColorString(options);\r\n out(strokeColor);\r\n return this;\r\n };\r\n\r\n var fillColor = options.fillColor || \"0 g\";\r\n\r\n /**\r\n * Gets the fill color for upcoming elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {string} colorAsHex\r\n * @memberof jsPDF#\r\n * @name getFillColor\r\n */\r\n API.__private__.getFillColor = API.getFillColor = function() {\r\n return decodeColorString(fillColor);\r\n };\r\n\r\n /**\r\n * Sets the fill color for upcoming elements.\r\n *\r\n * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n * color space is implied.\r\n *\r\n * When only ch1 is given, \"Gray\" color space is implied and it\r\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n * if values are communicated as String types, or in range from 0 (black)\r\n * to 255 (white) if communicated as Number type.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n * (max intensity) if values are communicated as String types, or\r\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n * as Number types.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n * value must be a in the range from 0.00 (0% concentration) to to\r\n * 1.00 (100% concentration)\r\n *\r\n * Because JavaScript treats fixed point numbers badly (rounds to\r\n * floating point nearest to binary representation) it is highly advised to\r\n * communicate the fractional numbers as String types, not JavaScript Number type.\r\n *\r\n * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n * @param {Number} ch2 Color channel value.\r\n * @param {Number} ch3 Color channel value.\r\n * @param {Number} ch4 Color channel value.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setFillColor\r\n */\r\n API.__private__.setFillColor = API.setFillColor = function(\r\n ch1,\r\n ch2,\r\n ch3,\r\n ch4\r\n ) {\r\n var options = {\r\n ch1: ch1,\r\n ch2: ch2,\r\n ch3: ch3,\r\n ch4: ch4,\r\n pdfColorType: \"fill\",\r\n precision: 2\r\n };\r\n\r\n fillColor = encodeColorString(options);\r\n out(fillColor);\r\n return this;\r\n };\r\n\r\n var textColor = options.textColor || \"0 g\";\r\n /**\r\n * Gets the text color for upcoming elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {string} colorAsHex\r\n * @memberof jsPDF#\r\n * @name getTextColor\r\n */\r\n var getTextColor = (API.__private__.getTextColor = API.getTextColor = function() {\r\n return decodeColorString(textColor);\r\n });\r\n /**\r\n * Sets the text color for upcoming elements.\r\n *\r\n * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n * color space is implied.\r\n *\r\n * When only ch1 is given, \"Gray\" color space is implied and it\r\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n * if values are communicated as String types, or in range from 0 (black)\r\n * to 255 (white) if communicated as Number type.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n * (max intensity) if values are communicated as String types, or\r\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n * as Number types.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n * value must be a in the range from 0.00 (0% concentration) to to\r\n * 1.00 (100% concentration)\r\n *\r\n * Because JavaScript treats fixed point numbers badly (rounds to\r\n * floating point nearest to binary representation) it is highly advised to\r\n * communicate the fractional numbers as String types, not JavaScript Number type.\r\n *\r\n * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n * @param {Number} ch2 Color channel value.\r\n * @param {Number} ch3 Color channel value.\r\n * @param {Number} ch4 Color channel value.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setTextColor\r\n */\r\n API.__private__.setTextColor = API.setTextColor = function(\r\n ch1,\r\n ch2,\r\n ch3,\r\n ch4\r\n ) {\r\n var options = {\r\n ch1: ch1,\r\n ch2: ch2,\r\n ch3: ch3,\r\n ch4: ch4,\r\n pdfColorType: \"text\",\r\n precision: 3\r\n };\r\n textColor = encodeColorString(options);\r\n\r\n return this;\r\n };\r\n\r\n var activeCharSpace = options.charSpace;\r\n\r\n /**\r\n * Get global value of CharSpace.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number} charSpace\r\n * @memberof jsPDF#\r\n * @name getCharSpace\r\n */\r\n var getCharSpace = (API.__private__.getCharSpace = API.getCharSpace = function() {\r\n return parseFloat(activeCharSpace || 0);\r\n });\r\n\r\n /**\r\n * Set global value of CharSpace.\r\n *\r\n * @param {number} charSpace\r\n * @function\r\n * @instance\r\n * @returns {jsPDF} jsPDF-instance\r\n * @memberof jsPDF#\r\n * @name setCharSpace\r\n */\r\n API.__private__.setCharSpace = API.setCharSpace = function(charSpace) {\r\n if (isNaN(charSpace)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.setCharSpace\");\r\n }\r\n activeCharSpace = charSpace;\r\n return this;\r\n };\r\n\r\n var lineCapID = 0;\r\n /**\r\n * Is an Object providing a mapping from human-readable to\r\n * integer flag values designating the varieties of line cap\r\n * and join styles.\r\n *\r\n * @memberof jsPDF#\r\n * @name CapJoinStyles\r\n */\r\n API.CapJoinStyles = {\r\n 0: 0,\r\n butt: 0,\r\n but: 0,\r\n miter: 0,\r\n 1: 1,\r\n round: 1,\r\n rounded: 1,\r\n circle: 1,\r\n 2: 2,\r\n projecting: 2,\r\n project: 2,\r\n square: 2,\r\n bevel: 2\r\n };\r\n\r\n /**\r\n * Sets the line cap styles.\r\n * See {jsPDF.CapJoinStyles} for variants.\r\n *\r\n * @param {String|Number} style A string or number identifying the type of line cap.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineCap\r\n */\r\n API.__private__.setLineCap = API.setLineCap = function(style) {\r\n var id = API.CapJoinStyles[style];\r\n if (id === undefined) {\r\n throw new Error(\r\n \"Line cap style of '\" +\r\n style +\r\n \"' is not recognized. See or extend .CapJoinStyles property for valid styles\"\r\n );\r\n }\r\n lineCapID = id;\r\n out(id + \" J\");\r\n\r\n return this;\r\n };\r\n\r\n var lineJoinID = 0;\r\n /**\r\n * Sets the line join styles.\r\n * See {jsPDF.CapJoinStyles} for variants.\r\n *\r\n * @param {String|Number} style A string or number identifying the type of line join.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineJoin\r\n */\r\n API.__private__.setLineJoin = API.setLineJoin = function(style) {\r\n var id = API.CapJoinStyles[style];\r\n if (id === undefined) {\r\n throw new Error(\r\n \"Line join style of '\" +\r\n style +\r\n \"' is not recognized. See or extend .CapJoinStyles property for valid styles\"\r\n );\r\n }\r\n lineJoinID = id;\r\n out(id + \" j\");\r\n\r\n return this;\r\n };\r\n\r\n var miterLimit;\r\n /**\r\n * Sets the miterLimit property, which effects the maximum miter length.\r\n *\r\n * @param {number} length The length of the miter\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineMiterLimit\r\n */\r\n API.__private__.setLineMiterLimit = API.__private__.setMiterLimit = API.setLineMiterLimit = API.setMiterLimit = function(\r\n length\r\n ) {\r\n length = length || 0;\r\n if (isNaN(length)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.setLineMiterLimit\");\r\n }\r\n out(hpf(scale(length)) + \" M\");\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * An object representing a pdf graphics state.\r\n * @class GState\r\n */\r\n\r\n /**\r\n *\r\n * @param parameters A parameter object that contains all properties this graphics state wants to set.\r\n * Supported are: opacity, stroke-opacity\r\n * @constructor\r\n */\r\n API.GState = GState;\r\n\r\n /**\r\n * Sets a either previously added {@link GState} (via {@link addGState}) or a new {@link GState}.\r\n * @param {String|GState} gState If type is string, a previously added GState is used, if type is GState\r\n * it will be added before use.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setGState\r\n */\r\n API.setGState = function(gState) {\r\n if (typeof gState === \"string\") {\r\n gState = gStates[gStatesMap[gState]];\r\n } else {\r\n gState = addGState(null, gState);\r\n }\r\n\r\n if (!gState.equals(activeGState)) {\r\n out(\"/\" + gState.id + \" gs\");\r\n activeGState = gState;\r\n }\r\n };\r\n\r\n /**\r\n * Adds a new Graphics State. Duplicates are automatically eliminated.\r\n * @param {String} key Might also be null, if no later reference to this gState is needed\r\n * @param {Object} gState The gState object\r\n */\r\n var addGState = function(key, gState) {\r\n // only add it if it is not already present (the keys provided by the user must be unique!)\r\n if (key && gStatesMap[key]) return;\r\n var duplicate = false;\r\n for (var s in gStates) {\r\n if (gStates.hasOwnProperty(s)) {\r\n if (gStates[s].equals(gState)) {\r\n duplicate = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (duplicate) {\r\n gState = gStates[s];\r\n } else {\r\n var gStateKey = \"GS\" + (Object.keys(gStates).length + 1).toString(10);\r\n gStates[gStateKey] = gState;\r\n gState.id = gStateKey;\r\n }\r\n\r\n // several user keys may point to the same GState object\r\n key && (gStatesMap[key] = gState.id);\r\n\r\n events.publish(\"addGState\", gState);\r\n\r\n return gState;\r\n };\r\n\r\n /**\r\n * Adds a new {@link GState} for later use. See {@link setGState}.\r\n * @param {String} key\r\n * @param {GState} gState\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n *\r\n * @memberof jsPDF#\r\n * @name addGState\r\n */\r\n API.addGState = function(key, gState) {\r\n addGState(key, gState);\r\n return this;\r\n };\r\n\r\n /**\r\n * Saves the current graphics state (\"pushes it on the stack\"). It can be restored by {@link restoreGraphicsState}\r\n * later. Here, the general pdf graphics state is meant, also including the current transformation matrix,\r\n * fill and stroke colors etc.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name saveGraphicsState\r\n */\r\n API.saveGraphicsState = function() {\r\n out(\"q\");\r\n // as we cannot set font key and size independently we must keep track of both\r\n fontStateStack.push({\r\n key: activeFontKey,\r\n size: activeFontSize,\r\n color: textColor\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Restores a previously saved graphics state saved by {@link saveGraphicsState} (\"pops the stack\").\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name restoreGraphicsState\r\n */\r\n API.restoreGraphicsState = function() {\r\n out(\"Q\");\r\n\r\n // restore previous font state\r\n var fontState = fontStateStack.pop();\r\n activeFontKey = fontState.key;\r\n activeFontSize = fontState.size;\r\n textColor = fontState.color;\r\n\r\n activeGState = null;\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Appends this matrix to the left of all previously applied matrices.\r\n *\r\n * @param {Matrix} matrix\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setCurrentTransformationMatrix\r\n */\r\n API.setCurrentTransformationMatrix = function(matrix) {\r\n out(matrix.toString() + \" cm\");\r\n return this;\r\n };\r\n\r\n /**\r\n * Inserts a debug comment into the generated pdf.\r\n * @function\r\n * @instance\r\n * @param {String} text\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name comment\r\n */\r\n API.comment = function(text) {\r\n out(\"#\" + text);\r\n return this;\r\n };\r\n\r\n /**\r\n * Point\r\n */\r\n var Point = function(x, y) {\r\n var _x = x || 0;\r\n Object.defineProperty(this, \"x\", {\r\n enumerable: true,\r\n get: function() {\r\n return _x;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _x = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n var _y = y || 0;\r\n Object.defineProperty(this, \"y\", {\r\n enumerable: true,\r\n get: function() {\r\n return _y;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _y = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n var _type = \"pt\";\r\n Object.defineProperty(this, \"type\", {\r\n enumerable: true,\r\n get: function() {\r\n return _type;\r\n },\r\n set: function(value) {\r\n _type = value.toString();\r\n }\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Rectangle\r\n */\r\n var Rectangle = function(x, y, w, h) {\r\n Point.call(this, x, y);\r\n this.type = \"rect\";\r\n\r\n var _w = w || 0;\r\n Object.defineProperty(this, \"w\", {\r\n enumerable: true,\r\n get: function() {\r\n return _w;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _w = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n var _h = h || 0;\r\n Object.defineProperty(this, \"h\", {\r\n enumerable: true,\r\n get: function() {\r\n return _h;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _h = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * FormObject/RenderTarget\r\n */\r\n\r\n var RenderTarget = function() {\r\n this.page = page;\r\n this.currentPage = currentPage;\r\n this.pages = pages.slice(0);\r\n this.pagesContext = pagesContext.slice(0);\r\n this.x = pageX;\r\n this.y = pageY;\r\n this.matrix = pageMatrix;\r\n this.width = getPageWidth(currentPage);\r\n this.height = getPageHeight(currentPage);\r\n this.outputDestination = outputDestination;\r\n\r\n this.id = \"\"; // set by endFormObject()\r\n this.objectNumber = -1; // will be set by putXObject()\r\n };\r\n\r\n RenderTarget.prototype.restore = function() {\r\n page = this.page;\r\n currentPage = this.currentPage;\r\n pagesContext = this.pagesContext;\r\n pages = this.pages;\r\n pageX = this.x;\r\n pageY = this.y;\r\n pageMatrix = this.matrix;\r\n setPageWidth(currentPage, this.width);\r\n setPageHeight(currentPage, this.height);\r\n outputDestination = this.outputDestination;\r\n };\r\n\r\n var beginNewRenderTarget = function(x, y, width, height, matrix) {\r\n // save current state\r\n renderTargetStack.push(new RenderTarget());\r\n\r\n // clear pages\r\n page = currentPage = 0;\r\n pages = [];\r\n pageX = x;\r\n pageY = y;\r\n\r\n pageMatrix = matrix;\r\n\r\n beginPage([width, height]);\r\n };\r\n\r\n var endFormObject = function(key) {\r\n // only add it if it is not already present (the keys provided by the user must be unique!)\r\n if (renderTargetMap[key]) {\r\n renderTargetStack.pop().restore();\r\n return;\r\n }\r\n\r\n // save the created xObject\r\n var newXObject = new RenderTarget();\r\n\r\n var xObjectId = \"Xo\" + (Object.keys(renderTargets).length + 1).toString(10);\r\n newXObject.id = xObjectId;\r\n\r\n renderTargetMap[key] = xObjectId;\r\n renderTargets[xObjectId] = newXObject;\r\n\r\n events.publish(\"addFormObject\", newXObject);\r\n\r\n // restore state from stack\r\n renderTargetStack.pop().restore();\r\n };\r\n\r\n /**\r\n * Starts a new pdf form object, which means that all consequent draw calls target a new independent object\r\n * until {@link endFormObject} is called. The created object can be referenced and drawn later using\r\n * {@link doFormObject}. Nested form objects are possible.\r\n * x, y, width, height set the bounding box that is used to clip the content.\r\n *\r\n * @param {number} x\r\n * @param {number} y\r\n * @param {number} width\r\n * @param {number} height\r\n * @param {Matrix} matrix The matrix that will be applied to convert the form objects coordinate system to\r\n * the parent's.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name beginFormObject\r\n */\r\n API.beginFormObject = function(x, y, width, height, matrix) {\r\n // The user can set the output target to a new form object. Nested form objects are possible.\r\n // Currently, they use the resource dictionary of the surrounding stream. This should be changed, as\r\n // the PDF-Spec states:\r\n // \"In PDF 1.2 and later versions, form XObjects may be independent of the content streams in which\r\n // they appear, and this is strongly recommended although not requiredIn PDF 1.2 and later versions,\r\n // form XObjects may be independent of the content streams in which they appear, and this is strongly\r\n // recommended although not required\"\r\n beginNewRenderTarget(x, y, width, height, matrix);\r\n return this;\r\n };\r\n\r\n /**\r\n * Completes and saves the form object.\r\n * @param {String} key The key by which this form object can be referenced.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name endFormObject\r\n */\r\n API.endFormObject = function(key) {\r\n endFormObject(key);\r\n return this;\r\n };\r\n\r\n /**\r\n * Draws the specified form object by referencing to the respective pdf XObject created with\r\n * {@link API.beginFormObject} and {@link endFormObject}.\r\n * The location is determined by matrix.\r\n *\r\n * @param {String} key The key to the form object.\r\n * @param {Matrix} matrix The matrix applied before drawing the form object.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name doFormObject\r\n */\r\n API.doFormObject = function(key, matrix) {\r\n var xObject = renderTargets[renderTargetMap[key]];\r\n out(\"q\");\r\n out(matrix.toString() + \" cm\");\r\n out(\"/\" + xObject.id + \" Do\");\r\n out(\"Q\");\r\n return this;\r\n };\r\n\r\n /**\r\n * Returns the form object specified by key.\r\n * @param key {String}\r\n * @returns {{x: number, y: number, width: number, height: number, matrix: Matrix}}\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name getFormObject\r\n */\r\n API.getFormObject = function(key) {\r\n var xObject = renderTargets[renderTargetMap[key]];\r\n return {\r\n x: xObject.x,\r\n y: xObject.y,\r\n width: xObject.width,\r\n height: xObject.height,\r\n matrix: xObject.matrix\r\n };\r\n };\r\n\r\n /**\r\n * Saves as PDF document. An alias of jsPDF.output('save', 'filename.pdf').\r\n * Uses FileSaver.js-method saveAs.\r\n *\r\n * @memberof jsPDF#\r\n * @name save\r\n * @function\r\n * @instance\r\n * @param {string} filename The filename including extension.\r\n * @param {Object} options An Object with additional options, possible options: 'returnPromise'.\r\n * @returns {jsPDF|Promise} jsPDF-instance */\r\n API.save = function(filename, options) {\r\n filename = filename || \"generated.pdf\";\r\n\r\n options = options || {};\r\n options.returnPromise = options.returnPromise || false;\r\n\r\n if (options.returnPromise === false) {\r\n saveAs(getBlob(buildDocument()), filename);\r\n if (typeof saveAs.unload === \"function\") {\r\n if (globalObject.setTimeout) {\r\n setTimeout(saveAs.unload, 911);\r\n }\r\n }\r\n return this;\r\n } else {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n var result = saveAs(getBlob(buildDocument()), filename);\r\n if (typeof saveAs.unload === \"function\") {\r\n if (globalObject.setTimeout) {\r\n setTimeout(saveAs.unload, 911);\r\n }\r\n }\r\n resolve(result);\r\n } catch (e) {\r\n reject(e.message);\r\n }\r\n });\r\n }\r\n\r\n };\r\n\r\n // applying plugins (more methods) ON TOP of built-in API.\r\n // this is intentional as we allow plugins to override\r\n // built-ins\r\n for (var plugin in jsPDF.API) {\r\n if (jsPDF.API.hasOwnProperty(plugin)) {\r\n if (plugin === \"events\" && jsPDF.API.events.length) {\r\n (function(events, newEvents) {\r\n // jsPDF.API.events is a JS Array of Arrays\r\n // where each Array is a pair of event name, handler\r\n // Events were added by plugins to the jsPDF instantiator.\r\n // These are always added to the new instance and some ran\r\n // during instantiation.\r\n var eventname, handler_and_args, i;\r\n\r\n for (i = newEvents.length - 1; i !== -1; i--) {\r\n // subscribe takes 3 args: 'topic', function, runonce_flag\r\n // if undefined, runonce is false.\r\n // users can attach callback directly,\r\n // or they can attach an array with [callback, runonce_flag]\r\n // that's what the \"apply\" magic is for below.\r\n eventname = newEvents[i][0];\r\n handler_and_args = newEvents[i][1];\r\n events.subscribe.apply(\r\n events,\r\n [eventname].concat(\r\n typeof handler_and_args === \"function\"\r\n ? [handler_and_args]\r\n : handler_and_args\r\n )\r\n );\r\n }\r\n })(events, jsPDF.API.events);\r\n } else {\r\n API[plugin] = jsPDF.API[plugin];\r\n }\r\n }\r\n }\r\n\r\n var getPageWidth = (API.getPageWidth = function(pageNumber) {\r\n pageNumber = pageNumber || currentPage;\r\n return (\r\n (pagesContext[pageNumber].mediaBox.topRightX -\r\n pagesContext[pageNumber].mediaBox.bottomLeftX) /\r\n scaleFactor\r\n );\r\n });\r\n\r\n var setPageWidth = (API.setPageWidth = function(pageNumber, value) {\r\n pagesContext[pageNumber].mediaBox.topRightX =\r\n value * scaleFactor + pagesContext[pageNumber].mediaBox.bottomLeftX;\r\n });\r\n\r\n var getPageHeight = (API.getPageHeight = function(pageNumber) {\r\n pageNumber = pageNumber || currentPage;\r\n return (\r\n (pagesContext[pageNumber].mediaBox.topRightY -\r\n pagesContext[pageNumber].mediaBox.bottomLeftY) /\r\n scaleFactor\r\n );\r\n });\r\n\r\n var setPageHeight = (API.setPageHeight = function(pageNumber, value) {\r\n pagesContext[pageNumber].mediaBox.topRightY =\r\n value * scaleFactor + pagesContext[pageNumber].mediaBox.bottomLeftY;\r\n });\r\n\r\n /**\r\n * Object exposing internal API to plugins\r\n * @public\r\n * @ignore\r\n */\r\n API.internal = {\r\n pdfEscape: pdfEscape,\r\n getStyle: getStyle,\r\n getFont: getFontEntry,\r\n getFontSize: getFontSize,\r\n getCharSpace: getCharSpace,\r\n getTextColor: getTextColor,\r\n getLineHeight: getLineHeight,\r\n getLineHeightFactor: getLineHeightFactor,\r\n getLineWidth: getLineWidth,\r\n write: write,\r\n getHorizontalCoordinate: getHorizontalCoordinate,\r\n getVerticalCoordinate: getVerticalCoordinate,\r\n getCoordinateString: getHorizontalCoordinateString,\r\n getVerticalCoordinateString: getVerticalCoordinateString,\r\n collections: {},\r\n newObject: newObject,\r\n newAdditionalObject: newAdditionalObject,\r\n newObjectDeferred: newObjectDeferred,\r\n newObjectDeferredBegin: newObjectDeferredBegin,\r\n getFilters: getFilters,\r\n putStream: putStream,\r\n events: events,\r\n scaleFactor: scaleFactor,\r\n pageSize: {\r\n getWidth: function() {\r\n return getPageWidth(currentPage);\r\n },\r\n setWidth: function(value) {\r\n setPageWidth(currentPage, value);\r\n },\r\n getHeight: function() {\r\n return getPageHeight(currentPage);\r\n },\r\n setHeight: function(value) {\r\n setPageHeight(currentPage, value);\r\n }\r\n },\r\n encryptionOptions: encryptionOptions,\r\n encryption: encryption,\r\n getEncryptor: getEncryptor,\r\n output: output,\r\n getNumberOfPages: getNumberOfPages,\r\n pages: pages,\r\n out: out,\r\n f2: f2,\r\n f3: f3,\r\n getPageInfo: getPageInfo,\r\n getPageInfoByObjId: getPageInfoByObjId,\r\n getCurrentPageInfo: getCurrentPageInfo,\r\n getPDFVersion: getPdfVersion,\r\n Point: Point,\r\n Rectangle: Rectangle,\r\n Matrix: Matrix,\r\n hasHotfix: hasHotfix //Expose the hasHotfix check so plugins can also check them.\r\n };\r\n\r\n Object.defineProperty(API.internal.pageSize, \"width\", {\r\n get: function() {\r\n return getPageWidth(currentPage);\r\n },\r\n set: function(value) {\r\n setPageWidth(currentPage, value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(API.internal.pageSize, \"height\", {\r\n get: function() {\r\n return getPageHeight(currentPage);\r\n },\r\n set: function(value) {\r\n setPageHeight(currentPage, value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n\r\n //////////////////////////////////////////////////////\r\n // continuing initialization of jsPDF Document object\r\n //////////////////////////////////////////////////////\r\n // Add the first page automatically\r\n addFonts.call(API, standardFonts);\r\n activeFontKey = \"F1\";\r\n _addPage(format, orientation);\r\n\r\n events.publish(\"initialized\");\r\n return API;\r\n}\r\n\r\n/**\r\n * jsPDF.API is a STATIC property of jsPDF class.\r\n * jsPDF.API is an object you can add methods and properties to.\r\n * The methods / properties you add will show up in new jsPDF objects.\r\n *\r\n * One property is prepopulated. It is the 'events' Object. Plugin authors can add topics,\r\n * callbacks to this object. These will be reassigned to all new instances of jsPDF.\r\n *\r\n * @static\r\n * @public\r\n * @memberof jsPDF#\r\n * @name API\r\n *\r\n * @example\r\n * jsPDF.API.mymethod = function(){\r\n * // 'this' will be ref to internal API object. see jsPDF source\r\n * // , so you can refer to built-in methods like so:\r\n * // this.line(....)\r\n * // this.text(....)\r\n * }\r\n * var pdfdoc = new jsPDF()\r\n * pdfdoc.mymethod() // <- !!!!!!\r\n */\r\njsPDF.API = {\r\n events: []\r\n};\r\n/**\r\n * The version of jsPDF.\r\n * @name version\r\n * @type {string}\r\n * @memberof jsPDF#\r\n */\r\njsPDF.version = \"0.0.0\";\r\n\r\nexport { jsPDF, ShadingPattern, TilingPattern, GState };\r\nexport default jsPDF;\r\n","/* global jsPDF */\n/**\n * @license\n * Copyright (c) 2016 Alexander Weidt,\n * https://github.com/BiggA94\n *\n * Licensed under the MIT License. http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF AcroForm Plugin\n * @module AcroForm\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\nvar jsPDFAPI = jsPDF.API;\nvar scaleFactor = 1;\n\nvar pdfEscape = function(value) {\n return value\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\(/g, \"\\\\(\")\n .replace(/\\)/g, \"\\\\)\");\n};\nvar pdfUnescape = function(value) {\n return value\n .replace(/\\\\\\\\/g, \"\\\\\")\n .replace(/\\\\\\(/g, \"(\")\n .replace(/\\\\\\)/g, \")\");\n};\n\nvar f2 = function(number) {\n return number.toFixed(2); // Ie, %.2f\n};\n\nvar f5 = function(number) {\n return number.toFixed(5); // Ie, %.2f\n};\n\njsPDFAPI.__acroform__ = {};\nvar inherit = function(child, parent) {\n child.prototype = Object.create(parent.prototype);\n child.prototype.constructor = child;\n};\n\nvar scale = function(x) {\n return x * scaleFactor;\n};\n\nvar createFormXObject = function(formObject) {\n var xobj = new AcroFormXObject();\n var height = AcroFormAppearance.internal.getHeight(formObject) || 0;\n var width = AcroFormAppearance.internal.getWidth(formObject) || 0;\n xobj.BBox = [0, 0, Number(f2(width)), Number(f2(height))];\n return xobj;\n};\n\n/**\n * Bit-Operations\n */\nvar setBit = (jsPDFAPI.__acroform__.setBit = function(number, bitPosition) {\n number = number || 0;\n bitPosition = bitPosition || 0;\n\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.setBit\"\n );\n }\n var bitMask = 1 << bitPosition;\n\n number |= bitMask;\n\n return number;\n});\n\nvar clearBit = (jsPDFAPI.__acroform__.clearBit = function(number, bitPosition) {\n number = number || 0;\n bitPosition = bitPosition || 0;\n\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.clearBit\"\n );\n }\n var bitMask = 1 << bitPosition;\n\n number &= ~bitMask;\n\n return number;\n});\n\nvar getBit = (jsPDFAPI.__acroform__.getBit = function(number, bitPosition) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.getBit\"\n );\n }\n return (number & (1 << bitPosition)) === 0 ? 0 : 1;\n});\n\n/*\n * Ff starts counting the bit position at 1 and not like javascript at 0\n */\nvar getBitForPdf = (jsPDFAPI.__acroform__.getBitForPdf = function(\n number,\n bitPosition\n) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.getBitForPdf\"\n );\n }\n return getBit(number, bitPosition - 1);\n});\n\nvar setBitForPdf = (jsPDFAPI.__acroform__.setBitForPdf = function(\n number,\n bitPosition\n) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.setBitForPdf\"\n );\n }\n return setBit(number, bitPosition - 1);\n});\n\nvar clearBitForPdf = (jsPDFAPI.__acroform__.clearBitForPdf = function(\n number,\n bitPosition\n) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.clearBitForPdf\"\n );\n }\n return clearBit(number, bitPosition - 1);\n});\n\nvar calculateCoordinates = (jsPDFAPI.__acroform__.calculateCoordinates = function(\n args,\n scope\n) {\n var getHorizontalCoordinate = scope.internal.getHorizontalCoordinate;\n var getVerticalCoordinate = scope.internal.getVerticalCoordinate;\n var x = args[0];\n var y = args[1];\n var w = args[2];\n var h = args[3];\n\n var coordinates = {};\n\n coordinates.lowerLeft_X = getHorizontalCoordinate(x) || 0;\n coordinates.lowerLeft_Y = getVerticalCoordinate(y + h) || 0;\n coordinates.upperRight_X = getHorizontalCoordinate(x + w) || 0;\n coordinates.upperRight_Y = getVerticalCoordinate(y) || 0;\n\n return [\n Number(f2(coordinates.lowerLeft_X)),\n Number(f2(coordinates.lowerLeft_Y)),\n Number(f2(coordinates.upperRight_X)),\n Number(f2(coordinates.upperRight_Y))\n ];\n});\n\nvar calculateAppearanceStream = function(formObject) {\n if (formObject.appearanceStreamContent) {\n return formObject.appearanceStreamContent;\n }\n\n if (!formObject.V && !formObject.DV) {\n return;\n }\n\n // else calculate it\n\n var stream = [];\n var text = formObject._V || formObject.DV;\n var calcRes = calculateX(formObject, text);\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n\n //PDF 32000-1:2008, page 444\n stream.push(\"/Tx BMC\");\n stream.push(\"q\");\n stream.push(\"BT\"); // Begin Text\n stream.push(formObject.scope.__private__.encodeColorString(formObject.color));\n stream.push(\"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf\");\n stream.push(\"1 0 0 1 0 0 Tm\"); // Transformation Matrix\n stream.push(calcRes.text);\n stream.push(\"ET\"); // End Text\n stream.push(\"Q\");\n stream.push(\"EMC\");\n\n var appearanceStreamContent = createFormXObject(formObject);\n appearanceStreamContent.scope = formObject.scope;\n appearanceStreamContent.stream = stream.join(\"\\n\");\n return appearanceStreamContent;\n};\n\nvar calculateX = function(formObject, text) {\n var maxFontSize =\n formObject.fontSize === 0 ? formObject.maxFontSize : formObject.fontSize;\n var returnValue = {\n text: \"\",\n fontSize: \"\"\n };\n // Remove Brackets\n text = text.substr(0, 1) == \"(\" ? text.substr(1) : text;\n text =\n text.substr(text.length - 1) == \")\"\n ? text.substr(0, text.length - 1)\n : text;\n // split into array of words\n var textSplit = text.split(\" \");\n if (formObject.multiline) {\n textSplit = textSplit.map(word => word.split(\"\\n\"));\n } else {\n textSplit = textSplit.map(word => [word]);\n }\n\n var fontSize = maxFontSize; // The Starting fontSize (The Maximum)\n var lineSpacing = 2;\n var borderPadding = 2;\n\n var height = AcroFormAppearance.internal.getHeight(formObject) || 0;\n height = height < 0 ? -height : height;\n var width = AcroFormAppearance.internal.getWidth(formObject) || 0;\n width = width < 0 ? -width : width;\n\n var isSmallerThanWidth = function(i, lastLine, fontSize) {\n if (i + 1 < textSplit.length) {\n var tmp = lastLine + \" \" + textSplit[i + 1][0];\n var TextWidth = calculateFontSpace(tmp, formObject, fontSize).width;\n var FieldWidth = width - 2 * borderPadding;\n return TextWidth <= FieldWidth;\n } else {\n return false;\n }\n };\n\n fontSize++;\n FontSize: while (fontSize > 0) {\n text = \"\";\n fontSize--;\n var textHeight = calculateFontSpace(\"3\", formObject, fontSize).height;\n var startY = formObject.multiline\n ? height - fontSize\n : (height - textHeight) / 2;\n startY += lineSpacing;\n var startX;\n\n var lastY = startY;\n var firstWordInLine = 0,\n lastWordInLine = 0;\n var lastLength;\n var currWord = 0;\n\n if (fontSize <= 0) {\n // In case, the Text doesn't fit at all\n fontSize = 12;\n text = \"(...) Tj\\n\";\n text +=\n \"% Width of Text: \" +\n calculateFontSpace(text, formObject, fontSize).width +\n \", FieldWidth:\" +\n width +\n \"\\n\";\n break;\n }\n\n var lastLine = \"\";\n var lineCount = 0;\n Line: for (var i = 0; i < textSplit.length; i++) {\n if (textSplit.hasOwnProperty(i)) {\n let isWithNewLine = false;\n if (textSplit[i].length !== 1 && currWord !== textSplit[i].length - 1) {\n if (\n (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n height\n ) {\n continue FontSize;\n }\n\n lastLine += textSplit[i][currWord];\n isWithNewLine = true;\n lastWordInLine = i;\n i--;\n } else {\n lastLine += textSplit[i][currWord] + \" \";\n lastLine =\n lastLine.substr(lastLine.length - 1) == \" \"\n ? lastLine.substr(0, lastLine.length - 1)\n : lastLine;\n var key = parseInt(i);\n var nextLineIsSmaller = isSmallerThanWidth(key, lastLine, fontSize);\n var isLastWord = i >= textSplit.length - 1;\n\n if (nextLineIsSmaller && !isLastWord) {\n lastLine += \" \";\n currWord = 0;\n continue; // Line\n } else if (!nextLineIsSmaller && !isLastWord) {\n if (!formObject.multiline) {\n continue FontSize;\n } else {\n if (\n (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n height\n ) {\n // If the Text is higher than the\n // FieldObject\n continue FontSize;\n }\n lastWordInLine = key;\n // go on\n }\n } else if (isLastWord) {\n lastWordInLine = key;\n } else {\n if (\n formObject.multiline &&\n (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n height\n ) {\n // If the Text is higher than the FieldObject\n continue FontSize;\n }\n }\n }\n // Remove last blank\n\n var line = \"\";\n\n for (var x = firstWordInLine; x <= lastWordInLine; x++) {\n var currLine = textSplit[x];\n if (formObject.multiline) {\n if (x === lastWordInLine) {\n line += currLine[currWord] + \" \";\n currWord = (currWord + 1) % currLine.length;\n continue;\n }\n if (x === firstWordInLine) {\n line += currLine[currLine.length - 1] + \" \";\n continue;\n }\n }\n line += currLine[0] + \" \";\n }\n\n // Remove last blank\n line =\n line.substr(line.length - 1) == \" \"\n ? line.substr(0, line.length - 1)\n : line;\n // lastLength -= blankSpace.width;\n lastLength = calculateFontSpace(line, formObject, fontSize).width;\n\n // Calculate startX\n switch (formObject.textAlign) {\n case \"right\":\n startX = width - lastLength - borderPadding;\n break;\n case \"center\":\n startX = (width - lastLength) / 2;\n break;\n case \"left\":\n default:\n startX = borderPadding;\n break;\n }\n text += f2(startX) + \" \" + f2(lastY) + \" Td\\n\";\n text += \"(\" + pdfEscape(line) + \") Tj\\n\";\n // reset X in PDF\n text += -f2(startX) + \" 0 Td\\n\";\n\n // After a Line, adjust y position\n lastY = -(fontSize + lineSpacing);\n\n // Reset for next iteration step\n lastLength = 0;\n firstWordInLine = isWithNewLine ? lastWordInLine : lastWordInLine + 1;\n lineCount++;\n\n lastLine = \"\";\n continue Line;\n }\n }\n break;\n }\n\n returnValue.text = text;\n returnValue.fontSize = fontSize;\n\n return returnValue;\n};\n\n/**\n * Small workaround for calculating the TextMetric approximately.\n *\n * @param text\n * @param fontsize\n * @returns {TextMetrics} (Has Height and Width)\n */\nvar calculateFontSpace = function(text, formObject, fontSize) {\n var font = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n );\n var width =\n formObject.scope.getStringUnitWidth(text, {\n font: font,\n fontSize: parseFloat(fontSize),\n charSpace: 0\n }) * parseFloat(fontSize);\n var height =\n formObject.scope.getStringUnitWidth(\"3\", {\n font: font,\n fontSize: parseFloat(fontSize),\n charSpace: 0\n }) *\n parseFloat(fontSize) *\n 1.5;\n return { height: height, width: width };\n};\n\nvar acroformPluginTemplate = {\n fields: [],\n xForms: [],\n /**\n * acroFormDictionaryRoot contains information about the AcroForm\n * Dictionary 0: The Event-Token, the AcroFormDictionaryCallback has\n * 1: The Object ID of the Root\n */\n acroFormDictionaryRoot: null,\n /**\n * After the PDF gets evaluated, the reference to the root has to be\n * reset, this indicates, whether the root has already been printed\n * out\n */\n printedOut: false,\n internal: null,\n isInitialized: false\n};\n\nvar annotReferenceCallback = function(scope) {\n //set objId to undefined and force it to get a new objId on buildDocument\n scope.internal.acroformPlugin.acroFormDictionaryRoot.objId = undefined;\n var fields = scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields;\n for (var i in fields) {\n if (fields.hasOwnProperty(i)) {\n var formObject = fields[i];\n //set objId to undefined and force it to get a new objId on buildDocument\n formObject.objId = undefined;\n // add Annot Reference!\n if (formObject.hasAnnotation) {\n // If theres an Annotation Widget in the Form Object, put the\n // Reference in the /Annot array\n createAnnotationReference(formObject, scope);\n }\n }\n }\n};\n\nvar putForm = function(formObject) {\n if (formObject.scope.internal.acroformPlugin.printedOut) {\n formObject.scope.internal.acroformPlugin.printedOut = false;\n formObject.scope.internal.acroformPlugin.acroFormDictionaryRoot = null;\n }\n formObject.scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields.push(\n formObject\n );\n};\n/**\n * Create the Reference to the widgetAnnotation, so that it gets referenced\n * in the Annot[] int the+ (Requires the Annotation Plugin)\n */\nvar createAnnotationReference = function(object, scope) {\n var options = {\n type: \"reference\",\n object: object\n };\n var findEntry = function(entry) {\n return entry.type === options.type && entry.object === options.object;\n };\n if (\n scope.internal\n .getPageInfo(object.page)\n .pageContext.annotations.find(findEntry) === undefined\n ) {\n scope.internal\n .getPageInfo(object.page)\n .pageContext.annotations.push(options);\n }\n};\n\n// Callbacks\n\nvar putCatalogCallback = function(scope) {\n // Put reference to AcroForm to DocumentCatalog\n if (\n typeof scope.internal.acroformPlugin.acroFormDictionaryRoot !== \"undefined\"\n ) {\n // for safety, shouldn't normally be the case\n scope.internal.write(\n \"/AcroForm \" +\n scope.internal.acroformPlugin.acroFormDictionaryRoot.objId +\n \" \" +\n 0 +\n \" R\"\n );\n } else {\n throw new Error(\"putCatalogCallback: Root missing.\");\n }\n};\n\n/**\n * Adds /Acroform X 0 R to Document Catalog, and creates the AcroForm\n * Dictionary\n */\nvar AcroFormDictionaryCallback = function(scope) {\n // Remove event\n scope.internal.events.unsubscribe(\n scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID\n );\n delete scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID;\n scope.internal.acroformPlugin.printedOut = true;\n};\n\n/**\n * Creates the single Fields and writes them into the Document\n *\n * If fieldArray is set, use the fields that are inside it instead of the\n * fields from the AcroRoot (for the FormXObjects...)\n */\nvar createFieldCallback = function(fieldArray, scope) {\n var standardFields = !fieldArray;\n\n if (!fieldArray) {\n // in case there is no fieldArray specified, we want to print out\n // the Fields of the AcroForm\n // Print out Root\n scope.internal.newObjectDeferredBegin(\n scope.internal.acroformPlugin.acroFormDictionaryRoot.objId,\n true\n );\n scope.internal.acroformPlugin.acroFormDictionaryRoot.putStream();\n }\n\n fieldArray =\n fieldArray || scope.internal.acroformPlugin.acroFormDictionaryRoot.Kids;\n\n for (var i in fieldArray) {\n if (fieldArray.hasOwnProperty(i)) {\n var fieldObject = fieldArray[i];\n var keyValueList = [];\n var oldRect = fieldObject.Rect;\n\n if (fieldObject.Rect) {\n fieldObject.Rect = calculateCoordinates(fieldObject.Rect, scope);\n }\n\n // Start Writing the Object\n scope.internal.newObjectDeferredBegin(fieldObject.objId, true);\n\n fieldObject.DA = AcroFormAppearance.createDefaultAppearanceStream(\n fieldObject\n );\n\n if (\n typeof fieldObject === \"object\" &&\n typeof fieldObject.getKeyValueListForStream === \"function\"\n ) {\n keyValueList = fieldObject.getKeyValueListForStream();\n }\n\n fieldObject.Rect = oldRect;\n\n if (\n fieldObject.hasAppearanceStream &&\n !fieldObject.appearanceStreamContent\n ) {\n // Calculate Appearance\n var appearance = calculateAppearanceStream(fieldObject);\n keyValueList.push({ key: \"AP\", value: \"<>\" });\n\n scope.internal.acroformPlugin.xForms.push(appearance);\n }\n\n // Assume AppearanceStreamContent is a Array with N,R,D (at least\n // one of them!)\n if (fieldObject.appearanceStreamContent) {\n var appearanceStreamString = \"\";\n // Iterate over N,R and D\n for (var k in fieldObject.appearanceStreamContent) {\n if (fieldObject.appearanceStreamContent.hasOwnProperty(k)) {\n var value = fieldObject.appearanceStreamContent[k];\n appearanceStreamString += \"/\" + k + \" \";\n appearanceStreamString += \"<<\";\n if (Object.keys(value).length >= 1 || Array.isArray(value)) {\n // appearanceStream is an Array or Object!\n for (var i in value) {\n if (value.hasOwnProperty(i)) {\n var obj = value[i];\n if (typeof obj === \"function\") {\n // if Function is referenced, call it in order\n // to get the FormXObject\n obj = obj.call(scope, fieldObject);\n }\n appearanceStreamString += \"/\" + i + \" \" + obj + \" \";\n\n // In case the XForm is already used, e.g. OffState\n // of CheckBoxes, don't add it\n if (!(scope.internal.acroformPlugin.xForms.indexOf(obj) >= 0))\n scope.internal.acroformPlugin.xForms.push(obj);\n }\n }\n } else {\n obj = value;\n if (typeof obj === \"function\") {\n // if Function is referenced, call it in order to\n // get the FormXObject\n obj = obj.call(scope, fieldObject);\n }\n appearanceStreamString += \"/\" + i + \" \" + obj;\n if (!(scope.internal.acroformPlugin.xForms.indexOf(obj) >= 0))\n scope.internal.acroformPlugin.xForms.push(obj);\n }\n appearanceStreamString += \">>\";\n }\n }\n\n // appearance stream is a normal Object..\n keyValueList.push({\n key: \"AP\",\n value: \"<<\\n\" + appearanceStreamString + \">>\"\n });\n }\n\n scope.internal.putStream({\n additionalKeyValues: keyValueList,\n objectId: fieldObject.objId\n });\n\n scope.internal.out(\"endobj\");\n }\n }\n if (standardFields) {\n createXFormObjectCallback(scope.internal.acroformPlugin.xForms, scope);\n }\n};\n\nvar createXFormObjectCallback = function(fieldArray, scope) {\n for (var i in fieldArray) {\n if (fieldArray.hasOwnProperty(i)) {\n var key = i;\n var fieldObject = fieldArray[i];\n // Start Writing the Object\n scope.internal.newObjectDeferredBegin(fieldObject.objId, true);\n\n if (\n typeof fieldObject === \"object\" &&\n typeof fieldObject.putStream === \"function\"\n ) {\n fieldObject.putStream();\n }\n delete fieldArray[key];\n }\n }\n};\n\nvar initializeAcroForm = function(scope, formObject) {\n formObject.scope = scope;\n if (\n scope.internal !== undefined &&\n (scope.internal.acroformPlugin === undefined ||\n scope.internal.acroformPlugin.isInitialized === false)\n ) {\n AcroFormField.FieldNum = 0;\n scope.internal.acroformPlugin = JSON.parse(\n JSON.stringify(acroformPluginTemplate)\n );\n if (scope.internal.acroformPlugin.acroFormDictionaryRoot) {\n throw new Error(\"Exception while creating AcroformDictionary\");\n }\n scaleFactor = scope.internal.scaleFactor;\n // The Object Number of the AcroForm Dictionary\n scope.internal.acroformPlugin.acroFormDictionaryRoot = new AcroFormDictionary();\n scope.internal.acroformPlugin.acroFormDictionaryRoot.scope = scope;\n\n // add Callback for creating the AcroForm Dictionary\n scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID = scope.internal.events.subscribe(\n \"postPutResources\",\n function() {\n AcroFormDictionaryCallback(scope);\n }\n );\n\n scope.internal.events.subscribe(\"buildDocument\", function() {\n annotReferenceCallback(scope);\n }); // buildDocument\n\n // Register event, that is triggered when the DocumentCatalog is\n // written, in order to add /AcroForm\n\n scope.internal.events.subscribe(\"putCatalog\", function() {\n putCatalogCallback(scope);\n });\n\n // Register event, that creates all Fields\n scope.internal.events.subscribe(\"postPutPages\", function(fieldArray) {\n createFieldCallback(fieldArray, scope);\n });\n\n scope.internal.acroformPlugin.isInitialized = true;\n }\n};\n\n//PDF 32000-1:2008, page 26, 7.3.6\nvar arrayToPdfArray = (jsPDFAPI.__acroform__.arrayToPdfArray = function(\n array,\n objId,\n scope\n) {\n var encryptor = function(data) {\n return data;\n };\n if (Array.isArray(array)) {\n var content = \"[\";\n for (var i = 0; i < array.length; i++) {\n if (i !== 0) {\n content += \" \";\n }\n switch (typeof array[i]) {\n case \"boolean\":\n case \"number\":\n case \"object\":\n content += array[i].toString();\n break;\n case \"string\":\n if (array[i].substr(0, 1) !== \"/\") {\n if (typeof objId !== \"undefined\" && scope)\n encryptor = scope.internal.getEncryptor(objId);\n content += \"(\" + pdfEscape(encryptor(array[i].toString())) + \")\";\n } else {\n content += array[i].toString();\n }\n break;\n }\n }\n content += \"]\";\n return content;\n }\n throw new Error(\n \"Invalid argument passed to jsPDF.__acroform__.arrayToPdfArray\"\n );\n});\nfunction getMatches(string, regex, index) {\n index || (index = 1); // default to the first capturing group\n var matches = [];\n var match;\n while ((match = regex.exec(string))) {\n matches.push(match[index]);\n }\n return matches;\n}\nvar pdfArrayToStringArray = function(array) {\n var result = [];\n if (typeof array === \"string\") {\n result = getMatches(array, /\\((.*?)\\)/g);\n }\n return result;\n};\n\nvar toPdfString = function(string, objId, scope) {\n var encryptor = function(data) {\n return data;\n };\n if (typeof objId !== \"undefined\" && scope)\n encryptor = scope.internal.getEncryptor(objId);\n string = string || \"\";\n string.toString();\n string = \"(\" + pdfEscape(encryptor(string)) + \")\";\n return string;\n};\n\n// ##########################\n// Classes\n// ##########################\n\n/**\n * @class AcroFormPDFObject\n * @classdesc A AcroFormPDFObject\n */\nvar AcroFormPDFObject = function() {\n this._objId = undefined;\n this._scope = undefined;\n\n /**\n * @name AcroFormPDFObject#objId\n * @type {any}\n */\n Object.defineProperty(this, \"objId\", {\n get: function() {\n if (typeof this._objId === \"undefined\") {\n if (typeof this.scope === \"undefined\") {\n return undefined;\n }\n this._objId = this.scope.internal.newObjectDeferred();\n }\n return this._objId;\n },\n set: function(value) {\n this._objId = value;\n }\n });\n Object.defineProperty(this, \"scope\", {\n value: this._scope,\n writable: true\n });\n};\n\n/**\n * @function AcroFormPDFObject.toString\n */\nAcroFormPDFObject.prototype.toString = function() {\n return this.objId + \" 0 R\";\n};\n\nAcroFormPDFObject.prototype.putStream = function() {\n var keyValueList = this.getKeyValueListForStream();\n this.scope.internal.putStream({\n data: this.stream,\n additionalKeyValues: keyValueList,\n objectId: this.objId\n });\n this.scope.internal.out(\"endobj\");\n};\n\n/**\n * Returns an key-value-List of all non-configurable Variables from the Object\n *\n * @name getKeyValueListForStream\n * @returns {string}\n */\nAcroFormPDFObject.prototype.getKeyValueListForStream = function() {\n var keyValueList = [];\n var keys = Object.getOwnPropertyNames(this).filter(function(key) {\n return (\n key != \"content\" &&\n key != \"appearanceStreamContent\" &&\n key != \"scope\" &&\n key != \"objId\" &&\n key.substring(0, 1) != \"_\"\n );\n });\n\n for (var i in keys) {\n if (Object.getOwnPropertyDescriptor(this, keys[i]).configurable === false) {\n var key = keys[i];\n var value = this[key];\n\n if (value) {\n if (Array.isArray(value)) {\n keyValueList.push({\n key: key,\n value: arrayToPdfArray(value, this.objId, this.scope)\n });\n } else if (value instanceof AcroFormPDFObject) {\n // In case it is a reference to another PDFObject,\n // take the reference number\n value.scope = this.scope;\n keyValueList.push({ key: key, value: value.objId + \" 0 R\" });\n } else if (typeof value !== \"function\") {\n keyValueList.push({ key: key, value: value });\n }\n }\n }\n }\n return keyValueList;\n};\n\nvar AcroFormXObject = function() {\n AcroFormPDFObject.call(this);\n\n Object.defineProperty(this, \"Type\", {\n value: \"/XObject\",\n configurable: false,\n writable: true\n });\n\n Object.defineProperty(this, \"Subtype\", {\n value: \"/Form\",\n configurable: false,\n writable: true\n });\n\n Object.defineProperty(this, \"FormType\", {\n value: 1,\n configurable: false,\n writable: true\n });\n\n var _BBox = [];\n Object.defineProperty(this, \"BBox\", {\n configurable: false,\n get: function() {\n return _BBox;\n },\n set: function(value) {\n _BBox = value;\n }\n });\n\n Object.defineProperty(this, \"Resources\", {\n value: \"2 0 R\",\n configurable: false,\n writable: true\n });\n\n var _stream;\n Object.defineProperty(this, \"stream\", {\n enumerable: false,\n configurable: true,\n set: function(value) {\n _stream = value.trim();\n },\n get: function() {\n if (_stream) {\n return _stream;\n } else {\n return null;\n }\n }\n });\n};\n\ninherit(AcroFormXObject, AcroFormPDFObject);\n\nvar AcroFormDictionary = function() {\n AcroFormPDFObject.call(this);\n\n var _Kids = [];\n\n Object.defineProperty(this, \"Kids\", {\n enumerable: false,\n configurable: true,\n get: function() {\n if (_Kids.length > 0) {\n return _Kids;\n } else {\n return undefined;\n }\n }\n });\n Object.defineProperty(this, \"Fields\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _Kids;\n }\n });\n\n // Default Appearance\n var _DA;\n Object.defineProperty(this, \"DA\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_DA) {\n return undefined;\n }\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n return \"(\" + pdfEscape(encryptor(_DA)) + \")\";\n },\n set: function(value) {\n _DA = value;\n }\n });\n};\n\ninherit(AcroFormDictionary, AcroFormPDFObject);\n\n/**\n * The Field Object contains the Variables, that every Field needs\n *\n * @class AcroFormField\n * @classdesc An AcroForm FieldObject\n */\nvar AcroFormField = function() {\n AcroFormPDFObject.call(this);\n\n //Annotation-Flag See Table 165\n var _F = 4;\n Object.defineProperty(this, \"F\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _F;\n },\n set: function(value) {\n if (!isNaN(value)) {\n _F = value;\n } else {\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute F supplied.'\n );\n }\n }\n });\n\n /**\n * (PDF 1.2) If set, print the annotation when the page is printed. If clear, never print the annotation, regardless of wether is is displayed on the screen.\n * NOTE 2 This can be useful for annotations representing interactive pushbuttons, which would serve no meaningful purpose on the printed page.\n *\n * @name AcroFormField#showWhenPrinted\n * @default true\n * @type {boolean}\n */\n Object.defineProperty(this, \"showWhenPrinted\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(_F, 3));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.F = setBitForPdf(_F, 3);\n } else {\n this.F = clearBitForPdf(_F, 3);\n }\n }\n });\n\n var _Ff = 0;\n Object.defineProperty(this, \"Ff\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _Ff;\n },\n set: function(value) {\n if (!isNaN(value)) {\n _Ff = value;\n } else {\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute Ff supplied.'\n );\n }\n }\n });\n\n var _Rect = [];\n Object.defineProperty(this, \"Rect\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (_Rect.length === 0) {\n return undefined;\n }\n return _Rect;\n },\n set: function(value) {\n if (typeof value !== \"undefined\") {\n _Rect = value;\n } else {\n _Rect = [];\n }\n }\n });\n\n /**\n * The x-position of the field.\n *\n * @name AcroFormField#x\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"x\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[0])) {\n return 0;\n }\n return _Rect[0];\n },\n set: function(value) {\n _Rect[0] = value;\n }\n });\n\n /**\n * The y-position of the field.\n *\n * @name AcroFormField#y\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"y\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[1])) {\n return 0;\n }\n return _Rect[1];\n },\n set: function(value) {\n _Rect[1] = value;\n }\n });\n\n /**\n * The width of the field.\n *\n * @name AcroFormField#width\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"width\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[2])) {\n return 0;\n }\n return _Rect[2];\n },\n set: function(value) {\n _Rect[2] = value;\n }\n });\n\n /**\n * The height of the field.\n *\n * @name AcroFormField#height\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"height\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[3])) {\n return 0;\n }\n return _Rect[3];\n },\n set: function(value) {\n _Rect[3] = value;\n }\n });\n\n var _FT = \"\";\n Object.defineProperty(this, \"FT\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _FT;\n },\n set: function(value) {\n switch (value) {\n case \"/Btn\":\n case \"/Tx\":\n case \"/Ch\":\n case \"/Sig\":\n _FT = value;\n break;\n default:\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute FT supplied.'\n );\n }\n }\n });\n\n var _T = null;\n\n Object.defineProperty(this, \"T\", {\n enumerable: true,\n configurable: false,\n get: function() {\n if (!_T || _T.length < 1) {\n // In case of a Child from a Radio´Group, you don't need a FieldName\n if (this instanceof AcroFormChildClass) {\n return undefined;\n }\n _T = \"FieldObject\" + AcroFormField.FieldNum++;\n }\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n return \"(\" + pdfEscape(encryptor(_T)) + \")\";\n },\n set: function(value) {\n _T = value.toString();\n }\n });\n\n /**\n * (Optional) The partial field name (see 12.7.3.2, “Field Names”).\n *\n * @name AcroFormField#fieldName\n * @default null\n * @type {string}\n */\n Object.defineProperty(this, \"fieldName\", {\n configurable: true,\n enumerable: true,\n get: function() {\n return _T;\n },\n set: function(value) {\n _T = value;\n }\n });\n\n var _fontName = \"helvetica\";\n /**\n * The fontName of the font to be used.\n *\n * @name AcroFormField#fontName\n * @default 'helvetica'\n * @type {string}\n */\n Object.defineProperty(this, \"fontName\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _fontName;\n },\n set: function(value) {\n _fontName = value;\n }\n });\n\n var _fontStyle = \"normal\";\n /**\n * The fontStyle of the font to be used.\n *\n * @name AcroFormField#fontStyle\n * @default 'normal'\n * @type {string}\n */\n Object.defineProperty(this, \"fontStyle\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _fontStyle;\n },\n set: function(value) {\n _fontStyle = value;\n }\n });\n\n var _fontSize = 0;\n /**\n * The fontSize of the font to be used.\n *\n * @name AcroFormField#fontSize\n * @default 0 (for auto)\n * @type {number}\n */\n Object.defineProperty(this, \"fontSize\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _fontSize;\n },\n set: function(value) {\n _fontSize = value;\n }\n });\n\n var _maxFontSize = undefined;\n /**\n * The maximum fontSize of the font to be used.\n *\n * @name AcroFormField#maxFontSize\n * @default 0 (for auto)\n * @type {number}\n */\n Object.defineProperty(this, \"maxFontSize\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (_maxFontSize === undefined) {\n // use the old default value here - the value is some kind of random as it depends on the scaleFactor (user unit)\n // (\"50\" is transformed to the \"user space\" but then used in \"pdf space\")\n return 50 / scaleFactor;\n } else {\n return _maxFontSize;\n }\n },\n set: function(value) {\n _maxFontSize = value;\n }\n });\n\n var _color = \"black\";\n /**\n * The color of the text\n *\n * @name AcroFormField#color\n * @default 'black'\n * @type {string|rgba}\n */\n Object.defineProperty(this, \"color\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _color;\n },\n set: function(value) {\n _color = value;\n }\n });\n\n var _DA = \"/F1 0 Tf 0 g\";\n // Defines the default appearance (Needed for variable Text)\n Object.defineProperty(this, \"DA\", {\n enumerable: true,\n configurable: false,\n get: function() {\n if (\n !_DA ||\n this instanceof AcroFormChildClass ||\n this instanceof AcroFormTextField\n ) {\n return undefined;\n }\n return toPdfString(_DA, this.objId, this.scope);\n },\n set: function(value) {\n value = value.toString();\n _DA = value;\n }\n });\n\n var _DV = null;\n Object.defineProperty(this, \"DV\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_DV) {\n return undefined;\n }\n if (this instanceof AcroFormButton === false) {\n return toPdfString(_DV, this.objId, this.scope);\n }\n return _DV;\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === false) {\n if (value.substr(0, 1) === \"(\") {\n _DV = pdfUnescape(value.substr(1, value.length - 2));\n } else {\n _DV = pdfUnescape(value);\n }\n } else {\n _DV = value;\n }\n }\n });\n\n /**\n * (Optional; inheritable) The default value to which the field reverts when a reset-form action is executed (see 12.7.5.3, “Reset-Form Action”). The format of this value is the same as that of value.\n *\n * @name AcroFormField#defaultValue\n * @default null\n * @type {any}\n */\n Object.defineProperty(this, \"defaultValue\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (this instanceof AcroFormButton === true) {\n return pdfUnescape(_DV.substr(1, _DV.length - 1));\n } else {\n return _DV;\n }\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === true) {\n _DV = \"/\" + value;\n } else {\n _DV = value;\n }\n }\n });\n\n var _V = null;\n Object.defineProperty(this, \"_V\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_V) {\n return undefined;\n }\n return _V;\n },\n set: function(value) {\n this.V = value;\n }\n });\n Object.defineProperty(this, \"V\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_V) {\n return undefined;\n }\n if (this instanceof AcroFormButton === false) {\n return toPdfString(_V, this.objId, this.scope);\n }\n return _V;\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === false) {\n if (value.substr(0, 1) === \"(\") {\n _V = pdfUnescape(value.substr(1, value.length - 2));\n } else {\n _V = pdfUnescape(value);\n }\n } else {\n _V = value;\n }\n }\n });\n\n /**\n * (Optional; inheritable) The field’s value, whose format varies depending on the field type. See the descriptions of individual field types for further information.\n *\n * @name AcroFormField#value\n * @default null\n * @type {any}\n */\n Object.defineProperty(this, \"value\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (this instanceof AcroFormButton === true) {\n return pdfUnescape(_V.substr(1, _V.length - 1));\n } else {\n return _V;\n }\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === true) {\n _V = \"/\" + value;\n } else {\n _V = value;\n }\n }\n });\n\n /**\n * Check if field has annotations\n *\n * @name AcroFormField#hasAnnotation\n * @readonly\n * @type {boolean}\n */\n Object.defineProperty(this, \"hasAnnotation\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return this.Rect;\n }\n });\n\n Object.defineProperty(this, \"Type\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return this.hasAnnotation ? \"/Annot\" : null;\n }\n });\n\n Object.defineProperty(this, \"Subtype\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return this.hasAnnotation ? \"/Widget\" : null;\n }\n });\n\n var _hasAppearanceStream = false;\n /**\n * true if field has an appearanceStream\n *\n * @name AcroFormField#hasAppearanceStream\n * @readonly\n * @type {boolean}\n */\n Object.defineProperty(this, \"hasAppearanceStream\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _hasAppearanceStream;\n },\n set: function(value) {\n value = Boolean(value);\n _hasAppearanceStream = value;\n }\n });\n\n /**\n * The page on which the AcroFormField is placed\n *\n * @name AcroFormField#page\n * @type {number}\n */\n var _page;\n Object.defineProperty(this, \"page\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_page) {\n return undefined;\n }\n return _page;\n },\n set: function(value) {\n _page = value;\n }\n });\n\n /**\n * If set, the user may not change the value of the field. Any associated widget annotations will not interact with the user; that is, they will not respond to mouse clicks or change their appearance in response to mouse motions. This flag is useful for fields whose values are computed or imported from a database.\n *\n * @name AcroFormField#readOnly\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"readOnly\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 1));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 1);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 1);\n }\n }\n });\n\n /**\n * If set, the field shall have a value at the time it is exported by a submitform action (see 12.7.5.2, “Submit-Form Action”).\n *\n * @name AcroFormField#required\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"required\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 2));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 2);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 2);\n }\n }\n });\n\n /**\n * If set, the field shall not be exported by a submit-form action (see 12.7.5.2, “Submit-Form Action”)\n *\n * @name AcroFormField#noExport\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"noExport\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 3));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 3);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 3);\n }\n }\n });\n\n var _Q = null;\n Object.defineProperty(this, \"Q\", {\n enumerable: true,\n configurable: false,\n get: function() {\n if (_Q === null) {\n return undefined;\n }\n return _Q;\n },\n set: function(value) {\n if ([0, 1, 2].indexOf(value) !== -1) {\n _Q = value;\n } else {\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute Q supplied.'\n );\n }\n }\n });\n\n /**\n * (Optional; inheritable) A code specifying the form of quadding (justification) that shall be used in displaying the text:\n * 'left', 'center', 'right'\n *\n * @name AcroFormField#textAlign\n * @default 'left'\n * @type {string}\n */\n Object.defineProperty(this, \"textAlign\", {\n get: function() {\n var result;\n switch (_Q) {\n case 0:\n default:\n result = \"left\";\n break;\n case 1:\n result = \"center\";\n break;\n case 2:\n result = \"right\";\n break;\n }\n return result;\n },\n configurable: true,\n enumerable: true,\n set: function(value) {\n switch (value) {\n case \"right\":\n case 2:\n _Q = 2;\n break;\n case \"center\":\n case 1:\n _Q = 1;\n break;\n case \"left\":\n case 0:\n default:\n _Q = 0;\n }\n }\n });\n};\n\ninherit(AcroFormField, AcroFormPDFObject);\n\n/**\n * @class AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormChoiceField = function() {\n AcroFormField.call(this);\n // Field Type = Choice Field\n this.FT = \"/Ch\";\n // options\n this.V = \"()\";\n\n this.fontName = \"zapfdingbats\";\n // Top Index\n var _TI = 0;\n\n Object.defineProperty(this, \"TI\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _TI;\n },\n set: function(value) {\n _TI = value;\n }\n });\n\n /**\n * (Optional) For scrollable list boxes, the top index (the index in the Opt array of the first option visible in the list). Default value: 0.\n *\n * @name AcroFormChoiceField#topIndex\n * @default 0\n * @type {number}\n */\n Object.defineProperty(this, \"topIndex\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _TI;\n },\n set: function(value) {\n _TI = value;\n }\n });\n\n var _Opt = [];\n Object.defineProperty(this, \"Opt\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return arrayToPdfArray(_Opt, this.objId, this.scope);\n },\n set: function(value) {\n _Opt = pdfArrayToStringArray(value);\n }\n });\n\n /**\n * @memberof AcroFormChoiceField\n * @name getOptions\n * @function\n * @instance\n * @returns {array} array of Options\n */\n this.getOptions = function() {\n return _Opt;\n };\n\n /**\n * @memberof AcroFormChoiceField\n * @name setOptions\n * @function\n * @instance\n * @param {array} value\n */\n this.setOptions = function(value) {\n _Opt = value;\n if (this.sort) {\n _Opt.sort();\n }\n };\n\n /**\n * @memberof AcroFormChoiceField\n * @name addOption\n * @function\n * @instance\n * @param {string} value\n */\n this.addOption = function(value) {\n value = value || \"\";\n value = value.toString();\n _Opt.push(value);\n if (this.sort) {\n _Opt.sort();\n }\n };\n\n /**\n * @memberof AcroFormChoiceField\n * @name removeOption\n * @function\n * @instance\n * @param {string} value\n * @param {boolean} allEntries (default: false)\n */\n this.removeOption = function(value, allEntries) {\n allEntries = allEntries || false;\n value = value || \"\";\n value = value.toString();\n\n while (_Opt.indexOf(value) !== -1) {\n _Opt.splice(_Opt.indexOf(value), 1);\n if (allEntries === false) {\n break;\n }\n }\n };\n\n /**\n * If set, the field is a combo box; if clear, the field is a list box.\n *\n * @name AcroFormChoiceField#combo\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"combo\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 18));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 18);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 18);\n }\n }\n });\n\n /**\n * If set, the combo box shall include an editable text box as well as a drop-down list; if clear, it shall include only a drop-down list. This flag shall be used only if the Combo flag is set.\n *\n * @name AcroFormChoiceField#edit\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"edit\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 19));\n },\n set: function(value) {\n //PDF 32000-1:2008, page 444\n if (this.combo === true) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 19);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 19);\n }\n }\n }\n });\n\n /**\n * If set, the field’s option items shall be sorted alphabetically. This flag is intended for use by writers, not by readers. Conforming readers shall display the options in the order in which they occur in the Opt array (see Table 231).\n *\n * @name AcroFormChoiceField#sort\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"sort\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 20));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 20);\n _Opt.sort();\n } else {\n this.Ff = clearBitForPdf(this.Ff, 20);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, more than one of the field’s option items may be selected simultaneously; if clear, at most one item shall be selected\n *\n * @name AcroFormChoiceField#multiSelect\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"multiSelect\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 22));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 22);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 22);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, text entered in the field shall not be spellchecked. This flag shall not be used unless the Combo and Edit flags are both set.\n *\n * @name AcroFormChoiceField#doNotSpellCheck\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"doNotSpellCheck\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 23));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 23);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 23);\n }\n }\n });\n\n /**\n * (PDF 1.5) If set, the new value shall be committed as soon as a selection is made (commonly with the pointing device). In this case, supplying a value for a field involves three actions: selecting the field for fill-in, selecting a choice for the fill-in value, and leaving that field, which finalizes or “commits” the data choice and triggers any actions associated with the entry or changing of this data. If this flag is on, then processing does not wait for leaving the field action to occur, but immediately proceeds to the third step.\n * This option enables applications to perform an action once a selection is made, without requiring the user to exit the field. If clear, the new value is not committed until the user exits the field.\n *\n * @name AcroFormChoiceField#commitOnSelChange\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"commitOnSelChange\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 27));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 27);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 27);\n }\n }\n });\n\n this.hasAppearanceStream = false;\n};\ninherit(AcroFormChoiceField, AcroFormField);\n\n/**\n * @class AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormListBox = function() {\n AcroFormChoiceField.call(this);\n this.fontName = \"helvetica\";\n\n //PDF 32000-1:2008, page 444\n this.combo = false;\n};\ninherit(AcroFormListBox, AcroFormChoiceField);\n\n/**\n * @class AcroFormComboBox\n * @extends AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormComboBox = function() {\n AcroFormListBox.call(this);\n this.combo = true;\n};\ninherit(AcroFormComboBox, AcroFormListBox);\n\n/**\n * @class AcroFormEditBox\n * @extends AcroFormComboBox\n * @extends AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormEditBox = function() {\n AcroFormComboBox.call(this);\n this.edit = true;\n};\ninherit(AcroFormEditBox, AcroFormComboBox);\n\n/**\n * @class AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormButton = function() {\n AcroFormField.call(this);\n this.FT = \"/Btn\";\n\n /**\n * (Radio buttons only) If set, exactly one radio button shall be selected at all times; selecting the currently selected button has no effect. If clear, clicking the selected button deselects it, leaving no button selected.\n *\n * @name AcroFormButton#noToggleToOff\n * @type {boolean}\n */\n Object.defineProperty(this, \"noToggleToOff\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 15));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 15);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 15);\n }\n }\n });\n\n /**\n * If set, the field is a set of radio buttons; if clear, the field is a checkbox. This flag may be set only if the Pushbutton flag is clear.\n *\n * @name AcroFormButton#radio\n * @type {boolean}\n */\n Object.defineProperty(this, \"radio\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 16));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 16);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 16);\n }\n }\n });\n\n /**\n * If set, the field is a pushbutton that does not retain a permanent value.\n *\n * @name AcroFormButton#pushButton\n * @type {boolean}\n */\n Object.defineProperty(this, \"pushButton\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 17));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 17);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 17);\n }\n }\n });\n\n /**\n * (PDF 1.5) If set, a group of radio buttons within a radio button field that use the same value for the on state will turn on and off in unison; that is if one is checked, they are all checked. If clear, the buttons are mutually exclusive (the same behavior as HTML radio buttons).\n *\n * @name AcroFormButton#radioIsUnison\n * @type {boolean}\n */\n Object.defineProperty(this, \"radioIsUnison\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 26));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 26);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 26);\n }\n }\n });\n\n var _MK = {};\n Object.defineProperty(this, \"MK\", {\n enumerable: false,\n configurable: false,\n get: function() {\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n if (Object.keys(_MK).length !== 0) {\n var result = [];\n result.push(\"<<\");\n var key;\n for (key in _MK) {\n result.push(\"/\" + key + \" (\" + pdfEscape(encryptor(_MK[key])) + \")\");\n }\n result.push(\">>\");\n return result.join(\"\\n\");\n }\n return undefined;\n },\n set: function(value) {\n if (typeof value === \"object\") {\n _MK = value;\n }\n }\n });\n\n /**\n * From the PDF reference:\n * (Optional, button fields only) The widget annotation's normal caption which shall be displayed when it is not interacting with the user.\n * Unlike the remaining entries listed in this Table which apply only to widget annotations associated with pushbutton fields (see Pushbuttons in 12.7.4.2, \"Button Fields\"), the CA entry may be used with any type of button field, including check boxes (see Check Boxes in 12.7.4.2, \"Button Fields\") and radio buttons (Radio Buttons in 12.7.4.2, \"Button Fields\").\n *\n * - '8' = Cross,\n * - 'l' = Circle,\n * - '' = nothing\n * @name AcroFormButton#caption\n * @type {string}\n */\n Object.defineProperty(this, \"caption\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _MK.CA || \"\";\n },\n set: function(value) {\n if (typeof value === \"string\") {\n _MK.CA = value;\n }\n }\n });\n\n var _AS;\n Object.defineProperty(this, \"AS\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _AS;\n },\n set: function(value) {\n _AS = value;\n }\n });\n\n /**\n * (Required if the appearance dictionary AP contains one or more subdictionaries; PDF 1.2) The annotation's appearance state, which selects the applicable appearance stream from an appearance subdictionary (see Section 12.5.5, \"Appearance Streams\")\n *\n * @name AcroFormButton#appearanceState\n * @type {any}\n */\n Object.defineProperty(this, \"appearanceState\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _AS.substr(1, _AS.length - 1);\n },\n set: function(value) {\n _AS = \"/\" + value;\n }\n });\n};\ninherit(AcroFormButton, AcroFormField);\n\n/**\n * @class AcroFormPushButton\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormPushButton = function() {\n AcroFormButton.call(this);\n this.pushButton = true;\n};\ninherit(AcroFormPushButton, AcroFormButton);\n\n/**\n * @class AcroFormRadioButton\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormRadioButton = function() {\n AcroFormButton.call(this);\n this.radio = true;\n this.pushButton = false;\n\n var _Kids = [];\n Object.defineProperty(this, \"Kids\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _Kids;\n },\n set: function(value) {\n if (typeof value !== \"undefined\") {\n _Kids = value;\n } else {\n _Kids = [];\n }\n }\n });\n};\ninherit(AcroFormRadioButton, AcroFormButton);\n\n/**\n * The Child class of a RadioButton (the radioGroup) -> The single Buttons\n *\n * @class AcroFormChildClass\n * @extends AcroFormField\n * @ignore\n */\nvar AcroFormChildClass = function() {\n AcroFormField.call(this);\n\n var _parent;\n Object.defineProperty(this, \"Parent\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _parent;\n },\n set: function(value) {\n _parent = value;\n }\n });\n\n var _optionName;\n Object.defineProperty(this, \"optionName\", {\n enumerable: false,\n configurable: true,\n get: function() {\n return _optionName;\n },\n set: function(value) {\n _optionName = value;\n }\n });\n\n var _MK = {};\n Object.defineProperty(this, \"MK\", {\n enumerable: false,\n configurable: false,\n get: function() {\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n var result = [];\n result.push(\"<<\");\n var key;\n for (key in _MK) {\n result.push(\"/\" + key + \" (\" + pdfEscape(encryptor(_MK[key])) + \")\");\n }\n result.push(\">>\");\n return result.join(\"\\n\");\n },\n set: function(value) {\n if (typeof value === \"object\") {\n _MK = value;\n }\n }\n });\n\n /**\n * From the PDF reference:\n * (Optional, button fields only) The widget annotation's normal caption which shall be displayed when it is not interacting with the user.\n * Unlike the remaining entries listed in this Table which apply only to widget annotations associated with pushbutton fields (see Pushbuttons in 12.7.4.2, \"Button Fields\"), the CA entry may be used with any type of button field, including check boxes (see Check Boxes in 12.7.4.2, \"Button Fields\") and radio buttons (Radio Buttons in 12.7.4.2, \"Button Fields\").\n *\n * - '8' = Cross,\n * - 'l' = Circle,\n * - '' = nothing\n * @name AcroFormButton#caption\n * @type {string}\n */\n Object.defineProperty(this, \"caption\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _MK.CA || \"\";\n },\n set: function(value) {\n if (typeof value === \"string\") {\n _MK.CA = value;\n }\n }\n });\n\n var _AS;\n Object.defineProperty(this, \"AS\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _AS;\n },\n set: function(value) {\n _AS = value;\n }\n });\n\n /**\n * (Required if the appearance dictionary AP contains one or more subdictionaries; PDF 1.2) The annotation's appearance state, which selects the applicable appearance stream from an appearance subdictionary (see Section 12.5.5, \"Appearance Streams\")\n *\n * @name AcroFormButton#appearanceState\n * @type {any}\n */\n Object.defineProperty(this, \"appearanceState\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _AS.substr(1, _AS.length - 1);\n },\n set: function(value) {\n _AS = \"/\" + value;\n }\n });\n this.caption = \"l\";\n this.appearanceState = \"Off\";\n // todo: set AppearanceType as variable that can be set from the\n // outside...\n this._AppearanceType = AcroFormAppearance.RadioButton.Circle;\n // The Default appearanceType is the Circle\n this.appearanceStreamContent = this._AppearanceType.createAppearanceStream(\n this.optionName\n );\n};\ninherit(AcroFormChildClass, AcroFormField);\n\nAcroFormRadioButton.prototype.setAppearance = function(appearance) {\n if (!(\"createAppearanceStream\" in appearance && \"getCA\" in appearance)) {\n throw new Error(\n \"Couldn't assign Appearance to RadioButton. Appearance was Invalid!\"\n );\n }\n for (var objId in this.Kids) {\n if (this.Kids.hasOwnProperty(objId)) {\n var child = this.Kids[objId];\n child.appearanceStreamContent = appearance.createAppearanceStream(\n child.optionName\n );\n child.caption = appearance.getCA();\n }\n }\n};\n\nAcroFormRadioButton.prototype.createOption = function(name) {\n // Create new Child for RadioGroup\n var child = new AcroFormChildClass();\n child.Parent = this;\n child.optionName = name;\n // Add to Parent\n this.Kids.push(child);\n\n addField.call(this.scope, child);\n\n return child;\n};\n\n/**\n * @class AcroFormCheckBox\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormCheckBox = function() {\n AcroFormButton.call(this);\n\n this.fontName = \"zapfdingbats\";\n this.caption = \"3\";\n this.appearanceState = \"On\";\n this.value = \"On\";\n this.textAlign = \"center\";\n this.appearanceStreamContent = AcroFormAppearance.CheckBox.createAppearanceStream();\n};\ninherit(AcroFormCheckBox, AcroFormButton);\n\n/**\n * @class AcroFormTextField\n * @extends AcroFormField\n */\nvar AcroFormTextField = function() {\n AcroFormField.call(this);\n this.FT = \"/Tx\";\n\n /**\n * If set, the field may contain multiple lines of text; if clear, the field’s text shall be restricted to a single line.\n *\n * @name AcroFormTextField#multiline\n * @type {boolean}\n */\n Object.defineProperty(this, \"multiline\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 13));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 13);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 13);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, the text entered in the field represents the pathname of a file whose contents shall be submitted as the value of the field.\n *\n * @name AcroFormTextField#fileSelect\n * @type {boolean}\n */\n Object.defineProperty(this, \"fileSelect\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 21));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 21);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 21);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, text entered in the field shall not be spell-checked.\n *\n * @name AcroFormTextField#doNotSpellCheck\n * @type {boolean}\n */\n Object.defineProperty(this, \"doNotSpellCheck\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 23));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 23);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 23);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, the field shall not scroll (horizontally for single-line fields, vertically for multiple-line fields) to accommodate more text than fits within its annotation rectangle. Once the field is full, no further text shall be accepted for interactive form filling; for noninteractive form filling, the filler should take care not to add more character than will visibly fit in the defined area.\n *\n * @name AcroFormTextField#doNotScroll\n * @type {boolean}\n */\n Object.defineProperty(this, \"doNotScroll\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 24));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 24);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 24);\n }\n }\n });\n\n /**\n * (PDF 1.5) May be set only if the MaxLen entry is present in the text field dictionary (see Table 229) and if the Multiline, Password, and FileSelect flags are clear. If set, the field shall be automatically divided into as many equally spaced positions, or combs, as the value of MaxLen, and the text is laid out into those combs.\n *\n * @name AcroFormTextField#comb\n * @type {boolean}\n */\n Object.defineProperty(this, \"comb\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 25));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 25);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 25);\n }\n }\n });\n\n /**\n * (PDF 1.5) If set, the value of this field shall be a rich text string (see 12.7.3.4, “Rich Text Strings”). If the field has a value, the RV entry of the field dictionary (Table 222) shall specify the rich text string.\n *\n * @name AcroFormTextField#richText\n * @type {boolean}\n */\n Object.defineProperty(this, \"richText\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 26));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 26);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 26);\n }\n }\n });\n\n var _MaxLen = null;\n Object.defineProperty(this, \"MaxLen\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _MaxLen;\n },\n set: function(value) {\n _MaxLen = value;\n }\n });\n\n /**\n * (Optional; inheritable) The maximum length of the field’s text, in characters.\n *\n * @name AcroFormTextField#maxLength\n * @type {number}\n */\n Object.defineProperty(this, \"maxLength\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _MaxLen;\n },\n set: function(value) {\n if (Number.isInteger(value)) {\n _MaxLen = value;\n }\n }\n });\n\n Object.defineProperty(this, \"hasAppearanceStream\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return this.V || this.DV;\n }\n });\n};\ninherit(AcroFormTextField, AcroFormField);\n\n/**\n * @class AcroFormPasswordField\n * @extends AcroFormTextField\n * @extends AcroFormField\n */\nvar AcroFormPasswordField = function() {\n AcroFormTextField.call(this);\n\n /**\n * If set, the field is intended for entering a secure password that should not be echoed visibly to the screen. Characters typed from the keyboard shall instead be echoed in some unreadable form, such as asterisks or bullet characters.\n * NOTE To protect password confidentiality, readers should never store the value of the text field in the PDF file if this flag is set.\n *\n * @name AcroFormTextField#password\n * @type {boolean}\n */\n Object.defineProperty(this, \"password\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 14));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 14);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 14);\n }\n }\n });\n this.password = true;\n};\ninherit(AcroFormPasswordField, AcroFormTextField);\n\n// Contains Methods for creating standard appearances\nvar AcroFormAppearance = {\n CheckBox: {\n createAppearanceStream: function() {\n var appearance = {\n N: {\n On: AcroFormAppearance.CheckBox.YesNormal\n },\n D: {\n On: AcroFormAppearance.CheckBox.YesPushDown,\n Off: AcroFormAppearance.CheckBox.OffPushDown\n }\n };\n\n return appearance;\n },\n /**\n * Returns the standard On Appearance for a CheckBox\n *\n * @returns {AcroFormXObject}\n */\n YesPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n var encodedColor = formObject.scope.__private__.encodeColorString(\n formObject.color\n );\n var calcRes = calculateX(formObject, formObject.caption);\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n stream.push(\"BMC\");\n stream.push(\"q\");\n stream.push(\"0 0 1 rg\");\n stream.push(\n \"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf \" + encodedColor\n );\n stream.push(\"BT\");\n stream.push(calcRes.text);\n stream.push(\"ET\");\n stream.push(\"Q\");\n stream.push(\"EMC\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n\n YesNormal: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n var encodedColor = formObject.scope.__private__.encodeColorString(\n formObject.color\n );\n var stream = [];\n var height = AcroFormAppearance.internal.getHeight(formObject);\n var width = AcroFormAppearance.internal.getWidth(formObject);\n var calcRes = calculateX(formObject, formObject.caption);\n stream.push(\"1 g\");\n stream.push(\"0 0 \" + f2(width) + \" \" + f2(height) + \" re\");\n stream.push(\"f\");\n stream.push(\"q\");\n stream.push(\"0 0 1 rg\");\n stream.push(\"0 0 \" + f2(width - 1) + \" \" + f2(height - 1) + \" re\");\n stream.push(\"W\");\n stream.push(\"n\");\n stream.push(\"0 g\");\n stream.push(\"BT\");\n stream.push(\n \"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf \" + encodedColor\n );\n stream.push(calcRes.text);\n stream.push(\"ET\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n\n /**\n * Returns the standard Off Appearance for a CheckBox\n *\n * @returns {AcroFormXObject}\n */\n OffPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n }\n },\n\n RadioButton: {\n Circle: {\n createAppearanceStream: function(name) {\n var appearanceStreamContent = {\n D: {\n Off: AcroFormAppearance.RadioButton.Circle.OffPushDown\n },\n N: {}\n };\n appearanceStreamContent.N[name] =\n AcroFormAppearance.RadioButton.Circle.YesNormal;\n appearanceStreamContent.D[name] =\n AcroFormAppearance.RadioButton.Circle.YesPushDown;\n return appearanceStreamContent;\n },\n getCA: function() {\n return \"l\";\n },\n\n YesNormal: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n // Make the Radius of the Circle relative to min(height, width) of formObject\n var DotRadius =\n AcroFormAppearance.internal.getWidth(formObject) <=\n AcroFormAppearance.internal.getHeight(formObject)\n ? AcroFormAppearance.internal.getWidth(formObject) / 4\n : AcroFormAppearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius = Number((DotRadius * 0.9).toFixed(5));\n var c = AcroFormAppearance.internal.Bezier_C;\n var DotRadiusBezier = Number((DotRadius * c).toFixed(5));\n /*\n * The Following is a Circle created with Bezier-Curves.\n */\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(DotRadius + \" 0 m\");\n stream.push(\n DotRadius +\n \" \" +\n DotRadiusBezier +\n \" \" +\n DotRadiusBezier +\n \" \" +\n DotRadius +\n \" 0 \" +\n DotRadius +\n \" c\"\n );\n stream.push(\n \"-\" +\n DotRadiusBezier +\n \" \" +\n DotRadius +\n \" -\" +\n DotRadius +\n \" \" +\n DotRadiusBezier +\n \" -\" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\n \"-\" +\n DotRadius +\n \" -\" +\n DotRadiusBezier +\n \" -\" +\n DotRadiusBezier +\n \" -\" +\n DotRadius +\n \" 0 -\" +\n DotRadius +\n \" c\"\n );\n stream.push(\n DotRadiusBezier +\n \" -\" +\n DotRadius +\n \" \" +\n DotRadius +\n \" -\" +\n DotRadiusBezier +\n \" \" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\"f\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n YesPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var DotRadius =\n AcroFormAppearance.internal.getWidth(formObject) <=\n AcroFormAppearance.internal.getHeight(formObject)\n ? AcroFormAppearance.internal.getWidth(formObject) / 4\n : AcroFormAppearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius = Number((DotRadius * 0.9).toFixed(5));\n // Save results for later use; no need to waste\n // processor ticks on doing math\n var k = Number((DotRadius * 2).toFixed(5));\n var kc = Number((k * AcroFormAppearance.internal.Bezier_C).toFixed(5));\n var dc = Number(\n (DotRadius * AcroFormAppearance.internal.Bezier_C).toFixed(5)\n );\n\n stream.push(\"0.749023 g\");\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(k + \" 0 m\");\n stream.push(k + \" \" + kc + \" \" + kc + \" \" + k + \" 0 \" + k + \" c\");\n stream.push(\n \"-\" + kc + \" \" + k + \" -\" + k + \" \" + kc + \" -\" + k + \" 0 c\"\n );\n stream.push(\n \"-\" + k + \" -\" + kc + \" -\" + kc + \" -\" + k + \" 0 -\" + k + \" c\"\n );\n stream.push(kc + \" -\" + k + \" \" + k + \" -\" + kc + \" \" + k + \" 0 c\");\n stream.push(\"f\");\n stream.push(\"Q\");\n stream.push(\"0 g\");\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(DotRadius + \" 0 m\");\n stream.push(\n \"\" +\n DotRadius +\n \" \" +\n dc +\n \" \" +\n dc +\n \" \" +\n DotRadius +\n \" 0 \" +\n DotRadius +\n \" c\"\n );\n stream.push(\n \"-\" +\n dc +\n \" \" +\n DotRadius +\n \" -\" +\n DotRadius +\n \" \" +\n dc +\n \" -\" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\n \"-\" +\n DotRadius +\n \" -\" +\n dc +\n \" -\" +\n dc +\n \" -\" +\n DotRadius +\n \" 0 -\" +\n DotRadius +\n \" c\"\n );\n stream.push(\n dc +\n \" -\" +\n DotRadius +\n \" \" +\n DotRadius +\n \" -\" +\n dc +\n \" \" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\"f\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n OffPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var DotRadius =\n AcroFormAppearance.internal.getWidth(formObject) <=\n AcroFormAppearance.internal.getHeight(formObject)\n ? AcroFormAppearance.internal.getWidth(formObject) / 4\n : AcroFormAppearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius = Number((DotRadius * 0.9).toFixed(5));\n // Save results for later use; no need to waste\n // processor ticks on doing math\n var k = Number((DotRadius * 2).toFixed(5));\n var kc = Number((k * AcroFormAppearance.internal.Bezier_C).toFixed(5));\n\n stream.push(\"0.749023 g\");\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(k + \" 0 m\");\n stream.push(k + \" \" + kc + \" \" + kc + \" \" + k + \" 0 \" + k + \" c\");\n stream.push(\n \"-\" + kc + \" \" + k + \" -\" + k + \" \" + kc + \" -\" + k + \" 0 c\"\n );\n stream.push(\n \"-\" + k + \" -\" + kc + \" -\" + kc + \" -\" + k + \" 0 -\" + k + \" c\"\n );\n stream.push(kc + \" -\" + k + \" \" + k + \" -\" + kc + \" \" + k + \" 0 c\");\n stream.push(\"f\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n }\n },\n\n Cross: {\n /**\n * Creates the Actual AppearanceDictionary-References\n *\n * @param {string} name\n * @returns {Object}\n * @ignore\n */\n createAppearanceStream: function(name) {\n var appearanceStreamContent = {\n D: {\n Off: AcroFormAppearance.RadioButton.Cross.OffPushDown\n },\n N: {}\n };\n appearanceStreamContent.N[name] =\n AcroFormAppearance.RadioButton.Cross.YesNormal;\n appearanceStreamContent.D[name] =\n AcroFormAppearance.RadioButton.Cross.YesPushDown;\n return appearanceStreamContent;\n },\n getCA: function() {\n return \"8\";\n },\n\n YesNormal: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var cross = AcroFormAppearance.internal.calculateCross(formObject);\n stream.push(\"q\");\n stream.push(\n \"1 1 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject) - 2) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject) - 2) +\n \" re\"\n );\n stream.push(\"W\");\n stream.push(\"n\");\n stream.push(f2(cross.x1.x) + \" \" + f2(cross.x1.y) + \" m\");\n stream.push(f2(cross.x2.x) + \" \" + f2(cross.x2.y) + \" l\");\n stream.push(f2(cross.x4.x) + \" \" + f2(cross.x4.y) + \" m\");\n stream.push(f2(cross.x3.x) + \" \" + f2(cross.x3.y) + \" l\");\n stream.push(\"s\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n YesPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var cross = AcroFormAppearance.internal.calculateCross(formObject);\n var stream = [];\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n stream.push(\"q\");\n stream.push(\n \"1 1 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject) - 2) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject) - 2) +\n \" re\"\n );\n stream.push(\"W\");\n stream.push(\"n\");\n stream.push(f2(cross.x1.x) + \" \" + f2(cross.x1.y) + \" m\");\n stream.push(f2(cross.x2.x) + \" \" + f2(cross.x2.y) + \" l\");\n stream.push(f2(cross.x4.x) + \" \" + f2(cross.x4.y) + \" m\");\n stream.push(f2(cross.x3.x) + \" \" + f2(cross.x3.y) + \" l\");\n stream.push(\"s\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n OffPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n }\n }\n },\n\n /**\n * Returns the standard Appearance\n *\n * @returns {AcroFormXObject}\n */\n createDefaultAppearanceStream: function(formObject) {\n // Set Helvetica to Standard Font (size: auto)\n // Color: Black\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n var encodedColor = formObject.scope.__private__.encodeColorString(\n formObject.color\n );\n var fontSize = formObject.fontSize;\n var result = \"/\" + fontKey + \" \" + fontSize + \" Tf \" + encodedColor;\n return result;\n }\n};\n\nAcroFormAppearance.internal = {\n Bezier_C: 0.551915024494,\n\n calculateCross: function(formObject) {\n var width = AcroFormAppearance.internal.getWidth(formObject);\n var height = AcroFormAppearance.internal.getHeight(formObject);\n var a = Math.min(width, height);\n\n var cross = {\n x1: {\n // upperLeft\n x: (width - a) / 2,\n y: (height - a) / 2 + a // height - borderPadding\n },\n x2: {\n // lowerRight\n x: (width - a) / 2 + a,\n y: (height - a) / 2 // borderPadding\n },\n x3: {\n // lowerLeft\n x: (width - a) / 2,\n y: (height - a) / 2 // borderPadding\n },\n x4: {\n // upperRight\n x: (width - a) / 2 + a,\n y: (height - a) / 2 + a // height - borderPadding\n }\n };\n\n return cross;\n }\n};\nAcroFormAppearance.internal.getWidth = function(formObject) {\n var result = 0;\n if (typeof formObject === \"object\") {\n result = scale(formObject.Rect[2]);\n }\n return result;\n};\nAcroFormAppearance.internal.getHeight = function(formObject) {\n var result = 0;\n if (typeof formObject === \"object\") {\n result = scale(formObject.Rect[3]);\n }\n return result;\n};\n\n// Public:\n\n/**\n * Add an AcroForm-Field to the jsPDF-instance\n *\n * @name addField\n * @function\n * @instance\n * @param {Object} fieldObject\n * @returns {jsPDF}\n */\nvar addField = (jsPDFAPI.addField = function(fieldObject) {\n initializeAcroForm(this, fieldObject);\n\n if (fieldObject instanceof AcroFormField) {\n putForm(fieldObject);\n } else {\n throw new Error(\"Invalid argument passed to jsPDF.addField.\");\n }\n fieldObject.page = fieldObject.scope.internal.getCurrentPageInfo().pageNumber;\n return this;\n});\n\njsPDFAPI.AcroFormChoiceField = AcroFormChoiceField;\njsPDFAPI.AcroFormListBox = AcroFormListBox;\njsPDFAPI.AcroFormComboBox = AcroFormComboBox;\njsPDFAPI.AcroFormEditBox = AcroFormEditBox;\njsPDFAPI.AcroFormButton = AcroFormButton;\njsPDFAPI.AcroFormPushButton = AcroFormPushButton;\njsPDFAPI.AcroFormRadioButton = AcroFormRadioButton;\njsPDFAPI.AcroFormCheckBox = AcroFormCheckBox;\njsPDFAPI.AcroFormTextField = AcroFormTextField;\njsPDFAPI.AcroFormPasswordField = AcroFormPasswordField;\njsPDFAPI.AcroFormAppearance = AcroFormAppearance;\n\njsPDFAPI.AcroForm = {\n ChoiceField: AcroFormChoiceField,\n ListBox: AcroFormListBox,\n ComboBox: AcroFormComboBox,\n EditBox: AcroFormEditBox,\n Button: AcroFormButton,\n PushButton: AcroFormPushButton,\n RadioButton: AcroFormRadioButton,\n CheckBox: AcroFormCheckBox,\n TextField: AcroFormTextField,\n PasswordField: AcroFormPasswordField,\n Appearance: AcroFormAppearance\n};\n\njsPDF.AcroForm = {\n ChoiceField: AcroFormChoiceField,\n ListBox: AcroFormListBox,\n ComboBox: AcroFormComboBox,\n EditBox: AcroFormEditBox,\n Button: AcroFormButton,\n PushButton: AcroFormPushButton,\n RadioButton: AcroFormRadioButton,\n CheckBox: AcroFormCheckBox,\n TextField: AcroFormTextField,\n PasswordField: AcroFormPasswordField,\n Appearance: AcroFormAppearance\n};\n\nvar AcroForm = jsPDF.AcroForm;\n\nexport {\n AcroForm,\n AcroFormChoiceField,\n AcroFormListBox,\n AcroFormComboBox,\n AcroFormEditBox,\n AcroFormButton,\n AcroFormPushButton,\n AcroFormRadioButton,\n AcroFormCheckBox,\n AcroFormTextField,\n AcroFormPasswordField,\n AcroFormAppearance\n};\n","function toLookup(arr) {\n return arr.reduce(function(lookup, name, index) {\n lookup[name] = index;\n\n return lookup;\n }, {});\n}\n\nvar fontStyleOrder = {\n italic: [\"italic\", \"oblique\", \"normal\"],\n oblique: [\"oblique\", \"italic\", \"normal\"],\n normal: [\"normal\", \"oblique\", \"italic\"]\n};\n\nvar fontStretchOrder = [\n \"ultra-condensed\",\n \"extra-condensed\",\n \"condensed\",\n \"semi-condensed\",\n \"normal\",\n \"semi-expanded\",\n \"expanded\",\n \"extra-expanded\",\n \"ultra-expanded\"\n];\n\n// For a given font-stretch value, we need to know where to start our search\n// from in the fontStretchOrder list.\nvar fontStretchLookup = toLookup(fontStretchOrder);\n\nvar fontWeights = [100, 200, 300, 400, 500, 600, 700, 800, 900];\nvar fontWeightsLookup = toLookup(fontWeights);\n\nfunction normalizeFontStretch(stretch) {\n stretch = stretch || \"normal\";\n\n return typeof fontStretchLookup[stretch] === \"number\" ? stretch : \"normal\";\n}\n\nfunction normalizeFontStyle(style) {\n style = style || \"normal\";\n\n return fontStyleOrder[style] ? style : \"normal\";\n}\n\nfunction normalizeFontWeight(weight) {\n if (!weight) {\n return 400;\n }\n\n if (typeof weight === \"number\") {\n // Ignore values which aren't valid font-weights.\n return weight >= 100 && weight <= 900 && weight % 100 === 0 ? weight : 400;\n }\n\n if (/^\\d00$/.test(weight)) {\n return parseInt(weight);\n }\n\n switch (weight) {\n case \"bold\":\n return 700;\n\n case \"normal\":\n default:\n return 400;\n }\n}\n\nexport function normalizeFontFace(fontFace) {\n var family = fontFace.family.replace(/\"|'/g, \"\").toLowerCase();\n\n var style = normalizeFontStyle(fontFace.style);\n var weight = normalizeFontWeight(fontFace.weight);\n var stretch = normalizeFontStretch(fontFace.stretch);\n\n return {\n family: family,\n style: style,\n weight: weight,\n stretch: stretch,\n src: fontFace.src || [],\n\n // The ref property maps this font-face to the font\n // added by the .addFont() method.\n ref: fontFace.ref || {\n name: family,\n style: [stretch, style, weight].join(\" \")\n }\n };\n}\n\n/**\n * Turns a list of font-faces into a map, for easier lookup when resolving\n * fonts.\n * @private\n */\nexport function buildFontFaceMap(fontFaces) {\n var map = {};\n\n for (var i = 0; i < fontFaces.length; ++i) {\n var normalized = normalizeFontFace(fontFaces[i]);\n\n var name = normalized.family;\n var stretch = normalized.stretch;\n var style = normalized.style;\n var weight = normalized.weight;\n\n map[name] = map[name] || {};\n\n map[name][stretch] = map[name][stretch] || {};\n map[name][stretch][style] = map[name][stretch][style] || {};\n map[name][stretch][style][weight] = normalized;\n }\n\n return map;\n}\n\n/**\n * Searches a map of stretches, weights, etc. in the given direction and\n * then, if no match has been found, in the opposite directions.\n *\n * @param {Object.} matchingSet A map of the various font variations.\n * @param {any[]} order The order of the different variations\n * @param {number} pivot The starting point of the search in the order list.\n * @param {number} dir The initial direction of the search (desc = -1, asc = 1)\n * @private\n */\n\nfunction searchFromPivot(matchingSet, order, pivot, dir) {\n var i;\n\n for (i = pivot; i >= 0 && i < order.length; i += dir) {\n if (matchingSet[order[i]]) {\n return matchingSet[order[i]];\n }\n }\n\n for (i = pivot; i >= 0 && i < order.length; i -= dir) {\n if (matchingSet[order[i]]) {\n return matchingSet[order[i]];\n }\n }\n}\n\nfunction resolveFontStretch(stretch, matchingSet) {\n if (matchingSet[stretch]) {\n return matchingSet[stretch];\n }\n\n var pivot = fontStretchLookup[stretch];\n\n // If the font-stretch value is normal or more condensed, we want to\n // start with a descending search, otherwise we should do ascending.\n var dir = pivot <= fontStretchLookup[\"normal\"] ? -1 : 1;\n var match = searchFromPivot(matchingSet, fontStretchOrder, pivot, dir);\n\n if (!match) {\n // Since a font-family cannot exist without having at least one stretch value\n // we should never reach this point.\n throw new Error(\n \"Could not find a matching font-stretch value for \" + stretch\n );\n }\n\n return match;\n}\n\nfunction resolveFontStyle(fontStyle, matchingSet) {\n if (matchingSet[fontStyle]) {\n return matchingSet[fontStyle];\n }\n\n var ordering = fontStyleOrder[fontStyle];\n\n for (var i = 0; i < ordering.length; ++i) {\n if (matchingSet[ordering[i]]) {\n return matchingSet[ordering[i]];\n }\n }\n\n // Since a font-family cannot exist without having at least one style value\n // we should never reach this point.\n throw new Error(\"Could not find a matching font-style for \" + fontStyle);\n}\n\nfunction resolveFontWeight(weight, matchingSet) {\n if (matchingSet[weight]) {\n return matchingSet[weight];\n }\n\n if (weight === 400 && matchingSet[500]) {\n return matchingSet[500];\n }\n\n if (weight === 500 && matchingSet[400]) {\n return matchingSet[400];\n }\n\n var pivot = fontWeightsLookup[weight];\n\n // If the font-stretch value is normal or more condensed, we want to\n // start with a descending search, otherwise we should do ascending.\n var dir = weight < 400 ? -1 : 1;\n var match = searchFromPivot(matchingSet, fontWeights, pivot, dir);\n\n if (!match) {\n // Since a font-family cannot exist without having at least one stretch value\n // we should never reach this point.\n throw new Error(\n \"Could not find a matching font-weight for value \" + weight\n );\n }\n\n return match;\n}\n\nvar defaultGenericFontFamilies = {\n \"sans-serif\": \"helvetica\",\n fixed: \"courier\",\n monospace: \"courier\",\n terminal: \"courier\",\n cursive: \"times\",\n fantasy: \"times\",\n serif: \"times\"\n};\n\nvar systemFonts = {\n caption: \"times\",\n icon: \"times\",\n menu: \"times\",\n \"message-box\": \"times\",\n \"small-caption\": \"times\",\n \"status-bar\": \"times\"\n};\n\nfunction ruleToString(rule) {\n return [rule.stretch, rule.style, rule.weight, rule.family].join(\" \");\n}\n\nexport function resolveFontFace(fontFaceMap, rules, opts) {\n opts = opts || {};\n\n var defaultFontFamily = opts.defaultFontFamily || \"times\";\n var genericFontFamilies = Object.assign(\n {},\n defaultGenericFontFamilies,\n opts.genericFontFamilies || {}\n );\n\n var rule = null;\n var matches = null;\n\n for (var i = 0; i < rules.length; ++i) {\n rule = normalizeFontFace(rules[i]);\n\n if (genericFontFamilies[rule.family]) {\n rule.family = genericFontFamilies[rule.family];\n }\n\n if (fontFaceMap.hasOwnProperty(rule.family)) {\n matches = fontFaceMap[rule.family];\n\n break;\n }\n }\n\n // Always fallback to a known font family.\n matches = matches || fontFaceMap[defaultFontFamily];\n\n if (!matches) {\n // At this point we should definitiely have a font family, but if we\n // don't there is something wrong with our configuration\n throw new Error(\n \"Could not find a font-family for the rule '\" +\n ruleToString(rule) +\n \"' and default family '\" +\n defaultFontFamily +\n \"'.\"\n );\n }\n\n matches = resolveFontStretch(rule.stretch, matches);\n matches = resolveFontStyle(rule.style, matches);\n matches = resolveFontWeight(rule.weight, matches);\n\n if (!matches) {\n // We should've fount\n throw new Error(\n \"Failed to resolve a font for the rule '\" + ruleToString(rule) + \"'.\"\n );\n }\n\n return matches;\n}\n\n/**\n * Builds a style id for use with the addFont() method.\n * @param {FontFace} font\n * @private\n */\nexport function toStyleName(font) {\n return [font.weight, font.style, font.stretch].join(\" \");\n}\n\nfunction eatWhiteSpace(input) {\n return input.trimLeft();\n}\n\nfunction parseQuotedFontFamily(input, quote) {\n var index = 0;\n\n while (index < input.length) {\n var current = input.charAt(index);\n\n if (current === quote) {\n return [input.substring(0, index), input.substring(index + 1)];\n }\n\n index += 1;\n }\n\n // Unexpected end of input\n return null;\n}\n\nfunction parseNonQuotedFontFamily(input) {\n // It implements part of the identifier parser here: https://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n //\n // NOTE: This parser pretty much ignores escaped identifiers and that there is a thing called unicode.\n //\n // Breakdown of regexp:\n // -[a-z_] - when identifier starts with a hyphen, you're not allowed to have another hyphen or a digit\n // [a-z_] - allow a-z and underscore at beginning of input\n // [a-z0-9_-]* - after that, anything goes\n var match = input.match(/^(-[a-z_]|[a-z_])[a-z0-9_-]*/i);\n\n // non quoted value contains illegal characters\n if (match === null) {\n return null;\n }\n\n return [match[0], input.substring(match[0].length)];\n}\n\nvar defaultFont = [\"times\"];\n\nexport function parseFontFamily(input) {\n var result = [];\n var ch, parsed;\n var remaining = input.trim();\n\n if (remaining === \"\") {\n return defaultFont;\n }\n\n if (remaining in systemFonts) {\n return [systemFonts[remaining]];\n }\n\n while (remaining !== \"\") {\n parsed = null;\n remaining = eatWhiteSpace(remaining);\n ch = remaining.charAt(0);\n\n switch (ch) {\n case '\"':\n case \"'\":\n parsed = parseQuotedFontFamily(remaining.substring(1), ch);\n break;\n\n default:\n parsed = parseNonQuotedFontFamily(remaining);\n break;\n }\n\n if (parsed === null) {\n return defaultFont;\n }\n\n result.push(parsed[0]);\n\n remaining = eatWhiteSpace(parsed[1]);\n\n // We expect end of input or a comma separator here\n if (remaining !== \"\" && remaining.charAt(0) !== \",\") {\n return defaultFont;\n }\n\n remaining = remaining.replace(/^,/, \"\");\n }\n\n return result;\n}\n","/** @license\n * jsPDF addImage plugin\n * Copyright (c) 2012 Jason Siefken, https://github.com/siefkenj/\n * 2013 Chris Dowling, https://github.com/gingerchris\n * 2013 Trinh Ho, https://github.com/ineedfat\n * 2013 Edwin Alejandro Perez, https://github.com/eaparango\n * 2013 Norah Smith, https://github.com/burnburnrocket\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n/**\n * @name addImage\n * @module\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { atob, btoa } from \"../libs/AtobBtoa.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var namespace = \"addImage_\";\n jsPDFAPI.__addimage__ = {};\n\n var UNKNOWN = \"UNKNOWN\";\n\n // Heuristic selection of a good batch for large array .apply. Not limiting make the call overflow.\n // With too small batch iteration will be slow as more calls are made,\n // higher values cause larger and slower garbage collection.\n var ARRAY_APPLY_BATCH = 8192;\n\n var imageFileTypeHeaders = {\n PNG: [[0x89, 0x50, 0x4e, 0x47]],\n TIFF: [\n [0x4d, 0x4d, 0x00, 0x2a], //Motorola\n [0x49, 0x49, 0x2a, 0x00] //Intel\n ],\n JPEG: [\n [\n 0xff,\n 0xd8,\n 0xff,\n 0xe0,\n undefined,\n undefined,\n 0x4a,\n 0x46,\n 0x49,\n 0x46,\n 0x00\n ], //JFIF\n [\n 0xff,\n 0xd8,\n 0xff,\n 0xe1,\n undefined,\n undefined,\n 0x45,\n 0x78,\n 0x69,\n 0x66,\n 0x00,\n 0x00\n ], //Exif\n [0xff, 0xd8, 0xff, 0xdb], //JPEG RAW\n [0xff, 0xd8, 0xff, 0xee] //EXIF RAW\n ],\n JPEG2000: [[0x00, 0x00, 0x00, 0x0c, 0x6a, 0x50, 0x20, 0x20]],\n GIF87a: [[0x47, 0x49, 0x46, 0x38, 0x37, 0x61]],\n GIF89a: [[0x47, 0x49, 0x46, 0x38, 0x39, 0x61]],\n WEBP: [\n [\n 0x52,\n 0x49,\n 0x46,\n 0x46,\n undefined,\n undefined,\n undefined,\n undefined,\n 0x57,\n 0x45,\n 0x42,\n 0x50\n ]\n ],\n BMP: [\n [0x42, 0x4d], //BM - Windows 3.1x, 95, NT, ... etc.\n [0x42, 0x41], //BA - OS/2 struct bitmap array\n [0x43, 0x49], //CI - OS/2 struct color icon\n [0x43, 0x50], //CP - OS/2 const color pointer\n [0x49, 0x43], //IC - OS/2 struct icon\n [0x50, 0x54] //PT - OS/2 pointer\n ]\n };\n\n /**\n * Recognize filetype of Image by magic-bytes\n *\n * https://en.wikipedia.org/wiki/List_of_file_signatures\n *\n * @name getImageFileTypeByImageData\n * @public\n * @function\n * @param {string|arraybuffer} imageData imageData as binary String or arraybuffer\n * @param {string} format format of file if filetype-recognition fails, e.g. 'JPEG'\n *\n * @returns {string} filetype of Image\n */\n var getImageFileTypeByImageData = (jsPDFAPI.__addimage__.getImageFileTypeByImageData = function(\n imageData,\n fallbackFormat\n ) {\n fallbackFormat = fallbackFormat || UNKNOWN;\n var i;\n var j;\n var result = UNKNOWN;\n var headerSchemata;\n var compareResult;\n var fileType;\n\n if (\n fallbackFormat === \"RGBA\" ||\n (imageData.data !== undefined &&\n imageData.data instanceof Uint8ClampedArray &&\n \"height\" in imageData &&\n \"width\" in imageData)\n ) {\n return \"RGBA\";\n }\n\n if (isArrayBufferView(imageData)) {\n for (fileType in imageFileTypeHeaders) {\n headerSchemata = imageFileTypeHeaders[fileType];\n for (i = 0; i < headerSchemata.length; i += 1) {\n compareResult = true;\n for (j = 0; j < headerSchemata[i].length; j += 1) {\n if (headerSchemata[i][j] === undefined) {\n continue;\n }\n if (headerSchemata[i][j] !== imageData[j]) {\n compareResult = false;\n break;\n }\n }\n if (compareResult === true) {\n result = fileType;\n break;\n }\n }\n }\n } else {\n for (fileType in imageFileTypeHeaders) {\n headerSchemata = imageFileTypeHeaders[fileType];\n for (i = 0; i < headerSchemata.length; i += 1) {\n compareResult = true;\n for (j = 0; j < headerSchemata[i].length; j += 1) {\n if (headerSchemata[i][j] === undefined) {\n continue;\n }\n if (headerSchemata[i][j] !== imageData.charCodeAt(j)) {\n compareResult = false;\n break;\n }\n }\n if (compareResult === true) {\n result = fileType;\n break;\n }\n }\n }\n }\n\n if (result === UNKNOWN && fallbackFormat !== UNKNOWN) {\n result = fallbackFormat;\n }\n return result;\n });\n\n // Image functionality ported from pdf.js\n var putImage = function(image) {\n var out = this.internal.write;\n var putStream = this.internal.putStream;\n var getFilters = this.internal.getFilters;\n\n var filter = getFilters();\n while (filter.indexOf(\"FlateEncode\") !== -1) {\n filter.splice(filter.indexOf(\"FlateEncode\"), 1);\n }\n\n image.objectId = this.internal.newObject();\n\n var additionalKeyValues = [];\n additionalKeyValues.push({ key: \"Type\", value: \"/XObject\" });\n additionalKeyValues.push({ key: \"Subtype\", value: \"/Image\" });\n additionalKeyValues.push({ key: \"Width\", value: image.width });\n additionalKeyValues.push({ key: \"Height\", value: image.height });\n\n if (image.colorSpace === color_spaces.INDEXED) {\n additionalKeyValues.push({\n key: \"ColorSpace\",\n value:\n \"[/Indexed /DeviceRGB \" +\n // if an indexed png defines more than one colour with transparency, we've created a sMask\n (image.palette.length / 3 - 1) +\n \" \" +\n (\"sMask\" in image && typeof image.sMask !== \"undefined\"\n ? image.objectId + 2\n : image.objectId + 1) +\n \" 0 R]\"\n });\n } else {\n additionalKeyValues.push({\n key: \"ColorSpace\",\n value: \"/\" + image.colorSpace\n });\n if (image.colorSpace === color_spaces.DEVICE_CMYK) {\n additionalKeyValues.push({ key: \"Decode\", value: \"[1 0 1 0 1 0 1 0]\" });\n }\n }\n additionalKeyValues.push({\n key: \"BitsPerComponent\",\n value: image.bitsPerComponent\n });\n if (\n \"decodeParameters\" in image &&\n typeof image.decodeParameters !== \"undefined\"\n ) {\n additionalKeyValues.push({\n key: \"DecodeParms\",\n value: \"<<\" + image.decodeParameters + \">>\"\n });\n }\n if (\"transparency\" in image && Array.isArray(image.transparency)) {\n var transparency = \"\",\n i = 0,\n len = image.transparency.length;\n for (; i < len; i++)\n transparency +=\n image.transparency[i] + \" \" + image.transparency[i] + \" \";\n\n additionalKeyValues.push({\n key: \"Mask\",\n value: \"[\" + transparency + \"]\"\n });\n }\n if (typeof image.sMask !== \"undefined\") {\n additionalKeyValues.push({\n key: \"SMask\",\n value: image.objectId + 1 + \" 0 R\"\n });\n }\n\n var alreadyAppliedFilters =\n typeof image.filter !== \"undefined\" ? [\"/\" + image.filter] : undefined;\n\n putStream({\n data: image.data,\n additionalKeyValues: additionalKeyValues,\n alreadyAppliedFilters: alreadyAppliedFilters,\n objectId: image.objectId\n });\n\n out(\"endobj\");\n\n // Soft mask\n if (\"sMask\" in image && typeof image.sMask !== \"undefined\") {\n var decodeParameters =\n \"/Predictor \" +\n image.predictor +\n \" /Colors 1 /BitsPerComponent \" +\n image.bitsPerComponent +\n \" /Columns \" +\n image.width;\n var sMask = {\n width: image.width,\n height: image.height,\n colorSpace: \"DeviceGray\",\n bitsPerComponent: image.bitsPerComponent,\n decodeParameters: decodeParameters,\n data: image.sMask\n };\n if (\"filter\" in image) {\n sMask.filter = image.filter;\n }\n putImage.call(this, sMask);\n }\n\n //Palette\n if (image.colorSpace === color_spaces.INDEXED) {\n var objId = this.internal.newObject();\n //out('<< /Filter / ' + img['f'] +' /Length ' + img['pal'].length + '>>');\n //putStream(zlib.compress(img['pal']));\n putStream({\n data: arrayBufferToBinaryString(new Uint8Array(image.palette)),\n objectId: objId\n });\n out(\"endobj\");\n }\n };\n var putResourcesCallback = function() {\n var images = this.internal.collections[namespace + \"images\"];\n for (var i in images) {\n putImage.call(this, images[i]);\n }\n };\n var putXObjectsDictCallback = function() {\n var images = this.internal.collections[namespace + \"images\"],\n out = this.internal.write,\n image;\n for (var i in images) {\n image = images[i];\n out(\"/I\" + image.index, image.objectId, \"0\", \"R\");\n }\n };\n\n var checkCompressValue = function(value) {\n if (value && typeof value === \"string\") value = value.toUpperCase();\n return value in jsPDFAPI.image_compression ? value : image_compression.NONE;\n };\n\n var initialize = function() {\n if (!this.internal.collections[namespace + \"images\"]) {\n this.internal.collections[namespace + \"images\"] = {};\n this.internal.events.subscribe(\"putResources\", putResourcesCallback);\n this.internal.events.subscribe(\"putXobjectDict\", putXObjectsDictCallback);\n }\n };\n\n var getImages = function() {\n var images = this.internal.collections[namespace + \"images\"];\n initialize.call(this);\n return images;\n };\n var getImageIndex = function() {\n return Object.keys(this.internal.collections[namespace + \"images\"]).length;\n };\n var notDefined = function(value) {\n return typeof value === \"undefined\" || value === null || value.length === 0;\n };\n var generateAliasFromImageData = function(imageData) {\n if (typeof imageData === \"string\" || isArrayBufferView(imageData)) {\n return sHashCode(imageData);\n } else if (isArrayBufferView(imageData.data)) {\n return sHashCode(imageData.data);\n }\n\n return null;\n };\n\n var isImageTypeSupported = function(type) {\n return typeof jsPDFAPI[\"process\" + type.toUpperCase()] === \"function\";\n };\n\n var isDOMElement = function(object) {\n return typeof object === \"object\" && object.nodeType === 1;\n };\n\n var getImageDataFromElement = function(element, format) {\n //if element is an image which uses data url definition, just return the dataurl\n if (element.nodeName === \"IMG\" && element.hasAttribute(\"src\")) {\n var src = \"\" + element.getAttribute(\"src\");\n\n //is base64 encoded dataUrl, directly process it\n if (src.indexOf(\"data:image/\") === 0) {\n return atob(\n unescape(src)\n .split(\"base64,\")\n .pop()\n );\n }\n\n //it is probably an url, try to load it\n var tmpImageData = jsPDFAPI.loadFile(src, true);\n if (tmpImageData !== undefined) {\n return tmpImageData;\n }\n }\n\n if (element.nodeName === \"CANVAS\") {\n if (element.width === 0 || element.height === 0) {\n throw new Error(\n \"Given canvas must have data. Canvas width: \" +\n element.width +\n \", height: \" +\n element.height\n );\n }\n var mimeType;\n switch (format) {\n case \"PNG\":\n mimeType = \"image/png\";\n break;\n case \"WEBP\":\n mimeType = \"image/webp\";\n break;\n case \"JPEG\":\n case \"JPG\":\n default:\n mimeType = \"image/jpeg\";\n break;\n }\n return atob(\n element\n .toDataURL(mimeType, 1.0)\n .split(\"base64,\")\n .pop()\n );\n }\n };\n\n var checkImagesForAlias = function(alias) {\n var images = this.internal.collections[namespace + \"images\"];\n if (images) {\n for (var e in images) {\n if (alias === images[e].alias) {\n return images[e];\n }\n }\n }\n };\n\n var determineWidthAndHeight = function(width, height, image) {\n if (!width && !height) {\n width = -96;\n height = -96;\n }\n if (width < 0) {\n width = (-1 * image.width * 72) / width / this.internal.scaleFactor;\n }\n if (height < 0) {\n height = (-1 * image.height * 72) / height / this.internal.scaleFactor;\n }\n if (width === 0) {\n width = (height * image.width) / image.height;\n }\n if (height === 0) {\n height = (width * image.height) / image.width;\n }\n\n return [width, height];\n };\n\n var writeImageToPDF = function(x, y, width, height, image, rotation) {\n var dims = determineWidthAndHeight.call(this, width, height, image),\n coord = this.internal.getCoordinateString,\n vcoord = this.internal.getVerticalCoordinateString;\n\n var images = getImages.call(this);\n\n width = dims[0];\n height = dims[1];\n images[image.index] = image;\n\n if (rotation) {\n rotation *= Math.PI / 180;\n var c = Math.cos(rotation);\n var s = Math.sin(rotation);\n //like in pdf Reference do it 4 digits instead of 2\n var f4 = function(number) {\n return number.toFixed(4);\n };\n var rotationTransformationMatrix = [\n f4(c),\n f4(s),\n f4(s * -1),\n f4(c),\n 0,\n 0,\n \"cm\"\n ];\n }\n this.internal.write(\"q\"); //Save graphics state\n if (rotation) {\n this.internal.write(\n [1, \"0\", \"0\", 1, coord(x), vcoord(y + height), \"cm\"].join(\" \")\n ); //Translate\n this.internal.write(rotationTransformationMatrix.join(\" \")); //Rotate\n this.internal.write(\n [coord(width), \"0\", \"0\", coord(height), \"0\", \"0\", \"cm\"].join(\" \")\n ); //Scale\n } else {\n this.internal.write(\n [\n coord(width),\n \"0\",\n \"0\",\n coord(height),\n coord(x),\n vcoord(y + height),\n \"cm\"\n ].join(\" \")\n ); //Translate and Scale\n }\n\n if (this.isAdvancedAPI()) {\n // draw image bottom up when in \"advanced\" API mode\n this.internal.write([1, 0, 0, -1, 0, 0, \"cm\"].join(\" \"));\n }\n\n this.internal.write(\"/I\" + image.index + \" Do\"); //Paint Image\n this.internal.write(\"Q\"); //Restore graphics state\n };\n\n /**\n * COLOR SPACES\n */\n var color_spaces = (jsPDFAPI.color_spaces = {\n DEVICE_RGB: \"DeviceRGB\",\n DEVICE_GRAY: \"DeviceGray\",\n DEVICE_CMYK: \"DeviceCMYK\",\n CAL_GREY: \"CalGray\",\n CAL_RGB: \"CalRGB\",\n LAB: \"Lab\",\n ICC_BASED: \"ICCBased\",\n INDEXED: \"Indexed\",\n PATTERN: \"Pattern\",\n SEPARATION: \"Separation\",\n DEVICE_N: \"DeviceN\"\n });\n\n /**\n * DECODE METHODS\n */\n jsPDFAPI.decode = {\n DCT_DECODE: \"DCTDecode\",\n FLATE_DECODE: \"FlateDecode\",\n LZW_DECODE: \"LZWDecode\",\n JPX_DECODE: \"JPXDecode\",\n JBIG2_DECODE: \"JBIG2Decode\",\n ASCII85_DECODE: \"ASCII85Decode\",\n ASCII_HEX_DECODE: \"ASCIIHexDecode\",\n RUN_LENGTH_DECODE: \"RunLengthDecode\",\n CCITT_FAX_DECODE: \"CCITTFaxDecode\"\n };\n\n /**\n * IMAGE COMPRESSION TYPES\n */\n var image_compression = (jsPDFAPI.image_compression = {\n NONE: \"NONE\",\n FAST: \"FAST\",\n MEDIUM: \"MEDIUM\",\n SLOW: \"SLOW\"\n });\n\n /**\n * @name sHashCode\n * @function\n * @param {string} data\n * @returns {string}\n */\n var sHashCode = (jsPDFAPI.__addimage__.sHashCode = function(data) {\n var hash = 0,\n i,\n len;\n\n if (typeof data === \"string\") {\n len = data.length;\n for (i = 0; i < len; i++) {\n hash = (hash << 5) - hash + data.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n } else if (isArrayBufferView(data)) {\n len = data.byteLength / 2;\n for (i = 0; i < len; i++) {\n hash = (hash << 5) - hash + data[i];\n hash |= 0; // Convert to 32bit integer\n }\n }\n return hash;\n });\n\n /**\n * Validates if given String is a valid Base64-String\n *\n * @name validateStringAsBase64\n * @public\n * @function\n * @param {String} possible Base64-String\n *\n * @returns {boolean}\n */\n var validateStringAsBase64 = (jsPDFAPI.__addimage__.validateStringAsBase64 = function(\n possibleBase64String\n ) {\n possibleBase64String = possibleBase64String || \"\";\n possibleBase64String.toString().trim();\n\n var result = true;\n\n if (possibleBase64String.length === 0) {\n result = false;\n }\n\n if (possibleBase64String.length % 4 !== 0) {\n result = false;\n }\n\n if (\n /^[A-Za-z0-9+/]+$/.test(\n possibleBase64String.substr(0, possibleBase64String.length - 2)\n ) === false\n ) {\n result = false;\n }\n\n if (\n /^[A-Za-z0-9/][A-Za-z0-9+/]|[A-Za-z0-9+/]=|==$/.test(\n possibleBase64String.substr(-2)\n ) === false\n ) {\n result = false;\n }\n return result;\n });\n\n /**\n * Strips out and returns info from a valid base64 data URI\n *\n * @name extractImageFromDataUrl\n * @function\n * @param {string} dataUrl a valid data URI of format 'data:[][;base64],'\n * @returns {Array}an Array containing the following\n * [0] the complete data URI\n * [1] \n * [2] format - the second part of the mime-type i.e 'png' in 'image/png'\n * [4] \n */\n var extractImageFromDataUrl = (jsPDFAPI.__addimage__.extractImageFromDataUrl = function(\n dataUrl\n ) {\n dataUrl = dataUrl || \"\";\n var dataUrlParts = dataUrl.split(\"base64,\");\n var result = null;\n\n if (dataUrlParts.length === 2) {\n var extractedInfo = /^data:(\\w*\\/\\w*);*(charset=(?!charset=)[\\w=-]*)*;*$/.exec(\n dataUrlParts[0]\n );\n if (Array.isArray(extractedInfo)) {\n result = {\n mimeType: extractedInfo[1],\n charset: extractedInfo[2],\n data: dataUrlParts[1]\n };\n }\n }\n return result;\n });\n\n /**\n * Check to see if ArrayBuffer is supported\n *\n * @name supportsArrayBuffer\n * @function\n * @returns {boolean}\n */\n var supportsArrayBuffer = (jsPDFAPI.__addimage__.supportsArrayBuffer = function() {\n return (\n typeof ArrayBuffer !== \"undefined\" && typeof Uint8Array !== \"undefined\"\n );\n });\n\n /**\n * Tests supplied object to determine if ArrayBuffer\n *\n * @name isArrayBuffer\n * @function\n * @param {Object} object an Object\n *\n * @returns {boolean}\n */\n jsPDFAPI.__addimage__.isArrayBuffer = function(object) {\n return supportsArrayBuffer() && object instanceof ArrayBuffer;\n };\n\n /**\n * Tests supplied object to determine if it implements the ArrayBufferView (TypedArray) interface\n *\n * @name isArrayBufferView\n * @function\n * @param {Object} object an Object\n * @returns {boolean}\n */\n var isArrayBufferView = (jsPDFAPI.__addimage__.isArrayBufferView = function(\n object\n ) {\n return (\n supportsArrayBuffer() &&\n typeof Uint32Array !== \"undefined\" &&\n (object instanceof Int8Array ||\n object instanceof Uint8Array ||\n (typeof Uint8ClampedArray !== \"undefined\" &&\n object instanceof Uint8ClampedArray) ||\n object instanceof Int16Array ||\n object instanceof Uint16Array ||\n object instanceof Int32Array ||\n object instanceof Uint32Array ||\n object instanceof Float32Array ||\n object instanceof Float64Array)\n );\n });\n\n /**\n * Convert Binary String to ArrayBuffer\n *\n * @name binaryStringToUint8Array\n * @public\n * @function\n * @param {string} BinaryString with ImageData\n * @returns {Uint8Array}\n */\n var binaryStringToUint8Array = (jsPDFAPI.__addimage__.binaryStringToUint8Array = function(\n binary_string\n ) {\n var len = binary_string.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes;\n });\n\n /**\n * Convert the Buffer to a Binary String\n *\n * @name arrayBufferToBinaryString\n * @public\n * @function\n * @param {ArrayBuffer|ArrayBufferView} ArrayBuffer buffer or bufferView with ImageData\n *\n * @returns {String}\n */\n var arrayBufferToBinaryString = (jsPDFAPI.__addimage__.arrayBufferToBinaryString = function(\n buffer\n ) {\n var out = \"\";\n // There are calls with both ArrayBuffer and already converted Uint8Array or other BufferView.\n // Do not copy the array if input is already an array.\n var buf = isArrayBufferView(buffer) ? buffer : new Uint8Array(buffer);\n for (var i = 0; i < buf.length; i += ARRAY_APPLY_BATCH) {\n // Limit the amount of characters being parsed to prevent overflow.\n // Note that while TextDecoder would be faster, it does not have the same\n // functionality as fromCharCode with any provided encodings as of 3/2021.\n out += String.fromCharCode.apply(\n null,\n buf.subarray(i, i + ARRAY_APPLY_BATCH)\n );\n }\n return out;\n });\n\n /**\n * Possible parameter for addImage, an RGBA buffer with size.\n *\n * @typedef {Object} RGBAData\n * @property {Uint8ClampedArray} data - Single dimensional array of RGBA values. For example from canvas getImageData.\n * @property {number} width - Image width as the data does not carry this information in itself.\n * @property {number} height - Image height as the data does not carry this information in itself.\n */\n\n /**\n * Adds an Image to the PDF.\n *\n * @name addImage\n * @public\n * @function\n * @param {string|HTMLImageElement|HTMLCanvasElement|Uint8Array|RGBAData} imageData imageData as base64 encoded DataUrl or Image-HTMLElement or Canvas-HTMLElement or object containing RGBA array (like output from canvas.getImageData).\n * @param {string} format format of file if filetype-recognition fails or in case of a Canvas-Element needs to be specified (default for Canvas is JPEG), e.g. 'JPEG', 'PNG', 'WEBP'\n * @param {number} x x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {number} y y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {number} width width of the image (in units declared at inception of PDF document)\n * @param {number} height height of the Image (in units declared at inception of PDF document)\n * @param {string} alias alias of the image (if used multiple times)\n * @param {string} compression compression of the generated JPEG, can have the values 'NONE', 'FAST', 'MEDIUM' and 'SLOW'\n * @param {number} rotation rotation of the image in degrees (0-359)\n *\n * @returns jsPDF\n */\n jsPDFAPI.addImage = function() {\n var imageData, format, x, y, w, h, alias, compression, rotation;\n\n imageData = arguments[0];\n if (typeof arguments[1] === \"number\") {\n format = UNKNOWN;\n x = arguments[1];\n y = arguments[2];\n w = arguments[3];\n h = arguments[4];\n alias = arguments[5];\n compression = arguments[6];\n rotation = arguments[7];\n } else {\n format = arguments[1];\n x = arguments[2];\n y = arguments[3];\n w = arguments[4];\n h = arguments[5];\n alias = arguments[6];\n compression = arguments[7];\n rotation = arguments[8];\n }\n\n if (\n typeof imageData === \"object\" &&\n !isDOMElement(imageData) &&\n \"imageData\" in imageData\n ) {\n var options = imageData;\n\n imageData = options.imageData;\n format = options.format || format || UNKNOWN;\n x = options.x || x || 0;\n y = options.y || y || 0;\n w = options.w || options.width || w;\n h = options.h || options.height || h;\n alias = options.alias || alias;\n compression = options.compression || compression;\n rotation = options.rotation || options.angle || rotation;\n }\n\n //If compression is not explicitly set, determine if we should use compression\n var filter = this.internal.getFilters();\n if (compression === undefined && filter.indexOf(\"FlateEncode\") !== -1) {\n compression = \"SLOW\";\n }\n\n if (isNaN(x) || isNaN(y)) {\n throw new Error(\"Invalid coordinates passed to jsPDF.addImage\");\n }\n\n initialize.call(this);\n\n var image = processImageData.call(\n this,\n imageData,\n format,\n alias,\n compression\n );\n\n writeImageToPDF.call(this, x, y, w, h, image, rotation);\n\n return this;\n };\n\n var processImageData = function(imageData, format, alias, compression) {\n var result, dataAsBinaryString;\n\n if (\n typeof imageData === \"string\" &&\n getImageFileTypeByImageData(imageData) === UNKNOWN\n ) {\n imageData = unescape(imageData);\n var tmpImageData = convertBase64ToBinaryString(imageData, false);\n\n if (tmpImageData !== \"\") {\n imageData = tmpImageData;\n } else {\n tmpImageData = jsPDFAPI.loadFile(imageData, true);\n if (tmpImageData !== undefined) {\n imageData = tmpImageData;\n }\n }\n }\n\n if (isDOMElement(imageData)) {\n imageData = getImageDataFromElement(imageData, format);\n }\n\n format = getImageFileTypeByImageData(imageData, format);\n if (!isImageTypeSupported(format)) {\n throw new Error(\n \"addImage does not support files of type '\" +\n format +\n \"', please ensure that a plugin for '\" +\n format +\n \"' support is added.\"\n );\n }\n\n // now do the heavy lifting\n\n if (notDefined(alias)) {\n alias = generateAliasFromImageData(imageData);\n }\n result = checkImagesForAlias.call(this, alias);\n\n if (!result) {\n if (supportsArrayBuffer()) {\n // no need to convert if imageData is already uint8array\n if (!(imageData instanceof Uint8Array) && format !== \"RGBA\") {\n dataAsBinaryString = imageData;\n imageData = binaryStringToUint8Array(imageData);\n }\n }\n\n result = this[\"process\" + format.toUpperCase()](\n imageData,\n getImageIndex.call(this),\n alias,\n checkCompressValue(compression),\n dataAsBinaryString\n );\n }\n\n if (!result) {\n throw new Error(\"An unknown error occurred whilst processing the image.\");\n }\n return result;\n };\n\n /**\n * @name convertBase64ToBinaryString\n * @function\n * @param {string} stringData\n * @returns {string} binary string\n */\n var convertBase64ToBinaryString = (jsPDFAPI.__addimage__.convertBase64ToBinaryString = function(\n stringData,\n throwError\n ) {\n throwError = typeof throwError === \"boolean\" ? throwError : true;\n var base64Info;\n var imageData = \"\";\n var rawData;\n\n if (typeof stringData === \"string\") {\n base64Info = extractImageFromDataUrl(stringData);\n rawData = base64Info !== null ? base64Info.data : stringData;\n\n try {\n imageData = atob(rawData);\n } catch (e) {\n if (throwError) {\n if (!validateStringAsBase64(rawData)) {\n throw new Error(\n \"Supplied Data is not a valid base64-String jsPDF.convertBase64ToBinaryString \"\n );\n } else {\n throw new Error(\n \"atob-Error in jsPDF.convertBase64ToBinaryString \" + e.message\n );\n }\n }\n }\n }\n return imageData;\n });\n\n /**\n * @name getImageProperties\n * @function\n * @param {Object} imageData\n * @returns {Object}\n */\n jsPDFAPI.getImageProperties = function(imageData) {\n var image;\n var tmpImageData = \"\";\n var format;\n\n if (isDOMElement(imageData)) {\n imageData = getImageDataFromElement(imageData);\n }\n\n if (\n typeof imageData === \"string\" &&\n getImageFileTypeByImageData(imageData) === UNKNOWN\n ) {\n tmpImageData = convertBase64ToBinaryString(imageData, false);\n\n if (tmpImageData === \"\") {\n tmpImageData = jsPDFAPI.loadFile(imageData) || \"\";\n }\n imageData = tmpImageData;\n }\n\n format = getImageFileTypeByImageData(imageData);\n if (!isImageTypeSupported(format)) {\n throw new Error(\n \"addImage does not support files of type '\" +\n format +\n \"', please ensure that a plugin for '\" +\n format +\n \"' support is added.\"\n );\n }\n\n if (supportsArrayBuffer() && !(imageData instanceof Uint8Array)) {\n imageData = binaryStringToUint8Array(imageData);\n }\n\n image = this[\"process\" + format.toUpperCase()](imageData);\n\n if (!image) {\n throw new Error(\"An unknown error occurred whilst processing the image\");\n }\n\n image.fileType = format;\n\n return image;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF Annotations PlugIn\n *\n * There are many types of annotations in a PDF document. Annotations are placed\n * on a page at a particular location. They are not 'attached' to an object.\n *
\n * This plugin current supports
\n *
  • Goto Page (set pageNumber and top in options)\n *
  • Goto Name (set name and top in options)\n *
  • Goto URL (set url in options)\n *

    \n * \tThe destination magnification factor can also be specified when goto is a page number or a named destination. (see documentation below)\n * (set magFactor in options). XYZ is the default.\n *

    \n *

    \n * Links, Text, Popup, and FreeText are supported.\n *

    \n *

    \n * Options In PDF spec Not Implemented Yet\n *

  • link border\n *
  • named target\n *
  • page coordinates\n *
  • destination page scaling and layout\n *
  • actions other than URL and GotoPage\n *
  • background / hover actions\n *

    \n * @name annotations\n * @module\n */\n\n/*\n Destination Magnification Factors\n See PDF 1.3 Page 386 for meanings and options\n\n [supported]\n\tXYZ (options; left top zoom)\n\tFit (no options)\n\tFitH (options: top)\n\tFitV (options: left)\n\n\t[not supported]\n\tFitR\n\tFitB\n\tFitBH\n\tFitBV\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var notEmpty = function(obj) {\n if (typeof obj != \"undefined\") {\n if (obj != \"\") {\n return true;\n }\n }\n };\n\n jsPDF.API.events.push([\n \"addPage\",\n function(addPageData) {\n var pageInfo = this.internal.getPageInfo(addPageData.pageNumber);\n pageInfo.pageContext.annotations = [];\n }\n ]);\n\n jsPDFAPI.events.push([\n \"putPage\",\n function(putPageData) {\n var getHorizontalCoordinateString = this.internal.getCoordinateString;\n var getVerticalCoordinateString = this.internal\n .getVerticalCoordinateString;\n var pageInfo = this.internal.getPageInfoByObjId(putPageData.objId);\n var pageAnnos = putPageData.pageContext.annotations;\n\n var anno, rect, line;\n var found = false;\n for (var a = 0; a < pageAnnos.length && !found; a++) {\n anno = pageAnnos[a];\n switch (anno.type) {\n case \"link\":\n if (\n notEmpty(anno.options.url) ||\n notEmpty(anno.options.pageNumber)\n ) {\n found = true;\n }\n break;\n case \"reference\":\n case \"text\":\n case \"freetext\":\n found = true;\n break;\n }\n }\n if (found == false) {\n return;\n }\n\n this.internal.write(\"/Annots [\");\n for (var i = 0; i < pageAnnos.length; i++) {\n anno = pageAnnos[i];\n var escape = this.internal.pdfEscape;\n var encryptor = this.internal.getEncryptor(putPageData.objId);\n\n switch (anno.type) {\n case \"reference\":\n // References to Widget Annotations (for AcroForm Fields)\n this.internal.write(\" \" + anno.object.objId + \" 0 R \");\n break;\n case \"text\":\n // Create a an object for both the text and the popup\n var objText = this.internal.newAdditionalObject();\n var objPopup = this.internal.newAdditionalObject();\n var encryptorText = this.internal.getEncryptor(objText.objId);\n\n var title = anno.title || \"Note\";\n rect =\n \"/Rect [\" +\n getHorizontalCoordinateString(anno.bounds.x) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n \" \" +\n getHorizontalCoordinateString(anno.bounds.x + anno.bounds.w) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y) +\n \"] \";\n\n line =\n \"<>\";\n objText.content = line;\n\n var parent = objText.objId + \" 0 R\";\n var popoff = 30;\n rect =\n \"/Rect [\" +\n getHorizontalCoordinateString(anno.bounds.x + popoff) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n \" \" +\n getHorizontalCoordinateString(\n anno.bounds.x + anno.bounds.w + popoff\n ) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y) +\n \"] \";\n line =\n \"<>\";\n objPopup.content = line;\n\n this.internal.write(objText.objId, \"0 R\", objPopup.objId, \"0 R\");\n\n break;\n case \"freetext\":\n rect =\n \"/Rect [\" +\n getHorizontalCoordinateString(anno.bounds.x) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y) +\n \" \" +\n getHorizontalCoordinateString(anno.bounds.x + anno.bounds.w) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n \"] \";\n var color = anno.color || \"#000000\";\n line =\n \"<>\";\n this.internal.write(line);\n break;\n case \"link\":\n if (anno.options.name) {\n var loc = this.annotations._nameMap[anno.options.name];\n anno.options.pageNumber = loc.page;\n anno.options.top = loc.y;\n } else {\n if (!anno.options.top) {\n anno.options.top = 0;\n }\n }\n\n rect =\n \"/Rect [\" +\n anno.finalBounds.x +\n \" \" +\n anno.finalBounds.y +\n \" \" +\n anno.finalBounds.w +\n \" \" +\n anno.finalBounds.h +\n \"] \";\n\n line = \"\";\n if (anno.options.url) {\n line =\n \"<>\";\n } else if (anno.options.pageNumber) {\n // first page is 0\n var info = this.internal.getPageInfo(anno.options.pageNumber);\n line =\n \"<>\";\n this.internal.write(line);\n }\n break;\n }\n }\n this.internal.write(\"]\");\n }\n ]);\n\n /**\n * @name createAnnotation\n * @function\n * @param {Object} options\n */\n jsPDFAPI.createAnnotation = function(options) {\n var pageInfo = this.internal.getCurrentPageInfo();\n switch (options.type) {\n case \"link\":\n this.link(\n options.bounds.x,\n options.bounds.y,\n options.bounds.w,\n options.bounds.h,\n options\n );\n break;\n case \"text\":\n case \"freetext\":\n pageInfo.pageContext.annotations.push(options);\n break;\n }\n };\n\n /**\n * Create a link\n *\n * valid options\n *
  • pageNumber or url [required]\n *

    If pageNumber is specified, top and zoom may also be specified

    \n * @name link\n * @function\n * @param {number} x\n * @param {number} y\n * @param {number} w\n * @param {number} h\n * @param {Object} options\n */\n jsPDFAPI.link = function(x, y, w, h, options) {\n var pageInfo = this.internal.getCurrentPageInfo();\n var getHorizontalCoordinateString = this.internal.getCoordinateString;\n var getVerticalCoordinateString = this.internal.getVerticalCoordinateString;\n\n pageInfo.pageContext.annotations.push({\n finalBounds: {\n x: getHorizontalCoordinateString(x),\n y: getVerticalCoordinateString(y),\n w: getHorizontalCoordinateString(x + w),\n h: getVerticalCoordinateString(y + h)\n },\n options: options,\n type: \"link\"\n });\n };\n\n /**\n * Currently only supports single line text.\n * Returns the width of the text/link\n *\n * @name textWithLink\n * @function\n * @param {string} text\n * @param {number} x\n * @param {number} y\n * @param {Object} options\n * @returns {number} width the width of the text/link\n */\n jsPDFAPI.textWithLink = function(text, x, y, options) {\n var totalLineWidth = this.getTextWidth(text);\n var lineHeight = this.internal.getLineHeight() / this.internal.scaleFactor;\n var linkHeight, linkWidth;\n\n // Checking if maxWidth option is passed to determine lineWidth and number of lines for each line\n if (options.maxWidth !== undefined) {\n var { maxWidth } = options;\n linkWidth = maxWidth;\n var numOfLines = this.splitTextToSize(text, linkWidth).length;\n linkHeight = Math.ceil(lineHeight * numOfLines);\n } else {\n linkWidth = totalLineWidth;\n linkHeight = lineHeight;\n }\n\n this.text(text, x, y, options);\n\n //TODO We really need the text baseline height to do this correctly.\n // Or ability to draw text on top, bottom, center, or baseline.\n y += lineHeight * 0.2;\n //handle x position based on the align option\n if (options.align === \"center\") {\n x = x - totalLineWidth / 2; //since starting from center move the x position by half of text width\n }\n if (options.align === \"right\") {\n x = x - totalLineWidth;\n }\n this.link(x, y - lineHeight, linkWidth, linkHeight, options);\n return totalLineWidth;\n };\n\n //TODO move into external library\n /**\n * @name getTextWidth\n * @function\n * @param {string} text\n * @returns {number} txtWidth\n */\n jsPDFAPI.getTextWidth = function(text) {\n var fontSize = this.internal.getFontSize();\n var txtWidth =\n (this.getStringUnitWidth(text) * fontSize) / this.internal.scaleFactor;\n return txtWidth;\n };\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF arabic parser PlugIn\n *\n * @name arabic\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Arabic shape substitutions: char code => (isolated, final, initial, medial).\n * Arabic Substition A\n */\n var arabicSubstitionA = {\n 0x0621: [0xfe80], // ARABIC LETTER HAMZA\n 0x0622: [0xfe81, 0xfe82], // ARABIC LETTER ALEF WITH MADDA ABOVE\n 0x0623: [0xfe83, 0xfe84], // ARABIC LETTER ALEF WITH HAMZA ABOVE\n 0x0624: [0xfe85, 0xfe86], // ARABIC LETTER WAW WITH HAMZA ABOVE\n 0x0625: [0xfe87, 0xfe88], // ARABIC LETTER ALEF WITH HAMZA BELOW\n 0x0626: [0xfe89, 0xfe8a, 0xfe8b, 0xfe8c], // ARABIC LETTER YEH WITH HAMZA ABOVE\n 0x0627: [0xfe8d, 0xfe8e], // ARABIC LETTER ALEF\n 0x0628: [0xfe8f, 0xfe90, 0xfe91, 0xfe92], // ARABIC LETTER BEH\n 0x0629: [0xfe93, 0xfe94], // ARABIC LETTER TEH MARBUTA\n 0x062a: [0xfe95, 0xfe96, 0xfe97, 0xfe98], // ARABIC LETTER TEH\n 0x062b: [0xfe99, 0xfe9a, 0xfe9b, 0xfe9c], // ARABIC LETTER THEH\n 0x062c: [0xfe9d, 0xfe9e, 0xfe9f, 0xfea0], // ARABIC LETTER JEEM\n 0x062d: [0xfea1, 0xfea2, 0xfea3, 0xfea4], // ARABIC LETTER HAH\n 0x062e: [0xfea5, 0xfea6, 0xfea7, 0xfea8], // ARABIC LETTER KHAH\n 0x062f: [0xfea9, 0xfeaa], // ARABIC LETTER DAL\n 0x0630: [0xfeab, 0xfeac], // ARABIC LETTER THAL\n 0x0631: [0xfead, 0xfeae], // ARABIC LETTER REH\n 0x0632: [0xfeaf, 0xfeb0], // ARABIC LETTER ZAIN\n 0x0633: [0xfeb1, 0xfeb2, 0xfeb3, 0xfeb4], // ARABIC LETTER SEEN\n 0x0634: [0xfeb5, 0xfeb6, 0xfeb7, 0xfeb8], // ARABIC LETTER SHEEN\n 0x0635: [0xfeb9, 0xfeba, 0xfebb, 0xfebc], // ARABIC LETTER SAD\n 0x0636: [0xfebd, 0xfebe, 0xfebf, 0xfec0], // ARABIC LETTER DAD\n 0x0637: [0xfec1, 0xfec2, 0xfec3, 0xfec4], // ARABIC LETTER TAH\n 0x0638: [0xfec5, 0xfec6, 0xfec7, 0xfec8], // ARABIC LETTER ZAH\n 0x0639: [0xfec9, 0xfeca, 0xfecb, 0xfecc], // ARABIC LETTER AIN\n 0x063a: [0xfecd, 0xfece, 0xfecf, 0xfed0], // ARABIC LETTER GHAIN\n 0x0641: [0xfed1, 0xfed2, 0xfed3, 0xfed4], // ARABIC LETTER FEH\n 0x0642: [0xfed5, 0xfed6, 0xfed7, 0xfed8], // ARABIC LETTER QAF\n 0x0643: [0xfed9, 0xfeda, 0xfedb, 0xfedc], // ARABIC LETTER KAF\n 0x0644: [0xfedd, 0xfede, 0xfedf, 0xfee0], // ARABIC LETTER LAM\n 0x0645: [0xfee1, 0xfee2, 0xfee3, 0xfee4], // ARABIC LETTER MEEM\n 0x0646: [0xfee5, 0xfee6, 0xfee7, 0xfee8], // ARABIC LETTER NOON\n 0x0647: [0xfee9, 0xfeea, 0xfeeb, 0xfeec], // ARABIC LETTER HEH\n 0x0648: [0xfeed, 0xfeee], // ARABIC LETTER WAW\n 0x0649: [0xfeef, 0xfef0, 64488, 64489], // ARABIC LETTER ALEF MAKSURA\n 0x064a: [0xfef1, 0xfef2, 0xfef3, 0xfef4], // ARABIC LETTER YEH\n 0x0671: [0xfb50, 0xfb51], // ARABIC LETTER ALEF WASLA\n 0x0677: [0xfbdd], // ARABIC LETTER U WITH HAMZA ABOVE\n 0x0679: [0xfb66, 0xfb67, 0xfb68, 0xfb69], // ARABIC LETTER TTEH\n 0x067a: [0xfb5e, 0xfb5f, 0xfb60, 0xfb61], // ARABIC LETTER TTEHEH\n 0x067b: [0xfb52, 0xfb53, 0xfb54, 0xfb55], // ARABIC LETTER BEEH\n 0x067e: [0xfb56, 0xfb57, 0xfb58, 0xfb59], // ARABIC LETTER PEH\n 0x067f: [0xfb62, 0xfb63, 0xfb64, 0xfb65], // ARABIC LETTER TEHEH\n 0x0680: [0xfb5a, 0xfb5b, 0xfb5c, 0xfb5d], // ARABIC LETTER BEHEH\n 0x0683: [0xfb76, 0xfb77, 0xfb78, 0xfb79], // ARABIC LETTER NYEH\n 0x0684: [0xfb72, 0xfb73, 0xfb74, 0xfb75], // ARABIC LETTER DYEH\n 0x0686: [0xfb7a, 0xfb7b, 0xfb7c, 0xfb7d], // ARABIC LETTER TCHEH\n 0x0687: [0xfb7e, 0xfb7f, 0xfb80, 0xfb81], // ARABIC LETTER TCHEHEH\n 0x0688: [0xfb88, 0xfb89], // ARABIC LETTER DDAL\n 0x068c: [0xfb84, 0xfb85], // ARABIC LETTER DAHAL\n 0x068d: [0xfb82, 0xfb83], // ARABIC LETTER DDAHAL\n 0x068e: [0xfb86, 0xfb87], // ARABIC LETTER DUL\n 0x0691: [0xfb8c, 0xfb8d], // ARABIC LETTER RREH\n 0x0698: [0xfb8a, 0xfb8b], // ARABIC LETTER JEH\n 0x06a4: [0xfb6a, 0xfb6b, 0xfb6c, 0xfb6d], // ARABIC LETTER VEH\n 0x06a6: [0xfb6e, 0xfb6f, 0xfb70, 0xfb71], // ARABIC LETTER PEHEH\n 0x06a9: [0xfb8e, 0xfb8f, 0xfb90, 0xfb91], // ARABIC LETTER KEHEH\n 0x06ad: [0xfbd3, 0xfbd4, 0xfbd5, 0xfbd6], // ARABIC LETTER NG\n 0x06af: [0xfb92, 0xfb93, 0xfb94, 0xfb95], // ARABIC LETTER GAF\n 0x06b1: [0xfb9a, 0xfb9b, 0xfb9c, 0xfb9d], // ARABIC LETTER NGOEH\n 0x06b3: [0xfb96, 0xfb97, 0xfb98, 0xfb99], // ARABIC LETTER GUEH\n 0x06ba: [0xfb9e, 0xfb9f], // ARABIC LETTER NOON GHUNNA\n 0x06bb: [0xfba0, 0xfba1, 0xfba2, 0xfba3], // ARABIC LETTER RNOON\n 0x06be: [0xfbaa, 0xfbab, 0xfbac, 0xfbad], // ARABIC LETTER HEH DOACHASHMEE\n 0x06c0: [0xfba4, 0xfba5], // ARABIC LETTER HEH WITH YEH ABOVE\n 0x06c1: [0xfba6, 0xfba7, 0xfba8, 0xfba9], // ARABIC LETTER HEH GOAL\n 0x06c5: [0xfbe0, 0xfbe1], // ARABIC LETTER KIRGHIZ OE\n 0x06c6: [0xfbd9, 0xfbda], // ARABIC LETTER OE\n 0x06c7: [0xfbd7, 0xfbd8], // ARABIC LETTER U\n 0x06c8: [0xfbdb, 0xfbdc], // ARABIC LETTER YU\n 0x06c9: [0xfbe2, 0xfbe3], // ARABIC LETTER KIRGHIZ YU\n 0x06cb: [0xfbde, 0xfbdf], // ARABIC LETTER VE\n 0x06cc: [0xfbfc, 0xfbfd, 0xfbfe, 0xfbff], // ARABIC LETTER FARSI YEH\n 0x06d0: [0xfbe4, 0xfbe5, 0xfbe6, 0xfbe7], //ARABIC LETTER E\n 0x06d2: [0xfbae, 0xfbaf], // ARABIC LETTER YEH BARREE\n 0x06d3: [0xfbb0, 0xfbb1] // ARABIC LETTER YEH BARREE WITH HAMZA ABOVE\n };\n\n /*\n var ligaturesSubstitutionA = {\n 0xFBEA: []// ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM\n };\n */\n\n var ligatures = {\n 0xfedf: {\n 0xfe82: 0xfef5, // ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM\n 0xfe84: 0xfef7, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM\n 0xfe88: 0xfef9, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM\n 0xfe8e: 0xfefb // ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM\n },\n 0xfee0: {\n 0xfe82: 0xfef6, // ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM\n 0xfe84: 0xfef8, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM\n 0xfe88: 0xfefa, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM\n 0xfe8e: 0xfefc // ARABIC LIGATURE LAM WITH ALEF FINAL FORM\n },\n 0xfe8d: { 0xfedf: { 0xfee0: { 0xfeea: 0xfdf2 } } }, // ALLAH\n 0x0651: {\n 0x064c: 0xfc5e, // Shadda + Dammatan\n 0x064d: 0xfc5f, // Shadda + Kasratan\n 0x064e: 0xfc60, // Shadda + Fatha\n 0x064f: 0xfc61, // Shadda + Damma\n 0x0650: 0xfc62 // Shadda + Kasra\n }\n };\n\n var arabic_diacritics = {\n 1612: 64606, // Shadda + Dammatan\n 1613: 64607, // Shadda + Kasratan\n 1614: 64608, // Shadda + Fatha\n 1615: 64609, // Shadda + Damma\n 1616: 64610 // Shadda + Kasra\n };\n\n var alfletter = [1570, 1571, 1573, 1575];\n\n var noChangeInForm = -1;\n var isolatedForm = 0;\n var finalForm = 1;\n var initialForm = 2;\n var medialForm = 3;\n\n jsPDFAPI.__arabicParser__ = {};\n\n //private\n var isInArabicSubstitutionA = (jsPDFAPI.__arabicParser__.isInArabicSubstitutionA = function(\n letter\n ) {\n return typeof arabicSubstitionA[letter.charCodeAt(0)] !== \"undefined\";\n });\n\n var isArabicLetter = (jsPDFAPI.__arabicParser__.isArabicLetter = function(\n letter\n ) {\n return (\n typeof letter === \"string\" &&\n /^[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\uFB50-\\uFDFF\\uFE70-\\uFEFF]+$/.test(\n letter\n )\n );\n });\n\n var isArabicEndLetter = (jsPDFAPI.__arabicParser__.isArabicEndLetter = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length <= 2\n );\n });\n\n var isArabicAlfLetter = (jsPDFAPI.__arabicParser__.isArabicAlfLetter = function(\n letter\n ) {\n return (\n isArabicLetter(letter) && alfletter.indexOf(letter.charCodeAt(0)) >= 0\n );\n });\n\n jsPDFAPI.__arabicParser__.arabicLetterHasIsolatedForm = function(letter) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 1\n );\n };\n\n var arabicLetterHasFinalForm = (jsPDFAPI.__arabicParser__.arabicLetterHasFinalForm = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 2\n );\n });\n\n jsPDFAPI.__arabicParser__.arabicLetterHasInitialForm = function(letter) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 3\n );\n };\n\n var arabicLetterHasMedialForm = (jsPDFAPI.__arabicParser__.arabicLetterHasMedialForm = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length == 4\n );\n });\n\n var resolveLigatures = (jsPDFAPI.__arabicParser__.resolveLigatures = function(\n letters\n ) {\n var i = 0;\n var tmpLigatures = ligatures;\n var result = \"\";\n var effectedLetters = 0;\n\n for (i = 0; i < letters.length; i += 1) {\n if (typeof tmpLigatures[letters.charCodeAt(i)] !== \"undefined\") {\n effectedLetters++;\n tmpLigatures = tmpLigatures[letters.charCodeAt(i)];\n\n if (typeof tmpLigatures === \"number\") {\n result += String.fromCharCode(tmpLigatures);\n tmpLigatures = ligatures;\n effectedLetters = 0;\n }\n if (i === letters.length - 1) {\n tmpLigatures = ligatures;\n result += letters.charAt(i - (effectedLetters - 1));\n i = i - (effectedLetters - 1);\n effectedLetters = 0;\n }\n } else {\n tmpLigatures = ligatures;\n result += letters.charAt(i - effectedLetters);\n i = i - effectedLetters;\n effectedLetters = 0;\n }\n }\n\n return result;\n });\n\n jsPDFAPI.__arabicParser__.isArabicDiacritic = function(letter) {\n return (\n letter !== undefined &&\n arabic_diacritics[letter.charCodeAt(0)] !== undefined\n );\n };\n\n var getCorrectForm = (jsPDFAPI.__arabicParser__.getCorrectForm = function(\n currentChar,\n beforeChar,\n nextChar\n ) {\n if (!isArabicLetter(currentChar)) {\n return -1;\n }\n\n if (isInArabicSubstitutionA(currentChar) === false) {\n return noChangeInForm;\n }\n if (\n !arabicLetterHasFinalForm(currentChar) ||\n (!isArabicLetter(beforeChar) && !isArabicLetter(nextChar)) ||\n (!isArabicLetter(nextChar) && isArabicEndLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && !isArabicLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && isArabicAlfLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && isArabicEndLetter(beforeChar))\n ) {\n return isolatedForm;\n }\n\n if (\n arabicLetterHasMedialForm(currentChar) &&\n isArabicLetter(beforeChar) &&\n !isArabicEndLetter(beforeChar) &&\n isArabicLetter(nextChar) &&\n arabicLetterHasFinalForm(nextChar)\n ) {\n return medialForm;\n }\n\n if (isArabicEndLetter(currentChar) || !isArabicLetter(nextChar)) {\n return finalForm;\n }\n return initialForm;\n });\n\n /**\n * @name processArabic\n * @function\n * @param {string} text\n * @returns {string}\n */\n var parseArabic = function(text) {\n text = text || \"\";\n\n var result = \"\";\n var i = 0;\n var j = 0;\n var position = 0;\n var currentLetter = \"\";\n var prevLetter = \"\";\n var nextLetter = \"\";\n\n var words = text.split(\"\\\\s+\");\n var newWords = [];\n for (i = 0; i < words.length; i += 1) {\n newWords.push(\"\");\n for (j = 0; j < words[i].length; j += 1) {\n currentLetter = words[i][j];\n prevLetter = words[i][j - 1];\n nextLetter = words[i][j + 1];\n if (isArabicLetter(currentLetter)) {\n position = getCorrectForm(currentLetter, prevLetter, nextLetter);\n if (position !== -1) {\n newWords[i] += String.fromCharCode(\n arabicSubstitionA[currentLetter.charCodeAt(0)][position]\n );\n } else {\n newWords[i] += currentLetter;\n }\n } else {\n newWords[i] += currentLetter;\n }\n }\n\n newWords[i] = resolveLigatures(newWords[i]);\n }\n result = newWords.join(\" \");\n\n return result;\n };\n\n var processArabic = (jsPDFAPI.__arabicParser__.processArabic = jsPDFAPI.processArabic = function() {\n var text =\n typeof arguments[0] === \"string\" ? arguments[0] : arguments[0].text;\n var tmpText = [];\n var result;\n\n if (Array.isArray(text)) {\n var i = 0;\n tmpText = [];\n for (i = 0; i < text.length; i += 1) {\n if (Array.isArray(text[i])) {\n tmpText.push([parseArabic(text[i][0]), text[i][1], text[i][2]]);\n } else {\n tmpText.push([parseArabic(text[i])]);\n }\n }\n result = tmpText;\n } else {\n result = parseArabic(text);\n }\n if (typeof arguments[0] === \"string\") {\n return result;\n } else {\n arguments[0].text = result;\n return arguments[0];\n }\n });\n\n jsPDFAPI.events.push([\"preProcessText\", processArabic]);\n})(jsPDF.API);\n","/** @license\n * jsPDF Autoprint Plugin\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name autoprint\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Makes the PDF automatically open the print-Dialog when opened in a PDF-viewer.\n *\n * @name autoPrint\n * @function\n * @param {Object} options (optional) Set the attribute variant to 'non-conform' (default) or 'javascript' to activate different methods of automatic printing when opening in a PDF-viewer .\n * @returns {jsPDF}\n * @example\n * var doc = new jsPDF();\n * doc.text(10, 10, 'This is a test');\n * doc.autoPrint({variant: 'non-conform'});\n * doc.save('autoprint.pdf');\n */\n jsPDFAPI.autoPrint = function(options) {\n \"use strict\";\n var refAutoPrintTag;\n options = options || {};\n options.variant = options.variant || \"non-conform\";\n\n switch (options.variant) {\n case \"javascript\":\n //https://github.com/Rob--W/pdf.js/commit/c676ecb5a0f54677b9f3340c3ef2cf42225453bb\n this.addJS(\"print({});\");\n break;\n case \"non-conform\":\n default:\n this.internal.events.subscribe(\"postPutResources\", function() {\n refAutoPrintTag = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/S /Named\");\n this.internal.out(\"/Type /Action\");\n this.internal.out(\"/N /Print\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n });\n\n this.internal.events.subscribe(\"putCatalog\", function() {\n this.internal.out(\"/OpenAction \" + refAutoPrintTag + \" 0 R\");\n });\n break;\n }\n return this;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF Canvas PlugIn\n * This plugin mimics the HTML5 Canvas\n *\n * The goal is to provide a way for current canvas users to print directly to a PDF.\n * @name canvas\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @class Canvas\n * @classdesc A Canvas Wrapper for jsPDF\n */\n var Canvas = function() {\n var jsPdfInstance = undefined;\n Object.defineProperty(this, \"pdf\", {\n get: function() {\n return jsPdfInstance;\n },\n set: function(value) {\n jsPdfInstance = value;\n }\n });\n\n var _width = 150;\n /**\n * The height property is a positive integer reflecting the height HTML attribute of the element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 150 is used.\n * This is one of the two properties, the other being width, that controls the size of the canvas.\n *\n * @name width\n */\n Object.defineProperty(this, \"width\", {\n get: function() {\n return _width;\n },\n set: function(value) {\n if (isNaN(value) || Number.isInteger(value) === false || value < 0) {\n _width = 150;\n } else {\n _width = value;\n }\n if (this.getContext(\"2d\").pageWrapXEnabled) {\n this.getContext(\"2d\").pageWrapX = _width + 1;\n }\n }\n });\n\n var _height = 300;\n /**\n * The width property is a positive integer reflecting the width HTML attribute of the element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 300 is used.\n * This is one of the two properties, the other being height, that controls the size of the canvas.\n *\n * @name height\n */\n Object.defineProperty(this, \"height\", {\n get: function() {\n return _height;\n },\n set: function(value) {\n if (isNaN(value) || Number.isInteger(value) === false || value < 0) {\n _height = 300;\n } else {\n _height = value;\n }\n if (this.getContext(\"2d\").pageWrapYEnabled) {\n this.getContext(\"2d\").pageWrapY = _height + 1;\n }\n }\n });\n\n var _childNodes = [];\n Object.defineProperty(this, \"childNodes\", {\n get: function() {\n return _childNodes;\n },\n set: function(value) {\n _childNodes = value;\n }\n });\n\n var _style = {};\n Object.defineProperty(this, \"style\", {\n get: function() {\n return _style;\n },\n set: function(value) {\n _style = value;\n }\n });\n\n Object.defineProperty(this, \"parentNode\", {});\n };\n\n /**\n * The getContext() method returns a drawing context on the canvas, or null if the context identifier is not supported.\n *\n * @name getContext\n * @function\n * @param {string} contextType Is a String containing the context identifier defining the drawing context associated to the canvas. Possible value is \"2d\", leading to the creation of a Context2D object representing a two-dimensional rendering context.\n * @param {object} contextAttributes\n */\n Canvas.prototype.getContext = function(contextType, contextAttributes) {\n contextType = contextType || \"2d\";\n var key;\n\n if (contextType !== \"2d\") {\n return null;\n }\n for (key in contextAttributes) {\n if (this.pdf.context2d.hasOwnProperty(key)) {\n this.pdf.context2d[key] = contextAttributes[key];\n }\n }\n this.pdf.context2d._canvas = this;\n return this.pdf.context2d;\n };\n\n /**\n * The toDataURL() method is just a stub to throw an error if accidently called.\n *\n * @name toDataURL\n * @function\n */\n Canvas.prototype.toDataURL = function() {\n throw new Error(\"toDataURL is not implemented.\");\n };\n\n jsPDFAPI.events.push([\n \"initialized\",\n function() {\n this.canvas = new Canvas();\n this.canvas.pdf = this;\n }\n ]);\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n * 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n * 2013 Lee Driscoll, https://github.com/lsdriscoll\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 James Hall, james@parall.ax\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name cell\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var NO_MARGINS = { left: 0, top: 0, bottom: 0, right: 0 };\n\n var px2pt = (0.264583 * 72) / 25.4;\n var printingHeaderRow = false;\n\n var _initialize = function() {\n if (typeof this.internal.__cell__ === \"undefined\") {\n this.internal.__cell__ = {};\n this.internal.__cell__.padding = 3;\n this.internal.__cell__.headerFunction = undefined;\n this.internal.__cell__.margins = Object.assign({}, NO_MARGINS);\n this.internal.__cell__.margins.width = this.getPageWidth();\n _reset.call(this);\n }\n };\n\n var _reset = function() {\n this.internal.__cell__.lastCell = new Cell();\n this.internal.__cell__.pages = 1;\n };\n\n var Cell = function() {\n var _x = arguments[0];\n Object.defineProperty(this, \"x\", {\n enumerable: true,\n get: function() {\n return _x;\n },\n set: function(value) {\n _x = value;\n }\n });\n var _y = arguments[1];\n Object.defineProperty(this, \"y\", {\n enumerable: true,\n get: function() {\n return _y;\n },\n set: function(value) {\n _y = value;\n }\n });\n var _width = arguments[2];\n Object.defineProperty(this, \"width\", {\n enumerable: true,\n get: function() {\n return _width;\n },\n set: function(value) {\n _width = value;\n }\n });\n var _height = arguments[3];\n Object.defineProperty(this, \"height\", {\n enumerable: true,\n get: function() {\n return _height;\n },\n set: function(value) {\n _height = value;\n }\n });\n var _text = arguments[4];\n Object.defineProperty(this, \"text\", {\n enumerable: true,\n get: function() {\n return _text;\n },\n set: function(value) {\n _text = value;\n }\n });\n var _lineNumber = arguments[5];\n Object.defineProperty(this, \"lineNumber\", {\n enumerable: true,\n get: function() {\n return _lineNumber;\n },\n set: function(value) {\n _lineNumber = value;\n }\n });\n var _align = arguments[6];\n Object.defineProperty(this, \"align\", {\n enumerable: true,\n get: function() {\n return _align;\n },\n set: function(value) {\n _align = value;\n }\n });\n\n return this;\n };\n\n Cell.prototype.clone = function() {\n return new Cell(\n this.x,\n this.y,\n this.width,\n this.height,\n this.text,\n this.lineNumber,\n this.align\n );\n };\n\n Cell.prototype.toArray = function() {\n return [\n this.x,\n this.y,\n this.width,\n this.height,\n this.text,\n this.lineNumber,\n this.align\n ];\n };\n\n /**\n * @name setHeaderFunction\n * @function\n * @param {function} func\n */\n jsPDFAPI.setHeaderFunction = function(func) {\n _initialize.call(this);\n this.internal.__cell__.headerFunction =\n typeof func === \"function\" ? func : undefined;\n return this;\n };\n\n /**\n * @name getTextDimensions\n * @function\n * @param {string} txt\n * @returns {Object} dimensions\n */\n jsPDFAPI.getTextDimensions = function(text, options) {\n _initialize.call(this);\n options = options || {};\n var fontSize = options.fontSize || this.getFontSize();\n var font = options.font || this.getFont();\n var scaleFactor = options.scaleFactor || this.internal.scaleFactor;\n var width = 0;\n var amountOfLines = 0;\n var height = 0;\n var tempWidth = 0;\n var scope = this;\n\n if (!Array.isArray(text) && typeof text !== \"string\") {\n if (typeof text === \"number\") {\n text = String(text);\n } else {\n throw new Error(\n \"getTextDimensions expects text-parameter to be of type String or type Number or an Array of Strings.\"\n );\n }\n }\n\n const maxWidth = options.maxWidth;\n if (maxWidth > 0) {\n if (typeof text === \"string\") {\n text = this.splitTextToSize(text, maxWidth);\n } else if (Object.prototype.toString.call(text) === \"[object Array]\") {\n text = text.reduce(function(acc, textLine) {\n return acc.concat(scope.splitTextToSize(textLine, maxWidth));\n }, []);\n }\n } else {\n // Without the else clause, it will not work if you do not pass along maxWidth\n text = Array.isArray(text) ? text : [text];\n }\n\n for (var i = 0; i < text.length; i++) {\n tempWidth = this.getStringUnitWidth(text[i], { font: font }) * fontSize;\n if (width < tempWidth) {\n width = tempWidth;\n }\n }\n\n if (width !== 0) {\n amountOfLines = text.length;\n }\n\n width = width / scaleFactor;\n height = Math.max(\n (amountOfLines * fontSize * this.getLineHeightFactor() -\n fontSize * (this.getLineHeightFactor() - 1)) /\n scaleFactor,\n 0\n );\n return { w: width, h: height };\n };\n\n /**\n * @name cellAddPage\n * @function\n */\n jsPDFAPI.cellAddPage = function() {\n _initialize.call(this);\n\n this.addPage();\n\n var margins = this.internal.__cell__.margins || NO_MARGINS;\n this.internal.__cell__.lastCell = new Cell(\n margins.left,\n margins.top,\n undefined,\n undefined\n );\n this.internal.__cell__.pages += 1;\n\n return this;\n };\n\n /**\n * @name cell\n * @function\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n * @param {string} text\n * @param {number} lineNumber lineNumber\n * @param {string} align\n * @return {jsPDF} jsPDF-instance\n */\n var cell = (jsPDFAPI.cell = function() {\n var currentCell;\n\n if (arguments[0] instanceof Cell) {\n currentCell = arguments[0];\n } else {\n currentCell = new Cell(\n arguments[0],\n arguments[1],\n arguments[2],\n arguments[3],\n arguments[4],\n arguments[5]\n );\n }\n _initialize.call(this);\n var lastCell = this.internal.__cell__.lastCell;\n var padding = this.internal.__cell__.padding;\n var margins = this.internal.__cell__.margins || NO_MARGINS;\n var tableHeaderRow = this.internal.__cell__.tableHeaderRow;\n var printHeaders = this.internal.__cell__.printHeaders;\n // If this is not the first cell, we must change its position\n if (typeof lastCell.lineNumber !== \"undefined\") {\n if (lastCell.lineNumber === currentCell.lineNumber) {\n //Same line\n currentCell.x = (lastCell.x || 0) + (lastCell.width || 0);\n currentCell.y = lastCell.y || 0;\n } else {\n //New line\n if (\n lastCell.y + lastCell.height + currentCell.height + margins.bottom >\n this.getPageHeight()\n ) {\n this.cellAddPage();\n currentCell.y = margins.top;\n if (printHeaders && tableHeaderRow) {\n this.printHeaderRow(currentCell.lineNumber, true);\n currentCell.y += tableHeaderRow[0].height;\n }\n } else {\n currentCell.y = lastCell.y + lastCell.height || currentCell.y;\n }\n }\n }\n\n if (typeof currentCell.text[0] !== \"undefined\") {\n this.rect(\n currentCell.x,\n currentCell.y,\n currentCell.width,\n currentCell.height,\n printingHeaderRow === true ? \"FD\" : undefined\n );\n if (currentCell.align === \"right\") {\n this.text(\n currentCell.text,\n currentCell.x + currentCell.width - padding,\n currentCell.y + padding,\n { align: \"right\", baseline: \"top\" }\n );\n } else if (currentCell.align === \"center\") {\n this.text(\n currentCell.text,\n currentCell.x + currentCell.width / 2,\n currentCell.y + padding,\n {\n align: \"center\",\n baseline: \"top\",\n maxWidth: currentCell.width - padding - padding\n }\n );\n } else {\n this.text(\n currentCell.text,\n currentCell.x + padding,\n currentCell.y + padding,\n {\n align: \"left\",\n baseline: \"top\",\n maxWidth: currentCell.width - padding - padding\n }\n );\n }\n }\n this.internal.__cell__.lastCell = currentCell;\n return this;\n });\n\n /**\n * Create a table from a set of data.\n * @name table\n * @function\n * @param {Integer} [x] : left-position for top-left corner of table\n * @param {Integer} [y] top-position for top-left corner of table\n * @param {Object[]} [data] An array of objects containing key-value pairs corresponding to a row of data.\n * @param {String[]} [headers] Omit or null to auto-generate headers at a performance cost\n\n * @param {Object} [config.printHeaders] True to print column headers at the top of every page\n * @param {Object} [config.autoSize] True to dynamically set the column widths to match the widest cell value\n * @param {Object} [config.margins] margin values for left, top, bottom, and width\n * @param {Object} [config.fontSize] Integer fontSize to use (optional)\n * @param {Object} [config.padding] cell-padding in pt to use (optional)\n * @param {Object} [config.headerBackgroundColor] default is #c8c8c8 (optional)\n * @param {Object} [config.headerTextColor] default is #000 (optional)\n * @param {Object} [config.rowStart] callback to handle before print each row (optional)\n * @param {Object} [config.cellStart] callback to handle before print each cell (optional)\n * @returns {jsPDF} jsPDF-instance\n */\n\n jsPDFAPI.table = function(x, y, data, headers, config) {\n _initialize.call(this);\n if (!data) {\n throw new Error(\"No data for PDF table.\");\n }\n\n config = config || {};\n\n var headerNames = [],\n headerLabels = [],\n headerAligns = [],\n i,\n columnMatrix = {},\n columnWidths = {},\n column,\n columnMinWidths = [],\n j,\n tableHeaderConfigs = [],\n //set up defaults. If a value is provided in config, defaults will be overwritten:\n autoSize = config.autoSize || false,\n printHeaders = config.printHeaders === false ? false : true,\n fontSize =\n config.css && typeof config.css[\"font-size\"] !== \"undefined\"\n ? config.css[\"font-size\"] * 16\n : config.fontSize || 12,\n margins =\n config.margins ||\n Object.assign({ width: this.getPageWidth() }, NO_MARGINS),\n padding = typeof config.padding === \"number\" ? config.padding : 3,\n headerBackgroundColor = config.headerBackgroundColor || \"#c8c8c8\",\n headerTextColor = config.headerTextColor || \"#000\";\n\n _reset.call(this);\n\n this.internal.__cell__.printHeaders = printHeaders;\n this.internal.__cell__.margins = margins;\n this.internal.__cell__.table_font_size = fontSize;\n this.internal.__cell__.padding = padding;\n this.internal.__cell__.headerBackgroundColor = headerBackgroundColor;\n this.internal.__cell__.headerTextColor = headerTextColor;\n this.setFontSize(fontSize);\n\n // Set header values\n if (headers === undefined || headers === null) {\n // No headers defined so we derive from data\n headerNames = Object.keys(data[0]);\n headerLabels = headerNames;\n headerAligns = headerNames.map(function() {\n return \"left\";\n });\n } else if (Array.isArray(headers) && typeof headers[0] === \"object\") {\n headerNames = headers.map(function(header) {\n return header.name;\n });\n headerLabels = headers.map(function(header) {\n return header.prompt || header.name || \"\";\n });\n headerAligns = headers.map(function(header) {\n return header.align || \"left\";\n });\n // Split header configs into names and prompts\n for (i = 0; i < headers.length; i += 1) {\n columnWidths[headers[i].name] = headers[i].width * px2pt;\n }\n } else if (Array.isArray(headers) && typeof headers[0] === \"string\") {\n headerNames = headers;\n headerLabels = headerNames;\n headerAligns = headerNames.map(function() {\n return \"left\";\n });\n }\n\n if (\n autoSize ||\n (Array.isArray(headers) && typeof headers[0] === \"string\")\n ) {\n var headerName;\n for (i = 0; i < headerNames.length; i += 1) {\n headerName = headerNames[i];\n\n // Create a matrix of columns e.g., {column_title: [row1_Record, row2_Record]}\n\n columnMatrix[headerName] = data.map(function(rec) {\n return rec[headerName];\n });\n\n // get header width\n this.setFont(undefined, \"bold\");\n columnMinWidths.push(\n this.getTextDimensions(headerLabels[i], {\n fontSize: this.internal.__cell__.table_font_size,\n scaleFactor: this.internal.scaleFactor\n }).w\n );\n column = columnMatrix[headerName];\n\n // get cell widths\n this.setFont(undefined, \"normal\");\n for (j = 0; j < column.length; j += 1) {\n columnMinWidths.push(\n this.getTextDimensions(column[j], {\n fontSize: this.internal.__cell__.table_font_size,\n scaleFactor: this.internal.scaleFactor\n }).w\n );\n }\n\n // get final column width\n columnWidths[headerName] =\n Math.max.apply(null, columnMinWidths) + padding + padding;\n\n //have to reset\n columnMinWidths = [];\n }\n }\n\n // -- Construct the table\n\n if (printHeaders) {\n var row = {};\n for (i = 0; i < headerNames.length; i += 1) {\n row[headerNames[i]] = {};\n row[headerNames[i]].text = headerLabels[i];\n row[headerNames[i]].align = headerAligns[i];\n }\n\n var rowHeight = calculateLineHeight.call(this, row, columnWidths);\n\n // Construct the header row\n tableHeaderConfigs = headerNames.map(function(value) {\n return new Cell(\n x,\n y,\n columnWidths[value],\n rowHeight,\n row[value].text,\n undefined,\n row[value].align\n );\n });\n\n // Store the table header config\n this.setTableHeaderRow(tableHeaderConfigs);\n\n // Print the header for the start of the table\n this.printHeaderRow(1, false);\n }\n\n // Construct the data rows\n\n var align = headers.reduce(function(pv, cv) {\n pv[cv.name] = cv.align;\n return pv;\n }, {});\n for (i = 0; i < data.length; i += 1) {\n if (\"rowStart\" in config && config.rowStart instanceof Function) {\n config.rowStart(\n {\n row: i,\n data: data[i]\n },\n this\n );\n }\n var lineHeight = calculateLineHeight.call(this, data[i], columnWidths);\n\n for (j = 0; j < headerNames.length; j += 1) {\n var cellData = data[i][headerNames[j]];\n if (\"cellStart\" in config && config.cellStart instanceof Function) {\n config.cellStart(\n {\n row: i,\n col: j,\n data: cellData\n },\n this\n );\n }\n cell.call(\n this,\n new Cell(\n x,\n y,\n columnWidths[headerNames[j]],\n lineHeight,\n cellData,\n i + 2,\n align[headerNames[j]]\n )\n );\n }\n }\n this.internal.__cell__.table_x = x;\n this.internal.__cell__.table_y = y;\n return this;\n };\n\n /**\n * Calculate the height for containing the highest column\n *\n * @name calculateLineHeight\n * @function\n * @param {Object[]} model is the line of data we want to calculate the height of\n * @param {Integer[]} columnWidths is size of each column\n * @returns {number} lineHeight\n * @private\n */\n var calculateLineHeight = function calculateLineHeight(model, columnWidths) {\n var padding = this.internal.__cell__.padding;\n var fontSize = this.internal.__cell__.table_font_size;\n var scaleFactor = this.internal.scaleFactor;\n\n return Object.keys(model)\n .map(function(key) {\n var value = model[key];\n return this.splitTextToSize(\n value.hasOwnProperty(\"text\") ? value.text : value,\n columnWidths[key] - padding - padding\n );\n }, this)\n .map(function(value) {\n return (\n (this.getLineHeightFactor() * value.length * fontSize) / scaleFactor +\n padding +\n padding\n );\n }, this)\n .reduce(function(pv, cv) {\n return Math.max(pv, cv);\n }, 0);\n };\n\n /**\n * Store the config for outputting a table header\n *\n * @name setTableHeaderRow\n * @function\n * @param {Object[]} config\n * An array of cell configs that would define a header row: Each config matches the config used by jsPDFAPI.cell\n * except the lineNumber parameter is excluded\n */\n jsPDFAPI.setTableHeaderRow = function(config) {\n _initialize.call(this);\n this.internal.__cell__.tableHeaderRow = config;\n };\n\n /**\n * Output the store header row\n *\n * @name printHeaderRow\n * @function\n * @param {number} lineNumber The line number to output the header at\n * @param {boolean} new_page\n */\n jsPDFAPI.printHeaderRow = function(lineNumber, new_page) {\n _initialize.call(this);\n if (!this.internal.__cell__.tableHeaderRow) {\n throw new Error(\"Property tableHeaderRow does not exist.\");\n }\n\n var tableHeaderCell;\n\n printingHeaderRow = true;\n if (typeof this.internal.__cell__.headerFunction === \"function\") {\n var position = this.internal.__cell__.headerFunction(\n this,\n this.internal.__cell__.pages\n );\n this.internal.__cell__.lastCell = new Cell(\n position[0],\n position[1],\n position[2],\n position[3],\n undefined,\n -1\n );\n }\n this.setFont(undefined, \"bold\");\n\n var tempHeaderConf = [];\n for (var i = 0; i < this.internal.__cell__.tableHeaderRow.length; i += 1) {\n tableHeaderCell = this.internal.__cell__.tableHeaderRow[i].clone();\n if (new_page) {\n tableHeaderCell.y = this.internal.__cell__.margins.top || 0;\n tempHeaderConf.push(tableHeaderCell);\n }\n tableHeaderCell.lineNumber = lineNumber;\n var currentTextColor = this.getTextColor();\n this.setTextColor(this.internal.__cell__.headerTextColor);\n this.setFillColor(this.internal.__cell__.headerBackgroundColor);\n cell.call(this, tableHeaderCell);\n this.setTextColor(currentTextColor);\n }\n if (tempHeaderConf.length > 0) {\n this.setTableHeaderRow(tempHeaderConf);\n }\n this.setFont(undefined, \"normal\");\n printingHeaderRow = false;\n };\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF JavaScript plugin\n *\n * @name javascript\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n var jsNamesObj, jsJsObj, text;\n /**\n * @name addJS\n * @function\n * @param {string} javascript The javascript to be embedded into the PDF-file.\n * @returns {jsPDF}\n */\n jsPDFAPI.addJS = function(javascript) {\n text = javascript;\n this.internal.events.subscribe(\"postPutResources\", function() {\n jsNamesObj = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/Names [(EmbeddedJS) \" + (jsNamesObj + 1) + \" 0 R]\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n\n jsJsObj = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/S /JavaScript\");\n this.internal.out(\"/JS (\" + text + \")\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n });\n this.internal.events.subscribe(\"putCatalog\", function() {\n if (jsNamesObj !== undefined && jsJsObj !== undefined) {\n this.internal.out(\"/Names <>\");\n }\n });\n return this;\n };\n})(jsPDF.API);\n","/* eslint-disable no-fallthrough */\r\n/* eslint-disable no-console */\r\n/**\r\n * @license\r\n * jsPDF Context2D PlugIn Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\r\n *\r\n * Licensed under the MIT License. http://opensource.org/licenses/mit-license\r\n */\r\n\r\nimport { jsPDF } from \"../jspdf.js\";\r\nimport { RGBColor } from \"../libs/rgbcolor.js\";\r\nimport { console } from \"../libs/console.js\";\r\nimport {\r\n buildFontFaceMap,\r\n parseFontFamily,\r\n resolveFontFace\r\n} from \"../libs/fontFace.js\";\r\n\r\n/**\r\n * This plugin mimics the HTML5 CanvasRenderingContext2D.\r\n *\r\n * The goal is to provide a way for current canvas implementations to print directly to a PDF.\r\n *\r\n * @name context2d\r\n * @module\r\n */\r\n(function(jsPDFAPI) {\r\n \"use strict\";\r\n var ContextLayer = function(ctx) {\r\n ctx = ctx || {};\r\n this.isStrokeTransparent = ctx.isStrokeTransparent || false;\r\n this.strokeOpacity = ctx.strokeOpacity || 1;\r\n this.strokeStyle = ctx.strokeStyle || \"#000000\";\r\n this.fillStyle = ctx.fillStyle || \"#000000\";\r\n this.isFillTransparent = ctx.isFillTransparent || false;\r\n this.fillOpacity = ctx.fillOpacity || 1;\r\n this.font = ctx.font || \"10px sans-serif\";\r\n this.textBaseline = ctx.textBaseline || \"alphabetic\";\r\n this.textAlign = ctx.textAlign || \"left\";\r\n this.lineWidth = ctx.lineWidth || 1;\r\n this.lineJoin = ctx.lineJoin || \"miter\";\r\n this.lineCap = ctx.lineCap || \"butt\";\r\n this.path = ctx.path || [];\r\n this.transform =\r\n typeof ctx.transform !== \"undefined\"\r\n ? ctx.transform.clone()\r\n : new Matrix();\r\n this.globalCompositeOperation = ctx.globalCompositeOperation || \"normal\";\r\n this.globalAlpha = ctx.globalAlpha || 1.0;\r\n this.clip_path = ctx.clip_path || [];\r\n this.currentPoint = ctx.currentPoint || new Point();\r\n this.miterLimit = ctx.miterLimit || 10.0;\r\n this.lastPoint = ctx.lastPoint || new Point();\r\n this.lineDashOffset = ctx.lineDashOffset || 0.0;\r\n this.lineDash = ctx.lineDash || [];\r\n this.margin = ctx.margin || [0, 0, 0, 0];\r\n this.prevPageLastElemOffset = ctx.prevPageLastElemOffset || 0;\r\n\r\n this.ignoreClearRect =\r\n typeof ctx.ignoreClearRect === \"boolean\" ? ctx.ignoreClearRect : true;\r\n return this;\r\n };\r\n\r\n //stub\r\n var f2,\r\n getHorizontalCoordinateString,\r\n getVerticalCoordinateString,\r\n getHorizontalCoordinate,\r\n getVerticalCoordinate,\r\n Point,\r\n Rectangle,\r\n Matrix,\r\n _ctx;\r\n jsPDFAPI.events.push([\r\n \"initialized\",\r\n function() {\r\n this.context2d = new Context2D(this);\r\n\r\n f2 = this.internal.f2;\r\n getHorizontalCoordinateString = this.internal.getCoordinateString;\r\n getVerticalCoordinateString = this.internal.getVerticalCoordinateString;\r\n getHorizontalCoordinate = this.internal.getHorizontalCoordinate;\r\n getVerticalCoordinate = this.internal.getVerticalCoordinate;\r\n Point = this.internal.Point;\r\n Rectangle = this.internal.Rectangle;\r\n Matrix = this.internal.Matrix;\r\n _ctx = new ContextLayer();\r\n }\r\n ]);\r\n\r\n var Context2D = function(pdf) {\r\n Object.defineProperty(this, \"canvas\", {\r\n get: function() {\r\n return { parentNode: false, style: false };\r\n }\r\n });\r\n\r\n var _pdf = pdf;\r\n Object.defineProperty(this, \"pdf\", {\r\n get: function() {\r\n return _pdf;\r\n }\r\n });\r\n\r\n var _pageWrapXEnabled = false;\r\n /**\r\n * @name pageWrapXEnabled\r\n * @type {boolean}\r\n * @default false\r\n */\r\n Object.defineProperty(this, \"pageWrapXEnabled\", {\r\n get: function() {\r\n return _pageWrapXEnabled;\r\n },\r\n set: function(value) {\r\n _pageWrapXEnabled = Boolean(value);\r\n }\r\n });\r\n\r\n var _pageWrapYEnabled = false;\r\n /**\r\n * @name pageWrapYEnabled\r\n * @type {boolean}\r\n * @default true\r\n */\r\n Object.defineProperty(this, \"pageWrapYEnabled\", {\r\n get: function() {\r\n return _pageWrapYEnabled;\r\n },\r\n set: function(value) {\r\n _pageWrapYEnabled = Boolean(value);\r\n }\r\n });\r\n\r\n var _posX = 0;\r\n /**\r\n * @name posX\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"posX\", {\r\n get: function() {\r\n return _posX;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _posX = value;\r\n }\r\n }\r\n });\r\n\r\n var _posY = 0;\r\n /**\r\n * @name posY\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"posY\", {\r\n get: function() {\r\n return _posY;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _posY = value;\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Gets or sets the page margin when using auto paging. Has no effect when {@link autoPaging} is off.\r\n * @name margin\r\n * @type {number|number[]}\r\n * @default [0, 0, 0, 0]\r\n */\r\n Object.defineProperty(this, \"margin\", {\r\n get: function() {\r\n return _ctx.margin;\r\n },\r\n set: function(value) {\r\n var margin;\r\n if (typeof value === \"number\") {\r\n margin = [value, value, value, value];\r\n } else {\r\n margin = new Array(4);\r\n margin[0] = value[0];\r\n margin[1] = value.length >= 2 ? value[1] : margin[0];\r\n margin[2] = value.length >= 3 ? value[2] : margin[0];\r\n margin[3] = value.length >= 4 ? value[3] : margin[1];\r\n }\r\n _ctx.margin = margin;\r\n }\r\n });\r\n\r\n var _autoPaging = false;\r\n /**\r\n * Gets or sets the auto paging mode. When auto paging is enabled, the context2d will automatically draw on the\r\n * next page if a shape or text chunk doesn't fit entirely on the current page. The context2d will create new\r\n * pages if required.\r\n *\r\n * Context2d supports different modes:\r\n *
      \r\n *
    • \r\n * false: Auto paging is disabled.\r\n *
    • \r\n *
    • \r\n * true or 'slice': Will cut shapes or text chunks across page breaks. Will possibly\r\n * slice text in half, making it difficult to read.\r\n *
    • \r\n *
    • \r\n * 'text': Trys not to cut text in half across page breaks. Works best for documents consisting\r\n * mostly of a single column of text.\r\n *
    • \r\n *
    \r\n * @name Context2D#autoPaging\r\n * @type {boolean|\"slice\"|\"text\"}\r\n * @default false\r\n */\r\n Object.defineProperty(this, \"autoPaging\", {\r\n get: function() {\r\n return _autoPaging;\r\n },\r\n set: function(value) {\r\n _autoPaging = value;\r\n }\r\n });\r\n\r\n var lastBreak = 0;\r\n /**\r\n * @name lastBreak\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"lastBreak\", {\r\n get: function() {\r\n return lastBreak;\r\n },\r\n set: function(value) {\r\n lastBreak = value;\r\n }\r\n });\r\n\r\n var pageBreaks = [];\r\n /**\r\n * Y Position of page breaks.\r\n * @name pageBreaks\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"pageBreaks\", {\r\n get: function() {\r\n return pageBreaks;\r\n },\r\n set: function(value) {\r\n pageBreaks = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name ctx\r\n * @type {object}\r\n * @default {}\r\n */\r\n Object.defineProperty(this, \"ctx\", {\r\n get: function() {\r\n return _ctx;\r\n },\r\n set: function(value) {\r\n if (value instanceof ContextLayer) {\r\n _ctx = value;\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * @name path\r\n * @type {array}\r\n * @default []\r\n */\r\n Object.defineProperty(this, \"path\", {\r\n get: function() {\r\n return _ctx.path;\r\n },\r\n set: function(value) {\r\n _ctx.path = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name ctxStack\r\n * @type {array}\r\n * @default []\r\n */\r\n var _ctxStack = [];\r\n Object.defineProperty(this, \"ctxStack\", {\r\n get: function() {\r\n return _ctxStack;\r\n },\r\n set: function(value) {\r\n _ctxStack = value;\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the color, gradient, or pattern used to fill the drawing\r\n *\r\n * @name fillStyle\r\n * @default #000000\r\n * @property {(color|gradient|pattern)} value The color of the drawing. Default value is #000000
    \r\n * A gradient object (linear or radial) used to fill the drawing (not supported by context2d)
    \r\n * A pattern object to use to fill the drawing (not supported by context2d)\r\n */\r\n Object.defineProperty(this, \"fillStyle\", {\r\n get: function() {\r\n return this.ctx.fillStyle;\r\n },\r\n set: function(value) {\r\n var rgba;\r\n rgba = getRGBA(value);\r\n\r\n this.ctx.fillStyle = rgba.style;\r\n this.ctx.isFillTransparent = rgba.a === 0;\r\n this.ctx.fillOpacity = rgba.a;\r\n\r\n this.pdf.setFillColor(rgba.r, rgba.g, rgba.b, { a: rgba.a });\r\n this.pdf.setTextColor(rgba.r, rgba.g, rgba.b, { a: rgba.a });\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the color, gradient, or pattern used for strokes\r\n *\r\n * @name strokeStyle\r\n * @default #000000\r\n * @property {color} color A CSS color value that indicates the stroke color of the drawing. Default value is #000000 (not supported by context2d)\r\n * @property {gradient} gradient A gradient object (linear or radial) used to create a gradient stroke (not supported by context2d)\r\n * @property {pattern} pattern A pattern object used to create a pattern stroke (not supported by context2d)\r\n */\r\n Object.defineProperty(this, \"strokeStyle\", {\r\n get: function() {\r\n return this.ctx.strokeStyle;\r\n },\r\n set: function(value) {\r\n var rgba = getRGBA(value);\r\n\r\n this.ctx.strokeStyle = rgba.style;\r\n this.ctx.isStrokeTransparent = rgba.a === 0;\r\n this.ctx.strokeOpacity = rgba.a;\r\n\r\n if (rgba.a === 0) {\r\n this.pdf.setDrawColor(255, 255, 255);\r\n } else if (rgba.a === 1) {\r\n this.pdf.setDrawColor(rgba.r, rgba.g, rgba.b);\r\n } else {\r\n this.pdf.setDrawColor(rgba.r, rgba.g, rgba.b);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the style of the end caps for a line\r\n *\r\n * @name lineCap\r\n * @default butt\r\n * @property {(butt|round|square)} lineCap butt A flat edge is added to each end of the line
    \r\n * round A rounded end cap is added to each end of the line
    \r\n * square A square end cap is added to each end of the line
    \r\n */\r\n Object.defineProperty(this, \"lineCap\", {\r\n get: function() {\r\n return this.ctx.lineCap;\r\n },\r\n set: function(value) {\r\n if ([\"butt\", \"round\", \"square\"].indexOf(value) !== -1) {\r\n this.ctx.lineCap = value;\r\n this.pdf.setLineCap(value);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the current line width\r\n *\r\n * @name lineWidth\r\n * @default 1\r\n * @property {number} lineWidth The current line width, in pixels\r\n */\r\n Object.defineProperty(this, \"lineWidth\", {\r\n get: function() {\r\n return this.ctx.lineWidth;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n this.ctx.lineWidth = value;\r\n this.pdf.setLineWidth(value);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the type of corner created, when two lines meet\r\n */\r\n Object.defineProperty(this, \"lineJoin\", {\r\n get: function() {\r\n return this.ctx.lineJoin;\r\n },\r\n set: function(value) {\r\n if ([\"bevel\", \"round\", \"miter\"].indexOf(value) !== -1) {\r\n this.ctx.lineJoin = value;\r\n this.pdf.setLineJoin(value);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * A number specifying the miter limit ratio in coordinate space units. Zero, negative, Infinity, and NaN values are ignored. The default value is 10.0.\r\n *\r\n * @name miterLimit\r\n * @default 10\r\n */\r\n Object.defineProperty(this, \"miterLimit\", {\r\n get: function() {\r\n return this.ctx.miterLimit;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n this.ctx.miterLimit = value;\r\n this.pdf.setMiterLimit(value);\r\n }\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"textBaseline\", {\r\n get: function() {\r\n return this.ctx.textBaseline;\r\n },\r\n set: function(value) {\r\n this.ctx.textBaseline = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"textAlign\", {\r\n get: function() {\r\n return this.ctx.textAlign;\r\n },\r\n set: function(value) {\r\n if ([\"right\", \"end\", \"center\", \"left\", \"start\"].indexOf(value) !== -1) {\r\n this.ctx.textAlign = value;\r\n }\r\n }\r\n });\r\n\r\n var _fontFaceMap = null;\r\n\r\n function getFontFaceMap(pdf, fontFaces) {\r\n if (_fontFaceMap === null) {\r\n var fontMap = pdf.getFontList();\r\n\r\n var convertedFontFaces = convertToFontFaces(fontMap);\r\n\r\n _fontFaceMap = buildFontFaceMap(convertedFontFaces.concat(fontFaces));\r\n }\r\n\r\n return _fontFaceMap;\r\n }\r\n\r\n function convertToFontFaces(fontMap) {\r\n var fontFaces = [];\r\n\r\n Object.keys(fontMap).forEach(function(family) {\r\n var styles = fontMap[family];\r\n\r\n styles.forEach(function(style) {\r\n var fontFace = null;\r\n\r\n switch (style) {\r\n case \"bold\":\r\n fontFace = {\r\n family: family,\r\n weight: \"bold\"\r\n };\r\n break;\r\n\r\n case \"italic\":\r\n fontFace = {\r\n family: family,\r\n style: \"italic\"\r\n };\r\n break;\r\n\r\n case \"bolditalic\":\r\n fontFace = {\r\n family: family,\r\n weight: \"bold\",\r\n style: \"italic\"\r\n };\r\n break;\r\n\r\n case \"\":\r\n case \"normal\":\r\n fontFace = {\r\n family: family\r\n };\r\n break;\r\n }\r\n\r\n // If font-face is still null here, it is a font with some styling we don't recognize and\r\n // cannot map or it is a font added via the fontFaces option of .html().\r\n if (fontFace !== null) {\r\n fontFace.ref = {\r\n name: family,\r\n style: style\r\n };\r\n\r\n fontFaces.push(fontFace);\r\n }\r\n });\r\n });\r\n\r\n return fontFaces;\r\n }\r\n\r\n var _fontFaces = null;\r\n /**\r\n * A map of available font-faces, as passed in the options of\r\n * .html(). If set a limited implementation of the font style matching\r\n * algorithm defined by https://www.w3.org/TR/css-fonts-3/#font-matching-algorithm\r\n * will be used. If not set it will fallback to previous behavior.\r\n */\r\n\r\n Object.defineProperty(this, \"fontFaces\", {\r\n get: function() {\r\n return _fontFaces;\r\n },\r\n set: function(value) {\r\n _fontFaceMap = null;\r\n _fontFaces = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"font\", {\r\n get: function() {\r\n return this.ctx.font;\r\n },\r\n set: function(value) {\r\n this.ctx.font = value;\r\n var rx, matches;\r\n\r\n //source: https://stackoverflow.com/a/10136041\r\n // eslint-disable-next-line no-useless-escape\r\n rx = /^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))(?:\\s*\\/\\s*(normal|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])))?\\s*([-_,\\\"\\'\\sa-z]+?)\\s*$/i;\r\n matches = rx.exec(value);\r\n if (matches !== null) {\r\n var fontStyle = matches[1];\r\n var fontVariant = matches[2];\r\n var fontWeight = matches[3];\r\n var fontSize = matches[4];\r\n var lineHeight = matches[5];\r\n var fontFamily = matches[6];\r\n } else {\r\n return;\r\n }\r\n var rxFontSize = /^([.\\d]+)((?:%|in|[cem]m|ex|p[ctx]))$/i;\r\n var fontSizeUnit = rxFontSize.exec(fontSize)[2];\r\n\r\n if (\"px\" === fontSizeUnit) {\r\n fontSize = Math.floor(\r\n parseFloat(fontSize) * this.pdf.internal.scaleFactor\r\n );\r\n } else if (\"em\" === fontSizeUnit) {\r\n fontSize = Math.floor(parseFloat(fontSize) * this.pdf.getFontSize());\r\n } else {\r\n fontSize = Math.floor(\r\n parseFloat(fontSize) * this.pdf.internal.scaleFactor\r\n );\r\n }\r\n\r\n this.pdf.setFontSize(fontSize);\r\n var parts = parseFontFamily(fontFamily);\r\n\r\n if (this.fontFaces) {\r\n var fontFaceMap = getFontFaceMap(this.pdf, this.fontFaces);\r\n\r\n var rules = parts.map(function(ff) {\r\n return {\r\n family: ff,\r\n stretch: \"normal\", // TODO: Extract font-stretch from font rule (perhaps write proper parser for it?)\r\n weight: fontWeight,\r\n style: fontStyle\r\n };\r\n });\r\n\r\n var font = resolveFontFace(fontFaceMap, rules);\r\n this.pdf.setFont(font.ref.name, font.ref.style);\r\n return;\r\n }\r\n\r\n var style = \"\";\r\n if (\r\n fontWeight === \"bold\" ||\r\n parseInt(fontWeight, 10) >= 700 ||\r\n fontStyle === \"bold\"\r\n ) {\r\n style = \"bold\";\r\n }\r\n\r\n if (fontStyle === \"italic\") {\r\n style += \"italic\";\r\n }\r\n\r\n if (style.length === 0) {\r\n style = \"normal\";\r\n }\r\n var jsPdfFontName = \"\";\r\n\r\n var fallbackFonts = {\r\n arial: \"Helvetica\",\r\n Arial: \"Helvetica\",\r\n verdana: \"Helvetica\",\r\n Verdana: \"Helvetica\",\r\n helvetica: \"Helvetica\",\r\n Helvetica: \"Helvetica\",\r\n \"sans-serif\": \"Helvetica\",\r\n fixed: \"Courier\",\r\n monospace: \"Courier\",\r\n terminal: \"Courier\",\r\n cursive: \"Times\",\r\n fantasy: \"Times\",\r\n serif: \"Times\"\r\n };\r\n\r\n for (var i = 0; i < parts.length; i++) {\r\n if (\r\n this.pdf.internal.getFont(parts[i], style, {\r\n noFallback: true,\r\n disableWarning: true\r\n }) !== undefined\r\n ) {\r\n jsPdfFontName = parts[i];\r\n break;\r\n } else if (\r\n style === \"bolditalic\" &&\r\n this.pdf.internal.getFont(parts[i], \"bold\", {\r\n noFallback: true,\r\n disableWarning: true\r\n }) !== undefined\r\n ) {\r\n jsPdfFontName = parts[i];\r\n style = \"bold\";\r\n } else if (\r\n this.pdf.internal.getFont(parts[i], \"normal\", {\r\n noFallback: true,\r\n disableWarning: true\r\n }) !== undefined\r\n ) {\r\n jsPdfFontName = parts[i];\r\n style = \"normal\";\r\n break;\r\n }\r\n }\r\n if (jsPdfFontName === \"\") {\r\n for (var j = 0; j < parts.length; j++) {\r\n if (fallbackFonts[parts[j]]) {\r\n jsPdfFontName = fallbackFonts[parts[j]];\r\n break;\r\n }\r\n }\r\n }\r\n jsPdfFontName = jsPdfFontName === \"\" ? \"Times\" : jsPdfFontName;\r\n this.pdf.setFont(jsPdfFontName, style);\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"globalCompositeOperation\", {\r\n get: function() {\r\n return this.ctx.globalCompositeOperation;\r\n },\r\n set: function(value) {\r\n this.ctx.globalCompositeOperation = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"globalAlpha\", {\r\n get: function() {\r\n return this.ctx.globalAlpha;\r\n },\r\n set: function(value) {\r\n this.ctx.globalAlpha = value;\r\n }\r\n });\r\n\r\n /**\r\n * A float specifying the amount of the line dash offset. The default value is 0.0.\r\n *\r\n * @name lineDashOffset\r\n * @default 0.0\r\n */\r\n Object.defineProperty(this, \"lineDashOffset\", {\r\n get: function() {\r\n return this.ctx.lineDashOffset;\r\n },\r\n set: function(value) {\r\n this.ctx.lineDashOffset = value;\r\n setLineDash.call(this);\r\n }\r\n });\r\n\r\n // Not HTML API\r\n Object.defineProperty(this, \"lineDash\", {\r\n get: function() {\r\n return this.ctx.lineDash;\r\n },\r\n set: function(value) {\r\n this.ctx.lineDash = value;\r\n setLineDash.call(this);\r\n }\r\n });\r\n\r\n // Not HTML API\r\n Object.defineProperty(this, \"ignoreClearRect\", {\r\n get: function() {\r\n return this.ctx.ignoreClearRect;\r\n },\r\n set: function(value) {\r\n this.ctx.ignoreClearRect = Boolean(value);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Sets the line dash pattern used when stroking lines.\r\n * @name setLineDash\r\n * @function\r\n * @description It uses an array of values that specify alternating lengths of lines and gaps which describe the pattern.\r\n */\r\n Context2D.prototype.setLineDash = function(dashArray) {\r\n this.lineDash = dashArray;\r\n };\r\n\r\n /**\r\n * gets the current line dash pattern.\r\n * @name getLineDash\r\n * @function\r\n * @returns {Array} An Array of numbers that specify distances to alternately draw a line and a gap (in coordinate space units). If the number, when setting the elements, is odd, the elements of the array get copied and concatenated. For example, setting the line dash to [5, 15, 25] will result in getting back [5, 15, 25, 5, 15, 25].\r\n */\r\n Context2D.prototype.getLineDash = function() {\r\n if (this.lineDash.length % 2) {\r\n // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/getLineDash#return_value\r\n return this.lineDash.concat(this.lineDash);\r\n } else {\r\n // The copied value is returned to prevent contamination from outside.\r\n return this.lineDash.slice();\r\n }\r\n };\r\n\r\n Context2D.prototype.fill = function() {\r\n pathPreProcess.call(this, \"fill\", false);\r\n };\r\n\r\n /**\r\n * Actually draws the path you have defined\r\n *\r\n * @name stroke\r\n * @function\r\n * @description The stroke() method actually draws the path you have defined with all those moveTo() and lineTo() methods. The default color is black.\r\n */\r\n Context2D.prototype.stroke = function() {\r\n pathPreProcess.call(this, \"stroke\", false);\r\n };\r\n\r\n /**\r\n * Begins a path, or resets the current\r\n *\r\n * @name beginPath\r\n * @function\r\n * @description The beginPath() method begins a path, or resets the current path.\r\n */\r\n Context2D.prototype.beginPath = function() {\r\n this.path = [\r\n {\r\n type: \"begin\"\r\n }\r\n ];\r\n };\r\n\r\n /**\r\n * Moves the path to the specified point in the canvas, without creating a line\r\n *\r\n * @name moveTo\r\n * @function\r\n * @param x {Number} The x-coordinate of where to move the path to\r\n * @param y {Number} The y-coordinate of where to move the path to\r\n */\r\n Context2D.prototype.moveTo = function(x, y) {\r\n if (isNaN(x) || isNaN(y)) {\r\n console.error(\"jsPDF.context2d.moveTo: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.moveTo\");\r\n }\r\n\r\n var pt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n\r\n this.path.push({\r\n type: \"mt\",\r\n x: pt.x,\r\n y: pt.y\r\n });\r\n this.ctx.lastPoint = new Point(x, y);\r\n };\r\n\r\n /**\r\n * Creates a path from the current point back to the starting point\r\n *\r\n * @name closePath\r\n * @function\r\n * @description The closePath() method creates a path from the current point back to the starting point.\r\n */\r\n Context2D.prototype.closePath = function() {\r\n var pathBegin = new Point(0, 0);\r\n var i = 0;\r\n for (i = this.path.length - 1; i !== -1; i--) {\r\n if (this.path[i].type === \"begin\") {\r\n if (\r\n typeof this.path[i + 1] === \"object\" &&\r\n typeof this.path[i + 1].x === \"number\"\r\n ) {\r\n pathBegin = new Point(this.path[i + 1].x, this.path[i + 1].y);\r\n break;\r\n }\r\n }\r\n }\r\n this.path.push({\r\n type: \"close\"\r\n });\r\n this.ctx.lastPoint = new Point(pathBegin.x, pathBegin.y);\r\n };\r\n\r\n /**\r\n * Adds a new point and creates a line to that point from the last specified point in the canvas\r\n *\r\n * @name lineTo\r\n * @function\r\n * @param x The x-coordinate of where to create the line to\r\n * @param y The y-coordinate of where to create the line to\r\n * @description The lineTo() method adds a new point and creates a line TO that point FROM the last specified point in the canvas (this method does not draw the line).\r\n */\r\n Context2D.prototype.lineTo = function(x, y) {\r\n if (isNaN(x) || isNaN(y)) {\r\n console.error(\"jsPDF.context2d.lineTo: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.lineTo\");\r\n }\r\n\r\n var pt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n\r\n this.path.push({\r\n type: \"lt\",\r\n x: pt.x,\r\n y: pt.y\r\n });\r\n this.ctx.lastPoint = new Point(pt.x, pt.y);\r\n };\r\n\r\n /**\r\n * Clips a region of any shape and size from the original canvas\r\n *\r\n * @name clip\r\n * @function\r\n * @description The clip() method clips a region of any shape and size from the original canvas.\r\n */\r\n Context2D.prototype.clip = function() {\r\n this.ctx.clip_path = JSON.parse(JSON.stringify(this.path));\r\n pathPreProcess.call(this, null, true);\r\n };\r\n\r\n /**\r\n * Creates a cubic Bézier curve\r\n *\r\n * @name quadraticCurveTo\r\n * @function\r\n * @param cpx {Number} The x-coordinate of the Bézier control point\r\n * @param cpy {Number} The y-coordinate of the Bézier control point\r\n * @param x {Number} The x-coordinate of the ending point\r\n * @param y {Number} The y-coordinate of the ending point\r\n * @description The quadraticCurveTo() method adds a point to the current path by using the specified control points that represent a quadratic Bézier curve.

    A quadratic Bézier curve requires two points. The first point is a control point that is used in the quadratic Bézier calculation and the second point is the ending point for the curve. The starting point for the curve is the last point in the current path. If a path does not exist, use the beginPath() and moveTo() methods to define a starting point.\r\n */\r\n Context2D.prototype.quadraticCurveTo = function(cpx, cpy, x, y) {\r\n if (isNaN(x) || isNaN(y) || isNaN(cpx) || isNaN(cpy)) {\r\n console.error(\r\n \"jsPDF.context2d.quadraticCurveTo: Invalid arguments\",\r\n arguments\r\n );\r\n throw new Error(\r\n \"Invalid arguments passed to jsPDF.context2d.quadraticCurveTo\"\r\n );\r\n }\r\n\r\n var pt0 = this.ctx.transform.applyToPoint(new Point(x, y));\r\n var pt1 = this.ctx.transform.applyToPoint(new Point(cpx, cpy));\r\n\r\n this.path.push({\r\n type: \"qct\",\r\n x1: pt1.x,\r\n y1: pt1.y,\r\n x: pt0.x,\r\n y: pt0.y\r\n });\r\n this.ctx.lastPoint = new Point(pt0.x, pt0.y);\r\n };\r\n\r\n /**\r\n * Creates a cubic Bézier curve\r\n *\r\n * @name bezierCurveTo\r\n * @function\r\n * @param cp1x {Number} The x-coordinate of the first Bézier control point\r\n * @param cp1y {Number} The y-coordinate of the first Bézier control point\r\n * @param cp2x {Number} The x-coordinate of the second Bézier control point\r\n * @param cp2y {Number} The y-coordinate of the second Bézier control point\r\n * @param x {Number} The x-coordinate of the ending point\r\n * @param y {Number} The y-coordinate of the ending point\r\n * @description The bezierCurveTo() method adds a point to the current path by using the specified control points that represent a cubic Bézier curve.

    A cubic bezier curve requires three points. The first two points are control points that are used in the cubic Bézier calculation and the last point is the ending point for the curve. The starting point for the curve is the last point in the current path. If a path does not exist, use the beginPath() and moveTo() methods to define a starting point.\r\n */\r\n Context2D.prototype.bezierCurveTo = function(cp1x, cp1y, cp2x, cp2y, x, y) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(cp1x) ||\r\n isNaN(cp1y) ||\r\n isNaN(cp2x) ||\r\n isNaN(cp2y)\r\n ) {\r\n console.error(\r\n \"jsPDF.context2d.bezierCurveTo: Invalid arguments\",\r\n arguments\r\n );\r\n throw new Error(\r\n \"Invalid arguments passed to jsPDF.context2d.bezierCurveTo\"\r\n );\r\n }\r\n var pt0 = this.ctx.transform.applyToPoint(new Point(x, y));\r\n var pt1 = this.ctx.transform.applyToPoint(new Point(cp1x, cp1y));\r\n var pt2 = this.ctx.transform.applyToPoint(new Point(cp2x, cp2y));\r\n\r\n this.path.push({\r\n type: \"bct\",\r\n x1: pt1.x,\r\n y1: pt1.y,\r\n x2: pt2.x,\r\n y2: pt2.y,\r\n x: pt0.x,\r\n y: pt0.y\r\n });\r\n this.ctx.lastPoint = new Point(pt0.x, pt0.y);\r\n };\r\n\r\n /**\r\n * Creates an arc/curve (used to create circles, or parts of circles)\r\n *\r\n * @name arc\r\n * @function\r\n * @param x {Number} The x-coordinate of the center of the circle\r\n * @param y {Number} The y-coordinate of the center of the circle\r\n * @param radius {Number} The radius of the circle\r\n * @param startAngle {Number} The starting angle, in radians (0 is at the 3 o'clock position of the arc's circle)\r\n * @param endAngle {Number} The ending angle, in radians\r\n * @param counterclockwise {Boolean} Optional. Specifies whether the drawing should be counterclockwise or clockwise. False is default, and indicates clockwise, while true indicates counter-clockwise.\r\n * @description The arc() method creates an arc/curve (used to create circles, or parts of circles).\r\n */\r\n Context2D.prototype.arc = function(\r\n x,\r\n y,\r\n radius,\r\n startAngle,\r\n endAngle,\r\n counterclockwise\r\n ) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(radius) ||\r\n isNaN(startAngle) ||\r\n isNaN(endAngle)\r\n ) {\r\n console.error(\"jsPDF.context2d.arc: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.arc\");\r\n }\r\n counterclockwise = Boolean(counterclockwise);\r\n\r\n if (!this.ctx.transform.isIdentity) {\r\n var xpt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n x = xpt.x;\r\n y = xpt.y;\r\n\r\n var x_radPt = this.ctx.transform.applyToPoint(new Point(0, radius));\r\n var x_radPt0 = this.ctx.transform.applyToPoint(new Point(0, 0));\r\n radius = Math.sqrt(\r\n Math.pow(x_radPt.x - x_radPt0.x, 2) +\r\n Math.pow(x_radPt.y - x_radPt0.y, 2)\r\n );\r\n }\r\n if (Math.abs(endAngle - startAngle) >= 2 * Math.PI) {\r\n startAngle = 0;\r\n endAngle = 2 * Math.PI;\r\n }\r\n\r\n this.path.push({\r\n type: \"arc\",\r\n x: x,\r\n y: y,\r\n radius: radius,\r\n startAngle: startAngle,\r\n endAngle: endAngle,\r\n counterclockwise: counterclockwise\r\n });\r\n // this.ctx.lastPoint(new Point(pt.x,pt.y));\r\n };\r\n\r\n /**\r\n * Creates an arc/curve between two tangents\r\n *\r\n * @name arcTo\r\n * @function\r\n * @param x1 {Number} The x-coordinate of the first tangent\r\n * @param y1 {Number} The y-coordinate of the first tangent\r\n * @param x2 {Number} The x-coordinate of the second tangent\r\n * @param y2 {Number} The y-coordinate of the second tangent\r\n * @param radius The radius of the arc\r\n * @description The arcTo() method creates an arc/curve between two tangents on the canvas.\r\n */\r\n // eslint-disable-next-line no-unused-vars\r\n Context2D.prototype.arcTo = function(x1, y1, x2, y2, radius) {\r\n throw new Error(\"arcTo not implemented.\");\r\n };\r\n\r\n /**\r\n * Creates a rectangle\r\n *\r\n * @name rect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle, in pixels\r\n * @param h {Number} The height of the rectangle, in pixels\r\n * @description The rect() method creates a rectangle.\r\n */\r\n Context2D.prototype.rect = function(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.rect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.rect\");\r\n }\r\n this.moveTo(x, y);\r\n this.lineTo(x + w, y);\r\n this.lineTo(x + w, y + h);\r\n this.lineTo(x, y + h);\r\n this.lineTo(x, y);\r\n this.lineTo(x + w, y);\r\n this.lineTo(x, y);\r\n };\r\n\r\n /**\r\n * Draws a \"filled\" rectangle\r\n *\r\n * @name fillRect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle, in pixels\r\n * @param h {Number} The height of the rectangle, in pixels\r\n * @description The fillRect() method draws a \"filled\" rectangle. The default color of the fill is black.\r\n */\r\n Context2D.prototype.fillRect = function(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.fillRect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.fillRect\");\r\n }\r\n if (isFillTransparent.call(this)) {\r\n return;\r\n }\r\n var tmp = {};\r\n if (this.lineCap !== \"butt\") {\r\n tmp.lineCap = this.lineCap;\r\n this.lineCap = \"butt\";\r\n }\r\n if (this.lineJoin !== \"miter\") {\r\n tmp.lineJoin = this.lineJoin;\r\n this.lineJoin = \"miter\";\r\n }\r\n\r\n this.beginPath();\r\n this.rect(x, y, w, h);\r\n this.fill();\r\n\r\n if (tmp.hasOwnProperty(\"lineCap\")) {\r\n this.lineCap = tmp.lineCap;\r\n }\r\n if (tmp.hasOwnProperty(\"lineJoin\")) {\r\n this.lineJoin = tmp.lineJoin;\r\n }\r\n };\r\n\r\n /**\r\n * Draws a rectangle (no fill)\r\n *\r\n * @name strokeRect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle, in pixels\r\n * @param h {Number} The height of the rectangle, in pixels\r\n * @description The strokeRect() method draws a rectangle (no fill). The default color of the stroke is black.\r\n */\r\n Context2D.prototype.strokeRect = function strokeRect(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.strokeRect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.strokeRect\");\r\n }\r\n if (isStrokeTransparent.call(this)) {\r\n return;\r\n }\r\n this.beginPath();\r\n this.rect(x, y, w, h);\r\n this.stroke();\r\n };\r\n\r\n /**\r\n * Clears the specified pixels within a given rectangle\r\n *\r\n * @name clearRect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle to clear, in pixels\r\n * @param h {Number} The height of the rectangle to clear, in pixels\r\n * @description We cannot clear PDF commands that were already written to PDF, so we use white instead.
    \r\n * As a special case, read a special flag (ignoreClearRect) and do nothing if it is set.\r\n * This results in all calls to clearRect() to do nothing, and keep the canvas transparent.\r\n * This flag is stored in the save/restore context and is managed the same way as other drawing states.\r\n *\r\n */\r\n Context2D.prototype.clearRect = function(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.clearRect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.clearRect\");\r\n }\r\n if (this.ignoreClearRect) {\r\n return;\r\n }\r\n\r\n this.fillStyle = \"#ffffff\";\r\n this.fillRect(x, y, w, h);\r\n };\r\n\r\n /**\r\n * Saves the state of the current context\r\n *\r\n * @name save\r\n * @function\r\n */\r\n Context2D.prototype.save = function(doStackPush) {\r\n doStackPush = typeof doStackPush === \"boolean\" ? doStackPush : true;\r\n var tmpPageNumber = this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n for (var i = 0; i < this.pdf.internal.getNumberOfPages(); i++) {\r\n this.pdf.setPage(i + 1);\r\n this.pdf.internal.out(\"q\");\r\n }\r\n this.pdf.setPage(tmpPageNumber);\r\n\r\n if (doStackPush) {\r\n this.ctx.fontSize = this.pdf.internal.getFontSize();\r\n var ctx = new ContextLayer(this.ctx);\r\n this.ctxStack.push(this.ctx);\r\n this.ctx = ctx;\r\n }\r\n };\r\n\r\n /**\r\n * Returns previously saved path state and attributes\r\n *\r\n * @name restore\r\n * @function\r\n */\r\n Context2D.prototype.restore = function(doStackPop) {\r\n doStackPop = typeof doStackPop === \"boolean\" ? doStackPop : true;\r\n var tmpPageNumber = this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n for (var i = 0; i < this.pdf.internal.getNumberOfPages(); i++) {\r\n this.pdf.setPage(i + 1);\r\n this.pdf.internal.out(\"Q\");\r\n }\r\n this.pdf.setPage(tmpPageNumber);\r\n\r\n if (doStackPop && this.ctxStack.length !== 0) {\r\n this.ctx = this.ctxStack.pop();\r\n this.fillStyle = this.ctx.fillStyle;\r\n this.strokeStyle = this.ctx.strokeStyle;\r\n this.font = this.ctx.font;\r\n this.lineCap = this.ctx.lineCap;\r\n this.lineWidth = this.ctx.lineWidth;\r\n this.lineJoin = this.ctx.lineJoin;\r\n this.lineDash = this.ctx.lineDash;\r\n this.lineDashOffset = this.ctx.lineDashOffset;\r\n }\r\n };\r\n\r\n /**\r\n * @name toDataURL\r\n * @function\r\n */\r\n Context2D.prototype.toDataURL = function() {\r\n throw new Error(\"toDataUrl not implemented.\");\r\n };\r\n\r\n //helper functions\r\n\r\n /**\r\n * Get the decimal values of r, g, b and a\r\n *\r\n * @name getRGBA\r\n * @function\r\n * @private\r\n * @ignore\r\n */\r\n var getRGBA = function(style) {\r\n var rxRgb = /rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)/;\r\n var rxRgba = /rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d.]+)\\s*\\)/;\r\n var rxTransparent = /transparent|rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*0+\\s*\\)/;\r\n\r\n var r, g, b, a;\r\n\r\n if (style.isCanvasGradient === true) {\r\n style = style.getColor();\r\n }\r\n\r\n if (!style) {\r\n return { r: 0, g: 0, b: 0, a: 0, style: style };\r\n }\r\n\r\n if (rxTransparent.test(style)) {\r\n r = 0;\r\n g = 0;\r\n b = 0;\r\n a = 0;\r\n } else {\r\n var matches = rxRgb.exec(style);\r\n if (matches !== null) {\r\n r = parseInt(matches[1]);\r\n g = parseInt(matches[2]);\r\n b = parseInt(matches[3]);\r\n a = 1;\r\n } else {\r\n matches = rxRgba.exec(style);\r\n if (matches !== null) {\r\n r = parseInt(matches[1]);\r\n g = parseInt(matches[2]);\r\n b = parseInt(matches[3]);\r\n a = parseFloat(matches[4]);\r\n } else {\r\n a = 1;\r\n\r\n if (typeof style === \"string\" && style.charAt(0) !== \"#\") {\r\n var rgbColor = new RGBColor(style);\r\n if (rgbColor.ok) {\r\n style = rgbColor.toHex();\r\n } else {\r\n style = \"#000000\";\r\n }\r\n }\r\n\r\n if (style.length === 4) {\r\n r = style.substring(1, 2);\r\n r += r;\r\n g = style.substring(2, 3);\r\n g += g;\r\n b = style.substring(3, 4);\r\n b += b;\r\n } else {\r\n r = style.substring(1, 3);\r\n g = style.substring(3, 5);\r\n b = style.substring(5, 7);\r\n }\r\n r = parseInt(r, 16);\r\n g = parseInt(g, 16);\r\n b = parseInt(b, 16);\r\n }\r\n }\r\n }\r\n return { r: r, g: g, b: b, a: a, style: style };\r\n };\r\n\r\n /**\r\n * @name isFillTransparent\r\n * @function\r\n * @private\r\n * @ignore\r\n * @returns {Boolean}\r\n */\r\n var isFillTransparent = function() {\r\n return this.ctx.isFillTransparent || this.globalAlpha == 0;\r\n };\r\n\r\n /**\r\n * @name isStrokeTransparent\r\n * @function\r\n * @private\r\n * @ignore\r\n * @returns {Boolean}\r\n */\r\n var isStrokeTransparent = function() {\r\n return Boolean(this.ctx.isStrokeTransparent || this.globalAlpha == 0);\r\n };\r\n\r\n /**\r\n * Draws \"filled\" text on the canvas\r\n *\r\n * @name fillText\r\n * @function\r\n * @param text {String} Specifies the text that will be written on the canvas\r\n * @param x {Number} The x coordinate where to start painting the text (relative to the canvas)\r\n * @param y {Number} The y coordinate where to start painting the text (relative to the canvas)\r\n * @param maxWidth {Number} Optional. The maximum allowed width of the text, in pixels\r\n * @description The fillText() method draws filled text on the canvas. The default color of the text is black.\r\n */\r\n Context2D.prototype.fillText = function(text, x, y, maxWidth) {\r\n if (isNaN(x) || isNaN(y) || typeof text !== \"string\") {\r\n console.error(\"jsPDF.context2d.fillText: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.fillText\");\r\n }\r\n maxWidth = isNaN(maxWidth) ? undefined : maxWidth;\r\n if (isFillTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n var degs = rad2deg(this.ctx.transform.rotation);\r\n\r\n // We only use X axis as scale hint\r\n var scale = this.ctx.transform.scaleX;\r\n\r\n putText.call(this, {\r\n text: text,\r\n x: x,\r\n y: y,\r\n scale: scale,\r\n angle: degs,\r\n align: this.textAlign,\r\n maxWidth: maxWidth\r\n });\r\n };\r\n\r\n /**\r\n * Draws text on the canvas (no fill)\r\n *\r\n * @name strokeText\r\n * @function\r\n * @param text {String} Specifies the text that will be written on the canvas\r\n * @param x {Number} The x coordinate where to start painting the text (relative to the canvas)\r\n * @param y {Number} The y coordinate where to start painting the text (relative to the canvas)\r\n * @param maxWidth {Number} Optional. The maximum allowed width of the text, in pixels\r\n * @description The strokeText() method draws text (with no fill) on the canvas. The default color of the text is black.\r\n */\r\n Context2D.prototype.strokeText = function(text, x, y, maxWidth) {\r\n if (isNaN(x) || isNaN(y) || typeof text !== \"string\") {\r\n console.error(\"jsPDF.context2d.strokeText: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.strokeText\");\r\n }\r\n if (isStrokeTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n maxWidth = isNaN(maxWidth) ? undefined : maxWidth;\r\n\r\n var degs = rad2deg(this.ctx.transform.rotation);\r\n var scale = this.ctx.transform.scaleX;\r\n\r\n putText.call(this, {\r\n text: text,\r\n x: x,\r\n y: y,\r\n scale: scale,\r\n renderingMode: \"stroke\",\r\n angle: degs,\r\n align: this.textAlign,\r\n maxWidth: maxWidth\r\n });\r\n };\r\n\r\n /**\r\n * Returns an object that contains the width of the specified text\r\n *\r\n * @name measureText\r\n * @function\r\n * @param text {String} The text to be measured\r\n * @description The measureText() method returns an object that contains the width of the specified text, in pixels.\r\n * @returns {Number}\r\n */\r\n Context2D.prototype.measureText = function(text) {\r\n if (typeof text !== \"string\") {\r\n console.error(\r\n \"jsPDF.context2d.measureText: Invalid arguments\",\r\n arguments\r\n );\r\n throw new Error(\r\n \"Invalid arguments passed to jsPDF.context2d.measureText\"\r\n );\r\n }\r\n var pdf = this.pdf;\r\n var k = this.pdf.internal.scaleFactor;\r\n\r\n var fontSize = pdf.internal.getFontSize();\r\n var txtWidth =\r\n (pdf.getStringUnitWidth(text) * fontSize) / pdf.internal.scaleFactor;\r\n txtWidth *= Math.round(((k * 96) / 72) * 10000) / 10000;\r\n\r\n var TextMetrics = function(options) {\r\n options = options || {};\r\n var _width = options.width || 0;\r\n Object.defineProperty(this, \"width\", {\r\n get: function() {\r\n return _width;\r\n }\r\n });\r\n return this;\r\n };\r\n return new TextMetrics({ width: txtWidth });\r\n };\r\n\r\n //Transformations\r\n\r\n /**\r\n * Scales the current drawing bigger or smaller\r\n *\r\n * @name scale\r\n * @function\r\n * @param scalewidth {Number} Scales the width of the current drawing (1=100%, 0.5=50%, 2=200%, etc.)\r\n * @param scaleheight {Number} Scales the height of the current drawing (1=100%, 0.5=50%, 2=200%, etc.)\r\n * @description The scale() method scales the current drawing, bigger or smaller.\r\n */\r\n Context2D.prototype.scale = function(scalewidth, scaleheight) {\r\n if (isNaN(scalewidth) || isNaN(scaleheight)) {\r\n console.error(\"jsPDF.context2d.scale: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.scale\");\r\n }\r\n var matrix = new Matrix(scalewidth, 0.0, 0.0, scaleheight, 0.0, 0.0);\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Rotates the current drawing\r\n *\r\n * @name rotate\r\n * @function\r\n * @param angle {Number} The rotation angle, in radians.\r\n * @description To calculate from degrees to radians: degrees*Math.PI/180.
    \r\n * Example: to rotate 5 degrees, specify the following: 5*Math.PI/180\r\n */\r\n Context2D.prototype.rotate = function(angle) {\r\n if (isNaN(angle)) {\r\n console.error(\"jsPDF.context2d.rotate: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.rotate\");\r\n }\r\n var matrix = new Matrix(\r\n Math.cos(angle),\r\n Math.sin(angle),\r\n -Math.sin(angle),\r\n Math.cos(angle),\r\n 0.0,\r\n 0.0\r\n );\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Remaps the (0,0) position on the canvas\r\n *\r\n * @name translate\r\n * @function\r\n * @param x {Number} The value to add to horizontal (x) coordinates\r\n * @param y {Number} The value to add to vertical (y) coordinates\r\n * @description The translate() method remaps the (0,0) position on the canvas.\r\n */\r\n Context2D.prototype.translate = function(x, y) {\r\n if (isNaN(x) || isNaN(y)) {\r\n console.error(\"jsPDF.context2d.translate: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.translate\");\r\n }\r\n var matrix = new Matrix(1.0, 0.0, 0.0, 1.0, x, y);\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Replaces the current transformation matrix for the drawing\r\n *\r\n * @name transform\r\n * @function\r\n * @param a {Number} Horizontal scaling\r\n * @param b {Number} Horizontal skewing\r\n * @param c {Number} Vertical skewing\r\n * @param d {Number} Vertical scaling\r\n * @param e {Number} Horizontal moving\r\n * @param f {Number} Vertical moving\r\n * @description Each object on the canvas has a current transformation matrix.

    The transform() method replaces the current transformation matrix. It multiplies the current transformation matrix with the matrix described by:



    a c e

    b d f

    0 0 1

    In other words, the transform() method lets you scale, rotate, move, and skew the current context.\r\n */\r\n Context2D.prototype.transform = function(a, b, c, d, e, f) {\r\n if (isNaN(a) || isNaN(b) || isNaN(c) || isNaN(d) || isNaN(e) || isNaN(f)) {\r\n console.error(\"jsPDF.context2d.transform: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.transform\");\r\n }\r\n var matrix = new Matrix(a, b, c, d, e, f);\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Resets the current transform to the identity matrix. Then runs transform()\r\n *\r\n * @name setTransform\r\n * @function\r\n * @param a {Number} Horizontal scaling\r\n * @param b {Number} Horizontal skewing\r\n * @param c {Number} Vertical skewing\r\n * @param d {Number} Vertical scaling\r\n * @param e {Number} Horizontal moving\r\n * @param f {Number} Vertical moving\r\n * @description Each object on the canvas has a current transformation matrix.

    The setTransform() method resets the current transform to the identity matrix, and then runs transform() with the same arguments.

    In other words, the setTransform() method lets you scale, rotate, move, and skew the current context.\r\n */\r\n Context2D.prototype.setTransform = function(a, b, c, d, e, f) {\r\n a = isNaN(a) ? 1 : a;\r\n b = isNaN(b) ? 0 : b;\r\n c = isNaN(c) ? 0 : c;\r\n d = isNaN(d) ? 1 : d;\r\n e = isNaN(e) ? 0 : e;\r\n f = isNaN(f) ? 0 : f;\r\n this.ctx.transform = new Matrix(a, b, c, d, e, f);\r\n };\r\n\r\n /**\r\n * Should only be used if pageWrapYEnabled is true\r\n *\r\n * @name setPageByYPosition\r\n * @function\r\n * @private\r\n * @ignore\r\n * @returns One-based Page Number\r\n */\r\n var setPageByYPosition = function(y) {\r\n if (this.pageWrapYEnabled) {\r\n this.lastBreak = 0;\r\n var manualBreaks = 0;\r\n var autoBreaks = 0;\r\n for (var i = 0; i < this.pageBreaks.length; i++) {\r\n if (y >= this.pageBreaks[i]) {\r\n manualBreaks++;\r\n if (this.lastBreak === 0) {\r\n autoBreaks++;\r\n }\r\n var spaceBetweenLastBreak = this.pageBreaks[i] - this.lastBreak;\r\n this.lastBreak = this.pageBreaks[i];\r\n var pagesSinceLastBreak = Math.floor(\r\n spaceBetweenLastBreak / this.pageWrapY\r\n );\r\n autoBreaks += pagesSinceLastBreak;\r\n }\r\n }\r\n if (this.lastBreak === 0) {\r\n var pagesSinceLastBreak = Math.floor(y / this.pageWrapY) + 1;\r\n autoBreaks += pagesSinceLastBreak;\r\n }\r\n return autoBreaks + manualBreaks;\r\n } else {\r\n return this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n }\r\n };\r\n\r\n var hasMargins = function() {\r\n return (\r\n this.margin[0] > 0 ||\r\n this.margin[1] > 0 ||\r\n this.margin[2] > 0 ||\r\n this.margin[3] > 0\r\n );\r\n };\r\n\r\n /**\r\n * Draws an image, canvas, or video onto the canvas\r\n *\r\n * @function\r\n * @param img {} Specifies the image, canvas, or video element to use\r\n * @param sx {Number} Optional. The x coordinate where to start clipping\r\n * @param sy {Number} Optional. The y coordinate where to start clipping\r\n * @param swidth {Number} Optional. The width of the clipped image\r\n * @param sheight {Number} Optional. The height of the clipped image\r\n * @param x {Number} The x coordinate where to place the image on the canvas\r\n * @param y {Number} The y coordinate where to place the image on the canvas\r\n * @param width {Number} Optional. The width of the image to use (stretch or reduce the image)\r\n * @param height {Number} Optional. The height of the image to use (stretch or reduce the image)\r\n */\r\n Context2D.prototype.drawImage = function(\r\n img,\r\n sx,\r\n sy,\r\n swidth,\r\n sheight,\r\n x,\r\n y,\r\n width,\r\n height\r\n ) {\r\n var imageProperties = this.pdf.getImageProperties(img);\r\n var factorX = 1;\r\n var factorY = 1;\r\n var isClip;\r\n\r\n var clipFactorX = 1;\r\n var clipFactorY = 1;\r\n\r\n if (typeof swidth !== \"undefined\" && typeof width !== \"undefined\") {\r\n isClip = true;\r\n clipFactorX = width / swidth;\r\n clipFactorY = height / sheight;\r\n factorX = ((imageProperties.width / swidth) * width) / swidth;\r\n factorY = ((imageProperties.height / sheight) * height) / sheight;\r\n }\r\n\r\n //is sx and sy are set and x and y not, set x and y with values of sx and sy\r\n if (typeof x === \"undefined\") {\r\n x = sx;\r\n y = sy;\r\n sx = 0;\r\n sy = 0;\r\n }\r\n\r\n if (typeof swidth !== \"undefined\" && typeof width === \"undefined\") {\r\n width = swidth;\r\n height = sheight;\r\n }\r\n if (typeof swidth === \"undefined\" && typeof width === \"undefined\") {\r\n width = imageProperties.width;\r\n height = imageProperties.height;\r\n }\r\n\r\n var decomposedTransformationMatrix = this.ctx.transform.decompose();\r\n var angle = rad2deg(decomposedTransformationMatrix.rotate.shx);\r\n var matrix = new Matrix();\r\n matrix = matrix.multiply(decomposedTransformationMatrix.translate);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.skew);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.scale);\r\n var xRect = matrix.applyToRectangle(\r\n new Rectangle(\r\n x - sx * clipFactorX,\r\n y - sy * clipFactorY,\r\n swidth * factorX,\r\n sheight * factorY\r\n )\r\n );\r\n var pageArray = getPagesByPath.call(this, xRect);\r\n var pages = [];\r\n for (var ii = 0; ii < pageArray.length; ii += 1) {\r\n if (pages.indexOf(pageArray[ii]) === -1) {\r\n pages.push(pageArray[ii]);\r\n }\r\n }\r\n\r\n sortPages(pages);\r\n\r\n var clipPath;\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var i = min; i < max + 1; i++) {\r\n this.pdf.setPage(i);\r\n\r\n var pageWidthMinusMargins =\r\n this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1];\r\n var topMargin = i === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusMargins =\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var previousPageHeightSum =\r\n i === 1 ? 0 : firstPageHeight + (i - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n drawPaths.call(this, \"fill\", true);\r\n this.path = tmpPaths;\r\n }\r\n var tmpRect = JSON.parse(JSON.stringify(xRect));\r\n tmpRect = pathPositionRedo(\r\n [tmpRect],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n const needsClipping = (i > min || i < max) && hasMargins.call(this);\r\n\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n this.pdf.addImage(\r\n img,\r\n \"JPEG\",\r\n tmpRect.x,\r\n tmpRect.y,\r\n tmpRect.w,\r\n tmpRect.h,\r\n null,\r\n null,\r\n angle\r\n );\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n } else {\r\n this.pdf.addImage(\r\n img,\r\n \"JPEG\",\r\n xRect.x,\r\n xRect.y,\r\n xRect.w,\r\n xRect.h,\r\n null,\r\n null,\r\n angle\r\n );\r\n }\r\n };\r\n\r\n var getPagesByPath = function(path, pageWrapX, pageWrapY) {\r\n var result = [];\r\n pageWrapX = pageWrapX || this.pdf.internal.pageSize.width;\r\n pageWrapY =\r\n pageWrapY ||\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var yOffset = this.posY + this.ctx.prevPageLastElemOffset;\r\n\r\n switch (path.type) {\r\n default:\r\n case \"mt\":\r\n case \"lt\":\r\n result.push(Math.floor((path.y + yOffset) / pageWrapY) + 1);\r\n break;\r\n case \"arc\":\r\n result.push(\r\n Math.floor((path.y + yOffset - path.radius) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor((path.y + yOffset + path.radius) / pageWrapY) + 1\r\n );\r\n break;\r\n case \"qct\":\r\n var rectOfQuadraticCurve = getQuadraticCurveBoundary(\r\n this.ctx.lastPoint.x,\r\n this.ctx.lastPoint.y,\r\n path.x1,\r\n path.y1,\r\n path.x,\r\n path.y\r\n );\r\n result.push(\r\n Math.floor((rectOfQuadraticCurve.y + yOffset) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor(\r\n (rectOfQuadraticCurve.y + rectOfQuadraticCurve.h + yOffset) /\r\n pageWrapY\r\n ) + 1\r\n );\r\n break;\r\n case \"bct\":\r\n var rectOfBezierCurve = getBezierCurveBoundary(\r\n this.ctx.lastPoint.x,\r\n this.ctx.lastPoint.y,\r\n path.x1,\r\n path.y1,\r\n path.x2,\r\n path.y2,\r\n path.x,\r\n path.y\r\n );\r\n result.push(\r\n Math.floor((rectOfBezierCurve.y + yOffset) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor(\r\n (rectOfBezierCurve.y + rectOfBezierCurve.h + yOffset) / pageWrapY\r\n ) + 1\r\n );\r\n break;\r\n case \"rect\":\r\n result.push(Math.floor((path.y + yOffset) / pageWrapY) + 1);\r\n result.push(Math.floor((path.y + path.h + yOffset) / pageWrapY) + 1);\r\n }\r\n\r\n for (var i = 0; i < result.length; i += 1) {\r\n while (this.pdf.internal.getNumberOfPages() < result[i]) {\r\n addPage.call(this);\r\n }\r\n }\r\n return result;\r\n };\r\n\r\n var addPage = function() {\r\n var fillStyle = this.fillStyle;\r\n var strokeStyle = this.strokeStyle;\r\n var font = this.font;\r\n var lineCap = this.lineCap;\r\n var lineWidth = this.lineWidth;\r\n var lineJoin = this.lineJoin;\r\n this.pdf.addPage();\r\n this.fillStyle = fillStyle;\r\n this.strokeStyle = strokeStyle;\r\n this.font = font;\r\n this.lineCap = lineCap;\r\n this.lineWidth = lineWidth;\r\n this.lineJoin = lineJoin;\r\n };\r\n\r\n var pathPositionRedo = function(paths, x, y) {\r\n for (var i = 0; i < paths.length; i++) {\r\n switch (paths[i].type) {\r\n case \"bct\":\r\n paths[i].x2 += x;\r\n paths[i].y2 += y;\r\n case \"qct\":\r\n paths[i].x1 += x;\r\n paths[i].y1 += y;\r\n case \"mt\":\r\n case \"lt\":\r\n case \"arc\":\r\n default:\r\n paths[i].x += x;\r\n paths[i].y += y;\r\n }\r\n }\r\n return paths;\r\n };\r\n\r\n var sortPages = function(pages) {\r\n return pages.sort(function(a, b) {\r\n return a - b;\r\n });\r\n };\r\n\r\n var pathPreProcess = function(rule, isClip) {\r\n var fillStyle = this.fillStyle;\r\n var strokeStyle = this.strokeStyle;\r\n var lineCap = this.lineCap;\r\n var oldLineWidth = this.lineWidth;\r\n var lineWidth = Math.abs(oldLineWidth * this.ctx.transform.scaleX);\r\n var lineJoin = this.lineJoin;\r\n\r\n var origPath = JSON.parse(JSON.stringify(this.path));\r\n var xPath = JSON.parse(JSON.stringify(this.path));\r\n var clipPath;\r\n var tmpPath;\r\n var pages = [];\r\n\r\n for (var i = 0; i < xPath.length; i++) {\r\n if (typeof xPath[i].x !== \"undefined\") {\r\n var page = getPagesByPath.call(this, xPath[i]);\r\n\r\n for (var ii = 0; ii < page.length; ii += 1) {\r\n if (pages.indexOf(page[ii]) === -1) {\r\n pages.push(page[ii]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (var j = 0; j < pages.length; j++) {\r\n while (this.pdf.internal.getNumberOfPages() < pages[j]) {\r\n addPage.call(this);\r\n }\r\n }\r\n sortPages(pages);\r\n\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var k = min; k < max + 1; k++) {\r\n this.pdf.setPage(k);\r\n\r\n this.fillStyle = fillStyle;\r\n this.strokeStyle = strokeStyle;\r\n this.lineCap = lineCap;\r\n this.lineWidth = lineWidth;\r\n this.lineJoin = lineJoin;\r\n\r\n var pageWidthMinusMargins =\r\n this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1];\r\n var topMargin = k === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusMargins =\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var previousPageHeightSum =\r\n k === 1 ? 0 : firstPageHeight + (k - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n drawPaths.call(this, rule, true);\r\n this.path = tmpPaths;\r\n }\r\n tmpPath = JSON.parse(JSON.stringify(origPath));\r\n this.path = pathPositionRedo(\r\n tmpPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n if (isClip === false || k === 0) {\r\n const needsClipping = (k > min || k < max) && hasMargins.call(this);\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n drawPaths.call(this, rule, isClip);\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n this.lineWidth = oldLineWidth;\r\n }\r\n } else {\r\n this.lineWidth = lineWidth;\r\n drawPaths.call(this, rule, isClip);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n this.path = origPath;\r\n };\r\n\r\n /**\r\n * Processes the paths\r\n *\r\n * @function\r\n * @param rule {String}\r\n * @param isClip {Boolean}\r\n * @private\r\n * @ignore\r\n */\r\n var drawPaths = function(rule, isClip) {\r\n if (rule === \"stroke\" && !isClip && isStrokeTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n if (rule !== \"stroke\" && !isClip && isFillTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n var moves = [];\r\n\r\n //var alpha = (this.ctx.fillOpacity < 1) ? this.ctx.fillOpacity : this.ctx.globalAlpha;\r\n var delta;\r\n var xPath = this.path;\r\n for (var i = 0; i < xPath.length; i++) {\r\n var pt = xPath[i];\r\n\r\n switch (pt.type) {\r\n case \"begin\":\r\n moves.push({\r\n begin: true\r\n });\r\n break;\r\n\r\n case \"close\":\r\n moves.push({\r\n close: true\r\n });\r\n break;\r\n\r\n case \"mt\":\r\n moves.push({\r\n start: pt,\r\n deltas: [],\r\n abs: []\r\n });\r\n break;\r\n\r\n case \"lt\":\r\n var iii = moves.length;\r\n if (xPath[i - 1] && !isNaN(xPath[i - 1].x)) {\r\n delta = [pt.x - xPath[i - 1].x, pt.y - xPath[i - 1].y];\r\n if (iii > 0) {\r\n for (iii; iii >= 0; iii--) {\r\n if (\r\n moves[iii - 1].close !== true &&\r\n moves[iii - 1].begin !== true\r\n ) {\r\n moves[iii - 1].deltas.push(delta);\r\n moves[iii - 1].abs.push(pt);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case \"bct\":\r\n delta = [\r\n pt.x1 - xPath[i - 1].x,\r\n pt.y1 - xPath[i - 1].y,\r\n pt.x2 - xPath[i - 1].x,\r\n pt.y2 - xPath[i - 1].y,\r\n pt.x - xPath[i - 1].x,\r\n pt.y - xPath[i - 1].y\r\n ];\r\n moves[moves.length - 1].deltas.push(delta);\r\n break;\r\n\r\n case \"qct\":\r\n var x1 = xPath[i - 1].x + (2.0 / 3.0) * (pt.x1 - xPath[i - 1].x);\r\n var y1 = xPath[i - 1].y + (2.0 / 3.0) * (pt.y1 - xPath[i - 1].y);\r\n var x2 = pt.x + (2.0 / 3.0) * (pt.x1 - pt.x);\r\n var y2 = pt.y + (2.0 / 3.0) * (pt.y1 - pt.y);\r\n var x3 = pt.x;\r\n var y3 = pt.y;\r\n delta = [\r\n x1 - xPath[i - 1].x,\r\n y1 - xPath[i - 1].y,\r\n x2 - xPath[i - 1].x,\r\n y2 - xPath[i - 1].y,\r\n x3 - xPath[i - 1].x,\r\n y3 - xPath[i - 1].y\r\n ];\r\n moves[moves.length - 1].deltas.push(delta);\r\n break;\r\n\r\n case \"arc\":\r\n moves.push({\r\n deltas: [],\r\n abs: [],\r\n arc: true\r\n });\r\n\r\n if (Array.isArray(moves[moves.length - 1].abs)) {\r\n moves[moves.length - 1].abs.push(pt);\r\n }\r\n break;\r\n }\r\n }\r\n var style;\r\n if (!isClip) {\r\n if (rule === \"stroke\") {\r\n style = \"stroke\";\r\n } else {\r\n style = \"fill\";\r\n }\r\n } else {\r\n style = null;\r\n }\r\n\r\n var began = false;\r\n for (var k = 0; k < moves.length; k++) {\r\n if (moves[k].arc) {\r\n var arcs = moves[k].abs;\r\n\r\n for (var ii = 0; ii < arcs.length; ii++) {\r\n var arc = arcs[ii];\r\n\r\n if (arc.type === \"arc\") {\r\n drawArc.call(\r\n this,\r\n arc.x,\r\n arc.y,\r\n arc.radius,\r\n arc.startAngle,\r\n arc.endAngle,\r\n arc.counterclockwise,\r\n undefined,\r\n isClip,\r\n !began\r\n );\r\n } else {\r\n drawLine.call(this, arc.x, arc.y);\r\n }\r\n began = true;\r\n }\r\n } else if (moves[k].close === true) {\r\n this.pdf.internal.out(\"h\");\r\n began = false;\r\n } else if (moves[k].begin !== true) {\r\n var x = moves[k].start.x;\r\n var y = moves[k].start.y;\r\n drawLines.call(this, moves[k].deltas, x, y);\r\n began = true;\r\n }\r\n }\r\n\r\n if (style) {\r\n putStyle.call(this, style);\r\n }\r\n if (isClip) {\r\n doClip.call(this);\r\n }\r\n };\r\n\r\n var getBaseline = function(y) {\r\n var height =\r\n this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor;\r\n var descent = height * (this.pdf.internal.getLineHeightFactor() - 1);\r\n switch (this.ctx.textBaseline) {\r\n case \"bottom\":\r\n return y - descent;\r\n case \"top\":\r\n return y + height - descent;\r\n case \"hanging\":\r\n return y + height - 2 * descent;\r\n case \"middle\":\r\n return y + height / 2 - descent;\r\n case \"ideographic\":\r\n // TODO not implemented\r\n return y;\r\n case \"alphabetic\":\r\n default:\r\n return y;\r\n }\r\n };\r\n\r\n var getTextBottom = function(yBaseLine) {\r\n var height =\r\n this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor;\r\n var descent = height * (this.pdf.internal.getLineHeightFactor() - 1);\r\n return yBaseLine + descent;\r\n };\r\n\r\n Context2D.prototype.createLinearGradient = function createLinearGradient() {\r\n var canvasGradient = function canvasGradient() {};\r\n\r\n canvasGradient.colorStops = [];\r\n canvasGradient.addColorStop = function(offset, color) {\r\n this.colorStops.push([offset, color]);\r\n };\r\n\r\n canvasGradient.getColor = function() {\r\n if (this.colorStops.length === 0) {\r\n return \"#000000\";\r\n }\r\n\r\n return this.colorStops[0][1];\r\n };\r\n\r\n canvasGradient.isCanvasGradient = true;\r\n return canvasGradient;\r\n };\r\n Context2D.prototype.createPattern = function createPattern() {\r\n return this.createLinearGradient();\r\n };\r\n Context2D.prototype.createRadialGradient = function createRadialGradient() {\r\n return this.createLinearGradient();\r\n };\r\n\r\n /**\r\n *\r\n * @param x Edge point X\r\n * @param y Edge point Y\r\n * @param r Radius\r\n * @param a1 start angle\r\n * @param a2 end angle\r\n * @param counterclockwise\r\n * @param style\r\n * @param isClip\r\n */\r\n var drawArc = function(\r\n x,\r\n y,\r\n r,\r\n a1,\r\n a2,\r\n counterclockwise,\r\n style,\r\n isClip,\r\n includeMove\r\n ) {\r\n // http://hansmuller-flex.blogspot.com/2011/10/more-about-approximating-circular-arcs.html\r\n var curves = createArc.call(this, r, a1, a2, counterclockwise);\r\n\r\n for (var i = 0; i < curves.length; i++) {\r\n var curve = curves[i];\r\n if (i === 0) {\r\n if (includeMove) {\r\n doMove.call(this, curve.x1 + x, curve.y1 + y);\r\n } else {\r\n drawLine.call(this, curve.x1 + x, curve.y1 + y);\r\n }\r\n }\r\n drawCurve.call(\r\n this,\r\n x,\r\n y,\r\n curve.x2,\r\n curve.y2,\r\n curve.x3,\r\n curve.y3,\r\n curve.x4,\r\n curve.y4\r\n );\r\n }\r\n\r\n if (!isClip) {\r\n putStyle.call(this, style);\r\n } else {\r\n doClip.call(this);\r\n }\r\n };\r\n\r\n var putStyle = function(style) {\r\n switch (style) {\r\n case \"stroke\":\r\n this.pdf.internal.out(\"S\");\r\n break;\r\n case \"fill\":\r\n this.pdf.internal.out(\"f\");\r\n break;\r\n }\r\n };\r\n\r\n var doClip = function() {\r\n this.pdf.clip();\r\n this.pdf.discardPath();\r\n };\r\n\r\n var doMove = function(x, y) {\r\n this.pdf.internal.out(\r\n getHorizontalCoordinateString(x) +\r\n \" \" +\r\n getVerticalCoordinateString(y) +\r\n \" m\"\r\n );\r\n };\r\n\r\n var putText = function(options) {\r\n var textAlign;\r\n switch (options.align) {\r\n case \"right\":\r\n case \"end\":\r\n textAlign = \"right\";\r\n break;\r\n case \"center\":\r\n textAlign = \"center\";\r\n break;\r\n case \"left\":\r\n case \"start\":\r\n default:\r\n textAlign = \"left\";\r\n break;\r\n }\r\n\r\n var textDimensions = this.pdf.getTextDimensions(options.text);\r\n var yBaseLine = getBaseline.call(this, options.y);\r\n var yBottom = getTextBottom.call(this, yBaseLine);\r\n var yTop = yBottom - textDimensions.h;\r\n\r\n var pt = this.ctx.transform.applyToPoint(new Point(options.x, yBaseLine));\r\n var decomposedTransformationMatrix = this.ctx.transform.decompose();\r\n var matrix = new Matrix();\r\n matrix = matrix.multiply(decomposedTransformationMatrix.translate);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.skew);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.scale);\r\n\r\n var baselineRect = this.ctx.transform.applyToRectangle(\r\n new Rectangle(options.x, yBaseLine, textDimensions.w, textDimensions.h)\r\n );\r\n var textBounds = matrix.applyToRectangle(\r\n new Rectangle(options.x, yTop, textDimensions.w, textDimensions.h)\r\n );\r\n var pageArray = getPagesByPath.call(this, textBounds);\r\n var pages = [];\r\n for (var ii = 0; ii < pageArray.length; ii += 1) {\r\n if (pages.indexOf(pageArray[ii]) === -1) {\r\n pages.push(pageArray[ii]);\r\n }\r\n }\r\n\r\n sortPages(pages);\r\n\r\n var clipPath, oldSize, oldLineWidth;\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var i = min; i < max + 1; i++) {\r\n this.pdf.setPage(i);\r\n\r\n var topMargin = i === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusBottomMargin =\r\n this.pdf.internal.pageSize.height - this.margin[2];\r\n var pageHeightMinusMargins =\r\n pageHeightMinusBottomMargin - this.margin[0];\r\n var pageWidthMinusRightMargin =\r\n this.pdf.internal.pageSize.width - this.margin[1];\r\n var pageWidthMinusMargins = pageWidthMinusRightMargin - this.margin[3];\r\n var previousPageHeightSum =\r\n i === 1 ? 0 : firstPageHeight + (i - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -1 * previousPageHeightSum + topMargin\r\n );\r\n drawPaths.call(this, \"fill\", true);\r\n this.path = tmpPaths;\r\n }\r\n var textBoundsOnPage = pathPositionRedo(\r\n [JSON.parse(JSON.stringify(textBounds))],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n if (options.scale >= 0.01) {\r\n oldSize = this.pdf.internal.getFontSize();\r\n this.pdf.setFontSize(oldSize * options.scale);\r\n oldLineWidth = this.lineWidth;\r\n this.lineWidth = oldLineWidth * options.scale;\r\n }\r\n\r\n var doSlice = this.autoPaging !== \"text\";\r\n\r\n if (\r\n doSlice ||\r\n textBoundsOnPage.y + textBoundsOnPage.h <= pageHeightMinusBottomMargin\r\n ) {\r\n if (\r\n doSlice ||\r\n (textBoundsOnPage.y >= topMargin &&\r\n textBoundsOnPage.x <= pageWidthMinusRightMargin)\r\n ) {\r\n var croppedText = doSlice\r\n ? options.text\r\n : this.pdf.splitTextToSize(\r\n options.text,\r\n options.maxWidth ||\r\n pageWidthMinusRightMargin - textBoundsOnPage.x\r\n )[0];\r\n var baseLineRectOnPage = pathPositionRedo(\r\n [JSON.parse(JSON.stringify(baselineRect))],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum +\r\n topMargin +\r\n this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n const needsClipping =\r\n doSlice && (i > min || i < max) && hasMargins.call(this);\r\n\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n\r\n this.pdf.text(\r\n croppedText,\r\n baseLineRectOnPage.x,\r\n baseLineRectOnPage.y,\r\n {\r\n angle: options.angle,\r\n align: textAlign,\r\n renderingMode: options.renderingMode\r\n }\r\n );\r\n\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n } else {\r\n // This text is the last element of the page, but it got cut off due to the margin\r\n // so we render it in the next page\r\n\r\n if (textBoundsOnPage.y < pageHeightMinusBottomMargin) {\r\n // As a result, all other elements have their y offset increased\r\n this.ctx.prevPageLastElemOffset +=\r\n pageHeightMinusBottomMargin - textBoundsOnPage.y;\r\n }\r\n }\r\n\r\n if (options.scale >= 0.01) {\r\n this.pdf.setFontSize(oldSize);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n }\r\n } else {\r\n if (options.scale >= 0.01) {\r\n oldSize = this.pdf.internal.getFontSize();\r\n this.pdf.setFontSize(oldSize * options.scale);\r\n oldLineWidth = this.lineWidth;\r\n this.lineWidth = oldLineWidth * options.scale;\r\n }\r\n this.pdf.text(options.text, pt.x + this.posX, pt.y + this.posY, {\r\n angle: options.angle,\r\n align: textAlign,\r\n renderingMode: options.renderingMode,\r\n maxWidth: options.maxWidth\r\n });\r\n\r\n if (options.scale >= 0.01) {\r\n this.pdf.setFontSize(oldSize);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n }\r\n };\r\n\r\n var drawLine = function(x, y, prevX, prevY) {\r\n prevX = prevX || 0;\r\n prevY = prevY || 0;\r\n\r\n this.pdf.internal.out(\r\n getHorizontalCoordinateString(x + prevX) +\r\n \" \" +\r\n getVerticalCoordinateString(y + prevY) +\r\n \" l\"\r\n );\r\n };\r\n\r\n var drawLines = function(lines, x, y) {\r\n return this.pdf.lines(lines, x, y, null, null);\r\n };\r\n\r\n var drawCurve = function(x, y, x1, y1, x2, y2, x3, y3) {\r\n this.pdf.internal.out(\r\n [\r\n f2(getHorizontalCoordinate(x1 + x)),\r\n f2(getVerticalCoordinate(y1 + y)),\r\n f2(getHorizontalCoordinate(x2 + x)),\r\n f2(getVerticalCoordinate(y2 + y)),\r\n f2(getHorizontalCoordinate(x3 + x)),\r\n f2(getVerticalCoordinate(y3 + y)),\r\n \"c\"\r\n ].join(\" \")\r\n );\r\n };\r\n\r\n /**\r\n * Return a array of objects that represent bezier curves which approximate the circular arc centered at the origin, from startAngle to endAngle (radians) with the specified radius.\r\n *\r\n * Each bezier curve is an object with four points, where x1,y1 and x4,y4 are the arc's end points and x2,y2 and x3,y3 are the cubic bezier's control points.\r\n * @function createArc\r\n */\r\n var createArc = function(radius, startAngle, endAngle, anticlockwise) {\r\n var EPSILON = 0.00001; // Roughly 1/1000th of a degree, see below\r\n var twoPi = Math.PI * 2;\r\n var halfPi = Math.PI / 2.0;\r\n\r\n while (startAngle > endAngle) {\r\n startAngle = startAngle - twoPi;\r\n }\r\n var totalAngle = Math.abs(endAngle - startAngle);\r\n if (totalAngle < twoPi) {\r\n if (anticlockwise) {\r\n totalAngle = twoPi - totalAngle;\r\n }\r\n }\r\n\r\n // Compute the sequence of arc curves, up to PI/2 at a time.\r\n var curves = [];\r\n\r\n // clockwise or counterclockwise\r\n var sgn = anticlockwise ? -1 : +1;\r\n\r\n var a1 = startAngle;\r\n for (; totalAngle > EPSILON; ) {\r\n var remain = sgn * Math.min(totalAngle, halfPi);\r\n var a2 = a1 + remain;\r\n curves.push(createSmallArc.call(this, radius, a1, a2));\r\n totalAngle -= Math.abs(a2 - a1);\r\n a1 = a2;\r\n }\r\n\r\n return curves;\r\n };\r\n\r\n /**\r\n * Cubic bezier approximation of a circular arc centered at the origin, from (radians) a1 to a2, where a2-a1 < pi/2. The arc's radius is r.\r\n *\r\n * Returns an object with four points, where x1,y1 and x4,y4 are the arc's end points and x2,y2 and x3,y3 are the cubic bezier's control points.\r\n *\r\n * This algorithm is based on the approach described in: A. Riškus, \"Approximation of a Cubic Bezier Curve by Circular Arcs and Vice Versa,\" Information Technology and Control, 35(4), 2006 pp. 371-378.\r\n */\r\n var createSmallArc = function(r, a1, a2) {\r\n var a = (a2 - a1) / 2.0;\r\n\r\n var x4 = r * Math.cos(a);\r\n var y4 = r * Math.sin(a);\r\n var x1 = x4;\r\n var y1 = -y4;\r\n\r\n var q1 = x1 * x1 + y1 * y1;\r\n var q2 = q1 + x1 * x4 + y1 * y4;\r\n var k2 = ((4 / 3) * (Math.sqrt(2 * q1 * q2) - q2)) / (x1 * y4 - y1 * x4);\r\n\r\n var x2 = x1 - k2 * y1;\r\n var y2 = y1 + k2 * x1;\r\n var x3 = x2;\r\n var y3 = -y2;\r\n\r\n var ar = a + a1;\r\n var cos_ar = Math.cos(ar);\r\n var sin_ar = Math.sin(ar);\r\n\r\n return {\r\n x1: r * Math.cos(a1),\r\n y1: r * Math.sin(a1),\r\n x2: x2 * cos_ar - y2 * sin_ar,\r\n y2: x2 * sin_ar + y2 * cos_ar,\r\n x3: x3 * cos_ar - y3 * sin_ar,\r\n y3: x3 * sin_ar + y3 * cos_ar,\r\n x4: r * Math.cos(a2),\r\n y4: r * Math.sin(a2)\r\n };\r\n };\r\n\r\n var rad2deg = function(value) {\r\n return (value * 180) / Math.PI;\r\n };\r\n\r\n var getQuadraticCurveBoundary = function(sx, sy, cpx, cpy, ex, ey) {\r\n var midX1 = sx + (cpx - sx) * 0.5;\r\n var midY1 = sy + (cpy - sy) * 0.5;\r\n var midX2 = ex + (cpx - ex) * 0.5;\r\n var midY2 = ey + (cpy - ey) * 0.5;\r\n var resultX1 = Math.min(sx, ex, midX1, midX2);\r\n var resultX2 = Math.max(sx, ex, midX1, midX2);\r\n var resultY1 = Math.min(sy, ey, midY1, midY2);\r\n var resultY2 = Math.max(sy, ey, midY1, midY2);\r\n return new Rectangle(\r\n resultX1,\r\n resultY1,\r\n resultX2 - resultX1,\r\n resultY2 - resultY1\r\n );\r\n };\r\n\r\n //De Casteljau algorithm\r\n var getBezierCurveBoundary = function(ax, ay, bx, by, cx, cy, dx, dy) {\r\n var tobx = bx - ax;\r\n var toby = by - ay;\r\n var tocx = cx - bx;\r\n var tocy = cy - by;\r\n var todx = dx - cx;\r\n var tody = dy - cy;\r\n var precision = 40;\r\n var d,\r\n i,\r\n px,\r\n py,\r\n qx,\r\n qy,\r\n rx,\r\n ry,\r\n tx,\r\n ty,\r\n sx,\r\n sy,\r\n x,\r\n y,\r\n minx,\r\n miny,\r\n maxx,\r\n maxy,\r\n toqx,\r\n toqy,\r\n torx,\r\n tory,\r\n totx,\r\n toty;\r\n for (i = 0; i < precision + 1; i++) {\r\n d = i / precision;\r\n px = ax + d * tobx;\r\n py = ay + d * toby;\r\n qx = bx + d * tocx;\r\n qy = by + d * tocy;\r\n rx = cx + d * todx;\r\n ry = cy + d * tody;\r\n toqx = qx - px;\r\n toqy = qy - py;\r\n torx = rx - qx;\r\n tory = ry - qy;\r\n\r\n sx = px + d * toqx;\r\n sy = py + d * toqy;\r\n tx = qx + d * torx;\r\n ty = qy + d * tory;\r\n totx = tx - sx;\r\n toty = ty - sy;\r\n\r\n x = sx + d * totx;\r\n y = sy + d * toty;\r\n if (i == 0) {\r\n minx = x;\r\n miny = y;\r\n maxx = x;\r\n maxy = y;\r\n } else {\r\n minx = Math.min(minx, x);\r\n miny = Math.min(miny, y);\r\n maxx = Math.max(maxx, x);\r\n maxy = Math.max(maxy, y);\r\n }\r\n }\r\n return new Rectangle(\r\n Math.round(minx),\r\n Math.round(miny),\r\n Math.round(maxx - minx),\r\n Math.round(maxy - miny)\r\n );\r\n };\r\n\r\n var getPrevLineDashValue = function(lineDash, lineDashOffset) {\r\n return JSON.stringify({\r\n lineDash: lineDash,\r\n lineDashOffset: lineDashOffset\r\n });\r\n };\r\n\r\n var setLineDash = function() {\r\n // Avoid unnecessary line dash declarations.\r\n if (\r\n !this.prevLineDash &&\r\n !this.ctx.lineDash.length &&\r\n !this.ctx.lineDashOffset\r\n ) {\r\n return;\r\n }\r\n\r\n // Avoid unnecessary line dash declarations.\r\n const nextLineDash = getPrevLineDashValue(\r\n this.ctx.lineDash,\r\n this.ctx.lineDashOffset\r\n );\r\n if (this.prevLineDash !== nextLineDash) {\r\n this.pdf.setLineDash(this.ctx.lineDash, this.ctx.lineDashOffset);\r\n this.prevLineDash = nextLineDash;\r\n }\r\n };\r\n})(jsPDF.API);\r\n","/**\n * @license\n * jsPDF filters PlugIn\n * Copyright (c) 2014 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { zlibSync } from \"../libs/fflate.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var ASCII85Encode = function(a) {\n var b, c, d, e, f, g, h, i, j, k;\n // eslint-disable-next-line no-control-regex\n for (\n !/[^\\x00-\\xFF]/.test(a),\n b = \"\\x00\\x00\\x00\\x00\".slice(a.length % 4 || 4),\n a += b,\n c = [],\n d = 0,\n e = a.length;\n e > d;\n d += 4\n )\n (f =\n (a.charCodeAt(d) << 24) +\n (a.charCodeAt(d + 1) << 16) +\n (a.charCodeAt(d + 2) << 8) +\n a.charCodeAt(d + 3)),\n 0 !== f\n ? ((k = f % 85),\n (f = (f - k) / 85),\n (j = f % 85),\n (f = (f - j) / 85),\n (i = f % 85),\n (f = (f - i) / 85),\n (h = f % 85),\n (f = (f - h) / 85),\n (g = f % 85),\n c.push(g + 33, h + 33, i + 33, j + 33, k + 33))\n : c.push(122);\n return (\n (function(a, b) {\n for (var c = b; c > 0; c--) a.pop();\n })(c, b.length),\n String.fromCharCode.apply(String, c) + \"~>\"\n );\n };\n\n var ASCII85Decode = function(a) {\n var c,\n d,\n e,\n f,\n g,\n h = String,\n l = \"length\",\n w = 255,\n x = \"charCodeAt\",\n y = \"slice\",\n z = \"replace\";\n for (\n \"~>\" === a[y](-2),\n a = a[y](0, -2)\n [z](/\\s/g, \"\")\n [z](\"z\", \"!!!!!\"),\n c = \"uuuuu\"[y](a[l] % 5 || 5),\n a += c,\n e = [],\n f = 0,\n g = a[l];\n g > f;\n f += 5\n )\n (d =\n 52200625 * (a[x](f) - 33) +\n 614125 * (a[x](f + 1) - 33) +\n 7225 * (a[x](f + 2) - 33) +\n 85 * (a[x](f + 3) - 33) +\n (a[x](f + 4) - 33)),\n e.push(w & (d >> 24), w & (d >> 16), w & (d >> 8), w & d);\n return (\n (function(a, b) {\n for (var c = b; c > 0; c--) a.pop();\n })(e, c[l]),\n h.fromCharCode.apply(h, e)\n );\n };\n\n var ASCIIHexEncode = function(value) {\n return (\n value\n .split(\"\")\n .map(function(value) {\n return (\"0\" + value.charCodeAt().toString(16)).slice(-2);\n })\n .join(\"\") + \">\"\n );\n };\n\n var ASCIIHexDecode = function(value) {\n var regexCheckIfHex = new RegExp(/^([0-9A-Fa-f]{2})+$/);\n value = value.replace(/\\s/g, \"\");\n if (value.indexOf(\">\") !== -1) {\n value = value.substr(0, value.indexOf(\">\"));\n }\n if (value.length % 2) {\n value += \"0\";\n }\n if (regexCheckIfHex.test(value) === false) {\n return \"\";\n }\n var result = \"\";\n for (var i = 0; i < value.length; i += 2) {\n result += String.fromCharCode(\"0x\" + (value[i] + value[i + 1]));\n }\n return result;\n };\n /*\n var FlatePredictors = {\n None: 1,\n TIFF: 2,\n PNG_None: 10,\n PNG_Sub: 11,\n PNG_Up: 12,\n PNG_Average: 13,\n PNG_Paeth: 14,\n PNG_Optimum: 15\n };\n */\n\n var FlateEncode = function(data) {\n var arr = new Uint8Array(data.length);\n var i = data.length;\n while (i--) {\n arr[i] = data.charCodeAt(i);\n }\n arr = zlibSync(arr);\n data = arr.reduce(function(data, byte) {\n return data + String.fromCharCode(byte);\n }, \"\");\n return data;\n };\n\n jsPDFAPI.processDataByFilters = function(origData, filterChain) {\n \"use strict\";\n var i = 0;\n var data = origData || \"\";\n var reverseChain = [];\n filterChain = filterChain || [];\n\n if (typeof filterChain === \"string\") {\n filterChain = [filterChain];\n }\n\n for (i = 0; i < filterChain.length; i += 1) {\n switch (filterChain[i]) {\n case \"ASCII85Decode\":\n case \"/ASCII85Decode\":\n data = ASCII85Decode(data);\n reverseChain.push(\"/ASCII85Encode\");\n break;\n case \"ASCII85Encode\":\n case \"/ASCII85Encode\":\n data = ASCII85Encode(data);\n reverseChain.push(\"/ASCII85Decode\");\n break;\n case \"ASCIIHexDecode\":\n case \"/ASCIIHexDecode\":\n data = ASCIIHexDecode(data);\n reverseChain.push(\"/ASCIIHexEncode\");\n break;\n case \"ASCIIHexEncode\":\n case \"/ASCIIHexEncode\":\n data = ASCIIHexEncode(data);\n reverseChain.push(\"/ASCIIHexDecode\");\n break;\n case \"FlateEncode\":\n case \"/FlateEncode\":\n data = FlateEncode(data);\n reverseChain.push(\"/FlateDecode\");\n break;\n default:\n throw new Error(\n 'The filter: \"' + filterChain[i] + '\" is not implemented'\n );\n }\n }\n\n return { data: data, reverseChain: reverseChain.reverse().join(\" \") };\n };\n})(jsPDF.API);\n","/**\n * @license\n * jsPDF fileloading PlugIn\n * Copyright (c) 2018 Aras Abbasi (aras.abbasi@gmail.com)\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name fileloading\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @name loadFile\n * @function\n * @param {string} url\n * @param {boolean} sync\n * @param {function} callback\n * @returns {string|undefined} result\n */\n jsPDFAPI.loadFile = function(url, sync, callback) {\n return browserRequest(url, sync, callback);\n\n };\n\n /**\n * @name loadImageFile\n * @function\n * @param {string} path\n * @param {boolean} sync\n * @param {function} callback\n */\n jsPDFAPI.loadImageFile = jsPDFAPI.loadFile;\n\n function browserRequest(url, sync, callback) {\n sync = sync === false ? false : true;\n callback = typeof callback === \"function\" ? callback : function() {};\n var result = undefined;\n\n var xhr = function(url, sync, callback) {\n var request = new XMLHttpRequest();\n var i = 0;\n\n var sanitizeUnicode = function(data) {\n var dataLength = data.length;\n var charArray = [];\n var StringFromCharCode = String.fromCharCode;\n\n //Transform Unicode to ASCII\n for (i = 0; i < dataLength; i += 1) {\n charArray.push(StringFromCharCode(data.charCodeAt(i) & 0xff));\n }\n return charArray.join(\"\");\n };\n\n request.open(\"GET\", url, !sync);\n // XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com]\n request.overrideMimeType(\"text/plain; charset=x-user-defined\");\n\n if (sync === false) {\n request.onload = function() {\n if (request.status === 200) {\n callback(sanitizeUnicode(this.responseText));\n } else {\n callback(undefined);\n }\n };\n }\n request.send(null);\n\n if (sync && request.status === 200) {\n return sanitizeUnicode(request.responseText);\n }\n };\n try {\n result = xhr(url, sync, callback);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n return result;\n }\n\n function nodeReadFile(url, sync, callback) {\n sync = sync === false ? false : true;\n var result = undefined;\n\n var fs = require(\"fs\");\n var path = require(\"path\");\n\n url = path.resolve(url);\n if (sync) {\n try {\n result = fs.readFileSync(url, { encoding: \"latin1\" });\n } catch (e) {\n return undefined;\n }\n } else {\n fs.readFile(url, { encoding: \"latin1\" }, function(err, data) {\n if (!callback) {\n return;\n }\n if (err) {\n callback(undefined);\n }\n callback(data);\n });\n }\n\n return result;\n }\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2018 Erik Koopmans\n * Released under the MIT License.\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { normalizeFontFace } from \"../libs/fontFace.js\";\nimport { globalObject } from \"../libs/globalObject.js\";\n\n/**\n * jsPDF html PlugIn\n *\n * @name html\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n function loadHtml2Canvas() {\n return (function() {\n if (globalObject[\"html2canvas\"]) {\n return Promise.resolve(globalObject[\"html2canvas\"]);\n }\n\n return import(\"html2canvas\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load html2canvas: \" + e));\n })\n .then(function(html2canvas) {\n return html2canvas.default ? html2canvas.default : html2canvas;\n });\n }\n\n function loadDomPurify() {\n return (function() {\n if (globalObject[\"DOMPurify\"]) {\n return Promise.resolve(globalObject[\"DOMPurify\"]);\n }\n\n return import(\"dompurify\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load dompurify: \" + e));\n })\n .then(function(dompurify) {\n return dompurify.default ? dompurify.default : dompurify;\n });\n }\n\n /**\n * Determine the type of a variable/object.\n *\n * @private\n * @ignore\n */\n var objType = function(obj) {\n var type = typeof obj;\n if (type === \"undefined\") return \"undefined\";\n else if (type === \"string\" || obj instanceof String) return \"string\";\n else if (type === \"number\" || obj instanceof Number) return \"number\";\n else if (type === \"function\" || obj instanceof Function) return \"function\";\n else if (!!obj && obj.constructor === Array) return \"array\";\n else if (obj && obj.nodeType === 1) return \"element\";\n else if (type === \"object\") return \"object\";\n else return \"unknown\";\n };\n\n /**\n * Create an HTML element with optional className, innerHTML, and style.\n *\n * @private\n * @ignore\n */\n var createElement = function(tagName, opt) {\n var el = document.createElement(tagName);\n if (opt.className) el.className = opt.className;\n if (opt.innerHTML && opt.dompurify) {\n el.innerHTML = opt.dompurify.sanitize(opt.innerHTML);\n }\n for (var key in opt.style) {\n el.style[key] = opt.style[key];\n }\n return el;\n };\n\n /**\n * Deep-clone a node and preserve contents/properties.\n *\n * @private\n * @ignore\n */\n var cloneNode = function(node, javascriptEnabled) {\n // Recursively clone the node.\n var clone =\n node.nodeType === 3\n ? document.createTextNode(node.nodeValue)\n : node.cloneNode(false);\n for (var child = node.firstChild; child; child = child.nextSibling) {\n if (\n javascriptEnabled === true ||\n child.nodeType !== 1 ||\n child.nodeName !== \"SCRIPT\"\n ) {\n clone.appendChild(cloneNode(child, javascriptEnabled));\n }\n }\n\n if (node.nodeType === 1) {\n // Preserve contents/properties of special nodes.\n if (node.nodeName === \"CANVAS\") {\n clone.width = node.width;\n clone.height = node.height;\n clone.getContext(\"2d\").drawImage(node, 0, 0);\n } else if (node.nodeName === \"TEXTAREA\" || node.nodeName === \"SELECT\") {\n clone.value = node.value;\n }\n\n // Preserve the node's scroll position when it loads.\n clone.addEventListener(\n \"load\",\n function() {\n clone.scrollTop = node.scrollTop;\n clone.scrollLeft = node.scrollLeft;\n },\n true\n );\n }\n\n // Return the cloned node.\n return clone;\n };\n\n /* ----- CONSTRUCTOR ----- */\n\n var Worker = function Worker(opt) {\n // Create the root parent for the proto chain, and the starting Worker.\n var root = Object.assign(\n Worker.convert(Promise.resolve()),\n JSON.parse(JSON.stringify(Worker.template))\n );\n var self = Worker.convert(Promise.resolve(), root);\n\n // Set progress, optional settings, and return.\n self = self.setProgress(1, Worker, 1, [Worker]);\n self = self.set(opt);\n return self;\n };\n\n // Boilerplate for subclassing Promise.\n Worker.prototype = Object.create(Promise.prototype);\n Worker.prototype.constructor = Worker;\n\n // Converts/casts promises into Workers.\n Worker.convert = function convert(promise, inherit) {\n // Uses prototypal inheritance to receive changes made to ancestors' properties.\n promise.__proto__ = inherit || Worker.prototype;\n return promise;\n };\n\n Worker.template = {\n prop: {\n src: null,\n container: null,\n overlay: null,\n canvas: null,\n img: null,\n pdf: null,\n pageSize: null,\n callback: function() {}\n },\n progress: {\n val: 0,\n state: null,\n n: 0,\n stack: []\n },\n opt: {\n filename: \"file.pdf\",\n margin: [0, 0, 0, 0],\n enableLinks: true,\n x: 0,\n y: 0,\n html2canvas: {},\n jsPDF: {},\n backgroundColor: \"transparent\"\n }\n };\n\n /* ----- FROM / TO ----- */\n\n Worker.prototype.from = function from(src, type) {\n function getType(src) {\n switch (objType(src)) {\n case \"string\":\n return \"string\";\n case \"element\":\n return src.nodeName.toLowerCase() === \"canvas\" ? \"canvas\" : \"element\";\n default:\n return \"unknown\";\n }\n }\n\n return this.then(function from_main() {\n type = type || getType(src);\n switch (type) {\n case \"string\":\n return this.then(loadDomPurify).then(function(dompurify) {\n return this.set({\n src: createElement(\"div\", {\n innerHTML: src,\n dompurify: dompurify\n })\n });\n });\n case \"element\":\n return this.set({ src: src });\n case \"canvas\":\n return this.set({ canvas: src });\n case \"img\":\n return this.set({ img: src });\n default:\n return this.error(\"Unknown source type.\");\n }\n });\n };\n\n Worker.prototype.to = function to(target) {\n // Route the 'to' request to the appropriate method.\n switch (target) {\n case \"container\":\n return this.toContainer();\n case \"canvas\":\n return this.toCanvas();\n case \"img\":\n return this.toImg();\n case \"pdf\":\n return this.toPdf();\n default:\n return this.error(\"Invalid target.\");\n }\n };\n\n Worker.prototype.toContainer = function toContainer() {\n // Set up function prerequisites.\n var prereqs = [\n function checkSrc() {\n return (\n this.prop.src || this.error(\"Cannot duplicate - no source HTML.\")\n );\n },\n function checkPageSize() {\n return this.prop.pageSize || this.setPageSize();\n }\n ];\n return this.thenList(prereqs).then(function toContainer_main() {\n // Define the CSS styles for the container and its overlay parent.\n var overlayCSS = {\n position: \"fixed\",\n overflow: \"hidden\",\n zIndex: 1000,\n left: \"-100000px\",\n right: 0,\n bottom: 0,\n top: 0\n };\n var containerCSS = {\n position: \"relative\",\n display: \"inline-block\",\n width:\n (typeof this.opt.width === \"number\" &&\n !isNaN(this.opt.width) &&\n typeof this.opt.windowWidth === \"number\" &&\n !isNaN(this.opt.windowWidth)\n ? this.opt.windowWidth\n : Math.max(\n this.prop.src.clientWidth,\n this.prop.src.scrollWidth,\n this.prop.src.offsetWidth\n )) + \"px\",\n left: 0,\n right: 0,\n top: 0,\n margin: \"auto\",\n backgroundColor: this.opt.backgroundColor\n }; // Set the overlay to hidden (could be changed in the future to provide a print preview).\n\n var source = cloneNode(\n this.prop.src,\n this.opt.html2canvas.javascriptEnabled\n );\n\n if (source.tagName === \"BODY\") {\n containerCSS.height =\n Math.max(\n document.body.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.clientHeight,\n document.documentElement.scrollHeight,\n document.documentElement.offsetHeight\n ) + \"px\";\n }\n\n this.prop.overlay = createElement(\"div\", {\n className: \"html2pdf__overlay\",\n style: overlayCSS\n });\n this.prop.container = createElement(\"div\", {\n className: \"html2pdf__container\",\n style: containerCSS\n });\n this.prop.container.appendChild(source);\n this.prop.container.firstChild.appendChild(\n createElement(\"div\", {\n style: {\n clear: \"both\",\n border: \"0 none transparent\",\n margin: 0,\n padding: 0,\n height: 0\n }\n })\n );\n this.prop.container.style.float = \"none\";\n this.prop.overlay.appendChild(this.prop.container);\n document.body.appendChild(this.prop.overlay);\n this.prop.container.firstChild.style.position = \"relative\";\n this.prop.container.height =\n Math.max(\n this.prop.container.firstChild.clientHeight,\n this.prop.container.firstChild.scrollHeight,\n this.prop.container.firstChild.offsetHeight\n ) + \"px\";\n });\n };\n\n Worker.prototype.toCanvas = function toCanvas() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContainer() {\n return (\n document.body.contains(this.prop.container) || this.toContainer()\n );\n }\n ];\n\n // Fulfill prereqs then create the canvas.\n return this.thenList(prereqs)\n .then(loadHtml2Canvas)\n .then(function toCanvas_main(html2canvas) {\n // Handle old-fashioned 'onrendered' argument.\n var options = Object.assign({}, this.opt.html2canvas);\n delete options.onrendered;\n\n return html2canvas(this.prop.container, options);\n })\n .then(function toCanvas_post(canvas) {\n // Handle old-fashioned 'onrendered' argument.\n var onRendered = this.opt.html2canvas.onrendered || function() {};\n onRendered(canvas);\n\n this.prop.canvas = canvas;\n document.body.removeChild(this.prop.overlay);\n });\n };\n\n Worker.prototype.toContext2d = function toContext2d() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContainer() {\n return (\n document.body.contains(this.prop.container) || this.toContainer()\n );\n }\n ];\n\n // Fulfill prereqs then create the canvas.\n return this.thenList(prereqs)\n .then(loadHtml2Canvas)\n .then(function toContext2d_main(html2canvas) {\n // Handle old-fashioned 'onrendered' argument.\n\n var pdf = this.opt.jsPDF;\n var fontFaces = this.opt.fontFaces;\n\n var scale =\n typeof this.opt.width === \"number\" &&\n !isNaN(this.opt.width) &&\n typeof this.opt.windowWidth === \"number\" &&\n !isNaN(this.opt.windowWidth)\n ? this.opt.width / this.opt.windowWidth\n : 1;\n\n var options = Object.assign(\n {\n async: true,\n allowTaint: true,\n scale: scale,\n scrollX: this.opt.scrollX || 0,\n scrollY: this.opt.scrollY || 0,\n backgroundColor: \"#ffffff\",\n imageTimeout: 15000,\n logging: true,\n proxy: null,\n removeContainer: true,\n foreignObjectRendering: false,\n useCORS: false\n },\n this.opt.html2canvas\n );\n delete options.onrendered;\n\n pdf.context2d.autoPaging =\n typeof this.opt.autoPaging === \"undefined\"\n ? true\n : this.opt.autoPaging;\n pdf.context2d.posX = this.opt.x;\n pdf.context2d.posY = this.opt.y;\n pdf.context2d.margin = this.opt.margin;\n pdf.context2d.fontFaces = fontFaces;\n\n if (fontFaces) {\n for (var i = 0; i < fontFaces.length; ++i) {\n var font = fontFaces[i];\n var src = font.src.find(function(src) {\n return src.format === \"truetype\";\n });\n\n if (src) {\n pdf.addFont(src.url, font.ref.name, font.ref.style);\n }\n }\n }\n\n options.windowHeight = options.windowHeight || 0;\n options.windowHeight =\n options.windowHeight == 0\n ? Math.max(\n this.prop.container.clientHeight,\n this.prop.container.scrollHeight,\n this.prop.container.offsetHeight\n )\n : options.windowHeight;\n\n pdf.context2d.save(true);\n return html2canvas(this.prop.container, options);\n })\n .then(function toContext2d_post(canvas) {\n this.opt.jsPDF.context2d.restore(true);\n\n // Handle old-fashioned 'onrendered' argument.\n var onRendered = this.opt.html2canvas.onrendered || function() {};\n onRendered(canvas);\n\n this.prop.canvas = canvas;\n document.body.removeChild(this.prop.overlay);\n });\n };\n\n Worker.prototype.toImg = function toImg() {\n // Set up function prerequisites.\n var prereqs = [\n function checkCanvas() {\n return this.prop.canvas || this.toCanvas();\n }\n ];\n\n // Fulfill prereqs then create the image.\n return this.thenList(prereqs).then(function toImg_main() {\n var imgData = this.prop.canvas.toDataURL(\n \"image/\" + this.opt.image.type,\n this.opt.image.quality\n );\n this.prop.img = document.createElement(\"img\");\n this.prop.img.src = imgData;\n });\n };\n\n Worker.prototype.toPdf = function toPdf() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContext2d() {\n return this.toContext2d();\n }\n //function checkCanvas() { return this.prop.canvas || this.toCanvas(); }\n ];\n\n // Fulfill prereqs then create the image.\n return this.thenList(prereqs).then(function toPdf_main() {\n // Create local copies of frequently used properties.\n this.prop.pdf = this.prop.pdf || this.opt.jsPDF;\n });\n };\n\n /* ----- OUTPUT / SAVE ----- */\n\n Worker.prototype.output = function output(type, options, src) {\n // Redirect requests to the correct function (outputPdf / outputImg).\n src = src || \"pdf\";\n if (src.toLowerCase() === \"img\" || src.toLowerCase() === \"image\") {\n return this.outputImg(type, options);\n } else {\n return this.outputPdf(type, options);\n }\n };\n\n Worker.prototype.outputPdf = function outputPdf(type, options) {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs then perform the appropriate output.\n return this.thenList(prereqs).then(function outputPdf_main() {\n /* Currently implemented output types:\n * https://rawgit.com/MrRio/jsPDF/master/docs/jspdf.js.html#line992\n * save(options), arraybuffer, blob, bloburi/bloburl,\n * datauristring/dataurlstring, dataurlnewwindow, datauri/dataurl\n */\n return this.prop.pdf.output(type, options);\n });\n };\n\n Worker.prototype.outputImg = function outputImg(type) {\n // Set up function prerequisites.\n var prereqs = [\n function checkImg() {\n return this.prop.img || this.toImg();\n }\n ];\n\n // Fulfill prereqs then perform the appropriate output.\n return this.thenList(prereqs).then(function outputImg_main() {\n switch (type) {\n case undefined:\n case \"img\":\n return this.prop.img;\n case \"datauristring\":\n case \"dataurlstring\":\n return this.prop.img.src;\n case \"datauri\":\n case \"dataurl\":\n return (document.location.href = this.prop.img.src);\n default:\n throw 'Image output type \"' + type + '\" is not supported.';\n }\n });\n };\n\n Worker.prototype.save = function save(filename) {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs, update the filename (if provided), and save the PDF.\n return this.thenList(prereqs)\n .set(filename ? { filename: filename } : null)\n .then(function save_main() {\n this.prop.pdf.save(this.opt.filename);\n });\n };\n\n Worker.prototype.doCallback = function doCallback() {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs, update the filename (if provided), and save the PDF.\n return this.thenList(prereqs).then(function doCallback_main() {\n this.prop.callback(this.prop.pdf);\n });\n };\n\n /* ----- SET / GET ----- */\n\n Worker.prototype.set = function set(opt) {\n // TODO: Implement ordered pairs?\n\n // Silently ignore invalid or empty input.\n if (objType(opt) !== \"object\") {\n return this;\n }\n\n // Build an array of setter functions to queue.\n var fns = Object.keys(opt || {}).map(function(key) {\n if (key in Worker.template.prop) {\n // Set pre-defined properties.\n return function set_prop() {\n this.prop[key] = opt[key];\n };\n } else {\n switch (key) {\n case \"margin\":\n return this.setMargin.bind(this, opt.margin);\n case \"jsPDF\":\n return function set_jsPDF() {\n this.opt.jsPDF = opt.jsPDF;\n return this.setPageSize();\n };\n case \"pageSize\":\n return this.setPageSize.bind(this, opt.pageSize);\n default:\n // Set any other properties in opt.\n return function set_opt() {\n this.opt[key] = opt[key];\n };\n }\n }\n }, this);\n\n // Set properties within the promise chain.\n return this.then(function set_main() {\n return this.thenList(fns);\n });\n };\n\n Worker.prototype.get = function get(key, cbk) {\n return this.then(function get_main() {\n // Fetch the requested property, either as a predefined prop or in opt.\n var val = key in Worker.template.prop ? this.prop[key] : this.opt[key];\n return cbk ? cbk(val) : val;\n });\n };\n\n Worker.prototype.setMargin = function setMargin(margin) {\n return this.then(function setMargin_main() {\n // Parse the margin property.\n switch (objType(margin)) {\n case \"number\":\n margin = [margin, margin, margin, margin];\n // eslint-disable-next-line no-fallthrough\n case \"array\":\n if (margin.length === 2) {\n margin = [margin[0], margin[1], margin[0], margin[1]];\n }\n if (margin.length === 4) {\n break;\n }\n // eslint-disable-next-line no-fallthrough\n default:\n return this.error(\"Invalid margin array.\");\n }\n\n // Set the margin property, then update pageSize.\n this.opt.margin = margin;\n }).then(this.setPageSize);\n };\n\n Worker.prototype.setPageSize = function setPageSize(pageSize) {\n function toPx(val, k) {\n return Math.floor(((val * k) / 72) * 96);\n }\n\n return this.then(function setPageSize_main() {\n // Retrieve page-size based on jsPDF settings, if not explicitly provided.\n pageSize = pageSize || jsPDF.getPageSize(this.opt.jsPDF);\n\n // Add 'inner' field if not present.\n if (!pageSize.hasOwnProperty(\"inner\")) {\n pageSize.inner = {\n width: pageSize.width - this.opt.margin[1] - this.opt.margin[3],\n height: pageSize.height - this.opt.margin[0] - this.opt.margin[2]\n };\n pageSize.inner.px = {\n width: toPx(pageSize.inner.width, pageSize.k),\n height: toPx(pageSize.inner.height, pageSize.k)\n };\n pageSize.inner.ratio = pageSize.inner.height / pageSize.inner.width;\n }\n\n // Attach pageSize to this.\n this.prop.pageSize = pageSize;\n });\n };\n\n Worker.prototype.setProgress = function setProgress(val, state, n, stack) {\n // Immediately update all progress values.\n if (val != null) this.progress.val = val;\n if (state != null) this.progress.state = state;\n if (n != null) this.progress.n = n;\n if (stack != null) this.progress.stack = stack;\n this.progress.ratio = this.progress.val / this.progress.state;\n\n // Return this for command chaining.\n return this;\n };\n\n Worker.prototype.updateProgress = function updateProgress(\n val,\n state,\n n,\n stack\n ) {\n // Immediately update all progress values, using setProgress.\n return this.setProgress(\n val ? this.progress.val + val : null,\n state ? state : null,\n n ? this.progress.n + n : null,\n stack ? this.progress.stack.concat(stack) : null\n );\n };\n\n /* ----- PROMISE MAPPING ----- */\n\n Worker.prototype.then = function then(onFulfilled, onRejected) {\n // Wrap `this` for encapsulation.\n var self = this;\n\n return this.thenCore(onFulfilled, onRejected, function then_main(\n onFulfilled,\n onRejected\n ) {\n // Update progress while queuing, calling, and resolving `then`.\n self.updateProgress(null, null, 1, [onFulfilled]);\n return Promise.prototype.then\n .call(this, function then_pre(val) {\n self.updateProgress(null, onFulfilled);\n return val;\n })\n .then(onFulfilled, onRejected)\n .then(function then_post(val) {\n self.updateProgress(1);\n return val;\n });\n });\n };\n\n Worker.prototype.thenCore = function thenCore(\n onFulfilled,\n onRejected,\n thenBase\n ) {\n // Handle optional thenBase parameter.\n thenBase = thenBase || Promise.prototype.then;\n\n // Wrap `this` for encapsulation and bind it to the promise handlers.\n var self = this;\n if (onFulfilled) {\n onFulfilled = onFulfilled.bind(self);\n }\n if (onRejected) {\n onRejected = onRejected.bind(self);\n }\n\n // Cast self into a Promise to avoid polyfills recursively defining `then`.\n var isNative =\n Promise.toString().indexOf(\"[native code]\") !== -1 &&\n Promise.name === \"Promise\";\n var selfPromise = isNative\n ? self\n : Worker.convert(Object.assign({}, self), Promise.prototype);\n\n // Return the promise, after casting it into a Worker and preserving props.\n var returnVal = thenBase.call(selfPromise, onFulfilled, onRejected);\n return Worker.convert(returnVal, self.__proto__);\n };\n\n Worker.prototype.thenExternal = function thenExternal(\n onFulfilled,\n onRejected\n ) {\n // Call `then` and return a standard promise (exits the Worker chain).\n return Promise.prototype.then.call(this, onFulfilled, onRejected);\n };\n\n Worker.prototype.thenList = function thenList(fns) {\n // Queue a series of promise 'factories' into the promise chain.\n var self = this;\n fns.forEach(function thenList_forEach(fn) {\n self = self.thenCore(fn);\n });\n return self;\n };\n\n Worker.prototype[\"catch\"] = function(onRejected) {\n // Bind `this` to the promise handler, call `catch`, and return a Worker.\n if (onRejected) {\n onRejected = onRejected.bind(this);\n }\n var returnVal = Promise.prototype[\"catch\"].call(this, onRejected);\n return Worker.convert(returnVal, this);\n };\n\n Worker.prototype.catchExternal = function catchExternal(onRejected) {\n // Call `catch` and return a standard promise (exits the Worker chain).\n return Promise.prototype[\"catch\"].call(this, onRejected);\n };\n\n Worker.prototype.error = function error(msg) {\n // Throw the error in the Promise chain.\n return this.then(function error_main() {\n throw new Error(msg);\n });\n };\n\n /* ----- ALIASES ----- */\n\n Worker.prototype.using = Worker.prototype.set;\n Worker.prototype.saveAs = Worker.prototype.save;\n Worker.prototype.export = Worker.prototype.output;\n Worker.prototype.run = Worker.prototype.then;\n\n // Get dimensions of a PDF page, as determined by jsPDF.\n jsPDF.getPageSize = function(orientation, unit, format) {\n // Decode options object\n if (typeof orientation === \"object\") {\n var options = orientation;\n orientation = options.orientation;\n unit = options.unit || unit;\n format = options.format || format;\n }\n\n // Default options\n unit = unit || \"mm\";\n format = format || \"a4\";\n orientation = (\"\" + (orientation || \"P\")).toLowerCase();\n var format_as_string = (\"\" + format).toLowerCase();\n\n // Size in pt of various paper formats\n var pageFormats = {\n a0: [2383.94, 3370.39],\n a1: [1683.78, 2383.94],\n a2: [1190.55, 1683.78],\n a3: [841.89, 1190.55],\n a4: [595.28, 841.89],\n a5: [419.53, 595.28],\n a6: [297.64, 419.53],\n a7: [209.76, 297.64],\n a8: [147.4, 209.76],\n a9: [104.88, 147.4],\n a10: [73.7, 104.88],\n b0: [2834.65, 4008.19],\n b1: [2004.09, 2834.65],\n b2: [1417.32, 2004.09],\n b3: [1000.63, 1417.32],\n b4: [708.66, 1000.63],\n b5: [498.9, 708.66],\n b6: [354.33, 498.9],\n b7: [249.45, 354.33],\n b8: [175.75, 249.45],\n b9: [124.72, 175.75],\n b10: [87.87, 124.72],\n c0: [2599.37, 3676.54],\n c1: [1836.85, 2599.37],\n c2: [1298.27, 1836.85],\n c3: [918.43, 1298.27],\n c4: [649.13, 918.43],\n c5: [459.21, 649.13],\n c6: [323.15, 459.21],\n c7: [229.61, 323.15],\n c8: [161.57, 229.61],\n c9: [113.39, 161.57],\n c10: [79.37, 113.39],\n dl: [311.81, 623.62],\n letter: [612, 792],\n \"government-letter\": [576, 756],\n legal: [612, 1008],\n \"junior-legal\": [576, 360],\n ledger: [1224, 792],\n tabloid: [792, 1224],\n \"credit-card\": [153, 243]\n };\n\n var k;\n // Unit conversion\n switch (unit) {\n case \"pt\":\n k = 1;\n break;\n case \"mm\":\n k = 72 / 25.4;\n break;\n case \"cm\":\n k = 72 / 2.54;\n break;\n case \"in\":\n k = 72;\n break;\n case \"px\":\n k = 72 / 96;\n break;\n case \"pc\":\n k = 12;\n break;\n case \"em\":\n k = 12;\n break;\n case \"ex\":\n k = 6;\n break;\n default:\n throw \"Invalid unit: \" + unit;\n }\n var pageHeight = 0;\n var pageWidth = 0;\n\n // Dimensions are stored as user units and converted to points on output\n if (pageFormats.hasOwnProperty(format_as_string)) {\n pageHeight = pageFormats[format_as_string][1] / k;\n pageWidth = pageFormats[format_as_string][0] / k;\n } else {\n try {\n pageHeight = format[1];\n pageWidth = format[0];\n } catch (err) {\n throw new Error(\"Invalid format: \" + format);\n }\n }\n\n var tmp;\n // Handle page orientation\n if (orientation === \"p\" || orientation === \"portrait\") {\n orientation = \"p\";\n if (pageWidth > pageHeight) {\n tmp = pageWidth;\n pageWidth = pageHeight;\n pageHeight = tmp;\n }\n } else if (orientation === \"l\" || orientation === \"landscape\") {\n orientation = \"l\";\n if (pageHeight > pageWidth) {\n tmp = pageWidth;\n pageWidth = pageHeight;\n pageHeight = tmp;\n }\n } else {\n throw \"Invalid orientation: \" + orientation;\n }\n\n // Return information (k is the unit conversion ratio from pts)\n var info = {\n width: pageWidth,\n height: pageHeight,\n unit: unit,\n k: k,\n orientation: orientation\n };\n return info;\n };\n\n /**\n * @typedef FontFace\n *\n * The font-face type implements an interface similar to that of the font-face CSS rule,\n * and is used by jsPDF to match fonts when the font property of CanvasRenderingContext2D\n * is updated.\n *\n * All properties expect values similar to those in the font-face CSS rule. A difference\n * is the font-family, which do not need to be enclosed in double-quotes when containing\n * spaces like in CSS.\n *\n * @property {string} family The name of the font-family.\n * @property {string|undefined} style The style that this font-face defines, e.g. 'italic'.\n * @property {string|number|undefined} weight The weight of the font, either as a string or a number (400, 500, 600, e.g.)\n * @property {string|undefined} stretch The stretch of the font, e.g. condensed, normal, expanded.\n * @property {Object[]} src A list of URLs from where fonts of various formats can be fetched.\n * @property {string} [src] url A URL to a font of a specific format.\n * @property {string} [src] format Format of the font referenced by the URL.\n */\n\n /**\n * Generate a PDF from an HTML element or string using.\n *\n * @name html\n * @function\n * @param {HTMLElement|string} source The source HTMLElement or a string containing HTML.\n * @param {Object} [options] Collection of settings\n * @param {function} [options.callback] The mandatory callback-function gets as first parameter the current jsPDF instance\n * @param {(number|number[])=} [options.margin] Page margins [top, right, bottom, left]. Default is 0.\n * @param {(boolean|'slice'|'text')=} [options.autoPaging] The auto paging mode.\n *
      \n *
    • \n * false: Auto paging is disabled.\n *
    • \n *
    • \n * true or 'slice': Will cut shapes or text chunks across page breaks. Will possibly\n * slice text in half, making it difficult to read.\n *
    • \n *
    • \n * 'text': Trys not to cut text in half across page breaks. Works best for documents consisting\n * mostly of a single column of text.\n *
    • \n *
    \n * Default is true.\n * @param {string} [options.filename] name of the file\n * @param {HTMLOptionImage} [options.image] image settings when converting HTML to image\n * @param {Html2CanvasOptions} [options.html2canvas] html2canvas options\n * @param {FontFace[]} [options.fontFaces] A list of font-faces to match when resolving fonts. Fonts will be added to the PDF based on the specified URL. If omitted, the font match algorithm falls back to old algorithm.\n * @param {jsPDF} [options.jsPDF] jsPDF instance\n * @param {number=} [options.x] x position on the PDF document in jsPDF units.\n * @param {number=} [options.y] y position on the PDF document in jsPDF units.\n * @param {number=} [options.width] The target width in the PDF document in jsPDF units. The rendered element will be\n * scaled such that it fits into the specified width. Has no effect if either the html2canvas.scale is\n * specified or the windowWidth option is NOT specified.\n * @param {number=} [options.windowWidth] The window width in CSS pixels. In contrast to the\n * html2canvas.windowWidth option, this option affects the actual container size while rendering and\n * does NOT affect CSS media queries. This option only has an effect, if the width option is also specified.\n *\n * @example\n * var doc = new jsPDF();\n *\n * doc.html(document.body, {\n * callback: function (doc) {\n * doc.save();\n * },\n * x: 10,\n * y: 10\n * });\n */\n jsPDFAPI.html = function(src, options) {\n \"use strict\";\n\n options = options || {};\n options.callback = options.callback || function() {};\n options.html2canvas = options.html2canvas || {};\n options.html2canvas.canvas = options.html2canvas.canvas || this.canvas;\n options.jsPDF = options.jsPDF || this;\n options.fontFaces = options.fontFaces\n ? options.fontFaces.map(normalizeFontFace)\n : null;\n\n // Create a new worker with the given options.\n var worker = new Worker(options);\n\n if (!options.worker) {\n // If worker is not set to true, perform the traditional 'simple' operation.\n return worker.from(src).doCallback();\n } else {\n // Otherwise, return the worker for new Promise-based operation.\n return worker;\n }\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF Outline PlugIn\n *\n * Generates a PDF Outline\n * @name outline\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var namesOid;\n //var destsGoto = [];\n\n jsPDFAPI.events.push([\n \"postPutResources\",\n function() {\n var pdf = this;\n var rx = /^(\\d+) 0 obj$/;\n\n // Write action goto objects for each page\n // this.outline.destsGoto = [];\n // for (var i = 0; i < totalPages; i++) {\n // var id = pdf.internal.newObject();\n // this.outline.destsGoto.push(id);\n // pdf.internal.write(\"<> endobj\");\n // }\n //\n // for (var i = 0; i < dests.length; i++) {\n // pdf.internal.write(\"(page_\" + (i + 1) + \")\" + dests[i] + \" 0\n // R\");\n // }\n //\n if (this.outline.root.children.length > 0) {\n var lines = pdf.outline.render().split(/\\r\\n/);\n for (var i = 0; i < lines.length; i++) {\n var line = lines[i];\n var m = rx.exec(line);\n if (m != null) {\n var oid = m[1];\n pdf.internal.newObjectDeferredBegin(oid, false);\n }\n pdf.internal.write(line);\n }\n }\n\n // This code will write named destination for each page reference\n // (page_1, etc)\n if (this.outline.createNamedDestinations) {\n var totalPages = this.internal.pages.length;\n // WARNING: this assumes jsPDF starts on page 3 and pageIDs\n // follow 5, 7, 9, etc\n // Write destination objects for each page\n var dests = [];\n for (var i = 0; i < totalPages; i++) {\n var id = pdf.internal.newObject();\n dests.push(id);\n var info = pdf.internal.getPageInfo(i + 1);\n pdf.internal.write(\n \"<< /D[\" + info.objId + \" 0 R /XYZ null null null]>> endobj\"\n );\n }\n\n // assign a name for each destination\n var names2Oid = pdf.internal.newObject();\n pdf.internal.write(\"<< /Names [ \");\n for (var i = 0; i < dests.length; i++) {\n pdf.internal.write(\"(page_\" + (i + 1) + \")\" + dests[i] + \" 0 R\");\n }\n pdf.internal.write(\" ] >>\", \"endobj\");\n\n // var kids = pdf.internal.newObject();\n // pdf.internal.write('<< /Kids [ ' + names2Oid + ' 0 R');\n // pdf.internal.write(' ] >>', 'endobj');\n\n namesOid = pdf.internal.newObject();\n pdf.internal.write(\"<< /Dests \" + names2Oid + \" 0 R\");\n pdf.internal.write(\">>\", \"endobj\");\n }\n }\n ]);\n\n jsPDFAPI.events.push([\n \"putCatalog\",\n function() {\n var pdf = this;\n if (pdf.outline.root.children.length > 0) {\n pdf.internal.write(\n \"/Outlines\",\n this.outline.makeRef(this.outline.root)\n );\n if (this.outline.createNamedDestinations) {\n pdf.internal.write(\"/Names \" + namesOid + \" 0 R\");\n }\n // Open with Bookmarks showing\n // pdf.internal.write(\"/PageMode /UseOutlines\");\n }\n }\n ]);\n\n jsPDFAPI.events.push([\n \"initialized\",\n function() {\n var pdf = this;\n\n pdf.outline = {\n createNamedDestinations: false,\n root: {\n children: []\n }\n };\n\n /**\n * Options: pageNumber\n */\n pdf.outline.add = function(parent, title, options) {\n var item = {\n title: title,\n options: options,\n children: []\n };\n if (parent == null) {\n parent = this.root;\n }\n parent.children.push(item);\n return item;\n };\n\n pdf.outline.render = function() {\n this.ctx = {};\n this.ctx.val = \"\";\n this.ctx.pdf = pdf;\n\n this.genIds_r(this.root);\n this.renderRoot(this.root);\n this.renderItems(this.root);\n\n return this.ctx.val;\n };\n\n pdf.outline.genIds_r = function(node) {\n node.id = pdf.internal.newObjectDeferred();\n for (var i = 0; i < node.children.length; i++) {\n this.genIds_r(node.children[i]);\n }\n };\n\n pdf.outline.renderRoot = function(node) {\n this.objStart(node);\n this.line(\"/Type /Outlines\");\n if (node.children.length > 0) {\n this.line(\"/First \" + this.makeRef(node.children[0]));\n this.line(\n \"/Last \" + this.makeRef(node.children[node.children.length - 1])\n );\n }\n this.line(\n \"/Count \" +\n this.count_r(\n {\n count: 0\n },\n node\n )\n );\n this.objEnd();\n };\n\n pdf.outline.renderItems = function(node) {\n var getVerticalCoordinateString = this.ctx.pdf.internal\n .getVerticalCoordinateString;\n for (var i = 0; i < node.children.length; i++) {\n var item = node.children[i];\n this.objStart(item);\n\n this.line(\"/Title \" + this.makeString(item.title));\n\n this.line(\"/Parent \" + this.makeRef(node));\n if (i > 0) {\n this.line(\"/Prev \" + this.makeRef(node.children[i - 1]));\n }\n if (i < node.children.length - 1) {\n this.line(\"/Next \" + this.makeRef(node.children[i + 1]));\n }\n if (item.children.length > 0) {\n this.line(\"/First \" + this.makeRef(item.children[0]));\n this.line(\n \"/Last \" + this.makeRef(item.children[item.children.length - 1])\n );\n }\n\n var count = (this.count = this.count_r(\n {\n count: 0\n },\n item\n ));\n if (count > 0) {\n this.line(\"/Count \" + count);\n }\n\n if (item.options) {\n if (item.options.pageNumber) {\n // Explicit Destination\n //WARNING this assumes page ids are 3,5,7, etc.\n var info = pdf.internal.getPageInfo(item.options.pageNumber);\n this.line(\n \"/Dest \" +\n \"[\" +\n info.objId +\n \" 0 R /XYZ 0 \" +\n getVerticalCoordinateString(0) +\n \" 0]\"\n );\n // this line does not work on all clients (pageNumber instead of page ref)\n //this.line('/Dest ' + '[' + (item.options.pageNumber - 1) + ' /XYZ 0 ' + this.ctx.pdf.internal.pageSize.getHeight() + ' 0]');\n\n // Named Destination\n // this.line('/Dest (page_' + (item.options.pageNumber) + ')');\n\n // Action Destination\n // var id = pdf.internal.newObject();\n // pdf.internal.write('<> endobj');\n // this.line('/A ' + id + ' 0 R' );\n }\n }\n this.objEnd();\n }\n for (var z = 0; z < node.children.length; z++) {\n this.renderItems(node.children[z]);\n }\n };\n\n pdf.outline.line = function(text) {\n this.ctx.val += text + \"\\r\\n\";\n };\n\n pdf.outline.makeRef = function(node) {\n return node.id + \" 0 R\";\n };\n\n pdf.outline.makeString = function(val) {\n return \"(\" + pdf.internal.pdfEscape(val) + \")\";\n };\n\n pdf.outline.objStart = function(node) {\n this.ctx.val += \"\\r\\n\" + node.id + \" 0 obj\" + \"\\r\\n<<\\r\\n\";\n };\n\n pdf.outline.objEnd = function() {\n this.ctx.val += \">> \\r\\n\" + \"endobj\" + \"\\r\\n\";\n };\n\n pdf.outline.count_r = function(ctx, node) {\n for (var i = 0; i < node.children.length; i++) {\n ctx.count++;\n this.count_r(ctx, node.children[i]);\n }\n return ctx.count;\n };\n }\n ]);\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF jpeg Support PlugIn\n *\n * @name jpeg_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * 0xc0 (SOF) Huffman - Baseline DCT\n * 0xc1 (SOF) Huffman - Extended sequential DCT\n * 0xc2 Progressive DCT (SOF2)\n * 0xc3 Spatial (sequential) lossless (SOF3)\n * 0xc4 Differential sequential DCT (SOF5)\n * 0xc5 Differential progressive DCT (SOF6)\n * 0xc6 Differential spatial (SOF7)\n * 0xc7\n */\n var markers = [0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7];\n\n //takes a string imgData containing the raw bytes of\n //a jpeg image and returns [width, height]\n //Algorithm from: http://www.64lines.com/jpeg-width-height\n var getJpegInfo = function(imgData) {\n var width, height, numcomponents;\n var blockLength = imgData.charCodeAt(4) * 256 + imgData.charCodeAt(5);\n var len = imgData.length;\n var result = { width: 0, height: 0, numcomponents: 1 };\n for (var i = 4; i < len; i += 2) {\n i += blockLength;\n if (markers.indexOf(imgData.charCodeAt(i + 1)) !== -1) {\n height = imgData.charCodeAt(i + 5) * 256 + imgData.charCodeAt(i + 6);\n width = imgData.charCodeAt(i + 7) * 256 + imgData.charCodeAt(i + 8);\n numcomponents = imgData.charCodeAt(i + 9);\n result = { width: width, height: height, numcomponents: numcomponents };\n break;\n } else {\n blockLength =\n imgData.charCodeAt(i + 2) * 256 + imgData.charCodeAt(i + 3);\n }\n }\n return result;\n };\n\n /**\n * @ignore\n */\n jsPDFAPI.processJPEG = function(\n data,\n index,\n alias,\n compression,\n dataAsBinaryString,\n colorSpace\n ) {\n var filter = this.decode.DCT_DECODE,\n bpc = 8,\n dims,\n result = null;\n\n if (\n typeof data === \"string\" ||\n this.__addimage__.isArrayBuffer(data) ||\n this.__addimage__.isArrayBufferView(data)\n ) {\n // if we already have a stored binary string rep use that\n data = dataAsBinaryString || data;\n data = this.__addimage__.isArrayBuffer(data)\n ? new Uint8Array(data)\n : data;\n data = this.__addimage__.isArrayBufferView(data)\n ? this.__addimage__.arrayBufferToBinaryString(data)\n : data;\n\n dims = getJpegInfo(data);\n switch (dims.numcomponents) {\n case 1:\n colorSpace = this.color_spaces.DEVICE_GRAY;\n break;\n case 4:\n colorSpace = this.color_spaces.DEVICE_CMYK;\n break;\n case 3:\n colorSpace = this.color_spaces.DEVICE_RGB;\n break;\n }\n\n result = {\n data: data,\n width: dims.width,\n height: dims.height,\n colorSpace: colorSpace,\n bitsPerComponent: bpc,\n filter: filter,\n index: index,\n alias: alias\n };\n }\n return result;\n };\n})(jsPDF.API);\n","// Generated by CoffeeScript 1.4.0\n\n/**\n * @license\n * PNG.js\n * Copyright (c) 2011 Devon Govett\n * MIT LICENSE\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\n * software and associated documentation files (the \"Software\"), to deal in the Software\n * without restriction, including without limitation the rights to use, copy, modify, merge,\n * publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons\n * to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or\n * substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING\n * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\nimport { unzlibSync } from \"./fflate.js\";\nimport { globalObject } from \"./globalObject.js\";\n\nvar PNG = (function() {\n var APNG_BLEND_OP_OVER,\n APNG_BLEND_OP_SOURCE,\n APNG_DISPOSE_OP_BACKGROUND,\n APNG_DISPOSE_OP_NONE,\n APNG_DISPOSE_OP_PREVIOUS,\n makeImage,\n scratchCanvas,\n scratchCtx;\n\n APNG_DISPOSE_OP_NONE = 0;\n\n APNG_DISPOSE_OP_BACKGROUND = 1;\n\n APNG_DISPOSE_OP_PREVIOUS = 2;\n\n APNG_BLEND_OP_SOURCE = 0;\n\n APNG_BLEND_OP_OVER = 1;\n\n function PNG(data) {\n var chunkSize,\n colors,\n palLen,\n delayDen,\n delayNum,\n frame,\n i,\n index,\n key,\n section,\n palShort,\n text,\n _i,\n _j,\n _ref;\n this.data = data;\n this.pos = 8;\n this.palette = [];\n this.imgData = [];\n this.transparency = {};\n this.animation = null;\n this.text = {};\n frame = null;\n while (true) {\n chunkSize = this.readUInt32();\n section = function() {\n var _i, _results;\n _results = [];\n for (i = _i = 0; _i < 4; i = ++_i) {\n _results.push(String.fromCharCode(this.data[this.pos++]));\n }\n return _results;\n }\n .call(this)\n .join(\"\");\n switch (section) {\n case \"IHDR\":\n this.width = this.readUInt32();\n this.height = this.readUInt32();\n this.bits = this.data[this.pos++];\n this.colorType = this.data[this.pos++];\n this.compressionMethod = this.data[this.pos++];\n this.filterMethod = this.data[this.pos++];\n this.interlaceMethod = this.data[this.pos++];\n break;\n case \"acTL\":\n this.animation = {\n numFrames: this.readUInt32(),\n numPlays: this.readUInt32() || Infinity,\n frames: []\n };\n break;\n case \"PLTE\":\n this.palette = this.read(chunkSize);\n break;\n case \"fcTL\":\n if (frame) {\n this.animation.frames.push(frame);\n }\n this.pos += 4;\n frame = {\n width: this.readUInt32(),\n height: this.readUInt32(),\n xOffset: this.readUInt32(),\n yOffset: this.readUInt32()\n };\n delayNum = this.readUInt16();\n delayDen = this.readUInt16() || 100;\n frame.delay = (1000 * delayNum) / delayDen;\n frame.disposeOp = this.data[this.pos++];\n frame.blendOp = this.data[this.pos++];\n frame.data = [];\n break;\n case \"IDAT\":\n case \"fdAT\":\n if (section === \"fdAT\") {\n this.pos += 4;\n chunkSize -= 4;\n }\n data = (frame != null ? frame.data : void 0) || this.imgData;\n for (\n i = _i = 0;\n 0 <= chunkSize ? _i < chunkSize : _i > chunkSize;\n i = 0 <= chunkSize ? ++_i : --_i\n ) {\n data.push(this.data[this.pos++]);\n }\n break;\n case \"tRNS\":\n this.transparency = {};\n switch (this.colorType) {\n case 3:\n palLen = this.palette.length / 3;\n this.transparency.indexed = this.read(chunkSize);\n if (this.transparency.indexed.length > palLen)\n throw new Error(\"More transparent colors than palette size\");\n /*\n * According to the PNG spec trns should be increased to the same size as palette if shorter\n */\n //palShort = 255 - this.transparency.indexed.length;\n palShort = palLen - this.transparency.indexed.length;\n if (palShort > 0) {\n for (\n i = _j = 0;\n 0 <= palShort ? _j < palShort : _j > palShort;\n i = 0 <= palShort ? ++_j : --_j\n ) {\n this.transparency.indexed.push(255);\n }\n }\n break;\n case 0:\n this.transparency.grayscale = this.read(chunkSize)[0];\n break;\n case 2:\n this.transparency.rgb = this.read(chunkSize);\n }\n break;\n case \"tEXt\":\n text = this.read(chunkSize);\n index = text.indexOf(0);\n key = String.fromCharCode.apply(String, text.slice(0, index));\n this.text[key] = String.fromCharCode.apply(\n String,\n text.slice(index + 1)\n );\n break;\n case \"IEND\":\n if (frame) {\n this.animation.frames.push(frame);\n }\n this.colors = function() {\n switch (this.colorType) {\n case 0:\n case 3:\n case 4:\n return 1;\n case 2:\n case 6:\n return 3;\n }\n }.call(this);\n this.hasAlphaChannel = (_ref = this.colorType) === 4 || _ref === 6;\n colors = this.colors + (this.hasAlphaChannel ? 1 : 0);\n this.pixelBitlength = this.bits * colors;\n this.colorSpace = function() {\n switch (this.colors) {\n case 1:\n return \"DeviceGray\";\n case 3:\n return \"DeviceRGB\";\n }\n }.call(this);\n this.imgData = new Uint8Array(this.imgData);\n return;\n default:\n this.pos += chunkSize;\n }\n this.pos += 4;\n if (this.pos > this.data.length) {\n throw new Error(\"Incomplete or corrupt PNG file\");\n }\n }\n }\n\n PNG.prototype.read = function(bytes) {\n var i, _i, _results;\n _results = [];\n for (\n i = _i = 0;\n 0 <= bytes ? _i < bytes : _i > bytes;\n i = 0 <= bytes ? ++_i : --_i\n ) {\n _results.push(this.data[this.pos++]);\n }\n return _results;\n };\n\n PNG.prototype.readUInt32 = function() {\n var b1, b2, b3, b4;\n b1 = this.data[this.pos++] << 24;\n b2 = this.data[this.pos++] << 16;\n b3 = this.data[this.pos++] << 8;\n b4 = this.data[this.pos++];\n return b1 | b2 | b3 | b4;\n };\n\n PNG.prototype.readUInt16 = function() {\n var b1, b2;\n b1 = this.data[this.pos++] << 8;\n b2 = this.data[this.pos++];\n return b1 | b2;\n };\n\n PNG.prototype.decodePixels = function(data) {\n var pixelBytes = this.pixelBitlength / 8;\n var fullPixels = new Uint8Array(this.width * this.height * pixelBytes);\n var pos = 0;\n var _this = this;\n\n if (data == null) {\n data = this.imgData;\n }\n if (data.length === 0) {\n return new Uint8Array(0);\n }\n\n data = unzlibSync(data);\n function pass(x0, y0, dx, dy) {\n var abyte,\n c,\n col,\n i,\n left,\n length,\n p,\n pa,\n paeth,\n pb,\n pc,\n pixels,\n row,\n scanlineLength,\n upper,\n upperLeft,\n _i,\n _j,\n _k,\n _l,\n _m;\n var w = Math.ceil((_this.width - x0) / dx),\n h = Math.ceil((_this.height - y0) / dy);\n var isFull = _this.width == w && _this.height == h;\n scanlineLength = pixelBytes * w;\n pixels = isFull ? fullPixels : new Uint8Array(scanlineLength * h);\n length = data.length;\n row = 0;\n c = 0;\n while (row < h && pos < length) {\n switch (data[pos++]) {\n case 0:\n for (i = _i = 0; _i < scanlineLength; i = _i += 1) {\n pixels[c++] = data[pos++];\n }\n break;\n case 1:\n for (i = _j = 0; _j < scanlineLength; i = _j += 1) {\n abyte = data[pos++];\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n pixels[c++] = (abyte + left) % 256;\n }\n break;\n case 2:\n for (i = _k = 0; _k < scanlineLength; i = _k += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n upper =\n row &&\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n pixels[c++] = (upper + abyte) % 256;\n }\n break;\n case 3:\n for (i = _l = 0; _l < scanlineLength; i = _l += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n upper =\n row &&\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n pixels[c++] = (abyte + Math.floor((left + upper) / 2)) % 256;\n }\n break;\n case 4:\n for (i = _m = 0; _m < scanlineLength; i = _m += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n if (row === 0) {\n upper = upperLeft = 0;\n } else {\n upper =\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n upperLeft =\n col &&\n pixels[\n (row - 1) * scanlineLength +\n (col - 1) * pixelBytes +\n (i % pixelBytes)\n ];\n }\n p = left + upper - upperLeft;\n pa = Math.abs(p - left);\n pb = Math.abs(p - upper);\n pc = Math.abs(p - upperLeft);\n if (pa <= pb && pa <= pc) {\n paeth = left;\n } else if (pb <= pc) {\n paeth = upper;\n } else {\n paeth = upperLeft;\n }\n pixels[c++] = (abyte + paeth) % 256;\n }\n break;\n default:\n throw new Error(\"Invalid filter algorithm: \" + data[pos - 1]);\n }\n if (!isFull) {\n var fullPos = ((y0 + row * dy) * _this.width + x0) * pixelBytes;\n var partPos = row * scanlineLength;\n for (i = 0; i < w; i += 1) {\n for (var j = 0; j < pixelBytes; j += 1)\n fullPixels[fullPos++] = pixels[partPos++];\n fullPos += (dx - 1) * pixelBytes;\n }\n }\n row++;\n }\n }\n if (_this.interlaceMethod == 1) {\n /*\n 1 6 4 6 2 6 4 6\n 7 7 7 7 7 7 7 7\n 5 6 5 6 5 6 5 6\n 7 7 7 7 7 7 7 7\n 3 6 4 6 3 6 4 6\n 7 7 7 7 7 7 7 7\n 5 6 5 6 5 6 5 6\n 7 7 7 7 7 7 7 7\n */\n pass(0, 0, 8, 8); // 1\n /* NOTE these seem to follow the pattern:\n * pass(x, 0, 2*x, 2*x);\n * pass(0, x, x, 2*x);\n * with x being 4, 2, 1.\n */\n pass(4, 0, 8, 8); // 2\n pass(0, 4, 4, 8); // 3\n\n pass(2, 0, 4, 4); // 4\n pass(0, 2, 2, 4); // 5\n\n pass(1, 0, 2, 2); // 6\n pass(0, 1, 1, 2); // 7\n } else {\n pass(0, 0, 1, 1);\n }\n return fullPixels;\n };\n\n PNG.prototype.decodePalette = function() {\n var c, i, length, palette, pos, ret, transparency, _i, _ref, _ref1;\n palette = this.palette;\n transparency = this.transparency.indexed || [];\n ret = new Uint8Array((transparency.length || 0) + palette.length);\n pos = 0;\n length = palette.length;\n c = 0;\n for (i = _i = 0, _ref = length; _i < _ref; i = _i += 3) {\n ret[pos++] = palette[i];\n ret[pos++] = palette[i + 1];\n ret[pos++] = palette[i + 2];\n ret[pos++] = (_ref1 = transparency[c++]) != null ? _ref1 : 255;\n }\n return ret;\n };\n\n PNG.prototype.copyToImageData = function(imageData, pixels) {\n var alpha, colors, data, i, input, j, k, length, palette, v, _ref;\n colors = this.colors;\n palette = null;\n alpha = this.hasAlphaChannel;\n if (this.palette.length) {\n palette =\n (_ref = this._decodedPalette) != null\n ? _ref\n : (this._decodedPalette = this.decodePalette());\n colors = 4;\n alpha = true;\n }\n data = imageData.data || imageData;\n length = data.length;\n input = palette || pixels;\n i = j = 0;\n if (colors === 1) {\n while (i < length) {\n k = palette ? pixels[i / 4] * 4 : j;\n v = input[k++];\n data[i++] = v;\n data[i++] = v;\n data[i++] = v;\n data[i++] = alpha ? input[k++] : 255;\n j = k;\n }\n } else {\n while (i < length) {\n k = palette ? pixels[i / 4] * 4 : j;\n data[i++] = input[k++];\n data[i++] = input[k++];\n data[i++] = input[k++];\n data[i++] = alpha ? input[k++] : 255;\n j = k;\n }\n }\n };\n\n PNG.prototype.decode = function() {\n var ret;\n ret = new Uint8Array(this.width * this.height * 4);\n this.copyToImageData(ret, this.decodePixels());\n return ret;\n };\n\n var hasBrowserCanvas = function() {\n if (Object.prototype.toString.call(globalObject) === \"[object Window]\") {\n try {\n scratchCanvas = globalObject.document.createElement(\"canvas\");\n scratchCtx = scratchCanvas.getContext(\"2d\");\n } catch (e) {\n return false;\n }\n return true;\n }\n return false;\n };\n\n hasBrowserCanvas();\n\n makeImage = function(imageData) {\n if (hasBrowserCanvas() === true) {\n var img;\n scratchCtx.width = imageData.width;\n scratchCtx.height = imageData.height;\n scratchCtx.clearRect(0, 0, imageData.width, imageData.height);\n scratchCtx.putImageData(imageData, 0, 0);\n img = new Image();\n img.src = scratchCanvas.toDataURL();\n return img;\n }\n throw new Error(\"This method requires a Browser with Canvas-capability.\");\n };\n\n PNG.prototype.decodeFrames = function(ctx) {\n var frame, i, imageData, pixels, _i, _len, _ref, _results;\n if (!this.animation) {\n return;\n }\n _ref = this.animation.frames;\n _results = [];\n for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {\n frame = _ref[i];\n imageData = ctx.createImageData(frame.width, frame.height);\n pixels = this.decodePixels(new Uint8Array(frame.data));\n this.copyToImageData(imageData, pixels);\n frame.imageData = imageData;\n _results.push((frame.image = makeImage(imageData)));\n }\n return _results;\n };\n\n PNG.prototype.renderFrame = function(ctx, number) {\n var frame, frames, prev;\n frames = this.animation.frames;\n frame = frames[number];\n prev = frames[number - 1];\n if (number === 0) {\n ctx.clearRect(0, 0, this.width, this.height);\n }\n if (\n (prev != null ? prev.disposeOp : void 0) === APNG_DISPOSE_OP_BACKGROUND\n ) {\n ctx.clearRect(prev.xOffset, prev.yOffset, prev.width, prev.height);\n } else if (\n (prev != null ? prev.disposeOp : void 0) === APNG_DISPOSE_OP_PREVIOUS\n ) {\n ctx.putImageData(prev.imageData, prev.xOffset, prev.yOffset);\n }\n if (frame.blendOp === APNG_BLEND_OP_SOURCE) {\n ctx.clearRect(frame.xOffset, frame.yOffset, frame.width, frame.height);\n }\n return ctx.drawImage(frame.image, frame.xOffset, frame.yOffset);\n };\n\n PNG.prototype.animate = function(ctx) {\n var doFrame,\n frameNumber,\n frames,\n numFrames,\n numPlays,\n _ref,\n _this = this;\n frameNumber = 0;\n (_ref = this.animation),\n (numFrames = _ref.numFrames),\n (frames = _ref.frames),\n (numPlays = _ref.numPlays);\n return (doFrame = function() {\n var f, frame;\n f = frameNumber++ % numFrames;\n frame = frames[f];\n _this.renderFrame(ctx, f);\n if (numFrames > 1 && frameNumber / numFrames < numPlays) {\n return (_this.animation._timeout = setTimeout(doFrame, frame.delay));\n }\n })();\n };\n\n PNG.prototype.stopAnimation = function() {\n var _ref;\n return clearTimeout(\n (_ref = this.animation) != null ? _ref._timeout : void 0\n );\n };\n\n PNG.prototype.render = function(canvas) {\n var ctx, data;\n if (canvas._png) {\n canvas._png.stopAnimation();\n }\n canvas._png = this;\n canvas.width = this.width;\n canvas.height = this.height;\n ctx = canvas.getContext(\"2d\");\n if (this.animation) {\n this.decodeFrames(ctx);\n return this.animate(ctx);\n } else {\n data = ctx.createImageData(this.width, this.height);\n this.copyToImageData(data, this.decodePixels());\n return ctx.putImageData(data, 0, 0);\n }\n };\n\n return PNG;\n})();\n\nexport { PNG };\n","/** @license\n * MIT license.\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF split_text_to_size plugin\n *\n * @name split_text_to_size\n * @module\n */\n(function(API) {\n \"use strict\";\n /**\n * Returns an array of length matching length of the 'word' string, with each\n * cell occupied by the width of the char in that position.\n *\n * @name getCharWidthsArray\n * @function\n * @param {string} text\n * @param {Object} options\n * @returns {Array}\n */\n var getCharWidthsArray = (API.getCharWidthsArray = function(text, options) {\n options = options || {};\n\n var activeFont = options.font || this.internal.getFont();\n var fontSize = options.fontSize || this.internal.getFontSize();\n var charSpace = options.charSpace || this.internal.getCharSpace();\n\n var widths = options.widths\n ? options.widths\n : activeFont.metadata.Unicode.widths;\n var widthsFractionOf = widths.fof ? widths.fof : 1;\n var kerning = options.kerning\n ? options.kerning\n : activeFont.metadata.Unicode.kerning;\n var kerningFractionOf = kerning.fof ? kerning.fof : 1;\n var doKerning = options.doKerning === false ? false : true;\n var kerningValue = 0;\n\n var i;\n var length = text.length;\n var char_code;\n var prior_char_code = 0; //for kerning\n var default_char_width = widths[0] || widthsFractionOf;\n var output = [];\n\n for (i = 0; i < length; i++) {\n char_code = text.charCodeAt(i);\n\n if (typeof activeFont.metadata.widthOfString === \"function\") {\n output.push(\n (activeFont.metadata.widthOfGlyph(\n activeFont.metadata.characterToGlyph(char_code)\n ) +\n charSpace * (1000 / fontSize) || 0) / 1000\n );\n } else {\n if (\n doKerning &&\n typeof kerning[char_code] === \"object\" &&\n !isNaN(parseInt(kerning[char_code][prior_char_code], 10))\n ) {\n kerningValue =\n kerning[char_code][prior_char_code] / kerningFractionOf;\n } else {\n kerningValue = 0;\n }\n output.push(\n (widths[char_code] || default_char_width) / widthsFractionOf +\n kerningValue\n );\n }\n prior_char_code = char_code;\n }\n\n return output;\n });\n\n /**\n * Returns a widths of string in a given font, if the font size is set as 1 point.\n *\n * In other words, this is \"proportional\" value. For 1 unit of font size, the length\n * of the string will be that much.\n *\n * Multiply by font size to get actual width in *points*\n * Then divide by 72 to get inches or divide by (72/25.6) to get 'mm' etc.\n *\n * @name getStringUnitWidth\n * @public\n * @function\n * @param {string} text\n * @param {string} options\n * @returns {number} result\n */\n var getStringUnitWidth = (API.getStringUnitWidth = function(text, options) {\n options = options || {};\n\n var fontSize = options.fontSize || this.internal.getFontSize();\n var font = options.font || this.internal.getFont();\n var charSpace = options.charSpace || this.internal.getCharSpace();\n var result = 0;\n\n if (API.processArabic) {\n text = API.processArabic(text);\n }\n\n if (typeof font.metadata.widthOfString === \"function\") {\n result =\n font.metadata.widthOfString(text, fontSize, charSpace) / fontSize;\n } else {\n result = getCharWidthsArray\n .apply(this, arguments)\n .reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n }\n return result;\n });\n\n /**\n returns array of lines\n */\n var splitLongWord = function(word, widths_array, firstLineMaxLen, maxLen) {\n var answer = [];\n\n // 1st, chop off the piece that can fit on the hanging line.\n var i = 0,\n l = word.length,\n workingLen = 0;\n while (i !== l && workingLen + widths_array[i] < firstLineMaxLen) {\n workingLen += widths_array[i];\n i++;\n }\n // this is first line.\n answer.push(word.slice(0, i));\n\n // 2nd. Split the rest into maxLen pieces.\n var startOfLine = i;\n workingLen = 0;\n while (i !== l) {\n if (workingLen + widths_array[i] > maxLen) {\n answer.push(word.slice(startOfLine, i));\n workingLen = 0;\n startOfLine = i;\n }\n workingLen += widths_array[i];\n i++;\n }\n if (startOfLine !== i) {\n answer.push(word.slice(startOfLine, i));\n }\n\n return answer;\n };\n\n // Note, all sizing inputs for this function must be in \"font measurement units\"\n // By default, for PDF, it's \"point\".\n var splitParagraphIntoLines = function(text, maxlen, options) {\n // at this time works only on Western scripts, ones with space char\n // separating the words. Feel free to expand.\n\n if (!options) {\n options = {};\n }\n\n var line = [],\n lines = [line],\n line_length = options.textIndent || 0,\n separator_length = 0,\n current_word_length = 0,\n word,\n widths_array,\n words = text.split(\" \"),\n spaceCharWidth = getCharWidthsArray.apply(this, [\" \", options])[0],\n i,\n l,\n tmp,\n lineIndent;\n\n if (options.lineIndent === -1) {\n lineIndent = words[0].length + 2;\n } else {\n lineIndent = options.lineIndent || 0;\n }\n if (lineIndent) {\n var pad = Array(lineIndent).join(\" \"),\n wrds = [];\n words.map(function(wrd) {\n wrd = wrd.split(/\\s*\\n/);\n if (wrd.length > 1) {\n wrds = wrds.concat(\n wrd.map(function(wrd, idx) {\n return (idx && wrd.length ? \"\\n\" : \"\") + wrd;\n })\n );\n } else {\n wrds.push(wrd[0]);\n }\n });\n words = wrds;\n lineIndent = getStringUnitWidth.apply(this, [pad, options]);\n }\n\n for (i = 0, l = words.length; i < l; i++) {\n var force = 0;\n\n word = words[i];\n if (lineIndent && word[0] == \"\\n\") {\n word = word.substr(1);\n force = 1;\n }\n widths_array = getCharWidthsArray.apply(this, [word, options]);\n current_word_length = widths_array.reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n\n if (\n line_length + separator_length + current_word_length > maxlen ||\n force\n ) {\n if (current_word_length > maxlen) {\n // this happens when you have space-less long URLs for example.\n // we just chop these to size. We do NOT insert hiphens\n tmp = splitLongWord.apply(this, [\n word,\n widths_array,\n maxlen - (line_length + separator_length),\n maxlen\n ]);\n // first line we add to existing line object\n line.push(tmp.shift()); // it's ok to have extra space indicator there\n // last line we make into new line object\n line = [tmp.pop()];\n // lines in the middle we apped to lines object as whole lines\n while (tmp.length) {\n lines.push([tmp.shift()]); // single fragment occupies whole line\n }\n current_word_length = widths_array\n .slice(word.length - (line[0] ? line[0].length : 0))\n .reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n } else {\n // just put it on a new line\n line = [word];\n }\n\n // now we attach new line to lines\n lines.push(line);\n line_length = current_word_length + lineIndent;\n separator_length = spaceCharWidth;\n } else {\n line.push(word);\n\n line_length += separator_length + current_word_length;\n separator_length = spaceCharWidth;\n }\n }\n\n var postProcess;\n if (lineIndent) {\n postProcess = function(ln, idx) {\n return (idx ? pad : \"\") + ln.join(\" \");\n };\n } else {\n postProcess = function(ln) {\n return ln.join(\" \");\n };\n }\n\n return lines.map(postProcess);\n };\n\n /**\n * Splits a given string into an array of strings. Uses 'size' value\n * (in measurement units declared as default for the jsPDF instance)\n * and the font's \"widths\" and \"Kerning\" tables, where available, to\n * determine display length of a given string for a given font.\n *\n * We use character's 100% of unit size (height) as width when Width\n * table or other default width is not available.\n *\n * @name splitTextToSize\n * @public\n * @function\n * @param {string} text Unencoded, regular JavaScript (Unicode, UTF-16 / UCS-2) string.\n * @param {number} size Nominal number, measured in units default to this instance of jsPDF.\n * @param {Object} options Optional flags needed for chopper to do the right thing.\n * @returns {Array} array Array with strings chopped to size.\n */\n API.splitTextToSize = function(text, maxlen, options) {\n \"use strict\";\n\n options = options || {};\n\n var fsize = options.fontSize || this.internal.getFontSize(),\n newOptions = function(options) {\n var widths = {\n 0: 1\n },\n kerning = {};\n\n if (!options.widths || !options.kerning) {\n var f = this.internal.getFont(options.fontName, options.fontStyle),\n encoding = \"Unicode\";\n // NOT UTF8, NOT UTF16BE/LE, NOT UCS2BE/LE\n // Actual JavaScript-native String's 16bit char codes used.\n // no multi-byte logic here\n\n if (f.metadata[encoding]) {\n return {\n widths: f.metadata[encoding].widths || widths,\n kerning: f.metadata[encoding].kerning || kerning\n };\n } else {\n return {\n font: f.metadata,\n fontSize: this.internal.getFontSize(),\n charSpace: this.internal.getCharSpace()\n };\n }\n } else {\n return {\n widths: options.widths,\n kerning: options.kerning\n };\n }\n }.call(this, options);\n\n // first we split on end-of-line chars\n var paragraphs;\n if (Array.isArray(text)) {\n paragraphs = text;\n } else {\n paragraphs = String(text).split(/\\r?\\n/);\n }\n\n // now we convert size (max length of line) into \"font size units\"\n // at present time, the \"font size unit\" is always 'point'\n // 'proportional' means, \"in proportion to font size\"\n var fontUnit_maxLen = (1.0 * this.internal.scaleFactor * maxlen) / fsize;\n // at this time, fsize is always in \"points\" regardless of the default measurement unit of the doc.\n // this may change in the future?\n // until then, proportional_maxlen is likely to be in 'points'\n\n // If first line is to be indented (shorter or longer) than maxLen\n // we indicate that by using CSS-style \"text-indent\" option.\n // here it's in font units too (which is likely 'points')\n // it can be negative (which makes the first line longer than maxLen)\n newOptions.textIndent = options.textIndent\n ? (options.textIndent * 1.0 * this.internal.scaleFactor) / fsize\n : 0;\n newOptions.lineIndent = options.lineIndent;\n\n var i,\n l,\n output = [];\n for (i = 0, l = paragraphs.length; i < l; i++) {\n output = output.concat(\n splitParagraphIntoLines.apply(this, [\n paragraphs[i],\n fontUnit_maxLen,\n newOptions\n ])\n );\n }\n\n return output;\n };\n})(jsPDF.API);\n","/**\n * @license\n * (c) Dean McNamee , 2013.\n *\n * https://github.com/deanm/omggif\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n * omggif is a JavaScript implementation of a GIF 89a encoder and decoder,\n * including animation and compression. It does not rely on any specific\n * underlying system, so should run in the browser, Node, or Plask.\n */\n\n\"use strict\";\n\nimport { console } from \"./console.js\";\n\nfunction GifWriter(buf, width, height, gopts) {\n var p = 0;\n\n var gopts = gopts === undefined ? {} : gopts;\n var loop_count = gopts.loop === undefined ? null : gopts.loop;\n var global_palette = gopts.palette === undefined ? null : gopts.palette;\n\n if (width <= 0 || height <= 0 || width > 65535 || height > 65535)\n throw new Error(\"Width/Height invalid.\");\n\n function check_palette_and_num_colors(palette) {\n var num_colors = palette.length;\n if (num_colors < 2 || num_colors > 256 || num_colors & (num_colors - 1)) {\n throw new Error(\n \"Invalid code/color length, must be power of 2 and 2 .. 256.\"\n );\n }\n return num_colors;\n }\n\n // - Header.\n buf[p++] = 0x47;\n buf[p++] = 0x49;\n buf[p++] = 0x46; // GIF\n buf[p++] = 0x38;\n buf[p++] = 0x39;\n buf[p++] = 0x61; // 89a\n\n // Handling of Global Color Table (palette) and background index.\n var gp_num_colors_pow2 = 0;\n var background = 0;\n if (global_palette !== null) {\n var gp_num_colors = check_palette_and_num_colors(global_palette);\n while ((gp_num_colors >>= 1)) ++gp_num_colors_pow2;\n gp_num_colors = 1 << gp_num_colors_pow2;\n --gp_num_colors_pow2;\n if (gopts.background !== undefined) {\n background = gopts.background;\n if (background >= gp_num_colors)\n throw new Error(\"Background index out of range.\");\n // The GIF spec states that a background index of 0 should be ignored, so\n // this is probably a mistake and you really want to set it to another\n // slot in the palette. But actually in the end most browsers, etc end\n // up ignoring this almost completely (including for dispose background).\n if (background === 0)\n throw new Error(\"Background index explicitly passed as 0.\");\n }\n }\n\n // - Logical Screen Descriptor.\n // NOTE(deanm): w/h apparently ignored by implementations, but set anyway.\n buf[p++] = width & 0xff;\n buf[p++] = (width >> 8) & 0xff;\n buf[p++] = height & 0xff;\n buf[p++] = (height >> 8) & 0xff;\n // NOTE: Indicates 0-bpp original color resolution (unused?).\n buf[p++] = (global_palette !== null ? 0x80 : 0) | gp_num_colors_pow2; // Global Color Table Flag. // NOTE: No sort flag (unused?).\n buf[p++] = background; // Background Color Index.\n buf[p++] = 0; // Pixel aspect ratio (unused?).\n\n // - Global Color Table\n if (global_palette !== null) {\n for (var i = 0, il = global_palette.length; i < il; ++i) {\n var rgb = global_palette[i];\n buf[p++] = (rgb >> 16) & 0xff;\n buf[p++] = (rgb >> 8) & 0xff;\n buf[p++] = rgb & 0xff;\n }\n }\n\n if (loop_count !== null) {\n // Netscape block for looping.\n if (loop_count < 0 || loop_count > 65535)\n throw new Error(\"Loop count invalid.\");\n // Extension code, label, and length.\n buf[p++] = 0x21;\n buf[p++] = 0xff;\n buf[p++] = 0x0b;\n // NETSCAPE2.0\n buf[p++] = 0x4e;\n buf[p++] = 0x45;\n buf[p++] = 0x54;\n buf[p++] = 0x53;\n buf[p++] = 0x43;\n buf[p++] = 0x41;\n buf[p++] = 0x50;\n buf[p++] = 0x45;\n buf[p++] = 0x32;\n buf[p++] = 0x2e;\n buf[p++] = 0x30;\n // Sub-block\n buf[p++] = 0x03;\n buf[p++] = 0x01;\n buf[p++] = loop_count & 0xff;\n buf[p++] = (loop_count >> 8) & 0xff;\n buf[p++] = 0x00; // Terminator.\n }\n\n var ended = false;\n\n this.addFrame = function(x, y, w, h, indexed_pixels, opts) {\n if (ended === true) {\n --p;\n ended = false;\n } // Un-end.\n\n opts = opts === undefined ? {} : opts;\n\n // TODO(deanm): Bounds check x, y. Do they need to be within the virtual\n // canvas width/height, I imagine?\n if (x < 0 || y < 0 || x > 65535 || y > 65535)\n throw new Error(\"x/y invalid.\");\n\n if (w <= 0 || h <= 0 || w > 65535 || h > 65535)\n throw new Error(\"Width/Height invalid.\");\n\n if (indexed_pixels.length < w * h)\n throw new Error(\"Not enough pixels for the frame size.\");\n\n var using_local_palette = true;\n var palette = opts.palette;\n if (palette === undefined || palette === null) {\n using_local_palette = false;\n palette = global_palette;\n }\n\n if (palette === undefined || palette === null)\n throw new Error(\"Must supply either a local or global palette.\");\n\n var num_colors = check_palette_and_num_colors(palette);\n\n // Compute the min_code_size (power of 2), destroying num_colors.\n var min_code_size = 0;\n while ((num_colors >>= 1)) ++min_code_size;\n num_colors = 1 << min_code_size; // Now we can easily get it back.\n\n var delay = opts.delay === undefined ? 0 : opts.delay;\n\n // From the spec:\n // 0 - No disposal specified. The decoder is\n // not required to take any action.\n // 1 - Do not dispose. The graphic is to be left\n // in place.\n // 2 - Restore to background color. The area used by the\n // graphic must be restored to the background color.\n // 3 - Restore to previous. The decoder is required to\n // restore the area overwritten by the graphic with\n // what was there prior to rendering the graphic.\n // 4-7 - To be defined.\n // NOTE(deanm): Dispose background doesn't really work, apparently most\n // browsers ignore the background palette index and clear to transparency.\n var disposal = opts.disposal === undefined ? 0 : opts.disposal;\n if (disposal < 0 || disposal > 3)\n // 4-7 is reserved.\n throw new Error(\"Disposal out of range.\");\n\n var use_transparency = false;\n var transparent_index = 0;\n if (opts.transparent !== undefined && opts.transparent !== null) {\n use_transparency = true;\n transparent_index = opts.transparent;\n if (transparent_index < 0 || transparent_index >= num_colors)\n throw new Error(\"Transparent color index.\");\n }\n\n if (disposal !== 0 || use_transparency || delay !== 0) {\n // - Graphics Control Extension\n buf[p++] = 0x21;\n buf[p++] = 0xf9; // Extension / Label.\n buf[p++] = 4; // Byte size.\n\n buf[p++] = (disposal << 2) | (use_transparency === true ? 1 : 0);\n buf[p++] = delay & 0xff;\n buf[p++] = (delay >> 8) & 0xff;\n buf[p++] = transparent_index; // Transparent color index.\n buf[p++] = 0; // Block Terminator.\n }\n\n // - Image Descriptor\n buf[p++] = 0x2c; // Image Seperator.\n buf[p++] = x & 0xff;\n buf[p++] = (x >> 8) & 0xff; // Left.\n buf[p++] = y & 0xff;\n buf[p++] = (y >> 8) & 0xff; // Top.\n buf[p++] = w & 0xff;\n buf[p++] = (w >> 8) & 0xff;\n buf[p++] = h & 0xff;\n buf[p++] = (h >> 8) & 0xff;\n // NOTE: No sort flag (unused?).\n // TODO(deanm): Support interlace.\n buf[p++] = using_local_palette === true ? 0x80 | (min_code_size - 1) : 0;\n\n // - Local Color Table\n if (using_local_palette === true) {\n for (var i = 0, il = palette.length; i < il; ++i) {\n var rgb = palette[i];\n buf[p++] = (rgb >> 16) & 0xff;\n buf[p++] = (rgb >> 8) & 0xff;\n buf[p++] = rgb & 0xff;\n }\n }\n\n p = GifWriterOutputLZWCodeStream(\n buf,\n p,\n min_code_size < 2 ? 2 : min_code_size,\n indexed_pixels\n );\n\n return p;\n };\n\n this.end = function() {\n if (ended === false) {\n buf[p++] = 0x3b; // Trailer.\n ended = true;\n }\n return p;\n };\n\n this.getOutputBuffer = function() {\n return buf;\n };\n this.setOutputBuffer = function(v) {\n buf = v;\n };\n this.getOutputBufferPosition = function() {\n return p;\n };\n this.setOutputBufferPosition = function(v) {\n p = v;\n };\n}\n\n// Main compression routine, palette indexes -> LZW code stream.\n// |index_stream| must have at least one entry.\nfunction GifWriterOutputLZWCodeStream(buf, p, min_code_size, index_stream) {\n buf[p++] = min_code_size;\n var cur_subblock = p++; // Pointing at the length field.\n\n var clear_code = 1 << min_code_size;\n var code_mask = clear_code - 1;\n var eoi_code = clear_code + 1;\n var next_code = eoi_code + 1;\n\n var cur_code_size = min_code_size + 1; // Number of bits per code.\n var cur_shift = 0;\n // We have at most 12-bit codes, so we should have to hold a max of 19\n // bits here (and then we would write out).\n var cur = 0;\n\n function emit_bytes_to_buffer(bit_block_size) {\n while (cur_shift >= bit_block_size) {\n buf[p++] = cur & 0xff;\n cur >>= 8;\n cur_shift -= 8;\n if (p === cur_subblock + 256) {\n // Finished a subblock.\n buf[cur_subblock] = 255;\n cur_subblock = p++;\n }\n }\n }\n\n function emit_code(c) {\n cur |= c << cur_shift;\n cur_shift += cur_code_size;\n emit_bytes_to_buffer(8);\n }\n\n // I am not an expert on the topic, and I don't want to write a thesis.\n // However, it is good to outline here the basic algorithm and the few data\n // structures and optimizations here that make this implementation fast.\n // The basic idea behind LZW is to build a table of previously seen runs\n // addressed by a short id (herein called output code). All data is\n // referenced by a code, which represents one or more values from the\n // original input stream. All input bytes can be referenced as the same\n // value as an output code. So if you didn't want any compression, you\n // could more or less just output the original bytes as codes (there are\n // some details to this, but it is the idea). In order to achieve\n // compression, values greater then the input range (codes can be up to\n // 12-bit while input only 8-bit) represent a sequence of previously seen\n // inputs. The decompressor is able to build the same mapping while\n // decoding, so there is always a shared common knowledge between the\n // encoding and decoder, which is also important for \"timing\" aspects like\n // how to handle variable bit width code encoding.\n //\n // One obvious but very important consequence of the table system is there\n // is always a unique id (at most 12-bits) to map the runs. 'A' might be\n // 4, then 'AA' might be 10, 'AAA' 11, 'AAAA' 12, etc. This relationship\n // can be used for an effecient lookup strategy for the code mapping. We\n // need to know if a run has been seen before, and be able to map that run\n // to the output code. Since we start with known unique ids (input bytes),\n // and then from those build more unique ids (table entries), we can\n // continue this chain (almost like a linked list) to always have small\n // integer values that represent the current byte chains in the encoder.\n // This means instead of tracking the input bytes (AAAABCD) to know our\n // current state, we can track the table entry for AAAABC (it is guaranteed\n // to exist by the nature of the algorithm) and the next character D.\n // Therefor the tuple of (table_entry, byte) is guaranteed to also be\n // unique. This allows us to create a simple lookup key for mapping input\n // sequences to codes (table indices) without having to store or search\n // any of the code sequences. So if 'AAAA' has a table entry of 12, the\n // tuple of ('AAAA', K) for any input byte K will be unique, and can be our\n // key. This leads to a integer value at most 20-bits, which can always\n // fit in an SMI value and be used as a fast sparse array / object key.\n\n // Output code for the current contents of the index buffer.\n var ib_code = index_stream[0] & code_mask; // Load first input index.\n var code_table = {}; // Key'd on our 20-bit \"tuple\".\n\n emit_code(clear_code); // Spec says first code should be a clear code.\n\n // First index already loaded, process the rest of the stream.\n for (var i = 1, il = index_stream.length; i < il; ++i) {\n var k = index_stream[i] & code_mask;\n var cur_key = (ib_code << 8) | k; // (prev, k) unique tuple.\n var cur_code = code_table[cur_key]; // buffer + k.\n\n // Check if we have to create a new code table entry.\n if (cur_code === undefined) {\n // We don't have buffer + k.\n // Emit index buffer (without k).\n // This is an inline version of emit_code, because this is the core\n // writing routine of the compressor (and V8 cannot inline emit_code\n // because it is a closure here in a different context). Additionally\n // we can call emit_byte_to_buffer less often, because we can have\n // 30-bits (from our 31-bit signed SMI), and we know our codes will only\n // be 12-bits, so can safely have 18-bits there without overflow.\n // emit_code(ib_code);\n cur |= ib_code << cur_shift;\n cur_shift += cur_code_size;\n while (cur_shift >= 8) {\n buf[p++] = cur & 0xff;\n cur >>= 8;\n cur_shift -= 8;\n if (p === cur_subblock + 256) {\n // Finished a subblock.\n buf[cur_subblock] = 255;\n cur_subblock = p++;\n }\n }\n\n if (next_code === 4096) {\n // Table full, need a clear.\n emit_code(clear_code);\n next_code = eoi_code + 1;\n cur_code_size = min_code_size + 1;\n code_table = {};\n } else {\n // Table not full, insert a new entry.\n // Increase our variable bit code sizes if necessary. This is a bit\n // tricky as it is based on \"timing\" between the encoding and\n // decoder. From the encoders perspective this should happen after\n // we've already emitted the index buffer and are about to create the\n // first table entry that would overflow our current code bit size.\n if (next_code >= 1 << cur_code_size) ++cur_code_size;\n code_table[cur_key] = next_code++; // Insert into code table.\n }\n\n ib_code = k; // Index buffer to single input k.\n } else {\n ib_code = cur_code; // Index buffer to sequence in code table.\n }\n }\n\n emit_code(ib_code); // There will still be something in the index buffer.\n emit_code(eoi_code); // End Of Information.\n\n // Flush / finalize the sub-blocks stream to the buffer.\n emit_bytes_to_buffer(1);\n\n // Finish the sub-blocks, writing out any unfinished lengths and\n // terminating with a sub-block of length 0. If we have already started\n // but not yet used a sub-block it can just become the terminator.\n if (cur_subblock + 1 === p) {\n // Started but unused.\n buf[cur_subblock] = 0;\n } else {\n // Started and used, write length and additional terminator block.\n buf[cur_subblock] = p - cur_subblock - 1;\n buf[p++] = 0;\n }\n return p;\n}\n\nfunction GifReader(buf) {\n var p = 0;\n\n // - Header (GIF87a or GIF89a).\n if (\n buf[p++] !== 0x47 ||\n buf[p++] !== 0x49 ||\n buf[p++] !== 0x46 ||\n buf[p++] !== 0x38 ||\n ((buf[p++] + 1) & 0xfd) !== 0x38 ||\n buf[p++] !== 0x61\n ) {\n throw new Error(\"Invalid GIF 87a/89a header.\");\n }\n\n // - Logical Screen Descriptor.\n var width = buf[p++] | (buf[p++] << 8);\n var height = buf[p++] | (buf[p++] << 8);\n var pf0 = buf[p++]; // .\n var global_palette_flag = pf0 >> 7;\n var num_global_colors_pow2 = pf0 & 0x7;\n var num_global_colors = 1 << (num_global_colors_pow2 + 1);\n var background = buf[p++];\n buf[p++]; // Pixel aspect ratio (unused?).\n\n var global_palette_offset = null;\n var global_palette_size = null;\n\n if (global_palette_flag) {\n global_palette_offset = p;\n global_palette_size = num_global_colors;\n p += num_global_colors * 3; // Seek past palette.\n }\n\n var no_eof = true;\n\n var frames = [];\n\n var delay = 0;\n var transparent_index = null;\n var disposal = 0; // 0 - No disposal specified.\n var loop_count = null;\n\n this.width = width;\n this.height = height;\n\n while (no_eof && p < buf.length) {\n switch (buf[p++]) {\n case 0x21: // Graphics Control Extension Block\n switch (buf[p++]) {\n case 0xff: // Application specific block\n // Try if it's a Netscape block (with animation loop counter).\n if (\n buf[p] !== 0x0b || // 21 FF already read, check block size.\n // NETSCAPE2.0\n (buf[p + 1] == 0x4e &&\n buf[p + 2] == 0x45 &&\n buf[p + 3] == 0x54 &&\n buf[p + 4] == 0x53 &&\n buf[p + 5] == 0x43 &&\n buf[p + 6] == 0x41 &&\n buf[p + 7] == 0x50 &&\n buf[p + 8] == 0x45 &&\n buf[p + 9] == 0x32 &&\n buf[p + 10] == 0x2e &&\n buf[p + 11] == 0x30 &&\n // Sub-block\n buf[p + 12] == 0x03 &&\n buf[p + 13] == 0x01 &&\n buf[p + 16] == 0)\n ) {\n p += 14;\n loop_count = buf[p++] | (buf[p++] << 8);\n p++; // Skip terminator.\n } else {\n // We don't know what it is, just try to get past it.\n p += 12;\n while (true) {\n // Seek through subblocks.\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n p += block_size;\n }\n }\n break;\n\n case 0xf9: // Graphics Control Extension\n if (buf[p++] !== 0x4 || buf[p + 4] !== 0)\n throw new Error(\"Invalid graphics extension block.\");\n var pf1 = buf[p++];\n delay = buf[p++] | (buf[p++] << 8);\n transparent_index = buf[p++];\n if ((pf1 & 1) === 0) transparent_index = null;\n disposal = (pf1 >> 2) & 0x7;\n p++; // Skip terminator.\n break;\n\n case 0xfe: // Comment Extension.\n while (true) {\n // Seek through subblocks.\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n // console.log(buf.slice(p, p+block_size).toString('ascii'));\n p += block_size;\n }\n break;\n\n default:\n throw new Error(\n \"Unknown graphic control label: 0x\" + buf[p - 1].toString(16)\n );\n }\n break;\n\n case 0x2c: // Image Descriptor.\n var x = buf[p++] | (buf[p++] << 8);\n var y = buf[p++] | (buf[p++] << 8);\n var w = buf[p++] | (buf[p++] << 8);\n var h = buf[p++] | (buf[p++] << 8);\n var pf2 = buf[p++];\n var local_palette_flag = pf2 >> 7;\n var interlace_flag = (pf2 >> 6) & 1;\n var num_local_colors_pow2 = pf2 & 0x7;\n var num_local_colors = 1 << (num_local_colors_pow2 + 1);\n var palette_offset = global_palette_offset;\n var palette_size = global_palette_size;\n var has_local_palette = false;\n if (local_palette_flag) {\n var has_local_palette = true;\n palette_offset = p; // Override with local palette.\n palette_size = num_local_colors;\n p += num_local_colors * 3; // Seek past palette.\n }\n\n var data_offset = p;\n\n p++; // codesize\n while (true) {\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n p += block_size;\n }\n\n frames.push({\n x: x,\n y: y,\n width: w,\n height: h,\n has_local_palette: has_local_palette,\n palette_offset: palette_offset,\n palette_size: palette_size,\n data_offset: data_offset,\n data_length: p - data_offset,\n transparent_index: transparent_index,\n interlaced: !!interlace_flag,\n delay: delay,\n disposal: disposal\n });\n break;\n\n case 0x3b: // Trailer Marker (end of file).\n no_eof = false;\n break;\n\n default:\n throw new Error(\"Unknown gif block: 0x\" + buf[p - 1].toString(16));\n break;\n }\n }\n\n this.numFrames = function() {\n return frames.length;\n };\n\n this.loopCount = function() {\n return loop_count;\n };\n\n this.frameInfo = function(frame_num) {\n if (frame_num < 0 || frame_num >= frames.length)\n throw new Error(\"Frame index out of range.\");\n return frames[frame_num];\n };\n\n this.decodeAndBlitFrameBGRA = function(frame_num, pixels) {\n var frame = this.frameInfo(frame_num);\n var num_pixels = frame.width * frame.height;\n var index_stream = new Uint8Array(num_pixels); // At most 8-bit indices.\n GifReaderLZWOutputIndexStream(\n buf,\n frame.data_offset,\n index_stream,\n num_pixels\n );\n var palette_offset = frame.palette_offset;\n\n // NOTE(deanm): It seems to be much faster to compare index to 256 than\n // to === null. Not sure why, but CompareStub_EQ_STRICT shows up high in\n // the profile, not sure if it's related to using a Uint8Array.\n var trans = frame.transparent_index;\n if (trans === null) trans = 256;\n\n // We are possibly just blitting to a portion of the entire frame.\n // That is a subrect within the framerect, so the additional pixels\n // must be skipped over after we finished a scanline.\n var framewidth = frame.width;\n var framestride = width - framewidth;\n var xleft = framewidth; // Number of subrect pixels left in scanline.\n\n // Output indices of the top left and bottom right corners of the subrect.\n var opbeg = (frame.y * width + frame.x) * 4;\n var opend = ((frame.y + frame.height) * width + frame.x) * 4;\n var op = opbeg;\n\n var scanstride = framestride * 4;\n\n // Use scanstride to skip past the rows when interlacing. This is skipping\n // 7 rows for the first two passes, then 3 then 1.\n if (frame.interlaced === true) {\n scanstride += width * 4 * 7; // Pass 1.\n }\n\n var interlaceskip = 8; // Tracking the row interval in the current pass.\n\n for (var i = 0, il = index_stream.length; i < il; ++i) {\n var index = index_stream[i];\n\n if (xleft === 0) {\n // Beginning of new scan line\n op += scanstride;\n xleft = framewidth;\n if (op >= opend) {\n // Catch the wrap to switch passes when interlacing.\n scanstride = framestride * 4 + width * 4 * (interlaceskip - 1);\n // interlaceskip / 2 * 4 is interlaceskip << 1.\n op = opbeg + (framewidth + framestride) * (interlaceskip << 1);\n interlaceskip >>= 1;\n }\n }\n\n if (index === trans) {\n op += 4;\n } else {\n var r = buf[palette_offset + index * 3];\n var g = buf[palette_offset + index * 3 + 1];\n var b = buf[palette_offset + index * 3 + 2];\n pixels[op++] = b;\n pixels[op++] = g;\n pixels[op++] = r;\n pixels[op++] = 255;\n }\n --xleft;\n }\n };\n\n // I will go to copy and paste hell one day...\n this.decodeAndBlitFrameRGBA = function(frame_num, pixels) {\n var frame = this.frameInfo(frame_num);\n var num_pixels = frame.width * frame.height;\n var index_stream = new Uint8Array(num_pixels); // At most 8-bit indices.\n GifReaderLZWOutputIndexStream(\n buf,\n frame.data_offset,\n index_stream,\n num_pixels\n );\n var palette_offset = frame.palette_offset;\n\n // NOTE(deanm): It seems to be much faster to compare index to 256 than\n // to === null. Not sure why, but CompareStub_EQ_STRICT shows up high in\n // the profile, not sure if it's related to using a Uint8Array.\n var trans = frame.transparent_index;\n if (trans === null) trans = 256;\n\n // We are possibly just blitting to a portion of the entire frame.\n // That is a subrect within the framerect, so the additional pixels\n // must be skipped over after we finished a scanline.\n var framewidth = frame.width;\n var framestride = width - framewidth;\n var xleft = framewidth; // Number of subrect pixels left in scanline.\n\n // Output indices of the top left and bottom right corners of the subrect.\n var opbeg = (frame.y * width + frame.x) * 4;\n var opend = ((frame.y + frame.height) * width + frame.x) * 4;\n var op = opbeg;\n\n var scanstride = framestride * 4;\n\n // Use scanstride to skip past the rows when interlacing. This is skipping\n // 7 rows for the first two passes, then 3 then 1.\n if (frame.interlaced === true) {\n scanstride += width * 4 * 7; // Pass 1.\n }\n\n var interlaceskip = 8; // Tracking the row interval in the current pass.\n\n for (var i = 0, il = index_stream.length; i < il; ++i) {\n var index = index_stream[i];\n\n if (xleft === 0) {\n // Beginning of new scan line\n op += scanstride;\n xleft = framewidth;\n if (op >= opend) {\n // Catch the wrap to switch passes when interlacing.\n scanstride = framestride * 4 + width * 4 * (interlaceskip - 1);\n // interlaceskip / 2 * 4 is interlaceskip << 1.\n op = opbeg + (framewidth + framestride) * (interlaceskip << 1);\n interlaceskip >>= 1;\n }\n }\n\n if (index === trans) {\n op += 4;\n } else {\n var r = buf[palette_offset + index * 3];\n var g = buf[palette_offset + index * 3 + 1];\n var b = buf[palette_offset + index * 3 + 2];\n pixels[op++] = r;\n pixels[op++] = g;\n pixels[op++] = b;\n pixels[op++] = 255;\n }\n --xleft;\n }\n };\n}\n\nfunction GifReaderLZWOutputIndexStream(code_stream, p, output, output_length) {\n var min_code_size = code_stream[p++];\n\n var clear_code = 1 << min_code_size;\n var eoi_code = clear_code + 1;\n var next_code = eoi_code + 1;\n\n var cur_code_size = min_code_size + 1; // Number of bits per code.\n // NOTE: This shares the same name as the encoder, but has a different\n // meaning here. Here this masks each code coming from the code stream.\n var code_mask = (1 << cur_code_size) - 1;\n var cur_shift = 0;\n var cur = 0;\n\n var op = 0; // Output pointer.\n\n var subblock_size = code_stream[p++];\n\n // TODO(deanm): Would using a TypedArray be any faster? At least it would\n // solve the fast mode / backing store uncertainty.\n // var code_table = Array(4096);\n var code_table = new Int32Array(4096); // Can be signed, we only use 20 bits.\n\n var prev_code = null; // Track code-1.\n\n while (true) {\n // Read up to two bytes, making sure we always 12-bits for max sized code.\n while (cur_shift < 16) {\n if (subblock_size === 0) break; // No more data to be read.\n\n cur |= code_stream[p++] << cur_shift;\n cur_shift += 8;\n\n if (subblock_size === 1) {\n // Never let it get to 0 to hold logic above.\n subblock_size = code_stream[p++]; // Next subblock.\n } else {\n --subblock_size;\n }\n }\n\n // TODO(deanm): We should never really get here, we should have received\n // and EOI.\n if (cur_shift < cur_code_size) break;\n\n var code = cur & code_mask;\n cur >>= cur_code_size;\n cur_shift -= cur_code_size;\n\n // TODO(deanm): Maybe should check that the first code was a clear code,\n // at least this is what you're supposed to do. But actually our encoder\n // now doesn't emit a clear code first anyway.\n if (code === clear_code) {\n // We don't actually have to clear the table. This could be a good idea\n // for greater error checking, but we don't really do any anyway. We\n // will just track it with next_code and overwrite old entries.\n\n next_code = eoi_code + 1;\n cur_code_size = min_code_size + 1;\n code_mask = (1 << cur_code_size) - 1;\n\n // Don't update prev_code ?\n prev_code = null;\n continue;\n } else if (code === eoi_code) {\n break;\n }\n\n // We have a similar situation as the decoder, where we want to store\n // variable length entries (code table entries), but we want to do in a\n // faster manner than an array of arrays. The code below stores sort of a\n // linked list within the code table, and then \"chases\" through it to\n // construct the dictionary entries. When a new entry is created, just the\n // last byte is stored, and the rest (prefix) of the entry is only\n // referenced by its table entry. Then the code chases through the\n // prefixes until it reaches a single byte code. We have to chase twice,\n // first to compute the length, and then to actually copy the data to the\n // output (backwards, since we know the length). The alternative would be\n // storing something in an intermediate stack, but that doesn't make any\n // more sense. I implemented an approach where it also stored the length\n // in the code table, although it's a bit tricky because you run out of\n // bits (12 + 12 + 8), but I didn't measure much improvements (the table\n // entries are generally not the long). Even when I created benchmarks for\n // very long table entries the complexity did not seem worth it.\n // The code table stores the prefix entry in 12 bits and then the suffix\n // byte in 8 bits, so each entry is 20 bits.\n\n var chase_code = code < next_code ? code : prev_code;\n\n // Chase what we will output, either {CODE} or {CODE-1}.\n var chase_length = 0;\n var chase = chase_code;\n while (chase > clear_code) {\n chase = code_table[chase] >> 8;\n ++chase_length;\n }\n\n var k = chase;\n\n var op_end = op + chase_length + (chase_code !== code ? 1 : 0);\n if (op_end > output_length) {\n console.log(\"Warning, gif stream longer than expected.\");\n return;\n }\n\n // Already have the first byte from the chase, might as well write it fast.\n output[op++] = k;\n\n op += chase_length;\n var b = op; // Track pointer, writing backwards.\n\n if (chase_code !== code)\n // The case of emitting {CODE-1} + k.\n output[op++] = k;\n\n chase = chase_code;\n while (chase_length--) {\n chase = code_table[chase];\n output[--b] = chase & 0xff; // Write backwards.\n chase >>= 8; // Pull down to the prefix code.\n }\n\n if (prev_code !== null && next_code < 4096) {\n code_table[next_code++] = (prev_code << 8) | k;\n // TODO(deanm): Figure out this clearing vs code growth logic better. I\n // have an feeling that it should just happen somewhere else, for now it\n // is awkward between when we grow past the max and then hit a clear code.\n // For now just check if we hit the max 12-bits (then a clear code should\n // follow, also of course encoded in 12-bits).\n if (next_code >= code_mask + 1 && cur_code_size < 12) {\n ++cur_code_size;\n code_mask = (code_mask << 1) | 1;\n }\n }\n\n prev_code = code;\n }\n\n if (op !== output_length) {\n console.log(\"Warning, gif stream shorter than expected.\");\n }\n\n return output;\n}\n\nexport { GifReader, GifWriter };\n","/**\n * @license\n Copyright (c) 2008, Adobe Systems Incorporated\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without \n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright notice, \n this list of conditions and the following disclaimer.\n \n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the \n documentation and/or other materials provided with the distribution.\n \n * Neither the name of Adobe Systems Incorporated nor the names of its \n contributors may be used to endorse or promote products derived from \n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR \n CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*\nJPEG encoder ported to JavaScript and optimized by Andreas Ritter, www.bytestrom.eu, 11/2009\n\nBasic GUI blocking jpeg encoder\n*/\n\nfunction JPEGEncoder(quality) {\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT;\n var UVDC_HT;\n var YAC_HT;\n var UVAC_HT;\n\n var bitcode = new Array(65535);\n var category = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n\n var std_dc_luminance_nrcodes = [\n 0,\n 0,\n 1,\n 5,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ];\n var std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes = [\n 0,\n 0,\n 2,\n 1,\n 3,\n 3,\n 2,\n 4,\n 3,\n 5,\n 5,\n 4,\n 4,\n 0,\n 0,\n 1,\n 0x7d\n ];\n var std_ac_luminance_values = [\n 0x01,\n 0x02,\n 0x03,\n 0x00,\n 0x04,\n 0x11,\n 0x05,\n 0x12,\n 0x21,\n 0x31,\n 0x41,\n 0x06,\n 0x13,\n 0x51,\n 0x61,\n 0x07,\n 0x22,\n 0x71,\n 0x14,\n 0x32,\n 0x81,\n 0x91,\n 0xa1,\n 0x08,\n 0x23,\n 0x42,\n 0xb1,\n 0xc1,\n 0x15,\n 0x52,\n 0xd1,\n 0xf0,\n 0x24,\n 0x33,\n 0x62,\n 0x72,\n 0x82,\n 0x09,\n 0x0a,\n 0x16,\n 0x17,\n 0x18,\n 0x19,\n 0x1a,\n 0x25,\n 0x26,\n 0x27,\n 0x28,\n 0x29,\n 0x2a,\n 0x34,\n 0x35,\n 0x36,\n 0x37,\n 0x38,\n 0x39,\n 0x3a,\n 0x43,\n 0x44,\n 0x45,\n 0x46,\n 0x47,\n 0x48,\n 0x49,\n 0x4a,\n 0x53,\n 0x54,\n 0x55,\n 0x56,\n 0x57,\n 0x58,\n 0x59,\n 0x5a,\n 0x63,\n 0x64,\n 0x65,\n 0x66,\n 0x67,\n 0x68,\n 0x69,\n 0x6a,\n 0x73,\n 0x74,\n 0x75,\n 0x76,\n 0x77,\n 0x78,\n 0x79,\n 0x7a,\n 0x83,\n 0x84,\n 0x85,\n 0x86,\n 0x87,\n 0x88,\n 0x89,\n 0x8a,\n 0x92,\n 0x93,\n 0x94,\n 0x95,\n 0x96,\n 0x97,\n 0x98,\n 0x99,\n 0x9a,\n 0xa2,\n 0xa3,\n 0xa4,\n 0xa5,\n 0xa6,\n 0xa7,\n 0xa8,\n 0xa9,\n 0xaa,\n 0xb2,\n 0xb3,\n 0xb4,\n 0xb5,\n 0xb6,\n 0xb7,\n 0xb8,\n 0xb9,\n 0xba,\n 0xc2,\n 0xc3,\n 0xc4,\n 0xc5,\n 0xc6,\n 0xc7,\n 0xc8,\n 0xc9,\n 0xca,\n 0xd2,\n 0xd3,\n 0xd4,\n 0xd5,\n 0xd6,\n 0xd7,\n 0xd8,\n 0xd9,\n 0xda,\n 0xe1,\n 0xe2,\n 0xe3,\n 0xe4,\n 0xe5,\n 0xe6,\n 0xe7,\n 0xe8,\n 0xe9,\n 0xea,\n 0xf1,\n 0xf2,\n 0xf3,\n 0xf4,\n 0xf5,\n 0xf6,\n 0xf7,\n 0xf8,\n 0xf9,\n 0xfa\n ];\n\n var std_dc_chrominance_nrcodes = [\n 0,\n 0,\n 3,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0\n ];\n var std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes = [\n 0,\n 0,\n 2,\n 1,\n 2,\n 4,\n 4,\n 3,\n 4,\n 7,\n 5,\n 4,\n 4,\n 0,\n 1,\n 2,\n 0x77\n ];\n var std_ac_chrominance_values = [\n 0x00,\n 0x01,\n 0x02,\n 0x03,\n 0x11,\n 0x04,\n 0x05,\n 0x21,\n 0x31,\n 0x06,\n 0x12,\n 0x41,\n 0x51,\n 0x07,\n 0x61,\n 0x71,\n 0x13,\n 0x22,\n 0x32,\n 0x81,\n 0x08,\n 0x14,\n 0x42,\n 0x91,\n 0xa1,\n 0xb1,\n 0xc1,\n 0x09,\n 0x23,\n 0x33,\n 0x52,\n 0xf0,\n 0x15,\n 0x62,\n 0x72,\n 0xd1,\n 0x0a,\n 0x16,\n 0x24,\n 0x34,\n 0xe1,\n 0x25,\n 0xf1,\n 0x17,\n 0x18,\n 0x19,\n 0x1a,\n 0x26,\n 0x27,\n 0x28,\n 0x29,\n 0x2a,\n 0x35,\n 0x36,\n 0x37,\n 0x38,\n 0x39,\n 0x3a,\n 0x43,\n 0x44,\n 0x45,\n 0x46,\n 0x47,\n 0x48,\n 0x49,\n 0x4a,\n 0x53,\n 0x54,\n 0x55,\n 0x56,\n 0x57,\n 0x58,\n 0x59,\n 0x5a,\n 0x63,\n 0x64,\n 0x65,\n 0x66,\n 0x67,\n 0x68,\n 0x69,\n 0x6a,\n 0x73,\n 0x74,\n 0x75,\n 0x76,\n 0x77,\n 0x78,\n 0x79,\n 0x7a,\n 0x82,\n 0x83,\n 0x84,\n 0x85,\n 0x86,\n 0x87,\n 0x88,\n 0x89,\n 0x8a,\n 0x92,\n 0x93,\n 0x94,\n 0x95,\n 0x96,\n 0x97,\n 0x98,\n 0x99,\n 0x9a,\n 0xa2,\n 0xa3,\n 0xa4,\n 0xa5,\n 0xa6,\n 0xa7,\n 0xa8,\n 0xa9,\n 0xaa,\n 0xb2,\n 0xb3,\n 0xb4,\n 0xb5,\n 0xb6,\n 0xb7,\n 0xb8,\n 0xb9,\n 0xba,\n 0xc2,\n 0xc3,\n 0xc4,\n 0xc5,\n 0xc6,\n 0xc7,\n 0xc8,\n 0xc9,\n 0xca,\n 0xd2,\n 0xd3,\n 0xd4,\n 0xd5,\n 0xd6,\n 0xd7,\n 0xd8,\n 0xd9,\n 0xda,\n 0xe2,\n 0xe3,\n 0xe4,\n 0xe5,\n 0xe6,\n 0xe7,\n 0xe8,\n 0xe9,\n 0xea,\n 0xf2,\n 0xf3,\n 0xf4,\n 0xf5,\n 0xf6,\n 0xf7,\n 0xf8,\n 0xf9,\n 0xfa\n ];\n\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n t = Math.min(Math.max(t, 1), 255);\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n u = Math.min(Math.max(u, 1), 255);\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1.0,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1.0,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1.0 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0);\n fdtbl_UV[k] = 1.0 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0);\n k++;\n }\n }\n }\n\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n\n function initHuffmanTbl() {\n YDC_HT = computeHuffmanTbl(\n std_dc_luminance_nrcodes,\n std_dc_luminance_values\n );\n UVDC_HT = computeHuffmanTbl(\n std_dc_chrominance_nrcodes,\n std_dc_chrominance_values\n );\n YAC_HT = computeHuffmanTbl(\n std_ac_luminance_nrcodes,\n std_ac_luminance_values\n );\n UVAC_HT = computeHuffmanTbl(\n std_ac_chrominance_nrcodes,\n std_ac_chrominance_values\n );\n }\n\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n //Positive numbers\n for (var nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n //Negative numbers\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[(i + 256) >> 0] = 38470 * i;\n RGB_YUV_TABLE[(i + 512) >> 0] = 7471 * i + 0x8000;\n RGB_YUV_TABLE[(i + 768) >> 0] = -11059 * i;\n RGB_YUV_TABLE[(i + 1024) >> 0] = -21709 * i;\n RGB_YUV_TABLE[(i + 1280) >> 0] = 32768 * i + 0x807fff;\n RGB_YUV_TABLE[(i + 1536) >> 0] = -27439 * i;\n RGB_YUV_TABLE[(i + 1792) >> 0] = -5329 * i;\n }\n }\n\n // IO functions\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & (1 << posval)) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 0xff) {\n writeByte(0xff);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n\n function writeByte(value) {\n //byteout.push(clt[value]); // write char directly instead of converting later\n byteout.push(value);\n }\n\n function writeWord(value) {\n writeByte((value >> 8) & 0xff);\n writeByte(value & 0xff);\n }\n\n // DCT & quantization core\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n /* Pass 1: process rows. */\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n\n /* Even part */\n var tmp10 = tmp0 + tmp3; /* phase 2 */\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n\n data[dataOff] = tmp10 + tmp11; /* phase 3 */\n data[dataOff + 4] = tmp10 - tmp11;\n\n var z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */\n data[dataOff + 2] = tmp13 + z1; /* phase 5 */\n data[dataOff + 6] = tmp13 - z1;\n\n /* Odd part */\n tmp10 = tmp4 + tmp5; /* phase 2 */\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n\n /* The rotator is modified from fig 4-8 to avoid extra negations. */\n var z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */\n var z2 = 0.5411961 * tmp10 + z5; /* c2-c6 */\n var z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */\n var z3 = tmp11 * 0.707106781; /* c4 */\n\n var z11 = tmp7 + z3; /* phase 5 */\n var z13 = tmp7 - z3;\n\n data[dataOff + 5] = z13 + z2; /* phase 6 */\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n\n dataOff += 8; /* advance pointer to next row */\n }\n\n /* Pass 2: process columns. */\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n\n /* Even part */\n var tmp10p2 = tmp0p2 + tmp3p2; /* phase 2 */\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n\n data[dataOff] = tmp10p2 + tmp11p2; /* phase 3 */\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781; /* c4 */\n data[dataOff + 16] = tmp13p2 + z1p2; /* phase 5 */\n data[dataOff + 48] = tmp13p2 - z1p2;\n\n /* Odd part */\n tmp10p2 = tmp4p2 + tmp5p2; /* phase 2 */\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n\n /* The rotator is modified from fig 4-8 to avoid extra negations. */\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433; /* c6 */\n var z2p2 = 0.5411961 * tmp10p2 + z5p2; /* c2-c6 */\n var z4p2 = 1.306562965 * tmp12p2 + z5p2; /* c2+c6 */\n var z3p2 = tmp11p2 * 0.707106781; /* c4 */\n\n var z11p2 = tmp7p2 + z3p2; /* phase 5 */\n var z13p2 = tmp7p2 - z3p2;\n\n data[dataOff + 40] = z13p2 + z2p2; /* phase 6 */\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n\n dataOff++; /* advance pointer to next column */\n }\n\n // Quantize/descale the coefficients\n var fDCTQuant;\n for (i = 0; i < I64; ++i) {\n // Apply the quantization and scaling factor & Round to nearest integer\n fDCTQuant = data[i] * fdtbl[i];\n outputfDCTQuant[i] =\n fDCTQuant > 0.0 ? (fDCTQuant + 0.5) | 0 : (fDCTQuant - 0.5) | 0;\n //outputfDCTQuant[i] = fround(fDCTQuant);\n }\n return outputfDCTQuant;\n }\n\n function writeAPP0() {\n writeWord(0xffe0); // marker\n writeWord(16); // length\n writeByte(0x4a); // J\n writeByte(0x46); // F\n writeByte(0x49); // I\n writeByte(0x46); // F\n writeByte(0); // = \"JFIF\",'\\0'\n writeByte(1); // versionhi\n writeByte(1); // versionlo\n writeByte(0); // xyunits\n writeWord(1); // xdensity\n writeWord(1); // ydensity\n writeByte(0); // thumbnwidth\n writeByte(0); // thumbnheight\n }\n\n function writeSOF0(width, height) {\n writeWord(0xffc0); // marker\n writeWord(17); // length, truecolor YUV JPG\n writeByte(8); // precision\n writeWord(height);\n writeWord(width);\n writeByte(3); // nrofcomponents\n writeByte(1); // IdY\n writeByte(0x11); // HVY\n writeByte(0); // QTY\n writeByte(2); // IdU\n writeByte(0x11); // HVU\n writeByte(1); // QTU\n writeByte(3); // IdV\n writeByte(0x11); // HVV\n writeByte(1); // QTV\n }\n\n function writeDQT() {\n writeWord(0xffdb); // marker\n writeWord(132); // length\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n\n function writeDHT() {\n writeWord(0xffc4); // marker\n writeWord(0x01a2); // length\n\n writeByte(0); // HTYDCinfo\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n\n writeByte(0x10); // HTYACinfo\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n\n writeByte(1); // HTUDCinfo\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n\n writeByte(0x11); // HTUACinfo\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n\n function writeSOS() {\n writeWord(0xffda); // marker\n writeWord(12); // length\n writeByte(3); // nrofcomponents\n writeByte(1); // IdY\n writeByte(0); // HTY\n writeByte(2); // IdU\n writeByte(0x11); // HTU\n writeByte(3); // IdV\n writeByte(0x11); // HTV\n writeByte(0); // Ss\n writeByte(0x3f); // Se\n writeByte(0); // Bf\n }\n\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0x00];\n var M16zeroes = HTAC[0xf0];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n //ZigZag reorder\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n //Encode DC\n if (Diff == 0) {\n writeBits(HTDC[0]); // Diff might be 0\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category[pos]]);\n writeBits(bitcode[pos]);\n }\n //Encode ACs\n var end0pos = 63; // was const... which is crazy\n while (end0pos > 0 && DU[end0pos] == 0) {\n end0pos--;\n }\n //end0pos = first element in reverse order !=0\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n while (DU[i] == 0 && i <= end0pos) {\n ++i;\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 0xf;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category[pos]]);\n writeBits(bitcode[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n ///// ACHTUNG // 255\n clt[i] = sfcc(i);\n }\n }\n\n this.encode = function(\n image,\n quality // image data object\n ) {\n if (quality) setQuality(quality);\n\n // Initialize bit writer\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n\n // Add JPEG headers\n writeWord(0xffd8); // SOI\n writeAPP0();\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n\n // Encode 8x8 macroblocks\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n\n bytenew = 0;\n bytepos = 7;\n\n this.encode.displayName = \"_encode_\";\n\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n\n var quadWidth = width * 4;\n\n var x,\n y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n col = -1;\n row = 0;\n\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3; // /8\n col = (pos & 7) * 4; // %8\n p = start + row * quadWidth + col;\n\n if (y + row >= height) {\n // padding bottom\n p -= quadWidth * (y + 1 + row - height);\n }\n\n if (x + col >= quadWidth) {\n // padding right\n p -= x + col - quadWidth + 4;\n }\n\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n\n /* // calculate YUV values dynamically\n\t\t\t\t\tYDU[pos]=((( 0.29900)*r+( 0.58700)*g+( 0.11400)*b))-128; //-0x80\n\t\t\t\t\tUDU[pos]=(((-0.16874)*r+(-0.33126)*g+( 0.50000)*b));\n\t\t\t\t\tVDU[pos]=((( 0.50000)*r+(-0.41869)*g+(-0.08131)*b));\n\t\t\t\t\t*/\n\n // use lookup table (slightly faster)\n YDU[pos] =\n ((RGB_YUV_TABLE[r] +\n RGB_YUV_TABLE[(g + 256) >> 0] +\n RGB_YUV_TABLE[(b + 512) >> 0]) >>\n 16) -\n 128;\n UDU[pos] =\n ((RGB_YUV_TABLE[(r + 768) >> 0] +\n RGB_YUV_TABLE[(g + 1024) >> 0] +\n RGB_YUV_TABLE[(b + 1280) >> 0]) >>\n 16) -\n 128;\n VDU[pos] =\n ((RGB_YUV_TABLE[(r + 1280) >> 0] +\n RGB_YUV_TABLE[(g + 1536) >> 0] +\n RGB_YUV_TABLE[(b + 1792) >> 0]) >>\n 16) -\n 128;\n }\n\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT, YAC_HT);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);\n x += 32;\n }\n y += 8;\n }\n\n ////////////////////////////////////////////////////////////////\n\n // Do the bit alignment of the EOI marker\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << (bytepos + 1)) - 1;\n writeBits(fillbits);\n }\n\n writeWord(0xffd9); //EOI\n\n return new Uint8Array(byteout);\n };\n\n function setQuality(quality) {\n quality = Math.min(Math.max(quality, 1), 100);\n\n if (currentQuality == quality) return; // don't recalc if unchanged\n\n var sf =\n quality < 50 ? Math.floor(5000 / quality) : Math.floor(200 - quality * 2);\n\n initQuantTables(sf);\n currentQuality = quality;\n //console.log('Quality set to: '+quality +'%');\n }\n\n function init() {\n quality = quality || 50;\n // Create tables\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n\n setQuality(quality);\n }\n init();\n}\n\nexport { JPEGEncoder };\n","/**\n * @author shaozilee\n *\n * Bmp format decoder,support 1bit 4bit 8bit 24bit bmp\n *\n */\n\nimport { console } from \"./console.js\";\n\nfunction BmpDecoder(buffer, is_with_alpha) {\n this.pos = 0;\n this.buffer = buffer;\n this.datav = new DataView(buffer.buffer);\n this.is_with_alpha = !!is_with_alpha;\n this.bottom_up = true;\n this.flag =\n String.fromCharCode(this.buffer[0]) + String.fromCharCode(this.buffer[1]);\n this.pos += 2;\n if ([\"BM\", \"BA\", \"CI\", \"CP\", \"IC\", \"PT\"].indexOf(this.flag) === -1)\n throw new Error(\"Invalid BMP File\");\n this.parseHeader();\n this.parseBGR();\n}\n\nBmpDecoder.prototype.parseHeader = function() {\n this.fileSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.reserved = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.offset = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.headerSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.width = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.height = this.datav.getInt32(this.pos, true);\n this.pos += 4;\n this.planes = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n this.bitPP = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n this.compress = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.rawSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.hr = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.vr = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.colors = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.importantColors = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n\n if (this.bitPP === 16 && this.is_with_alpha) {\n this.bitPP = 15;\n }\n if (this.bitPP < 15) {\n var len = this.colors === 0 ? 1 << this.bitPP : this.colors;\n this.palette = new Array(len);\n for (var i = 0; i < len; i++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var quad = this.datav.getUint8(this.pos++, true);\n this.palette[i] = {\n red: red,\n green: green,\n blue: blue,\n quad: quad\n };\n }\n }\n if (this.height < 0) {\n this.height *= -1;\n this.bottom_up = false;\n }\n};\n\nBmpDecoder.prototype.parseBGR = function() {\n this.pos = this.offset;\n try {\n var bitn = \"bit\" + this.bitPP;\n var len = this.width * this.height * 4;\n this.data = new Uint8Array(len);\n\n this[bitn]();\n } catch (e) {\n console.log(\"bit decode error:\" + e);\n }\n};\n\nBmpDecoder.prototype.bit1 = function() {\n var xlen = Math.ceil(this.width / 8);\n var mode = xlen % 4;\n var y;\n for (y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < xlen; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 8 * 4;\n for (var i = 0; i < 8; i++) {\n if (x * 8 + i < this.width) {\n var rgb = this.palette[(b >> (7 - i)) & 0x1];\n this.data[location + i * 4] = rgb.blue;\n this.data[location + i * 4 + 1] = rgb.green;\n this.data[location + i * 4 + 2] = rgb.red;\n this.data[location + i * 4 + 3] = 0xff;\n } else {\n break;\n }\n }\n }\n\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit4 = function() {\n var xlen = Math.ceil(this.width / 2);\n var mode = xlen % 4;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < xlen; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 2 * 4;\n\n var before = b >> 4;\n var after = b & 0x0f;\n\n var rgb = this.palette[before];\n this.data[location] = rgb.blue;\n this.data[location + 1] = rgb.green;\n this.data[location + 2] = rgb.red;\n this.data[location + 3] = 0xff;\n\n if (x * 2 + 1 >= this.width) break;\n\n rgb = this.palette[after];\n this.data[location + 4] = rgb.blue;\n this.data[location + 4 + 1] = rgb.green;\n this.data[location + 4 + 2] = rgb.red;\n this.data[location + 4 + 3] = 0xff;\n }\n\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit8 = function() {\n var mode = this.width % 4;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n if (b < this.palette.length) {\n var rgb = this.palette[b];\n this.data[location] = rgb.red;\n this.data[location + 1] = rgb.green;\n this.data[location + 2] = rgb.blue;\n this.data[location + 3] = 0xff;\n } else {\n this.data[location] = 0xff;\n this.data[location + 1] = 0xff;\n this.data[location + 2] = 0xff;\n this.data[location + 3] = 0xff;\n }\n }\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit15 = function() {\n var dif_w = this.width % 3;\n var _11111 = parseInt(\"11111\", 2),\n _1_5 = _11111;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var B = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n var blue = (((B & _1_5) / _1_5) * 255) | 0;\n var green = ((((B >> 5) & _1_5) / _1_5) * 255) | 0;\n var red = ((((B >> 10) & _1_5) / _1_5) * 255) | 0;\n var alpha = B >> 15 ? 0xff : 0x00;\n\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n this.pos += dif_w;\n }\n};\n\nBmpDecoder.prototype.bit16 = function() {\n var dif_w = this.width % 3;\n var _11111 = parseInt(\"11111\", 2),\n _1_5 = _11111;\n var _111111 = parseInt(\"111111\", 2),\n _1_6 = _111111;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var B = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n var alpha = 0xff;\n var blue = (((B & _1_5) / _1_5) * 255) | 0;\n var green = ((((B >> 5) & _1_6) / _1_6) * 255) | 0;\n var red = (((B >> 11) / _1_5) * 255) | 0;\n\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n this.pos += dif_w;\n }\n};\n\nBmpDecoder.prototype.bit24 = function() {\n //when height > 0\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = 0xff;\n }\n //skip extra bytes\n this.pos += this.width % 4;\n }\n};\n\n/**\n * add 32bit decode func\n * @author soubok\n */\nBmpDecoder.prototype.bit32 = function() {\n //when height > 0\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var alpha = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n //this.pos += (this.width % 4);\n }\n};\n\nBmpDecoder.prototype.getData = function() {\n return this.data;\n};\n\nexport { BmpDecoder };\n","function WebPDecoder(imageData) {\n /** @license\n * Copyright 2011 Google Inc.\n *\n * This code is licensed under the same terms as WebM:\n * Software License Agreement: http://www.webmproject.org/license/software/\n * Additional IP Rights Grant: http://www.webmproject.org/license/additional/\n * -----------------------------------------------------------------------------\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * -----------------------------------------------------------------------------\n *\n * Copyright 2011-2017 Dominik Homberger\n * Libwebp Javascript / libwebpjs - the libwebp implementation in javascript (v0.6.0)\n *\n * Author: Dominik Homberger (dominik.homberger@gmail.com)\n */\n\n var self = this;\n var UpsampleRgbLinePair,\n UpsampleBgrLinePair,\n UpsampleRgbaLinePair,\n UpsampleBgraLinePair,\n UpsampleArgbLinePair,\n UpsampleArgbLinePair,\n UpsampleRgba4444LinePair,\n UpsampleRgb565LinePair;\n\n function x(F) {\n if (!F) throw Error(\"assert :P\");\n }\n function fa(F, L, J) {\n for (var H = 0; 4 > H; H++) if (F[L + H] != J.charCodeAt(H)) return !0;\n return !1;\n }\n function I(F, L, J, H, Z) {\n for (var O = 0; O < Z; O++) F[L + O] = J[H + O];\n }\n function M(F, L, J, H) {\n for (var Z = 0; Z < H; Z++) F[L + Z] = J;\n }\n function V(F) {\n return new Int32Array(F);\n }\n function wa(F, L) {\n for (var J = [], H = 0; H < F; H++) J.push(new L());\n return J;\n }\n function wb() {\n function F(J, H, Z) {\n for (var O = Z[H], L = 0; L < O; L++) {\n J.push(Z.length > H + 1 ? [] : 0);\n if (Z.length < H + 1) break;\n F(J[L], H + 1, Z);\n }\n }\n var L = [];\n F(L, 0, [3, 11]);\n return L;\n }\n function Ed(F, L) {\n function J(H, O, F) {\n for (var Z = F[O], ma = 0; ma < Z; ma++) {\n H.push(F.length > O + 1 ? [] : new L());\n if (F.length < O + 1) break;\n J(H[ma], O + 1, F);\n }\n }\n var H = [];\n J(H, 0, F);\n return H;\n }\n var _WebPDecoder = function() {\n var self = this;\n function F() {\n V(55);\n }\n function L(a, b) {\n for (var c = (1 << (b - 1)) >>> 0; a & c; ) c >>>= 1;\n return c ? (a & (c - 1)) + c : a;\n }\n function J(a, b, c, d, e) {\n x(!(d % c));\n do (d -= c), (a[b + d] = e);\n while (0 < d);\n }\n function H(a, b, c, d, e, f) {\n var g = b,\n h = 1 << c,\n k,\n l,\n m = V(16),\n n = V(16);\n x(0 != e);\n x(null != d);\n x(null != a);\n x(0 < c);\n for (l = 0; l < e; ++l) {\n if (15 < d[l]) return 0;\n ++m[d[l]];\n }\n if (m[0] == e) return 0;\n n[1] = 0;\n for (k = 1; 15 > k; ++k) {\n if (m[k] > 1 << k) return 0;\n n[k + 1] = n[k] + m[k];\n }\n for (l = 0; l < e; ++l) (k = d[l]), 0 < d[l] && (f[n[k]++] = l);\n if (1 == n[15])\n return (d = new O()), (d.g = 0), (d.value = f[0]), J(a, g, 1, h, d), h;\n var r = -1,\n q = h - 1,\n t = 0,\n v = 1,\n p = 1,\n u,\n w = 1 << c;\n l = 0;\n k = 1;\n for (e = 2; k <= c; ++k, e <<= 1) {\n p <<= 1;\n v += p;\n p -= m[k];\n if (0 > p) return 0;\n for (; 0 < m[k]; --m[k])\n (d = new O()),\n (d.g = k),\n (d.value = f[l++]),\n J(a, g + t, e, w, d),\n (t = L(t, k));\n }\n k = c + 1;\n for (e = 2; 15 >= k; ++k, e <<= 1) {\n p <<= 1;\n v += p;\n p -= m[k];\n if (0 > p) return 0;\n for (; 0 < m[k]; --m[k]) {\n d = new O();\n if ((t & q) != r) {\n g += w;\n r = k;\n for (u = 1 << (r - c); 15 > r; ) {\n u -= m[r];\n if (0 >= u) break;\n ++r;\n u <<= 1;\n }\n u = r - c;\n w = 1 << u;\n h += w;\n r = t & q;\n a[b + r].g = u + c;\n a[b + r].value = g - b - r;\n }\n d.g = k - c;\n d.value = f[l++];\n J(a, g + (t >> c), e, w, d);\n t = L(t, k);\n }\n }\n return v != 2 * n[15] - 1 ? 0 : h;\n }\n function Z(a, b, c, d, e) {\n x(2328 >= e);\n if (512 >= e) var f = V(512);\n else if (((f = V(e)), null == f)) return 0;\n return H(a, b, c, d, e, f);\n }\n function O() {\n this.value = this.g = 0;\n }\n function Fd() {\n this.value = this.g = 0;\n }\n function Ub() {\n this.G = wa(5, O);\n this.H = V(5);\n this.jc = this.Qb = this.qb = this.nd = 0;\n this.pd = wa(xb, Fd);\n }\n function ma(a, b, c, d) {\n x(null != a);\n x(null != b);\n x(2147483648 > d);\n a.Ca = 254;\n a.I = 0;\n a.b = -8;\n a.Ka = 0;\n a.oa = b;\n a.pa = c;\n a.Jd = b;\n a.Yc = c + d;\n a.Zc = 4 <= d ? c + d - 4 + 1 : c;\n Qa(a);\n }\n function na(a, b) {\n for (var c = 0; 0 < b--; ) c |= K(a, 128) << b;\n return c;\n }\n function ca(a, b) {\n var c = na(a, b);\n return G(a) ? -c : c;\n }\n function cb(a, b, c, d) {\n var e,\n f = 0;\n x(null != a);\n x(null != b);\n x(4294967288 > d);\n a.Sb = d;\n a.Ra = 0;\n a.u = 0;\n a.h = 0;\n 4 < d && (d = 4);\n for (e = 0; e < d; ++e) f += b[c + e] << (8 * e);\n a.Ra = f;\n a.bb = d;\n a.oa = b;\n a.pa = c;\n }\n function Vb(a) {\n for (; 8 <= a.u && a.bb < a.Sb; )\n (a.Ra >>>= 8),\n (a.Ra += (a.oa[a.pa + a.bb] << (ob - 8)) >>> 0),\n ++a.bb,\n (a.u -= 8);\n db(a) && ((a.h = 1), (a.u = 0));\n }\n function D(a, b) {\n x(0 <= b);\n if (!a.h && b <= Gd) {\n var c = pb(a) & Hd[b];\n a.u += b;\n Vb(a);\n return c;\n }\n a.h = 1;\n return (a.u = 0);\n }\n function Wb() {\n this.b = this.Ca = this.I = 0;\n this.oa = [];\n this.pa = 0;\n this.Jd = [];\n this.Yc = 0;\n this.Zc = [];\n this.Ka = 0;\n }\n function Ra() {\n this.Ra = 0;\n this.oa = [];\n this.h = this.u = this.bb = this.Sb = this.pa = 0;\n }\n function pb(a) {\n return (a.Ra >>> (a.u & (ob - 1))) >>> 0;\n }\n function db(a) {\n x(a.bb <= a.Sb);\n return a.h || (a.bb == a.Sb && a.u > ob);\n }\n function qb(a, b) {\n a.u = b;\n a.h = db(a);\n }\n function Sa(a) {\n a.u >= Xb && (x(a.u >= Xb), Vb(a));\n }\n function Qa(a) {\n x(null != a && null != a.oa);\n a.pa < a.Zc\n ? ((a.I = (a.oa[a.pa++] | (a.I << 8)) >>> 0), (a.b += 8))\n : (x(null != a && null != a.oa),\n a.pa < a.Yc\n ? ((a.b += 8), (a.I = a.oa[a.pa++] | (a.I << 8)))\n : a.Ka\n ? (a.b = 0)\n : ((a.I <<= 8), (a.b += 8), (a.Ka = 1)));\n }\n function G(a) {\n return na(a, 1);\n }\n function K(a, b) {\n var c = a.Ca;\n 0 > a.b && Qa(a);\n var d = a.b,\n e = (c * b) >>> 8,\n f = (a.I >>> d > e) + 0;\n f ? ((c -= e), (a.I -= ((e + 1) << d) >>> 0)) : (c = e + 1);\n d = c;\n for (e = 0; 256 <= d; ) (e += 8), (d >>= 8);\n d = 7 ^ (e + Id[d]);\n a.b -= d;\n a.Ca = (c << d) - 1;\n return f;\n }\n function ra(a, b, c) {\n a[b + 0] = (c >> 24) & 255;\n a[b + 1] = (c >> 16) & 255;\n a[b + 2] = (c >> 8) & 255;\n a[b + 3] = (c >> 0) & 255;\n }\n function Ta(a, b) {\n return (a[b + 0] << 0) | (a[b + 1] << 8);\n }\n function Yb(a, b) {\n return Ta(a, b) | (a[b + 2] << 16);\n }\n function Ha(a, b) {\n return Ta(a, b) | (Ta(a, b + 2) << 16);\n }\n function Zb(a, b) {\n var c = 1 << b;\n x(null != a);\n x(0 < b);\n a.X = V(c);\n if (null == a.X) return 0;\n a.Mb = 32 - b;\n a.Xa = b;\n return 1;\n }\n function $b(a, b) {\n x(null != a);\n x(null != b);\n x(a.Xa == b.Xa);\n I(b.X, 0, a.X, 0, 1 << b.Xa);\n }\n function ac() {\n this.X = [];\n this.Xa = this.Mb = 0;\n }\n function bc(a, b, c, d) {\n x(null != c);\n x(null != d);\n var e = c[0],\n f = d[0];\n 0 == e && (e = (a * f + b / 2) / b);\n 0 == f && (f = (b * e + a / 2) / a);\n if (0 >= e || 0 >= f) return 0;\n c[0] = e;\n d[0] = f;\n return 1;\n }\n function xa(a, b) {\n return (a + (1 << b) - 1) >>> b;\n }\n function yb(a, b) {\n return (\n (((((a & 4278255360) + (b & 4278255360)) >>> 0) & 4278255360) +\n ((((a & 16711935) + (b & 16711935)) >>> 0) & 16711935)) >>>\n 0\n );\n }\n function X(a, b) {\n self[b] = function(b, d, e, f, g, h, k) {\n var c;\n for (c = 0; c < g; ++c) {\n var m = self[a](h[k + c - 1], e, f + c);\n h[k + c] = yb(b[d + c], m);\n }\n };\n }\n function Jd() {\n this.ud = this.hd = this.jd = 0;\n }\n function aa(a, b) {\n return ((((a ^ b) & 4278124286) >>> 1) + (a & b)) >>> 0;\n }\n function sa(a) {\n if (0 <= a && 256 > a) return a;\n if (0 > a) return 0;\n if (255 < a) return 255;\n }\n function eb(a, b) {\n return sa(a + ((a - b + 0.5) >> 1));\n }\n function Ia(a, b, c) {\n return Math.abs(b - c) - Math.abs(a - c);\n }\n function cc(a, b, c, d, e, f, g) {\n d = f[g - 1];\n for (c = 0; c < e; ++c) f[g + c] = d = yb(a[b + c], d);\n }\n function Kd(a, b, c, d, e) {\n var f;\n for (f = 0; f < c; ++f) {\n var g = a[b + f],\n h = (g >> 8) & 255,\n k = g & 16711935,\n k = k + ((h << 16) + h),\n k = k & 16711935;\n d[e + f] = ((g & 4278255360) + k) >>> 0;\n }\n }\n function dc(a, b) {\n b.jd = (a >> 0) & 255;\n b.hd = (a >> 8) & 255;\n b.ud = (a >> 16) & 255;\n }\n function Ld(a, b, c, d, e, f) {\n var g;\n for (g = 0; g < d; ++g) {\n var h = b[c + g],\n k = h >>> 8,\n l = h >>> 16,\n m = h,\n l = l + ((((a.jd << 24) >> 24) * ((k << 24) >> 24)) >>> 5),\n l = l & 255,\n m = m + ((((a.hd << 24) >> 24) * ((k << 24) >> 24)) >>> 5),\n m = m + ((((a.ud << 24) >> 24) * ((l << 24) >> 24)) >>> 5),\n m = m & 255;\n e[f + g] = (h & 4278255360) + (l << 16) + m;\n }\n }\n function ec(a, b, c, d, e) {\n self[b] = function(a, b, c, k, l, m, n, r, q) {\n for (k = n; k < r; ++k)\n for (n = 0; n < q; ++n) l[m++] = e(c[d(a[b++])]);\n };\n self[a] = function(a, b, h, k, l, m, n) {\n var f = 8 >> a.b,\n g = a.Ea,\n t = a.K[0],\n v = a.w;\n if (8 > f)\n for (a = (1 << a.b) - 1, v = (1 << f) - 1; b < h; ++b) {\n var p = 0,\n u;\n for (u = 0; u < g; ++u)\n u & a || (p = d(k[l++])), (m[n++] = e(t[p & v])), (p >>= f);\n }\n else self[\"VP8LMapColor\" + c](k, l, t, v, m, n, b, h, g);\n };\n }\n function Md(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 16) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 0) & 255;\n }\n }\n function Nd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 16) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 0) & 255;\n d[e++] = (f >> 24) & 255;\n }\n }\n function Od(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++],\n g = ((f >> 16) & 240) | ((f >> 12) & 15),\n f = ((f >> 0) & 240) | ((f >> 28) & 15);\n d[e++] = g;\n d[e++] = f;\n }\n }\n function Pd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++],\n g = ((f >> 16) & 248) | ((f >> 13) & 7),\n f = ((f >> 5) & 224) | ((f >> 3) & 31);\n d[e++] = g;\n d[e++] = f;\n }\n }\n function Qd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 0) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 16) & 255;\n }\n }\n function fb(a, b, c, d, e, f) {\n if (0 == f)\n for (c = b + c; b < c; )\n (f = a[b++]),\n ra(\n d,\n ((f[0] >> 24) |\n ((f[1] >> 8) & 65280) |\n ((f[2] << 8) & 16711680) |\n (f[3] << 24)) >>>\n 0\n ),\n (e += 32);\n else I(d, e, a, b, c);\n }\n function gb(a, b) {\n self[b][0] = self[a + \"0\"];\n self[b][1] = self[a + \"1\"];\n self[b][2] = self[a + \"2\"];\n self[b][3] = self[a + \"3\"];\n self[b][4] = self[a + \"4\"];\n self[b][5] = self[a + \"5\"];\n self[b][6] = self[a + \"6\"];\n self[b][7] = self[a + \"7\"];\n self[b][8] = self[a + \"8\"];\n self[b][9] = self[a + \"9\"];\n self[b][10] = self[a + \"10\"];\n self[b][11] = self[a + \"11\"];\n self[b][12] = self[a + \"12\"];\n self[b][13] = self[a + \"13\"];\n self[b][14] = self[a + \"0\"];\n self[b][15] = self[a + \"0\"];\n }\n function hb(a) {\n return a == zb || a == Ab || a == Ja || a == Bb;\n }\n function Rd() {\n this.eb = [];\n this.size = this.A = this.fb = 0;\n }\n function Sd() {\n this.y = [];\n this.f = [];\n this.ea = [];\n this.F = [];\n this.Tc = this.Ed = this.Cd = this.Fd = this.lb = this.Db = this.Ab = this.fa = this.J = this.W = this.N = this.O = 0;\n }\n function Cb() {\n this.Rd = this.height = this.width = this.S = 0;\n this.f = {};\n this.f.RGBA = new Rd();\n this.f.kb = new Sd();\n this.sd = null;\n }\n function Td() {\n this.width = [0];\n this.height = [0];\n this.Pd = [0];\n this.Qd = [0];\n this.format = [0];\n }\n function Ud() {\n this.Id = this.fd = this.Md = this.hb = this.ib = this.da = this.bd = this.cd = this.j = this.v = this.Da = this.Sd = this.ob = 0;\n }\n function Vd(a) {\n alert(\"todo:WebPSamplerProcessPlane\");\n return a.T;\n }\n function Wd(a, b) {\n var c = a.T,\n d = b.ba.f.RGBA,\n e = d.eb,\n f = d.fb + a.ka * d.A,\n g = P[b.ba.S],\n h = a.y,\n k = a.O,\n l = a.f,\n m = a.N,\n n = a.ea,\n r = a.W,\n q = b.cc,\n t = b.dc,\n v = b.Mc,\n p = b.Nc,\n u = a.ka,\n w = a.ka + a.T,\n y = a.U,\n A = (y + 1) >> 1;\n 0 == u\n ? g(h, k, null, null, l, m, n, r, l, m, n, r, e, f, null, null, y)\n : (g(b.ec, b.fc, h, k, q, t, v, p, l, m, n, r, e, f - d.A, e, f, y),\n ++c);\n for (; u + 2 < w; u += 2)\n (q = l),\n (t = m),\n (v = n),\n (p = r),\n (m += a.Rc),\n (r += a.Rc),\n (f += 2 * d.A),\n (k += 2 * a.fa),\n g(h, k - a.fa, h, k, q, t, v, p, l, m, n, r, e, f - d.A, e, f, y);\n k += a.fa;\n a.j + w < a.o\n ? (I(b.ec, b.fc, h, k, y),\n I(b.cc, b.dc, l, m, A),\n I(b.Mc, b.Nc, n, r, A),\n c--)\n : w & 1 ||\n g(\n h,\n k,\n null,\n null,\n l,\n m,\n n,\n r,\n l,\n m,\n n,\n r,\n e,\n f + d.A,\n null,\n null,\n y\n );\n return c;\n }\n function Xd(a, b, c) {\n var d = a.F,\n e = [a.J];\n if (null != d) {\n var f = a.U,\n g = b.ba.S,\n h = g == ya || g == Ja;\n b = b.ba.f.RGBA;\n var k = [0],\n l = a.ka;\n k[0] = a.T;\n a.Kb &&\n (0 == l ? --k[0] : (--l, (e[0] -= a.width)),\n a.j + a.ka + a.T == a.o && (k[0] = a.o - a.j - l));\n var m = b.eb,\n l = b.fb + l * b.A;\n a = fc(d, e[0], a.width, f, k, m, l + (h ? 0 : 3), b.A);\n x(c == k);\n a && hb(g) && za(m, l, h, f, k, b.A);\n }\n return 0;\n }\n function gc(a) {\n var b = a.ma,\n c = b.ba.S,\n d = 11 > c,\n e = c == Ua || c == Va || c == ya || c == Db || 12 == c || hb(c);\n b.memory = null;\n b.Ib = null;\n b.Jb = null;\n b.Nd = null;\n if (!hc(b.Oa, a, e ? 11 : 12)) return 0;\n e && hb(c) && ic();\n if (a.da) alert(\"todo:use_scaling\");\n else {\n if (d) {\n if (((b.Ib = Vd), a.Kb)) {\n c = (a.U + 1) >> 1;\n b.memory = V(a.U + 2 * c);\n if (null == b.memory) return 0;\n b.ec = b.memory;\n b.fc = 0;\n b.cc = b.ec;\n b.dc = b.fc + a.U;\n b.Mc = b.cc;\n b.Nc = b.dc + c;\n b.Ib = Wd;\n ic();\n }\n } else alert(\"todo:EmitYUV\");\n e && ((b.Jb = Xd), d && Aa());\n }\n if (d && !jc) {\n for (a = 0; 256 > a; ++a)\n (Yd[a] = (89858 * (a - 128) + Ba) >> Wa),\n (Zd[a] = -22014 * (a - 128) + Ba),\n ($d[a] = -45773 * (a - 128)),\n (ae[a] = (113618 * (a - 128) + Ba) >> Wa);\n for (a = ta; a < Eb; ++a)\n (b = (76283 * (a - 16) + Ba) >> Wa),\n (be[a - ta] = ga(b, 255)),\n (ce[a - ta] = ga((b + 8) >> 4, 15));\n jc = 1;\n }\n return 1;\n }\n function kc(a) {\n var b = a.ma,\n c = a.U,\n d = a.T;\n x(!(a.ka & 1));\n if (0 >= c || 0 >= d) return 0;\n c = b.Ib(a, b);\n null != b.Jb && b.Jb(a, b, c);\n b.Dc += c;\n return 1;\n }\n function lc(a) {\n a.ma.memory = null;\n }\n function mc(a, b, c, d) {\n if (47 != D(a, 8)) return 0;\n b[0] = D(a, 14) + 1;\n c[0] = D(a, 14) + 1;\n d[0] = D(a, 1);\n return 0 != D(a, 3) ? 0 : !a.h;\n }\n function ib(a, b) {\n if (4 > a) return a + 1;\n var c = (a - 2) >> 1;\n return ((2 + (a & 1)) << c) + D(b, c) + 1;\n }\n function nc(a, b) {\n if (120 < b) return b - 120;\n var c = de[b - 1],\n c = (c >> 4) * a + (8 - (c & 15));\n return 1 <= c ? c : 1;\n }\n function ua(a, b, c) {\n var d = pb(c);\n b += d & 255;\n var e = a[b].g - 8;\n 0 < e &&\n (qb(c, c.u + 8),\n (d = pb(c)),\n (b += a[b].value),\n (b += d & ((1 << e) - 1)));\n qb(c, c.u + a[b].g);\n return a[b].value;\n }\n function ub(a, b, c) {\n c.g += a.g;\n c.value += (a.value << b) >>> 0;\n x(8 >= c.g);\n return a.g;\n }\n function ha(a, b, c) {\n var d = a.xc;\n b = 0 == d ? 0 : a.vc[a.md * (c >> d) + (b >> d)];\n x(b < a.Wb);\n return a.Ya[b];\n }\n function oc(a, b, c, d) {\n var e = a.ab,\n f = a.c * b,\n g = a.C;\n b = g + b;\n var h = c,\n k = d;\n d = a.Ta;\n for (c = a.Ua; 0 < e--; ) {\n var l = a.gc[e],\n m = g,\n n = b,\n r = h,\n q = k,\n k = d,\n h = c,\n t = l.Ea;\n x(m < n);\n x(n <= l.nc);\n switch (l.hc) {\n case 2:\n pc(r, q, (n - m) * t, k, h);\n break;\n case 0:\n var v = l,\n p = m,\n u = n,\n w = k,\n y = h,\n A = v.Ea;\n 0 == p &&\n (ee(r, q, null, null, 1, w, y),\n cc(r, q + 1, 0, 0, A - 1, w, y + 1),\n (q += A),\n (y += A),\n ++p);\n for (\n var E = 1 << v.b,\n B = E - 1,\n C = xa(A, v.b),\n N = v.K,\n v = v.w + (p >> v.b) * C;\n p < u;\n\n ) {\n var z = N,\n Q = v,\n S = 1;\n for (fe(r, q, w, y - A, 1, w, y); S < A; ) {\n var K = qc[(z[Q++] >> 8) & 15],\n D = (S & ~B) + E;\n D > A && (D = A);\n K(r, q + +S, w, y + S - A, D - S, w, y + S);\n S = D;\n }\n q += A;\n y += A;\n ++p;\n p & B || (v += C);\n }\n n != l.nc && I(k, h - t, k, h + (n - m - 1) * t, t);\n break;\n case 1:\n t = r;\n u = q;\n r = l.Ea;\n q = 1 << l.b;\n w = q - 1;\n y = r & ~w;\n A = r - y;\n p = xa(r, l.b);\n E = l.K;\n for (l = l.w + (m >> l.b) * p; m < n; ) {\n B = E;\n C = l;\n N = new Jd();\n v = u + y;\n for (z = u + r; u < v; )\n dc(B[C++], N), Fb(N, t, u, q, k, h), (u += q), (h += q);\n u < z &&\n (dc(B[C++], N), Fb(N, t, u, A, k, h), (u += A), (h += A));\n ++m;\n m & w || (l += p);\n }\n break;\n case 3:\n if (r == k && q == h && 0 < l.b) {\n y = (n - m) * xa(l.Ea, l.b);\n t = h + (n - m) * t - y;\n u = k;\n r = t;\n q = k;\n w = h;\n A = y;\n p = [];\n for (y = A - 1; 0 <= y; --y) p[y] = q[w + y];\n for (y = A - 1; 0 <= y; --y) u[r + y] = p[y];\n rc(l, m, n, k, t, k, h);\n } else rc(l, m, n, r, q, k, h);\n }\n h = d;\n k = c;\n }\n k != c && I(d, c, h, k, f);\n }\n function ge(a, b) {\n var c = a.V,\n d = a.Ba + a.c * a.C,\n e = b - a.C;\n x(b <= a.l.o);\n x(16 >= e);\n if (0 < e) {\n var f = a.l,\n g = a.Ta,\n h = a.Ua,\n k = f.width;\n oc(a, e, c, d);\n h = [h];\n c = a.C;\n d = b;\n e = h;\n x(c < d);\n x(f.v < f.va);\n d > f.o && (d = f.o);\n if (c < f.j) {\n var l = f.j - c,\n c = f.j;\n e[0] += l * k;\n }\n c >= d\n ? (c = 0)\n : ((e[0] += 4 * f.v),\n (f.ka = c - f.j),\n (f.U = f.va - f.v),\n (f.T = d - c),\n (c = 1));\n if (c) {\n h = h[0];\n c = a.ca;\n if (11 > c.S) {\n for (\n var m = c.f.RGBA,\n d = c.S,\n e = f.U,\n f = f.T,\n l = m.eb,\n n = m.A,\n r = f,\n m = m.fb + a.Ma * m.A;\n 0 < r--;\n\n ) {\n var q = g,\n t = h,\n v = e,\n p = l,\n u = m;\n switch (d) {\n case Ca:\n sc(q, t, v, p, u);\n break;\n case Ua:\n Gb(q, t, v, p, u);\n break;\n case zb:\n Gb(q, t, v, p, u);\n za(p, u, 0, v, 1, 0);\n break;\n case tc:\n uc(q, t, v, p, u);\n break;\n case Va:\n fb(q, t, v, p, u, 1);\n break;\n case Ab:\n fb(q, t, v, p, u, 1);\n za(p, u, 0, v, 1, 0);\n break;\n case ya:\n fb(q, t, v, p, u, 0);\n break;\n case Ja:\n fb(q, t, v, p, u, 0);\n za(p, u, 1, v, 1, 0);\n break;\n case Db:\n Hb(q, t, v, p, u);\n break;\n case Bb:\n Hb(q, t, v, p, u);\n vc(p, u, v, 1, 0);\n break;\n case wc:\n xc(q, t, v, p, u);\n break;\n default:\n x(0);\n }\n h += k;\n m += n;\n }\n a.Ma += f;\n } else alert(\"todo:EmitRescaledRowsYUVA\");\n x(a.Ma <= c.height);\n }\n }\n a.C = b;\n x(a.C <= a.i);\n }\n function yc(a) {\n var b;\n if (0 < a.ua) return 0;\n for (b = 0; b < a.Wb; ++b) {\n var c = a.Ya[b].G,\n d = a.Ya[b].H;\n if (\n 0 < c[1][d[1] + 0].g ||\n 0 < c[2][d[2] + 0].g ||\n 0 < c[3][d[3] + 0].g\n )\n return 0;\n }\n return 1;\n }\n function zc(a, b, c, d, e, f) {\n if (0 != a.Z) {\n var g = a.qd,\n h = a.rd;\n for (x(null != ia[a.Z]); b < c; ++b)\n ia[a.Z](g, h, d, e, d, e, f), (g = d), (h = e), (e += f);\n a.qd = g;\n a.rd = h;\n }\n }\n function Ib(a, b) {\n var c = a.l.ma,\n d = 0 == c.Z || 1 == c.Z ? a.l.j : a.C,\n d = a.C < d ? d : a.C;\n x(b <= a.l.o);\n if (b > d) {\n var e = a.l.width,\n f = c.ca,\n g = c.tb + e * d,\n h = a.V,\n k = a.Ba + a.c * d,\n l = a.gc;\n x(1 == a.ab);\n x(3 == l[0].hc);\n he(l[0], d, b, h, k, f, g);\n zc(c, d, b, f, g, e);\n }\n a.C = a.Ma = b;\n }\n function Jb(a, b, c, d, e, f, g) {\n var h = a.$ / d,\n k = a.$ % d,\n l = a.m,\n m = a.s,\n n = c + a.$,\n r = n;\n e = c + d * e;\n var q = c + d * f,\n t = 280 + m.ua,\n v = a.Pb ? h : 16777216,\n p = 0 < m.ua ? m.Wa : null,\n u = m.wc,\n w = n < q ? ha(m, k, h) : null;\n x(a.C < f);\n x(q <= e);\n var y = !1;\n a: for (;;) {\n for (; y || n < q; ) {\n var A = 0;\n if (h >= v) {\n var v = a,\n E = n - c;\n x(v.Pb);\n v.wd = v.m;\n v.xd = E;\n 0 < v.s.ua && $b(v.s.Wa, v.s.vb);\n v = h + ie;\n }\n k & u || (w = ha(m, k, h));\n x(null != w);\n w.Qb && ((b[n] = w.qb), (y = !0));\n if (!y)\n if ((Sa(l), w.jc)) {\n var A = l,\n E = b,\n B = n,\n C = w.pd[pb(A) & (xb - 1)];\n x(w.jc);\n 256 > C.g\n ? (qb(A, A.u + C.g), (E[B] = C.value), (A = 0))\n : (qb(A, A.u + C.g - 256), x(256 <= C.value), (A = C.value));\n 0 == A && (y = !0);\n } else A = ua(w.G[0], w.H[0], l);\n if (l.h) break;\n if (y || 256 > A) {\n if (!y)\n if (w.nd) b[n] = (w.qb | (A << 8)) >>> 0;\n else {\n Sa(l);\n y = ua(w.G[1], w.H[1], l);\n Sa(l);\n E = ua(w.G[2], w.H[2], l);\n B = ua(w.G[3], w.H[3], l);\n if (l.h) break;\n b[n] = ((B << 24) | (y << 16) | (A << 8) | E) >>> 0;\n }\n y = !1;\n ++n;\n ++k;\n if (\n k >= d &&\n ((k = 0),\n ++h,\n null != g && h <= f && !(h % 16) && g(a, h),\n null != p)\n )\n for (; r < n; )\n (A = b[r++]),\n (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n } else if (280 > A) {\n A = ib(A - 256, l);\n E = ua(w.G[4], w.H[4], l);\n Sa(l);\n E = ib(E, l);\n E = nc(d, E);\n if (l.h) break;\n if (n - c < E || e - n < A) break a;\n else for (B = 0; B < A; ++B) b[n + B] = b[n + B - E];\n n += A;\n for (k += A; k >= d; )\n (k -= d), ++h, null != g && h <= f && !(h % 16) && g(a, h);\n x(n <= e);\n k & u && (w = ha(m, k, h));\n if (null != p)\n for (; r < n; )\n (A = b[r++]),\n (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n } else if (A < t) {\n y = A - 280;\n for (x(null != p); r < n; )\n (A = b[r++]), (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n A = n;\n E = p;\n x(!(y >>> E.Xa));\n b[A] = E.X[y];\n y = !0;\n } else break a;\n y || x(l.h == db(l));\n }\n if (a.Pb && l.h && n < e)\n x(a.m.h),\n (a.a = 5),\n (a.m = a.wd),\n (a.$ = a.xd),\n 0 < a.s.ua && $b(a.s.vb, a.s.Wa);\n else if (l.h) break a;\n else null != g && g(a, h > f ? f : h), (a.a = 0), (a.$ = n - c);\n return 1;\n }\n a.a = 3;\n return 0;\n }\n function Ac(a) {\n x(null != a);\n a.vc = null;\n a.yc = null;\n a.Ya = null;\n var b = a.Wa;\n null != b && (b.X = null);\n a.vb = null;\n x(null != a);\n }\n function Bc() {\n var a = new je();\n if (null == a) return null;\n a.a = 0;\n a.xb = Cc;\n gb(\"Predictor\", \"VP8LPredictors\");\n gb(\"Predictor\", \"VP8LPredictors_C\");\n gb(\"PredictorAdd\", \"VP8LPredictorsAdd\");\n gb(\"PredictorAdd\", \"VP8LPredictorsAdd_C\");\n pc = Kd;\n Fb = Ld;\n sc = Md;\n Gb = Nd;\n Hb = Od;\n xc = Pd;\n uc = Qd;\n self.VP8LMapColor32b = ke;\n self.VP8LMapColor8b = le;\n return a;\n }\n function rb(a, b, c, d, e) {\n var f = 1,\n g = [a],\n h = [b],\n k = d.m,\n l = d.s,\n m = null,\n n = 0;\n a: for (;;) {\n if (c)\n for (; f && D(k, 1); ) {\n var r = g,\n q = h,\n t = d,\n v = 1,\n p = t.m,\n u = t.gc[t.ab],\n w = D(p, 2);\n if (t.Oc & (1 << w)) f = 0;\n else {\n t.Oc |= 1 << w;\n u.hc = w;\n u.Ea = r[0];\n u.nc = q[0];\n u.K = [null];\n ++t.ab;\n x(4 >= t.ab);\n switch (w) {\n case 0:\n case 1:\n u.b = D(p, 3) + 2;\n v = rb(xa(u.Ea, u.b), xa(u.nc, u.b), 0, t, u.K);\n u.K = u.K[0];\n break;\n case 3:\n var y = D(p, 8) + 1,\n A = 16 < y ? 0 : 4 < y ? 1 : 2 < y ? 2 : 3;\n r[0] = xa(u.Ea, A);\n u.b = A;\n var v = rb(y, 1, 0, t, u.K),\n E;\n if ((E = v)) {\n var B,\n C = y,\n N = u,\n z = 1 << (8 >> N.b),\n Q = V(z);\n if (null == Q) E = 0;\n else {\n var S = N.K[0],\n K = N.w;\n Q[0] = N.K[0][0];\n for (B = 1; B < 1 * C; ++B) Q[B] = yb(S[K + B], Q[B - 1]);\n for (; B < 4 * z; ++B) Q[B] = 0;\n N.K[0] = null;\n N.K[0] = Q;\n E = 1;\n }\n }\n v = E;\n break;\n case 2:\n break;\n default:\n x(0);\n }\n f = v;\n }\n }\n g = g[0];\n h = h[0];\n if (f && D(k, 1) && ((n = D(k, 4)), (f = 1 <= n && 11 >= n), !f)) {\n d.a = 3;\n break a;\n }\n var H;\n if ((H = f))\n b: {\n var F = d,\n G = g,\n L = h,\n J = n,\n T = c,\n Da,\n ba,\n X = F.m,\n R = F.s,\n P = [null],\n U,\n W = 1,\n aa = 0,\n na = me[J];\n c: for (;;) {\n if (T && D(X, 1)) {\n var ca = D(X, 3) + 2,\n ga = xa(G, ca),\n ka = xa(L, ca),\n qa = ga * ka;\n if (!rb(ga, ka, 0, F, P)) break c;\n P = P[0];\n R.xc = ca;\n for (Da = 0; Da < qa; ++Da) {\n var ia = (P[Da] >> 8) & 65535;\n P[Da] = ia;\n ia >= W && (W = ia + 1);\n }\n }\n if (X.h) break c;\n for (ba = 0; 5 > ba; ++ba) {\n var Y = Dc[ba];\n !ba && 0 < J && (Y += 1 << J);\n aa < Y && (aa = Y);\n }\n var ma = wa(W * na, O);\n var ua = W,\n va = wa(ua, Ub);\n if (null == va) var la = null;\n else x(65536 >= ua), (la = va);\n var ha = V(aa);\n if (null == la || null == ha || null == ma) {\n F.a = 1;\n break c;\n }\n var pa = ma;\n for (Da = U = 0; Da < W; ++Da) {\n var ja = la[Da],\n da = ja.G,\n ea = ja.H,\n Fa = 0,\n ra = 1,\n Ha = 0;\n for (ba = 0; 5 > ba; ++ba) {\n Y = Dc[ba];\n da[ba] = pa;\n ea[ba] = U;\n !ba && 0 < J && (Y += 1 << J);\n d: {\n var sa,\n za = Y,\n ta = F,\n oa = ha,\n db = pa,\n eb = U,\n Ia = 0,\n Ka = ta.m,\n fb = D(Ka, 1);\n M(oa, 0, 0, za);\n if (fb) {\n var gb = D(Ka, 1) + 1,\n hb = D(Ka, 1),\n Ja = D(Ka, 0 == hb ? 1 : 8);\n oa[Ja] = 1;\n 2 == gb && ((Ja = D(Ka, 8)), (oa[Ja] = 1));\n var ya = 1;\n } else {\n var Ua = V(19),\n Va = D(Ka, 4) + 4;\n if (19 < Va) {\n ta.a = 3;\n var Aa = 0;\n break d;\n }\n for (sa = 0; sa < Va; ++sa) Ua[ne[sa]] = D(Ka, 3);\n var Ba = void 0,\n sb = void 0,\n Wa = ta,\n ib = Ua,\n Ca = za,\n Xa = oa,\n Oa = 0,\n La = Wa.m,\n Ya = 8,\n Za = wa(128, O);\n e: for (;;) {\n if (!Z(Za, 0, 7, ib, 19)) break e;\n if (D(La, 1)) {\n var kb = 2 + 2 * D(La, 3),\n Ba = 2 + D(La, kb);\n if (Ba > Ca) break e;\n } else Ba = Ca;\n for (sb = 0; sb < Ca && Ba--; ) {\n Sa(La);\n var $a = Za[0 + (pb(La) & 127)];\n qb(La, La.u + $a.g);\n var jb = $a.value;\n if (16 > jb) (Xa[sb++] = jb), 0 != jb && (Ya = jb);\n else {\n var lb = 16 == jb,\n ab = jb - 16,\n mb = oe[ab],\n bb = D(La, pe[ab]) + mb;\n if (sb + bb > Ca) break e;\n else\n for (var nb = lb ? Ya : 0; 0 < bb--; )\n Xa[sb++] = nb;\n }\n }\n Oa = 1;\n break e;\n }\n Oa || (Wa.a = 3);\n ya = Oa;\n }\n (ya = ya && !Ka.h) && (Ia = Z(db, eb, 8, oa, za));\n ya && 0 != Ia ? (Aa = Ia) : ((ta.a = 3), (Aa = 0));\n }\n if (0 == Aa) break c;\n ra && 1 == qe[ba] && (ra = 0 == pa[U].g);\n Fa += pa[U].g;\n U += Aa;\n if (3 >= ba) {\n var Pa = ha[0],\n tb;\n for (tb = 1; tb < Y; ++tb) ha[tb] > Pa && (Pa = ha[tb]);\n Ha += Pa;\n }\n }\n ja.nd = ra;\n ja.Qb = 0;\n ra &&\n ((ja.qb =\n ((da[3][ea[3] + 0].value << 24) |\n (da[1][ea[1] + 0].value << 16) |\n da[2][ea[2] + 0].value) >>>\n 0),\n 0 == Fa &&\n 256 > da[0][ea[0] + 0].value &&\n ((ja.Qb = 1), (ja.qb += da[0][ea[0] + 0].value << 8)));\n ja.jc = !ja.Qb && 6 > Ha;\n if (ja.jc) {\n var Ga,\n Ea = ja;\n for (Ga = 0; Ga < xb; ++Ga) {\n var Ma = Ga,\n Na = Ea.pd[Ma],\n vb = Ea.G[0][Ea.H[0] + Ma];\n 256 <= vb.value\n ? ((Na.g = vb.g + 256), (Na.value = vb.value))\n : ((Na.g = 0),\n (Na.value = 0),\n (Ma >>= ub(vb, 8, Na)),\n (Ma >>= ub(Ea.G[1][Ea.H[1] + Ma], 16, Na)),\n (Ma >>= ub(Ea.G[2][Ea.H[2] + Ma], 0, Na)),\n ub(Ea.G[3][Ea.H[3] + Ma], 24, Na));\n }\n }\n }\n R.vc = P;\n R.Wb = W;\n R.Ya = la;\n R.yc = ma;\n H = 1;\n break b;\n }\n H = 0;\n }\n f = H;\n if (!f) {\n d.a = 3;\n break a;\n }\n if (0 < n) {\n if (((l.ua = 1 << n), !Zb(l.Wa, n))) {\n d.a = 1;\n f = 0;\n break a;\n }\n } else l.ua = 0;\n var Qa = d,\n cb = g,\n ob = h,\n Ra = Qa.s,\n Ta = Ra.xc;\n Qa.c = cb;\n Qa.i = ob;\n Ra.md = xa(cb, Ta);\n Ra.wc = 0 == Ta ? -1 : (1 << Ta) - 1;\n if (c) {\n d.xb = re;\n break a;\n }\n m = V(g * h);\n if (null == m) {\n d.a = 1;\n f = 0;\n break a;\n }\n f = (f = Jb(d, m, 0, g, h, h, null)) && !k.h;\n break a;\n }\n f\n ? (null != e ? (e[0] = m) : (x(null == m), x(c)), (d.$ = 0), c || Ac(l))\n : Ac(l);\n return f;\n }\n function Ec(a, b) {\n var c = a.c * a.i,\n d = c + b + 16 * b;\n x(a.c <= b);\n a.V = V(d);\n if (null == a.V) return (a.Ta = null), (a.Ua = 0), (a.a = 1), 0;\n a.Ta = a.V;\n a.Ua = a.Ba + c + b;\n return 1;\n }\n function se(a, b) {\n var c = a.C,\n d = b - c,\n e = a.V,\n f = a.Ba + a.c * c;\n for (x(b <= a.l.o); 0 < d; ) {\n var g = 16 < d ? 16 : d,\n h = a.l.ma,\n k = a.l.width,\n l = k * g,\n m = h.ca,\n n = h.tb + k * c,\n r = a.Ta,\n q = a.Ua;\n oc(a, g, e, f);\n Fc(r, q, m, n, l);\n zc(h, c, c + g, m, n, k);\n d -= g;\n e += g * a.c;\n c += g;\n }\n x(c == b);\n a.C = a.Ma = b;\n }\n function te(a, b) {\n var c = [0],\n d = [0],\n e = [0];\n a: for (;;) {\n if (null == a) return 0;\n if (null == b) return (a.a = 2), 0;\n a.l = b;\n a.a = 0;\n cb(a.m, b.data, b.w, b.ha);\n if (!mc(a.m, c, d, e)) {\n a.a = 3;\n break a;\n }\n a.xb = Cc;\n b.width = c[0];\n b.height = d[0];\n if (!rb(c[0], d[0], 1, a, null)) break a;\n return 1;\n }\n x(0 != a.a);\n return 0;\n }\n function ue() {\n this.ub = this.yd = this.td = this.Rb = 0;\n }\n function ve() {\n this.Kd = this.Ld = this.Ud = this.Td = this.i = this.c = 0;\n }\n function we() {\n this.Fb = this.Bb = this.Cb = 0;\n this.Zb = V(4);\n this.Lb = V(4);\n }\n function Gc() {\n this.Yb = wb();\n }\n function xe() {\n this.jb = V(3);\n this.Wc = Ed([4, 8], Gc);\n this.Xc = Ed([4, 17], Gc);\n }\n function ye() {\n this.Pc = this.wb = this.Tb = this.zd = 0;\n this.vd = new V(4);\n this.od = new V(4);\n }\n function Xa() {\n this.ld = this.La = this.dd = this.tc = 0;\n }\n function Hc() {\n this.Na = this.la = 0;\n }\n function ze() {\n this.Sc = [0, 0];\n this.Eb = [0, 0];\n this.Qc = [0, 0];\n this.ia = this.lc = 0;\n }\n function Kb() {\n this.ad = V(384);\n this.Za = 0;\n this.Ob = V(16);\n this.$b = this.Ad = this.ia = this.Gc = this.Hc = this.Dd = 0;\n }\n function Ae() {\n this.uc = this.M = this.Nb = 0;\n this.wa = Array(new Xa());\n this.Y = 0;\n this.ya = Array(new Kb());\n this.aa = 0;\n this.l = new Oa();\n }\n function Ic() {\n this.y = V(16);\n this.f = V(8);\n this.ea = V(8);\n }\n function Be() {\n this.cb = this.a = 0;\n this.sc = \"\";\n this.m = new Wb();\n this.Od = new ue();\n this.Kc = new ve();\n this.ed = new ye();\n this.Qa = new we();\n this.Ic = this.$c = this.Aa = 0;\n this.D = new Ae();\n this.Xb = this.Va = this.Hb = this.zb = this.yb = this.Ub = this.za = 0;\n this.Jc = wa(8, Wb);\n this.ia = 0;\n new F();\n this.pb = wa(4, ze);\n this.Pa = new xe();\n this.Bd = this.kc = 0;\n this.Ac = [];\n this.Bc = 0;\n this.zc = [0, 0, 0, 0];\n this.Gd = Array(new Ic());\n this.Hd = 0;\n this.rb = Array(new Hc());\n this.sb = 0;\n this.wa = Array(new Xa());\n this.Y = 0;\n this.oc = [];\n this.pc = 0;\n this.sa = [];\n this.ta = 0;\n this.qa = [];\n this.ra = 0;\n this.Ha = [];\n this.B = this.R = this.Ia = 0;\n this.Ec = [];\n this.M = this.ja = this.Vb = this.Fc = 0;\n this.ya = Array(new Kb());\n this.L = this.aa = 0;\n this.gd = Ed([4, 2], Xa);\n this.ga = null;\n this.Fa = [];\n this.Cc = this.qc = this.P = 0;\n this.Gb = [];\n this.Uc = 0;\n this.mb = [];\n this.nb = 0;\n this.rc = [];\n this.Ga = this.Vc = 0;\n }\n function ga(a, b) {\n return 0 > a ? 0 : a > b ? b : a;\n }\n function Oa() {\n this.T = this.U = this.ka = this.height = this.width = 0;\n this.y = [];\n this.f = [];\n this.ea = [];\n this.Rc = this.fa = this.W = this.N = this.O = 0;\n this.ma = \"void\";\n this.put = \"VP8IoPutHook\";\n this.ac = \"VP8IoSetupHook\";\n this.bc = \"VP8IoTeardownHook\";\n this.ha = this.Kb = 0;\n this.data = [];\n this.hb = this.ib = this.da = this.o = this.j = this.va = this.v = this.Da = this.ob = this.w = 0;\n this.F = [];\n this.J = 0;\n }\n function Ce() {\n var a = new Be();\n null != a &&\n ((a.a = 0), (a.sc = \"OK\"), (a.cb = 0), (a.Xb = 0), oa || (oa = De));\n return a;\n }\n function T(a, b, c) {\n 0 == a.a && ((a.a = b), (a.sc = c), (a.cb = 0));\n return 0;\n }\n function Jc(a, b, c) {\n return 3 <= c && 157 == a[b + 0] && 1 == a[b + 1] && 42 == a[b + 2];\n }\n function Kc(a, b) {\n if (null == a) return 0;\n a.a = 0;\n a.sc = \"OK\";\n if (null == b) return T(a, 2, \"null VP8Io passed to VP8GetHeaders()\");\n var c = b.data;\n var d = b.w;\n var e = b.ha;\n if (4 > e) return T(a, 7, \"Truncated header.\");\n var f = c[d + 0] | (c[d + 1] << 8) | (c[d + 2] << 16);\n var g = a.Od;\n g.Rb = !(f & 1);\n g.td = (f >> 1) & 7;\n g.yd = (f >> 4) & 1;\n g.ub = f >> 5;\n if (3 < g.td) return T(a, 3, \"Incorrect keyframe parameters.\");\n if (!g.yd) return T(a, 4, \"Frame not displayable.\");\n d += 3;\n e -= 3;\n var h = a.Kc;\n if (g.Rb) {\n if (7 > e) return T(a, 7, \"cannot parse picture header\");\n if (!Jc(c, d, e)) return T(a, 3, \"Bad code word\");\n h.c = ((c[d + 4] << 8) | c[d + 3]) & 16383;\n h.Td = c[d + 4] >> 6;\n h.i = ((c[d + 6] << 8) | c[d + 5]) & 16383;\n h.Ud = c[d + 6] >> 6;\n d += 7;\n e -= 7;\n a.za = (h.c + 15) >> 4;\n a.Ub = (h.i + 15) >> 4;\n b.width = h.c;\n b.height = h.i;\n b.Da = 0;\n b.j = 0;\n b.v = 0;\n b.va = b.width;\n b.o = b.height;\n b.da = 0;\n b.ib = b.width;\n b.hb = b.height;\n b.U = b.width;\n b.T = b.height;\n f = a.Pa;\n M(f.jb, 0, 255, f.jb.length);\n f = a.Qa;\n x(null != f);\n f.Cb = 0;\n f.Bb = 0;\n f.Fb = 1;\n M(f.Zb, 0, 0, f.Zb.length);\n M(f.Lb, 0, 0, f.Lb);\n }\n if (g.ub > e) return T(a, 7, \"bad partition length\");\n f = a.m;\n ma(f, c, d, g.ub);\n d += g.ub;\n e -= g.ub;\n g.Rb && ((h.Ld = G(f)), (h.Kd = G(f)));\n h = a.Qa;\n var k = a.Pa,\n l;\n x(null != f);\n x(null != h);\n h.Cb = G(f);\n if (h.Cb) {\n h.Bb = G(f);\n if (G(f)) {\n h.Fb = G(f);\n for (l = 0; 4 > l; ++l) h.Zb[l] = G(f) ? ca(f, 7) : 0;\n for (l = 0; 4 > l; ++l) h.Lb[l] = G(f) ? ca(f, 6) : 0;\n }\n if (h.Bb) for (l = 0; 3 > l; ++l) k.jb[l] = G(f) ? na(f, 8) : 255;\n } else h.Bb = 0;\n if (f.Ka) return T(a, 3, \"cannot parse segment header\");\n h = a.ed;\n h.zd = G(f);\n h.Tb = na(f, 6);\n h.wb = na(f, 3);\n h.Pc = G(f);\n if (h.Pc && G(f)) {\n for (k = 0; 4 > k; ++k) G(f) && (h.vd[k] = ca(f, 6));\n for (k = 0; 4 > k; ++k) G(f) && (h.od[k] = ca(f, 6));\n }\n a.L = 0 == h.Tb ? 0 : h.zd ? 1 : 2;\n if (f.Ka) return T(a, 3, \"cannot parse filter header\");\n l = d;\n var m = e;\n e = l;\n d = l + m;\n h = m;\n a.Xb = (1 << na(a.m, 2)) - 1;\n k = a.Xb;\n if (m < 3 * k) c = 7;\n else {\n l += 3 * k;\n h -= 3 * k;\n for (m = 0; m < k; ++m) {\n var n = c[e + 0] | (c[e + 1] << 8) | (c[e + 2] << 16);\n n > h && (n = h);\n ma(a.Jc[+m], c, l, n);\n l += n;\n h -= n;\n e += 3;\n }\n ma(a.Jc[+k], c, l, h);\n c = l < d ? 0 : 5;\n }\n if (0 != c) return T(a, c, \"cannot parse partitions\");\n l = a.m;\n c = na(l, 7);\n e = G(l) ? ca(l, 4) : 0;\n d = G(l) ? ca(l, 4) : 0;\n h = G(l) ? ca(l, 4) : 0;\n k = G(l) ? ca(l, 4) : 0;\n l = G(l) ? ca(l, 4) : 0;\n m = a.Qa;\n for (n = 0; 4 > n; ++n) {\n if (m.Cb) {\n var r = m.Zb[n];\n m.Fb || (r += c);\n } else if (0 < n) {\n a.pb[n] = a.pb[0];\n continue;\n } else r = c;\n var q = a.pb[n];\n q.Sc[0] = Lb[ga(r + e, 127)];\n q.Sc[1] = Mb[ga(r + 0, 127)];\n q.Eb[0] = 2 * Lb[ga(r + d, 127)];\n q.Eb[1] = (101581 * Mb[ga(r + h, 127)]) >> 16;\n 8 > q.Eb[1] && (q.Eb[1] = 8);\n q.Qc[0] = Lb[ga(r + k, 117)];\n q.Qc[1] = Mb[ga(r + l, 127)];\n q.lc = r + l;\n }\n if (!g.Rb) return T(a, 4, \"Not a key frame.\");\n G(f);\n g = a.Pa;\n for (c = 0; 4 > c; ++c) {\n for (e = 0; 8 > e; ++e)\n for (d = 0; 3 > d; ++d)\n for (h = 0; 11 > h; ++h)\n (k = K(f, Ee[c][e][d][h]) ? na(f, 8) : Fe[c][e][d][h]),\n (g.Wc[c][e].Yb[d][h] = k);\n for (e = 0; 17 > e; ++e) g.Xc[c][e] = g.Wc[c][Ge[e]];\n }\n a.kc = G(f);\n a.kc && (a.Bd = na(f, 8));\n return (a.cb = 1);\n }\n function De(a, b, c, d, e, f, g) {\n var h = b[e].Yb[c];\n for (c = 0; 16 > e; ++e) {\n if (!K(a, h[c + 0])) return e;\n for (; !K(a, h[c + 1]); )\n if (((h = b[++e].Yb[0]), (c = 0), 16 == e)) return 16;\n var k = b[e + 1].Yb;\n if (K(a, h[c + 2])) {\n var l = a,\n m = h,\n n = c;\n var r = 0;\n if (K(l, m[n + 3]))\n if (K(l, m[n + 6])) {\n h = 0;\n r = K(l, m[n + 8]);\n m = K(l, m[n + 9 + r]);\n n = 2 * r + m;\n r = 0;\n for (m = He[n]; m[h]; ++h) r += r + K(l, m[h]);\n r += 3 + (8 << n);\n } else\n K(l, m[n + 7])\n ? ((r = 7 + 2 * K(l, 165)), (r += K(l, 145)))\n : (r = 5 + K(l, 159));\n else K(l, m[n + 4]) ? (r = 3 + K(l, m[n + 5])) : (r = 2);\n h = k[2];\n } else (r = 1), (h = k[1]);\n k = g + Ie[e];\n l = a;\n 0 > l.b && Qa(l);\n var m = l.b,\n n = l.Ca >> 1,\n q = (n - (l.I >> m)) >> 31;\n --l.b;\n l.Ca += q;\n l.Ca |= 1;\n l.I -= ((n + 1) & q) << m;\n f[k] = ((r ^ q) - q) * d[(0 < e) + 0];\n }\n return 16;\n }\n function Lc(a) {\n var b = a.rb[a.sb - 1];\n b.la = 0;\n b.Na = 0;\n M(a.zc, 0, 0, a.zc.length);\n a.ja = 0;\n }\n function Je(a, b) {\n for (a.M = 0; a.M < a.Va; ++a.M) {\n var c = a.Jc[a.M & a.Xb],\n d = a.m,\n e = a,\n f;\n for (f = 0; f < e.za; ++f) {\n var g = d;\n var h = e;\n var k = h.Ac,\n l = h.Bc + 4 * f,\n m = h.zc,\n n = h.ya[h.aa + f];\n h.Qa.Bb\n ? (n.$b = K(g, h.Pa.jb[0])\n ? 2 + K(g, h.Pa.jb[2])\n : K(g, h.Pa.jb[1]))\n : (n.$b = 0);\n h.kc && (n.Ad = K(g, h.Bd));\n n.Za = !K(g, 145) + 0;\n if (n.Za) {\n var r = n.Ob,\n q = 0;\n for (h = 0; 4 > h; ++h) {\n var t = m[0 + h];\n var v;\n for (v = 0; 4 > v; ++v) {\n t = Ke[k[l + v]][t];\n for (var p = Mc[K(g, t[0])]; 0 < p; )\n p = Mc[2 * p + K(g, t[p])];\n t = -p;\n k[l + v] = t;\n }\n I(r, q, k, l, 4);\n q += 4;\n m[0 + h] = t;\n }\n } else\n (t = K(g, 156) ? (K(g, 128) ? 1 : 3) : K(g, 163) ? 2 : 0),\n (n.Ob[0] = t),\n M(k, l, t, 4),\n M(m, 0, t, 4);\n n.Dd = K(g, 142) ? (K(g, 114) ? (K(g, 183) ? 1 : 3) : 2) : 0;\n }\n if (e.m.Ka) return T(a, 7, \"Premature end-of-partition0 encountered.\");\n for (; a.ja < a.za; ++a.ja) {\n d = a;\n e = c;\n g = d.rb[d.sb - 1];\n k = d.rb[d.sb + d.ja];\n f = d.ya[d.aa + d.ja];\n if ((l = d.kc ? f.Ad : 0))\n (g.la = k.la = 0),\n f.Za || (g.Na = k.Na = 0),\n (f.Hc = 0),\n (f.Gc = 0),\n (f.ia = 0);\n else {\n var u,\n w,\n g = k,\n k = e,\n l = d.Pa.Xc,\n m = d.ya[d.aa + d.ja],\n n = d.pb[m.$b];\n h = m.ad;\n r = 0;\n q = d.rb[d.sb - 1];\n t = v = 0;\n M(h, r, 0, 384);\n if (m.Za) {\n var y = 0;\n var A = l[3];\n } else {\n p = V(16);\n var E = g.Na + q.Na;\n E = oa(k, l[1], E, n.Eb, 0, p, 0);\n g.Na = q.Na = (0 < E) + 0;\n if (1 < E) Nc(p, 0, h, r);\n else {\n var B = (p[0] + 3) >> 3;\n for (p = 0; 256 > p; p += 16) h[r + p] = B;\n }\n y = 1;\n A = l[0];\n }\n var C = g.la & 15;\n var N = q.la & 15;\n for (p = 0; 4 > p; ++p) {\n var z = N & 1;\n for (B = w = 0; 4 > B; ++B)\n (E = z + (C & 1)),\n (E = oa(k, A, E, n.Sc, y, h, r)),\n (z = E > y),\n (C = (C >> 1) | (z << 7)),\n (w = (w << 2) | (3 < E ? 3 : 1 < E ? 2 : 0 != h[r + 0])),\n (r += 16);\n C >>= 4;\n N = (N >> 1) | (z << 7);\n v = ((v << 8) | w) >>> 0;\n }\n A = C;\n y = N >> 4;\n for (u = 0; 4 > u; u += 2) {\n w = 0;\n C = g.la >> (4 + u);\n N = q.la >> (4 + u);\n for (p = 0; 2 > p; ++p) {\n z = N & 1;\n for (B = 0; 2 > B; ++B)\n (E = z + (C & 1)),\n (E = oa(k, l[2], E, n.Qc, 0, h, r)),\n (z = 0 < E),\n (C = (C >> 1) | (z << 3)),\n (w = (w << 2) | (3 < E ? 3 : 1 < E ? 2 : 0 != h[r + 0])),\n (r += 16);\n C >>= 2;\n N = (N >> 1) | (z << 5);\n }\n t |= w << (4 * u);\n A |= (C << 4) << u;\n y |= (N & 240) << u;\n }\n g.la = A;\n q.la = y;\n m.Hc = v;\n m.Gc = t;\n m.ia = t & 43690 ? 0 : n.ia;\n l = !(v | t);\n }\n 0 < d.L &&\n ((d.wa[d.Y + d.ja] = d.gd[f.$b][f.Za]),\n (d.wa[d.Y + d.ja].La |= !l));\n if (e.Ka) return T(a, 7, \"Premature end-of-file encountered.\");\n }\n Lc(a);\n c = a;\n d = b;\n e = 1;\n f = c.D;\n g = 0 < c.L && c.M >= c.zb && c.M <= c.Va;\n if (0 == c.Aa)\n a: {\n (f.M = c.M), (f.uc = g), Oc(c, f), (e = 1);\n w = c.D;\n f = w.Nb;\n t = Ya[c.L];\n g = t * c.R;\n k = (t / 2) * c.B;\n p = 16 * f * c.R;\n B = 8 * f * c.B;\n l = c.sa;\n m = c.ta - g + p;\n n = c.qa;\n h = c.ra - k + B;\n r = c.Ha;\n q = c.Ia - k + B;\n C = w.M;\n N = 0 == C;\n v = C >= c.Va - 1;\n 2 == c.Aa && Oc(c, w);\n if (w.uc)\n for (E = c, z = E.D.M, x(E.D.uc), w = E.yb; w < E.Hb; ++w) {\n var Q = E;\n y = w;\n A = z;\n var S = Q.D,\n D = S.Nb;\n u = Q.R;\n var S = S.wa[S.Y + y],\n F = Q.sa,\n H = Q.ta + 16 * D * u + 16 * y,\n J = S.dd,\n G = S.tc;\n if (0 != G)\n if ((x(3 <= G), 1 == Q.L))\n 0 < y && Pc(F, H, u, G + 4),\n S.La && Qc(F, H, u, G),\n 0 < A && Rc(F, H, u, G + 4),\n S.La && Sc(F, H, u, G);\n else {\n var L = Q.B,\n O = Q.qa,\n P = Q.ra + 8 * D * L + 8 * y,\n R = Q.Ha,\n Q = Q.Ia + 8 * D * L + 8 * y,\n D = S.ld;\n 0 < y &&\n (Tc(F, H, u, G + 4, J, D),\n Uc(O, P, R, Q, L, G + 4, J, D));\n S.La && (Vc(F, H, u, G, J, D), Wc(O, P, R, Q, L, G, J, D));\n 0 < A &&\n (Xc(F, H, u, G + 4, J, D),\n Yc(O, P, R, Q, L, G + 4, J, D));\n S.La && (Zc(F, H, u, G, J, D), $c(O, P, R, Q, L, G, J, D));\n }\n }\n c.ia && alert(\"todo:DitherRow\");\n if (null != d.put) {\n w = 16 * C;\n C = 16 * (C + 1);\n N\n ? ((d.y = c.sa),\n (d.O = c.ta + p),\n (d.f = c.qa),\n (d.N = c.ra + B),\n (d.ea = c.Ha),\n (d.W = c.Ia + B))\n : ((w -= t),\n (d.y = l),\n (d.O = m),\n (d.f = n),\n (d.N = h),\n (d.ea = r),\n (d.W = q));\n v || (C -= t);\n C > d.o && (C = d.o);\n d.F = null;\n d.J = null;\n if (\n null != c.Fa &&\n 0 < c.Fa.length &&\n w < C &&\n ((d.J = Le(c, d, w, C - w)),\n (d.F = c.mb),\n null == d.F && 0 == d.F.length)\n ) {\n e = T(c, 3, \"Could not decode alpha data.\");\n break a;\n }\n w < d.j &&\n ((t = d.j - w),\n (w = d.j),\n x(!(t & 1)),\n (d.O += c.R * t),\n (d.N += c.B * (t >> 1)),\n (d.W += c.B * (t >> 1)),\n null != d.F && (d.J += d.width * t));\n w < C &&\n ((d.O += d.v),\n (d.N += d.v >> 1),\n (d.W += d.v >> 1),\n null != d.F && (d.J += d.v),\n (d.ka = w - d.j),\n (d.U = d.va - d.v),\n (d.T = C - w),\n (e = d.put(d)));\n }\n f + 1 != c.Ic ||\n v ||\n (I(c.sa, c.ta - g, l, m + 16 * c.R, g),\n I(c.qa, c.ra - k, n, h + 8 * c.B, k),\n I(c.Ha, c.Ia - k, r, q + 8 * c.B, k));\n }\n if (!e) return T(a, 6, \"Output aborted.\");\n }\n return 1;\n }\n function Me(a, b) {\n if (null == a) return 0;\n if (null == b) return T(a, 2, \"NULL VP8Io parameter in VP8Decode().\");\n if (!a.cb && !Kc(a, b)) return 0;\n x(a.cb);\n if (null == b.ac || b.ac(b)) {\n b.ob && (a.L = 0);\n var c = Ya[a.L];\n 2 == a.L\n ? ((a.yb = 0), (a.zb = 0))\n : ((a.yb = (b.v - c) >> 4),\n (a.zb = (b.j - c) >> 4),\n 0 > a.yb && (a.yb = 0),\n 0 > a.zb && (a.zb = 0));\n a.Va = (b.o + 15 + c) >> 4;\n a.Hb = (b.va + 15 + c) >> 4;\n a.Hb > a.za && (a.Hb = a.za);\n a.Va > a.Ub && (a.Va = a.Ub);\n if (0 < a.L) {\n var d = a.ed;\n for (c = 0; 4 > c; ++c) {\n var e;\n if (a.Qa.Cb) {\n var f = a.Qa.Lb[c];\n a.Qa.Fb || (f += d.Tb);\n } else f = d.Tb;\n for (e = 0; 1 >= e; ++e) {\n var g = a.gd[c][e],\n h = f;\n d.Pc && ((h += d.vd[0]), e && (h += d.od[0]));\n h = 0 > h ? 0 : 63 < h ? 63 : h;\n if (0 < h) {\n var k = h;\n 0 < d.wb &&\n ((k = 4 < d.wb ? k >> 2 : k >> 1),\n k > 9 - d.wb && (k = 9 - d.wb));\n 1 > k && (k = 1);\n g.dd = k;\n g.tc = 2 * h + k;\n g.ld = 40 <= h ? 2 : 15 <= h ? 1 : 0;\n } else g.tc = 0;\n g.La = e;\n }\n }\n }\n c = 0;\n } else T(a, 6, \"Frame setup failed\"), (c = a.a);\n if ((c = 0 == c)) {\n if (c) {\n a.$c = 0;\n 0 < a.Aa || (a.Ic = Ne);\n b: {\n c = a.Ic;\n var k = a.za,\n d = 4 * k,\n l = 32 * k,\n m = k + 1,\n n = 0 < a.L ? k * (0 < a.Aa ? 2 : 1) : 0,\n r = (2 == a.Aa ? 2 : 1) * k;\n e = ((3 * (16 * c + Ya[a.L])) / 2) * l;\n f = null != a.Fa && 0 < a.Fa.length ? a.Kc.c * a.Kc.i : 0;\n g = d + 832 + e + f;\n if (g != g) c = 0;\n else {\n if (g > a.Vb) {\n a.Vb = 0;\n a.Ec = V(g);\n a.Fc = 0;\n if (null == a.Ec) {\n c = T(a, 1, \"no memory during frame initialization.\");\n break b;\n }\n a.Vb = g;\n }\n g = a.Ec;\n h = a.Fc;\n a.Ac = g;\n a.Bc = h;\n h += d;\n a.Gd = wa(l, Ic);\n a.Hd = 0;\n a.rb = wa(m + 1, Hc);\n a.sb = 1;\n a.wa = n ? wa(n, Xa) : null;\n a.Y = 0;\n a.D.Nb = 0;\n a.D.wa = a.wa;\n a.D.Y = a.Y;\n 0 < a.Aa && (a.D.Y += k);\n x(!0);\n a.oc = g;\n a.pc = h;\n h += 832;\n a.ya = wa(r, Kb);\n a.aa = 0;\n a.D.ya = a.ya;\n a.D.aa = a.aa;\n 2 == a.Aa && (a.D.aa += k);\n a.R = 16 * k;\n a.B = 8 * k;\n l = Ya[a.L];\n k = l * a.R;\n l = (l / 2) * a.B;\n a.sa = g;\n a.ta = h + k;\n a.qa = a.sa;\n a.ra = a.ta + 16 * c * a.R + l;\n a.Ha = a.qa;\n a.Ia = a.ra + 8 * c * a.B + l;\n a.$c = 0;\n h += e;\n a.mb = f ? g : null;\n a.nb = f ? h : null;\n x(h + f <= a.Fc + a.Vb);\n Lc(a);\n M(a.Ac, a.Bc, 0, d);\n c = 1;\n }\n }\n if (c) {\n b.ka = 0;\n b.y = a.sa;\n b.O = a.ta;\n b.f = a.qa;\n b.N = a.ra;\n b.ea = a.Ha;\n b.Vd = a.Ia;\n b.fa = a.R;\n b.Rc = a.B;\n b.F = null;\n b.J = 0;\n if (!ad) {\n for (c = -255; 255 >= c; ++c) bd[255 + c] = 0 > c ? -c : c;\n for (c = -1020; 1020 >= c; ++c)\n cd[1020 + c] = -128 > c ? -128 : 127 < c ? 127 : c;\n for (c = -112; 112 >= c; ++c)\n dd[112 + c] = -16 > c ? -16 : 15 < c ? 15 : c;\n for (c = -255; 510 >= c; ++c)\n ed[255 + c] = 0 > c ? 0 : 255 < c ? 255 : c;\n ad = 1;\n }\n Nc = Oe;\n Za = Pe;\n Nb = Qe;\n pa = Re;\n Ob = Se;\n fd = Te;\n Xc = Ue;\n Tc = Ve;\n Yc = We;\n Uc = Xe;\n Zc = Ye;\n Vc = Ze;\n $c = $e;\n Wc = af;\n Rc = gd;\n Pc = hd;\n Sc = bf;\n Qc = cf;\n W[0] = df;\n W[1] = ef;\n W[2] = ff;\n W[3] = gf;\n W[4] = hf;\n W[5] = jf;\n W[6] = kf;\n W[7] = lf;\n W[8] = mf;\n W[9] = nf;\n Y[0] = of;\n Y[1] = pf;\n Y[2] = qf;\n Y[3] = rf;\n Y[4] = sf;\n Y[5] = tf;\n Y[6] = uf;\n ka[0] = vf;\n ka[1] = wf;\n ka[2] = xf;\n ka[3] = yf;\n ka[4] = zf;\n ka[5] = Af;\n ka[6] = Bf;\n c = 1;\n } else c = 0;\n }\n c && (c = Je(a, b));\n null != b.bc && b.bc(b);\n c &= 1;\n }\n if (!c) return 0;\n a.cb = 0;\n return c;\n }\n function qa(a, b, c, d, e) {\n e = a[b + c + 32 * d] + (e >> 3);\n a[b + c + 32 * d] = e & -256 ? (0 > e ? 0 : 255) : e;\n }\n function kb(a, b, c, d, e, f) {\n qa(a, b, 0, c, d + e);\n qa(a, b, 1, c, d + f);\n qa(a, b, 2, c, d - f);\n qa(a, b, 3, c, d - e);\n }\n function da(a) {\n return ((20091 * a) >> 16) + a;\n }\n function id(a, b, c, d) {\n var e = 0,\n f;\n var g = V(16);\n for (f = 0; 4 > f; ++f) {\n var h = a[b + 0] + a[b + 8];\n var k = a[b + 0] - a[b + 8];\n var l = ((35468 * a[b + 4]) >> 16) - da(a[b + 12]);\n var m = da(a[b + 4]) + ((35468 * a[b + 12]) >> 16);\n g[e + 0] = h + m;\n g[e + 1] = k + l;\n g[e + 2] = k - l;\n g[e + 3] = h - m;\n e += 4;\n b++;\n }\n for (f = e = 0; 4 > f; ++f)\n (a = g[e + 0] + 4),\n (h = a + g[e + 8]),\n (k = a - g[e + 8]),\n (l = ((35468 * g[e + 4]) >> 16) - da(g[e + 12])),\n (m = da(g[e + 4]) + ((35468 * g[e + 12]) >> 16)),\n qa(c, d, 0, 0, h + m),\n qa(c, d, 1, 0, k + l),\n qa(c, d, 2, 0, k - l),\n qa(c, d, 3, 0, h - m),\n e++,\n (d += 32);\n }\n function Te(a, b, c, d) {\n var e = a[b + 0] + 4,\n f = (35468 * a[b + 4]) >> 16,\n g = da(a[b + 4]),\n h = (35468 * a[b + 1]) >> 16;\n a = da(a[b + 1]);\n kb(c, d, 0, e + g, a, h);\n kb(c, d, 1, e + f, a, h);\n kb(c, d, 2, e - f, a, h);\n kb(c, d, 3, e - g, a, h);\n }\n function Pe(a, b, c, d, e) {\n id(a, b, c, d);\n e && id(a, b + 16, c, d + 4);\n }\n function Qe(a, b, c, d) {\n Za(a, b + 0, c, d, 1);\n Za(a, b + 32, c, d + 128, 1);\n }\n function Re(a, b, c, d) {\n a = a[b + 0] + 4;\n var e;\n for (e = 0; 4 > e; ++e) for (b = 0; 4 > b; ++b) qa(c, d, b, e, a);\n }\n function Se(a, b, c, d) {\n a[b + 0] && pa(a, b + 0, c, d);\n a[b + 16] && pa(a, b + 16, c, d + 4);\n a[b + 32] && pa(a, b + 32, c, d + 128);\n a[b + 48] && pa(a, b + 48, c, d + 128 + 4);\n }\n function Oe(a, b, c, d) {\n var e = V(16),\n f;\n for (f = 0; 4 > f; ++f) {\n var g = a[b + 0 + f] + a[b + 12 + f];\n var h = a[b + 4 + f] + a[b + 8 + f];\n var k = a[b + 4 + f] - a[b + 8 + f];\n var l = a[b + 0 + f] - a[b + 12 + f];\n e[0 + f] = g + h;\n e[8 + f] = g - h;\n e[4 + f] = l + k;\n e[12 + f] = l - k;\n }\n for (f = 0; 4 > f; ++f)\n (a = e[0 + 4 * f] + 3),\n (g = a + e[3 + 4 * f]),\n (h = e[1 + 4 * f] + e[2 + 4 * f]),\n (k = e[1 + 4 * f] - e[2 + 4 * f]),\n (l = a - e[3 + 4 * f]),\n (c[d + 0] = (g + h) >> 3),\n (c[d + 16] = (l + k) >> 3),\n (c[d + 32] = (g - h) >> 3),\n (c[d + 48] = (l - k) >> 3),\n (d += 64);\n }\n function Pb(a, b, c) {\n var d = b - 32,\n e = R,\n f = 255 - a[d - 1],\n g;\n for (g = 0; g < c; ++g) {\n var h = e,\n k = f + a[b - 1],\n l;\n for (l = 0; l < c; ++l) a[b + l] = h[k + a[d + l]];\n b += 32;\n }\n }\n function ef(a, b) {\n Pb(a, b, 4);\n }\n function wf(a, b) {\n Pb(a, b, 8);\n }\n function pf(a, b) {\n Pb(a, b, 16);\n }\n function qf(a, b) {\n var c;\n for (c = 0; 16 > c; ++c) I(a, b + 32 * c, a, b - 32, 16);\n }\n function rf(a, b) {\n var c;\n for (c = 16; 0 < c; --c) M(a, b, a[b - 1], 16), (b += 32);\n }\n function $a(a, b, c) {\n var d;\n for (d = 0; 16 > d; ++d) M(b, c + 32 * d, a, 16);\n }\n function of(a, b) {\n var c = 16,\n d;\n for (d = 0; 16 > d; ++d) c += a[b - 1 + 32 * d] + a[b + d - 32];\n $a(c >> 5, a, b);\n }\n function sf(a, b) {\n var c = 8,\n d;\n for (d = 0; 16 > d; ++d) c += a[b - 1 + 32 * d];\n $a(c >> 4, a, b);\n }\n function tf(a, b) {\n var c = 8,\n d;\n for (d = 0; 16 > d; ++d) c += a[b + d - 32];\n $a(c >> 4, a, b);\n }\n function uf(a, b) {\n $a(128, a, b);\n }\n function z(a, b, c) {\n return (a + 2 * b + c + 2) >> 2;\n }\n function ff(a, b) {\n var c = b - 32,\n c = new Uint8Array([\n z(a[c - 1], a[c + 0], a[c + 1]),\n z(a[c + 0], a[c + 1], a[c + 2]),\n z(a[c + 1], a[c + 2], a[c + 3]),\n z(a[c + 2], a[c + 3], a[c + 4])\n ]),\n d;\n for (d = 0; 4 > d; ++d) I(a, b + 32 * d, c, 0, c.length);\n }\n function gf(a, b) {\n var c = a[b - 1],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96];\n ra(a, b + 0, 16843009 * z(a[b - 1 - 32], c, d));\n ra(a, b + 32, 16843009 * z(c, d, e));\n ra(a, b + 64, 16843009 * z(d, e, f));\n ra(a, b + 96, 16843009 * z(e, f, f));\n }\n function df(a, b) {\n var c = 4,\n d;\n for (d = 0; 4 > d; ++d) c += a[b + d - 32] + a[b - 1 + 32 * d];\n c >>= 3;\n for (d = 0; 4 > d; ++d) M(a, b + 32 * d, c, 4);\n }\n function hf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 - 32],\n g = a[b + 0 - 32],\n h = a[b + 1 - 32],\n k = a[b + 2 - 32],\n l = a[b + 3 - 32];\n a[b + 0 + 96] = z(d, e, a[b - 1 + 96]);\n a[b + 1 + 96] = a[b + 0 + 64] = z(c, d, e);\n a[b + 2 + 96] = a[b + 1 + 64] = a[b + 0 + 32] = z(f, c, d);\n a[b + 3 + 96] = a[b + 2 + 64] = a[b + 1 + 32] = a[b + 0 + 0] = z(g, f, c);\n a[b + 3 + 64] = a[b + 2 + 32] = a[b + 1 + 0] = z(h, g, f);\n a[b + 3 + 32] = a[b + 2 + 0] = z(k, h, g);\n a[b + 3 + 0] = z(l, k, h);\n }\n function kf(a, b) {\n var c = a[b + 1 - 32],\n d = a[b + 2 - 32],\n e = a[b + 3 - 32],\n f = a[b + 4 - 32],\n g = a[b + 5 - 32],\n h = a[b + 6 - 32],\n k = a[b + 7 - 32];\n a[b + 0 + 0] = z(a[b + 0 - 32], c, d);\n a[b + 1 + 0] = a[b + 0 + 32] = z(c, d, e);\n a[b + 2 + 0] = a[b + 1 + 32] = a[b + 0 + 64] = z(d, e, f);\n a[b + 3 + 0] = a[b + 2 + 32] = a[b + 1 + 64] = a[b + 0 + 96] = z(e, f, g);\n a[b + 3 + 32] = a[b + 2 + 64] = a[b + 1 + 96] = z(f, g, h);\n a[b + 3 + 64] = a[b + 2 + 96] = z(g, h, k);\n a[b + 3 + 96] = z(h, k, k);\n }\n function jf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 - 32],\n g = a[b + 0 - 32],\n h = a[b + 1 - 32],\n k = a[b + 2 - 32],\n l = a[b + 3 - 32];\n a[b + 0 + 0] = a[b + 1 + 64] = (f + g + 1) >> 1;\n a[b + 1 + 0] = a[b + 2 + 64] = (g + h + 1) >> 1;\n a[b + 2 + 0] = a[b + 3 + 64] = (h + k + 1) >> 1;\n a[b + 3 + 0] = (k + l + 1) >> 1;\n a[b + 0 + 96] = z(e, d, c);\n a[b + 0 + 64] = z(d, c, f);\n a[b + 0 + 32] = a[b + 1 + 96] = z(c, f, g);\n a[b + 1 + 32] = a[b + 2 + 96] = z(f, g, h);\n a[b + 2 + 32] = a[b + 3 + 96] = z(g, h, k);\n a[b + 3 + 32] = z(h, k, l);\n }\n function lf(a, b) {\n var c = a[b + 0 - 32],\n d = a[b + 1 - 32],\n e = a[b + 2 - 32],\n f = a[b + 3 - 32],\n g = a[b + 4 - 32],\n h = a[b + 5 - 32],\n k = a[b + 6 - 32],\n l = a[b + 7 - 32];\n a[b + 0 + 0] = (c + d + 1) >> 1;\n a[b + 1 + 0] = a[b + 0 + 64] = (d + e + 1) >> 1;\n a[b + 2 + 0] = a[b + 1 + 64] = (e + f + 1) >> 1;\n a[b + 3 + 0] = a[b + 2 + 64] = (f + g + 1) >> 1;\n a[b + 0 + 32] = z(c, d, e);\n a[b + 1 + 32] = a[b + 0 + 96] = z(d, e, f);\n a[b + 2 + 32] = a[b + 1 + 96] = z(e, f, g);\n a[b + 3 + 32] = a[b + 2 + 96] = z(f, g, h);\n a[b + 3 + 64] = z(g, h, k);\n a[b + 3 + 96] = z(h, k, l);\n }\n function nf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96];\n a[b + 0 + 0] = (c + d + 1) >> 1;\n a[b + 2 + 0] = a[b + 0 + 32] = (d + e + 1) >> 1;\n a[b + 2 + 32] = a[b + 0 + 64] = (e + f + 1) >> 1;\n a[b + 1 + 0] = z(c, d, e);\n a[b + 3 + 0] = a[b + 1 + 32] = z(d, e, f);\n a[b + 3 + 32] = a[b + 1 + 64] = z(e, f, f);\n a[b + 3 + 64] = a[b + 2 + 64] = a[b + 0 + 96] = a[b + 1 + 96] = a[\n b + 2 + 96\n ] = a[b + 3 + 96] = f;\n }\n function mf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96],\n g = a[b - 1 - 32],\n h = a[b + 0 - 32],\n k = a[b + 1 - 32],\n l = a[b + 2 - 32];\n a[b + 0 + 0] = a[b + 2 + 32] = (c + g + 1) >> 1;\n a[b + 0 + 32] = a[b + 2 + 64] = (d + c + 1) >> 1;\n a[b + 0 + 64] = a[b + 2 + 96] = (e + d + 1) >> 1;\n a[b + 0 + 96] = (f + e + 1) >> 1;\n a[b + 3 + 0] = z(h, k, l);\n a[b + 2 + 0] = z(g, h, k);\n a[b + 1 + 0] = a[b + 3 + 32] = z(c, g, h);\n a[b + 1 + 32] = a[b + 3 + 64] = z(d, c, g);\n a[b + 1 + 64] = a[b + 3 + 96] = z(e, d, c);\n a[b + 1 + 96] = z(f, e, d);\n }\n function xf(a, b) {\n var c;\n for (c = 0; 8 > c; ++c) I(a, b + 32 * c, a, b - 32, 8);\n }\n function yf(a, b) {\n var c;\n for (c = 0; 8 > c; ++c) M(a, b, a[b - 1], 8), (b += 32);\n }\n function lb(a, b, c) {\n var d;\n for (d = 0; 8 > d; ++d) M(b, c + 32 * d, a, 8);\n }\n function vf(a, b) {\n var c = 8,\n d;\n for (d = 0; 8 > d; ++d) c += a[b + d - 32] + a[b - 1 + 32 * d];\n lb(c >> 4, a, b);\n }\n function Af(a, b) {\n var c = 4,\n d;\n for (d = 0; 8 > d; ++d) c += a[b + d - 32];\n lb(c >> 3, a, b);\n }\n function zf(a, b) {\n var c = 4,\n d;\n for (d = 0; 8 > d; ++d) c += a[b - 1 + 32 * d];\n lb(c >> 3, a, b);\n }\n function Bf(a, b) {\n lb(128, a, b);\n }\n function ab(a, b, c) {\n var d = a[b - c],\n e = a[b + 0],\n f = 3 * (e - d) + Qb[1020 + a[b - 2 * c] - a[b + c]],\n g = mb[112 + ((f + 4) >> 3)];\n a[b - c] = R[255 + d + mb[112 + ((f + 3) >> 3)]];\n a[b + 0] = R[255 + e - g];\n }\n function jd(a, b, c, d) {\n var e = a[b + 0],\n f = a[b + c];\n return U[255 + a[b - 2 * c] - a[b - c]] > d || U[255 + f - e] > d;\n }\n function kd(a, b, c, d) {\n return (\n 4 * U[255 + a[b - c] - a[b + 0]] + U[255 + a[b - 2 * c] - a[b + c]] <= d\n );\n }\n function ld(a, b, c, d, e) {\n var f = a[b - 3 * c],\n g = a[b - 2 * c],\n h = a[b - c],\n k = a[b + 0],\n l = a[b + c],\n m = a[b + 2 * c],\n n = a[b + 3 * c];\n return 4 * U[255 + h - k] + U[255 + g - l] > d\n ? 0\n : U[255 + a[b - 4 * c] - f] <= e &&\n U[255 + f - g] <= e &&\n U[255 + g - h] <= e &&\n U[255 + n - m] <= e &&\n U[255 + m - l] <= e &&\n U[255 + l - k] <= e;\n }\n function gd(a, b, c, d) {\n var e = 2 * d + 1;\n for (d = 0; 16 > d; ++d) kd(a, b + d, c, e) && ab(a, b + d, c);\n }\n function hd(a, b, c, d) {\n var e = 2 * d + 1;\n for (d = 0; 16 > d; ++d) kd(a, b + d * c, 1, e) && ab(a, b + d * c, 1);\n }\n function bf(a, b, c, d) {\n var e;\n for (e = 3; 0 < e; --e) (b += 4 * c), gd(a, b, c, d);\n }\n function cf(a, b, c, d) {\n var e;\n for (e = 3; 0 < e; --e) (b += 4), hd(a, b, c, d);\n }\n function ea(a, b, c, d, e, f, g, h) {\n for (f = 2 * f + 1; 0 < e--; ) {\n if (ld(a, b, c, f, g))\n if (jd(a, b, c, h)) ab(a, b, c);\n else {\n var k = a,\n l = b,\n m = c,\n n = k[l - 2 * m],\n r = k[l - m],\n q = k[l + 0],\n t = k[l + m],\n v = k[l + 2 * m],\n p = Qb[1020 + 3 * (q - r) + Qb[1020 + n - t]],\n u = (27 * p + 63) >> 7,\n w = (18 * p + 63) >> 7,\n p = (9 * p + 63) >> 7;\n k[l - 3 * m] = R[255 + k[l - 3 * m] + p];\n k[l - 2 * m] = R[255 + n + w];\n k[l - m] = R[255 + r + u];\n k[l + 0] = R[255 + q - u];\n k[l + m] = R[255 + t - w];\n k[l + 2 * m] = R[255 + v - p];\n }\n b += d;\n }\n }\n function Fa(a, b, c, d, e, f, g, h) {\n for (f = 2 * f + 1; 0 < e--; ) {\n if (ld(a, b, c, f, g))\n if (jd(a, b, c, h)) ab(a, b, c);\n else {\n var k = a,\n l = b,\n m = c,\n n = k[l - m],\n r = k[l + 0],\n q = k[l + m],\n t = 3 * (r - n),\n v = mb[112 + ((t + 4) >> 3)],\n t = mb[112 + ((t + 3) >> 3)],\n p = (v + 1) >> 1;\n k[l - 2 * m] = R[255 + k[l - 2 * m] + p];\n k[l - m] = R[255 + n + t];\n k[l + 0] = R[255 + r - v];\n k[l + m] = R[255 + q - p];\n }\n b += d;\n }\n }\n function Ue(a, b, c, d, e, f) {\n ea(a, b, c, 1, 16, d, e, f);\n }\n function Ve(a, b, c, d, e, f) {\n ea(a, b, 1, c, 16, d, e, f);\n }\n function Ye(a, b, c, d, e, f) {\n var g;\n for (g = 3; 0 < g; --g) (b += 4 * c), Fa(a, b, c, 1, 16, d, e, f);\n }\n function Ze(a, b, c, d, e, f) {\n var g;\n for (g = 3; 0 < g; --g) (b += 4), Fa(a, b, 1, c, 16, d, e, f);\n }\n function We(a, b, c, d, e, f, g, h) {\n ea(a, b, e, 1, 8, f, g, h);\n ea(c, d, e, 1, 8, f, g, h);\n }\n function Xe(a, b, c, d, e, f, g, h) {\n ea(a, b, 1, e, 8, f, g, h);\n ea(c, d, 1, e, 8, f, g, h);\n }\n function $e(a, b, c, d, e, f, g, h) {\n Fa(a, b + 4 * e, e, 1, 8, f, g, h);\n Fa(c, d + 4 * e, e, 1, 8, f, g, h);\n }\n function af(a, b, c, d, e, f, g, h) {\n Fa(a, b + 4, 1, e, 8, f, g, h);\n Fa(c, d + 4, 1, e, 8, f, g, h);\n }\n function Cf() {\n this.ba = new Cb();\n this.ec = [];\n this.cc = [];\n this.Mc = [];\n this.Dc = this.Nc = this.dc = this.fc = 0;\n this.Oa = new Ud();\n this.memory = 0;\n this.Ib = \"OutputFunc\";\n this.Jb = \"OutputAlphaFunc\";\n this.Nd = \"OutputRowFunc\";\n }\n function md() {\n this.data = [];\n this.offset = this.kd = this.ha = this.w = 0;\n this.na = [];\n this.xa = this.gb = this.Ja = this.Sa = this.P = 0;\n }\n function Df() {\n this.nc = this.Ea = this.b = this.hc = 0;\n this.K = [];\n this.w = 0;\n }\n function Ef() {\n this.ua = 0;\n this.Wa = new ac();\n this.vb = new ac();\n this.md = this.xc = this.wc = 0;\n this.vc = [];\n this.Wb = 0;\n this.Ya = new Ub();\n this.yc = new O();\n }\n function je() {\n this.xb = this.a = 0;\n this.l = new Oa();\n this.ca = new Cb();\n this.V = [];\n this.Ba = 0;\n this.Ta = [];\n this.Ua = 0;\n this.m = new Ra();\n this.Pb = 0;\n this.wd = new Ra();\n this.Ma = this.$ = this.C = this.i = this.c = this.xd = 0;\n this.s = new Ef();\n this.ab = 0;\n this.gc = wa(4, Df);\n this.Oc = 0;\n }\n function Ff() {\n this.Lc = this.Z = this.$a = this.i = this.c = 0;\n this.l = new Oa();\n this.ic = 0;\n this.ca = [];\n this.tb = 0;\n this.qd = null;\n this.rd = 0;\n }\n function Rb(a, b, c, d, e, f, g) {\n a = null == a ? 0 : a[b + 0];\n for (b = 0; b < g; ++b) (e[f + b] = (a + c[d + b]) & 255), (a = e[f + b]);\n }\n function Gf(a, b, c, d, e, f, g) {\n if (null == a) Rb(null, null, c, d, e, f, g);\n else {\n var h;\n for (h = 0; h < g; ++h) e[f + h] = (a[b + h] + c[d + h]) & 255;\n }\n }\n function Hf(a, b, c, d, e, f, g) {\n if (null == a) Rb(null, null, c, d, e, f, g);\n else {\n var h = a[b + 0],\n k = h,\n l = h,\n m;\n for (m = 0; m < g; ++m)\n (h = a[b + m]),\n (k = l + h - k),\n (l = (c[d + m] + (k & -256 ? (0 > k ? 0 : 255) : k)) & 255),\n (k = h),\n (e[f + m] = l);\n }\n }\n function Le(a, b, c, d) {\n var e = b.width,\n f = b.o;\n x(null != a && null != b);\n if (0 > c || 0 >= d || c + d > f) return null;\n if (!a.Cc) {\n if (null == a.ga) {\n a.ga = new Ff();\n var g;\n (g = null == a.ga) ||\n ((g = b.width * b.o),\n x(0 == a.Gb.length),\n (a.Gb = V(g)),\n (a.Uc = 0),\n null == a.Gb\n ? (g = 0)\n : ((a.mb = a.Gb), (a.nb = a.Uc), (a.rc = null), (g = 1)),\n (g = !g));\n if (!g) {\n g = a.ga;\n var h = a.Fa,\n k = a.P,\n l = a.qc,\n m = a.mb,\n n = a.nb,\n r = k + 1,\n q = l - 1,\n t = g.l;\n x(null != h && null != m && null != b);\n ia[0] = null;\n ia[1] = Rb;\n ia[2] = Gf;\n ia[3] = Hf;\n g.ca = m;\n g.tb = n;\n g.c = b.width;\n g.i = b.height;\n x(0 < g.c && 0 < g.i);\n if (1 >= l) b = 0;\n else if (\n ((g.$a = (h[k + 0] >> 0) & 3),\n (g.Z = (h[k + 0] >> 2) & 3),\n (g.Lc = (h[k + 0] >> 4) & 3),\n (k = (h[k + 0] >> 6) & 3),\n 0 > g.$a || 1 < g.$a || 4 <= g.Z || 1 < g.Lc || k)\n )\n b = 0;\n else if (\n ((t.put = kc),\n (t.ac = gc),\n (t.bc = lc),\n (t.ma = g),\n (t.width = b.width),\n (t.height = b.height),\n (t.Da = b.Da),\n (t.v = b.v),\n (t.va = b.va),\n (t.j = b.j),\n (t.o = b.o),\n g.$a)\n )\n b: {\n x(1 == g.$a), (b = Bc());\n c: for (;;) {\n if (null == b) {\n b = 0;\n break b;\n }\n x(null != g);\n g.mc = b;\n b.c = g.c;\n b.i = g.i;\n b.l = g.l;\n b.l.ma = g;\n b.l.width = g.c;\n b.l.height = g.i;\n b.a = 0;\n cb(b.m, h, r, q);\n if (!rb(g.c, g.i, 1, b, null)) break c;\n 1 == b.ab && 3 == b.gc[0].hc && yc(b.s)\n ? ((g.ic = 1),\n (h = b.c * b.i),\n (b.Ta = null),\n (b.Ua = 0),\n (b.V = V(h)),\n (b.Ba = 0),\n null == b.V ? ((b.a = 1), (b = 0)) : (b = 1))\n : ((g.ic = 0), (b = Ec(b, g.c)));\n if (!b) break c;\n b = 1;\n break b;\n }\n g.mc = null;\n b = 0;\n }\n else b = q >= g.c * g.i;\n g = !b;\n }\n if (g) return null;\n 1 != a.ga.Lc ? (a.Ga = 0) : (d = f - c);\n }\n x(null != a.ga);\n x(c + d <= f);\n a: {\n h = a.ga;\n b = h.c;\n f = h.l.o;\n if (0 == h.$a) {\n r = a.rc;\n q = a.Vc;\n t = a.Fa;\n k = a.P + 1 + c * b;\n l = a.mb;\n m = a.nb + c * b;\n x(k <= a.P + a.qc);\n if (0 != h.Z)\n for (x(null != ia[h.Z]), g = 0; g < d; ++g)\n ia[h.Z](r, q, t, k, l, m, b),\n (r = l),\n (q = m),\n (m += b),\n (k += b);\n else\n for (g = 0; g < d; ++g)\n I(l, m, t, k, b), (r = l), (q = m), (m += b), (k += b);\n a.rc = r;\n a.Vc = q;\n } else {\n x(null != h.mc);\n b = c + d;\n g = h.mc;\n x(null != g);\n x(b <= g.i);\n if (g.C >= b) b = 1;\n else if ((h.ic || Aa(), h.ic)) {\n var h = g.V,\n r = g.Ba,\n q = g.c,\n v = g.i,\n t = 1,\n k = g.$ / q,\n l = g.$ % q,\n m = g.m,\n n = g.s,\n p = g.$,\n u = q * v,\n w = q * b,\n y = n.wc,\n A = p < w ? ha(n, l, k) : null;\n x(p <= u);\n x(b <= v);\n x(yc(n));\n c: for (;;) {\n for (; !m.h && p < w; ) {\n l & y || (A = ha(n, l, k));\n x(null != A);\n Sa(m);\n v = ua(A.G[0], A.H[0], m);\n if (256 > v)\n (h[r + p] = v),\n ++p,\n ++l,\n l >= q && ((l = 0), ++k, k <= b && !(k % 16) && Ib(g, k));\n else if (280 > v) {\n var v = ib(v - 256, m);\n var E = ua(A.G[4], A.H[4], m);\n Sa(m);\n E = ib(E, m);\n E = nc(q, E);\n if (p >= E && u - p >= v) {\n var B;\n for (B = 0; B < v; ++B) h[r + p + B] = h[r + p + B - E];\n } else {\n t = 0;\n break c;\n }\n p += v;\n for (l += v; l >= q; )\n (l -= q), ++k, k <= b && !(k % 16) && Ib(g, k);\n p < w && l & y && (A = ha(n, l, k));\n } else {\n t = 0;\n break c;\n }\n x(m.h == db(m));\n }\n Ib(g, k > b ? b : k);\n break c;\n }\n !t || (m.h && p < u) ? ((t = 0), (g.a = m.h ? 5 : 3)) : (g.$ = p);\n b = t;\n } else b = Jb(g, g.V, g.Ba, g.c, g.i, b, se);\n if (!b) {\n d = 0;\n break a;\n }\n }\n c + d >= f && (a.Cc = 1);\n d = 1;\n }\n if (!d) return null;\n if (\n a.Cc &&\n ((d = a.ga), null != d && (d.mc = null), (a.ga = null), 0 < a.Ga)\n )\n return alert(\"todo:WebPDequantizeLevels\"), null;\n }\n return a.nb + c * e;\n }\n function If(a, b, c, d, e, f) {\n for (; 0 < e--; ) {\n var g = a,\n h = b + (c ? 1 : 0),\n k = a,\n l = b + (c ? 0 : 3),\n m;\n for (m = 0; m < d; ++m) {\n var n = k[l + 4 * m];\n 255 != n &&\n ((n *= 32897),\n (g[h + 4 * m + 0] = (g[h + 4 * m + 0] * n) >> 23),\n (g[h + 4 * m + 1] = (g[h + 4 * m + 1] * n) >> 23),\n (g[h + 4 * m + 2] = (g[h + 4 * m + 2] * n) >> 23));\n }\n b += f;\n }\n }\n function Jf(a, b, c, d, e) {\n for (; 0 < d--; ) {\n var f;\n for (f = 0; f < c; ++f) {\n var g = a[b + 2 * f + 0],\n h = a[b + 2 * f + 1],\n k = h & 15,\n l = 4369 * k,\n h = (((h & 240) | (h >> 4)) * l) >> 16;\n a[b + 2 * f + 0] =\n (((((g & 240) | (g >> 4)) * l) >> 16) & 240) |\n ((((((g & 15) | (g << 4)) * l) >> 16) >> 4) & 15);\n a[b + 2 * f + 1] = (h & 240) | k;\n }\n b += e;\n }\n }\n function Kf(a, b, c, d, e, f, g, h) {\n var k = 255,\n l,\n m;\n for (m = 0; m < e; ++m) {\n for (l = 0; l < d; ++l) {\n var n = a[b + l];\n f[g + 4 * l] = n;\n k &= n;\n }\n b += c;\n g += h;\n }\n return 255 != k;\n }\n function Lf(a, b, c, d, e) {\n var f;\n for (f = 0; f < e; ++f) c[d + f] = a[b + f] >> 8;\n }\n function Aa() {\n za = If;\n vc = Jf;\n fc = Kf;\n Fc = Lf;\n }\n function va(a, b, c) {\n self[a] = function(a, e, f, g, h, k, l, m, n, r, q, t, v, p, u, w, y) {\n var d,\n E = (y - 1) >> 1;\n var B = h[k + 0] | (l[m + 0] << 16);\n var C = n[r + 0] | (q[t + 0] << 16);\n x(null != a);\n var z = (3 * B + C + 131074) >> 2;\n b(a[e + 0], z & 255, z >> 16, v, p);\n null != f &&\n ((z = (3 * C + B + 131074) >> 2),\n b(f[g + 0], z & 255, z >> 16, u, w));\n for (d = 1; d <= E; ++d) {\n var D = h[k + d] | (l[m + d] << 16);\n var G = n[r + d] | (q[t + d] << 16);\n var F = B + D + C + G + 524296;\n var H = (F + 2 * (D + C)) >> 3;\n F = (F + 2 * (B + G)) >> 3;\n z = (H + B) >> 1;\n B = (F + D) >> 1;\n b(a[e + 2 * d - 1], z & 255, z >> 16, v, p + (2 * d - 1) * c);\n b(a[e + 2 * d - 0], B & 255, B >> 16, v, p + (2 * d - 0) * c);\n null != f &&\n ((z = (F + C) >> 1),\n (B = (H + G) >> 1),\n b(f[g + 2 * d - 1], z & 255, z >> 16, u, w + (2 * d - 1) * c),\n b(f[g + 2 * d + 0], B & 255, B >> 16, u, w + (2 * d + 0) * c));\n B = D;\n C = G;\n }\n y & 1 ||\n ((z = (3 * B + C + 131074) >> 2),\n b(a[e + y - 1], z & 255, z >> 16, v, p + (y - 1) * c),\n null != f &&\n ((z = (3 * C + B + 131074) >> 2),\n b(f[g + y - 1], z & 255, z >> 16, u, w + (y - 1) * c)));\n };\n }\n function ic() {\n P[Ca] = Mf;\n P[Ua] = nd;\n P[tc] = Nf;\n P[Va] = od;\n P[ya] = pd;\n P[Db] = qd;\n P[wc] = Of;\n P[zb] = nd;\n P[Ab] = od;\n P[Ja] = pd;\n P[Bb] = qd;\n }\n function Sb(a) {\n return a & ~Pf ? (0 > a ? 0 : 255) : a >> rd;\n }\n function bb(a, b) {\n return Sb(((19077 * a) >> 8) + ((26149 * b) >> 8) - 14234);\n }\n function nb(a, b, c) {\n return Sb(\n ((19077 * a) >> 8) - ((6419 * b) >> 8) - ((13320 * c) >> 8) + 8708\n );\n }\n function Pa(a, b) {\n return Sb(((19077 * a) >> 8) + ((33050 * b) >> 8) - 17685);\n }\n function Ga(a, b, c, d, e) {\n d[e + 0] = bb(a, c);\n d[e + 1] = nb(a, b, c);\n d[e + 2] = Pa(a, b);\n }\n function Tb(a, b, c, d, e) {\n d[e + 0] = Pa(a, b);\n d[e + 1] = nb(a, b, c);\n d[e + 2] = bb(a, c);\n }\n function sd(a, b, c, d, e) {\n var f = nb(a, b, c);\n b = ((f << 3) & 224) | (Pa(a, b) >> 3);\n d[e + 0] = (bb(a, c) & 248) | (f >> 5);\n d[e + 1] = b;\n }\n function td(a, b, c, d, e) {\n var f = (Pa(a, b) & 240) | 15;\n d[e + 0] = (bb(a, c) & 240) | (nb(a, b, c) >> 4);\n d[e + 1] = f;\n }\n function ud(a, b, c, d, e) {\n d[e + 0] = 255;\n Ga(a, b, c, d, e + 1);\n }\n function vd(a, b, c, d, e) {\n Tb(a, b, c, d, e);\n d[e + 3] = 255;\n }\n function wd(a, b, c, d, e) {\n Ga(a, b, c, d, e);\n d[e + 3] = 255;\n }\n function ga(a, b) {\n return 0 > a ? 0 : a > b ? b : a;\n }\n function la(a, b, c) {\n self[a] = function(a, e, f, g, h, k, l, m, n) {\n for (var d = m + (n & -2) * c; m != d; )\n b(a[e + 0], f[g + 0], h[k + 0], l, m),\n b(a[e + 1], f[g + 0], h[k + 0], l, m + c),\n (e += 2),\n ++g,\n ++k,\n (m += 2 * c);\n n & 1 && b(a[e + 0], f[g + 0], h[k + 0], l, m);\n };\n }\n function xd(a, b, c) {\n return 0 == c ? (0 == a ? (0 == b ? 6 : 5) : 0 == b ? 4 : 0) : c;\n }\n function yd(a, b, c, d, e) {\n switch (a >>> 30) {\n case 3:\n Za(b, c, d, e, 0);\n break;\n case 2:\n fd(b, c, d, e);\n break;\n case 1:\n pa(b, c, d, e);\n }\n }\n function Oc(a, b) {\n var c,\n d,\n e = b.M,\n f = b.Nb,\n g = a.oc,\n h = a.pc + 40,\n k = a.oc,\n l = a.pc + 584,\n m = a.oc,\n n = a.pc + 600;\n for (c = 0; 16 > c; ++c) g[h + 32 * c - 1] = 129;\n for (c = 0; 8 > c; ++c)\n (k[l + 32 * c - 1] = 129), (m[n + 32 * c - 1] = 129);\n 0 < e\n ? (g[h - 1 - 32] = k[l - 1 - 32] = m[n - 1 - 32] = 129)\n : (M(g, h - 32 - 1, 127, 21),\n M(k, l - 32 - 1, 127, 9),\n M(m, n - 32 - 1, 127, 9));\n for (d = 0; d < a.za; ++d) {\n var r = b.ya[b.aa + d];\n if (0 < d) {\n for (c = -1; 16 > c; ++c) I(g, h + 32 * c - 4, g, h + 32 * c + 12, 4);\n for (c = -1; 8 > c; ++c)\n I(k, l + 32 * c - 4, k, l + 32 * c + 4, 4),\n I(m, n + 32 * c - 4, m, n + 32 * c + 4, 4);\n }\n var q = a.Gd,\n t = a.Hd + d,\n v = r.ad,\n p = r.Hc;\n 0 < e &&\n (I(g, h - 32, q[t].y, 0, 16),\n I(k, l - 32, q[t].f, 0, 8),\n I(m, n - 32, q[t].ea, 0, 8));\n if (r.Za) {\n var u = g;\n var w = h - 32 + 16;\n 0 < e &&\n (d >= a.za - 1\n ? M(u, w, q[t].y[15], 4)\n : I(u, w, q[t + 1].y, 0, 4));\n for (c = 0; 4 > c; c++)\n u[w + 128 + c] = u[w + 256 + c] = u[w + 384 + c] = u[w + 0 + c];\n for (c = 0; 16 > c; ++c, p <<= 2)\n (u = g), (w = h + zd[c]), W[r.Ob[c]](u, w), yd(p, v, 16 * +c, u, w);\n } else if (((u = xd(d, e, r.Ob[0])), Y[u](g, h), 0 != p))\n for (c = 0; 16 > c; ++c, p <<= 2) yd(p, v, 16 * +c, g, h + zd[c]);\n c = r.Gc;\n u = xd(d, e, r.Dd);\n ka[u](k, l);\n ka[u](m, n);\n r = c >> 0;\n p = v;\n u = k;\n w = l;\n r & 255 && (r & 170 ? Nb(p, 256, u, w) : Ob(p, 256, u, w));\n c >>= 8;\n r = m;\n p = n;\n c & 255 && (c & 170 ? Nb(v, 320, r, p) : Ob(v, 320, r, p));\n e < a.Ub - 1 &&\n (I(q[t].y, 0, g, h + 480, 16),\n I(q[t].f, 0, k, l + 224, 8),\n I(q[t].ea, 0, m, n + 224, 8));\n c = 8 * f * a.B;\n q = a.sa;\n t = a.ta + 16 * d + 16 * f * a.R;\n v = a.qa;\n r = a.ra + 8 * d + c;\n p = a.Ha;\n u = a.Ia + 8 * d + c;\n for (c = 0; 16 > c; ++c) I(q, t + c * a.R, g, h + 32 * c, 16);\n for (c = 0; 8 > c; ++c)\n I(v, r + c * a.B, k, l + 32 * c, 8),\n I(p, u + c * a.B, m, n + 32 * c, 8);\n }\n }\n function Ad(a, b, c, d, e, f, g, h, k) {\n var l = [0],\n m = [0],\n n = 0,\n r = null != k ? k.kd : 0,\n q = null != k ? k : new md();\n if (null == a || 12 > c) return 7;\n q.data = a;\n q.w = b;\n q.ha = c;\n b = [b];\n c = [c];\n q.gb = [q.gb];\n a: {\n var t = b;\n var v = c;\n var p = q.gb;\n x(null != a);\n x(null != v);\n x(null != p);\n p[0] = 0;\n if (12 <= v[0] && !fa(a, t[0], \"RIFF\")) {\n if (fa(a, t[0] + 8, \"WEBP\")) {\n p = 3;\n break a;\n }\n var u = Ha(a, t[0] + 4);\n if (12 > u || 4294967286 < u) {\n p = 3;\n break a;\n }\n if (r && u > v[0] - 8) {\n p = 7;\n break a;\n }\n p[0] = u;\n t[0] += 12;\n v[0] -= 12;\n }\n p = 0;\n }\n if (0 != p) return p;\n u = 0 < q.gb[0];\n for (c = c[0]; ; ) {\n t = [0];\n n = [n];\n a: {\n var w = a;\n v = b;\n p = c;\n var y = n,\n A = l,\n z = m,\n B = t;\n y[0] = 0;\n if (8 > p[0]) p = 7;\n else {\n if (!fa(w, v[0], \"VP8X\")) {\n if (10 != Ha(w, v[0] + 4)) {\n p = 3;\n break a;\n }\n if (18 > p[0]) {\n p = 7;\n break a;\n }\n var C = Ha(w, v[0] + 8);\n var D = 1 + Yb(w, v[0] + 12);\n w = 1 + Yb(w, v[0] + 15);\n if (2147483648 <= D * w) {\n p = 3;\n break a;\n }\n null != B && (B[0] = C);\n null != A && (A[0] = D);\n null != z && (z[0] = w);\n v[0] += 18;\n p[0] -= 18;\n y[0] = 1;\n }\n p = 0;\n }\n }\n n = n[0];\n t = t[0];\n if (0 != p) return p;\n v = !!(t & 2);\n if (!u && n) return 3;\n null != f && (f[0] = !!(t & 16));\n null != g && (g[0] = v);\n null != h && (h[0] = 0);\n g = l[0];\n t = m[0];\n if (n && v && null == k) {\n p = 0;\n break;\n }\n if (4 > c) {\n p = 7;\n break;\n }\n if ((u && n) || (!u && !n && !fa(a, b[0], \"ALPH\"))) {\n c = [c];\n q.na = [q.na];\n q.P = [q.P];\n q.Sa = [q.Sa];\n a: {\n C = a;\n p = b;\n u = c;\n var y = q.gb,\n A = q.na,\n z = q.P,\n B = q.Sa;\n D = 22;\n x(null != C);\n x(null != u);\n w = p[0];\n var F = u[0];\n x(null != A);\n x(null != B);\n A[0] = null;\n z[0] = null;\n for (B[0] = 0; ; ) {\n p[0] = w;\n u[0] = F;\n if (8 > F) {\n p = 7;\n break a;\n }\n var G = Ha(C, w + 4);\n if (4294967286 < G) {\n p = 3;\n break a;\n }\n var H = (8 + G + 1) & -2;\n D += H;\n if (0 < y && D > y) {\n p = 3;\n break a;\n }\n if (!fa(C, w, \"VP8 \") || !fa(C, w, \"VP8L\")) {\n p = 0;\n break a;\n }\n if (F[0] < H) {\n p = 7;\n break a;\n }\n fa(C, w, \"ALPH\") || ((A[0] = C), (z[0] = w + 8), (B[0] = G));\n w += H;\n F -= H;\n }\n }\n c = c[0];\n q.na = q.na[0];\n q.P = q.P[0];\n q.Sa = q.Sa[0];\n if (0 != p) break;\n }\n c = [c];\n q.Ja = [q.Ja];\n q.xa = [q.xa];\n a: if (\n ((y = a),\n (p = b),\n (u = c),\n (A = q.gb[0]),\n (z = q.Ja),\n (B = q.xa),\n (C = p[0]),\n (w = !fa(y, C, \"VP8 \")),\n (D = !fa(y, C, \"VP8L\")),\n x(null != y),\n x(null != u),\n x(null != z),\n x(null != B),\n 8 > u[0])\n )\n p = 7;\n else {\n if (w || D) {\n y = Ha(y, C + 4);\n if (12 <= A && y > A - 12) {\n p = 3;\n break a;\n }\n if (r && y > u[0] - 8) {\n p = 7;\n break a;\n }\n z[0] = y;\n p[0] += 8;\n u[0] -= 8;\n B[0] = D;\n } else\n (B[0] = 5 <= u[0] && 47 == y[C + 0] && !(y[C + 4] >> 5)),\n (z[0] = u[0]);\n p = 0;\n }\n c = c[0];\n q.Ja = q.Ja[0];\n q.xa = q.xa[0];\n b = b[0];\n if (0 != p) break;\n if (4294967286 < q.Ja) return 3;\n null == h || v || (h[0] = q.xa ? 2 : 1);\n g = [g];\n t = [t];\n if (q.xa) {\n if (5 > c) {\n p = 7;\n break;\n }\n h = g;\n r = t;\n v = f;\n null == a || 5 > c\n ? (a = 0)\n : 5 <= c && 47 == a[b + 0] && !(a[b + 4] >> 5)\n ? ((u = [0]),\n (y = [0]),\n (A = [0]),\n (z = new Ra()),\n cb(z, a, b, c),\n mc(z, u, y, A)\n ? (null != h && (h[0] = u[0]),\n null != r && (r[0] = y[0]),\n null != v && (v[0] = A[0]),\n (a = 1))\n : (a = 0))\n : (a = 0);\n } else {\n if (10 > c) {\n p = 7;\n break;\n }\n h = t;\n null == a || 10 > c || !Jc(a, b + 3, c - 3)\n ? (a = 0)\n : ((r = a[b + 0] | (a[b + 1] << 8) | (a[b + 2] << 16)),\n (v = ((a[b + 7] << 8) | a[b + 6]) & 16383),\n (a = ((a[b + 9] << 8) | a[b + 8]) & 16383),\n r & 1 ||\n 3 < ((r >> 1) & 7) ||\n !((r >> 4) & 1) ||\n r >> 5 >= q.Ja ||\n !v ||\n !a\n ? (a = 0)\n : (g && (g[0] = v), h && (h[0] = a), (a = 1)));\n }\n if (!a) return 3;\n g = g[0];\n t = t[0];\n if (n && (l[0] != g || m[0] != t)) return 3;\n null != k &&\n ((k[0] = q),\n (k.offset = b - k.w),\n x(4294967286 > b - k.w),\n x(k.offset == k.ha - c));\n break;\n }\n return 0 == p || (7 == p && n && null == k)\n ? (null != f && (f[0] |= null != q.na && 0 < q.na.length),\n null != d && (d[0] = g),\n null != e && (e[0] = t),\n 0)\n : p;\n }\n function hc(a, b, c) {\n var d = b.width,\n e = b.height,\n f = 0,\n g = 0,\n h = d,\n k = e;\n b.Da = null != a && 0 < a.Da;\n if (\n b.Da &&\n ((h = a.cd),\n (k = a.bd),\n (f = a.v),\n (g = a.j),\n 11 > c || ((f &= -2), (g &= -2)),\n 0 > f || 0 > g || 0 >= h || 0 >= k || f + h > d || g + k > e)\n )\n return 0;\n b.v = f;\n b.j = g;\n b.va = f + h;\n b.o = g + k;\n b.U = h;\n b.T = k;\n b.da = null != a && 0 < a.da;\n if (b.da) {\n c = [a.ib];\n f = [a.hb];\n if (!bc(h, k, c, f)) return 0;\n b.ib = c[0];\n b.hb = f[0];\n }\n b.ob = null != a && a.ob;\n b.Kb = null == a || !a.Sd;\n b.da && ((b.ob = b.ib < (3 * d) / 4 && b.hb < (3 * e) / 4), (b.Kb = 0));\n return 1;\n }\n function Bd(a) {\n if (null == a) return 2;\n if (11 > a.S) {\n var b = a.f.RGBA;\n b.fb += (a.height - 1) * b.A;\n b.A = -b.A;\n } else\n (b = a.f.kb),\n (a = a.height),\n (b.O += (a - 1) * b.fa),\n (b.fa = -b.fa),\n (b.N += ((a - 1) >> 1) * b.Ab),\n (b.Ab = -b.Ab),\n (b.W += ((a - 1) >> 1) * b.Db),\n (b.Db = -b.Db),\n null != b.F && ((b.J += (a - 1) * b.lb), (b.lb = -b.lb));\n return 0;\n }\n function Cd(a, b, c, d) {\n if (null == d || 0 >= a || 0 >= b) return 2;\n if (null != c) {\n if (c.Da) {\n var e = c.cd,\n f = c.bd,\n g = c.v & -2,\n h = c.j & -2;\n if (0 > g || 0 > h || 0 >= e || 0 >= f || g + e > a || h + f > b)\n return 2;\n a = e;\n b = f;\n }\n if (c.da) {\n e = [c.ib];\n f = [c.hb];\n if (!bc(a, b, e, f)) return 2;\n a = e[0];\n b = f[0];\n }\n }\n d.width = a;\n d.height = b;\n a: {\n var k = d.width;\n var l = d.height;\n a = d.S;\n if (0 >= k || 0 >= l || !(a >= Ca && 13 > a)) a = 2;\n else {\n if (0 >= d.Rd && null == d.sd) {\n var g = (f = e = b = 0),\n h = k * Dd[a],\n m = h * l;\n 11 > a ||\n ((b = (k + 1) / 2),\n (f = ((l + 1) / 2) * b),\n 12 == a && ((e = k), (g = e * l)));\n l = V(m + 2 * f + g);\n if (null == l) {\n a = 1;\n break a;\n }\n d.sd = l;\n 11 > a\n ? ((k = d.f.RGBA),\n (k.eb = l),\n (k.fb = 0),\n (k.A = h),\n (k.size = m))\n : ((k = d.f.kb),\n (k.y = l),\n (k.O = 0),\n (k.fa = h),\n (k.Fd = m),\n (k.f = l),\n (k.N = 0 + m),\n (k.Ab = b),\n (k.Cd = f),\n (k.ea = l),\n (k.W = 0 + m + f),\n (k.Db = b),\n (k.Ed = f),\n 12 == a && ((k.F = l), (k.J = 0 + m + 2 * f)),\n (k.Tc = g),\n (k.lb = e));\n }\n b = 1;\n e = d.S;\n f = d.width;\n g = d.height;\n if (e >= Ca && 13 > e)\n if (11 > e)\n (a = d.f.RGBA),\n (h = Math.abs(a.A)),\n (b &= h * (g - 1) + f <= a.size),\n (b &= h >= f * Dd[e]),\n (b &= null != a.eb);\n else {\n a = d.f.kb;\n h = (f + 1) / 2;\n m = (g + 1) / 2;\n k = Math.abs(a.fa);\n var l = Math.abs(a.Ab),\n n = Math.abs(a.Db),\n r = Math.abs(a.lb),\n q = r * (g - 1) + f;\n b &= k * (g - 1) + f <= a.Fd;\n b &= l * (m - 1) + h <= a.Cd;\n b &= n * (m - 1) + h <= a.Ed;\n b = b & (k >= f) & (l >= h) & (n >= h);\n b &= null != a.y;\n b &= null != a.f;\n b &= null != a.ea;\n 12 == e && ((b &= r >= f), (b &= q <= a.Tc), (b &= null != a.F));\n }\n else b = 0;\n a = b ? 0 : 2;\n }\n }\n if (0 != a) return a;\n null != c && c.fd && (a = Bd(d));\n return a;\n }\n var xb = 64,\n Hd = [\n 0,\n 1,\n 3,\n 7,\n 15,\n 31,\n 63,\n 127,\n 255,\n 511,\n 1023,\n 2047,\n 4095,\n 8191,\n 16383,\n 32767,\n 65535,\n 131071,\n 262143,\n 524287,\n 1048575,\n 2097151,\n 4194303,\n 8388607,\n 16777215\n ],\n Gd = 24,\n ob = 32,\n Xb = 8,\n Id = [\n 0,\n 0,\n 1,\n 1,\n 2,\n 2,\n 2,\n 2,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7\n ];\n X(\"Predictor0\", \"PredictorAdd0\");\n self.Predictor0 = function() {\n return 4278190080;\n };\n self.Predictor1 = function(a) {\n return a;\n };\n self.Predictor2 = function(a, b, c) {\n return b[c + 0];\n };\n self.Predictor3 = function(a, b, c) {\n return b[c + 1];\n };\n self.Predictor4 = function(a, b, c) {\n return b[c - 1];\n };\n self.Predictor5 = function(a, b, c) {\n return aa(aa(a, b[c + 1]), b[c + 0]);\n };\n self.Predictor6 = function(a, b, c) {\n return aa(a, b[c - 1]);\n };\n self.Predictor7 = function(a, b, c) {\n return aa(a, b[c + 0]);\n };\n self.Predictor8 = function(a, b, c) {\n return aa(b[c - 1], b[c + 0]);\n };\n self.Predictor9 = function(a, b, c) {\n return aa(b[c + 0], b[c + 1]);\n };\n self.Predictor10 = function(a, b, c) {\n return aa(aa(a, b[c - 1]), aa(b[c + 0], b[c + 1]));\n };\n self.Predictor11 = function(a, b, c) {\n var d = b[c + 0];\n b = b[c - 1];\n return 0 >=\n Ia((d >> 24) & 255, (a >> 24) & 255, (b >> 24) & 255) +\n Ia((d >> 16) & 255, (a >> 16) & 255, (b >> 16) & 255) +\n Ia((d >> 8) & 255, (a >> 8) & 255, (b >> 8) & 255) +\n Ia(d & 255, a & 255, b & 255)\n ? d\n : a;\n };\n self.Predictor12 = function(a, b, c) {\n var d = b[c + 0];\n b = b[c - 1];\n return (\n ((sa(((a >> 24) & 255) + ((d >> 24) & 255) - ((b >> 24) & 255)) << 24) |\n (sa(((a >> 16) & 255) + ((d >> 16) & 255) - ((b >> 16) & 255)) <<\n 16) |\n (sa(((a >> 8) & 255) + ((d >> 8) & 255) - ((b >> 8) & 255)) << 8) |\n sa((a & 255) + (d & 255) - (b & 255))) >>>\n 0\n );\n };\n self.Predictor13 = function(a, b, c) {\n var d = b[c - 1];\n a = aa(a, b[c + 0]);\n return (\n ((eb((a >> 24) & 255, (d >> 24) & 255) << 24) |\n (eb((a >> 16) & 255, (d >> 16) & 255) << 16) |\n (eb((a >> 8) & 255, (d >> 8) & 255) << 8) |\n eb((a >> 0) & 255, (d >> 0) & 255)) >>>\n 0\n );\n };\n var ee = self.PredictorAdd0;\n self.PredictorAdd1 = cc;\n X(\"Predictor2\", \"PredictorAdd2\");\n X(\"Predictor3\", \"PredictorAdd3\");\n X(\"Predictor4\", \"PredictorAdd4\");\n X(\"Predictor5\", \"PredictorAdd5\");\n X(\"Predictor6\", \"PredictorAdd6\");\n X(\"Predictor7\", \"PredictorAdd7\");\n X(\"Predictor8\", \"PredictorAdd8\");\n X(\"Predictor9\", \"PredictorAdd9\");\n X(\"Predictor10\", \"PredictorAdd10\");\n X(\"Predictor11\", \"PredictorAdd11\");\n X(\"Predictor12\", \"PredictorAdd12\");\n X(\"Predictor13\", \"PredictorAdd13\");\n var fe = self.PredictorAdd2;\n ec(\n \"ColorIndexInverseTransform\",\n \"MapARGB\",\n \"32b\",\n function(a) {\n return (a >> 8) & 255;\n },\n function(a) {\n return a;\n }\n );\n ec(\n \"VP8LColorIndexInverseTransformAlpha\",\n \"MapAlpha\",\n \"8b\",\n function(a) {\n return a;\n },\n function(a) {\n return (a >> 8) & 255;\n }\n );\n var rc = self.ColorIndexInverseTransform,\n ke = self.MapARGB,\n he = self.VP8LColorIndexInverseTransformAlpha,\n le = self.MapAlpha,\n pc,\n qc = (self.VP8LPredictorsAdd = []);\n qc.length = 16;\n (self.VP8LPredictors = []).length = 16;\n (self.VP8LPredictorsAdd_C = []).length = 16;\n (self.VP8LPredictors_C = []).length = 16;\n var Fb,\n sc,\n Gb,\n Hb,\n xc,\n uc,\n bd = V(511),\n cd = V(2041),\n dd = V(225),\n ed = V(767),\n ad = 0,\n Qb = cd,\n mb = dd,\n R = ed,\n U = bd,\n Ca = 0,\n Ua = 1,\n tc = 2,\n Va = 3,\n ya = 4,\n Db = 5,\n wc = 6,\n zb = 7,\n Ab = 8,\n Ja = 9,\n Bb = 10,\n pe = [2, 3, 7],\n oe = [3, 3, 11],\n Dc = [280, 256, 256, 256, 40],\n qe = [0, 1, 1, 1, 0],\n ne = [17, 18, 0, 1, 2, 3, 4, 5, 16, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],\n de = [\n 24,\n 7,\n 23,\n 25,\n 40,\n 6,\n 39,\n 41,\n 22,\n 26,\n 38,\n 42,\n 56,\n 5,\n 55,\n 57,\n 21,\n 27,\n 54,\n 58,\n 37,\n 43,\n 72,\n 4,\n 71,\n 73,\n 20,\n 28,\n 53,\n 59,\n 70,\n 74,\n 36,\n 44,\n 88,\n 69,\n 75,\n 52,\n 60,\n 3,\n 87,\n 89,\n 19,\n 29,\n 86,\n 90,\n 35,\n 45,\n 68,\n 76,\n 85,\n 91,\n 51,\n 61,\n 104,\n 2,\n 103,\n 105,\n 18,\n 30,\n 102,\n 106,\n 34,\n 46,\n 84,\n 92,\n 67,\n 77,\n 101,\n 107,\n 50,\n 62,\n 120,\n 1,\n 119,\n 121,\n 83,\n 93,\n 17,\n 31,\n 100,\n 108,\n 66,\n 78,\n 118,\n 122,\n 33,\n 47,\n 117,\n 123,\n 49,\n 63,\n 99,\n 109,\n 82,\n 94,\n 0,\n 116,\n 124,\n 65,\n 79,\n 16,\n 32,\n 98,\n 110,\n 48,\n 115,\n 125,\n 81,\n 95,\n 64,\n 114,\n 126,\n 97,\n 111,\n 80,\n 113,\n 127,\n 96,\n 112\n ],\n me = [\n 2954,\n 2956,\n 2958,\n 2962,\n 2970,\n 2986,\n 3018,\n 3082,\n 3212,\n 3468,\n 3980,\n 5004\n ],\n ie = 8,\n Lb = [\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 17,\n 18,\n 19,\n 20,\n 20,\n 21,\n 21,\n 22,\n 22,\n 23,\n 23,\n 24,\n 25,\n 25,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 46,\n 47,\n 48,\n 49,\n 50,\n 51,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 59,\n 60,\n 61,\n 62,\n 63,\n 64,\n 65,\n 66,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 75,\n 76,\n 76,\n 77,\n 78,\n 79,\n 80,\n 81,\n 82,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 91,\n 93,\n 95,\n 96,\n 98,\n 100,\n 101,\n 102,\n 104,\n 106,\n 108,\n 110,\n 112,\n 114,\n 116,\n 118,\n 122,\n 124,\n 126,\n 128,\n 130,\n 132,\n 134,\n 136,\n 138,\n 140,\n 143,\n 145,\n 148,\n 151,\n 154,\n 157\n ],\n Mb = [\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 47,\n 48,\n 49,\n 50,\n 51,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 60,\n 62,\n 64,\n 66,\n 68,\n 70,\n 72,\n 74,\n 76,\n 78,\n 80,\n 82,\n 84,\n 86,\n 88,\n 90,\n 92,\n 94,\n 96,\n 98,\n 100,\n 102,\n 104,\n 106,\n 108,\n 110,\n 112,\n 114,\n 116,\n 119,\n 122,\n 125,\n 128,\n 131,\n 134,\n 137,\n 140,\n 143,\n 146,\n 149,\n 152,\n 155,\n 158,\n 161,\n 164,\n 167,\n 170,\n 173,\n 177,\n 181,\n 185,\n 189,\n 193,\n 197,\n 201,\n 205,\n 209,\n 213,\n 217,\n 221,\n 225,\n 229,\n 234,\n 239,\n 245,\n 249,\n 254,\n 259,\n 264,\n 269,\n 274,\n 279,\n 284\n ],\n oa = null,\n He = [\n [173, 148, 140, 0],\n [176, 155, 140, 135, 0],\n [180, 157, 141, 134, 130, 0],\n [254, 254, 243, 230, 196, 177, 153, 140, 133, 130, 129, 0]\n ],\n Ie = [0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15],\n Mc = [-0, 1, -1, 2, -2, 3, 4, 6, -3, 5, -4, -5, -6, 7, -7, 8, -8, -9],\n Fe = [\n [\n [\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128],\n [189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128],\n [106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128]\n ],\n [\n [1, 98, 248, 255, 236, 226, 255, 255, 128, 128, 128],\n [181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128],\n [78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128]\n ],\n [\n [1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128],\n [184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128],\n [77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128]\n ],\n [\n [1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128],\n [170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128],\n [37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128]\n ],\n [\n [1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128],\n [207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128],\n [102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128]\n ],\n [\n [1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128],\n [177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128],\n [80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128]\n ],\n [\n [1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [246, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [198, 35, 237, 223, 193, 187, 162, 160, 145, 155, 62],\n [131, 45, 198, 221, 172, 176, 220, 157, 252, 221, 1],\n [68, 47, 146, 208, 149, 167, 221, 162, 255, 223, 128]\n ],\n [\n [1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128],\n [184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128],\n [81, 99, 181, 242, 176, 190, 249, 202, 255, 255, 128]\n ],\n [\n [1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128],\n [99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128],\n [23, 91, 163, 242, 170, 187, 247, 210, 255, 255, 128]\n ],\n [\n [1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128],\n [109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128],\n [44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128]\n ],\n [\n [1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128],\n [94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128],\n [22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128]\n ],\n [\n [1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128],\n [124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128],\n [35, 77, 181, 251, 193, 211, 255, 205, 128, 128, 128]\n ],\n [\n [1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128],\n [121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128],\n [45, 99, 188, 251, 195, 217, 255, 224, 128, 128, 128]\n ],\n [\n [1, 1, 251, 255, 213, 255, 128, 128, 128, 128, 128],\n [203, 1, 248, 255, 255, 128, 128, 128, 128, 128, 128],\n [137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [253, 9, 248, 251, 207, 208, 255, 192, 128, 128, 128],\n [175, 13, 224, 243, 193, 185, 249, 198, 255, 255, 128],\n [73, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128]\n ],\n [\n [1, 95, 247, 253, 212, 183, 255, 255, 128, 128, 128],\n [239, 90, 244, 250, 211, 209, 255, 255, 128, 128, 128],\n [155, 77, 195, 248, 188, 195, 255, 255, 128, 128, 128]\n ],\n [\n [1, 24, 239, 251, 218, 219, 255, 205, 128, 128, 128],\n [201, 51, 219, 255, 196, 186, 128, 128, 128, 128, 128],\n [69, 46, 190, 239, 201, 218, 255, 228, 128, 128, 128]\n ],\n [\n [1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128],\n [223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128],\n [141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 16, 248, 255, 255, 128, 128, 128, 128, 128, 128],\n [190, 36, 230, 255, 236, 255, 128, 128, 128, 128, 128],\n [149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128],\n [213, 62, 250, 255, 255, 128, 128, 128, 128, 128, 128],\n [55, 93, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [202, 24, 213, 235, 186, 191, 220, 160, 240, 175, 255],\n [126, 38, 182, 232, 169, 184, 228, 174, 255, 187, 128],\n [61, 46, 138, 219, 151, 178, 240, 170, 255, 216, 128]\n ],\n [\n [1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128],\n [166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128],\n [39, 77, 162, 232, 172, 180, 245, 178, 255, 255, 128]\n ],\n [\n [1, 52, 220, 246, 198, 199, 249, 220, 255, 255, 128],\n [124, 74, 191, 243, 183, 193, 250, 221, 255, 255, 128],\n [24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128]\n ],\n [\n [1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128],\n [149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128],\n [28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128]\n ],\n [\n [1, 81, 230, 252, 204, 203, 255, 192, 128, 128, 128],\n [123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128],\n [20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128]\n ],\n [\n [1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128],\n [168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128],\n [47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128]\n ],\n [\n [1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128],\n [141, 84, 213, 252, 201, 202, 255, 219, 128, 128, 128],\n [42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128]\n ],\n [\n [1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [244, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ]\n ],\n Ke = [\n [\n [231, 120, 48, 89, 115, 113, 120, 152, 112],\n [152, 179, 64, 126, 170, 118, 46, 70, 95],\n [175, 69, 143, 80, 85, 82, 72, 155, 103],\n [56, 58, 10, 171, 218, 189, 17, 13, 152],\n [114, 26, 17, 163, 44, 195, 21, 10, 173],\n [121, 24, 80, 195, 26, 62, 44, 64, 85],\n [144, 71, 10, 38, 171, 213, 144, 34, 26],\n [170, 46, 55, 19, 136, 160, 33, 206, 71],\n [63, 20, 8, 114, 114, 208, 12, 9, 226],\n [81, 40, 11, 96, 182, 84, 29, 16, 36]\n ],\n [\n [134, 183, 89, 137, 98, 101, 106, 165, 148],\n [72, 187, 100, 130, 157, 111, 32, 75, 80],\n [66, 102, 167, 99, 74, 62, 40, 234, 128],\n [41, 53, 9, 178, 241, 141, 26, 8, 107],\n [74, 43, 26, 146, 73, 166, 49, 23, 157],\n [65, 38, 105, 160, 51, 52, 31, 115, 128],\n [104, 79, 12, 27, 217, 255, 87, 17, 7],\n [87, 68, 71, 44, 114, 51, 15, 186, 23],\n [47, 41, 14, 110, 182, 183, 21, 17, 194],\n [66, 45, 25, 102, 197, 189, 23, 18, 22]\n ],\n [\n [88, 88, 147, 150, 42, 46, 45, 196, 205],\n [43, 97, 183, 117, 85, 38, 35, 179, 61],\n [39, 53, 200, 87, 26, 21, 43, 232, 171],\n [56, 34, 51, 104, 114, 102, 29, 93, 77],\n [39, 28, 85, 171, 58, 165, 90, 98, 64],\n [34, 22, 116, 206, 23, 34, 43, 166, 73],\n [107, 54, 32, 26, 51, 1, 81, 43, 31],\n [68, 25, 106, 22, 64, 171, 36, 225, 114],\n [34, 19, 21, 102, 132, 188, 16, 76, 124],\n [62, 18, 78, 95, 85, 57, 50, 48, 51]\n ],\n [\n [193, 101, 35, 159, 215, 111, 89, 46, 111],\n [60, 148, 31, 172, 219, 228, 21, 18, 111],\n [112, 113, 77, 85, 179, 255, 38, 120, 114],\n [40, 42, 1, 196, 245, 209, 10, 25, 109],\n [88, 43, 29, 140, 166, 213, 37, 43, 154],\n [61, 63, 30, 155, 67, 45, 68, 1, 209],\n [100, 80, 8, 43, 154, 1, 51, 26, 71],\n [142, 78, 78, 16, 255, 128, 34, 197, 171],\n [41, 40, 5, 102, 211, 183, 4, 1, 221],\n [51, 50, 17, 168, 209, 192, 23, 25, 82]\n ],\n [\n [138, 31, 36, 171, 27, 166, 38, 44, 229],\n [67, 87, 58, 169, 82, 115, 26, 59, 179],\n [63, 59, 90, 180, 59, 166, 93, 73, 154],\n [40, 40, 21, 116, 143, 209, 34, 39, 175],\n [47, 15, 16, 183, 34, 223, 49, 45, 183],\n [46, 17, 33, 183, 6, 98, 15, 32, 183],\n [57, 46, 22, 24, 128, 1, 54, 17, 37],\n [65, 32, 73, 115, 28, 128, 23, 128, 205],\n [40, 3, 9, 115, 51, 192, 18, 6, 223],\n [87, 37, 9, 115, 59, 77, 64, 21, 47]\n ],\n [\n [104, 55, 44, 218, 9, 54, 53, 130, 226],\n [64, 90, 70, 205, 40, 41, 23, 26, 57],\n [54, 57, 112, 184, 5, 41, 38, 166, 213],\n [30, 34, 26, 133, 152, 116, 10, 32, 134],\n [39, 19, 53, 221, 26, 114, 32, 73, 255],\n [31, 9, 65, 234, 2, 15, 1, 118, 73],\n [75, 32, 12, 51, 192, 255, 160, 43, 51],\n [88, 31, 35, 67, 102, 85, 55, 186, 85],\n [56, 21, 23, 111, 59, 205, 45, 37, 192],\n [55, 38, 70, 124, 73, 102, 1, 34, 98]\n ],\n [\n [125, 98, 42, 88, 104, 85, 117, 175, 82],\n [95, 84, 53, 89, 128, 100, 113, 101, 45],\n [75, 79, 123, 47, 51, 128, 81, 171, 1],\n [57, 17, 5, 71, 102, 57, 53, 41, 49],\n [38, 33, 13, 121, 57, 73, 26, 1, 85],\n [41, 10, 67, 138, 77, 110, 90, 47, 114],\n [115, 21, 2, 10, 102, 255, 166, 23, 6],\n [101, 29, 16, 10, 85, 128, 101, 196, 26],\n [57, 18, 10, 102, 102, 213, 34, 20, 43],\n [117, 20, 15, 36, 163, 128, 68, 1, 26]\n ],\n [\n [102, 61, 71, 37, 34, 53, 31, 243, 192],\n [69, 60, 71, 38, 73, 119, 28, 222, 37],\n [68, 45, 128, 34, 1, 47, 11, 245, 171],\n [62, 17, 19, 70, 146, 85, 55, 62, 70],\n [37, 43, 37, 154, 100, 163, 85, 160, 1],\n [63, 9, 92, 136, 28, 64, 32, 201, 85],\n [75, 15, 9, 9, 64, 255, 184, 119, 16],\n [86, 6, 28, 5, 64, 255, 25, 248, 1],\n [56, 8, 17, 132, 137, 255, 55, 116, 128],\n [58, 15, 20, 82, 135, 57, 26, 121, 40]\n ],\n [\n [164, 50, 31, 137, 154, 133, 25, 35, 218],\n [51, 103, 44, 131, 131, 123, 31, 6, 158],\n [86, 40, 64, 135, 148, 224, 45, 183, 128],\n [22, 26, 17, 131, 240, 154, 14, 1, 209],\n [45, 16, 21, 91, 64, 222, 7, 1, 197],\n [56, 21, 39, 155, 60, 138, 23, 102, 213],\n [83, 12, 13, 54, 192, 255, 68, 47, 28],\n [85, 26, 85, 85, 128, 128, 32, 146, 171],\n [18, 11, 7, 63, 144, 171, 4, 4, 246],\n [35, 27, 10, 146, 174, 171, 12, 26, 128]\n ],\n [\n [190, 80, 35, 99, 180, 80, 126, 54, 45],\n [85, 126, 47, 87, 176, 51, 41, 20, 32],\n [101, 75, 128, 139, 118, 146, 116, 128, 85],\n [56, 41, 15, 176, 236, 85, 37, 9, 62],\n [71, 30, 17, 119, 118, 255, 17, 18, 138],\n [101, 38, 60, 138, 55, 70, 43, 26, 142],\n [146, 36, 19, 30, 171, 255, 97, 27, 20],\n [138, 45, 61, 62, 219, 1, 81, 188, 64],\n [32, 41, 20, 117, 151, 142, 20, 21, 163],\n [112, 19, 12, 61, 195, 128, 48, 4, 24]\n ]\n ],\n Ee = [\n [\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [176, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [223, 241, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 244, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [234, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 246, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [239, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 253, 255, 254, 255, 255, 255, 255, 255, 255],\n [250, 255, 254, 255, 254, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [225, 252, 241, 253, 255, 255, 254, 255, 255, 255, 255],\n [234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255]\n ],\n [\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [223, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [247, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [186, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255],\n [234, 251, 244, 254, 255, 255, 255, 255, 255, 255, 255],\n [251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [236, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 254, 252, 254, 255, 255, 255, 255, 255, 255, 255],\n [248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [246, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [248, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [245, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ]\n ],\n Ge = [0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 0],\n Nc,\n Y = [],\n W = [],\n ka = [],\n Za,\n fd,\n Nb,\n pa,\n Ob,\n Xc,\n Tc,\n Yc,\n Uc,\n Zc,\n Vc,\n $c,\n Wc,\n Rc,\n Pc,\n Sc,\n Qc,\n re = 1,\n Cc = 2,\n ia = [],\n za,\n vc,\n fc,\n Fc,\n P = [];\n va(\"UpsampleRgbLinePair\", Ga, 3);\n va(\"UpsampleBgrLinePair\", Tb, 3);\n va(\"UpsampleRgbaLinePair\", wd, 4);\n va(\"UpsampleBgraLinePair\", vd, 4);\n va(\"UpsampleArgbLinePair\", ud, 4);\n va(\"UpsampleRgba4444LinePair\", td, 2);\n va(\"UpsampleRgb565LinePair\", sd, 2);\n var Mf = self.UpsampleRgbLinePair,\n Nf = self.UpsampleBgrLinePair,\n nd = self.UpsampleRgbaLinePair,\n od = self.UpsampleBgraLinePair,\n pd = self.UpsampleArgbLinePair,\n qd = self.UpsampleRgba4444LinePair,\n Of = self.UpsampleRgb565LinePair,\n Wa = 16,\n Ba = 1 << (Wa - 1),\n ta = -227,\n Eb = 482,\n rd = 6,\n Pf = (256 << rd) - 1,\n jc = 0,\n Yd = V(256),\n ae = V(256),\n $d = V(256),\n Zd = V(256),\n be = V(Eb - ta),\n ce = V(Eb - ta);\n la(\"YuvToRgbRow\", Ga, 3);\n la(\"YuvToBgrRow\", Tb, 3);\n la(\"YuvToRgbaRow\", wd, 4);\n la(\"YuvToBgraRow\", vd, 4);\n la(\"YuvToArgbRow\", ud, 4);\n la(\"YuvToRgba4444Row\", td, 2);\n la(\"YuvToRgb565Row\", sd, 2);\n var zd = [\n 0,\n 4,\n 8,\n 12,\n 128,\n 132,\n 136,\n 140,\n 256,\n 260,\n 264,\n 268,\n 384,\n 388,\n 392,\n 396\n ],\n Ya = [0, 2, 8],\n Qf = [8, 7, 6, 4, 4, 2, 2, 2, 1, 1, 1, 1],\n Ne = 1;\n this.WebPDecodeRGBA = function(a, b, c, d, e) {\n var f = Ua;\n var g = new Cf(),\n h = new Cb();\n g.ba = h;\n h.S = f;\n h.width = [h.width];\n h.height = [h.height];\n var k = h.width;\n var l = h.height,\n m = new Td();\n if (null == m || null == a) var n = 2;\n else\n x(null != m),\n (n = Ad(a, b, c, m.width, m.height, m.Pd, m.Qd, m.format, null));\n 0 != n\n ? (k = 0)\n : (null != k && (k[0] = m.width[0]),\n null != l && (l[0] = m.height[0]),\n (k = 1));\n if (k) {\n h.width = h.width[0];\n h.height = h.height[0];\n null != d && (d[0] = h.width);\n null != e && (e[0] = h.height);\n b: {\n d = new Oa();\n e = new md();\n e.data = a;\n e.w = b;\n e.ha = c;\n e.kd = 1;\n b = [0];\n x(null != e);\n a = Ad(e.data, e.w, e.ha, null, null, null, b, null, e);\n (0 == a || 7 == a) && b[0] && (a = 4);\n b = a;\n if (0 == b) {\n x(null != g);\n d.data = e.data;\n d.w = e.w + e.offset;\n d.ha = e.ha - e.offset;\n d.put = kc;\n d.ac = gc;\n d.bc = lc;\n d.ma = g;\n if (e.xa) {\n a = Bc();\n if (null == a) {\n g = 1;\n break b;\n }\n if (te(a, d)) {\n b = Cd(d.width, d.height, g.Oa, g.ba);\n if ((d = 0 == b)) {\n c: {\n d = a;\n d: for (;;) {\n if (null == d) {\n d = 0;\n break c;\n }\n x(null != d.s.yc);\n x(null != d.s.Ya);\n x(0 < d.s.Wb);\n c = d.l;\n x(null != c);\n e = c.ma;\n x(null != e);\n if (0 != d.xb) {\n d.ca = e.ba;\n d.tb = e.tb;\n x(null != d.ca);\n if (!hc(e.Oa, c, Va)) {\n d.a = 2;\n break d;\n }\n if (!Ec(d, c.width)) break d;\n if (c.da) break d;\n (c.da || hb(d.ca.S)) && Aa();\n 11 > d.ca.S ||\n (alert(\"todo:WebPInitConvertARGBToYUV\"),\n null != d.ca.f.kb.F && Aa());\n if (\n d.Pb &&\n 0 < d.s.ua &&\n null == d.s.vb.X &&\n !Zb(d.s.vb, d.s.Wa.Xa)\n ) {\n d.a = 1;\n break d;\n }\n d.xb = 0;\n }\n if (!Jb(d, d.V, d.Ba, d.c, d.i, c.o, ge)) break d;\n e.Dc = d.Ma;\n d = 1;\n break c;\n }\n x(0 != d.a);\n d = 0;\n }\n d = !d;\n }\n d && (b = a.a);\n } else b = a.a;\n } else {\n a = new Ce();\n if (null == a) {\n g = 1;\n break b;\n }\n a.Fa = e.na;\n a.P = e.P;\n a.qc = e.Sa;\n if (Kc(a, d)) {\n if (((b = Cd(d.width, d.height, g.Oa, g.ba)), 0 == b)) {\n a.Aa = 0;\n c = g.Oa;\n e = a;\n x(null != e);\n if (null != c) {\n k = c.Md;\n k = 0 > k ? 0 : 100 < k ? 255 : (255 * k) / 100;\n if (0 < k) {\n for (l = m = 0; 4 > l; ++l)\n (n = e.pb[l]),\n 12 > n.lc &&\n (n.ia = (k * Qf[0 > n.lc ? 0 : n.lc]) >> 3),\n (m |= n.ia);\n m && (alert(\"todo:VP8InitRandom\"), (e.ia = 1));\n }\n e.Ga = c.Id;\n 100 < e.Ga ? (e.Ga = 100) : 0 > e.Ga && (e.Ga = 0);\n }\n Me(a, d) || (b = a.a);\n }\n } else b = a.a;\n }\n 0 == b && null != g.Oa && g.Oa.fd && (b = Bd(g.ba));\n }\n g = b;\n }\n f = 0 != g ? null : 11 > f ? h.f.RGBA.eb : h.f.kb.y;\n } else f = null;\n return f;\n };\n var Dd = [3, 4, 3, 4, 4, 2, 2, 4, 4, 4, 2, 1, 1];\n };\n new _WebPDecoder();\n\n /** @license\n * Copyright (c) 2017 Dominik Homberger\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nhttps://webpjs.appspot.com\nWebPRiffParser dominikhlbg@gmail.com\n*/\n\n function memcmp(data, data_off, str, size) {\n for (var i = 0; i < size; i++)\n if (data[data_off + i] != str.charCodeAt(i)) return true;\n return false;\n }\n\n function GetTag(data, data_off) {\n var str = \"\";\n for (var i = 0; i < 4; i++) str += String.fromCharCode(data[data_off++]);\n return str;\n }\n\n function GetLE16(data, data_off) {\n return (data[data_off + 0] << 0) | (data[data_off + 1] << 8);\n }\n\n function GetLE24(data, data_off) {\n return (\n ((data[data_off + 0] << 0) |\n (data[data_off + 1] << 8) |\n (data[data_off + 2] << 16)) >>>\n 0\n );\n }\n\n function GetLE32(data, data_off) {\n return (\n ((data[data_off + 0] << 0) |\n (data[data_off + 1] << 8) |\n (data[data_off + 2] << 16) |\n (data[data_off + 3] << 24)) >>>\n 0\n );\n }\n\n function WebPRiffParser(src, src_off) {\n var imagearray = {};\n var i = 0;\n var alpha_chunk = false;\n var alpha_size = 0;\n var alpha_offset = 0;\n imagearray[\"frames\"] = [];\n if (memcmp(src, src_off, \"RIFF\", 4)) return;\n src_off += 4;\n var riff_size = GetLE32(src, src_off) + 8;\n src_off += 8;\n\n while (src_off < src.length) {\n var fourcc = GetTag(src, src_off);\n src_off += 4;\n\n var payload_size = GetLE32(src, src_off);\n src_off += 4;\n var payload_size_padded = payload_size + (payload_size & 1);\n\n switch (fourcc) {\n case \"VP8 \":\n case \"VP8L\":\n if (typeof imagearray[\"frames\"][i] === \"undefined\")\n imagearray[\"frames\"][i] = {};\n var obj = imagearray[\"frames\"][i];\n var height = [0];\n var width = [0];\n obj[\"src_off\"] = alpha_chunk ? alpha_offset : src_off - 8;\n obj[\"src_size\"] = alpha_size + payload_size + 8;\n //var rgba = webpdecoder.WebPDecodeRGBA(src,(alpha_chunk?alpha_offset:src_off-8),alpha_size+payload_size+8,width,height);\n //imagearray[i]={'rgba':rgba,'width':width[0],'height':height[0]};\n i++;\n if (alpha_chunk) {\n alpha_chunk = false;\n alpha_size = 0;\n alpha_offset = 0;\n }\n break;\n case \"VP8X\":\n var obj = (imagearray[\"header\"] = {});\n var feature_flags = (obj[\"feature_flags\"] = src[src_off]);\n var src_off_ = src_off + 4;\n var canvas_width = (obj[\"canvas_width\"] = 1 + GetLE24(src, src_off_));\n src_off_ += 3;\n var canvas_height = (obj[\"canvas_height\"] =\n 1 + GetLE24(src, src_off_));\n src_off_ += 3;\n break;\n case \"ALPH\":\n alpha_chunk = true;\n alpha_size = payload_size_padded + 8;\n alpha_offset = src_off - 8;\n break;\n\n case \"ANIM\":\n var obj = imagearray[\"header\"];\n var bgcolor = (obj[\"bgcolor\"] = GetLE32(src, src_off));\n src_off_ = src_off + 4;\n\n var loop_count = (obj[\"loop_count\"] = GetLE16(src, src_off_));\n src_off_ += 2;\n break;\n case \"ANMF\":\n var offset_x = 0,\n offset_y = 0,\n width = 0,\n height = 0,\n duration = 0,\n blend = 0,\n dispose = 0,\n temp = 0;\n var obj = (imagearray[\"frames\"][i] = {});\n obj[\"offset_x\"] = offset_x = 2 * GetLE24(src, src_off);\n src_off += 3;\n obj[\"offset_y\"] = offset_y = 2 * GetLE24(src, src_off);\n src_off += 3;\n obj[\"width\"] = width = 1 + GetLE24(src, src_off);\n src_off += 3;\n obj[\"height\"] = height = 1 + GetLE24(src, src_off);\n src_off += 3;\n obj[\"duration\"] = duration = GetLE24(src, src_off);\n src_off += 3;\n temp = src[src_off++];\n obj[\"dispose\"] = dispose = temp & 1;\n obj[\"blend\"] = blend = (temp >> 1) & 1;\n break;\n default:\n }\n if (fourcc != \"ANMF\") src_off += payload_size_padded;\n }\n return imagearray;\n }\n\n var height = [0];\n var width = [0];\n var pixels = [];\n var webpdecoder = new _WebPDecoder();\n\n var response = imageData;\n var imagearray = WebPRiffParser(response, 0);\n imagearray[\"response\"] = response;\n imagearray[\"rgbaoutput\"] = true;\n imagearray[\"dataurl\"] = false;\n\n var header = imagearray[\"header\"] ? imagearray[\"header\"] : null;\n var frames = imagearray[\"frames\"] ? imagearray[\"frames\"] : null;\n\n if (header) {\n header[\"loop_counter\"] = header[\"loop_count\"];\n height = [header[\"canvas_height\"]];\n width = [header[\"canvas_width\"]];\n\n var blend = false;\n for (var f = 0; f < frames.length; f++)\n if (frames[f][\"blend\"] == 0) {\n blend = true;\n break;\n }\n }\n\n var frame = frames[0];\n var rgba = webpdecoder.WebPDecodeRGBA(\n response,\n frame[\"src_off\"],\n frame[\"src_size\"],\n width,\n height\n );\n frame[\"rgba\"] = rgba;\n frame[\"imgwidth\"] = width[0];\n frame[\"imgheight\"] = height[0];\n\n for (var i = 0; i < width[0] * height[0] * 4; i++) {\n pixels[i] = rgba[i];\n }\n\n this.width = width;\n this.height = height;\n this.data = pixels;\n return this;\n}\n\nWebPDecoder.prototype.getData = function() {\n return this.data;\n};\n\nexport { WebPDecoder };\n","/**\n * @license\n *\n * Copyright (c) 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { zlibSync } from \"../libs/fflate.js\";\nimport { PNG } from \"../libs/png.js\";\n\n/**\n * jsPDF PNG PlugIn\n * @name png_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /*\n * @see http://www.w3.org/TR/PNG-Chunks.html\n *\n Color Allowed Interpretation\n Type Bit Depths\n\n 0 1,2,4,8,16 Each pixel is a grayscale sample.\n\n 2 8,16 Each pixel is an R,G,B triple.\n\n 3 1,2,4,8 Each pixel is a palette index;\n a PLTE chunk must appear.\n\n 4 8,16 Each pixel is a grayscale sample,\n followed by an alpha sample.\n\n 6 8,16 Each pixel is an R,G,B triple,\n followed by an alpha sample.\n */\n\n /*\n * PNG filter method types\n *\n * @see http://www.w3.org/TR/PNG-Filters.html\n * @see http://www.libpng.org/pub/png/book/chapter09.html\n *\n * This is what the value 'Predictor' in decode params relates to\n *\n * 15 is \"optimal prediction\", which means the prediction algorithm can change from line to line.\n * In that case, you actually have to read the first byte off each line for the prediction algorthim (which should be 0-4, corresponding to PDF 10-14) and select the appropriate unprediction algorithm based on that byte.\n *\n 0 None\n 1 Sub\n 2 Up\n 3 Average\n 4 Paeth\n */\n\n var canCompress = function(value) {\n return value !== jsPDFAPI.image_compression.NONE && hasCompressionJS();\n };\n\n var hasCompressionJS = function() {\n return typeof zlibSync === \"function\";\n };\n var compressBytes = function(bytes, lineLength, colorsPerPixel, compression) {\n var level = 4;\n var filter_method = filterUp;\n\n switch (compression) {\n case jsPDFAPI.image_compression.FAST:\n level = 1;\n filter_method = filterSub;\n break;\n\n case jsPDFAPI.image_compression.MEDIUM:\n level = 6;\n filter_method = filterAverage;\n break;\n\n case jsPDFAPI.image_compression.SLOW:\n level = 9;\n filter_method = filterPaeth;\n break;\n }\n\n bytes = applyPngFilterMethod(\n bytes,\n lineLength,\n colorsPerPixel,\n filter_method\n );\n var dat = zlibSync(bytes, { level: level });\n return jsPDFAPI.__addimage__.arrayBufferToBinaryString(dat);\n };\n\n var applyPngFilterMethod = function(\n bytes,\n lineLength,\n colorsPerPixel,\n filter_method\n ) {\n var lines = bytes.length / lineLength,\n result = new Uint8Array(bytes.length + lines),\n filter_methods = getFilterMethods(),\n line,\n prevLine,\n offset;\n\n for (var i = 0; i < lines; i += 1) {\n offset = i * lineLength;\n line = bytes.subarray(offset, offset + lineLength);\n\n if (filter_method) {\n result.set(filter_method(line, colorsPerPixel, prevLine), offset + i);\n } else {\n var len = filter_methods.length,\n results = [];\n\n for (var j; j < len; j += 1) {\n results[j] = filter_methods[j](line, colorsPerPixel, prevLine);\n }\n\n var ind = getIndexOfSmallestSum(results.concat());\n\n result.set(results[ind], offset + i);\n }\n\n prevLine = line;\n }\n\n return result;\n };\n\n var filterNone = function(line) {\n /*var result = new Uint8Array(line.length + 1);\n result[0] = 0;\n result.set(line, 1);*/\n\n var result = Array.apply([], line);\n result.unshift(0);\n\n return result;\n };\n\n var filterSub = function(line, colorsPerPixel) {\n var result = [],\n len = line.length,\n left;\n\n result[0] = 1;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n result[i + 1] = (line[i] - left + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var filterUp = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n up;\n\n result[0] = 2;\n\n for (var i = 0; i < len; i += 1) {\n up = (prevLine && prevLine[i]) || 0;\n result[i + 1] = (line[i] - up + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var filterAverage = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n left,\n up;\n\n result[0] = 3;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n up = (prevLine && prevLine[i]) || 0;\n result[i + 1] = (line[i] + 0x0100 - ((left + up) >>> 1)) & 0xff;\n }\n\n return result;\n };\n\n var filterPaeth = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n left,\n up,\n upLeft,\n paeth;\n\n result[0] = 4;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n up = (prevLine && prevLine[i]) || 0;\n upLeft = (prevLine && prevLine[i - colorsPerPixel]) || 0;\n paeth = paethPredictor(left, up, upLeft);\n result[i + 1] = (line[i] - paeth + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var paethPredictor = function(left, up, upLeft) {\n if (left === up && up === upLeft) {\n return left;\n }\n var pLeft = Math.abs(up - upLeft),\n pUp = Math.abs(left - upLeft),\n pUpLeft = Math.abs(left + up - upLeft - upLeft);\n return pLeft <= pUp && pLeft <= pUpLeft\n ? left\n : pUp <= pUpLeft\n ? up\n : upLeft;\n };\n\n var getFilterMethods = function() {\n return [filterNone, filterSub, filterUp, filterAverage, filterPaeth];\n };\n\n var getIndexOfSmallestSum = function(arrays) {\n var sum = arrays.map(function(value) {\n return value.reduce(function(pv, cv) {\n return pv + Math.abs(cv);\n }, 0);\n });\n return sum.indexOf(Math.min.apply(null, sum));\n };\n\n var getPredictorFromCompression = function(compression) {\n var predictor;\n switch (compression) {\n case jsPDFAPI.image_compression.FAST:\n predictor = 11;\n break;\n\n case jsPDFAPI.image_compression.MEDIUM:\n predictor = 13;\n break;\n\n case jsPDFAPI.image_compression.SLOW:\n predictor = 14;\n break;\n\n default:\n predictor = 12;\n break;\n }\n return predictor;\n };\n\n /**\n * @name processPNG\n * @function\n * @ignore\n */\n jsPDFAPI.processPNG = function(imageData, index, alias, compression) {\n \"use strict\";\n\n var colorSpace,\n filter = this.decode.FLATE_DECODE,\n bitsPerComponent,\n image,\n decodeParameters = \"\",\n trns,\n colors,\n pal,\n smask,\n pixels,\n len,\n alphaData,\n imgData,\n hasColors,\n pixel,\n i,\n n;\n\n if (this.__addimage__.isArrayBuffer(imageData))\n imageData = new Uint8Array(imageData);\n\n if (this.__addimage__.isArrayBufferView(imageData)) {\n image = new PNG(imageData);\n imageData = image.imgData;\n bitsPerComponent = image.bits;\n colorSpace = image.colorSpace;\n colors = image.colors;\n\n /*\n * colorType 6 - Each pixel is an R,G,B triple, followed by an alpha sample.\n *\n * colorType 4 - Each pixel is a grayscale sample, followed by an alpha sample.\n *\n * Extract alpha to create two separate images, using the alpha as a sMask\n */\n if ([4, 6].indexOf(image.colorType) !== -1) {\n /*\n * processes 8 bit RGBA and grayscale + alpha images\n */\n if (image.bits === 8) {\n pixels =\n image.pixelBitlength == 32\n ? new Uint32Array(image.decodePixels().buffer)\n : image.pixelBitlength == 16\n ? new Uint16Array(image.decodePixels().buffer)\n : new Uint8Array(image.decodePixels().buffer);\n len = pixels.length;\n imgData = new Uint8Array(len * image.colors);\n alphaData = new Uint8Array(len);\n var pDiff = image.pixelBitlength - image.bits;\n i = 0;\n n = 0;\n var pbl;\n\n for (; i < len; i++) {\n pixel = pixels[i];\n pbl = 0;\n\n while (pbl < pDiff) {\n imgData[n++] = (pixel >>> pbl) & 0xff;\n pbl = pbl + image.bits;\n }\n\n alphaData[i] = (pixel >>> pbl) & 0xff;\n }\n }\n\n /*\n * processes 16 bit RGBA and grayscale + alpha images\n */\n if (image.bits === 16) {\n pixels = new Uint32Array(image.decodePixels().buffer);\n len = pixels.length;\n imgData = new Uint8Array(\n len * (32 / image.pixelBitlength) * image.colors\n );\n alphaData = new Uint8Array(len * (32 / image.pixelBitlength));\n hasColors = image.colors > 1;\n i = 0;\n n = 0;\n var a = 0;\n\n while (i < len) {\n pixel = pixels[i++];\n\n imgData[n++] = (pixel >>> 0) & 0xff;\n\n if (hasColors) {\n imgData[n++] = (pixel >>> 16) & 0xff;\n\n pixel = pixels[i++];\n imgData[n++] = (pixel >>> 0) & 0xff;\n }\n\n alphaData[a++] = (pixel >>> 16) & 0xff;\n }\n bitsPerComponent = 8;\n }\n\n if (canCompress(compression)) {\n imageData = compressBytes(\n imgData,\n image.width * image.colors,\n image.colors,\n compression\n );\n smask = compressBytes(alphaData, image.width, 1, compression);\n } else {\n imageData = imgData;\n smask = alphaData;\n filter = undefined;\n }\n }\n\n /*\n * Indexed png. Each pixel is a palette index.\n */\n if (image.colorType === 3) {\n colorSpace = this.color_spaces.INDEXED;\n pal = image.palette;\n\n if (image.transparency.indexed) {\n var trans = image.transparency.indexed;\n var total = 0;\n i = 0;\n len = trans.length;\n\n for (; i < len; ++i) {\n total += trans[i];\n }\n\n total = total / 255;\n\n /*\n * a single color is specified as 100% transparent (0),\n * so we set trns to use a /Mask with that index\n */\n if (total === len - 1 && trans.indexOf(0) !== -1) {\n trns = [trans.indexOf(0)];\n\n /*\n * there's more than one colour within the palette that specifies\n * a transparency value less than 255, so we unroll the pixels to create an image sMask\n */\n } else if (total !== len) {\n pixels = image.decodePixels();\n alphaData = new Uint8Array(pixels.length);\n i = 0;\n len = pixels.length;\n\n for (; i < len; i++) {\n alphaData[i] = trans[pixels[i]];\n }\n\n smask = compressBytes(alphaData, image.width, 1);\n }\n }\n }\n\n var predictor = getPredictorFromCompression(compression);\n\n if (filter === this.decode.FLATE_DECODE) {\n decodeParameters = \"/Predictor \" + predictor + \" \";\n }\n decodeParameters +=\n \"/Colors \" +\n colors +\n \" /BitsPerComponent \" +\n bitsPerComponent +\n \" /Columns \" +\n image.width;\n\n if (\n this.__addimage__.isArrayBuffer(imageData) ||\n this.__addimage__.isArrayBufferView(imageData)\n ) {\n imageData = this.__addimage__.arrayBufferToBinaryString(imageData);\n }\n\n if (\n (smask && this.__addimage__.isArrayBuffer(smask)) ||\n this.__addimage__.isArrayBufferView(smask)\n ) {\n smask = this.__addimage__.arrayBufferToBinaryString(smask);\n }\n\n return {\n alias: alias,\n data: imageData,\n index: index,\n filter: filter,\n decodeParameters: decodeParameters,\n transparency: trns,\n palette: pal,\n sMask: smask,\n predictor: predictor,\n width: image.width,\n height: image.height,\n bitsPerComponent: bitsPerComponent,\n colorSpace: colorSpace\n };\n }\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { GifReader } from \"../libs/omggif.js\";\nimport { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\n\n/**\n * jsPDF Gif Support PlugIn\n *\n * @name gif_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processGIF89A = function(imageData, index, alias, compression) {\n var reader = new GifReader(imageData);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = [];\n\n reader.decodeAndBlitFrameRGBA(0, pixels);\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n\n jsPDFAPI.processGIF87A = jsPDFAPI.processGIF89A;\n})(jsPDF.API);\n","import { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\nimport { BmpDecoder } from \"../libs/BMPDecoder.js\";\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @license\n * Copyright (c) 2018 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF bmp Support PlugIn\n * @name bmp_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processBMP = function(imageData, index, alias, compression) {\n var reader = new BmpDecoder(imageData, false);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = reader.getData();\n\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2019 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\nimport { WebPDecoder } from \"../libs/WebPDecoder.js\";\n\n/**\n * jsPDF webp Support PlugIn\n *\n * @name webp_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processWEBP = function(imageData, index, alias, compression) {\n var reader = new WebPDecoder(imageData, false);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = reader.getData();\n\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n})(jsPDF.API);\n","/**\n * @license\n *\n * Copyright (c) 2021 Antti Palola, https://github.com/Pantura\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF RGBA array PlugIn\n * @name rgba_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @name processRGBA\n * @function\n *\n * Process RGBA Array. This is a one-dimension array with pixel data [red, green, blue, alpha, red, green, ...].\n * RGBA array data can be obtained from DOM canvas getImageData.\n * @ignore\n */\n jsPDFAPI.processRGBA = function(imageData, index, alias) {\n \"use strict\";\n\n var imagePixels = imageData.data;\n var length = imagePixels.length;\n // jsPDF takes alpha data separately so extract that.\n var rgbOut = new Uint8Array((length / 4) * 3);\n var alphaOut = new Uint8Array(length / 4);\n var outIndex = 0;\n var alphaIndex = 0;\n\n for (var i = 0; i < length; i += 4) {\n var r = imagePixels[i];\n var g = imagePixels[i + 1];\n var b = imagePixels[i + 2];\n var alpha = imagePixels[i + 3];\n rgbOut[outIndex++] = r;\n rgbOut[outIndex++] = g;\n rgbOut[outIndex++] = b;\n alphaOut[alphaIndex++] = alpha;\n }\n\n var rgbData = this.__addimage__.arrayBufferToBinaryString(rgbOut);\n var alphaData = this.__addimage__.arrayBufferToBinaryString(alphaOut);\n\n return {\n alpha: alphaData,\n data: rgbData,\n index: index,\n alias: alias,\n colorSpace: \"DeviceRGB\",\n bitsPerComponent: 8,\n width: imageData.width,\n height: imageData.height\n };\n };\n})(jsPDF.API);\n","/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF setLanguage Plugin\n *\n * @name setLanguage\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Add Language Tag to the generated PDF\n *\n * @name setLanguage\n * @function\n * @param {string} langCode The Language code as ISO-639-1 (e.g. 'en') or as country language code (e.g. 'en-GB').\n * @returns {jsPDF}\n * @example\n * var doc = new jsPDF()\n * doc.text(10, 10, 'This is a test')\n * doc.setLanguage(\"en-US\")\n * doc.save('english.pdf')\n */\n jsPDFAPI.setLanguage = function(langCode) {\n \"use strict\";\n\n var langCodes = {\n af: \"Afrikaans\",\n sq: \"Albanian\",\n ar: \"Arabic (Standard)\",\n \"ar-DZ\": \"Arabic (Algeria)\",\n \"ar-BH\": \"Arabic (Bahrain)\",\n \"ar-EG\": \"Arabic (Egypt)\",\n \"ar-IQ\": \"Arabic (Iraq)\",\n \"ar-JO\": \"Arabic (Jordan)\",\n \"ar-KW\": \"Arabic (Kuwait)\",\n \"ar-LB\": \"Arabic (Lebanon)\",\n \"ar-LY\": \"Arabic (Libya)\",\n \"ar-MA\": \"Arabic (Morocco)\",\n \"ar-OM\": \"Arabic (Oman)\",\n \"ar-QA\": \"Arabic (Qatar)\",\n \"ar-SA\": \"Arabic (Saudi Arabia)\",\n \"ar-SY\": \"Arabic (Syria)\",\n \"ar-TN\": \"Arabic (Tunisia)\",\n \"ar-AE\": \"Arabic (U.A.E.)\",\n \"ar-YE\": \"Arabic (Yemen)\",\n an: \"Aragonese\",\n hy: \"Armenian\",\n as: \"Assamese\",\n ast: \"Asturian\",\n az: \"Azerbaijani\",\n eu: \"Basque\",\n be: \"Belarusian\",\n bn: \"Bengali\",\n bs: \"Bosnian\",\n br: \"Breton\",\n bg: \"Bulgarian\",\n my: \"Burmese\",\n ca: \"Catalan\",\n ch: \"Chamorro\",\n ce: \"Chechen\",\n zh: \"Chinese\",\n \"zh-HK\": \"Chinese (Hong Kong)\",\n \"zh-CN\": \"Chinese (PRC)\",\n \"zh-SG\": \"Chinese (Singapore)\",\n \"zh-TW\": \"Chinese (Taiwan)\",\n cv: \"Chuvash\",\n co: \"Corsican\",\n cr: \"Cree\",\n hr: \"Croatian\",\n cs: \"Czech\",\n da: \"Danish\",\n nl: \"Dutch (Standard)\",\n \"nl-BE\": \"Dutch (Belgian)\",\n en: \"English\",\n \"en-AU\": \"English (Australia)\",\n \"en-BZ\": \"English (Belize)\",\n \"en-CA\": \"English (Canada)\",\n \"en-IE\": \"English (Ireland)\",\n \"en-JM\": \"English (Jamaica)\",\n \"en-NZ\": \"English (New Zealand)\",\n \"en-PH\": \"English (Philippines)\",\n \"en-ZA\": \"English (South Africa)\",\n \"en-TT\": \"English (Trinidad & Tobago)\",\n \"en-GB\": \"English (United Kingdom)\",\n \"en-US\": \"English (United States)\",\n \"en-ZW\": \"English (Zimbabwe)\",\n eo: \"Esperanto\",\n et: \"Estonian\",\n fo: \"Faeroese\",\n fj: \"Fijian\",\n fi: \"Finnish\",\n fr: \"French (Standard)\",\n \"fr-BE\": \"French (Belgium)\",\n \"fr-CA\": \"French (Canada)\",\n \"fr-FR\": \"French (France)\",\n \"fr-LU\": \"French (Luxembourg)\",\n \"fr-MC\": \"French (Monaco)\",\n \"fr-CH\": \"French (Switzerland)\",\n fy: \"Frisian\",\n fur: \"Friulian\",\n gd: \"Gaelic (Scots)\",\n \"gd-IE\": \"Gaelic (Irish)\",\n gl: \"Galacian\",\n ka: \"Georgian\",\n de: \"German (Standard)\",\n \"de-AT\": \"German (Austria)\",\n \"de-DE\": \"German (Germany)\",\n \"de-LI\": \"German (Liechtenstein)\",\n \"de-LU\": \"German (Luxembourg)\",\n \"de-CH\": \"German (Switzerland)\",\n el: \"Greek\",\n gu: \"Gujurati\",\n ht: \"Haitian\",\n he: \"Hebrew\",\n hi: \"Hindi\",\n hu: \"Hungarian\",\n is: \"Icelandic\",\n id: \"Indonesian\",\n iu: \"Inuktitut\",\n ga: \"Irish\",\n it: \"Italian (Standard)\",\n \"it-CH\": \"Italian (Switzerland)\",\n ja: \"Japanese\",\n kn: \"Kannada\",\n ks: \"Kashmiri\",\n kk: \"Kazakh\",\n km: \"Khmer\",\n ky: \"Kirghiz\",\n tlh: \"Klingon\",\n ko: \"Korean\",\n \"ko-KP\": \"Korean (North Korea)\",\n \"ko-KR\": \"Korean (South Korea)\",\n la: \"Latin\",\n lv: \"Latvian\",\n lt: \"Lithuanian\",\n lb: \"Luxembourgish\",\n mk: \"North Macedonia\",\n ms: \"Malay\",\n ml: \"Malayalam\",\n mt: \"Maltese\",\n mi: \"Maori\",\n mr: \"Marathi\",\n mo: \"Moldavian\",\n nv: \"Navajo\",\n ng: \"Ndonga\",\n ne: \"Nepali\",\n no: \"Norwegian\",\n nb: \"Norwegian (Bokmal)\",\n nn: \"Norwegian (Nynorsk)\",\n oc: \"Occitan\",\n or: \"Oriya\",\n om: \"Oromo\",\n fa: \"Persian\",\n \"fa-IR\": \"Persian/Iran\",\n pl: \"Polish\",\n pt: \"Portuguese\",\n \"pt-BR\": \"Portuguese (Brazil)\",\n pa: \"Punjabi\",\n \"pa-IN\": \"Punjabi (India)\",\n \"pa-PK\": \"Punjabi (Pakistan)\",\n qu: \"Quechua\",\n rm: \"Rhaeto-Romanic\",\n ro: \"Romanian\",\n \"ro-MO\": \"Romanian (Moldavia)\",\n ru: \"Russian\",\n \"ru-MO\": \"Russian (Moldavia)\",\n sz: \"Sami (Lappish)\",\n sg: \"Sango\",\n sa: \"Sanskrit\",\n sc: \"Sardinian\",\n sd: \"Sindhi\",\n si: \"Singhalese\",\n sr: \"Serbian\",\n sk: \"Slovak\",\n sl: \"Slovenian\",\n so: \"Somani\",\n sb: \"Sorbian\",\n es: \"Spanish\",\n \"es-AR\": \"Spanish (Argentina)\",\n \"es-BO\": \"Spanish (Bolivia)\",\n \"es-CL\": \"Spanish (Chile)\",\n \"es-CO\": \"Spanish (Colombia)\",\n \"es-CR\": \"Spanish (Costa Rica)\",\n \"es-DO\": \"Spanish (Dominican Republic)\",\n \"es-EC\": \"Spanish (Ecuador)\",\n \"es-SV\": \"Spanish (El Salvador)\",\n \"es-GT\": \"Spanish (Guatemala)\",\n \"es-HN\": \"Spanish (Honduras)\",\n \"es-MX\": \"Spanish (Mexico)\",\n \"es-NI\": \"Spanish (Nicaragua)\",\n \"es-PA\": \"Spanish (Panama)\",\n \"es-PY\": \"Spanish (Paraguay)\",\n \"es-PE\": \"Spanish (Peru)\",\n \"es-PR\": \"Spanish (Puerto Rico)\",\n \"es-ES\": \"Spanish (Spain)\",\n \"es-UY\": \"Spanish (Uruguay)\",\n \"es-VE\": \"Spanish (Venezuela)\",\n sx: \"Sutu\",\n sw: \"Swahili\",\n sv: \"Swedish\",\n \"sv-FI\": \"Swedish (Finland)\",\n \"sv-SV\": \"Swedish (Sweden)\",\n ta: \"Tamil\",\n tt: \"Tatar\",\n te: \"Teluga\",\n th: \"Thai\",\n tig: \"Tigre\",\n ts: \"Tsonga\",\n tn: \"Tswana\",\n tr: \"Turkish\",\n tk: \"Turkmen\",\n uk: \"Ukrainian\",\n hsb: \"Upper Sorbian\",\n ur: \"Urdu\",\n ve: \"Venda\",\n vi: \"Vietnamese\",\n vo: \"Volapuk\",\n wa: \"Walloon\",\n cy: \"Welsh\",\n xh: \"Xhosa\",\n ji: \"Yiddish\",\n zu: \"Zulu\"\n };\n\n if (this.internal.languageSettings === undefined) {\n this.internal.languageSettings = {};\n this.internal.languageSettings.isSubscribed = false;\n }\n\n if (langCodes[langCode] !== undefined) {\n this.internal.languageSettings.languageCode = langCode;\n if (this.internal.languageSettings.isSubscribed === false) {\n this.internal.events.subscribe(\"putCatalog\", function() {\n this.internal.write(\n \"/Lang (\" + this.internal.languageSettings.languageCode + \")\"\n );\n });\n this.internal.languageSettings.isSubscribed = true;\n }\n }\n return this;\n };\n})(jsPDF.API);\n","/** @license\n jsPDF standard_fonts_metrics plugin\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n * MIT license.\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n * \n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * This file adds the standard font metrics to jsPDF.\n *\n * Font metrics data is reprocessed derivative of contents of\n * \"Font Metrics for PDF Core 14 Fonts\" package, which exhibits the following copyright and license:\n *\n * Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\n *\n * This file and the 14 PostScript(R) AFM files it accompanies may be used,\n * copied, and distributed for any purpose and without charge, with or without\n * modification, provided that all copyright notices are retained; that the AFM\n * files are not distributed without this file; that all modifications to this\n * file or any of the AFM files are prominently noted in the modified file(s);\n * and that this paragraph is not modified. Adobe Systems has no responsibility\n * or obligation to support the use of the AFM files.\n *\n * @name standard_fonts_metrics\n * @module\n */\n\n(function(API) {\n \"use strict\";\n API.__fontmetrics__ = API.__fontmetrics__ || {};\n\n var decoded = \"0123456789abcdef\",\n encoded = \"klmnopqrstuvwxyz\",\n mappingUncompress = {},\n mappingCompress = {};\n\n for (var i = 0; i < encoded.length; i++) {\n mappingUncompress[encoded[i]] = decoded[i];\n mappingCompress[decoded[i]] = encoded[i];\n }\n\n var hex = function(value) {\n return \"0x\" + parseInt(value, 10).toString(16);\n };\n\n var compress = (API.__fontmetrics__.compress = function(data) {\n var vals = [\"{\"];\n var value, keystring, valuestring, numberprefix;\n\n for (var key in data) {\n value = data[key];\n\n if (!isNaN(parseInt(key, 10))) {\n key = parseInt(key, 10);\n keystring = hex(key).slice(2);\n keystring =\n keystring.slice(0, -1) + mappingCompress[keystring.slice(-1)];\n } else {\n keystring = \"'\" + key + \"'\";\n }\n\n if (typeof value == \"number\") {\n if (value < 0) {\n valuestring = hex(value).slice(3);\n numberprefix = \"-\";\n } else {\n valuestring = hex(value).slice(2);\n numberprefix = \"\";\n }\n valuestring =\n numberprefix +\n valuestring.slice(0, -1) +\n mappingCompress[valuestring.slice(-1)];\n } else {\n if (typeof value === \"object\") {\n valuestring = compress(value);\n } else {\n throw new Error(\n \"Don't know what to do with value type \" + typeof value + \".\"\n );\n }\n }\n vals.push(keystring + valuestring);\n }\n vals.push(\"}\");\n return vals.join(\"\");\n });\n\n /**\n * Uncompresses data compressed into custom, base16-like format.\n *\n * @public\n * @function\n * @param\n * @returns {Type}\n */\n var uncompress = (API.__fontmetrics__.uncompress = function(data) {\n if (typeof data !== \"string\") {\n throw new Error(\"Invalid argument passed to uncompress.\");\n }\n\n var output = {},\n sign = 1,\n stringparts, // undef. will be [] in string mode\n activeobject = output,\n parentchain = [],\n parent_key_pair,\n keyparts = \"\",\n valueparts = \"\",\n key, // undef. will be Truthy when Key is resolved.\n datalen = data.length - 1, // stripping ending }\n ch;\n\n for (var i = 1; i < datalen; i += 1) {\n // - { } ' are special.\n\n ch = data[i];\n\n if (ch == \"'\") {\n if (stringparts) {\n // end of string mode\n key = stringparts.join(\"\");\n stringparts = undefined;\n } else {\n // start of string mode\n stringparts = [];\n }\n } else if (stringparts) {\n stringparts.push(ch);\n } else if (ch == \"{\") {\n // start of object\n parentchain.push([activeobject, key]);\n activeobject = {};\n key = undefined;\n } else if (ch == \"}\") {\n // end of object\n parent_key_pair = parentchain.pop();\n parent_key_pair[0][parent_key_pair[1]] = activeobject;\n key = undefined;\n activeobject = parent_key_pair[0];\n } else if (ch == \"-\") {\n sign = -1;\n } else {\n // must be number\n if (key === undefined) {\n if (mappingUncompress.hasOwnProperty(ch)) {\n keyparts += mappingUncompress[ch];\n key = parseInt(keyparts, 16) * sign;\n sign = +1;\n keyparts = \"\";\n } else {\n keyparts += ch;\n }\n } else {\n if (mappingUncompress.hasOwnProperty(ch)) {\n valueparts += mappingUncompress[ch];\n activeobject[key] = parseInt(valueparts, 16) * sign;\n sign = +1;\n key = undefined;\n valueparts = \"\";\n } else {\n valueparts += ch;\n }\n }\n }\n }\n return output;\n });\n\n // encoding = 'Unicode'\n // NOT UTF8, NOT UTF16BE/LE, NOT UCS2BE/LE. NO clever BOM behavior\n // Actual 16bit char codes used.\n // no multi-byte logic here\n\n // Unicode characters to WinAnsiEncoding:\n // {402: 131, 8211: 150, 8212: 151, 8216: 145, 8217: 146, 8218: 130, 8220: 147, 8221: 148, 8222: 132, 8224: 134, 8225: 135, 8226: 149, 8230: 133, 8364: 128, 8240:137, 8249: 139, 8250: 155, 710: 136, 8482: 153, 338: 140, 339: 156, 732: 152, 352: 138, 353: 154, 376: 159, 381: 142, 382: 158}\n // as you can see, all Unicode chars are outside of 0-255 range. No char code conflicts.\n // this means that you can give Win cp1252 encoded strings to jsPDF for rendering directly\n // as well as give strings with some (supported by these fonts) Unicode characters and\n // these will be mapped to win cp1252\n // for example, you can send char code (cp1252) 0x80 or (unicode) 0x20AC, getting \"Euro\" glyph displayed in both cases.\n\n var encodingBlock = {\n codePages: [\"WinAnsiEncoding\"],\n WinAnsiEncoding: uncompress(\n \"{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}\"\n )\n };\n var encodings = {\n Unicode: {\n Courier: encodingBlock,\n \"Courier-Bold\": encodingBlock,\n \"Courier-BoldOblique\": encodingBlock,\n \"Courier-Oblique\": encodingBlock,\n Helvetica: encodingBlock,\n \"Helvetica-Bold\": encodingBlock,\n \"Helvetica-BoldOblique\": encodingBlock,\n \"Helvetica-Oblique\": encodingBlock,\n \"Times-Roman\": encodingBlock,\n \"Times-Bold\": encodingBlock,\n \"Times-BoldItalic\": encodingBlock,\n \"Times-Italic\": encodingBlock\n //\t, 'Symbol'\n //\t, 'ZapfDingbats'\n }\n };\n\n var fontMetrics = {\n Unicode: {\n // all sizing numbers are n/fontMetricsFractionOf = one font size unit\n // this means that if fontMetricsFractionOf = 1000, and letter A's width is 476, it's\n // width is 476/1000 or 47.6% of its height (regardless of font size)\n // At this time this value applies to \"widths\" and \"kerning\" numbers.\n\n // char code 0 represents \"default\" (average) width - use it for chars missing in this table.\n // key 'fof' represents the \"fontMetricsFractionOf\" value\n\n \"Courier-Oblique\": uncompress(\n \"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"\n ),\n \"Times-BoldItalic\": uncompress(\n \"{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}\"\n ),\n \"Helvetica-Bold\": uncompress(\n \"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"\n ),\n Courier: uncompress(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Courier-BoldOblique\": uncompress(\n \"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"\n ),\n \"Times-Bold\": uncompress(\n \"{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}\"\n ),\n Symbol: uncompress(\n \"{'widths'{k3uaw4r19m3m2k1t2l2l202m2y2n3m2p5n202q6o3k3m2s2l2t2l2v3r2w1t3m3m2y1t2z1wbk2sbl3r'fof'6o3n3m3o3m3p3m3q3m3r3m3s3m3t3m3u1w3v1w3w3r3x3r3y3r3z2wbp3t3l3m5v2l5x2l5z3m2q4yfr3r7v3k7w1o7x3k}'kerning'{'fof'-6o}}\"\n ),\n Helvetica: uncompress(\n \"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"\n ),\n \"Helvetica-BoldOblique\": uncompress(\n \"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"\n ),\n ZapfDingbats: uncompress(\"{'widths'{k4u2k1w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Courier-Bold\": uncompress(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Times-Italic\": uncompress(\n \"{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}\"\n ),\n \"Times-Roman\": uncompress(\n \"{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}\"\n ),\n \"Helvetica-Oblique\": uncompress(\n \"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"\n )\n }\n };\n\n /*\n\tThis event handler is fired when a new jsPDF object is initialized\n\tThis event handler appends metrics data to standard fonts within\n\tthat jsPDF instance. The metrics are mapped over Unicode character\n\tcodes, NOT CIDs or other codes matching the StandardEncoding table of the\n\tstandard PDF fonts.\n\tFuture:\n\tAlso included is the encoding maping table, converting Unicode (UCS-2, UTF-16)\n\tchar codes to StandardEncoding character codes. The encoding table is to be used\n\tsomewhere around \"pdfEscape\" call.\n\t*/\n API.events.push([\n \"addFont\",\n function(data) {\n var font = data.font;\n\n var metrics = fontMetrics[\"Unicode\"][font.postScriptName];\n if (metrics) {\n font.metadata[\"Unicode\"] = {};\n font.metadata[\"Unicode\"].widths = metrics.widths;\n font.metadata[\"Unicode\"].kerning = metrics.kerning;\n }\n\n var encodingBlock = encodings[\"Unicode\"][font.postScriptName];\n if (encodingBlock) {\n font.metadata[\"Unicode\"].encoding = encodingBlock;\n font.encoding = encodingBlock.codePages[0];\n }\n }\n ]); // end of adding event handler\n})(jsPDF.API);\n","/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { atob } from \"../libs/AtobBtoa.js\";\n\n/**\n * @name ttfsupport\n * @module\n */\n(function(jsPDF) {\n \"use strict\";\n\n var binaryStringToUint8Array = function(binary_string) {\n var len = binary_string.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes;\n };\n\n var addFont = function(font, file) {\n // eslint-disable-next-line no-control-regex\n if (/^\\x00\\x01\\x00\\x00/.test(file)) {\n file = binaryStringToUint8Array(file);\n } else {\n file = binaryStringToUint8Array(atob(file));\n }\n font.metadata = jsPDF.API.TTFFont.open(file);\n font.metadata.Unicode = font.metadata.Unicode || {\n encoding: {},\n kerning: {},\n widths: []\n };\n font.metadata.glyIdsUsed = [0];\n };\n\n jsPDF.API.events.push([\n \"addFont\",\n function(data) {\n var file = undefined;\n var font = data.font;\n var instance = data.instance;\n if (font.isStandardFont) {\n return;\n }\n if (typeof instance !== \"undefined\") {\n if (instance.existsFileInVFS(font.postScriptName) === false) {\n file = instance.loadFile(font.postScriptName);\n } else {\n file = instance.getFileFromVFS(font.postScriptName);\n }\n if (typeof file !== \"string\") {\n throw new Error(\n \"Font is not stored as string-data in vFS, import fonts or remove declaration doc.addFont('\" +\n font.postScriptName +\n \"').\"\n );\n }\n addFont(font, file);\n } else {\n throw new Error(\n \"Font does not exist in vFS, import fonts or remove declaration doc.addFont('\" +\n font.postScriptName +\n \"').\"\n );\n }\n }\n ]); // end of adding event handler\n})(jsPDF);\n","/** @license\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { console } from \"../libs/console.js\";\nimport { globalObject } from \"../libs/globalObject.js\";\n\n/**\n * jsPDF SVG plugin\n *\n * @name svg\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n function loadCanvg() {\n return (function() {\n if (globalObject[\"canvg\"]) {\n return Promise.resolve(globalObject[\"canvg\"]);\n }\n\n return import(\"canvg\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load canvg: \" + e));\n })\n .then(function(canvg) {\n return canvg.default ? canvg.default : canvg;\n });\n }\n\n /**\n * Parses SVG XML and saves it as image into the PDF.\n *\n * Depends on canvas-element and canvg\n *\n * @name addSvgAsImage\n * @public\n * @function\n * @param {string} SVG-Data as Text\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {number} width of SVG-Image (in units declared at inception of PDF document)\n * @param {number} height of SVG-Image (in units declared at inception of PDF document)\n * @param {string} alias of SVG-Image (if used multiple times)\n * @param {string} compression of the generated JPEG, can have the values 'NONE', 'FAST', 'MEDIUM' and 'SLOW'\n * @param {number} rotation of the image in degrees (0-359)\n *\n * @returns jsPDF jsPDF-instance\n */\n jsPDFAPI.addSvgAsImage = function(\n svg,\n x,\n y,\n w,\n h,\n alias,\n compression,\n rotation\n ) {\n if (isNaN(x) || isNaN(y)) {\n console.error(\"jsPDF.addSvgAsImage: Invalid coordinates\", arguments);\n throw new Error(\"Invalid coordinates passed to jsPDF.addSvgAsImage\");\n }\n\n if (isNaN(w) || isNaN(h)) {\n console.error(\"jsPDF.addSvgAsImage: Invalid measurements\", arguments);\n throw new Error(\n \"Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage\"\n );\n }\n\n var canvas = document.createElement(\"canvas\");\n canvas.width = w;\n canvas.height = h;\n var ctx = canvas.getContext(\"2d\");\n ctx.fillStyle = \"#fff\"; /// set white fill style\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n var options = {\n ignoreMouse: true,\n ignoreAnimation: true,\n ignoreDimensions: true\n };\n var doc = this;\n return loadCanvg()\n .then(\n function(canvg) {\n return canvg.fromString(ctx, svg, options);\n },\n function() {\n return Promise.reject(new Error(\"Could not load canvg.\"));\n }\n )\n .then(function(instance) {\n return instance.render(options);\n })\n .then(function() {\n doc.addImage(\n canvas.toDataURL(\"image/jpeg\", 1.0),\n x,\n y,\n w,\n h,\n compression,\n rotation\n );\n });\n };\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF total_pages plugin\n * @name total_pages\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n /**\n * @name putTotalPages\n * @function\n * @param {string} pageExpression Regular Expression\n * @returns {jsPDF} jsPDF-instance\n */\n\n jsPDFAPI.putTotalPages = function(pageExpression) {\n \"use strict\";\n\n var replaceExpression;\n var totalNumberOfPages = 0;\n if (parseInt(this.internal.getFont().id.substr(1), 10) < 15) {\n replaceExpression = new RegExp(pageExpression, \"g\");\n totalNumberOfPages = this.internal.getNumberOfPages();\n } else {\n replaceExpression = new RegExp(\n this.pdfEscape16(pageExpression, this.internal.getFont()),\n \"g\"\n );\n totalNumberOfPages = this.pdfEscape16(\n this.internal.getNumberOfPages() + \"\",\n this.internal.getFont()\n );\n }\n\n for (var n = 1; n <= this.internal.getNumberOfPages(); n++) {\n for (var i = 0; i < this.internal.pages[n].length; i++) {\n this.internal.pages[n][i] = this.internal.pages[n][i].replace(\n replaceExpression,\n totalNumberOfPages\n );\n }\n }\n\n return this;\n };\n})(jsPDF.API);\n","/**\n * @license\n * jsPDF viewerPreferences Plugin\n * @author Aras Abbasi (github.com/arasabbasi)\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * Adds the ability to set ViewerPreferences and by thus\n * controlling the way the document is to be presented on the\n * screen or in print.\n * @name viewerpreferences\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n /**\n * Set the ViewerPreferences of the generated PDF\n *\n * @name viewerPreferences\n * @function\n * @public\n * @param {Object} options Array with the ViewerPreferences
    \n * Example: doc.viewerPreferences({\"FitWindow\":true});
    \n *
    \n * You can set following preferences:
    \n *
    \n * HideToolbar (boolean)
    \n * Default value: false
    \n *
    \n * HideMenubar (boolean)
    \n * Default value: false.
    \n *
    \n * HideWindowUI (boolean)
    \n * Default value: false.
    \n *
    \n * FitWindow (boolean)
    \n * Default value: false.
    \n *
    \n * CenterWindow (boolean)
    \n * Default value: false
    \n *
    \n * DisplayDocTitle (boolean)
    \n * Default value: false.
    \n *
    \n * NonFullScreenPageMode (string)
    \n * Possible values: UseNone, UseOutlines, UseThumbs, UseOC
    \n * Default value: UseNone
    \n *
    \n * Direction (string)
    \n * Possible values: L2R, R2L
    \n * Default value: L2R.
    \n *
    \n * ViewArea (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox.
    \n *
    \n * ViewClip (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox
    \n *
    \n * PrintArea (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox
    \n *
    \n * PrintClip (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox.
    \n *
    \n * PrintScaling (string)
    \n * Possible values: AppDefault, None
    \n * Default value: AppDefault.
    \n *
    \n * Duplex (string)
    \n * Possible values: Simplex, DuplexFlipLongEdge, DuplexFlipShortEdge\n * Default value: none
    \n *
    \n * PickTrayByPDFSize (boolean)
    \n * Default value: false
    \n *
    \n * PrintPageRange (Array)
    \n * Example: [[1,5], [7,9]]
    \n * Default value: as defined by PDF viewer application
    \n *
    \n * NumCopies (Number)
    \n * Possible values: 1, 2, 3, 4, 5
    \n * Default value: 1
    \n *
    \n * For more information see the PDF Reference, sixth edition on Page 577\n * @param {boolean} doReset True to reset the settings\n * @function\n * @returns jsPDF jsPDF-instance\n * @example\n * var doc = new jsPDF()\n * doc.text('This is a test', 10, 10)\n * doc.viewerPreferences({'FitWindow': true}, true)\n * doc.save(\"viewerPreferences.pdf\")\n *\n * // Example printing 10 copies, using cropbox, and hiding UI.\n * doc.viewerPreferences({\n * 'HideWindowUI': true,\n * 'PrintArea': 'CropBox',\n * 'NumCopies': 10\n * })\n */\n jsPDFAPI.viewerPreferences = function(options, doReset) {\n options = options || {};\n doReset = doReset || false;\n\n var configuration;\n var configurationTemplate = {\n HideToolbar: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n HideMenubar: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n HideWindowUI: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n FitWindow: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n CenterWindow: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n DisplayDocTitle: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.4\n },\n NonFullScreenPageMode: {\n defaultValue: \"UseNone\",\n value: \"UseNone\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"UseNone\", \"UseOutlines\", \"UseThumbs\", \"UseOC\"],\n pdfVersion: 1.3\n },\n Direction: {\n defaultValue: \"L2R\",\n value: \"L2R\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"L2R\", \"R2L\"],\n pdfVersion: 1.3\n },\n ViewArea: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n ViewClip: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintArea: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintClip: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintScaling: {\n defaultValue: \"AppDefault\",\n value: \"AppDefault\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"AppDefault\", \"None\"],\n pdfVersion: 1.6\n },\n Duplex: {\n defaultValue: \"\",\n value: \"none\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\n \"Simplex\",\n \"DuplexFlipShortEdge\",\n \"DuplexFlipLongEdge\",\n \"none\"\n ],\n pdfVersion: 1.7\n },\n PickTrayByPDFSize: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.7\n },\n PrintPageRange: {\n defaultValue: \"\",\n value: \"\",\n type: \"array\",\n explicitSet: false,\n valueSet: null,\n pdfVersion: 1.7\n },\n NumCopies: {\n defaultValue: 1,\n value: 1,\n type: \"integer\",\n explicitSet: false,\n valueSet: null,\n pdfVersion: 1.7\n }\n };\n\n var configurationKeys = Object.keys(configurationTemplate);\n\n var rangeArray = [];\n var i = 0;\n var j = 0;\n var k = 0;\n var isValid;\n\n var method;\n var value;\n\n function arrayContainsElement(array, element) {\n var iterator;\n var result = false;\n\n for (iterator = 0; iterator < array.length; iterator += 1) {\n if (array[iterator] === element) {\n result = true;\n }\n }\n return result;\n }\n\n if (this.internal.viewerpreferences === undefined) {\n this.internal.viewerpreferences = {};\n this.internal.viewerpreferences.configuration = JSON.parse(\n JSON.stringify(configurationTemplate)\n );\n this.internal.viewerpreferences.isSubscribed = false;\n }\n configuration = this.internal.viewerpreferences.configuration;\n\n if (options === \"reset\" || doReset === true) {\n var len = configurationKeys.length;\n\n for (k = 0; k < len; k += 1) {\n configuration[configurationKeys[k]].value =\n configuration[configurationKeys[k]].defaultValue;\n configuration[configurationKeys[k]].explicitSet = false;\n }\n }\n\n if (typeof options === \"object\") {\n for (method in options) {\n value = options[method];\n if (\n arrayContainsElement(configurationKeys, method) &&\n value !== undefined\n ) {\n if (\n configuration[method].type === \"boolean\" &&\n typeof value === \"boolean\"\n ) {\n configuration[method].value = value;\n } else if (\n configuration[method].type === \"name\" &&\n arrayContainsElement(configuration[method].valueSet, value)\n ) {\n configuration[method].value = value;\n } else if (\n configuration[method].type === \"integer\" &&\n Number.isInteger(value)\n ) {\n configuration[method].value = value;\n } else if (configuration[method].type === \"array\") {\n for (i = 0; i < value.length; i += 1) {\n isValid = true;\n if (value[i].length === 1 && typeof value[i][0] === \"number\") {\n rangeArray.push(String(value[i] - 1));\n } else if (value[i].length > 1) {\n for (j = 0; j < value[i].length; j += 1) {\n if (typeof value[i][j] !== \"number\") {\n isValid = false;\n }\n }\n if (isValid === true) {\n rangeArray.push([value[i][0] - 1, value[i][1] - 1].join(\" \"));\n }\n }\n }\n configuration[method].value = \"[\" + rangeArray.join(\" \") + \"]\";\n } else {\n configuration[method].value = configuration[method].defaultValue;\n }\n\n configuration[method].explicitSet = true;\n }\n }\n }\n\n if (this.internal.viewerpreferences.isSubscribed === false) {\n this.internal.events.subscribe(\"putCatalog\", function() {\n var pdfDict = [];\n var vPref;\n for (vPref in configuration) {\n if (configuration[vPref].explicitSet === true) {\n if (configuration[vPref].type === \"name\") {\n pdfDict.push(\"/\" + vPref + \" /\" + configuration[vPref].value);\n } else {\n pdfDict.push(\"/\" + vPref + \" \" + configuration[vPref].value);\n }\n }\n }\n if (pdfDict.length !== 0) {\n this.internal.write(\n \"/ViewerPreferences\\n<<\\n\" + pdfDict.join(\"\\n\") + \"\\n>>\"\n );\n }\n });\n this.internal.viewerpreferences.isSubscribed = true;\n }\n\n this.internal.viewerpreferences.configuration = configuration;\n return this;\n };\n})(jsPDF.API);\n","/** ====================================================================\n * @license\n * jsPDF XMP metadata plugin\n * Copyright (c) 2016 Jussi Utunen, u-jussi@suomi24.fi\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name xmp_metadata\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var postPutResources = function() {\n var xmpmeta_beginning = '';\n var rdf_beginning =\n '';\n var rdf_ending = \"\";\n var xmpmeta_ending = \"\";\n var utf8_xmpmeta_beginning = unescape(\n encodeURIComponent(xmpmeta_beginning)\n );\n var utf8_rdf_beginning = unescape(encodeURIComponent(rdf_beginning));\n var utf8_metadata = unescape(\n encodeURIComponent(this.internal.__metadata__.metadata)\n );\n var utf8_rdf_ending = unescape(encodeURIComponent(rdf_ending));\n var utf8_xmpmeta_ending = unescape(encodeURIComponent(xmpmeta_ending));\n\n var total_len =\n utf8_rdf_beginning.length +\n utf8_metadata.length +\n utf8_rdf_ending.length +\n utf8_xmpmeta_beginning.length +\n utf8_xmpmeta_ending.length;\n\n this.internal.__metadata__.metadata_object_number = this.internal.newObject();\n this.internal.write(\n \"<< /Type /Metadata /Subtype /XML /Length \" + total_len + \" >>\"\n );\n this.internal.write(\"stream\");\n this.internal.write(\n utf8_xmpmeta_beginning +\n utf8_rdf_beginning +\n utf8_metadata +\n utf8_rdf_ending +\n utf8_xmpmeta_ending\n );\n this.internal.write(\"endstream\");\n this.internal.write(\"endobj\");\n };\n\n var putCatalog = function() {\n if (this.internal.__metadata__.metadata_object_number) {\n this.internal.write(\n \"/Metadata \" +\n this.internal.__metadata__.metadata_object_number +\n \" 0 R\"\n );\n }\n };\n\n /**\n * Adds XMP formatted metadata to PDF\n *\n * @name addMetadata\n * @function\n * @param {String} metadata The actual metadata to be added. The metadata shall be stored as XMP simple value. Note that if the metadata string contains XML markup characters \"<\", \">\" or \"&\", those characters should be written using XML entities.\n * @param {String} namespaceuri Sets the namespace URI for the metadata. Last character should be slash or hash.\n * @returns {jsPDF} jsPDF-instance\n */\n jsPDFAPI.addMetadata = function(metadata, namespaceuri) {\n if (typeof this.internal.__metadata__ === \"undefined\") {\n this.internal.__metadata__ = {\n metadata: metadata,\n namespaceuri: namespaceuri || \"http://jspdf.default.namespaceuri/\"\n };\n this.internal.events.subscribe(\"putCatalog\", putCatalog);\n\n this.internal.events.subscribe(\"postPutResources\", postPutResources);\n }\n return this;\n };\n})(jsPDF.API);\n","import { jsPDF } from \"../jspdf.js\";\nimport { toPDFName } from \"../libs/pdfname.js\";\n\n/**\n * @name utf8\n * @module\n */\n(function(jsPDF) {\n \"use strict\";\n var jsPDFAPI = jsPDF.API;\n\n /***************************************************************************************************/\n /* function : pdfEscape16 */\n /* comment : The character id of a 2-byte string is converted to a hexadecimal number by obtaining */\n /* the corresponding glyph id and width, and then adding padding to the string. */\n /***************************************************************************************************/\n var pdfEscape16 = (jsPDFAPI.pdfEscape16 = function(text, font) {\n var widths = font.metadata.Unicode.widths;\n var padz = [\"\", \"0\", \"00\", \"000\", \"0000\"];\n var ar = [\"\"];\n for (var i = 0, l = text.length, t; i < l; ++i) {\n t = font.metadata.characterToGlyph(text.charCodeAt(i));\n font.metadata.glyIdsUsed.push(t);\n font.metadata.toUnicode[t] = text.charCodeAt(i);\n if (widths.indexOf(t) == -1) {\n widths.push(t);\n widths.push([parseInt(font.metadata.widthOfGlyph(t), 10)]);\n }\n if (t == \"0\") {\n //Spaces are not allowed in cmap.\n return ar.join(\"\");\n } else {\n t = t.toString(16);\n ar.push(padz[4 - t.length], t);\n }\n }\n return ar.join(\"\");\n });\n\n var toUnicodeCmap = function(map) {\n var code, codes, range, unicode, unicodeMap, _i, _len;\n unicodeMap =\n \"/CIDInit /ProcSet findresource begin\\n12 dict begin\\nbegincmap\\n/CIDSystemInfo <<\\n /Registry (Adobe)\\n /Ordering (UCS)\\n /Supplement 0\\n>> def\\n/CMapName /Adobe-Identity-UCS def\\n/CMapType 2 def\\n1 begincodespacerange\\n<0000>\\nendcodespacerange\";\n codes = Object.keys(map).sort(function(a, b) {\n return a - b;\n });\n\n range = [];\n for (_i = 0, _len = codes.length; _i < _len; _i++) {\n code = codes[_i];\n if (range.length >= 100) {\n unicodeMap +=\n \"\\n\" +\n range.length +\n \" beginbfchar\\n\" +\n range.join(\"\\n\") +\n \"\\nendbfchar\";\n range = [];\n }\n\n if (\n map[code] !== undefined &&\n map[code] !== null &&\n typeof map[code].toString === \"function\"\n ) {\n unicode = (\"0000\" + map[code].toString(16)).slice(-4);\n code = (\"0000\" + (+code).toString(16)).slice(-4);\n range.push(\"<\" + code + \"><\" + unicode + \">\");\n }\n }\n\n if (range.length) {\n unicodeMap +=\n \"\\n\" +\n range.length +\n \" beginbfchar\\n\" +\n range.join(\"\\n\") +\n \"\\nendbfchar\\n\";\n }\n unicodeMap +=\n \"endcmap\\nCMapName currentdict /CMap defineresource pop\\nend\\nend\";\n return unicodeMap;\n };\n\n var identityHFunction = function(options) {\n var font = options.font;\n var out = options.out;\n var newObject = options.newObject;\n var putStream = options.putStream;\n\n if (\n font.metadata instanceof jsPDF.API.TTFFont &&\n font.encoding === \"Identity-H\"\n ) {\n //Tag with Identity-H\n var widths = font.metadata.Unicode.widths;\n var data = font.metadata.subset.encode(font.metadata.glyIdsUsed, 1);\n var pdfOutput = data;\n var pdfOutput2 = \"\";\n for (var i = 0; i < pdfOutput.length; i++) {\n pdfOutput2 += String.fromCharCode(pdfOutput[i]);\n }\n var fontTable = newObject();\n putStream({ data: pdfOutput2, addLength1: true, objectId: fontTable });\n out(\"endobj\");\n\n var cmap = newObject();\n var cmapData = toUnicodeCmap(font.metadata.toUnicode);\n putStream({ data: cmapData, addLength1: true, objectId: cmap });\n out(\"endobj\");\n\n var fontDescriptor = newObject();\n out(\"<<\");\n out(\"/Type /FontDescriptor\");\n out(\"/FontName /\" + toPDFName(font.fontName));\n out(\"/FontFile2 \" + fontTable + \" 0 R\");\n out(\"/FontBBox \" + jsPDF.API.PDFObject.convert(font.metadata.bbox));\n out(\"/Flags \" + font.metadata.flags);\n out(\"/StemV \" + font.metadata.stemV);\n out(\"/ItalicAngle \" + font.metadata.italicAngle);\n out(\"/Ascent \" + font.metadata.ascender);\n out(\"/Descent \" + font.metadata.decender);\n out(\"/CapHeight \" + font.metadata.capHeight);\n out(\">>\");\n out(\"endobj\");\n\n var DescendantFont = newObject();\n out(\"<<\");\n out(\"/Type /Font\");\n out(\"/BaseFont /\" + toPDFName(font.fontName));\n out(\"/FontDescriptor \" + fontDescriptor + \" 0 R\");\n out(\"/W \" + jsPDF.API.PDFObject.convert(widths));\n out(\"/CIDToGIDMap /Identity\");\n out(\"/DW 1000\");\n out(\"/Subtype /CIDFontType2\");\n out(\"/CIDSystemInfo\");\n out(\"<<\");\n out(\"/Supplement 0\");\n out(\"/Registry (Adobe)\");\n out(\"/Ordering (\" + font.encoding + \")\");\n out(\">>\");\n out(\">>\");\n out(\"endobj\");\n\n font.objectNumber = newObject();\n out(\"<<\");\n out(\"/Type /Font\");\n out(\"/Subtype /Type0\");\n out(\"/ToUnicode \" + cmap + \" 0 R\");\n out(\"/BaseFont /\" + toPDFName(font.fontName));\n out(\"/Encoding /\" + font.encoding);\n out(\"/DescendantFonts [\" + DescendantFont + \" 0 R]\");\n out(\">>\");\n out(\"endobj\");\n\n font.isAlreadyPutted = true;\n }\n };\n\n jsPDFAPI.events.push([\n \"putFont\",\n function(args) {\n identityHFunction(args);\n }\n ]);\n\n var winAnsiEncodingFunction = function(options) {\n var font = options.font;\n var out = options.out;\n var newObject = options.newObject;\n var putStream = options.putStream;\n\n if (\n font.metadata instanceof jsPDF.API.TTFFont &&\n font.encoding === \"WinAnsiEncoding\"\n ) {\n //Tag with WinAnsi encoding\n var data = font.metadata.rawData;\n var pdfOutput = data;\n var pdfOutput2 = \"\";\n for (var i = 0; i < pdfOutput.length; i++) {\n pdfOutput2 += String.fromCharCode(pdfOutput[i]);\n }\n var fontTable = newObject();\n putStream({ data: pdfOutput2, addLength1: true, objectId: fontTable });\n out(\"endobj\");\n\n var cmap = newObject();\n var cmapData = toUnicodeCmap(font.metadata.toUnicode);\n putStream({ data: cmapData, addLength1: true, objectId: cmap });\n out(\"endobj\");\n\n var fontDescriptor = newObject();\n out(\"<<\");\n out(\"/Descent \" + font.metadata.decender);\n out(\"/CapHeight \" + font.metadata.capHeight);\n out(\"/StemV \" + font.metadata.stemV);\n out(\"/Type /FontDescriptor\");\n out(\"/FontFile2 \" + fontTable + \" 0 R\");\n out(\"/Flags 96\");\n out(\"/FontBBox \" + jsPDF.API.PDFObject.convert(font.metadata.bbox));\n out(\"/FontName /\" + toPDFName(font.fontName));\n out(\"/ItalicAngle \" + font.metadata.italicAngle);\n out(\"/Ascent \" + font.metadata.ascender);\n out(\">>\");\n out(\"endobj\");\n font.objectNumber = newObject();\n for (var j = 0; j < font.metadata.hmtx.widths.length; j++) {\n font.metadata.hmtx.widths[j] = parseInt(\n font.metadata.hmtx.widths[j] * (1000 / font.metadata.head.unitsPerEm)\n ); //Change the width of Em units to Point units.\n }\n out(\n \"<>\"\n );\n out(\"endobj\");\n font.isAlreadyPutted = true;\n }\n };\n\n jsPDFAPI.events.push([\n \"putFont\",\n function(args) {\n winAnsiEncodingFunction(args);\n }\n ]);\n\n var utf8TextFunction = function(args) {\n var text = args.text || \"\";\n var x = args.x;\n var y = args.y;\n var options = args.options || {};\n var mutex = args.mutex || {};\n\n var pdfEscape = mutex.pdfEscape;\n var activeFontKey = mutex.activeFontKey;\n var fonts = mutex.fonts;\n var key = activeFontKey;\n\n var str = \"\",\n s = 0,\n cmapConfirm;\n var strText = \"\";\n var encoding = fonts[key].encoding;\n\n if (fonts[key].encoding !== \"Identity-H\") {\n return {\n text: text,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n }\n strText = text;\n\n key = activeFontKey;\n if (Array.isArray(text)) {\n strText = text[0];\n }\n for (s = 0; s < strText.length; s += 1) {\n if (fonts[key].metadata.hasOwnProperty(\"cmap\")) {\n cmapConfirm =\n fonts[key].metadata.cmap.unicode.codeMap[strText[s].charCodeAt(0)];\n /*\n if (Object.prototype.toString.call(text) === '[object Array]') {\n var i = 0;\n // for (i = 0; i < text.length; i += 1) {\n if (Object.prototype.toString.call(text[s]) === '[object Array]') {\n cmapConfirm = fonts[key].metadata.cmap.unicode.codeMap[strText[s][0].charCodeAt(0)]; //Make sure the cmap has the corresponding glyph id\n } else {\n\n }\n //}\n\n } else {\n cmapConfirm = fonts[key].metadata.cmap.unicode.codeMap[strText[s].charCodeAt(0)]; //Make sure the cmap has the corresponding glyph id\n }*/\n }\n if (!cmapConfirm) {\n if (\n strText[s].charCodeAt(0) < 256 &&\n fonts[key].metadata.hasOwnProperty(\"Unicode\")\n ) {\n str += strText[s];\n } else {\n str += \"\";\n }\n } else {\n str += strText[s];\n }\n }\n var result = \"\";\n if (parseInt(key.slice(1)) < 14 || encoding === \"WinAnsiEncoding\") {\n //For the default 13 font\n result = pdfEscape(str, key)\n .split(\"\")\n .map(function(cv) {\n return cv.charCodeAt(0).toString(16);\n })\n .join(\"\");\n } else if (encoding === \"Identity-H\") {\n result = pdfEscape16(str, fonts[key]);\n }\n mutex.isHex = true;\n\n return {\n text: result,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n };\n\n var utf8EscapeFunction = function(parms) {\n var text = parms.text || \"\",\n x = parms.x,\n y = parms.y,\n options = parms.options,\n mutex = parms.mutex;\n var tmpText = [];\n var args = {\n text: text,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n\n if (Array.isArray(text)) {\n var i = 0;\n for (i = 0; i < text.length; i += 1) {\n if (Array.isArray(text[i])) {\n if (text[i].length === 3) {\n tmpText.push([\n utf8TextFunction(Object.assign({}, args, { text: text[i][0] }))\n .text,\n text[i][1],\n text[i][2]\n ]);\n } else {\n tmpText.push(\n utf8TextFunction(Object.assign({}, args, { text: text[i] })).text\n );\n }\n } else {\n tmpText.push(\n utf8TextFunction(Object.assign({}, args, { text: text[i] })).text\n );\n }\n }\n parms.text = tmpText;\n } else {\n parms.text = utf8TextFunction(\n Object.assign({}, args, { text: text })\n ).text;\n }\n };\n\n jsPDFAPI.events.push([\"postProcessText\", utf8EscapeFunction]);\n})(jsPDF);\n","/**\n * @license\n * jsPDF virtual FileSystem functionality\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * Use the vFS to handle files\n *\n * @name vFS\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var _initializeVFS = function() {\n if (typeof this.internal.vFS === \"undefined\") {\n this.internal.vFS = {};\n }\n return true;\n };\n\n /**\n * Check if the file exists in the vFS\n *\n * @name existsFileInVFS\n * @function\n * @param {string} Possible filename in the vFS.\n * @returns {boolean}\n * @example\n * doc.existsFileInVFS(\"someFile.txt\");\n */\n jsPDFAPI.existsFileInVFS = function(filename) {\n _initializeVFS.call(this);\n return typeof this.internal.vFS[filename] !== \"undefined\";\n };\n\n /**\n * Add a file to the vFS\n *\n * @name addFileToVFS\n * @function\n * @param {string} filename The name of the file which should be added.\n * @param {string} filecontent The content of the file.\n * @returns {jsPDF}\n * @example\n * doc.addFileToVFS(\"someFile.txt\", \"BADFACE1\");\n */\n jsPDFAPI.addFileToVFS = function(filename, filecontent) {\n _initializeVFS.call(this);\n this.internal.vFS[filename] = filecontent;\n return this;\n };\n\n /**\n * Get the file from the vFS\n *\n * @name getFileFromVFS\n * @function\n * @param {string} The name of the file which gets requested.\n * @returns {string}\n * @example\n * doc.getFileFromVFS(\"someFile.txt\");\n */\n jsPDFAPI.getFileFromVFS = function(filename) {\n _initializeVFS.call(this);\n\n if (typeof this.internal.vFS[filename] !== \"undefined\") {\n return this.internal.vFS[filename];\n }\n return null;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Unicode Bidi Engine based on the work of Alex Shensis (@asthensis)\n * MIT License\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n(function(jsPDF) {\n \"use strict\";\n /**\n * Table of Unicode types.\n *\n * Generated by:\n *\n * var bidi = require(\"./bidi/index\");\n * var bidi_accumulate = bidi.slice(0, 256).concat(bidi.slice(0x0500, 0x0500 + 256 * 3)).\n * concat(bidi.slice(0x2000, 0x2000 + 256)).concat(bidi.slice(0xFB00, 0xFB00 + 256)).\n * concat(bidi.slice(0xFE00, 0xFE00 + 2 * 256));\n *\n * for( var i = 0; i < bidi_accumulate.length; i++) {\n * \tif(bidi_accumulate[i] === undefined || bidi_accumulate[i] === 'ON')\n * \t\tbidi_accumulate[i] = 'N'; //mark as neutral to conserve space and substitute undefined\n * }\n * var bidiAccumulateStr = 'return [ \"' + bidi_accumulate.toString().replace(/,/g, '\", \"') + '\" ];';\n * require(\"fs\").writeFile('unicode-types.js', bidiAccumulateStr);\n *\n * Based on:\n * https://github.com/mathiasbynens/unicode-8.0.0\n */\n var bidiUnicodeTypes = [\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"S\",\n \"B\",\n \"S\",\n \"WS\",\n \"B\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"B\",\n \"B\",\n \"B\",\n \"S\",\n \"WS\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ES\",\n \"CS\",\n \"ES\",\n \"CS\",\n \"CS\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"B\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"CS\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"BN\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"EN\",\n \"EN\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"EN\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"N\",\n \"N\",\n \"AL\",\n \"ET\",\n \"ET\",\n \"AL\",\n \"CS\",\n \"AL\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"ET\",\n \"AN\",\n \"AN\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AN\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"L\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"B\",\n \"LRE\",\n \"RLE\",\n \"PDF\",\n \"LRO\",\n \"RLO\",\n \"CS\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"N\",\n \"LRI\",\n \"RLI\",\n \"FSI\",\n \"PDI\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"EN\",\n \"L\",\n \"N\",\n \"N\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"NSM\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"ES\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"N\",\n \"N\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"N\",\n \"BN\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ES\",\n \"CS\",\n \"ES\",\n \"CS\",\n \"CS\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\"\n ];\n\n /**\n * Unicode Bidi algorithm compliant Bidi engine.\n * For reference see http://unicode.org/reports/tr9/\n */\n\n /**\n * constructor ( options )\n *\n * Initializes Bidi engine\n *\n * @param {Object} See 'setOptions' below for detailed description.\n * options are cashed between invocation of 'doBidiReorder' method\n *\n * sample usage pattern of BidiEngine:\n * var opt = {\n * \tisInputVisual: true,\n * \tisInputRtl: false,\n * \tisOutputVisual: false,\n * \tisOutputRtl: false,\n * \tisSymmetricSwapping: true\n * }\n * var sourceToTarget = [], levels = [];\n * var bidiEng = Globalize.bidiEngine(opt);\n * var src = \"text string to be reordered\";\n * var ret = bidiEng.doBidiReorder(src, sourceToTarget, levels);\n */\n\n jsPDF.__bidiEngine__ = jsPDF.prototype.__bidiEngine__ = function(options) {\n var _UNICODE_TYPES = _bidiUnicodeTypes;\n\n var _STATE_TABLE_LTR = [\n [0, 3, 0, 1, 0, 0, 0],\n [0, 3, 0, 1, 2, 2, 0],\n [0, 3, 0, 0x11, 2, 0, 1],\n [0, 3, 5, 5, 4, 1, 0],\n [0, 3, 0x15, 0x15, 4, 0, 1],\n [0, 3, 5, 5, 4, 2, 0]\n ];\n\n var _STATE_TABLE_RTL = [\n [2, 0, 1, 1, 0, 1, 0],\n [2, 0, 1, 1, 0, 2, 0],\n [2, 0, 2, 1, 3, 2, 0],\n [2, 0, 2, 0x21, 3, 1, 1]\n ];\n\n var _TYPE_NAMES_MAP = { L: 0, R: 1, EN: 2, AN: 3, N: 4, B: 5, S: 6 };\n\n var _UNICODE_RANGES_MAP = {\n 0: 0,\n 5: 1,\n 6: 2,\n 7: 3,\n 0x20: 4,\n 0xfb: 5,\n 0xfe: 6,\n 0xff: 7\n };\n\n var _SWAP_TABLE = [\n \"\\u0028\",\n \"\\u0029\",\n \"\\u0028\",\n \"\\u003C\",\n \"\\u003E\",\n \"\\u003C\",\n \"\\u005B\",\n \"\\u005D\",\n \"\\u005B\",\n \"\\u007B\",\n \"\\u007D\",\n \"\\u007B\",\n \"\\u00AB\",\n \"\\u00BB\",\n \"\\u00AB\",\n \"\\u2039\",\n \"\\u203A\",\n \"\\u2039\",\n \"\\u2045\",\n \"\\u2046\",\n \"\\u2045\",\n \"\\u207D\",\n \"\\u207E\",\n \"\\u207D\",\n \"\\u208D\",\n \"\\u208E\",\n \"\\u208D\",\n \"\\u2264\",\n \"\\u2265\",\n \"\\u2264\",\n \"\\u2329\",\n \"\\u232A\",\n \"\\u2329\",\n \"\\uFE59\",\n \"\\uFE5A\",\n \"\\uFE59\",\n \"\\uFE5B\",\n \"\\uFE5C\",\n \"\\uFE5B\",\n \"\\uFE5D\",\n \"\\uFE5E\",\n \"\\uFE5D\",\n \"\\uFE64\",\n \"\\uFE65\",\n \"\\uFE64\"\n ];\n\n var _LTR_RANGES_REG_EXPR = new RegExp(\n /^([1-4|9]|1[0-9]|2[0-9]|3[0168]|4[04589]|5[012]|7[78]|159|16[0-9]|17[0-2]|21[569]|22[03489]|250)$/\n );\n\n var _lastArabic = false,\n _hasUbatAl,\n _hasUbatB,\n _hasUbatS,\n DIR_LTR = 0,\n DIR_RTL = 1,\n _isInVisual,\n _isInRtl,\n _isOutVisual,\n _isOutRtl,\n _isSymmetricSwapping,\n _dir = DIR_LTR;\n\n this.__bidiEngine__ = {};\n\n var _init = function(text, sourceToTargetMap) {\n if (sourceToTargetMap) {\n for (var i = 0; i < text.length; i++) {\n sourceToTargetMap[i] = i;\n }\n }\n if (_isInRtl === undefined) {\n _isInRtl = _isContextualDirRtl(text);\n }\n if (_isOutRtl === undefined) {\n _isOutRtl = _isContextualDirRtl(text);\n }\n };\n\n // for reference see 3.2 in http://unicode.org/reports/tr9/\n //\n var _getCharType = function(ch) {\n var charCode = ch.charCodeAt(),\n range = charCode >> 8,\n rangeIdx = _UNICODE_RANGES_MAP[range];\n\n if (rangeIdx !== undefined) {\n return _UNICODE_TYPES[rangeIdx * 256 + (charCode & 0xff)];\n } else if (range === 0xfc || range === 0xfd) {\n return \"AL\";\n } else if (_LTR_RANGES_REG_EXPR.test(range)) {\n //unlikely case\n return \"L\";\n } else if (range === 8) {\n // even less likely\n return \"R\";\n }\n return \"N\"; //undefined type, mark as neutral\n };\n\n var _isContextualDirRtl = function(text) {\n for (var i = 0, charType; i < text.length; i++) {\n charType = _getCharType(text.charAt(i));\n if (charType === \"L\") {\n return false;\n } else if (charType === \"R\") {\n return true;\n }\n }\n return false;\n };\n\n // for reference see 3.3.4 & 3.3.5 in http://unicode.org/reports/tr9/\n //\n var _resolveCharType = function(chars, types, resolvedTypes, index) {\n var cType = types[index],\n wType,\n nType,\n i,\n len;\n switch (cType) {\n case \"L\":\n case \"R\":\n _lastArabic = false;\n break;\n case \"N\":\n case \"AN\":\n break;\n\n case \"EN\":\n if (_lastArabic) {\n cType = \"AN\";\n }\n break;\n\n case \"AL\":\n _lastArabic = true;\n _hasUbatAl = true;\n cType = \"R\";\n break;\n\n case \"WS\":\n cType = \"N\";\n break;\n\n case \"CS\":\n if (\n index < 1 ||\n index + 1 >= types.length ||\n ((wType = resolvedTypes[index - 1]) !== \"EN\" && wType !== \"AN\") ||\n ((nType = types[index + 1]) !== \"EN\" && nType !== \"AN\")\n ) {\n cType = \"N\";\n } else if (_lastArabic) {\n nType = \"AN\";\n }\n cType = nType === wType ? nType : \"N\";\n break;\n\n case \"ES\":\n wType = index > 0 ? resolvedTypes[index - 1] : \"B\";\n cType =\n wType === \"EN\" &&\n index + 1 < types.length &&\n types[index + 1] === \"EN\"\n ? \"EN\"\n : \"N\";\n break;\n\n case \"ET\":\n if (index > 0 && resolvedTypes[index - 1] === \"EN\") {\n cType = \"EN\";\n break;\n } else if (_lastArabic) {\n cType = \"N\";\n break;\n }\n i = index + 1;\n len = types.length;\n while (i < len && types[i] === \"ET\") {\n i++;\n }\n if (i < len && types[i] === \"EN\") {\n cType = \"EN\";\n } else {\n cType = \"N\";\n }\n break;\n\n case \"NSM\":\n if (_isInVisual && !_isInRtl) {\n //V->L\n len = types.length;\n i = index + 1;\n while (i < len && types[i] === \"NSM\") {\n i++;\n }\n if (i < len) {\n var c = chars[index];\n var rtlCandidate = (c >= 0x0591 && c <= 0x08ff) || c === 0xfb1e;\n wType = types[i];\n if (rtlCandidate && (wType === \"R\" || wType === \"AL\")) {\n cType = \"R\";\n break;\n }\n }\n }\n if (index < 1 || (wType = types[index - 1]) === \"B\") {\n cType = \"N\";\n } else {\n cType = resolvedTypes[index - 1];\n }\n break;\n\n case \"B\":\n _lastArabic = false;\n _hasUbatB = true;\n cType = _dir;\n break;\n\n case \"S\":\n _hasUbatS = true;\n cType = \"N\";\n break;\n\n case \"LRE\":\n case \"RLE\":\n case \"LRO\":\n case \"RLO\":\n case \"PDF\":\n _lastArabic = false;\n break;\n case \"BN\":\n cType = \"N\";\n break;\n }\n return cType;\n };\n\n var _handleUbatS = function(types, levels, length) {\n for (var i = 0; i < length; i++) {\n if (types[i] === \"S\") {\n levels[i] = _dir;\n for (var j = i - 1; j >= 0; j--) {\n if (types[j] === \"WS\") {\n levels[j] = _dir;\n } else {\n break;\n }\n }\n }\n }\n };\n\n var _invertString = function(text, sourceToTargetMap, levels) {\n var charArray = text.split(\"\");\n if (levels) {\n _computeLevels(charArray, levels, { hiLevel: _dir });\n }\n charArray.reverse();\n sourceToTargetMap && sourceToTargetMap.reverse();\n return charArray.join(\"\");\n };\n\n // For reference see 3.3 in http://unicode.org/reports/tr9/\n //\n var _computeLevels = function(chars, levels, params) {\n var action,\n condition,\n i,\n index,\n newLevel,\n prevState,\n condPos = -1,\n len = chars.length,\n newState = 0,\n resolvedTypes = [],\n stateTable = _dir ? _STATE_TABLE_RTL : _STATE_TABLE_LTR,\n types = [];\n\n _lastArabic = false;\n _hasUbatAl = false;\n _hasUbatB = false;\n _hasUbatS = false;\n for (i = 0; i < len; i++) {\n types[i] = _getCharType(chars[i]);\n }\n for (index = 0; index < len; index++) {\n prevState = newState;\n resolvedTypes[index] = _resolveCharType(\n chars,\n types,\n resolvedTypes,\n index\n );\n newState = stateTable[prevState][_TYPE_NAMES_MAP[resolvedTypes[index]]];\n action = newState & 0xf0;\n newState &= 0x0f;\n levels[index] = newLevel = stateTable[newState][5];\n if (action > 0) {\n if (action === 0x10) {\n for (i = condPos; i < index; i++) {\n levels[i] = 1;\n }\n condPos = -1;\n } else {\n condPos = -1;\n }\n }\n condition = stateTable[newState][6];\n if (condition) {\n if (condPos === -1) {\n condPos = index;\n }\n } else {\n if (condPos > -1) {\n for (i = condPos; i < index; i++) {\n levels[i] = newLevel;\n }\n condPos = -1;\n }\n }\n if (types[index] === \"B\") {\n levels[index] = 0;\n }\n params.hiLevel |= newLevel;\n }\n if (_hasUbatS) {\n _handleUbatS(types, levels, len);\n }\n };\n\n // for reference see 3.4 in http://unicode.org/reports/tr9/\n //\n var _invertByLevel = function(\n level,\n charArray,\n sourceToTargetMap,\n levels,\n params\n ) {\n if (params.hiLevel < level) {\n return;\n }\n if (level === 1 && _dir === DIR_RTL && !_hasUbatB) {\n charArray.reverse();\n sourceToTargetMap && sourceToTargetMap.reverse();\n return;\n }\n var ch,\n high,\n end,\n low,\n len = charArray.length,\n start = 0;\n\n while (start < len) {\n if (levels[start] >= level) {\n end = start + 1;\n while (end < len && levels[end] >= level) {\n end++;\n }\n for (low = start, high = end - 1; low < high; low++, high--) {\n ch = charArray[low];\n charArray[low] = charArray[high];\n charArray[high] = ch;\n if (sourceToTargetMap) {\n ch = sourceToTargetMap[low];\n sourceToTargetMap[low] = sourceToTargetMap[high];\n sourceToTargetMap[high] = ch;\n }\n }\n start = end;\n }\n start++;\n }\n };\n\n // for reference see 7 & BD16 in http://unicode.org/reports/tr9/\n //\n var _symmetricSwap = function(charArray, levels, params) {\n if (params.hiLevel !== 0 && _isSymmetricSwapping) {\n for (var i = 0, index; i < charArray.length; i++) {\n if (levels[i] === 1) {\n index = _SWAP_TABLE.indexOf(charArray[i]);\n if (index >= 0) {\n charArray[i] = _SWAP_TABLE[index + 1];\n }\n }\n }\n }\n };\n\n var _reorder = function(text, sourceToTargetMap, levels) {\n var charArray = text.split(\"\"),\n params = { hiLevel: _dir };\n\n if (!levels) {\n levels = [];\n }\n _computeLevels(charArray, levels, params);\n _symmetricSwap(charArray, levels, params);\n _invertByLevel(DIR_RTL + 1, charArray, sourceToTargetMap, levels, params);\n _invertByLevel(DIR_RTL, charArray, sourceToTargetMap, levels, params);\n return charArray.join(\"\");\n };\n\n // doBidiReorder( text, sourceToTargetMap, levels )\n // Performs Bidi reordering by implementing Unicode Bidi algorithm.\n // Returns reordered string\n // @text [String]:\n // - input string to be reordered, this is input parameter\n // $sourceToTargetMap [Array] (optional)\n // - resultant mapping between input and output strings, this is output parameter\n // $levels [Array] (optional)\n // - array of calculated Bidi levels, , this is output parameter\n this.__bidiEngine__.doBidiReorder = function(\n text,\n sourceToTargetMap,\n levels\n ) {\n _init(text, sourceToTargetMap);\n if (!_isInVisual && _isOutVisual && !_isOutRtl) {\n // LLTR->VLTR, LRTL->VLTR\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else if (_isInVisual && _isOutVisual && _isInRtl ^ _isOutRtl) {\n // VRTL->VLTR, VLTR->VRTL\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _invertString(text, sourceToTargetMap, levels);\n } else if (!_isInVisual && _isOutVisual && _isOutRtl) {\n // LLTR->VRTL, LRTL->VRTL\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n } else if (_isInVisual && !_isInRtl && !_isOutVisual && !_isOutRtl) {\n // VLTR->LLTR\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else if (_isInVisual && !_isOutVisual && _isInRtl ^ _isOutRtl) {\n // VLTR->LRTL, VRTL->LLTR\n text = _invertString(text, sourceToTargetMap);\n if (_isInRtl) {\n //LLTR -> VLTR\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else {\n //LRTL -> VRTL\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n }\n } else if (_isInVisual && _isInRtl && !_isOutVisual && _isOutRtl) {\n // VRTL->LRTL\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n } else if (!_isInVisual && !_isOutVisual && _isInRtl ^ _isOutRtl) {\n // LRTL->LLTR, LLTR->LRTL\n var isSymmetricSwappingOrig = _isSymmetricSwapping;\n if (_isInRtl) {\n //LRTL->LLTR\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n _dir = DIR_LTR;\n _isSymmetricSwapping = false;\n text = _reorder(text, sourceToTargetMap, levels);\n _isSymmetricSwapping = isSymmetricSwappingOrig;\n } else {\n //LLTR->LRTL\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n _dir = DIR_RTL;\n _isSymmetricSwapping = false;\n text = _reorder(text, sourceToTargetMap, levels);\n _isSymmetricSwapping = isSymmetricSwappingOrig;\n text = _invertString(text, sourceToTargetMap);\n }\n }\n return text;\n };\n\n /**\n * @name setOptions( options )\n * @function\n * Sets options for Bidi conversion\n * @param {Object}:\n * - isInputVisual {boolean} (defaults to false): allowed values: true(Visual mode), false(Logical mode)\n * - isInputRtl {boolean}: allowed values true(Right-to-left direction), false (Left-to-right directiion), undefined(Contectual direction, i.e.direction defined by first strong character of input string)\n * - isOutputVisual {boolean} (defaults to false): allowed values: true(Visual mode), false(Logical mode)\n * - isOutputRtl {boolean}: allowed values true(Right-to-left direction), false (Left-to-right directiion), undefined(Contectual direction, i.e.direction defined by first strong characterof input string)\n * - isSymmetricSwapping {boolean} (defaults to false): allowed values true(needs symmetric swapping), false (no need in symmetric swapping),\n */\n this.__bidiEngine__.setOptions = function(options) {\n if (options) {\n _isInVisual = options.isInputVisual;\n _isOutVisual = options.isOutputVisual;\n _isInRtl = options.isInputRtl;\n _isOutRtl = options.isOutputRtl;\n _isSymmetricSwapping = options.isSymmetricSwapping;\n }\n };\n\n this.__bidiEngine__.setOptions(options);\n return this.__bidiEngine__;\n };\n\n var _bidiUnicodeTypes = bidiUnicodeTypes;\n\n var bidiEngine = new jsPDF.__bidiEngine__({ isInputVisual: true });\n\n var bidiEngineFunction = function(args) {\n var text = args.text;\n var x = args.x;\n var y = args.y;\n var options = args.options || {};\n var mutex = args.mutex || {};\n var lang = options.lang;\n var tmpText = [];\n\n options.isInputVisual =\n typeof options.isInputVisual === \"boolean\" ? options.isInputVisual : true;\n bidiEngine.setOptions(options);\n\n if (Object.prototype.toString.call(text) === \"[object Array]\") {\n var i = 0;\n tmpText = [];\n for (i = 0; i < text.length; i += 1) {\n if (Object.prototype.toString.call(text[i]) === \"[object Array]\") {\n tmpText.push([\n bidiEngine.doBidiReorder(text[i][0]),\n text[i][1],\n text[i][2]\n ]);\n } else {\n tmpText.push([bidiEngine.doBidiReorder(text[i])]);\n }\n }\n args.text = tmpText;\n } else {\n args.text = bidiEngine.doBidiReorder(text);\n }\n bidiEngine.setOptions({ isInputVisual: true });\n };\n\n jsPDF.API.events.push([\"postProcessText\", bidiEngineFunction]);\n})(jsPDF);\n","/* eslint-disable no-control-regex */\n/************************************************\n * Title : custom font *\n * Start Data : 2017. 01. 22. *\n * Comment : TEXT API *\n ************************************************/\n\n/******************************\n * jsPDF extension API Design *\n * ****************************/\n\nimport { jsPDF } from \"../jspdf.js\";\n\njsPDF.API.TTFFont = (function() {\n /************************************************************************/\n /* function : open */\n /* comment : Decode the encoded ttf content and create a TTFFont object. */\n /************************************************************************/\n TTFFont.open = function(file) {\n return new TTFFont(file);\n };\n /***************************************************************/\n /* function : TTFFont gernerator */\n /* comment : Decode TTF contents are parsed, Data, */\n /* Subset object is created, and registerTTF function is called.*/\n /***************************************************************/\n function TTFFont(rawData) {\n var data;\n this.rawData = rawData;\n data = this.contents = new Data(rawData);\n this.contents.pos = 4;\n if (data.readString(4) === \"ttcf\") {\n throw new Error(\"TTCF not supported.\");\n } else {\n data.pos = 0;\n this.parse();\n this.subset = new Subset(this);\n this.registerTTF();\n }\n }\n /********************************************************/\n /* function : parse */\n /* comment : TTF Parses the file contents by each table.*/\n /********************************************************/\n TTFFont.prototype.parse = function() {\n this.directory = new Directory(this.contents);\n this.head = new HeadTable(this);\n this.name = new NameTable(this);\n this.cmap = new CmapTable(this);\n this.toUnicode = {};\n this.hhea = new HheaTable(this);\n this.maxp = new MaxpTable(this);\n this.hmtx = new HmtxTable(this);\n this.post = new PostTable(this);\n this.os2 = new OS2Table(this);\n this.loca = new LocaTable(this);\n this.glyf = new GlyfTable(this);\n this.ascender =\n (this.os2.exists && this.os2.ascender) || this.hhea.ascender;\n this.decender =\n (this.os2.exists && this.os2.decender) || this.hhea.decender;\n this.lineGap = (this.os2.exists && this.os2.lineGap) || this.hhea.lineGap;\n return (this.bbox = [\n this.head.xMin,\n this.head.yMin,\n this.head.xMax,\n this.head.yMax\n ]);\n };\n /***************************************************************/\n /* function : registerTTF */\n /* comment : Get the value to assign pdf font descriptors. */\n /***************************************************************/\n TTFFont.prototype.registerTTF = function() {\n var e, hi, low, raw, _ref;\n this.scaleFactor = 1000.0 / this.head.unitsPerEm;\n this.bbox = function() {\n var _i, _len, _ref, _results;\n _ref = this.bbox;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n e = _ref[_i];\n _results.push(Math.round(e * this.scaleFactor));\n }\n return _results;\n }.call(this);\n this.stemV = 0;\n if (this.post.exists) {\n raw = this.post.italic_angle;\n hi = raw >> 16;\n low = raw & 0xff;\n if ((hi & 0x8000) !== 0) {\n hi = -((hi ^ 0xffff) + 1);\n }\n this.italicAngle = +(\"\" + hi + \".\" + low);\n } else {\n this.italicAngle = 0;\n }\n this.ascender = Math.round(this.ascender * this.scaleFactor);\n this.decender = Math.round(this.decender * this.scaleFactor);\n this.lineGap = Math.round(this.lineGap * this.scaleFactor);\n this.capHeight = (this.os2.exists && this.os2.capHeight) || this.ascender;\n this.xHeight = (this.os2.exists && this.os2.xHeight) || 0;\n this.familyClass = ((this.os2.exists && this.os2.familyClass) || 0) >> 8;\n this.isSerif =\n (_ref = this.familyClass) === 1 ||\n _ref === 2 ||\n _ref === 3 ||\n _ref === 4 ||\n _ref === 5 ||\n _ref === 7;\n this.isScript = this.familyClass === 10;\n this.flags = 0;\n if (this.post.isFixedPitch) {\n this.flags |= 1 << 0;\n }\n if (this.isSerif) {\n this.flags |= 1 << 1;\n }\n if (this.isScript) {\n this.flags |= 1 << 3;\n }\n if (this.italicAngle !== 0) {\n this.flags |= 1 << 6;\n }\n this.flags |= 1 << 5;\n if (!this.cmap.unicode) {\n throw new Error(\"No unicode cmap for font\");\n }\n };\n TTFFont.prototype.characterToGlyph = function(character) {\n var _ref;\n return (\n ((_ref = this.cmap.unicode) != null ? _ref.codeMap[character] : void 0) ||\n 0\n );\n };\n TTFFont.prototype.widthOfGlyph = function(glyph) {\n var scale;\n scale = 1000.0 / this.head.unitsPerEm;\n return this.hmtx.forGlyph(glyph).advance * scale;\n };\n TTFFont.prototype.widthOfString = function(string, size, charSpace) {\n var charCode, i, scale, width, _ref;\n string = \"\" + string;\n width = 0;\n for (\n i = 0, _ref = string.length;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n charCode = string.charCodeAt(i);\n width +=\n this.widthOfGlyph(this.characterToGlyph(charCode)) +\n charSpace * (1000 / size) || 0;\n }\n scale = size / 1000;\n return width * scale;\n };\n TTFFont.prototype.lineHeight = function(size, includeGap) {\n var gap;\n if (includeGap == null) {\n includeGap = false;\n }\n gap = includeGap ? this.lineGap : 0;\n return ((this.ascender + gap - this.decender) / 1000) * size;\n };\n return TTFFont;\n})();\n\n/************************************************************************************************/\n/* function : Data */\n/* comment : The ttf data decoded and stored in an array is read and written to the Data object.*/\n/************************************************************************************************/\nvar Data = (function() {\n function Data(data) {\n this.data = data != null ? data : [];\n this.pos = 0;\n this.length = this.data.length;\n }\n Data.prototype.readByte = function() {\n return this.data[this.pos++];\n };\n Data.prototype.writeByte = function(byte) {\n return (this.data[this.pos++] = byte);\n };\n Data.prototype.readUInt32 = function() {\n var b1, b2, b3, b4;\n b1 = this.readByte() * 0x1000000;\n b2 = this.readByte() << 16;\n b3 = this.readByte() << 8;\n b4 = this.readByte();\n return b1 + b2 + b3 + b4;\n };\n Data.prototype.writeUInt32 = function(val) {\n this.writeByte((val >>> 24) & 0xff);\n this.writeByte((val >> 16) & 0xff);\n this.writeByte((val >> 8) & 0xff);\n return this.writeByte(val & 0xff);\n };\n Data.prototype.readInt32 = function() {\n var int;\n int = this.readUInt32();\n if (int >= 0x80000000) {\n return int - 0x100000000;\n } else {\n return int;\n }\n };\n Data.prototype.writeInt32 = function(val) {\n if (val < 0) {\n val += 0x100000000;\n }\n return this.writeUInt32(val);\n };\n Data.prototype.readUInt16 = function() {\n var b1, b2;\n b1 = this.readByte() << 8;\n b2 = this.readByte();\n return b1 | b2;\n };\n Data.prototype.writeUInt16 = function(val) {\n this.writeByte((val >> 8) & 0xff);\n return this.writeByte(val & 0xff);\n };\n Data.prototype.readInt16 = function() {\n var int;\n int = this.readUInt16();\n if (int >= 0x8000) {\n return int - 0x10000;\n } else {\n return int;\n }\n };\n Data.prototype.writeInt16 = function(val) {\n if (val < 0) {\n val += 0x10000;\n }\n return this.writeUInt16(val);\n };\n Data.prototype.readString = function(length) {\n var i, ret;\n ret = [];\n for (\n i = 0;\n 0 <= length ? i < length : i > length;\n i = 0 <= length ? ++i : --i\n ) {\n ret[i] = String.fromCharCode(this.readByte());\n }\n return ret.join(\"\");\n };\n Data.prototype.writeString = function(val) {\n var i, _ref, _results;\n _results = [];\n for (\n i = 0, _ref = val.length;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n _results.push(this.writeByte(val.charCodeAt(i)));\n }\n return _results;\n };\n /*Data.prototype.stringAt = function (pos, length) {\n this.pos = pos;\n return this.readString(length);\n };*/\n Data.prototype.readShort = function() {\n return this.readInt16();\n };\n Data.prototype.writeShort = function(val) {\n return this.writeInt16(val);\n };\n Data.prototype.readLongLong = function() {\n var b1, b2, b3, b4, b5, b6, b7, b8;\n b1 = this.readByte();\n b2 = this.readByte();\n b3 = this.readByte();\n b4 = this.readByte();\n b5 = this.readByte();\n b6 = this.readByte();\n b7 = this.readByte();\n b8 = this.readByte();\n if (b1 & 0x80) {\n return (\n ((b1 ^ 0xff) * 0x100000000000000 +\n (b2 ^ 0xff) * 0x1000000000000 +\n (b3 ^ 0xff) * 0x10000000000 +\n (b4 ^ 0xff) * 0x100000000 +\n (b5 ^ 0xff) * 0x1000000 +\n (b6 ^ 0xff) * 0x10000 +\n (b7 ^ 0xff) * 0x100 +\n (b8 ^ 0xff) +\n 1) *\n -1\n );\n }\n return (\n b1 * 0x100000000000000 +\n b2 * 0x1000000000000 +\n b3 * 0x10000000000 +\n b4 * 0x100000000 +\n b5 * 0x1000000 +\n b6 * 0x10000 +\n b7 * 0x100 +\n b8\n );\n };\n Data.prototype.writeLongLong = function(val) {\n var high, low;\n high = Math.floor(val / 0x100000000);\n low = val & 0xffffffff;\n this.writeByte((high >> 24) & 0xff);\n this.writeByte((high >> 16) & 0xff);\n this.writeByte((high >> 8) & 0xff);\n this.writeByte(high & 0xff);\n this.writeByte((low >> 24) & 0xff);\n this.writeByte((low >> 16) & 0xff);\n this.writeByte((low >> 8) & 0xff);\n return this.writeByte(low & 0xff);\n };\n Data.prototype.readInt = function() {\n return this.readInt32();\n };\n Data.prototype.writeInt = function(val) {\n return this.writeInt32(val);\n };\n /*Data.prototype.slice = function (start, end) {\n return this.data.slice(start, end);\n };*/\n Data.prototype.read = function(bytes) {\n var buf, i;\n buf = [];\n for (\n i = 0;\n 0 <= bytes ? i < bytes : i > bytes;\n i = 0 <= bytes ? ++i : --i\n ) {\n buf.push(this.readByte());\n }\n return buf;\n };\n Data.prototype.write = function(bytes) {\n var byte, i, _len, _results;\n _results = [];\n for (i = 0, _len = bytes.length; i < _len; i++) {\n byte = bytes[i];\n _results.push(this.writeByte(byte));\n }\n return _results;\n };\n return Data;\n})();\n\nvar Directory = (function() {\n var checksum;\n\n /*****************************************************************************************************/\n /* function : Directory generator */\n /* comment : Initialize the offset, tag, length, and checksum for each table for the font to be used.*/\n /*****************************************************************************************************/\n function Directory(data) {\n var entry, i, _ref;\n this.scalarType = data.readInt();\n this.tableCount = data.readShort();\n this.searchRange = data.readShort();\n this.entrySelector = data.readShort();\n this.rangeShift = data.readShort();\n this.tables = {};\n for (\n i = 0, _ref = this.tableCount;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n entry = {\n tag: data.readString(4),\n checksum: data.readInt(),\n offset: data.readInt(),\n length: data.readInt()\n };\n this.tables[entry.tag] = entry;\n }\n }\n /********************************************************************************************************/\n /* function : encode */\n /* comment : It encodes and stores the font table object and information used for the directory object. */\n /********************************************************************************************************/\n Directory.prototype.encode = function(tables) {\n var adjustment,\n directory,\n directoryLength,\n entrySelector,\n headOffset,\n log2,\n offset,\n rangeShift,\n searchRange,\n sum,\n table,\n tableCount,\n tableData,\n tag;\n tableCount = Object.keys(tables).length;\n log2 = Math.log(2);\n searchRange = Math.floor(Math.log(tableCount) / log2) * 16;\n entrySelector = Math.floor(searchRange / log2);\n rangeShift = tableCount * 16 - searchRange;\n directory = new Data();\n directory.writeInt(this.scalarType);\n directory.writeShort(tableCount);\n directory.writeShort(searchRange);\n directory.writeShort(entrySelector);\n directory.writeShort(rangeShift);\n directoryLength = tableCount * 16;\n offset = directory.pos + directoryLength;\n headOffset = null;\n tableData = [];\n for (tag in tables) {\n table = tables[tag];\n directory.writeString(tag);\n directory.writeInt(checksum(table));\n directory.writeInt(offset);\n directory.writeInt(table.length);\n tableData = tableData.concat(table);\n if (tag === \"head\") {\n headOffset = offset;\n }\n offset += table.length;\n while (offset % 4) {\n tableData.push(0);\n offset++;\n }\n }\n directory.write(tableData);\n sum = checksum(directory.data);\n adjustment = 0xb1b0afba - sum;\n directory.pos = headOffset + 8;\n directory.writeUInt32(adjustment);\n return directory.data;\n };\n /***************************************************************/\n /* function : checksum */\n /* comment : Duplicate the table for the tag. */\n /***************************************************************/\n checksum = function(data) {\n var i, sum, tmp, _ref;\n data = __slice.call(data);\n while (data.length % 4) {\n data.push(0);\n }\n tmp = new Data(data);\n sum = 0;\n for (i = 0, _ref = data.length; i < _ref; i = i += 4) {\n sum += tmp.readUInt32();\n }\n return sum & 0xffffffff;\n };\n return Directory;\n})();\n\nvar Table,\n __hasProp = {}.hasOwnProperty,\n __extends = function(child, parent) {\n for (var key in parent) {\n if (__hasProp.call(parent, key)) child[key] = parent[key];\n }\n\n function ctor() {\n this.constructor = child;\n }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n child.__super__ = parent.prototype;\n return child;\n };\n\n/***************************************************************/\n/* function : Table */\n/* comment : Save info for each table, and parse the table. */\n/***************************************************************/\nTable = (function() {\n function Table(file) {\n var info;\n this.file = file;\n info = this.file.directory.tables[this.tag];\n this.exists = !!info;\n if (info) {\n (this.offset = info.offset), (this.length = info.length);\n this.parse(this.file.contents);\n }\n }\n Table.prototype.parse = function() {};\n Table.prototype.encode = function() {};\n Table.prototype.raw = function() {\n if (!this.exists) {\n return null;\n }\n this.file.contents.pos = this.offset;\n return this.file.contents.read(this.length);\n };\n return Table;\n})();\n\nvar HeadTable = (function(_super) {\n __extends(HeadTable, _super);\n\n function HeadTable() {\n return HeadTable.__super__.constructor.apply(this, arguments);\n }\n HeadTable.prototype.tag = \"head\";\n HeadTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.revision = data.readInt();\n this.checkSumAdjustment = data.readInt();\n this.magicNumber = data.readInt();\n this.flags = data.readShort();\n this.unitsPerEm = data.readShort();\n this.created = data.readLongLong();\n this.modified = data.readLongLong();\n this.xMin = data.readShort();\n this.yMin = data.readShort();\n this.xMax = data.readShort();\n this.yMax = data.readShort();\n this.macStyle = data.readShort();\n this.lowestRecPPEM = data.readShort();\n this.fontDirectionHint = data.readShort();\n this.indexToLocFormat = data.readShort();\n return (this.glyphDataFormat = data.readShort());\n };\n HeadTable.prototype.encode = function(indexToLocFormat) {\n var table;\n table = new Data();\n table.writeInt(this.version);\n table.writeInt(this.revision);\n table.writeInt(this.checkSumAdjustment);\n table.writeInt(this.magicNumber);\n table.writeShort(this.flags);\n table.writeShort(this.unitsPerEm);\n table.writeLongLong(this.created);\n table.writeLongLong(this.modified);\n table.writeShort(this.xMin);\n table.writeShort(this.yMin);\n table.writeShort(this.xMax);\n table.writeShort(this.yMax);\n table.writeShort(this.macStyle);\n table.writeShort(this.lowestRecPPEM);\n table.writeShort(this.fontDirectionHint);\n table.writeShort(indexToLocFormat);\n table.writeShort(this.glyphDataFormat);\n return table.data;\n };\n return HeadTable;\n})(Table);\n\n/************************************************************************************/\n/* function : CmapEntry */\n/* comment : Cmap Initializes and encodes object information (required by pdf spec).*/\n/************************************************************************************/\nvar CmapEntry = (function() {\n function CmapEntry(data, offset) {\n var code,\n count,\n endCode,\n glyphId,\n glyphIds,\n i,\n idDelta,\n idRangeOffset,\n index,\n saveOffset,\n segCount,\n segCountX2,\n start,\n startCode,\n tail,\n _j,\n _k,\n _len;\n this.platformID = data.readUInt16();\n this.encodingID = data.readShort();\n this.offset = offset + data.readInt();\n saveOffset = data.pos;\n data.pos = this.offset;\n this.format = data.readUInt16();\n this.length = data.readUInt16();\n this.language = data.readUInt16();\n this.isUnicode =\n (this.platformID === 3 && this.encodingID === 1 && this.format === 4) ||\n (this.platformID === 0 && this.format === 4);\n this.codeMap = {};\n switch (this.format) {\n case 0:\n for (i = 0; i < 256; ++i) {\n this.codeMap[i] = data.readByte();\n }\n break;\n case 4:\n segCountX2 = data.readUInt16();\n segCount = segCountX2 / 2;\n data.pos += 6;\n endCode = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n data.pos += 2;\n startCode = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n idDelta = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n idRangeOffset = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n count = (this.length - data.pos + this.offset) / 2;\n glyphIds = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= count ? _j < count : _j > count;\n i = 0 <= count ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n for (i = _j = 0, _len = endCode.length; _j < _len; i = ++_j) {\n tail = endCode[i];\n start = startCode[i];\n for (\n code = _k = start;\n start <= tail ? _k <= tail : _k >= tail;\n code = start <= tail ? ++_k : --_k\n ) {\n if (idRangeOffset[i] === 0) {\n glyphId = code + idDelta[i];\n } else {\n index = idRangeOffset[i] / 2 + (code - start) - (segCount - i);\n glyphId = glyphIds[index] || 0;\n if (glyphId !== 0) {\n glyphId += idDelta[i];\n }\n }\n this.codeMap[code] = glyphId & 0xffff;\n }\n }\n }\n data.pos = saveOffset;\n }\n CmapEntry.encode = function(charmap, encoding) {\n var charMap,\n code,\n codeMap,\n codes,\n delta,\n deltas,\n diff,\n endCode,\n endCodes,\n entrySelector,\n glyphIDs,\n i,\n id,\n indexes,\n last,\n map,\n nextID,\n offset,\n old,\n rangeOffsets,\n rangeShift,\n searchRange,\n segCount,\n segCountX2,\n startCode,\n startCodes,\n startGlyph,\n subtable,\n _i,\n _j,\n _k,\n _l,\n _len,\n _len1,\n _len2,\n _len3,\n _len4,\n _len5,\n _len6,\n _len7,\n _m,\n _n,\n _name,\n _o,\n _p,\n _q;\n subtable = new Data();\n codes = Object.keys(charmap).sort(function(a, b) {\n return a - b;\n });\n switch (encoding) {\n case \"macroman\":\n id = 0;\n indexes = (function() {\n var _results = [];\n for (i = 0; i < 256; ++i) {\n _results.push(0);\n }\n return _results;\n })();\n map = {\n 0: 0\n };\n codeMap = {};\n for (_i = 0, _len = codes.length; _i < _len; _i++) {\n code = codes[_i];\n if (map[(_name = charmap[code])] == null) {\n map[_name] = ++id;\n }\n codeMap[code] = {\n old: charmap[code],\n new: map[charmap[code]]\n };\n indexes[code] = map[charmap[code]];\n }\n subtable.writeUInt16(1);\n subtable.writeUInt16(0);\n subtable.writeUInt32(12);\n subtable.writeUInt16(0);\n subtable.writeUInt16(262);\n subtable.writeUInt16(0);\n subtable.write(indexes);\n return {\n charMap: codeMap,\n subtable: subtable.data,\n maxGlyphID: id + 1\n };\n case \"unicode\":\n startCodes = [];\n endCodes = [];\n nextID = 0;\n map = {};\n charMap = {};\n last = diff = null;\n for (_j = 0, _len1 = codes.length; _j < _len1; _j++) {\n code = codes[_j];\n old = charmap[code];\n if (map[old] == null) {\n map[old] = ++nextID;\n }\n charMap[code] = {\n old: old,\n new: map[old]\n };\n delta = map[old] - code;\n if (last == null || delta !== diff) {\n if (last) {\n endCodes.push(last);\n }\n startCodes.push(code);\n diff = delta;\n }\n last = code;\n }\n if (last) {\n endCodes.push(last);\n }\n endCodes.push(0xffff);\n startCodes.push(0xffff);\n segCount = startCodes.length;\n segCountX2 = segCount * 2;\n searchRange = 2 * Math.pow(Math.log(segCount) / Math.LN2, 2);\n entrySelector = Math.log(searchRange / 2) / Math.LN2;\n rangeShift = 2 * segCount - searchRange;\n deltas = [];\n rangeOffsets = [];\n glyphIDs = [];\n for (i = _k = 0, _len2 = startCodes.length; _k < _len2; i = ++_k) {\n startCode = startCodes[i];\n endCode = endCodes[i];\n if (startCode === 0xffff) {\n deltas.push(0);\n rangeOffsets.push(0);\n break;\n }\n startGlyph = charMap[startCode][\"new\"];\n if (startCode - startGlyph >= 0x8000) {\n deltas.push(0);\n rangeOffsets.push(2 * (glyphIDs.length + segCount - i));\n for (\n code = _l = startCode;\n startCode <= endCode ? _l <= endCode : _l >= endCode;\n code = startCode <= endCode ? ++_l : --_l\n ) {\n glyphIDs.push(charMap[code][\"new\"]);\n }\n } else {\n deltas.push(startGlyph - startCode);\n rangeOffsets.push(0);\n }\n }\n subtable.writeUInt16(3);\n subtable.writeUInt16(1);\n subtable.writeUInt32(12);\n subtable.writeUInt16(4);\n subtable.writeUInt16(16 + segCount * 8 + glyphIDs.length * 2);\n subtable.writeUInt16(0);\n subtable.writeUInt16(segCountX2);\n subtable.writeUInt16(searchRange);\n subtable.writeUInt16(entrySelector);\n subtable.writeUInt16(rangeShift);\n for (_m = 0, _len3 = endCodes.length; _m < _len3; _m++) {\n code = endCodes[_m];\n subtable.writeUInt16(code);\n }\n subtable.writeUInt16(0);\n for (_n = 0, _len4 = startCodes.length; _n < _len4; _n++) {\n code = startCodes[_n];\n subtable.writeUInt16(code);\n }\n for (_o = 0, _len5 = deltas.length; _o < _len5; _o++) {\n delta = deltas[_o];\n subtable.writeUInt16(delta);\n }\n for (_p = 0, _len6 = rangeOffsets.length; _p < _len6; _p++) {\n offset = rangeOffsets[_p];\n subtable.writeUInt16(offset);\n }\n for (_q = 0, _len7 = glyphIDs.length; _q < _len7; _q++) {\n id = glyphIDs[_q];\n subtable.writeUInt16(id);\n }\n return {\n charMap: charMap,\n subtable: subtable.data,\n maxGlyphID: nextID + 1\n };\n }\n };\n return CmapEntry;\n})();\n\nvar CmapTable = (function(_super) {\n __extends(CmapTable, _super);\n\n function CmapTable() {\n return CmapTable.__super__.constructor.apply(this, arguments);\n }\n CmapTable.prototype.tag = \"cmap\";\n CmapTable.prototype.parse = function(data) {\n var entry, i, tableCount;\n data.pos = this.offset;\n this.version = data.readUInt16();\n tableCount = data.readUInt16();\n this.tables = [];\n this.unicode = null;\n for (\n i = 0;\n 0 <= tableCount ? i < tableCount : i > tableCount;\n i = 0 <= tableCount ? ++i : --i\n ) {\n entry = new CmapEntry(data, this.offset);\n this.tables.push(entry);\n if (entry.isUnicode) {\n if (this.unicode == null) {\n this.unicode = entry;\n }\n }\n }\n return true;\n };\n /*************************************************************************/\n /* function : encode */\n /* comment : Encode the cmap table corresponding to the input character. */\n /*************************************************************************/\n CmapTable.encode = function(charmap, encoding) {\n var result, table;\n if (encoding == null) {\n encoding = \"macroman\";\n }\n result = CmapEntry.encode(charmap, encoding);\n table = new Data();\n table.writeUInt16(0);\n table.writeUInt16(1);\n result.table = table.data.concat(result.subtable);\n return result;\n };\n return CmapTable;\n})(Table);\n\nvar HheaTable = (function(_super) {\n __extends(HheaTable, _super);\n\n function HheaTable() {\n return HheaTable.__super__.constructor.apply(this, arguments);\n }\n HheaTable.prototype.tag = \"hhea\";\n HheaTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.ascender = data.readShort();\n this.decender = data.readShort();\n this.lineGap = data.readShort();\n this.advanceWidthMax = data.readShort();\n this.minLeftSideBearing = data.readShort();\n this.minRightSideBearing = data.readShort();\n this.xMaxExtent = data.readShort();\n this.caretSlopeRise = data.readShort();\n this.caretSlopeRun = data.readShort();\n this.caretOffset = data.readShort();\n data.pos += 4 * 2;\n this.metricDataFormat = data.readShort();\n return (this.numberOfMetrics = data.readUInt16());\n };\n /*HheaTable.prototype.encode = function (ids) {\n var i, table, _i, _ref;\n table = new Data;\n table.writeInt(this.version);\n table.writeShort(this.ascender);\n table.writeShort(this.decender);\n table.writeShort(this.lineGap);\n table.writeShort(this.advanceWidthMax);\n table.writeShort(this.minLeftSideBearing);\n table.writeShort(this.minRightSideBearing);\n table.writeShort(this.xMaxExtent);\n table.writeShort(this.caretSlopeRise);\n table.writeShort(this.caretSlopeRun);\n table.writeShort(this.caretOffset);\n for (i = _i = 0, _ref = 4 * 2; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n table.writeByte(0);\n }\n table.writeShort(this.metricDataFormat);\n table.writeUInt16(ids.length);\n return table.data;\n };*/\n return HheaTable;\n})(Table);\n\nvar OS2Table = (function(_super) {\n __extends(OS2Table, _super);\n\n function OS2Table() {\n return OS2Table.__super__.constructor.apply(this, arguments);\n }\n OS2Table.prototype.tag = \"OS/2\";\n OS2Table.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readUInt16();\n this.averageCharWidth = data.readShort();\n this.weightClass = data.readUInt16();\n this.widthClass = data.readUInt16();\n this.type = data.readShort();\n this.ySubscriptXSize = data.readShort();\n this.ySubscriptYSize = data.readShort();\n this.ySubscriptXOffset = data.readShort();\n this.ySubscriptYOffset = data.readShort();\n this.ySuperscriptXSize = data.readShort();\n this.ySuperscriptYSize = data.readShort();\n this.ySuperscriptXOffset = data.readShort();\n this.ySuperscriptYOffset = data.readShort();\n this.yStrikeoutSize = data.readShort();\n this.yStrikeoutPosition = data.readShort();\n this.familyClass = data.readShort();\n this.panose = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 10; ++i) {\n _results.push(data.readByte());\n }\n return _results;\n })();\n this.charRange = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 4; ++i) {\n _results.push(data.readInt());\n }\n return _results;\n })();\n this.vendorID = data.readString(4);\n this.selection = data.readShort();\n this.firstCharIndex = data.readShort();\n this.lastCharIndex = data.readShort();\n if (this.version > 0) {\n this.ascent = data.readShort();\n this.descent = data.readShort();\n this.lineGap = data.readShort();\n this.winAscent = data.readShort();\n this.winDescent = data.readShort();\n this.codePageRange = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 2; i = ++i) {\n _results.push(data.readInt());\n }\n return _results;\n })();\n if (this.version > 1) {\n this.xHeight = data.readShort();\n this.capHeight = data.readShort();\n this.defaultChar = data.readShort();\n this.breakChar = data.readShort();\n return (this.maxContext = data.readShort());\n }\n }\n };\n /*OS2Table.prototype.encode = function () {\n return this.raw();\n };*/\n return OS2Table;\n})(Table);\n\nvar PostTable = (function(_super) {\n var POSTSCRIPT_GLYPHS;\n __extends(PostTable, _super);\n\n function PostTable() {\n return PostTable.__super__.constructor.apply(this, arguments);\n }\n PostTable.prototype.tag = \"post\";\n PostTable.prototype.parse = function(data) {\n var length, numberOfGlyphs, _results;\n data.pos = this.offset;\n this.format = data.readInt();\n this.italicAngle = data.readInt();\n this.underlinePosition = data.readShort();\n this.underlineThickness = data.readShort();\n this.isFixedPitch = data.readInt();\n this.minMemType42 = data.readInt();\n this.maxMemType42 = data.readInt();\n this.minMemType1 = data.readInt();\n this.maxMemType1 = data.readInt();\n switch (this.format) {\n case 0x00010000:\n break;\n case 0x00020000:\n numberOfGlyphs = data.readUInt16();\n this.glyphNameIndex = [];\n var i;\n for (\n i = 0;\n 0 <= numberOfGlyphs ? i < numberOfGlyphs : i > numberOfGlyphs;\n i = 0 <= numberOfGlyphs ? ++i : --i\n ) {\n this.glyphNameIndex.push(data.readUInt16());\n }\n this.names = [];\n _results = [];\n while (data.pos < this.offset + this.length) {\n length = data.readByte();\n _results.push(this.names.push(data.readString(length)));\n }\n return _results;\n case 0x00025000:\n numberOfGlyphs = data.readUInt16();\n return (this.offsets = data.read(numberOfGlyphs));\n case 0x00030000:\n break;\n case 0x00040000:\n return (this.map = function() {\n var _j, _ref, _results1;\n _results1 = [];\n for (\n i = _j = 0, _ref = this.file.maxp.numGlyphs;\n 0 <= _ref ? _j < _ref : _j > _ref;\n i = 0 <= _ref ? ++_j : --_j\n ) {\n _results1.push(data.readUInt32());\n }\n return _results1;\n }.call(this));\n }\n };\n /*PostTable.prototype.glyphFor = function (code) {\n var index;\n switch (this.format) {\n case 0x00010000:\n return POSTSCRIPT_GLYPHS[code] || '.notdef';\n case 0x00020000:\n index = this.glyphNameIndex[code];\n if (index <= 257) {\n return POSTSCRIPT_GLYPHS[index];\n }\n else {\n return this.names[index - 258] || '.notdef';\n }\n break;\n case 0x00025000:\n return POSTSCRIPT_GLYPHS[code + this.offsets[code]] || '.notdef';\n case 0x00030000:\n return '.notdef';\n case 0x00040000:\n return this.map[code] || 0xFFFF;\n }\n };*/\n /*PostTable.prototype.encode = function (mapping) {\n var id, index, indexes, position, post, raw, string, strings, table, _i, _j, _k, _len, _len1, _len2;\n if (!this.exists) {\n return null;\n }\n raw = this.raw();\n if (this.format === 0x00030000) {\n return raw;\n }\n table = new Data(raw.slice(0, 32));\n table.writeUInt32(0x00020000);\n table.pos = 32;\n indexes = [];\n strings = [];\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n post = this.glyphFor(id);\n position = POSTSCRIPT_GLYPHS.indexOf(post);\n if (position !== -1) {\n indexes.push(position);\n }\n else {\n indexes.push(257 + strings.length);\n strings.push(post);\n }\n }\n table.writeUInt16(Object.keys(mapping).length);\n for (_j = 0, _len1 = indexes.length; _j < _len1; _j++) {\n index = indexes[_j];\n table.writeUInt16(index);\n }\n for (_k = 0, _len2 = strings.length; _k < _len2; _k++) {\n string = strings[_k];\n table.writeByte(string.length);\n table.writeString(string);\n }\n return table.data;\n };*/\n POSTSCRIPT_GLYPHS = \".notdef .null nonmarkingreturn space exclam quotedbl numbersign dollar percent\\nampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash\\nzero one two three four five six seven eight nine colon semicolon less equal greater\\nquestion at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\\nbracketleft backslash bracketright asciicircum underscore grave\\na b c d e f g h i j k l m n o p q r s t u v w x y z\\nbraceleft bar braceright asciitilde Adieresis Aring Ccedilla Eacute Ntilde Odieresis\\nUdieresis aacute agrave acircumflex adieresis atilde aring ccedilla eacute egrave\\necircumflex edieresis iacute igrave icircumflex idieresis ntilde oacute ograve\\nocircumflex odieresis otilde uacute ugrave ucircumflex udieresis dagger degree cent\\nsterling section bullet paragraph germandbls registered copyright trademark acute\\ndieresis notequal AE Oslash infinity plusminus lessequal greaterequal yen mu\\npartialdiff summation product pi integral ordfeminine ordmasculine Omega ae oslash\\nquestiondown exclamdown logicalnot radical florin approxequal Delta guillemotleft\\nguillemotright ellipsis nonbreakingspace Agrave Atilde Otilde OE oe endash emdash\\nquotedblleft quotedblright quoteleft quoteright divide lozenge ydieresis Ydieresis\\nfraction currency guilsinglleft guilsinglright fi fl daggerdbl periodcentered\\nquotesinglbase quotedblbase perthousand Acircumflex Ecircumflex Aacute Edieresis\\nEgrave Iacute Icircumflex Idieresis Igrave Oacute Ocircumflex apple Ograve Uacute\\nUcircumflex Ugrave dotlessi circumflex tilde macron breve dotaccent ring cedilla\\nhungarumlaut ogonek caron Lslash lslash Scaron scaron Zcaron zcaron brokenbar Eth\\neth Yacute yacute Thorn thorn minus multiply onesuperior twosuperior threesuperior\\nonehalf onequarter threequarters franc Gbreve gbreve Idotaccent Scedilla scedilla\\nCacute cacute Ccaron ccaron dcroat\".split(\n /\\s+/g\n );\n return PostTable;\n})(Table);\n\n/*********************************************************************************************************/\n/* function : NameEntry */\n/* comment : Store copyright information, platformID, encodingID, and languageID in the NameEntry object.*/\n/*********************************************************************************************************/\nvar NameEntry = (function() {\n function NameEntry(raw, entry) {\n this.raw = raw;\n this.length = raw.length;\n this.platformID = entry.platformID;\n this.encodingID = entry.encodingID;\n this.languageID = entry.languageID;\n }\n return NameEntry;\n})();\n\nvar NameTable = (function(_super) {\n var subsetTag;\n __extends(NameTable, _super);\n\n function NameTable() {\n return NameTable.__super__.constructor.apply(this, arguments);\n }\n NameTable.prototype.tag = \"name\";\n NameTable.prototype.parse = function(data) {\n var count,\n entries,\n entry,\n i,\n name,\n stringOffset,\n strings,\n text,\n _j,\n _len,\n _name;\n data.pos = this.offset;\n data.readShort(); //format\n count = data.readShort();\n stringOffset = data.readShort();\n entries = [];\n for (\n i = 0;\n 0 <= count ? i < count : i > count;\n i = 0 <= count ? ++i : --i\n ) {\n entries.push({\n platformID: data.readShort(),\n encodingID: data.readShort(),\n languageID: data.readShort(),\n nameID: data.readShort(),\n length: data.readShort(),\n offset: this.offset + stringOffset + data.readShort()\n });\n }\n strings = {};\n for (i = _j = 0, _len = entries.length; _j < _len; i = ++_j) {\n entry = entries[i];\n data.pos = entry.offset;\n text = data.readString(entry.length);\n name = new NameEntry(text, entry);\n if (strings[(_name = entry.nameID)] == null) {\n strings[_name] = [];\n }\n strings[entry.nameID].push(name);\n }\n this.strings = strings;\n this.copyright = strings[0];\n this.fontFamily = strings[1];\n this.fontSubfamily = strings[2];\n this.uniqueSubfamily = strings[3];\n this.fontName = strings[4];\n this.version = strings[5];\n try {\n this.postscriptName = strings[6][0].raw.replace(\n /[\\x00-\\x19\\x80-\\xff]/g,\n \"\"\n );\n } catch (e) {\n this.postscriptName = strings[4][0].raw.replace(\n /[\\x00-\\x19\\x80-\\xff]/g,\n \"\"\n );\n }\n this.trademark = strings[7];\n this.manufacturer = strings[8];\n this.designer = strings[9];\n this.description = strings[10];\n this.vendorUrl = strings[11];\n this.designerUrl = strings[12];\n this.license = strings[13];\n this.licenseUrl = strings[14];\n this.preferredFamily = strings[15];\n this.preferredSubfamily = strings[17];\n this.compatibleFull = strings[18];\n return (this.sampleText = strings[19]);\n };\n subsetTag = \"AAAAAA\";\n /*NameTable.prototype.encode = function () {\n var id, list, nameID, nameTable, postscriptName, strCount, strTable, string, strings, table, val, _i, _len, _ref;\n strings = {};\n _ref = this.strings;\n for (id in _ref) {\n val = _ref[id];\n strings[id] = val;\n }\n postscriptName = new NameEntry(\"\" + subsetTag + \"+\" + this.postscriptName, {\n platformID: 1\n , encodingID: 0\n , languageID: 0\n });\n strings[6] = [postscriptName];\n subsetTag = successorOf(subsetTag);\n strCount = 0;\n for (id in strings) {\n list = strings[id];\n if (list != null) {\n strCount += list.length;\n }\n }\n table = new Data;\n strTable = new Data;\n table.writeShort(0);\n table.writeShort(strCount);\n table.writeShort(6 + 12 * strCount);\n for (nameID in strings) {\n list = strings[nameID];\n if (list != null) {\n for (_i = 0, _len = list.length; _i < _len; _i++) {\n string = list[_i];\n table.writeShort(string.platformID);\n table.writeShort(string.encodingID);\n table.writeShort(string.languageID);\n table.writeShort(nameID);\n table.writeShort(string.length);\n table.writeShort(strTable.pos);\n strTable.writeString(string.raw);\n }\n }\n }\n return nameTable = {\n postscriptName: postscriptName.raw\n , table: table.data.concat(strTable.data)\n };\n };*/\n return NameTable;\n})(Table);\n\nvar MaxpTable = (function(_super) {\n __extends(MaxpTable, _super);\n\n function MaxpTable() {\n return MaxpTable.__super__.constructor.apply(this, arguments);\n }\n MaxpTable.prototype.tag = \"maxp\";\n MaxpTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.numGlyphs = data.readUInt16();\n this.maxPoints = data.readUInt16();\n this.maxContours = data.readUInt16();\n this.maxCompositePoints = data.readUInt16();\n this.maxComponentContours = data.readUInt16();\n this.maxZones = data.readUInt16();\n this.maxTwilightPoints = data.readUInt16();\n this.maxStorage = data.readUInt16();\n this.maxFunctionDefs = data.readUInt16();\n this.maxInstructionDefs = data.readUInt16();\n this.maxStackElements = data.readUInt16();\n this.maxSizeOfInstructions = data.readUInt16();\n this.maxComponentElements = data.readUInt16();\n return (this.maxComponentDepth = data.readUInt16());\n };\n /*MaxpTable.prototype.encode = function (ids) {\n var table;\n table = new Data;\n table.writeInt(this.version);\n table.writeUInt16(ids.length);\n table.writeUInt16(this.maxPoints);\n table.writeUInt16(this.maxContours);\n table.writeUInt16(this.maxCompositePoints);\n table.writeUInt16(this.maxComponentContours);\n table.writeUInt16(this.maxZones);\n table.writeUInt16(this.maxTwilightPoints);\n table.writeUInt16(this.maxStorage);\n table.writeUInt16(this.maxFunctionDefs);\n table.writeUInt16(this.maxInstructionDefs);\n table.writeUInt16(this.maxStackElements);\n table.writeUInt16(this.maxSizeOfInstructions);\n table.writeUInt16(this.maxComponentElements);\n table.writeUInt16(this.maxComponentDepth);\n return table.data;\n };*/\n return MaxpTable;\n})(Table);\n\nvar HmtxTable = (function(_super) {\n __extends(HmtxTable, _super);\n\n function HmtxTable() {\n return HmtxTable.__super__.constructor.apply(this, arguments);\n }\n HmtxTable.prototype.tag = \"hmtx\";\n HmtxTable.prototype.parse = function(data) {\n var i, last, lsbCount, m, _j, _ref, _results;\n data.pos = this.offset;\n this.metrics = [];\n for (\n i = 0, _ref = this.file.hhea.numberOfMetrics;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n this.metrics.push({\n advance: data.readUInt16(),\n lsb: data.readInt16()\n });\n }\n lsbCount = this.file.maxp.numGlyphs - this.file.hhea.numberOfMetrics;\n this.leftSideBearings = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= lsbCount ? _j < lsbCount : _j > lsbCount;\n i = 0 <= lsbCount ? ++_j : --_j\n ) {\n _results.push(data.readInt16());\n }\n return _results;\n })();\n this.widths = function() {\n var _j, _len, _ref1, _results;\n _ref1 = this.metrics;\n _results = [];\n for (_j = 0, _len = _ref1.length; _j < _len; _j++) {\n m = _ref1[_j];\n _results.push(m.advance);\n }\n return _results;\n }.call(this);\n last = this.widths[this.widths.length - 1];\n _results = [];\n for (\n i = _j = 0;\n 0 <= lsbCount ? _j < lsbCount : _j > lsbCount;\n i = 0 <= lsbCount ? ++_j : --_j\n ) {\n _results.push(this.widths.push(last));\n }\n return _results;\n };\n /***************************************************************/\n /* function : forGlyph */\n /* comment : Returns the advance width and lsb for this glyph. */\n /***************************************************************/\n HmtxTable.prototype.forGlyph = function(id) {\n if (id in this.metrics) {\n return this.metrics[id];\n }\n return {\n advance: this.metrics[this.metrics.length - 1].advance,\n lsb: this.leftSideBearings[id - this.metrics.length]\n };\n };\n /*HmtxTable.prototype.encode = function (mapping) {\n var id, metric, table, _i, _len;\n table = new Data;\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n metric = this.forGlyph(id);\n table.writeUInt16(metric.advance);\n table.writeUInt16(metric.lsb);\n }\n return table.data;\n };*/\n return HmtxTable;\n})(Table);\n\nvar __slice = [].slice;\n\nvar GlyfTable = (function(_super) {\n __extends(GlyfTable, _super);\n\n function GlyfTable() {\n return GlyfTable.__super__.constructor.apply(this, arguments);\n }\n GlyfTable.prototype.tag = \"glyf\";\n GlyfTable.prototype.parse = function() {\n return (this.cache = {});\n };\n GlyfTable.prototype.glyphFor = function(id) {\n var data,\n index,\n length,\n loca,\n numberOfContours,\n raw,\n xMax,\n xMin,\n yMax,\n yMin;\n if (id in this.cache) {\n return this.cache[id];\n }\n loca = this.file.loca;\n data = this.file.contents;\n index = loca.indexOf(id);\n length = loca.lengthOf(id);\n if (length === 0) {\n return (this.cache[id] = null);\n }\n data.pos = this.offset + index;\n raw = new Data(data.read(length));\n numberOfContours = raw.readShort();\n xMin = raw.readShort();\n yMin = raw.readShort();\n xMax = raw.readShort();\n yMax = raw.readShort();\n if (numberOfContours === -1) {\n this.cache[id] = new CompoundGlyph(raw, xMin, yMin, xMax, yMax);\n } else {\n this.cache[id] = new SimpleGlyph(\n raw,\n numberOfContours,\n xMin,\n yMin,\n xMax,\n yMax\n );\n }\n return this.cache[id];\n };\n GlyfTable.prototype.encode = function(glyphs, mapping, old2new) {\n var glyph, id, offsets, table, _i, _len;\n table = [];\n offsets = [];\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n glyph = glyphs[id];\n offsets.push(table.length);\n if (glyph) {\n table = table.concat(glyph.encode(old2new));\n }\n }\n offsets.push(table.length);\n return {\n table: table,\n offsets: offsets\n };\n };\n return GlyfTable;\n})(Table);\n\nvar SimpleGlyph = (function() {\n /**************************************************************************/\n /* function : SimpleGlyph */\n /* comment : Stores raw, xMin, yMin, xMax, and yMax values for this glyph.*/\n /**************************************************************************/\n function SimpleGlyph(raw, numberOfContours, xMin, yMin, xMax, yMax) {\n this.raw = raw;\n this.numberOfContours = numberOfContours;\n this.xMin = xMin;\n this.yMin = yMin;\n this.xMax = xMax;\n this.yMax = yMax;\n this.compound = false;\n }\n SimpleGlyph.prototype.encode = function() {\n return this.raw.data;\n };\n return SimpleGlyph;\n})();\n\nvar CompoundGlyph = (function() {\n var ARG_1_AND_2_ARE_WORDS,\n MORE_COMPONENTS,\n WE_HAVE_AN_X_AND_Y_SCALE,\n WE_HAVE_A_SCALE,\n WE_HAVE_A_TWO_BY_TWO,\n WE_HAVE_INSTRUCTIONS;\n ARG_1_AND_2_ARE_WORDS = 0x0001;\n WE_HAVE_A_SCALE = 0x0008;\n MORE_COMPONENTS = 0x0020;\n WE_HAVE_AN_X_AND_Y_SCALE = 0x0040;\n WE_HAVE_A_TWO_BY_TWO = 0x0080;\n WE_HAVE_INSTRUCTIONS = 0x0100;\n\n /********************************************************************************************************************/\n /* function : CompoundGlypg generator */\n /* comment : It stores raw, xMin, yMin, xMax, yMax, glyph id, and glyph offset for the corresponding compound glyph.*/\n /********************************************************************************************************************/\n function CompoundGlyph(raw, xMin, yMin, xMax, yMax) {\n var data, flags;\n this.raw = raw;\n this.xMin = xMin;\n this.yMin = yMin;\n this.xMax = xMax;\n this.yMax = yMax;\n this.compound = true;\n this.glyphIDs = [];\n this.glyphOffsets = [];\n data = this.raw;\n while (true) {\n flags = data.readShort();\n this.glyphOffsets.push(data.pos);\n this.glyphIDs.push(data.readUInt16());\n if (!(flags & MORE_COMPONENTS)) {\n break;\n }\n if (flags & ARG_1_AND_2_ARE_WORDS) {\n data.pos += 4;\n } else {\n data.pos += 2;\n }\n if (flags & WE_HAVE_A_TWO_BY_TWO) {\n data.pos += 8;\n } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n data.pos += 4;\n } else if (flags & WE_HAVE_A_SCALE) {\n data.pos += 2;\n }\n }\n }\n /****************************************************************************************************************/\n /* function : CompoundGlypg encode */\n /* comment : After creating a table for the characters you typed, you call directory.encode to encode the table.*/\n /****************************************************************************************************************/\n CompoundGlyph.prototype.encode = function() {\n var i, result, _len, _ref;\n result = new Data(__slice.call(this.raw.data));\n _ref = this.glyphIDs;\n for (i = 0, _len = _ref.length; i < _len; ++i) {\n result.pos = this.glyphOffsets[i];\n }\n return result.data;\n };\n return CompoundGlyph;\n})();\n\nvar LocaTable = (function(_super) {\n __extends(LocaTable, _super);\n\n function LocaTable() {\n return LocaTable.__super__.constructor.apply(this, arguments);\n }\n LocaTable.prototype.tag = \"loca\";\n LocaTable.prototype.parse = function(data) {\n var format, i;\n data.pos = this.offset;\n format = this.file.head.indexToLocFormat;\n if (format === 0) {\n return (this.offsets = function() {\n var _ref, _results;\n _results = [];\n for (i = 0, _ref = this.length; i < _ref; i += 2) {\n _results.push(data.readUInt16() * 2);\n }\n return _results;\n }.call(this));\n } else {\n return (this.offsets = function() {\n var _ref, _results;\n _results = [];\n for (i = 0, _ref = this.length; i < _ref; i += 4) {\n _results.push(data.readUInt32());\n }\n return _results;\n }.call(this));\n }\n };\n LocaTable.prototype.indexOf = function(id) {\n return this.offsets[id];\n };\n LocaTable.prototype.lengthOf = function(id) {\n return this.offsets[id + 1] - this.offsets[id];\n };\n LocaTable.prototype.encode = function(offsets, activeGlyphs) {\n var LocaTable = new Uint32Array(this.offsets.length);\n var glyfPtr = 0;\n var listGlyf = 0;\n for (var k = 0; k < LocaTable.length; ++k) {\n LocaTable[k] = glyfPtr;\n if (listGlyf < activeGlyphs.length && activeGlyphs[listGlyf] == k) {\n ++listGlyf;\n LocaTable[k] = glyfPtr;\n var start = this.offsets[k];\n var len = this.offsets[k + 1] - start;\n if (len > 0) {\n glyfPtr += len;\n }\n }\n }\n var newLocaTable = new Array(LocaTable.length * 4);\n for (var j = 0; j < LocaTable.length; ++j) {\n newLocaTable[4 * j + 3] = LocaTable[j] & 0x000000ff;\n newLocaTable[4 * j + 2] = (LocaTable[j] & 0x0000ff00) >> 8;\n newLocaTable[4 * j + 1] = (LocaTable[j] & 0x00ff0000) >> 16;\n newLocaTable[4 * j] = (LocaTable[j] & 0xff000000) >> 24;\n }\n return newLocaTable;\n };\n return LocaTable;\n})(Table);\n\n/************************************************************************************/\n/* function : invert */\n/* comment : Change the object's (key: value) to create an object with (value: key).*/\n/************************************************************************************/\nvar invert = function(object) {\n var key, ret, val;\n ret = {};\n for (key in object) {\n val = object[key];\n ret[val] = key;\n }\n return ret;\n};\n\n/*var successorOf = function (input) {\n var added, alphabet, carry, i, index, isUpperCase, last, length, next, result;\n alphabet = 'abcdefghijklmnopqrstuvwxyz';\n length = alphabet.length;\n result = input;\n i = input.length;\n while (i >= 0) {\n last = input.charAt(--i);\n if (isNaN(last)) {\n index = alphabet.indexOf(last.toLowerCase());\n if (index === -1) {\n next = last;\n carry = true;\n }\n else {\n next = alphabet.charAt((index + 1) % length);\n isUpperCase = last === last.toUpperCase();\n if (isUpperCase) {\n next = next.toUpperCase();\n }\n carry = index + 1 >= length;\n if (carry && i === 0) {\n added = isUpperCase ? 'A' : 'a';\n result = added + next + result.slice(1);\n break;\n }\n }\n }\n else {\n next = +last + 1;\n carry = next > 9;\n if (carry) {\n next = 0;\n }\n if (carry && i === 0) {\n result = '1' + next + result.slice(1);\n break;\n }\n }\n result = result.slice(0, i) + next + result.slice(i + 1);\n if (!carry) {\n break;\n }\n }\n return result;\n };*/\n\nvar Subset = (function() {\n function Subset(font) {\n this.font = font;\n this.subset = {};\n this.unicodes = {};\n this.next = 33;\n }\n /*Subset.prototype.use = function (character) {\n var i, _i, _ref;\n if (typeof character === 'string') {\n for (i = _i = 0, _ref = character.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n this.use(character.charCodeAt(i));\n }\n return;\n }\n if (!this.unicodes[character]) {\n this.subset[this.next] = character;\n return this.unicodes[character] = this.next++;\n }\n };*/\n /*Subset.prototype.encodeText = function (text) {\n var char, i, string, _i, _ref;\n string = '';\n for (i = _i = 0, _ref = text.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n char = this.unicodes[text.charCodeAt(i)];\n string += String.fromCharCode(char);\n }\n return string;\n };*/\n /***************************************************************/\n /* function : generateCmap */\n /* comment : Returns the unicode cmap for this font. */\n /***************************************************************/\n Subset.prototype.generateCmap = function() {\n var mapping, roman, unicode, unicodeCmap, _ref;\n unicodeCmap = this.font.cmap.tables[0].codeMap;\n mapping = {};\n _ref = this.subset;\n for (roman in _ref) {\n unicode = _ref[roman];\n mapping[roman] = unicodeCmap[unicode];\n }\n return mapping;\n };\n /*Subset.prototype.glyphIDs = function () {\n var ret, roman, unicode, unicodeCmap, val, _ref;\n unicodeCmap = this.font.cmap.tables[0].codeMap;\n ret = [0];\n _ref = this.subset;\n for (roman in _ref) {\n unicode = _ref[roman];\n val = unicodeCmap[unicode];\n if ((val != null) && __indexOf.call(ret, val) < 0) {\n ret.push(val);\n }\n }\n return ret.sort();\n };*/\n /******************************************************************/\n /* function : glyphsFor */\n /* comment : Returns simple glyph objects for the input character.*/\n /******************************************************************/\n Subset.prototype.glyphsFor = function(glyphIDs) {\n var additionalIDs, glyph, glyphs, id, _i, _len, _ref;\n glyphs = {};\n for (_i = 0, _len = glyphIDs.length; _i < _len; _i++) {\n id = glyphIDs[_i];\n glyphs[id] = this.font.glyf.glyphFor(id);\n }\n additionalIDs = [];\n for (id in glyphs) {\n glyph = glyphs[id];\n if (glyph != null ? glyph.compound : void 0) {\n additionalIDs.push.apply(additionalIDs, glyph.glyphIDs);\n }\n }\n if (additionalIDs.length > 0) {\n _ref = this.glyphsFor(additionalIDs);\n for (id in _ref) {\n glyph = _ref[id];\n glyphs[id] = glyph;\n }\n }\n return glyphs;\n };\n /***************************************************************/\n /* function : encode */\n /* comment : Encode various tables for the characters you use. */\n /***************************************************************/\n Subset.prototype.encode = function(glyID, indexToLocFormat) {\n var cmap,\n code,\n glyf,\n glyphs,\n id,\n ids,\n loca,\n new2old,\n newIDs,\n nextGlyphID,\n old2new,\n oldID,\n oldIDs,\n tables,\n _ref;\n cmap = CmapTable.encode(this.generateCmap(), \"unicode\");\n glyphs = this.glyphsFor(glyID);\n old2new = {\n 0: 0\n };\n _ref = cmap.charMap;\n for (code in _ref) {\n ids = _ref[code];\n old2new[ids.old] = ids[\"new\"];\n }\n nextGlyphID = cmap.maxGlyphID;\n for (oldID in glyphs) {\n if (!(oldID in old2new)) {\n old2new[oldID] = nextGlyphID++;\n }\n }\n new2old = invert(old2new);\n newIDs = Object.keys(new2old).sort(function(a, b) {\n return a - b;\n });\n oldIDs = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = newIDs.length; _i < _len; _i++) {\n id = newIDs[_i];\n _results.push(new2old[id]);\n }\n return _results;\n })();\n glyf = this.font.glyf.encode(glyphs, oldIDs, old2new);\n loca = this.font.loca.encode(glyf.offsets, oldIDs);\n tables = {\n cmap: this.font.cmap.raw(),\n glyf: glyf.table,\n loca: loca,\n hmtx: this.font.hmtx.raw(),\n hhea: this.font.hhea.raw(),\n maxp: this.font.maxp.raw(),\n post: this.font.post.raw(),\n name: this.font.name.raw(),\n head: this.font.head.encode(indexToLocFormat)\n };\n if (this.font.os2.exists) {\n tables[\"OS/2\"] = this.font.os2.raw();\n }\n return this.font.directory.encode(tables);\n };\n return Subset;\n})();\n\njsPDF.API.PDFObject = (function() {\n var pad;\n\n function PDFObject() {}\n pad = function(str, length) {\n return (Array(length + 1).join(\"0\") + str).slice(-length);\n };\n /*****************************************************************************/\n /* function : convert */\n /* comment :Converts pdf tag's / FontBBox and array values in / W to strings */\n /*****************************************************************************/\n PDFObject.convert = function(object) {\n var e, items, key, out, val;\n if (Array.isArray(object)) {\n items = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = object.length; _i < _len; _i++) {\n e = object[_i];\n _results.push(PDFObject.convert(e));\n }\n return _results;\n })().join(\" \");\n return \"[\" + items + \"]\";\n } else if (typeof object === \"string\") {\n return \"/\" + object;\n } else if (object != null ? object.isString : void 0) {\n return \"(\" + object + \")\";\n } else if (object instanceof Date) {\n return (\n \"(D:\" +\n pad(object.getUTCFullYear(), 4) +\n pad(object.getUTCMonth(), 2) +\n pad(object.getUTCDate(), 2) +\n pad(object.getUTCHours(), 2) +\n pad(object.getUTCMinutes(), 2) +\n pad(object.getUTCSeconds(), 2) +\n \"Z)\"\n );\n } else if ({}.toString.call(object) === \"[object Object]\") {\n out = [\"<<\"];\n for (key in object) {\n val = object[key];\n out.push(\"/\" + key + \" \" + PDFObject.convert(val));\n }\n out.push(\">>\");\n return out.join(\"\\n\");\n } else {\n return \"\" + object;\n }\n };\n return PDFObject;\n})();\n","import React from 'react';\nimport { FaShareAlt } from 'react-icons/fa';\nimport jsPDF from 'jspdf';\nimport html2canvas from 'html2canvas';\nimport './css/buttons.css'\n\nconst ShareButton = ({ summaryRef }) => {\n const handleShare = async () => {\n if (summaryRef.current) {\n const canvas = await html2canvas(summaryRef.current);\n const imgData = canvas.toDataURL('image/png');\n const pdf = new jsPDF();\n const imgProps = pdf.getImageProperties(imgData);\n const pdfWidth = pdf.internal.pageSize.getWidth();\n const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;\n\n pdf.addImage(imgData, 'PNG', 0, 0, pdfWidth, pdfHeight);\n const pdfBlob = pdf.output('blob');\n\n if (navigator.share && navigator.canShare({ files: [new File([], '')] })) {\n const file = new File([pdfBlob], 'reservation.pdf', { type: 'application/pdf' });\n try {\n await navigator.share({\n title: 'Mijn Reservering',\n text: 'Bekijk mijn reservering.',\n files: [file],\n });\n } catch (error) {\n console.error('Error sharing:', error);\n }\n } else {\n pdf.save('reservation.pdf');\n }\n }\n };\n\n return (\n \n );\n};\n\nexport default ShareButton;\n","import React from 'react';\nimport { FaCalendarPlus } from 'react-icons/fa';\nimport './css/buttons.css';\n\nconst AddToCalendarButton = ({ summaryData }) => {\n const handleAddToCalendar = () => {\n console.log('handleAddToCalendar invoked');\n\n if (!summaryData) {\n console.error('No summaryData available.');\n return;\n }\n\n const restaurantName = localStorage.getItem('restaurant') || 'Restaurant';\n console.log('Restaurant Name:', restaurantName);\n\n const { date, time } = summaryData;\n console.log('Summary Data - Date:', date);\n console.log('Summary Data - time:', time);\n\n let datePart;\n if (date) {\n const dateRegex = /^\\d{4}-\\d{2}-\\d{2}$/;\n if (!dateRegex.test(date)) {\n console.error('Invalid date format in summaryData.date:', date);\n return;\n }\n datePart = date;\n } else if (window.selectedDate instanceof Date && !isNaN(window.selectedDate)) {\n const selectedDate = window.selectedDate;\n const year = selectedDate.getFullYear();\n const month = String(selectedDate.getMonth() + 1).padStart(2, '0');\n const day = String(selectedDate.getDate()).padStart(2, '0');\n datePart = `${year}-${month}-${day}`;\n console.log('Using window.selectedDate for datePart:', datePart);\n } else {\n console.error('No valid date available.');\n return;\n }\n\n const timeRegex = /^\\d{2}:\\d{2}$/;\n if (!timeRegex.test(time)) {\n console.error('Invalid time format:', time);\n return;\n }\n\n const dateTimeString = `${datePart}T${time}:00`;\n console.log('Constructed Date-Time String:', dateTimeString);\n\n const [hours, minutes] = time.split(':').map(Number);\n const [year, month, day] = datePart.split('-').map(Number);\n\n const startDateTime = new Date(year, month - 1, day, hours, minutes, 0);\n console.log('startDateTime:', startDateTime);\n\n if (isNaN(startDateTime.getTime())) {\n console.error('Invalid startDateTime:', dateTimeString);\n return;\n }\n\n const endDateTime = new Date(startDateTime.getTime() + 2 * 60 * 60 * 1000);\n console.log('endDateTime:', endDateTime);\n\n const formatDate = (date) => {\n if (!(date instanceof Date) || isNaN(date.getTime())) {\n console.error('Invalid Date object passed to formatDate:', date);\n return '';\n }\n const pad = (num) => String(num).padStart(2, '0');\n const year = date.getFullYear();\n const month = pad(date.getMonth() + 1);\n const day = pad(date.getDate());\n const hours = pad(date.getHours());\n const minutes = pad(date.getMinutes());\n const seconds = pad(date.getSeconds());\n\n return `${year}${month}${day}T${hours}${minutes}${seconds}`;\n };\n\n const start = formatDate(startDateTime);\n const end = formatDate(endDateTime);\n\n if (!start || !end) {\n console.error('Formatted start or end date is invalid.');\n return;\n }\n\n const description = `Restaurant reservering bij ${restaurantName}`;\n const location = restaurantName;\n const subject = `Reservering bij ${restaurantName}`;\n\n const icsContent = `BEGIN:VCALENDAR\nVERSION:2.0\nBEGIN:VEVENT\nDTSTART:${start}\nDTEND:${end}\nSUMMARY:${subject}\nDESCRIPTION:${description}\nLOCATION:${location}\nEND:VEVENT\nEND:VCALENDAR`;\n\n console.log('ICS Content:', icsContent);\n\n try {\n const blob = new Blob([icsContent], { type: 'text/calendar;charset=utf-8' });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n link.download = 'reservation.ics';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(url);\n console.log('ICS file downloaded successfully.');\n } catch (error) {\n console.error('Error creating or downloading ICS file:', error);\n }\n };\n\n return (\n \n );\n};\n\nexport default AddToCalendarButton;\n","import React, { useState, useEffect, useRef } from 'react';\nimport { FaCheckCircle, FaEnvelope } from 'react-icons/fa';\nimport './css/successPage.css';\nimport PrintButton from './Buttons/PrintButton';\nimport ShareButton from './Buttons/ShareButton';\nimport AddToCalendarButton from './Buttons/AddToCalendarButton';\n\nconst SuccessMessage = () => {\n const [summaryData, setSummaryData] = useState(null);\n const summaryRef = useRef(null);\n\n useEffect(() => {\n const data = localStorage.getItem('summary');\n if (data) {\n const parsedData = JSON.parse(data);\n setSummaryData(parsedData);\n }\n }, []);\n\n const formatDateDutch = (isoDateString) => {\n try {\n const date = new Date(isoDateString);\n return new Intl.DateTimeFormat('nl-NL', {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n }).format(date);\n } catch (error) {\n console.error('Invalid date format:', isoDateString);\n return isoDateString;\n }\n };\n\n return (\n
    \n
    \n \n

    Uw reservatie werd genoteerd! Uw reservatie is bevestigd! Controleer uw inbox en map voor ongewenste email voor een bevestiging.

    \n
    \n\n {summaryData && (\n
    \n

    Uw Reservatie

    \n
      \n
    • \n Naam: {summaryData.firstName + ' ' + summaryData.lastName || ''}\n
    • \n
    • \n Datum: {formatDateDutch(summaryData.date) || ''}\n
    • \n
    • \n Tijd: {summaryData.time || ''}\n
    • \n
    • \n Aantal Personen: {summaryData.guests || ''}\n
    • \n {summaryData.menu && summaryData.menu.trim() && (\n
    • \n Menu: {summaryData.menu}\n
    • \n )}\n {/* Display giftcard info if it exists */}\n {summaryData.giftcard && summaryData.giftcard.trim() && (\n
    • \n Cadeaubon: {summaryData.giftcard}\n
    • \n )}\n
    • \n Opmerkingen: {summaryData.extraInfo || 'Geen'}\n
    • \n
    \n
    \n )}\n\n
    \n \n \n \n
    \n
    \n );\n};\n\nexport default SuccessMessage;","// ---------------------------------------------\n// file: /src/Pages/ReservationForm/index.js\n// ---------------------------------------------\n\nimport React, { useState, useEffect } from 'react';\nimport StepOne from '../../Steps/StepOne';\nimport StepTwo from '../../Steps/StepTwo';\nimport SuccessMessage from '../../Steps/StepThree';\nimport './css/form.css';\n\nconst ReservationForm = ({ title, settings, generalSettings, fields, timeblocks, menu, mededeling, restaurantData }) => {\n const initialFormData = {};\n fields.forEach((field) => {\n initialFormData[field.id] = '';\n });\n\n const [formData, setFormData] = useState(initialFormData);\n const [currentStep, setCurrentStep] = useState(1);\n const [expandedField, setExpandedField] = useState(null);\n\n const handleChange = (e) => {\n const { name, value, type } = e.target;\n\n if (type === 'number' && !/^\\d*$/.test(value)) {\n return;\n }\n\n setFormData({\n ...formData,\n [name]: value,\n });\n };\n\n useEffect(() => {\n if (formData.date) {\n setFormData((prevFormData) => ({\n ...prevFormData,\n time: '',\n }));\n }\n }, [formData.date]);\n\n const resetFormDataFields = (fieldsToReset) => {\n setFormData((prevFormData) => {\n const newFormData = { ...prevFormData };\n fieldsToReset.forEach((field) => {\n newFormData[field] = '';\n });\n return newFormData;\n });\n };\n\n const goToStep = (step, field) => {\n if (step === 1) {\n if (field === 'guest') {\n resetFormDataFields(['date', 'time']);\n } else if (field === 'date') {\n resetFormDataFields(['time']);\n }\n }\n setCurrentStep(step);\n setExpandedField(field || null);\n };\n\n return (\n
    \n {currentStep === 1 && (\n \n )}\n\n {currentStep === 2 && (\n \n )}\n\n {currentStep === 3 && }\n
    \n );\n};\n\nexport default ReservationForm;\n","import React from 'react';\n\nconst ReservationStyles = ({ fonts, formSectionBackgroundStyle }) => {\n const { labelFont, titleFont, subtitleFont, buttonFont } = fonts;\n\n return (\n \n );\n};\n\nexport default ReservationStyles;\n","// Define default settings\nexport const defaultSettings = {\n\tpageTitle: 'Reserveer Nu',\n\tgeneralNotification: '',\n\talignment: 'fullScreenPicture', // Default alignment\n\tbackgroundBlur: 'blurBackground', // Default background blur\n };\n \n // Define default fonts\n export const defaultFonts = {\n\ttitleFont: { font: 'Poppins', weight: '400' },\n\tsubtitleFont: { font: 'Poppins', weight: '400' },\n\tlabelFont: { font: 'Poppins', weight: '400' },\n\tbuttonFont: { font: 'Poppins', weight: '400' },\n };\n \n // Define default appearance data\n export const defaultAppearanceData = {\n\tbackgroundType: 'solid',\n\tbackgroundColor: '#000',\n\tgradientStartColor: '#FFFFFF',\n\tgradientEndColor: '#000000',\n\tanimationType: 'none',\n\twidgetBackgroundColor: '#000000',\n\twidgetTextColor: '#FFFFFF',\n\ttextColor: '#000000',\n\tcontainerColor: '#FFFFFF',\n\tbuttonColor: '#000000',\n\tbuttonTextColor: '#FFFFFF',\n };\n \n // Define default theme\n export const defaultTheme = {\n\tid: 10, // Default theme ID\n\ttitle: 'Herfstbladeren', // Default theme title\n\tcolor: '#D35400', // Default theme color\n\timage: '/static/media/default-theme.webp', // Default theme image\n };\n\n ","// file-path: ./src/components/NewReservation.jsx\n\nimport React, { useState, useEffect } from 'react';\nimport { fields } from './Config/formConfig.js';\nimport './css/newReservation.css';\nimport './css/mobile.css';\nimport './css/animations.css';\nimport './css/style.css';\nimport useFonts from '../../Hooks/useFonts.js';\nimport transformFonts from '../../Utils/transformFonts.js';\nimport computeAlignmentValues from '../../Utils/computeAlignmentValues.js';\nimport useApi from '../../Hooks/useApi.js';\nimport ReservationModal from './Structure/PopUp.js';\nimport ReservationFullScreen from './Structure/FullScreen.js';\nimport ReservationForm from './Structure/Form.js';\nimport ReservationStyles from './Style/ReservationStyles.js';\nimport { defaultAppearanceData, defaultFonts, defaultSettings, defaultTheme } from './Style/defaults.js';\nimport { darkenHexColor, isColorTooBright } from './Style/colorUtils.js'; \n\n// Utility function to extract numbers from fields like { \"$numberInt\": \"31\" }\nconst extractNumber = (field) => {\n if (typeof field === 'object' && field !== null && '$numberInt' in field) {\n return parseInt(field['$numberInt'], 10);\n }\n return field;\n};\n\nconst NewReservation = () => {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [isClosing, setIsClosing] = useState(false);\n const [restaurantData, setRestaurantData] = useState(null);\n const api = useApi();\n\n const openModal = () => {\n setIsModalOpen(true);\n };\n\n const closeModal = () => {\n setIsClosing(true);\n setTimeout(() => {\n setIsModalOpen(false);\n setIsClosing(false);\n }, 300);\n };\n\n useEffect(() => {\n if (isModalOpen) {\n document.body.classList.add('modal-open');\n } else {\n document.body.classList.remove('modal-open');\n }\n\n return () => {\n document.body.classList.remove('modal-open');\n };\n }, [isModalOpen]);\n\n useEffect(() => {\n const fetchRestaurantData = async () => {\n try {\n const endpoint = `${window.baseDomain}api/restaurant/${window.restaurantId}`;\n const data = await api.get(endpoint, { noCache: true });\n\n // If we receive a 404, 500, or invalid response,\n // immediately set defaults to avoid infinite loading or errors.\n if (!data || data.status === 404 || data.status === 500) {\n setRestaurantData({\n settings: defaultSettings,\n fonts: defaultFonts,\n colors: defaultAppearanceData,\n theme: defaultTheme,\n });\n return;\n }\n\n // Merge received data with defaults (handling partial data safely)\n const mergedSettings = { ...defaultSettings, ...(data.settings || {}) };\n const mergedFonts = { ...defaultFonts, ...(data.fonts || {}) };\n const mergedColors = { ...defaultAppearanceData, ...(data.colors || {}) };\n const mergedTheme = { ...defaultTheme, ...(data.theme || {}) };\n\n // Parse numeric fields if necessary\n const parsedTheme = {\n id: extractNumber(mergedTheme.id),\n title: mergedTheme.title,\n color: mergedTheme.color,\n image: mergedTheme.image,\n };\n\n const parsedSettings = {\n ...mergedSettings,\n storedNumber: extractNumber(mergedSettings.storedNumber),\n };\n\n // Create a new merged data object\n const mergedData = {\n ...data,\n settings: parsedSettings,\n fonts: mergedFonts,\n colors: mergedColors,\n theme: parsedTheme,\n };\n\n setRestaurantData(mergedData);\n console.log('Merged Restaurant Data:', mergedData);\n } catch (error) {\n console.error('Error fetching restaurant data:', error);\n // On error (e.g. network error), set defaults so the user can still proceed\n setRestaurantData({\n settings: defaultSettings,\n fonts: defaultFonts,\n colors: defaultAppearanceData,\n theme: defaultTheme,\n });\n }\n };\n\n fetchRestaurantData();\n }, [api]);\n\n // Load custom fonts (if any) after we have restaurantData\n useFonts(restaurantData);\n\n // If restaurantData is not yet set, show a quick loading text\n if (!restaurantData) {\n return
    Loading...
    ;\n }\n\n // Destructure with fallback to defaults to prevent runtime errors\n const {\n colors = defaultAppearanceData,\n theme = defaultTheme,\n settings = defaultSettings,\n timeblocks = [],\n menu = [],\n mededeling = '',\n } = restaurantData || {};\n\n const generalSettings = restaurantData['general-settings'] || {};\n window.generalSettings = generalSettings; // Optional: Retain if needed globally\n\n const alignment = settings?.alignment || 'fullScreenColor';\n const { alignmentBottomValue, alignmentTopValue, alignmentMarginValue } = computeAlignmentValues(alignment);\n\n let { fonts } = restaurantData;\n fonts = transformFonts(fonts || defaultFonts);\n\n const { titleFont, subtitleFont, buttonFont, labelFont } = fonts;\n\n const title = settings?.pageTitle || 'Reserveer een Tafel';\n const backgroundType = colors?.backgroundType || 'solid';\n\n let formSectionBackgroundStyle = '';\n if (backgroundType === 'solid') {\n formSectionBackgroundStyle = `\n .form-section {\n background-color: ${colors?.backgroundColor || '#FFFFFF'} !important;\n }\n `;\n } else if (backgroundType === 'gradient') {\n const startColor = colors?.gradientStartColor || '#FFFFFF';\n const endColor = colors?.gradientEndColor || '#000000';\n formSectionBackgroundStyle = `\n .form-section {\n background-image: linear-gradient(${startColor}, ${endColor}) !important;\n }\n `;\n } else if (backgroundType === 'animated') {\n formSectionBackgroundStyle = `\n .form-section {\n background-color: ${colors?.backgroundColor || '#FFFFFF'} !important;\n }\n .form-section.animated-background {\n background-size: 800% 800%;\n }\n `;\n }\n\n\n const formContent = (\n \n );\n\n \n \n\n const backgroundBlur = settings?.backgroundBlur || 'sharpPicture';\n\n const hexToRgba = (hex, opacity) => {\n hex = hex.replace('#', '');\n const r = parseInt(hex.substring(0, 2), 16);\n const g = parseInt(hex.substring(2, 4), 16);\n const b = parseInt(hex.substring(4, 6), 16);\n return `rgba(${r}, ${g}, ${b}, ${opacity})`;\n };\n\n const backgroundColorTransparant = hexToRgba(colors?.backgroundColor || '#FFFFFF', 0.03);\n\n // Determine bubble-view-color\n let bubbleViewColor = colors?.backgroundColor || '#000';\n if (isColorTooBright(bubbleViewColor)) {\n bubbleViewColor = darkenHexColor(bubbleViewColor, 0.2);\n }\n\n return (\n
    \n \n {window.viewMode === 'full-screen' ? (\n \n ) : (\n \n )}\n\n \n\n {window.viewMode === 'full-screen' ? (\n \n {formContent}\n
    \n ) : (\n
    \n )}\n \n \n );\n};\n\nexport default NewReservation;\n","export function darkenHexColor(hex, factor = 0.2) {\n // Remove the '#' if present\n let cleanHex = hex.replace('#', '');\n\n // Parse the hex color into RGB components\n const r = parseInt(cleanHex.slice(0, 2), 16);\n const g = parseInt(cleanHex.slice(2, 4), 16);\n const b = parseInt(cleanHex.slice(4, 6), 16);\n\n // Apply the darkening factor\n const newR = Math.max(0, Math.floor(r * (1 - factor)));\n const newG = Math.max(0, Math.floor(g * (1 - factor)));\n const newB = Math.max(0, Math.floor(b * (1 - factor)));\n\n // Convert back to hex and return\n const darkenedHex = '#' +\n newR.toString(16).padStart(2, '0') +\n newG.toString(16).padStart(2, '0') +\n newB.toString(16).padStart(2, '0');\n\n return darkenedHex;\n }\n\n export function isColorTooBright(hex) {\n let cleanHex = hex.replace('#', '');\n const r = parseInt(cleanHex.slice(0, 2), 16);\n const g = parseInt(cleanHex.slice(2, 4), 16);\n const b = parseInt(cleanHex.slice(4, 6), 16);\n\n // Calculate the perceived brightness\n // Formula: (0.299 * R + 0.587 * G + 0.114 * B)\n const brightness = (0.299 * r) + (0.587 * g) + (0.114 * b);\n return brightness > 200; // Arbitrary threshold for brightness\n }","\"use client\";\n\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const DEFAULT_BREAKPOINTS = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport const DEFAULT_MIN_BREAKPOINT = 'xs';\nconst ThemeContext = /*#__PURE__*/React.createContext({\n prefixes: {},\n breakpoints: DEFAULT_BREAKPOINTS,\n minBreakpoint: DEFAULT_MIN_BREAKPOINT\n});\nconst {\n Consumer,\n Provider\n} = ThemeContext;\nfunction ThemeProvider({\n prefixes = {},\n breakpoints = DEFAULT_BREAKPOINTS,\n minBreakpoint = DEFAULT_MIN_BREAKPOINT,\n dir,\n children\n}) {\n const contextValue = useMemo(() => ({\n prefixes: {\n ...prefixes\n },\n breakpoints,\n minBreakpoint,\n dir\n }), [prefixes, breakpoints, minBreakpoint, dir]);\n return /*#__PURE__*/_jsx(Provider, {\n value: contextValue,\n children: children\n });\n}\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n const {\n prefixes\n } = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\nexport function useBootstrapBreakpoints() {\n const {\n breakpoints\n } = useContext(ThemeContext);\n return breakpoints;\n}\nexport function useBootstrapMinBreakpoint() {\n const {\n minBreakpoint\n } = useContext(ThemeContext);\n return minBreakpoint;\n}\nexport function useIsRTL() {\n const {\n dir\n } = useContext(ThemeContext);\n return dir === 'rtl';\n}\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n const isClassy = Component.prototype && Component.prototype.isReactComponent;\n // If it's a functional component make sure we don't break it with a ref\n const {\n prefix,\n forwardRefAs = isClassy ? 'ref' : 'innerRef'\n } = opts;\n const Wrapped = /*#__PURE__*/React.forwardRef(({\n ...props\n }, ref) => {\n props[forwardRefAs] = ref;\n const bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n bsPrefix: bsPrefix\n });\n });\n Wrapped.displayName = `Bootstrap(${Component.displayName || Component.name})`;\n return Wrapped;\n}\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Spinner = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n variant,\n animation = 'border',\n size,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n className,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'spinner');\n const bsSpinnerPrefix = `${bsPrefix}-${animation}`;\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, bsSpinnerPrefix, size && `${bsSpinnerPrefix}-${size}`, variant && `text-${variant}`)\n });\n});\nSpinner.displayName = 'Spinner';\nexport default Spinner;","// src/components/InitPage.js\n\nimport React, { useEffect, useState } from 'react';\nimport \"./css/loading.css\";\nimport animationData from './json/octopus.json';\nimport Lottie from 'lottie-react';\nimport { Spinner } from 'react-bootstrap'; // Import the Bootstrap Spinner\n\nconst InitPage = ({ language, onInitComplete }) => {\n const [progress, setProgress] = useState(0);\n const [loaded, setLoaded] = useState(false);\n const [opacity, setOpacity] = useState(1); // Control opacity\n const [scale, setScale] = useState(1); // Control zoom effect\n const [visible, setVisible] = useState(true); // Control visibility (display none)\n\n // Handle progress increments\n useEffect(() => {\n const timeouts = [\n setTimeout(() => setProgress(25), 1000),\n setTimeout(() => setProgress(50), 2000),\n setTimeout(() => setProgress(75), 3000),\n setTimeout(() => setProgress(100), 4000),\n ];\n\n return () => timeouts.forEach(clearTimeout);\n }, []);\n\n // Simulate loading complete\n useEffect(() => {\n const loadAnimation = () => {\n setLoaded(true);\n };\n\n loadAnimation();\n }, []);\n\n // Handle the opacity and scale transition after 3 seconds and hide after 4 seconds\n useEffect(() => {\n const fadeOutTimer = setTimeout(() => {\n setOpacity(0); // Change opacity to 0 after 3 seconds\n setScale(1.5); // Zoom the octopus by increasing scale\n }, 3000);\n\n const hideTimer = setTimeout(() => {\n setVisible(false); // Set display to none after 4 seconds\n if (onInitComplete) {\n onInitComplete(); // Notify parent component that init is complete\n }\n }, 4000);\n\n return () => {\n clearTimeout(fadeOutTimer);\n clearTimeout(hideTimer);\n };\n }, [onInitComplete]);\n\n if (!visible) {\n return null; // Hide the component by returning null if not visible\n }\n\n return (\n \n \n \n \n
    \n \n Reserveer met een glimlach bij {window.restaurantName && window.restaurantName.trim() !== \"\" ? window.restaurantName : \"dit restaurant\"}!\n \n
    \n\n \n \n\n \n \n );\n};\n\nexport default InitPage;\n","// src/App.js\n\nimport React, { useEffect, useState } from 'react';\nimport NewReservation from './Pages/Form/index.js';\nimport InitPage from './Pages/Loading/InitPage.js';\n\nfunction App() {\n const params = new URLSearchParams(window.location.search);\n const loadingParam = params.get('loading') !== 'false'; // Check if loading param is not explicitly set to 'false'\n \n const [showInitPage, setShowInitPage] = useState(loadingParam);\n\n window.baseDomain = \"https://squid-app-aychi.ondigitalocean.app/\";\n\n window.defaultViewMode = \"full-screen\";\n\n const viewMode = params.get('viewMode') || window.defaultViewMode;\n const restaurantName = params.get('restaurantName') || '';\n const restaurantId = params.get(\"restaurantId\") || 'demo';\n window.viewMode = viewMode;\n window.restaurantName = restaurantName;\n window.restaurantId = restaurantId;\n console.log(`View Mode set to: ${viewMode}`);\n\n const handleInitComplete = () => {\n setShowInitPage(false);\n };\n\n return (\n <>\n {showInitPage && }\n \n \n );\n}\n\nexport default App;\n","// src/index.js\n\nimport React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport { BrowserRouter } from 'react-router-dom';\nimport { I18nextProvider } from 'react-i18next';\nimport i18n from './i18n';\nimport './i18n';\n\nimport App from './App.js';\n\nconst root = ReactDOM.createRoot(document.getElementById('mateza-booking'));\n\nroot.render(\n \n \n \n \n \n);\n"],"names":["getMealType","time","hour","parseInt","split","extractNumber","value","$numberInt","parsed","isNaN","countArrivalsAtTime","reservations","date","filter","r","reduce","sum","guests","module","exports","filterTimeblocksByMaxArrivals","restaurantData","timeblocks","filteredBlocks","timeData","Object","entries","mealType","maxArrivalsConfig","maxArrivals","moment","require","shifts","parseTime","getMealTypeByTime","filterTimeblocksByStopTimes","dateStr","tz","format","console","log","settings","currentTimeMinutes","now","hours","minutes","getCurrentTimeInBrusselsMinutes","breakfastStopTimeStr","ontbijtStop","lunchStopTimeStr","lunchStop","dinnerStopTimeStr","dinerStop","breakfastStopTime","lunchStopTime","dinnerStopTime","filteredTimeblocks","skippedBreakfast","skippedLunch","skippedDinner","hasOwnProperty","skip","timeblocksAvailable","daysOfWeekEnglish","timeHasGiftcard","data","timeStr","giftcard","trim","dateObj","Date","getTime","dayOfWeekIndex","getDay","englishDay","ohKey","daySettings","schemeSettings","giftcardsEnabled","giftcards","length","includes","parseDateTimeInTimeZone","timeZone","year","month","day","map","Number","UTC","toLocaleString","getAvailableTimeblocks","selectedGiftcard","arguments","undefined","uurOpVoorhand","dagenInToekomst","currentTimeInTimeZone","maxAllowedDate","setDate","getDate","setHours","targetDate","targetDateInTimeZone","isToday","toDateString","availableTimeblocks","keys","cutoffTime","getHours","key","isDateAvailable","mealTypes","meal","dayHasGiftcard","isDateWithinAllowedRange","isTimeAvailableSync","error","isDateAvailableWithTableCheck","floors","JSON","stringify","Array","isArray","tableSettings","isTableAssignmentEnabled","isInstalled","assignmentMode","atLeastOneAvailable","checkedCount","getGuestCountsForMeal","getDailyGuestCounts","combinedGuestCounts","shiftsInfo","mealPriority","result","guestCounts","mealShiftsInfo","availableSeats","existingMealPriority","currentMealPriority","push","finalGuestCounts","getDataByDateAndMealWithExceptions","getGuestCountAtHour","mealData","intervalReservatie","getInterval","shiftsEnabled","shift","guestCount","maxCapacity","shiftName","name","startTime","endTime","includeEndTime","shouldIncludeEndTime","currentTime","endTimeMinutes","Math","floor","toString","padStart","getMealTypesWithShifts","mealTypesWithShifts","parseTimeOH","fitsWithinMeal","startTimeStr","duurReservatie","mealStartTime","mealEndTime","getDuurReservatie","slotsNeeded","ceil","timeSlots","sort","a","b","i","consecutiveSlotsAvailable","previousTime","j","currentTimeSlot","targetTime","totalGuests","reservation","getDataByDateAndMeal","getDataByDateAndTime","daysOfWeekDutch","doesExceptionApply","exception","dateDayOfWeekDutch","timeframe","startDate","endDate","daysOfWeek","startDateStr","endDateStr","isDateInRange","toLowerCase","addDuurReservatieToEndTime","newEndMinutes","String","mapExceptionToMealData","enabled","startHour","endHour","maxCapacityEnabled","maxSeats","exceptions","dayIndex","getDutchDayOfWeek","exceptionTypesPriority","exceptionType","type","getDataByDateAndTimeWithExceptions","requestedTime","breakfast","start","end","lunch","dinner","getDataByDayAndMeal","dayOfWeek","mealKey","dayData","generalSettings","zitplaatsen","adjustMealData","getAllTables","isTemporaryTableValid","computeRequiredSlots","timeString","durationMinutes","intervalMinutes","test","minute","startMinutes","slotCount","slots","isTableFreeForAllSlots","tableNumber","requiredSlots","tableOccupiedSlots","occupiedSlots","Set","slot","has","calculateDistance","tableA","tableB","x","y","Infinity","dx","dy","sqrt","findMultiTableCombination","tables","guestsNeeded","startIndex","currentSet","best","reservationDateStr","reservationTimeStr","tbl","distanceSum","tableCount","minDistance","maxPossibleCapacity","canSeat","min","minCapacity","pop","assignTablesForGivenTime","_restaurantData$gener","_restaurantData$gener2","_restaurantData$gener3","_restaurantData$gener4","allTables","t","_restaurantData$gener5","_restaurantData$gener6","_restaurantData$gener7","_restaurantData$gener8","reservationsForDate","aHour","aMinute","bHour","bMinute","assignedTables","rSlots","forEach","add","filterTimeblocksByTableAvailability","unavailableCount","getAvailableTimeblocksWithTableCheck","NaN","parts","_tbl$tableNumber$$num","_tbl$tableNumber","_tbl$minCapacity$$num","_tbl$minCapacity","_tbl$maxCapacity$$num","_tbl$maxCapacity","_tbl$priority$$number","_tbl$priority","_tbl$x$$numberInt","_tbl$x","_tbl$y$$numberInt","_tbl$y","tableNumberRaw","minCapacityRaw","maxCapacityRaw","priorityRaw","priority","xRaw","yRaw","objectType","tableId","id","isTemporary","application","warn","table","reservationMealType","extendStatics","d","setPrototypeOf","__proto__","p","prototype","call","__extends","TypeError","__","this","constructor","create","__assign","assign","s","n","apply","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","Promise","reject","fulfilled","step","next","e","rejected","done","then","__generator","body","f","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","__spreadArray","to","from","pack","ar","l","slice","concat","Bounds","left","top","width","height","w","h","fromClientRect","context","clientRect","windowBounds","fromDOMRectList","domRectList","domRect","find","rect","EMPTY","parseBounds","node","getBoundingClientRect","parseDocumentSize","document","documentElement","Error","max","scrollWidth","offsetWidth","clientWidth","scrollHeight","offsetHeight","clientHeight","toCodePoints$1","str","codePoints","charCodeAt","extra","fromCodePoint$1","_i","fromCodePoint","codeUnits","index","codePoint","fromCharCode","chars$2","lookup$2","Uint8Array","i$2","chars$1$1","lookup$1$1","i$1$1","decode$1","base64","encoded1","encoded2","encoded3","encoded4","bufferLength","len","buffer","ArrayBuffer","bytes","polyUint16Array$1","polyUint32Array$1","UTRIE2_SHIFT_2$1","UTRIE2_SHIFT_1$1","UTRIE2_INDEX_SHIFT$1","UTRIE2_LSCP_INDEX_2_OFFSET$1","UTRIE2_DATA_MASK$1","UTRIE2_INDEX_1_OFFSET$1","UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1","UTRIE2_INDEX_2_MASK$1","slice16$1","view","Uint16Array","slice32$1","Uint32Array","createTrieFromBase64$1","_byteLength","view32","view16","headerLength","Trie$1","Trie","initialValue","errorValue","highStart","highValueIndex","get","ix","chars$3","lookup$3","i$3","LETTER_NUMBER_MODIFIER","BK","CR$1","LF$1","CM","NL","WJ","ZW","GL","SP","ZWJ$1","B2","BA","BB","HY","CB","CL","CP","EX","IN","NS","OP","QU","IS","NU","PO","PR","SY","AI","AL","CJ","EB","EM","H2","H3","HL","ID","JL","JV","JT","RI$1","SA","XX","ea_OP","BREAK_MANDATORY","BREAK_NOT_ALLOWED$1","BREAK_ALLOWED$1","UnicodeTrie$1","ALPHABETICS","HARD_LINE_BREAKS","SPACE$1","PREFIX_POSTFIX","LINE_BREAKS","KOREAN_SYLLABLE_BLOCK","HYPHEN","codePointsToCharacterClasses","lineBreak","types","indices","categories","classType","indexOf","prev","isAdjacentWithSpaceIgnored","currentIndex","classTypes","current","previousNonSpaceClassType","_lineBreakAtIndex","indicies","forbiddenBreaks","beforeIndex","afterIndex","before","prevIndex","count","cssFormattedClasses","options","wordBreak","_a","isLetterNumber","forbiddenBreakpoints","letterNumber","Break","required","LineBreaker","lastEnd","nextIndex","FLAG_UNRESTRICTED","FLAG_ID","FLAG_INTEGER","FLAG_NUMBER","LINE_FEED","SOLIDUS","REVERSE_SOLIDUS","CHARACTER_TABULATION","SPACE","QUOTATION_MARK","EQUALS_SIGN","NUMBER_SIGN","DOLLAR_SIGN","PERCENTAGE_SIGN","APOSTROPHE","LEFT_PARENTHESIS","RIGHT_PARENTHESIS","LOW_LINE","HYPHEN_MINUS","EXCLAMATION_MARK","LESS_THAN_SIGN","GREATER_THAN_SIGN","COMMERCIAL_AT","LEFT_SQUARE_BRACKET","RIGHT_SQUARE_BRACKET","CIRCUMFLEX_ACCENT","LEFT_CURLY_BRACKET","QUESTION_MARK","RIGHT_CURLY_BRACKET","VERTICAL_LINE","TILDE","CONTROL","REPLACEMENT_CHARACTER","ASTERISK","PLUS_SIGN","COMMA","COLON","SEMICOLON","FULL_STOP","NULL","BACKSPACE","LINE_TABULATION","SHIFT_OUT","INFORMATION_SEPARATOR_ONE","DELETE","EOF","ZERO","u","z","A","E","F","U","Z","isDigit","isSurrogateCodePoint","isHex","isLowerCaseLetter","isUpperCaseLetter","isLetter","isNonASCIICodePoint","isWhiteSpace","isNameStartCodePoint","isNameCodePoint","isNonPrintableCodePoint","isValidEscape","c1","c2","isIdentifierStart","c3","isNumberStart","stringToNumber","c","sign","integers","int","fraction","fracd","frac","expsign","exponent","exp","pow","LEFT_PARENTHESIS_TOKEN","RIGHT_PARENTHESIS_TOKEN","COMMA_TOKEN","SUFFIX_MATCH_TOKEN","PREFIX_MATCH_TOKEN","COLUMN_TOKEN","DASH_MATCH_TOKEN","INCLUDE_MATCH_TOKEN","LEFT_CURLY_BRACKET_TOKEN","RIGHT_CURLY_BRACKET_TOKEN","SUBSTRING_MATCH_TOKEN","BAD_URL_TOKEN","BAD_STRING_TOKEN","CDO_TOKEN","CDC_TOKEN","COLON_TOKEN","SEMICOLON_TOKEN","LEFT_SQUARE_BRACKET_TOKEN","RIGHT_SQUARE_BRACKET_TOKEN","WHITESPACE_TOKEN","EOF_TOKEN","Tokenizer","_value","write","chunk","read","tokens","token","consumeToken","consumeCodePoint","consumeStringToken","peekCodePoint","flags","consumeName","reconsumeCodePoint","consumeNumericToken","e1","e2","e3","consumeIdentLikeToken","a1","a2","a3","u1","u2","consumeUnicodeRangeToken","consumeWhiteSpace","unshift","delta","digits","questionMarks","digit","endDigits","consumeUrlToken","stringToken","consumeBadUrlRemnants","consumeEscapedCodePoint","consumeStringSlice","SLICE_STACK_SIZE","amount","splice","endingCodePoint","consumeNumber","repr","number","unit","hex","hexCodePoint","Parser","_tokens","tokenizer","parseValue","parseComponentValue","parseValues","parseComponentValues","SyntaxError","reconsumeToken","consumeComponentValue","values","consumeSimpleBlock","consumeFunction","block","isEndingTokenFor","functionToken","cssFunction","isDimensionToken","isNumberToken","isIdentToken","isStringToken","isIdentWithValue","nonWhiteSpace","nonFunctionArgSeparator","parseFunctionArgs","args","arg","isLength","isLengthPercentage","parseLengthPercentageTuple","ZERO_LENGTH","FIFTY_PERCENT","HUNDRED_PERCENT","getAbsoluteValueForTuple","tuple","getAbsoluteValue","parent","DEG","GRAD","RAD","TURN","angle","parse","_context","PI","isAngle","parseNamedSide","ident","join","deg","color$1","colorFunction","SUPPORTED_COLOR_FUNCTIONS","substring","namedColor","COLORS","toUpperCase","TRANSPARENT","isTransparent","color","asString","alpha","blue","green","red","round","getTokenColorValue","rgb","_b","hue2rgb","t1","t2","hue","hsl","saturation","lightness","hsla","rgba","parseColor","ALICEBLUE","ANTIQUEWHITE","AQUA","AQUAMARINE","AZURE","BEIGE","BISQUE","BLACK","BLANCHEDALMOND","BLUE","BLUEVIOLET","BROWN","BURLYWOOD","CADETBLUE","CHARTREUSE","CHOCOLATE","CORAL","CORNFLOWERBLUE","CORNSILK","CRIMSON","CYAN","DARKBLUE","DARKCYAN","DARKGOLDENROD","DARKGRAY","DARKGREEN","DARKGREY","DARKKHAKI","DARKMAGENTA","DARKOLIVEGREEN","DARKORANGE","DARKORCHID","DARKRED","DARKSALMON","DARKSEAGREEN","DARKSLATEBLUE","DARKSLATEGRAY","DARKSLATEGREY","DARKTURQUOISE","DARKVIOLET","DEEPPINK","DEEPSKYBLUE","DIMGRAY","DIMGREY","DODGERBLUE","FIREBRICK","FLORALWHITE","FORESTGREEN","FUCHSIA","GAINSBORO","GHOSTWHITE","GOLD","GOLDENROD","GRAY","GREEN","GREENYELLOW","GREY","HONEYDEW","HOTPINK","INDIANRED","INDIGO","IVORY","KHAKI","LAVENDER","LAVENDERBLUSH","LAWNGREEN","LEMONCHIFFON","LIGHTBLUE","LIGHTCORAL","LIGHTCYAN","LIGHTGOLDENRODYELLOW","LIGHTGRAY","LIGHTGREEN","LIGHTGREY","LIGHTPINK","LIGHTSALMON","LIGHTSEAGREEN","LIGHTSKYBLUE","LIGHTSLATEGRAY","LIGHTSLATEGREY","LIGHTSTEELBLUE","LIGHTYELLOW","LIME","LIMEGREEN","LINEN","MAGENTA","MAROON","MEDIUMAQUAMARINE","MEDIUMBLUE","MEDIUMORCHID","MEDIUMPURPLE","MEDIUMSEAGREEN","MEDIUMSLATEBLUE","MEDIUMSPRINGGREEN","MEDIUMTURQUOISE","MEDIUMVIOLETRED","MIDNIGHTBLUE","MINTCREAM","MISTYROSE","MOCCASIN","NAVAJOWHITE","NAVY","OLDLACE","OLIVE","OLIVEDRAB","ORANGE","ORANGERED","ORCHID","PALEGOLDENROD","PALEGREEN","PALETURQUOISE","PALEVIOLETRED","PAPAYAWHIP","PEACHPUFF","PERU","PINK","PLUM","POWDERBLUE","PURPLE","REBECCAPURPLE","RED","ROSYBROWN","ROYALBLUE","SADDLEBROWN","SALMON","SANDYBROWN","SEAGREEN","SEASHELL","SIENNA","SILVER","SKYBLUE","SLATEBLUE","SLATEGRAY","SLATEGREY","SNOW","SPRINGGREEN","STEELBLUE","TAN","TEAL","THISTLE","TOMATO","TURQUOISE","VIOLET","WHEAT","WHITE","WHITESMOKE","YELLOW","YELLOWGREEN","backgroundClip","prefix","backgroundColor","parseColorStop","stop","processColorStops","stops","lineLength","first","last","processStops","previous","stop_1","absoluteValue","gapBegin","stop_2","gapLength","gapValue","getAngleFromCorner","corner","centerX","centerY","atan2","calculateGradientDirection","radian","abs","sin","cos","halfWidth","halfHeight","halfLineLength","yDiff","xDiff","distance","findCorner","closest","stat","cx","cy","optimumDistance","optimumCorner","calculateRadius","gradient","rx","ry","size","shape","prefixLinearGradient","angle$1","firstToken","colorStop","CLOSEST_SIDE","FARTHEST_SIDE","CLOSEST_CORNER","FARTHEST_CORNER","CIRCLE","ELLIPSE","COVER","CONTAIN","prefixRadialGradient","position","isColorStop","acc","isLinearGradient","background","isRadialGradient","image","image_1","url","cache","addImage","imageFunction","SUPPORTED_IMAGE_FUNCTIONS","isSupportedImage","BACKGROUND_SIZE","isAtPosition_1","backgroundImage","backgroundOrigin","backgroundPosition","backgroundRepeat","parseBackgroundRepeat","LINE_BREAK","backgroundSize","isBackgroundSizeInfoToken","borderColorForSide","side","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","borderRadiusForSide","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","borderStyleForSide","style","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle","borderWidthForSide","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","direction","display","bit","parseDisplayValue","float","letterSpacing","WORD_BREAK","STRICT","NORMAL","lineHeight","computeLineHeight","fontSize","listStyleImage","listStylePosition","listStyleType","marginForSide","marginTop","marginRight","marginBottom","marginLeft","overflow","overflowWrap","paddingForSide","paddingTop","paddingRight","paddingBottom","paddingLeft","textAlign","textShadow","shadow","offsetX","offsetY","blur","textTransform","transform$1","transformFunction","SUPPORTED_TRANSFORM_FUNCTIONS","matrix","matrix3d","b1","b2","a4","b4","DEFAULT_VALUE","DEFAULT","transformOrigin","origins","visibility","BREAK_ALL","KEEP_ALL","zIndex","auto","order","opacity","textDecorationColor","textDecorationLine","line","fontFamily","accumulator","results","fontWeight","fontVariant","fontStyle","contains","content","counterIncrement","increments","filtered","counter","increment","counterReset","resets","reset","duration","quotes","open_1","close_1","open","close","getQuote","depth","quote","boxShadow","spread","inset","paintOrder","layers","webkitTextStrokeColor","webkitTextStrokeWidth","CSSParsedDeclaration","declaration","animationDuration","cssFloat","overflowTuple","overflowX","overflowY","textDecoration","transform","isVisible","isTransformed","isPositioned","isPositionedWithZIndex","isFloating","isInlineLevel","CSSParsedPseudoDeclaration","CSSParsedCounterDeclaration","descriptor","parser","length_1","value_1","elementDebuggerAttribute","getElementDebugType","element","getAttribute","isDebugging","elementType","ElementContainer","textNodes","elements","styles","window","getComputedStyle","isHTMLElementNode","some","bounds","chars$1","lookup$1","i$1","decode","polyUint16Array","polyUint32Array","UTRIE2_SHIFT_2","UTRIE2_SHIFT_1","UTRIE2_INDEX_SHIFT","UTRIE2_LSCP_INDEX_2_OFFSET","UTRIE2_DATA_MASK","UTRIE2_INDEX_1_OFFSET","UTRIE2_OMITTED_BMP_INDEX_1_LENGTH","UTRIE2_INDEX_2_MASK","slice16","slice32","createTrieFromBase64","chars","lookup","PseudoElementType","Prepend","CR","LF","Control","Extend","SpacingMark","L","V","T","LV","LVT","ZWJ","Extended_Pictographic","RI","toCodePoints","UnicodeTrie","BREAK_NOT_ALLOWED","BREAK_ALLOWED","codePointToClass","_graphemeBreakAtIndex","_codePoints","countRI","GraphemeBreaker","graphemeBreak","splitGraphemes","bk","breaker","graphemes","testRangeBounds","TEST_HEIGHT","createRange","range","testElement","createElement","appendChild","selectNode","rangeBounds","rangeHeight","removeChild","testIOSLineBreak","wordSpacing","innerHTML","repeat","firstChild","textList","offset","supports","every","text","setStart","setEnd","boundAhead","testCORS","Image","crossOrigin","testResponseType","XMLHttpRequest","responseType","testSVG","img","canvas","ctx","getContext","src","drawImage","toDataURL","isGreenPixel","testForeignObject","fillStyle","fillRect","greenImageSrc","svg","createForeignObjectSVG","loadSerializedSVG$1","getImageData","catch","xmlns","createElementNS","foreignObject","setAttributeNS","onload","onerror","encodeURIComponent","XMLSerializer","serializeToString","FEATURES","SUPPORT_RANGE_BOUNDS","defineProperty","SUPPORT_WORD_BREAKING","SUPPORT_SVG_DRAWING","SUPPORT_FOREIGNOBJECT_DRAWING","fetch","SUPPORT_CORS_IMAGES","SUPPORT_RESPONSE_TYPE","SUPPORT_CORS_XHR","SUPPORT_NATIVE_TEXT_SEGMENTATION","Intl","Segmenter","TextBounds","parseTextBounds","breakText","textBounds","clientRects","getClientRects","subSegments","segmentGraphemes","subOffset_1","subSegment","replacementNode","splitText","getWrapperBounds","ownerDocument","wrapper","cloneNode","parentNode","replaceChild","segmenter","granularity","segment","segmentWords","breakWords","wordSeparators","words","word_1","TextContainer","replace","CAPITALIZE","capitalize","m","p1","p2","ImageElementContainer","_super","_this","currentSrc","intrinsicWidth","naturalWidth","intrinsicHeight","naturalHeight","CanvasElementContainer","SVGElementContainer","setAttribute","baseVal","LIElementContainer","OLElementContainer","reversed","CHECKBOX_BORDER_RADIUS","RADIO_BORDER_RADIUS","reformatInputBounds","getInputValue","PASSWORD","placeholder","CHECKBOX","RADIO","INPUT_COLOR","InputElementContainer","input","checked","SelectElementContainer","option","selectedIndex","TextareaElementContainer","IFrameElementContainer","iframe","contentWindow","tree","parseTree","documentBackgroundColor","bodyBackgroundColor","LIST_OWNERS","parseNodeTree","root","childNode","nextNode","nextSibling","isTextNode","isElementNode","isSlotElement","assignedNodes","container","createContainer","createsRealStackingContext","createsStackingContext","tagName","shadowRoot","isTextareaElement","isSVGElement","isSelectElement","isImageElement","isCanvasElement","isLIElement","isOLElement","isInputElement","isIFrameElement","isBodyElement","nodeType","Node","TEXT_NODE","ELEMENT_NODE","isSVGElementNode","className","isHTMLElement","isVideoElement","isStyleElement","isScriptElement","isCustomElement","CounterState","counters","getCounterValue","getCounterValues","canReset","entry","counterNames","ROMAN_UPPER","ARMENIAN","HEBREW","GEORGIAN","createAdditiveCounter","symbols","fallback","suffix","createCounterText","string","integer","createCounterStyleWithSymbolResolver","codePointRangeLength","isNumeric","resolver","createCounterStyleFromRange","codePointRangeStart","codePointRangeEnd","createCounterStyleFromSymbols","CJK_ZEROS","CJK_TEN_COEFFICIENTS","CJK_TEN_HIGH_COEFFICIENTS","CJK_HUNDRED_COEFFICIENTS","createCJKCounter","numbers","multipliers","negativeSign","tmp","coefficient","CHINESE_INFORMAL_MULTIPLIERS","CHINESE_FORMAL_MULTIPLIERS","JAPANESE_NEGATIVE","KOREAN_NEGATIVE","appendSuffix","defaultSuffix","cjkSuffix","koreanSuffix","spaceSuffix","IGNORE_ATTRIBUTE","DocumentCloner","scrolledElements","referenceElement","quoteDepth","toIFrame","windowSize","createIFrameContainer","scrollX","defaultView","pageXOffset","scrollY","pageYOffset","cloneWindow","documentClone","iframeLoad","iframeLoader","restoreNodeScroll","scrollTo","navigator","userAgent","logger","onclone","clonedReferenceElement","nodeName","fonts","ready","imagesReady","serializeDoctype","doctype","restoreOwnerScroll","adoptNode","createElementClone","createCanvasClone","createVideoClone","createStyleClone","clone","srcset","loading","createCustomElementClone","copyCSSStyles","sheet","cssRules","css","rule","cssText","textContent","inlineImages","info","clonedCanvas","clonedCtx","allowTaint","putImageData","gl","attribs","getContextAttributes","preserveDrawingBuffer","video","blankCanvas","appendChildNode","child","copyStyles","hasAttribute","ignoreElements","cloneChildNodes","assignedNode","createTextNode","transitionProperty","styleBefore","styleAfter","createPseudoHideStyles","resolvePseudoContent","BEFORE","insertBefore","after","AFTER","scrollTop","scrollLeft","pseudoElt","anonymousReplacedElement","attr","counterStyle","counterState","counterType","delim","counterStates","counterType_1","separator","PSEUDO_HIDE_ELEMENT_CLASS_BEFORE","PSEUDO_HIDE_ELEMENT_CLASS_AFTER","newClassName","baseValue","destroy","CORNER","cloneIframeContainer","border","scrolling","imageReady","complete","all","images","interval","setInterval","childNodes","readyState","clearInterval","ignoredStyleProperties","target","property","item","setProperty","getPropertyValue","internalSubset","publicId","systemId","PSEUDO_BEFORE","PSEUDO_AFTER","PSEUDO_HIDE_ELEMENT_STYLE","createStyles","CacheStorage","getOrigin","link","_link","href","protocol","hostname","port","isSameOrigin","_origin","setContext","location","Cache","_options","_cache","isBlobImage","isRenderable","loadImage","match","useCORS","isInlineImage","useProxy","proxy","debug","isInlineBase64Image","setTimeout","imageTimeout","xhr","status","response","reader_1","FileReader","addEventListener","readAsDataURL","queryString","timeout_1","timeout","ontimeout","send","INLINE_SVG","INLINE_BASE64","INLINE_IMG","isSVG","substr","Vector","deltaX","deltaY","lerp","BezierCurve","startControl","endControl","subdivide","firstHalf","ab","bc","cd","abbc","bccd","dest","reverse","isBezierCurve","path","BoundCurves","tlh","tlv","trh","trv","_c","brh","brv","_d","blh","blv","factors","maxFactor","topWidth","rightHeight","bottomWidth","leftHeight","topLeftBorderDoubleOuterBox","getCurvePoints","TOP_LEFT","topRightBorderDoubleOuterBox","TOP_RIGHT","bottomRightBorderDoubleOuterBox","BOTTOM_RIGHT","bottomLeftBorderDoubleOuterBox","BOTTOM_LEFT","topLeftBorderDoubleInnerBox","topRightBorderDoubleInnerBox","bottomRightBorderDoubleInnerBox","bottomLeftBorderDoubleInnerBox","topLeftBorderStroke","topRightBorderStroke","bottomRightBorderStroke","bottomLeftBorderStroke","topLeftBorderBox","topRightBorderBox","bottomRightBorderBox","bottomLeftBorderBox","topLeftPaddingBox","topRightPaddingBox","bottomRightPaddingBox","bottomLeftPaddingBox","topLeftContentBox","topRightContentBox","bottomRightContentBox","bottomLeftContentBox","r1","r2","kappa","ox","oy","xm","ym","calculateBorderBoxPath","curves","calculateContentBoxPath","calculatePaddingBoxPath","TransformEffect","ClipEffect","OpacityEffect","isTransformEffect","effect","isClipEffect","isOpacityEffect","equalPath","transformPath","deltaW","deltaH","point","StackingContext","inlineLevel","nonInlineLevel","negativeZIndex","zeroOrAutoZIndexOrTransformedOrOpacity","positiveZIndex","nonPositionedFloats","nonPositionedInlineLevel","ElementPaint","effects","borderBox","paddingBox","getEffects","inFlow","croplessEffects","parseStackTree","stackingContext","realStackingContext","listItems","treatAsRealStackingContext","paintContainer","listOwnerItems","parentStack","stack","order_1","index_1","index_2","processListItems","owner","numbering","listValue","parseStackingContexts","parsePathForBorder","borderSide","createPathFromCurves","parsePathForBorderDoubleOuter","parsePathForBorderDoubleInner","parsePathForBorderStroke","createStrokePathFromCurves","outer1","outer2","inner1","inner2","contentBox","calculateBackgroundPositioningArea","calculateBackgroundPaintingArea","calculateBackgroundRendering","intrinsicSize","backgroundPositioningArea","getBackgroundValueForIndex","backgroundPaintingArea","backgroundImageSize","calculateBackgroundSize","sizeWidth","sizeHeight","calculateBackgroundRepeatPath","isAuto","AUTO","hasIntrinsicValue","intrinsicProportion","second","hasIntrinsicProportion","hasIntrinsicWidth","hasIntrinsicHeight","hasIntrinsicDimensions","width_3","height_3","SMALL_IMAGE","SAMPLE_TEXT","FontMetrics","_data","_document","parseMetrics","span","margin","padding","whiteSpace","verticalAlign","baseline","offsetTop","middle","getMetrics","Renderer","MASK_OFFSET","CanvasRenderer","_activeEffects","scale","fontMetrics","translate","textBaseline","applyEffects","popEffect","applyEffect","save","globalAlpha","clip","restore","renderStack","renderStackContent","renderNode","paint","renderNodeBackgroundAndBorders","renderNodeContent","renderTextWithLetterSpacing","fillText","letter","measureText","createFontStyle","variant","fixIOSSystemFonts","renderTextNode","font","paintOrderLayer","textShadows","shadowColor","shadowOffsetX","shadowOffsetY","shadowBlur","strokeStyle","lineWidth","lineJoin","chrome","strokeText","renderReplacedElement","box","render","fill","beginPath","arc","isTextInputElement","canvasTextAlign","_p","_e","_g","_f","_j","_h","_l","_k","_o","_m","mask","paths","moveTo","lineTo","formatPath","closePath","bezierCurveTo","renderRepeat","pattern","resizeImage","renderBackgroundImage","this_1","createPattern","x0","x1","y0","y1","gradient_1","createLinearGradient","addColorStop","top_1","radialGradient_1","createRadialGradient","midX","midY","invF","renderSolidBorder","curvePoints","renderDoubleBorder","outerPaths","innerPaths","hasBackground","borders","calculateBackgroundCurvedPaintingArea","borderBoxArea","maskOffset","shadowPaintingArea","borders_1","renderDashedDottedBorder","strokePaths","boxPaths","startX","startY","endX","endY","dashLength","spaceLength","useLineDash","multiplier","numberOfDashes","minSpace","maxSpace","setLineDash","lineCap","stroke","path1","path2","iOSBrokenFonts","fontFamilies","ForeignObjectRenderer","loadSerializedSVG","Logger","instances","Context","instanceName","instanceCount","logging","html2canvas","renderElement","opts","resourceOptions","contextOptions","windowOptions","windowWidth","innerWidth","windowHeight","innerHeight","foreignObjectRendering","cloneOptions","documentCloner","clonedElement","_u","parseBackgroundColor","renderOptions","devicePixelRatio","_q","_r","_s","_t","removeContainer","backgroundColorOverride","defaultBackgroundColor","useLottie","props","animationData","loop","autoplay","initialSegment","onComplete","onLoopComplete","onEnterFrame","onSegmentStart","onConfigReady","onDataReady","onDataFailed","onLoadedImages","onDOMLoaded","onDestroy","lottieRef","renderer","assetsPath","rendererSettings","rest","_objectWithoutProperties","_excluded$1","_useState2","_slicedToArray","React","useState","animationLoaded","setAnimationLoaded","animationInstanceRef","useRef","animationContainer","play","pause","setSpeed","speed","goToAndPlay","isFrame","goToAndStop","setDirection","playSegments","segments","forceFlag","setSubframe","useSubFrames","getDuration","inFrames","loadAnimation","forcedConfigs","config","_objectSpread2","lottie__default","useEffect","onUnmount","currentRawFrame","setSegment","resetSegments","listeners","handler","listener","deregisterList","removeEventListener","deregister","View","React__default","ref","animationContainerRef","animationItem","getContainerVisibility","_container$getBoundin","getContainerCursorPosition","cursorX","cursorY","_container$getBoundin2","useInitInteractivity","_ref","wrapperRef","mode","actions","scrollModeHandler","assignedSegment","scrollHandler","currentPercent","action","_ref2","frames","frameToGo","firstFrame","isPaused","cursorModeHandler","handleCursor","_x","_y","pos","_ref3","xPercent","yPercent","mouseMoveHandler","ev","clientX","clientY","mouseOutHandler","useLottieInteractivity","_ref4","lottieObj","Lottie","interactivity","lottieProps","_excluded","_useLottie","factory","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","sources","destination","sourcePrototype","getDescriptor","object","prop","getOwnPropertyDescriptor","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","resume","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","arr","Uint8ClampedArray","Float32Array","Int16Array","createSizedArray","_typeof$6","obj","subframeEnabled","expressionsPlugin","expressionsInterfaces","idPrefix$1","isSafari","_shouldRoundValues","bmPow","bmSqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","random","val","absArr","defaultCurveSegments","degToRads","roundCorner","roundValues","bmRnd","styleDiv","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","totalTime","frameMultiplier","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","q","RGBtoHSV","addSaturationToRGB","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","onmessage","postMessage","_workerSelf","setupWorker","fn","Worker","Blob","blob","URL","createObjectURL","createWorker","completeLayers","comps","layerData","jLen","k","kLen","completed","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","comp","findComp","__used","ks","it","o","checkVersion","minimum","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","assets","checkChars","charData","ip","st","sr","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","closed","cl","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","contentTypeHeader","getResponseHeader","responseText","load","fullPath","callback","errorCallback","err","onreadystatechange","completeData","payload","animation","event","process","onError","createProcess","processId","origin","pathname","loadData","completeAnimation","anim","ImagePreloader","proxyImage","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","originalPath","imagePath","testImageLoaded","intervalId","getBBox","_imageLoaded","bind","createFootageData","ob","footageData","_footageLoaded","ImagePreloaderFactory","loadAssets","cb","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","getAsset","createImgData","createImageData","_elementHelper","append","setCacheType","elementHelper","BaseEvent","triggerEvent","eventName","_cbs","callbacks","markerParser","parsePayloadLines","lines","keysCount","_markers","markers","_marker","markerData","tm","dr","cm","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","getRegisteredRenderer","_typeof$4","AnimationItem","isLoaded","frameRate","frameMult","playSpeed","playDirection","playCount","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","params","animType","RendererClass","globalData","defs","setProjectInterface","autoloadSegments","setupAnimation","lastIndexOf","fileName","trigger","setData","wrapperAttributes","attributes","getNamedItem","prerender","includeLayers","newLayers","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","resize","_width","_height","updateContainerSize","renderFrame","resetFrame","triggerRenderFrameError","togglePause","setCurrentRawFrameValue","getMarkerData","markerName","marker","numValue","frameModifier","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","init","pendingFrame","setLoop","isLooping","getPath","getAssetData","hide","show","updateDocumentData","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","searchAnimations","standalone","animElements","getElementsByClassName","lenAnims","getElementsByTagName","innerText","div","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","beziers","bezEasing","BezierEasing","kSplineTableSize","kSampleStepSize","float32ArraySupported","aA1","aA2","B","C","calcBezier","aT","getSlope","points","_mSampleValues","_precomputed","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","lastSample","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","pooling","poolFactory","initialLength","_create","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x2","y2","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","lastPoint","lengthData","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","u0","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bez","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","lastIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","ti","ind","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quaternionToEuler","slerp","createQuaternion","omega","cosom","sinom","scale0","scale1","out","ax","ay","az","aw","bx","by","bz","bw","acos","quat","qx","qy","qz","qw","heading","attitude","asin","bank","s1","s2","s3","getValueAtCurrentTime","renderedFrame","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","getValue","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","PropertyFactory","getProp","sid","slotManager","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","Matrix","_cos","_sin","_tan","tan","_rnd","rotate","mCos","mSin","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","sz","setTransform","tx","d2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","_identityCalculated","d1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","multiply","matrixProps","isIdentity","_identity","equals","matr","cloneFromProps","applyToPoint","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","lottie","setLocation","setSubframeRendering","setPrefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","pair","decodeURIComponent","useWebWorker","setIDPrefix","__getFactory","version","scripts","myScript","define","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","totalShapeLength","edges","newShapesData","addShapes","lastShape","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","px","py","pz","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","floatEqual","floatZero","lerpPoint","quadRoots","singleRoot","polynomialCoefficients","p3","singlePoint","PolynomialBezier","linearize","pointEqual","coeffx","coeffy","extrema","intersectData","boundingBox","splitData","boxIntersect","intersectsImpl","tolerance","intersections","maxRecursion","d1s","d2s","crossProduct","lineIntersection","start1","end1","start2","end2","v3","v4","polarOffset","pointDistance","hypot","ZigZagModifier","setPoint","outputBezier","amplitude","outAmplitude","inAmplitude","angO","angI","getPerpendicularVector","vector","rot","getProjectingAngle","cur","pVector","zigZagCorner","frequency","pointType","prevPoint","nextPoint","prevDist","nextDist","zigZagSegment","dist","normalAngle","linearOffset","offsetSegment","p1a","p1b","p2b","p2a","joinLines","seg1","seg2","miterLimit","angleOut","tangentAngle","angleIn","center","radius","intersection","getIntersection","intersect","pruneSegmentIntersection","outa","outb","pruneIntersections","offsetSegmentSplit","right","mid","flex","inflectionPoints","OffsetPathModifier","getFontProperties","fontData","fStyle","fWeight","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","resetElements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","items","itemsTransform","cont","hasReloaded","copies","group","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","rd","currentV","currentI","currentO","closerV","newPosPerc","derivative","denom","tcusp","square","p10","p11","p20","p21","bottom","other","shapeSegmentInverted","pointsType","ml","lj","inputBezier","multiSegments","lastSeg","multiSegment","FontManager","emptyChar","combinedCharacters","BLACK_FLAG_CODE_POINT","surrogateModifiers","setUpNode","family","familyArray","enabledFamilies","trimFontOptions","createHelper","def","helper","engine","fontProps","tHelper","fFamily","fClass","tCanvasHelper","OffscreenCanvas","getComputedTextLength","getCodePoint","isRegionalCode","Font","typekitLoaded","_warned","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","isZeroWidthJoiner","charCode","isFlagEmoji","isCombinedCharacter","_char3","isRegionalFlag","isVariationSelector","fontPrototype","found","ch","list","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","querySelectorAll","rel","sc","getCharData","_char","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","SlotManager","slotFactory","RenderableElement","initRenderable","isInRange","hidden","renderableComponents","addRenderableComponent","component","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","blendModeEnums","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","ef","effectElements","effectItem","GroupEffect","BaseElement","FrameElement","FootageElement","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","eff","checkMasks","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","layerInterface","maskManager","registerMaskInterface","effectsInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","textInterface","setBlendMode","blendModeValue","bm","baseElement","layerElement","layerId","effectsManager","getType","prepareProperties","_isParent","getBaseElement","FootageInterface","getFootageData","timeRemapped","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","pendingElements","getElementById","pathValue","setupGlobalData","fontsContainer","compSize","effectTypes","TRANSFORM_EFFECT","TransformElement","MaskElement","maskElement","viewData","solidPath","expansor","feMorph","properties","currentMasks","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","createLayerSolidPath","invRect","drawPath","maskedElement","initTransform","_matMdf","_localMatMdf","_opMdf","localMat","localOpacity","ao","renderTransform","finalMat","renderLocalTransform","localTransforms","lmat","localOp","searchEffectTransforms","renderableEffectsManager","transformEffects","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","featureSupport","svgLumaHidden","offscreenCanvas","registeredEffects$1","idPrefix","SVGEffects","filterManager","source","createFilter","filters","Effect","countsAsEffect","registerEffect$1","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","layerElementParent","td","matteMasks","gg","tt","ln","hd","cp","clipId","cpGroup","destroyBaseElement","createRenderableComponents","getMatte","matteType","useElement","masker","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","setMatte","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dataProps","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","of","ms","ost","buildShapeString","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","textKeys","buildFinalText","charactersArray","shouldCombine","shouldCombineNext","currentChars","charAt","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","anIndexes","animatorJustifyOffset","animatorData","letterData","based","animators","indexes","fh","fs","fb","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","getMult","textProperty","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","tanAngle","matrixHelper","renderedLettersCount","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","atan","textAnimator","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","validateText","buildNewText","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","svgElement","ariaLabel","title","titleElement","titleId","description","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","focusable","filterSize","runExpressions","destroyed","ShapeTransformManager","sequences","sequenceList","transform_key_count","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","buildShapeData","shapeItem","tSpan","usesGlyphs","cachedSpansLength","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","findIndexByInd","appendElementInPos","elementIndex","tp","matteMask","nextElement","setElements","getElements","destroyElements","addTransformSequence","sequence","processSequence","processSequences","getNewKey","lumaLoader","lumaBuffer","lumaBufferCtx","loadLuma","_svg","createLumaSvgFilter","createCanvas","loadLumaCanvas","getLumaCanvas","registeredEffects","CVEffects","registerEffect","CVMaskElement","hasMasks","CVBaseElement","canvasContext","operationsMap","CVShapeData","transformsManager","styledShapes","styledShape","trNodes","CVShapeElement","CVTextElement","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","CanvasContext","CVContextData","cArrPos","cTr","nativeContext","transformMat","currentOpacity","currentFillStyle","appliedFillStyle","currentStrokeStyle","appliedStrokeStyle","currentLineWidth","appliedLineWidth","currentLineCap","appliedLineCap","currentLineJoin","appliedLineJoin","appliedMiterLimit","currentMiterLimit","CVCompElement","clearCanvas","dpr","currentGlobalAlpha","contextData","ctxTransform","ctxOpacity","ctxFillStyle","ctxStrokeStyle","ctxLineWidth","ctxLineCap","ctxLineJoin","ctxMiterLimit","ctxFill","ctxFillRect","ctxStroke","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","createElements","buffers","bufferCanvas","bufferCanvas2","_isProxy","transformCanvas","blendMode","globalCompositeOperation","hideElement","showElement","clearRect","prepareLayer","bufferCtx","getTransform","exitLayer","forceRealStack","transformHelper","dashResetter","preTransforms","co","wi","da","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","grd","lineDashOffset","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","actionFlag","containerStyle","mozTransformOrigin","isDashed","elementWidth","elementHeight","elementRel","animationRel","fillType","duplicate","newLength","forceRestore","currentContext","prevStack","saveOnNativeFlag","currentStack","newStack","setOpacity","trProps","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","shapeBoundingBox","xMax","yMax","tempBoundingBox","b2ac","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","strokeWidth","tParent","tCont","children","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","svgTransform","setup","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","cWidth","cHeight","floatingContainer","_createBaseContainerElements","_thisLayerFunction","pixelAspect","frameDuration","displayStartTime","numLayers","_typeof$2","seedRandom","global","rngname","startdenom","significance","ARC4","keylen","me","S","copy","flatten","typ","mixkey","seed","smear","stringseed","tostring","shortseed","entropy","crypto","msCrypto","getRandomValues","browser","plugins","screen","autoseed","arc4","prng","int32","quick","pass","is_math_call","state","initialize$2","propTypes","SHAPE","_typeof$1","ExpressionManager","_lottieGlobal","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","sub","mul","mod","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","vec","rgbToHsl","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","noOp","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","valueAtTime","inPoint","outPoint","loopIn","loop_in","loopOut","loop_out","smooth","toWorld","fromWorld","fromComp","toComp","fromCompToSurface","rotation","anchorPoint","thisLayer","thisComp","velocityAtTime","scoped_bm_rt","expression_function","eval","numKeys","active","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","getVelocityAtTime","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","posterizeTime","framesPerSecond","hasParent","executeExpression","frameExpressionId","__preventDeadCodeRemoval","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","MaskManagerInterface","MaskInterface","_mask","_masksInterfaces","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","speedAtTime","getSpeedAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_px","_py","_pz","_transformFactory","getMatrix","toWorldMat","toWorldVec","applyPoint","fromWorldVec","invertPoint","sampleImage","transformInterface","anchorPointDescriptor","defineProperties","anchor_point","_name","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","createGroupInterface","groupInterface","mn","_propertyGroup","createValueInterface","numProperties","np","en","expressionProperty","setGroupProperty","effectsData","ShapePathInterface","propertyIndex","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","interfaces","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","_interfaceFunction","_sourceText","sourceText","stringValue","fillColor","_typeof","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","footage","getInterface","expressionHelpers","searchExpressions","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","initialize","SVGComposableEffect","createMergeNode","resultId","ins","feMergeNode","feMerge","linearFilterValue","SVGTintFilter","linearFilter","matrixFilter","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","colorBlack","colorWhite","groupPath","elemChildren","removeAttribute","pathMasker","dasharrayValue","getTotalLength","units","color1","color2","color3","tableR","tableG","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","SVGTransformEffect","CVTransformEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","sigma","dimensions","sigmaX","sigmaY","edgeMode","forceFrame","isUniformScale","scaleHeight","scaleWidth","default","cachedGuess","zones","links","countries","names","guesses","logError","momentVersion","major","minor","charCodeToInt","unpackBase60","whole","fractional","arrayToInt","array","mapIndices","unpack","offsets","untils","intToUntil","abbrs","population","Zone","packedString","_set","Country","country_name","zone_names","OffsetAt","at","toTimeString","abbr","getTimezoneOffset","ZoneScore","zone","offsetScore","abbrScore","findChange","low","high","diff","sortZoneScores","localeCompare","addToGuesses","guessesForUserOffsets","guessesOffset","offsetsLength","filteredGuesses","checkedOffsets","rebuildGuess","intlName","DateTimeFormat","resolvedOptions","normalizeName","zoneScore","change","nextOffset","startYear","getFullYear","lastOffset","userOffsets","zoneScores","getZone","scoreOffsetAt","addZone","packed","normalized","caller","addLink","aliases","alias","normal0","normal1","needsOffset","isUnixTimestamp","_tzm","message","utc","isMoment","unpacked","_index","timestamp","lo","hi","zone_name","country_code","offsetNext","offsetPrev","moveAmbiguousForward","moveInvalidForward","mom","utcOffset","offsetAt","dataVersion","_zones","_links","_names","_countries","country_zones","addCountries","zoneExists","didShowError","guess","ignoreCache","zonesForCountry","country","with_offset","old","abbrWrap","_z","resetZoneWrap","defaultZone","updateOffset","keepTime","_isUTC","isValid","zoneName","zoneAbbr","local","setDefault","momentProperties","monthsShortWithDots","monthsShortWithoutDots","monthsParse","monthsRegex","defineLocale","months","monthsShort","monthsShortRegex","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","weekdays","weekdaysShort","weekdaysMin","weekdaysParseExact","longDateFormat","LT","LTS","LL","LLL","LLLL","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","relativeTime","future","past","ss","hh","dd","ww","M","MM","yy","dayOfMonthOrdinalParse","ordinal","week","dow","doy","hookCallback","hooks","setHookCallback","isObject","hasOwnProp","isObjectEmpty","getOwnPropertyNames","isUndefined","isNumber","isDate","res","extend","valueOf","createUTC","locale","strict","createLocalOrUTC","defaultParsingFlags","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","isFrozen","_isValid","createInvalid","fun","updateInProgress","copyConfig","momentPropertiesLen","_isAMomentObject","_offset","_locale","Moment","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","argLen","deprecations","deprecateSimple","isFunction","Function","set","_config","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","output","_calendar","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","func","localeData","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","invalidDate","replaceLongDateFormatTokens","defaultLongDateFormat","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","D","dates","days","weekday","isoweekdays","isoweekday","DDD","dayofyears","dayofyear","milliseconds","millisecond","Q","quarters","quarter","seconds","weekyears","weekyear","GG","isoweekyears","isoweekyear","weeks","W","isoweeks","isoweek","years","normalizeUnits","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","isoWeekday","dayOfYear","weekYear","isoWeekYear","isoWeek","getPrioritizedUnits","unitsObj","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","match1to2NoLeadingZero","match1to2HasZero","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","absFloor","toInt","argumentForCoercion","coercedNumber","isFinite","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","isLeapYear","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","daysInYear","parseTwoDigitYear","getSetYear","makeGetSet","getIsLeapYear","set$1","isUTC","getUTCMilliseconds","getMilliseconds","getUTCSeconds","getSeconds","getUTCMinutes","getMinutes","getUTCHours","getUTCDate","getUTCDay","getUTCMonth","getMonth","getUTCFullYear","setUTCMilliseconds","setMilliseconds","setUTCSeconds","setSeconds","setUTCMinutes","setMinutes","setUTCHours","setUTCDate","setUTCFullYear","setFullYear","stringGet","stringSet","prioritized","prioritizedLen","daysInMonth","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","setUTCMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortP","longP","shortPieces","longPieces","mixedPieces","createDate","createUTCDate","firstWeekOffset","fwd","dayOfYearFromWeeks","resYear","resDayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","ws","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","kFormat","lowercase","matchMeridiem","_meridiemParse","localeIsPM","kInput","_isPm","isPM","_meridiem","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","globalLocale","baseConfig","meridiemParse","locales","localeFamilies","commonPrefix","minl","normalizeLocale","chooseLocale","loadLocale","isLocaleNameSane","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","exec","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","configFromString","createFromInputFallback","defaults","currentDateArray","nowValue","_useUTC","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","temp","weekdayOverflow","curWeek","createLocal","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","createFromConfig","prepareConfig","preparse","configFromInput","prototypeMin","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","_milliseconds","_days","_bubble","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offsetFromString","chunkOffset","matcher","matches","cloneWithOffset","model","setTime","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","period","isAdding","invalid","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","toISOString","keepOffset","toDate","inspect","datetime","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","localStartOfDate","utcStartOfDate","startOfDate","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","erasName","erasAbbr","erasNarrow","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","parseZone","preParsePostFormat","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","isDSTShifted","proto$1","get$1","field","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","makeAs","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","valueOf$1","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","limit","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","maxSize","_maxSize","clear","_size","_values","SPLIT_REGEX","DIGIT_REGEX","LEAD_DIGIT_REGEX","SPEC_CHAR_REGEX","CLEAN_QUOTES_REGEX","pathCache","setCache","getCache","normalizePath","part","isQuoted","shouldBeQuoted","hasLeadingNumber","hasSpecialChars","safe","iter","idx","isBracket","aa","ca","ea","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","ra","ta","pa","qa","oa","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","prepareStackTrace","Reflect","construct","displayName","Pa","tag","Qa","$$typeof","_payload","_init","Ra","Sa","Ta","Va","_valueTracker","configurable","enumerable","setValue","stopTracking","Ua","Wa","Xa","activeElement","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","controlled","bb","db","eb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","namespaceURI","MSApp","execUnsafeLocalFunction","lastChild","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","qb","rb","sb","tb","menuitem","area","br","embed","hr","keygen","meta","param","track","wbr","ub","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","Wb","memoizedState","dehydrated","Xb","Zb","sibling","Yb","$b","ac","unstable_scheduleCallback","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","oc","clz32","pc","qc","LN2","rc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Map","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","ReactCurrentBatchConfig","ed","transition","fd","gd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","pd","qd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","ud","detail","vd","Ad","screenX","screenY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Meta","Shift","Pd","Qd","code","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","email","password","search","tel","oe","qe","re","se","te","ue","ve","we","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","compareDocumentPosition","Me","HTMLIFrameElement","Ne","contentEditable","Oe","focusedElem","selectionRange","selectionStart","selectionEnd","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","removeAllRanges","addRange","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","$e","af","bf","cf","df","ff","hf","lf","mf","nf","Ub","instance","pf","qf","rf","sf","capture","passive","J","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","clearTimeout","Hf","Jf","queueMicrotask","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","G","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","_owner","_stringRef","refs","Mg","Ng","Og","Pg","Qg","Rg","implementation","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","_currentValue","bh","childLanes","dependencies","firstContext","lanes","dh","eh","memoizedValue","gh","interleaved","ih","jh","kh","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","mh","eventTime","lane","nh","K","oh","ph","qh","rh","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","revealOrder","Dh","Eh","_workInProgressVersionPrimary","Fh","ReactCurrentDispatcher","Gh","Hh","N","O","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","baseQueue","queue","Uh","Vh","Wh","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","dispatch","Xh","Yh","Zh","$h","ai","getSnapshot","bi","ci","di","lastEffect","stores","ei","fi","gi","deps","ji","ki","li","mi","ni","oi","qi","ri","si","ui","vi","xi","yi","zi","Ai","R","Bi","readContext","useCallback","useContext","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ci","defaultProps","Di","Ei","isMounted","_reactInternals","enqueueSetState","enqueueReplaceState","enqueueForceUpdate","Fi","shouldComponentUpdate","isPureReactComponent","Gi","contextType","updater","Hi","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ii","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Ji","digest","Ki","Li","Mi","WeakMap","Ni","Oi","Pi","Qi","getDerivedStateFromError","componentDidCatch","Ri","componentStack","Si","pingCache","Ti","Ui","Vi","Wi","ReactCurrentOwner","Xi","Yi","Zi","$i","aj","compare","bj","cj","dj","baseLanes","cachePool","transitions","ej","fj","gj","hj","ij","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","jj","kj","pendingContext","zj","Aj","Bj","Cj","mj","nj","oj","pj","qj","sj","dataset","dgst","tj","uj","_reactRetry","rj","subtreeFlags","vj","wj","isBackwards","rendering","renderingStartTime","tail","tailMode","xj","Dj","Ej","Fj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","autoFocus","Gj","Hj","Ij","Jj","Kj","WeakSet","Lj","Mj","Nj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","_reactRootContainer","Wj","X","Xj","Yj","Zj","onCommitFiberUnmount","componentWillUnmount","ak","ck","dk","ek","isHidden","fk","gk","hk","ik","jk","kk","__reactInternalSnapshotBeforeUpdate","Vk","lk","mk","nk","ok","Y","pk","qk","rk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","finishedWork","finishedLanes","Pk","timeoutHandle","Qk","Rk","Sk","Tk","Uk","mutableReadLanes","Bc","Oj","onCommitFiberRoot","mc","onRecoverableError","Wk","onPostCommitFiberRoot","Xk","Yk","$k","isReactComponent","pendingChildren","al","mutableSourceEagerHydrationData","bl","pendingSuspenseBoundaries","dl","el","fl","hl","il","yj","Zk","kl","reportError","ll","_internalRoot","nl","ol","pl","rl","ql","unmount","unstable_scheduleHydration","form","sl","usingClientEntryPoint","Events","tl","findFiberByHostInstance","bundleType","rendererPackageName","ul","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","vl","isDisabled","supportsFiber","inject","createPortal","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","__self","__source","Fragment","jsx","jsxs","setState","forceUpdate","escape","_status","_result","Children","only","Component","Profiler","PureComponent","StrictMode","Suspense","act","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","sortIndex","performance","setImmediate","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","reWords","upperFirst","camelCase","pascalCase","snakeCase","kebabCase","sentenceCase","titleCase","toposort","cursor","sorted","visited","outgoingEdges","edge","makeOutgoingEdges","nodesHash","makeNodesHash","visit","predecessors","nodeRep","outgoing","uniqueNodes","hasOwn","classNames","classes","appendClass","newClass","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","amdO","__esModule","leafPrototypes","getProto","getPrototypeOf","ns","definition","chunkId","promises","miniCssF","globalThis","inProgress","dataWebpackPrefix","script","needAttach","charset","nc","onScriptComplete","doneFns","head","toStringTag","nmd","installedChunks","installedChunkData","promise","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","self","Action","PopStateEventType","invariant","getHistoryState","usr","createLocation","_extends","hash","parsePath","parsedPath","hashIndex","searchIndex","getUrlBasedHistory","getLocation","createHref","validateLocation","v5Compat","globalHistory","history","Pop","getIndex","handlePop","createURL","replaceState","listen","encodeLocation","Push","historyState","pushState","DOMException","Replace","go","ResultType","stripBasename","basename","startsWith","endsWith","nextChar","validMutationMethodsArr","validRequestMethodsArr","NavigationContext","LocationContext","useInRouterContext","Router","_ref5","basenameProp","locationProp","navigationType","static","staticProp","UNSAFE_invariant","navigationContext","v7_relativeSplatPath","locationContext","trailingPathname","__reactRouterVersion","startTransitionImpl","ReactDOM","BrowserRouter","historyRef","setStateImpl","v7_startTransition","newState","DataRouterHook","DataRouterStateHook","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","defaultOptions","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","unescape","i18nInstance","initReactI18next","setDefaults","react","setI18n","I18nContext","I18nextProvider","i18n","defaultNS","consoleLogger","concreteLogger","_len","_key","forward","_len2","_key2","_len3","_key3","_len4","_key4","debugOnly","moduleName","baseLogger","EventEmitter","observers","on","events","numListeners","off","emit","observer","numTimesAdded","defer","rej","makeString","lastOfPathSeparatorRegExp","cleanKey","canNotTraverseDeeper","getLastOfPath","Empty","stackIndex","deepExtend","overwrite","_entityMap","looksLikeObjectPathRegExpCache","capacity","regExpMap","regExpQueue","getRegExp","regExpFromCache","regExpNew","deepFind","keySeparator","nextPath","getCleanedCode","ResourceStore","super","ignoreJSONStructure","addNamespaces","removeNamespaces","getResource","lng","addResource","silent","addResources","resources","addResourceBundle","deep","skipCopy","removeResourceBundle","hasResourceBundle","getResourceBundle","compatibilityAPI","getDataByLanguage","hasLanguageSomeTranslations","postProcessor","processors","addPostProcessor","handle","translator","processor","checkedLoadedFor","Translator","services","changeLanguage","language","exists","interpolation","resolved","extractFromKey","nsSeparator","namespaces","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","looksLikeObjectPath","possibleChars","interpolator","nestingRegexp","lastKey","overloadTranslationOptionHandler","returnDetails","namespace","appendNamespaceToCIMode","usedKey","exactUsedKey","usedLng","usedNS","usedParams","getUsedParamsDetails","resUsedKey","resExactUsedKey","resType","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValueSuffixOrdinalFallback","needsZeroSuffixLookup","shouldUseIntlApi","pluralSeparator","isValidLookup","resForMissing","missingKeyNoValueFallbackToKey","updateMissing","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","specificDefaultValue","defaultForMissing","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","suffixes","getSuffixes","appendNamespaceToMissingKey","parseMissingKeyHandler","defaultVariables","skipInterpolation","skipOnVariables","nestBef","interpolate","nest","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","extracted","fallbackNS","needsContextHandling","codes","utils","hasLoadedNamespace","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","ordinalPrefix","contextKey","contextSeparator","possibleKey","returnNull","returnEmptyString","resourceStore","optionsKeys","useOptionsReplaceForData","LanguageUtil","supportedLngs","getScriptPartFromCode","formatLanguageCode","getLanguagePartFromCode","specialCases","lowerCaseLng","cleanCode","isSupportedCode","nonExplicitSupportedLngs","getBestMatchFromCodes","cleanedLng","lngOnly","supportedLng","fallbacks","fallbackCode","fallbackCodes","addCode","sets","nr","_rulesPluralsTypes","nonIntlVersions","intlVersions","suffixesOrder","zero","one","two","few","many","PluralResolver","compatibilityJSON","PluralRules","rules","createRules","plurals","pluralRulesCache","addRule","clearCache","getRule","cleanedCode","cacheKey","needsPlural","pluralCategories","getPluralFormsOfKey","pluralCategory1","pluralCategory2","pluralCategory","prepend","select","getSuffixRetroCompatible","noAbs","simplifyPluralSuffix","returnSuffix","deepFindWithDefaults","getPathWithDefaults","regexSafe","Interpolator","escapeValue","escape$1","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapeSuffix","unescapePrefix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","getOrResetRegExp","existingRegExp","regexp","regexpUnescape","replaces","handleFormat","interpolationkey","missingInterpolationHandler","safeValue","todo","matchedVar","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","formatters","doReduce","createCachedFormatter","optForCache","formatParams","formatter","Formatter","opt","NumberFormat","currency","relativetime","RelativeTimeFormat","ListFormat","iOpts","addCached","findIndex","mem","formatName","formatOptions","formatStr","optStr","trimmedKey","parseFormatStr","formatted","valOptions","Connector","backend","store","waitingReads","maxParallelReads","readingCalls","maxRetries","retryTimeout","queueLoad","languages","toLoad","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","pendingCount","errors","pushPath","removePending","loadedKeys","fcName","tried","wait","prepareLoading","loadOne","fallbackValue","isUpdate","clb","initImmediate","preload","partialBundledLanguages","tDescription","transformOptions","noop","I18n","inst","modules","external","isInitialized","isClone","isInitializing","defOpts","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","deferred","finish","initializedStoreOnce","loadResources","usedCallback","resolvedLanguage","setResolvedLanguage","reloadResources","use","lngInLngs","_this2","isLanguageChangingTo","setLngProps","setLng","cacheUserLanguage","async","detect","getFixedT","keyPrefix","_this3","fixedT","resultKey","setDefaultNamespace","lastLng","loadNotPending","loadState","precheck","preResult","loadNamespaces","loadLanguages","preloaded","newLngs","createInstance","cloneInstance","forkResourceStore","mergedOptions","accountOnboarding","enAccount","frAccount","es","esAccount","deAccount","nlAccount","fields","defaultFonts","titleFont","subtitleFont","labelFont","buttonFont","fontKeys","transformedFonts","fontValue","transformFonts","nativeFonts","nonNativeFonts","uniqueNonNativeFonts","fontsToImport","fontWeights","uniqueWeights","googleFontsUrl","linkElement","alignmentBottomValue","alignmentTopValue","alignmentMarginValue","kindOf","thing","kindOfTest","typeOfTest","isArrayBuffer","isPlainObject","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","allOwnKeys","findKey","_global","isContextDefined","isTypedArray","TypedArray","isHTMLForm","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","_setImmediate","setImmediateSupported","postMessageSupported","asap","nextTick","isBuffer","isFormData","kind","FormData","isArrayBufferView","isView","isBoolean","isStream","pipe","merge","caseless","assignValue","targetKey","stripBOM","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","merged","searchString","forEachEntry","matchAll","regExp","freezeMethods","writable","toObjectSet","arrayOrString","delimiter","toCamelCase","toFiniteNumber","generateString","alphabet","isSpecCompliantForm","toJSONObject","reducedValue","isThenable","AxiosError","captureStackTrace","columnNumber","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","dots","predicates","formData","metaTokens","visitor","defaultVisitor","useBlob","convertValue","Buffer","isFlatArray","exposedHelpers","build","encode","charMap","AxiosURLSearchParams","_pairs","toFormData","encoder","_encode","buildURL","serializeFn","serialize","serializedParams","hashmarkIndex","handlers","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","isBrowser","URLSearchParams","protocols","hasBrowserEnv","_navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","platform","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","transitional","transitionalDefaults","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","formDataToJSON","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","stringifySafely","transformResponse","JSONRequested","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","method","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","rawHeaders","parseHeaders","tokensRE","parseTokens","deleted","deleteHeader","formatHeader","targets","asStrings","computed","accessor","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","mapped","headerValue","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","ERR_BAD_REQUEST","samplesCount","timestamps","firstSampleTS","chunkLength","startedAt","bytesCount","passed","lastArgs","timer","invoke","flush","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","speedometer","throttle","lengthComputable","progressBytes","progress","estimated","progressEventDecorator","throttled","asyncDecorator","msie","urlParsingNode","originURL","resolveURL","host","requestURL","expires","domain","secure","cookie","toGMTString","remove","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","newConfig","auth","btoa","username","Boolean","isURLSameOrigin","xsrfValue","cookies","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","signal","onloadend","responseHeaders","getAllResponseHeaders","statusText","responseURL","onabort","ECONNABORTED","ERR_NETWORK","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","upload","cancel","abort","subscribe","aborted","parseProtocol","composeSignals","signals","controller","AbortController","reason","streamChunk","chunkSize","byteLength","readStream","stream","asyncIterator","reader","getReader","trackStream","onProgress","onFinish","iterable","readBytes","_onFinish","ReadableStream","pull","loadedBytes","enqueue","highWaterMark","isFetchSupported","Request","Response","isReadableStreamSupported","encodeText","TextEncoder","arrayBuffer","supportsRequestStream","duplexAccessed","hasContentType","duplex","supportsResponseStream","resolvers","ERR_NOT_SUPPORT","resolveBodyLength","getContentLength","_request","getBodyLength","fetchOptions","composedSignal","toAbortSignal","requestContentLength","isCredentialsSupported","credentials","isStreamResponse","responseContentLength","responseData","knownAdapters","http","xhrAdapter","fetchAdapter","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","formatMessage","desc","ERR_DEPRECATED","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","InterceptorManager","configOrUrl","dummy","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","defaultConfig","Cancel","isAxiosError","formToJSON","getAdapter","useApi","isProduction","generateCacheKey","endpoint","getStoredNumber","storedNumber","localStorage","getItem","updateStoredNumber","currentNumber","setItem","requestTimestamps","blockFor","noCache","axiosConfig","cachedItem","mutate","_config$headers","modifiedData","removeItem","apiMethods","post","put","patch","DefaultContext","IconContext","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","ownKeys","_objectSpread","_defineProperty","toPrimitive","_toPrimitive","_toPropertyKey","Tree2Element","GenIcon","IconBase","conf","svgProps","computedSize","FaXmark","isModalOpen","isClosing","openModal","closeModal","formContent","previousScrollPosition","setPreviousScrollPosition","handleCloseModal","_jsxs","_Fragment","_jsx","handleOpenModal","reserveIcon","alt","theme","subtitle","selectedDate","onSelectDate","isExpanded","setIsExpanded","onMonthChange","setStartDate","availableDates","setAvailableDates","calendarRef","maxDate","today","monthStart","monthEnd","startDayOfWeek","endDayOfWeek","formattedDate","isAvailable","isPast","isCurrentMonth","generateCalendarGrid","capitalizedMonthName","formatDisplayDate","selectedMoment","tomorrow","viewBox","handlePrevMonth","newStartDate","handleNextMonth","wIndex","dayObj","dIndex","isSelected","date1","date2","isSameDay","handleChange","resetFormDataFields","expanded","setCurrentExpandedField","suggestedDates","setSuggestedDates","displayedMonth","setDisplayedMonth","handleDateSelect","formatDateForFilter","foundDates","available","formatSuggestionTitle","dateMoment","capitalizedWeekday","formatSuggestionSubtitle","htmlFor","Calendar","newMonthDate","handleSuggestionClick","getChefsRecommendation","availableTimes","eligibleTimes","timeValue","isTimeEligibleForChefsRecommendation","setAvailableTimes","chefsRecommendation","setChefsRecommendation","isLoading","setIsLoading","timeSelectorRef","timeoutId","fetchAvailableTimes","formatDate","arrivalsFilteredTimeblocks","finalTimeblocks","tableFilteredTimeblocks","stopTimeFilteredTimeblocks","times","timeKey","recommendedTime","updatedTimes","applyRecommendationLabel","handleClickOutside","formatDisplayTime","handleTimeSelect","selectedTime","setGuests","maxGuests","onExceedMaxGuests","customGuestsVisible","setCustomGuestsVisible","guestSelectorRef","showNoticeForMaxGuests","presetNumbers","showPlusSixOption","limitedPreset","numGuests","handleButtonClick","handleGuestSelect","handleCustomButtonClick","onChange","FaCalendarPlus","FaEnvelope","FaExclamationTriangle","FaPrint","FaShareAlt","noticePhoneNumber","isMededelingActive","mededelingen","selectedDay","selectedDateObj","selectedTimeObj","med","medStartDate","medEndDate","mededeling","medStartTimeObj","medEndTimeObj","renderGeneralNotification","combinedRegex","setCurrentStep","generalNotification","expandedField","giftcardChoice","setGiftcardChoice","setSelectedGiftcard","availableGiftcards","_restaurantData$openi","_restaurantData$openi2","_restaurantData$openi3","breakfastScheme","card","lunchScheme","dinnerScheme","getAvailableGiftcards","currentExpandedField","setReservations","api","previousGuestsRef","maxGasten","timeField","guestNumberField","showNotice","noticeType","isTimeSelected","previousGuests","currentGuests","fetchReservationsForMonth","monthMoment","baseDate","beginDate","restaurantId","baseDomain","activeMededeling","removeProperty","selectStyle","borderRadius","giftcardRowStyle","flexDirection","onSubmit","Title","MededelingNotification","GuestNumberSelector","MaxGuestMessage","DateSelector","TimeSelector","isCheckBoxInput","isDateObject","isNullOrUndefined","isObjectType","getEventValue","isNameInFieldArray","getNodeParentName","isWeb","HTMLElement","cloneObject","FileList","tempObject","prototypeCopy","compact","isKey","stringToPath","tempPath","objValue","EVENTS","VALIDATION_MODE","INPUT_VALIDATION_RULES","getProxyFormState","formState","control","localProxyFormState","isRoot","defaultValues","_defaultValues","_proxyFormState","isEmptyObject","shouldRenderFormState","formStateData","updateFormState","convertToArrayPayload","useSubscribe","_props","subscription","subject","generateWatchOutput","formValues","isGlobal","watch","fieldName","watchAll","appendErrors","validateAllFieldCriteria","getValidationModes","isOnSubmit","isOnBlur","isOnChange","isOnAll","isOnTouch","isWatched","isBlurEvent","watchName","iterateFieldsByAction","fieldsNames","abortEarly","currentField","updateFieldArrayRootError","fieldArrayErrors","isFileInput","isMessage","isRadioInput","isRegex","defaultResult","validResult","getCheckboxValue","defaultReturn","getRadioValue","getValidateError","getValueAndMessage","validationData","validateField","shouldUseNativeValidation","isFieldArray","maxLength","minLength","validate","valueAsNumber","mount","inputValue","inputRef","setCustomValidity","reportValidity","isRadio","isCheckBox","isRadioOrCheckbox","isEmpty","appendErrorsCurry","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxOutput","minOutput","valueDate","valueAsDate","convertTimeToDate","isTime","isWeek","valueNumber","maxLengthOutput","minLengthOutput","patternValue","validateError","validationResult","unset","childObject","updatePath","baseGet","isEmptyArray","createSubject","_observers","isPrimitive","deepEqual","object1","object2","keys1","keys2","isMultipleSelect","live","isConnected","objectHasFunction","markFieldsDirty","isParentNodeArray","getDirtyFieldsFromDefaultValues","dirtyFieldsFromValues","getDirtyFields","getFieldValueAs","setValueAs","getFieldValue","files","selectedOptions","getRuleValue","ASYNC_FUNCTION","schemaErrorLookup","_fields","foundError","reValidateMode","shouldFocusError","createFormControl","delayErrorCallback","_formState","submitCount","isDirty","isValidating","isSubmitted","isSubmitting","isSubmitSuccessful","touchedFields","dirtyFields","validatingFields","_formValues","shouldUnregister","_state","unMount","_subjects","validationModeBeforeSubmit","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","criteriaMode","_updateValid","shouldUpdateValid","_executeSchema","executeBuiltInValidation","_updateIsValidating","updateValidAndValue","shouldSkipSetValueAs","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","shouldUpdateField","isPreviousDirty","disabledField","_getDirty","isCurrentFieldPristine","isPreviousFieldTouched","shouldRenderByError","fieldState","previousFieldError","delayError","updateErrors","updatedFormState","getResolverOptions","shouldOnlyCheckValid","valid","isFieldArrayRoot","isPromiseFunction","fieldReference","validateFunction","fieldError","getValues","_getWatch","optionRef","checkboxRef","radioRef","shouldTouch","shouldValidate","setValues","fieldKey","cloneValue","isFieldValueUpdated","_updateIsFieldValueUpdated","shouldSkipValidation","skipValidation","isTouched","watched","onBlur","previousErrorLookupResult","errorLookupResult","_focusInput","fieldNames","executeSchemaAndUpdateState","shouldFocus","getFieldState","setError","currentError","currentRef","restOfErrorTree","unregister","keepValue","keepError","keepDirty","keepTouched","keepIsValidating","keepDefaultValue","keepIsValid","_updateDisabledField","register","disabledIsDefined","progressive","fieldRef","radioOrCheckbox","_focusError","handleSubmit","onValid","onInvalid","onValidError","fieldValues","_reset","keepStateOptions","updatedValues","cloneUpdatedValues","isEmptyResetValues","keepDefaultValues","keepValues","keepDirtyValues","fieldsToCheck","keepSubmitCount","keepIsSubmitted","keepErrors","keepIsSubmitSuccessful","_removeUnmounted","_updateFieldArray","shouldSetValues","shouldUpdateFieldsAndState","argA","argB","unsetEmptyArray","_getFieldArray","_resetDefaultValues","resetOptions","_updateFormState","_disableForm","_setErrors","resetField","clearErrors","inputName","setFocus","shouldSelect","raw","inner","errorToString","regExpToString","symbolToString","SYMBOL_REGEXP","printSimpleValue","quoteStrings","typeOf","printNumber","printValue","_Symbol$toStringTag","_Symbol$hasInstance","_Symbol$toStringTag2","strReg","ValidationErrorNoStack","errorOrErrors","ValidationError","isError","innerErrors","hasInstance","formatError","disableStack","errorNoStack","mixed","defined","notNull","oneOf","notOneOf","notType","originalValue","castMsg","uuid","datetime_precision","datetime_offset","uppercase","lessThan","moreThan","positive","negative","isValue","noUnknown","spec","typeLen","isSchema","__isYupSchema__","Condition","fromOptions","otherwise","check","_branch","branch","builder","prefixes","Reference","isContext","isSibling","cast","describe","isRef","__isYupRef","isAbsent","createValidation","panic","skipAbsent","disableStackTrace","createError","overrides","nextParams","handleResult","validOrError","handleError","sync","OPTIONS","getIn","lastPart","lastPartDebug","_part","isTuple","innerType","parentPath","ReferenceSet","resolveAll","newItems","removeItems","seen","Schema","tests","conditions","_mutate","internalTests","_whitelist","_blacklist","exclusiveTests","_typeCheck","withMutation","typeError","strip","recursive","nullable","optional","coerce","nonNullable","_type","combined","mergedSpec","isType","prevSchema","condition","resolveOptions","_options$strict","_options$abortEarly","_options$recursive","_options$disableStack","resolvedSchema","allowOptionality","assert","_cast","formattedValue","formattedResult","prevValue","getDefault","_validate","initialTests","runTests","initialErrors","runOptions","fired","panicOnce","nextOnce","nestedErrors","asNestedTest","originalParent","isIndex","testOptions","_options$disableStack2","validated","validateSync","_options$disableStack3","isValidSync","_getDefault","nullability","optionality","notRequired","isExclusive","exclusive","when","dep","enums","whiteList","valids","blacklist","invalids","returnsTrue","MixedSchema","BooleanSchema","_raw","isTrue","isFalse","isoReg","parseDateStruct","_regexResult$7$length","_regexResult$","regexResult","toNumber","precision","plusMinus","hourOffset","minuteOffset","rEmail","rUrl","rUUID","rIsoDateTime","isTrimmed","objStringTag","create$6","StringSchema","strValue","excludeEmptyString","allowOffset","struct","ensure","create$5","NumberSchema","isNaN$1","less","more","isInteger","truncate","_method","avail","create$4","DateSchema","totalMinutesOffset","parseIsoDate","INVALID_DATE","prepareParam","_err$path","sortByKeyOrder","parseJson","deepPartial","fieldSchema","setFields","nextArray","defaultSort","create$3","ObjectSchema","_sortErrors","_nodes","_excludedEdges","_options$stripUnknown","stripUnknown","intermediateValue","innerOptions","__validating","isChanged","fieldSpec","objectErrors","fieldErrors","nextFields","schemaOrRef","dft","_innerOptions","excludedEdges","excludes","addNode","depPath","sortFields","additions","pick","picked","omit","remaining","fromGetter","newObj","deepHas","json","noAllow","unknownKeys","known","unknown","allow","transformKeys","constantCase","_innerOptions2","ArraySchema","_opts","castArray","castElement","arrayErrors","_options$originalValu2","_options$originalValu","innerTypeErrors","original","rejector","TupleSchema","schemas","itemTypes","tupleErrors","itemSchema","dateString","normalizedDateString","useFetchRequiredFields","setRequiredFields","loadingFields","setLoadingFields","fetchRequiredFields","menu","useFetchFields","setIsSubmitting","availableMenus","setAvailableMenus","showNotification","setShowNotification","errorMessage","setErrorMessage","validationSchema","schemaFields","Yup","firstName","lastName","phone","extraInfo","_formControl","useForm","yupResolver","watchedValues","formatDateToDutch","selectedDateTime","filteredMenus","menuItem","menuStartDate","menuEndDate","menuStartTime","menuEndTime","isTimeInRange","selectedDayOfWeek","isDayMatching","submissionData","Audio","sound1","storageError","_id","$oid","summaryRef","handlePrint","printContent","printWindow","print","alert","u8","u16","i32","Int32Array","fleb","fdeb","clim","freb","revfl","revfd","rev","hMap","rvb","sv","r_1","flt","fdt","flm","flrm","fdm","fdrm","bits","bits16","shft","slc","subarray","nt","inflt","dat","buf","dict","noBuf","noSt","cbuf","nbuf","final","bt","lm","dm","lbt","dbt","tbts","hLit","hcLen","ldt","clt","clbmsk","clm","lt","dt","lms","dms","lpos","sym","dsym","dend","wbits","wbits16","hTree","et","i0","maxSym","mbt","lft","i2_1","i2_2","i2_3","cli","cln","cls","clen","wfblk","wblk","syms","bs","dlt","mlb","ddt","mdb","lclt","nlc","lcdt","ndc","lcfreq","lct","mlcb","nlcc","flen","ftlen","dtlen","llm","lcts","clct","dst","deo","dflt","plvl","lst","msk_1","bs1_1","bs2_1","hsh","lc_1","hv","imod","pimod","rem","ch_1","dif","maxn","maxd","mmd","lin","din","adler","dopt","dictionary","newDat","wbytes","zlh","zls","zlibSync","unzlibSync","TextDecoder","MouseEvent","createEvent","initMouseEvent","saveAs","HTMLAnchorElement","webkitURL","download","revokeObjectURL","msSaveOrOpenBlob","autoBom","safari","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","example","toRGB","toHex","atob","modify","perm","processOwnerPassword","encryptionKey","lsbFirstWord","hexToBytes","publish","getTopics","objectNumber","gState","coords","colors","xStep","yStep","cloneIndex","compress","compressPdf","encryption","userPassword","ownerPassword","userPermissions","userUnit","floatPrecision","defaultPathOperation","putOnlyUsedFonts","internal","__private__","PubSub","getPdfVersion","setPdfVersion","a0","a5","a6","a7","a8","a9","a10","b0","b3","b5","b6","b7","b8","b9","b10","c0","c4","c5","c6","c7","c8","c9","c10","legal","ledger","tabloid","getPageFormats","getPageFormat","saveGraphicsState","Vt","Rr","setFontSize","getFontSize","restoreGraphicsState","combineFontStyleAndFontWeight","advancedAPI","compatAPI","isAdvancedAPI","roundToPrecision","hpf","f3","setPrecision","getFileId","setFileId","convertDateToPDFDate","convertPDFDateToDate","setCreationDate","getCreationDate","$","padd2","padd2Hex","rt","ot","ct","setCustomOutputDestination","ht","resetCustomOutputDestination","ft","getArrayBuffer","getStandardFonts","gt","mt","vt","R2L","setR2L","getR2L","yt","wt","setZoomMode","getZoomMode","Nt","Lt","setPageMode","getPageMode","At","setLayoutMode","getLayoutMode","setDisplayMode","author","keywords","creator","getDocumentProperty","getDocumentProperties","setDocumentProperties","setProperties","setDocumentProperty","St","Pt","kt","It","Ft","Ct","jt","Ot","Bt","Mt","Et","qt","Dt","Rt","Tt","Ut","hotfixes","zt","Ht","Wt","_matrix","shx","decompose","shy","inversed","Cr","applyToRectangle","jr","Gt","matrixMult","Yt","unitMatrix","Jt","ShadingPattern","TilingPattern","addShadingPattern","beginTilingPattern","Br","endTilingPattern","Xt","newObject","Kt","Zt","newObjectDeferred","$t","newAdditionalObject","objId","Qt","decodeColorString","encodeColorString","ch1","ch2","ch3","ch4","pdfColorType","getFilters","putStream","alreadyAppliedFilters","addLength1","objectId","encryptor","additionalKeyValues","API","processDataByFilters","reverseChain","putPage","contentsObjId","rootDictionaryObjId","resourceDictionaryObjId","mediaBox","bottomLeftX","bottomLeftY","topRightX","topRightY","cropBox","bleedBox","trimBox","artBox","pageContext","pageNumber","page","putPages","isAlreadyPutted","postScriptName","encoding","pages","resourcesOid","objectOid","MAX_SAFE_INTEGER","isStandardFont","metadata","pdfEscape","sourceEncoding","outputEncoding","autoencode","codePages","noBOM","beginPage","Lr","kr","Ir","setPage","getNumberOfPages","disableWarning","noFallback","normal","putInfo","putCatalog","putTrailer","oid","putHeader","putXRef","buildDocument","toHexString","getBlob","foo","bar","filename","pdfObjectUrl","pdfJsUrl","querySelector","PDFViewerApplication","Ge","getPageInfo","getPageInfoByObjId","getCurrentPageInfo","addPage","insertPage","movePage","deletePage","scope","align","lineHeightFactor","lr","scaleFactor","TabLen","maxWidth","splitTextToSize","mutex","activeFontKey","activeFontSize","rotationDirection","charSpace","setCharSpace","getCharSpace","horizontalScale","renderingMode","usedRenderingMode","pageSize","getWidth","getStringUnitWidth","doKerning","yr","ut","xr","clipEvenOdd","discardPath","isValidStyle","setDefaultPathOperation","getStyle","er","rr","fillEvenOdd","fillStroke","fillStrokeEvenOdd","setGState","cr","ur","curveTo","triangle","roundedRect","SQRT2","ellipse","circle","setFont","getFont","getFontList","addFont","getLineWidth","setLineWidth","setLineDashPattern","getLineHeight","mr","setLineHeightFactor","vr","getLineHeightFactor","getHorizontalCoordinate","getVerticalCoordinate","wr","getHorizontalCoordinateString","Nr","getVerticalCoordinateString","strokeColor","getStrokeColor","getDrawColor","setStrokeColor","setDrawColor","Ar","getFillColor","setFillColor","Sr","getTextColor","setTextColor","Pr","CapJoinStyles","butt","but","miter","rounded","projecting","project","bevel","setLineCap","setLineJoin","setLineMiterLimit","setMiterLimit","GState","Fr","addGState","setCurrentTransformationMatrix","comment","Or","currentPage","pagesContext","qr","outputDestination","Dr","Tr","Er","beginFormObject","endFormObject","Mr","doFormObject","getFormObject","returnPromise","unload","getPageWidth","setPageWidth","getPageHeight","setPageHeight","getCoordinateString","collections","newObjectDeferredBegin","setWidth","getHeight","setHeight","encryptionOptions","getEncryptor","getPDFVersion","Point","Rectangle","hasHotfix","__acroform__","BBox","setBit","clearBit","getBit","getBitForPdf","setBitForPdf","clearBitForPdf","calculateCoordinates","lowerLeft_X","lowerLeft_Y","upperRight_X","upperRight_Y","appearanceStreamContent","DV","_V","maxFontSize","multiline","xForms","acroFormDictionaryRoot","printedOut","annotations","acroformPlugin","FieldNum","_eventID","Fields","hasAnnotation","Kids","Rect","DA","createDefaultAppearanceStream","getKeyValueListForStream","hasAppearanceStream","arrayToPdfArray","_objId","_scope","FT","getOptions","setOptions","addOption","removeOption","combo","edit","CA","pushButton","radio","caption","appearanceState","_AppearanceType","RadioButton","Circle","createAppearanceStream","optionName","setAppearance","getCA","createOption","Parent","CheckBox","On","YesNormal","YesPushDown","Off","OffPushDown","Bezier_C","Cross","calculateCross","x4","addField","AcroFormChoiceField","AcroFormListBox","AcroFormComboBox","AcroFormEditBox","AcroFormButton","AcroFormPushButton","AcroFormRadioButton","AcroFormCheckBox","AcroFormTextField","AcroFormPasswordField","AcroFormAppearance","AcroForm","ChoiceField","ListBox","ComboBox","EditBox","Button","PushButton","TextField","PasswordField","Appearance","__addimage__","PNG","TIFF","JPEG","JPEG2000","GIF87a","GIF89a","WEBP","BMP","getImageFileTypeByImageData","colorSpace","INDEXED","palette","sMask","DEVICE_CMYK","bitsPerComponent","decodeParameters","transparency","predictor","addImage_images","loadFile","color_spaces","DEVICE_RGB","DEVICE_GRAY","CAL_GREY","CAL_RGB","LAB","ICC_BASED","PATTERN","SEPARATION","DEVICE_N","DCT_DECODE","FLATE_DECODE","LZW_DECODE","JPX_DECODE","JBIG2_DECODE","ASCII85_DECODE","ASCII_HEX_DECODE","RUN_LENGTH_DECODE","CCITT_FAX_DECODE","image_compression","NONE","FAST","MEDIUM","SLOW","sHashCode","validateStringAsBase64","extractImageFromDataUrl","mimeType","supportsArrayBuffer","Int8Array","Float64Array","binaryStringToUint8Array","arrayBufferToBinaryString","imageData","compression","convertBase64ToBinaryString","getImageProperties","fileType","contents","_nameMap","finalBounds","magFactor","createAnnotation","textWithLink","getTextWidth","__arabicParser__","isInArabicSubstitutionA","isArabicLetter","isArabicEndLetter","isArabicAlfLetter","arabicLetterHasIsolatedForm","arabicLetterHasFinalForm","arabicLetterHasInitialForm","arabicLetterHasMedialForm","resolveLigatures","isArabicDiacritic","getCorrectForm","processArabic","autoPrint","addJS","pageWrapXEnabled","pageWrapX","pageWrapYEnabled","pageWrapY","pdf","context2d","_canvas","__cell__","headerFunction","margins","lastCell","setHeaderFunction","getTextDimensions","cellAddPage","cell","tableHeaderRow","printHeaders","printHeaderRow","autoSize","headerBackgroundColor","headerTextColor","table_font_size","prompt","setTableHeaderRow","rowStart","row","cellStart","table_x","table_y","italic","oblique","stretch","fixed","monospace","terminal","cursive","fantasy","serif","icon","trimLeft","isStrokeTransparent","isFillTransparent","clip_path","lineDash","prevPageLastElemOffset","ignoreClearRect","fontFaces","defaultFontFamily","genericFontFamilies","arial","Arial","verdana","Verdana","helvetica","Helvetica","getLineDash","quadraticCurveTo","startAngle","endAngle","counterclockwise","arcTo","strokeRect","ctxStack","isCanvasGradient","getColor","autoPaging","posY","posX","begin","deltas","colorStops","y4","prevLineDash","overrideMimeType","loadImageFile","DOMPurify","dompurify","sanitize","convert","template","setProgress","overlay","enableLinks","jsPDF","toContainer","toCanvas","toImg","toPdf","thenList","setPageSize","javascriptEnabled","onrendered","toContext2d","quality","outputImg","outputPdf","doCallback","setMargin","getPageSize","ratio","updateProgress","thenCore","thenExternal","catchExternal","using","export","run","html","worker","outline","createNamedDestinations","makeRef","genIds_r","renderRoot","renderItems","objStart","count_r","objEnd","processJPEG","numcomponents","imgData","readUInt32","colorType","compressionMethod","filterMethod","interlaceMethod","numFrames","numPlays","xOffset","readUInt16","disposeOp","blendOp","indexed","grayscale","hasAlphaChannel","pixelBitlength","decodePixels","decodePalette","copyToImageData","_decodedPalette","decodeFrames","animate","_timeout","stopAnimation","_png","has_local_palette","palette_offset","palette_size","data_offset","data_length","transparent_index","interlaced","disposal","loopCount","frameInfo","decodeAndBlitFrameBGRA","decodeAndBlitFrameRGBA","datav","DataView","is_with_alpha","bottom_up","parseHeader","parseBGR","Ur","zr","Hr","Hn","Wn","Vn","Gn","Ed","Cd","RGBA","Sd","Tn","Sn","An","qn","Rn","Un","memory","$n","Gr","Wr","Vr","Zr","$r","Yr","En","Qr","tn","Dn","nn","xn","zn","Xr","VP8LMapColor32b","Jr","VP8LMapColor8b","Kr","Qn","Xn","Zn","Jn","Yn","Kn","_n","Kd","Ud","Gd","ga","Cn","Pn","kn","In","Fn","cn","un","hn","sn","dn","pn","gn","vn","bn","yn","wn","Nn","Ln","Bn","jn","Mn","Predictor0","Predictor1","Predictor2","Predictor3","Predictor4","Predictor5","Predictor6","Predictor7","Predictor8","Predictor9","Predictor10","Predictor11","Predictor12","Predictor13","PredictorAdd0","PredictorAdd1","PredictorAdd2","ColorIndexInverseTransform","MapARGB","VP8LColorIndexInverseTransformAlpha","MapAlpha","VP8LPredictorsAdd","VP8LPredictors","VP8LPredictorsAdd_C","VP8LPredictors_C","UpsampleRgbLinePair","UpsampleBgrLinePair","UpsampleRgbaLinePair","UpsampleBgraLinePair","UpsampleArgbLinePair","UpsampleRgba4444LinePair","UpsampleRgb565LinePair","WebPDecodeRGBA","src_off","src_size","feature_flags","canvas_width","canvas_height","bgcolor","loop_count","offset_x","offset_y","dispose","blend","rgbaoutput","dataurl","loop_counter","imgwidth","imgheight","processPNG","processGIF89A","processGIF87A","fileSize","getUint32","reserved","headerSize","getInt32","planes","getUint16","bitPP","rawSize","importantColors","getUint8","quad","bit1","bit4","bit8","bit15","bit16","bit24","bit32","getData","processBMP","processWEBP","processRGBA","setLanguage","languageSettings","isSubscribed","sq","hy","ast","eu","my","cv","cs","fo","fy","fur","gu","hu","iu","km","ky","ko","mo","nv","no","om","qu","rm","ro","ru","tig","ts","hsb","vo","zu","languageCode","getCharWidthsArray","widths","Unicode","fof","kerning","widthOfString","widthOfGlyph","characterToGlyph","textIndent","lineIndent","__fontmetrics__","uncompress","WinAnsiEncoding","Courier","ZapfDingbats","existsFileInVFS","getFileFromVFS","TTFFont","glyIdsUsed","addSvgAsImage","ignoreMouse","ignoreAnimation","ignoreDimensions","canvg","fromString","putTotalPages","pdfEscape16","viewerPreferences","HideToolbar","explicitSet","valueSet","pdfVersion","HideMenubar","HideWindowUI","FitWindow","CenterWindow","DisplayDocTitle","NonFullScreenPageMode","Direction","ViewArea","ViewClip","PrintArea","PrintClip","PrintScaling","Duplex","PickTrayByPDFSize","PrintPageRange","NumCopies","viewerpreferences","configuration","__metadata__","namespaceuri","metadata_object_number","addMetadata","toUnicode","subset","PDFObject","stemV","italicAngle","ascender","decender","capHeight","rawData","hmtx","unitsPerEm","cmap","unicode","codeMap","vFS","addFileToVFS","__bidiEngine__","EN","AN","hiLevel","doBidiReorder","isInputVisual","isOutputVisual","isInputRtl","isOutputRtl","isSymmetricSwapping","readString","registerTTF","directory","hhea","maxp","os2","loca","glyf","lineGap","xMin","yMin","italic_angle","xHeight","familyClass","isSerif","isScript","isFixedPitch","forGlyph","advance","readByte","writeByte","writeUInt32","readInt32","writeInt32","writeUInt16","readInt16","writeInt16","writeString","readShort","writeShort","readLongLong","writeLongLong","readInt","writeInt","scalarType","searchRange","entrySelector","rangeShift","checksum","__super__","file","revision","checkSumAdjustment","magicNumber","created","modified","macStyle","lowestRecPPEM","fontDirectionHint","indexToLocFormat","glyphDataFormat","platformID","encodingID","isUnicode","new","subtable","maxGlyphID","advanceWidthMax","minLeftSideBearing","minRightSideBearing","xMaxExtent","caretSlopeRise","caretSlopeRun","caretOffset","metricDataFormat","numberOfMetrics","averageCharWidth","weightClass","widthClass","ySubscriptXSize","ySubscriptYSize","ySubscriptXOffset","ySubscriptYOffset","ySuperscriptXSize","ySuperscriptYSize","ySuperscriptXOffset","ySuperscriptYOffset","yStrikeoutSize","yStrikeoutPosition","panose","charRange","vendorID","selection","firstCharIndex","lastCharIndex","descent","winAscent","winDescent","codePageRange","defaultChar","breakChar","maxContext","underlinePosition","underlineThickness","minMemType42","maxMemType42","minMemType1","maxMemType1","glyphNameIndex","numGlyphs","languageID","nameID","strings","copyright","fontSubfamily","uniqueSubfamily","postscriptName","trademark","manufacturer","designer","vendorUrl","designerUrl","license","licenseUrl","preferredFamily","preferredSubfamily","compatibleFull","sampleText","maxPoints","maxContours","maxCompositePoints","maxComponentContours","maxZones","maxTwilightPoints","maxStorage","maxFunctionDefs","maxInstructionDefs","maxStackElements","maxSizeOfInstructions","maxComponentElements","maxComponentDepth","metrics","lsb","leftSideBearings","glyphFor","lengthOf","numberOfContours","compound","glyphIDs","glyphOffsets","unicodes","generateCmap","glyphsFor","imgProps","pdfWidth","pdfHeight","pdfBlob","share","canShare","File","summaryData","handleAddToCalendar","restaurantName","datePart","dateTimeString","startDateTime","endDateTime","pad","icsContent","click","SuccessMessage","setSummaryData","parsedData","isoDateString","formatDateDutch","PrintButton","ShareButton","AddToCalendarButton","initialFormData","setFormData","currentStep","setExpandedField","prevFormData","fieldsToReset","newFormData","goToStep","StepOne","StepTwo","formSectionBackgroundStyle","defaultSettings","pageTitle","backgroundBlur","defaultAppearanceData","backgroundType","gradientStartColor","gradientEndColor","animationType","widgetBackgroundColor","widgetTextColor","containerColor","buttonColor","buttonTextColor","defaultTheme","NewReservation","setIsModalOpen","setIsClosing","setRestaurantData","classList","mergedSettings","mergedFonts","mergedColors","mergedTheme","parsedTheme","parsedSettings","mergedData","fetchRestaurantData","useFonts","computeAlignmentValues","ReservationForm","backgroundColorTransparant","hexToRgba","bubbleViewColor","cleanHex","isColorTooBright","factor","newR","newG","newB","darkenHexColor","viewMode","ReservationFullScreen","ReservationModal","ReservationStyles","minHeight","DEFAULT_BREAKPOINTS","DEFAULT_MIN_BREAKPOINT","ThemeContext","breakpoints","minBreakpoint","useBootstrapPrefix","defaultPrefix","Spinner","bsPrefix","bsSpinnerPrefix","onInitComplete","setLoaded","setScale","visible","setVisible","timeouts","fadeOutTimer","hideTimer","alignItems","justifyContent","role","loadingParam","showInitPage","setShowInitPage","defaultViewMode","InitPage","handleInitComplete","App"],"sourceRoot":""}